From e83fc40bbb387d433a282cb4532c14d84721d58d Mon Sep 17 00:00:00 2001 From: Fabian Groffen Date: Fri, 4 May 2007 19:21:08 +0000 Subject: [PATCH] Merged from trunk 6470:6473 +------------------------------------------------------------------------+ | 6471 | document the behavior of `ebuild` wrt FEATURES=noauto | | SpankMan | #175444 | |----------+-------------------------------------------------------------| | 6472 | Remove news about profile masking which has been reverted | | zmedico | pending resolution of bug #170697. Thanks to Arfrever | | | Frehtes Taifersar Arahesis in #149508. | |----------+-------------------------------------------------------------| | 6473 | For bug #176765, when a new package is blocked by another | | zmedico | one that is being replaced, handle another case where the | | | conflict can be avoided. | +------------------------------------------------------------------------+ svn path=/main/branches/prefix/; revision=6475 --- NEWS | 2 -- man/ebuild.1 | 7 +++++++ pym/emerge/__init__.py | 20 +++++++++++++++++--- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/NEWS b/NEWS index 48f66e867..7b253bd5c 100644 --- a/NEWS +++ b/NEWS @@ -3,8 +3,6 @@ News (mainly features/major bug fixes) portage-2.1.3 ------------- -* Legacy "masked by: profile" support has been removed. Profiles should use - package.mask to mask unwanted versions of system packages. * Allow per-module setting of PORTAGE_ELOG_CLASSES * Add ** as new token for package.keywords to bypass the keyword visibility layer * Namespace sanitizing: move all portage related code into portage.* namespace, diff --git a/man/ebuild.1 b/man/ebuild.1 index d271bee1c..740c452da 100644 --- a/man/ebuild.1 +++ b/man/ebuild.1 @@ -18,6 +18,13 @@ bzipped tarball package out of the image, and more. This must be a valid ebuild script. For further information read \fBebuild\fR(5). .SH "COMMANDS" +By default, portage will execute all the functions in order up to the +one actually specified. For example, simply issuing the command \fBcompile\fR +will trigger the functions before it to also be run (such as \fBsetup\fR +and \fBunpack\fR). If you wish to only have the specified command run, then +you should use the \fInoauto\fR option in the \fBFEATURES\fR environment +variable. See the \fBmake.conf\fR(5) man page for more information. + .TP .BR help Shows a condensed form of this man page along with a lot of package diff --git a/pym/emerge/__init__.py b/pym/emerge/__init__.py index 9347b6e9a..cb6d6c257 100644 --- a/pym/emerge/__init__.py +++ b/pym/emerge/__init__.py @@ -1934,7 +1934,7 @@ class depgraph: # this block. upgrade_node = \ self.pkg_node_map[proot][upgrade_matches[0]] - depends_on_order.add(upgrade_node) + depends_on_order.add((upgrade_node, parent)) continue # None of the above blocker resolutions techniques apply, # so apparently this one is unresolvable. @@ -1950,13 +1950,27 @@ class depgraph: # This blocker will be handled the next time that a # merge of either package is triggered. continue + if not parent_static and pstatus == "nomerge" and \ + slot_atom in modified_slots[myroot]: + replacement = final_db.match(pslot_atom) + if replacement: + replacement_node = \ + self.pkg_node_map[proot][replacement[0]] + if replacement_node not in \ + self.blocker_parents[blocker]: + # Apparently a replacement may be able to + # invalidate this block. + blocked_node = self.pkg_node_map[proot][cpv] + depends_on_order.add( + (replacement_node, blocked_node)) + continue # None of the above blocker resolutions techniques apply, # so apparently this one is unresolvable. unresolved_blocks = True if not unresolved_blocks and depends_on_order: - for node in depends_on_order: + for node, pnode in depends_on_order: # Enforce correct merge order with a hard dep. - self.digraph.addnode(node, parent, + self.digraph.addnode(node, pnode, priority=DepPriority(buildtime=True)) # Count references to this blocker so that it can be # invalidated after nodes referencing it have been -- 2.26.2