aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar David Leverton <levertond@googlemail.com> 2009-08-30 14:47:56 +0100
committerAvatar David Leverton <levertond@googlemail.com> 2009-08-30 15:47:05 +0100
commit5232e1cfd59e4f9bb4fcdab0a6ac0a2a4995a47b (patch)
tree04714e033a9b376160940341a4c94be645c54527
parent5ee3176d1501eeea742b8923db111a9a42be8374 (diff)
downloadpaludis-5232e1cfd59e4f9bb4fcdab0a6ac0a2a4995a47b.tar.gz
paludis-5232e1cfd59e4f9bb4fcdab0a6ac0a2a4995a47b.tar.xz
Fix assorted fail
-rw-r--r--paludis/repositories/e/eapis/exheres-0.conf5
-rw-r--r--paludis/repositories/e/ebuild.cc2
-rw-r--r--paludis/repositories/e/ebuild.hh2
-rwxr-xr-xpaludis/repositories/e/ebuild/ebuild.bash2
-rw-r--r--paludis/repositories/e/ebuild_entries.cc10
5 files changed, 18 insertions, 3 deletions
diff --git a/paludis/repositories/e/eapis/exheres-0.conf b/paludis/repositories/e/eapis/exheres-0.conf
index 1e190ce..1c66c21 100644
--- a/paludis/repositories/e/eapis/exheres-0.conf
+++ b/paludis/repositories/e/eapis/exheres-0.conf
@@ -165,7 +165,10 @@ ebuild_nofetch = \
: tidyup
ebuild_fetch_extra = \
- skipname=fetch_extra skipifno=fetch_extra sydbox userpriv : fetch_extra
+ skipname=killold skipifno=fetch_extra : killold ; \
+ skipname=initmisc skipifno=fetch_extra sydbox userpriv : initmisc saveenv ; \
+ skipname=fetch_extra skipifno=fetch_extra sydbox userpriv : loadenv fetch_extra ; \
+ skipname=tidyup skipifno=fetch_extra : tidyup
ebuild_variable = \
sydbox userpriv : variable
diff --git a/paludis/repositories/e/ebuild.cc b/paludis/repositories/e/ebuild.cc
index 6ad8101..c586c67 100644
--- a/paludis/repositories/e/ebuild.cc
+++ b/paludis/repositories/e/ebuild.cc
@@ -1296,11 +1296,13 @@ EbuildFetchExtraCommand::extend_command(const Command & cmd)
{
Command result(Command(cmd)
.with_setenv("ROOT", fetch_extra_params.root())
+ .with_setenv("PALUDIS_LOADSAVEENV_DIR", stringify(fetch_extra_params.loadsaveenv_dir()))
.with_setenv("PALUDIS_PROFILE_DIR", stringify(*fetch_extra_params.profiles()->begin()))
.with_setenv("PALUDIS_PROFILE_DIRS", join(fetch_extra_params.profiles()->begin(),
fetch_extra_params.profiles()->end(), " "))
.with_setenv("PALUDIS_ARCHIVES_VAR",
params.package_id()->eapi()->supported()->ebuild_environment_variables()->env_a())
+ .with_setenv("SLOT", stringify(fetch_extra_params.slot()))
);
if (! params.package_id()->eapi()->supported()->ebuild_environment_variables()->env_a().empty())
diff --git a/paludis/repositories/e/ebuild.hh b/paludis/repositories/e/ebuild.hh
index 919d42e..a0f002e 100644
--- a/paludis/repositories/e/ebuild.hh
+++ b/paludis/repositories/e/ebuild.hh
@@ -152,8 +152,10 @@ namespace paludis
NamedValue<n::a, std::string> a;
NamedValue<n::aa, std::string> aa;
NamedValue<n::expand_vars, std::tr1::shared_ptr<const Map<std::string, std::string> > > expand_vars;
+ NamedValue<n::loadsaveenv_dir, FSEntry> loadsaveenv_dir;
NamedValue<n::profiles, std::tr1::shared_ptr<const FSEntrySequence> > profiles;
NamedValue<n::root, std::string> root;
+ NamedValue<n::slot, std::string> slot;
NamedValue<n::use, std::string> use;
NamedValue<n::use_expand, std::string> use_expand;
NamedValue<n::use_expand_hidden, std::string> use_expand_hidden;
diff --git a/paludis/repositories/e/ebuild/ebuild.bash b/paludis/repositories/e/ebuild/ebuild.bash
index 7e2b78f..93f552a 100755
--- a/paludis/repositories/e/ebuild/ebuild.bash
+++ b/paludis/repositories/e/ebuild/ebuild.bash
@@ -548,7 +548,7 @@ ebuild_main()
done
if [[ $1 == metadata ]] || [[ $1 == variable ]] || [[ $1 == pretend ]] || \
- [[ $1 == bad_options ]] || [[ $1 == fetch_extra ]] ; then
+ [[ $1 == bad_options ]] ; then
export ${PALUDIS_EBUILD_PHASE_VAR}="${1}"
perform_hook ebuild_${action}_pre
if [[ $1 == metadata ]]; then
diff --git a/paludis/repositories/e/ebuild_entries.cc b/paludis/repositories/e/ebuild_entries.cc
index ec57a49..d3efbb4 100644
--- a/paludis/repositories/e/ebuild_entries.cc
+++ b/paludis/repositories/e/ebuild_entries.cc
@@ -473,9 +473,15 @@ EbuildEntries::fetch(const std::tr1::shared_ptr<const ERepositoryID> & id,
EAPIPhases fetch_extra_phases(id->eapi()->supported()->ebuild_phases()->ebuild_fetch_extra());
if ((! fetch_action.options.ignore_unfetched()) && (fetch_extra_phases.begin_phases() != fetch_extra_phases.end_phases()))
{
+ FSEntry package_builddir(_imp->params.builddir() / (stringify(id->name().category()) + "-" +
+ stringify(id->name().package()) + "-" + stringify(id->version()) + "-fetch_extra"));
+
for (EAPIPhases::ConstIterator phase(fetch_extra_phases.begin_phases()), phase_end(fetch_extra_phases.end_phases()) ;
phase != phase_end ; ++phase)
{
+ if (can_skip_phase(id, *phase))
+ continue;
+
EbuildCommandParams command_params(make_named_values<EbuildCommandParams>(
value_for<n::builddir>(_imp->params.builddir()),
value_for<n::clearenv>(phase->option("clearenv")),
@@ -488,7 +494,7 @@ EbuildEntries::fetch(const std::tr1::shared_ptr<const ERepositoryID> & id,
value_for<n::exlibsdirs>(exlibsdirs),
value_for<n::files_dir>(_imp->e_repository->layout()->package_directory(id->name()) / "files"),
value_for<n::maybe_output_manager>(output_manager),
- value_for<n::package_builddir>(_imp->params.builddir() / (stringify(id->name().category()) + "-" + stringify(id->name().package()) + "-" + stringify(id->version()) + "-fetch_extra")),
+ value_for<n::package_builddir>(package_builddir),
value_for<n::package_id>(id),
value_for<n::portdir>(
(_imp->params.master_repositories() && ! _imp->params.master_repositories()->empty()) ?
@@ -503,8 +509,10 @@ EbuildEntries::fetch(const std::tr1::shared_ptr<const ERepositoryID> & id,
value_for<n::a>(archives),
value_for<n::aa>(all_archives),
value_for<n::expand_vars>(expand_vars),
+ value_for<n::loadsaveenv_dir>(package_builddir / "temp"),
value_for<n::profiles>(_imp->params.profiles()),
value_for<n::root>("/"),
+ value_for<n::slot>(id->slot_key() ? stringify(id->slot_key()->value()) : ""),
value_for<n::use>(use),
value_for<n::use_expand>(join(p->use_expand()->begin(), p->use_expand()->end(), " ")),
value_for<n::use_expand_hidden>(join(p->use_expand_hidden()->begin(), p->use_expand_hidden()->end(), " "))