aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2013-09-15 19:08:16 +0100
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2013-09-17 13:22:18 +0100
commit038b4de8fa821ca9eec55dbf1c0dbadd451a3bd0 (patch)
tree8f4db101da8f7e28c4394d25a7aa2ebade352f69
parentbaba6b52187a65394b02c4e7f757fdba1709e2a0 (diff)
downloadpaludis-038b4de8fa821ca9eec55dbf1c0dbadd451a3bd0.tar.gz
paludis-038b4de8fa821ca9eec55dbf1c0dbadd451a3bd0.tar.xz
Support exvolatile
-rw-r--r--paludis/repositories/e/do_fetch_action.cc8
-rw-r--r--paludis/repositories/e/do_info_action.cc5
-rw-r--r--paludis/repositories/e/do_install_action.cc9
-rw-r--r--paludis/repositories/e/do_pretend_action.cc11
-rw-r--r--paludis/repositories/e/e_installed_repository.cc6
-rw-r--r--paludis/repositories/e/e_repository.cc3
-rw-r--r--paludis/repositories/e/e_repository_TEST_exheres_0.cc27
-rwxr-xr-xpaludis/repositories/e/e_repository_TEST_exheres_0_setup.sh50
-rw-r--r--paludis/repositories/e/ebuild.cc8
-rw-r--r--paludis/repositories/e/ebuild.hh4
-rw-r--r--paludis/repositories/e/ebuild/exheres-0/output_functions.bash13
-rw-r--r--paludis/repositories/e/ebuild_id.cc3
-rw-r--r--paludis/repositories/e/exndbam_repository.cc3
-rw-r--r--paludis/repositories/e/pipe_command_handler.cc40
-rw-r--r--paludis/repositories/e/pipe_command_handler.hh4
-rw-r--r--paludis/repositories/e/vdb_repository.cc3
16 files changed, 172 insertions, 25 deletions
diff --git a/paludis/repositories/e/do_fetch_action.cc b/paludis/repositories/e/do_fetch_action.cc
index 6e5dd94..3ebe387 100644
--- a/paludis/repositories/e/do_fetch_action.cc
+++ b/paludis/repositories/e/do_fetch_action.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2010, 2011 Ciaran McCreesh
+ * Copyright (c) 2010, 2011, 2013 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -203,7 +203,8 @@ paludis::erepository::do_fetch_action(
n::root() = "/",
n::sandbox() = phase->option("sandbox"),
n::sydbox() = phase->option("sydbox"),
- n::userpriv() = phase->option("userpriv") && userpriv_ok
+ n::userpriv() = phase->option("userpriv") && userpriv_ok,
+ n::volatile_files() = nullptr
));
EbuildFetchExtraCommand fetch_extra_cmd(command_params, make_named_values<EbuildFetchExtraCommandParams>(
@@ -251,7 +252,8 @@ paludis::erepository::do_fetch_action(
n::root() = "/",
n::sandbox() = phase->option("sandbox"),
n::sydbox() = phase->option("sydbox"),
- n::userpriv() = phase->option("userpriv") && userpriv_ok
+ n::userpriv() = phase->option("userpriv") && userpriv_ok,
+ n::volatile_files() = nullptr
));
EbuildNoFetchCommand nofetch_cmd(command_params,
diff --git a/paludis/repositories/e/do_info_action.cc b/paludis/repositories/e/do_info_action.cc
index 117a261..85944b5 100644
--- a/paludis/repositories/e/do_info_action.cc
+++ b/paludis/repositories/e/do_info_action.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2010, 2011 Ciaran McCreesh
+ * Copyright (c) 2010, 2011, 2013 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -112,7 +112,8 @@ paludis::erepository::do_info_action(
n::root() = stringify(env->preferred_root_key()->parse_value()),
n::sandbox() = phase->option("sandbox"),
n::sydbox() = phase->option("sydbox"),
- n::userpriv() = phase->option("userpriv") && userpriv_ok
+ n::userpriv() = phase->option("userpriv") && userpriv_ok,
+ n::volatile_files() = nullptr
));
EbuildInfoCommandParams info_params(
diff --git a/paludis/repositories/e/do_install_action.cc b/paludis/repositories/e/do_install_action.cc
index dc916e9..540dde7 100644
--- a/paludis/repositories/e/do_install_action.cc
+++ b/paludis/repositories/e/do_install_action.cc
@@ -218,6 +218,7 @@ paludis::erepository::do_install_action(
auto parts(std::make_shared<Partitioning>());
auto choices(id->choices_key()->parse_value());
auto work_choice(choices->find_by_name_with_prefix(ELikeWorkChoiceValue::canonical_name_with_prefix()));
+ auto volatile_files(std::make_shared<FSPathSet>());
EAPIPhases phases(id->eapi()->supported()->ebuild_phases()->ebuild_install());
for (EAPIPhases::ConstIterator phase(phases.begin_phases()), phase_end(phases.end_phases()) ;
@@ -279,7 +280,7 @@ paludis::erepository::do_install_action(
n::check() = phase->option("check_merge"),
n::environment_file() = package_builddir / "temp" / "loadsaveenv",
n::image_dir() = package_builddir / "image",
- n::is_volatile() = [] (const FSPath &) { return false; },
+ n::is_volatile() = [&] (const FSPath & f) { return volatile_files->end() != volatile_files->find(f); },
n::merged_entries() = merged_entries,
n::options() = id->eapi()->supported()->merger_options() | extra_merger_options,
n::output_manager() = output_manager,
@@ -390,7 +391,8 @@ paludis::erepository::do_install_action(
"/",
n::sandbox() = phase->option("sandbox"),
n::sydbox() = phase->option("sydbox"),
- n::userpriv() = phase->option("userpriv") && userpriv_ok
+ n::userpriv() = phase->option("userpriv") && userpriv_ok,
+ n::volatile_files() = volatile_files
));
EbuildInstallCommandParams install_params(
@@ -453,7 +455,8 @@ paludis::erepository::do_install_action(
"/",
n::sandbox() = tidyup_phase->option("sandbox"),
n::sydbox() = tidyup_phase->option("sydbox"),
- n::userpriv() = tidyup_phase->option("userpriv") && userpriv_ok
+ n::userpriv() = tidyup_phase->option("userpriv") && userpriv_ok,
+ n::volatile_files() = volatile_files
));
EbuildInstallCommandParams tidyup_install_params(
diff --git a/paludis/repositories/e/do_pretend_action.cc b/paludis/repositories/e/do_pretend_action.cc
index 60cd049..4512cd8 100644
--- a/paludis/repositories/e/do_pretend_action.cc
+++ b/paludis/repositories/e/do_pretend_action.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2010, 2011 Ciaran McCreesh
+ * Copyright (c) 2010, 2011, 2013 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -130,7 +130,8 @@ paludis::erepository::do_pretend_action(
"/",
n::sandbox() = phase->option("sandbox"),
n::sydbox() = phase->option("sydbox"),
- n::userpriv() = phase->option("userpriv") && userpriv_ok
+ n::userpriv() = phase->option("userpriv") && userpriv_ok,
+ n::volatile_files() = nullptr
));
EbuildBadOptionsCommand bad_options_cmd(command_params,
@@ -197,7 +198,8 @@ paludis::erepository::do_pretend_action(
"/",
n::sandbox() = phase->option("sandbox"),
n::sydbox() = phase->option("sydbox"),
- n::userpriv() = phase->option("userpriv") && userpriv_ok
+ n::userpriv() = phase->option("userpriv") && userpriv_ok,
+ n::volatile_files() = nullptr
));
EbuildBadOptionsCommand bad_options_cmd(command_params,
@@ -262,7 +264,8 @@ paludis::erepository::do_pretend_action(
"/",
n::sandbox() = phase->option("sandbox"),
n::sydbox() = phase->option("sydbox"),
- n::userpriv() = phase->option("userpriv") && userpriv_ok
+ n::userpriv() = phase->option("userpriv") && userpriv_ok,
+ n::volatile_files() = nullptr
));
EbuildPretendCommand pretend_cmd(command_params,
diff --git a/paludis/repositories/e/e_installed_repository.cc b/paludis/repositories/e/e_installed_repository.cc
index d4073af..8be557d 100644
--- a/paludis/repositories/e/e_installed_repository.cc
+++ b/paludis/repositories/e/e_installed_repository.cc
@@ -237,7 +237,8 @@ EInstalledRepository::perform_config(
n::root() = stringify(_imp->params.root()),
n::sandbox() = phase->option("sandbox"),
n::sydbox() = phase->option("sydbox"),
- n::userpriv() = phase->option("userpriv")
+ n::userpriv() = phase->option("userpriv"),
+ n::volatile_files() = nullptr
),
make_named_values<EbuildConfigCommandParams>(
@@ -346,7 +347,8 @@ EInstalledRepository::perform_info(
n::root() = stringify(_imp->params.root()),
n::sandbox() = phase->option("sandbox"),
n::sydbox() = phase->option("sydbox"),
- n::userpriv() = phase->option("userpriv")
+ n::userpriv() = phase->option("userpriv"),
+ n::volatile_files() = nullptr
),
make_named_values<EbuildInfoCommandParams>(
diff --git a/paludis/repositories/e/e_repository.cc b/paludis/repositories/e/e_repository.cc
index cba25ff..91fc3f2 100644
--- a/paludis/repositories/e/e_repository.cc
+++ b/paludis/repositories/e/e_repository.cc
@@ -1720,7 +1720,8 @@ ERepository::get_environment_variable(
n::root() = "/",
n::sandbox() = phases.begin_phases()->option("sandbox"),
n::sydbox() = phases.begin_phases()->option("sydbox"),
- n::userpriv() = phases.begin_phases()->option("userpriv") && userpriv_ok
+ n::userpriv() = phases.begin_phases()->option("userpriv") && userpriv_ok,
+ n::volatile_files() = nullptr
),
var);
diff --git a/paludis/repositories/e/e_repository_TEST_exheres_0.cc b/paludis/repositories/e/e_repository_TEST_exheres_0.cc
index 1ca9d32..0ccc21e 100644
--- a/paludis/repositories/e/e_repository_TEST_exheres_0.cc
+++ b/paludis/repositories/e/e_repository_TEST_exheres_0.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh
+ * Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2013 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -633,6 +633,16 @@ TEST(ERepository, ReallyInstallExheres0)
n::want_phase() = &want_all_phases
));
+ UninstallAction uninstall_action(make_named_values<UninstallActionOptions>(
+ n::config_protect() = "",
+ n::if_for_install_id() = nullptr,
+ n::ignore_for_unmerge() = [] (const FSPath &) { return false; },
+ n::is_overwrite() = false,
+ n::make_output_manager() = &make_standard_output_manager,
+ n::override_contents() = nullptr,
+ n::want_phase() = &want_all_phases
+ ));
+
{
const std::shared_ptr<const PackageID> id(*env[selection::RequireExactlyOne(generator::Matches(
PackageDepSpec(parse_user_package_dep_spec("=cat/exdirectory-phase-1",
@@ -656,5 +666,20 @@ TEST(ERepository, ReallyInstallExheres0)
ASSERT_TRUE(bool(id));
id->perform_action(action);
}
+
+ {
+ const std::shared_ptr<const PackageID> id(*env[selection::RequireExactlyOne(generator::Matches(
+ PackageDepSpec(parse_user_package_dep_spec("=cat/exvolatile-1",
+ &env, { })), nullptr, { }))]->last());
+ ASSERT_TRUE(bool(id));
+ id->perform_action(action);
+
+ i_repo->invalidate();
+ const std::shared_ptr<const PackageID> uninstall_id(*env[selection::RequireExactlyOne(generator::Matches(
+ PackageDepSpec(parse_user_package_dep_spec("=cat/exvolatile-1::installed",
+ &env, { })), nullptr, { }))]->last());
+ ASSERT_TRUE(bool(uninstall_id));
+ uninstall_id->perform_action(uninstall_action);
+ }
}
diff --git a/paludis/repositories/e/e_repository_TEST_exheres_0_setup.sh b/paludis/repositories/e/e_repository_TEST_exheres_0_setup.sh
index e9569ac..4fb02a8 100755
--- a/paludis/repositories/e/e_repository_TEST_exheres_0_setup.sh
+++ b/paludis/repositories/e/e_repository_TEST_exheres_0_setup.sh
@@ -1205,6 +1205,56 @@ src_install() {
EOT
}
END
+mkdir -p "packages/cat/exvolatile"
+cat <<'END' > packages/cat/exvolatile/exvolatile-1.ebuild || exit 1
+DESCRIPTION="The Long Description"
+SUMMARY="The Short Description"
+HOMEPAGE="http://example.com/"
+DOWNLOADS=""
+SLOT="0"
+MYOPTIONS="spork"
+LICENCES="GPL-2"
+PLATFORMS="test"
+WORK="${WORKBASE}"
+
+src_install() {
+ insinto /var
+ hereins first <<EOT
+EOT
+ hereins second <<EOT
+EOT
+ hereins third <<EOT
+EOT
+ hereins fourth <<EOT
+EOT
+ dosym first /var/symfirst
+ dosym second /var/symsecond
+ dosym third /var/symthird
+ dosym fourth /var/symfourth
+}
+
+pkg_setup() {
+ exvolatile /var/first /var/second /var/symfirst /var/symsecond
+}
+
+pkg_postinst() {
+ echo a monkey stole my broccoli > ${ROOT}/var/second
+ echo there is a weasel in my stew > ${ROOT}/var/fourth
+ ln -sf /dev/null ${ROOT}/var/symsecond
+ ln -sf /dev/null ${ROOT}/var/symfourth
+}
+
+pkg_postrm() {
+ [[ -f ${ROOT}/var/first ]] && die "first should be removed"
+ [[ -f ${ROOT}/var/second ]] && die "second should be removed"
+ [[ -f ${ROOT}/var/third ]] && die "third should be removed"
+ [[ -f ${ROOT}/var/fourth ]] || die "fourth shouldn't be removed"
+ [[ -L ${ROOT}/var/symfirst ]] && die "symfirst should be removed"
+ [[ -L ${ROOT}/var/symsecond ]] && die "symsecond should be removed"
+ [[ -L ${ROOT}/var/symthird ]] && die "symthird should be removed"
+ [[ -L ${ROOT}/var/symfourth ]] || die "symfourth shouldn't be removed"
+}
+END
cd ..
diff --git a/paludis/repositories/e/ebuild.cc b/paludis/repositories/e/ebuild.cc
index 8e87712..dfb8a3d 100644
--- a/paludis/repositories/e/ebuild.cc
+++ b/paludis/repositories/e/ebuild.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh
+ * Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2013 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -151,6 +151,7 @@ EbuildCommand::operator() ()
params.package_id(),
params.permitted_directories(),
params.parts(),
+ params.volatile_files(),
in_metadata_generation(), _1,
params.maybe_output_manager()));
@@ -1066,6 +1067,7 @@ WriteVDBEntryCommand::operator() ()
params.environment(),
params.package_id(),
nullptr,
+ nullptr,
nullptr, false, _1,
params.maybe_output_manager()));
@@ -1330,7 +1332,9 @@ WriteBinaryEbuildCommand::operator() ()
params.environment(),
params.package_id(),
nullptr,
- nullptr, false, _1,
+ nullptr,
+ nullptr,
+ false, _1,
params.maybe_output_manager()));
if (! params.package_id()->eapi()->supported()->ebuild_metadata_variables()->scm_revision()->name().empty())
diff --git a/paludis/repositories/e/ebuild.hh b/paludis/repositories/e/ebuild.hh
index 42d1b29..0266773 100644
--- a/paludis/repositories/e/ebuild.hh
+++ b/paludis/repositories/e/ebuild.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh
+ * Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2013 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -104,6 +104,7 @@ namespace paludis
typedef Name<struct name_use_expand> use_expand;
typedef Name<struct name_use_expand_hidden> use_expand_hidden;
typedef Name<struct name_userpriv> userpriv;
+ typedef Name<struct name_volatile_files> volatile_files;
}
namespace erepository
@@ -140,6 +141,7 @@ namespace paludis
NamedValue<n::sandbox, bool> sandbox;
NamedValue<n::sydbox, bool> sydbox;
NamedValue<n::userpriv, bool> userpriv;
+ NamedValue<n::volatile_files, std::shared_ptr<FSPathSet> > volatile_files;
};
/**
diff --git a/paludis/repositories/e/ebuild/exheres-0/output_functions.bash b/paludis/repositories/e/ebuild/exheres-0/output_functions.bash
index a09127a..b39d7e5 100644
--- a/paludis/repositories/e/ebuild/exheres-0/output_functions.bash
+++ b/paludis/repositories/e/ebuild/exheres-0/output_functions.bash
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
# vim: set sw=4 sts=4 et :
-# Copyright (c) 2006, 2007, 2008, 2010, 2011 Ciaran McCreesh
+# Copyright (c) 2006, 2007, 2008, 2010, 2011, 2013 Ciaran McCreesh
#
# This file is part of the Paludis package manager. Paludis is free software;
# you can redistribute it and/or modify it under the terms of the GNU General
@@ -54,3 +54,14 @@ expart()
paludis_pipe_command PARTITION "$EAPI" "$@" >/dev/null
}
+exvolatile()
+{
+ [[ "${!PALUDIS_EBUILD_PHASE_VAR}" == "setup" ]] || \
+ die "exvolatile must be called in pkg_setup"
+
+ local x
+ for x in "$@"; do
+ paludis_pipe_command VOLATILE "$EAPI" "$x" >/dev/null
+ done
+}
+
diff --git a/paludis/repositories/e/ebuild_id.cc b/paludis/repositories/e/ebuild_id.cc
index d8ad37d..5ce2132 100644
--- a/paludis/repositories/e/ebuild_id.cc
+++ b/paludis/repositories/e/ebuild_id.cc
@@ -322,7 +322,8 @@ EbuildID::need_non_xml_keys_added() const
n::root() = "/",
n::sandbox() = phases.begin_phases()->option("sandbox"),
n::sydbox() = phases.begin_phases()->option("sydbox"),
- n::userpriv() = phases.begin_phases()->option("userpriv")
+ n::userpriv() = phases.begin_phases()->option("userpriv"),
+ n::volatile_files() = nullptr
));
if (! cmd())
diff --git a/paludis/repositories/e/exndbam_repository.cc b/paludis/repositories/e/exndbam_repository.cc
index 3861902..d6ec628 100644
--- a/paludis/repositories/e/exndbam_repository.cc
+++ b/paludis/repositories/e/exndbam_repository.cc
@@ -679,7 +679,8 @@ ExndbamRepository::perform_uninstall(
n::root() = stringify(_imp->params.root()),
n::sandbox() = phase->option("sandbox"),
n::sydbox() = phase->option("sydbox"),
- n::userpriv() = phase->option("userpriv")
+ n::userpriv() = phase->option("userpriv"),
+ n::volatile_files() = nullptr
));
EbuildUninstallCommandParams uninstall_params(
diff --git a/paludis/repositories/e/pipe_command_handler.cc b/paludis/repositories/e/pipe_command_handler.cc
index d6cd986..b96c883 100644
--- a/paludis/repositories/e/pipe_command_handler.cc
+++ b/paludis/repositories/e/pipe_command_handler.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Ciaran McCreesh
* Copyright (c) 2009 Ingmar Vanhassel
* Copyright (c) 2013 Saleem Abdulrasool <compnerd@compnerd.org>
*
@@ -183,6 +183,7 @@ paludis::erepository::pipe_command_handler(const Environment * const environment
const std::shared_ptr<const ERepositoryID> & package_id,
const std::shared_ptr<PermittedDirectories> & maybe_permitted_directories,
const std::shared_ptr<Partitioning> & maybe_partitioning,
+ const std::shared_ptr<FSPathSet> & maybe_volatiles,
bool in_metadata_generation,
const std::string & s, const std::shared_ptr<OutputManager> & maybe_output_manager)
{
@@ -639,6 +640,43 @@ paludis::erepository::pipe_command_handler(const Environment * const environment
"when trying to create partition";
}
}
+ else if (tokens[0] == "VOLATILE")
+ {
+ auto eapi = EAPIData::get_instance()->eapi_from_string(tokens[1]);
+ if (! eapi->supported())
+ return "EPARTITION EAPI " + tokens[1] + " unsupported";
+
+ if (tokens.size() != 3)
+ {
+ Log::get_instance()->message("e.pipe_commands.volatile.bad", ll_warning, lc_context)
+ << "Got bad VOLATILE pipe command";
+ return "Ebad VOLATILE command";
+ }
+
+ try
+ {
+ if (! maybe_volatiles)
+ {
+ Log::get_instance()->message("e.pipe_commands.partitioning.unsupported", ll_warning, lc_context)
+ << "volatile files not supported here";
+ return "EVOLATILE not supported here";
+ }
+
+ if (0 != tokens[2].compare(0, 1, "/", 0, 1)) {
+ Log::get_instance()->message("e.pipe_commands.partitioning.bad", ll_warning, lc_context)
+ << "Badly formatted volatile path '" + tokens[2] + "'";
+ return "EVOLATILE path '" + tokens[2] + "' is not an absolute path";
+ }
+ maybe_volatiles->insert(FSPath(tokens[2]));
+
+ return "O0;";
+ }
+ catch (const Exception & e)
+ {
+ return "Egot error '" + e.message() + "' (" + e.what() + ") "
+ "when trying to create volatile";
+ }
+ }
else if (tokens[0] == "REWRITE_VAR")
{
if (tokens.size() < 4)
diff --git a/paludis/repositories/e/pipe_command_handler.hh b/paludis/repositories/e/pipe_command_handler.hh
index 56be424..5c93f7b 100644
--- a/paludis/repositories/e/pipe_command_handler.hh
+++ b/paludis/repositories/e/pipe_command_handler.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh
+ * Copyright (c) 2008, 2009, 2010, 2011, 2013 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -21,6 +21,7 @@
#define PALUDIS_GUARD_PALUDIS_REPOSITORIES_E_PIPE_COMMAND_HANDLER_HH 1
#include <paludis/repositories/e/permitted_directories-fwd.hh>
+#include <paludis/util/fs_path-fwd.hh>
#include <paludis/environment-fwd.hh>
#include <paludis/package_id-fwd.hh>
#include <paludis/output_manager-fwd.hh>
@@ -38,6 +39,7 @@ namespace paludis
const std::shared_ptr<const ERepositoryID> &,
const std::shared_ptr<PermittedDirectories> &,
const std::shared_ptr<Partitioning> &,
+ const std::shared_ptr<FSPathSet> &,
bool in_metadata_generation,
const std::string & s,
const std::shared_ptr<OutputManager> & maybe_output_manager);
diff --git a/paludis/repositories/e/vdb_repository.cc b/paludis/repositories/e/vdb_repository.cc
index e41512d..b84ed1d 100644
--- a/paludis/repositories/e/vdb_repository.cc
+++ b/paludis/repositories/e/vdb_repository.cc
@@ -512,7 +512,8 @@ VDBRepository::perform_uninstall(
n::root() = stringify(_imp->params.root()),
n::sandbox() = phase->option("sandbox"),
n::sydbox() = phase->option("sydbox"),
- n::userpriv() = phase->option("userpriv")
+ n::userpriv() = phase->option("userpriv"),
+ n::volatile_files() = nullptr
));
EbuildUninstallCommandParams uninstall_params(make_named_values<EbuildUninstallCommandParams>(