summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/depgraph.py
Commit message (Collapse)AuthorAgeFilesLines
* In depgraph._load_vdb(), after calling FakeVartree.sync(), updateZac Medico2010-09-131-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | self._frozen_config.pkgsettings so that it has populated virtuals. This solves allows us to avoid triggering an AssertionError reported at http://forums.gentoo.org/viewtopic-t-844519.html with the following traceback: Calculating dependencies... done! Traceback (most recent call last): File "/usr/bin/emerge", line 43, in <module> retval = emerge_main() File "/usr/lib/portage/pym/_emerge/main.py", line 1683, in emerge_main myopts, myaction, myfiles, spinner) File "/usr/lib/portage/pym/_emerge/actions.py", line 204, in action_build settings, trees, mtimedb, myopts, myparams, spinner) File "/usr/lib/portage/pym/_emerge/depgraph.py", line 6047, in resume_depgraph myparams, spinner) File "/usr/lib/portage/pym/_emerge/depgraph.py", line 6070, in _resume_depgraph skip_masked=skip_masked) File "/usr/lib/portage/pym/_emerge/depgraph.py", line 5617, in _loadResumeCommand if not self._add_pkg(task, None): File "/usr/lib/portage/pym/_emerge/depgraph.py", line 893, in _add_pkg pkgsettings.setinst(pkg.cpv, pkg.metadata) File "/usr/lib/portage/pym/portage/package/ebuild/config.py", line 1757, in setinst self._virtuals_manager.add_depgraph_virtuals(mycpv, virts) File "/usr/lib/portage/pym/portage/package/ebuild/_config/VirtualsManager.py", line 199, in add_depgraph_virtuals self.getvirtuals() File "/usr/lib/portage/pym/portage/package/ebuild/_config/VirtualsManager.py", line 156, in getvirtuals self._compile_virtuals() File "/usr/lib/portage/pym/portage/package/ebuild/_config/VirtualsManager.py", line 131, in _compile_virtuals "any query about virtuals" AssertionError: _populate_treeVirtuals() must be called before any query about virtuals
* Don't miss a "missing IUSE" because of [foo?] -> [] evaluations.Sebastian Luther2010-09-131-15/+14
| | | | This patch also drops flags with EAPI 4 use dep defaults from use.required.
* Ensure that depgraph._show_unsatisfied_dep() doesn't suggest changesZac Medico2010-09-101-0/+15
| | | | to masked or forced USE flags.
* In depgraph._show_unsatisfied_dep(), if the child package is masked then aZac Medico2010-09-101-0/+7
| | | | | change to parent USE is not a valid solution (a normal mask message should be displayed instead).
* Fix typo in comment.Arfrever Frehtes Taifersar Arahesis2010-09-081-1/+1
|
* Bug #332719 - For removal operations, use _dep_check_composite_dbZac Medico2010-09-081-10/+39
| | | | | for availability and visibilty checks. This provides consistency with install operations, so we don't get install/uninstall cycles.
* Make previous commit reference self._depgraph._pkg_visibility_check().Zac Medico2010-09-081-1/+1
|
* In depgraph._dep_check_composite_db._visible(), wrap installed packageZac Medico2010-09-081-1/+1
| | | | visiblity checks with self._pkg_visibility_check().
* Move the Scheduler mergelist constructor parameter to the graph_configZac Medico2010-09-061-4/+7
| | | | object.
* Fix depgraph._wrapped_select_pkg_highest_available_imp() to checkZac Medico2010-09-061-1/+3
| | | | | USE settings for installed packages when --newuse is enabled in cases when none of the packages match a given USE dep.
* Make the depgraph and FakeVartree cooperate to consistently createZac Medico2010-09-061-1/+5
| | | | | Package instances whose root_config attribute is a specially optimized RootConfig that has a FakeVartree instead of a real vartree.
* In depgraph.schedulerGraph(), make sure all references are brokenZac Medico2010-09-061-0/+1
| | | | to packages in the FakeVartrees.
* Make depgraph.schedulerGraph() return an instance ofZac Medico2010-09-061-1/+23
| | | | | | | _scheduler_graph_config instead of just a digraph. This new object includes instances of FakeVartree and a package cache that is pruned to contain only installed packages or those in the digraph.
* Fix want_restart_for_use_change() to flatten deps before comparing tokens as ↵Sebastian Luther2010-09-051-2/+2
| | | | sets.
* Fix depgraph._wrapped_select_pkg_highest_available_imp() to checkZac Medico2010-09-051-1/+1
| | | | USE settings for installed packages when --newuse is enabled.
* Account for package.use.force/mask in previous commit.Zac Medico2010-09-031-2/+4
|
* autounmask: Don't print masked/forced flags in "required by" commentsSebastian Luther2010-09-031-0/+4
|
* Old "Change USE" message: Don't screw up if the highest version is masked ↵Sebastian Luther2010-09-031-7/+17
| | | | and parent changes exist
* Bug #335642 - Also make show_masked_packages() display to stdout sinceZac Medico2010-09-011-2/+2
| | | | depgraph._show_unsatisfied_dep() calls it.
* Bug #335642 - Revert depgraph._show_unsatisfied_dep() to display toZac Medico2010-09-011-14/+14
| | | | | | | | | stdout, so that app-portage/autounmask continues to work. Note that depgraph.display_problems() temporarily overrides the stdout stream to point to stderr, so mask messages shown there continue to go to stderr. Maybe the emerge --autounmask will eventually make app-portage/autounmask obsolete, but for now we should support both approaches since emerge --autounmask is relatively experimental.
* Fix depgraph._serialize_tasks() so that portage-9999 is always promotedZac Medico2010-08-311-1/+3
| | | | to the front of the merge list when it is reinstalled.
* When portage updates itself and the new version either inheritsZac Medico2010-08-311-1/+3
| | | | | | | | | git.eclass or has 9999 in its version, trigger the 'use copy of current sources for install, then restart portage' routine. This is required since with the live git portage-9999 ebuild we can't use the version to detect incompatible changes to ebuild.sh. This issue was noticed due to recent versions of ebuild.sh expecting PORTAGE_BZIP2_COMMAND to be set, causing incompatibility with installed portage-9999 instances.
* Rename the portage.sets module to portage._sets since it will be usefulZac Medico2010-08-301-2/+2
| | | | | in the upcoming 2.1.9 branch which will not have sets support but will still have the code in private and disabled form.
* Fix some typos.Arfrever Frehtes Taifersar Arahesis2010-08-291-1/+1
|
* If there are circular dependencies, and circular_dependency_handlerZac Medico2010-08-281-3/+6
| | | | | | doesn't have a message, eliminate root nodes before calling digraph.debug_print(). If --debug is enabled then do this even if circular_dependency_handler has a message.
* In depgraph._show_unsatisfied_dep(), show some debug info ifZac Medico2010-08-281-5/+12
| | | | Atom.violated_conditionals() raises InvalidAtom.
* Fix breakage from previous commit.Zac Medico2010-08-261-0/+2
|
* Use Package.visible to simplify visibility checks for installedZac Medico2010-08-261-11/+1
| | | | packages, no that it accounts for invalid metadata.
* Ensure SystemExit is never caught.Zac Medico2010-08-261-2/+2
|
* Remove obsolete TODO comment.Zac Medico2010-08-251-3/+0
|
* Just raise InvalidDependString in cases when it shouldn't happen sinceZac Medico2010-08-251-11/+7
| | | | | the package is not installed and it should have been validated and masked already if necessary.
* Make _get_masking_status() return masking reasons for installed packagesZac Medico2010-08-251-11/+9
| | | | | | | with invalid metadata, and remove show_invalid_depstring_notice() calls for installed packages since depgraph.display_problems() will now show the invalid metadata masking reasons when it displays installed packages that are masked.
* Bug #334365 - Fix depgraph._wrapped_select_pkg_highest_available_imp()Zac Medico2010-08-251-4/+20
| | | | | | to avoid invalid or masked installed packages when necessary. This is especially important for invalid packages since they need be replaced so that their dependencies can be parsed for --depclean operations.
* Bug #334365 - Mask packages with invalid metadata as early as possible,Zac Medico2010-08-251-11/+10
| | | | | | so that the depgraph won't select them unless they are already installed and there is no other choice. This should trigger automatic reinstallation of installed packages that have invalid metadata.
* Bug #334365 - When parsing dependencies of installed packages inZac Medico2010-08-251-2/+27
| | | | | | | | | | | depgraph._add_pkg_deps(), ignore invalid USE conditionals, since these are a common problem and it's practical to ignore them for installed packages. TODO: For installed package, save any InvalidDependString info in dynamic_config and wait until display_problems() to show it. For packages that aren't installed, we should validate and mask them before they are selected.
* More _pkg_use_enabled fixesSebastian Luther2010-08-241-18/+22
|
* * Use iterators instead of keys() when possible.Zac Medico2010-08-231-8/+8
| | | | | | * Use iterators instead of sets for set.intersection() calls. * Use digraph.__iter__ and __contains__ as shortcuts to digraph.nodes access.
* In depgraph._select_pkg_highest_available_imp(), make sureZac Medico2010-08-231-1/+2
| | | | | allow_unstable_keywords is True before adding a package to _needed_unstable_keywords.
* Pass a keyword hint from getmaskingstatus() to the autounmask code.Zac Medico2010-08-231-2/+11
|
* Fix broken writemsg call in depgraph._resolve() that triggers this error:Zac Medico2010-08-211-1/+1
| | | | TypeError: writemsg() got an unexpected keyword argument 'file'
* --autounmask: If we can't do a change because of REQUIRED_USE, give at least ↵Sebastian Luther2010-08-201-11/+41
| | | | a good error message
* --autounmask: Don't do use changes if they violate REQUIRED_USESebastian Luther2010-08-201-19/+32
| | | | This also fixes some pkg.use.enabled / _pkg_use_enabled(pkg) bugs
* slot collision handler: Work correctly with --autounmaskSebastian Luther2010-08-201-3/+1
|
* Add experimental EPREFIX/EROOT support to the config and vartreeZac Medico2010-08-191-4/+1
| | | | | | | | | classes, and use it in ResolverPlayground to emulate a prefix-like environment. This fixes ResolverPlayground so that it doesn't have to abuse the --root and --root-deps options in order to create a testing environment. Instead it simply creates a temporary EPREFIX. WARNING: EPREFIX/EROOT support is experimental and may be incomplete for cases in which EPREFIX is non-empty.
* Rename the bdeps_root variable to depend_root, since it's used to controlZac Medico2010-08-191-4/+4
| | | | | DEPEND and in the future we may have separate build-time dep types for host and target.
* Eliminate the bdeps_optional variables inside depgraph._add_pkg_deps(),Zac Medico2010-08-191-4/+3
| | | | and use the pkg.built attribute instead.
* Move the clever parts of depgraph._show_circular_deps into its own module.Sebastian Luther2010-08-191-155/+13
| | | | This also fixes some bugs related to autounmask.
* cycle-finder: Don't try to change flags that are in use.{make,focrce}Sebastian Luther2010-08-191-16/+5
|
* When suggesting solutions inside _show_circular_deps(), ignore solutionsZac Medico2010-08-181-0/+16
| | | | that involve changes to use.mask or use.force settings.
* Fix deprecation warnings from paren_reduce.Zac Medico2010-08-181-2/+2
|