# ChangeLog for Portage; the Gentoo Linux ports system # Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2 # $Id: ChangeLog,v 1.1005 2005/08/23 02:22:37 genone Exp $ MAJOR CHANGES in 2.0.51: 1. /var/cache/edb/virtuals is no longer used at all. It's calculated now. 2. /var/cache/edb/world is now /var/lib/portage/world. 3. /etc/portage/profile/virtuals is _USER_ configs only. 23 Aug 2005; Marius Mauch *: Moved the repository to SVN. 15 Aug 2005; Marius Mauch pym/portage.py: Fix logic error with sandbox. 14 Aug 2005; Mike Frysinger bin/prepstrip: Don't try to strip if `file` failed #102499 by Daniel Drake. 13 Aug 2005; Brian Harring bin/ebuild-default-functions.sh, bin/ebuild-functions.sh: merging spankys original changes (which I stupidly stomped) forward. 11 Aug 2005; Marius Mauch pym/elog_modules/mod_mail.py: Fixed missing portage_exception import and type errors in the exception handler. 10 Aug 2005; Mike Frysinger bin/quickpkg: Call gawk instead of awk so non-GNU systems work #102050 by Stephen Bennett. Also clean up the script a bit. 07 Aug 2005; Mike Frysinger bin/ebuild.sh: Add support for unpacking rar archives. 29 Jul 2005; Mike Frysinger bin/prepallman: Rather than use a hardcoded list and bash expansion, let find locate man directories for us. This fixes the issues of running prepman on symlinks to paths outside of $D #98017 by Andrej Filipcic. 29 Jul 2005; Mike Frysinger bin/fowners bin/fperms: Rewrite by Aron Griffis to use bash code so we don't have to parse arguments ourselves #97324. 25 Jul 2005; Mike Frysinger bin/ebuild-default-functions.sh: Fix IMAGE / D confusion in the pkg_preinst function. Now ebuilds do not have to care/screw around with IMAGE. 20 Jul 2005; Brian Harring bin/ebuild*.{sh,lib}: Harring broke cvs. If people ignored the warnings, I'll fix it till the next time changes in rewrite cause it to break again. 04 Jul 2005; Mike Frysinger bin/ebuild-default-functions.sh: Fix gnuconfig find expression #93363 by TGL. 23 Jun 2005; Mike Frysinger bin/ebuild-default-functions.sh: Update the scanelf RUNPATH check to abort on null paths. 17 Jun 2005; Mike Frysinger bin/repoman: Report exit status if gpg failed to return with 0. 14 Jun 2005; Marius Mauch man/portage.5: Remove references to non-existant $PORTDIR/profiles/use.mask. 13 Jun 2005; Mike Frysinger bin/ebuild.sh: Use the %p output modifier instead of %F so we don't have to update the output by removing all the $D references. 06 Jun 2005; Jason Stubbs bin/dispatch-conf pym/dispatch_conf.py: Brought forward updates in stable. 29 May 2005; Mike Frysinger bin/ebuild-default-functions.sh: Add some banner messages to the compile / package steps. 29 May 2005; Mike Frysinger bin/prepall: Add a QA check to see if PORTAGE_TMPDIR leaked into libtool scripts (*.la). 24 May 2005; Mike Frysinger bin/ebuild-default-functions.sh: Allow src_install() to abort if scanelf locates questionable binaries and user has 'stricter' in their FEATURES. 23 May 2005; Mike Frysinger bin/ebuild-default-functions.sh: Make sure the files passed to unpack actually exist. 20 May 2005; Mike Frysinger bin/prepstrip bin/ebuild-default-functions.sh: Removed calls to readelf and replaced with scanelf. Added more QA checks for various issues related to ELF binaries. 11 May 2005; Jason Stubbs pym/portage_syntax.py: Redesigned and rewrote DependSpec. 06 May 2005; Brian Harring pym/config.py: Dsd supplied a tweak to the quote escaping; should solve the issues transferring from python side to bash. 05 May 2005; Jason Stubbs bin/test_target_graph.py pym/portage_dep.py: Added some basic utility methods to StateGraph. Reworked the test script into a functional equivalent of --pretend depclean. 05 May 2005; Jason Stubbs pym/portage_syntax.py: Added with_key() method to Atom for creating a new atom of a different key with the same constraints. 05 May 2005; Jason Stubbs bin/test_target_graph.py pym/portage_dep.py: Added transform_virtuals() function to just that. Added testing code to show how it is used. Renamed TargetGraph to StateGraph. 05 May 2005; Jason Stubbs bin/test_target_graph.py pym/portage_dep.py: Added full support for OR-based dependencies. Still need to sort out virtuals and provide a public interface for TargetGraph. 04 May 2005; Mike Frysinger pym/ebuild.py: Do not check the digests of files except when unpacking/fetching #29333. 04 May 2005; Mike Frysinger bin/prepall: Remove old unused aclocal code #81419. Don't chmod +x files that are already +x #81427. Make sure all shared/static library pairs have proper linker scripts in /usr/lib when appropriate #81420. 04 May 2005; Mike Frysinger bin/ebuild-default-functions.sh: Allow people to pass files in $PWD to unpack via ./FILE syntax #24637. 04 May 2005; Mike Frysinger bin/do{doc,info,man} bin/prepall{docs,info,man} bin/prep{info,man}: Clean up and standardize the output. Also allow for selecting of compression method via new env vars PORTAGE_COMPRESS / PORTAGE_COMPRESS_FLAGS #9870. 04 May 2005; Mike Frysinger bin/prepstrip bin/emake: Only echo the strip banner once per dir and don't try to pass strip args to `false` if we aren't stripping. Add a simple 'exec' to emake. 04 May 2005; Mike Frysinger bin/{do,new}{env,conf,init}d: Touch up and simplify. 04 May 2005; Mike Frysinger bin/fowners bin/fperms: Add recursive (-R) support to fowners/fperms. 04 May 2005; Jason Stubbs bin/test_target_graph.py: Just a script to help test and show the usage of TargetGraph. 04 May 2005; Jason Stubbs pym/portage_syntax.py pym/portage_dep.py: Filled out most of TargetGraph. Still need to complete support for OR deps. Added a bit some more support functions to Atom and DependSpec. 04 May 2005; Jason Stubbs pym/portage_syntax.py pym/portage_dep.py: Added remove_preferentials() method to the DependSpec class. Simplified PkgGlue to just being a container. 03 May 2005; Mike Frysinger bin/ebuild.sh portage.txt pym/ebuild.py bin/ebuild-default-functions.sh: Change internal variable BUILDDIR to PORTAGE_BUILDDIR #68269. 03 May 2005; Mike Frysinger bin/dodoc bin/doinfo bin/newdoc bin/newman bin/prepallman bin/prepallinfo: Clean up code a bit to make it smaller and nicer. 03 May 2005; Mike Frysinger bin/doman: Remove old unused options (-x11/-gnome/-kde/etc...) and cleanup. 03 May 2005; Jason Stubbs pym/portage_syntax.py pym/portage_dep.py: Fixed some bugs in the new intersects() and encapsulates() methods. Created a transform_dependspec() function that reorders DependSpec elements based on supplied preferences. 03 May 2005; Jason Stubbs pym/portage_syntax.py: Added methods for modifying DependSpec externally. 03 May 2005; Jason Stubbs pym/portage_syntax.py: Added intersects() and encapsulates() functions to the Atom class for comparing relationships between similar atoms. 03 May 2005; Jason Stubbs man/portage.5: Removed invalid example from package.keywords section. 03 May 2005; Jason Stubbs pym/portage_dep.py pym/portage_syntax.py: Mostly completed DependSpec and started on TargetGraph. 29 Apr 2005; Mike Frysinger bin/doman: Recognize more subchapters than just [1-8n] #32584. 29 Apr 2005; Mike Frysinger bin/env-update.sh pym/portage.py pym/portage_const.py: Remove execution of depscan.sh #86523. 26 Apr 2005; Marius Mauch cnf/make.globals*: Add FEATURES=strict. 25 Apr 2005; Mike Frysinger bin/ebuild-functions.sh: Remove autoconfig FEATURE and make it always run Bug #81822. 25 Apr 2005; Marius Mauch pym/portage.py: remove the stupid "masked by -* keyword" message. 24 Apr 2005; Jason Stubbs pym/portage_syntax.py: Added a class called DependSpec which handles parsing *DEPEND and SRC_URI strings. Read-only at the moment, but will probably change later. 24 Apr 2005; Jason Stubbs bin/emerge pym/portage.py: Removed support for --inject and --upgradeonly as well as the now unused digraph class. 23 Apr 2005; Marius Mauch pym/ebuild.py: forward port fix for bug 77794. 19 Apr 2005; Mike Frysinger bin/etc-update: Clean up some silly `cat` usages and make the output format pretty. 12 Apr 2005; Mike Frysinger bin/quickpkg pym/ebuild.py pym/portage.py: Rename 'portage-pkg' to 'binpkgs' so tab completion for 'portage' works. 08 Apr 2005; Marius Mauch bin/emerge: Add a list of active user config files to emerge --info. 06 Apr 2005; Marius Mauch pym/set_modules/*.py: Added a basic framework for package sets including modules for "system", general filelists (including "world") and "security", the latter currently depending on glsa.py from gentoolkit. 03 Apr 2005; Jason Stubbs pym/portage_dep.py: Added shortcut to circular dep "resolution" as per bug 85130. Removed the traversed cache dict from __traverse_nodes and made the original list into a dict. 27 Mar 2005; Brian Harring bin/ebuild-functions.sh: Pushed ECONF_SOURCE support forward from stable. Seems kind of fluffish. 23 Mar 2005; Jason Stubbs bin/dispatch-conf: Removed the -a argument from all diff usage. 21 Mar 2005; Marius Mauch pym/portage_const.py: Adding prerm and postrm to EBUILD_PHASES so logging works there too. 21 Mar 2005; Marius Mauch bin/ebuild-functions.sh: Force the copy by removing the destination first in econf/autoconfig, prevents sandbox violations by libtoolize calls without --copy. 15 Mar 2005; Brian Harring pym/cache/*; Cache updates moving _eclasses_ handling up into the template layer, added delayed sync'ing support (see database.autocommit) which is relevant for rdbms backends. 13 Mar 2005; Brian Harring pym/portage_dep.py: Addded a traversed cache dict to __traversed per call, the slowdown was pointed out by Thomas de Grenier de Latour (TGL). 56s, to ~6s. Probably should be using a dict for traversed, but is dependant on whether the returned list is order, or can be random. 10 Mar 2005; Marius Mauch pym/portage.py: fix breakage wrt portage_const.EBUILD_PHASES 09 Mar 2005; Brian Harring bin/emerge: emerge --metadata can now be ran by non-root users. 09 Mar 2005: Brian Harring pym/ebuild.py, bin/emerge: Don't set 02775 on depcache_dir. Ever. If the cache backend is stupid and can't get the perms right, fix the backend. 09 Mar 2005; Brian Harring pym/cache/fs_template.py: _ensure_dirs didn't account for umask. 09 Mar 2005; Brian Harring pym/cache/flat_list.py: Damn I'm cool- _eclasses_ are now properly returned. 09 Mar 2005; Brian Harring pym/portage.py, pym/ebuild.py: Two issues- use parsed restrict handling, and depends phase not bailing when a cpv's key's can't be sourced 09 Mar 2005; Marius Mauch pym/elog_modules/mod_mail.py: Add a "To" header to mails. 09 Mar 2005; Marius Mauch bin/ebuild-daemon.sh: portageq shouldn't prefix its output as it's used in variables. 08 Mar 2005; Brian Harring pym/ebuild.py: Revert part of the restrict/portage_restrict changes so use conditionals in restrict work again. 08 Mar 2005; Brian Harring pym/portage.py, pym/portage_dep.py, pym/portage_util.py, pym/config.py: Moved match_from_list, match_to_* stuff into portage_dep, and updated references, and fixed a few bugs related to match_* locations from last check in. Threw out match_from_list_original func- it's dead code. 08 Mar 2005; Brian Harring pym/portage.py: Harring's law in effect- stupid one line bugs do not rear their head till the delta hits the repository... :/ Fix for the INHERITED auto-determination in portdbapi.aux_get 08 Mar 2005; Brian Harring pym/portage.py, bin/emerge, cache/*, pym/eclass_cache.py : Cache refactoring. Eclass_cache is now just a dict of stacked eclasses, but doesn't track per pkg eclasses. That is left up to the cache. The cache now ignores/drops INHERITED- this is replaced by _eclasses_, which is a serialized dict of {eclass name: (on disk location, long(mtime))}. Note the tuple- returns from the cache subsystem *should* be tuples, just the same as mtime should be a long. aux_get *should* return INHERITED, but it should do it dynamically. Basically, INHERITED is determined on the fly from the cache's _eclasses_ setting. Beyond that, a sql cache template was added, along with a sqlite example. flat_list, along with a metadata/cache specific backend, and cache.util.mirror_cache, for metadata transfers. Note all existing cache modules/implementations are now invalidated. Sorry. Upgrade em. Existing cache's on disk are invalidated also, with the exemption of portdir/metadata/cache. Old cache classes have been banished to the attic. 08 Mar 2005; Marius Mauch pym/portage.py, pym/ebuild.py: Fixing fetch restriction code. Replace references to PORTAGE_RESTRICT with just RESTRICT and fix broken writemsg() calls. 08 Mar 2005; Marius Mauch pym/portage.py: Reverting broken patch for fakedbapi.cp_all(): it returned a nested list instead of a simple list and was weird at best. 06 Mar 2005; Brian Harring autogen.sh: used for autogenerating auto* crap after a checkout. 06 Mar 2005; Brian Harring bin/emerge, pym/portage_dep.py, pym/portage_file.py, pym/portage_util.py, pym/portage.py, pym/config.py, pym/eclass_cache: Broke config class out into it's own module. Minimal hacks, 3 from portage imports that can't be gutted till reliance on global db is gone. Aside from that, shifts of funcs around. Also broke eclass_cache out. 06 Mar 2005; Jason Stubbs bin/emerge: Added a check to make sure the file exists before working with it, when called with an ebuild path. #84102 Fixed the invalid call to isvalidatom() #84144 Expanded syslist during the unmerge phase so that all packages listed in system are correctly checked and warned against. #83670 02 Mar 2005; Jason Stubbs pym/portage.py: Fixed a var substitution that caused installed virtuals to not be considered. 02 Mar 2005; Brian Harring pym/ebuild.py: added a check to force PORTAGE_LOGFILE to have the appropriate owner/perms. 02 Mar 2005; Jason Stubbs pym/portage_util.py: Added missing bsd_chflags import required after forward porting. 02 Mar 2005; Jason Stubbs pym/portage.py: Added -* to FEATURES before saving back to the env after modification. 27 Feb 2005; Jason Stubbs bin/emerge pym/ebuild.py: Fixed a couple of syntax errors. 26 Feb 2005; Jason Stubbs src/chflags/*: Added spb's bsd chflags support. 26 Feb 2005; Jason Stubbs cnf/*: Brought forward changes from portage_2_0. 26 Feb 2005; Jason Stubbs pym/*: Brought forward changes from portage_2_0. 26 Feb 2005; Jason Stubbs bin/*: Brought forward changes from portage_2_0. Repoman is broken until pym/* is updated. 25 Feb 2005; Brian Harring pym/portage.py: yanked PORTAGE_TMPFS support, no longer relevant since data is fed back via daemon pipes, not via file on disk. 24 Feb 2005; bin/ebuild-default-functions.sh: - added manifest_files to USER_CONFIG_PATH+/manifest_excludes. The way it works is to add a file to /etc/portage/manifest_files and this file will be ignore when checking the Manifest. This is mainly only useful when you rsync_exclude a file thats list in the Manifest. (embedded) 21 Feb 2005; Marius Mauch bin/isolated-functions.sh, cnf/make.conf, cnf/make.conf.alpha, cnf/make.conf.amd64, cnf/make.conf.arm, cnf/make.conf.hppa, cnf/make.conf.ia64, cnf/make.conf.mips, cnf/make.conf.ppc, cnf/make.conf.ppc64, cnf/make.conf.s390, cnf/make.conf.sh, cnf/make.conf.sparc, cnf/make.conf.x86, pym/ebuild.py, pym/portage.py, pym/portage_const.py, +pym/elog_modules/__init__.py, +pym/elog_modules/mod_custom.py, +pym/elog_modules/mod_mail.py, +pym/elog_modules/mod_save.py, +pym/elog_modules/mod_syslog.py: New shiny flexible modular logging system. Supports logging of ebuild messages via syslog, mail and storing on disc with an optional command for post-processing. See make.conf on how to configure it. On the technical side it's one of the first pluggable subsystems, you can just put mod_foo in /usr/lib/portage/pym/elog_modules, set PORTAGE_LOG_SYSTEM=foo and all logs are processed by your new module (see existing modules for the very simple API). 17 Feb 2005; Brian Harring pym/portage.py, pym/portage_db_flat.py: Collection of speedups, some massive. J?rgen H?tzel deserves massive props for identifying a huge slow down in cp_all. Aside from that, pushed the locking rewrite for flat_list forward from stable, and cleaned up aux_get and eclass.is_valid. 06 Jan 2005; Marius Mauch bin/emerge: Fixing some calls to pkgsplit to not modify the returned tuple. 29 Dec 2004; Jason Stubbs bin/emerge: Sort the unmerge to make the --pretend output easier to review when there is a large list. Fixed depclean's attempt at modifying a tuple returned from pkgsplit. 28 Dec 2004; Brian Harring man/Makefile.am: Removed eclass man pages from makefile references. 15 Dec 2004; Marius Mauch bin/ebuild-default-functions.sh: Disabling the warning for GID=portage as it affects most/all packages and gets really annoying. 14 Dec 2004; Jason Stubbs bin/emerge pym/portage.py: Fixed emerge so that the "emerge by path" message is only shown when the "path" ends in .ebuild or .tbz2. Fixed the package.keywords bug that caused all packages to become unmasked. 11 Dec 2004; Jason Stubbs pym/portage_syntax.py: Modified atom.match() to reflect the change of cpv becoming an attribute of atom. 10 Dec 2004; Jason Stubbs pym/portage.py: Fixed a bug due to the cleanup patch where zfill() was being called on an integer. 09 Dec 2004; Marius Mauch bin/ebuild-functions.sh: Fixing stupid typo that broke einstall for CONF_LIBDIR archs. 09 Dec 2004; Marius Mauch bin/ebuild-default-functions.sh: Changing LDFLAGS to CFLAGS for the setXid check. 08 Dec 2004; Marius Mauch pym/portage.py: Changing CWD back to the original value broke verify-rdepend, fixing it with the same code as used for collision-protect. Also made the time displays in treewalk more readable. 08 Dec 2004; Jason Stubbs portage_syntax.py: Inital commit. Refactors all of portage_versions.py and some functions from portage.py into a CPV class and an Atom class. 08 Dec 2004; Jason Stubbs ebuild-default-functions.sh emerge portageq portage.py portage_dep.py portage_exec.py portage_util.py portage_versions.py: Added Ludal's clean up patch. #69523 05 Dec 2004; Brian Harring tarball.sh: Yanked the script- A) it's specific to nicks setup, B) the tarball/release creation functionality is already handled by the autotooling of portage (make dist), C) make dist does it better, and automatically handles pulling in all required deps as an ancillary function of it's building/installing, D) make dist requires no specific maintenance while tarball.sh does. 05 Dec 2004; Brian Harring pym/cache, pym/cache/template.py, pym/cache/fs_template.py, pym/cache/sql_template.py, pym/cache/flat_list.py, pym/cache/anydbm.py, pym/cache/sqlite.py, pym/cache/cache_errors.py, pym/cache/__init__.py: Cache refactoring, not active in the code currently. All backends should work, although the code is not finished. Locking support needs to be added into fs_template- possibly do it in the derived fsbased backeends, since locking for flat_list is quite different from locking for anydbm. 05 Dec 2004; Nicholas Jones pym/portage.py: swegener made quite a find in portdbapi.cpv_exists, the comparison on the tuple returned by findname2 always evaluated true. 05 Dec 2004; Nicholas Jones bin/: Added SpanKY's patch for stripping coherency -- All stripping is performed in prepstrip. 28 Nov 2004; Brian Harring bin/ebuild-daemon.sh: Correction of return code for execute_phases w/ logging. 26 Nov 2004; Jason Stubbs bin/emerge: Fixed a bug in graph_display.use_flags(). 24 Nov 2004; Jason Stubbs bin/emerge: Fixed a bug in the relevant package calculation for dep display. 24 Nov 2004; Jason Stubbs bin/emerge: Added the removal of fully installed dependency subtrees causing faster calculation due to less circular dependencies. 23 Nov 2004; Jason Stubbs bin/emerge: --columns support is in and working. Algorithm has changed a little so that the minimum space is used while keeping 2 spaces between all columns. 23 Nov 2004; Jason Stubbs bin/emerge: Added class graph_display and moved most of depgraph.display() into various functions of it. --columns and --resume are not yet supported with it, so the depgraph.display() has been kept for the time being. 23 Nov 2004; Jason Stubbs pym/portage.py: Commented the deprecation notice for /etc/portage/virtuals as it does not yet have a newer counterpart. 22 Nov 2004; Brian Harring pym/transports/fetchcommand.py: spawn_bash, not spawn. 22 Nov 2004; Brian Harring src/filter-env/posix.c: Anchor generated regex filters, fix to the damned looping over stdin still. 22 Nov 2004; Brian Harring src/filter-env/posix.c: Final bugs should be shaken out of the pipe reading now. realloc and I don't get along. 22 Nov 2004; Brian Harring bin/ebuild-functions.sh: econf now ignores update_confcache's exit_code, and uses configure's. Should kill off the occasionaly "couldn't update confcache" and killing of compile phase. 22 Nov 2004; Brian Harring src/filter-env/posix.c: Commited what should be a fix for the "lets randomly drop part of the env" issue that's been around lately. Basically, it looks like it wasn't reading all of what was dumped to stdin. Converted it to fread/fopen based, and used feof. General cleanup aside from that, close fd's on the way out, etc. 20 Nov 2004; Brian Harring bin/ebuild.sh: filter-env is now in use. In other words, you *will* have to do the configure/install to get the binary, since it *is* required for correct env processing. I tried a host of other solutions, so far I can't break this one (aside from dumb typos in the code). Processing the envs from kdelibs/arts is now possible again. 20 Nov 2004; Brian Harring pym/portage_const.py: Added compatibility hack due to sandbox being moved. Will remove it once people have shifted over to using the split out sandbox's new location. 20 Nov 2004; Brian Harring : Portage is now autotool'd, w/ relevant configure. Needs work, specifically, cnf installation isn't there yet- would prefer to add that when the 101 arch specific make.conf's are collapsed down to one file. Note sandbox was busted out, and moved into it's own module. 18 Nov 2004; Marius Mauch pym/portage_versions.py: Fixing version regexp to allow weird package names. 15 Nov 2004; Marius Mauch bin/ebuild-default-functions.sh: NEVER try to change permissions on symlinks, stupid chmod will change the referenced files instead (fixed the portage uid/gid checks in dyn_install) 15 Nov 2004; Nicholas Jones portage.py, portage_gpg.py: Fixes for the gso changes in gpg. Removed the 'virtuals' file handling which caused an empty file to be recreated. Added XXX marks on potentially bad calls. 14 Nov 2004; Brian Harring spec/emerge.syntax: Bye bye emerge.syntax, we hardly knew ye. 14 Nov 2004; Marius Mauch bin/emerge, man/make.conf.5, spec/emerge.syntax, cnf/make.conf.*, cnf/make.globals*: removing all support for AUTOCLEAN=no, it's breaking too many things these days and has no real use anyway. 10 Nov 2004; Brian Harring pym/dcache.py: Updated to make it more memory efficient- slots based, uses weakref to handle symlink'd dirs. Still a bit slower, but it's also stat'ing all directories upto the target directory. That can probably be removed. Note, there is a bug in it currently- invalidate isn't a valid node method. Nobody should hit this though, since dcache is only used in treewalk. I'll correct it in a few days. 10 Nov 2004; Brian Harring pym/portage_locks.py: Reversion of lock choice strategy to what I stuck in originally, and removal of the 3s sleep in hardlink. The 3s is obviously bad, the reason for reverting to trying flock then lockf then hardlink is simple- hardlink is slow, and requires creation of extra files on disk. It also won't behave with fd's passed in (which should be used often, rather then this lets default to creating lots of files strategy. This makes a huge difference in runtime in certain cases. Case that exposed this- 9m relying on lockf -> hardlink reduced to 1.5m for flock -> lockf -> hardlink. The difference? lockf didn't work on that fs, so it was using hardlink. Leave it in, it's faster, it's redundant, and it works. 10 Nov 2004; Brian Harring pym/portage.py, pym/portage_versions.py: Moved catsplit into versions and updated references to it. Likely just broke a few external tools (assuming they were coded correctly and weren't abusing string.split("/")). 10 Nov 2004; Brian Harring bin/ebuild-default-functions.sh, bin/affect-fakeroot-perms.sh: Closing out bug where suid/sgid is wiped by chowning, noticed a similar issue in affect-fakeroot-perms. (#56129) 10 Nov 2004; Brian Harring bin/ebuild.sh: Dropping all support for reloading env attributes from a .51 dump. It wasn't implemented correctly, and it's not worth the duct tape and questionable code to try and half-ass support it. 10 Nov 2004; Brian Harring bin/etc-update: Fixed etc-update so it actually runs; long story short, the portageq calls for getting CONFIG_PROTECT(|_MASK) were wrong. 10 Nov 2004; Brian Harring bin/ebuild.sh: Added kludge to filtering for env reloading to match the export kludge added to 2.0.51. This code must stay in as long as .51 env's *potentially* exist on a users system. 10 Nov 2004; Brian Harring bin/ebuild-daemon.sh: Made it much more noisy when a violation is hit. 10 Nov 2004; Brian Harring bin/affect-fakeroot-perms.sh: rewrote this script so that it's less likely to piss off fakeroot by spawning multiple instances of a client. 10 Nov 2004; Marius Mauch +pym/portage_versions.py, bin/db-update.py, bin/emerge, bin/fixvirtuals, bin/pkgname, bin/repoman, pym/ebuild.py, pym/portage.py, pym/portage_dep.py: Integrated the new version parsing and comparison code from bug #37406, moved pkgsplit, catpkgsplit, pkgcmp, vercmp and ververify in portage_versions.py and changed all calls to them. The new code allows for more flexible version strings, some functions probably still have to be fixed to work with those new extensions. 09 Nov 2004; Brian Harring pym/dcache.py, pym/orig_dict_cache.py, portage.py: Removed listdir optional arg EmptyOnError- wasn't abided by for non-recursive calls, for recursive calls it only returned None when recursing. Optional arg wasn't used, so it's gone. Moved followSymlink logic into listdir, so that orig_dict_cache is strictly a caching mechanism. Added dcache, a symlink aware list based cache class. dcache needs work, but reduces listdir($IMAGE_OF_XORG,recursive=1) from spending hours to return (on my machine), to around a minute. Made dcache active *only* for treewalk currently, since that's the instance where the original cache implementation's lack of symlink-awareness made things bad. 09 Nov 2004; Brian Harring pym/ebuild.py: make prelink + confcache play nice (calc_prelink=1). 09 Nov 2004; Brian Harring bin/ebuild-daemon.sh: Added appropriate addwrites for logs for -r3 sandbox, and corrected logging for bash v2 systems. 09 Nov 2004; Brian Harring pym/portage.py: Corrected som idiocy I introduced into listdir. 09 Nov 2004; Brian Harring pym/portage.py: buggy logic in listdir w/ ignorecvs on. (#70170) 08 Nov 2004; Brian Harring pym/portage.py: tweaked portage.exit_callbacks so it's more flexible. Call portage.append_exit_callback to append to it, optionally specifying args and keyword args. 08 Nov 2004; Brian Harring pym/portageq.py, bin/portageq: Tied portageq script into using the portageq module. 07 Nov 2004; Brian Harring bin/repoman: converted repoman over to using the users preferred fetcher (via portage.get_preferred_fetcher, oddly enough). 07 Nov 2004; Brian Harring pym/transports/fetchcommmand.py: corrected an issue where it wasn't correctly parsing out an appropriate distdir when file_name was specified. 07 Nov 2004; Brian Harring bin/ebuild-default-functions.sh: addition of INSTALL_MASK support to dyn_preinst. #67190 07 Nov 2004; Brian Harring pym/portage_db_flat.py: added a mtime cache to revert the the # of stats to 1 for aux_get calls (which calls get_timestamp). 07 Nov 2004; Brian Harring pym/portage_exec.py, sync/rsync.py: Bug fixes for selinux.setexec typo, and noisy rsync. Aside from that, a collection of header updates. 07 Nov 2004; Brian Harring pym/portage_util.py,pym/portage.py: tweak to make movefile not implode, and get_preferred_fetcher not implode. 07 Nov 2004; Brian Harring pym/portage_metadata.py, pym/orig_dict_cache.py, pym/portage.py, pym/portage_util.py: Added missing metadata module (contributed via solar iirc), and corrected circular dependency issue regarding portage_util trying to provide backwards compatability via portage_util.normpath. 07 Nov 2004; Brian Harring pym/ebuild.py: forgot to commit this in the last commit. Kind of required. :) 07 Nov 2004; Brian Harring pym/portage.py, bin/emerge, bin/env-update, bin/repoman, cnf/make.conf, pym/ebuild.py, bin/affect-fakeroot-perms.sh: Merge of the ebuild-daemon code (ebuild.py), along with massive shifts/cleanup/fixes. At this point, the env of an ebuild *should* be perfectly preserved, and used. This deprecates portage.doebuild, in favor of eventually calling an ebuild.py:process_phase. The code of doebuild now exists as ebuild.py:__adjust_env. That code needs cleanup, and splitting. Rough stats for the daemonized ebuild processor code is a 33% reduction in run time for a full regen, with the initial framework laid out to allow parallel regens on smp systems. Aside from making all of the previous refactorings active (sync refactoring in emerge, transports refactoring in portage.py and repoman), this adds the following- portage.exit_callbacks- append a function to this list, and it'll be called at shutdown FEATURES="verify-rdepend"- don't trust the packages stated rdepends, ldd the crap out of the package to verify it. When severe is on, bail, if unstated rdepends are encountered. FEATURES="prelink"- do prelinking of binaries after merging. Initial patch submitted by Urilith. FEATURES="userpriv_fakeroot"- run the install phase in userpriv'd fakeroot instance, removing the root requirement for all building phases but setup FEATURES="confcache"- a implementation of stuart's confcache alg, minus the sandbox modifications. FEATURES="parallel-fetch"- bug #1661, fork and fetch while merging. Requires distlocks to be enabled, and only kicks in when more then one package is being merged. This is based on portage_exec.spawn_func, and depgraph.__fetch. Aside from the feature additions, a large amount of code shifting to break the need for globals, and try to centralize the code for modularizing (this is the start of it). A large amount of code cleanup in addition. 07 Nov 2004; Brian Harring bin/ebuild-default-functions.sh: Compatability hack to treat USE="selinux" as both a feature, and use. With the env saving/restoring, it's possible a binpkg is created on a non-selinux system- the use vars are preserved and reused, so that systems USE="-selinux", merged on a selinux system results in preinst's selinux code not being executed. No labels. That's bad. 07 Nov 2004; Brian Harring pym/portageq.py: Isolated functions from bin/portageq. 07 Nov 2004; Brian Harring bin/ebuild: missing portage_util import. Only exposed when intentionally bailing out of a phase that is executing. 07 Nov 2004; Brian Harring bin/ebuild.sh, bin/ebuild-default-functions.sh, bin/ebuild-function.sh, bin/ebuild-isolated-functions.sh: Env clean ups, fixups. Not compatable with doebuild at this commit, since it tries to write back via pipes. To make it compatible (should a revert occur), define an appropriate speak funciton. This commit closes out #52652, #51552, #51370, #46223, potential issues from installed ebuilds not functioning correctly due to assuming use/has behave a certain way #40993, ultimately #56408. Essentially, this is all the required bash modifications to properly save/restore the env, allowing for ebuilds to be uninstalled despite eclasses/ebuilds no longer existing. Also contains a fair amount of protective code, since older env savings were incorrect. Additionally, it properly restores variables attributes- export fex, shopt, etc. This is the basis of the ebuild-daemon. Finally, adds (pre|post) hooks for all relevant ebuild phases. Required, since /etc/portage/bashrc is sourced only once. 07 Nov 2004; Brian Harring pym/portage_util.py: fixed import issue. 07 Nov 2004; Brian Harring portage_dep.py: code transfer out of portage.py. Functions are still in portage.py at this point, removed shortly. Closes a few bugs with paren_reduce not returning a list, but a tuple also. 07 Nov 2004; Brian Harring portage_db_template.py, portage_db_flat.py: Addition of get_timestamp, way of requesting -just- the mtime. Useful for speeding up checking if an entry is stale, if the mtime differs, no need to read the file in- you know it's stale already. Cuts down on a few syscalls. 07 Nov 2004; Brian Harring sync/__init__.py, sync/parseuri.py, sync/cvs.py, sync/rsync.py, sync/snapshot.py, bin/emerge-webrsync: Rewrite of Marius Mauch's (genone) sync refactoring code. Relies on the transport refactoring for snapshots module. This obsoletes emerge-webrsync. Supports old SYNC format for cvs, and new- new being SYNC="cvs://[CVS_RSH:]user@host:cvsroot:cvs-module". New is preferred, otherwise have to assume CVS_RSH=ssh, and cvs-module=gentoo-x86. Example of new- SYNC="cvs://ssh:ferringb@cvs.gentoo.org:/var/cvsroot:gentoo-x86" The snapshot uri is a bit odd, possible to rework it I'd think- either SYNC="snapshot" which pulls a mirror to use from portage.thirdpartymirrors["gentoo"], or explicitly SYNC="snapshot-[mirror-uri]". fex SYNC="snapshot-http://gentoo.chem.wisc.edu/gentoo/snapshots" would use snapshots from gentoo.chem.wisc.edu. Sync uri for rsync is unchanged. This is just the requisite code, the conversion to emerge to use it shall follow. (#35535). 07 Nov 2004; Brian Harring transports/__init__.py, transports/bundled_lib.py, transports/fetchcommand.py: Fetch refactoring. Basically, a rewrite of portions of getbinpkg in httpConnection, and ftpConnection. Those classes are hidden behind BundledConnection, which has an api that is the same as fetchcommand.py:CustomConnection- that class abstracts the parsing and handling of (FETCH|RESUME)COMMAND, and their protocol specific settings into a central class. Code isn't in use as of this commit, but will be in use once ebd's code is fully in cvs (portage.py commit essentially). The sync refactoring also uses it. bug #23327 also is addressed, although it's ancillary- bundledConnection is able to handle specific user/passwd, although for fetchcommand, we need to add a specific user/password set of variables. 07 Nov 2004; Brian Harring orig_dict_cache.py: Transfer of the cacheddir func out of portage.py, and into it's own module. Current implementation isn't symlink aware, and has other issues (follow_symlinks fex). This shift of it is intended so replacing it just involves creation and importation of an alternative caching module. 07 Nov 2004; Brian Harring portage_exec.py, portage_checksums.py, portage_gpg.py, portage_const.py, portage_util.py, portage_locks.py: Code cleanup, moves, and shifting away from commands.gso to portage_exec.spawn_get_output. Multiple additions to portage_exec adding fakeroot support, a native collect status output, and centralized code for killing off a set of pids. Correction to portage_exec so that the spawned_list is correctly pruned- previously it was a list of _all_ pids spawned, so portage could try to kill off a pid that was previous a child, but by chance a new process runs as (depends on how random the pid selection is). Aside from changes to cleanup, these changes are mostly standalone. Additionally, moved selinux context switching into portage_exec post-fork- just specify the desired selinux_context, and it'll make the switch- if portage_exec.selinux_capable, it makes the switch. Otherwise, it ignores it. Finally, new function added, spawn_func. Pass in a python function, it'll fork, then call the function w/ the args/kwargs passed to it- optionally using an additional passed in function to interpret the results, and return an appropriate exitcode. Also, a *large* amount of inline documentation is contained in this commit. 07 Nov 2004; Jason Stubbs dispatch-conf: Moved back to the version of dispatch-conf that was released (due to python-2.2 compatibility) and fixed a small type in that version. #70282 07 Nov 2004; Jason Stubbs portage_dep.py emerge: Added a few more readable optimizations to the DependencyGraph class along with apprioriate comments. Changed all usage of digraph in emerge to use the new DependencyGraph class. 06 Nov 2004; Jason Stubbs portage_dep.py emerge: Added full code comments to the DependencyGraph class. Did some code optimization where readability was not adversly affected. Removed the testing output from emerge. 06 Nov 2004; Jason Stubbs portage_dep.py emerge: Added a reimplementation of digraph. Still some work to do (including comments) in order to support the differences between *DEPEND. Modified emerge a little to build up both dep graphs for testing purposes. 05 Nov 2004; Jason Stubbs doins: Added vapier's fix for doins changing existing directory permissions. #69896 04 Nov 2004; Jason Stubbs tbz2tool.c: Added include for stdlib.h as per vapier's bug report. #70001 04 Nov 2004; Marius Mauch pym/portage.py: Added a 'return 0' in treewalk() to avoid the "Unable to run required binary" problem. 03 Nov 2004; Brian Harring portage_dep.py: Bug in paren_reduce where it was returning a tuple, not a list. 03 Nov 2004; Jason Stubbs dispatch-conf: Simplified the temp file creation and usage. 03 Nov 2004; Jason Stubbs portage.py: Fixed issues with PROVIDE calculation by flattening the dep array. #32114 02 Nov 2004; Jason Stubbs portage.py: Fixed two bugs in the ExtractKernelVersion changes as per dsd's patch. #67804 02 Nov 2004; Jason Stubbs ebuild.sh: Turned off shell option extglob as it interferes with the g++ QA interceptor. #69690 02 Nov 2004; Jason Stubbs portage.py: Fixed a bug where a broken symlink blocking the installation of a regular file would cause a traceback. #69672 02 Nov 2004; Jason Stubbs quickpkg: Applied vapier's fix for processing file names that contain spaces. #36997 Applied vapier's fix for parallel quickpkg's writing to a single log file. #37270 31 Oct 2004; Jason Stubbs g-cpan.pl: Applied fix for case-less matching of packages names. #69464 31 Oct 2004; Jason Stubbs portage.py: Updated ExtractKernelVersion() to support 2.6.9's new localversion. #67804 Reordered a cache update and a return statement so that the cache is actually updated in ververify. #69523 31 Oct 2004; Jason Stubbs bin/ebuild: Added missing portage_util import. 29 Oct 2004; Brian Harring emerge: Close stdin after the spawn fork for rsync, not in global scope. #68946 29 Oct 2004; Jason Stubbs emerge: Fixed issue where emerge adds package to world when --onlydeps is specified. #69260 Fixed issue where emerge was adding packages to world when --uprade is specified even if the package is already installed. #69287 Fixed logic in path/to/ebuild check so that symlinks do not cause false positives. 29 Oct 2004; Jason Stubbs dispatch-conf: Added usata's fix for mac-os compatibility. #69304 29 Oct 2004; Jason Stubbs getbinpkg.py: Reversed the logic of ftp passive-mode selection. #69371 28 Oct 2004; Brian Harring portage.py: Closed out an issue with config.reset() gradually nuking items out of backupenv- identified by Ludovic Aubry, solved w/ his provided fix. (#69388) 28 Oct 2004; Jason Stubbs emergehelp.py: Fixed up some incorrect descriptions. Added documentation for new and changed functionality. Removed documentation for deprecated options. 28 Oct 2004; Jason Stubbs getbinpkg.py: Added missing substitution of ${FILE} in resume command. #69068 28 Oct 2004; Jason Stubbs repoman: Fixed aux_get error due to calling getfetchlist() when an ebuild no longer exists. #69051 28 Oct 2004; Jason Stubbs emerge: Removed a duplicate loop from the userquery function. #69020 27 Oct 2004; Jason Stubbs dispatch-conf: Moved temp file creation into a safe directory under /tmp. Made the log file a configurable option that is disabled by default. 26 Oct 2004; Jason Stubbs portage.py: Added a check to portdbapi.fetchcheck to account for a missing digest. 26 Oct 2004; Brian Harring portage_exec.py, bin/ebuild: bug with the path lookup code (added find_binary func for upcoming additions), and bin/ebuild was bailing due to a missing portage_util import. 25 Oct 2004; Jason Stubbs portage.py: Wrapped entire lock-holding section of fetch() in a try-finally to ensure that the lock file gets released regardless of exception. 25 Oct 2004; Jason Stubbs etc-update: Added patch from #48218 to continue on to next file when answering "no" to the interactive replace prompt of menu option -3. 25 Oct 2004; Jason Stubbs emerge: Fixed the space/tab usage through the spinner_msgs definition. Removed COMPILER from emerge info output. 25 Oct 2004; Jason Stubbs portage.py: Converted config.pkeywordsdict from {atom:[keyword]} to {cp:{atom:[keyword]}} to prevent a lot of unnecessary calculation. 24 Oct 2004; Jason Stubbs emerge: Added a percentage counter to the cache update phase based on patch from #68694 24 Oct 2004; Jason Stubbs portage.py: s/macos/ppc-macos/ change. 24 Oct 2004; Jason Stubbs portage_locks.py portage_db_flat.py: Fixed a couple of race conditions with regard to stating files. 23 Oct 2004; Jason Stubbs portage.py portage_util.py: Added syntax checking for package.mask, package.unmask and packages files. 23 Oct 2004; Jason Stubbs dohtml: Reimplemented the option processing to remove the dependency on optparse. 23 Oct 2004; Jason Stubbs repoman: Made the invalid profile slightly more intelligable and got rid of the duplicate. Moved the profile KEYWORDS.invalid failure so that it only occurs if the corresponding KEYWORD is valid. 23 Oct 2004; Jason Stubbs portage.py: Added settings parameter to dep_virtual as the virtuals can now change during dep graph creation. #68220 23 Oct 2004; Jason Stubbs repoman: Changed repoman to use the first stable profile found for each arch listed in profiles.desc rather than the last profile listed. Added notification on any invalid profile in profiles.desc. Made exception into a repoman error where a ebuild is using a keyword for which no profile can be found. 23 Oct 2004; Jason Stubbs repoman: Fixed traceback in repoman on invalid LICENSE syntax. 22 Oct 2004; Brian Harring ebuild.sh: silencing use/has. 22 Oct 2004; Jason Stubbs emerge: Added python version to "emerge info" output. *portage-2.0.51-r2 (20 Oct 2004): Everyone loves finding bugs in stable! 20 Oct 2004; Nicholas Jones emerge: Fixed the result checking when ebuilds are called -- this removes the continuing-after failure big discovered by AMD64 today. 20 Oct 2004; Jason Stubbs emerge: Fixed a bug where users were warned against emerging by path when a file/dir exists of the same name of the package to be merged. #68372 Added an warning with delay when emerging an ebuild that is masked. Added a check on PORTAGE_GPG_DIR which removes "gpg" from FEATURES on an invalid settings. #68387 *portage-2.0.51 (20 Oct 2004): Everyone loves stable! 19 Oct 2004; Nicholas Jones portage.5: patch included to fix a few typos. 19 Oct 2004; Nicholas Jones g-cpan.pl patch included that doesn't recreate inherently-created ebuilds. 20 Oct 2004; Jason Stubbs repoman: Added check for digest entries that aren't used within the corresponding ebuild's SRC_URI. 20 Oct 2004; Jason Stubbs emerge: Added support for EMERGE_WARNING_DELAY defaulting it to 10. Changed all the hardcoded delays to use it. Needed for the catalyst guys as it includes a number of unmerges of system packages. 20 Oct 2004; Jason Stubbs emerge: Changed the /path/to/ebuild warning. Added a check on what ebuild is chosen and a failure if it doesn't match what was specified. Added the same for /path/to/tbz2. *portage-2.0.51_rc10 (19 Oct 2004): Potential Final #1. 19 Oct 2004; Nicholas Jones emerge: Visual acuity enhancements. Fixed all the spaces in the option handling. 19 Oct 2004; Nicholas Jones emerge.1: Updated for 'f' and 'S'. 19 Oct 2004; Nicholas Jones getbinpkg.py: Potential fix for a missing dict key. 19 Oct 2004; Nicholas Jones portage.py: Prelink tempfile per pid. 18 Oct 2004; Nicholas Jones *.py: Added a protocol change for cPickles to make them more efficient (binary). 18 Oct 2004; Nicholas Jones sandbox: Fixes for some incorrect indexes that cause some boxes to have very random issues. 18 Oct 2004; Nicholas Jones portage_locks.py: Reverted the lock code to the lockf()+hardlock version as the new code has some inexplicable incompatibility with NFS. 18 Oct 2004; Nicholas Jones portage_exception.py: Added a couple exceptions pretaining specifically to packages and digests. 18 Oct 2004; Nicholas Jones portage_checksum.py: Now takes care of missing files better for the partial-digest handling. 18 Oct 2004; Nicholas Jones portage.py: Fixed up some of the output lines to use writemsg instead of print. Adjusted the fetch code to handle partial-digests. digestCreate can substitute in old digest entries now for missing files -- the assumption is that they are correct. Portage no longer downloads all parts when FEATURES=cvs is enabled, but does require a complete digest to commit, whether it was created piecewise or en masse. Added 'fetch_check' to portdbapi which helps with with emerge's pretend output for Fetch-Restriction. 18 Oct 2004; Nicholas Jones repoman: Added in support for partial-digests -- It complains, downloads, and adjusts. Sorted the QA categories to make them easier to scan. 18 Oct 2004; Nicholas Jones emerge: Added -F to force all URIs to be downloaded. Added in a green, lowercase 'f' when the fetch restriction is satisfied for pretend. Added Kevin Quinn's patch for some prepstrip sanity and friendliness regarding TEXTRELs. 18 Oct 2004; Nicholas Jones ebuild.sh: Added a message about use/useq/usev. CCACHE_DIR and CCACHE_SIZE are now properly exported. 17 Oct 2004; pym/portage.py: Added a followSymlinks parameter to listdir() as otherwise it gets stuck in an infinite loop when it encounters self-referencing symlinks, this behavior was exhibited by the collision-protect feature. 17 Oct 2004; Brian Harring portage-locks.py: Tweaked unlockfile, no point in attempting to relock the file for deletion, if you're not deleting the lockfile (basically moved locking w/in if unlinkfile). 17 Oct 2004; Jason Stubbs emerge portage_locks.py: Added more information to the --inject deprecation notice. Removed the sleep call from unlockfile as it severely affects performance (apparently only under some schedulers) 16 Oct 2004; Brian Harring portage_locks.py: Corrected a bug involving unlocking + lockf. 12 Oct 2004; Brian Harring portage_exec.py: spawn_sandbox wasn't passing the opt_name down to spawn, it now does. 11 Oct 2004; Jason Stubbs; emerge: Reverted back to previous command line parsing code as --search options were being mishandled. 11 Oct 2004; Nicholas Jones portage.py: Fix for the SHA1 digest slipout and the exec missing/broken binary traceback. 11 Oct 2004; Nicholas Jones pym/*: See below. 11 Oct 2004; Jason Stubbs bin/*: Added catching and propogating of SystemExit exception to all blanket exception handlers. 11 Oct 2004; Jason Stubbs repoman: Fixed repoman LICENSE check to accept || () conditions. *portage-2.0.51_rc8 (10 Oct 2004): RC + Lock cleanup, Happy RC #4 10 Oct 2004; Nicholas Jones emerge: Added in close() calls to ensure that control-C gets intercepted by portage instead of the children. Added in a re-raise for the SysExit exception inside of the regen and metadata targets. 10 Oct 2004; Nicholas Jones cnf/make.conf*: benno@nietvergeten.nl's touchups to make.conf files. 10 Oct 2004; Nicholas Jones sandbox/*: Includes one of solar's patches to fix up potential holes in sandbox. 10 Oct 2004; Nicholas Jones portage_exec.py: Added a cleanup routine. 10 Oct 2004; Nicholas Jones portage.py: A could cwd fixes and removed the compat-writing for digests. 10 Oct 2004; Nicholas Jones md5check/mirror: brought them more up to date for the digest changes. 10 Oct 2004; Nicholas Jones emerge: Moved the imports around to ensure that portage.py gives output on failure instead of emerge just dying. Added '-1' as a short for oneshot. Added shorter messages for the titlebar. Fixed signal handling more -- Emerge sets up a handler that calls to portageexit() before quitting normally. 10 Oct 2004; Nicholas Jones ebuild.sh: Changed around the tarvars to make them STAR friendly. Added ECONF_SOURCE as a way to move econf out of the source directory and into a new build directory -- it defines the path to configure, not the command. Added CTARGET support. Added an rm for the infodir entries installed by autoconf so they don't kill what portage regens and vice versa. 10 Oct 2004; Nicholas Jones doins: Added Spanky's recursion patch. 10 Oct 2004; Nicholas Jones dolib: Added Spanky's symlink fix and condensed dolib*. 10 Oct 2004; Nicholas Jones doman: Added Spanky's i18n patch. 08 Oct 2004; Brian Harring portage_exec.py: Removed the portage_exec.spawn_bash call for tee logging- instead, transferred in some code that does path lookups (closer to the older portage.spawn call). Path lookup by default is on, but can be disabled via path_lookup=False. 08 Oct 2004; Brian Harring portage_locks.py: Reverted to using flock by default- if it fails (unavailable), -then- use lockf, then hardlink. 07 Oct 2004; Jason Stubbs portage.py: Updated portdbapi.getfetchsizes function for new digestParseFile return values. 05 Oct 2004; Jason Stubbs quickpkg: Fixed bug whereby creating a package from within /var/db/pkg/cat and specifying pkg would create a broken package. 05 Oct 2004; Jason Stubbs emerge: Modified output for slotted installations. #26139 05 Oct 2004; Jason Stubbs emerge: Refactored argv processing a little bit and made "emerge rsync" to emerge rsync with notice and "emerge --rsync" to emerge --sync with notice. 05 Oct 2004; Nicholas Jones portage_util.py: grabfile now handles a compat_level option for comment-based compatability changes -- This feature is for migration only and is thus transitory. 05 Oct 2004; Nicholas Jones portage_exception: Added a DigestException which is a SignatureException. 05 Oct 2004; Nicholas Jones perform_checksum.py: Added a perform_all() and verify_all() functions that handle the new dict of hashes that digestParse returns -- It creates hashes for all the listed/known formats or verifies them all returning a tuple of ok,reason. 05 Oct 2004; Nicholas Jones portage.py: Cleared up a few system-package import-alls (stat,commands) -- If it breaks something, they can fix their code -- They are standard modules. Removed the import for select, as it appears nowhere in usage. Changed the portage_data import. Added exithandler() back into usage, it was disabled -- Also corrected it's handling. Unified the digest-parsing code and made it into an intelligable dict instead of the fixed format. Merged digest functions and added SHA1 (arbitrary) handling in a new COMPAT mode using comments until we get the handling transitioned into common usage. digestCreateLines() handles the compatibility line values, and grabfile() has a compat-level handler. 05 Oct 2004; Nicholas Jones man/*: Random touchups. 04 Oct 2004; pym/portage.py: Added fix for config protection failure when destination is a symlink. #13007 04 Oct 2004; bin/repoman: Added detection of multiple overlays to repoman. 04 Oct 2004; bin/repoman: Added repoman check for DEPEND-syntax following LICENSEs. 03 Oct 2004; pym/emergehelp.py: Add --metadata documentation to --help output. 03 Oct 2004; cnf/*, man/emerge.1, man/make.conf.5, man/portage.5, pym/emergehelp.py: Changed documentation to use --action instead of action (bug #2365). Also changed ufed references in make.conf to use the correct category. *portage-2.0.51_rc7 (30 Sep 2004): RC + Lock cleanup, Happy RC #3 30 Sep 2004; Nicholas Jones emerge: Rsync fix part 2 for the distfiles, local, and packages directory unlinks. 30 Sep 2004; Nicholas Jones emerge-webrsync: Fix for the missing md5sum causing failure to download. Fixed up a couple messages. Modified the local rsync line. 30 Sep 2004; Nicholas Jones portage.py: Make more of the chown calls friendly. More output on strange exceptions in aux_get. 30 Sep 2004; Nicholas Jones portage_db_template.py: Added some more putput to the corruption message. 29 Sep 2004; Jason Stubbs output.py: Added unicode-rxvt to the list of legal term types. #65762 28 Sep 2004; Jason Stubbs etc-update: Added patch to use gsed on BSD from bug 60721. *portage-2.0.51_rc6 (26 Sep 2004): RC + Lock cleanup, Happy RC #2 26 Sep 2004; Nicholas Jones emerge: Restart fix for the -a into execv code. 26 Sep 2004; Nicholas Jones portage_locks.py: Fixed a traceback for Fat32 users. *portage-2.0.51_rc5 (26 Sep 2004): RC + Lock cleanup, Happy RC #1 26 Sep 2004; Nicholas Jones portage_data.py: Fixed the BSD lchown issues. 26 Sep 2004; Nicholas Jones portage.py: Added the selinux secure dirs patch. 26 Sep 2004; Nicholas Jones emerge: Modified the spinner again, --nospinner provides a basic ticker of one '.' per 100, normal spinner is the twirly one, and the FEATURES=candy spinner is a scrolly message. 26 Sep 2004; Nicholas Jones portage_locks.py: Fixed it. Discovered that the hardlocks were failing due to the creation of the lock prior to the link operation which was due to the NFS fcntl lock failure. 26 Sep 2004; Jason Stubbs pym/portage.py: Added support for per profile package.mask. Included check of packages file to ensure that the profile depends on an adequate portage version. *portage-2.0.51_rc4 (26 Sep 2004): RC + Lock cleanup 26 Sep 2004; Nicholas Jones bin/clean_locks: A new tool to aid in the maintainence of hardlock-based locks. It can clean all locks from a directory or just the ones pertinent to the running host. 26 Sep 2004; Nicholas Jones emerge: Updated the spinner. 26 Sep 2004; Nicholas Jones cnf/*: Added distlocks as a default feature. Added comments on distlocks and maketest and gpg. 26 Sep 2004; Nicholas Jones portage_locks.py: Lots of changes. Corrected the lockfile code to be an IOError. Added some helper functions to reduce duplication in the hardlink code. Added a callback to a cleanup function registered with atexit to ensure we clean locks up on normal terminations. Fixed the code to actually work on most NFS systems and hopefully have the fallback (INODE test) working on very broken systems. Added a cleanup function that is interfaced through the clean_locks script and the registered atexit call. *portage-2.0.51_rc3 (26 Sep 2004): And we have another Release Candidate! 26 Sep 2004; Nicholas Jones emerge: Modified the spinner. 26 Sep 2004; Nicholas Jones portage_db_flat.py: Fixed a lockfile descriptor leak due to duplicated lock calls. 26 Sep 2004; Nicholas Jones portage_lock.py: Added more cleanup to the lockfile descriptors. *portage-2.0.51_rc2 (25 Sep 2004): And we have another Release Candidate! 25 Sep 2004; Nicholas Jones portage_db_flat.py: Fix for typos. 25 Sep 2004; Nicholas Jones portage_locks.py: Changed all the calls to lockf which wraps fcntl. Made the chown on the locks optional -- if it fails, it'll be annoying, but there's a message. Added code to perform the hardlink-shuffle which uses hardlinks as a locking mechanism (NFSv2 needs this). 25 Sep 2004; Nicholas Jones portage_db_flat.py: Added locking around the file creation to ensure atomicity. 25 Sep 2004; Nicholas Jones portage_localization.py: A little spot to provide the '_' function and examples and future code. 25 Sep 2004; Nicholas Jones portage_file.py: Added the module to contain file/directory functions that are useful. Additional function 'makedirs' handles creation of directories with recursive perms. 25 Sep 2004; Nicholas Jones getbinpkg.py: Fixed the exception handling to not traceback. 25 Sep 2004; Nicholas Jones etc-update: Typo fix. 25 Sep 2004; Nicholas Jones emerge: Caused the binary metadata downloading to be a little more verbose. Fixed the sync command's arguments so that it deletes top level files. 25 Sep 2004; Nicholas Jones portage.py: Added Cretin's patch for prelink blacklists. Increased the verbosity of the 'mylines' output to let people know what files are affected with nulls. Added a workaround for a race condition that somehow exists inside of auxget when there is heavy lockfile contention -- Must be a lockfile cleanup issue. 25 Sep 2004; Jason Stubbs emerge: Modified env_update to always run ldconfig if makelinks is True, in order to ensure that missing symlinks are created. Added logic to treewalk to check if package is being downgraded and only run env_update with makelinks=False in that case. (#54655) 24 Sep 2004; Jason Stubbs emerge: Added the removal of --ask from argv when restarting after an emerge of portage. (#47379) 21 Sep 2004; Jason Stubbs portage_util.py: Changed varexpand to convert '\'-prepended newline chars to space rather than '\n'. 21 Sep 2004; Nicholas Jones portage.py: Fixed the bintree ebuild locating. Removed the virts_p debug/bug statements. 21 Sep 2004; Nicholas Jones portage_checksum: Added a fix for checksum tracebacks that tracebacked. 21 Sep 2004; Nicholas Jones ebuild.sh: Added more variables to vardb. 21 Sep 2004; Jason Stubbs emerge: Added (slightly modified) patch from bug 64682. 16 Sep 2004; Jason Stubbs portage.py: Modified getmaskingstatus() to use settings.prevmaskdict rather than reading packages directly in support of cascading profiles. *portage-2.0.51_rc1 (25 Sep 2004): And we have a Release Candidate! 15 Sep 2004; Nicholas Jones ebuild: On merge, disable the noauto feature explicitly. 15 Sep 2004; Nicholas Jones portage.py: Fixed the 'missing ebuild' for uninstalls of packages not in the tree. 15 Sep 2004; Nicholas Jones man/*: Started adding to the documentation in order to break it an make it look funny. Added a couple entries for missing concepts like 'inherit' and 'useq' and 'hasq'. Cleared up a few things here and there with usage. Added in the metadata target for emerge. *portage-2.0.51_pre24 (14 Sep 2004): Last _pre before docs and rc/stable. 14 Sep 2004; Nicholas Jones repoman: Extra handling for weird CVS/Repository info on OSX. 14 Sep 2004; Nicholas Jones emerge: Fixed a traceback in traceback handling where a value was trying to be extracted from an exception. Handled the case where a binary package does not have an ebuild in a tree or overlay and the verbose overlay output requires it. Change to the CVS checkouts for emerge sync, moved the -P immediately after the co. 14 Sep 2004; Nicholas Jones portage_exception.py: Added in some spacing between related exception groups. 14 Sep 2004; Nicholas Jones portage.py: Changed a bunch of lines unnecessarily to start getting the locale strings ready -- I'll probably have bugs due to this because I've been doing dumb things like that recently. 14 Sep 2004; Nicholas Jones man/*: Fixed ka0ttic's email address. 14 Sep 2004; Brian Harring bin/ebuild.sh: Removed the ${T}/successful logic, it's no longer needed. Existed only for the $0 "$@" 2>&1 | tee $PORTAGE_LOG trickery, which is now handled via portage_exec.spawn. 13 Sep 2004; Nicholas Jones portage.py: Fix for empty categories/portage-tree causing a traceback. *portage-2.0.51_pre23 (11 Sep 2004): Fixes and stuff. 11 Sep 2004; Nicholas Jones portage.py: Another fix to the virtuals/use code -- It wasn't using treeVirtuals. *portage-2.0.51_pre22 (11 Sep 2004): Fixes and stuff. 11 Sep 2004; Jason Stubbs portage.py: Fixed breakage in cacheddir changes upon stat'ing a broken symlink. 11 Sep 2004; Jason Stubbs portage.py: Fixed missing check in autouse function. Fixed out-of-bounds exception on catpkgsplit tuple access in vardbapi.move_ent. Changed to manual stat calls in cacheddir. 10 Sep 2004; Nicholas Jones portage.py: Removed the circular deps of vardbapi and config. *portage-2.0.51_pre21 (09 Sep 2004): Fixes and stuff. 09 Sep 2004; Nicholas Jones portage.py: Possible fix for autouse() that will prevent recursion and locks. *portage-2.0.51_pre210 (09 Sep 2004): (pre-pre release for 21) 09 Sep 2004; Nicholas Jones archive-conf: Added patch so that it runs. 09 Sep 2004; Nicholas Jones dispatch-conf: Added patch to die when rcs isn't installed but is required by options. 09 Sep 2004; Nicholas Jones ebuild.sh: Solar's checks for suid bind issues. 09 Sep 2004; Nicholas Jones fixvardbentries: Updated to Jason's current script. 09 Sep 2004; Nicholas Jones g-cpan.pl: Added a fix to store the ebuilds in a defined overlay. 09 Sep 2004; Nicholas Jones output.py: Added all xterm* terms to the title-list. 09 Sep 2004; Nicholas Jones portage.py: Fixed the cascade/stack functions -- use.defaults is fully line-incremental now. Removed a lot of cruft commented-code. Added an ebuild-mover into the entry move functions. 09 Sep 2004; Nicholas Jones portage_util.py: Placed the lex code into a try/except so we can add the filename into the error that is passed back from shlex. 08 Sep 2004; Brian Harring portage.py: Modified config.__init__(clone=1) so that profiles list is preserved, allowing for all profile's bashrc's to be sourced. 06 Sep 2004; Brian Harring portage.py: Fixed fetch logic for when DISTDIR isn't writable, but the file is fully fetched already (#62985). 05 Sep 2004; Brian Harring portage.py ebuild.sh: Added use flag support to RESTRICT; usual syntax. 04 Sep 2004; Nicholas Jones portage_data.py: Added FreeBSD as a BSD-type OS and merged the Darwin branch with them. 04 Sep 2004; Nicholas Jones portage_contents.py: The parsing portion of a persistent contents file parser that can return the owner of a particular file or directory by parsing (and storing) data from the contents files. 04 Sep 2004; Nicholas Jones portage_const.py: Added LOCALE_DATA_PATH to the constants for future gettext (internal) support. 04 Sep 2004; Nicholas Jones output.py: Fixed the title changes to no clear the icon title. 04 Sep 2004; Nicholas Jones prepman: No longer gzip's symlinks -- This needs to gain 'target changed' logic. 01 Sep 2004; Brian Harring pym/portage.py: Cleaned up the imports, cutting down on from blah import *, instead importing only what is strictly needed for backards compatability. 01 Sep 2004; Brian Harring pym/portage_exec.py: Nick caught this- changed setgid/setuid order so it works. 01 Sep 2004; Brian Harring pym/portage.py: Added Michael Stewart's patch correcting optional args being specified via position- bug #61881. 01 Sep 2004; Brian Harring pym/portage.py, pym/portage_exec.py, pym/portage_checksum.py: Restructured spawn so that we don't have two versions; all spawn calls trace back to portage_exec.spawn, either through spawn_bash or spawn_sandbox. portage_exec.spawn is strictly an os.execve wrapper now, so bash doesn't have to be involved unless desired (if desired use spawn_bash). 31 Aug 2004; Brian Harring bin/emerge: Debug print statement left in global scope, corrected it. 31 Aug 2004; Nicholas Jones portage_checksum.py: Solar's patch to check if prelink binary exists prior to executing it. 31 Aug 2004; Nicholas Jones portage_checksum.py: Only prelink-check when requested -- This is only valid for merge/unmerge operations -- Also happens to fix the access violations in portageq. 31 Aug 2004; Nicholas Jones portage.py: Adjustments for the prelink-check changes. 31 Aug 2004; Nicholas Jones portage_exception.py: Made the exceptions more hierarchial. Yes, I'm aware I can't speel. 30 Aug 2004; Brian Harring bin/repoman: Added solar's patch to make the file.size check display the size of the offender. 30 Aug 2004; Brian Harring pym/portage.py, pym/portage_util.py: Removed -all- duplicate function definitions between portage_util and portage. This is just -begging- for a bug where portage.py's definitions are fixed, but portage_util isn't. If you're moving code out of portage.py (good thing) please yank the def from portage.py. Especially if you're importing everything from new home of the module. 30 Aug 2004; Jason Stubbs pym/emerge: Added python 2.2 compatibility fix. (#62128) Added fix to fail nicely on missing /etc/gentoo-release. (#62149) 30 Aug 2004; Jason Stubbs pym/portage.py: Fixed two bugs in bindbapi.aux_get() preventing retrieval of information about tbz2s. 26 Aug 2004; Brian Harring bin/etc-update: minor tweak to etc-update to support single quotes in /etc/etc-update.conf bug (#56785). Added Mamoru Komachi (usata)'s fix for osx (#60721). 26 Aug 2004; Brian Harring pym/portage.py, pym/portage_exec.py, bin/ebuild.sh: Removed the PORT_LOGDIR $0 $* | tee hack, and re-implemented it using spawn. Spawn has been extended so that fd_pipes can receive a dict of fd # -> fd, and optionally be nonblocking via returnpid. portage.spawn has support for a logfile optional arg- if specified, spawn logs stdout/stderr via tee -i -a to the specified file. Note portage_exec.spawn doesn't currently support this option. 25 Aug 2004; pym/portage.py, +pym/portage_checksum.py, pym/portage_gpg.py, -pym/portage_md5.py: renamed portage_md5 to portage_checksum which includes support for sha1. 24 Aug 2004; Brian Harring bin/ebuild.sh: Tweak to dyn_test to check if $S exists prior to cd'ing to it. 24 Aug 2004; Brian Harring pym/portage.py: Fixed a traceback issues in dblink.treewalk when collision-protect is active. Also added specific check/complaint for PORT_LOGDIR='' to the config class, since it should either not be set, or something non-null- a null PORT_LOGDIR triggers a traceback in doebuild do to an attempted chmod. 23 Aug 2004; Brian Harring pym/portage.py: Added a macos ranlib hack; dblink.mergeme by default resets each files mtime, which makes static archives merged to the fs worthless (linker notes the files mtime differs from an internal mtime, and bails). This closes out bug (#58848), and will be obsoleted when refcounts are used instead of mtime + md5. 21 Aug 2004; Brian Harring bin/ebuild.sh: Expanded CONF_LIBDIR support, so it honors --prefix set values. (#61060) 19 Aug 2004; Marius Mauch bin/repoman: Added FEATURES and USE to the readonly variable check. 17 Aug 2004; Brian Harring pym/portage_data.pym: Adding missing imports. 17 Aug 2004; Brian Harring bin/repoman: Minor tweak to make repoman detect the repolevel correctly in overlays. (#60298). *portage-2.0.51_pre20 (16 Aug 2004): Fixes and Public Readiness & GPG 16 Aug 2004; Nicholas Jones portage.py: Fixed the imports and new modules so that the API remains constant. 16 Aug 2004; Nicholas Jones portage_exec.py: Created for external operations and calls. Presently contains spawn. Mostly for prevention of circular imports. 16 Aug 2004; Nicholas Jones portage_md5.py: using the spawn call from portage_exec.py to avoid the circular import. 16 Aug 2004; Brian Harring bin/repoman: Fixed a traceback related to file.size and --fix, added compatability tweaks for xmllint. 16 Aug 2004; Nicholas Jones emerge: Fixed the lock handling and unique_array calls. *portage-2.0.51_pre19 (16 Aug 2004): Fixes and Public Readiness & GPG 16 Aug 2004; Nicholas Jones ebuild.sh: Add predict for gpg verification. 16 Aug 2004; Nicholas Jones portage.py: Fixed the lock code to use the external module. 16 Aug 2004; Nicholas Jones portage_gpg.py: Fixed the writing operations and access violations. 16 Aug 2004; Nicholas Jones portage_locks.py: Fixed the code so it acutally works and is used. 16 Aug 2004; Nicholas Jones portage_md5.py: Fixed the lock calls. *portage-2.0.51_pre18 (16 Aug 2004): Fixes and Public Readiness & GPG 16 Aug 2004; Nicholas Jones dolib*: Added LV's CONF_LIBDIR patch to help out the 32/64 bit lib migrations. 16 Aug 2004; Nicholas Jones ebuild.sh: CONF_LIBDIR patch updates. Added a possible fix for the export issues in environment. 16 Aug 2004; Nicholas Jones prepall/lib: CONF_LIBDIR 16 Aug 2004; Nicholas Jones portage.py: Adjusted the manifest/gpg code to reduce the output on missing sigs. Changed the GPG homedir to the PORTAGE_GPG_DIR instead of using rsync for the keyring -- This requires manual intervention. 16 Aug 2004; Nicholas Jones sandbox: Added the 32/64 paths in for 32/64 lib migrations. 16 Aug 2004; Brian Harring pym/cvstree.py pym/portage.py: Round #2 of ignorecvs, now w/ sane regex goodness and an addition to digest(gen|check) to use the same cvs filter for Manifests. (#46070). 15 Aug 2004; Nicholas Jones emerge: message fix for packages.provided. 15 Aug 2004; Nicholas Jones repoman: Made file.size a warning for the time being. 15 Aug 2004; Nicholas Jones cvstree.py: Removed the auto-ignore regex as it is broken AND it breaks Manifests due to excess files allowed into them. 15 Aug 2004; Nicholas Jones emerge: A couple changes to the select_dep exception handling for the signing code. 15 Aug 2004; Nicholas Jones env-update.sh: Added Spanky's env-update shell script version. 15 Aug 2004; Nicholas Jones portage.py: Moved more code into seperate modules. Added support for Manifest verification and usage of 'gpg' 'strict' 'severe' to enable various condition responses. 15 Aug 2004; Nicholas Jones portage_const.py: Moved all constants to this module. (All uppercase defines) 15 Aug 2004; Nicholas Jones portage_data.py: Contains all calculated information. uid/gid info. system-specific values. All probed information should go here. 15 Aug 2004; Nicholas Jones portage_exception.py: Added many exceptions for the GPG verification code. Added many general exceptions to help differentiate from explicit portage exceptions and those issued by python. 15 Aug 2004; Nicholas Jones portage_gpg.py: Handling of gpg verification code and keyring management/trust. 15 Aug 2004; Nicholas Jones portage_locks.py: Moved the lock code out of portage.py. 15 Aug 2004; Nicholas Jones portage_md5.py: Moved the MD5 calculation code out of portage.py. 15 Aug 2004; Nicholas Jones portage_util.py: Moved writemsg and unique_array into portage_util. 13 Aug 2004; Brian Harring bin/ebuild.sh: Added support for ECONF_LIBDIR; if it isn't defined, then --libdir isn't passed to the configure script. If it is defined, then the configure script gets --libdir=/usr/${ECONF_LIBDIR}. 13 Aug 2004; Brian Harring pym/cvstree.py: Added robbat2's patch to ignore files that cvs ignores. (#46070). 13 Aug 2004; Brian Harring bin/ebuild.sh: Shifted the add* sandbox function definitions to before profile.bashrc srcing. As bug #60147 demonstrated, profiles occasionally need to adjust SANDBOX_WRITE (current case being for /usr/lib64/{conftest,cf}). 13 Aug 2004; Brian Harring bin/emerge: Related to bug #60256, adjusted format_size so that is always returns a string. 13 Aug 2004; Jason Stubbs bin/emerge: Relocated blocker checking code to before pkgsettings.setcpv() is called on it in depgraph.create() 13 Aug 2004; Brian Harring pym/portage.py: Tweaked lockfile, so it attempts a non-blocking lock_ex first, then states it's waiting on lock blar, then attempts a blocking lock. This will be useful for informing the user why portage seems to have hung, and good for debugging. 13 Aug 2004; Brian Harring bin/emerge-webrsync: Added support for snapshot md5sum's (mirrors now carry them). This is used to ensure the fetched snapshot is sane; if it's sane, then we reuse it for sync'ing. This nulls the -n option, so it's been removed. Closes out #15990, but no longer automatically forcing a refetch. Refetches are only forced if the md5 is invalid. 12 Aug 2004; Brian Harring pym/portage.py: Cleaned up fetch a bit more, saner error messages when unable to write to DISTDIR. 12 Aug 2004; Jason Stubbs bin/emerge: Fixed the fix for the earlier traceback on installed package not being in PORTDIR to remove duplicate work. 11 Aug 2004; Brian Harring bin/ebuild.sh: Added FEATURES="autoconfig" support. (#55476) 11 Aug 2004; Brian Harring pym/portage.py: Added check to lockfile and fetch, if file already is owned by portage group, don't try and chown it. This will close #60079. 10 Aug 2004; Brian Harring bin/emerge: Fixed a traceback issue, an ebuild is no longer in the tree, but is installed and needs to be used in the depgraph- the problem was, emerge assumed the ebuild was in porttree's db, when vartree should be used if the package is known to be installed. 10 Aug 2004; Brian Harring pym/portage.py: Killed a couple of corner cases for non-root fetch and lockfile calls. 10 Aug 2004; Brian Harring pym/portage.py bin/ebuild.sh: Add check to ensure that install phase has been ran prior to qmerge phase being attempted. This can happen when the user is using ebuild to step through the phases. Corrected bug in listdir where it would return None, rather then []- all callee's expect a returned list, not None. Same for ftype, cause's a tb if you just haphazardly rely on cachedir's return. 09 Aug 2004; Brian Harring pym/portage.py: Leave /var/tmp with it's own permissions, chowning/chmoding just /var/tmp/portage (#37521). 09 Aug 2004; Brian Harring bin/ebuild.sh pym/portage.py: Corrected bug in profile.bashrc support, added aliases for saving/restoring IFS (remove_path_entry and profile.bashrc loop adjust IFS temporarily). Closes #59749. 08 Aug 2004; Brian Harring dispatch-conf: Converted os.rename calls to shutil.move; the former can't cross fs's, the latter can. (#46148) 07 Aug 2004; Nicholas Jones portage.py: Fixed the cache updates so that an env-update forces ld updating. 07 Aug 2004; Jason Stubbs pym/portage.py pym/portage_dep.py: Added a new parameter to use_reduce so that !arch? checks can be adhered to even when matchall=1 and arch is not is masklist. 07 Aug 2004; Jason Stubbs pym/portage.py pym/portage_dep.py: Added profile masked use flags to repoman check. Moved || refactoring to a separate function. Reworked use_reduce logic into simpler sections. 05 Aug 2004; Brian Harring pym/portage_dep.py: What can I say, I can't get enough of bug (#59574). I'm operating under the assumption there still is a bug in the use_reduce logic, soo I've left a fairly massive amount of debugging code in place that's currently disabled. It's *very* useful for tracking exactly what/how use_reduce decides on a operator node. 05 Aug 2004; Brian Harring pym/portage.py: I introduced a bug in the previous commit, basically portage.settings.archlist list of arch keywords was being actively pruned by repoman as it stepped through arches for dep checking. Basically, needed to make a copy of archlist rather then using the actual archlist object. Should be the final issue for (#59574). 05 Aug 2004; Brian Harring pym/portage.py: Fix in the same area, if use="all" (repoman wants -every use flag- checked), it should call use_reduce w/ matchall set appropriately. (#59574) 05 Aug 2004; Brian Harring pym/portage.py: And... repoman's arch check got hosed again. The code in dep_check for building a masklist was incorrect, 3 line fix. (#59574) *portage-2.0.51_pre17 (03 Aug 2004): Fixes and Public Readiness 03 Aug 2004; Nicholas Jones portage_dep.py: Again fixed the || exceptions to understand nested legal || statements. *portage-2.0.51_pre16 (03 Aug 2004): Fixes and Public Readiness 04 Aug 2004; Nicholas Jones ebuild.sh: Changed the virtual/glibc references to virtual/libc. 04 Aug 2004; Nicholas Jones prepman: No longer runs gzip on .keep files. 04 Aug 2004; Nicholas Jones getbinpkg.py: Added in an active/passive option for FTP connections -- Requires the appending of an asterisk to the HOST portion of the ftp string to use active connections. 04 Aug 2004; Nicholas Jones make.conf*: Updates for the active-connection ftp option. 04 Aug 2004; Nicholas Jones emergehelp.py: Removed the bin/ version and replaced it with a duplicated pym/ version. 03 Aug 2004; Brian Harring pym/portage.py: Added check to ensure /var/tmp/portage's permissions were sane. (#56665) 03 Aug 2004; Brian Harring bin/repoman: Added explicit check for missing files directory, rather then ignoring it. Also added an explicit commit-time check for CVS/Entries being sane. (#57141). 03 Aug 2004; Brian Harring bin/repoman: reworked the qacats definition so that the type of bug that borked emerge help is no longer possible. 03 Aug 2004; Brian Harring pym/portage.py, bin/emerge: Corrected emerge --fetch-all-uri issues, now works. Basically, FEATURES="cvs" emerge -f blar == emerge --fetch-all-uri blar. The fetch option handling in emerge could use some cleanup. 03 Aug 2004; Brian Harring pym/portage.py: Ongoing cleanup in emerge -fp; this corrects a minor naggle affecting previous releases, where emerge -fp would still attempt to do md5 checks on files. 03 Aug 2004; Brian Harring pym/portage.py: Corrected logic for fetch(..., ..., use_locks=1,listonly=1) attempting to use locks, when fetch is just printing the src_uri's. (#59394). 03 Aug 2004; Brian Harring bin/repoman: Corrected the borkage I introduced into repoman's help option- it was throwing a traceback due to file.executable's key name being typoed. 03 Aug 2004; Nicholas Jones portage_dep.py: Enhanced the invalid depend string identification for || (and &&) strings. *portage-2.0.51_pre15 (03 Aug 2003): Fixes and Public Readiness 03 Aug 2004; Brian Harring bin/repoman: Corrected typo, trying to remove .backup_metadata.dtd rather then metadata.dtd. 03 Aug 2004; Nicholas Jones portage_dep.py: Changing from dep_opconvert to use_reduce introduced a bug due to how OR'd lists are managed by the remaining dep handling functions -- Fixed by emulating the format in use_reduce. 02 Aug 2004; Brian Harring bin/repoman, pym/portage.py: Added local caching of metadata.dtd, to prevent flaky connections from flagging a packages metadata.xml as invalid due to xmllint failing to fetch metadata.dtd. Simplified version of patch in (#57210). 02 Aug 2004; Brian Harring bin/ebuild.sh, pym/portage.py: Added support for src'ing a profile bashrc. Fex, if /etc/make.profile/profile.bashrc exists, it is sourced prior to ebuild.sh defining any of it's functions. (#58415). 02 Aug 2004; Brian Harring bin/emerge-webrsync: General cleanup; uses the make.conf defined FETCHCOMMAND for fetching (fixing #57887), runs emerge metadata after a successful sync also. *portage-2.0.51_pre14 (02 Aug 2003): Fixes and Public Readiness 02 Aug 2004; Nicholas Jones do*: Added exit calls on failures and changed the install to use short options for BSD compat. 02 Aug 2004; Nicholas Jones ebuild.sh: unset GLOBIGNORE added. Echo out the confingure command from econf. Moved the maketest code to dyn_preinst so it didn't force-run maketest. Added a patch for keyword expansion (requires portage-2.0.51 for use). 02 Aug 2004; Nicholas Jones emerge: --fetch-all-uri added to force all URIs to be downloaded (works like features=cvs). libc version printing enhancements. Fixed the binary package selection in an alt ROOT. Headers and libtool added to info. --ask removed on a resume. 02 Aug 2004; Nicholas Jones prepstrip: Change ewarn to echos to stderr with beeps. 02 Aug 2004; Nicholas Jones repoman: Added to the OK message output for issues that fail. 02 Aug 2004; Nicholas Jones make.conf: Typo correction patch added. 02 Aug 2004; Nicholas Jones output.py: Added kterm to the titlebar terminals. 02 Aug 2004; Nicholas Jones portage.py: Added a message regarding the location of the virtuals file (move to /etc/portage/profile). Added a invalid-mirror message and a missing URI message for fetching. Added the selinux sandbox patch. Removed the old dep_opconvert call as all ?: syntax is gone. 02 Aug 2004; Nicholas Jones portage_dep.py: Fixed the use_reduce code to properly handle negative requirements on masked flags. 02 Aug 2004; Nicholas Jones tbz2tool.c: Made all the comments to C style. 02 Aug 2004; Nicholas Jones libsandbox: Code from Seth Robertson that tracked down all adjuct flags for read operations that did not invoke a write operation. 01 Aug 2004; Masatomo Nakano bin/emerge: Added message about ._cfg* files after emerge sync. 01 Aug 2004; Masatomo Nakano pym/portage.py: Modified updating /etc/portage/package.* logic to see CONFIG_PROTECT and CONFIG_PROTECT_MASK. 01 Aug 2004; Marius Mauch bin/emerge: Added a warning for `emerge /path/to/ebuild` 01 Aug 2004; Marius Mauch bin/emerge: Fixing broken logic for the `emerge rsync` deprecation notice (it only showed up on `emerge --rsync`). 01 Aug 2004; Brian Harring pym/portage.py bin/emerge: Fixed the lockfile/unlockfile functions so that they correctly support having an int passed in (the fd #), or having a file object passed in. Corrected lockfile so that the lock is owned by portage group, with g+w permissions (this is needed since sudo emerge blar can bail, leaving a stale lock that non-root usage cannot remove). Added locking to emerge's emergelog function, preventing log messages from potentially getting mixed together. Added check to fetch function to complain if unable to write to DISTDIR (previously the fetcher just bailed, stepping through each src_uri). Added lockfiles for fetching/md5ing of the src- these lockfiles are stored in a subdirectory (locks_in_subdir=".locks") if specified, and locking is controlled via use_locks (defaults to on). emerge -f no longer requires root/sudo to run (ebuild never had this restriction). (#42969) 31 Jul 2004; Jason Stubbs pym/portage.py bin/emerge: Removed USE-based SLOT support. Removed uselist from getslot methods. 29 Jul 2004; Brian Harring bin/repoman: Added check for files over 20k in a packages files directory. file.size, repoman treats it as a a failure. Added the repoman manpage entries for file.size, and file.executable (I missed file.executable earlier). 28 Jul 2004; Masatomo Nakano pym/portage.py: Fixed a bug emerge doesn't pkg_setup() with -k/-K option. (#25152) 28 Jul 2004; Masatomo Nakano pym/portage.py: Added ._cfg* file for updating /etc/portage/packages.* during global update. 28 Jul 2004; Masatomo Nakano bin/emergehelp.py, man/emerge.1: Added explanation of --newuse to manpage/help. Added information of --verbose to manpage. 27 Jul 2004; Jason Stubbs pym/portage.py: Reversed the order of profile virtuals (dirVirtuals) so that a cascading profile's virtuals are stacked in the correct order. 26 Jul 2004; Brian Harring bin/emerge: Removed the `which blah` calls- A) stage1 lacks which, B) which searches $PATH- all sane shells do this already when handed a command that isn't absolute path. These which calls were used in commands.getstatusoutput() calls, which starts up a shell with the arg passed to the shell, so "`which blar` args" isn't needed. 26 Jul 2004; Brian Harring bin/repoman: Added file.executable check- ebuilds, digests, Manifest, ChangeLog, and metadata.xml don't need the executable bit set. CVS preserves it upon commit, so we do the check prior to commit. (#55647) 26 Jul 2004; Brian Harring bin/emerge: Removed the hardcoding of uname for emerge info, using which to find it instead. 26 Jul 2004; Brian Harring bin/repoman: Added check to ensure manifest recommit is at least possible when committing, and corrected handling of CVS/Root files for OSX machines. Removed readline import, doesn't seem to be used at all. 26 Jul 2004; Jason Stubbs bin/emerge pym/portage.py: Refactored slot code into portage.py to remove usage off portage_dep. 25 Jul 2004; Brian Harring bin/dohtml: Corrected a bug in dohtml where it was unable to install files with a space in their name (#58258) 25 Jul 2004; Jason Stubbs bin/emerge pym/portage.py: Deprecated --inject and added support for package.provided in both the profiles and /etc/portage/profile directory. 24 Jul 2004; Jason Stubbs bin/emerge pym/portage.py: Added USE flag based SLOT support. 24 Jul 2004; Jason Stubbs bin/emerge pym/portage.py: Added USE flag based PROVIDE support. (#32114) 24 Jul 2004; Jason Stubbs src/sandbox-1.1/libsandbox.c: Fixed lchown sandbox bug. (#58084) 23 Jul 2004; Brian Harring bin/repoman: Corrected a false positive on the ebuild.nesteddie check. Basically it wasn't looking to see if the line was active or not (fex # (die), bash skips, but repoman caught). Aside from that, that check is still capable of missing multiline ebuild.nesteddie instances. (#33011) 22 Jul 2004; Brian Harring bin/ebuild.sh: Re-enabled binary QA interceptors, with a minor twist- the QA_INTERCEPTORS is used to specify what QA interceptors will be defined. These functions are no longer saved in the ebuild's stored env (exist *only* in depend phase), and have been expanded to identify if it's the ebuild, or eclass that's triggering the QA Notice (#54652). The interceptors behaviour when the binary is missing has been corrected to correctly output "missing command $bin: args". 21 Jul 2004; Masatomo Nakano bin/emerge: Fixed bug which blocks a package itself with -U option. 20 Jul 2004; Masatomo Nakano bin/repoman: Fixed profile cache problem. (#43601, #56170) 20 Jul 2004; Marius Mauch bin/ebuild.sh: added usev() and hasv() as complement to useq() and hasq(). 18 Jul 2004; Brian Harring bin/repoman: Corrected ebuild.allmasked check, so that it checks for an available version across all arches, rather then the last arch processed. Typo fixed also- bugs #57356 and #57068. 17 Jul 2004; Jason Stubbs bin/repoman: Added patch from #49126 that makes repoman check that a USE flag from use.local.desc applies to the packages that make use of it. 14 Jul 2004; Marius Mauch bin/emerge: added a deprecation warning for --upgradeonly 14 Jul 2004; Marius Mauch bin/etc-update: Added a hint to etc-update so people that don't know what to do don't use -3 or -5 by accident. 12 Jul 2004; Jason Stubbs bin/emerge: Adjusted masked binary checking code to exclude --usepkgonly. 10 Jul 2004; Jason Stubbs man/portage.5: Adjusted documentation for user use.mask to match implementation. *portage-2.0.51_pre13 (09 Jul 2004): Fixes and Public Readiness 21 Jun 2004; Nicholas Jones portage.py: Included ferringb's logic fix for the repoman code. Fix that prevents vardb from using all files and directories in the vardb as keys instead of only the proper ones. Code touchups. 21 Jun 2004; Nicholas Jones prepstrip: Fixes that result in BSD compat and split the regex -- find doesn't do extended. 21 Jun 2004; Nicholas Jones emerge: included a uname fix for bsd. Added --fetch-all-uri as a way to get all URIs downloaded for a package regardless of conditionals. 21 Jun 2004; Nicholas Jones ebuild.sh: Moved the declaration of ebuild_phase toward the top. 09 Jul 2004; Jason Stubbs bin/emerge: Fixed incorrect assignment of depgraph.mydbapi[] objects. 07 Jul 2004; Marius Mauch bin/repoman: Solved a big memory problem in repoman where a full scan required several gigabytes, caused by apparently unused objects. 04 Jul 2004; Jason Stubbs bin/emerge pym/portage.py: Fixed issue that allowed installed virtuals to overide user virtuals. 03 Jul 2004; Jason Stubbs bin/emerge: Added masked package removal to binpkg candidates before getting the best. (#55871) 01 Jul 2004; Jason Stubbs pym/portage.py: Fixed exception catching on module import. 27 Jun 2004; Jason Stubbs bin/repoman: Fixed year (2003 -> 2004) in copyright lines. 27 Jun 2004; Marius Mauch pym/portage.py: Added a check for symlinked dirs to the collision-protect code so it doesn't double-check files in symlinked dirs with wrong pathnames. 26 Jun 2004; Masatomo Nakano bin/regenworld: Fixed regenworld. It always failed without -h or --help. 26 Jun 2004; Masatomo Nakano bin/emerge: Added more messages when emerge fails due to masked package. 26 Jun 2004; Jason Stubbs portage.py: Added pkgsplit check on values returned by vardbapi.cpv_all() 26 Jun 2004; Jason Stubbs repoman: Removed a stray dot. 25 Jun 2004; Jason Stubbs repoman: Changed CVS header regex to "Gentoo Foundation" *portage-2.0.51_pre12 (21 Jun 2003): Fixes 21 Jun 2004; Nicholas Jones emerge: Removed the extra spawn of portageq as sandbox handles the python pyo's accesses now. 21 Jun 2004; Nicholas Jones portage.py: Fixes for the HOME issues. Correction of permissions from 6770 to 2770. 21 Jun 2004; Masatomo Nakano pym/portage.py: Fixed problem that 'emerge something' would install all depeneded pkgs even if they are already installed. *portage-2.0.51_pre11 (21 Jun 2004): Fixes 21 Jun 2004; Nicholas Jones portage.py: Disabled the URL encoding for BINHOST as it will take a lot of work to get it right. Execve try/except added to handle missing binaries and such. Changed the default HOME to be TMPDIR/homedir. Try/except on db close operations. Add in missing unlocks. Hacked in the /var/lib/portage in a chroot fix. 21 Jun 2004; Nicholas Jones emerge: Added more info into the profile for the stacked profiles. 21 Jun 2004; Nicholas Jones ebuild.sh: The userland fixes for *BSD. QA Notice fix for IUSE verbosity on global scope stuff. Missing quote fix for QA intercepters. Return 0 in the use_* functions. Removed AA from the readonly list. 21 Jun 2004; Nicholas Jones dohtml: Karl's update which is mostly a rewrite. 21 Jun 2004; Jason Stubbs bin/emerge: Modified emerge to build up a fakedb regardless of 'empty' in params, and to incrementally add any packages added to the dep graph. (#1343, #8810, #54608) 20 Jun 2004; Masatomo Nakano bin/repoman: Fixed problem which fails to detect IUSE value. (#21544) 20 Jun 2004; Masatomo Nakano bin/emerge: Added an exception code for broken timestamp.chk. (#54380) 20 Jun 2004; Jason Stubbs pym/ebuild.sh: Adjusted returns for use_with and use_enable to only return 1 on invalid usage. 20 Jun 2004; Masatomo Nakano pym/portage.py: Fixed problems that portage doesn't block with --update option(#52377) and fail to block virual packages(#52506). 20 Jun 2004; Masatomo Nakano pym/portage.py: Fixed CONFIG_PROTECT/CONFIG_PROTECT_MASK in /etc/csv.env(#51646). 20 Jun 2004; Masatomo Nakano bin/ebuild.sh: Added error message when pkg_config is not defined. (#51167) 14 Jun 2004; Jason Stubbs pym/portage.py: Fixed bug in portdbapi.aux_get where a problem ebuild would cause a lock to not be released. 09 Jun 2004; Marius Mauch bin/emerge: Changed emerge --info to reflect libc versions other than glibc. 08 Jun 2004; Marius Mauch pym/portage.py: Added the collision-protect feature that prevents packages from overwriting files they don't own. Has to be enabled with FEATURES=collision-protect as it needs more testing before it can be enabled by default (bug #28228). 05 Jun 2004; Marius Mauch bin/ebuild.sh: Fix rpm support by changing rpm to rpmbuild (bug #13508). 05 Jun 2004; Marius Mauch bin/regenworld: Added a --help message ro regenworld (bug #37539). 03 Jun 2004; Jason Stubbs portage.py: Fixed bug #52720 and restored patch for a 35% drop in dep calc time. *portage-2.0.51_pre10 (02 Jun 2003): Fixes 02 Jun 2004; Nicholas Jones portage.py: Added MANPATH to the colon_seperated list -- parsing code NEEDS TO BE FIXED. * and ~* matches allowed for package.use for arch-development -- ~* implies *. 02 Jun 2004; Nicholas Jones emerge: Fix for a new typo in the logger function that prevented emerge.log from being written. 02 Jun 2004; Nicholas Jones ebuild.sh: make test only occurs when enabled in FEATURES and not in RESTRICT -- defaults OFF. Added ferringb's local B_* fix for eclasses. Made db vars readonly via bash for non-depend phases after the global scope. 02 Jun 2004; Jason Stubbs pym/portage.py: Reverted adjusted made to config.setcpv on 18 May 2004 due to bug #52720. 01 Jun 2004; Marius Mauch bin/repoman,bin/regenworld: only messages about broken log entries in regenworld when called with --debug. Fix signing stuff in repoman. *portage-2.0.51_pre9 (22 May 2003): Speedups and bug fixes 22 May 2004; Nicholas Jones portage_db_template.py: Added in last-three caching for db modules. Ensuring that keys are strings. 22 May 2004; Nicholas Jones portage_db_cpickle.py: Fix that ensures the Unpickler works properly. 22 May 2004; Nicholas Jones portage.py: Updates for environment files ordering in ebuild.sh. Added in normalize_path to handle the really annoying "'//' is a legal prefix" issue with os.path.normpath. Applied normalize_path to cacheddir() so that the keys match and we have more cache hits and better performance. Added statistics to to cacheddir available with noise=2. Do not return a blocker when doing a zerolist. Fixed the stacking functions to properly order the incrementals and apply the removals forward. Changed all string.atoi() to int(). Added in the selinux changes for spawning the fetch command. Added a patch that allows ebuild.sh to display 'validcommands'. close_caches() added to allow atexit to close all the DB connections. close_portdbapi_cache() handles the global that has all db instances -- This avoids problems with the API nulling the internal links. Adjusted the db handling for sync() calls and removed some object duplication db calls. 22 May 2004; Nicholas Jones getbinpkg.py: Fix for HTTP redirects (301 and 302) so that the redirect opens a new connection to the move-location server -- This allows us to redirect to a different machine. 22 May 2004; Nicholas Jones emerge: For iuse output we now ensure that the correct db is referenced. The worldfile additions do not occur when a packages is new and updates are not being performed. Patch to add binutils to the emerge info. 22 May 2004; Nicholas Jones ebuild.sh: Rearranged the sourcing of the profiles and the special environment files. Added src_test as an optional test method -- Some packages are extremely dumb and need to be prevented from using this via RESTRICT. 18 May 2004; Jason Stubbs portage.py: Minor speed improvement in config.setcpv preventing a useless regenerate 18 May 2004; Jason Stubbs portage.py: Reversed the order of config.getvirtuals' stack_dictlist call for correct ordering. *portage-2.0.51_pre8 (16 May 2003): Big cleanups & Ebuild QA Stuff. 16 May 2004; Nicholas Jones portage_exception.py: New file containing portage exceptions. Added 'CorruptionError' for the db code. 16 May 2004; Nicholas Jones portage_util.py: New file that contains utility functions. Allows db_modules to use portage functions without a circular dependency. CODE IS DUPLICATED and needs to be fixed in portage.py to use this new module. grab*, getconfig, varexpand, pickle_*, ReadOnlyConfig 16 May 2004; Nicholas Jones portage_db_*: Modules do not have an __init__ any longer -- module_init() is called by the template after loading the config and setting the 5 variables inside of the class. self.config is a ReadOnlyConfig object which is just a dict that you can't write to. Throws CorruptionError when the read functions return exceptions. 16 May 2004; Nicholas Jones portage.py: Reversed the virtuals order so it matches the documented format. When an ebuild does not exist, we now raise a KeyError with a useful string. 'couple minutes' changed to 'couple of minutes' for Seemant. ;) 16 May 2004; Nicholas Jones prepstrip, ebuild.5, repoman.1: Typo corrections/text replacements. 16 May 2004; Nicholas Jones emerge: Added deprecation notice to 'emerge rsync' to favor 'emerge sync'. Modified the emerge.log code to not change permissions on the files beyond what is necessary -- NEEDS TO BECOME AN ADDITIVE FUNCTION. Produce a warning instead of a traceback when an ebuild does not exist for -U. 16 May 2004; Nicholas Jones ebuild.sh: Touched up the logging stuff at the top. Removed extra_functions.sh. src_compile additions so that it can run make without having a config file requirement. 16 May 2004; Nicholas Jones dobin,dosbin: Removed the duplicated stripping from the helper tools. 09 May 2004; Jason Stubbs pym/portage_dep.py: fixed bug in use_reduce that caused returned list to be flattened. 30 Apr 2004; Marius Mauch bin/ebuild.sh: modified ebuild.sh error message on seemants and roger55s request. *portage-2.0.51_pre7 (26 Apr 2003): Big cleanups & Ebuild QA Stuff. 25 Apr 2004; Nicholas Jones portage.py: Fixed masking problems due to the new stacking functions and empty-value stripping. *portage-2.0.51_pre6 (25 Apr 2003): Big cleanups & Ebuild QA Stuff. 25 Apr 2004; Nicholas Jones ebuild.sh: Dropped selinux from the IUSE complainer list. 25 Apr 2004; Nicholas Jones repoman: Made it use the constants defined in portage.py for the world file. 25 Apr 2004; Nicholas Jones portage.py: Modifications so that the virtuals are incremented in the proper order and reversed the final values so that the first virtual is the 'best' one. Try to put the INHERITED variable back into the environment before calling out to portage. This makes the ECLASS QA notices actually valid. *portage-2.0.51_pre5 (25 Apr 2003): Big cleanups & Ebuild QA Stuff. 25 Apr 2004; Nicholas Jones portage.py: Fixed name of the world file constant. Fixed the virtuals loading and vartree creation circular dep with a repitition hack. Fixed the virtuals loading function so that it doesn't destroy the virtuals before saving them. 25 Apr 2004; Nicholas Jones emerge: Fixed all the references to the world file to use portage constants. Made the verbose output for use flags call unique array to make sure values aren't duped. 25 Apr 2004; Nicholas Jones ebuild.sh: Typo fix for inherited, and removed the delay. *portage-2.0.51_pre4 (25 Apr 2003): Big cleanups & Ebuild QA Stuff. 25 Apr 2004; Nicholas Jones portage.py: Creation of a great number of 'constants' that were hard coded in various places and now are created in a cascaded style, for the most part. Exception handling for the loading of modules added along with verbose messages about the exception being handled for user info. PRIVATE_PATH is a new constant that points to the new directory we will be using for portage internal data -- It is a secure directory that only group portage may write, read, and scan. PORTAGE_CACHEDIR is deprecated -- The real cache directory is FHS and is a constant -- The dep cache is named specifically now as 'PORTAGE_DEPCACHEDIR'. **Changed the stacking functions** so they are quite a bit more sane -- They still need a little help though -- stack_* functions are now used to stack specific types instead of using grab_stacked "super functions" -- The naming is a little rough but intelligable. **VIRTUALS modification** The /var/cache/edb/virtuals file is unnecessary as portage now loads the provides from the vartree itself. /etc/portage may have a virtuals file that stacks on top of the var and profile virtuals. This also entails the removal of the virtual-file handling code (yay!). 25 Apr 2004; Nicholas Jones emerge: Fix for the name change for PORTAGE_CACHEDIR to PORTAGE_DEPCACHEDIR. 25 Apr 2004; Nicholas Jones ebuild.sh: Added checks to ensure that use flags are properly mentioned in IUSE. Adjusted the QA Interceptors (function overrides for common app names) to make sure they don't interfere in weird cases -- Relying on 'type -p' now. Eclasses are checked for illegal inheritance modes (conditional-based). Increased the cache lines for an entry -- Added 'PROVIDE' and 8 empties. 22 Apr 2004; Marius Mauch bin/repoman: added a CVS Header check to repoman 20 Apr 2004; Marius Mauch pym/portage.py: fix for getmaskingreason if the mask isn't in PORTDIR's package.mask (#48447) 17 Apr 2004; Masatomo Nakano repoman: Fixed for python-2.2 compatibility. *portage-2.0.51_pre3 (13 Apr 2003): Cleanups and small features. 13 Apr 2004; Nicholas Jones portage_db_*: Fixed the permissions issues regarding the umask problems with DB vars. 13 Apr 2004; Nicholas Jones portage.py: Fix for the import urllib call that was misspelled for PORTAGE_BINHOST. Genone's patch that allows FETCHCOMMAND_${PROTOCOL}. getmaskingreadon() from genone's package.mask display patch. 13 Apr 2004; Nicholas Jones output.py: For some reason people have a problem with my bad spelling of semi-common colors, so I added in requested changes for the color 'fuchsia'. 13 Apr 2004; Nicholas Jones cnf/make.conf: Comment fixes for the CHOST line. FEATURES modification. 13 Apr 2004; Nicholas Jones dispatch-conf.conf: Removed the 'a' option. 13 Apr 2004; Nicholas Jones emerge: Catagory searches added if search is prefixed with '@'. jstubbs/spider's fix for binary use flag passing problems worked in. Genone's patch for package.mask comment display. Patch to display warnings when unmerging system packages worked in. 13 Apr 2004; Nicholas Jones ebuild.sh: Quieted up some output for use/has internally. Added a patch for the help output. Added functionality to pass down IUSE from eclasses. Made several variables readonly inside of ebuilds: P PN PV PVR PR A AA D EBUILD EMERGE_FROM O PPID FILESDIR EBUILD_PHASE *portage-2.0.51_pre2 (11 Apr 2003): Release Fixes 11 Apr 2004; Nicholas Jones emerge: Portage can now match categories if the search is prefixed with an '@' -- @app-portage will list all packages in app-portage... '@portage' will match all in app-portage and will match anything with portage in the title -- It's still a regex. 11 Apr 2004; Nicholas Jones ebuild.sh: nostrip in RESTRICT now enables DEBUGBUILD -- stripping and related functionality needs to get cleaned up better. 11 Apr 2004; Masatomo Nakano etc-update, ebuild.sh: Fixed infinity loop in etc-update(#19144). Fixed glob problem in ebuild.sh(#37066). Fixed deleting build-info problem with FEATURES="keepwork"(#29044). 10 Apr 2004; Nicholas Jones portage.py: Includes the deadlock breaks marked with 'XXX:' to indicate where fixes are needed. Added HTTP encoding to PORTAGE_BINHOST with checks and fallbacks. Fallback for dbkey settings spawned from ebuild. Exception handling for db classes in the case of random corruption. jstubb's fix for the dep code to handle empty lists, added a notice about that being rude. 10 Apr 2004; Nicholas Jones ebuild.sh: Made more QA notices and made them slightly more pretty 'QA Notice:'. Made the depend phase trap less violent -TERM not -KILL. 10 Apr 2004; Masatomo Nakano repoman: Added IUSE missings a check(#21544). 10 Apr 2004; Marius Mauch tarball.sh, pym/portage.py: Fixing broken regexp in fixdbentries() (bug 46096), changing version number. 10 Apr 2004; Masatomo Nakano repoman: Fixed unsafety temporary file name(#44455). 09 Apr 2004; Masatomo Nakano portage.py: Fixed reorder ld.so.conf bug(#44028). Portage should skip not existing DIR during unmerge(#25339). 09 Apr 2004; Masatomo Nakano repoman: Added jstubbs's patch to add a check invalid DEPEND format to repoman. This should fix #36857. 09 Apr 2004; Masatomo Nakano emerge, portage.py, output.py: Fixed some bugs. See #45164, #24299, #34967. 01 Apr 2004; Masatomo Nakano portage.py: Fixed virtuals in reverse order(jstubbs's patch and my fix). This should close #45468. 20 Mar 2004; Nicholas Jones portage_db_*: Updated all the db modules to be current and correct and updated the testing code to make sure everything is working properly. 20 Mar 2004; Nicholas Jones ebuild: Fix for traceback and incorrent ROOT variable when using an alternate root and hand-merging. 20 Mar 2004; Nicholas Jones ebuild.sh: Exported the sandbox variables so that they work. 20 Mar 2004; Nicholas Jones emerge: Enhancements for binary downloads -- proper selection for virtuals, etc... Proper slot handling for pretend output with binaries. 20 Mar 2004; Nicholas Jones prepman: symlink fix. 20 Mar 2004; Nicholas Jones prepstrip: Added the readelf PIC code for the TEXTREL stuff. 20 Mar 2004; Nicholas Jones portage.py: Removed some functions: evaluate, dep_listcleanup, dep_getjiggy. Made inheritance for profiles relative from the profile's directory instead of from the profile's base directory. OBSOLETING two functions dep_parenreduce and dep_opreduce in favor of the new code in portage_dep paren_reduce and use_reduce. dep_zapdeps got an overhaul for much more intelligent selection of packages and virtual handling during depgraph generation. Binary tree enhancements and selection enhancements. bindbapi created to do aux_get on binaries. isInjected added to vardbapi to get injected status. SRC_URI uses the new portage_dep code to handle strings now -- nesting should would flawlessly and FEATURES=cvs should get _all_ files. 20 Mar 2004; Nicholas Jones portage_db_cpickle.py: Added pickle loading safety. 20 Mar 2004; Nicholas Jones portage_dep: Temp home for the dep resolution code that will be moving from portage.py and emerge until we get the modular structure set up. 17 Mar 2004; Masatomo Nakano ebuild.sh, emerge, portage.py, portage_db_anydbm.py, portage_db_cpickle.py, portage_db_flat.py, portage_db_template.py: Improved handling cache files on multi portage trees. Fixed 'BAD COUNTER' error when emerge --inject. (#41062) Added ferringb's patch to avoid sed command. (#40819) 12 Mar 2004; Marius Mauch bin/repoman: repoman: Added a readonly-variable-assignment check (#44424) 06 Mar 2004; Masatomo Nakano repoman, portage.py: Fixed some repoman/portage bugs. repoman shouldn't use /etc/portage/* files. repoman shouldn't use PORTDIR_OVERLAY(#11335). repoman should use each arch profile dir(#43601). portage didn't handle virtual dependency with version (>=virtual/package-1.0) in some places. 05 Mar 2004; Marius Mauch bin/emerge: Trivial fix for emerge -pv if the download size is a long. 03 Mar 2004; Marius Mauch bin/repoman, pym/portage.py: Fixing the "letter before endversion" bug (#17172). Replacing keywords.desc with arch.list in repoman (#35398). FEATURES=strict is now sufficient for Manifest validation (#41292). 01 Mar 2004; Marius Mauch bin/emerge, bin/emergehelp.py, man/emerge.1: Updated docs for --update and removed the "help" action (wasn't working anyway). 29 Feb 2004; Masatomo Nakano portage.py: Fixed wrong USE in 'emerge info'. This should fix #34260. 27 Feb 2004; Masatomo Nakano emerge: Fixed info dir regeneration produces errors with a non-C locale and misleading error message. This should fix #41872,#24299. 27 Feb 2004; Masatomo Nakano emerge, emergehelp.py, emerge.1: Added genone's patch for man/help of --tree option. 27 Feb 2004; Masatomo Nakano ebuild.sh: Removed /usr/share directory in ${D} when it's empty. This should close #42312. 26 Feb 2004; Masatomo Nakano emerge: Added new option --newuse. This option is to rebuild a package whose USE has been changed. 22 Feb 2004; Masatomo Nakano emerge, portage.py: speedup when /etc/portage/package.keywords is defined. Moved loading /etc/portage/package.* processs to config class. This should fix #41520. 19 Feb 2004; Masatomo Nakano portage.py: Fixed CATEGORY value after preinst phase. This should close #6414. Fixed nested dependency problem and cleaned up dep_zapdeps function. This bug happened with DEPEND='|| ( cat_a/pkg_a flag? ( cat_b/pkg_b ) )'. This should close #41869. 13 Feb 2004; Masatomo Nakano portage.py: Fixed parsing SRC_URI bug when FEATURES="cvs". This should close #16159. 12 Feb 2004; Masatomo Nakano emerge, pym/portage.py: TGL's patch for correction package size when emerge -v. -- Fixed use.default bug. It occurs when package in use.default exists in system and it's virtual package. This should close #40831. 12 Feb 2004; Masatomo Nakano emerge: Fixed --ask bugs. It breaks with "--clean". It also breaks when blocker exists. This should close #39865. 12 Feb 2004; Masatomo Nakano emerge: Fixed --ask bug with --changelog. This should close #41293. 11 Feb 2004; Masatomo Nakano emergehelp.py: Added help of F flag with emerge --pretend. This should close #28253. 11 Feb 2004; Masatomo Nakano pym/portage.py: Fixed ccache dir permission problem with FEATURES="userpriv". This should fix #22125. *portage-2.0.50-r1 (09 Feb 2003): Release Fixes 09 Jan 2004; Nicholas Jones portage.py: Fix the config code so that it doesn't fail when the profile does not exist -- allows sync'ing without a tree like it should. Parser returns an exception with the parse error now for getconfig(). TGL's patch for another cache issue in class config. Modified the /etc/make.profile message. Fix for the "eclass does not exist" messages on sync. 09 Jan 2004; Nicholas Jones repoman: Fix the repopath so that it cna be run outside of cvs repos. 09 Jan 2004; Nicholas Jones ebuild.sh: Add portage's pym path to SANDBOX_PREDICT to stunt any further .pyc/.pyo problems. Add nofetch to the 'successful' kill list to stop the $T definition woes. 08 Feb 2004; Masatomo Nakano repoman: repoman should read each arch virtual file. This should close #40813. 08 Feb 2004; Masatomo Nakano emerge: Fixed -s/-S bug. "Latest version installed:" was incorrect. This should fix #40847 08 Feb 2004; Masatomo Nakano portage.py: Fixed ldconfig bug. emerge didn't ldconfig after removing library directory. This should fix #40694. *portage-2.0.50 (06 Feb 2003): Release -- API change, cleanups, speedups 06 Jan 2004; Nicholas Jones *: repoman got a quick fix from genone. Ed's fix for ask/pretend. Made sure that emerge force-updated the eclass cache before trying to update all the metadata. masking type patch from Genone. masking info patch and regenworld patch added. *portage-2.0.50_pre22 (04 Feb 2003): Cleanups and stablizing 04 Feb 2004; Nicholas Jones ebuild.sh: TGL's fixes for exec/child/wait problems. Unset GREP_OPTIONS GREP_COLOR. has() and use() no longer attempt to determine if they are to be quiet or noisy -- They default to noisy -- useq() and hasq() are the non-verbose versions. EBUILD_PHASE set to add a hack-ish way around global scope calls in eclasses -- NOTHING SHOULD BE CALLED IN THE GLOBAL SCOPE. Touchup to the inherit() code that should finally allow the removal of the ECLASS and INHERITED settings. Removed tty (use/has) calls. Removed dirname calls -- portage.py handles setting the dbkey filename now. 04 Feb 2004; Nicholas Jones emerge: Ed Catmur's (with a little TGL added in) patch for --ask. Added a 'metadata' target that skips the sync and only updates the cache. FEATURES="getbinpkg" added. TGL's exit code fixes. Fixed match code for -S so it doesn't complain about specific and double versions. Unmerge via dbpath fix. Rewrote rsync's options that supports --verbose and --quiet operation now and can force checksumming all files using --debug. Sort the files in the cache update so it's a little more predictable. 04 Feb 2004; Nicholas Jones prepstrip: changed --strip-debug to --strip-unneeded. 04 Feb 2004; Nicholas Jones getbinpkg.py: Updates to enable HTTP/HTTPS authentication. 04 Feb 04; Nicholas Jones portage.py: best_from_dict added to grab the best entry from set of dicts using a list of the keys for priority. jstubb's patch to fix listdir -- splits it into a cache and list setup. jstubb's patch for varexpand to handle $VAR better. Latexer's patch for KernelVersion code to use Makefiles instead of the version.h. Modules are loaded from /etc/portage/modules or defaults, whichever works. Fixed the /etc/make.profile-is-missing traceback. Spawn can be given 3 pipes to redirect stdin,stdout,stderr to specific outputs, terminals, or files. TGL's patch for cache functions in portage.py so that they do not cache at inappropriate times. PORTAGE_TMPFS is now used if set as a temporary file operation area -- recommended to actually be a ramfs/tmpfs filesystem for speed. Genone enhanced the deprecated profile patch. 31 Jan 2004; Masatomo Nakano emerge: Fixed --skipfirst bug. This closes #36880. 29 Jan 2004; Masatomo Nakano emerge: TGL's patch for imporving overlay verbose. This closes #39765. 27 Jan 2004; Masatomo Nakano portage.py: Fixed autouse bug. autouse were ignored. 21 Jan 2004; Nicholas Jones emerge: Output failed cache updates during emerge sync. 21 Jan 2004; Nicholas Jones *: VDB_PATH fixes. 21 Jan 2004; Nicholas Jones portage.py: Only use custom profiles when not called by repoman. ROOT never changes profile roots, only custom/system profiles var/cache/edb/virtuals. Sandbox fix where sandbox was creating an invalid logfile (not giving a summary) due to a '/' in SANDBOX_LOG. Turned down the Lockfile output. Double check the INCOMPLETE MERGE identifications as it can be caused by cache. 24 Jan 2004; emerge: Improved timestamp check when 'emerge sync'. Added catching amiguous error when unmerge. This closes #24325. 23 Jan 2004; emerge, portage.py: Fixed 2 bugs. Portage doesn't read local virtuals file, which happens on only cvs version. package is blocked by itself. 21 Jan 2004; Nicholas Jones portage.py, emerge: Fix from genone for emerge's direct reading of packages and his patch that also adds in /etc/portage/profile as a stacked profile. 21 Jan 2004; Nicholas Jones portage.py: Completed inheritence capabilities for portage.config reading some files. Moved a copy of the getvirtuals() function into settings to handle multiple profiles properly. *portage-2.0.50_pre17/18/19 (21 Jan 2004): Modules for DBs and quick fixes 21 Jan 2004; Nicholas Jones *: Moved all references to var/db/pkg to portage.VDB_PATH --- This will change again -- NEED TO BE MOVED INTO A PATH/CONSTANTS SETUP. 21 Jan 2004; Nicholas Jones dosed: Quick fix for the basename missing/misplaced issue. 21 Jan 2004; Nicholas Jones ebuild.sh: Added /dev/console to PREDICT to attempt a workaround for a serial console bug. dbkey is now set through portage.py/doebuild to allow for modular db code. 21 Jan 2004; Nicholas Jones emerge: regen doesn't require root anymore. Edited the timestamp check to be a little more friendly -- delete the portdir timestamp and it won't use the alternate. Fix some permission settings. Added some warnings in for cachedirs that are very likely to ruin your system. Cleaned out some of the eclass code that isnt valid any longer. 21 Jan 2004; Nicholas Jones portageq: Added vdb_path as a target to get the db directory. Quickpkg uses this. 21 Jan 2004; Nicholas Jones portage.py: Added load_mod() -- grabs a class/function from a module and passes it back without loading the module into the global scope. Added unique_array() which eliminates duplicates from an array. grab_stacked() operates like the other grab* and getconfig functions, but takes a filename and a set of paths that it will apply incrementally or clobbers -- for profile inheritance. getconfig no longer exits on non-existance returns None. Class config now should be passed a profile path and a set of incremental values instead of using the globals -- defaults to using the globals presently and print an error message. Adding support for module configs as a set of strings 'class.subclass.objectmodule':'module.to.use.object' for load_mod and the database modules. Profile inheritance started. Killed the eclass() super-function and replaced it with class eclass_cache that is visible and conceptually simpler -- Also uses the plugable modules. Cleaned out the sync calls for the DBs. MASSIVE simplification of the aux_get code -- removed memory-caching in favor of system cache (actually faster in all cases so far -- P100 and P4-2.2G). Lockfile usage around the cachefile. 21 Jan 2004; Nicholas Jones portage_db_*: Updated the API a little but to have permissions set properly. A little more reorganization and removed the keycount checks. 21 Jan 2004; Masatomo Nakano emerge: download size should not be displayed when the package is nomerge with --tree. 20 Jan 2004; Masatomo Nakano portage.py: Reverted ambiguity package fix in cpv_expand(). 20 Jan 2004; Masatomo Nakano emerge: Moved backup timestamp.chk file from portage tree to PORTAGE_TMPDIR. 20 Jan 2004; Masatomo Nakano emerge: Reverted the backing up the timestamp.chk fix. 20 Jan 2004; Masatomo Nakano emerge: Improved the list of --tree by TGL's patch. This should close #38070. 20 Jan 2004; Masatomo Nakano emerge: Removed debug message without --debug. This should close #23840. 19 Jan 2004; Masatomo Nakano emerge: Improved timestamp check of rsync. This should close #37403. 19 Jan 2004; Masatomo Nakano portage.py: Improved regeneration ld.so.cache. This should close #37858. 19 Jan 2004; Masatomo Nakano emerge: Fixed bug which emerge doesn't block same package but different version. (example: DEPEND="! portage.py: Modified cpv_expand() to check package.mask. This should close #38592. 19 Jan 2004; Masatomo Nakano portage.py: Escaped regualar expression for replace entry in fixdbentries(). 18 Jan 2004; Masatomo Nakano portage.py: Fixed AUTOCLEAN delay problem in .50pre* by TGL's patch. This close #38189. Fixed unmerge failture bug when 'ebuild foo-1.0.0 unmerge'. These close #38189, #38366 18 Jan 2004; Masatomo Nakano emerge, portage.py: Fixed "ebuild /foo/bar-1.0.0.ebuild unmerge" and "emerge bar-1.0.0 unmerge" problems. This should close #38420. 17 Jan 2004; Masatomo Nakano portage.py: Fixed "!<=" style block problem. Fixed symlink with absolute path problem in treewalk(). *portage-2.0.50_pre16 (13 Jan 2004): Quick Fixes -- ~arch version 13 Jan 2004; Nicholas Jones portage.py: Removed an unnecessary depend call that double eclass-using ebuild's cache regen time. *portage-2.0.50_pre15 (12 Jan 2004): Quick Fixes -- ~arch version 12 Jan 2004; Nicholas Jones portage.py: Unmerge traceback fix. *portage-2.0.50_pre14 (12 Jan 2004): Quick Fixes -- ~arch version 12 Jan 2004; Nicholas Jones emerge: Fix for traceback on '-S'. 12 Jan 2004; Nicholas Jones repoman: Fix for traceback on --help. 12 Jan 2004; Nicholas Jones sandbox: Fix for sandboxpids.tmp file accesses. 12 Jan 2004; Nicholas Jones portage.py: Sandbox, as above. Catch invalid package names and print a sane message about it. *portage-2.0.50_pre13 (11 Jan 2004): Fixes 11 Jan 2004; Nicholas Jones cnf/*: Updated the Advanced masking section to aid the reduction of user complaints and requests for unreasable usage of ACCEPT_KEYWORDS. 11 Jan 2004; Nicholas Jones portage.py: A counter fix was fixed to actually check the counters of all CP versions to ensure the new counter is higher than all existing ones. Modified the dblink class to have class lockfiles for the db and tmpdb dirs as well as lock other files before editing. Reorganization of the merge code in dblink so that the tmpdb is filled immediately after preinst and prior to the actual FS merging -- COUNTER and CONTENTS go directly into the tmpdb and not into the infodir. *portage-2.0.50_pre11/12 (09 Dec 2003): repoman/binpkg/exit conditions 09 Jan 2004; Nicholas Jones emerge: getbinpkgonly fixes for emerge -G world, should behave properly now instead of using ebuild masks. Only downloads immediately before a merge -- fetchonly now applies to binary packages. 08 Jan 2004; Masatomo Nakano repoman: Ignore other arches check in repoman when --ignore-other-arches(-I). *portage-2.0.50_pre10 (06 Dec 2003): API change + enhancements 06 Jan 2004; Nicholas Jones ebuild.sh: Fix for dyn_preinst being called before IMAGE was set -- IMAGE is now valid in pkg_preinst. Added suidctl for SELinux. 06 Jan 2004; Nicholas Jones emerge: Added -P to initial cvs checkout. 06 Jan 2004; Nicholas Jones quickpkg: Fix for the 'tar up /' problem. 06 Jan 2004; Nicholas Jones portage.py: Caught a traceback generated by bad depend atoms for repoman. Fixes from genone for package.*. Fixed the checks for doebuild calls in treewalk that was ignoring exit conditions for ebuilds. 04 Jan 2004; Masatomo Nakano repoman: Added PDEPEND dependency check. This closes #24796 04 Jan 2004; Masatomo Nakano repoman, portage.py: Added new dependency check to repoman. This closes #36887. 03 Jan 2004; Masatomo Nakano emerge: Modified to specific port number in emerge sync. This closes #36994 02 Jan 2004; Masatomo Nakano portage.py: Fixed a problem that emerge doesn't block package when it's required. It happens in .50_pre*. 02 Jan 2004; Masatomo Nakano portage.py: Fixed issue with getsize() when --debug. 02 Jan 2004; Masatomo Nakano portage.py: Fixed issue with virtual. This closes bug #9050, #22225, #29499. 01 Jan 2004; Masatomo Nakano ebuild, emerge, portage.py: Fixed issue with not cleaning up temp directory. This closes bug #34967. 31 Dec 2003; Masatomo Nakano emerge: Fixed 'emerge sync' issue which continuously connects to same host. 31 Dec 2003; Nicholas Jones emerge: Found the line that was causing the package dir to be printed... It was a spawn call. 31 Dec 2003; Nicholas Jones portage.py: Fix for the symlink corruption in the db from the movefile() bug. 29 Dec 2003; Masatomo Nakano portage.py: Fixed bug which emerge stops when no denpendencies exist in || ( ) by USE flags. This closes #36568. 29 Dec 2003; Masatomo Nakano emerge, portage.py: Added an ambiguity package check when emerge. This closes bug #22700. *portage-2.0.50_pre9 (24 Dec 2003): API change + enhancements 24 Dec 2003; Nicholas Jones ebuild.sh: Added PORTAGE_TMPDIR to SANDBOX_READ/WRITE to ensure it works. SpanKY's patch for use negation added (use !foo). pkg_setup doesn't die on a non-zero exit status. 24 Dec 2003; Nicholas Jones emerge: using os.uname instead of calling out to uname. 24 Dec 2003; Nicholas Jones quickpkg: Added SpanKY's patch for delayed exit/error conditions. 24 Dec 2003; Nicholas Jones xpak.py: chdir's added to the getcwd fix for missing dirs. 24 Dec 2003; Masatomo Nakano emerge: Added OVERLAY directories display for --verbose. *portage-2.0.50_pre8 (24 Dec 2003): API change + enhancements 22 Dec 2003; Nicholas Jones ebuild.sh: Added /proc/self/maps to SANDBOX_PREDICT, and /dev/shm to read/write. 22 Dec 2003; Nicholas Jones emerge: Added automake and autoconf versions to the output of emerge info. 22 Dec 2003; Nicholas Jones etc-update: Added edit merged file option -- defaults to EDITOR var or "nano -w". 22 Dec 2003; Nicholas Jones portage.py: Use os.uname instead of calling out to uname which might not exist. *portage-2.0.50_pre7 (22 Dec 2003): API change + enhancements 22 Dec 2003; Nicholas Jones ebuild.sh: patch to quote most of the path operators that might involve spaces. 22 Dec 2003; Nicholas Jones portage.py: Fix for invalid entries in package.keywords. Character chopping on mirrors fixed again. 21 Dec 2003; Masatomo Nakano bin/ebuild, bin/emerge, pym/portage.py: Changed to show disabled USE flags from use.mask when using emerge -vp. And fixed use.mask issue. 20 Dec 2003; Nicholas Jones portage.py: Rewrote match_from_list -- Simplified and made pkgcmp and match_from_list properly compare package names. 20 Dec 2003; Nicholas Jones repoman: Fix for mysigs traceback when signing. 20 Dec 2003; Nicholas Jones portage.py: Added PYTHONPATH to the specials list -- created a colon_seperated list. Fixed reset() in class config so that you can specify keeping the pkg dictionary when resetting the values. 19 Dec 2003; Masatomo Nakano repoman: Added check whether "ebuild foo.ebuild digest" succeeds. 19 Dec 2003; Nicholas Jones portage.py: Fix for pkg settings being maintained after an unmerge. 19 Dec 2003; Nicholas Jones pym/portage_db_*: Moved to using cPickle instead of marshal. More standardization of the API. 18 Dec 2003; Masatomo Nakano repoman: Added virtual dependency check on each arch. 17 Dec 2003; Nicholas Jones portage.py: Fixed a permission issue involving $T and userpriv. Lockfile touchup. 17 Dec 2003; Nicholas Jones portage_db_*: Added templates and db for cache interfaces. Presently have a anydbm and a flat file interface working. See the test for operations. 15 Dec 2003; Nicholas Jones emerge: Added a call to portageq that causes python to create optimized modules prior to it ending up inside the sandbox. Added more output and logging to sync. 15 Dec 2003; Nicholas Jones prepstrip: 'tree' is not the same as 'true'. 15 Dec 2003; Nicholas Jones portage.py: invalid settings in package.keywords caused a traceback -- fixed with error message. *portage-2.0.50_pre1 (12 Dec 2003): API change + enhancements 10 Dec 2003; Nicholas Jones chkcontents: Uses portage functions to do md5sum calcs. 10 Dec 2003; Nicholas Jones ebuild.sh: Removed try() as it isn't used, and was deprecated for a long while. Genone's fetching size display added for --verbose. License display added. Added a little debug for IUSE so we can figure out the binary package --verbose IUSE issues that are randomly reported. XXXXXXXXXXXXXXXXXXX's 'buildsyspkg' patch for building only system packages into tbz2s. Unmerge fix for new settings instances. RSYNC_RATELIMIT added. 10 Dec 2003; Nicholas Jones portage.py: ADA path variables added to specials for env_update. Error messaeg correction for make.defaults syntax errors. Unmerge now uses the environment file, if it exists, to get the complete environment back to perform unmerge operations. load_infodir() uses pkg settings completely now. Fixed the passing of settings in unmerge and dblink. Fixed an issue regarding unlinking lockfiles while inside of a sandbox. 09 Dec 2003; Nicholas Jones ebuild.sh, *.sh: Moved helper scripts into bin/functions and made them sourceable -- they now will die in cases where sub-parts fail. dodoc and keepdir are now recursive-capable. 09 Dec 2003; Nicholas Jones emerge: emerge.log now set as portage:portage with 0660 perms. --debug now enables tracebacks for dep generation instead of moving code out of the try block. 09 Dec 2003; Nicholas Jones g-cpan.pl: rac's patch to get arch list from portage's list of arches in the profiles. 09 Dec 2003; Nicholas Jones repoman: Moved a bit of the existing gpg code around -- it might work as is, but requires 'sign' in features. Fixed a potential for repoman to miss updates that should get a new manifest and commit. Fixed digest/manifest generation for non-packagedir runs of repoman. 09 Dec 2003; Nicholas Jones emergehelp.py, make.conf, getbinpkg.py: Message touch ups. 09 Dec 2003; Nicholas Jones portage.py: load_infodir() uses pkg settings now instead of env and backup. Genone's custom mirror patch included. Added some missing 'strict' flags for recursion in digest*(). Refixed the invalidentry stuff that was lost across patch merges. Fix for pkg-keywords from genone included. Genone's deprecated profile patch for reporting to a user that their current profile is deprecated. Message about missing arch.list instead of spouting invalid keywords messages. 08 Dec 2003; Masatomo Nakano repoman: Added all arch dependency check. This closes bug #24160. 07 Dec 2003; Masatomo Nakano emerge,portage.py: Fixed bugs. 1.--debug doesn't work 2.Portage breaks files in /var/db/*/*. 3.No stop if dependency problem happens. They are only cvs version problems. 01 Dec 2003; Masatomo Nakano emerge: Fixed bug which always remakes info dir file. 29 Nov 2003; Masatomo Nakano portage.py: Fixed issue with ebuild name rule. Fixed typo with variable name. This closes bug #17172,#34666 29 Nov 2003; Masatomo Nakano emerge: Fixed issue with lacking the "setting" argument for pkgmerge() 29 Nov 2003; Masatomo Nakano emerge: fixed rsync bug. This closes bug #34660. 28 Nov 2003; Nicholas Jones portage.py: Migration to non-global settings started -- class config has new functionality and is locked after portage is finished initializing -- changes cannot be made to the global instance of config 'settings' -- reset() is now functional, setcpv() loads PKGUSE from /etc/portage/package.use, load_infodir() loads all small files (under 4k) from the vardb directory of an installed package so that operations have the same post* settings as they had at merge time. Begin modifications to spawn() to allow for files/pipes to be used for IO instead of using getstatusoutput which does not take an environment parameter like execve(). check_config_instance() ensures that the provided parameter is a 'class config' instance -- for ensuring that everything is being passed properly with the changes. Fix for the local FS mirror issue where it removed the first '/' instead of the last one. doebuild() cleanups for readability and pkguse enhancements -- also remove getstatusoutput() usage for depend so that we don't have to modify the active environment. Fix for symlink mtime values returned from movefile. (Nakano) SLOTMOVE added to global update functionality to fix some issues where a package suddenly must become slotted. portdbapi takes a root parameter instead of using settings. Slightly more useful output from depend. binarytree() now takes a pkgdir instead of using settings. Portage will now die if ebuild.sh exits on a signal. Moved some functions around and renamed them for general use -- derived from match2 in class portagetree: match_to_list() find all atoms in a list that match a given package. best_match_to_list() determines the most specific match. Needs work. match_from_list() find all packages in a list that match a given atom. 28 Nov 2003; Nicholas Jones emerge: Fixed an issue with searchdesc wanting root permissions if run as non-root. Migrated to the non-global config class. EMERGE_FROM added for the dyn_preinst patch -- Indicates if a merge is occuring from an ebuild or from a binary. Patch for rsync timestamp checking from Nakano. 28 Nov 2003; Nicholas Jones ebuild.sh: Save PKGUSE. Pebeneto's patch for dyn_preinst and SELinux added as a fix for binary and ebuild merges. Added a kill for portage during the depend phase so that portage will actually die if you control-C. 28 Nov 2003; Nicholas Jones *: MASSIVE set of changes to start using locally defined 'class config' instances. This allows us to start working on some parallelism among other things. Created this way: mysettings = portage.config(clone=portage.settings) The Following functions now take a 'config' parameter: spawn(), fetch(), digestgen(), digestcheck(), spawnebuild(), doebuild(), merge(), dep_opconvert(), dep_check(), dblink.__init__() package.keywords is now implemented curtasy of genone/max. PKGUSE was rewritten for the global config killing and is also included. X11 man pages now found and zipped correctly. SYS.PATH fixes for the python migration -- issue actually only shows up on 2.2 systems because of how compiled modules are used if found regardless of the original source's existance. 28 Nov 2003; Nicholas Jones tabcheck.py: An easier way to make sure that all the python stuff is correctly using tabs and not mixing spaces. 28 Nov 2003; Nicholas Jones xpak, xpak.py: Fixes to ensure that it works if the current dir is missing and that the python path gets set properly. 22 Nov 2003; Daniel Robbins portage.py: Fixed calls in vartree method to invalidentry().... made them call call self.dbapi.invalidentry() (there were multiple wrong method calls.) 10 Nov 2003; Nicholas Jones md5check.py: Checks all digests and SRC_URIs for filenames and associated MD5s. Reports collisions between versions/packages, missing, and extra lines in digests. *portage-2.0.49-r17/18 (10 Nov 2003): Fixes 10 Nov 2003; Nicholas Jones *: Changed portage to be the first path in sys.path for all python scripts. Also enabled optimizations from the scripts to ensure everything imported is built for speed. ebuild: applied fix for the '//' root breaking the db[]. prepstrip: etdyn quickfix 10 Nov 2003; Nicholas Jones portage.py: fix for RESTRICT=nouserpriv. GENTOO_MIRRORS can have paths set to take files from. Fixes for mishandled cache data regarding *pkgsplit(). Fixes for '*' being returned as part of a package split. An 'invalidentry()' fix for a traceback. Nakano's fixes for virtual removals not working properly, sandbox violations during pkg_nofetch, || depend selection. Genone's fixpackages speedup. 10 Nov 2003; Nicholas Jones ebuild.sh: PORTAGE_TMPDIR fix for distcc. Variable passing bug patch for export_functions. Exit 1 added for nofetch to stop sandbox violation. Nakano's --tree patch added. Improved the unmerge messages to denote what kind of unmerge fails. Info pages regex pattern adjusted to allow most any name for a page. 10 Nov 2003; Nicholas Jones repoman: genone's xml linting additions. 01 Nov 2003; Robin H. Johnson pym/cvstree.py: fix bug #32071, by properly escaping a string to not be a regex. Checked thru entire *.py tree and found this is the only mis-use of strings that need to be escaped. 31 Oct 2003; Daniel Robbins portage.py: /lib/modules now gets "unmerge protection." This is half of the config protection functionality. It means that anything in /lib/modules will not be deleted when a package is unmerged (often automatically when a user merges a kernel module ebuild for a new kernel.) This solves the "my module disappeared!" issue. This closes bug #1477. 31 Oct 2003; Daniel Robbins emerge: Should no longer spit out wacky "!!! no match found" warnings when auto-cleaning. 30 Oct 2003; Daniel Robbins portage.py: Only run depscan.sh if it exists on disk. This allows Portage to run inside a stage1 where /sbin/depscan.sh doesn't exist. 30 Oct 2003; Daniel Robbins portage.py: Applied fix to allow multi-level "use? ( )" in SRC_URI, closing bug #16159. *portage-2.0.49-r15/16 (21 Oct 2003): Fixes 21 Oct 2003; Nicholas Jones fix-db.py: was broken for python2.3 -- fixed now. 21 Oct 2003; Nicholas Jones portage.py: Added lockfiles to prelink md5 checks. Fixed caching bug where cache objects were passed back as pointers instead of copies. Added 'invalidentry' function to handle lockfiles -- It tests/deletes them using unlockfile. Added fix-db.py to the 'databases is broken' messages. 21 Oct 2003; Nicholas Jones ebuild.sh: added CDPATH to unset. SELinux fix for sandbox.