=============================================================================
2.1.5
2008-05-14
branches/2.1.2 revision 10338
=============================================================================


RELEASE-NOTES
  10338 zmedico  Add a note about interaction between
                 FEATURES="metadata-transfer" and eclasses from
                 PORTDIR_OVERLAY that override eclasses from PORTDIR. (trunk
                 r10337)


bin/ebuild.sh
  10330 zmedico  Prefer deb2tgz over ar for unpacking .deb files when
                 installed (patch by Fabian Groffen,
                 http://archives.gentoo.org/gentoo-portage-dev/msg_2f9c8543016f1a96f9122aca0ec35ded.xml)
                 (trunk r10327)


bin/emerge
  10287 zmedico  If the uninstall task did not need to be executed because of
                 an upgrade, display Blocker -> Upgrade edges since the
                 corresponding Blocker -> Uninstall edges will not be shown.
                 (trunk r10286)
  10311 zmedico  In the warning about eclasses in overlay overriding eclasses
                 from PORTDIR, also advise the user to add
                 FEATURES="metadata-transfer" to make.conf. (trunk r10310)
  10331 zmedico  Remove 'eselect compiler' references (trunk r10328)


bin/repoman
  10334 zmedico  Bug #221537 - Add a new "RDEPEND.suspect" check for packages
                 in RDEPEND that usually only belong in DEPEND. (trunk
                 r10333)
  10336 zmedico  Skip blocker atoms for the RDEPEND.suspect check. (trunk
                 r10335)


cnf/make.conf
man/emaint.1
  10292 zmedico  Merge from trunk: Add back the warning for DISTDIR about
                 storing stuff inside PORTDIR. Sync make.conf.example with
                 make.conf.5 for bug #220111. Bug #220111 - Update the
                 DISTDIR docs to clarify that it's safe to remove any and all
                 files from this location after packages are built. Make the
                 summary more accurate.


doc/dependency_resolution/package_modeling.docbook
  10285 zmedico  eachother -> each other (trunk r10284)
  10317 zmedico  Describe how we limit the probability that temporary
                 simultaneous installation of blocking packages will cause
                 some sort of problem. (trunk r10316)
  10319 zmedico  capitalize Portage (trunk r10318)


man/make.conf.5
  10292 zmedico  Merge from trunk: Add back the warning for DISTDIR about
                 storing stuff inside PORTDIR. Sync make.conf.example with
                 make.conf.5 for bug #220111. Bug #220111 - Update the
                 DISTDIR docs to clarify that it's safe to remove any and all
                 files from this location after packages are built. Make the
                 summary more accurate.
  10315 zmedico  Bug #220533 - Document FEATURES="skiprocheck". (trunk
                 r10314)
  10321 zmedico  fix man markup for PORTAGE_FETCH_RESUME_MIN_SIZE (trunk
                 r10320)


man/repoman.1
  10334 zmedico  Bug #221537 - Add a new "RDEPEND.suspect" check for packages
                 in RDEPEND that usually only belong in DEPEND. (trunk
                 r10333)


pym/output.py
  10332 zmedico  add xterm-color and interix to list of valid terminals
                 (trunk r10329)


pym/portage.py
pym/portage_util.py
  10294 zmedico  Bug #221755 - Enable variable substitution in make.defaults
                 to work accross multiple files instead of being confined to
                 a single file. This allows profiles to create
                 incremental-like behavior with non-incremental variables
                 when desired. (trunk r10293)
  10298 zmedico  Fix the variable subsitution code from bug #221755 so that
                 variable assignments from earlier files don't leak into
                 variable assignments from later files (except through
                 substitution). (trunk r10294:10297)


pym/portage_versions.py
  10323 zmedico  Check vercmp() return value to avoid arbitrary results in
                 case it returns None (trunk r10322)


=============================================================================
2.1.5_rc10
2008-05-10
branches/2.1.2 revision 10282
=============================================================================


bin/emerge
  10278 zmedico  Fix another KeyError, reported in Bug #221107, comment #4.
                 There's no need to remove uninstall tasks from
                 scheduled_uninstalls, so just keep them in there. (trunk
                 r10277)
  10280 zmedico  When selecting leaf nodes, if there is a mix of merge and
                 uninstall nodes, save the uninstall nodes from later since
                 sometimes a merge node will render an install node
                 unnecessary, and we want to avoid doing a separate uninstall
                 task in that case. (trunk r10279)
  10282 zmedico  Always include satisfied blockers as an indicator that
                 blocking packages will be temporarily installed
                 simultaneously. (trunk r10281)


=============================================================================
2.1.5_rc9
2008-05-09
branches/2.1.2 revision 10276
=============================================================================


bin/emerge
  10272 zmedico  Bug #221107 - Fix depgraph._serialize_tasks() so that it
                 doesn't try to schedule an uninstall task that's already
                 been scheduled but hasn't been executed yet due to
                 dependence on installation of blocking packages. (trunk
                 r10271)
  10274 zmedico  Bug #221071 - Prevent display_problems() from redundantly
                 displaying the exact same merge list a second time. (trunk
                 r10273)
  10276 zmedico  Bug #221053 - Save the resume list before verifying the
                 ebuild Manifests since it might be possible for the user to
                 use --resume --skipfirst get past a non-essential package
                 with a broken digest. (trunk r10275)


doc/dependency_resolution/package_modeling.docbook
  10270 zmedico  Describe how file collisions between blocking packages are
                 resolved when they are temporarily installed simultaneously.
                 (trunk r10269)


=============================================================================
2.1.5_rc8
2008-05-09
branches/2.1.2 revision 10267
=============================================================================


bin/dodoc
  10236 zmedico  Bug #220775 - Source isolated-functions.sh before trying to
                 call vecho. (trunk r10235)


bin/emerge
  10226 zmedico  Tolerate InvalidDependString exceptions when checking
                 visibility of installed packages. (trunk r102240
  10227 zmedico  Instead of doing automatic uninstalls in advance, install
                 conflicting packages first and then do the uninstall
                 afterwards. This requires special handling for file
                 collisions occur, but it's preferred because it ensures that
                 package files remain installed in a usable state whenever
                 possible. When file collisions occur between conflicting
                 packages, the contents entries for those files are removed
                 from the packages that are scheduled for uninstallation.
                 This prevents uninstallation operations from removing
                 overlapping files that have been claimed by conflicting
                 packages. (trunk r10225)
  10228 zmedico  Fix namespace breakage.
  10230 zmedico  Fix findInstalledBlockers() to check for blockers in both
                 directions. (trunk r10229)
  10234 zmedico  Bug #220689 - Fix package selection logic so that it doesn't
                 trigger the code path from bug 219369 in some unwanted
                 cases. (trunk r10233)
  10238 zmedico  Bug #220341 - USE=multislot can make an installed package
                 appear as if it doesn't satisfy a slot dependency.
                 Rebuilding the ebuild won't do any good as long as
                 USE=multislot is enabled since the newly built package still
                 won't have the expected slot. Therefore, assume that such
                 SLOT dependencies are already satisfied rather than forcing
                 a rebuild. (trunk r10237)
  10240 zmedico  Don't save "uninstall" tasks in the resume list since
                 they'll be regenerated by dependency calculations upon
                 resume. (trunk r10239)
  10242 zmedico  Remove unnecessary BlockerDB and BlockerCache
                 _installed_pkgs attributes. (trunk r10241)
  10247 zmedico  Remove stale uninstall tasks from scheduled_uninstalls when
                 necessary. (trunk r10246)
  10253 zmedico  Bug #220987 - Fix UnboundLocalError for 'skip' that only
                 occurs when using alternate ROOT. Thanks to Ryan Tandy
                 <tarpman@gmail.com>. (trunk r10252)
  10255 zmedico  Optimize BlockerDB.findInstalledBlockers() so that it
                 doesn't unnecessarily try to match packages against an empty
                 set of blocker atoms. (trunk r10254)
  10257 zmedico  Make the fix for bug #220341 better by checking all selected
                 packages for matching cpv rather than just the last one.
                 (trunk r10256)
  10259 zmedico  Allow scheduled uninstalls to be selected the same way as
                 other leaf nodes. (trunk r10258)
  10261 zmedico  Use set.instersection() instead of a for loop. (trunk
                 r10260)
  10263 zmedico  If an uninstall task fails inside MergeTask.merge(), use an
                 UninstallFailure exception to handle it instead of allowing
                 unmerge() to call exit(). (trunk r10262)
  10265 zmedico  For the "blockers" parameter that's passed into the dblink
                 constructor now, make it a callable since it really
                 shouldn't be called until the vdb lock has been acquired.
                 (trunk r10264)
  10267 zmedico  Simplify code for derived Package attributes. (trunk r10266)


bin/misc-functions.sh
  10221 zmedico  In install_mask(), discard stderr messages from the 'find'
                 command since some tokens from INSTALL_MASK can trigger lots
                 of warnings and errors that are irrelevant for our purposes.
                 (trunk r10220)


doc/dependency_resolution/task_scheduling.docbook
  10227 zmedico  Instead of doing automatic uninstalls in advance, install
                 conflicting packages first and then do the uninstall
                 afterwards. This requires special handling for file
                 collisions occur, but it's preferred because it ensures that
                 package files remain installed in a usable state whenever
                 possible. When file collisions occur between conflicting
                 packages, the contents entries for those files are removed
                 from the packages that are scheduled for uninstallation.
                 This prevents uninstallation operations from removing
                 overlapping files that have been claimed by conflicting
                 packages. (trunk r10225)


man/color.map.5
  10223 zmedico  Fix spelling of "SATISFIED". Thanks to Arfrever. (trunk
                 r10222)


pym/portage.py
  10227 zmedico  Instead of doing automatic uninstalls in advance, install
                 conflicting packages first and then do the uninstall
                 afterwards. This requires special handling for file
                 collisions occur, but it's preferred because it ensures that
                 package files remain installed in a usable state whenever
                 possible. When file collisions occur between conflicting
                 packages, the contents entries for those files are removed
                 from the packages that are scheduled for uninstallation.
                 This prevents uninstallation operations from removing
                 overlapping files that have been claimed by conflicting
                 packages. (trunk r10225)
  10232 zmedico  Don't use try/finally to close atomic_ofstream since we
                 don't want to call close() on this stream if an error
                 occurs. (trunk r10231)
  10251 zmedico  Make some confmem behavior modifications in order to try and
                 make it less confusing for people who have forgotten about
                 the --noconfmem option or are completely unaware of it.
                 Thanks to Joe Peterson <lavajoe@gentoo.org> for suggesting
                 these: * Always behave like --noconfmem is enabled for
                 downgrades. * Purge confmem entries when a package is
                 unmerged rather than replaced. (trunk r10250)
  10265 zmedico  For the "blockers" parameter that's passed into the dblink
                 constructor now, make it a callable since it really
                 shouldn't be called until the vdb lock has been acquired.
                 (trunk r10264)


=============================================================================
2.1.5_rc7
2008-05-06
branches/2.1.2 revision 10219
=============================================================================


RELEASE-NOTES
   9960 zmedico  Add a note about automatic uninstallation to solve blockers.
                 (trunk r9959)


bin/emerge
   9957 zmedico  Bug #172812 - Automatically uninstall packages to avoid
                 blocker conflicts. (trunk r9944:9956)
   9958 zmedico  Combine --nodeps spinner logic. (trunk r9953)
   9966 zmedico  Bug #172812 - If any Uninstall tasks need to be executed in
                 order to avoid a conflict, complete the graph with any
                 dependencies that may have been initially neglected (to
                 ensure that unsafe Uninstall tasks are properly identified
                 and blocked from execution). (trunk r9962:9965)
   9969 zmedico  Add some more spinner.update() calls in possibly time
                 consuming loops. (trunk r9968)
   9974 zmedico  Don't show "world" twice in the xterm titles. Thanks to
                 armin76 for reporting.
   9975 zmedico  Don't duplicate "system" in xterm titles either.
   9984 zmedico  Refactor the way that depgraph.altlist(), _complete_graph(),
                 and validate_blockers() interact with eachother. This
                 simplifies things by eliminating the need for recursive
                 calls to validate_blockers(). (trunk r9977)
   9985 zmedico  * Add a Blocker class to use instead of tuples. * Fix the
                 Task constructor to properly traverse __slots__ of all
                 inherited classes. (trunk r9979)
   9986 zmedico  Don't assume that altlist() will succeed inside
                 display_problems(). (trunk r9980)
   9987 zmedico  Use digraphs to clean up blocker reference counting in the
                 depgraph. (trunk r9981)
   9988 zmedico  Add a PackageVirtualDbapi.copy() method. (trunk r9982)
   9989 zmedico  Bug #172812 - When a package needs to be uninstalled in
                 advance rather than through replacement, show the
                 corresponding [blocks] entries in the displayed list. In
                 order to show more structure in the --tree display, expand
                 Package -> Uninstall edges into Package -> Blocker ->
                 Uninstall edges. Also, create edges between a package's own
                 blockers and it's Uninstall task since it's blockers become
                 irrelevant as soon as it's uninstalled. (trunk r9983)
   9991 zmedico  Remove unnecessary "mydbapi" variable in depgraph.display().
                 (trunk r9990)
   9993 zmedico  Create a digraph.difference_update() method and use it to
                 amortize the cost of removing nodes from the digraph.order
                 list. (trunk r9992)
   9995 zmedico  Take the classes that initialize variables in __slots__ with
                 keyword constructor arguments and make them all derive from
                 a new SlotObject class. (trunk r9994)
  10002 zmedico  Bug #219369 - Enable automatic upgrage or downgrade to a
                 version with visible KEYWORDS when the installed version is
                 masked by KEYWORDS, but never reinstall the same exact
                 version only due to a KEYWORDS mask. (trunk r10001)
  10004 zmedico  Never uninstall sys-apps/portage except through replacement.
                 (trunk r10003)
  10010 zmedico  * Remove the only remaining sys.exit() calls inside the
                 depgraph class. * Fix _unknown_internal_error() to work with
                 zero arguments. (trunk r10005)
  10012 zmedico  Bug #218854 - Fix depgraph._iter_atoms_for_pkg() so that
                 argument atoms only match the highest visible slot. (trunk
                 r10006:10008)
  10015 zmedico  Fix PackageVirtualDbapi.cpv_inject() to make sure packages
                 with duplicate cpv or slot are handled correctly. (trunk
                 r10014)
  10021 zmedico  Add comma to ("__weakref__",) so that it's a tuple instead
                 of a string. Thanks to ferringb. (trunk r10020)
  10027 zmedico  Add a Package.pv_split attibute to optimize version
                 comparison operators. (trunk r10026)
  10029 zmedico  Fix spelling. (trunk r10028)
  10031 zmedico  When a package scheduled for uninstall isn't installed
                 anymore, move on to the next task. (trunk r10030)
  10033 zmedico  Handle a potential KeyError in depgraph.display() when in
                 --resume mode and a package scheduled for uninstall is no
                 longer installed. (trunk r10032)
  10036 zmedico  Prevent some more visible downgrades from possibly being
                 missed (bug #219369). (trunk r10033:10035)
  10038 zmedico  Make unmerge() group packages by cat/pn when the order
                 doesn't matter, so the display appears like earlier versions
                 of portage. (trunk r10037)
  10040 zmedico  Fix "deep" logic in depgraph._complete_graph() so that it
                 always properly recognizes whether or not "deep" was
                 previously enabled. (trunk r10039)
  10044 zmedico  * Fix dep_check() so that it doesn't expand virtual blockers
                 since the un-expanded virtual atom is more useful for
                 maintaining a cache of blocker atoms. * Expand virtual
                 blockers in depgraph.validate_blockers(), since it's not
                 done by dep_check() anymore. * If blocker data from the
                 graph is available, use it to validate the blocker cache and
                 update the cache if it seems invalid. * Make
                 BlockerCache._load() more tolerant to installs/uninstalls so
                 so that cache isn't rebuilt so often. (trunk r10040:10043)
  10046 zmedico  Handle a KeyError when validating the blocker cache. (trunk
                 r10045)
  10051 zmedico  * Add a Package.operation attribute and use it to
                 distinguish "uninstall" operations. (trunk r10050)
  10053 zmedico  Don't add blockers to the graph more times than necessary.
                 (trunk r10052)
  10055 zmedico  Sort blockers when caching them. (trunk r10054)
  10063 zmedico  When adding blockers for installed packages to the graph,
                 use cached Package instances instead of constructing new
                 ones. (trunk r10062)
  10066 zmedico  Fix variable rename breakage: pkg -> pkg.cpv (trunk r10065)
  10074 zmedico  Fix broken variable references found by pyflakes. (trunk
                 r10072)
  10093 zmedico  Clean up merge list handling: * In
                 depgraph.loadResumeCommand(), populate
                 _serialized_tasks_cache so that it can be returned from
                 depgraph.altlist(). * Handle --skipfirst instide
                 depgraph.loadResumeCommand(), and fix it to skip the first
                 "merge" task and never skip "uninstall" tasks. * Always get
                 the merge list from depgraph.altlist() instead of using the
                 mtimedb directly. The list returned from depgraph.altlist()
                 contains Package instances with cached metadata. * Remove
                 obsolete code from depgraph.display() and MergeTask.merge()
                 since the merge list always comes from depgraph.altlist()
                 now, and never directly from the mtimedb. (trunk r10092)
  10095 zmedico  Validate resume list data some more. (trunk r10094)
  10097 zmedico  In depgraph._complete_graph(), use cached Package instances
                 instead of constructing new ones. (trunk r10096)
  10099 zmedico  In depgraph._serialize_tasks(), filter "nomerge" nodes at a
                 more appropriate place. (trunk r10098)
  10101 zmedico  Use Package instance attributes to clean up and simplify
                 depgraph.validate_blockers(). (trunk r10100)
  10103 zmedico  Use Package.cp attribute instead of calling cpv_getkey().
                 (trunk r10102)
  10105 zmedico  When searching for a "sys-apps/portage" installation task,
                 use match_pkgs() instead of sequential search. (trunk
                 r10104)
  10107 zmedico  In depgraph.validate_blockers(), discard any "uninstall"
                 tasks scheduled by previous calls, since those tasks may not
                 make sense given the current graph state. (trunk r10106)
  10109 zmedico  Move the blocker cache validation into
                 depgraph.validate_blockers(). (trunk r10108)
  10111 zmedico  Use match_pkgs() to simplify package comparison. (trunk
                 r10110)
  10113 zmedico  Add a PackageVirtualDbapi.__iter__() method and use it to
                 iterate over all installed packages in
                 depgraph.validate_blockers(). (trunk r10112)
  10118 zmedico  * Check for masked packages in the --resume merge list and
                 bail out in that case (bug #199408). * In
                 depgraph.loadResumeCommand(), create a dependency graph from
                 the resume list. This ensures that the merge list has it's
                 dependencies satisfied. It also enables --tree display
                 together with --resume. * Fix --resume mode to check for
                 unsatisfied blockers and bail out when necessary. * Add
                 --nodeps to the parallel-fetch --resume options since
                 recalculation of deps is a a waste here. * Delete the resume
                 list(s) if there is an unsatisfied block. (trunk
                 r10113:10117)
  10120 zmedico  Fix depgraph.loadResumeCommand() to identify an unsatisfied
                 dependency and invalidate the resume list in that case.
                 (trunk r10119)
  10122 zmedico  Make --nodeps automatically disable --tree. (trunk r10121)
  10125 zmedico  Move --resume options handling to the beginning of
                 action_build() so that the current options are updated with
                 the saved options as soon as possible. (trunk r10122:10124)
  10131 zmedico  Similar to the circular dependency display, handle the
                 unsatisfied blocker display inside _serialize_tasks() since
                 that's a convenient place to bail out. (trunk r10130)
  10133 zmedico  * Move circular deps and blocker displays to
                 depgraph.display_problems(). * Always call
                 display_problems() since calling it from inside display()
                 can lead to unwanted recursion. (trunk r10132)
  10135 zmedico  Improve --resume handling of saved "favorites" argument
                 atoms: * Save the favorites in oneshot mode too since
                 they're still useful for restoring state upon --resume. *
                 Add a depgraph._load_favorites() method to resume state from
                 a previous select_files() call. This allows Package
                 instances to be matched with DependencyArg instances during
                 graph creation. (trunk r10134)
  10138 zmedico  Fix display_problems() logic some more. (trunk r10135:10137)
  10140 zmedico  When loadResumeCommand() rejects a resume list, give a more
                 informative explanation. (trunk r10139)
  10142 zmedico  Don't clean out old resume lists when in --ask or --pretend
                 mode. (trunk r10141)
  10144 zmedico  Return early from create_world_atom() if an atom matching
                 the package can't be found for some reason.
  10146 zmedico  When a resume list is rejected, display the invalid resume
                 list data in case the user is interested. This is enabled
                 with --verbose or --debug. (trunk r10145)
  10148 zmedico  Validate all the data types inside BlockerCache._load() so
                 that any corruption is detected as soon as possible. (trunk
                 r10147)
  10150 zmedico  In BlockerData._load(), salvage as much cache as possible
                 when some seems to be corrupt. (trunk r10149)
  10152 zmedico  Fix spelling of _show_unsatisfied_blockers(). (trunk r10151)
  10154 zmedico  Remove obsolete tuple() usage inside depgraph.display().
                 (trunk r10153)
  10156 zmedico  Fix some unwanted interaction between --tree display and
                 unsatisfied blockers in depgraph.display(). (trunk r10155)
  10158 zmedico  Fix package counters in depgraph.display() so they're only
                 incremented for "ordered" display nodes. (trunk r10157)
  10159 zmedico  Make favorites handling in depgraph.select_files()
                 consistent with SetArg handling when the "system" set is
                 added along with "world".
  10161 zmedico  Fix misplaced variable used as parameter to
                 _load_favorites(). (trunk r10160)
  10163 zmedico  In order to fix --tree display behave normally in --resume
                 mode, properly add to the digraph all packages matched by
                 arguments. (trunk r10162)
  10164 zmedico  When a --resume list is rejected due to unsatisfied deps,
                 display a list of missing deps and which packages they
                 belong to. (trunk r10143)
  10166 zmedico  Do more validation of resume data from the mtimedb. (trunk
                 r10165)
  10172 zmedico  Similar to the sys-apps/portage protection, also add
                 protection against inappropriately uninstalling either
                 app-shells/bash or dev-lang/python. (trunk r10171)
  10185 zmedico  In the package uninstall sanity check, use RDEPEND from the
                 currently running 'sys-apps/portage' instance to create a
                 set of protected atoms. (trunk r10184)
  10187 zmedico  Fix misplaced variable. (trunk r10186)
  10189 zmedico  Use a separate digraph to preserve irrelevant blocker
                 relationships that are removed from
                 depgraph._blocker_parents since the irrelevant blockers are
                 still needed for the blocker cache. (trunk r10188)
  10191 zmedico  Use writemsg() to warn about InvalidDependString exceptions
                 that may occur for installed packages. (trunk r10190)
  10196 zmedico  * Fix --buildpkgonly logic to avoid an unwanted code path. *
                 Remove unnecessary mtimedb.pop("resume", None) call. (trunk
                 r10194)
  10211 zmedico  Cache results for Task.__hash__() calls. (trunk r10210)
  10215 zmedico  Display satisfied blockers in green and show a small "b"
                 instead of a big "B" (similar to "f" for satisfied fetch
                 restrictions). (trunk r10214)
  10217 zmedico  For consistency with the merge list display, show "block"
                 instead of "blocker" in the summary. (trunk r10216)


bin/emerge-webrsync
  10048 zmedico  Bug #219837 - Adjust date calculations to improve accuracy.
                 (trunk r10047)
  10057 zmedico  Detect an old version of tarsync and use bzip2 compression
                 in that case. (trunk r10056)
  10068 zmedico  Bug #219837 - Adjust date calculations some more and show an
                 informative ewarn message when bailing out due to a newer
                 snapshot being unavailable. (trunk r10067)
  10071 zmedico  Skip group/owner tarsync options for tarsync if chown on
                 /usr/portage fails, since the user might still be able to
                 sync even though the chown call is not permitted. (trunk
                 r10070)
  10128 zmedico  Bug #219294 - Fix 'date' and 'cut' arguments for BSD
                 userland. Thanks to RB <aoz.syn@gmail.com> for this patch.
                 (trunk r10126)
  10129 zmedico  Use absolute paths for files in ${DISTDIR}. Thanks to RB
                 <aoz.syn@gmail.com> for this patch. (trunk r10127)


bin/isolated-functions.sh
  10197 zmedico  Bug #219286 - Whitelist INSTALL_MASK so that it works
                 properly for binary packages. Also, filter INSTALL_MASK when
                 saving or loading environment.bz2. This also applies to
                 PKG_INSTALL_MASK and DOC_SYMLINKS_DIR, so add them too.
                 (trunk r10195)


bin/misc-functions.sh
  10213 zmedico  Use find -path -or -name to match basenames of files in
                 INSTALL_MASK as suggested by solar in bug #219286, comment
                 #8. (trunk r10212)


bin/repoman
  10011 zmedico  Fix the EbuildQuote check to ignore "echo" and the elog
                 functions since people might not want quotes in those cases.
                 (trunk r10006)


cnf/make.conf
  10058 genone   remove PORTAGE_TMPFS comment


doc/dependency_resolution/task_scheduling.docbook
   9957 zmedico  Bug #172812 - Automatically uninstall packages to avoid
                 blocker conflicts. (trunk r9944:9956)
   9966 zmedico  Bug #172812 - If any Uninstall tasks need to be executed in
                 order to avoid a conflict, complete the graph with any
                 dependencies that may have been initially neglected (to
                 ensure that unsafe Uninstall tasks are properly identified
                 and blocked from execution). (trunk r9962:9965)
   9973 zmedico  s/be only/only be/ (trunk r9972)


man/color.map.5
pym/output.py
   9957 zmedico  Bug #172812 - Automatically uninstall packages to avoid
                 blocker conflicts. (trunk r9944:9956)
  10215 zmedico  Display satisfied blockers in green and show a small "b"
                 instead of a big "B" (similar to "f" for satisfied fetch
                 restrictions). (trunk r10214)
  10219 zmedico  Make satisfied blockers "darkblue" by default. (trunk
                 r10218)


pym/getbinpkg.py
   9944 zmedico  Make dir_get_metadata() retry if a httplib.ResponseNotReady
                 exception occurs. (trunk r9943)


pym/portage.py
   9987 zmedico  Use digraphs to clean up blocker reference counting in the
                 depgraph. (trunk r9981)
   9993 zmedico  Create a digraph.difference_update() method and use it to
                 amortize the cost of removing nodes from the digraph.order
                 list. (trunk r9992)
  10013 zmedico  Bug #211833 - When an ebuild removal phase fails, notify the
                 user that removal of environment.bz2 file will cause the
                 ebuild to be sourced and eclasses from the current portage
                 tree will be used when necessary. (trunk r10009)
  10019 zmedico  Try to format the elog message better for bug #211833,
                 separating paragraphs for easier reading. (trunk r10018)
  10023 zmedico  As suggested by Chr. Schaefer in bug #211833, comment #15,
                 note that removal of the environment.bz2 file is preferred
                 since it may allow the removal phases to execute
                 successfully. (trunk r10022)
  10025 zmedico  For bug #211833, be explicit that the pkg_prerm() and
                 pkg_postrm() removal phases are the ones that are skipped.
                 (trunk r10024)
  10044 zmedico  * Fix dep_check() so that it doesn't expand virtual blockers
                 since the un-expanded virtual atom is more useful for
                 maintaining a cache of blocker atoms. * Expand virtual
                 blockers in depgraph.validate_blockers(), since it's not
                 done by dep_check() anymore. * If blocker data from the
                 graph is available, use it to validate the blocker cache and
                 update the cache if it seems invalid. * Make
                 BlockerCache._load() more tolerant to installs/uninstalls so
                 so that cache isn't rebuilt so often. (trunk r10040:10043)
  10049 zmedico  Fix 2 more types.InstanceType comparisons that are broken by
                 the transition of dbapi to new-style classes. (trunk r6188)
  10061 zmedico  Bug #219918 - Remove the last traces of PORTAGE_TMPFS.
  10076 zmedico  check if PORTAGE_TMPDIR is mounted readonly/noexec (bug
                 #219957) (trunk r10069)
  10193 zmedico  Bug #220171 - Filter out 'lost+found' directories in
                 vardbapi.cpv_all() in order to avoid fatal 'Permission
                 denied' errors. Currently, CVS and names beginning with '.'
                 are also filtered. (trunk r10192)
  10197 zmedico  Bug #219286 - Whitelist INSTALL_MASK so that it works
                 properly for binary packages. Also, filter INSTALL_MASK when
                 saving or loading environment.bz2. This also applies to
                 PKG_INSTALL_MASK and DOC_SYMLINKS_DIR, so add them too.
                 (trunk r10195)
  10203 zmedico  Handle a potential InvalidData exception in
                 vardbapi.cp_all(). (trunk r10202)
  10205 zmedico  * In vardbapi.cpv_all() use catpkgsplit() for validation
                 since that's what with cp_all() uses. * Use the listdir()
                 dirsonly=1 parameter to avoid unnecessary stat calls via
                 os.path.isdir() (trunk r10204)
  10207 zmedico  Add -MERGING-.* to vardbapi._excluded_dirs. (trunk r10206)
  10209 zmedico  Use vardbapi._excluded_dirs to filter results inside
                 cp_list(). (trunk r10208)


pym/portage_const.py
  10185 zmedico  In the package uninstall sanity check, use RDEPEND from the
                 currently running 'sys-apps/portage' instance to create a
                 set of protected atoms. (trunk r10184)
  10199 zmedico  Add "package" to EBUILD_PHASES since it's possible for einfo
                 to be called by install_mask() during that phase. (trunk
                 r10198)


pym/portage_manifest.py
  10017 zmedico  Use write_atomic() for manifest updates. (trunk r10016)


=============================================================================
2.1.5_rc6
2008-04-21
branches/2.1.2 revision 9942
=============================================================================


RELEASE-NOTES
man/emerge.1
  9935 zmedico  Document FEATURES="metadata-transfer" changes some more.
                (trunk r9934)


bin/emerge
  9937 zmedico  In action_metadata(), properly put the source cache in
                readonly mode. (trunk r9936)
  9939 zmedico  In show_slot_collision_notice(), refer to the problem as a
                "slot conflict" since that's how I'm refering to it in the
                docs. (trunk r9938)


bin/portageq
  9929 zmedico  Bug #218559 - Make portdbapi automatically add sandbox write
                access to self.depcachedir when appropriate. This makes the
                portageq blanket sandbox exemption unnecessary. (trunk r9928)


cnf/make.globals
  9931 zmedico  * Make portdbapi.aux_get() automatically pull pre-generated
                metadata directly from the metadata/cache/ directory when
                metadata-transfer is not enabled in FEATURES. This makes all
                cache modules behave similar to existing metadata_overlay
                module, except when FEATURES="metadata-transfer" has been
                explicitly enabled. * Remove metadata-transfer from FEATURES
                in make.globals so that it's no longer enabled by default.
                Users will be happy about this since the "Updating Portage
                cache" part of emerge --sync can be more time consuming than
                the rsync run itself. It's also nicer when when using PORTDIR
                over nfs or bind mounted in a chroot since there's no need to
                run emerge --metadata. * Update FEATURES="metadata-transfer"
                docs to warn users of the rsync tree to modify eclases in
                PORTDIR_OVERLAY if necessary instead of doing it directly in
                the rsync tree. * Relevant updates to /etc/portage/modules
                docs. (trunk r9930)


man/make.conf.5
  9931 zmedico  * Make portdbapi.aux_get() automatically pull pre-generated
                metadata directly from the metadata/cache/ directory when
                metadata-transfer is not enabled in FEATURES. This makes all
                cache modules behave similar to existing metadata_overlay
                module, except when FEATURES="metadata-transfer" has been
                explicitly enabled. * Remove metadata-transfer from FEATURES
                in make.globals so that it's no longer enabled by default.
                Users will be happy about this since the "Updating Portage
                cache" part of emerge --sync can be more time consuming than
                the rsync run itself. It's also nicer when when using PORTDIR
                over nfs or bind mounted in a chroot since there's no need to
                run emerge --metadata. * Update FEATURES="metadata-transfer"
                docs to warn users of the rsync tree to modify eclases in
                PORTDIR_OVERLAY if necessary instead of doing it directly in
                the rsync tree. * Relevant updates to /etc/portage/modules
                docs. (trunk r9930)
  9933 zmedico  Fix portage version, should be >=2.1.5. (trunk r9932)


man/portage.5
  9931 zmedico  * Make portdbapi.aux_get() automatically pull pre-generated
                metadata directly from the metadata/cache/ directory when
                metadata-transfer is not enabled in FEATURES. This makes all
                cache modules behave similar to existing metadata_overlay
                module, except when FEATURES="metadata-transfer" has been
                explicitly enabled. * Remove metadata-transfer from FEATURES
                in make.globals so that it's no longer enabled by default.
                Users will be happy about this since the "Updating Portage
                cache" part of emerge --sync can be more time consuming than
                the rsync run itself. It's also nicer when when using PORTDIR
                over nfs or bind mounted in a chroot since there's no need to
                run emerge --metadata. * Update FEATURES="metadata-transfer"
                docs to warn users of the rsync tree to modify eclases in
                PORTDIR_OVERLAY if necessary instead of doing it directly in
                the rsync tree. * Relevant updates to /etc/portage/modules
                docs. (trunk r9930)
  9935 zmedico  Document FEATURES="metadata-transfer" changes some more.
                (trunk r9934)


pym/emergehelp.py
  9942 zmedico  Bug #218439 - Improve alignment in short emerge --help
                options output. (trunk r9939:9941)


pym/portage.py
  9929 zmedico  Bug #218559 - Make portdbapi automatically add sandbox write
                access to self.depcachedir when appropriate. This makes the
                portageq blanket sandbox exemption unnecessary. (trunk r9928)
  9931 zmedico  * Make portdbapi.aux_get() automatically pull pre-generated
                metadata directly from the metadata/cache/ directory when
                metadata-transfer is not enabled in FEATURES. This makes all
                cache modules behave similar to existing metadata_overlay
                module, except when FEATURES="metadata-transfer" has been
                explicitly enabled. * Remove metadata-transfer from FEATURES
                in make.globals so that it's no longer enabled by default.
                Users will be happy about this since the "Updating Portage
                cache" part of emerge --sync can be more time consuming than
                the rsync run itself. It's also nicer when when using PORTDIR
                over nfs or bind mounted in a chroot since there's no need to
                run emerge --metadata. * Update FEATURES="metadata-transfer"
                docs to warn users of the rsync tree to modify eclases in
                PORTDIR_OVERLAY if necessary instead of doing it directly in
                the rsync tree. * Relevant updates to /etc/portage/modules
                docs. (trunk r9930)


=============================================================================
2.1.5_rc5
2008-04-19
branches/2.1.2 revision 9927
=============================================================================


bin/emerge
  9925 zmedico  Bug #218202 - Make sure the spinner is quiet in --nodep mode.
                (trunk r9924)


doc/dependency_resolution (from /main/trunk/doc/dependency_resolution:9926) (Added)
doc/dependency_resolution.docbook (from /main/trunk/doc/dependency_resolution.docbook:9926) (Added)
doc/portage.docbook
  9927 zmedico  Add a new part for "Dependency Resolution". (trunk r9926)


pym/portage.py
  9915 zmedico  Bug #217905 - Fix portdbapi.getfetchlist() to correctly
                calculate USE when the useflags parameter is not passed in.
                (trunk r9914)
  9917 zmedico  If the mysettings parameter is not passed in to
                portdbapi.getfetchlist() then substitue
                self.doebuild_settings since that one is mutable which is
                necessary in case setcpv() needs to be called. (trunk r9916)
  9919 zmedico  Fix portdbapi.getfetchlist() so that it doesn't unnecessarily
                calculate USE when the "all" parameter is True. (trunk r9918)
  9921 zmedico  Remove redundant version sorting in _expand_new_virtuals()
                since the dbapi match results are already sorted. (trunk
                r9920)
  9923 zmedico  Make the ccache userpriv permission check from bug #162542
                less sensitive by skipping permission checks on files and
                just checking the directories. (trunk r9922)


=============================================================================
2.1.5_rc4
2008-04-15
branches/2.1.2 revision 9913
=============================================================================


NEWS
  9907 zmedico  The dependency resolver now has a feedback mechanism that
                helps make atom selections more consistent with previous
                selections that have been added to the graph. This solves
                some common cases of bug #1343. (trunk r9906)


bin/ebuild.sh
  9863 zmedico  Bug #215673 - Make ebuild.sh leave IUSE defaults intact
                instead of filtering them out. The built_with_use() function
                in eutils.eclass needs to be updated for compatibility.
                (trunk r9674)


bin/emerge
  9876 zmedico  Make _dep_check_composite_db match() return multiple slots so
                that it behaves more like other dbapi instances would, and
                also make it inherit from dbapi. (trunk r9869:9872)
  9877 zmedico  Improve lookahead for new-style virtuals: * Substitute the
                graph tree for the vartree in dep_check() since we want atom
                selections to be consistent with package selections that have
                already been made. * Add the selected package to the graph as
                soon as possible so that later dep_check() calls can use it
                as feedback for making more consistent atom selections. *
                Expand all slots of new-style virtuals inside
                _dep_check_composite_db so that lookahead examines all
                matched slots. This solves some cases of bug #1343, and
                extends the fix for bug #141118 to work in cases when a
                virtual is not yet installed but it has been pulled into the
                graph. (trunk r9873)
  9878 zmedico  To optimize consistency of atom selections, add all of the
                root packages to the graph before processing any
                dependencies. (trunk r9874)
  9880 zmedico  * For optimal atom selection, use PackageVirtualDbapi
                instances in place of the vardb for all dep_check() calls. *
                Replace dep_check_trees in depgraph.validate_blockers() with
                the equivalent self._graph_trees reference. (trunk r9879)
  9888 zmedico  Split out a depgraph._add_dep() method. (trunk r9884)
  9889 zmedico  * Call depgraph._add_dep() to add package dependencies to the
                graph as soon as possible rather than pushing them onto the
                stack. (trunk r9885) * Fix some breakage in the
                allow_unsatisfied handling. (trunk r9886)
  9899 zmedico  Bug #217664 - Fix emerge 'by path' package argument handling
                so that Package instances are properly cached (avoiding a
                KeyError later). (trunk r9898)
  9902 zmedico  Revert part of atom selection consistency improvement from
                r9873 since it in some cases it triggers unresolvable direct
                circular dependencies. For example, this happens with
                gwydion-dylan which depends on either itself or
                gwydion-dylan-bin. In case gwydion-dylan is not yet
                installed, gwydion-dylan-bin needs to be selected in order to
                avoid a an unresolvable direct circular dependency. (trunk
                r9900)
  9903 zmedico  Add support to depgraph._select_atoms() to take a "parent"
                parameter and use that to try and avoid unresolvable direct
                circular dependencies when necessary. Also, make atom
                selection more consistent with the graph to solve some cases
                of bug #1343. This improves the fix from bug #141118 to work
                in cases when a virtual is not yet installed but it has been
                pulled into the graph. For example, see the case of Bug
                #163801#c17, where we want kaffe to satisfy virtual/jdk-1.4
                without an extra jvm being pulled in unnecessarily. (trunk
                r9901)
  9905 zmedico  Comment some more on the significance of passing the graph_db
                and parent into depgraph._select_atoms() to solve some cases
                of bug #1343 while avoiding unresolvable direct circular
                dependencies. (trunk r9904)
  9913 zmedico  Handle potential InvalidDependString exceptions from
                visible(). (trunk r9912)


bin/emerge-webrsync
  9887 zmedico  s/timetasmp/timestamp/ (trunk r9883)


pym/portage.py
  9875 zmedico  Make movefile() tolerant to EPERM errors that can be raised
                from utime() calls. Instead of failing, use stat() to return
                the mtime if possible. (trunk r9863:9865)
  9897 zmedico  In config.setcpv() and regenerate(), replace str.startswith()
                calls with slice comparison. It's not pretty but performance
                is critical in this section of code and there is a measurable
                performance difference. (trunk r9896)
  9903 zmedico  Add support to depgraph._select_atoms() to take a "parent"
                parameter and use that to try and avoid unresolvable direct
                circular dependencies when necessary. Also, make atom
                selection more consistent with the graph to solve some cases
                of bug #1343. This improves the fix from bug #141118 to work
                in cases when a virtual is not yet installed but it has been
                pulled into the graph. For example, see the case of Bug
                #163801#c17, where we want kaffe to satisfy virtual/jdk-1.4
                without an extra jvm being pulled in unnecessarily. (trunk
                r9901)
  9911 zmedico  Inside dblink.unmerge(), call self.updateprotect() just in
                case anything has changed since the dblink instance was
                constructed. (trunk r9910)


=============================================================================
2.1.5_rc3
2008-04-12
branches/2.1.2 revision 9861
=============================================================================


RELEASE-NOTES
  9758 zmedico  Bug #197810 - Don't automatically downgrade packages for
                which available matching versions are masked by corruption,
                but do automatically downgrade installed packages that
                themselves have a valid mask such as from package.mask.
                (trunk r9756)
  9849 zmedico  Add some notes for the parallel-fetch feature and the new
                --complete-graph option for emerge. (trunk r9848)


bin/ebuild.sh
  9857 zmedico  Bug #217444 - Send debug-print() output to stderr so that it
                can't interfere with command substitution. Thanks to Fabio
                Rossi <rossi.f@inwind.it> for this patch. (trunk r9856)


bin/emerge
  9730 zmedico  Fix the CompositDbapi.match() logic wrt "selective" behavior
                and installed packages so that it correctly handles false
                argument matches due to PROVIDE when a corresponding
                new-style virtual exists. (trunk r9729)
  9752 zmedico  * Optimize metadata caching in pordbapi and bindbapi so that
                cache is never pulled for the same package twice. * Cache a
                Package instances constructed during package selection and
                reuse them during later package selections. (trunk r9741)
  9754 zmedico  Merge improved argument handling and other general depgraph
                improvements from trunk.
  9757 zmedico  Fix --update greedy atoms logic so that it only pulls in
                packages that actually match the given atom. (trunk r9755)
  9758 zmedico  Bug #197810 - Don't automatically downgrade packages for
                which available matching versions are masked by corruption,
                but do automatically downgrade installed packages that
                themselves have a valid mask such as from package.mask.
                (trunk r9756)
  9766 zmedico  Split out a depgraph method to check if a specific new-style
                virtual package exists. (trunk r9761)
  9767 zmedico  Make depgraph.select_files() detect when a package name given
                as an argument is ambiguous due to the existence of a
                new-style virtual with the same name (cpv_expand() will not
                always raise a ValueError in cases like this). (trunk r9762)
  9768 zmedico  Create a new depgraph._dep_expand() method for select_files()
                to expand atoms that have no category. (trunk r9765)
  9770 zmedico  When depgraph.select_files() expands an atom category, in
                case of an old-style virtual, defer category expansion so
                that the depgraph has more choices. (trunk r9769)
  9772 zmedico  Make DepcheckCompositeDB cache Package instances for
                aux_get() calls. (trunk r9771)
  9773 zmedico  When pruning the list of parents for the slot collision
                display, always show parents that themselves have been pulled
                into collision slots, since those are more relevant that
                others.
  9776 zmedico  Fix minor issues in the calculation of the number of parents
                omitted from the slot collision display. (trunk r9775)
  9778 zmedico  Fix the docstring for depgraph._dep_expand(). (trunk r9777)
  9780 zmedico  When checking atoms without categories against the installed
                packages, just check for existence of the cat/pn rather that
                a full match. (trunk r9779)
  9782 zmedico  Add system atoms to world since we're trying to emulate
                behavior of older portage (rather than the latest behavior
                which is different).
  9783 zmedico  To avoid false positives during the transition period, don't
                show ? if the installed package is missing a repository
                label. Stages starting with 2008.0 will come with repository
                labels.
  9784 zmedico  Pull in "system" as a separate set instead of mixing it with
                "world".
  9790 zmedico  Replace the fakedbapi class that is used to track depgraph
                state with a similar PackageVirtualDbapi class that uses
                Package instances internally. This eliminates some redundancy
                since the Package instances can be reused elsewhere, unlike
                the internal data structures used by fakedbapi. (trunk r9786)
  9791 zmedico  Improve used of cached Package instances in
                depgraph._select_pkg_from_graph(). (trunk r9787)
  9792 zmedico  Make FakeVartree use PackageVirtualDbapi instead of fakedbapi
                so that it can populate and utilize a cache of Package
                instances. (trunk r9788)
  9793 zmedico  * Make depclean/prune use cached Package instances for
                visibility checks. * Make FakeVartree wrap dbapi.match() to
                make sure the metadata in Package instances gets updated for
                any cpv that is returned from a match() call, since the
                metadata can be accessed directly from the Package instance
                instead of via aux_get(). (trunk r9789)
  9795 zmedico  Use cached Package instances in depgraph.display(). (trunk
                r9794)
  9796 zmedico  Add some docs for the DepcheckCompositeDB class. (trunk
                r9785)
  9798 zmedico  Make sure that everything except Package nodes is ignored
                when doing the --buildpkgonly digraph.hasallzeros() check.
                (trunk r9797)
  9800 zmedico  Iterate over a copy of the digraph nodes so that removal
                can't break the iterator. (trunk r9799)
  9813 zmedico  Implement expansion of catgories in
                DepcheckCompositeDB.match() for old installed packages that
                may contain atoms that are not fully qualified. (trunk r9808)
  9814 zmedico  Remove an unused function. (trunk r9810)
  9818 zmedico  Make the CHOST visibility check tolerant of missing CHOST
                metadata. (trunk r9817)
  9820 zmedico  Fix "pkg" variable name collisions in depgraph.display().
                (trunk r9819)
  9822 zmedico  Rename variable pkg_cpv to pkg_str. (trunk r9821)
  9824 zmedico  Nest the DepcheckCompositeDB class inside the depgraph class
                since it's not intended for use elsewhere. (trunk r9823)
  9826 zmedico  Tweak --buildpkgonly and fakeroot logic so that
                --buildpkgonly can be used by a non-root user to build binary
                packages with fakeroot. (trunk r9825)
  9828 zmedico  Copy group mode bits from $PKGDIR when creating
                subdirectories. (trunk r9827)
  9847 zmedico  Rename the undocumented --conistent option to
                --complete-graph and add some docs. (trunk r9846)
  9851 zmedico  Make binarytree.prevent_collision() adjust permissions on
                directories and raise a PermissionDenied error if the
                required directories is not writable. (trunk r9850)
  9861 zmedico  In --buildpkgonly mode, don't discard RDEPEND and PDEPEND if
                --empty or --deep are enabled. The makes it possible to run
                `emerge -eB world` and have every single package rebuilt
                (without actually installing anything). (trunk r9860)


bin/emerge-webrsync
  9749 zmedico  * Use type -P which does not produce messages to stderr.
                another option is to redirect both stderr and out. * Avoid &>
                replace with > ... 2>&1 Thanks to Alon Bar-Lev for this
                patch. (trunk r9727)


bin/isolated-functions.sh
  9748 zmedico  Bug #197905 - Preserve order of ebuild messages even between
                different message types. (trunk r9726 and r9747)
  9751 zmedico  In dump_trace(), fix BASH_ARGV and BASH_ARGC offsets so that
                they are always correct wrt eachother. Thanks to Betelgeuse
                for reporting. (trunk r9732:9734)
  9764 zmedico  Handle issues with newlines in elog messages that can trigger
                an unhandled ValueError to be raised from a split() call
                inside collect_ebuild_messages(): * Use \0 to delimit
                messages, so that that elog messages containing newlines are
                handled correctly. * Handle a potential ValueError when
                splitting the message type. (trunk r9763)


bin/misc-functions.sh
  9802 zmedico  Make the "this code is not 64bit clean" die less strict like
                it was before so that maintainers aren't disturbed by too
                many bugs like bug #216848.


bin/repoman
  9750 zmedico  Fix java.eclassesnotused logic. Thanks to Betelgeuse. (trunk
                r9732)
  9753 zmedico  For repoman, only cache the metadata necessary for visibility
                checks in order to reduce memory consumption. (trunk r9743)


man/emerge.1
  9746 zmedico  Clarify --with-bdeps behavior with example. Thanks to
                Griffon26 for this patch. (trunk r9725)
  9847 zmedico  Rename the undocumented --conistent option to
                --complete-graph and add some docs. (trunk r9846)


man/make.conf.5
  9849 zmedico  Add some notes for the parallel-fetch feature and the new
                --complete-graph option for emerge. (trunk r9848)


pym/emergehelp.py
  9847 zmedico  Rename the undocumented --conistent option to
                --complete-graph and add some docs. (trunk r9846)


pym/getbinpkg.py
  9845 zmedico  Make file_get() redirect FETCHCOMMAND output to stdout just
                like portage.fetch() does. Thanks to Ramereth for reporting.
                (trunk r9844)


pym/portage.py
  9748 zmedico  Bug #197905 - Preserve order of ebuild messages even between
                different message types. (trunk r9726 and r9747)
  9752 zmedico  * Optimize metadata caching in pordbapi and bindbapi so that
                cache is never pulled for the same package twice. * Cache a
                Package instances constructed during package selection and
                reuse them during later package selections. (trunk r9741)
  9754 zmedico  Merge improved argument handling and other general depgraph
                improvements from trunk.
  9760 zmedico  Bug #162542 - When checking permissions inside CCACHE_DIR for
                compatibility with FEATURES=userpriv, check the permissions
                on files inside the directory to decide whether to fix the
                permissions. (trunk r9759)
  9764 zmedico  Handle issues with newlines in elog messages that can trigger
                an unhandled ValueError to be raised from a split() call
                inside collect_ebuild_messages(): * Use \0 to delimit
                messages, so that that elog messages containing newlines are
                handled correctly. * Handle a potential ValueError when
                splitting the message type. (trunk r9763)
  9768 zmedico  Create a new depgraph._dep_expand() method for select_files()
                to expand atoms that have no category. (trunk r9765)
  9781 zmedico  Fix a potential TypeError.
  9816 zmedico  Bug #217122 - When waiting for a parallel-fetch download to
                complete, show a more friendly and informative message.
                (trunk r9815)
  9826 zmedico  Tweak --buildpkgonly and fakeroot logic so that
                --buildpkgonly can be used by a non-root user to build binary
                packages with fakeroot. (trunk r9825)
  9828 zmedico  Copy group mode bits from $PKGDIR when creating
                subdirectories. (trunk r9827)
  9833 zmedico  In config.setcpv() and load_infodir(), always set known good
                values for CATEGORY and PF, since corruption of these can
                cause problems. (trunk r9832)
  9836 zmedico  Remove all calls to config.load_infodir() since it doesn't
                seem to server any purpose now that the complete environment
                is loaded from environment.bz2. (trunk r9833:9835)
  9838 zmedico  Make doebuild() bail out early with a PermissionDenied error
                if there is no write access to $PKGDIR. (trunk r9837)
  9841 zmedico  When dep_check() expands new-style virtuals, use USE flags
                from aux_get calls to evaluate any conditionals that the
                depstrings might contain. This works properly for ebuilds now
                that aux_get() is backed by Package instances containing the
                correct USE. (trunk r9838:9840)
  9843 zmedico  Fix 'undefined name' errors found by pyflakes. (trunk r9842)
  9851 zmedico  Make binarytree.prevent_collision() adjust permissions on
                directories and raise a PermissionDenied error if the
                required directories is not writable. (trunk r9850)
  9853 zmedico  Bug #215016 - When transforming of USE flags to USE_EXPAND
                variables, filter out flags that aren't considered to be part
                of IUSE or implicit IUSE. This patch moves all IUSE dependent
                code from config.regenerate() to config.setcpv(). (trunk
                r9852)
  9855 zmedico  * Optimize config.setcpv() to return early if IUSE has not
                changed since the previous setcpv() call. * Add EBUILD_PHASE
                to the blacklisted variables list. (trunk r9854)
  9859 zmedico  Fix the filtering for bug #215016: * fix broken comparison
                for he iuse filtering * filter out any duplicates that
                variable may contain (trunk r9858)


=============================================================================
2.1.5_rc2
2008-04-05
branches/2.1.2 revision 9724
=============================================================================


bin/emerge
  9719 zmedico  Bug #216328 - Fix broken --newuse reinstallation logic.
                (trunk r9718)
  9721 zmedico  For better performace and consistency in package selection,
                merge the CompositeDbapi code from trunk.


bin/quickpkg
  9724 zmedico  When necessary, make quickpkg add missing metadata to the vdb
                entry before creating the binary package. (trunk r9723)


pym/portage.py
  9721 zmedico  For better performace and consistency in package selection,
                merge the CompositeDbapi code from trunk.
  9722 zmedico  In dbapi.move_ent(), never assume that any of the expected
                metadata entries exist (PF, CATEGORY, or *.ebuild). (trunk
                r9712)


=============================================================================
2.1.5_rc1
2008-04-04
branches/2.1.2 revision 9711
=============================================================================


RELEASE-NOTES
  9709 zmedico  * In the event that a previously installed package has since
                been masked, emerge will no longer perform an automatic
                downgrade as part of a "world" update. You should either
                unmask such packages or else explicitly re-merge them in
                order to have them dowgraded to an unmasked version. (trunk
                r9708)


bin/dohtml
  9558 zmedico  Bug #149745 - Generate an eqawarn message if dohtml is called
                on a directory without the recursive option. Thanks to brad
                walker <bradmwalker@cableone.net> for reporting. (trunk
                r9476)
  9562 zmedico  Only show the eqawarn from bug #149745 when nothing is found
                to install. Also, exit successfully unless nothing is found
                to install. (trunk r9484)


bin/doins
  9563 zmedico  Bug #210575 - Optimize doins -r so that it doesn't call
                itself recursively, since it's faster to handle the recursion
                internally. Thanks to Benedikt B?\195?\182hm
                <hollow@gentoo.org> for the initial patch. (trunk r9485)
  9565 zmedico  Strip trailing slashes from directory paths if necessary.
                (trunk r9487)
  9567 zmedico  Fix quoting. (trunk r9489)
  9629 zmedico  Make doins clean up it's own temp files. This solves an odd
                issue in dyn_package() when portage 2.1.x is installing
                portage-2.2 and temp python module files from doins are
                imported instead of the expected ones. (trunk r9628)
  9635 zmedico  * Fix broken return value for doins. * Make newins cleanup
                temp files after itself. (trunk r9634)


bin/ebuild
man/ebuild.1
  9557 zmedico  Bug #174634 - Fix ebuild 'digest' and 'manifest' behave 100%
                identically and update the docs to reflect this. (trunk
                r9475)


bin/ebuild.sh
  9403 zmedico  Bug #211949 - Make filter_readonly_variables() remove any
                variables with names containing a hyphen since bash does not
                allow them. (trunk r9402)
  9417 zmedico  Bug #211949 - As suggested by vapier, tighten the variable
                filter to also exclude variable names that begin with a digit
                or that contain any non-alphanumeric characters that are not
                be supported by bash. (trunk r9416)
  9420 zmedico  Fix the regex for bug #211949 so that it correctly matches
                variable names that contain more than one non-alphanumeric
                character. (trunk r9419)
  9422 zmedico  Bug #211949 - Tweak the regex so that a leading whitespace
                character cannot match the required non-alphanumeric group.
                (trunk r9421)
  9430 zmedico  Bug #211949 - Fix the regex so that it won't match the =
                character (equals sign). (trunk r9429)
  9465 zmedico  Sync the fixes for bug #211949 from trunk.
  9531 zmedico  Bug #210449 - Reset exeinto(), docinto(), insinto(), and
                into() state variables in case the user is running the
                install phase multiple times consecutively via the ebuild
                command. (trunk r9357)
  9550 zmedico  Use os.environ["SANDBOX_ON"] = "0" to make portageq exempt
                from sandbox for things like writing metadata cache. Thanks
                to ferringb for the suggestion. (trunk r9448)
  9557 zmedico  Bug #174634 - Fix ebuild 'digest' and 'manifest' behave 100%
                identically and update the docs to reflect this. (trunk
                r9475)
  9578 zmedico  Bug #213698 - Make FEAUTURES=keepwork and keeptemp preserve
                ${T}/environment since it may contain essential state. (trunk
                r9526)
  9579 zmedico  Make dyn_clean() consistent wrt removal of
                ${PORTAGE_BUILDDIR}/image and ${PORTAGE_BUILDDIR}/.installed
                since otherwise with FEATURES=keepwork dyn_install() will not
                call src_install() as necessary to repopulate
                ${PORTAGE_BUILDDIR}/image (resulting in install_qa_check
                failure due to absence of ${PORTAGE_BUILDDIR}/image). (trunk
                r9527)
  9581 zmedico  Remove the killparent() function and associated SIGINT trap
                since this should already be handled on the python side and
                it won't work with dropped privileges anyway. (trunk r9327)
  9609 zmedico  When dyn_unpack() automatically cleans ${WORKDIR}, also
                remove things like .unpacked and .compiled so that the state
                is consistent. (trunk r9606)


bin/emerge
  9464 zmedico  When showing an unsatisfied dep, never include installed
                packages. (trunk r9360)
  9515 zmedico  Make --noreplace take precedence over --newuse, as suggested
                by wolf31o2. (trunk r9512:9514)
  9516 zmedico  revert previous commit since it had portage_locks stuff mixed
                in
  9517 zmedico  Make --noreplace take precedence over --newuse, as suggested
                by wolf31o2. (trunk r9512:9514)
  9530 zmedico  Bug #201045 - Use a topological sort to create an unmerge
                order such that each package is unmerged before it's
                dependencies. This is necessary to avoid breaking things that
                may need to run during pkg_prerm or pkg_postrm phases. (trunk
                r9337:9341, 9343, 9344:9347, 9350, 9385, and 9483)
  9533 zmedico  Bug #210667 - In the circular dependency display, drop
                PDEPEND (aka MEDIUM_SOFT) from the graph so there's less
                noise. (trunk r9362)
  9535 zmedico  Add support for file paths as arguments to emerge. If an
                argument starts with / and it's not recognized as a tbz2 or
                ebuild then we try to find and owner in the vdb and generate
                a slot atom from it. Thanks to solar for the suggestion.
                (trunk r9367)
  9540 zmedico  Bug #211554 - Replace references to config["USE"] with
                references to config["PORTAGE_USE"] (which is filtered for
                intersection with IUSE) so that dependency calculations at
                installation time are consistent with those at depclean time.
                (trunk r9391:9393)
  9541 zmedico  separate different messages with newlines in post-emerge
                output (trunk r9394)
  9551 zmedico  Make --prune and --depclean operate with missing dependencies
                when only asked to remove specific packages since it's
                relatively safe in this case. (trunk r9451)
  9553 zmedico  * Optimize parallel-fetch to avoid redundant checksum
                verification. * Add parallel-fetch to the default FEATURES
                since it is more efficient now. (trunk r9462)
  9559 zmedico  s/add/append/ (missing from r9530 for bug #201045)
  9561 zmedico  Bug #139023 - When the --digest option is enabled, advise the
                user that `repoman manifest` is the preferred way to generate
                manifests. (trunk r9482)
  9566 zmedico  display versions of other slots for new-slot installs (bug
                #213790) (trunk r9488)
  9596 zmedico  Bug #214691 - Move the "slot collision" display so that it is
                shown after the merge list where it is most likely to be seen
                (along with other depgraph problems). (trunk r9584)
  9601 zmedico  When a resume list contains packages that are no longer
                available, automatically delete it. (trunk r9589)
  9602 zmedico  Bug #214691 - Move display of depgraph problems from
                xcreate() to display_problems() so that they are shown
                _after_ the merge list where they are easier/likely to be
                seen by the user.
  9603 zmedico  Merge part of the package selection code from trunk.
  9604 zmedico  Fix broken --onlydeps recursion logic.
  9605 zmedico  When all available ebuilds are masked, avoid producing
                warning message when the package does not need to be
                reinstalled and the installed version is not masked. (trunk
                r9457)
  9608 zmedico  Bug #215308 - Simplify the greedy atoms logic so that it
                behaves more like StaticFileSet and won't pull in lower
                slots. (trunk r9607)
  9610 zmedico  For bugs #197810 and #215308, pass the depgraph's "selective"
                parameter down into dep_check() for better atom preference
                selection when handling virtuals and other disjunctive ||
                dependencies.
  9612 zmedico  Fix a broken reference to the DependencyArg class.
  9614 zmedico  Use enumerate() to iterate over an array. (trunk r9613)
  9617 zmedico  * Make code a bit less prone to potentially hidden TypeError
                like bugs. * Bug #211365 - Use catpkgsplit() instead of
                pkgsplit() for a cpv. (trunk r9614:9616)
  9618 zmedico  Fix broke package.provided handling.
  9622 zmedico  Move the AUTOCLEAN code into dblink.treewalk since it's
                already partially supported there anyway (for replacement of
                identical cpv). This has the benefit of guaranteeing that the
                order of installation and removal phases is always the same.
                (trunk r9621)
  9624 zmedico  Bug #211365 - Use catpkgsplit() instead of pkgsplit() for a
                cpv. (trunk r9623)
  9626 zmedico  Bug #211365 - Use catpkgsplit() instead of pkgsplit() for a
                cpv. (trunk r9625)
  9631 zmedico  Fix display code that can triger a 'Invalid category'
                exception when it is given a blocker. It's only supposed to
                execute for normal packages. (trunk r9630)
  9638 zmedico  Prevent premature expansion of old-style virtuals inside
                depgraph.select_files(). (trunk r8306)
  9639 zmedico  Make sure the all resume lists are deleted when a stale one
                is encountered. (trunk r9636)
  9641 zmedico  Fix broken variable reference that triggers an
                UnboundLocalError.
  9642 zmedico  Fix broken unsatisfied deps handling that triggers false
                positives in a case like virtual/pager which is both a
                new-style and old-style virtual.
  9647 zmedico  Pass Package instances into visible() so that the package
                instance can be used to cache relevant visibility information
                such as whether or not the package is corrupt or otherwise
                invalid. (trunk r9643)
  9649 zmedico  Make depgraph creation more tolerant of missing or masked
                packages when the relevant deps are satisfied by installed
                packages. This kind of friendliness is especially desired in
                cases such as --emptytree where it might not be possible to
                reinstall every single package. Also, it allows multislot
                atoms from the world file (that are necessary to prevent them
                from being removed by depclean) trigger warning messages
                while still allowing a --emptytree to proceed. (trunk
                r9643:9648)
  9651 zmedico  Remove some redundant and obsolete code for warning about
                installed packages pulled into the graph. (trunk r9650)
  9653 zmedico  Fix package selection logic to always properly reject the
                installed package when another is available and the user
                wants to reinstall. (trunk r9652)
  9655 zmedico  In the package selection loop, move the installed package
                rejection code as early as possible. (trunk r9654)
  9657 zmedico  When deps are forced to be satisfied by installed packages
                due to masking or unavailability, only tolerate it when the
                atom comes from either the system or world set since
                otherwise it's a good idea to bail so that the user can
                correct the problem. (trunk r9656)
  9661 zmedico  When identifying a sys-apps/portage node, compare category
                too (not just "portage". (trunk r9660)
  9676 zmedico  Remove the digraph._parent_child_digraph since it's no longer
                needed. It's main purpose was to track PDEPEND relationships
                but those are handled just like the other deps now. (trunk
                r9675)
  9682 zmedico  Use Package.cp instead of dep_getkey(cpv). (trunk r9679:9681)
  9686 zmedico  For old-style virtuals, we need to repeat the
                package.provided check against the selected package. (trunk
                r9685)
  9694 zmedico  Fix package selection logic so that it always properly finds
                the highest available version in a new slot even though the
                graph already contains a matching version in a lower slot.
                (trunk r9693)
  9698 zmedico  Add missing DepPriority instances to the graph so that the
                --buildpkgonly hasallzeros() calculation works correctly.
                (trunk r9695:9697)
  9701 zmedico  When the user has given --depclean a list of atoms to clean,
                pull all installed packages into the graph (not just those
                traversable from system or world) to ensure that packages can
                not be uninstalled unless nothing requires them. (trunk
                r9698:9700)
  9703 zmedico  Fix a typo in the depclean USE flag handling when populating
                the digraph for bug #201045. (trunk r9702)
  9707 zmedico  Display the note referencing "masked packages" docs when
                there are installed masked packages to display. (trunk
                r9704:9706)
  9711 zmedico  Add missing "the" to fix grammar. (trunk r9710)


bin/emerge-webrsync
  9539 zmedico  Merge emerge-webrsync from trunk for bugs #210945 and
                #130039.


bin/filter-bash-environment.py
  9417 zmedico  Bug #211949 - As suggested by vapier, tighten the variable
                filter to also exclude variable names that begin with a digit
                or that contain any non-alphanumeric characters that are not
                be supported by bash. (trunk r9416)
  9465 zmedico  Sync the fixes for bug #211949 from trunk.


bin/isolated-functions.sh
  9580 zmedico  Bug #214619 - Add support for a PORTAGE_BINPKG_TAR_OPTS
                variable that allows the user to specify tar command options
                for binary package creation. (trunk r9528)
  9581 zmedico  Remove the killparent() function and associated SIGINT trap
                since this should already be handled on the python side and
                it won't work with dropped privileges anyway. (trunk r9327)


bin/md5check.py
pym/portage_manifest.py
  9633 zmedico  Fix typos. Thanks to Arfrever Frehtes Taifersar Arahesis
                <Arfrever.FTA@GMail.Com>. (trunk r9632)


bin/misc-functions.sh
  9356 zmedico  Bug #210372 - Fix suidctl.conf parser to look for paths with
                a leading slash. (trunk r9355)
  9424 zmedico  Bug #210372 - Fix FEATURES=suidctl so that it really works
                again. (trunk r9423)
  9547 zmedico  Bug #97776 - Tell rpmbuild to clean it's working files after
                completion. (trunk r9428)
  9580 zmedico  Bug #214619 - Add support for a PORTAGE_BINPKG_TAR_OPTS
                variable that allows the user to specify tar command options
                for binary package creation. (trunk r9528)
  9593 zmedico  Fix quoting for ${root} in install_mask(). (trunk r9590)
  9595 zmedico  Bug #214619 - Run dyn_package() and preinst_mask() from ${T}
                instead of ${D} in order to avoid leaving gmon.out files in
                ${D} in case any tools were built with -pf in CFLAGS. Also,
                call preinst_mask() after all other functions so that
                INSTALL_MASK can be used to wipe out any gmon.out files
                created during previous functions. (trunk r9592)
  9663 zmedico  elevate the importance of 64bit clean code on 64bit hosts
                (trunk r5656)
  9664 zmedico  Remove references to ${O} in dyn_spec() since antarus made
                that variable mutable. (trunk r8444)


bin/newins
  9635 zmedico  * Fix broken return value for doins. * Make newins cleanup
                temp files after itself. (trunk r9634)


bin/pkgname
  9555 zmedico  avoid importing portage to improve performance (trunk r9470)


bin/portageq
  9546 zmedico  fix message on ValueError to not sound like crap (trunk
                r9427)
  9550 zmedico  Use os.environ["SANDBOX_ON"] = "0" to make portageq exempt
                from sandbox for things like writing metadata cache. Thanks
                to ferringb for the suggestion. (trunk r9448)


bin/regenworld
  9564 zmedico  Bug #210690 - Fix --help output to show the leading slash on
                the path to the world file. (trunk r9486)


bin/repoman
  9366 zmedico  Bug #211067 - Make the "portdir_overlay" and "mydir"
                variables contain paths that are consistent wrt eachother
                regardless of any path irregularities that can be induced by
                symlinks. Consistency is achieved by regenerating one of the
                paths to ensure that both paths have the exact same mapping
                between inodes and paths. This consistency ensures that the
                path manipulations used to calculate "repolevel" will work as
                intended. (trunk r9365)
  9390 zmedico  Bug #211294 - Make repoman ignore profiles labeled with
                anything other than "stable" or "dev" in profiles.desc so
                that we can extend it with new labels such as "exp". (trunk
                r9389)
  9529 zmedico  Remove IUSE.invalid from qawarnings since there's no reason
                for it not to be fatal. Thanks to Betelgeuse. (trunk r9344)
  9568 zmedico  Bug #211294 - Make repoman bail out if arch.list contains
                unrecognized lines since we don't want people to commit with
                old versions of portage that don't support the current
                arch.list format. (trunk r9504)
  9569 zmedico  Bug #212621 - Make the EbuildQuote check do quoting
                validation for misc variables from games.eclass. (trunk
                r9507)
  9573 zmedico  Bug #212509 - Implement a new --without-mask option that
                causes repoman to behave as if there are no package.mask
                entries. (trunk r9520)
  9574 zmedico  Bug #212509 - Display a note about the --without-mask option
                when there are masked packages. (trunk r9521)
  9575 zmedico  Bug #209418 - Add a new KEYWORDS.dropped check that compares
                keywords against the keywords of earlier ebuild versions
                within a slot. (trunk r9522)
  9576 zmedico  Bug #213629 - Create an EAPI.incompatible category and use it
                in cases where EAPI=0 and a slot atom is encountered. (trunk
                r9524)
  9577 zmedico  Bug #213629 - Use EAPI.incompatible in cases where EAPI=0 and
                a default IUSE is encountered.
  9597 zmedico  Add a new "java.eclassesnotused" check for cases where DEPEND
                contains virtual/jdk and and the appropriate java eclass has
                not been inherited (a violation of the java team's policy).
                Thanks to Betelgeuse for the initial patch. (trunk r9585)
  9598 zmedico  Don't trigger the 'java.eclassesnotused' on blocker atoms.
                (trunk r9586)
  9599 zmedico  Add a new "ebuild.patches" check for the PATCHES variable
                that's used by base_src_unpack() from base.eclass. This
                generates a warning if the variable is not defined as an
                array, since this is required for white space safety. Thanks
                to Betelgeuse for the initial patch. (trunk r9587)
  9620 zmedico  Do not allow commit mode together with the --without-mask
                options. (trunk r9619)
  9633 zmedico  Fix typos. Thanks to Arfrever Frehtes Taifersar Arahesis
                <Arfrever.FTA@GMail.Com>. (trunk r9632)


cnf/make.globals
  9543 zmedico  Quote the file path and uri inside FETCHCOMMAND and
                RESUMECOMMAND. Thanks to igli for suggesting. (trunk r9418)
  9553 zmedico  * Optimize parallel-fetch to avoid redundant checksum
                verification. * Add parallel-fetch to the default FEATURES
                since it is more efficient now. (trunk r9462)
  9554 zmedico  Bug #42456 - When a checksum failure occurs during fetch, use
                a new PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS config variable to
                control how many mirrors should be tried before aborting the
                download. This type of behavior used to be enabled only in
                --fetchonly mode but now it's enabled for all fetch() calls.
                (trunk r9462:9466)
  9571 zmedico  Bug #214499 - When compiler flags are unset, many packages
                will substitute their own implicit flags. For uniformity, use
                an empty string as the default. (trunk r9511)
  9688 zmedico  Implement a PORTAGE_FETCH_RESUME_MIN_SIZE variable that is
                useful for helping to ensure that small garbage files such as
                html 404 pages are properly discarded. (trunk r9687)


man/make.conf.5
  9554 zmedico  Bug #42456 - When a checksum failure occurs during fetch, use
                a new PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS config variable to
                control how many mirrors should be tried before aborting the
                download. This type of behavior used to be enabled only in
                --fetchonly mode but now it's enabled for all fetch() calls.
                (trunk r9462:9466)
  9572 zmedico  Bug #214879 - Fix FEATURES=-strict behavior so that distfiles
                digests are always checked. (trunk r9519)
  9580 zmedico  Bug #214619 - Add support for a PORTAGE_BINPKG_TAR_OPTS
                variable that allows the user to specify tar command options
                for binary package creation. (trunk r9528)
  9594 zmedico  Add a note about PKG_INSTALL_MASK. (trunk r9591)
  9688 zmedico  Implement a PORTAGE_FETCH_RESUME_MIN_SIZE variable that is
                useful for helping to ensure that small garbage files such as
                html 404 pages are properly discarded. (trunk r9687)
  9704 zmedico  Merge FEATURES=webrsync-gpg docs from trunk.


man/repoman.1
  9573 zmedico  Bug #212509 - Implement a new --without-mask option that
                causes repoman to behave as if there are no package.mask
                entries. (trunk r9520)
  9575 zmedico  Bug #209418 - Add a new KEYWORDS.dropped check that compares
                keywords against the keywords of earlier ebuild versions
                within a slot. (trunk r9522)
  9576 zmedico  Bug #213629 - Create an EAPI.incompatible category and use it
                in cases where EAPI=0 and a slot atom is encountered. (trunk
                r9524)
  9597 zmedico  Add a new "java.eclassesnotused" check for cases where DEPEND
                contains virtual/jdk and and the appropriate java eclass has
                not been inherited (a violation of the java team's policy).
                Thanks to Betelgeuse for the initial patch. (trunk r9585)
  9599 zmedico  Add a new "ebuild.patches" check for the PATCHES variable
                that's used by base_src_unpack() from base.eclass. This
                generates a warning if the variable is not defined as an
                array, since this is required for white space safety. Thanks
                to Betelgeuse for the initial patch. (trunk r9587)
  9620 zmedico  Do not allow commit mode together with the --without-mask
                options. (trunk r9619)


pym/elog_modules/mod_mail.py
  9570 zmedico  Support ${HOST} substitution in "From" field. Thanks to
                wschlich. (trunk r9510)


pym/elog_modules/mod_mail_summary.py
  9570 zmedico  Support ${HOST} substitution in "From" field. Thanks to
                wschlich. (trunk r9510)
  9600 zmedico  Bug #215240 - Use an alarm signal to implement a 60 second
                timeout in finalize() in case send_mail() blocks
                indefinitely. (trunk r9588)


pym/portage.py
  9383 zmedico  Bug #211365 - Use catpkgsplit() instead of pkgsplit() on the
                cpv in the dblink constructor since otherwise weird
                categories containing numbers can make pkgsplit() return None
                (likely related to version regex handling).
  9401 zmedico  Make 'import portage' statements more tolerant to broken
                source statements in make.conf since exceptions thrown during
                'import portage' statements can practically render the api
                unusable for api consumers. Thanks to lxnay for the
                suggestion. (trunk r9400)
  9534 zmedico  Optimize dblink.isowner() to use fewer stat calls by doing a
                basename comparison to try and eliminate the file before
                resorting to inode comparison. This speeds up the `portageq
                owners` command as well as the search that is done when
                collision-protect finds a collision. (trunk r9363)
  9536 zmedico  Revert portdbapi category auto-detection code since it's not
                really needed and can cause problems if we need to add new
                non-category directories in the future. We only really need
                the category auto-detection for bindbapi and vardbapi anyway.
                (trunk r9368)
  9540 zmedico  Bug #211554 - Replace references to config["USE"] with
                references to config["PORTAGE_USE"] (which is filtered for
                intersection with IUSE) so that dependency calculations at
                installation time are consistent with those at depclean time.
                (trunk r9391:9393)
  9542 zmedico  Bug #200385 - Stack use flags from package.*use* files for
                multiple matching atoms. (trunk r9408 and r9409:9415)
  9544 zmedico  Bug #212152 - Check available space in DISTDIR before trying
                to fetch/copy a file. (trunk r9425, r9502, and 9504:9506)
  9545 zmedico  Bug #212080 - Don't list files as being merged when they are
                ignored due to confmem. (trunk r9426)
  9548 zmedico  Remove redundant CUSTOM_PROFILE_PATH from the PROFILE_PATHS
                variable so that /etc/portage/profile/profile.bashrc will
                only be sourced once if it exists. (trunk r9435)
  9549 zmedico  As requested by wolf31o2, use the ROOT setting from make.conf
                as long as it's not overridden by the calling environment.
                (trunk r9439)
  9553 zmedico  * Optimize parallel-fetch to avoid redundant checksum
                verification. * Add parallel-fetch to the default FEATURES
                since it is more efficient now. (trunk r9462)
  9554 zmedico  Bug #42456 - When a checksum failure occurs during fetch, use
                a new PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS config variable to
                control how many mirrors should be tried before aborting the
                download. This type of behavior used to be enabled only in
                --fetchonly mode but now it's enabled for all fetch() calls.
                (trunk r9462:9466)
  9572 zmedico  Bug #214879 - Fix FEATURES=-strict behavior so that distfiles
                digests are always checked. (trunk r9519)
  9580 zmedico  Bug #214619 - Add support for a PORTAGE_BINPKG_TAR_OPTS
                variable that allows the user to specify tar command options
                for binary package creation. (trunk r9528)
  9595 zmedico  Bug #214619 - Run dyn_package() and preinst_mask() from ${T}
                instead of ${D} in order to avoid leaving gmon.out files in
                ${D} in case any tools were built with -pf in CFLAGS. Also,
                call preinst_mask() after all other functions so that
                INSTALL_MASK can be used to wipe out any gmon.out files
                created during previous functions. (trunk r9592)
  9610 zmedico  For bugs #197810 and #215308, pass the depgraph's "selective"
                parameter down into dep_check() for better atom preference
                selection when handling virtuals and other disjunctive ||
                dependencies.
  9622 zmedico  Move the AUTOCLEAN code into dblink.treewalk since it's
                already partially supported there anyway (for replacement of
                identical cpv). This has the benefit of guaranteeing that the
                order of installation and removal phases is always the same.
                (trunk r9621)
  9627 zmedico  Fix namespace typo.
  9640 zmedico  When dblink.treewalk() queries for other packages in the same
                slot, filter out old-style virtual matches since they are not
                desired. (trunk r9637)
  9659 zmedico  Bug #215308 - Cache the paths of known bad manifests to
                ensure that the same broken manifest is never checked twice.
                (trunk r9658)
  9670 zmedico  Exploid ascending order returned from dbapi.match() calls to
                avoid the need to call best(). (trunk r9665)
  9671 zmedico  Remove some boolean logic that is obsolete now that the
                "selective" parameter is passed into dep_zapdeps(). (trunk
                r9669)
  9673 zmedico  Use pkgcmp() instead of == and best() for correctness in case
                of implicit -r0. (trunk r9672)
  9684 zmedico  In cpv_expand(), if the virtuals file contains a versioned
                atom (like the base profile currently has for virtual/pam),
                properly remove the operator and version from the atom before
                it is passed into dbapi.cp_list(). (trunk r9683)
  9688 zmedico  Implement a PORTAGE_FETCH_RESUME_MIN_SIZE variable that is
                useful for helping to ensure that small garbage files such as
                html 404 pages are properly discarded. (trunk r9687)
  9690 zmedico  If PORTAGE_FETCH_RESUME_MIN_SIZE is undefined or empty,
                silently use the default. (trunk r9689)
  9692 zmedico  Add missing str.upper() call for
                PORTAGE_FETCH_RESUME_MIN_SIZE. (trunk r9691)


pym/portage_dep.py
  9552 zmedico  Make strip_empty() return a nedw list instead of working
                in-place. Thanks to Ren?\195?\169 Neumann
                <rene.neumann@necoro.net> for the suggestion. (trunk r9460)
  9556 zmedico  When in strict mode, make paren_reduce() detect missing
                whitespace around parenthesis tokens and raise an
                InvalidDependString exception. Strict mode is not enabled
                when handling installed packages, so this will only affect
                repoman and packages that haven't been installed yet. Thanks
                to zlin for reporting. (trunk r9471)
  9560 zmedico  add @ to the list of invalid atom chars so sets with prefix
                aren't considered as atoms accidentally (trunk r9479)


pym/portage_locks.py
  9515 zmedico  Make --noreplace take precedence over --newuse, as suggested
                by wolf31o2. (trunk r9512:9514)
  9516 zmedico  revert previous commit since it had portage_locks stuff mixed
                in
  9518 zmedico  Bug #212882 - For compatibility with ENOENT exceptions raised
                from fstat calls with CIFS, wrap fstat calls with an
                appropriate exception handler. (trunk r9474) - Fix lockfile()
                to handle errno.EACCES raised from the fcntl call since the
                spec says that it's equivalent to EAGAIN and it appears that
                CIFS returns EACCES in this case. (trunk r9458)


pym/portage_util.py
  9401 zmedico  Make 'import portage' statements more tolerant to broken
                source statements in make.conf since exceptions thrown during
                'import portage' statements can practically render the api
                unusable for api consumers. Thanks to lxnay for the
                suggestion. (trunk r9400)
  9532 zmedico  Make stack_dicts() treat an empty variable assignment just
                like a non-empty assignment. This allows the profile to set
                and empty variable in make.defaults and have it override a
                non-empty value as one would expect. (trunk r9361)
  9679 zmedico  Handle a potential FileNotFound exception in
                new_protect_filename() when the last ._cfg* file happens to
                be a broken symlink. Thanks to bonsaikitten for reporting.
                (trunk r9676:9678)


=============================================================================
2.1.4.4
2008-02-11
branches/2.1.2 revision 9334
=============================================================================


bin/emerge
  9334 zmedico  Bug #209768 - Fix --search "Size of files:" handling so that
                it properly shows the "Unknown (missing digest)" message
                instead of a traceback. (trunk r9333)


=============================================================================
2.1.4.3
2008-02-10
branches/2.1.2 revision 9331
=============================================================================


bin/emerge
pym/portage.py
  9331 zmedico  Bug #209538 - Disable annoying "masked by keyword" warnings
                for installed packages. We can assume that if the user
                accepted the keywords at merge time then they never want to
                be bothered again. (trunk r9330)


=============================================================================
2.1.4.2
2008-02-09
branches/2.1.2 revision 9325
=============================================================================


bin/ebuild.sh
  9282 zmedico  Bug #155993 - Update environment.bz2 after postinst in case
                installation phases need to pass some variables to
                uninstallation phases. (trunk r9281)
  9304 zmedico  Make qa_source and qa_call save the return value and return
                it. Thanks to igli for suggesting. (trunk r9278)
  9305 zmedico  For the useq() IUSE qa check, use [[ $u =~ $PORTAGE_IUSE ]]
                instead of egrep since apparently it's compatible in this
                case. Thanks to igli for this. (trunk r9279)


bin/emerge
  9284 zmedico  Bug #209144 - For emerge --sync, don't return 0 when the
                server is out of date. (trunk r9283)
  9286 zmedico  Bug #208782 - Consistently use double quotes rather than
                mixining in single quotes. (trunk r9285)
  9294 zmedico  Don't show unmasked packages (currently installed packages)
                in the masking display. (trunk r9292)
  9295 zmedico  Fix depgraph.select_files() so that arguments are expanded
                against the vardb when expansion against the binary repo
                fails in --usepkgonly mode.
  9296 zmedico  Bug #208708 - Fix masked package display some more: - Warn if
                all matching ebuilds are masked or the installed package
                itself is masked. - Do not warn if there are simply no
                matching ebuilds since that would be annoying in some cases.
                (trunk r9293)
  9297 zmedico  Fix old broken binary package visibility filtering code
                inside depgraph.select_files() and xcreate().
  9298 zmedico  Fix some broken variable references found by pyflakes.
  9302 zmedico  Bug #208708 - Show informative warning messages for installed
                packages that are masked. (trunk r9301)
  9319 zmedico  Fix get_mask_info() to properly pass the "installed"
                attribute into the Package constructor. (trunk r9318)
  9322 zmedico  Fix the exitcode logic for bug #209144 so that when the
                server is out of date it's not interpreted like an actual
                rsync exitcode (to avoid a misleading exitcode interpretation
                message). (trunk r9320) Bug #209144 - For emerge --sync, show
                an informative error and don't return 1 when
                PORTAGE_RSYNC_RETRIES is exceeded. (trunk r9321)
  9323 zmedico  Pass the myparent parameter into _show_unsatisfied_dep() when
                available.
  9325 zmedico  Fix CHOST masking logic wrt installed packages so that it's
                consistent between visible() and get_masking_status(). (trunk
                r9324)


bin/isolated-functions.sh
  9282 zmedico  Bug #155993 - Update environment.bz2 after postinst in case
                installation phases need to pass some variables to
                uninstallation phases. (trunk r9281)


bin/repoman
  9291 zmedico  Add DISTDIR to the EbuildQuote.var_names. Thanks to
                Betelgeuse. (trunk r9290)


man/ebuild.5
  9288 zmedico  Bug #208743 - Clarify dosed docs to indicate that sed is
                performed in place of a file in ${D}. (trunk r9287)
  9314 zmedico  Bug #208743 - Update dosed docs to indicate that "s:${D}::g"
                is used as the default expression if none other is given.
                (trunk r9313)


pym/elog_modules/mod_mail_summary.py
  9303 zmedico  Use local time for elog summaries (trunk r9273)


pym/elog_modules/mod_save_summary.py
  9303 zmedico  Use local time for elog summaries (trunk r9273)
  9306 zmedico  Fix a changed variable name.


pym/portage.py
  9282 zmedico  Bug #155993 - Update environment.bz2 after postinst in case
                installation phases need to pass some variables to
                uninstallation phases. (trunk r9281)
  9302 zmedico  Bug #208708 - Show informative warning messages for installed
                packages that are masked. (trunk r9301)


=============================================================================
2.1.4.1
2008-01-31
branches/2.1.2 revision 9265
=============================================================================


RELEASE-NOTES
  9265 zmedico  portage-2.1.4.1 (trunk r9264)


bin/ebuild
  9255 zmedico  Disable manifest1_compat for ebuild --force digest. (trunk
                r9254)


bin/ebuild.sh
  9246 zmedico  Bug #206772 - Enable bashrc once again for the clean phase.
                (trunk r9220)
  9247 zmedico  - Remove ebuild.autotools repoman check since it produces
                lots of false positives (bug #207104) and its hard to parse
                bash - Use QA_INTERCEPTORS in ebuild.sh to implement a
                runtime 'QA Notice' when autotools is called directly trunk
                r9235
  9250 zmedico  Make the autotools.eclass functions exempt from the autotools
                QA Notice. (trunk r9249)


bin/emaint
  9239 zmedico  Bug #138159 - add support for --version (trunk r9200)


bin/emerge
  9234 zmedico  Pass db_keys in to the FakeVartree constructor (merged from
                trunk). This solves an issue with EAPI missing from the key
                list which triggers invalid EAPI messages for masked packages
                in cases where there is an installed version and all ebuilds
                are masked.
  9251 zmedico  fix typo
  9261 zmedico  Remove the manifest1 digest filter from PORTAGE_RSYNC_OPTS
                since it's no longer needed. (trunk r9260)


bin/isolated-functions.sh
  9245 zmedico  Replace the current diefunc() and die alias with a single
                die() function. The previous arguments to diefunc() weren't
                used anyway. The result is that the die message looks better
                because it doesn't show the alias and all of it's arguments
                which are totally irrelevant. (trunk r9215:9217)
  9247 zmedico  - Remove ebuild.autotools repoman check since it produces
                lots of false positives (bug #207104) and its hard to parse
                bash - Use QA_INTERCEPTORS in ebuild.sh to implement a
                runtime 'QA Notice' when autotools is called directly trunk
                r9235


bin/misc-functions.sh
  9257 zmedico  Bug #205718 - Fix quoting of ${INSTALL_MASK} where
                appropriate. Thanks to Ed Catmur <ed@catmur.co.uk> for this
                patch. (trunk r9256)


bin/repoman
  9240 zmedico  Check for quoted ${A}. Thanks to maekke for this patch.
                (trunk r9206)
  9247 zmedico  - Remove ebuild.autotools repoman check since it produces
                lots of false positives (bug #207104) and its hard to parse
                bash - Use QA_INTERCEPTORS in ebuild.sh to implement a
                runtime 'QA Notice' when autotools is called directly trunk
                r9235
  9253 zmedico  Unconditionally disable manifest1 compatibility since it's
                been dropped from the main tree and nobody needs it anymore.
                (trunk r9252)
  9263 zmedico  Remove the manifest1 digest file removal code since it's no
                longer needed. (trunk r9262)


cnf/make.globals
  9261 zmedico  Remove the manifest1 digest filter from PORTAGE_RSYNC_OPTS
                since it's no longer needed. (trunk r9260)


man/make.conf.5
  9243 zmedico  Add a note that PORTDIR is a repository of software and that
                users should not add random directories in it. (trunk r9209)


pym/portage.py
  9237 zmedico  Bug #205966 - Don't show binhost password when displaying the
                uri. Thanks to Mike "Fuzzy" Partin <fuzzyoni@gmail.com>.
  9248 zmedico  Add 'local' to the list of non_category_dirs since it's
                commonly used for layman overlays. (trunk r9241)
  9253 zmedico  Unconditionally disable manifest1 compatibility since it's
                been dropped from the main tree and nobody needs it anymore.
                (trunk r9252)


pym/portage_manifest.py
  9259 zmedico  Make the manifest1_compat constructor parameter default to
                False to prevent potential interference from stale old digest
                files in overlays. (trunk r9258)


=============================================================================
2.1.4
2008-01-11
branches/2.1.2 revision 9198
=============================================================================

