2008-12-07 20:17  zmedico

	* [r12177] pym/portage/locks.py: Bug #249586 - Use writemsg() to
	  send output to stderr instead of stdout. (trunk r12176)

2008-12-07 00:20  zmedico

	* [r12175] pym/portage/__init__.py: If pkg_nofetch needs to be
	  spawned inside fetch() and it happens that PORTAGE_BUILDDIR
	  doesn't exist, like when called by digestgen(), use mkdtemp to
	  create a private temporary directory so that pkg_nofetch can be
	  spawned (directory needed to satisfy safe $PWD requirement of bug
	  #239560). This is more user friendly since before the pkg_nofetch
	  phase would simply be skipped in this case. Thanks to Petteri
	  Räty <betelgeuse@g.o> for reporting. (trunk r12174)

2008-12-06 22:34  zmedico

	* [r12173] pym/_emerge/__init__.py: Allow 'system' and 'world'
	  arguments simultaneously since it doesn't hurt.

2008-12-06 08:11  zmedico

	* [r12169] man/make.conf.5: Add docs for PORTAGE_GPG_DIR and
	  PORTAGE_GPG_KEY that are used by repoman for FEATURES=sign
	  support. Thanks to Petteri Räty <betelgeuse@g.o> for reporting.
	  (trunk r12168)

2008-12-06 05:36  zmedico

	* [r12167] pym/_emerge/__init__.py: Validate $ROOT inside the
	  --resume merge list in order to avoid a pottential KeyError due
	  to a stale merge list that was for a different $ROOT setting.
	  Thanks to Ned Ludd <solar@g.o> for reporting. (trunk r12166)

2008-12-05 00:09  zmedico

	* [r12160] pym/portage/__init__.py: Make fixpackages use a new "#"
	  symbol for /var/db updates (previously '*' which means 'binary
	  update' was used). (trunk r12159)

2008-12-04 23:57  zmedico

	* [r12158] pym/portage/__init__.py, pym/portage/dbapi/__init__.py:
	  Make fixpackages less noisy by only generting '*' characters for
	  packages that are modified by updates. (trunk r12155)

2008-12-04 21:13  zmedico

	* [r12156] RELEASE-NOTES, cnf/make.globals: Enable
	  FEATURES=fixpackages by default since the performance is pretty
	  reasonable now. Thanks to Jeremy Olexa <darkside@g.o> for the
	  suggestion. (trunk r12153 and r12155)

2008-12-04 06:57  zmedico

	* [r12151] pym/_emerge/__init__.py: Make sure
	  depgraph._slot_conflict_explanation() doesn't display the same
	  atom more than once. (trunk r12150)

2008-12-04 05:42  zmedico

	* [r12149] pym/_emerge/__init__.py: Bug #249185 - For common cases
	  in which USE deps trigger SLOT conflicts, give a short
	  explanation and suggest a course of action to solve the problem.
	  (trunk r12148)

2008-12-03 20:47  zmedico

	* [r12147] pym/_emerge/__init__.py: Break references between the
	  depgraph and the dropped tasks inside
	  Scheduler._calc_resume_list(), since the tasks are now saved for
	  display at the end. (trunk r12146)

2008-12-03 20:41  zmedico

	* [r12145] pym/_emerge/__init__.py: When --keep-going drops
	  packages due to unsatisfied dependencies, include them in the
	  list of packgaes that "failed to build or install" that's
	  displayed at the end. Thanks to Jeremy Olexa <darkside@g.o> for
	  the suggestion. (trunk r12144)

2008-12-03 08:23  zmedico

	* [r12143] bin/repoman: It's not safe to use the git commit -a
	  option since there might be some modified files elsewhere in the
	  working tree that the user doesn't want to commit. Therefore,
	  call git update-index in order to ensure that the index is
	  updated with the latest versions of all new and modified files in
	  the relevant portion of the working tree. (trunk r12142)

2008-12-03 05:44  zmedico

	* [r12141] bin/repoman: When calling `git ls-files -m` to list
	  modified files, use --with-tree=HEAD so that differences from the
	  most recent commit are given instead of differences from the
	  index which is used for commit staging purposes. This is required
	  since otherwise files that have been added via `git add` (such as
	  echangelog does with the ChangeLog) won't show up in the list of
	  modified files due to being unmodified relative to the index.
	  Thanks to Christian Ruppert (idl0r) for reporting. (trunk r12140)

2008-12-02 23:39  zmedico

	* [r12139] pym/_emerge/__init__.py: Fix
	  depgraph._dep_check_composite_db._visible() to reject installed
	  packages that are masked. This is necessary for correct choices
	  in || deps when we want to ensure that installed masked packages
	  are not preferred over other available choices that are not
	  masked. Thanks to Jan Kundrát <jkt@g.o> for reporting this issue
	  and testing the patch. (trunk r12138)

2008-12-02 22:39  zmedico

	* [r12137] bin/ebuild.sh: Skip sourcing of profile.bashrc during
	  the depend phase. (trunk r12136)

2008-12-02 22:20  zmedico

	* [r12135] bin/ebuild.sh, bin/isolated-functions.sh,
	  bin/misc-functions.sh: Source bashrc files as late as possible,
	  giving them the opportunity to override as much as possible.
	  Thanks to Ned Ludd <solar@g.o> for the suggestion. (trunk r12134)

2008-12-01 19:06  zmedico

	* [r12129] bin/ebuild.sh: Fix inconsistencies between the "clean"
	  and "cleanrm" phases. (trunk r12126)

2008-12-01 19:04  zmedico

	* [r12128] pym/_emerge/__init__.py: Bug #249185 - For more useful
	  output in cases when one or more USE deps trigger "SLOT
	  conflicts", show the specific atoms that triggered the conflict.
	  TODO: Distiguish between various possible causes and tailor
	  messages to suit them. (trunk r12125)

2008-12-01 19:02  zmedico

	* [r12127] pym/_emerge/__init__.py: Change
	  depgraph._slot_collision_info() from a set to a dict that
	  contains sets of packages pulled into a given slot. This will
	  make the data easier to analyze when implementing a fix for bug
	  #249185. (trunk r12124)

2008-11-29 20:24  zmedico

	* [r12123] pym/_emerge/__init__.py: Add a sanity check inside
	  depgraph._add_pkg() to ensure that the dependencies of the same
	  package are never processed more than once. (trunk r12122)

2008-11-29 06:39  zmedico

	* [r12121] man/emerge.1: Add 'automatically resolved' blockers to
	  the --pretend docs. (trunk r12120)

2008-11-27 02:36  zmedico

	* [r12118] pym/portage/__init__.py: Use stat st_dev attributes
	  instead of the older approach. (trunk r12117)

2008-11-27 02:09  zmedico

	* [r12116] pym/portage/__init__.py: Don't call prepare_build_dirs()
	  inside doebuild() when called for parallel fetching. (trunk
	  r12115)

2008-11-26 23:56  zmedico

	* [r12114] pym/portage/dbapi/vartree.py: For bug #235642, include
	  the stat mode, uid, and gid bits in the hardlink key. (trunk
	  r12113)

2008-11-26 23:07  zmedico

	* [r12112] pym/portage/__init__.py: In movefile(), ignore the
	  hardlink_candidates parameter when it's an empty list. (trunk
	  r12111)

2008-11-26 22:40  zmedico

	* [r12110] pym/portage/__init__.py, pym/portage/dbapi/vartree.py:
	  Bug #235642 - Create hardlinks when merging identical files. This
	  works by using a tuple of (md5, st_size) as a key to a list of
	  hardlink candidates. Multiple candidates are used in case some
	  happen to be merged to separate devices. (trunk r12109)

2008-11-26 20:30  zmedico

	* [r12108] bin/isolated-functions.sh: Don't direct to /dev/null
	  when creating $EBUILD_EXIT_STATUS_FILE inside die. (trunk r12107)

2008-11-26 20:21  zmedico

	* [r12106] bin/ebuild.sh: Bug #205044 - When creating
	  $EBUILD_EXIT_STATUS_FILE, don't direct output to /dev/null since
	  it should never fail and if it does then the error message might
	  be useful. (trunk r12105)

2008-11-26 19:13  zmedico

	* [r12104] pym/_emerge/__init__.py: Make Scheduler.merge() bail out
	  early if PORTAGE_TMPDIR is not properly set. (trunk r12103)

2008-11-26 18:33  zmedico

	* [r12102] pym/portage/__init__.py: Add some more clarification to
	  the 'ebuild phase exited unexpectedly' message. (trunk r12101)

2008-11-26 07:02  zmedico

	* [r12100] pym/_emerge/__init__.py: Bug #248603 - Disable warnings
	  about missing repo_name entries for now, since it's not really a
	  pressing matter and we still need to update docs and maybe add an
	  emaint command to generate missing entries for users who just
	  want the warning to go away.

2008-11-26 06:52  zmedico

	* [r12099] bin/repoman: Eliminate redundant Manifest separation
	  code by combining mychanged + mynew sooner. (trunk r12098)

2008-11-26 06:40  zmedico

	* [r12097] bin/repoman: Remove redundant reference to 'mynew' since
	  'myupdates' already contains those files. (trunk r12096)

2008-11-26 06:25  zmedico

	* [r12095] bin/repoman: Bug #248464 - With git, there's never any
	  keyword expansion, so there's no need to regenerate manifests and
	  all files will be committed in one big commit at the end. (trunk
	  r12094)

2008-11-26 00:42  zmedico

	* [r12093] pym/_emerge/__init__.py: Bug #248782 - Handle permission
	  error in EbuildFetchonly.execute() if PORTAGE_TMPDIR is not
	  writable. (trunk r12092)

2008-11-26 00:01  zmedico

	* [r12091] man/portage.5: Note that file names in
	  /etc/portage/package.* directories are sorted ascending
	  alphabetical order before being summed together. (trunk r12090)

2008-11-25 07:08  zmedico

	* [r12089] man/emerge.1: Bug #248599 - Remove docs for the
	  --list-sets option.

2008-11-25 07:04  zmedico

	* [r12088] man/emerge.1, pym/_emerge/help.py: Add note in
	  --depclean docs about link level dependency breakage.

2008-11-25 00:06  zmedico

	* [r12087] man/emerge.1, pym/_emerge/help.py: Remove world and
	  system targets for emerge --help since it no longer works now
	  that they are sets rather than actions. (trunk r12086)

2008-11-24 23:14  zmedico

	* [r12085] man/emerge.1, man/make.conf.5, man/portage.5,
	  pym/_emerge/__init__.py, pym/_emerge/help.py: Bug #248599 -
	  Remove remaining references to packages sets and preserve-libs.

2008-11-24 06:51  zmedico

	* [r12084] mkrelease.sh: Use tar options to make files owned in
	  release tarballs owned by portage:portage instead of the current
	  user. (trunk r12081)

2008-11-24 03:41  zmedico

	* [r12080] pym/portage/__init__.py: Also add 2 spaces after
	  newline, for alignment. (trunk r12079)

2008-11-24 03:39  zmedico

	* [r12078] pym/portage/__init__.py: Add one newline, to wrap the
	  "Global Updates" key to less than 80 columns. (trunk r12077)

2008-11-24 02:57  zmedico

	* [r12076] bin/glsa-check, pym/portage/_sets/dbapi.py,
	  pym/portage/_sets/libs.py, pym/portage/_sets/security.py,
	  pym/portage/_sets/shell.py, pym/portage/glsa.py,
	  pym/portage/tests/sets: Remove unused package sets and glsa
	  stuff.

2008-11-24 02:42  zmedico

	* [r12075] cnf/sets.conf: Remove unused sets.conf file.

2008-11-24 02:20  zmedico

	* [r12074] pym/_emerge/__init__.py: Add back the --depclean warning
	  about "link level dependencies" since the 2.1.6 branch doesn't
	  have lib awareness.

2008-11-24 01:41  zmedico

	* [r12073] bin/emaint: Fix typo in --help. (trunk r12072)

2008-11-24 01:09  zmedico

	* [r12071] man/portage.5: Document the 'eapi' profile file. (trunk
	  r12070)

2008-11-24 00:51  zmedico

	* [r12069] pym/portage/__init__.py: Add support for parsing EAPI
	  labels in contained in 'eapi' files in the profiles, and bail out
	  if the profile contains an unsupported EAPI value in any one of
	  it's directories. We don't necessarily have to use this but at
	  least it gives us some way to make emerge bail out early if a
	  profile contains unsupported EAPI features. (trunk r12068)

2008-11-24 00:34  zmedico

	* [r12067] pym/_emerge/__init__.py, pym/portage/__init__.py: Make
	  emerge detect an invalid profile an bail out for anything except
	  --help, --info, --sync, and --version actions. When bailing out,
	  suggest to revert back to the previous profile configuration
	  advise the user which actions are allowed with an invalid
	  profile. (trunk r12064:12066)

2008-11-23 23:34  zmedico

	* [r12064] man/emerge.1: Use a table to organize the key of USE
	  flag symbols for the --verbose option. (trunk r12063)

2008-11-23 23:25  zmedico

	* [r12062] man/emerge.1: Use a table to organize the key of merge
	  list display codes for the --pretend option. (trunk r12061)

2008-11-23 23:12  zmedico

	* [r12060] man/emerge.1: Document "I" which represents
	  PROPERTIES=interactive in the merge list display. (trunk r12059)

2008-11-23 22:51  zmedico

	* [r12058] man/ebuild.5: Add a note about negative IUSE default
	  settings being ineffective given the default USE_ORDER setting
	  which causes profile and user configuration settings to override
	  them. (trunk r12057)

2008-11-23 21:09  zmedico

	* [r12056] bin/etc-update: Fix SIGINT and SIGTERM trap handling so
	  the temp dir always cleaned up when killed. (trunk r12055)

2008-11-23 19:48  zmedico

	* [r12054] bin/etc-update: Bug #188780 - Make the read_int()
	  function show a more human readable error message, instead of the
	  'value too great for base' message when the user enters an
	  invalid value such as '1y'. (trunk r12053)

2008-11-23 07:47  zmedico

	* [r12052] pym/_emerge/__init__.py: Fix the code from bug #245358
	  so that it's guaranteed to traverse all the way to a root node,
	  even when circular deps are encountered. (trunk r12051)

2008-11-23 05:50  zmedico

	* [r12050] bin/repoman, man/repoman.1, pym/repoman/utilities.py:
	  Bug #247548 - Remove 'last' and 'lfull' commands since nobody
	  uses them. Thanks to Alec Warner <antarus@g.o>. (trunk r12049)

2008-11-23 04:25  zmedico

	* [r12048] bin/emaint, man/emaint.1: Add docs for all of the
	  supported commands. (trunk r12047)

2008-11-23 00:33  zmedico

	* [r12046] pym/_emerge/__init__.py: When displaying anscestors of
	  an unstatisfied dependency (code from bug #245358), avoid a
	  potential infinite loop and memory leak triggered by circular
	  dependencies. Thanks to Peter Weller <welp@g.o> for reporting.
	  (trunk r12045)

2008-11-22 18:48  zmedico

	* [r12042] pym/portage/__init__.py: Add some hints about bash
	  binary corruption and hardware malfunction to the message that's
	  displayed when bash exits unexpectedly. (trunk r12041)

2008-11-22 09:19  zmedico

	* [r12034] man/emerge.1: Add some people to the AUTHORS section.
	  (trunk r12033)

2008-11-22 04:47  zmedico

	* [r12031] mkrelease.sh: Fix quoting on $CHANGELOG_REVISION. (trunk
	  r12030)

2008-11-22 03:53  zmedico

	* [r12029] pym/portage/cache/metadata.py: Make sure the dict
	  returned from _parse_data() contains all of _known_keys. (trunk
	  r12028)

2008-11-22 02:00  zmedico

	* [r12027] pym/portage/__init__.py: Add missing '%' symbol (for
	  binary package moves) to the key that's displayed by
	  _global_updates(). Thanks to Andrew Gaffney <agaffney@g.o> for
	  reporting. (trunk r12026)

2008-11-22 01:43  zmedico

	* [r12025] pym/portage/__init__.py: Fix some cases in dep_zapdeps()
	  where blocker atoms are inappropriately tested for availablity.
	  Thanks to Jorge Manuel B. S. Vicetto <jmbsvicetto@g.o> for
	  reporting. (trunk r12024)

2008-11-21 23:21  zmedico

	* [r12023] pym/_emerge/__init__.py: Bug #247776 - Show a warning
	  message if CONFIG_PROTECT is empty. (trunk r12022)

2008-11-21 22:32  zmedico

	* [r12021] pym/_emerge/__init__.py, pym/portage/__init__.py: Bug
	  #248059 - Make --depclean more tolerant of invalid atoms in
	  dependencies of packages that will be uninstalled anyway. (trunk
	  r12020)

2008-11-21 21:57  zmedico

	* [r12019] pym/_emerge/__init__.py: Bug #248059 - In
	  action_depclean(), ignore invalid atoms in deps of packages to be
	  uninstalled. (trunk r12018)

2008-11-21 21:28  zmedico

	* [r12017] pym/_emerge/__init__.py: In EbuildProcess._start(),
	  don't open the log file during the clean phase since the open
	  file can result in an nfs lock on $T/build.log which prevents the
	  clean phase from removing $T. Thanks to Jeremy Olexa
	  <darkside@g.o> for reporting. (trunk r12016)

2008-11-21 08:24  zmedico

	* [r12015] pym/_emerge/__init__.py: In JobStatusDisplay, always
	  flush the output stream after writing to it. (trunk r12014)

2008-11-21 02:49  zmedico

	* [r12013] pym/_emerge/__init__.py: When given an ambiguous ebuild
	  name to install, format the list of choices in emerge --search
	  format if --quiet mode is not enabled, otherwise just show a
	  brief list. Thanks to Markus Meier <maekke@g.o> for the
	  suggestion. (trunk r12012)

2008-11-20 22:43  zmedico

	* [r12011] pym/portage/cache/sqlite.py: Remove inappropriate
	  backslash escaping inside _db_escape_string(). (trunk r12010)

2008-11-20 21:08  zmedico

	* [r12009] pym/portage/cache/metadata.py: Inside _parse_data(),
	  don't rely on the magic 22 line count for the flat_list format,
	  since it doesn't make a significant performance difference and it
	  places an artificial limit on the number of keys that can be
	  stored. (trunk r12008)

2008-11-20 02:40  zmedico

	* [r12007] pym/_emerge/__init__.py, pym/portage/__init__.py: Bug
	  #247370 - Use a private PORTAGE_TMPDIR for --fetchonly mode in
	  order do avoid locking the normal build dir location (similar to
	  bug #245231). The EbuildFetchPretend class is renamed to
	  EbuildFetchonly and it's used for --fetchonly mode regardless of
	  whether --pretend is enabled. Also, fix stdout/stderr flushing in
	  JobStatusDisplay.displayMessage() and portage.spawn() to ensure
	  output always occurs in the correct order when displaying
	  pkg_nofetch() output in --fetchonly mode. (trunk r12006)

2008-11-19 22:53  zmedico

	* [r12005] cnf/make.globals, man/make.conf.5: Bug #247625 - Update
	  PORTAGE_IONICE_COMMAND docs to reflect that it is unset by
	  default. (trunk r12002:12004)

2008-11-19 06:54  zmedico

	* [r12002] pym/_emerge/__init__.py: Remove --fetchonly --resume
	  time.sleep() call which is an artifact from the previous
	  parallel-fetch implementation. (trunk r12001)

2008-11-19 06:48  zmedico

	* [r12000] pym/portage/__init__.py: Bug #245716 - When generating
	  QA notices for 'command not found' messages in the build log,
	  exclude messages that are emitted from configure scripts since
	  those are normal in some cases. (trunk r11999)

2008-11-19 03:15  zmedico

	* [r11998] man/ebuild.1, man/emerge.1, man/make.conf.5: Bug #245779
	  - Document the new category subdirectory behavior for PKGDIR.
	  (trunk r11997)

2008-11-18 21:25  zmedico

	* [r11996] pym/_emerge/__init__.py: When warning about 'missing
	  repo_name', also give the exact path where the entry should
	  exist, and explain that it should be a plain text file containing
	  a unique name of the first line. This should give the users
	  enough information to correct the problem without needing to seek
	  help. (trunk r11993:11995)

2008-11-18 08:17  zmedico

	* [r11993] pym/portage/cache/template.py: Make serialize_eclasses()
	  sort eclass names. (trunk r11992)

2008-11-18 07:06  zmedico

	* [r11991] pym/portage/cache/util.py, pym/portage/eclass_cache.py:
	  For emerge --metadata runs, update _eclasses_ metadata to insert
	  local eclass paths. (trunk r11990)

2008-11-18 03:04  zmedico

	* [r11989] bin/emake: include quotes when showing make output
	  (trunk r11988)

2008-11-17 23:41  zmedico

	* [r11987] pym/portage/cache/metadata.py: Store the _eclasses_
	  field instead of INHERITED. (trunk r11986)

2008-11-17 23:10  zmedico

	* [r11985] pym/portage/cache/flat_hash.py,
	  pym/portage/cache/fs_template.py: Bug #139134 - Make the
	  flat_hash and metadata modules write the _mtime_ field inside the
	  file instead of mangling the mtime of the cache entry file. Also,
	  fix FsBased._ensure_access() to properly skip the utime() call
	  when no mtime is passed in. Theses cache changes are compatible
	  with current stable portage (2.1.4.x), which uses the _mtime_
	  field contained in the file when available. (trunk r11984)

2008-11-17 20:51  zmedico

	* [r11983] bin/repoman: When parsing `git diff` output, filter
	  paths that are not descended from the current directory. (trunk
	  r11982)

2008-11-17 09:37  zmedico

	* [r11981] bin/repoman: When committing manifests, specify the
	  manifest paths instead of using git commit -a, since we may not
	  want to commit all dirty files in the whole repo. Thanks to Robin
	  Johnson <robbat2@g.o> for reporting. (trunk r11980)

2008-11-17 09:27  zmedico

	* [r11979] bin/repoman: Bug #246667 - Add REPOMAN_VCS_LOCAL_OPTS
	  and REPOMAN_VCS_GLOBAL_OPTS variables that allow vcs options to
	  be passed in for commit commands. (trunk r11978)

2008-11-17 08:58  zmedico

	* [r11977] bin/repoman: Add missing -a option for git commits.
	  (trunk r11976)

2008-11-17 00:52  zmedico

	* [r11975] pym/portage/__init__.py: Fix the 'jobserver unavailable'
	  regex to match gmake. (trunk r11974)

2008-11-16 21:31  zmedico

	* [r11973] pym/portage/__init__.py: Add a QA Notice for 'jobserver
	  unavailable' from make in the build log. Thanks to Diego
	  'Flameeyes' Pettenò <flameeyes@g.o> for the suggestion. (trunk
	  r11972)

2008-11-16 20:45  zmedico

	* [r11971] bin/repoman: Trigger the --include-dev suggestion for
	  any keywords from dev profiles, even if those keywords also
	  belong to stable profiles. (trunk r11970)

2008-11-16 20:39  zmedico

	* [r11969] bin/repoman: Suggest to use the new --include-dev (-d)
	  option in cases when some ebuilds have keywords from 'dev'
	  profiles. This should help avoid confusion about 'dev' profiles
	  no longer being checked by default. (trunk r11968)

2008-11-16 18:11  zmedico

	* [r11967] bin/repoman: Only show the "--without-mask" suggestion
	  when packages are actually masked by package.mask (rather than
	  just keywords). (trunk r11966)

2008-11-16 08:14  zmedico

	* [r11965] bin/repoman, man/repoman.1: Add a short -d option for
	  the new --include-dev option. Thanks to Joshua Kinard <kumba@g.o>
	  for the suggestion. (trunk r11964)

2008-11-16 07:59  zmedico

	* [r11963] bin/repoman, man/repoman.1: In order to reduce time
	  consumed for dependency checks, skip 'dev' profiles by default
	  and add an --include-dev option which causes them to be checked.
	  Given the current profiles.desc content, this approximately
	  halves the number of profiles checked by default and also halves
	  the time consumed by repoman. Thanks to Donnie Berkholz
	  <dberkholz@g.o> for the suggestion. (trunk r11962)

2008-11-16 07:29  zmedico

	* [r11961] pym/_emerge/__init__.py: When a "slot conflict" occurs
	  due to USE dependencies, display the usual slot conflict output
	  together with the unsatisfied USE dependency output, since both
	  might be useful. (trunk r11960)

2008-11-15 23:15  zmedico

	* [r11959] pym/_emerge/__init__.py: Fix logic inside
	  PollScheduler._can_add_job() so that load average is properly
	  considered when a single job is running. (trunk r11958)

2008-11-15 22:17  zmedico

	* [r11957] pym/portage/news.py: Make NewsManager.updateItems() and
	  getUnreadItems() return early if PermissionDenied errors are
	  encountered when attempting to read the skip or unread files.

2008-11-15 21:21  zmedico

	* [r11955] pym/_emerge/__init__.py: Inside depgraph._add_pkg(),
	  handle the case where multiple different instances of the same
	  version (typically one installed and another not yet installed)
	  have been pulled into the graph due to a USE dependency. The
	  "slot collision" display is not helpful in a case like this, so
	  display it as an unsatisfied dependency. Thanks to Peter Volkov
	  <pva@g.o> for reporting. (trunk r11954)

2008-11-15 18:53  zmedico

	* [r11952] pym/portage/dbapi/bintree.py: Bug #246821 - Avoid
	  TypeError from binarytree.isremote() by returning early if
	  self._remotepkgs is None due to PORTAGE_BINHOST being unset.
	  (trunk r11951)

2008-11-15 18:12  zmedico

	* [r11950] pym/_emerge/__init__.py: Bug #246853 - Redirect all
	  ouput from depgraph.display_problems() to stderr, except for
	  unsatisfied dependency output which goes to stdout for parsing by
	  programs such as autounmask. (trunk r11947:11949)

2008-11-15 06:52  zmedico

	* [r11936] pym/_emerge/__init__.py: Bug #236207 - Replace some
	  hardcoded colors with color codes, and use
	  portage.output.EOutput() where appropriate. (trunk r11935)

2008-11-15 06:39  zmedico

	* [r11934] pym/_emerge/__init__.py: Bug #173284 - Update config
	  update counting code in chk_updated_cfg_files() so hidden
	  directories are ignored. (trunk r11933)

2008-11-15 06:10  zmedico

	* [r11932] bin/dispatch-conf: Remove stray print statement from
	  previous commit. (trunk r11931)

2008-11-15 06:03  zmedico

	* [r11930] bin/dispatch-conf, bin/etc-update: Bug #173284 - Do not
	  traverse hidden directories such as .svn or .git when search for
	  protected files. (trunk r11927:11929)

2008-11-15 05:09  zmedico

	* [r11927] bin/ebuild, pym/portage/__init__.py: Bug #236714 -
	  Handle PortagePackageException raised from Manifest.create().
	  (trunk r11926)

2008-11-15 05:00  zmedico

	* [r11925] pym/portage/__init__.py: Make digestgen() handle
	  PermissionDenied internally by returning failure, so callers like
	  repoman don't need exception handling. (trunk r11924)

2008-11-15 04:51  zmedico

	* [r11923] bin/ebuild, pym/portage/__init__.py: Bug #236683 - Fix
	  PermissionDenied handling to report the exception type. (trunk
	  r11922)

2008-11-15 04:28  zmedico

	* [r11921] pym/portage/dbapi/vartree.py: Bug #243022 - Inside
	  dblink.mergeme(), when merging a directory and a symlink is in
	  the way, verify that if points to a directory before accepting
	  it, otherwise move it out of the way. (trunk r11920)

2008-11-15 04:15  zmedico

	* [r11919] pym/portage/dbapi/vartree.py: Bug #216190 - Make
	  dblink.treewalk() bail out rather than install a package with
	  file paths containing newlines. (trunk r11918)

2008-11-15 02:25  zmedico

	* [r11917] bin/dobin, bin/dodoc, bin/doexe, bin/doinfo, bin/doins,
	  bin/doman, bin/domo, bin/newbin, bin/newconfd, bin/newdoc,
	  bin/newenvd, bin/newexe, bin/newinitd, bin/newins, bin/newlib.a,
	  bin/newlib.so, bin/newman, bin/newsbin, pym/portage/__init__.py:
	  Fix new* and do* ebuild helpers to generate consistent error
	  messages for missing files and generate an appropriate QA Notice
	  when such an error is detected in the build log. Thanks to Diego
	  'Flameeyes' Pettenò <flameeyes@g.o> for the suggestion. (trunk
	  r11916)

2008-11-14 22:28  zmedico

	* [r11915] pym/_emerge/__init__.py: For consistency with earlier
	  portage-2.1.x releases, override SetArg.__str__() so that system
	  and world sets don't show a leading @ character when displayed.

2008-11-14 21:59  zmedico

	* [r11914] pym/repoman/checks.py: Make the EbuildQuote check filter
	  out matches that appear to be an argument to a message command.
	  For example: false || ewarn "foo $WORKDIR/bar baz" Thanks to
	  Diego 'Flameeyes' Pettenò <flameeyes@g.o> for reporting this
	  issue (currently triggered by ruby-prof-0.7.0.ebuild). (trunk
	  r11913)

2008-11-14 20:51  zmedico

	* [r11912] bin/repoman: Exempt live ebuilds from KEYWORDS.missing
	  and KEYWORDS.dropped warnings. Thanks to Jorge Manuel B. S.
	  Vicetto <jmbsvicetto@g.o> for the suggestion. (trunk r11911)

2008-11-14 18:41  zmedico

	* [r11910] bin/misc-functions.sh: In dyn_package(), use the
	  'assert' macro (from isolated-functions.sh) die if PIPESTATUS
	  array contains a non-zero exist status. (trunk r11907)

2008-11-14 17:42  zmedico

	* [r11908] NEWS: Remove note about preserve-libs. Thanks to
	  Arfrever.

2008-11-14 09:45  zmedico

	* [r11906] mkrelease.sh: Use svn2cl --reparagraph option for better
	  ChangeLog formatting.

2008-11-14 08:01  zmedico

	* [r11905] NEWS: * git support for repoman (trunk r11904)

2008-11-14 07:50  zmedico

	* [r11903] doc/package/ebuild/eapi/2.docbook, man/ebuild.5: Bug
	  #244485 - Merge EAPI 2 docs (trunk r11889:11902).

2008-11-14 06:16  zmedico

	* [r11897] bin/repoman: Having a leading ./ prefix on file paths
	  can trigger a bug in the cvs server when committing files to
	  multiple directories, so strip the prefix. Thanks to Robin H.
	  Johnson <robbat2@g.o> for reporting. (trunk r11896)

2008-11-14 04:46  zmedico

	* [r11895] bin/portageq: Remove list_preserved_libs().

2008-11-13 20:38  zmedico

	* [r11889] mkrelease.sh: Add a --changelog-rev option that
	  truncates the ChangeLog at a specific revision. Also, add -i to
	  the svn2cl options so that the actual svn revision numbers are
	  included in the log.

2008-11-13 19:00  zmedico

	* [r11888] pym/_emerge/__init__.py: Remove --search set matching
	  support.

2008-11-13 18:46  zmedico

	* [r11887] pym/_emerge/__init__.py: Refer to portage-2.1.6_rc1 in
	  comment about resume opts being stored as a dict.

2008-11-13 18:43  zmedico

	* [r11886] man/make.conf.5: Make PORTAGE_BINHOST docs refer to
	  2.1.6 instead of 2.2.

2008-11-13 18:38  zmedico

	* [r11885] man/emerge.1, man/portage.5, pym/_emerge/__init__.py,
	  pym/_emerge/help.py: Update docs to not prefix system and world
	  sets with the @ symbol.

2008-11-13 18:29  zmedico

	* [r11884] man/color.map.5, man/dispatch-conf.1, man/ebuild.1,
	  man/ebuild.5, man/emaint.1, man/emerge.1, man/env-update.1,
	  man/etc-update.1, man/make.conf.5, man/portage.5, man/quickpkg.1,
	  man/repoman.1: Adjust man headers to reference portage-2.1.6
	  instead of 2.2.

2008-11-13 18:21  zmedico

	* [r11883] NEWS, RELEASE-NOTES: Adjust news and notes for 2.2
	  features that are included in 2.1.6.

2008-11-13 18:08  zmedico

	* [r11882] doc/config.docbook, doc/config/sets.docbook,
	  doc/portage.docbook: Remove the sets configuration docs.

2008-11-13 08:27  zmedico

	* [r11881] cnf/make.globals, pym/_emerge/__init__.py,
	  pym/portage/__init__.py, pym/portage/_sets/libs.py,
	  pym/portage/dbapi/vartree.py: Remove preserve-libs support, it's
	  API, and code that depends on it.

2008-11-13 08:09  zmedico

	* [r11880] pym/_emerge/__init__.py: Disable set expansion inside
	  expand_set_arguments() and emulate existing portage-2.1.x
	  behavior which treats system and world mutually exclusive
	  actions.

2008-11-13 07:18  zmedico

	* [r11879] pym/_emerge/__init__.py: Remove sets protection code
	  from unmerge().

2008-11-13 07:13  zmedico

	* [r11878] pym/portage/_sets/files.py: Remove world_sets support
	  from the WorldSet class, and hardcode "@system" as the only
	  nonatom.

2008-11-13 06:49  zmedico

	* [r11877] bin/emaint, bin/repoman, pym/_emerge/__init__.py,
	  pym/portage/_sets/__init__.py, pym/portage/_sets/dbapi.py,
	  pym/portage/_sets/files.py, pym/portage/_sets/libs.py,
	  pym/portage/_sets/profiles.py, pym/portage/_sets/security.py,
	  pym/portage/_sets/shell.py,
	  pym/portage/tests/sets/files/testConfigFileSet.py,
	  pym/portage/tests/sets/files/testStaticFileSet.py,
	  pym/portage/tests/sets/shell/testShell.py: Update all
	  portage.sets references to point to the new location, and
	  hardcode the SetConfig constructor with a config for just system
	  and world sets.

2008-11-13 06:21  zmedico

	* [r11876] pym/portage/_sets, pym/portage/sets: Make portage.sets
	  private by renaming it to portage._sets.

2008-11-13 06:11  zmedico

	* [r11875] pym/portage/__init__.py: ACCEPT_LICENSE support depends
	  on definition of license groups in the tree, so it's disabled for
	  now (accept anything).

2008-11-13 04:16  zmedico

	* [r11874] .: Create a new 2.1.6 branch from trunk.

2008-11-13 03:40  zmedico

	* [r11873] Use apply_secpass_permissions() to avoid
	  OperationNotPermitted errors when not allowed to chown files to
	  root uid.

2008-11-13 03:32  zmedico

	* [r11872] Use grabfile() instead of grablines(), to ignore empty
	  lines.

2008-11-13 03:11  zmedico

	* [r11871] Add quote from GLEP 42 about permission bits.

2008-11-13 03:08  zmedico

	* [r11870] Misc fixes and cleanups in NewsManager.

2008-11-13 02:00  zmedico

	* [r11869] Return early from NewsManager.updateItems() if the news
	  path listdir call fails.

2008-11-13 01:50  zmedico

	* [r11868] Always return early from NewsManager.updateItems() if
	  self.unread_path can't be created.

2008-11-12 21:58  zmedico

	* [r11867] Use a simpler approach instead of implementing
	  NewsItem.__getattr__().

2008-11-12 21:47  zmedico

	* [r11866] * Add NewsItem.isValid() and
	  DisplayRestriction.isValid() methods and use use them to check
	  validity inside NewsManager.updateItems(). * Make
	  DisplayInstalledRestriction.isValid() check validity of the atom.

2008-11-12 19:22  zmedico

	* [r11865] Sort the return value from cpv_all() inside
	  vardbapi._counter_hash() instead of sorting them in side
	  cpv_all(). Thanks to Brian Harring for the suggestion.

2008-11-12 18:57  zmedico

	* [r11864] Inside NewsManager.updateItems(), use a mutable set for
	  skiplist and sort the contents when writing the file.

2008-11-12 18:43  zmedico

	* [r11863] Instead of raising a TypeError from the NewsItem
	  constructor, check the path inside NewsManager.updateItems()
	  before the NewsItem constructor is called.

2008-11-12 18:32  zmedico

	* [r11862] Use a frozenset to optimize skiplist containment checks
	  inside NewsManager.updateItems().

2008-11-12 02:24  zmedico

	* [r11861] Bug #246451 - Inside SecuritySet._reduce(), use
	  portdbapi.xmatch("match-all") in order do be consistent with
	  portage.glsa.getMinUpgrade() which also uses match-all.

2008-11-11 19:59  zmedico

	* [r11859] Make post_emerge() exit early if it detects that the vdb
	  state hasn't changed. This works by comparing a hash of the
	  COUNTER values for all packages in the vdb.

2008-11-11 19:27  zmedico

	* [r11858] Allow --keep-going to continue in some cases when a
	  runtime dependency has failed to build or install. This involves
	  pruning off the parts of the graph containing installed packages
	  with unsatisfied dependencies.

2008-11-11 18:37  zmedico

	* [r11856] Simplify code for cloning config instances inside
	  Scheduler.merge().

2008-11-11 18:20  zmedico

	* [r11855] Make FindPortdir() fall back to have_profile_dir()
	  checks if it can't match the current location with anything from
	  PORTDIR_OVERLAY. Assume that an overlay will contain at least a
	  "repo_name" file while a master repo (portdir) will contain at
	  least a "profiles.desc" file.

2008-11-11 17:53  zmedico

	* [r11854] Derive the changelog_path variable from the new
	  checkdir_relative variable.

2008-11-11 17:46  zmedico

	* [r11853] Make FindPortdir() return (None, None, None) on failure,
	  instead of raising a potentially ambiguous ValueError.

2008-11-11 17:39  zmedico

	* [r11852] Inside have_profile_dir(), check for existence of
	  profiles.desc since that makes a little more sense thatn checking
	  for package.mask.

2008-11-11 10:19  zmedico

	* [r11851] Update hardcoded "cvs" error messages to show the
	  correct vcs value.

2008-11-11 10:06  zmedico

	* [r11850] Fix pretend output to show git -a option when committing
	  signed manifest.

2008-11-11 10:04  zmedico

	* [r11849] Add git support. Thanks to Daniel Robbins for the
	  initial patch.

2008-11-11 05:39  zmedico

	* [r11848] Fix logic from previous commit in
	  Scheduler._choose_pkg() to ensure that the --nodeps code is only
	  triggered when --jobs > 1.

2008-11-11 05:01  zmedico

	* [r11847] When in --nodeps mode, make Scheduler._set_digraph()
	  discard the digraph and make Scheduler._choose_pkg() always
	  return the task at the front of the queue.

2008-11-11 04:41  zmedico

	* [r11846] Inside depgraph.loadResumeCommand(), initialize
	  self._scheduler_graph when in --nodeps mode in order to avoid an
	  AttributeError later when self.schedulerGraph() is called.

2008-11-10 22:30  zmedico

	* [r11845] Fix --jobs parallel scheduling to ensure that temporary
	  simultaneous installation of conflicting packages is avoided when
	  appropriate (especially for !!atom blockers), but allowed in
	  specific cases that require it. This is accomplished by reversing
	  specific uninstall edges in the digraph, while possibly leaving
	  some edges in there original state.

2008-11-10 16:41  zmedico

	* [r11844] Revert r11839 since it's not necessarily desired to
	  invert all uninstall edges. TODO: Invert only the specific edges
	  that the depgraph has decided are necessary and allowed to be
	  inverted.

2008-11-10 04:10  zmedico

	* [r11843] In the LinkageMap.findConsumers() docstring, add a note
	  about incompatibility with symlinks created by binutils-config.

2008-11-09 23:02  zmedico

	* [r11842] * Use noiselevel=-1 for preserve-libs ">>> needed" and
	  "<<< !needed" messages so that they're show even without
	  --verbose mode. * Sort files for the ">>> needed" display.

2008-11-09 22:36  zmedico

	* [r11841] Remove unused formatter code in
	  show_invalid_depstring_notice().

2008-11-09 22:32  zmedico

	* [r11840] Make show_invalid_depstring_notice() send output to
	  stderr via writemsg_level().

2008-11-09 22:18  zmedico

	* [r11839] Inside Scheduler._reverse_uninstall_edges(), iover all
	  nodes rather than just the merge list, because some uninstall
	  nodes may not be in the merge list since they will be performed
	  as part of an upgrade within a slot. This solves a problem with
	  Scheduler._choose_pkg() not parallelizing in some cases when it
	  should, due to an uninstall node not having it's edge reversed
	  like it's supposed to.

2008-11-09 21:29  zmedico

	* [r11838] Move initialization of Scheduler._background from the
	  constructor to the merge() method so that a potential
	  InvalidDependString exception can be handled there, causing
	  merge() to return unsuccessfully. This avoids having to raise an
	  exception from the constructor.

2008-11-09 20:36  zmedico

	* [r11837] Add PROPERTIES=interactive support in depgraph.display()
	  and the PackageCounters class.

2008-11-09 17:19  zmedico

	* [r11836] When adding parent directories to contents inside
	  dblink._add_preserve_libs_to_contents(), account for the trailing
	  slash on $ROOT in the while loop.

2008-11-09 16:58  zmedico

	* [r11835] Handle a corner case inside
	  dblink._add_preserve_libs_to_contents() in which a path to be
	  preserved doesn't exist in the contents of the installed
	  instance.

2008-11-09 16:40  zmedico

	* [r11834] Update docstring for dblink._find_libs_to_preserve().

2008-11-09 09:21  zmedico

	* [r11833] Inside vardbapi.removeFromContents(), automatically
	  clear the contents cache of the dblink instance in case an
	  existing one was passed in.

2008-11-09 07:42  zmedico

	* [r11832] Bug #243030 - In PreservedLibraryConsumerSet.load(),
	  avoid rebuilding packages just because they contain preserved
	  libs that happen to be consumers of other preserved libs.

2008-11-09 07:14  zmedico

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

2008-11-09 02:03  zmedico

	* [r11830] Inside LinkageMap, use self._obj_key() whenever
	  possible.

2008-11-08 18:29  zmedico

	* [r11829] Fix $ROOT handlink inside display_preserved_libs().

2008-11-08 05:12  zmedico

	* [r11828] With python-2.6, importing the Crypto.Hash.MD5 and
	  Crypto.Hash.SHA modules from pycrypto triggers warnings since
	  those modules are implemented using the deprecated md5 and sha
	  modules from python's stdlib. So, in order to avoid the warning
	  and the inferior hash implementations that come with them, never
	  use these particular modules from pycrypto. Instead, use hashlib
	  or directly use stdlib's md5 and sha modules if necessary. Thanks
	  to Markus Peloquin for reporting.

2008-11-08 00:55  zmedico

	* [r11827] Handle CommandNotFound exceptions if the scanelf binary
	  happens to be missing, and disable preserve-libs code in that
	  case.

2008-11-07 22:18  zmedico

	* [r11826] In LinkageMap.rebuild(), immediately raise a
	  CommandNotFound exception if scanelf is missing since otherwise
	  it will lead to a KeyError later on from findConsumers or
	  findProviders. This will allow the caller to handle the
	  CommandNotFound exception if necessary, and skip any
	  findConsumers or findProviders since they won't be able to return
	  valid results.

2008-11-07 21:52  zmedico

	* [r11825] Handle a potential OSError that occurs if the scanelf
	  binary is missing when LinkageMap.rebuild() is called.

2008-11-07 21:40  zmedico

	* [r11824] Replace NEEDED.ELF.2 strings with references to
	  LinkageMap._needed_aux_key.

2008-11-07 21:18  zmedico

	* [r11823] Improve the error message that's generated in
	  LinkageMap.rebuild() for corrupt NEEDED.ELF.2 entries.

2008-11-07 21:04  zmedico

	* [r11822] When calling scanelf inside LinkageMap.rebuild(), join
	  paths with $ROOT when generating the arguments and then strip
	  $ROOT from the paths in the output.

2008-11-07 18:20  zmedico

	* [r11821] Fix LinkageMap.rebuild() so that the data from
	  include_file overrides the data from any previously installed
	  files. This prevent possible corruption of the data since only
	  one set of data can be correct for a given file.

2008-11-07 16:56  zmedico

	* [r11820] When using the `read` builtin to split newlines in e*
	  function arguments, use $REPLY in order to ensure that whitespace
	  in each line is correctly preserved. Thanks to Joe Peterson
	  <lavajoe@g.o> for reporting.

2008-11-07 16:23  zmedico

	* [r11819] Combine redundant arch_map code inside
	  LinkageMap.rebuild().

2008-11-07 16:09  zmedico

	* [r11818] Swap the locations of the arch and soname keys inside
	  LinkageMap._libs in order to conserve memory. This new branching
	  layout uses fewer dict instances since the number of sonames is
	  much larger than the number of archs.

2008-11-07 15:39  zmedico

	* [r11817] Inside LinkageMap._libs, use a SlotDict to store
	  consumers and providers, to use less memory than a normal dict.

2008-11-07 08:56  zmedico

	* [r11816] Bug #245932 - Pass use_mask and use_force parameters
	  into recursive _expand_new_virtuals() calls, fixing a TypeError
	  which is triggered inside
	  portage.dep._use_dep._eval_qa_conditionals().

2008-11-06 20:27  zmedico

	* [r11815] Remove the special package.keywords mask warning from
	  bug #223447 since --depclean now uses the depgraph class and
	  therefore should be more consistent with the update algorithm.

2008-11-06 20:08  zmedico

	* [r11814] Bug #245661 - Never enable --complete-graph
	  automatically since it's confusing for users.

2008-11-06 04:56  zmedico

	* [r11813] In Atom.__setattr__(), include inputs in case it helps
	  for debugging with derived classes. Thanks to Brian Harring for
	  the suggestion.

2008-11-05 23:55  zmedico

	* [r11812] Override Atom.__setattr__() to make Atom instances
	  immutable. Thanks to Brian Harring for the suggestion.

2008-11-04 23:43  zmedico

	* [r11809] Fix broken reference to self inside unmerge().

2008-11-04 17:52  zmedico

	* [r11808] Synchronize portage update/restart logic in
	  dblink.merge() and depgraph.display() so it's consistent with
	  Scheduler._is_restart_necessary(). Thanks to Jeremy Olexa
	  <darkside@g.o> for reporting.

2008-11-04 07:55  zmedico

	* [r11807] Free some memory by clearing the LinkageMap cache when
	  it's not needed.

2008-11-04 07:40  zmedico

	* [r11806] Bug #245362 - Use tuples of (device, inode) for all path
	  comparisons inside LinkageMap, so that they work regardless of
	  path differences due to symlinked directories. TODO: Fix other
	  preserve-libs code, such as dblink._preserve_libs(), to use this
	  approach for path comparisons.

2008-11-03 08:00  zmedico

	* [r11805] Bug #245358 - For unsatisfied dependencies, display the
	  parent nodes and the argument that pulled them in.

2008-11-03 06:52  zmedico

	* [r11804] Bug #245356 - Filter POSIXLY_CORRECT from the ebuild
	  environment since it breaks stuff.

2008-11-02 21:44  zmedico

	* [r11803] Make metadata.missing and metadata.bad fatal by removing
	  them from the qawarnings set. Thanks to Robin H. Johnson
	  <robbat2@g.o> for the suggestion.

2008-11-02 20:04  zmedico

	* [r11802] Import shutil globally.

2008-11-02 18:17  zmedico

	* [r11801] Remove duplicate code inside
	  EbuildFetchPretend._execute().

2008-11-02 18:14  zmedico

	* [r11800] Remove locking from EbuildFetchPretend since it uses a
	  private temp directory now (since bug #245231).

2008-11-02 09:05  zmedico

	* [r11796] Bug #245231 - Make EbuildFetchPretend use a private temp
	  directory in order to avoid locking the main one.

2008-11-01 23:12  zmedico

	* [r11791] In SetConfig.getSetAtoms(), access self.psets directly
	  in order to avoid making a copy and also to avoid potential
	  swallowing of an unexpected KeyError.

2008-11-01 23:02  zmedico

	* [r11790] In config.setcpv(), ensure that A and AA aren't in the
	  env dict.

2008-11-01 22:59  zmedico

	* [r11789] In _validate_deps(), show the ebuild version to clarify
	  which ebuild the errors belong to.

2008-11-01 22:06  zmedico

	* [r11788] TODO: In case some elf files collide with blocked
	  packages, ensure that NEEDED data from include_file overrides the
	  stale NEEDED data from the colliding files in the blocked
	  packages.

2008-11-01 21:10  zmedico

	* [r11787] In Scheduler._calc_resume_list(), use self.pkgsettings
	  instead of the the temportary depgraph's.

2008-11-01 17:55  zmedico

	* [r11786] Bug #239015 - Disable unmerge operations for
	  EverythingSet/@installed.

2008-11-01 10:51  zmedico

	* [r11784] When echoing the emake command, redirect to stderr since
	  otherwise it breaks the gcc ebuild because of the way that the
	  get_make_var() function from toolchain.eclass is used.

2008-11-01 08:48  zmedico

	* [r11783] Remove broken pickle_write() since it can't possibly be
	  used.

2008-11-01 08:32  zmedico

	* [r11782] * In fetch(), ensure that pkg_nofetch is never called
	  more than once. * In _validate_deps(), revert back to using
	  aux_get since the config instance does not cache SRC_URI.

2008-11-01 07:22  zmedico

	* [r11781] Remove unnecessary handler for plain "Exception" from
	  lstat() call in dblink.mergeme().

2008-11-01 07:09  zmedico

	* [r11780] Also call PreservedLibsRegistry.pruneNonExisting() after
	  obtaining a lock and loading it for merge or unmerge.

2008-11-01 06:48  zmedico

	* [r11779] Explicitly load the preserved libs registry after
	  obtaining a lock for merge or unmerge, in case the registry has
	  been changed by a parallel emerge instance.

2008-11-01 06:40  zmedico

	* [r11778] Before returning from PreservedLibsRegistry.store(),
	  update self._data_orig.

2008-11-01 05:44  zmedico

	* [r11777] Rename "object" variable to avoid name collision with
	  the builtin class.

2008-11-01 05:32  zmedico

	* [r11776] Define __all__ and remove unused imports.

2008-11-01 05:28  zmedico

	* [r11775] Define __all__ and remove unused import.

2008-11-01 04:48  zmedico

	* [r11774] Remove unused imports.

2008-11-01 04:00  zmedico

	* [r11773] Filter PORTAGE_VERBOSE in save_ebuild_env().

2008-11-01 03:28  zmedico

	* [r11772] Bug #240295 - When emake is called, echo the make
	  command similar to the way that econf echoes the configure
	  command.

2008-11-01 03:14  zmedico

	* [r11771] Bug #241906 - Handle InvalidAtom exception raised from
	  vardbapi.match().

2008-11-01 02:52  zmedico

	* [r11770] Bug #244792 - Remove confcache support.

2008-11-01 02:43  zmedico

	* [r11769] Bug #244947 - Add repoman support for checking masked
	  and forced flags on conditional USE deps.

2008-10-31 21:37  zmedico

	* [r11768] Bug #244947 - Add basic repoman support for checking
	  masked and forced flags when verifying USE deps. TODO: Add
	  repoman support in dep_check() for evaluation of conditional USE
	  deps based on forced/masked flags. masked flags, so that repoman
	  can also

2008-10-31 20:40  zmedico

	* [r11767] Eliminate duplicate code by calling equivalent
	  dblink._clear_contents_cache().

2008-10-31 20:21  zmedico

	* [r11766] Bug #243178 - Handle file collisions with preserved libs
	  by allowing the current package to assume ownership and
	  unregistering the preserved libraries.

2008-10-31 18:49  zmedico

	* [r11765] In dblink._collision_protect(), remove redundant
	  self.isowner() calls since self hasn't yet been merged and
	  therefore has no CONTENTS file for ownership checks. Also, remove
	  redundant isprotected() calls.

2008-10-31 17:25  zmedico

	* [r11764] Bug #236609 - Fix columns calculation for TERM="dumb".
	  Thanks to Ulrich Müller <ulm@g.o> for the patch.

2008-10-31 05:07  zmedico

	* [r11763] Revert previous commit since it doesn't properly
	  calculate masked and forced flags for the package being matched
	  (it erroneously uses the masked and forced flags from the parent
	  package).

2008-10-31 04:29  zmedico

	* [r11762] Bug #244947 - Add repoman support for checking masked
	  and forced flags when verifying USE deps. Thanks to Brian Harring
	  for reporting.

2008-10-31 04:26  zmedico

	* [r11761] Remove unused conditional_disabled and
	  conditional_enabled attributes from _use_dep.__slots__.

2008-10-31 04:01  zmedico

	* [r11760] Fix broken stuff to avoid tracebacks when running in
	  commit mode with --pretend and no vcs.

2008-10-31 03:46  zmedico

	* [r11759] Pass a Package instance into the config.setcpv() call.

2008-10-30 22:44  zmedico

	* [r11758] Use portage.const.PORTAGE_PACKAGE_ATOM where
	  appropriate.

2008-10-30 22:25  zmedico

	* [r11757] recheck what changed in the repository also when nothing
	  was added, because manifest regeneration might change the
	  Manifest, this fixes bug #229033 (branches/prefix r11755)

2008-10-30 22:18  zmedico

	* [r11756] Bug #244975 - Don't allow the user to make portage
	  unmerge itself since there's never any valid reason to do so.

2008-10-30 20:33  zmedico

	* [r11753] Make sure mychanged and mynew are always defined even if
	  there is no vcs because commit mode is allowed without a vcs in
	  pretend mode.

2008-10-30 20:20  zmedico

	* [r11752] Avoid unnecessary aux_get calls inside Scheduler._pkg()
	  by getting the existing Package instance from the digraph.

2008-10-30 19:54  zmedico

	* [r11751] define myunadded such that repoman doesn't crash when
	  being run in a non-{cvs,svn} dir (branches/prefix r11750)

2008-10-30 07:58  zmedico

	* [r11749] Bug #225429 - Inside LinkageMap.rebuild(), update
	  self._defpath since it can change during a gcc upgrade.

2008-10-30 07:46  zmedico

	* [r11748] Bug # 225429 - Try to remove unneeded preserved libs
	  just before returning from dblink.treewalk(), after the library
	  path has been updated. This is intended to remove unneeded
	  preserved libs after a gcc upgrade. TODO: Figure out why
	  libgomp.so.1 still isn't properly removed.

2008-10-30 03:37  zmedico

	* [r11747] In dblink.unmerge(), update the CONTENTS entries when
	  preserved libs are removed.

2008-10-30 03:04  zmedico

	* [r11746] Bug #225429 - In dblink.unmerge(), eliminate consumers
	  having providers with the same soname as an installed library
	  that is not preserved. This eliminates libraries that are
	  erroneously preserved due to a move from one directory to
	  another.

2008-10-29 17:03  zmedico

	* [r11743] Make config.setcpv() store the ebuild metadata inside
	  self.configdict["pkg"], and reuse this metadata inside doebuild()
	  in order to avoid redundant portdbapi.aux_get() calls.

2008-10-29 00:07  zmedico

	* [r11742] Fix interaction between LinkageMap.rebuild() and the
	  package replacement process in order to avoid problems with stale
	  or unaccounted NEEDED. This solves a LinkageMap corruption issue
	  which caused findConsumers to return false positive inside
	  dblink.unmerge().

2008-10-28 23:15  zmedico

	* [r11741] Fix $ROOT handling inside LinkageMap.findConsumers().

2008-10-28 23:04  zmedico

	* [r11740] Bug #238957 - When removing unneeded preserved libs
	  inside dblink.unmerge(), use a digraph to properly track consumer
	  relationships between preserved libs. This fixes cases where
	  preserved libs failed to be removed due to being consumed by
	  other preserved libs.

2008-10-28 21:22  zmedico

	* [r11739] Update the auto-add message to say "Manifest" instead of
	  "digests". Thanks to grobian.

2008-10-28 21:10  zmedico

	* [r11738] Remove manifest1 digest-* autoadd code. Thanks to
	  grobian.

2008-10-28 20:53  zmedico

	* [r11737] Fix graph.get() so that it works as intended, returning
	  the node corresponding to the given key.

2008-10-28 09:25  zmedico

	* [r11733] Fix some incorrect $ROOT handling inside LinkageMap.

2008-10-28 09:07  zmedico

	* [r11732] Make SetConfig.getSetAtoms() raise a PackageSetNotFound
	  exception when necessary and add handling code in emerge. This
	  solves an unhandled KeyError that was raise when a nested set did
	  not exist. Thanks to ABCD for reporting.

2008-10-28 05:30  zmedico

	* [r11731] Fix incorrect $ROOT handling inside
	  dblink._preserve_libs().

2008-10-28 04:04  zmedico

	* [r11730] Pass $ROOT into the LinkageMap._ObjectKey constructor
	  since it's needed for os.stat() and realpath() calls.

2008-10-28 03:41  zmedico

	* [r11729] Pass $ROOT into portage.util.getlibpaths().

2008-10-27 22:35  zmedico

	* [r11728] Return early from fetch() if no uris are given.

2008-10-27 22:19  zmedico

	* [r11727] In fetch(), avoid the "Adjusting permissions
	  recursively" message in cases when the directory has just been
	  created and therefore it must be empty.

2008-10-26 07:55  zmedico

	* [r11726] Enable bashrc even when $EBUILD_PHASE is unset, so it's
	  possible to override things like INSTALL_MASK.

2008-10-25 18:20  zmedico

	* [r11725] When creating the temporary $DISTDIR, do not try to set
	  the uid since it will fail when not running as root.

2008-10-24 20:28  zmedico

	* [r11724] Fix preserve-libs code inside dblink.unmerge() so that
	  it will join paths correctly when ROOT != /.

2008-10-24 00:07  zmedico

	* [r11723] When populating the fake $DISTDIR inside doebuild(),
	  reuse existing symlinks when possible, instead of recreating the
	  whole directory from scratch.

2008-10-23 17:19  zmedico

	* [r11722] Add "subversion" to InheritAutotools._exempt_eclasses.
	  Thanks to Arfrever.

2008-10-23 06:00  zmedico

	* [r11721] Add "bzr" to the lists of live eclasses.

2008-10-23 05:57  zmedico

	* [r11720] Add "bzr" to the lists of live eclasses.

2008-10-22 17:59  zmedico

	* [r11719] Bug #243224 - Add an exemption to the inherit.autotools
	  check for ebuilds that inherit git.eclass since the GIT_BOOTSTRAP
	  variable may be used to call one of autotools functions.

2008-10-22 16:15  zmedico

	* [r11718] Fix grammar.

2008-10-22 05:36  zmedico

	* [r11717] Add a PROPERTIES.syntax check.

2008-10-22 05:20  zmedico

	* [r11716] Document PROPERTIES=interactive.

2008-10-21 23:24  zmedico

	* [r11715] Bug #233296 - Add minimal PROPERTIES=interactive support
	  by simply forcing all package output to stdio whenever the merge
	  list contains one or more interactive packages.

2008-10-21 22:05  zmedico

	* [r11714] Split dep validation out of doebuild() and skip it when
	  called by emerge since there's no need to do this every time
	  emerge executes a phase.

2008-10-21 21:45  zmedico

	* [r11713] Validate PROPERTIES inside doebuild().

2008-10-21 21:09  zmedico

	* [r11712] Remove unused imports found by pyflakes.

2008-10-21 21:05  zmedico

	* [r11711] Remove needlessly complex error handling code from
	  vardbapi.cpv_counter().

2008-10-21 20:55  zmedico

	* [r11710] Use normal return statements instead of calling
	  sys.exit() inside dblink.mergeme().

2008-10-21 08:39  zmedico

	* [r11709] Bug #186842 - Suppress file merge display, as previously
	  done in --quiet mode, whenever --verbose is not enabled. Also,
	  export PORTAGE_VERBOSE to the ebuild environment and use it to
	  control tar verbosity when creating binary packages.

2008-10-21 08:01  zmedico

	* [r11708] Add PORTAGE_QUIET to the environment whitelist and
	  filter it from the saved ebuild environment.

2008-10-20 19:15  zmedico

	* [r11707] Remove redundant duplicate uri elimination code. It's
	  already handled in the fetch loop.

2008-10-20 19:11  zmedico

	* [r11706] Prefer thirdpartymirrors over normal mirrors in cases
	  when the file does not yet exist on the normal mirrors. Thanks to
	  Maurice van der Pot <griffon26@g.o> for reporting.

2008-10-20 18:21  zmedico

	* [r11705] Handle the case that was intended to be fixed by r11702
	  (which got reverted).

2008-10-20 00:44  zmedico

	* [r11704] Revert previous 2 commits since they broke "selective"
	  behavior.

2008-10-20 00:30  zmedico

	* [r11703] Simplify logic from the previous commit.

2008-10-19 17:33  zmedico

	* [r11702] Remove the "found_available_arg" variable from
	  depgraph._select_pkg() and use the "matched_packages" variable
	  instead. This solve a problem where the "found_available_arg"
	  flag is unreliable due to the slot filtering behavior of
	  depgraph._iter_atoms_for_pkg(). For example, a higher version in
	  a different slot than the available ebuild might be masked or
	  unavailable, and depgraph._iter_atoms_for_pkg() will not identify
	  the available ebuild as a match due to this installed package
	  (which is not available for reinstall).

2008-10-17 19:56  zmedico

	* [r11699] Remove the unused portage.gpg module and
	  portage_gpg_update.sh script.

2008-10-17 18:52  zmedico

	* [r11698] Remove support for FEATURES=gpg since it's already
	  disabled and broken anyway. Thanks to DJ Anderson for the
	  suggestion.

2008-10-17 02:02  zmedico

	* [r11697] In fetch(), make sure all references to digests for
	  zero-byte distfile are always discarded.

2008-10-16 23:04  zmedico

	* [r11696] In fetch(), don't spawn pkg_nofetch unless
	  PORTAGE_BUILDDIR exists since it will die anyway due to the code
	  for bug #239560 that's in ebuild.sh.

2008-10-16 22:55  zmedico

	* [r11695] Bug #242304 - When a zero-byte distfile is detected
	  inside fetch(), discard the digests and attempt to fetch the file
	  if possible. This code is triggered via digestgen() when
	  appropriate, so it fixes all digestgen() callers, including
	  repoman.

2008-10-14 22:14  zmedico

	* [r11692] Bug #229033 - When a Manifest is added automatically by
	  repoman, it's in the "mynew" list, so move manifest paths from
	  that list to the "mymanifests" list when necessary.

2008-10-14 21:37  zmedico

	* [r11691] Bug #241366 - Only suggest to run `emaint --check world`
	  when the atom is a direct member of the world set (rather than
	  from a nested set).

2008-10-14 21:05  zmedico

	* [r11690] When emerge --keep-going bails due to missing
	  dependencies, show the error message after the mod_echo output
	  since otherwise the mod_echo output can sweep the error message
	  out of view. Thanks to Donnie Berkholz <dberkholz@g.o> for
	  reporting.

2008-10-13 20:52  zmedico

	* [r11689] Make sure the pkg_nofetch phase is only called once when
	  in fetchonly mode.

2008-10-13 00:39  zmedico

	* [r11688] Make fetch() fetch as many files as possible, even if
	  some fail, when in fetchonly mode.

2008-10-13 00:21  zmedico

	* [r11687] Don't return from fetch() due to fetch restriction when
	  in "listonly" mode.

2008-10-12 23:57  zmedico

	* [r11686] Bug #234301 - When fetch fails, include the path of the
	  log file in the eerror message that's generated. This way it's
	  easy for the user to find the output from the fetcher or from the
	  pkg_nofetch phase.

2008-10-12 23:17  zmedico

	* [r11685] Bug #241118 - Re-enable pkg_nofetch for emerge --pretend
	  --fetch, but direct output to stderr. This requires
	  PORTAGE_BUILDDIR locking for bug #239560 and also for elog
	  message storage.

2008-10-12 21:01  zmedico

	* [r11684] Add an explicit note about bug #239560 in the relevant
	  code.

2008-10-12 20:57  zmedico

	* [r11683] Inside fetch(), don't call pkg_nofetch when in
	  parallel-fetch mode since it will get call again later anyway.

2008-10-12 19:59  zmedico

	* [r11682] Now that only prefetch (parallel-fetch) output goes to
	  the global fetch log, update code to remove inappropriate
	  references to this log.

2008-10-12 02:15  zmedico

	* [r11681] Remove the prefetch logic in EbuildFetcher._pipe() since
	  prefetchers are always in the background anyway.

2008-10-12 00:46  zmedico

	* [r11680] Buge #241100 - Make EbuildFetcher use a pty when
	  appropriate, so that fetcher progress bars, like wget has, will
	  work properly.

2008-10-12 00:09  zmedico

	* [r11679] Make the Scheduler class treat failed fetches the same
	  as other failed packages, and don't bail out due to a failure
	  when in --fetchonly mode. This fixes an issue with --fetchonly
	  bailing out instead of continuing to fetch.

2008-10-11 20:31  zmedico

	* [r11678] In EbuildFetcher._start(), in order to ensure that a new
	  log is created when appropriate, clean up PORTAGE_BUILDDIR if
	  appropriate.

2008-10-11 19:34  zmedico

	* [r11677] When warning about package categories that haven't been
	  configured via /etc/portage/categories, join the path with
	  PORTAGE_CONFIGROOT. Thanks to Ned Ludd <solar@g.o> for reporting.

2008-10-11 18:51  zmedico

	* [r11676] Bug #241204 - Fix dbapi.invalidentry() calls inside
	  vardbapi.cpv_all() to correctly join the path via self.getpath().

2008-10-10 22:02  vapier

	* [r11673] only use dummy echos in do_file() when running in
	  interactive mode

2008-10-10 20:33  zmedico

	* [r11672] Migrate code from plain ValueError to
	  AmbiguousPackageName where appropriate (inherits from ValueError
	  for backward compatibility).

2008-10-10 20:25  zmedico

	* [r11671] Bug #241132 - Handle AmbiguousPackageName exceptions for
	  atoms passed to the --info action.

2008-10-10 20:15  zmedico

	* [r11670] Create a new AmbiguousPackageName exception to raise
	  from portage.cpv_expand(). It inherits from ValueError, for
	  backward compatibility with calling code that already handles
	  ValueError.

2008-10-09 23:29  zmedico

	* [r11669] Grab make.globals from GLOBAL_CONFIG_PATH if available
	  and fall back to the legacy location if necessary.

2008-10-09 20:31  zmedico

	* [r11667] At the end of dyn_clean(), also remove the $CATEGORY
	  directory if possible.

2008-10-09 20:03  zmedico

	* [r11666] Remove redundant os.close(master_fd) call inside
	  SpawnProcess._start() since that file discriptor is referenced by
	  a file object which already has an appropriate close() call. This
	  fixes an 'IOError: [Errno 9] Bad file descriptor' exception which
	  was raised when attempting to close the file object.

2008-10-09 19:46  zmedico

	* [r11665] Fix code from previous commit so it properly checks
	  $eapi to verify that src_prepare is really a supported phase
	  function.

2008-10-09 19:32  zmedico

	* [r11664] Bug #240684 - Fix _ebuild_arg_to_phase() to handle the
	  src_prepare phase so that the default() function is properly
	  created.

2008-10-09 01:10  zmedico

	* [r11661] In EbuildFetcher._set_returncode(), don't clean up
	  PORTAGE_BUILDDIR if keepwork or keeptemp are in FEATURES.

2008-10-08 22:47  zmedico

	* [r11660] Don't show the repo display when the merge list is
	  empty.

2008-10-08 22:35  zmedico

	* [r11659] Fix apparent breakage from r11593 (slot dep support): *
	  Handle KeyError from element.getAttribute() in makeAtom() and
	  makeVersion(). * Avoid 'sre_constants.error: unmatched group'
	  exceptions in revisionMatch() when the atom does not have a slot.

2008-10-08 18:25  zmedico

	* [r11658] In EbuildBuild._fetch_exit(), clean up the fetch log if
	  fetch was successful.

2008-10-08 18:03  zmedico

	* [r11657] Use separate temp directories in order to avoid
	  potential name collisions.

2008-10-08 16:16  zmedico

	* [r11656] Since EbuildBuild no longer directs it's EbuildFetcher
	  instance's output to the global fetch log, there's no need to
	  schedule it on the fetch queue.

2008-10-08 03:27  zmedico

	* [r11655] Before returning config instances from
	  Scheduler._allocate_config(), call the config.reset() method to
	  make sure all settings from the previous package get flushed out
	  (such as PORTAGE_LOG_FILE). This fixes a case where
	  PORTAGE_LOG_FILE leaked from the previous package to the clean
	  phase of the next one, resulting in an IOError due to the path
	  being invalid and the parent directory being nonexistent.

2008-10-07 20:48  zmedico

	* [r11654] Generate elog messages for failed fetches. This restores
	  some functionality that was removed in r11645.

2008-10-07 16:00  zmedico

	* [r11653] Instead of using inheritance, reference the ConfigParser
	  part of SetConfig as an attribute in case we want to swap out the
	  ConfigParser implemention and no longer want to implement the
	  whole interface.

2008-10-07 15:51  zmedico

	* [r11652] Make "qawarnings" a normal set since the missingvars
	  code might modify it.

2008-10-07 15:36  zmedico

	* [r11651] Change the "qawarnings" variable from a list to a set.

2008-10-07 15:31  zmedico

	* [r11650] Make HOMEPAGE.missing fatal again since, in cases when
	  homepages are no longer available, we can use a link to some site
	  like packages.gentoo.org or www.unmaintained-free-software.org.

2008-10-07 09:03  zmedico

	* [r11649] When EbuildBuild encounters a failed fetch, propagee the
	  log path so that it can be properly displayed in the status
	  display.

2008-10-07 08:52  zmedico

	* [r11648] Make EbuildFetcher clean up the build dir after failures
	  in fetchonly mode since the log is in emerge-fetch.log anyway.

2008-10-07 08:40  zmedico

	* [r11647] Make EbuildFetcher direct fetch output to the normal
	  build log. By keeping the output in the build log instead of the
	  global emerge-fetch.log file, output from a possible fetch
	  failure can be recovered and displayed later. TODO: Convert
	  failed fetch to elog message as suggested in bug #234301.

2008-10-07 08:04  zmedico

	* [r11646] Fix EbuildFetcher._wait_hook() so it can be called more
	  than once without throwing an AttributeError.

2008-10-07 02:01  zmedico

	* [r11645] Bug #234301 - Add support to EbuildFetcher to collect
	  elog messages that might be generated during the pkg_nofetch
	  phase. This involves maintaining a lock on PORTAGE_BUILDDIR where
	  the elog messages are collected, and cleaning up PORTAGE_BUILDDIR
	  before releasing the lock.

2008-10-06 20:58  zmedico

	* [r11644] In fetch(), never call the pkg_nofetch phase when in
	  "listonly" mode.

2008-10-06 20:51  zmedico

	* [r11643] In doebuild(), don't create build dirs when "listonly"
	  fetch mode.

2008-10-06 20:12  zmedico

	* [r11642] In order to avoid "waiting for lock" messages at the
	  beginning, which annoy users, never spawn a prefetcher for the
	  first package.

2008-10-06 02:47  zmedico

	* [r11637] Fix KeyError raised from display_preserved_libs() when
	  the realpath is used as a key in consumer_map instead of the
	  orignal path that was returned from the PreservedLibsRegistry.

2008-10-05 18:47  zmedico

	* [r11636] Bug #240022 - Avoid duplicate output for the same
	  library (due to symlinks) in display_preserved_libs() by using
	  os.path.realpath() to group duplicate references together. Thanks
	  to Fabian Groffen <grobian@g.o> for the initial patch.

2008-10-05 17:04  zmedico

	* [r11634] Make HOMEPAGE.missing a warning since some packages
	  become homeless even though they still continue to work. Thanks
	  to Robin H. Johnson <robbat2@g.o> for the suggestion.

2008-10-05 16:57  zmedico

	* [r11633] Avoid raising a KeyError from display_preserved_libs()
	  in cases when no owners are found for a particular library
	  consumer.

2008-10-05 16:31  zmedico

	* [r11630] In dyn_clean, cd to $PORTAGE_BUILDDIR/.. before
	  attempting to remove it since some kernels, such as Solaris,
	  return EINVAL when an attempt is made to remove the current
	  working directory. Thanks to Fabian Groffen <grobian@g.o> for
	  reporting.

2008-10-05 16:04  zmedico

	* [r11629] Bug #239529 - When doins is called on a symlink to a
	  directory, preserve the name of the symlink for the installed
	  directory. This involves temporarily renaming the directory and
	  then renaming it back again.

2008-10-05 05:09  zmedico

	* [r11628] * When ensuring sane $PWD in ebuild.sh, die if the `cd
	  "$PORTAGE_BUILDDIR"` call fails. * Create $PORTAGE_BUILDDIR for
	  the "fetch" phase too since it might be necessary to call
	  pkg_nofetch.

2008-10-05 04:20  zmedico

	* [r11627] Only update the confmem file when something has changed.

2008-10-05 04:12  zmedico

	* [r11626] Fix PreservedLibsRegistry.store() so that it only
	  rewrites the data file when something has changed.

2008-10-05 03:46  zmedico

	* [r11625] Redirect pushd and popd output to /dev/null when
	  appropriate.

2008-10-05 03:40  zmedico

	* [r11624] Add missing quotes on pushd argument from previous
	  commit.

2008-10-05 03:39  zmedico

	* [r11623] Bug #239529 - Fix 'doins' to work with symlinks to
	  directories, like it did before the changes from bug #210575.

2008-10-05 02:17  zmedico

	* [r11622] A cpv can be returned from dbapi.match() as an old-style
	  virtual match even in cases when the package does not actually
	  PROVIDE the virtual. Filter out any such false matches inside
	  depgraph._select_package() and _show_unsatisfied_dep(). Thanks to
	  Ned Ludd <solar@g.o> for reporting this issue which was
	  discovered when attempting to install virtual/libc on uclibc
	  profile. Apparently the uclibc ebuilds need to be fixed to
	  properly set PROVIDE when the metadata cache is generated.

2008-10-04 21:32  zmedico

	* [r11621] Handle AttributeError in case os.getloadavg does not
	  exist, like when python is built agains uclibc.

2008-10-04 05:40  zmedico

	* [r11618] Fix depgraph._add_pkg() to ensure that the existing
	  package in the graph matches the required atom in cases when a
	  different package has been passed in. This solves a problem with
	  silently unsatisfied USE deps that was reported by Jorge Manuel
	  B. S. Vicetto <jmbsvicetto@g.o>. Now the unsatisfied dependency
	  will result in a "slot conflict" rather than be silently ignored.

2008-10-04 05:09  zmedico

	* [r11617] Make depgraph._add_pkg() take a Dependency instance.
	  This provides access to the atom which pulled in the package,
	  which may be needed in order to verify that a different package
	  that's been added to the graph is capable of satisfying the atom.

2008-10-02 16:57  zmedico

	* [r11613] Fix `svn status` output parsing for compatibility with
	  subversion-1.6. Thanks to Arfrever for this patch.

2008-10-02 06:56  zmedico

	* [r11611] Remove pointless copying of the owners dict inside
	  display_preserved_libs().

2008-10-02 06:35  zmedico

	* [r11610] Implement a new "changelog.ebuildadded" check which
	  causes repoman to bail out if an ebuild has been added and the
	  ChangeLog has not been modified. This was requested by Robin H
	  Johnson <robbat2@g.o> since it is a requirement for the
	  packages.gentoo.org ChangeLog code.

2008-10-02 05:11  zmedico

	* [r11609] In JobStatusDisplay._update(), set _displayed = True
	  when ruturning early due to stdout not being a tty. This fixes a
	  problem excess output which was reported by Daniel Robbins.

2008-10-02 03:58  zmedico

	* [r11608] Optimize display_preserved_libs() by using a single
	  getFileOwnerMap() to look up all the files.

2008-10-02 02:52  zmedico

	* [r11607] Fix broken logic in Scheduler._main_loop() which would
	  allow the main loop to exit while one or more merges are still
	  scheduled. Thanks to Patrick Lauer for reporting.

2008-10-02 00:57  zmedico

	* [r11606] Call elog_process before calling the "clean" phase for
	  --buildpkgonly mode.

2008-10-02 00:44  zmedico

	* [r11605] When parsing PORTAGE_ELOG_SYSTEM, stack values in a dict
	  so that things like "echo:info echo:qa" stack like one might
	  expect. Thanks to Betelgeuse for reporting.

2008-10-01 21:17  zmedico

	* [r11604] Bug #239272 - Handle InvalidAtom exception inside
	  depgraph.validate_blockers().

2008-10-01 17:43  zmedico

	* [r11603] Generate an eqawarn message if econf is called from
	  src_compile and src_configure is also defined. Thanks to
	  Betelgeuse for the patch which I've modified to be silent in EAPI
	  0 or 1 in case ebuilds want to define src_configure in those
	  EAPIs and call it manually from src_compile.

2008-09-30 15:16  zmedico

	* [r11602] Handle InvalidDependString from portdbapi.getFetchMap()
	  inside search.output(). Thanks to agaffney for reporting.

2008-09-30 01:06  zmedico

	* [r11601] Now that elog_base() uses 'echo -e' to expand escape
	  codes prior to using 'read' to split on newlines, it's safe to
	  use newlines as delimiters in the log file since 'read' is
	  guaranteed to split any newlines contained in the arguments.

2008-09-29 16:58  zmedico

	* [r11600] Bug #239006 - In FakeVartree._aux_get_wrapper(), fall
	  back to vdb metadata if the live ebuild's EAPI is unsupported.

2008-09-29 00:18  genone

	* [r11599] allow the portage.sets. prefix to be omitted in 'class'
	  options of set definitions

2008-09-28 23:38  genone

	* [r11598] Add a new DummyPackageSet handler to make set operators
	  easier to use

2008-09-28 23:02  genone

	* [r11597] remove the 'repository' option from CategorySet in favor
	  of the generic 'intersect' option

2008-09-28 22:55  genone

	* [r11596] allow selection of metadata source for VariableSet

2008-09-28 22:36  genone

	* [r11595] make sure that cli-defined sets aren't added to @world

2008-09-28 22:28  zmedico

	* [r11594] For compatibility with long-standing --columns behavior,
	  do not display "uninstall" or satsified "blocks" nodes in the
	  merge list when --columns is enabled. Thanks to solar for the
	  suggestion.

2008-09-28 19:15  genone

	* [r11593] add support for slot dependencies (original patch by
	  Robert Buchholz <rbu@gentoo.org>)

2008-09-28 18:59  genone

	* [r11592] use summarylist for output of test mode when --verbose
	  is given (patch by Robert Buchholz <rbu@gentoo.org>)

2008-09-28 18:58  genone

	* [r11591] sort summarylist output (patch by Robert Buchholz
	  <rbu@gentoo.org>)

2008-09-28 18:50  genone

	* [r11590] print dates in a consistent format (patch by Robert
	  Buchholz <rbu@gentoo.org>)

2008-09-28 18:41  genone

	* [r11589] also accept glsa-2.dtd as valid for GLSAs (patch by
	  Robert Buchholz <rbu@gentoo.org>)

2008-09-28 18:39  genone

	* [r11588] account for DTD changes wrt 'revised' element (patch by
	  Robert Buchholz <rbu@gentoo.org>)

2008-09-28 18:09  genone

	* [r11587] document AgeSet handler class

2008-09-28 17:57  genone

	* [r11586] update set config documentation to include extend,
	  remove and intersect options

2008-09-28 17:33  genone

	* [r11585] use ignorelist to avoid potential infite loop

2008-09-28 17:27  genone

	* [r11584] Add operator logic to sets.conf

2008-09-28 17:02  genone

	* [r11583] Properly process set arguments inside set expressions

2008-09-28 17:01  genone

	* [r11582] disable redefintion errors when updating the set
	  definitions

2008-09-28 16:08  genone

	* [r11581] implement set arguments to reconfigure and create
	  package sets on the commandline

2008-09-27 22:16  zmedico

	* [r11576] Another correctness fix in
	  BlockerDB.findInstalledBlockers().

2008-09-27 22:10  zmedico

	* [r11575] Fix code inside BlockerDB.findInstalledBlockers() to
	  correctly strip multiple "!" characters when necessary. The code
	  seemed to work fine anyway so this is more a correctness fix than
	  a bug fix.

2008-09-27 20:04  zmedico

	* [r11574] EAPI 2 is now supported.

2008-09-27 19:24  zmedico

	* [r11573] Mask packages with deprecated EAPIs in order to prevent
	  them from being installed. Such packages will still behave
	  normally if they are already installed, but preventing new
	  installation will remind people to update the EAPIs in their
	  overlays if necessary.

2008-09-27 05:55  zmedico

	* [r11564] In the --depclean docs, there's no need to advise the
	  user to use --oneshot when updating @system @world since @system
	  now has world-candidate set to False by default.

2008-09-27 00:08  zmedico

	* [r11563] Make $PWD default to $PORTAGE_BUILDDIR since $WORKDIR is
	  sometimes created later.

2008-09-26 23:00  zmedico

	* [r11562] Add PROPERTIES to the list of USE evaluated keys for the
	  Packages index.

2008-09-26 21:40  zmedico

	* [r11561] Add PROPERTIES to all of the metadata caches.

2008-09-26 19:20  zmedico

	* [r11560] Update hardcoded auxdbkey_order attributes to include
	  PROPERTIES.

2008-09-26 15:00  zmedico

	* [r11558] Bug #238766 - Revert the fetch() mirror:// behavior
	  change from r11537 since it wasn't actually needed to comply with
	  PMS 9.2.8, and the change actuall caused incorrect mirror
	  fetching behavior.

2008-09-26 03:13  zmedico

	* [r11556] Add back code removed in r11553 and fix logic to avoid
	  IndexError.

2008-09-26 02:16  zmedico

	* [r11555] Handle possible CacheError inside mirror_cache().

2008-09-26 01:48  zmedico

	* [r11554] Direct EOutput.eerror() and ewarn() output to stderr.

2008-09-26 01:45  zmedico

	* [r11553] Fix a potential IndexError inside
	  display_preserved_libs().

2008-09-26 01:15  zmedico

	* [r11552] Make flat_hash write keys in alphabetical order.

2008-09-26 00:16  zmedico

	* [r11551] Rename the EAPI 2 docs and to indicate that they are no
	  longer a draft, and remove the EAPI 2_pre* docs.

2008-09-26 00:09  zmedico

	* [r11550] Bump to EAPI 2.

2008-09-25 23:42  zmedico

	* [r11549] Add PROPERTIES to portage.auxdbkeys since it's been
	  approved by the council.

2008-09-25 23:29  zmedico

	* [r11548] Fix mirror_cache() so it won't silently swallow a
	  KeyError if _mtime_ or _eclass_ happens to be missing from the
	  cache data for some reason.

2008-09-25 23:13  zmedico

	* [r11547] Ensure that cache modules always return a dict
	  containing the _eclasses_ key.

2008-09-25 21:23  zmedico

	* [r11546] Fix message: s/One or packages/One or more packages/.
	  Thanks to Marijn Schouten <hkBst@g.o> for reporting.

2008-09-25 18:58  zmedico

	* [r11545] Use echo -e when splitting lines in e* functions, for
	  compatibility with previous behavior wrt \e escape codes such as
	  `elog "\e[31m***\e[0m"` for example. Thanks to Arfrever for
	  finding this solution.

2008-09-25 17:03  genone

	* [r11544] change set expression syntax: operators now have a @
	  suffix (IOW: all operands must be prefixed with @) to maintain
	  compability with existing set names containing hyphens

2008-09-25 16:37  genone

	* [r11543] implement simple expression logic for apckage sets to
	  generate unions, intersections and differences of two or more
	  package sets

2008-09-25 15:45  genone

	* [r11542] move set expansion code into its own function

2008-09-25 15:26  genone

	* [r11541] relocate the post_emerge call so it gets called in more
	  situations.

2008-09-25 15:25  genone

	* [r11540] Add a new AgeSet class to select installed packages that
	  have been installed more/less than n days ago

2008-09-25 13:30  zmedico

	* [r11539] Fix the case where all arguments are filtered out by
	  PORTAGE_COMPRESS_EXCLUDE_SUFFIXES, since otherwise 'set' was
	  called with no arguments which caused the environment to be
	  displayed on stdout.

2008-09-25 01:24  zmedico

	* [r11538] Bug #238550 - Set world-candidate = False for the
	  @system since the portage ebuild will now automatically add
	  @system to world_sets on upgrade and therefore it should no
	  longer be necessary to add it world_sets via the command line.

2008-09-24 19:09  zmedico

	* [r11537] Fix fetch() mirror:// handling in to comply with section
	  9.2.8 of PMS.

2008-09-23 20:04  zmedico

	* [r11536] Import cPickle as pickle instead of vice versa. Eases
	  2to3's job because cPickle won't exist in py3k and 2to3 does
	  s/cPickle/pickle. Thanks to Ali Polatel <hawking@g.o> for this
	  patch.

2008-09-22 20:28  zmedico

	* [r11535] Bug #230975 - Rename the portage.selinux module to
	  portage._selinux in order to avoid a relative import issue which
	  caused portage.selinux to attempt to import itself instead of the
	  real 'selinux' module. Thanks to Michael Edenfield for this
	  patch.

2008-09-22 11:26  genone

	* [r11534] remove deprecation warnings and compat code for 2.1
	  changes to rsync and action argument syntax

2008-09-22 11:14  genone

	* [r11533] don't attempt to unmerge a set that doesn't exist
	  anymore

2008-09-21 16:53  zmedico

	* [r11531] Add a new --list-sets action, as requested by
	  jmbsvicetto.

2008-09-21 15:50  zmedico

	* [r11530] Always call `cd "$WORKDIR"` to ensure that $CWD is sane
	  whenever possible.

2008-09-21 13:39  zmedico

	* [r11529] Bug #238251 - Use 'read' instead of $IFS for splitting
	  newlines in e* functions, since using $IFS causes spurious
	  newlines to be inserted in the message when the e* function is
	  called with more than one argument.

2008-09-21 05:30  zmedico

	* [r11528] Fix erroneous variable references in the multiset
	  'Redefinition of set' message.

2008-09-20 18:55  zmedico

	* [r11527] As requested by jmbsvicetto, add support to
	  StaticFileSet for sets within subdirectories. This makes it
	  possible to create a set name foo/bar by placing a file named bar
	  inside a directory named foo. By allowing sets to be organized in
	  subdirectories, it will allow us to avoid overcrowding as the
	  number of sets grows.

2008-09-20 16:55  zmedico

	* [r11526] More SRC_URI validation.

2008-09-20 09:33  zmedico

	* [r11525] Fix some broken logic inside portdbapi.getFetchMap().

2008-09-20 08:47  zmedico

	* [r11524] Add test cases for SRC_URI validation.

2008-09-20 08:17  zmedico

	* [r11523] Add a "EAPI 2_pre3" section to show what's changed.

2008-09-20 08:02  zmedico

	* [r11522] Implement SRC_URI arrows for EAPI 2. The
	  portdbapi.getfetchlist() method is now deprecated and there is a
	  new getFetchMap() method that returns a dict which maps each file
	  name to a set of alternative URIs. The portage.fetch() function
	  uses introspection to detect when such a dict is passed in and
	  handles it appropriately, while maintaining backward
	  compatibility if a list of uris is passed in.

2008-09-20 07:57  zmedico

	* [r11521] Document the --ignore-default-opts and --skip-manifest
	  options.

2008-09-20 07:15  zmedico

	* [r11520] Bug #238157 - Update http_proxy/ftp_proxy docs to show
	  protocol://, for compat with rubygems.

2008-09-19 21:41  zmedico

	* [r11519] Define __all__ and clean up unused imports found by
	  pyflakes.

2008-09-19 18:10  zmedico

	* [r11518] Document the --debug option. Thanks to Jeremy Olexa
	  <darkside@g.o> suggesting.

2008-09-19 03:28  zmedico

	* [r11517] Implement the new EAPI 2 blocker behavior, including
	  !!atom sytax which forbids temporary simultaneous installation of
	  conflicting packages.

2008-09-19 01:55  zmedico

	* [r11516] Fix typo in from previous commit.

2008-09-18 21:01  zmedico

	* [r11515] Remove everything related to the eapi* default phase
	  functions since they are not included in the current EAPI 2
	  draft.

2008-09-15 19:30  zmedico

	* [r11514] Fix broken reference to self.files inside
	  SpawnProcess._start().

2008-09-15 18:54  zmedico

	* [r11513] Improve error messages for issues with the SYNC variable
	  inside action_sync().

2008-09-13 23:30  zmedico

	* [r11512] Remove unneeded quotes from PYTHONPATH assignments and
	  also fix one more potential redundant colon inside
	  misc-functions.sh.

2008-09-13 23:21  zmedico

	* [r11511] Fix PYTHONPATH adjustments to only insert a colon when
	  necessary. This is necessary since having a stray colon causes
	  python to interpret the empty path entry as "." which triggers
	  the following message if cwd happens to contain a directory names
	  "os":
	  
	  warning: Not importing directory 'os': missing __init__.py
	  
	  Thanks to Joe Peterson <lavajoe@g.o> for reporting.

2008-09-13 18:10  zmedico

	* [r11510] Bug #237526 - Use portage.util.grablines() for exception
	  handling when reading the unread file.

2008-09-13 17:38  zmedico

	* [r11509] Define __all__ and remove unused imports found by
	  pyflakes.

2008-09-13 05:53  zmedico

	* [r11508] Move the world file update code out of
	  update_config_files() since it should not be relative to
	  PORTAGE_CONFIGROOT. Thanks to grobian for reporting.

2008-09-13 02:47  zmedico

	* [r11506] Document FEATURES=preserve-libs.

2008-09-11 05:50  zmedico

	* [r11503] Adjust chunk.section.depth and
	  generate.section.toc.level so that the EAPI 2 draft docs appear
	  on a single page which includes it's own table of contents.

2008-09-11 05:03  zmedico

	* [r11502] Remove docs for the proposed eapi* default phase
	  functions since they are unpopular.

2008-09-11 04:56  zmedico

	* [r11501] Remove docs for the proposed unpack() gitweb snapshot
	  extension since it's unpopular.

2008-09-10 20:46  zmedico

	* [r11500] New debugedit support for FEATURES=splitdebug, by Sven
	  Wegener:
	  
	  This will create new-style buildid symlinks for the splitted
	  debuginfo and also a symlink to the binary that belongs to the
	  debuginfo. Requires debugedit from rpm 5. Old versions of
	  debugedit ignore all unkown command line arguments, so this is a
	  no-op for them.
	  
	  Information:
	  http://fedoraproject.org/wiki/Releases/FeatureBuildId New
	  debugedit tarball:
	  http://dev.gentoo.org/~swegener/distfiles/debugedit-5.0.0.tar.bz2

2008-09-06 22:57  zmedico

	* [r11498] Don't mention log files in $T for eqawarn messages since
	  the logs are likely to get removed and the user can just use the
	  log from elog anyway. Thanks to Jeremy Olexa <darkside@g.o> for
	  the suggestion.

2008-09-06 21:23  zmedico

	* [r11497] In the ignored LDFLAGS check, filter out anything under
	  /usr/lib/debug/ in order to avoid duplicate warnings for
	  splitdebug files. Thanks to Cardoe for the suggestion.

2008-09-04 22:44  zmedico

	* [r11495] Split the doman language code documentation into it's
	  own section.

2008-09-04 22:39  zmedico

	* [r11494] Document EAPI 2 support in the unpack helper function
	  for gitweb snapshots. A patch implementing this feature has been
	  submitted by Daniel Robbins.

2008-09-04 21:34  zmedico

	* [r11493] Add EAPI 2 documentation for customization of output
	  file names in SRC_URI (bug #177863).

2008-09-04 20:55  zmedico

	* [r11492] Nest the EAPI 2 "Dependencies" section inside a
	  "Metadata" section.

2008-09-04 19:35  zmedico

	* [r11491] s/blocking/conflicting/ for consistency

2008-09-04 19:22  zmedico

	* [r11490] Document EAPI 2 blocker atom extensions (not yet
	  implemented).

2008-09-04 18:50  zmedico

	* [r11489] Nest the EAPI 2 "USE Dependencies" section inside a
	  "Dependencies" section.

2008-09-04 03:45  zmedico

	* [r11488] Adjust toc.section.depth in the stylesheet so that
	  deeper sections appear in the table of contents.

2008-09-03 21:27  zmedico

	* [r11487] Add a new "EAPI 2 Draft" section which unifies the
	  content of the EAPI 2_pre* sections.

2008-09-03 02:13  zmedico

	* [r11486] Adjust StaticFileSet._validate() to allow set tokens, so
	  that sets can contain other sets.

2008-09-01 19:32  zmedico

	* [r11485] Bug #222091 - Filter out any instances of the \1
	  character from variable values since this character multiplies
	  each time that the environment is saved (strange bash behavior).
	  This can eventually result in mysterious 'Argument list too long'
	  errors from programs that have huge strings of \1 characters in
	  their environment.

2008-09-01 17:06  zmedico

	* [r11483] Update PORTAGE_RSYNC_OPTS docs to reflect that
	  --delete-after is no longer used by default.

2008-09-01 06:31  zmedico

	* [r11482] Adjust EMakeParallelDisabled.re to require at least one
	  space after emake.

2008-08-31 08:05  zmedico

	* [r11481] Check for calls to the deprecated bindnow-flags
	  function. Thanks to Diego "Flameeyes" Pettenò for the suggestion.

2008-08-31 07:13  zmedico

	* [r11480] Add a warning for emake -j1 calls which disable
	  parallelization. Thanks to Diego "Flameeyes" Pettenò for the
	  suggestion.

2008-08-30 21:43  zmedico

	* [r11479] Add support for FEATURES="protect-owned" which is
	  identical to the collision-protect feature except that files may
	  be overwritten if they are not explicitly listed in the contents
	  of a currently installed package. This is particularly useful on
	  systems that have lots of orphan files that have been left behind
	  by older versions of portage that did not support the
	  unmerge-orphans feature.
	  
	  The additional tolerance makes this feature more suitable than
	  collision-protect for being enabled by default. In order to
	  ensure smooth operation of protect-owned in all cases, we also
	  have to set COLLISION_IGNORE="/lib/modules" since files inside
	  this directory are never unmerge. By enabling protect-owned by
	  default, users are protected from problems that may occur due
	  interactions with file collisions and the unmerge-orphans feature
	  which is also enabled by default.

2008-08-30 06:10  zmedico

	* [r11478] In dep_zapdeps(), add a new choice category for choices
	  that have packages that aren't yet installed but have been added
	  to the graph. This category is given lower priority that the
	  category for packages that are already installed. This helps
	  dep_zapdeps() avoid making choices in some cases that would
	  result in an unsolvable circular dependency. Thanks to Diego
	  "Flameeyes" Pettenò for reporting a circular dependency issue
	  involving that java overlay which is solved by this patch. The
	  particular issue was triggered when attempting to install
	  dev-java/icedtea6 for the first time. A circular dependency
	  between dev-java/eclipse-ecj-3.2.2-r1 and dev-java/icedtea6-1.2
	  occured since icedtea6 was chosen to satisfy the jdk dependency
	  of eclipse-ecj, even though sun-jdk-1.6.0.07 was already
	  installed and capable of satisfying the dependency. This patch
	  solves the issue by causing sun-jdk to be properly selected to
	  satisfy the jdk dependency of eclipse-ecj.

2008-08-27 17:04  zmedico

	* [r11475] When reloading the emerge config due to global updates
	  in action_sync(), correctly update the local root_config
	  reference. This should fix a KeyError: 'porttree' exception
	  that's been reported to be triggered after --sync.

2008-08-25 05:08  zmedico

	* [r11474] Revert recent changes to _ObjectKey.__eq__() since it's
	  probably a bug if the wrong type is compared for equality anyway.

2008-08-24 21:14  zmedico

	* [r11473] Fix _ObjectKey.__eq__() to account for potential hash
	  collisions that would break dict behavior. Thanks to Lucian
	  Poston for spotting this.

2008-08-24 18:21  zmedico

	* [r11470] Prevent [None] in repo display. Thanks to grobian.

2008-08-24 17:32  zmedico

	* [r11467] * Fix broken _ObjectKey.__eq__() logic from previous
	  commit. * Define _ObjectKey.__slots__ to save memory.

2008-08-24 17:21  zmedico

	* [r11466] Avoid possible AttributeError raised from
	  _ObjectKey.__eq__().

2008-08-24 05:44  zmedico

	* [r11460] Fix grammar. Thanks to ABCD.

2008-08-23 18:10  zmedico

	* [r11459] Fix spelling typos in error messages.

2008-08-23 09:29  zmedico

	* [r11458] Fix the loop in filter_protected() to continue when
	  necessary due to an error.

2008-08-23 09:20  zmedico

	* [r11457] Flush stdout after the loop inside filter_protected()
	  completes.

2008-08-23 09:18  zmedico

	* [r11456] Add a new filter_protected command which is similar to
	  is_protected but works by reading filenames from stdin and
	  writing to stdout only the filenames that are protected. This
	  allows an unlimited number of files to be checked via a single
	  portageq call.

2008-08-23 05:43  zmedico

	* [r11455] More LinkageMap enhancments from Lucian Poston: * Added
	  _ObjectKey helper class to LinkageMap. (commit
	  eac5528887656abec65fc3a825506187397482e4) * Minor change to
	  docstrings. (commit adde422145d81f25b4024eac1e78b80e1b4a4531)

2008-08-23 02:02  zmedico

	* [r11454] Add a new src_prepare phase function which is called
	  in-between src_unpack and src_configure (and bump EAPI to
	  2_pre3). Thanks to Ciaran McCreesh for the suggestion.

2008-08-22 23:53  zmedico

	* [r11453] Add a new is_protected command which queries whether or
	  not CONFIG_PROTECT applies to a given file, using logic identical
	  to the merge code.

2008-08-22 23:30  zmedico

	* [r11452] Fix isprotected() call in dblink._collision_protect() to
	  properly account for $ROOT.

2008-08-22 22:49  zmedico

	* [r11451] Update ROOT docs wrt make.conf since it can now be set
	  there regardless of PORTAGE_CONFIGROOT setting.

2008-08-22 22:25  zmedico

	* [r11450] Use shlex.split() to split CONFIG_PROTECT and
	  CONFIG_PROTECT_MASK.

2008-08-22 22:08  zmedico

	* [r11449] For consistency, show [0] in the repo display instead of
	  suppressing it. Now the repo display and [0] will only be
	  suppressed when [0] is all that would show for every package.
	  Thanks to Joe Peterson <lavajoe@g.o> for the suggestion.

2008-08-22 06:25  zmedico

	* [r11448] Update comment, from Lucian Poston's git repo.

2008-08-22 06:21  zmedico

	* [r11447] Optimize LinkageMap to use tuples of device and inode
	  numbers from stat calls, instead of paths from realpath, as
	  unique keys for identification of files. This is the same
	  approach used by dblink.isowner() for cases in which path
	  comparison fails due to symlinks.
	  
	  Thanks to Lucian Poston <lucianposton@gmail.com> for submitting
	  this patch (along with the missing-rebuild package set which I
	  haven't merged yet). These patches are hosted in the following
	  location:
	  
	  http://repo.or.cz/w/revdep-rebuild-reimplementation.git?a=tree;h=refs/heads/rc3;hb=refs/heads/rc3

2008-08-21 19:49  zmedico

	* [r11446] Fix typo in "directory" spelling. Thanks to Ofer Wald in
	  bug #219957.

2008-08-20 04:29  zmedico

	* [r11443] Fix spelling of overriding for bug #235250.

2008-08-20 04:24  zmedico

	* [r11442] Fix dep_wordreduce() so that it doesn't cancel out
	  blocker atoms that happen to be matched by package.provided.

2008-08-20 03:18  zmedico

	* [r11441] Make dblink call back to the scheduler for "clean" and
	  "cleanrm" phases, to handle output redirection. Thanks to
	  Arfrever for reporting.

2008-08-20 03:13  zmedico

	* [r11440] Make sure EBUILD_PHASE is properly unset when calling
	  misc-functions.sh.

2008-08-19 22:05  zmedico

	* [r11439] When in background mode, redirect "adjusting
	  permissions" messages for features directories like CCACHE_DIR
	  and DISTCC_DIR. Thanks to Arfrever for reporting.

2008-08-19 20:16  zmedico

	* [r11438] Add an 'IUSE defaults' section.

2008-08-19 09:15  zmedico

	* [r11437] Remove reference to use.default. Thanks to ulm for
	  reporting.

2008-08-18 23:24  zmedico

	* [r11436] The following error is known to occur with Linux kernel
	  versions less than 2.6.24:
	  
	  select.error: (4, 'Interrupted system call')
	  
	  This error has been observed after a SIGSTOP, followed by
	  SIGCONT. Treat it similar to EAGAIN if timeout is None, otherwise
	  just return without any events.
	  
	  Thanks to Jeremy Olexa <darkside@g.o> for reporting and testing
	  this patch.

2008-08-18 21:20  zmedico

	* [r11435] Update for @everything -> @installed rename. Thanks to
	  Arfrever.

2008-08-18 08:53  zmedico

	* [r11434] * Truncate status display output when necessary to avoid
	  line overflow and unwanted terminal scroll. * When the load
	  average goes above 10, save space by showing fewer decimal places
	  in the output.

2008-08-18 08:09  zmedico

	* [r11433] Don't assume that the "world" set is an instance of
	  WorldSet, allowing the user to substitute some other set type if
	  desired.

2008-08-18 07:47  zmedico

	* [r11432] Fix atom -> str breakage in StaticFileSet.write().

2008-08-17 07:36  zmedico

	* [r11423] Document /var/lib/portage/world_sets.

2008-08-15 22:03  zmedico

	* [r11419] Bug #172496 - Add a PORTAGE_COMPRESS_EXCLUDE_SUFFIXES
	  config variable which is used to filter ecompress arguments. This
	  allows the user to control compression of files installed dodoc,
	  excluding files with specific suffix patterns. The current
	  default value includes all of the suffixes that are recognized by
	  dohtml, as well as pdf.

2008-08-15 18:45  zmedico

	* [r11418] For consistency, make get_open_fds() return a plain
	  iterator in any case, rather than return a list in some cases.

2008-08-15 18:12  zmedico

	* [r11417] Use a list comprehension instead of strange map() usage
	  which yields odd results when fed to the py3k converter. Thanks
	  to René 'Necoro' Neumann.

2008-08-15 18:00  zmedico

	* [r11416] For py3k compatibility, replace map() call with a normal
	  for loop. Thanks to Ali Polatel <hawking@g.o>.

2008-08-15 17:39  zmedico

	* [r11415] Pass atom instances into action_depclean() instead of
	  the plain strings.

2008-08-15 17:34  zmedico

	* [r11414] Validate atoms from command line args before calling
	  action_depclean().

2008-08-15 17:19  zmedico

	* [r11413] In order to avoid an unhandled InvalidAtom exception,
	  validate atoms from command line arguments before passing them to
	  unmerge(). Thanks to Cardoe for reporting.

2008-08-15 17:08  zmedico

	* [r11412] * Replace vartree.dep_match() call with normal
	  dbapi.match() call. * Don't silently swallow unexpected KeyError
	  exceptions from dbapi.match() inside unmerge().

2008-08-14 20:28  zmedico

	* [r11411] When a build fails, generate a status message showing
	  which package failed and the path of the relevant log file if
	  available. Thanks to _neuron_ for the suggestion. Here is some
	  sample output:
	  
	  >>> Emerging (1 of 1) foo-bar/baz-1.0 >>> Failed to emerge
	  foo-bar/baz-1.0, Log file: >>>
	  '/var/log/portage/foo-bar:baz-1.0:20080814-202327.log'

2008-08-14 19:30  zmedico

	* [r11410] Convert exceptions from parse_metadata_use() into
	  "metadata.bad" errors instead of exiting.

2008-08-14 19:07  zmedico

	* [r11407] * Fix parse_metadata_use() to raise ParseError instead
	  of the ExpatError that was reported by grobian.
	  
	  * Define __all__.

2008-08-14 09:37  zmedico

	* [r11406] The fpformat module is deprecated and will be removed in
	  py3k. The % string interpolation operator should be used instead.
	  Thanks to Ali Polatel <hawking@g.o> for this patch.

2008-08-14 05:29  zmedico

	* [r11405] Make Scheduler._choose_pkg() parallelize more
	  aggressively in cases when it will not result in a less optimal
	  build order. This works by modifying the behavior of
	  Scheduler._dependent_on_scheduled_merges() so that two cases of
	  dependence are ignored:
	  
	  * A given dependency will be merged later anyway (due to dep
	  cycles) and therefore delaying the merge of the parent package
	  will not result in a more optimal build order.
	  
	  * A given dependency is an "uninstall" operation and it also is
	  not a direct dependency, therefore it should be irrelevant to
	  build order optimization.

2008-08-12 22:40  zmedico

	* [r11404] Fix quoting for iteration over PROFILE_PATHS.

2008-08-12 19:54  zmedico

	* [r11402] Create a single EAPI section to contain all of the EAPI
	  subsections and replace sect[1-3] elements with "section"
	  elements which have unbounded depth.

2008-08-12 07:12  zmedico

	* [r11401] Bug #234478 - Fix config._getMissingLicenses() to only
	  access USE when LICENSE is conditional since otherwise USE hasn't
	  necessarily been calculated.

2008-08-12 02:33  zmedico

	* [r11400] Disable "waiting for lock" messages when in background
	  mode. Thanks to Thargor for reporting.

2008-08-11 20:20  zmedico

	* [r11399] Fix ebuild(1) so that src_configure is only called for
	  EAPIs for which it is supported.

2008-08-11 19:50  zmedico

	* [r11398] Entirely disable the src_configure phase from the python
	  side for EAPI values for which it's not supported. This avoids
	  pointless spawning of ebuild.sh and also avoids having bashrc
	  called during an invalid phase as reported by Arfrever.

2008-08-11 06:52  zmedico

	* [r11397] In source_all_bashrcs(), only change $IFS while
	  splitting $PROFILE_PATHS into an array, and then restore it
	  before doing anything else. This avoids interference that can
	  otherwise occur if code from profile.bashrc (or /etc/portage/env,
	  be extension) needs to call any of the elog functions which use
	  the save_IFS and restore_IFS aliases internally.

2008-08-10 11:56  zmedico

	* [r11395] Increase Scheduler._job_delay_max to 10 seconds.

2008-08-10 11:21  zmedico

	* [r11394] For pkg_config and pkg_info, add respective "config" and
	  "info" values to EBUILD_PHASES.

2008-08-10 11:07  zmedico

	* [r11393] When testing userpriv write access in $DISTDIR, redirect
	  the 'permission denied' error message to /dev/null.

2008-08-10 10:30  zmedico

	* [r11392] Remove unnecessary dict.keys() call.

2008-08-10 09:04  zmedico

	* [r11387] Move the default EAPI definition where it will work in
	  any case it might be necessary, such as after loading an exising
	  environment.

2008-08-10 08:20  zmedico

	* [r11386] Remove most references to Package.metadata_keys and
	  replace them with approriate keys for the given package type.

2008-08-10 05:17  zmedico

	* [r11385] Add sample code for the new src_configure and
	  src_compile phase functions.

2008-08-10 04:56  zmedico

	* [r11384] Document the differences between EAPIs 0 and 1.

2008-08-10 04:09  zmedico

	* [r11383] Add new sections for EAPI 0 and 1 (currently empty).

2008-08-10 02:00  zmedico

	* [r11382] Fix typo.

2008-08-10 01:48  zmedico

	* [r11381] Remove INHERITED from the vardbapi aux_get cache since
	  it's not really that useful (@live-rebuild currently pulls
	  INHERITED from the highest visible ebuild). Also adjust keys used
	  to pull metadata for Package instances, so that INHERITED won't
	  get pulled from the vardbapi anymore.

2008-08-10 01:10  zmedico

	* [r11380] Remove pointless `cd` calls in dyn_configure() and
	  dyn_compile().

2008-08-10 01:02  zmedico

	* [r11379] Eliminate duplicate code by making _eapi1_src_compile()
	  call _eapi2_src_configure().

2008-08-10 00:17  zmedico

	* [r11378] Make the scheduler's job delay ramp up faster by
	  increasing the factor to 1.0 and adding an exponent of 1.5.

2008-08-09 23:47  zmedico

	* [r11377] Fix dyn_clean() to properly clean
	  $PORTAGE_BUILDDIR/.configured.

2008-08-09 22:29  zmedico

	* [r11376] Add write_contents() and tar_contents() functions to
	  __all__.

2008-08-09 22:27  zmedico

	* [r11375] * Use shlex.split() for splitting COLLISION_IGNORE. *
	  Define __all__.

2008-08-09 20:39  zmedico

	* [r11374] Bug #234100 - Update date and portage version in man
	  page headers.

2008-08-09 20:26  zmedico

	* [r11373] Bug #234157 - Remove BUILD_PREFIX from the docs since
	  it's not a user config variable.

2008-08-09 19:03  zmedico

	* [r11372] Don't use "dir" for a variable name since it's also a
	  builtin.

2008-08-09 10:33  zmedico

	* [r11366] Add a reference to the default sets.conf location.
	  Thanks to dberkholz for the suggestion.

2008-08-09 10:07  zmedico

	* [r11365] Make eapi*_src_install die since they're not supported.

2008-08-09 10:05  zmedico

	* [r11364] Escape use flags before compiling regular expressions
	  from them. Thanks to pchrist for reporting.

2008-08-09 09:21  zmedico

	* [r11363] Update date in dyn_help copyright header. Thanks to
	  grobian.

2008-08-09 08:06  zmedico

	* [r11360] When calling dbaip.aux_get() inside
	  depgraph._select_package(), only pull the keys that are cached.
	  This avoids triggering useless cache pulls for INHERITED from the
	  bindbapi.

2008-08-09 06:12  zmedico

	* [r11359] Increase Scheduler._job_delay_factor from 0.5 to 0.75 so
	  that the delay ramps up a little quicker, since the current value
	  appears to be too weak in some cases.

2008-08-08 22:24  zmedico

	* [r11358] Remove redundant default pkg_nofetch, src_unpack, and
	  src_test definitions which are now handled inside
	  _ebuild_phase_funcs().

2008-08-08 21:51  zmedico

	* [r11357] Add new LinkageMap.listBrokenBinaries() and
	  listProviders() methods. Thanks to Lucian Poston
	  <lucianposton@gmail.com> for submitting this patch along with the
	  missing-rebuild package set posted on the gentoo-portage-dev
	  mailing list.

2008-08-08 21:45  zmedico

	* [r11356] Fix broken reference to os.path.realpath() inside
	  LinkageMap.getSoname().

2008-08-08 21:37  zmedico

	* [r11355] In LinkageMap.rebuild(), filter empty strings that may
	  be returned from split calls when processing the "needed" and
	  "path" entries. Thanks to Lucian Poston for reporting.

2008-08-08 20:38  zmedico

	* [r11354] Fix broken quoting in eval statements. Thanks to
	  Arfrever.

2008-08-08 20:36  zmedico

	* [r11353] Add missing default_src_configure() function to table.
	  Thanks to Arfrever.

2008-08-08 20:34  zmedico

	* [r11352] Fix default phase functions in EAPI 2_pre2, since they
	  should be labeled as "2" instead of "2_pre2. Thanks to Arfrever
	  for reporting.

2008-08-08 12:02  zmedico

	* [r11351] Rename the eapi2_pre2_* functions to just eapi2_* and
	  document all the new eapi* functions.

2008-08-08 11:24  zmedico

	* [r11350] Implement eapi$EAPI_* default phase functions that are
	  equivalent to the default_* functions for the given EAPI. For
	  example, a function named eapi0_src_compile provides access to
	  the default src_compile implementation that EAPI 0 provides. This
	  feature is supported only when EAPI=2_pre2 is set. Thanks to
	  Brian Harring for suggesting this idea.

2008-08-08 11:01  zmedico

	* [r11348] Handle missing ipv6 support (branches/prefix r11347).

2008-08-08 06:49  zmedico

	* [r11346] * Fix the default() implementation so that it maps the
	  ebuild argument to the correct phase function. * Add
	  --exclude-init-phases option to save_ebuild_env() for filtering
	  out unnecessary functions and variables when creating
	  environment.bz2. * Add support for default() and default_*
	  functions that die in all ebuild phases so that improper use of
	  these functions is quickly discovered.

2008-08-08 00:43  zmedico

	* [r11345] Shorten the scheduler status display in the xterm title
	  by removing all consecutive spaces.

2008-08-07 22:08  zmedico

	* [r11344] When testing containment of elem[:1] in "MR", filter
	  potential empty string matches.

2008-08-07 14:00  zmedico

	* [r11343] In order to properly preserve --jobs and --load-average
	  settings for --resume operations, store resume options in the
	  mtimedb as a dict instead of a list. The dict type is supported
	  in >=portage-2.1.3_rc8 (2.1.4.4 is current stable) so people
	  switching between stable/unstable will be fine.

2008-08-07 12:50  zmedico

	* [r11342] Add support in EAPI 2_pre2 for a function named
	  "default" is redefined for each phase so that it will call the
	  default_* function corresponding to the current phase. Thanks to
	  Thomas Anderson <gentoofan23> for the initial patch.

2008-08-07 11:22  zmedico

	* [r11341] Fix a bug in vardbapi.removeFromContents() which
	  sometimes prevents the CONTENTS from being updated when it
	  should.

2008-08-07 09:08  zmedico

	* [r11340] In order to conserve some space, make _setitem() skip
	  writing keys for which the value is empty.

2008-08-07 00:32  zmedico

	* [r11339] Replace call to `svn list` with a call to `svn status
	  --depth=files --verbose` since the former contacts the server
	  while the latter does not. Thanks to Arfrever for this patch.

2008-08-06 22:58  zmedico

	* [r11338] Remove the "ebuild.disjointed" check because it's
	  obsolete since we've switched to manifest2 only. Thanks to
	  Arfrever for this patch.

2008-08-06 03:30  zmedico

	* [r11337] Fix `svn status` output parsing to account for
	  "replaced" files indicated by "R". Thanks to Arfrever.

2008-08-06 02:09  zmedico

	* [r11336] Remove redundant 'local line' definition from previous
	  commit.

2008-08-06 02:07  zmedico

	* [r11335] Fix breakage in elog function newline handling with
	  causes blank/empty lines to get lost.

2008-08-05 08:28  zmedico

	* [r11332] Make doebuild() display manifest verification failures
	  for each corrupt ebuild rather than just the first one.

2008-08-05 06:58  zmedico

	* [r11331] When there is no build log to display, it means that
	  fetch failed, so display the fetch log in that case.

2008-08-05 02:20  zmedico

	* [r11330] Remove unused parse_use_local_desc() function.

2008-08-05 02:15  zmedico

	* [r11329] Remove the use.local.desc IUSE validation which is now
	  replaced by glep56 metadata.xml validation. This was requested by
	  Cardoe since he expects to complete the gleep56 conversion
	  process pretty soon.

2008-08-04 19:07  zmedico

	* [r11328] Add some docs for EAPI 2_pre2.

2008-08-04 17:54  zmedico

	* [r11327] Bug #233735 - Add support for src_configure and
	  default_* functions with new EAPI=2_pre2. Thanks to Arfrever
	  Frehtes Taifersar Arahesis for the initial patch which I've made
	  a few adjustments to.

2008-08-04 15:46  zmedico

	* [r11326] Remove code from bug #223447 which is now obsolete due
	  to depclean using the depgraph class.

2008-08-04 04:57  zmedico

	* [r11325] Make the status display say "Emerging" and "Emerging
	  binary" instead of "Building" and "Extracting". Thanks to Joe
	  Peterson <lavajoe> for the suggestion (including extra newlines
	  from previous commit).

2008-08-04 04:52  zmedico

	* [r11324] Insert extra newline before status messages, since
	  that's how it used to be.

2008-08-04 01:11  zmedico

	* [r11323] Make dblink.unmerge() succeed even when ebuild phases
	  are unsuccessful because the current behavior is even worse
	  (results in orphan files). Thanks to Arfrever for this patch
	  (UnsupportedAPIException hunk by me).

2008-08-03 05:51  zmedico

	* [r11320] Add a more generic VariableSet to replace the InheritSet
	  and RestrictSet classes. Thanks to Arfrever Frehtes Taifersar
	  Arahesis for this patch from bug #233589 (with some minor
	  adjustments from me).

2008-08-02 07:23  zmedico

	* [r11319] Handle missing sets, to avoid KeyError raised from
	  unmerge().

2008-08-02 01:35  zmedico

	* [r11318] Document the fact that use of @installed/EverythingSet
	  makes it impossible for emerge to solve blockers by automatic
	  uninstallation of blocked packages.

2008-08-02 01:27  zmedico

	* [r11317] Add a new RestrictSet which contains all packages that
	  match specified RESTRICT values. This could be useful for
	  implementing something like a @live-rebuild based on RESTRICT
	  metadata, as suggested in bug #233589.

2008-08-02 00:32  zmedico

	* [r11316] In the file collision elog message, only say 'NOT
	  merged' when collision-protect is enabled. Thanks to dberkholz
	  for reporting.

2008-08-01 22:22  zmedico

	* [r11315] * Add INHERITED to vardbapi._aux_cache_keys since
	  Package.metadata_keys also includes this one now. * Fix pull_me
	  calculation inside vardbapi.aux_get() so that it correctly
	  subtracts _mtime_ from the list of keys to pull.

2008-08-01 21:56  zmedico

	* [r11314] Add debug support to PackagesSystemSet since robbat2 is
	  reporting an empty set for some unknown reason.

2008-08-01 10:37  zmedico

	* [r11312] Make EbuildFetcher pass a copy of os.environ to the
	  ebuild(1) subprocess so that any incremental variables have been
	  overridden are correctly considered by the config instance in the
	  subproccess.

2008-08-01 10:14  zmedico

	* [r11311] Update the Parallel Scheduling section to describe the
	  current algorithm.

2008-08-01 07:33  zmedico

	* [r11310] Add DowngradeSet and OwnerSet to __all__.

2008-08-01 07:05  zmedico

	* [r11309] Bug #233252 - Handle InvalidAtom exceptions that can be
	  raised from depgraph._add_dep() calls inside _add_pkg_deps().

2008-08-01 04:51  zmedico

	* [r11308] Make InheritSet more like DowngradeSet, and check
	  INHERITED from the highest visible ebuild in the portage tree
	  rather than from the installed package itself.

2008-08-01 04:13  zmedico

	* [r11307] Optimize `emaint` --fix binhost so that it the Packages
	  file isn't re-read and re-written for each package that's
	  updated. Instead, hold a lock for the whole time the command is
	  running and just update it once.

2008-08-01 02:22  zmedico

	* [r11306] Fix new rejects in cnf/make.conf.*.diff.

2008-08-01 02:09  zmedico

	* [r11305] Remove the list of FEATURES descriptions from
	  make.conf.example and replace it with a reference to the
	  make.conf(5) man page.

2008-08-01 01:44  zmedico

	* [r11304] Bug #229033 - Use `svn propget -R svn:keywords` to
	  detect which will have changed headers that require an additional
	  manifest commit. Thanks to Fabian Groffen for this patch which
	  I've made some modifications to: * For clarity, use separate
	  "no_expansion" variable for cvs bin blobs. * Fix svn keyword
	  parsing to properly handle multiple keywords delimited by
	  newlines.

2008-08-01 00:47  zmedico

	* [r11303] Bug #233487 - Fix --fetch-all-uri breakage:
	  
	  * Make --fetch-all-uri imply --fetchonly so that all the
	  --fetchonly conditionals apply to --fetch-all-uri as well.
	  
	  * Add an EbuildFetcher.fetchall attribute, and also add the
	  required support to portage.doebuild() for a "fetchall" phase
	  that EbuildFetcher can invoke in the background via the ebuild(1)
	  command.

2008-07-31 12:58  zmedico

	* [r11300] Fix DowngradeSet so it's safe for cases when no ebuild
	  is available.

2008-07-31 12:47  zmedico

	* [r11299] Bug #233253 - Implement a @downgrade set which selects
	  packages for which the highest visible ebuild version is lower
	  than the currently installed version. This is useful if you have
	  installed packages from an overlay and you want to downgrade to
	  the highest visible after removing the overlay, even though the
	  packages that will be dowgraded are not necessarily masked in any
	  way.

2008-07-31 11:44  zmedico

	* [r11298] Always invalidate results from
	  _userpriv_test_write_file_cache when adjusting permissions on a
	  given directory.

2008-07-31 10:37  zmedico

	* [r11297] Bug #233458 - Fix AsynchronousTask exit listener
	  handling so that an exit listener will never get called after
	  it's been passed into removeExitListener(), since the caller of
	  removeExitListener() needs to be able to be able to trust that
	  the given exit listener will not be called under any
	  circumstances.

2008-07-31 07:25  zmedico

	* [r11296] Describe InheritSet and OwnerSet.

2008-07-31 07:22  zmedico

	* [r11295] * Rename @live-ebuilds to @live-rebuild, for consistency
	  with the other *-rebuild sets. * Document the new sets.

2008-07-31 07:04  zmedico

	* [r11294] Remove quotes since the seem to cause incorrect results.

2008-07-31 06:11  zmedico

	* [r11293] Add a new @module-rebuild set which emulates the
	  behavior of the module-rebuild tool. The /lib/modules path is set
	  in sets.conf via a "files" attribute of an OwnerSet instance.
	  This can be easily used to define similar sets based on paths on
	  installed files.

2008-07-31 05:45  zmedico

	* [r11292] Implement a new @live-ebuilds which is generated from
	  installed packages that inherit from know live eclasses such as
	  cvs, darcs, git, mercurial, and subversion. The list of eclasses
	  is controlled by an "inherits" attribute that is configure in
	  sets.conf for and instance of InheritSet. This set serves a
	  purpose similar to the -scm ebuild suffix that has been proposed
	  in GLEP 54.

2008-07-31 04:51  genone

	* [r11291] disable default IONICE command as it breaks for
	  non-root, and ionice might not always be available

2008-07-31 03:46  zmedico

	* [r11290] Fixes in portage.fetch() for bugs #233303 and #94133:
	  
	  * Totally skip $DISTDIR creation if the fetch_to_ro feature is
	  enabled. * Don't touch $DISTDIR permissions unless unless usepriv
	  and/or userfetch are enabled. * When usepriv and/or userfetch are
	  enabled, test whether or not a process that has dropped
	  privileges is able to create a file in the directory, and only
	  adjust permissions if the test fails. * Completely

2008-07-31 00:59  zmedico

	* [r11289] Split out a _spawn_fetch() function that will be useful
	  for implementing a userpriv testcase for bug #233303.

2008-07-30 22:24  zmedico

	* [r11288] Bug #233421 - Fix grammar, missing "be" in --update
	  description. Thanks to Mikael Magnusson for this patch.

2008-07-30 09:21  zmedico

	* [r11284] Fix typo.

2008-07-30 09:04  zmedico

	* [r11283] Update foo[!bar=] syntax.

2008-07-30 08:45  zmedico

	* [r11282] * Fix Scheduler._restart_if_necessary() breakage so that
	  the given package is correctly compared to the last one in the
	  merge list. * Update code in depgraph.display() to be more
	  consistent with the code in Scheduler._is_restart_necessary().

2008-07-30 06:12  zmedico

	* [r11281] Remove redundant use dep validation code that's handled
	  by regular expression now.

2008-07-30 06:07  zmedico

	* [r11280] Remove unused variable.

2008-07-30 06:05  zmedico

	* [r11279] * Add more use dep validation. * Fix broken handling of
	  !foo? reported by ABCD.

2008-07-30 04:57  zmedico

	* [r11278] When checking for news items in --pretend mode, pass
	  update=False into the NewsManager.getUnreadItems() call. Emerge
	  shouldn't have to update anything anyway when in --pretend mode,
	  and this helps to avoid potential permission problems. In order
	  to pass the relevant information about options (--pretend state)
	  to the new code, supporting function parameters have been added
	  to display_news_notification(), post_emerge(), and
	  checkUpdatedNewsItems().

2008-07-30 03:33  zmedico

	* [r11277] Put a 5 second cap on the delay produced by
	  Scheduler._job_delay().

2008-07-30 03:17  zmedico

	* [r11276] Just return a boolean "state changed" value from
	  Scheduler._schedule_tasks_imp(), since the other "remaining" part
	  is now unused.

2008-07-30 03:07  zmedico

	* [r11275] * Optimize SequentialTaskQueue.schedule() by using a
	  _dirty attribute to track whether anything relevant has changed
	  since the last schedule call. Since we can always rely on exist
	  listeners being called, set of running tasks is always pruned
	  automatically and there is never any need to actively prune it. *
	  Remove the unused SequentialTaskQueue.auto_schedule feature.

2008-07-30 02:27  zmedico

	* [r11274] Change conditional USE deps syntax and expermental EAPI
	  from 2_pre0 to 2_pre1.
	  
	  Conditional syntax examples:
	  
	  Compact Form Equivalent Expanded Form
	  
	  foo[bar?] bar? ( foo[bar] ) !bar? ( foo ) foo[!bar?] bar? ( foo )
	  !bar? ( foo[-bar] ) foo[bar=] bar? ( foo[bar] ) !bar? ( foo[-bar]
	  ) foo[!bar=] bar? ( foo[-bar] ) !bar? ( foo[bar] )

2008-07-29 21:27  zmedico

	* [r11273] Count state changes in Scheduler._schedule_tasks() and
	  avoid some extra calls when nothing changes.

2008-07-29 20:52  zmedico

	* [r11272] Fix _choose_pkg() to always return something if nothing
	  is running or merging.

2008-07-29 20:24  zmedico

	* [r11271] Avoid triggering a tight loop AssertionError in
	  Scheduler._main_loop().

2008-07-29 19:54  zmedico

	* [r11270] Fix the last part of Scheduler._main_loop() to work
	  correctly now that all the queues have auto_schedule disabled.

2008-07-29 19:30  zmedico

	* [r11269] Disable auto_schedule on all of Scheduler._task_queues
	  and schedule them inside _schedule_tasks(). This should help
	  solve a tight loop.

2008-07-29 18:31  zmedico

	* [r11268] Add a quiet signal handler for SIGINT and SIGTERM since
	  emerge calls ebuild for fetchs and we don't want the user to see
	  a traceback due to the ebuild process getting killed.

2008-07-29 17:50  zmedico

	* [r11267] Fix Scheduler._set_digraph() to correctly handle cases
	  when max_jobs is True.

2008-07-29 17:13  zmedico

	* [r11266] Make sure Scheduler._choose_pkg() doesn't return a
	  package too early when there's no digraph and the previous merge
	  hasn't completed yet.

2008-07-29 16:51  zmedico

	* [r11265] Fix Scheduler._choose_pkg() so that it doesn't choose
	  packages prematurely in some cases.

2008-07-29 15:17  zmedico

	* [r11264] Enable Scheduler._job_delay() whenever --load-average is
	  enabled, for whole time the scheduler is running. This protects
	  against too many jobs being sheduled if the load average
	  temporarily drops.

2008-07-29 14:34  zmedico

	* [r11263] During the first minute of entering the main scheduler
	  loop, if --load-average is enabled then limit the rate that new
	  jobs are spawned, so that the load average measurement has time
	  to respond to the new load introduced by the new jobs. The time
	  between spawning new jobs is proportional to the number of
	  currently running jobs.

2008-07-29 13:01  zmedico

	* [r11262] Fix slightly broken loop logic in insert_optional_args()
	  by converting it to pop args off of a stack.

2008-07-29 12:05  zmedico

	* [r11261] Add support for the --jobs option to be specified
	  without an argument, and also support -j as a short option. Since
	  optparse doesn't natively support options with non-required args,
	  create an insert_optional_args() function that inserts the
	  required argument into the args so that optparse is happy. The
	  function inserts the string True as a substitute for the argument
	  that is required. This string is later converted to the True
	  constant when stored in the emerge opts dict (similar to how
	  normal boolean options are stored). The PollScheduler and
	  SequentialTaskQueue classes recognize the meaning of the True
	  constant to mean unlimited concurrent jobs.

2008-07-29 10:29  zmedico

	* [r11260] In apply_recursive_permissions(), ignore InvalidLocation
	  exceptions such as FileNotFound and DirectoryNotFound since
	  sometimes things disappear, like when adjusting permissions on
	  DISTCC_DIR.

2008-07-29 07:15  zmedico

	* [r11259] Tweak table alignment.

2008-07-29 07:10  zmedico

	* [r11258] Implement _use_dep.__nonzero__().

2008-07-29 06:44  zmedico

	* [r11257] Fix _use_dep.__str__() to work correctly in the case
	  when conditional USE deps have evaluated to nothing (empty string
	  rather than []). Thanks to ABCD for reporting.

2008-07-29 00:46  zmedico

	* [r11256] Redirect the FEATURES=buildsyspkg message to the log
	  when in background mode.

2008-07-28 22:59  zmedico

	* [r11255] Add syntax examples for unconditional USE deps.

2008-07-28 22:50  zmedico

	* [r11254] Fix alignment.

2008-07-28 22:36  zmedico

	* [r11253] Tweak the conditional USE deps examples.

2008-07-28 22:27  zmedico

	* [r11252] Document the doman language code path translation
	  extension from bug #222439.

2008-07-28 21:55  zmedico

	* [r11251] Make use of the new config.iteritems() method.

2008-07-28 21:46  zmedico

	* [r11250] Fix broken reference to "categories" in
	  CategorySet.singleBuilder(). Thanks to Thargor for reporting.

2008-07-28 21:31  zmedico

	* [r11249] Bug #233165 - When waiting for jobs and merges to finish
	  in Scheduler._main_loop(), keep scheduling the merge queue since
	  it doesn't autoschedule, and skip the poll loop if there no event
	  handlers due to synchronous merge tasks being the only things
	  left to do.

2008-07-28 20:00  zmedico

	* [r11245] Bug #233103 - In portage.fetch(), pass all config
	  variables instead of just those returned by the environ() method
	  which is filtered.

2008-07-28 19:48  zmedico

	* [r11244] Even though the message is split on $'\n' in
	  elog_base(), it's still not entirely safe to use it as a
	  delimiter in the log file since there can still be escaped
	  newlines that will be expanded due to the echo -e parameter.

2008-07-28 11:00  zmedico

	* [r11238] Remove pointless generator expression.

2008-07-28 08:52  zmedico

	* [r11236] Add note about support for EAPI="2_pre0".

2008-07-28 08:41  zmedico

	* [r11235] Create a table to document conditional USE dependency
	  syntax.

2008-07-28 07:51  zmedico

	* [r11234] Fix arg count when constructing a TypeError in the
	  SlotDict constructor.

2008-07-28 07:08  zmedico

	* [r11233] Add support for an new EAPI="2_pre0" value so that
	  people who want to test USE deps can set the EAPI to something
	  other than 0 or 1. We can support as many different experimental
	  EAPI values as we need, and drop support for them when the final
	  EAPI 2 is defined.

2008-07-28 06:43  zmedico

	* [r11232] Disable the multi-bracket USE deps syntax, so only the
	  comma separated syntax is now valid.

2008-07-28 05:52  zmedico

	* [r11231] Implement new conditional USE dep syntax:
	  
	  Conditional evaluation behavior:
	  
	  parent state conditional result
	  
	  x x? x -x x? x -x? -x -x? -x
	  
	  x x= x -x x= -x x x!= -x -x x!= x
	  
	  Conditional syntax examples:
	  
	  compact form equivalent expanded form
	  
	  foo[bar?] foo bar? ( foo[bar] ) foo[-bar?] foo !bar? ( foo[-bar]
	  ) foo[bar=] foo bar? ( foo[bar] ) !bar? ( foo[-bar] ) foo[bar!=]
	  foo bar? ( foo[-bar] ) !bar? ( foo[bar] )

2008-07-28 05:34  zmedico

	* [r11230] Create a SlotDict constructor which can take an optional
	  positional arg that is passed to the update() method (similar to
	  the dict constructor), and also pass keyword arguments into the
	  update() method if any are given. This makes it possible to use
	  the constructor similarly to the way that the _emerge.SlotObject
	  constructor is used.

2008-07-28 01:42  zmedico

	* [r11229] * Add support in dep_getusedeps() and isvalidatom() for
	  comma separated USE deps that only have one set of square
	  brackets. * Add test cases for the new comma separated USE deps
	  syntax.

2008-07-28 01:05  zmedico

	* [r11228] Bug #233137 - Implement Atom.split().

2008-07-27 23:30  zmedico

	* [r11227] Fix incorrect logging.exception() arguments. The
	  exception instance is not supposed to be passed into this
	  function.

2008-07-27 23:09  zmedico

	* [r11226] Fix the new glep56 code to handle missing metadata.xml.
	  Thanks to jmbsvicetto for reporting.

2008-07-27 14:23  zmedico

	* [r11223] Fix EbuildFetcher to pass all config variables to the
	  fetcher so things like http_proxy are included.

2008-07-27 14:13  zmedico

	* [r11222] Update path to make.conf.example. Thanks to Arfrever.

2008-07-27 14:10  zmedico

	* [r11221] Use ${NORMAL} to properly restore color when necessary.

2008-07-27 14:07  zmedico

	* [r11220] Make elog_base() just use \n as the delimiter in the
	  file since it's safe now that lines are always split.

2008-07-27 13:59  zmedico

	* [r11219] Make all the elog functions split lines when displaying
	  output, just like elog_base() does when saving it.

2008-07-27 13:31  zmedico

	* [r11218] Add support to elog_base() to split messages on newlines
	  automatically. Thanks to Arfrever for the suggestion.

2008-07-27 12:24  zmedico

	* [r11217] Fix breakage from r11213 in INHERITED values returned
	  from portdbapi.aux_get().

2008-07-27 12:02  zmedico

	* [r11216] Fixes from Arfrever: * Highlight the "Files built
	  without respecting LDFLAGS" QA Notice with red. * Remove
	  scanelf-ignored-LDFLAGS.log when empty.

2008-07-27 11:31  zmedico

	* [r11213] Serialize src_unpack() $DISTDIR access for live ebuilds
	  since otherwise they can interfere with eachother. This will have
	  to rely on a hardcoded list of eclasses until we create way to
	  properly tag this information in the metadata.

2008-07-27 10:42  zmedico

	* [r11210] * Define a frozenset of live eclasses for the
	  LIVEVCS.stable check. * Add "mercurial" to the list of known live
	  eclasses.

2008-07-27 10:23  zmedico

	* [r11209] Fix repoman not seeing subversion auto-ignored files
	  (such as patch rejects and editor backup copies), thereby causing
	  messed up Manifests. This fix should be merged in the trunk.
	  (branches/prefix r11208)

2008-07-27 06:02  zmedico

	* [r11206] Temporarily `set -o noglob` when splitting QA_DT_HASH.

2008-07-27 05:08  zmedico

	* [r11205] Bug #233077 - Add QA check which verifies that LDFLAGS
	  are respected. For now this only works when LDFLAGS contains
	  --hash-style=gnu since in this case the the elf files should not
	  contain .hash sections and we can use scanelf to check whether or
	  not the those sections exist. This adds a QA_DT_HASH variable
	  that is analogous to existing QA control variables documented in
	  the ebuild.5 man page. There is also a complementary
	  QA_STRICT_DT_HASH variable that can be set in make.conf in order
	  to ignore QA_DT_HASH settings in ebuilds. Thanks to Arfrever
	  Frehtes Taifersar Arahesis for this patch which I've tweaked in
	  just a few minor ways.

2008-07-27 02:23  zmedico

	* [r11204] Schedule ebuild pkg_setup phases on the merge queue, in
	  order to serialize unsandboxed access to the live filesystem.

2008-07-27 02:16  zmedico

	* [r11203] In PollScheduler._poll(), add a call to _schedule() in
	  order to ensure that event handlers are registered if possible.
	  If not, raise StopIteration in order to avoid endless blocking in
	  a poll call with no file descriptors registered. Add
	  StopIteration exception handling for all
	  PollScheduler._poll._next_poll_event() calls.

2008-07-27 01:31  zmedico

	* [r11202] Fix AsynchronousTask.removeStartListener() and
	  removeExitListener() to return early if there are no listeners.

2008-07-26 11:33  zmedico

	* [r11200] Fix LinkageMap.findConsumers() to check whether the
	  master link for a lib providing a given soname actually points to
	  that lib. If there is another version of this lib with the same
	  soname and the master link points to that other version, this lib
	  will be shadowed and won't have any consumers. By eliminating
	  false, positives this way, we avoid the following state after
	  upgrade from media-libs/mesa-7.0.3 to media-libs/mesa-7.1_rc3:
	  
	  # scanelf -S /usr/lib64/libGLU.so* TYPE SONAME FILE ET_DYN
	  libGLU.so.1 /usr/lib64/libGLU.so ET_DYN libGLU.so.1
	  /usr/lib64/libGLU.so.1 ET_DYN libGLU.so.1
	  /usr/lib64/libGLU.so.1.3 ET_DYN libGLU.so.1
	  /usr/lib64/libGLU.so.1.3.070003 ET_DYN libGLU.so.1
	  /usr/lib64/libGLU.so.1.3.070100 <- shadowed lib
	  
	  Thanks to Diego "Flameeyes" Pettenò for reporting this issue.

2008-07-26 10:31  zmedico

	* [r11199] * Use pure bash ${PARAMETER%/*} instead of
	  spawing`dirname`. * Break out of loop as early as possible when
	  searching for libs in ${D}.

2008-07-26 09:33  zmedico

	* [r11198] Split out an apply_priorities() function to apply nice
	  and ionice settings.

2008-07-26 07:56  zmedico

	* [r11197] Bug #232924 - When the user specifies a non-existent
	  set, display a list of existing sets.

2008-07-26 07:22  zmedico

	* [r11196] Bug #228085 - In the event of a file collision, the
	  explanation about the collision and how to solve it may not be
	  visible via a scrollback buffer, especially if the number of file
	  collisions is large. Therefore, show a summary at the end and
	  refer the user to the elog messages.

2008-07-26 06:36  zmedico

	* [r11195] Replace hardcoded i386 machine name in dyn_rpm() with
	  the result of `uname -m`.

2008-07-26 06:17  zmedico

	* [r11194] * For bug 227625, automatically create the
	  /usr/src/rpm/SOURCES directory when necessary.
	  
	  * Add `cd "${T}"` at the beginning of dyn_rpm() since the spec
	  file is written to $PWD.

2008-07-26 04:20  zmedico

	* [r11193] Reduce the default PORTAGE_IONICE_COMMAND priority to
	  "idle" priority since it's probably suitable for most people.
	  This way, even when the IO load is very high, the impact on
	  system responsiveness should be practically unnoticeable.

2008-07-25 22:59  zmedico

	* [r11192] Add PORTAGE_IONICE_COMMAND setting for make.conf which
	  is called to adjust IO priority on portage and it's subprocesses.

2008-07-25 22:48  zmedico

	* [r11191] Suppress "for /" and "to /" in status messages when
	  ROOT=/. Thanks to Thargor for the suggestion.

2008-07-25 21:36  zmedico

	* [r11190] Fix PORTAGE_BIN_PATH typo in EbuildFetcher._start().

2008-07-25 21:04  zmedico

	* [r11188] Detect an invalid cpv passed into portdbapi.findname2()
	  and raise an InvalidPackageName exception. This avoids silent or
	  nonsense errors later on.

2008-07-25 00:12  zmedico

	* [r11185] Cancel prefetchers if they're the only reason the main
	  poll loop is still running.

2008-07-24 23:05  zmedico

	* [r11184] When in background mode and there is a single failure,
	  dump the whole build log for convenience.

2008-07-24 22:16  zmedico

	* [r11183] * Refer user to make.conf(5) if PORTAGE_IONICE_COMMAND
	  fails. * Document that PORTAGE_IONICE_COMMAND can be disabled by
	  setting it to an empty string.

2008-07-24 14:43  zmedico

	* [r11182] Bug #206773 - Add a new PORTAGE_IONICE_COMMAND variable
	  that emerge uses to adjust ionice priority, similar to
	  PORTAGE_NICENESS but used more like FETCHCOMMAND since so that
	  portage doesn't have to know anything about ionice options. The
	  command should include a \${PID} place-holder to be substituted
	  with an integer pid.

2008-07-24 11:40  zmedico

	* [r11181] Bug #228117 - Insert a trailing newline in the
	  getconfig() input file as necessary to avoid a silent error in
	  shlex that is triggered by a source statement at the end of the
	  file without a trailing newline after the source statement. To
	  solve this problem, derive a special file class that inserts a
	  newline just before eof when necessary.

2008-07-23 21:27  zmedico

	* [r11179] Fix bug in get_repo_path() when called with multiple
	  args.

2008-07-23 20:23  zmedico

	* [r11178] Fix typo, found by pyflakes.

2008-07-23 20:04  zmedico

	* [r11177] Avoid "0 files checked ..." messages reported by Pesa.

2008-07-23 19:48  zmedico

	* [r11176] Fix --depclean/--prune regressions reported by selkin:
	  
	  * Make --with-bdeps default to "y" for removal actions.
	  
	  * Treat unsatisfied build time dependencies as "soft" for removal
	  actions, even when --with-bdeps=y.

2008-07-23 12:33  zmedico

	* [r11175] Add sandbox write access to PORTAGE_PYM_PATH before
	  importing portage in order to avoid sandbox violations after
	  python upgrade.

2008-07-23 07:23  zmedico

	* [r11173] Add GENTOO_MIRRORS to the variables exported by
	  EbuildFetcher.

2008-07-23 05:46  zmedico

	* [r11170] Make --fetchonly disable background mode.

2008-07-22 15:02  zmedico

	* [r11169] Handle UnsatisfiedResumeDep in
	  Scheduler._calc_resume_list().

2008-07-22 13:29  zmedico

	* [r11168] Update --depclean and --prune, removing warnings about
	  libraries since those are now automatically accounted for.

2008-07-22 12:24  zmedico

	* [r11167] In dblink.unmerge(), redirect preserve-libs "!needed"
	  messages to the log file when in background mode.

2008-07-22 06:39  zmedico

	* [r11166] Fix resume_depgraph() so that it doesn't raise an
	  AssertionError due to unsatisfied PDEPEND.

2008-07-22 04:09  zmedico

	* [r11165] Show the number of failed packages in the status
	  display.

2008-07-22 03:58  zmedico

	* [r11164] Redirect build log eqawarn messages to the log file when
	  in background mode.

2008-07-22 03:42  zmedico

	* [r11163] Disable "Installing" status messages when in --pretend
	  or --buildpkgonly mode.

2008-07-22 03:25  zmedico

	* [r11162] Make --pretend disable background mode and imply
	  --jobs=1.

2008-07-22 02:02  zmedico

	* [r11161] Redirect dblink._preserve_libs() messages to the log
	  when in background mode.

2008-07-22 00:35  zmedico

	* [r11160] Adjust status messages for --fetchonly mode.

2008-07-22 00:24  zmedico

	* [r11159] Adjust --fetchonly failure messages to work better with
	  background mode.

2008-07-21 23:15  zmedico

	* [r11158] Fix --depclean/--prune to add lib providers and their
	  dependencies to the graph and create a new clean list when
	  necessary. This completes the fix for bug #230053.

2008-07-21 13:19  zmedico

	* [r11157] Add initial lib awareness for --depclean and --prune.
	  Currently it will simply bail out if the clean list contains a
	  package that will cause link breakage if removed. TODO: Calculate
	  a new cleanlist instead of bailing out, and implement a package
	  set for rebuilding consumers.

2008-07-21 10:29  zmedico

	* [r11156] In dblink.findProviders(), clone the "path" variable
	  before extending it since obviously it shouldn't grow each time
	  that findProviders() is called.

2008-07-21 06:08  zmedico

	* [r11155] In dblink._preserve_libs(), strip leading $ROOT from
	  contents paths so that it works when $ROOT != /.

2008-07-21 02:39  zmedico

	* [r11154] Fix breakage in the depclean/prune unsatisfied deps
	  handling.

2008-07-21 02:29  zmedico

	* [r11153] Fix typo.

2008-07-21 02:20  zmedico

	* [r11152] For --depclean and --prune, eliminate duplicate graph
	  creation code by re-using the depgraph class to do it. The
	  depgraph class was used in the past for this purpose but back
	  then it didn't handle USE flags correctly for installed packages.
	  Now it works fine.

2008-07-21 00:26  zmedico

	* [r11151] Redirect the 'Recording <pkg> in "world" favorites
	  file...' message through _status_msg().

2008-07-20 22:30  zmedico

	* [r11150] Fix broken references to the old elog_modules namespace.

2008-07-20 05:01  zmedico

	* [r11147] Redirect some more unmerge() output through
	  writemsg_level() so that it can filtered out when in background
	  mode.

2008-07-20 02:38  zmedico

	* [r11146] Fix Scheduler emergelog() interaction to properly
	  disable emergelog() xterm titles whenever the status display is
	  enabled.

2008-07-20 01:16  zmedico

	* [r11145] * Clean up _schedule_tasks_imp() a bit. * Make _task()
	  access _background directly instead of as a parameter.

2008-07-20 01:00  zmedico

	* [r11144] Make PollScheduler._poll() add poll events to the stack
	  instead of returning them. This makes it more useful as a hook,
	  allowing Scheduler._poll() to safely call _schedule().

2008-07-19 15:09  zmedico

	* [r11143] Merge tasks currently run synchronously which makes it
	  necessary to disable auto_schedule on the merge queue in order to
	  avoid excess recursion which prevents tasks from being marked
	  complete as soon as they should be.

2008-07-19 13:56  zmedico

	* [r11142] Fix Scheduler._schedule_tasks_imp() so that it never
	  indicates that there are remaining tasks in cases when it's
	  supposed to bail out due to a package failure.

2008-07-19 13:22  zmedico

	* [r11141] Calling _schedule() from Scheduler._poll() is unsafe
	  since the _schedule() call itself can consume poll events.
	  Therefore, until a safe way exists, don't do it.

2008-07-19 12:30  zmedico

	* [r11140] Use the memoized _choose_pkg() result to return earlier
	  from _schedule_tasks() when possible.

2008-07-19 12:25  zmedico

	* [r11139] When Scheduler._choose_pkg() is unable to find a
	  package, memoize the result until at least one of the existing
	  jobs completes.

2008-07-19 11:46  zmedico

	* [r11138] Bug #231464 - Replace erroneous "return" statement in
	  elog_process() with a continue statement. Thanks to TGL for this
	  patch.

2008-07-19 10:55  zmedico

	* [r11137] Instead of calling _background_mode(), use the cached
	  result.

2008-07-19 10:28  zmedico

	* [r11136] Fix JobStatusDisplay._init_term() to supply default
	  codes in cases when curses.tigetstr() returns None.

2008-07-19 10:07  zmedico

	* [r11135] * Call self._schedule() from inside Scheduler._poll().
	  This ensures that new jobs can scheduled as soon a the load
	  average is low enough, and one of the running jobs doesn't have
	  to complete for _schedule() to get called.
	  
	  * Cache the result of _background_mode() so it doesn't have to be
	  called inside _schedule(), since this method is called a lot more
	  often now.
	  
	  * Move background related state adjustments into
	  _background_mode().
	  
	  * Call _status_display.display() unconditionally inside
	  _schedule_tasks(), since we want to update the display to show
	  current load average even if no new jobs are added.

2008-07-19 07:33  zmedico

	* [r11134] Fix typos.

2008-07-19 07:24  zmedico

	* [r11133] Add a Scheduler._background_mode() method to control
	  background mode, and trigger it if either --quiet is enabled or
	  --jobs > 1.

2008-07-19 05:37  zmedico

	* [r11132] Display "Verifying ebuild manifests" and "Starting
	  parallel fetch" via the status display instead of directly to
	  stdout.

2008-07-19 04:30  zmedico

	* [r11131] Add a hook in Scheduler._poll() that updates the display
	  once every 2 seconds if stdout is a tty, so that the load average
	  numbers are always current.

2008-07-19 03:46  zmedico

	* [r11130] Make all poll() calls pass through
	  PollScheduler._poll().

2008-07-19 03:25  zmedico

	* [r11129] When JobStatusDisplay.displayMessage() is called while
	  the status is currently displayed, call display() after showing
	  the given message.

2008-07-19 03:18  zmedico

	* [r11128] Add support to JobStatusDisplay() to update the current
	  line on the terminal, which in the future can be used to erase
	  the line and update it with new information such as the latest
	  load average measurement. This uses curses to obtain the simple
	  control codes that are needed, and has fallback codes in case the
	  curses module is unavailable or raises an error. When stdout is
	  not a tty then the line erasing behavior is automatically
	  disabled and display updates are simply show on a new line.

2008-07-19 00:37  zmedico

	* [r11127] Add a MergeListItem.statusMessage(msg) callback for
	  displaying messages like "Building this" or "Installing that".
	  This delegates the resposibility of generating \r and \n control
	  characters, to guarantee that lines are created or erased when
	  necessary and appropriate. TODO: Make JobStatusDisplay display
	  the output.

2008-07-18 12:40  zmedico

	* [r11126] Bug #199788 - Make repoman parse GLEP 56 USE flag
	  descriptions from metadata.xml (in addition to use.local.desc).
	  Thanks to Doug Goldstein <cardoe@g.o> for this patch.

2008-07-18 08:56  zmedico

	* [r11124] Fix typo.

2008-07-18 07:47  zmedico

	* [r11123] Suppress counter initialization warning messages in
	  vardbapi.get_counter_tick_core() in cases when the vdb is empty.
	  This avoids pointless error messages when merging packages into a
	  new root, like when building stage 1.

2008-07-18 03:45  zmedico

	* [r11122] Add background output redirection and async ebuild phase
	  support for PackageUninstall (automatic uninstalls that solve
	  blockers).

2008-07-18 01:42  zmedico

	* [r11121] Change package status messages to give more accurate
	  information about what is happening at a given time:
	  
	  * Change "Emerging" messages to "Building" for ebuilds and
	  "Extracting" for binary packages.
	  
	  * Change "Merging" messages to "Installing" and "Uninstalling".

2008-07-18 00:52  zmedico

	* [r11120] In dblink._dblink_display_merge(), when in background
	  mode and no log is available, suppress output when level <
	  logging.WARNING. This hides ">>> Regenerating
	  /etc/ld.so.cache..." messages that appear after postrm when
	  PORT_LOGDIR is unset (the log file if it exists is removed after
	  postrm so there's no place to log the message).

2008-07-18 00:34  zmedico

	* [r11119] Use dblink._eerror() to eliminate duplicate code.

2008-07-18 00:13  zmedico

	* [r11118] If an problem is detected in dblink._security_check(),
	  log it via elog so that it's properly displayed in the foreground
	  even when in background mode.

2008-07-17 23:53  zmedico

	* [r11117] Redirect dblink elog messages from stdout to the log
	  file when in background mode. This is implemented by adding a new
	  "out" parameter to the portage.elog.e* functions, which can be
	  used to send output to an arbitary file instead of stdout.

2008-07-17 22:41  zmedico

	* [r11116] When dblink is looping over files for merge/unmerge,
	  temporarily yield to the scheduler each time a fixed number of
	  files are processed (currently 20). This gives the scheduler an
	  opportunity to service pending poll events. This is implemented
	  with a new PollScheduler._schedule_yield() method which calls
	  poll() exactly once, without blocking, and any services any
	  resulting poll events.

2008-07-17 16:11  zmedico

	* [r11115] Also, reset "merges" in JobStatusDisplay.reset().

2008-07-17 16:09  zmedico

	* [r11114] Initialize JobStatusDisplay.merges since it's not
	  initialized with the bound properties anymore.

2008-07-17 16:05  zmedico

	* [r11113] Also, don't count "merges" as changes in the status
	  display.

2008-07-17 16:04  zmedico

	* [r11112] Since it's not very interesting, disable the "merges"
	  part of status display.

2008-07-17 14:21  zmedico

	* [r11111] Fix identation (tabnanny complains about this)
	  branches/prefix r11110

2008-07-17 14:01  zmedico

	* [r11107] Reformat the status display. Here's an example:
	  
	  >>> Jobs: 0 of 2 complete, 2 running Load average: 2.9, 2.4, 2.0
	  >>> Jobs: 0 of 2 complete, 1 running, 2 merges Load average: 2.8,
	  2.4, 2.0 >>> Jobs: 2 of 2 complete Load average: 2.6, 2.3, 2.0

2008-07-17 13:08  zmedico

	* [r11105] Don't show "Merging" and "merged." messages when in
	  background mode.

2008-07-17 13:02  zmedico

	* [r11104] Make Binpkg send "Extracting" messages to the log file
	  when in background mode, instead of stdout.

2008-07-17 12:21  zmedico

	* [r11103] Update the status display in _build_exit(), after
	  decrementing the job count.

2008-07-17 11:39  zmedico

	* [r11102] Make BinpkgVerifier redirect output to the fetch log
	  when in background mode.

2008-07-17 11:21  zmedico

	* [r11101] Don't show a blank newline before ">>> Emerging" when in
	  background mode.

2008-07-17 10:57  zmedico

	* [r11100] Handle the case in dblink.unmerge() when the log file is
	  a temp file and so it doesn't exist after postrm cleaning.

2008-07-17 10:40  zmedico

	* [r11099] Tweak interaction between Scheduler and status display
	  so that it doesn't display more often than necessary and avoids
	  showing inconsistent counts.

2008-07-17 10:11  zmedico

	* [r11098] * Add a new portage.util.writemsg_level() function which
	  uses a "level" parameter to control whether the message is sent
	  to stdout or stderr. When level >= logging.WARNING then the
	  message is sent to stderr, otherwise it is sent to stdout. The
	  noiselevel is passed directly to writemsg().
	  
	  * Use writemsg_level() for handling merge messages from dblink
	  and add appropriate noiselevel values to each call.
	  
	  * Add a writemsg_level parameter to portage.env_update() so that
	  dblink can pass in dblink._display_merge() as a means to redirect
	  output back to the scheduler for appropriate handling when
	  running in the background.

2008-07-17 09:57  zmedico

	* [r11097] Don't increment the "complete" count for uninstall
	  tasks.

2008-07-17 08:57  zmedico

	* [r11096] Add a JobStatusDisplay class to encapsulate the status
	  display. This object tracks whether or not any of it's attributes
	  have changed since the last time it was displayed, so the it's
	  only displayed when something has changed. Unlike before, now the
	  display should always update whenever a relevant change occurs.

2008-07-17 06:31  zmedico

	* [r11095] In SequentialTaskQueue.clear(), remove the exit listener
	  from each task before cancelling it.

2008-07-17 04:50  zmedico

	* [r11094] Add the new --anon option to the getopt args.

2008-07-17 04:20  zmedico

	* [r11093] When SpawnProcess._start() spawns a process in the
	  background, use /dev/null so that any attempts to read from stdin
	  will immediately return EOF instead of blocking indefinitely.
	  TODO: Use job control functions like tcsetpgrp() to control
	  access to stdin.

2008-07-17 03:52  zmedico

	* [r11092] Eliminate duplicate code by making EbuildProcess inherit
	  from SpawnProcess instead of SubProcess.

2008-07-16 21:57  zmedico

	* [r11091] Add --anon to the usage message.

2008-07-16 21:52  zmedico

	* [r11090] Add --anon option for anonsvn.gentoo.org users.

2008-07-16 21:11  zmedico

	* [r11089] Remove TODO since it no longer exists.

2008-07-16 20:43  zmedico

	* [r11088] Avoid raising an IndexError from
	  deprecated_profile_check() if the deprecated file happens to be
	  empty. Instead just refer to the "Gentoo Upgrading Guide". Thanks
	  to armin76 for reporting.

2008-07-16 08:47  zmedico

	* [r11076] Pass background=True into prefetcher constructors.

2008-07-16 08:37  zmedico

	* [r11075] Add a progress counter showing "x of y complete" to
	  Scheduler._display_status().

2008-07-16 07:38  zmedico

	* [r11073] * Add xterm titles support to
	  Scheduler._display_status(). * Tweak emergelog() so that it won't
	  interfere with the scheduler summary.

2008-07-16 07:09  zmedico

	* [r11072] Add async support for calling functions in
	  misc-functions.sh:
	  
	  * Create a new MiscFunctionsProcess class derived from
	  SpawnProcess.
	  
	  * Add "background" support to the SpawnProcess class and split
	  out a _spawn() template function so MiscFunctionsProcess can
	  override it.
	  
	  * Rename the existing EbuildPhase class to EbuildProcess.
	  
	  * Create a new EbuildPhase class derived from CompositeTask. This
	  class spawns the EbuildProcess and MiscFunctionsProcess classes
	  as sub-tasks.

2008-07-16 03:32  zmedico

	* [r11071] Remove the config._filter_calling_env attribute since
	  it's not really needed. Replace it with an simple
	  os.path.exists() call inside config.environ().

2008-07-16 02:38  zmedico

	* [r11070] Show LDFLAGS in emerge --info <pkg> output. Thanks to
	  dirtyepic for this patch.

2008-07-16 01:42  zmedico

	* [r11069] Pass the whole dblink instance into
	  Scheduler._dblink_display_merge() in case it's ever needed.

2008-07-16 01:37  zmedico

	* [r11068] Redirect dblink.merge() output to the log file when
	  --jobs > 1.

2008-07-16 01:15  zmedico

	* [r11067] Make dblink._display_merge() detect scheduler presence
	  internally.

2008-07-16 01:09  zmedico

	* [r11066] Adapt the dblink merge display callback to use log
	  levels from the logging module so that it can be used as an
	  interface for both writemsg() and writemsg_stdout().

2008-07-16 00:44  zmedico

	* [r11065] Redirect dblink.unmerge() output to the log file when
	  --jobs > 1.

2008-07-16 00:11  zmedico

	* [r11064] When --jobs > 1, display a status message each time that
	  Scheduler._schedule_tasks() is called. For example:
	  
	  >>> Jobs: 2 running, 0 merges, load average: 0.34, 0.46, 0.27

2008-07-15 23:19  zmedico

	* [r11063] Add some cross references between emerge's new parallel
	  build options and MAKEOPTS.

2008-07-15 22:31  zmedico

	* [r11062] Make EbuildFetcher copy FETCHCOMMAND and RESUMECOMMAND
	  to the fetch environment, in case the default values have been
	  overridden.

2008-07-15 21:17  zmedico

	* [r11061] In Scheduler._restart_if_necessary(), use list.remove()
	  instead of assuming that portage is first in the resume list.

2008-07-15 10:45  zmedico

	* [r11057] Since lots of packages will have to be fixed before
	  stable portage can abort with "this code is not 64bit clean",
	  convert the die call to an eerror message instructing the user to
	  file a bug at bugs.gentoo.org. This should allow us to stabilize
	  portage-2.2 without having to ensure that the entire stable tree
	  is 64 bit clean first.

2008-07-15 09:50  zmedico

	* [r11056] When packages fail with --jobs > 1 and the "echo" elog
	  module is not enabled, emulate elog's mod_echo module to show the
	  'error' level messages, which should include the important die
	  message. This is implemented by adding a private hook inside
	  elog_process() which the scheduler uses to collect error
	  messages.

2008-07-15 08:58  zmedico

	* [r11055] When there is more than one failure, show a summary
	  packages that failed to build or install. This is especially
	  useful when using --jobs or --keep-going since there can be
	  multiple failures.

2008-07-15 08:28  zmedico

	* [r11054] * Fix --keep-going breakage that occured when
	  Scheduler._choose_pkg() was introduced.
	  
	  * Handle multiple failed builds when buildinding in parallel.
	  
	  * Fix Scheduler._do_merge_exit() to remove the correct package
	  since it's not always at position 0 when using --jobs.
	  
	  in parallel, so

2008-07-15 03:03  zmedico

	* [r11053] Make AsynchronousTask "registered" attributes private
	  since poll() and wait() do the job now. Also, hide
	  SubProcess.files since there's no reason to expose it.

2008-07-15 02:49  zmedico

	* [r11052] Use self.registered to return early from
	  SubProcess.poll() when possible, and remove the related code from
	  SequentialTaskQueue.schedule() since this makes it obsolete.

2008-07-15 02:11  zmedico

	* [r11051] Add a PollScheduler._next_poll_event() method to
	  maintain a central event queue between _poll_loop() and
	  _schedule_wait(). This solves an intermittent KeyError from
	  _poll_loop() which occured when an event handler called
	  _schedule_wait() which unregistered an event handler for an event
	  that _poll_loop() had already recieved but hadn't processed yet.

2008-07-15 00:50  zmedico

	* [r11050] Split out a _main_loop_cleanup() method from
	  Scheduler._merge() and call it before restarting in
	  _restart_if_necessary() to kill any parallel-fetch tasks that may
	  still be running.

2008-07-14 23:31  zmedico

	* [r11049] Split out a generic SubProcess._unregister() method
	  that's called from _wait() to make sure everything is cleaned up
	  before wait() returns. This might solve an intermittent KeyError
	  that is sometimes raised from the main poll() loop when a handler
	  is no longer registered for a poll() event that has occurred.

2008-07-14 09:00  zmedico

	* [r11047] Unregister from poll() objects before closing file in
	  order to hopefully avoid stale events that can trigger a KeyError
	  in Scheduler._poll_loop() if the event's file descriptor no
	  longer has a registered handler.

2008-07-14 06:48  zmedico

	* [r11046] Call prepare_build_dirs() prior to pkg_preinst so that
	  logging works properly.

2008-07-14 06:38  zmedico

	* [r11045] * Fix doebuild so "returnpid" works for preinst and
	  postinst. * Add async support for pkg_prerm and pkg_postrm. * Add
	  missing "treetype" parameter to dblink constructor calls. * Fix
	  SubProcess._wait() to check self.returncode _after_ calling the
	  scheduler.

2008-07-14 03:47  zmedico

	* [r11044] Add async execution support for pkg_preinst and
	  pkg_postinst. This allows the scheduler's poll loop to run so
	  that other parallel tasks aren't starved for output handling
	  while pkg_preinst and pkg_postinst are executing.

2008-07-13 23:25  zmedico

	* [r11043] Remove redundant failed_packages check from
	  Scheduler._main_loop() since it's now handled inside the
	  _schedule() call.

2008-07-13 22:13  zmedico

	* [r11042] Ensure that that Scheduler._main_loop() doesn't return
	  before the merge queue is empty.

2008-07-13 13:38  zmedico

	* [r11040] Remove all traces of the "poll" parameter for the
	  PollScheduler constructor since it was only used by
	  can_poll_pty().

2008-07-13 13:24  zmedico

	* [r11039] * Since can_poll_pty() is unsafe due to he possibility
	  of the poll() call blocking forever, replace it with a simpler
	  test on /dev/null that's derived from a test in a glib2 configure
	  script.
	  
	  * Remove PtyReaderTestCase since it has the same problem as
	  can_poll_pty().

2008-07-13 11:54  zmedico

	* [r11037] In can_poll_tty(), direct bash's stderr into the pty
	  since we don't want so see any error message it generates (due to
	  PipeReader closing it's end of the pty). The error message is
	  irrelevant since all we want to know is whether or not the data
	  is successfully transmitted through the pty.

2008-07-13 07:34  zmedico

	* [r11035] Changes to pym/_emerge/__init__.py from the previous
	  commit weren't meant to be committed yet.

2008-07-13 07:30  zmedico

	* [r11034] Fix broken binpkg path comparison in in
	  binarytree.inject() so that duplicate entries are correctly from
	  the Packages index.

2008-07-13 05:29  zmedico

	* [r11033] In order to avoid having BlockerDB instantiate a new
	  FakeVartree for each merge, add a FakeVartree.sync() method and
	  so that the same FakeVartree can be reused. Package counters and
	  timestamps are used to validate package instances during each
	  sync() call.

2008-07-13 04:30  zmedico

	* [r11032] Fix Scheduler._schedule_tasks() so that it never
	  schedules a task when a package has already failed.

2008-07-13 01:10  zmedico

	* [r11031] Decrement the job count prior to merging a given package
	  (after it's been built or extracted). This will allow additional
	  jobs to spawn sooner in some cases when there may be idle
	  resources.

2008-07-12 23:45  zmedico

	* [r11030] * Wrap calls to PollScheduler._schedule_tasks() with a
	  _schedule() method that automatically returns early from any
	  recursive calls that the _schedule_tasks() call might trigger.
	  This makes _schedule() safe to call from inside exit listeners.
	  
	  * Call _schedule() inside Scheduler._job_exit() to trigger a new
	  job when possible.
	  
	  * Fix SequentialTaskQueue._task_exit() to avoid a potential
	  KeyError if the task had already been removed from
	  self.running_tasks for some reason.

2008-07-12 23:19  zmedico

	* [r11029] Rename PollScheduler._schedule() to _schedule_wait().

2008-07-12 22:54  zmedico

	* [r11028] Remember to close file descriptors before returning
	  early from can_poll_pty().

2008-07-12 11:52  zmedico

	* [r11027] Add missing self.wait() calls when tasks return
	  unsuccessfully.

2008-07-12 11:36  zmedico

	* [r11026] Set self._mergelist inside Scheduler._calc_resume_list()
	  since it needs to be set when calling _set_digraph().

2008-07-12 10:17  zmedico

	* [r11025] Implement a runtime test that checks whether it's
	  possible to use poll() to read data from a pty device. The test
	  only runs the first time that the can_poll_pty() function is
	  called (currently happens when the first PollScheduler instance
	  is created). The test is known to fail on Darwin and we're not
	  sure how many other kernels might have a similar problem, this
	  runtime test allows us to avoid having to maintain special cases
	  for various kernels.

2008-07-12 08:43  zmedico

	* [r11024] Split out a portage._create_pty_or_pipe() function to
	  avoid duplicate code.

2008-07-12 07:32  zmedico

	* [r11023] Derive a PtyReaderTestCase from PipeReaderTestCase. This
	  test is expected to fail on some operating systems such as Darwin
	  that do not support poll() on pty devices.

2008-07-12 06:22  zmedico

	* [r11022] Create a test case for the poll loop which uses the loop
	  to read data from a pipe and assert that the data written to the
	  pipe is identical to the data read from the pipe. In order to
	  implement this test, several useful classes have been added:
	  
	  * PipeReader
	  
	  Reads output from one or more files and saves it in memory, for
	  retrieval via the getvalue() method. This is driven by the
	  scheduler's poll() loop, so it runs entirely within the current
	  process.
	  
	  * QueueScheduler
	  
	  Add instances of SequentialTaskQueue and then call run(). The
	  run() method returns when no tasks remain.
	  
	  * TaskScheduler
	  
	  A simple way to handle scheduling of AsynchrousTask instances.
	  Simply add tasks and call run(). The run() method returns when no
	  tasks remain.

2008-07-12 01:58  zmedico

	* [r11021] * Add a digraph.get() method, analogous to dict.get(),
	  used to simplify Scheduler._pkg().
	  
	  * Define digraph.__contains__ for containment tests via the "in"
	  operator.

2008-07-12 00:03  zmedico

	* [r11020] For subclasses of Task, explicitly assign __hash__ =
	  Task.__hash__ for compatibility with python-2.6_beta. Thanks to
	  Arfrever for reporting.

2008-07-11 22:40  zmedico

	* [r11019] Fix SpawnProcess.start() to return early and notify exit
	  listeners if the spawn call fails.

2008-07-11 21:28  zmedico

	* [r11018] Fix a few typos found with pyflakes. Thanks to Cardoe
	  for reporting.

2008-07-11 06:02  zmedico

	* [r11016] Copy INHERITED/_eclasses_ handling from
	  portdbapi._metadata_callback() to portdbapi.aux_get() since it's
	  still needed there or else aux_get won't properly return
	  INHERITED.

2008-07-11 05:12  zmedico

	* [r11015] Call settings.reset() in EbuildMetadataPhase.start()
	  since that's what portdbapi does too before generating metadata,
	  and without it, a previous CATEGORY can leak into the ebuild env
	  and corrupt it (breaks lots of packages that reference
	  $CATEGORY).

2008-07-11 04:16  zmedico

	* [r11014] Document the new --jobs and --load-average options for
	  parallelization.

2008-07-11 02:38  zmedico

	* [r11013] Refactor and simplify the main task scheduling and poll
	  loops:
	  
	  * Make output handlers unregister themselves and call wait() to
	  notify exit listeners immediately. This makes the exit listeners
	  more useful for scheduling tasks. This makes the poll loop nice
	  an clean because it just calls the handlers and then the handlers
	  can do the scheduling when necessary.
	  
	  * Make SequentialTaskQueue.add() and addFront() trigger
	  scheduling internally, so that it's more of a chain reaction than
	  something that has to be done explicitly.

2008-07-10 15:00  zmedico

	* [r11012] Add support for parallel --regen, using the existing
	  --jobs and --load-average options:
	  
	  * Split out a PollLoop base class from Scheduler and derive a
	  MetadataRegen class to handle parallel scheduling for --regen.
	  
	  * Add pordbapi._metadata_process() and _metadata_callback()
	  methods to implement asynchronous metadata generation. One method
	  returns an EbuildMetadataPhase instance to encapsulate the async
	  task. The other method is called to save the metadata when the
	  process completes successfully. These methods share code with
	  aux_get to avoid duplicate code.

2008-07-10 10:33  zmedico

	* [r11011] When a package replaces another one, add the
	  corresponding uninstall task for the replaced package to
	  Scheduler._completed_tasks so that it's properly accounted for in
	  _dependent_on_scheduled_merges().

2008-07-10 09:08  zmedico

	* [r11010] Bug #231382 - If the open() call in getconfig() raises
	  an unexpected IOError, write a message to stderr showing the
	  exact call that failed, including the path of the file, in order
	  to aid in debugging.

2008-07-10 04:41  zmedico

	* [r11009] Make digestcheck() skip the "checking ebuild checksums"
	  part when fetching in the background.

2008-07-10 03:40  zmedico

	* [r11008] * Fix AsynchronousTask._wait_hook() to prevent potential
	  recursive calls triggered when calling exit listeners.
	  
	  * Make SequentialTaskQueue use exit listeners to trigger
	  scheduling as soon as a task exits. This makes it possible for
	  the queues to automatically schedule new tasks while scheduler
	  remains in it's poll() loop.

2008-07-10 01:24  zmedico

	* [r11007] * Handle errno.ECHILD and errno.ESRCH from waitpid() and
	  kill() calls. These errors commonly occur when ^C is used to kill
	  emerge.
	  
	  * Remove spawned pids from portage.process.spawned_pids
	  immediately in order to avoid a race condition for removing it.

2008-07-10 00:58  zmedico

	* [r11006] Fix Scheduler._is_restart_necessary() to return False if
	  the replacement version of portage is the same exact version as
	  the currently running instance.

2008-07-09 23:53  zmedico

	* [r11005] Like in Binpkg, cancel or wait for the prefetcher in
	  EbuildBuild.

2008-07-09 23:20  zmedico

	* [r11004] Bug #231358 - Fix 'NameError: global name 'p' is not
	  defined' in getmaskingstatus() that's triggered by a conditional
	  in LICENSE.

2008-07-09 21:51  zmedico

	* [r11003] For parallel-fetch prefetchers, pass fetchonly=1 into
	  the EbuildFetcher constructor.

2008-07-09 21:39  zmedico

	* [r11002] Use the EbuildFetcher class to implement async fetch for
	  the EbuildBuild class. When in background mode, fetch output is
	  logged to emerge-fetch.log. This solves a problem with calling
	  doebuild(returnpid=1) and then doebuild calling fetch()
	  synchronously. In that case, doebuild would return an int if
	  fetch() failed (including when running pkg_nofetch), which would
	  lead to a TypeError since doebuild(returnpid=1) is supposed to
	  return a list containing a spawned pid.

2008-07-09 12:33  zmedico

	* [r10999] * Unify the scheduler's "build" and "extract" queues
	  into a single "jobs" queue.
	  
	  * Add support for logging fetches to /var/log/emerge-fetch.log
	  when --jobs is enabled. Previously this log was only used for the
	  parallel-fetch feature but now it's also used for --jobs. The
	  scheduler's "prefetch" queue has been renamed to "fetch" since
	  it's not exclusively used for parallel-fetch anymore.
	  
	  * Pass the "background" parameter from Binpkg in to the
	  BinpkgFetcher instance, to send output to emerge-fetch.log
	  instead of stdout.

2008-07-09 12:03  zmedico

	* [r10998] Fix SubProcess._poll to handle a missing pid gracefully.

2008-07-09 02:15  zmedico

	* [r10996] Fix Scheduler._choose_pkg() to perform uninstallation
	  actions (due to blockers) in the correct order when building in
	  parallel.

2008-07-09 01:46  zmedico

	* [r10995] Fix _prune_digraph() to correctly distinguish "nomerge"
	  nodes from "uninstall" nodes.

2008-07-08 23:42  zmedico

	* [r10994] * Fix _choose_pkg() to pop the first node if there are
	  no other jobs running. * Allow _choose_pkg() to choose an
	  uninstall node when it reaches the front of the queue. TODO: fix
	  order for uninstall operations. * Fix
	  _dependent_on_scheduled_merges() to handle direct circular deps
	  correctly.

2008-07-08 22:35  zmedico

	* [r10993] Make the "tight loop" assertion trigger whenever there
	  is no state change detected for a given _schedule_main() call.

2008-07-08 22:28  zmedico

	* [r10992] In scheduler._schedule_main(), only consider a poll()
	  event to be a state change if it results in a handler being
	  unregistered.

2008-07-08 22:19  zmedico

	* [r10991] Fix Scheduler._dependent_on_scheduled_merges() to
	  properly distinguish "nomerge" nodes from "uninstall" nodes.

2008-07-08 21:56  zmedico

	* [r10990] Remove redundant call to _schedule_main().

2008-07-08 21:19  zmedico

	* [r10989] * Call self._wait() when unregistering output handlers,
	  in order to avoid triggering a tight loop. Also fix
	  Subprocess._wait() to only schedule when self.registered is True.
	  
	  * Add an assertion inside Scheduler._schedule_main() to try and
	  detect tight loops like the one above.
	  
	  * Fix typo in Scheduler._merge_exit().

2008-07-08 17:44  zmedico

	* [r10988] Derive PackageMerge from AsynchronousTask instead of
	  CompositeTask since CompositeTask is designed for
	  self._current_task to be set.

2008-07-08 17:26  zmedico

	* [r10987] Raise an AssertionError in CompositeTask._wait() if it's
	  detected that self._current_task hasn't been properly updated
	  after calling wait on it.

2008-07-08 16:59  zmedico

	* [r10986] Fix infinite loop in CompositeTask._wait().

2008-07-08 10:49  zmedico

	* [r10985] Fix ValueError triggered when Scheduler._choose_pkg()
	  doesn't find a package and returns None.

2008-07-08 10:28  zmedico

	* [r10984] Use a normal list instead of a deque for
	  Scheduler._pkg_queue since deque doesn't have a remove() method
	  until python-2.5.

2008-07-08 09:50  zmedico

	* [r10983] Implement parallel build support by adding new --jobs
	  and --load-average options that are analogous to the
	  corresponding `make` options. Input and output handling still
	  need work to make it look better and act more friendly for things
	  like interactive ebuilds that require input.

2008-07-08 05:49  zmedico

	* [r10982] * Add background support to the SpawProcess class. *
	  Make Binpkg pass the current background setting into subtasks.

2008-07-08 05:15  zmedico

	* [r10981] Add AsynchronousTask.background attribute and add
	  support for it to the EbuildPhase class.

2008-07-08 01:01  zmedico

	* [r10980] Also add "background" attributes to the EbuildBuild and
	  Binpkg classes.

2008-07-08 00:53  zmedico

	* [r10979] Add a MergeListItem.background attribute for putting a
	  task in the background when max_jobs > 1.

2008-07-08 00:39  zmedico

	* [r10978] Add a missing check in Scheduler._main_loop() to ensure
	  that max_jobs isn't exceeded.

2008-07-08 00:25  zmedico

	* [r10977] Use plain sequential search for the SRC_URI.mirror check
	  since the regex approach is actually much slower.

2008-07-07 23:32  zmedico

	* [r10976] Add a Scheduler._digraph attribute for use in parallel
	  build scheduling.

2008-07-07 22:55  zmedico

	* [r10975] Rename SubProcess.reg_id to _reg_id since it no longer
	  needs to be exposed.

2008-07-07 22:41  zmedico

	* [r10974] * Add new CompositeTask._default_final_exit() method and
	  use it as the new generic task exit callback.
	  
	  * Remove erroneous self.wait() calls inside
	  MergeListItem.start().

2008-07-07 22:07  zmedico

	* [r10973] Add a new "SRC_URI.mirror" check which checks to if a
	  uri listed in profiles/thirdpartymirrors is found in SRC_URI.
	  Thanks to Betelgeuse for the initial patch which has now been
	  optimized with a regex.

2008-07-07 12:04  zmedico

	* [r10971] Move the "registered" attribute to the SubProcess class
	  too.

2008-07-07 11:45  zmedico

	* [r10970] Make SubProcess._wait() call
	  scheduler.schedule(self.reg_id) so it's encapsulated and callers
	  don't have to know about it.

2008-07-07 11:08  genone

	* [r10969] remove TODO list as it's not maintained anyway

2008-07-07 05:35  zmedico

	* [r10966] * Implement CompositeTask._poll(). * Make
	  AsynchronousTask classes call self.wait() to notify exit
	  listeners. * Rewrite Scheduler._main_loop() to bring it closer to
	  allowing parallel build scheduling.

2008-07-07 03:12  zmedico

	* [r10965] Fix broken code in AsynchronousTask.poll().

2008-07-07 02:18  zmedico

	* [r10964] Fix EbuildPhase._set_returncode() so that it correctly
	  updates the returncode attrbute instead of just a local variable.

2008-07-07 02:11  zmedico

	* [r10963] Fix typo in Binpkg.start() which prevents --genbinpkg
	  prefetcher sync from working properly in some cases.

2008-07-06 18:45  zmedico

	* [r10962] * Implement MergeListItem._poll() and _wait(). * Fix
	  BinpkgVerifier.start() to call wait() since it's not
	  asynchronous.

2008-07-06 15:17  zmedico

	* [r10961] Add a PackageMerge class to serve as an asynchronous
	  interface to package merges. For now it executes synchronously
	  inside the start() method.

2008-07-06 14:32  zmedico

	* [r10960] Add async support to MergeListItem.

2008-07-06 13:07  zmedico

	* [r10959] Add async support to the Binpkg class.

2008-07-06 09:17  zmedico

	* [r10958] Make BinpkgFetcher send output directly to stdout when
	  appropriate, so that wget's progress bar works normally.

2008-07-06 08:22  zmedico

	* [r10957] Fix parent class constructor call in the BinpkgFetcher
	  constructor.

2008-07-06 08:16  zmedico

	* [r10956] Make AsynchronousTask subclasses override _wait() and
	  _poll() so that calls to public methods can be wrapped for
	  implementing hooks such as exit listener notification.

2008-07-06 07:09  zmedico

	* [r10955] Fix --getbinpkg to inject downloaded packages into the
	  local bintree.

2008-07-06 06:48  zmedico

	* [r10954] * Fix broke return code handling from previous commit,
	  in MergeListItem.execute(). * Fix
	  TaskSequence._task_exit_handler() so it won't call final_exit()
	  if _default_exit() has already set self._current_task to None.

2008-07-06 06:28  zmedico

	* [r10953] Add async support to EbuildBuild, and an synchronous
	  install() method.

2008-07-06 03:44  zmedico

	* [r10952] Split out a CompositeTask._start_task() for subclasses
	  to use as a generic way to start a task.

2008-07-06 01:51  zmedico

	* [r10951] Add CompositeTask._final_exit() method and use it to fix
	  breakage from the previous commit.

2008-07-06 01:24  zmedico

	* [r10950] Split out a reusable CompositeTask._default_exit()
	  method that subclasses can use as a generic task exit callback.

2008-07-06 00:44  zmedico

	* [r10949] Add a CompositeTask._assert_current() method that
	  asynchronous callbacks can use detect possible bugs.

2008-07-06 00:01  zmedico

	* [r10948] Fix typo in xterm titles total package count which
	  causes it to show the current package instead. Thanks to Arfrever
	  for this patch.

2008-07-05 23:17  zmedico

	* [r10947] * Fix AsynchronousTask.poll() to call _wait_hook() when
	  necessary. * Use the default poll() and cancel() implementations
	  for BinpkgVerifier.

2008-07-05 14:02  zmedico

	* [r10946] Call _wait_hook() from poll() if the wait call occurs
	  there.

2008-07-05 13:44  zmedico

	* [r10945] Correct TaskSequence docstring to refer to the
	  addExitListener() method.

2008-07-05 13:34  zmedico

	* [r10944] Thanks to Ali Polatel <hawking@g.o> for this patch to
	  fix broken indentation.

2008-07-05 13:19  zmedico

	* [r10943] Split out common code from CompositeTask and
	  EbuildExecuter into a new CompositeTask class and rename the old
	  CompositeTask class to TaskSequence.

2008-07-05 13:06  zmedico

	* [r10942] Make EbuildExecuter inherit from AsynchronousTask.

2008-07-05 12:36  zmedico

	* [r10941] Fix CompositeTask.cancel() so that it's safe to call
	  when there is no running task.

2008-07-05 12:21  zmedico

	* [r10940] Add a new CompositeTask class which can be used to
	  combine separate AsynchronousTask instances into a single
	  instance. The CompositeTask instance used task exit listeners as
	  a means to (asynchronously) trigger progression from one subtask
	  to the next. This technique is used to group together all the
	  ebuild phases executed by EbuildExecuter, and should be useful
	  for grouping many more sets of tasks into similar composite
	  tasks.

2008-07-05 08:52  zmedico

	* [r10939] Add async support to EbuildBinpkg by making it inherit
	  from EbuildPhase.

2008-07-05 08:08  zmedico

	* [r10938] Use the EbuildPhase class to execute the "clean" phase
	  asynchronously.

2008-07-05 07:36  zmedico

	* [r10937] Remove unused variable.

2008-07-05 07:34  zmedico

	* [r10936] Rename BinpkgFetcherAsync class to BinpkgFetcher and use
	  it to replace the older class with the same name

2008-07-05 07:18  zmedico

	* [r10935] * Implement a new binarytree.digestCheck() method and
	  use it to check digests for binary packages.
	  
	  * Split out a AsynchronousTask base class from SubProcess.
	  
	  * Derive a new BinpkgVerifier class from AsynchronousTask. Even
	  though this is not really asynchronous yet, it can fake the
	  interface by doing everything in the start() method.

2008-07-04 22:49  zmedico

	* [r10934] Make Binpkg inherit from EbuildBuildDir since it's going
	  to hold the build dir lock while it runs asynchronously.

2008-07-04 22:39  zmedico

	* [r10933] Make EbuildBuild inherit from EbuildBuildDir since it's
	  going to hold the build dir lock while it runs asynchronously.

2008-07-04 22:19  zmedico

	* [r10932] Convert EbuildFetcher to an asynchronous interface: *
	  Rename EbuildFetcher to EbuildFetchPretend. * Rename
	  EbuildFetcherAsync to EbuildFetcher.

2008-07-04 21:46  zmedico

	* [r10931] TODO: For parallel scheduling, everything in
	  MergeListItem needs asynchronous execution support (start, poll,
	  and wait methods).

2008-07-04 21:27  zmedico

	* [r10930] Add a PollConstants class to serve as a layer of
	  indirection for accessing select.POLL* attributes which do not
	  exist on interix. Thanks to grobian for reporting.

2008-07-04 20:57  zmedico

	* [r10929] Bug #230525 - Work around ObjectProxy breakage in
	  `portageq vdb_path`.

2008-07-04 13:58  zmedico

	* [r10928] In --keep-going mode, display the new merge list when
	  appropriate.

2008-07-04 13:20  zmedico

	* [r10927] Split a _main_loop() method out of Scheduler._merge().

2008-07-04 11:12  zmedico

	* [r10926] Split out a Scheduler._execute_pkg() method from
	  _merge().

2008-07-04 10:48  zmedico

	* [r10925] Rename PollSelectFallback to PollSelectAdapter.

2008-07-04 10:45  zmedico

	* [r10924] * Split out a MergeListItem class from
	  Scheduler._execute_task(). * Remove Scheduler._execute_task() and
	  migrate some of it's code to Scheduler._merge(). * Fix
	  _world_atom() so that it doesn't add an atom in --oneshot mode or
	  similar.

2008-07-04 10:15  zmedico

	* [r10923] Fix broken references to portage.exception.

2008-07-04 07:09  zmedico

	* [r10922] Create a Scheduler._task_queues attribute which has
	  "build" and "prefetch" queues. The build queue is currently
	  unused and the prefetch queue is used for parallel fetch.

2008-07-04 06:15  zmedico

	* [r10921] Change the way the way things that have to call the
	  scheduler interact with it:
	  
	  * Return a unique integer id from scheduler.register(), to be
	  passed back into other scheduler methods.
	  
	  * Control handler unregistration with the handler's return value,
	  like some other frameworks do for similar callbacks.
	  
	  * Add a SpawnProcess.reg_id attribute to store the id returned
	  from scheduler.register()
	  
	  * Pass the SpawnProcess.reg_id value into scheduler.schedule()
	  calls, so the scheduler knows to return when the callback
	  referred to by the given id unregisters itself by returning
	  False.

2008-07-04 03:03  zmedico

	* [r10920] When logging is disabled, make the EbuildPhase create a
	  dummy pipe to provide a file descriptor that the scheduler can
	  use to monitor the process from inside a poll() loop.

2008-07-04 00:46  zmedico

	* [r10919] Import portage before trying to access portage.exception
	  for exception handling.

2008-07-04 00:11  zmedico

	* [r10918] * Split out a SequentialTaskQueue class to encapsulate
	  the parallel-fetch prefetcher queue.
	  
	  * Fix broken return value status handling in Scheduler.merge().

2008-07-03 22:48  zmedico

	* [r10917] Bug #230469 - Implement non-blocking distlocks for
	  --fetchonly. This adds a "flags" keyword parameter to the
	  portage.locks.lock() function. Default is flags=0. If flags
	  contains os.O_NONBLOCK then lock() will raise
	  portage.exception.TryAgain instead of blocking. This new flags
	  parameter is used to implement non-blocking distlocks in fetch()
	  when fetchonly mode is enabled.

2008-07-03 21:53  zmedico

	* [r10916] Fix typo.

2008-07-03 21:52  zmedico

	* [r10915] Bug #230579 - Handle EOFError raised from cPickle.load()
	  in PreservedLibsRegistry.load().

2008-07-03 12:04  zmedico

	* [r10913] Split out a _create_prefetcher() method from
	  _add_prefetchers().

2008-07-03 11:42  zmedico

	* [r10912] Remove old unused vars inside _execute_task() and fix
	  code not to use the old vars.

2008-07-03 11:17  zmedico

	* [r10911] Split logging and world atom code out of
	  Scheduler._execute() task, and trigger it inside
	  EbuildPhase.execute().

2008-07-03 09:30  zmedico

	* [r10910] Clean up Scheduler.merge() and split out a
	  _save_resume_list() method.

2008-07-03 09:05  zmedico

	* [r10909] Add a portage._disable_legacy_globals() function. This
	  deletes the ObjectProxy instances that are used for lazy
	  initialization of legacy global variables. The purpose of
	  deleting them is to prevent new code from referencing these
	  deprecated variables. This allows the removal of the
	  PORTAGE_LEGACY_GLOBALS variable which used to serve the same
	  purpose.

2008-07-03 08:44  zmedico

	* [r10908] Split out a _restart_if_necessary() method from
	  Scheduler._merge().

2008-07-03 08:17  zmedico

	* [r10907] Remove unused BinpkgMerge class.

2008-07-03 07:38  zmedico

	* [r10906] Remove the Scheduler._post_merge() method, and create a
	  new _show_failed_fetches() method.

2008-07-03 07:04  zmedico

	* [r10905] Split out a new _add_prefetchers() method from
	  Scheduler._merge().

2008-07-03 06:39  zmedico

	* [r10903] Split out a new _check_manifests() method from
	  Scheduler._merge() since this method is not useful for parallel
	  scheduling and any useful code needs to be relocated.

2008-07-03 06:06  zmedico

	* [r10902] Implement asynchronous binary package extraction, so
	  that the scheduler can run while a package is extracting in the
	  background.

2008-07-03 04:24  zmedico

	* [r10901] Make BinpkgFetcherAsync inherit from SpawnProcess.

2008-07-03 04:10  zmedico

	* [r10900] Add missing BinpkgFetcherAsync.registered attribute.

2008-07-03 03:49  zmedico

	* [r10899] Move post ebuild phase code (originally from
	  spawnebuild) from EbuildExecuter.execute() to
	  EbuildPhase._set_returncode().

2008-07-03 03:39  zmedico

	* [r10898] Split out a SpawnProcess base class out of
	  EbuildFetcherAsync.

2008-07-03 03:09  zmedico

	* [r10897] Use stdout.write() instead of "print", for py3k compat.

2008-07-02 22:44  zmedico

	* [r10896] Fix broken except statement. Thanks to hawking.

2008-07-02 12:04  zmedico

	* [r10895] Fix EbuildBuildDir so that it works properly with binary
	  packages.

2008-07-02 11:33  zmedico

	* [r10894] Handle missing select.poll on interix by using select()
	  to emulate a poll object.

2008-07-02 08:21  zmedico

	* [r10892] Remove $PORTAGE_BUILDDIR locking from portage.pkgmerge()
	  and use an instance of EbuildBuildDir instead.

2008-07-02 08:07  zmedico

	* [r10891] Split out a SubProcess base class for
	  EbuildFetcherAsync, EbuildPhase, and BinpkgFetcherAsync.

2008-07-02 07:50  zmedico

	* [r10890] Py3k compatibility patch by Ali Polatel <hawking@g.o>.
	  Don't use the format raise Exception, "string"

2008-07-02 06:45  zmedico

	* [r10889] Fix EbuildBuild.execute() to return os.EX_OK on success.

2008-07-02 02:09  zmedico

	* [r10888] Fix inverted buildpkgonly logic.

2008-07-02 02:01  zmedico

	* [r10887] Split out a Binpkg class from code inside
	  Scheduler._execute_task().

2008-07-02 01:15  zmedico

	* [r10886] Remove debugging code from the previous commit.

2008-07-02 01:13  zmedico

	* [r10885] * Rename existing EbuildBuild class to EbuildExecuter. *
	  Split more code out of Scheduler._execute_task() and use it to
	  make a more comprehensive EbuildBuild class.

2008-07-01 12:55  zmedico

	* [r10875] Py3k compatibility patch #6 by Ali Polatel
	  <hawking@g.o>. Replace dict.has_key() calls with "in" and "not
	  in" operators.

2008-07-01 12:53  zmedico

	* [r10874] Py3k compatibility patch #5 by Ali Polatel
	  <hawking@g.o>. Replace dict.has_key() calls with "in" and "not
	  in" operators.

2008-07-01 12:50  zmedico

	* [r10873] Py3k compatibility patch #4 by Ali Polatel
	  <hawking@g.o>. Replace dict.has_key() calls with "in" and "not
	  in" operators.

2008-07-01 12:48  zmedico

	* [r10872] Py3k compatibility patch #3 by Ali Polatel
	  <hawking@g.o>. Replace dict.has_key() calls with "in" and "not
	  in" operators.

2008-07-01 12:42  zmedico

	* [r10871] Py3k compatibility patch #2 by Ali Polatel
	  <hawking@g.o>. Replace dict.has_key() calls with "in" and "not
	  in" operators.

2008-07-01 12:38  zmedico

	* [r10870] Py3k compatibility patch #1 by Ali Polatel
	  <hawking@g.o>. Replace dict.has_key() calls with "in" and "not
	  in" operators..

2008-07-01 10:11  zmedico

	* [r10869] Add a "prefix" keyword parameter to slot_dict_class()
	  which controls the prefix used when mapping attribute names from
	  keys. Use this to change the syntax from files["foo"] to
	  files.foo (it's fewer characters to look at).

2008-07-01 09:47  zmedico

	* [r10868] Add a new BinpkgFetcherAsync class and use it to
	  implement parellel-fetch for --getbinpkg.

2008-07-01 08:43  zmedico

	* [r10867] Never do realpath() on an empty string for
	  portdbapi.porttree_root since otherwise it can evaluate to $CWD
	  which leads to undesireable results.

2008-07-01 08:29  zmedico

	* [r10866] Also avoid sandbox violations in
	  PreservedLibsRegistry.store(), for running portage inside ebuild
	  phases.

2008-07-01 08:24  zmedico

	* [r10865] Handle potential errors in PreservedLibsRegistry.store()
	  now that it can be called via pruneNonExisting(), due to things
	  such as portageq calls where the user may not have write
	  permission to the registry.

2008-07-01 08:10  zmedico

	* [r10864] Split out a write_contents() function and a
	  vardbapi.removeFromContents() function. This is refactoring of
	  code from the blocker file collision contents handling in
	  dblink.treewalk(). Also, there is a new dblink._match_contents()
	  method derived from isowner(). It returns the exact path from the
	  contents file that matches the given path, regardless of path
	  differences due to things such as symlinks.

2008-07-01 05:22  zmedico

	* [r10862] add a call to pruneNonExisting() at the end of
	  dbapi.vartree.PreservedLibsRegistry.__init__()

2008-06-30 22:20  zmedico

	* [r10861] Fix typo.

2008-06-30 22:18  zmedico

	* [r10860] Bug #230249 - Disable the "ebuild.notadded" check when
	  not in commit mode and running `svn list` and `svn status` calls
	  in every package dir will be too expensive.

2008-06-30 21:54  zmedico

	* [r10859] Bug #230245 - Use os.path.basename() on paths returned
	  from `svn list` and `svn status`.

2008-06-30 21:51  zmedico

	* [r10858] Bug #230245 - Pass the correct directory when calling
	  `snv list` and `svn status` since repoman supports category-level
	  and repo-level commits.

2008-06-30 21:13  zmedico

	* [r10857] Add "(no inline comments)" to qualify "comments begin
	  with #" statements.

2008-06-30 12:46  zmedico

	* [r10856] Clear the self._task_queue to avoid duplicate
	  parallel-fetch tasks in --keep-going mode.

2008-06-30 12:08  zmedico

	* [r10855] Reimplement parallel-fetch by spawning the `ebuild
	  fetch` command for each ebuild. The benefit of using this
	  approach is that it can be integrated together with parallel
	  build scheduling that's planned. Parallel-fetch support for
	  binhost is not implemented yet, though it worked previously.

2008-06-30 03:18  zmedico

	* [r10854] Avoid python-2.6 deprecation warnings for md5 and sha
	  modules by trying to import hashlib first and then falling back
	  to the deprecated modules if necessary. Thanks to ColdWind for
	  reporting.

2008-06-30 02:34  zmedico

	* [r10853] Rename the MergeTask class to Scheduler.

2008-06-30 00:18  zmedico

	* [r10852] * Tweak conditionals in doebuild() to fix emerge --fetch
	  breakage reported by Arfrever.
	  
	  * Change a couple EMERGE_FROM conditionals to use the "returnpid"
	  parameter instead.

2008-06-29 17:27  zmedico

	* [r10851] Centralize select.poll() event handling in
	  MergeTask._schedule(). This will allow the parent process to
	  handle output of multiple child processes running in parllel.

2008-06-29 15:08  zmedico

	* [r10850] Add EMERGE_FROM to the blacklisted vars in the config
	  constructor.

2008-06-29 14:51  zmedico

	* [r10849] * Add "fd_pipes" and "returnpid" parameters to
	  doebuild() and pass these into spawn calls, enabling ebuild
	  processes to execute asynchronously.
	  
	  * Add a EbuildPhase class that's derived from the pty logging
	  code inside portage.spawn().
	  
	  * Integrate post-phase code from spawnebuild() into
	  EbuildBuild.execute() so that it still gets called even though
	  doebuild() calls execute asynchronously.

2008-06-29 09:38  zmedico

	* [r10848] In EbuildBuild.execute(), call doebuild() separately for
	  each phase since it will be easier to add asynchronous support to
	  doebuild() if it's called this way.

2008-06-29 08:50  zmedico

	* [r10847] Split out a _check_build_log() function from
	  spawnebuild().

2008-06-29 08:23  zmedico

	* [r10846] Split out a _post_src_install_uid_fix() function from
	  spawnebuild().

2008-06-29 08:09  zmedico

	* [r10845] Split out a _spawn_misc_sh() function from
	  spawnebuild().

2008-06-29 06:46  zmedico

	* [r10844] Handle invalid atoms inside depgraph._add_pkg_deps(), to
	  avoid an unhandled InvalidAtom exception from dep_expand() when
	  matching against the vardb.

2008-06-29 04:27  zmedico

	* [r10843] Move clean code, from the previous commit, from
	  doebuild() to EbuildBuild.execute() where it fits better.

2008-06-29 03:13  zmedico

	* [r10842] Instead of calling the ebuild "clean" phase in
	  MergeTask.merge(), move it inside doebuild() where it can be tied
	  into the actionmap_deps framework.

2008-06-29 01:43  zmedico

	* [r10841] Split out an EbuildBuildDir class to handle locking of
	  the build dir.

2008-06-28 23:54  zmedico

	* [r10840] Handle re.error exceptions raised from re.compile() when
	  ACCEPT_CHOSTS is invalid. Thanks to solar for reporting.

2008-06-28 23:32  zmedico

	* [r10839] Make EbuildBinpkg delegate everything up to
	  src_install() to the EbuildBuild class.

2008-06-28 22:38  zmedico

	* [r10838] * Remove unused EbuildBuild.pretend attribute. * Add
	  TODO not about asynchronous execution.

2008-06-28 22:14  zmedico

	* [r10837] Bug #229859 - Also add atom validation to match().

2008-06-28 21:58  zmedico

	* [r10836] Copy portageq exit code validation from has_version() to
	  best_version().

2008-06-28 21:54  zmedico

	* [r10835] Bug #229859 - Make portageq check atom validity when
	  has_version() and best_version() are called from inside the
	  ebuild environment.

2008-06-28 09:16  zmedico

	* [r10834] Use the EbuildMerge class instead of portage.merge().

2008-06-28 09:08  zmedico

	* [r10833] Split out a PackageUninstall class.

2008-06-28 07:00  zmedico

	* [r10832] * Split out an EbuildBinpkg class. * Remove unused
	  EbuildBuild.ldpath_mtimes attribute.

2008-06-28 06:10  zmedico

	* [r10831] Split out an EbuildBuild class.

2008-06-28 06:06  zmedico

	* [r10830] Fix typo.

2008-06-28 05:24  zmedico

	* [r10829] Split out an EbuildMerge class.

2008-06-28 05:04  zmedico

	* [r10828] * Split out a BinpkgMerge class. * Fix typos in
	  _get_hash_key() methods.

2008-06-28 04:20  zmedico

	* [r10827] Split out a BinpkgFetcher class.

2008-06-28 02:53  zmedico

	* [r10826] Split out an EbuildFetcher class.

2008-06-28 01:45  zmedico

	* [r10825] Split the MergeTask._merge() method into 3 smaller
	  methods. The new methods are _execute_task() and _post_merge().

2008-06-28 01:01  zmedico

	* [r10824] Bug #226307 - Copy come code from
	  depgraph._iter_atoms_for_pkg() that was used to solve bug
	  #218854, and use it inside unmerge() when matching sets to
	  packages.

2008-06-27 23:42  zmedico

	* [r10823] Fix depgraph.break_refs() to work with DependencyArg
	  instances (or anything else that may have a "root_config"
	  attribute).

2008-06-27 23:34  zmedico

	* [r10822] Remove the MergeTask._blocker_db attribute since it can
	  just be a local variable.

2008-06-27 23:17  zmedico

	* [r10821] Break references from Package instances in the digraph
	  before passing it into the MergeTask constructor.

2008-06-27 22:53  zmedico

	* [r10820] Pass the digraph into the MergeTask constructor. It's
	  currently unused but it will be useful for parallel scheduling.

2008-06-27 22:44  zmedico

	* [r10819] Fix typo.

2008-06-27 22:26  zmedico

	* [r10818] Add documentation for the new --keep-going option.

2008-06-27 20:58  zmedico

	* [r10817] Generate and log eerror messages for any packages that
	  need to be dropped due to unsatisfied dependencies when
	  --keep-going is enabled.

2008-06-27 08:04  zmedico

	* [r10812] Call clear_caches() after the depgraph is out of scope,
	  in MergeTask.merge().

2008-06-27 07:49  zmedico

	* [r10811] Bug #12768 - Add a --keep-going option. This uses the
	  same resume_depgraph() function that's called for emerge --resume
	  operations. Given the remaining tasks, depedencies are
	  recalculated and any tasks with unsatisfied dependencies are
	  automatically dropped.

2008-06-27 06:44  zmedico

	* [r10810] Use bool() to simplify ObjectProxy.__nonzero__().

2008-06-27 04:00  zmedico

	* [r10809] Split the --skipfirst code into a resume_depgraph()
	  function that will be useful for implementing a --keep-going
	  option (bug #12768).

2008-06-26 22:05  zmedico

	* [r10808] For brevity, and consistency with pkgcore, rename
	  "all-installed" to just "installed". Thanks to ferringb for the
	  suggestion.

2008-06-26 21:36  zmedico

	* [r10807] Call use_reduce() with matchall=1 when checking
	  depstrings. Otherwise it's possible for invalid deps to be
	  ignored. Thanks to grobian for reporting.

2008-06-26 21:16  zmedico

	* [r10806] Add "PATH" to the set of allowed pacakge metadata keys
	  for the PackageIndex.

2008-06-26 19:34  zmedico

	* [r10805] Fix the PermissionDenied message for color.map.

2008-06-26 19:28  zmedico

	* [r10804] * Remove PORTAGE_LEGACY_GLOBALS hack for portage import
	  since late initialization of portage.settings (via ObjectProxy)
	  allows us to rely on being able to access the portage.exception
	  namespace before portage.settings is initialized.
	  
	  * Use portage.settings["ROOT"] instead of portage.root to avoid
	  potential ObjectProxy compatibility issues.

2008-06-26 18:49  zmedico

	* [r10803] Use settings["ROOT"] at the beginning of env_update() to
	  avoid breakage due to "root" being an ObjectProxy instance.

2008-06-26 18:24  zmedico

	* [r10802] Handle KeyError from aux_get() inside
	  dbapi._iter_match_slot() and _iter_match_use(). Thanks to grobian
	  for reporting.

2008-06-26 17:11  genone

	* [r10801] change default name of EverythingSet to @all-installed
	  (bug #229467)

2008-06-26 06:43  zmedico

	* [r10800] Also use a separate proxy type for portage.mtimedb since
	  it's independent from the portdb and settings.

2008-06-26 06:01  zmedico

	* [r10799] Use a separate proxy type to trigger portage.portdb
	  initialization separately from the rest of the legacy global
	  variables. This can be useful since sometimes the other variables
	  are needed while the portdb is not.

2008-06-26 05:28  zmedico

	* [r10798] Implement lazy initialization of global "portdb",
	  "settings" and other variables that pollute the portage module.
	  This works by initializing the global variables with dummy
	  "proxy" objects that serve as a means to trigger lazy
	  initialization. As soon as the first attribute access or method
	  call occurs on one of the proxy objects, it causes all the proxy
	  objects to be replaced with the real ones.
	  
	  It's possible for an unsupported attribute access or method call
	  on a proxy object to trigger an error, leading to breakage.
	  However, hopefully these such corner cases will negligible (only
	  time will tell).

2008-06-26 00:49  zmedico

	* [r10797] Make PackageIndex use SlotDict for package metadata
	  storage. The set of allowed keys is passed into the PackageIndex
	  constructor (normal dict instances will be used if the set of
	  keys is not passed in for some reason). A SlotDict.allowed_keys
	  attribute now provides access to a frozenset of allowed keys.

2008-06-25 23:10  zmedico

	* [r10796] Use SlotDict where appropriate in
	  binarytree._populate().

2008-06-25 22:54  zmedico

	* [r10795] Fix typo.

2008-06-25 22:49  zmedico

	* [r10794] Add docstring to slot_dict_class().

2008-06-25 22:39  zmedico

	* [r10793] Fix typo.

2008-06-25 22:39  zmedico

	* [r10792] Fix KeyError constructor style.

2008-06-25 22:37  zmedico

	* [r10791] Fix indentation.

2008-06-25 22:36  zmedico

	* [r10790] Add a generic portage.cache.mappings.slot_dict_class()
	  function which generates mapping classes that behave similar to a
	  dict but store values as object attributes that are allocated via
	  __slots__. Instances of these objects have a smaller memory
	  footprint than a normal dict object. These classes are used to
	  reduce the memory footprint of the dbapi.aux_get() caches and the
	  Package.metadata attribute.

2008-06-25 20:47  zmedico

	* [r10789] Swap out the whole Package.root_config attribute inside
	  depgraph.break_refs().

2008-06-25 20:08  zmedico

	* [r10787] Clarify EverythingSet.description a bit. Thanks to
	  Necoro.

2008-06-25 20:06  zmedico

	* [r10786] Clarify EverythingSet.description a bit. Thanks to
	  Necoro.

2008-06-25 19:45  zmedico

	* [r10785] Fix Atom -> str breakage in
	  depgraph.saveNomergeFavorites(). Thanks to grobian and darsiide.

2008-06-25 12:41  zmedico

	* [r10783] Fix repoman breakage wrt _PackageMetadataWrapper._keys
	  values.

2008-06-25 10:06  zmedico

	* [r10782] After the depgraph caches the vardb state in a
	  FakeVartree, to make some room on the heap, clear the vardbapi
	  caches.

2008-06-25 08:42  zmedico

	* [r10780] Implement __contains__, pop() and clear() for
	  Package.metadata attributes.

2008-06-25 07:49  zmedico

	* [r10779] Use os.listdir() instead of portage.listdir() to avoid
	  needless caching of directories that only need to be listed once.

2008-06-25 07:39  zmedico

	* [r10778] Make clear_caches() call portage.dircache.clear().

2008-06-25 07:18  zmedico

	* [r10777] Remove the BlockerDB._blocker_cache attribute and just
	  create new instances on demand instead of taking space on the
	  heap.

2008-06-25 06:38  zmedico

	* [r10776] For the Package.metadata attribute, only implement the
	  dict interface instead of actually inheriting from dict. This
	  slightly decreases the memory footprint by defining __slots__ and
	  storing items as object attributes.

2008-06-25 04:24  zmedico

	* [r10775] Bug #229069 - Before deleting the depgraph, break
	  references pointing to the depgraph from Package instances in the
	  merge list. This helps reduce the heap size a lot.

2008-06-24 22:55  zmedico

	* [r10774] Fix spelling of depgraph._complete_threshold.

2008-06-24 22:53  zmedico

	* [r10773] If dep calculation time exceeds 20 seconds then
	  automatically enable "complete" mode since any performance
	  difference is not as likely to be noticed by the user after this
	  much time has passed.

2008-06-24 22:30  zmedico

	* [r10772] Use weakref.WeakValueDictionary to make cached Atom
	  instances eligible for garbage collection when no strong
	  references remain.

2008-06-24 21:14  zmedico

	* [r10771] Bug #229233 - Fix Atom -> str breakage in the
	  depgraph.display_problems() package.provided warning message.

2008-06-24 05:52  zmedico

	* [r10769] Clear dbapi caches just after deleting the depgraph in
	  action_build(). This trims down the heap size by a few megs, for
	  bug #229069.

2008-06-24 01:00  zmedico

	* [r10768] Fix some remaining corner cases that cause bug #220341
	  to reappear intermittently. Thanks to pva for reporting.

2008-06-23 18:22  zmedico

	* [r10766] Use paths from portage.const instead of hardcoded
	  versions. (branches/prefix r10765)

2008-06-23 10:00  zmedico

	* [r10764] Bug #228977 - During dblink._preserve_libs() calls,
	  cache results of LinkageMap.findProviders(),
	  LinkageMap.findConsumers(), and os.path.realpath() calls in order
	  to improve performance. This makes a huge difference in
	  performance for glibc upgrades since glibc provides so many libs
	  to check consumerge for.

2008-06-23 02:40  zmedico

	* [r10763] Bug #228935 - Add a new "command not found" build log QA
	  Notice. Thanks to Olivier Huber for the initial patch.

2008-06-23 01:24  zmedico

	* [r10762] Bug #228977 - Protect against possible infinite loop in
	  dblink._preserve_libs().

2008-06-22 23:15  zmedico

	* [r10761] Bug #228939 - Fix display list interaction with --tree
	  mode to prevent display of a duplicate list.

2008-06-22 04:04  zmedico

	* [r10759] Fix broken path handling wrt $ROOT in
	  LibraryConsumerSet.mapPathsToAtoms().

2008-06-21 22:41  zmedico

	* [r10758] Fix Atom -> str breakage in
	  depgraph._show_slot_collision_notice(). Thanks to Arfrever for
	  reporting.

2008-06-21 22:22  zmedico

	* [r10757] Implement Atom.__cmp__() so that things like list.sort()
	  work correctly for Atom instances.

2008-06-21 17:11  zmedico

	* [r10756] Bug #228489 - Restore the "ci" alias for "commit" mode.
	  Thanks to grobian for the patch.

2008-06-21 16:14  zmedico

	* [r10755] Fix Atom -> str breakage in depgraph.display_problems().

2008-06-21 14:58  zmedico

	* [r10754] Make LibraryConsumerSet.mapPathsToAtoms() use the
	  contents index for more efficient owner lookups.

2008-06-21 11:58  zmedico

	* [r10753] Fix implicit_pattern to match different quote character
	  found in warnings generated by gcc-4.3. Thanks to aballier for
	  reporting with sample log.

2008-06-21 10:53  zmedico

	* [r10752] Exclude calls to autoheader and makeinfo from the
	  automake "maintainer mode" check (filter some false positives).
	  Thanks to Flameeyes.

2008-06-21 09:26  zmedico

	* [r10751] Use bash's built-in echo instead of the actual echo
	  binary since it has compatibility issues on FreeBSD systems.
	  Thanks to aballier for reporting the issue and testing this
	  patch.

2008-06-21 05:18  vapier

	* [r10750] drop old -i,--include-masked option #226429 by Tobias
	  Klausmann

2008-06-20 22:31  zmedico

	* [r10749] Fix Atom -> str breakage in WorldSet.write().

2008-06-20 20:36  zmedico

	* [r10748] Remove unused Atom.string attribute.

2008-06-20 19:43  zmedico

	* [r10747] Add subversion support for repoman. (thanks grobian)

2008-06-20 18:00  zmedico

	* [r10746] Bug #228595 - Use os.path.realpath() before comparing
	  paths to those returned from portdbapi.getRepositoryPath() since
	  those paths are also cannonical.

2008-06-20 17:36  zmedico

	* [r10745] Make isvalidatom() use the Atom cache to avoid
	  validating the same atom twice.

2008-06-20 17:04  zmedico

	* [r10744] Make Atom use str.__eq__ and __ne__ also.

2008-06-20 16:59  zmedico

	* [r10743] Make Atom use str.__hash__.

2008-06-20 16:47  zmedico

	* [r10742] Make the Atom cache dict private and add a docstring for
	  _AtomCache.

2008-06-20 16:18  zmedico

	* [r10741] Use a metaclass to cache Atom instances transparently.
	  This should improve performance and conserve memory in cases when
	  the same atom is more than once.

2008-06-20 14:37  zmedico

	* [r10740] Instead of having Atom inherit from str, just emulate
	  the interface. This allows us to define __slots__ (not allowed
	  when inheriting from str) and therefore should conserve some
	  memory by avoiding a __dict__ attribute on every Atom.

2008-06-20 13:39  zmedico

	* [r10739] Make the visibility related config methods such as
	  getMaskAtom() and getProfileMaskAtom() private since these
	  methods really should take Package instances before we expose
	  them as public api.

2008-06-20 05:12  genone

	* [r10735] reenable warning about missing repository names

2008-06-20 05:01  genone

	* [r10734] revert accidential commit

2008-06-20 04:59  genone

	* [r10733] update release notes/news

2008-06-20 03:46  zmedico

	* [r10732] Document the new emerge <file> feature.

2008-06-20 03:14  zmedico

	* [r10731] Fix typo.

2008-06-20 03:13  zmedico

	* [r10730] Make emerge <path> path search for multiple owners of
	  directories. This makes it possible to use `emerge /lib/modules`
	  as a decent substitute for module-rebuild.

2008-06-19 05:26  zmedico

	* [r10725] Pass a Package instance into LineCheck.new(), and use
	  this to avoid passing the ebuild mtime into the EbuildHeader
	  constructor (the mtime is given when the new() method is called).

2008-06-19 05:01  zmedico

	* [r10723] Refactor the 'inherit.autotools' and 'IUSE.undefined'
	  checks into classes derived from LineCheck.

2008-06-18 21:33  zmedico

	* [r10717] Bug #228075 - Explicitly call gc.collect() to try and
	  free memory when checking for blockers. This avoids a heap
	  overflow that triggers 'Cannot allocate memory' errors (reported
	  with python-2.5).

2008-06-18 08:11  zmedico

	* [r10715] As suggested by remi`, make the 'inherit.autotools'
	  check only ebuilds that inherit the autotools eclass directly
	  (rather than indirectly through an eclass such as apache-2 or
	  x-modular).

2008-06-18 06:55  zmedico

	* [r10714] Add an exemption for x-modular in the
	  "inherit.autotools" check. Thanks to remi` for reporting.

2008-06-18 04:49  zmedico

	* [r10713] Bug #225285 - Add support for persistent options stored
	  in the EBUILD_DEFAULT_OPTS environment variable (similar to
	  {EMERGE,QUICKPKG}_DEFAULT_OPTS).

2008-06-18 04:38  zmedico

	* [r10712] Bug #225285 - Add a --skip-manifest option that disables
	  all interaction with the manifest.

2008-06-18 03:36  zmedico

	* [r10711] Add a help string for --debug.

2008-06-18 03:30  zmedico

	* [r10710] Use optparse instead of getopt.

2008-06-17 20:16  zmedico

	* [r10704] More eblank.

2008-06-17 19:39  zmedico

	* [r10698] Remove eblank docs.

2008-06-17 18:13  genone

	* [r10696] remove stray line

2008-06-17 17:35  genone

	* [r10695] Remove eblank nonsense

2008-06-17 17:35  genone

	* [r10694] Remove eblank nonsense

2008-06-17 17:03  genone

	* [r10693] Do not preserve the master link of a library to avoid
	  packages being linked against preserved libs on rebuilds

2008-06-17 16:12  genone

	* [r10690] fix typo

2008-06-17 07:46  zmedico

	* [r10687] * Document eblank and eqawarn in the ebuild.5 man page.
	  * Create "Ebuild Helper Functions" section docbook format,
	  including all the functions documented in the ebuild.5 man page.

2008-06-17 06:01  zmedico

	* [r10685] Add note about bug #226505.

2008-06-17 05:44  zmedico

	* [r10683] Add a "Interaction with previous installed version"
	  section to document the upgrade/downgrade phase execution order
	  change from bug #226505.

2008-06-17 05:07  zmedico

	* [r10681] Add "blank" to the default PORTAGE_ELOG_CLASSES setting.

2008-06-17 04:57  zmedico

	* [r10679] Fix BLANK order and color.

2008-06-17 04:05  zmedico

	* [r10677] * Rename NEUTRAL color to BLANK for eblank. * Document
	  the new BLANK code in color.map.5. * Implement python version of
	  eblank for mod_echo.

2008-06-17 03:31  zmedico

	* [r10675] Add support for an new "eblank" elog function that shows
	  a blank line. Consecutive eblank calls are all collapsed into a
	  single blank line. Thanks to Joe Peterson <lavajoe@g.o> for this
	  patch.

2008-06-16 14:40  zmedico

	* [r10673] Fix typo.

2008-06-16 14:30  zmedico

	* [r10671] Document the new ACCEPT_CHOSTS variable.

2008-06-16 11:48  zmedico

	* [r10669] Tweak the config._accept_chost() regex.

2008-06-16 10:24  zmedico

	* [r10661] Re-enable vardbapi.cpv_all() cache now that bug #223417
	  is solved.

2008-06-16 10:19  zmedico

	* [r10660] Bug #223417 - Due to 1 second mtime granularity in <
	  python-1.5, mtime checks are not always sufficient to invalidate
	  vardbapi caches. Therefore, the caches need to be actively
	  invalidated when packages are added and removed.

2008-06-16 08:32  zmedico

	* [r10659] Make some post_merge() things conditional on the vdb
	  lock being held (mtimedb commit and info dirs processing).

2008-06-16 08:10  zmedico

	* [r10658] Add some write access checks in post_merge() in order to
	  avoid triggering permission related exceptions.

2008-06-15 04:50  zmedico

	* [r10656] Fix config._accept_chost_re so it's only an instance
	  variable.

2008-06-15 04:38  zmedico

	* [r10654] Add support for and ACCEPT_CHOSTS variable that controls
	  masking behavior for binary packages wrt CHOST. The variable is a
	  space separated list of chosts. It support regular expressions,
	  so if the actual chost contains any special characters then the
	  user must escape them when setting ACCEPT_CHOSTS.

2008-06-14 13:15  zmedico

	* [r10653] Fix the 'inherit.autotools' check to account for
	  apache-2_src_unpack() calling eautoreconf.

2008-06-14 07:15  zmedico

	* [r10652] Add two new build log qa checks, suggested by Diego
	  Pettenò:
	  
	  * Detect automake "maintainer mode". See
	  http://www.gentoo.org/proj/en/qa/autofailure.xml for more
	  information.
	  
	  * Detect "Unrecognized options" messages from configure scripts.

2008-06-12 02:41  zmedico

	* [r10651] Pass missing "installed" parameter into Package
	  constructor.

2008-06-11 09:33  zmedico

	* [r10648] Handle InvalidDependString in
	  _package_cache.__setitem__().

2008-06-11 09:16  zmedico

	* [r10646] Fix indent.

2008-06-11 09:15  zmedico

	* [r10645] Handle InvalidDependString.

2008-06-11 09:06  zmedico

	* [r10644] Bug #225767 - Suppress warnings for installed packages
	  masked by keywords if there is an equivalent ebuild in the
	  portage tree (same cpv) with visible keywords.

2008-06-11 03:37  zmedico

	* [r10642] Use spawn() instead of system().

2008-06-10 05:31  zmedico

	* [r10640] Add another sanity check in the owners cache.

2008-06-10 04:48  zmedico

	* [r10638] Use isinstance() instead of handling TypeError.

2008-06-10 04:13  zmedico

	* [r10636] Bug #225285 - Allow digestcheck() to succeed when the
	  Manifest is empty and strict mode is disabled.

2008-06-10 03:31  zmedico

	* [r10633] Add some sanity checks and error tolerance in the owners
	  cache.

2008-06-10 02:13  zmedico

	* [r10631] Fix typo.

2008-06-10 01:05  zmedico

	* [r10628] Fix typo.

2008-06-09 23:25  zmedico

	* [r10626] Fix missing initialization.

2008-06-09 14:24  zmedico

	* [r10612] Remove unused PackageVirtualDbapi.__getitem__() method.

2008-06-09 13:55  zmedico

	* [r10609] Add CONTENTS indexing support for optimization of owner
	  lookups. The vardbapi cache maintains a hash table (inside
	  vdb_metadata.pickle) that serves to index package contents by
	  mapping the basename of file to a list of possible packages that
	  own it. This is used to optimize owner lookups by narrowing the
	  search down to a smaller number of packages. It increases the
	  size of vdb_metadata.pickle by approximately 30% and it's used in
	  the following cases:
	  
	  * When an unexpected file collision occurs (whether or not
	  collision-protect is enabled)
	  
	  * `emerge <filename>`
	  
	  * `portageq owners`
	  
	  The

2008-06-08 20:23  zmedico

	* [r10608] When inside fakeroot, directories with portage's gid
	  appear to have root's gid. Therefore, use root's gid instead of
	  portage's gid to avoid spurrious permissions adjustments when
	  inside fakeroot.

2008-06-08 19:01  genone

	* [r10607] make sure that scanelf is called with the right paths,
	  and properly register all preserved objects to fix bug #223591

2008-06-08 05:11  zmedico

	* [r10604] Bug #225285 - Allow digestcheck() to succeed when the
	  Manifest is missing and strict mode is disabled.

2008-06-08 04:20  zmedico

	* [r10603] Make portdbapi.aux_get() return float type for _mtime_.

2008-06-08 03:15  zmedico

	* [r10602] Add additional functions such as eaclocal and
	  eautoheader to the inherit.autotools regex. Thanks to Arfrever.

2008-06-08 02:22  zmedico

	* [r10601] Fix typo.

2008-06-08 02:19  zmedico

	* [r10600] Make repoman pass Package instances into run_checks(),
	  so that the checks can use the Package.mtime and inherited
	  attributes.

2008-06-07 23:50  zmedico

	* [r10598] Inside, create_trees(), pass target_root="/" into the
	  config constructor when necessary to override the setting in
	  make.conf.

2008-06-07 22:51  zmedico

	* [r10596] Validate ROOT from make.conf.

2008-06-07 22:40  zmedico

	* [r10594] Make load_emerge_config() filter out empty
	  PORTAGE_CONFIGROOT and ROOT values, and those containing only
	  whitespace.

2008-06-07 22:18  zmedico

	* [r10593] Bug #224271 - New check 'IUSE.undefined', renamed from
	  generic 'ebuild.minorsyn'.

2008-06-07 22:07  zmedico

	* [r10592] As suggested by Flameeyes, add a new 'inherit.autotools'
	  check which warns when autotools has been inherited but none of
	  the eautomake, eautoconf or eautoreconf functions are called like
	  they are supposed to be.

2008-06-07 17:18  vapier

	* [r10591] remove old/unused gen_wrapper function

2008-06-07 09:23  zmedico

	* [r10589] Bug #224271 - Add a 'IUSE is not defined'
	  ebuild.minorsyn warning.

2008-06-06 00:22  zmedico

	* [r10588] Add a PackageVirtualDbapi.__getitem__() method.

2008-06-05 23:35  zmedico

	* [r10587] Add Package.counter and mtime attributes.

2008-06-05 17:30  zmedico

	* [r10586] Add vardbapi.aux_get() support for an "_mtime_" value
	  which corresponds to the installed package directory's mtime
	  (numeric value from stat result). This value can be used to
	  validate indexes or caches used in the optimization of vdb query
	  operations for various types of package metadata such as
	  dependencies and file contents.

2008-06-04 23:44  zmedico

	* [r10582] Bug #224713 - Avoid TypeError when make.conf is missing:
	  TypeError: argument of type 'NoneType' is not iterable

2008-06-04 21:15  zmedico

	* [r10580] Mention PORTAGE_RO_DISTDIRS in the DISTDIR docs.

2008-06-04 20:24  zmedico

	* [r10578] Use sets for more accurate cache modification counts
	  BlockerCache and vardbapi.

2008-06-04 03:50  zmedico

	* [r10575] Use platform module to make it clear what we're
	  displaying. Instead of an 'uname -mrp' call use
	  platform.platform() to describe the system in emerge --info.
	  (branches/prefix r10555)

2008-06-04 03:47  zmedico

	* [r10574] Use "platform" module instead of os.uname, or -- even
	  worse -- a system call to uname. Change repoman's identification
	  string not to use "processor" on Linux (where it is huge),
	  Interix (where it doesn't exist) and AIX/HP-UX (where it prints
	  "unknown"), but "machine" instead. (branches/prefix r10554)

2008-06-04 01:07  zmedico

	* [r10566] Fix typo.

2008-06-04 00:48  zmedico

	* [r10564] Use a distdir_writable variable in fetch(), for better
	  control of write operations inside ${DISTDIR}.

2008-06-03 23:33  zmedico

	* [r10563] Update --depclean and package.provided docs to indicate
	  interaction between them.

2008-06-03 20:44  zmedico

	* [r10561] Make PackagesSystemSet.description refer to the real
	  profile rather than /etc/portage/profile when possible.

2008-06-03 20:37  zmedico

	* [r10560] Avoid an unhandled IndexError thrown from the
	  PackagesSystemSet constructor when neither /etc/make.profile nor
	  /etc/portage/profile exist.

2008-06-03 20:11  zmedico

	* [r10558] Fix regex for compatibility with the regex
	  implementation from FreeBSD's libc (used by bash on FreeBSD).
	  Thanks to Alexis Ballier <aballier@g.o> for the patch.

2008-06-03 09:38  zmedico

	* [r10553] Tweak the installed masked code from bug #223447 so that
	  it less noisy by suppressing masking messages for packages that
	  haven't been pulled into the current dependency graph.

2008-06-03 06:51  zmedico

	* [r10552] Fix typo.

2008-06-03 06:50  zmedico

	* [r10551] When pruning the digests to optimize parallel-fetch, use
	  a separate dict so that the original digests are still available
	  if a file needs to be downloaded.

2008-06-03 05:41  zmedico

	* [r10550] Use float mtime instead of int for finer granularity in
	  vardbapi.match() cache staleness checks.

2008-06-03 04:04  zmedico

	* [r10549] Add modification threshold for BlockerCache.flush(), to
	  avoid wasteful IO.

2008-06-03 03:45  zmedico

	* [r10548] Fix vardbapi.flush_cache() so that it only updates the
	  cache when the number of uncached packages reaches a certain
	  threshold (currently 5). The cache file can be several megabytes
	  in size, so updating it for every vdb change is wasteful.

2008-06-03 02:24  zmedico

	* [r10547] Add support for a PORTAGE_RO_DISTDIRS variable. When a
	  given file does not exist in DISTDIR, search for the file in this
	  list of directories. Search order is from left to right. Note
	  that the current implementation works by creating a symlink
	  inside DISTDIR, but that may change in the future.

2008-06-03 01:41  zmedico

	* [r10546] Don't unset PORTAGE_BINPKG_FILE because it's readonly.

2008-06-01 18:28  zmedico

	* [r10541] Filter PORTAGE_BINPKG_FILE in save_ebuild_env().

2008-06-01 08:33  zmedico

	* [r10538] Fix typo.

2008-06-01 04:58  zmedico

	* [r10535] Mention masked packages in another --resume message.

2008-06-01 04:50  zmedico

	* [r10533] Reference depgraph.UnsatisfiedResumeDep instead of
	  mydepgraph since the latter can trigger an UnboundLocalError in
	  some cases (^C for example).

2008-06-01 04:47  zmedico

	* [r10532] Update the --skipfirst dropped packages warning to
	  mention "masking" in addition to unsatisfied dependencies.

2008-06-01 04:35  zmedico

	* [r10529] Update the UnsatisfiedResumeDep display to distinguish
	  masked packages from those with unsatisfied dependencies.

2008-06-01 04:27  zmedico

	* [r10528] Revert changes wrt argument atoms in the previous commit
	  since it's not really useful.

2008-06-01 01:37  zmedico

	* [r10526] Make --skipfirst tolerate masked packages by dropping
	  them (similar to how it would drop a package that has an
	  unsatisfied dependency).

2008-06-01 01:27  zmedico

	* [r10525] Fix EditablePackageSet.update() to create Atom instances
	  when necessary.

2008-05-31 23:10  zmedico

	* [r10523] Make PackageSet._setAtoms() use existing Atom instances
	  when available.

2008-05-31 20:02  zmedico

	* [r10521] Fix create_world_atom() to take a Package instance in
	  it's arguments.

2008-05-31 09:35  zmedico

	* [r10519] Add some isvalidatom() test cases with "null" and
	  missing category.

2008-05-31 09:24  zmedico

	* [r10518] Fix TypeError: 'tuple' object does not support item
	  assignment

2008-05-31 09:11  zmedico

	* [r10516] * Tweak isvalidatom() to treat "null" category as valid,
	  but missing category as invalid (previously both where treated as
	  invalid).
	  
	  * Fix a spot inside emerge's unmerge() function that sometimes
	  generates invalid atoms by adding an unnecessary "=" to the
	  front. Even when in cases that resulted in a valid atom here,
	  adding the "=" was redundant because dep_expand() does that
	  automatically now (for backward compat).

2008-05-31 02:06  zmedico

	* [r10514] Clean up reference to parts of the first graph for
	  --skipfirst.

2008-05-31 01:54  zmedico

	* [r10513] Optimize the new --skipfirst code so that in only has to
	  build a new depgraph one time when there are unsatisfied deps.
	  This works by recursively traversing the digraph to remove the
	  parent packages whose deps become unsatisfied when their
	  dependencies are pruned from the mergelist.

2008-05-30 23:46  zmedico

	* [r10511] Fix PackageSet.findAtomForPackage() to find the most
	  specific atom since it can affect behavior when deciding whether
	  or not to add a slot atom to the world file.

2008-05-30 21:14  zmedico

	* [r10509] Now that dbapi._iter_match() is guaranteed to return a
	  real iterator with a next method(), we can just call next() and
	  handle StopIteration.

2008-05-30 20:46  zmedico

	* [r10507] For consistency, make sure that a normal iterator is
	  always returned from dbapi._iter_match() (and never a list). This
	  way the caller can be sure that the returned object has a next()
	  method.

2008-05-30 20:19  zmedico

	* [r10505] Make the use_cache=0 listdir() implementation inside
	  vardbapi.cpv_all() rains a PermissionDenied error when
	  appropriate.

2008-05-30 09:56  zmedico

	* [r10503] Pass a mutable config instance into
	  get_masking_status(). Currently it doesn't matter for installed
	  packages but it's safer to be consistent to avoid accidental
	  breakage in the future.

2008-05-30 06:50  zmedico

	* [r10501] Make PackageSet.findAtomForPackage() just return the
	  first atom found since best_match_to_list() won't work correctly
	  for atoms matched via PROVIDE.

2008-05-30 01:08  zmedico

	* [r10499] Simplify None Package.slot handling in
	  match_from_list().

2008-05-30 00:37  zmedico

	* [r10497] Fix Atom attribute handling in get_operator() and
	  dep_getslot() to account for None return values.

2008-05-30 00:03  zmedico

	* [r10495] Create Atom instances earlier to avoid redundant
	  validation.

2008-05-29 23:40  zmedico

	* [r10493] When dropping deps from the resume list, make sure that
	  the loop can't be infinite.

2008-05-29 23:31  zmedico

	* [r10491] Use Package.metadata instead of calling dbapi.aux_get().

2008-05-29 23:10  zmedico

	* [r10489] Use a frozenset instead of a list for containment tests.

2008-05-29 22:54  zmedico

	* [r10487] Fix typo.

2008-05-29 22:34  zmedico

	* [r10485] Use izip() to eliminate temporary dict instances.

2008-05-29 21:00  zmedico

	* [r10482] Clean up references to unsatisfied_parents.

2008-05-29 20:52  zmedico

	* [r10481] Clean up reference to dropped_tasks when finished.

2008-05-29 20:44  zmedico

	* [r10480] When --skipfirst drops packages due to unsatisfied
	  dependencies, display a warning message with the list of dropped
	  packages.

2008-05-29 19:56  zmedico

	* [r10479] Clean up exception reference from previous commit.

2008-05-29 19:50  zmedico

	* [r10478] Make --skipfirst handle missing dependencies by dropping
	  the merge tasks that have missing dependencies. This involves
	  creating an entirely new depgraph each time that a missing
	  dependency is discovered. This isn't the most efficient approach
	  but it's simple and it works well.
	  
	  This new behavior can server as a fix for bug #12768 by calling
	  emerge --resume --skipfirst each time that emerge exits
	  unsuccessfully. This was possible before, but now packages with
	  unsatisfied dependencies will be properly identified and dropped
	  from the list.

2008-05-29 05:23  zmedico

	* [r10476] Save the content of CONFIG_MEMORY_FILE in
	  dblink.treewalk() _before_ unmerging other instances, in order to
	  avoid overwritting/undoing the pruning that's done during
	  unmerge.

2008-05-29 04:53  zmedico

	* [r10474] Make the unmerge time CONFIG_MEMORY_FILE pruning
	  slightly more aggressive, so that anything not claimed by another
	  package in the same slot is pruned.

2008-05-29 00:35  zmedico

	* [r10471] Filter out installed keyword masked packages when
	  populating RootConfig.visible_pkgs since otherwise such packages
	  can trigger undesireable results inside
	  depgraph._iter_atoms_for_pkg().

2008-05-29 00:32  zmedico

	* [r10470] Fix the code from bug #220341 so that it matches the
	  atom against the installed package, like it's supposed to.

2008-05-28 22:12  zmedico

	* [r10468] Skip redundant Atom construction in select_package().

2008-05-28 22:06  zmedico

	* [r10467] Update the fix from bug #220341 to protect USE deps from
	  being neglected.

2008-05-28 08:31  zmedico

	* [r10465] Bug #223447 - Adjust the "installed packages are masked"
	  display to recognize packages that are masked by keywords and are
	  eligible for uninstallation by depclean. This is a workaround for
	  the fact that depclean may fail to recognize that the package is
	  eligible for uninstall due to differences in visibility filtering
	  which can lead to differences in || dep evaluation. TODO: Share
	  visibility code to fix this inconsistency.

2008-05-28 01:27  zmedico

	* [r10462] Make the new behavior from bug #222439 conditional on
	  EAPI being something other than 0 or 1.

2008-05-28 01:13  zmedico

	* [r10461] Make set_term_size() handle the CommandNotFound
	  exception if stty is missing for some reason.

2008-05-28 00:37  zmedico

	* [r10460] Convert doman to use bash's =~ operator instead of
	  calling egrep.

2008-05-27 23:08  zmedico

	* [r10459] Bug #222439 - Add doman support for foo.lang.N
	  filenames. Behavior is as follows:
	  
	  foo.1 -> man/man1/foo.1 foo.lang.1 -> man/lang/man1/foo.1
	  
	  Thanks to Yuri Vasilevski for the initial patch. I've modified it
	  to use bash's =~ operator and corresponding $BASH_REMATCH array.

2008-05-27 10:20  zmedico

	* [r10455] Fix breakage due to frozenset being immutable.

2008-05-27 07:53  zmedico

	* [r10453] Fix typo.

2008-05-27 07:48  zmedico

	* [r10452] Make config._init_dirs() preserver /tmp and /var/tmp
	  permissions if those directories already exist. This gives
	  freedom to the user to adjust permissions to suit their taste.

2008-05-27 06:22  zmedico

	* [r10450] Fix a typo from the previous commit.

2008-05-27 06:08  zmedico

	* [r10448] Use new Package.use and iuse attributes to avoid extra
	  split() calls.

2008-05-27 05:45  zmedico

	* [r10447] Set Atom.use = None when there are no USE deps (instead
	  of the empty tuple returned from dep_getusedeps()).

2008-05-27 05:42  zmedico

	* [r10446] Repoman only checks IUSE for USE deps, so don't evaluate
	  conditional USE deps in this case.

2008-05-27 04:50  zmedico

	* [r10445] Fix dbapi._iter_match_use() to escape IUSE values when
	  necessary.

2008-05-27 04:37  zmedico

	* [r10443] Fix breakage in the BlockerDB constructor.

2008-05-27 04:10  zmedico

	* [r10441] Define __slots__ for the _use_dep class.

2008-05-27 04:04  zmedico

	* [r10440] Fix USE dep matching support in match_from_list() so
	  that it checks to make sure the package supports all specified
	  IUSE. This involves updating all Package, FakeVartree, and
	  BlockerDB constructor arguments to implement a
	  Package.root_config attribute that's used to access implicit
	  IUSE.

2008-05-27 00:49  zmedico

	* [r10438] Bug #223685 - Use the finally clause to collect elog
	  messages just before releasing the build dir lock, so they never
	  get missed.

2008-05-27 00:10  zmedico

	* [r10436] Add some debug output for arguments and their associated
	  atoms, to help in debugging problems similar to bug #223735.

2008-05-26 23:22  zmedico

	* [r10434] Don't silently swallow instances of UnpicklingError
	  since they are easily triggered by storing instances of custom
	  classes in a pickle.

2008-05-26 23:16  zmedico

	* [r10433] Don't silently swallow instances of UnpicklingError
	  since they are easily triggered by storing instances of custom
	  classes in a pickle.

2008-05-26 23:03  zmedico

	* [r10431] Avoid triggering "cPickle.UnpicklingError: Global and
	  instance pickles are not supported." errors that are triggered
	  when the pickle contains custom classes.

2008-05-26 20:12  zmedico

	* [r10429] Skip source_all_bashrcs() when $EBUILD_PHASE is not set.

2008-05-26 08:02  zmedico

	* [r10427] * Enable config.setcpv() to use a Package instance in
	  place of a cpv. * Make depgraph._select_package() pass Package
	  instances into setcpv() calls. * Enable the Package constructor
	  to use an iterable for metadata items.

2008-05-26 00:34  zmedico

	* [r10425] Fix a broken reference to the Package.cpv_slot
	  attribute.

2008-05-25 22:49  zmedico

	* [r10423] Fix breakage in Package constructor attribute
	  initialization.

2008-05-25 22:33  zmedico

	* [r10422] Remove unused code.

2008-05-25 21:57  zmedico

	* [r10421] Use the metadata wrapper to initialize Package slot and
	  use attributes.

2008-05-25 21:45  zmedico

	* [r10420] Remove the Package.cpv_slot attribute.

2008-05-25 21:34  zmedico

	* [r10419] * Add support for Package instances and USE deps in
	  match_from_list(). * Add USE dep matching support to
	  depgraph._iter_atoms_for_pkg().

2008-05-25 08:45  zmedico

	* [r10415] * Fix PackageSet.findAtomForPackage() to take a Package
	  instance as an argument. * Simplify
	  PackageSet.findAtomForPackage() by implementing it on top of
	  iterAtomsForPackage().

2008-05-25 08:04  zmedico

	* [r10413] Facilitate creation of Atom instances in a few obvious
	  places:
	  
	  * PackageSet._setAtoms() * AtomArg and PackageArg constructors.

2008-05-25 04:37  zmedico

	* [r10410] Remove redundant SLOT dep code in portdbapi.xmatch()
	  since it's now handled by dbapi._iter_match().

2008-05-25 03:05  zmedico

	* [r10400] Remove category validation cruft from catpkgsplit().

2008-05-25 02:56  zmedico

	* [r10399] Fix isvalidatom() so tests pass, and add a USE deps case
	  to the tests.

2008-05-25 02:20  zmedico

	* [r10398] * Fix dep_getusedeps() test to work with tuples. * Add
	  test cases for conditional USE deps.

2008-05-25 01:44  zmedico

	* [r10396] Add support for conditionals inside USE dependencies.
	  This is useful for cases in which the package satisfying a
	  dependency should have identical or opposite flag state relative
	  to the parent package.
	  
	  Conditionals are evaluated as follows:
	  
	  parent state conditional result x [x?] [x] -x [x?] [-x] x [-x?]
	  [-x] -x [-x?] [x]

2008-05-24 22:24  zmedico

	* [r10395] Fix broken dep_getusedeps() cache behavior so that it
	  returns the correct type.

2008-05-24 22:03  zmedico

	* [r10394] For dep_expand() backward compatibility, handle atoms
	  with missing '=' prefix which did not raise an error here before
	  the portage.dep.Atom class was introduced.

2008-05-24 21:33  zmedico

	* [r10393] Fix paren_reduce() so that it appropriately raises an
	  InvalidDependString() in some cases, instead of a nonsense
	  ValueError.

2008-05-24 21:23  zmedico

	* [r10392] Fix paren_reduce() so that it appropriately raises an
	  InvalidDependString() in some cases, instead of a nonsense
	  AttributeError.

2008-05-24 21:00  zmedico

	* [r10391] Fix use_reduce() so that it appropriately raises an
	  InvalidDependString instead of an IndexError in some cases (avoid
	  IndexError by using slice notation).

2008-05-24 20:35  zmedico

	* [r10390] Bug #223417 - Make the vardbapi.cpv_all() use_cache
	  parameter useful for forcing direct os.listdir() calls. This is
	  more of an issue now that these listdir() calls are frequently
	  triggered when merging packages (due to things like blocker and
	  preserve-libs handling).

2008-05-24 19:22  zmedico

	* [r10389] Bug #223417 - use floating point mtime for finer grained
	  validation in cachedir().

2008-05-23 18:51  zmedico

	* [r10388] Bug #220671 - Fix 'RuntimeError: Set changed size during
	  iteration' error.

2008-05-23 08:42  zmedico

	* [r10387] Bug #2272 - Extend dependency atom sytax to specify
	  enabled or disabled states of USE flags. Matching with the new
	  syntax is currently only supported in the dbapi classes and
	  dependency resolver (use matching does not work yet in config
	  files such as package.mask).

2008-05-21 16:05  genone

	* [r10383] Raise an error if the named repository doesn't exist

2008-05-20 19:42  zmedico

	* [r10381] When using vecho or eqawarn it comes in handy when
	  isolated-functions have been sourced. (branches/prefix r10380)

2008-05-20 03:06  zmedico

	* [r10377] Simplify cache code in vardbapi.aux_get().

2008-05-20 01:51  zmedico

	* [r10375] In vardbapi.aux_get(), don't mark cacheed metadata
	  invalid just because some of the values are missing.

2008-05-20 01:13  zmedico

	* [r10373] Inside vardbapi.aux_get(), do more validation on the
	  cache data to ensure it contains the expected data types.

2008-05-19 23:39  zmedico

	* [r10372] Adjust code order to organize it a bit. (branches/2.1.2
	  r10371)

2008-05-19 23:19  zmedico

	* [r10369] Validate and normalize target_root earlier in the config
	  constructor.

2008-05-19 23:06  zmedico

	* [r10367] Fix vardbapi.aux_get() logic so that it will correctly
	  pull the metadata value corresponding to an unrecognized metadata
	  key.

2008-05-19 20:29  zmedico

	* [r10364] Exclude "env" from use in variable substitution since we
	  want to avoid any interaction with the calling environment that
	  might lead to unexpected results.

2008-05-18 22:43  zmedico

	* [r10361] In unmerge(), flush the vardbapi aux_get() cache to disk
	  before releasing the vardb lock.

2008-05-18 22:27  zmedico

	* [r10360] Tweak vardbapi.aux_get() cache logic a bit.

2008-05-18 22:18  zmedico

	* [r10359] * To avoid excessive IO on each call to
	  LinkageMap.rebuild(), cache NEEDED.* files via
	  vardbapi.aux_get().
	  
	  * Make vardbapi.aux_get() preserve newlines in multi-line
	  metadata such as NEEDED.* and CONTENTS.

2008-05-18 19:00  zmedico

	* [r10357] Bug #222623 - Use "regardless" instead of "irregardless"
	  since the latter is considered to be incorrect.

2008-05-17 22:44  zmedico

	* [r10351] Add the environment and some more files to the existing
	  make.defaults variable substitution support. Variable
	  substitution occurs in the following order:
	  
	  * env.d * env * make.globals * make.defaults * make.conf

2008-05-17 19:55  zmedico

	* [r10350] Fix th logic from the previous commit.

2008-05-17 18:49  zmedico

	* [r10349] Add back the "install new portage asap" behavior that
	  got lost when that area of code was rewritten.

2008-05-16 21:41  zmedico

	* [r10346] Detect and filter ebuilds that have invalid versions in
	  portdbapi.cp_list().

2008-05-16 05:54  zmedico

	* [r10344] Add dev-util/ftjam to the RDEPEND.suspect list as per
	  bug #221537, comment #3. Leaving dev-util/jam in place, in case
	  it revives somehow.

2008-05-14 18:56  zmedico

	* [r10337] Add a note about interaction between
	  FEATURES="metadata-transfer" and eclasses from PORTDIR_OVERLAY
	  that override eclasses from PORTDIR.

2008-05-14 18:04  zmedico

	* [r10335] Skip blocker atoms for the RDEPEND.suspect check.

2008-05-14 17:53  zmedico

	* [r10333] Bug #221537 - Add a new "RDEPEND.suspect" check for
	  packages in RDEPEND that usually only belong in DEPEND.

2008-05-13 22:50  genone

	* [r10329] add xterm-color and interix to list of valid terminals

2008-05-13 22:44  genone

	* [r10328] Remove 'eselect compiler' references

2008-05-13 22:41  genone

	* [r10327] Prefer deb2tgz over ar for unpacking .deb files when
	  installed (patch by Fabian Groffen,
	  http://archives.gentoo.org/gentoo-portage-dev/msg_2f9c8543016f1a96f9122aca0ec35ded.xml)

2008-05-13 22:38  genone

	* [r10326] make debug mode configurable

2008-05-13 22:33  genone

	* [r10325] Add subversion support for repoman (patch by Fabien
	  Groffen,
	  http://archives.gentoo.org/gentoo-portage-dev/msg_b7080f212c3eb09c943a1ce5a7356f01.xml)

2008-05-13 20:05  genone

	* [r10324] ignore consumers from the current package instance when
	  checking if a preserved library can be removed

2008-05-13 19:36  genone

	* [r10322] Check vercmp() return value to avoid arbitrary results
	  in case it returns None

2008-05-13 12:32  vapier

	* [r10320] fix man markup for PORTAGE_FETCH_RESUME_MIN_SIZE

2008-05-13 06:17  zmedico

	* [r10318] capitalize Portage

2008-05-13 06:12  zmedico

	* [r10316] Describe how we limit the probability that temporary
	  simultaneous installation of blocking packages will cause some
	  sort of problem.

2008-05-13 03:38  zmedico

	* [r10314] Bug #220533 - Document FEATURES="skiprocheck".

2008-05-12 23:01  zmedico

	* [r10313] Define the world_candidates variable earlier to make
	  sure it's in scope.

2008-05-12 22:58  zmedico

	* [r10312] Filter sets that are not "world candidates" from the
	  favorites list at the last moment since the favorites list needs
	  to be complete for depgraph.loadResumeCommand() to operate
	  correctly.

2008-05-12 22:21  zmedico

	* [r10310] In the warning about eclasses in overlay overriding
	  eclasses from PORTDIR, also advise the user to add
	  FEATURES="metadata-transfer" to make.conf.

2008-05-12 16:47  genone

	* [r10303] don't add package sets to 'world' that have
	  world-candidate=False

2008-05-11 23:56  zmedico

	* [r10297] Simplify the code for bug #221755 now that the
	  substitution map is updated automatically by getconfig().

2008-05-11 23:51  zmedico

	* [r10296] Make the variable substitution code for bug #221755
	  slightly more efficient by allowing getconfig() to directly
	  update the map that's used for substitutions.

2008-05-11 23:45  zmedico

	* [r10295] 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).

2008-05-11 23:22  zmedico

	* [r10293] 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.

2008-05-11 19:37  zmedico

	* [r10291] Add back the warning for DISTDIR about storing stuff
	  inside PORTDIR.

2008-05-11 19:35  zmedico

	* [r10290] Sync make.conf.example with make.conf.5 for bug #220111.

2008-05-11 19:21  zmedico

	* [r10289] 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.

2008-05-11 18:25  zmedico

	* [r10288] Make the summary more accurate.

2008-05-10 18:12  zmedico

	* [r10286] 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.

2008-05-10 17:09  zmedico

	* [r10284] eachother -> each other

2008-05-10 08:47  zmedico

	* [r10281] Always include satisfied blockers as an indicator that
	  blocking packages will be temporarily installed simultaneously.

2008-05-10 08:35  zmedico

	* [r10279] 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.

2008-05-10 08:07  zmedico

	* [r10277] 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.

2008-05-09 19:12  zmedico

	* [r10275] 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.

2008-05-09 19:04  zmedico

	* [r10273] Bug #221071 - Prevent display_problems() from
	  redundantly displaying the exact same merge list a second time.

2008-05-09 18:36  zmedico

	* [r10271] 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.

2008-05-09 15:49  zmedico

	* [r10269] Describe how file collisions between blocking packages
	  are resolved when they are temporarily installed simultaneously.

2008-05-09 08:45  zmedico

	* [r10266] Simplify code for derived Package attributes.

2008-05-09 04:17  zmedico

	* [r10264] 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.

2008-05-09 03:41  zmedico

	* [r10262] If an uninstall task fails inside MergeTask.merge(), use
	  an UninstallFailure exception to handle it instead of allowing
	  unmerge() to call exit().

2008-05-09 03:00  zmedico

	* [r10260] Use set.instersection() instead of a for loop.

2008-05-09 02:28  zmedico

	* [r10258] Allow scheduled uninstalls to be selected the same way
	  as other leaf nodes.

2008-05-09 02:14  zmedico

	* [r10256] Make the fix for bug #220341 better by checking all
	  selected packages for matching cpv rather than just the last one.

2008-05-09 01:49  zmedico

	* [r10254] Optimize BlockerDB.findInstalledBlockers() so that it
	  doesn't unnecessarily try to match packages against an empty set
	  of blocker atoms.

2008-05-08 21:51  zmedico

	* [r10252] Bug #220987 - Fix UnboundLocalError for 'skip' that only
	  occurs when using alternate ROOT. Thanks to Ryan Tandy
	  <tarpman@gmail.com>.

2008-05-08 21:18  zmedico

	* [r10250] 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.

2008-05-08 19:46  zmedico

	* [r10246] Remove stale uninstall tasks from scheduled_uninstalls
	  when necessary.

2008-05-08 19:03  zmedico

	* [r10241] Remove unnecessary BlockerDB and BlockerCache
	  _installed_pkgs attributes.

2008-05-08 18:35  zmedico

	* [r10239] Don't save "uninstall" tasks in the resume list since
	  they'll be regenerated by dependency calculations upon resume.

2008-05-08 17:37  zmedico

	* [r10237] 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.

2008-05-08 17:08  zmedico

	* [r10235] Bug #220775 - Source isolated-functions.sh before trying
	  to call vecho.

2008-05-08 16:52  zmedico

	* [r10233] Bug #220689 - Fix package selection logic so that it
	  doesn't trigger the code path from bug 219369 in some unwanted
	  cases.

2008-05-08 10:33  zmedico

	* [r10231] Don't use try/finally to close atomic_ofstream since we
	  don't want to call close() on this stream if an error occurs.

2008-05-08 09:26  zmedico

	* [r10229] Fix findInstalledBlockers() to check for blockers in
	  both directions.

2008-05-08 07:48  zmedico

	* [r10225] 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.

2008-05-07 18:49  zmedico

	* [r10224] Tolerate InvalidDependString exceptions when checking
	  visibility of installed packages.

2008-05-07 17:06  zmedico

	* [r10222] Fix spelling of "SATISFIED". Thanks to Arfrever.

2008-05-06 20:26  zmedico

	* [r10220] 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.

2008-05-06 01:34  zmedico

	* [r10218] Make satisfied blockers "darkblue" by default.

2008-05-06 00:36  zmedico

	* [r10216] For consistency with the merge list display, show
	  "block" instead of "blocker" in the summary.

2008-05-06 00:12  zmedico

	* [r10214] Display satisfied blockers in green and show a small "b"
	  instead of a big "B" (similar to "f" for satisfied fetch
	  restrictions).

2008-05-05 21:50  zmedico

	* [r10212] Use find -path -or -name to match basenames of files in
	  INSTALL_MASK as suggested by solar in bug #219286, comment #8.

2008-05-05 21:06  zmedico

	* [r10210] Cache results for Task.__hash__() calls.

2008-05-05 19:29  zmedico

	* [r10208] Use vardbapi._excluded_dirs to filter results inside
	  cp_list().

2008-05-05 19:22  zmedico

	* [r10206] Add -MERGING-.* to vardbapi._excluded_dirs.

2008-05-05 18:40  zmedico

	* [r10204] * 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().

2008-05-05 16:55  zmedico

	* [r10202] Handle a potential InvalidData exception in
	  vardbapi.cp_all().

2008-05-05 08:58  genone

	* [r10200] fix preserve_libs logic to properly account for the
	  current package instance

2008-05-05 06:35  zmedico

	* [r10198] Add "package" to EBUILD_PHASES since it's possible for
	  einfo to be called by install_mask() during that phase.

2008-05-05 05:56  zmedico

	* [r10195] 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.

2008-05-05 05:07  zmedico

	* [r10194] * Fix --buildpkgonly logic to avoid an unwanted code
	  path. * Remove unnecessary mtimedb.pop("resume", None) call.

2008-05-05 04:44  zmedico

	* [r10192] 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.

2008-05-05 03:30  zmedico

	* [r10190] Use writemsg() to warn about InvalidDependString
	  exceptions that may occur for installed packages.

2008-05-05 03:27  zmedico

	* [r10188] 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.

2008-05-05 03:18  zmedico

	* [r10186] Fix misplaced variable.

2008-05-04 19:41  zmedico

	* [r10184] In the package uninstall sanity check, use RDEPEND from
	  the currently running 'sys-apps/portage' instance to create a set
	  of protected atoms.

2008-05-04 14:16  genone

	* [r10182] actually remove libraries that aren't strictly needed
	  from the preservation candidate list

2008-05-04 13:00  genone

	* [r10180] remove NEEDED from list of metadata variables (and
	  associated special handling) as it's no longer used

2008-05-04 12:55  genone

	* [r10179] remove obsolete class

2008-05-04 08:06  zmedico

	* [r10171] Similar to the sys-apps/portage protection, also add
	  protection against inappropriately uninstalling either
	  app-shells/bash or dev-lang/python.

2008-05-04 06:39  zmedico

	* [r10165] Do more validation of resume data from the mtimedb.

2008-05-04 05:25  zmedico

	* [r10162] In order to fix --tree display behave normally in
	  --resume mode, properly add to the digraph all packages matched
	  by arguments.

2008-05-04 04:20  zmedico

	* [r10160] Fix misplaced variable used as parameter to
	  _load_favorites().

2008-05-04 03:46  zmedico

	* [r10157] Fix package counters in depgraph.display() so they're
	  only incremented for "ordered" display nodes.

2008-05-04 03:24  zmedico

	* [r10155] Fix some unwanted interaction between --tree display and
	  unsatisfied blockers in depgraph.display().

2008-05-04 02:09  zmedico

	* [r10153] Remove obsolete tuple() usage inside depgraph.display().

2008-05-04 01:48  zmedico

	* [r10151] Fix spelling of _show_unsatisfied_blockers().

2008-05-04 01:04  zmedico

	* [r10149] In BlockerData._load(), salvage as much cache as
	  possible when some seems to be corrupt.

2008-05-04 00:48  zmedico

	* [r10147] Validate all the data types inside BlockerCache._load()
	  so that any corruption is detected as soon as possible.

2008-05-03 23:09  zmedico

	* [r10145] 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.

2008-05-03 21:57  zmedico

	* [r10143] When a --resume list is rejected due to unsatisfied
	  deps, display a list of missing deps and which packages they
	  belong to.

2008-05-03 21:22  zmedico

	* [r10141] Don't clean out old resume lists when in --ask or
	  --pretend mode.

2008-05-03 21:08  zmedico

	* [r10139] When loadResumeCommand() rejects a resume list, give a
	  more informative explanation.

2008-05-03 19:48  zmedico

	* [r10137] Fix display_problems() logic some more.

2008-05-03 19:39  zmedico

	* [r10136] Fix logic so display_problems() gets called every time
	  display() does.

2008-05-03 19:00  zmedico

	* [r10134] 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.

2008-05-03 08:21  zmedico

	* [r10132] * 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.

2008-05-03 05:53  zmedico

	* [r10130] Similar to the circular dependency display, handle the
	  unsatisfied blocker display inside _serialize_tasks() since
	  that's a convenient place to bail out.

2008-05-03 04:16  zmedico

	* [r10127] Use absolute paths for files in ${DISTDIR}. Thanks to RB
	  <aoz.syn@gmail.com> for this patch.

2008-05-03 04:13  zmedico

	* [r10126] Buf #219294 - Fix 'date' and 'cut' arguments for BSD
	  userland. Thanks to RB <aoz.syn@gmail.com> for this patch.

2008-05-03 03:47  zmedico

	* [r10124] Also move mtimedb resume list validation earlier.

2008-05-03 03:43  zmedico

	* [r10123] 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.

2008-05-03 03:27  zmedico

	* [r10121] Make --nodepa automatically disable --tree.

2008-05-03 02:55  zmedico

	* [r10119] Fix depgraph.loadResumeCommand() to identify an
	  unsatisfied dependency and invalidate the resume list in that
	  case.

2008-05-03 02:24  zmedico

	* [r10117] Delete the resume list(s) if there is an unsatisfied
	  block.

2008-05-03 02:17  zmedico

	* [r10116] Add --nodeps to the parallel-fetch --resume options
	  since recalculation of deps is a a waste here.

2008-05-03 02:14  zmedico

	* [r10115] Fix --resume mode to check for unsatisfied blockers and
	  bail out when necessary.

2008-05-03 01:42  zmedico

	* [r10114] * 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.

2008-05-02 22:32  zmedico

	* [r10112] Add a PackageVirtualDbapi.__iter__() method and use it
	  to iterate over all installed packages in
	  depgraph.validate_blockers().

2008-05-02 22:11  zmedico

	* [r10110] Use match_pkgs() to simplify package comparison.

2008-05-02 21:47  zmedico

	* [r10108] Move the blocker cache validation into
	  depgraph.validate_blockers().

2008-05-02 21:09  zmedico

	* [r10106] In depgraph.validate_blockers(), discard any "uninstall"
	  tasks scheduled by previous calls, since those tasks may not make
	  sense given the current graph state.

2008-05-02 20:30  zmedico

	* [r10104] When searching for a "sys-apps/portage" installation
	  task, use match_pkgs() instead of sequential search.

2008-05-02 20:16  zmedico

	* [r10102] Use Package.cp attribute instead of calling
	  cpv_getkey().

2008-05-02 19:58  zmedico

	* [r10100] Use Package instance attributes to clean up and simplify
	  depgraph.validate_blockers().

2008-05-02 19:20  zmedico

	* [r10098] In depgraph._serialize_tasks(), filter "nomerge" nodes
	  at a more appropriate place.

2008-05-02 19:02  zmedico

	* [r10096] In depgraph._complete_graph(), use cached Package
	  instances instead of constructing new ones.

2008-05-02 18:27  zmedico

	* [r10094] Validate resume list data some more.

2008-05-02 17:47  zmedico

	* [r10092] 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.

2008-05-02 10:46  genone

	* [r10086] Update documentation for package set configuration.
	  Original patch by Arfrever Frehtes Taifersar Arahesis

2008-05-02 10:04  genone

	* [r10085] rename NEEDED.2 to NEEDED.ELF.2 to allow other ABI
	  formats to use a different syntax

2008-05-02 09:35  genone

	* [r10083] fix typo

2008-05-02 09:28  genone

	* [r10082] use special symlink comparison code (original patch from
	  prefix r9499)

2008-05-02 08:20  genone

	* [r10081] v2 of FEATURES=preserved-libs, using LinkageMap instead
	  of the now removed LibraryPackageMap class

2008-05-02 05:09  genone

	* [r10080] do not consider sets to be installed that are about to
	  be unmerged

2008-05-02 05:00  genone

	* [r10079] move cleaning of sets out of package loop

2008-05-02 04:57  genone

	* [r10078] properly remove sets from 'world' when unmerging

2008-05-02 04:17  genone

	* [r10077] add config option for package sets to not be recorded in
	  'world'

2008-05-02 03:24  genone

	* [r10075] check if a given package set is defined more than once

2008-05-02 03:23  genone

	* [r10073] remove 'sets/' name-prefix for file-based package sets

2008-05-02 03:23  zmedico

	* [r10072] Fix broken variable references found by pyflakes.

2008-05-02 02:56  zmedico

	* [r10070] 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.

2008-05-02 02:53  genone

	* [r10069] check if PORTAGE_TMPDIR is mounted readonly/noexec (bug
	  #219957)

2008-05-02 02:27  zmedico

	* [r10067] Bug #219837 - Adjust date calculations some more and
	  show an informative ewarn message when bailing out due to a newer
	  snapshot being unavailable.

2008-05-01 20:33  zmedico

	* [r10065] Fix variable rename breakage: pkg -> pkg.cpv

2008-05-01 19:15  zmedico

	* [r10062] When adding blockers for installed packages to the
	  graph, use cached Package instances instead of constructing new
	  ones.

2008-05-01 07:26  zmedico

	* [r10056] Detect an old version of tarsync and use bzip2
	  compression in that case.

2008-05-01 05:42  zmedico

	* [r10054] Sort blockers when caching them.

2008-05-01 05:30  zmedico

	* [r10052] Don't add blockers to the graph more times than
	  necessary.

2008-05-01 04:17  zmedico

	* [r10050] * Add a Package.operation attribute and use it to
	  distinguish "uninstall" operations.

2008-04-30 18:25  zmedico

	* [r10047] Bug #219837 - Adjust date calculations to improve
	  accuracy.

2008-04-30 09:00  zmedico

	* [r10045] Handle a KeyError when validating the blocker cache.

2008-04-30 08:46  zmedico

	* [r10043] Fix broken comparison, compare with None instead of
	  nonzero.

2008-04-30 08:40  zmedico

	* [r10042] Fix logic to re-use blockers from the graph when
	  populating the blocker cache.

2008-04-30 08:30  zmedico

	* [r10041] * 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 every time.

2008-04-30 00:09  zmedico

	* [r10039] Fix "deep" logic in depgraph._complete_graph() so that
	  it always properly recognizes whether or not "deep" was
	  previously enabled.

2008-04-29 18:02  zmedico

	* [r10037] Make unmerge() group packages by cat/pn when the order
	  doesn't matter, so the display appears like earlier versions of
	  portage.

2008-04-29 03:13  zmedico

	* [r10035] Prevent some more visible downgrades from possibly being
	  missed (bug #219369).

2008-04-29 03:02  zmedico

	* [r10034] Prevent some more visible downgrades from possibly being
	  missed (bug #219369).

2008-04-28 22:22  zmedico

	* [r10032] Handle a potential KeyError in depgraph.display() when
	  in --resume mode and a package scheduled for uninstall is no
	  longer installed.

2008-04-28 21:15  zmedico

	* [r10030] When a package scheduled for uninstall isn't installed
	  anymore, move on to the next task.

2008-04-28 20:44  zmedico

	* [r10028] Fix spelling.

2008-04-28 20:29  zmedico

	* [r10026] Add a Package.pv_split attibute to optimize version
	  comparison operators.

2008-04-28 17:33  zmedico

	* [r10024] For bug #211833, be explicit that the pkg_prerm() and
	  pkg_postrm() removal phases are the ones that are skipped.

2008-04-28 17:20  zmedico

	* [r10022] 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.

2008-04-28 06:00  zmedico

	* [r10020] Add comma to ("__weakref__",) so that it's a tuple
	  instead of a string. Thanks to ferringb.

2008-04-28 03:35  zmedico

	* [r10018] Try to format the elog message better for bug #211833,
	  separating paragraphs for easier reading.

2008-04-28 02:34  zmedico

	* [r10016] Use write_atomic() for manifest updates.

2008-04-28 02:03  zmedico

	* [r10014] Fix PackageVirtualDbapi.cpv_inject() to make sure
	  packages with duplicate cpv or slot are handled correctly.

2008-04-28 01:22  zmedico

	* [r10009] 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.

2008-04-28 01:02  zmedico

	* [r10008] Add missing slot comparison when looking for higher slot
	  in _iter_atoms_for_pkg().

2008-04-28 00:52  zmedico

	* [r10007] Bug #218854 - Fix depgraph._iter_atoms_for_pkg() so that
	  argument atoms only match the highest visible slot.

2008-04-27 21:25  zmedico

	* [r10006] Fix the EbuildQuote check to ignore "echo" and the elog
	  functions since people might not want quotes in those cases.

2008-04-27 20:52  zmedico

	* [r10005] * Remove the only remaining sys.exit() calls inside the
	  depgraph class. * Fix _unknown_internal_error() to work with zero
	  arguments.

2008-04-27 20:15  zmedico

	* [r10003] Never uninstall sys-apps/portage except through
	  replacement.

2008-04-27 19:52  zmedico

	* [r10001] 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.

2008-04-27 09:19  genone

	* [r9998] fix logic error

2008-04-27 08:56  genone

	* [r9997] actually use rpath for the internal lib check

2008-04-27 08:22  genone

	* [r9996] some minor code fixes

2008-04-27 07:22  zmedico

	* [r9994] Take the classes that initialize variables in __slots__
	  with keyword constructor arguments and make them all derive from
	  a new SlotObject class.

2008-04-27 06:31  zmedico

	* [r9992] Create a digraph.difference_update() method and use it to
	  amortize the cost of removing nodes from the digraph.order list.

2008-04-27 00:43  zmedico

	* [r9990] Remove unnecessary "mydbapi" variable in
	  depgraph.display().

2008-04-27 00:10  zmedico

	* [r9983] 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.

2008-04-26 20:23  zmedico

	* [r9982] Add a PackageVirtualDbapi.copy() method.

2008-04-26 20:16  zmedico

	* [r9981] Use digraphs to clean up blocker reference counting in
	  the depgraph.

2008-04-26 05:13  zmedico

	* [r9980] Don't assume that altlist() will succeed inside
	  display_problems().

2008-04-26 03:55  zmedico

	* [r9979] * Add a Blocker class to use instead of tuples. * Fix the
	  Task constructor to properly traverse __slots__ of all inherited
	  classes.

2008-04-26 01:10  genone

	* [r9978] add LibraryPackageMap replacement using NEEDED.2 files

2008-04-25 22:26  zmedico

	* [r9977] 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().

2008-04-25 18:39  zmedico

	* [r9976] Bug #219251 - Fix typo in PORTDIR_OVERLAY when searching
	  for sets.conf files. Thanks to Manuel Nickschas
	  <sputnick@quassel-irc.org> for fixing this.

2008-04-25 06:33  zmedico

	* [r9972] s/be only/only be/

2008-04-25 03:41  genone

	* [r9971] remove debug output

2008-04-25 03:39  genone

	* [r9970] as NEEDED files don't conain enough formation for e.g.
	  preserve-libsto work properly and we don't want to change the
	  format of existing files create another file including additional
	  information

2008-04-25 03:16  zmedico

	* [r9968] Add some more spinner.update() calls in possibly time
	  consuming loops.

2008-04-25 03:00  genone

	* [r9967] remove unused function

2008-04-25 01:53  zmedico

	* [r9965] 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).

2008-04-24 20:43  zmedico

	* [r9964] Update description of "complete" depgraph param.

2008-04-24 20:40  zmedico

	* [r9963] Rename the "consistent" depgraph parameter to "complete"
	  since what it really means is that the graph will be complete in
	  the sense that no known dependencies are neglected.

2008-04-24 03:58  zmedico

	* [r9959] Add a note about automatic uninstallation to solve
	  blockers.

2008-04-24 03:17  zmedico

	* [r9956] Fix interaction between automatic uninstall and options
	  like --pretend, --fetchonly, and --buildpkgonly.

2008-04-24 02:55  zmedico

	* [r9955] Handle potential InvalidDependString exceptions when
	  match packages to system and world atoms in depgraph.altlist().

2008-04-24 02:48  zmedico

	* [r9954] Fix broken mtimedb resume list handling for automatic
	  uninstall tasks.

2008-04-24 02:31  zmedico

	* [r9953] Combine --nodeps spinner logic.

2008-04-24 02:21  zmedico

	* [r9952] Bug #172812 - When automatically uninstalling packages,
	  build the next package in the merge list before executing
	  scheduled uninstall tasks.

2008-04-24 02:09  zmedico

	* [r9951] Split out a _dequeue_uninstall_tasks() method.

2008-04-24 01:49  zmedico

	* [r9950] Reset the state variables for leaf node selection in
	  depgraph.altlist() when appropriate.

2008-04-23 23:58  zmedico

	* [r9949] Bug #172812 - Protect packages from being removed from
	  the world file during automatic uninstallation.

2008-04-23 23:53  zmedico

	* [r9948] Bug #172812 - Document new automatic uninstallation
	  behavior in the "Conflict Avoidance" section.

2008-04-23 23:04  zmedico

	* [r9947] s/unmerge/uninstall/ for consistency.

2008-04-23 22:37  zmedico

	* [r9946] Bug #172812 - Automatically uninstall packages to avoid
	  blocker conflicts. The intention is to only uninstall packages
	  that would be removed by --depclean (after the updates) anyway.
	  To prevent automatic uninstallation of packages that the user
	  probably wants to keep, the following types of packages will not
	  be automatically unmerged:
	  
	  * Installed packages that have been pulled into the current
	  dependency graph. Note that this check is not necessarily
	  complete unless the --complete-graph option is enabled, making
	  other sanity checks necessary.
	  
	  * Installed packages matched by atoms from the system set. For
	  safety, these are unmerged after being replaced by another
	  version.
	  
	  * Installed packages matched by atoms from the world set, if
	  there is no matching replacement in the current dependency graph.

2008-04-22 23:40  zmedico

	* [r9945] Bug #172812 - Add an Uninstall class derived from the
	  Package class, for packages that may need to be uninstalled to
	  avoid conflicts.

2008-04-22 18:29  zmedico

	* [r9943] Make dir_get_metadata() retry if a
	  httplib.ResponseNotReady exception occurs.

2008-04-21 19:43  zmedico

	* [r9941] Swap --nospinner and --oneshot for alphabetical ordering.

2008-04-21 19:41  zmedico

	* [r9940] Bug #218439 - Improve alignment in short emerge --help
	  options output.

2008-04-21 18:54  zmedico

	* [r9938] 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.

2008-04-21 16:55  zmedico

	* [r9936] In action_metadata(), properly put the source cache in
	  readonly mode.

2008-04-21 05:14  zmedico

	* [r9934] Document FEATURES="metadata-transfer" changes some more.

2008-04-21 04:26  zmedico

	* [r9932] Fix portage version, should be >=2.1.5.

2008-04-21 04:00  zmedico

	* [r9930] * 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.

2008-04-20 20:50  zmedico

	* [r9928] Bug #218559 - Make portdbapi automatically add sandbox
	  write access to self.depcachedir when appropriate. This makes the
	  portageq blanket sandbox exemption unnecessary.

2008-04-18 21:30  zmedico

	* [r9926] Add a new part for "Dependency Resolution".

2008-04-18 04:13  zmedico

	* [r9924] Bug #218202 - Make sure the spinner is quiet in --nodep
	  mode.

2008-04-18 01:43  zmedico

	* [r9922] Make the ccache userpriv permission check from bug
	  #162542 less sensitive by skipping permission checks on files and
	  just checking the directories.

2008-04-16 22:29  zmedico

	* [r9920] Remove redundant version sorting in
	  _expand_new_virtuals() since the dbapi match results are already
	  sorted.

2008-04-16 18:08  zmedico

	* [r9918] Fix portdbapi.getfetchlist() so that it doesn't
	  unnecessarily calculate USE when the "all" parameter is True.

2008-04-16 18:02  zmedico

	* [r9916] 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.

2008-04-16 17:54  zmedico

	* [r9914] Bug #217905 - Fix portdbapi.getfetchlist() to correctly
	  calculate USE when the useflags parameter is not passed in.

2008-04-16 00:19  zmedico

	* [r9912] Handle potential InvalidDependString exceptions from
	  visible().

2008-04-15 23:11  zmedico

	* [r9910] Inside dblink.unmerge(), call self.updateprotect() just
	  in case anything has changed since the dblink instance was
	  constructed.

2008-04-15 17:54  zmedico

	* [r9906] 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.

2008-04-15 17:14  zmedico

	* [r9904] 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.

2008-04-15 06:13  zmedico

	* [r9901] 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 in Bug #163801#c17,
	  where we want kaffe to satisfy virtual/jdk-1.4 without an extra
	  jvm being pulled in unnecessarily.

2008-04-15 03:49  zmedico

	* [r9900] 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.

2008-04-14 23:52  zmedico

	* [r9898] Bug #217664 - Fix emerge 'by path' package argument
	  handling so that Package instances are properly cached (avoiding
	  a KeyError later).

2008-04-14 21:13  zmedico

	* [r9896] 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.

2008-04-14 19:18  zmedico

	* [r9895] Fix issues with an empty string being passed into
	  PreservedLibsRegistry.register() now that COUNTER is not loaded
	  via config.load_infodir(). Thanks to grobian for reporting.

2008-04-14 17:00  zmedico

	* [r9891] Revert back to using startwith because I screwed up my
	  benchmark and it turns out starswith is faster than using regular
	  expressions.

2008-04-14 16:32  zmedico

	* [r9890] When regenerating USE_EXPAND in config.setcpv(), improve
	  performance by using regular expression instead of
	  str.startswith().

2008-04-14 01:23  zmedico

	* [r9886] Fix some breakage in the allow_unsatisfied handling.

2008-04-14 01:12  zmedico

	* [r9885] Call depgraph._add_dep() to add package dependencies to
	  the graph as soon as possible rather than pushing them onto the
	  stack.

2008-04-14 00:59  zmedico

	* [r9884] Split out a depgraph._add_dep() method.

2008-04-14 00:22  zmedico

	* [r9883] s/timetasmp/timestamp/

2008-04-14 00:09  zmedico

	* [r9882] Fix some more broken logic inside WorldSet.load().

2008-04-14 00:03  zmedico

	* [r9881] Fix buggy logic in WorldSet.load() that causes it to
	  discard all of it's atoms in some cases (leading to loss of the
	  whole world file).

2008-04-13 23:18  zmedico

	* [r9879] * 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.

2008-04-13 21:49  zmedico

	* [r9874] To optimize consistency of atom selections, add all of
	  the root packages to the graph before processing any
	  dependencies.

2008-04-13 19:57  zmedico

	* [r9873] Improve lookahead for new-style virtuals:
	  
	  * Substitue the graph tree for the vartree in dep_check() since
	  we want atom selections to be consistent with package selections
	  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 a 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.

2008-04-13 19:17  zmedico

	* [r9872] Fix the _dep_check_composite_db visibility filtering some
	  more.

2008-04-13 19:03  zmedico

	* [r9871] Fix _dep_check_composite_db.match() so that it doesn't
	  exempt the highest slot from visibility checks.

2008-04-13 18:01  zmedico

	* [r9870] 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.

2008-04-13 07:49  genone

	* [r9866] store sets in a different physical location than normal
	  packages for 'world' (makes ferringb a bit happier, and might
	  have other advantages in the future)

2008-04-13 07:43  zmedico

	* [r9865] Convert st_mtime to long for movefile() return type.

2008-04-13 07:32  zmedico

	* [r9864] Make movefile() tolerant to EPERM errors that can be
	  raised from utime() calls. Instead of failing, use stat() to
	  return the mtime if possible.

2008-04-13 05:36  genone

	* [r9862] fix check for other lib copies to properly exclude the
	  current package

2008-04-13 01:53  zmedico

	* [r9860] 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).

2008-04-12 20:32  zmedico

	* [r9858] Fix the filtering for bug #215016:
	  
	  * fix broken comparison for he iuse filtering * filter out any
	  duplicates that variable may contain

2008-04-12 19:52  zmedico

	* [r9856] 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.

2008-04-12 19:37  zmedico

	* [r9854] * Optimize config.setcpv() to return early if IUSE has
	  not changed since the previous setcpv() call.
	  
	  * Add EBUILD_PHASE to the blacklisted variables list.

2008-04-12 18:44  zmedico

	* [r9852] 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().

2008-04-12 09:16  zmedico

	* [r9850] Make binarytree.prevent_collision() adjust permissions on
	  directories and raise a PermissionDenied error if the required
	  directories is not writable.

2008-04-11 23:32  zmedico

	* [r9848] Add some notes for the parallel-fetch feature and the new
	  --complete-graph option for emerge.

2008-04-11 22:56  zmedico

	* [r9846] Rename the undocumented --conistent option to
	  --complete-graph and add some docs.

2008-04-11 21:58  zmedico

	* [r9844] Make file_get() redirect FETCHCOMMAND output to stdout
	  just like portage.fetch() does. Thanks to Ramereth for reporting.

2008-04-11 21:19  zmedico

	* [r9842] Fix 'undefined name' errors found by pyflakes.

2008-04-11 20:23  zmedico

	* [r9840] Fix the code from the previous commit so that it doesn't
	  try to pull USE from a portdbapi instance (like when called by
	  repoman) since portdbapi doesn't return USE in aux_get() calls.

2008-04-11 20:11  zmedico

	* [r9839] 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.

2008-04-11 19:48  zmedico

	* [r9837] Make doebuild() bail out early with a PermissionDenied
	  error if there is no write access to $PKGDIR.

2008-04-11 19:03  zmedico

	* [r9835] Remove unused infodir variable.

2008-04-11 19:01  zmedico

	* [r9834] 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.

2008-04-11 18:46  zmedico

	* [r9832] In config.setcpv() and load_infodir(), always set known
	  good values for CATEGORY and PF, since corruption of these can
	  cause problems.

2008-04-11 02:46  zmedico

	* [r9827] Copy group mode bits from $PKGDIR when creating
	  subdirectories.

2008-04-11 00:37  zmedico

	* [r9825] Tweak --buildpkgonly and fakeroot logic so that
	  --buildpkgonly can be used by a non-root user to build binary
	  packages with fakeroot.

2008-04-10 23:29  zmedico

	* [r9823] Nest the DepcheckCompositeDB class inside the depgraph
	  class since it's not intended for use elsewhere.

2008-04-10 21:08  zmedico

	* [r9821] Rename variable pkg_cpv to pkg_str.

2008-04-10 21:03  zmedico

	* [r9819] Fix "pkg" variable name collisions in depgraph.display().

2008-04-10 20:44  zmedico

	* [r9817] Make the CHOST visibility check tolerant of missing CHOST
	  metadata.

2008-04-10 20:36  zmedico

	* [r9815] Bug #217122 - When waiting for a parallel-fetch download
	  to complete, show a more friendly and informative message.

2008-04-10 18:03  zmedico

	* [r9810] Remove an unused function.

2008-04-10 17:57  zmedico

	* [r9808] Implement expansion of catgories in
	  DepcheckCompositeDB.match() for old installed packages that may
	  contain atoms that are not fully qualified.

2008-04-10 09:11  zmedico

	* [r9799] Iterate over a copy of the digraph nodes so that removal
	  can't break the iterator.

2008-04-10 08:41  zmedico

	* [r9797] Make sure that everything except Package nodes is ignored
	  when doing the --buildpkgonly digraph.hasallzeros() check.

2008-04-10 06:34  zmedico

	* [r9794] Use cached Package instances in depgraph.display().

2008-04-10 05:58  zmedico

	* [r9789] * 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().

2008-04-10 05:39  zmedico

	* [r9788] Make FakeVartree use PackageVirtualDbapi instead of
	  fakedbapi so that it can populate and utilize a cache of Package
	  instances.

2008-04-10 05:17  zmedico

	* [r9787] Improve used of cached Package instances in
	  depgraph._select_pkg_from_graph().

2008-04-10 05:01  zmedico

	* [r9786] Replace the fakdbapi 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.

2008-04-09 21:51  zmedico

	* [r9785] Add some docs for the DepcheckCompositeDB class.

2008-04-09 18:31  zmedico

	* [r9779] When checking atoms without categories against the
	  installed packages, just check for existence of the cat/pn rather
	  that a full match.

2008-04-09 18:21  zmedico

	* [r9777] Fix the docstring for depgraph._dep_expand().

2008-04-09 18:04  zmedico

	* [r9775] Fix minor issues in the calculation of the number of
	  parents omitted from the slot collision display.

2008-04-09 17:55  zmedico

	* [r9774] 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.
	  (branches/2.1.2 r9773)

2008-04-09 17:00  zmedico

	* [r9771] Make DepcheckCompositeDB cache Package instances for
	  aux_get() calls.

2008-04-09 16:14  zmedico

	* [r9769] 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.

2008-04-09 07:15  zmedico

	* [r9765] Create a new depgraph._dep_expand() method for
	  select_files() to expand atoms that have no category.

2008-04-09 05:29  zmedico

	* [r9763] 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.

2008-04-09 00:37  zmedico

	* [r9762] 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).

2008-04-08 23:55  zmedico

	* [r9761] Split out a depgraph method to check if a specific
	  new-style virtual package exists.

2008-04-08 22:31  zmedico

	* [r9759] 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.

2008-04-08 18:42  zmedico

	* [r9756] 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.

2008-04-08 17:57  zmedico

	* [r9755] Fix --update greedy atoms logic so that it only pulls in
	  packages that actually match the given atom.

2008-04-08 04:43  zmedico

	* [r9747] Fix a little issue in the code from bug #197905 that
	  causes some elog messages to get lost.

2008-04-08 03:54  zmedico

	* [r9745] Remove the depgraph._get_arg_for_pkg() method since
	  _iter_atoms_for_pkg() does the job.

2008-04-08 03:46  zmedico

	* [r9744] Remove unused iter_atoms() function.

2008-04-07 23:47  zmedico

	* [r9743] For repoman, only cache the metadata necessary for
	  visibility checks in order to reduce memory consumption.

2008-04-07 23:10  zmedico

	* [r9742] When reading and writing the Packages index file,
	  translate metadata keys on the fly. Current translations: DESC
	  <-> DESCRIPTION REPO <-> repository

2008-04-07 22:12  zmedico

	* [r9741] * 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.

2008-04-07 07:33  zmedico

	* [r9740] Handle empty KEYWORDS in the Packages file.

2008-04-07 06:32  zmedico

	* [r9739] Fix broken IUSE defaults handling when filtering USE for
	  the Packages file.

2008-04-07 02:36  zmedico

	* [r9738] Move all the --update greedy slot logic to
	  depgraph.select_files().

2008-04-07 02:04  zmedico

	* [r9737] Move virtuals logic from DepcheckCompositeDB.match() to
	  depgraph._iter_atoms_for_pkg() since it's more generally useful
	  there.

2008-04-06 23:33  zmedico

	* [r9736] Fix variable name collision in
	  DepcheckCompositeDB.match().

2008-04-06 23:28  zmedico

	* [r9735] Fix DepcheckCompositeDB.match() so that it doesn't assume
	  that every DependencyArg instance has an "atom" attribute.

2008-04-06 21:44  zmedico

	* [r9734] Fix BASH_ARGC and BASH_ARGV offsets some more.

2008-04-06 21:37  zmedico

	* [r9733] In dump_trace(), fix BASH_ARGV and BASH_ARGC offsets so
	  that they are always correct wrt eachother. Thanks to Betelgeuse
	  for reporting.

2008-04-06 21:10  zmedico

	* [r9732] Fix java.eclassesnotused logic. Thanks to Betelgeuse.

2008-04-06 19:20  zmedico

	* [r9731] Rename the CompositDbapi class to DepcheckCompositeDB
	  since it's really a special pupose class just for dep_check() and
	  it doesn't implement the full dbapi interface.

2008-04-06 18:53  zmedico

	* [r9729] 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.

2008-04-06 17:12  genone

	* [r9728] only preserve libraries if no copy exists in the libary
	  search path (bug #215242)

2008-04-06 17:09  zmedico

	* [r9727] * 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.

2008-04-06 14:20  genone

	* [r9726] preserve order of ebuild messages even between different
	  message types (bug #197905)

2008-04-05 23:22  zmedico

	* [r9725] Clarify --with-bdeps behavior with example. Thanks to
	  Griffon26 for this patch.

2008-04-05 19:51  zmedico

	* [r9723] When necessary, make quickpkg add missing metadata to the
	  vdb entry before creating the binary package.

2008-04-05 18:30  zmedico

	* [r9720] Handle a potential InvalidDependString exception inside
	  CompositeDbapi.match().

2008-04-05 17:48  zmedico

	* [r9718] Bug #216328 - Fix broken --newuse reinstallation logic.

2008-04-05 10:30  zmedico

	* [r9717] Fix the depgraph package selection cache to update the
	  "existing node" state of packages if they've been added to the
	  graph since the last call.

2008-04-05 09:42  zmedico

	* [r9716] Fix a typo.

2008-04-05 09:41  zmedico

	* [r9715] Memoize package selection results in the depgraph for
	  better performance.

2008-04-05 09:15  zmedico

	* [r9714] Remove "selective" depgraph logic from dep_zapdeps()
	  since it's now handled by CompositeDbapi.

2008-04-05 08:50  zmedico

	* [r9713] Replace the depgraph's fakedbapi of visible packages with
	  a new CompositeDbapi that is implemented on top of the depgraph's
	  existing package selection logic.

2008-04-05 06:25  zmedico

	* [r9712] In dbapi.move_ent(), never assume that any of the
	  expected metadata entries exist (PF, CATEGORY, or *.ebuild).

2008-04-04 20:41  zmedico

	* [r9710] Add missing "the" to fix grammar.

2008-04-04 18:58  zmedico

	* [r9708] * 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.

2008-04-04 18:40  zmedico

	* [r9706] Adjust newlines whitespace masked packages display.

2008-04-04 18:29  zmedico

	* [r9705] Display the note referencing "masked packages" docs when
	  there are installed masked packages to display.

2008-04-04 06:32  zmedico

	* [r9702] Fix a typo in the depclean USE flag handling when
	  populating the digraph for bug #201045.

2008-04-04 04:51  zmedico

	* [r9700] Fix a typo.

2008-04-04 04:48  zmedico

	* [r9699] 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.

2008-04-04 00:44  zmedico

	* [r9697] Decrease priority on --onlydpes dependencies so that
	  --buildpkgonly hasallzeros() works correctly.

2008-04-04 00:30  zmedico

	* [r9696] Add missing DepPriority instances to the graph so that
	  the --buildpkgonly hasallzeros() calculation works correctly
	  again.

2008-04-03 22:40  zmedico

	* [r9695] Eliminate a redundant atom from the --update greedy slot
	  expansion code.

2008-04-03 22:34  zmedico

	* [r9693] 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.

2008-04-03 20:03  zmedico

	* [r9691] Add missing str.upper() call for
	  PORTAGE_FETCH_RESUME_MIN_SIZE.

2008-04-03 19:58  zmedico

	* [r9689] If PORTAGE_FETCH_RESUME_MIN_SIZE is undefined or empty,
	  silently use the default.

2008-04-03 19:23  zmedico

	* [r9687] 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.

2008-04-03 16:45  zmedico

	* [r9685] For old-style virtuals, we need to repeat the
	  package.provided check against the selected package.

2008-04-03 01:17  zmedico

	* [r9683] 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().

2008-04-02 19:22  zmedico

	* [r9681] Fix the previous commit so that the Package instance is
	  created in the correct scope.

2008-04-02 19:09  zmedico

	* [r9680] Use Package.cp instead of dep_getkey(cpv).

2008-04-02 18:06  zmedico

	* [r9678] Eliminate a redundant os.path.join() call.

2008-04-02 18:03  zmedico

	* [r9677] 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.

2008-04-01 23:34  zmedico

	* [r9675] 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.

2008-04-01 22:13  zmedico

	* [r9674] 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.

2008-04-01 21:58  zmedico

	* [r9672] Use pkgcmp() instead of == and best() for correctness in
	  case of implicit -r0.

2008-04-01 18:36  zmedico

	* [r9669] Remove some boolean logic that is obsolete now that the
	  "selective" parameter is passed into dep_zapdeps().

2008-04-01 18:08  zmedico

	* [r9665] Exploid ascending order returned from dbapi.match() calls
	  to avoid the need to call best().

2008-04-01 06:55  zmedico

	* [r9662] Handle missing LICENSE in the Packages index since that's
	  allowed for virtual packages.

2008-04-01 05:59  zmedico

	* [r9660] When identifying a sys-apps/portage node, compare
	  category too (not just "portage".

2008-04-01 00:33  zmedico

	* [r9658] Bug #215308 - Cache the paths of known bad manifests to
	  ensure that the same broken manifest is never checked twice.

2008-03-31 23:47  zmedico

	* [r9656] 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.

2008-03-31 23:12  zmedico

	* [r9654] In the package selection loop, move the installed package
	  rejection code as early as possible.

2008-03-31 21:07  zmedico

	* [r9652] Fix package selection logic to always properly reject the
	  installed package when another is available and the user wants to
	  reinstall.

2008-03-31 20:25  zmedico

	* [r9650] Remove some redundant and obsolete code for warning about
	  installed packages pulled into the graph.

2008-03-31 19:55  zmedico

	* [r9648] When selecting packages and there is a mixture of
	  old-style and new-style virtual matches, filter out the old-style
	  virtual matches.

2008-03-31 18:14  zmedico

	* [r9646] Bug #197810 - Fix package selection logic so that it will
	  always fall back to an installed package when necessary.

2008-03-31 18:00  zmedico

	* [r9645] 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.

2008-03-31 17:11  zmedico

	* [r9644] Replace an package tuple with a real Package instance.

2008-03-31 07:21  zmedico

	* [r9643] 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.

2008-03-30 21:54  zmedico

	* [r9637] When dblink.treewalk() queries for other packages in the
	  same slot, filter out old-style virtual matches since they are
	  not desired.

2008-03-30 21:40  zmedico

	* [r9636] Make sure the all resume lists are deleted when a stale
	  one is encountered.

2008-03-30 19:51  zmedico

	* [r9634] * Fix broken return value for doins. * Make newins
	  cleanup temp files after itself.

2008-03-30 19:20  zmedico

	* [r9632] Fix typos. Thanks to Arfrever Frehtes Taifersar Arahesis
	  <Arfrever.FTA@GMail.Com>.

2008-03-30 10:00  zmedico

	* [r9630] 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.

2008-03-30 09:17  zmedico

	* [r9628] 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.

2008-03-30 07:14  zmedico

	* [r9625] Bug #211365 - Use catpkgsplit() instead of pkgsplit() for
	  a cpv.

2008-03-30 06:57  zmedico

	* [r9623] Bug #211365 - Use catpkgsplit() instead of pkgsplit() for
	  a cpv.

2008-03-30 06:18  zmedico

	* [r9621] 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.

2008-03-30 05:40  zmedico

	* [r9619] Do not allow commit mode together with the --without-mask
	  options.

2008-03-30 04:16  zmedico

	* [r9616] Make code a bit less prone to potentially hidden
	  TypeError like bugs.

2008-03-30 03:59  zmedico

	* [r9615] Bug #211365 - Use catpkgsplit() instead of pkgsplit() for
	  a cpv.

2008-03-30 03:42  zmedico

	* [r9613] Use enumerate() it iterate over an array.

2008-03-30 02:13  zmedico

	* [r9611] 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. (branches/2.1.2 r9610)

2008-03-30 00:19  zmedico

	* [r9607] Bug #215308 - Simplify the greedy atoms logic so that it
	  behaves more like StaticFileSet and won't pull in lower slots.

2008-03-29 22:47  zmedico

	* [r9606] When dyn_unpack() automatically cleans ${WORKDIR}, also
	  remove things like .unpacked and .compiled so that the state is
	  consistent.

2008-03-29 05:30  zmedico

	* [r9592] 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.

2008-03-29 04:55  zmedico

	* [r9591] Add a note about PKG_INSTALL_MASK.

2008-03-29 04:32  zmedico

	* [r9590] Fix quoting for ${root} in install_mask().

2008-03-29 04:12  zmedico

	* [r9589] When a resume list contains packages that are no longer
	  available, automatically delete it.

2008-03-29 03:40  zmedico

	* [r9588] Bug #215240 - Use an alarm signal to implement a 60
	  second timeout in finalize() in case send_mail() blocks
	  indefinitely.

2008-03-29 03:29  zmedico

	* [r9587] 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.

2008-03-29 00:02  zmedico

	* [r9586] Don't trigger the 'java.eclassesnotused' on blocker
	  atoms.

2008-03-28 23:44  zmedico

	* [r9585] 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.

2008-03-28 23:11  zmedico

	* [r9584] 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).

2008-03-28 10:18  zmedico

	* [r9538] * Skip the recusive chown call if it fails on the top
	  level directory since it's possible that emerge-webrsync is not
	  run by root.
	  
	  * Just chown to portage:portage instead of using
	  PORTAGE_INST_{UID,GID}.

2008-03-28 10:03  zmedico

	* [r9537] Disable tarsync when using lzma compression since it
	  doesn't seem to be supported.

2008-03-28 05:45  zmedico

	* [r9528] Bug #214619 - Add support for a PORTAGE_BINPKG_TAR_OPTS
	  variable that allows the user to specify tar command options for
	  binary package creation.

2008-03-28 05:03  zmedico

	* [r9527] 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).

2008-03-28 04:55  zmedico

	* [r9526] Bug #213698 - Make FEAUTURES=keepwork and keeptemp
	  preserve ${T}/environment since it may contain essential state.

2008-03-28 04:14  zmedico

	* [r9525] Bug #213629 - Use EAPI.incompatible in cases where EAPI=0
	  and a default IUSE is encountered.

2008-03-28 04:07  zmedico

	* [r9524] Bug #213629 - Create an EAPI.incompatible category and
	  use it in cases where EAPI=0 and a slot atom is encountered.

2008-03-28 00:05  zmedico

	* [r9523] Remove redundant info from the KEYWORDS.dropped message.

2008-03-27 23:31  zmedico

	* [r9522] Bug #209418 - Add a new KEYWORDS.dropped check that
	  compares keywords against the keywords of earlier ebuild versions
	  within a slot.

2008-03-27 22:03  zmedico

	* [r9521] Bug #212509 - Display a note about the --without-mask
	  option when there are masked packages.

2008-03-27 21:39  zmedico

	* [r9520] Bug #212509 - Implement a new --without-mask option that
	  causes repoman to behave as if there are no package.mask entries.

2008-03-27 16:49  zmedico

	* [r9519] Bug #214879 - Fix FEATURES=-strict behavior so that
	  distfiles digests are always checked.

2008-03-27 04:28  zmedico

	* [r9514] Fix the noreplace logic to break out of the cpv loop
	  early since there's no point in examining any lower versions from
	  the same repo.

2008-03-27 04:23  zmedico

	* [r9513] Make --noreplace take precedence over --newuse, as
	  suggested by wolf31o2.

2008-03-26 23:37  zmedico

	* [r9512] Bug #214879 - In fetch(), only parse the Manifest when
	  FEATURES=strict is enabled.

2008-03-26 16:54  zmedico

	* [r9511] Move the default empty compiler flag settings from
	  ebuild.sh to make.globals (bug #214499).

2008-03-26 16:46  zmedico

	* [r9510] Support ${HOST} substitution in "From" field. Thanks to
	  wschlich.

2008-03-25 04:04  zmedico

	* [r9507] Bug #212621 - Make the EbuildQuote check do quoting
	  validation for misc variables from games.eclass.

2008-03-25 03:54  zmedico

	* [r9506] Fix typo.

2008-03-25 03:51  zmedico

	* [r9505] Bug #212152 - Account pre-existing files when calculating
	  whether there is enough space for a download.

2008-03-25 03:18  zmedico

	* [r9504] 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.

2008-03-24 23:14  zmedico

	* [r9503] Bug #214499 - When compiler flags are unset, many
	  packages will substitute their own implicit flags. For
	  uniformity, use an empty string as the default.

2008-03-24 23:05  zmedico

	* [r9502] Check is os.statvfs() is implemented before trying to us
	  it. (branches/prefix r9500)

2008-03-20 21:35  zmedico

	* [r9496] Improve logic from the previous commit.

2008-03-20 21:31  zmedico

	* [r9495] Fix depgraph._select_package() to make sure the installed
	  package is a real match before rejecting other available
	  packages.

2008-03-19 22:46  genone

	* [r9491] readd digestentry.unused category as it's still relevant

2008-03-19 19:49  zmedico

	* [r9489] Fix quoting.

2008-03-19 18:44  genone

	* [r9488] display versions of other slots for new-slot installs
	  (bug #213790)

2008-03-19 11:34  zmedico

	* [r9487] Strip trailing slashes from directory paths if necessary.

2008-03-19 10:31  zmedico

	* [r9486] Bug #210690 - Fix --help output to show the leading slash
	  on the path to the world file.

2008-03-19 10:24  zmedico

	* [r9485] 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öhm <hollow@gentoo.org> for the
	  initial patch.

2008-03-19 09:45  zmedico

	* [r9484] Only show the eqawarn from bug #149745 when nothing is
	  found to install. Also, exit successfully unless nothing is found
	  to install.

2008-03-19 07:03  zmedico

	* [r9483] Bug #201045 - Fix unmerge() to preserve unmerge order so
	  that dependencies are respected. Also, eliminate duplicate
	  package selections since the same package may be selected by
	  multiple atoms but we can only unmerge it once.

2008-03-18 23:44  zmedico

	* [r9482] Bug #139023 - When the --digest option is enabled, advise
	  the user that `repoman manifest` is the preferred way to generate
	  manifests.

2008-03-18 23:41  genone

	* [r9481] make filesets non-greedy by default

2008-03-18 23:38  genone

	* [r9480] add unmerge protection for packages still referenced by
	  installed package sets

2008-03-18 23:37  genone

	* [r9479] add @ to the list of invalid atom chars so sets with
	  prefix aren't considered as atoms accidentally

2008-03-18 22:40  genone

	* [r9478] fix artifact from r9477

2008-03-18 22:36  genone

	* [r9477] use a dict with CP keys in unmerge() to avoid double
	  unmerges if a package is matched by multiple atoms

2008-03-18 22:12  zmedico

	* [r9476] 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.

2008-03-18 21:22  zmedico

	* [r9475] Bug #174634 - Fix ebuild 'digest' and 'manifest' behave
	  100% identically and update the docs to reflect this.

2008-03-17 02:23  zmedico

	* [r9474] Bug #212882 - For compatibility with ENOENT exceptions
	  raised from fstat calls with CIFS, wrap fstat calls with an
	  appropriate exception handler.

2008-03-16 20:33  zmedico

	* [r9473] Bug #213592 - Fix --onlydeps breakage.

2008-03-16 00:54  zmedico

	* [r9472] Bug #213540 - Make sure DESTTREE=/usr is set before
	  inherit calls.

2008-03-15 23:10  zmedico

	* [r9471] 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.

2008-03-15 22:43  genone

	* [r9470] avoid importing portage to improve performance

2008-03-15 19:33  genone

	* [r9469] add a placeholder for repository paths in 'filename' and
	  'directory' options for StaticFileSet

2008-03-15 05:28  zmedico

	* [r9467] Fix an UnboundLocalError for 'pkgindex'.

2008-03-14 18:23  zmedico

	* [r9466] Fix grammar.

2008-03-14 06:53  zmedico

	* [r9463] 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.

2008-03-14 02:41  zmedico

	* [r9462] * Optimize parallel-fetch to avoid redundant checksum
	  verification. * Add parallel-fetch to the default FEATURES since
	  it is more efficient now.

2008-03-13 18:04  zmedico

	* [r9460] Make strip_empty() return a nedw list instead of working
	  in-place. Thanks to René Neumann <rene.neumann@necoro.net> for
	  the suggestion.

2008-03-11 00:52  solar

	* [r9459] - news bugfix from ferringb

2008-03-10 16:42  zmedico

	* [r9458] Bug #212882 - 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.

2008-03-09 20:13  zmedico

	* [r9457] 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.

2008-03-09 02:36  zmedico

	* [r9456] Fix var_assign_re to recognize a call to the 'declare'
	  builtin even when no options are given.

2008-03-09 01:27  genone

	* [r9455] add some status messages, try to copy the tarball into
	  DISTDIR, use getopt for option parsing

2008-03-08 00:21  zmedico

	* [r9453] Make readpkgindex() and writepkgindex() private methods
	  of PackageIndex.

2008-03-07 23:52  zmedico

	* [r9452] Convert PackageIndex.packages from a dict to a list so
	  that in the future it will be possible to support multiple
	  packages with the same cpv.

2008-03-07 21:26  zmedico

	* [r9451] Make --prune and --depclean operate with missing
	  dependencies when only asked to remove specific packages since
	  it's relatively safe in this case.

2008-03-06 02:33  zmedico

	* [r9448] Use os.environ["SANDBOX_ON"] = "0" to make portageq
	  exempt from sandbox for things like writing metadata cache.
	  Thanks to ferringb for the suggestion.

2008-03-06 01:16  zmedico

	* [r9447] Remove egrep syntax emulation since it's not really
	  needed.

2008-03-06 01:03  zmedico

	* [r9446] Implement the sed-based declare -r filter in python.

2008-03-06 00:23  zmedico

	* [r9445] Move the variable name validation regexes (for bug
	  211949) into filter-bash-environment.py instead of passing them
	  in from bash.

2008-03-05 23:54  zmedico

	* [r9444] Update the description to reflect the new meaning of
	  PATTERN.

2008-03-05 23:48  zmedico

	* [r9443] Pass a space-separated list of variables into
	  filter-bash-environment.py and generate the final regex on the
	  python side instead of in bash. Also, properly anchor the regex
	  so that it actually works.

2008-03-05 22:03  zmedico

	* [r9442] Fix have_end_quote() to compare the quote against the
	  correct group.

2008-03-05 19:59  zmedico

	* [r9441] Bug #211949 - Tighten the variable name filter to exclude
	  any variables with names containing any non-alphanumeric
	  characters.

2008-03-05 19:51  zmedico

	* [r9440] Handle multi-line quoted variable assignments.

2008-03-05 19:01  zmedico

	* [r9439] As requested by wolf31o2, use the ROOT setting from
	  make.conf as long as it's not overridden by the calling
	  environment.

2008-03-05 09:34  zmedico

	* [r9438] TODO: Move variable name validation and declare -r
	  filtering into filter-bash-environment.py.

2008-03-05 09:23  zmedico

	* [r9437] Update description to reflect the new meaning of the
	  PATTERN argument.

2008-03-05 09:20  zmedico

	* [r9436] Implement variable assignment handling in python so that
	  we can eventually make it more flexible and robust.

2008-03-05 00:19  zmedico

	* [r9435] 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.

2008-03-04 18:43  zmedico

	* [r9434] Fix func_start_re so that it requires at least one
	  alphanumeric character.

2008-03-04 18:42  zmedico

	* [r9433] Tighten the funct_start_re so that it doesn't match
	  leading whitespace since that's not needed.

2008-03-04 08:11  zmedico

	* [r9432] Bug #211949 - Temporarily revert back to a less strict
	  regex in order to avoid false positives with multi-line variable
	  definitions that can be produced by the 'export' builtin.

2008-03-04 07:44  zmedico

	* [r9431] Add support for idendification of function definitions
	  since it's needed in some cases in order to prevent some odd
	  function contents from being mistakenly identified as invalid
	  variable assignments. For example, this line from
	  _gcc-specs-directive_raw() is commonly found in environment.bz2
	  files:
	  
	  $1=="*"directive":" { pspec=spec; spec=""; outside=0; next }

2008-03-04 04:48  zmedico

	* [r9429] Bug #211949 - Fix the regex so that it won't match the =
	  character (equals sign).

2008-03-03 22:17  genone

	* [r9428] tell rpmbuild to clean it's working files after
	  completion, bug #97776

2008-03-03 20:53  genone

	* [r9427] fix message on ValueError to not sound like crap

2008-03-03 20:28  genone

	* [r9426] don't list files as being merged when they are ignored
	  due to confmem, bug #212080

2008-03-03 19:43  genone

	* [r9425] check available space in DISTDIR before trying to
	  fetch/copy a file, bug #212152

2008-03-03 19:21  zmedico

	* [r9423] Buf #210372 - Fix FEATURES=suidctl so that it really
	  works again.

2008-03-03 10:24  zmedico

	* [r9421] Bug #211949 - Tweak the regex so that a leading
	  whitespace character cannot match the required non-alphanumeric
	  group.

2008-03-03 10:16  zmedico

	* [r9419] Fix the regex for bug #211949 so that it correctly
	  matches variable names that contain more than one
	  non-alphanumeric character.

2008-03-03 04:28  zmedico

	* [r9418] Quote the file path and uri inside FETCHCOMMAND and
	  RESUMECOMMAND. Thanks to igli for suggesting.

2008-03-02 23:26  zmedico

	* [r9416] 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.

2008-03-02 21:42  zmedico

	* [r9415] Make profile stacking of default USE and package.*
	  slightly more efficient by skipping list.insert() calls when
	  possible.

2008-03-02 20:02  genone

	* [r9414] one more fix to restore correct order for
	  usemask/useforce

2008-03-02 19:44  genone

	* [r9413] fix indentation screwup from r9412

2008-03-02 19:36  genone

	* [r9412] change stacking order of r9408 so more specific atoms
	  override generic ones

2008-03-02 19:20  zmedico

	* [r9411] Fix typo.

2008-03-02 19:08  genone

	* [r9410] apply r9408 also for profile-base package.*use* files

2008-03-02 18:56  genone

	* [r9409] remove FEATURES=livecvsportage

2008-03-02 14:45  genone

	* [r9408] stack use flags from package.use for multiple matching
	  atoms (bug #200385)

2008-03-02 13:44  genone

	* [r9407] ensure that global variables are used to prevent
	  confusing issues like bug #212055

2008-03-02 11:40  genone

	* [r9406] undo registrations of preserved libraries if the merge
	  fails, bug #210501

2008-03-01 08:30  zmedico

	* [r9402] Bug #211949 - Make filter_readonly_variables() remove any
	  variables with names containing a hyphen since bash does not
	  allow them.

2008-03-01 00:04  zmedico

	* [r9400] 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.

2008-02-29 22:58  zmedico

	* [r9399] In the suidctl code, move the addwrite call out of the
	  loop. Thanks to ferringb.

2008-02-28 15:08  genone

	* [r9398] remove code for manifest1 support

2008-02-28 14:55  genone

	* [r9397] supress stupid line echo in deprecation notices

2008-02-28 13:09  genone

	* [r9395] remove obsolete information from preserve-libs
	  post-emerge message

2008-02-28 13:08  genone

	* [r9394] separate different messages with newlines in post-emerge
	  output

2008-02-28 10:12  zmedico

	* [r9393] Fix some references to config["PORTAGE_USE"] to prevent
	  potential KeyErrors.

2008-02-27 19:43  zmedico

	* [r9392] 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.

2008-02-27 16:16  zmedico

	* [r9391] Revert r9387 (the fix for bug #211554) until I figure out
	  why it's messing up USE calculations for world updates.

2008-02-27 16:00  zmedico

	* [r9389] 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".

2008-02-27 08:57  zmedico

	* [r9388] Don't filter USE flags in emerge --info output.

2008-02-27 04:06  zmedico

	* [r9387] 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.

2008-02-26 06:22  zmedico

	* [r9385] For depclean/prune unmerge order, if there are no
	  dependencies between package then just unmerge them
	  alphabetically.

2008-02-26 00:02  zmedico

	* [r9384] 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). (branches/2.1.2
	  r9383)

2008-02-24 23:14  antarus

	* [r9381] Double import, thanks grobian :)

2008-02-24 07:52  antarus

	* [r9377] Various repoman fixes, plus a weird lockfile tracekback
	  in news.

2008-02-23 01:20  vapier

	* [r9372] only try to fetch compression schemes which the host
	  supports

2008-02-23 01:17  vapier

	* [r9371] add support for lzma/gz snapshots

2008-02-23 01:08  vapier

	* [r9370] tighten up output from script

2008-02-23 00:57  vapier

	* [r9369] cleanup main option parsing

2008-02-22 23:53  zmedico

	* [r9368] 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.

2008-02-22 22:20  zmedico

	* [r9367] 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.

2008-02-22 06:46  zmedico

	* [r9365] 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.

2008-02-21 09:29  zmedico

	* [r9364] Make LibraryPackageMap.update() sort the contents of the
	  library_consumers cache so that it's nice and orderly.

2008-02-21 08:04  zmedico

	* [r9363] 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.

2008-02-20 20:52  zmedico

	* [r9362] In the circular dependency display, drop PDEPEND (aka
	  MEDIUM_SOFT) from the graph so there's less noise.

2008-02-20 03:59  zmedico

	* [r9361] 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.

2008-02-19 08:47  zmedico

	* [r9360] When showing an unsatisfied dep, never include installed
	  packages.

2008-02-19 08:27  zmedico

	* [r9359] For greedy slot behavior, in addition to any installed
	  slots also try to pull in the latest new slot that may be
	  available.

2008-02-19 07:36  genone

	* [r9358] - outsource logic for boolean options into a central
	  function - enable support for greedy behavior in StaticFileSet

2008-02-19 05:59  zmedico

	* [r9357] 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.

2008-02-19 05:38  zmedico

	* [r9355] Bug #210372 - Fix suidctl.conf parser to look for paths
	  with a leading slash.

2008-02-19 04:09  zmedico

	* [r9354] Make PreservedLibsRegistry.store() use atomic_ofstream so
	  that we don't lose the whole registry if an error such as 'out of
	  space' occurs.

2008-02-19 03:27  zmedico

	* [r9353] Use parse_use_local_desc() from the repoman.utilities
	  module.

2008-02-19 02:32  zmedico

	* [r9352] Revert back to some known working code from the 2.1.2
	  branch.

2008-02-19 01:53  zmedico

	* [r9351] Make LibraryConsumerSet.mapPathsToAtoms() produce slot
	  atoms so that atoms aren't restricted to the currently installed
	  version, making upgrades possible.

2008-02-17 23:51  zmedico

	* [r9350] Fix the --depclean/--prune code to use visible() for
	  visibility checks instead of the old portdbapi hack.

2008-02-17 08:38  zmedico

	* [r9349] Fix unmerge() breakage from due to pkgmap being changed
	  from a dict to a list.

2008-02-17 01:59  zmedico

	* [r9348] Now that unmerge() preserves the order that it's given,
	  if two different slots of the same package are being unmerged
	  then they are not necessarily unmerged consecutively. To make the
	  display less confusing, never display packages as "protected" or
	  "omitted" when they actually belong to the overall set of
	  "selected" packages to be unmerged.

2008-02-17 01:28  zmedico

	* [r9347] Make sure all packages to be pruned or depcleaned are
	  added to the graph, even when they don't have any dependencies.

2008-02-17 00:29  zmedico

	* [r9346] Bug #201045 - Make unmerge() preserve the unmerge order
	  of packages given to it by the user or depclean.

2008-02-16 23:46  zmedico

	* [r9345] In the action_depclean() topological sort, only add
	  packages to the graph if they are being removed.

2008-02-16 23:43  zmedico

	* [r9344] Remove IUSE.invalid from qawarnings since there's no
	  reason for it not to be fatal. Thanks to Betelgeuse.

2008-02-16 23:12  zmedico

	* [r9343] Fix reversed order of parent/child parameders to
	  digraph.add().

2008-02-16 09:02  zmedico

	* [r9342] Add missing % x (bug #208946, comment #2).

2008-02-16 07:59  zmedico

	* [r9341] Fix depclean breakage so that it doesn't clean some
	  packages that shouldn't be cleaned.

2008-02-16 07:53  zmedico

	* [r9340] Make depclean code filter out blocker atoms where
	  appropriate.

2008-02-16 07:42  zmedico

	* [r9339] 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.

2008-02-16 00:43  zmedico

	* [r9338] Update the DepPriority documentation so that the table
	  shows all the currently supported priorities and categories.

2008-02-15 07:47  zmedico

	* [r9337] Fix --newuse reinstall logic broken by the previous
	  commit.

2008-02-14 07:30  zmedico

	* [r9336] Fix package selection logic in order to prevent downgrade
	  in cases when selective is True and the currently installed
	  version does not have a matching ebuild in the tree. For example,
	  this type of situation is likely to occur if the user somehow
	  obtains a binary package that has a newer version than any of the
	  ebuilds in the portage tree. If package maintainers want to
	  encourage a downgrade in a case like this then they should use
	  package.mask so that the user receives a warning about the
	  installed package being masked.

2008-02-12 04:08  zmedico

	* [r9333] Bug #209768 - Fix --search "Size of files:" handling so
	  that it properly shows the "Unknown (missing digest)" message
	  instead of a traceback.

2008-02-11 02:29  antarus

	* [r9332] Add bits about namespace pollution, add whitespacing
	  comments after looking at some new code I wrote and realizing I
	  was not following the current style. Fix typos

2008-02-10 23:32  zmedico

	* [r9330] 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.

2008-02-10 13:01  genone

	* [r9328] fix more trivial issues breaking repoman

2008-02-10 07:18  zmedico

	* [r9327] 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.

2008-02-10 05:33  zmedico

	* [r9326] Fix rejects.

2008-02-10 03:14  zmedico

	* [r9324] Fix CHOST masking logic wrt installed packages so that
	  it's consistent between visible() and get_masking_status().

2008-02-10 01:50  zmedico

	* [r9321] Bug #209144 - For emerge --sync, show an informative
	  error and don't return 1 when PORTAGE_RSYNC_RETRIES is exceeded.

2008-02-10 01:39  zmedico

	* [r9320] 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).

2008-02-10 00:38  zmedico

	* [r9318] Fix get_mask_info() to properly pass the "installed"
	  attribute into the Package constructor.

2008-02-09 23:06  genone

	* [r9316] fix nasty typo

2008-02-09 22:05  zmedico

	* [r9313] Bug #208743 - Update dosed docs to indicate that
	  "s:${D}::g" is used as the default expression if none other is
	  given.

2008-02-09 15:39  genone

	* [r9312] add tagging capabilities and cli options

2008-02-09 15:13  genone

	* [r9311] add preserve-libs info to make.conf.example

2008-02-09 13:31  genone

	* [r9310] more minor doc updates regarding package sets

2008-02-09 13:23  genone

	* [r9309] minor documentation updates

2008-02-09 12:47  genone

	* [r9308] new script for creating release tarballs

2008-02-09 12:04  genone

	* [r9307] removing obsolete cruft

2008-02-09 04:58  zmedico

	* [r9301] Bug #208708 - Show informative warning messages for
	  installed packages that are masked.

2008-02-08 11:46  zmedico

	* [r9299] Fix some broken variable references found by pyflakes.

2008-02-08 08:39  zmedico

	* [r9293] 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.

2008-02-08 08:01  zmedico

	* [r9292] Don't show unmasked packages (currently installed
	  packages) in the masking display.

2008-02-08 04:33  zmedico

	* [r9290] Add DISTDIR to the EbuildQuote.var_names. Thanks to
	  Betelgeuse.

2008-02-08 01:26  zmedico

	* [r9289] Bug #208708 - Fix warnings for system or world packages
	  that are masked.

2008-02-08 00:32  zmedico

	* [r9287] Bug #208743 - Clarify dosed docs to indicate that sed is
	  performed in place of a file in ${D}.

2008-02-08 00:19  zmedico

	* [r9285] Bug #208782 - Consistently use double quotes rather than
	  mixining in single quotes.

2008-02-08 00:12  zmedico

	* [r9283] Bug #209144 - For emerge --sync, don't return 0 when the
	  server is out of date.

2008-02-07 23:30  zmedico

	* [r9281] Bug #155993 - Update environment.bz2 after postinst in
	  case installation phases need to pass some variables to
	  uninstallation phases.

2008-02-06 08:43  zmedico

	* [r9279] 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.

2008-02-06 06:08  zmedico

	* [r9278] Make qa_source and qa_call save the return value and
	  return it. Thanks to igli for suggesting.

2008-02-05 21:29  genone

	* [r9277] don't try to copy manually removed libraries (bug
	  #208946)

2008-02-05 19:02  genone

	* [r9276] display errors that occured during package set
	  initalization

2008-02-05 18:57  genone

	* [r9275] don't record internal providers in NEEDED records as they
	  are pointless for all useful applications in portage and
	  complicate them instead (e.g. bug #205531)

2008-02-05 08:21  genone

	* [r9273] Use local time for elog summaries

2008-02-01 04:36  zmedico

	* [r9264] portage-2.1.4.1 ==================================
	  
	  * If you have an overlay then you should remove **/files/digest-*
	  files (Manifest1) because they are no longer supported. * If
	  earlier versions of portage will be used to generate manifests
	  for your overlay then you should add a file named
	  manifest1_obsolete to the root of the repository in order to
	  disable generation of the Manifest1 digest files.

2008-02-01 03:11  zmedico

	* [r9262] Remove the manifest1 digest file removal code since it's
	  no longer needed.

2008-02-01 02:53  zmedico

	* [r9260] Remove the manifest1 digest filter from
	  PORTAGE_RSYNC_OPTS since it's no longer needed.

2008-02-01 00:04  zmedico

	* [r9258] Make the manifest1_compat constructor parameter default
	  to False to prevent potential interference from stale old digest
	  files in overlays.

2008-01-31 23:45  zmedico

	* [r9256] Bug #205718 - Fix quoting of ${INSTALL_MASK} where
	  appropriate. Thanks to Ed Catmur <ed@catmur.co.uk> for this
	  patch.

2008-01-31 20:25  zmedico

	* [r9254] Disable manifest1_compat for ebuild --force digest.

2008-01-31 20:04  zmedico

	* [r9252] Unconditionally disable manifest1 compatibility since
	  it's been dropped from the main tree and nobody needs it anymore.

2008-01-31 09:31  zmedico

	* [r9249] Make the autotools.eclass functions exempt from the
	  autotools QA Notice.

2008-01-31 07:46  zmedico

	* [r9241] Add 'local' to the list of non_category_dirs since it's
	  commonly used for layman overlays.

2008-01-31 04:15  zmedico

	* [r9238] * Bug #205966 - Don't show binhost password when
	  displaying the uri. * Fix a cpv variable name typo.

2008-01-30 22:52  zmedico

	* [r9236] Remove the last traces of the ebuild.autotools check.

2008-01-30 22:49  zmedico

	* [r9235] - 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

2008-01-30 18:45  zmedico

	* [r9230] use strip(os.sep) on paths prior to os.path.join
	  (branches/prefix r9228)

2008-01-27 11:26  antarus

	* [r9227] Pull more functions out of repoman proper and into
	  repoman.utilities, correct a typo, clean up imports

2008-01-27 11:26  antarus

	* [r9226] Pull more functions out of repoman proper and into
	  repoman.utilities

2008-01-27 11:05  antarus

	* [r9225] import ordering, prevent errors from mucking up module
	  namespace in checks, fix typo from last commit, rename 'm' to
	  autotools_match, fix spacing between classes

2008-01-27 06:01  antarus

	* [r9222] Restore desktop.invalid as a warning; was an intergration
	  error

2008-01-26 20:53  antarus

	* [r9221] Move random functions out of repoman and into utilties.py

2008-01-22 22:14  zmedico

	* [r9220] Bug #206772 - Enable bashrc once again for the clean
	  phase.

2008-01-21 01:43  zmedico

	* [r9217] We need to implement diefunc() since environment.bz2
	  files contain calls to it (due to alias expansion).

2008-01-20 22:28  zmedico

	* [r9216] 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. (branches/prefix r9212)

2008-01-19 23:18  antarus

	* [r9209] Add a note that PORTDIR is a repository of software and
	  that users should not add random directories in it.

2008-01-18 22:58  zmedico

	* [r9206] Check for quoted ${A}. Thanks to maekke for this patch.

2008-01-13 01:03  antarus

	* [r9201] fix typo in emerge-webrsync from r9118

2008-01-13 00:55  antarus

	* [r9200] style fixes (imports), add support for --version (bug
	  138159)

