diff options
author | 2008-04-21 10:09:42 +0000 | |
---|---|---|
committer | 2008-04-21 10:09:42 +0000 | |
commit | f4e46e016ae53de0699aff46f961e254c9fbafc5 (patch) | |
tree | 62e4cb44c3edf60ad9be637cf6132ea2f484eca8 /paludis | |
parent | e07ab0f6659ba3de1338df5c63fc4d231dd85eca (diff) | |
download | paludis-f4e46e016ae53de0699aff46f961e254c9fbafc5.tar.gz paludis-f4e46e016ae53de0699aff46f961e254c9fbafc5.tar.xz |
Remove "ununused" set, make importare use the world file as usual, and make the resolver cope with the lack of installable versions.
Diffstat (limited to 'paludis')
-rw-r--r-- | paludis/dep_list.cc | 10 | ||||
-rw-r--r-- | paludis/environment_implementation.cc | 3 | ||||
-rw-r--r-- | paludis/install_task.cc | 2 | ||||
-rw-r--r-- | paludis/repositories/unpackaged/installed_repository.cc | 3 | ||||
-rw-r--r-- | paludis/uninstall_list.cc | 12 |
5 files changed, 16 insertions, 14 deletions
diff --git a/paludis/dep_list.cc b/paludis/dep_list.cc index 7b62bbe9a..5af26880b 100644 --- a/paludis/dep_list.cc +++ b/paludis/dep_list.cc @@ -454,6 +454,16 @@ DepList::AddVisitor::visit_leaf(const PackageDepSpec & a) break; } + if (! best_visible_candidate && ! already_installed->empty() && + (*already_installed->last())->transient_key() && (*already_installed->last())->transient_key()->value() && + (dl_target_package != d->_imp->opts->target_type || ! d->is_top_level_target(**already_installed->last()))) + { + Log::get_instance()->message("dep_list.no_visible.transient", ll_debug, lc_context) << "No visible packages matching '" + << a << "', silently falling back to installed package '" << **already_installed->last() << "' as it is transient"; + d->add_already_installed_package(*already_installed->last(), a.tag(), a, conditions, destinations); + return; + } + /* are we allowed to override mask reasons? */ if (! best_visible_candidate && d->_imp->opts->override_masks) { diff --git a/paludis/environment_implementation.cc b/paludis/environment_implementation.cc index dc9e69412..235cfc849 100644 --- a/paludis/environment_implementation.cc +++ b/paludis/environment_implementation.cc @@ -100,8 +100,7 @@ EnvironmentImplementation::set(const SetName & s) const tr1::shared_ptr<ConstTreeSequence<SetSpecTree, AllDepSpec> > result; /* these sets always exist, even if empty */ - if (s.data() == "everything" || s.data() == "system" || s.data() == "world" || s.data() == "security" - || s.data() == "ununused") + if (s.data() == "everything" || s.data() == "system" || s.data() == "world" || s.data() == "security") { Log::get_instance()->message("environment_implementation.standard_set", ll_debug, lc_context) << "Set '" << s << "' is a standard set"; result.reset(new ConstTreeSequence<SetSpecTree, AllDepSpec>(tr1::shared_ptr<AllDepSpec>(new AllDepSpec))); diff --git a/paludis/install_task.cc b/paludis/install_task.cc index f291e75a8..5e27d2b0a 100644 --- a/paludis/install_task.cc +++ b/paludis/install_task.cc @@ -1204,7 +1204,7 @@ void InstallTask::world_update_set(const SetName & s) { if (s == SetName("world") || s == SetName("system") || s == SetName("security") - || s == SetName("everything") || s == SetName("insecurity") || s == SetName("ununused")) + || s == SetName("everything") || s == SetName("insecurity")) { on_update_world_skip(s, "special sets cannot be added to world"); return; diff --git a/paludis/repositories/unpackaged/installed_repository.cc b/paludis/repositories/unpackaged/installed_repository.cc index 6777c12e9..9ef1d5bb8 100644 --- a/paludis/repositories/unpackaged/installed_repository.cc +++ b/paludis/repositories/unpackaged/installed_repository.cc @@ -388,7 +388,7 @@ InstalledUnpackagedRepository::package_set(const SetName & s) const Context context("When fetching package set '" + stringify(s) + "' from '" + stringify(name()) + "':"); - if ("ununused" == s.data()) + if ("everything" == s.data()) { tr1::shared_ptr<ConstTreeSequence<SetSpecTree, AllDepSpec> > result(new ConstTreeSequence<SetSpecTree, AllDepSpec>( make_shared_ptr(new AllDepSpec))); @@ -421,7 +421,6 @@ InstalledUnpackagedRepository::sets_list() const tr1::shared_ptr<SetNameSet> result(new SetNameSet); result->insert(SetName("everything")); - result->insert(SetName("ununused")); return result; } diff --git a/paludis/uninstall_list.cc b/paludis/uninstall_list.cc index b1e0c96ee..9ff224695 100644 --- a/paludis/uninstall_list.cc +++ b/paludis/uninstall_list.cc @@ -427,16 +427,13 @@ UninstallList::add_unused_dependencies() depped_upon_not_list->begin(), depped_upon_not_list->end(), unused_dependencies->inserter(), PackageIDSetComparator()); - /* if any of them aren't already on the list, and aren't in world or ununused, add them and recurse */ - tr1::shared_ptr<SetSpecTree::ConstItem> world(_imp->env->set(SetName("world"))), - ununused(_imp->env->set(SetName("ununused"))); + /* if any of them aren't already on the list, and aren't in world, add them and recurse */ + tr1::shared_ptr<SetSpecTree::ConstItem> world(_imp->env->set(SetName("world"))); for (PackageIDSet::ConstIterator i(unused_dependencies->begin()), i_end(unused_dependencies->end()) ; i != i_end ; ++i) { if (match_package_in_set(*_imp->env, *world, **i)) continue; - if (ununused && match_package_in_set(*_imp->env, *ununused, **i)) - continue; if (_imp->uninstall_list.end() != std::find_if(_imp->uninstall_list.begin(), _imp->uninstall_list.end(), MatchUninstallListEntry(*i))) @@ -508,15 +505,12 @@ UninstallList::collect_world() const tr1::shared_ptr<PackageIDSet> result(new PackageIDSet); tr1::shared_ptr<const PackageIDSet> everything(collect_all_installed()); - tr1::shared_ptr<SetSpecTree::ConstItem> world(_imp->env->set(SetName("world"))), - ununused(_imp->env->set(SetName("ununused"))); + tr1::shared_ptr<SetSpecTree::ConstItem> world(_imp->env->set(SetName("world"))); for (PackageIDSet::ConstIterator i(everything->begin()), i_end(everything->end()) ; i != i_end ; ++i) { if (match_package_in_set(*_imp->env, *world, **i)) result->insert(*i); - else if (ununused && match_package_in_set(*_imp->env, *ununused, **i)) - result->insert(*i); } return result; |