portage.git
15 years agoBug #173284 - Do not traverse hidden directories such as .svn or .git when
Zac Medico [Sat, 15 Nov 2008 06:03:23 +0000 (06:03 -0000)]
Bug #173284 - Do not traverse hidden directories such as .svn or .git when
search for protected files. (trunk r11927:11929)

svn path=/main/branches/2.1.6/; revision=11930

15 years agoBug #236714 - Handle PortagePackageException raised from Manifest.create().
Zac Medico [Sat, 15 Nov 2008 05:09:42 +0000 (05:09 -0000)]
Bug #236714 - Handle PortagePackageException raised from Manifest.create().
(trunk r11926)

svn path=/main/branches/2.1.6/; revision=11927

15 years agoMake digestgen() handle PermissionDenied internally by returning failure, so
Zac Medico [Sat, 15 Nov 2008 05:00:34 +0000 (05:00 -0000)]
Make digestgen() handle PermissionDenied internally by returning failure, so
callers like repoman don't need exception handling. (trunk r11924)

svn path=/main/branches/2.1.6/; revision=11925

15 years agoBug #236683 - Fix PermissionDenied handling to report the exception type.
Zac Medico [Sat, 15 Nov 2008 04:51:25 +0000 (04:51 -0000)]
Bug #236683 - Fix PermissionDenied handling to report the exception type.
(trunk r11922)

svn path=/main/branches/2.1.6/; revision=11923

15 years agoBug #243022 - Inside dblink.mergeme(), when merging a directory and a symlink
Zac Medico [Sat, 15 Nov 2008 04:28:56 +0000 (04:28 -0000)]
Bug #243022 - Inside dblink.mergeme(), when merging a directory and a symlink
is in the way, verify that if points to a directory before accepting it,
otherwise move it out of the way. (trunk r11920)

svn path=/main/branches/2.1.6/; revision=11921

15 years agoBug #216190 - Make dblink.treewalk() bail out rather than install a package
Zac Medico [Sat, 15 Nov 2008 04:15:55 +0000 (04:15 -0000)]
Bug #216190 - Make dblink.treewalk() bail out rather than install a package
with file paths containing newlines. (trunk r11918)

svn path=/main/branches/2.1.6/; revision=11919

15 years agoFix new* and do* ebuild helpers to generate consistent error messages for
Zac Medico [Sat, 15 Nov 2008 02:25:05 +0000 (02:25 -0000)]
Fix new* and do* ebuild helpers to generate consistent error messages for
missing files and generate an appropriate QA Notice when such an error is
detected in the build log. Thanks to Diego 'Flameeyes' Pettenò <flameeyes@g.o>
for the suggestion. (trunk r11916)

svn path=/main/branches/2.1.6/; revision=11917

15 years agoFor consistency with earlier portage-2.1.x releases, override SetArg.__str__()
Zac Medico [Fri, 14 Nov 2008 22:28:00 +0000 (22:28 -0000)]
For consistency with earlier portage-2.1.x releases, override SetArg.__str__()
so that system and world sets don't show a leading @ character when displayed.

svn path=/main/branches/2.1.6/; revision=11915

15 years agoMake the EbuildQuote check filter out matches that appear to be an argument
Zac Medico [Fri, 14 Nov 2008 21:59:56 +0000 (21:59 -0000)]
Make the EbuildQuote check filter out matches that appear to be an argument
to a message command. For example: false || ewarn "foo $WORKDIR/bar baz"
Thanks to Diego 'Flameeyes' Pettenò <flameeyes@g.o> for reporting this
issue (currently triggered by ruby-prof-0.7.0.ebuild). (trunk r11913)

svn path=/main/branches/2.1.6/; revision=11914

15 years agoExempt live ebuilds from KEYWORDS.missing and KEYWORDS.dropped warnings.
Zac Medico [Fri, 14 Nov 2008 20:51:03 +0000 (20:51 -0000)]
Exempt live ebuilds from KEYWORDS.missing and KEYWORDS.dropped warnings.
Thanks to Jorge Manuel B. S. Vicetto <jmbsvicetto@g.o> for the suggestion.
(trunk r11911)

svn path=/main/branches/2.1.6/; revision=11912

15 years agoIn dyn_package(), use the 'assert' macro (from isolated-functions.sh) die if
Zac Medico [Fri, 14 Nov 2008 18:41:58 +0000 (18:41 -0000)]
In dyn_package(), use the 'assert' macro (from isolated-functions.sh) die if
PIPESTATUS array contains a non-zero exist status. (trunk r11907)

svn path=/main/branches/2.1.6/; revision=11910

15 years agoRemove note about preserve-libs. Thanks to Arfrever.
Zac Medico [Fri, 14 Nov 2008 17:42:01 +0000 (17:42 -0000)]
Remove note about preserve-libs. Thanks to Arfrever.

svn path=/main/branches/2.1.6/; revision=11908

15 years agoUse svn2cl --reparagraph option for better ChangeLog formatting.
Zac Medico [Fri, 14 Nov 2008 09:45:07 +0000 (09:45 -0000)]
Use svn2cl --reparagraph option for better ChangeLog formatting.

svn path=/main/branches/2.1.6/; revision=11906

15 years ago* git support for repoman (trunk r11904)
Zac Medico [Fri, 14 Nov 2008 08:01:49 +0000 (08:01 -0000)]
* git support for repoman (trunk r11904)

svn path=/main/branches/2.1.6/; revision=11905

15 years agoBug #244485 - Merge EAPI 2 docs (trunk r11889:11902).
Zac Medico [Fri, 14 Nov 2008 07:50:25 +0000 (07:50 -0000)]
Bug #244485 - Merge EAPI 2 docs (trunk r11889:11902).

svn path=/main/branches/2.1.6/; revision=11903

15 years agoHaving a leading ./ prefix on file paths can trigger a bug in
Zac Medico [Fri, 14 Nov 2008 06:16:21 +0000 (06:16 -0000)]
Having a leading ./ prefix on file paths can trigger a bug in
the cvs server when committing files to multiple directories,
so strip the prefix. Thanks to Robin H. Johnson <robbat2@g.o>
for reporting. (trunk r11896)

svn path=/main/branches/2.1.6/; revision=11897

15 years agoRemove list_preserved_libs().
Zac Medico [Fri, 14 Nov 2008 04:46:12 +0000 (04:46 -0000)]
Remove list_preserved_libs().

svn path=/main/branches/2.1.6/; revision=11895

15 years agoAdd a --changelog-rev option that truncates the ChangeLog at a specific
Zac Medico [Thu, 13 Nov 2008 20:38:28 +0000 (20:38 -0000)]
Add a --changelog-rev option that truncates the ChangeLog at a specific
revision. Also, add -i to the svn2cl options so that the actual svn revision
numbers are included in the log.

svn path=/main/branches/2.1.6/; revision=11889

15 years agoRemove --search set matching support.
Zac Medico [Thu, 13 Nov 2008 19:00:15 +0000 (19:00 -0000)]
Remove --search set matching support.

svn path=/main/branches/2.1.6/; revision=11888

15 years agoRefer to portage-2.1.6_rc1 in comment about resume opts being stored as a dict.
Zac Medico [Thu, 13 Nov 2008 18:46:24 +0000 (18:46 -0000)]
Refer to portage-2.1.6_rc1 in comment about resume opts being stored as a dict.

svn path=/main/branches/2.1.6/; revision=11887

15 years agoMake PORTAGE_BINHOST docs refer to 2.1.6 instead of 2.2.
Zac Medico [Thu, 13 Nov 2008 18:43:37 +0000 (18:43 -0000)]
Make PORTAGE_BINHOST docs refer to 2.1.6 instead of 2.2.

svn path=/main/branches/2.1.6/; revision=11886

15 years agoUpdate docs to not prefix system and world sets with the @ symbol.
Zac Medico [Thu, 13 Nov 2008 18:38:50 +0000 (18:38 -0000)]
Update docs to not prefix system and world sets with the @ symbol.

svn path=/main/branches/2.1.6/; revision=11885

15 years agoAdjust man headers to reference portage-2.1.6 instead of 2.2.
Zac Medico [Thu, 13 Nov 2008 18:29:55 +0000 (18:29 -0000)]
Adjust man headers to reference portage-2.1.6 instead of 2.2.

svn path=/main/branches/2.1.6/; revision=11884

15 years agoAdjust news and notes for 2.2 features that are included in 2.1.6.
Zac Medico [Thu, 13 Nov 2008 18:21:56 +0000 (18:21 -0000)]
Adjust news and notes for 2.2 features that are included in 2.1.6.

svn path=/main/branches/2.1.6/; revision=11883

15 years agoRemove the sets configuration docs.
Zac Medico [Thu, 13 Nov 2008 18:08:48 +0000 (18:08 -0000)]
Remove the sets configuration docs.

svn path=/main/branches/2.1.6/; revision=11882

15 years agoRemove preserve-libs support, it's API, and code that depends on it.
Zac Medico [Thu, 13 Nov 2008 08:27:47 +0000 (08:27 -0000)]
Remove preserve-libs support, it's API, and code that depends on it.

svn path=/main/branches/2.1.6/; revision=11881

15 years agoDisable set expansion inside expand_set_arguments() and emulate existing
Zac Medico [Thu, 13 Nov 2008 08:09:13 +0000 (08:09 -0000)]
Disable set expansion inside expand_set_arguments() and emulate existing
portage-2.1.x behavior which treats system and world mutually exclusive
actions.

svn path=/main/branches/2.1.6/; revision=11880

15 years agoRemove sets protection code from unmerge().
Zac Medico [Thu, 13 Nov 2008 07:18:37 +0000 (07:18 -0000)]
Remove sets protection code from unmerge().

svn path=/main/branches/2.1.6/; revision=11879

15 years agoRemove world_sets support from the WorldSet class, and hardcode "@system" as
Zac Medico [Thu, 13 Nov 2008 07:13:17 +0000 (07:13 -0000)]
Remove world_sets support from the WorldSet class, and hardcode "@system" as
the only nonatom.

svn path=/main/branches/2.1.6/; revision=11878

15 years agoUpdate all portage.sets references to point to the new location, and hardcode
Zac Medico [Thu, 13 Nov 2008 06:49:06 +0000 (06:49 -0000)]
Update all portage.sets references to point to the new location, and hardcode
the SetConfig constructor with a config for just system and world sets.

svn path=/main/branches/2.1.6/; revision=11877

15 years agoMake portage.sets private by renaming it to portage._sets.
Zac Medico [Thu, 13 Nov 2008 06:21:54 +0000 (06:21 -0000)]
Make portage.sets private by renaming it to portage._sets.

svn path=/main/branches/2.1.6/; revision=11876

15 years agoACCEPT_LICENSE support depends on definition of license groups
Zac Medico [Thu, 13 Nov 2008 06:11:29 +0000 (06:11 -0000)]
ACCEPT_LICENSE support depends on definition of license groups
in the tree, so it's disabled for now (accept anything).

svn path=/main/branches/2.1.6/; revision=11875

15 years agoUse apply_secpass_permissions() to avoid OperationNotPermitted errors when
Zac Medico [Thu, 13 Nov 2008 03:40:48 +0000 (03:40 -0000)]
Use apply_secpass_permissions() to avoid OperationNotPermitted errors when
not allowed to chown files to root uid.

svn path=/main/trunk/; revision=11873

15 years agoUse grabfile() instead of grablines(), to ignore empty lines.
Zac Medico [Thu, 13 Nov 2008 03:32:16 +0000 (03:32 -0000)]
Use grabfile() instead of grablines(), to ignore empty lines.

svn path=/main/trunk/; revision=11872

15 years agoAdd quote from GLEP 42 about permission bits.
Zac Medico [Thu, 13 Nov 2008 03:11:09 +0000 (03:11 -0000)]
Add quote from GLEP 42 about permission bits.

svn path=/main/trunk/; revision=11871

15 years agoMisc fixes and cleanups in NewsManager.
Zac Medico [Thu, 13 Nov 2008 03:08:38 +0000 (03:08 -0000)]
Misc fixes and cleanups in NewsManager.

svn path=/main/trunk/; revision=11870

15 years agoReturn early from NewsManager.updateItems() if the news path listdir call
Zac Medico [Thu, 13 Nov 2008 02:00:38 +0000 (02:00 -0000)]
Return early from NewsManager.updateItems() if the news path listdir call
fails.

svn path=/main/trunk/; revision=11869

15 years agoAlways return early from NewsManager.updateItems() if self.unread_path can't
Zac Medico [Thu, 13 Nov 2008 01:50:06 +0000 (01:50 -0000)]
Always return early from NewsManager.updateItems() if self.unread_path can't
be created.

svn path=/main/trunk/; revision=11868

15 years agoUse a simpler approach instead of implementing NewsItem.__getattr__().
Zac Medico [Wed, 12 Nov 2008 21:58:44 +0000 (21:58 -0000)]
Use a simpler approach instead of implementing NewsItem.__getattr__().

svn path=/main/trunk/; revision=11867

15 years ago* Add NewsItem.isValid() and DisplayRestriction.isValid() methods and use
Zac Medico [Wed, 12 Nov 2008 21:47:24 +0000 (21:47 -0000)]
* Add NewsItem.isValid() and DisplayRestriction.isValid() methods and use
  use them to check validity inside NewsManager.updateItems().
* Make DisplayInstalledRestriction.isValid() check validity of the atom.

svn path=/main/trunk/; revision=11866

15 years agoSort the return value from cpv_all() inside vardbapi._counter_hash() instead
Zac Medico [Wed, 12 Nov 2008 19:22:24 +0000 (19:22 -0000)]
Sort the return value from cpv_all() inside vardbapi._counter_hash() instead
of sorting them in side cpv_all(). Thanks to Brian Harring for the suggestion.

svn path=/main/trunk/; revision=11865

15 years agoInside NewsManager.updateItems(), use a mutable set for skiplist and sort the
Zac Medico [Wed, 12 Nov 2008 18:57:49 +0000 (18:57 -0000)]
Inside NewsManager.updateItems(), use a mutable set for skiplist and sort the
contents when writing the file.

svn path=/main/trunk/; revision=11864

15 years agoInstead of raising a TypeError from the NewsItem constructor, check the path
Zac Medico [Wed, 12 Nov 2008 18:43:19 +0000 (18:43 -0000)]
Instead of raising a TypeError from the NewsItem constructor, check the path
inside NewsManager.updateItems() before the NewsItem constructor is called.

svn path=/main/trunk/; revision=11863

15 years agoUse a frozenset to optimize skiplist containment checks inside
Zac Medico [Wed, 12 Nov 2008 18:32:38 +0000 (18:32 -0000)]
Use a frozenset to optimize skiplist containment checks inside
NewsManager.updateItems().

svn path=/main/trunk/; revision=11862

15 years agoBug #246451 - Inside SecuritySet._reduce(), use portdbapi.xmatch("match-all")
Zac Medico [Wed, 12 Nov 2008 02:24:42 +0000 (02:24 -0000)]
Bug #246451 - Inside SecuritySet._reduce(), use portdbapi.xmatch("match-all")
in order do be consistent with portage.glsa.getMinUpgrade() which also uses
match-all.

svn path=/main/trunk/; revision=11861

15 years agoMake post_emerge() exit early if it detects that the vdb state hasn't changed. v2.2_rc14
Zac Medico [Tue, 11 Nov 2008 19:59:49 +0000 (19:59 -0000)]
Make post_emerge() exit early if it detects that the vdb state hasn't changed.
This works by comparing a hash of the COUNTER values for all packages in the
vdb.

svn path=/main/trunk/; revision=11859

15 years agoAllow --keep-going to continue in some cases when a runtime dependency has
Zac Medico [Tue, 11 Nov 2008 19:27:51 +0000 (19:27 -0000)]
Allow --keep-going to continue in some cases when a runtime dependency has
failed to build or install. This involves pruning off the parts of the graph
containing installed packages with unsatisfied dependencies.

svn path=/main/trunk/; revision=11858

15 years agoSimplify code for cloning config instances inside Scheduler.merge().
Zac Medico [Tue, 11 Nov 2008 18:37:37 +0000 (18:37 -0000)]
Simplify code for cloning config instances inside Scheduler.merge().

svn path=/main/trunk/; revision=11856

15 years agoMake FindPortdir() fall back to have_profile_dir() checks if it can't match
Zac Medico [Tue, 11 Nov 2008 18:20:10 +0000 (18:20 -0000)]
Make FindPortdir() fall back to have_profile_dir() checks if it can't match
the current location with anything from PORTDIR_OVERLAY. Assume that an
overlay will contain at least a "repo_name" file while a master repo (portdir)
will contain at least a "profiles.desc" file.

svn path=/main/trunk/; revision=11855

15 years agoDerive the changelog_path variable from the new checkdir_relative variable.
Zac Medico [Tue, 11 Nov 2008 17:53:43 +0000 (17:53 -0000)]
Derive the changelog_path variable from the new checkdir_relative variable.

svn path=/main/trunk/; revision=11854

15 years agoMake FindPortdir() return (None, None, None) on failure, instead of raising
Zac Medico [Tue, 11 Nov 2008 17:46:49 +0000 (17:46 -0000)]
Make FindPortdir() return (None, None, None) on failure, instead of raising
a potentially ambiguous ValueError.

svn path=/main/trunk/; revision=11853

15 years agoInside have_profile_dir(), check for existence of profiles.desc since that
Zac Medico [Tue, 11 Nov 2008 17:39:55 +0000 (17:39 -0000)]
Inside have_profile_dir(), check for existence of profiles.desc since that
makes a little more sense thatn checking for package.mask.

svn path=/main/trunk/; revision=11852

15 years agoUpdate hardcoded "cvs" error messages to show the correct vcs value.
Zac Medico [Tue, 11 Nov 2008 10:19:32 +0000 (10:19 -0000)]
Update hardcoded "cvs" error messages to show the correct vcs value.

svn path=/main/trunk/; revision=11851

15 years agoFix pretend output to show git -a option when committing signed manifest.
Zac Medico [Tue, 11 Nov 2008 10:06:30 +0000 (10:06 -0000)]
Fix pretend output to show git -a option when committing signed manifest.

svn path=/main/trunk/; revision=11850

15 years agoAdd git support. Thanks to Daniel Robbins for the initial patch.
Zac Medico [Tue, 11 Nov 2008 10:04:49 +0000 (10:04 -0000)]
Add git support. Thanks to Daniel Robbins for the initial patch.

svn path=/main/trunk/; revision=11849

15 years agoFix logic from previous commit in Scheduler._choose_pkg() to ensure that
Zac Medico [Tue, 11 Nov 2008 05:39:32 +0000 (05:39 -0000)]
Fix logic from previous commit in Scheduler._choose_pkg() to ensure that
the --nodeps code is only triggered when --jobs > 1.

svn path=/main/trunk/; revision=11848

15 years agoWhen in --nodeps mode, make Scheduler._set_digraph() discard the digraph and
Zac Medico [Tue, 11 Nov 2008 05:01:58 +0000 (05:01 -0000)]
When in --nodeps mode, make Scheduler._set_digraph() discard the digraph and
make Scheduler._choose_pkg() always return the task at the front of the queue.

svn path=/main/trunk/; revision=11847

15 years agoInside depgraph.loadResumeCommand(), initialize self._scheduler_graph when
Zac Medico [Tue, 11 Nov 2008 04:41:49 +0000 (04:41 -0000)]
Inside depgraph.loadResumeCommand(), initialize self._scheduler_graph when
in --nodeps mode in order to avoid an AttributeError later when
self.schedulerGraph() is called.

svn path=/main/trunk/; revision=11846

15 years agoFix --jobs parallel scheduling to ensure that temporary simultaneous
Zac Medico [Mon, 10 Nov 2008 22:30:35 +0000 (22:30 -0000)]
Fix --jobs parallel scheduling to ensure that temporary simultaneous
installation of conflicting packages is avoided when appropriate (especially
for !!atom blockers), but allowed in specific cases that require it. This
is accomplished by reversing specific uninstall edges in the digraph, while
possibly leaving some edges in there original state.

svn path=/main/trunk/; revision=11845

15 years agoRevert r11839 since it's not necessarily desired to invert all uninstall
Zac Medico [Mon, 10 Nov 2008 16:41:05 +0000 (16:41 -0000)]
Revert r11839 since it's not necessarily desired to invert all uninstall
edges. TODO: Invert only the specific edges that the depgraph has decided
are necessary and allowed to be inverted.

svn path=/main/trunk/; revision=11844

15 years agoIn the LinkageMap.findConsumers() docstring, add a note about incompatibility
Zac Medico [Mon, 10 Nov 2008 04:10:06 +0000 (04:10 -0000)]
In the LinkageMap.findConsumers() docstring, add a note about incompatibility
with symlinks created by binutils-config.

svn path=/main/trunk/; revision=11843

15 years ago* Use noiselevel=-1 for preserve-libs ">>> needed" and "<<< !needed" messages
Zac Medico [Sun, 9 Nov 2008 23:02:33 +0000 (23:02 -0000)]
* Use noiselevel=-1 for preserve-libs ">>> needed" and "<<< !needed" messages
  so that they're show even without --verbose mode.
* Sort files for the ">>> needed" display.

svn path=/main/trunk/; revision=11842

15 years agoRemove unused formatter code in show_invalid_depstring_notice().
Zac Medico [Sun, 9 Nov 2008 22:36:06 +0000 (22:36 -0000)]
Remove unused formatter code in show_invalid_depstring_notice().

svn path=/main/trunk/; revision=11841

15 years agoMake show_invalid_depstring_notice() send output to stderr via writemsg_level().
Zac Medico [Sun, 9 Nov 2008 22:32:13 +0000 (22:32 -0000)]
Make show_invalid_depstring_notice() send output to stderr via writemsg_level().

svn path=/main/trunk/; revision=11840

15 years agoInside Scheduler._reverse_uninstall_edges(), iover all nodes rather than just
Zac Medico [Sun, 9 Nov 2008 22:18:21 +0000 (22:18 -0000)]
Inside Scheduler._reverse_uninstall_edges(), iover all nodes rather than just
the merge list, because some uninstall nodes may not be in the merge list
since they will be performed as part of an upgrade within a slot. This solves
a problem with Scheduler._choose_pkg() not parallelizing in some cases when
it should, due to an uninstall node not having it's edge reversed like it's
supposed to.

svn path=/main/trunk/; revision=11839

15 years agoMove initialization of Scheduler._background from the constructor to the
Zac Medico [Sun, 9 Nov 2008 21:29:40 +0000 (21:29 -0000)]
Move initialization of Scheduler._background from the constructor to the
merge() method so that a potential InvalidDependString exception can be
handled there, causing merge() to return unsuccessfully. This avoids having
to raise an exception from the constructor.

svn path=/main/trunk/; revision=11838

15 years agoAdd PROPERTIES=interactive support in depgraph.display() and the
Zac Medico [Sun, 9 Nov 2008 20:36:29 +0000 (20:36 -0000)]
Add PROPERTIES=interactive support in depgraph.display() and the
PackageCounters class.

svn path=/main/trunk/; revision=11837

15 years agoWhen adding parent directories to contents inside
Zac Medico [Sun, 9 Nov 2008 17:19:55 +0000 (17:19 -0000)]
When adding parent directories to contents inside
dblink._add_preserve_libs_to_contents(), account for the trailing slash on
$ROOT in the while loop.

svn path=/main/trunk/; revision=11836

15 years agoHandle a corner case inside dblink._add_preserve_libs_to_contents() in which
Zac Medico [Sun, 9 Nov 2008 16:58:36 +0000 (16:58 -0000)]
Handle a corner case inside dblink._add_preserve_libs_to_contents() in which
a path to be preserved doesn't exist in the contents of the installed instance.

svn path=/main/trunk/; revision=11835

15 years agoUpdate docstring for dblink._find_libs_to_preserve().
Zac Medico [Sun, 9 Nov 2008 16:40:43 +0000 (16:40 -0000)]
Update docstring for dblink._find_libs_to_preserve().

svn path=/main/trunk/; revision=11834

15 years agoInside vardbapi.removeFromContents(), automatically clear the contents cache
Zac Medico [Sun, 9 Nov 2008 09:21:49 +0000 (09:21 -0000)]
Inside vardbapi.removeFromContents(), automatically clear the contents cache
of the dblink instance in case an existing one was passed in.

svn path=/main/trunk/; revision=11833

15 years agoBug #243030 - In PreservedLibraryConsumerSet.load(), avoid rebuilding packages
Zac Medico [Sun, 9 Nov 2008 07:42:25 +0000 (07:42 -0000)]
Bug #243030 - In PreservedLibraryConsumerSet.load(), avoid rebuilding packages
just because they contain preserved libs that happen to be consumers of other
preserved libs.

svn path=/main/trunk/; revision=11832

15 years agoBug #245362 - Rewrite preserve-libs preservation code so that it always relies
Zac Medico [Sun, 9 Nov 2008 07:14:09 +0000 (07:14 -0000)]
Bug #245362 - Rewrite preserve-libs preservation code so that it always relies
on inode comparisons rather than string comparisons. Instead of injecting
libraries into $D before the files are merged, the preservation code now
executes after the files are merged but before the old version is unmerged.
After determining which libs to preserve, the CONTENTS are updated to include
those libs. The PreservedLibsRegistry.register() call is now done just after
the temporary vdb entry has been moved into place, guaranteeing that a valid
vdb entry is in place so that the unregistration code from bug #210501 is no
longer needed.

svn path=/main/trunk/; revision=11831

15 years agoInside LinkageMap, use self._obj_key() whenever possible.
Zac Medico [Sun, 9 Nov 2008 02:03:32 +0000 (02:03 -0000)]
Inside LinkageMap, use self._obj_key() whenever possible.

svn path=/main/trunk/; revision=11830

15 years agoFix $ROOT handlink inside display_preserved_libs().
Zac Medico [Sat, 8 Nov 2008 18:29:23 +0000 (18:29 -0000)]
Fix $ROOT handlink inside display_preserved_libs().

svn path=/main/trunk/; revision=11829

15 years agoWith python-2.6, importing the Crypto.Hash.MD5 and Crypto.Hash.SHA modules
Zac Medico [Sat, 8 Nov 2008 05:12:04 +0000 (05:12 -0000)]
With python-2.6, importing the Crypto.Hash.MD5 and Crypto.Hash.SHA modules
from pycrypto triggers warnings since those modules are implemented using
the deprecated md5 and sha modules from python's stdlib. So, in order to
avoid the warning and the inferior hash implementations that come with them,
never use these particular modules from pycrypto. Instead, use hashlib or
directly use stdlib's md5 and sha modules if necessary. Thanks to Markus
Peloquin for reporting.

svn path=/main/trunk/; revision=11828

15 years agoHandle CommandNotFound exceptions if the scanelf binary happens to be missing,
Zac Medico [Sat, 8 Nov 2008 00:55:40 +0000 (00:55 -0000)]
Handle CommandNotFound exceptions if the scanelf binary happens to be missing,
and disable preserve-libs code in that case.

svn path=/main/trunk/; revision=11827

15 years agoIn LinkageMap.rebuild(), immediately raise a CommandNotFound exception if
Zac Medico [Fri, 7 Nov 2008 22:18:33 +0000 (22:18 -0000)]
In LinkageMap.rebuild(), immediately raise a CommandNotFound exception if
scanelf is missing since otherwise it will lead to a KeyError later on
from findConsumers or findProviders. This will allow the caller to handle
the CommandNotFound exception if necessary, and skip any findConsumers or
findProviders since they won't be able to return valid results.

svn path=/main/trunk/; revision=11826

15 years agoHandle a potential OSError that occurs if the scanelf binary is missing
Zac Medico [Fri, 7 Nov 2008 21:52:48 +0000 (21:52 -0000)]
Handle a potential OSError that occurs if the scanelf binary is missing
when LinkageMap.rebuild() is called.

svn path=/main/trunk/; revision=11825

15 years agoReplace NEEDED.ELF.2 strings with references to LinkageMap._needed_aux_key.
Zac Medico [Fri, 7 Nov 2008 21:40:21 +0000 (21:40 -0000)]
Replace NEEDED.ELF.2 strings with references to LinkageMap._needed_aux_key.

svn path=/main/trunk/; revision=11824

15 years agoImprove the error message that's generated in LinkageMap.rebuild() for corrupt
Zac Medico [Fri, 7 Nov 2008 21:18:44 +0000 (21:18 -0000)]
Improve the error message that's generated in LinkageMap.rebuild() for corrupt
NEEDED.ELF.2 entries.

svn path=/main/trunk/; revision=11823

15 years agoWhen calling scanelf inside LinkageMap.rebuild(), join paths with $ROOT when
Zac Medico [Fri, 7 Nov 2008 21:04:45 +0000 (21:04 -0000)]
When calling scanelf inside LinkageMap.rebuild(), join paths with $ROOT when
generating the arguments and then strip $ROOT from the paths in the output.

svn path=/main/trunk/; revision=11822

15 years agoFix LinkageMap.rebuild() so that the data from include_file overrides the
Zac Medico [Fri, 7 Nov 2008 18:20:57 +0000 (18:20 -0000)]
Fix LinkageMap.rebuild() so that the data from include_file overrides the
data from any previously installed files. This prevent possible corruption
of the data since only one set of data can be correct for a given file.

svn path=/main/trunk/; revision=11821

15 years agoWhen using the `read` builtin to split newlines in e* function arguments, use
Zac Medico [Fri, 7 Nov 2008 16:56:04 +0000 (16:56 -0000)]
When using the `read` builtin to split newlines in e* function arguments, use
$REPLY in order to ensure that whitespace in each line is correctly preserved.
Thanks to Joe Peterson <lavajoe@g.o> for reporting.

svn path=/main/trunk/; revision=11820

15 years agoCombine redundant arch_map code inside LinkageMap.rebuild().
Zac Medico [Fri, 7 Nov 2008 16:23:36 +0000 (16:23 -0000)]
Combine redundant arch_map code inside LinkageMap.rebuild().

svn path=/main/trunk/; revision=11819

15 years agoSwap the locations of the arch and soname keys inside LinkageMap._libs in
Zac Medico [Fri, 7 Nov 2008 16:09:59 +0000 (16:09 -0000)]
Swap the locations of the arch and soname keys inside LinkageMap._libs in
order to conserve memory. This new branching layout uses fewer dict instances
since the number of sonames is much larger than the number of archs.

svn path=/main/trunk/; revision=11818

15 years agoInside LinkageMap._libs, use a SlotDict to store consumers and providers,
Zac Medico [Fri, 7 Nov 2008 15:39:35 +0000 (15:39 -0000)]
Inside LinkageMap._libs, use a SlotDict to store consumers and providers,
to use less memory than a normal dict.

svn path=/main/trunk/; revision=11817

15 years agoBug #245932 - Pass use_mask and use_force parameters into recursive
Zac Medico [Fri, 7 Nov 2008 08:56:55 +0000 (08:56 -0000)]
Bug #245932 - Pass use_mask and use_force parameters into recursive
_expand_new_virtuals() calls, fixing a TypeError which is triggered inside
portage.dep._use_dep._eval_qa_conditionals().

svn path=/main/trunk/; revision=11816

15 years agoRemove the special package.keywords mask warning from bug #223447 since
Zac Medico [Thu, 6 Nov 2008 20:27:03 +0000 (20:27 -0000)]
Remove the special package.keywords mask warning from bug #223447 since
--depclean now uses the depgraph class and therefore should be more
consistent with the update algorithm.

svn path=/main/trunk/; revision=11815

15 years agoBug #245661 - Never enable --complete-graph automatically since it's confusing
Zac Medico [Thu, 6 Nov 2008 20:08:02 +0000 (20:08 -0000)]
Bug #245661 - Never enable --complete-graph automatically since it's confusing
for users.

svn path=/main/trunk/; revision=11814

15 years agoIn Atom.__setattr__(), include inputs in case it helps for debugging with
Zac Medico [Thu, 6 Nov 2008 04:56:17 +0000 (04:56 -0000)]
In Atom.__setattr__(), include inputs in case it helps for debugging with
derived classes. Thanks to Brian Harring for the suggestion.

svn path=/main/trunk/; revision=11813

15 years agoOverride Atom.__setattr__() to make Atom instances immutable. Thanks to Brian
Zac Medico [Wed, 5 Nov 2008 23:55:17 +0000 (23:55 -0000)]
Override Atom.__setattr__() to make Atom instances immutable. Thanks to Brian
Harring for the suggestion.

svn path=/main/trunk/; revision=11812

15 years agoFix broken reference to self inside unmerge().
Zac Medico [Tue, 4 Nov 2008 23:43:38 +0000 (23:43 -0000)]
Fix broken reference to self inside unmerge().

svn path=/main/trunk/; revision=11809

15 years agoSynchronize portage update/restart logic in dblink.merge() and
Zac Medico [Tue, 4 Nov 2008 17:52:04 +0000 (17:52 -0000)]
Synchronize portage update/restart logic in dblink.merge() and
depgraph.display() so it's consistent with Scheduler._is_restart_necessary().
Thanks to Jeremy Olexa <darkside@g.o> for reporting.

svn path=/main/trunk/; revision=11808

15 years agoFree some memory by clearing the LinkageMap cache when it's not needed.
Zac Medico [Tue, 4 Nov 2008 07:55:01 +0000 (07:55 -0000)]
Free some memory by clearing the LinkageMap cache when it's not needed.

svn path=/main/trunk/; revision=11807

15 years agoBug #245362 - Use tuples of (device, inode) for all path comparisons inside
Zac Medico [Tue, 4 Nov 2008 07:40:34 +0000 (07:40 -0000)]
Bug #245362 - Use tuples of (device, inode) for all path comparisons inside
LinkageMap, so that they work regardless of path differences due to symlinked
directories. TODO: Fix other preserve-libs code, such as
dblink._preserve_libs(), to use this approach for path comparisons.

svn path=/main/trunk/; revision=11806

15 years agoBug #245358 - For unsatisfied dependencies, display the parent nodes and the
Zac Medico [Mon, 3 Nov 2008 08:00:07 +0000 (08:00 -0000)]
Bug #245358 - For unsatisfied dependencies, display the parent nodes and the
argument that pulled them in.

svn path=/main/trunk/; revision=11805

15 years agoBug #245356 - Filter POSIXLY_CORRECT from the ebuild environment since it
Zac Medico [Mon, 3 Nov 2008 06:52:57 +0000 (06:52 -0000)]
Bug #245356 - Filter POSIXLY_CORRECT from the ebuild environment since it
breaks stuff.

svn path=/main/trunk/; revision=11804

15 years agoMake metadata.missing and metadata.bad fatal by removing them from the
Zac Medico [Sun, 2 Nov 2008 21:44:28 +0000 (21:44 -0000)]
Make metadata.missing and metadata.bad fatal by removing them from the
qawarnings set. Thanks to Robin H. Johnson <robbat2@g.o> for the suggestion.

svn path=/main/trunk/; revision=11803

15 years agoImport shutil globally.
Zac Medico [Sun, 2 Nov 2008 20:04:30 +0000 (20:04 -0000)]
Import shutil globally.

svn path=/main/trunk/; revision=11802