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


RELEASE-NOTES
  9198 zmedico  Add some notes about enhancements related to binary package
                support that's now in 2.1.4. (trunk r9197)


bin/ebuild
  9173 zmedico  Make sure that portdb.findname() returns the correct ebuild.
                (trunk r9164:9165)


bin/ebuild.sh
  9138 zmedico  Recognize export statements when filtering the environment.
                This is needed for compatibility with environment.bz2 files
                generated by paludis. (trunk r9137)
  9146 zmedico  Filter PATH along with FEATURES when loading environment.bz2.
                (trunk r9145)
  9148 zmedico  Make filter_readonly_variables() filter PATH in any case
                since we never want to save of reload it. (trunk r9147)
  9170 zmedico  After loading the environment, make sure the color variables
                are in sync with the current NOCOLOR setting. (trunk r9158)
  9171 zmedico  Bug#204668 - Fix WORKDIR quoting in econf() when updating
                config.guess and config.sub. (trunk r9162)
  9196 zmedico  In preprocess_ebuild_env(), move a filter_readonly_variables
                call out of a subshell since FreeBSD and prefix users have
                reported apparent corruption of the PATH environment variable
                that triggers calls to the wrong version of sed (one that
                does not support the -r option). (trunk r9193:9195)


bin/emerge
cnf/make.globals
  9172 zmedico  Bug #204425 - Remove --delete-after from the default
                PORTAGE_RSYNC_OPTS. This allows the rsync program to choose
                the preferred --delete algorithm, or the user can choose one
                via PORTAGE_RSYNC_EXTRA_OPTS. (trunk r9163)


bin/isolated-functions.sh
  9141 zmedico  Send eerror and ewarn messages to stderr. This is important
                in case somebody calls portageq inside a global scope command
                substitution. The output needs to go to stderr so that the
                die message from the subshell is visible. (trunk r9140)
  9148 zmedico  Make filter_readonly_variables() filter PATH in any case
                since we never want to save of reload it. (trunk r9147)


bin/misc-functions.sh
  9180 zmedico  Bug #162450 - Try to avoid having so many bugs marked
                UPSTREAM by encouraging users to report 'poor programming
                practices' QA issues upstream and show them the $HOMEPAGE for
                convenience. (trunk r9176)
  9185 zmedico  Fix a typo. (trunk r9184)


bin/prepstrip
man/ebuild.5
  9175 zmedico  Bug #203887 - Implement RESTRICT=installsources for binaries
                that are not compatible with debugedit. (trunk r9167)


bin/repoman
  9152 zmedico  Bug #204651 - Make repoman respect NOCOLOR=true. (trunk
                r9151)
  9168 zmedico  per bug 204468, remove old check from repoman (all ebuilds in
                gentoo-x86 are migrated). (trunk r9144)
  9181 zmedico  Add a DESCRIPTION.toolong warning for when the DESCRIPTION
                line is over 80 characters long. Thanks to Betelgeuse for the
                patch. (trunk r9177)
  9183 zmedico  Add a new "ebuild.autotools" check for when ebuilds call
                autotools directly instead of using autotools.eclass. Thanks
                to Betelgeuse for the initial patch. (trunk r9179)
  9187 zmedico  Adjust the max DESCRIPTION.toolong length to 100 characters
                so that it's not too small and only about 3% of packages will
                trigger it. (trunk r9186)
  9191 zmedico  Bug #203887 - Make repoman recognize
                RESTRICT="installsources". (trunk r9190)
  9193 zmedico  Replace hardcoded value with max_desc_len. (trunk r9192)


pym/portage.py
  9156 zmedico  Bug #204753 - Add "distfiles" and "packages" to the list of
                non-category directories. (trunk r9155)
  9161 zmedico  Bug #162542 - When dropping privileges for FEATURES=userpriv,
                automatically detect permission problems with CCACHE_DIR and
                recursively adjust permissions only when necessary. (trunk
                r9160)
  9169 zmedico  When spawing the "depend" phase, use file descriptors from
                sys.std* streams. (trunk r9157)
  9189 zmedico  Bug #205318 - Handle errno.ENOTDIR thrown from the lstat call
                inside dblink._security_check(). (trunk r9188)


pym/portage_dep.py
  9174 zmedico  Bug #203316 - Fix isvalidatom() to properly detect invalid
                operators used together with slot atoms. Thanks to Arfrever
                Frehtes Taifersar Arahesis <Arfrever.FTA@GMail.Com> for the
                patch. (trunk r9166)


pym/portage_util.py
  9136 zmedico  Bug #204020 - Make grabfile() properly raise PermissionDenied
                when appropriate instead of silently ignoring permission
                errors. (trunk r9135)


pym/portage_versions.py
tests/portage_versions/test_vercmp.py
  9182 zmedico  * Make pkgcmp() pass the ebuild revision directly into
                vercmp() since there is code there to handle it already. This
                eliminates some redundant revision comparison code. Thanks to
                peper for the patch. * Add some vercmp() test cases for
                comparison of ebuild revisions. (trunk r9178)


=============================================================================
2.1.4_rc14
2007-12-31
branches/2.1.2 revision 9130
=============================================================================


pym/portage.py
  9130 zmedico  Bug #203919 - Define missing base_url variable to fix
                NameError when using PORTAGE_BINHOST.


=============================================================================
2.1.4_rc13
2007-12-31
branches/2.1.2 revision 9129
=============================================================================


pym/portage.py
  9127 zmedico  Fix config.setcpv() to properly call config.regenerate() in
                cases when USE needs to be regenerated due to FEATURES=test
                to USE=test mapping. (trunk r9126)
  9129 zmedico  When searching for "test" in IUSE, account for IUSE defaults.
                (trunk r9128)


=============================================================================
2.1.4_rc12
2007-12-30
branches/2.1.2 revision 9119
=============================================================================


bin/ebuild
  9076 zmedico  Fixes for logic related to FEATURES=test to USE=test mapping:
                * Add EBUILD_FORCE_TEST to the environment whitelist and
                filter it from the saved environment in save_ebuild_env(). *
                Tweak logic inside the ebuild command and config.regenerate()
                so that EBUILD_FORCE_TEST works even in odd cases like when
                USE=test is masked. * Only make FEATURES=test map to USE=test
                when "test" is actually in IUSE. * Remove USE=test from the
                set of implicit IUSE so that useq() calls in ebuild.sh
                properly generate a QA Notice when "test" is missing from
                IUSE. (trunk r9063:9065)


bin/ebuild.sh
  9068 zmedico  Bug #203239 - With FEATURES=noauto, always source ${EBUILD}.
                This will load the ${T}/environment file if available and
                then source ${EBUILD} to overwrite any functions that have
                changed. (trunk r9051 and r9062)
  9076 zmedico  Fixes for logic related to FEATURES=test to USE=test mapping:
                * Add EBUILD_FORCE_TEST to the environment whitelist and
                filter it from the saved environment in save_ebuild_env(). *
                Tweak logic inside the ebuild command and config.regenerate()
                so that EBUILD_FORCE_TEST works even in odd cases like when
                USE=test is masked. * Only make FEATURES=test map to USE=test
                when "test" is actually in IUSE. * Remove USE=test from the
                set of implicit IUSE so that useq() calls in ebuild.sh
                properly generate a QA Notice when "test" is missing from
                IUSE. (trunk r9063:9065)
  9086 zmedico  Bug #202697 - Add / to the default initial SANDBOX_READ in
                order to avoid a situation where attempts to read arbitrary
                files trigger sandbox violations. (trunk r9085)


bin/ecompressdir
  9113 zmedico  Make the ecompressdir vecho output show a leading / on the
                directory path. Thanks to armin76. (trunk r9110:9112)


bin/emerge
  9030 zmedico  emerge --search enhancements: * support for searching
                installed packages * visibility filtering for both installed
                and binary packages (trunk r9026:9029)
  9039 zmedico  Add support for --usepkg and --usepkgonly options together
                with emerge --search. (trunk r9038)
  9067 zmedico  - small UI cleanups. *should* not cause problems with lack of
                missing newlines. (trunk r9050)
  9077 zmedico  In action_regen(), use writemsg() to send error messages to
                stderr. (trunk r9066)
  9095 zmedico  Add support for showing binary package file sizes in emerge
                --search output. (trunk r9094)


bin/emerge-webrsync
  9108 zmedico  Rely on USERLAND since it's automatically generated by
                isolated-functions.sh when necessary. (trunk r9107)


bin/isolated-functions.sh
  9076 zmedico  Fixes for logic related to FEATURES=test to USE=test mapping:
                * Add EBUILD_FORCE_TEST to the environment whitelist and
                filter it from the saved environment in save_ebuild_env(). *
                Tweak logic inside the ebuild command and config.regenerate()
                so that EBUILD_FORCE_TEST works even in odd cases like when
                USE=test is masked. * Only make FEATURES=test map to USE=test
                when "test" is actually in IUSE. * Remove USE=test from the
                set of implicit IUSE so that useq() calls in ebuild.sh
                properly generate a QA Notice when "test" is missing from
                IUSE. (trunk r9063:9065)
  9098 zmedico  Move XARGS initialization from portage.data to
                isolated-functions.sh. (trunk r9095:9097)
  9102 zmedico  * Remove redundant lchown() compatibility code since the
                getattr(os, "lchown", None) call already handles it. *
                Simplify the userland detection code in portage.data and add
                a bash version of it to isolated-functions.sh. (trunk
                r9098:9101)
  9119 zmedico  As suggested by grobian, treat Darwin just like USERLAND=gnu
                since they seem to be switching commands to gnu anyway.
                (trunk r9118)


bin/misc-functions.sh
  9075 zmedico  Bug #203323 - Fix the FEATURES=sfperms code so that it
                doesn't chmod g-r on binaries that are both setuid and
                setgid. In that case, just chmod o-r. (trunk r9061)
  9084 zmedico  Make the FEATURES=sfperms loops safe for whitespace in paths
                by using find -print0 | while read -d $'\0'. (trunk r9083)


bin/portageq
  9036 zmedico  Enhance the portageq match command to list all installed
                packages when given an empty string. (trunk r9032:9034)
  9037 zmedico  Implement a `portageq contents <root> <category/package>`
                command that lists all the files that are installed for a
                given package, with one file listed on each line. (trunk
                r9035)


bin/repoman
  9072 zmedico  Fix broken handling of the tuple that's returned from
                verify_all(). Thanks to Betelgeuse. (trunk r9056)
  9073 zmedico  Bug #201498 - Use desktop-file-validate to validate *.desktop
                files inside ${FILESDIR} and generate a "desktop.invalid" qa
                warning if an error is detected. Thanks to Betelgeuse for the
                initial patch. (trunk r9059)
  9074 zmedico  Minor code readablity enhancements: * Use relative_path and
                full_path variables for files being checked instead of
                spreading code like x+"/files/"+y all over the place. * Use
                stat.S_IMODE with octal 0111 instead of hex 0x0248 in the
                file.executable checks. (trunk r9060)


man/ebuild.5
  9110 zmedico  Document that docinto works for dohtml. (trunk r9109)


pym/portage.py
  9026 zmedico  Make the "test" flag that's enabled by FEATURES=test into an
                implicit iuse member. (trunk r9025)
  9032 zmedico  Make vardbapi cache DESCRIPTION and HOMEPAGE in order to
                optimize emerge --searchdesc. (trunk r9031)
  9067 zmedico  - small UI cleanups. *should* not cause problems with lack of
                missing newlines. (trunk r9050)
  9069 zmedico  Bug #203090 - Do not trust the global counter file that can
                lead to invalid COUNTER generation. (trunk r9052)
  9070 zmedico  Fix "Initializing counter" message to show the correct value.
                (trunk r9053)
  9076 zmedico  Fixes for logic related to FEATURES=test to USE=test mapping:
                * Add EBUILD_FORCE_TEST to the environment whitelist and
                filter it from the saved environment in save_ebuild_env(). *
                Tweak logic inside the ebuild command and config.regenerate()
                so that EBUILD_FORCE_TEST works even in odd cases like when
                USE=test is masked. * Only make FEATURES=test map to USE=test
                when "test" is actually in IUSE. * Remove USE=test from the
                set of implicit IUSE so that useq() calls in ebuild.sh
                properly generate a QA Notice when "test" is missing from
                IUSE. (trunk r9063:9065)
  9079 zmedico  Just ignore it when the global counter file does not match
                the highest installed COUNTER since it's normal for them to
                differ in some cases. For example, the global counter file
                will contain a higher value if the user merges a package and
                then immediately unmerges it (unmerge does not update the
                global counter file, but merge does). (trunk r9078)
  9082 zmedico  Make dep_expand() and key_expand() stop relying on having a
                categories list: * Create and use a dbapi.categories property
                that is automatically generated from dbapi.cp_all(). * Make
                mutable dbapi instances delete the invalidate the cached
                categories when they need to be regenerated. (trunk
                r9079:9081)
  9091 zmedico  Move the USERLAND and XARGS sanity checks from the
                portage_data mule to doebuild().
  9093 zmedico  * Initialize dbapi._categories = None so that we can compare
                with None instead of using hasattr. * Remove unwanted
                self._categories initialization from the portdbapi
                constructor. (trunk r9092)
  9098 zmedico  Move XARGS initialization from portage.data to
                isolated-functions.sh. (trunk r9095:9097)
  9104 zmedico  Remove redundant USERLAND sanity check code from doebuild()
                since it's handled in isolated-functions.sh now. (trunk
                r9103)
  9106 zmedico  Make the global counter file correspond to the total number
                of installation actions that have occurred in the history of
                this package database. (trunk r9105)
  9115 zmedico  Add PKGDIR to the config.environ() whitelist so that people's
                bashrc's don't break. (trunk r9114)


pym/portage_data.py
  9088 zmedico  Bug #121584 - Make the automatic USERLAND detection code
                recognize GNU/kFreeBSD. (trunk r9087)
  9091 zmedico  Move the USERLAND and XARGS sanity checks from the
                portage_data mule to doebuild().
  9098 zmedico  Move XARGS initialization from portage.data to
                isolated-functions.sh. (trunk r9095:9097)
  9102 zmedico  * Remove redundant lchown() compatibility code since the
                getattr(os, "lchown", None) call already handles it. *
                Simplify the userland detection code in portage.data and add
                a bash version of it to isolated-functions.sh. (trunk
                r9098:9101)


pym/portage_util.py
  9071 zmedico  In getconfig(), pass the infile attribute into the shlex
                constructor so that shlex.sourcehook() properly joins
                relative paths. (trunk r9054)


=============================================================================
2.1.4_rc11
2007-12-20
branches/2.1.2 revision 9024
=============================================================================


bin/ebuild.sh
  8948 zmedico  Create a PORTAGE_IUSE variable containing an egrep pattern
                for use by the QA check that's built into useq(). This allows
                the IUSE logic for this check to be isolated in the python
                code. (trunk r8945)
  8952 zmedico  Only enable the PORTAGE_IUSE check during build time phases
                since that's the only time it's valid for now. (trunk r8951)


bin/emerge
  8954 zmedico  Display the merge list with blockers any time that there are
                blockers, instead of telling the user to try again with
                --pretend. (trunk r8953)
  8977 zmedico  Make some adjustments so that it's possible to install binary
                packages without having a portage tree: * Make
                portdbapi.aux_get() return early by raising a KeyError if it
                detects that there is no portage tree. * Move the ARCH and
                USERLAND sanity check to the last moment in doebuild() and
                only require these variables if an existing environment (such
                as environment.bz2) is unavailable. * Convert messages about
                missing portage tree to debug level warnings since quite
                often it's possible to function without a portage tree now. *
                Make binarytree.populate() stop relying on having a
                categories list since it may not be available if there is no
                portage tree. (trunk r8972:8976)
  8981 zmedico  Enable emerge search actions for binary packages when there
                is no portage tree available. (trunk r8980)
  8984 zmedico  Bug #149816 - Implement visibility filtering for binary
                packages. This is only the least invasive part of the
                implementation that is currently in trunk.
  8986 zmedico  Merge the unified package masking output from trunk for bug
                #149816.
  8987 zmedico  Merge missing db keys from trunk, for bug #149816.
  9022 zmedico  Tweak profile validation and warning logic a bit. (trunk
                r9015)


bin/misc-functions.sh
  8936 zmedico  In "QA Notice: Precompiled python" messages, use sed to strip
                the leading ${D} from file paths. (trunk r8935)


bin/repoman
  8922 zmedico  * Add support for multi-line commit message input by using
                EOF as a delimiter (Ctrl-d) instead of a new line. * Add
                support for getting a commit message using an editor defined
                by the EDITOR environment variable. (trunk r8919:8921)
  8924 zmedico  Prompt the user before letting the editor take over the
                screen so there is an opportunity to review any QA warnings.
                (trunk r8923)
  8926 zmedico  Save QA output so that it can be conveniently displayed in
                $EDITOR while the user creates a commit message. Otherwise,
                the user would not be able to see this output once the editor
                has taken over the screen. Output is done through a formatter
                object where it is captured for later use. A file-like object
                that behaves something like the portage.output.colorize()
                function is used to transfor style identifiers from the
                formatter framework into actual console codes. (trunk r8925)
  8929 zmedico  Instead of all modes, only in commit mode save an extra copy
                of QA output for display in $EDITOR. (trunk r8928)
  8931 zmedico  Split out a format_qa_output() function to eliminate
                duplicate code. (trunk r8927 and r8930)
  8966 zmedico  Bug #140180 - Ignore missing HOMEPAGE and LICENSE variables
                for new-style virtual packages. (trunk r8965)
  9024 zmedico  Eliminate redundant "notadded" error filtering. (trunk r9023)


bin/sed
  8946 zmedico  Generalize the sed -> gsed wrapper script so that it's
                possible to create awk, make, and patch symlinks that behave
                analogously. These symlinks will make it unnecessary for
                default-bsd profiles to define profile.bashrc aliases for
                these commands. (trunk r8941:8943)
  9003 zmedico  Hardcode #!/bin/bash for consistency with other scripts.
                (trunk r9002)


doc/qa.docbook
  8933 zmedico  Fix punctuation and spelling. Thanks to Arfrever Frehtes
                Taifersar Arahesis <arfrever.fta@gmail.com>. (trunk r8932)


pym/portage.py
  8947 zmedico  Bug #176467 - Filter out USE flags that aren't part of IUSE.
                Some flags are considered to be implicit members of IUSE: *
                Flags derived from ARCH * Flags derived from
                USE_EXPAND_HIDDEN variables * Forced flags, such as those
                from {,package}use.force (trunk r8944)
  8948 zmedico  Create a PORTAGE_IUSE variable containing an egrep pattern
                for use by the QA check that's built into useq(). This allows
                the IUSE logic for this check to be isolated in the python
                code. (trunk r8945)
  8950 zmedico  Include masked flags in PORTAGE_IUSE to avoid more false
                positives in the useq() IUSE check. (trunk r8949)
  8956 zmedico  Make special build and bootstrap flags into implicit members
                of IUSE so that stage builds will work again. (trunk r8955)
  8958 zmedico  Fix USE filtering code so that it doesn't rely on
                config.setcpv() calling config.regenerate(). (trunk r8957)
  8960 zmedico  Store filtered USE for config.environ() calls in a special
                attribute so that the normal global USE is still available
                for things like emerge --info output. (trunk r8959)
  8962 zmedico  Trigger a config.regenerate() call inside setcpv() when the
                EBUILD_PHASE variable is defined. It's too expensive to do
                the regenerate() call every time. Do in when EBUILD_PHASE is
                defined since it's needed to create the filtered USE that
                environ() passes to the ebuild environment. (trunk r8961)
  8964 zmedico  Keep filtered USE in the PORTAGE_USE variable to keep it
                separate from the global USE that's shown by emerge --info.
                (trunk r8963)
  8968 zmedico  Always add ARCH to USE without relying on it being listed in
                PORTAGE_ARCHLIST. (trunk r8967)
  8970 zmedico  Whitespace only: remove extra indentation. (trunk r8969)
  8972 zmedico  Bug #202748 - When merging a binary package, only clean up
                temp files on success. Otherwise, leave the temp files intact
                for debugging purposes. (trunk r8971)
  8977 zmedico  Make some adjustments so that it's possible to install binary
                packages without having a portage tree: * Make
                portdbapi.aux_get() return early by raising a KeyError if it
                detects that there is no portage tree. * Move the ARCH and
                USERLAND sanity check to the last moment in doebuild() and
                only require these variables if an existing environment (such
                as environment.bz2) is unavailable. * Convert messages about
                missing portage tree to debug level warnings since quite
                often it's possible to function without a portage tree now. *
                Make binarytree.populate() stop relying on having a
                categories list since it may not be available if there is no
                portage tree. (trunk r8972:8976)
  8979 zmedico  Fix a typo: eclasses -> eclass. (trunk r8978)
  8983 zmedico  Make vartree.cpv_all() stop relying on having a categories
                list since it may not be available if there is no portage
                tree. (trunk r8982)
  8984 zmedico  Bug #149816 - Implement visibility filtering for binary
                packages. This is only the least invasive part of the
                implementation that is currently in trunk.
  8986 zmedico  Merge the unified package masking output from trunk for bug
                #149816.
  8989 zmedico  Make dep_zapdeps() fall back to installed packages in it's
                availability test in cases where the package does not appear
                to be masked. This solves dep selection preference issues
                when working without a portage tree. (trunk r8988)
  8991 zmedico  Fix portdbapi.cp_list() so that it can cope with a missing
                profile. (trunk r8990)
  8994 zmedico  For simplicity and consistency, always use a regular
                expression for category validation instead of using a list.
                (trunk r8991:8993)
  8995 zmedico  Fix broken indentation in portdbapi.cp_all().
  8996 zmedico  Remove some redunant categories code.
  8998 zmedico  Fix a typo in the _non_category_dirs regex. (trunk r8997)
  8999 zmedico  Remove an accidental redundant loop from portdbapi.cp_all().
  9007 zmedico  Slightly improved the masked package check inside
                dep_zapdeps(). (trunk r9006)
  9009 zmedico  Add "metadata" and "licenses" to _non_category_dirs. (trunk
                r9008)
  9011 zmedico  Use a regex to validate package directory names in
                portdbapi.cp_list() and also simplify the catagory regex a
                bit. (trunk r9010)
  9014 zmedico  Use regex category validation in binarytree.populate().
                (trunk r9011:9013)
  9017 zmedico  In portage.spawn(), make the default fd_pipes value get file
                descriptors from sys.std{in,out,err} so that they can be
                overridden. (trunk r9016)
  9021 zmedico  Fix xmatch "match-all" typo. (trunk r9020)
  9022 zmedico  Tweak profile validation and warning logic a bit. (trunk
                r9015)


pym/portage_exec.py
  9019 zmedico  In portage.process.spawn(), make the default fd_pipes value
                get file descriptors from sys.std{in,out,err} so that they
                can be overridden. (trunk r9018)


=============================================================================
2.1.4_rc10
2007-12-13
branches/2.1.2 revision 8919
=============================================================================


bin/ebuild.sh
  8881 zmedico  * When installing a binary package, export the file name of
                the package as PORTAGE_BINPKG_FILE in order to give bashrc
                users an opportunity to do various things such as remove
                binary packages after they're installed. * Add a note in
                ebuild.sh explaining why hardcoded bash lists are needed for
                backward compatibility with <portage-2.1.4 since they assume
                that a newly installed version of ebuild.sh will work for
                pkg_postinst, pkg_prerm, and pkg_postrm when portage is
                upgrading itself. (trunk r8878)
  8899 zmedico  * In filter_readonly_variables(), replace 'declare -r ' with
                'declare ' instead of removing it completely. * Bug #202068 -
                In order to filter unwanted variable assignments out of the
                bash environment, use a filter-bash-environment.py script
                that behaves similar to egrep -v except that it leaves bash
                here- documents intact. * Use the sed -r option to enable
                extended regular expressions so that commonly used characters
                like (, ), and + don't have to be escaped. (trunk r8890:8893)
  8903 zmedico  Bug #201771 - Make unpack() detect common errors such as
                absolute paths that start with ${DISTDIR} and die an
                appropriate error message. Thanks to grobian for this patch.
                (trunk r8896)
  8908 zmedico  Properly filter SANDBOX_ON from the environment. When
                sourcing ${T}/environment it's a bit tricky because we have
                to temporarily disable sandbox since the
                SANDBOX_{DENY,READ,PREDICT,_WRITE} values we've just loaded
                may be unusable (triggering in spurious sandbox violations)
                until we've merged them with our current values. (trunk
                r8905:8907)
  8910 zmedico  Allow FEATURES to persist between phases since the user might
                want to modify it via bashrc to enable things like splitdebug
                and installsources for specific packages. They should be able
                to modify it in pre_pkg_setup() and have it persist all the
                way through the install phase. However, if FEATURES exist
                inside environment.bz2 then they should be overridden by
                current settings. (trunk r8909)


bin/emerge
  8886 zmedico  Instead of calling sys.exit when a ParseError occurs in the
                config constructor, raise a ParseError and make emerge and
                portageq handle the error. This way consumers of the portage
                api can handle the ParseError rather than have their
                application exit. Thanks to lxnay for reporting. (trunk
                r8884)
  8890 zmedico  Bug #202036 - In case of blockers, bail out earlier so that
                later code can assume there are no blockers. (trunk r8889)
  8900 zmedico  Bug #201848 - Mask ebuilds that do not define SLOT. (trunk
                r8894)
  8905 zmedico  Use the BAD color class instead of hardcoded red. (trunk
                r8904)
  8918 zmedico  Add --buildpkgonly to the options lists that exempt from slot
                collisions and world file updates. (trunk r8917)


bin/emerge-webrsync
  8873 zmedico  Quote $PORTDIR. Thanks to Chris Kerr in bug #52208.


bin/filter-bash-environment.py (Added)
  8899 zmedico  * In filter_readonly_variables(), replace 'declare -r ' with
                'declare ' instead of removing it completely. * Bug #202068 -
                In order to filter unwanted variable assignments out of the
                bash environment, use a filter-bash-environment.py script
                that behaves similar to egrep -v except that it leaves bash
                here- documents intact. * Use the sed -r option to enable
                extended regular expressions so that commonly used characters
                like (, ), and + don't have to be escaped. (trunk r8890:8893)


bin/isolated-functions.sh
  8910 zmedico  Allow FEATURES to persist between phases since the user might
                want to modify it via bashrc to enable things like splitdebug
                and installsources for specific packages. They should be able
                to modify it in pre_pkg_setup() and have it persist all the
                way through the install phase. However, if FEATURES exist
                inside environment.bz2 then they should be overridden by
                current settings. (trunk r8909)
  8912 zmedico  Make sure that PORTAGE_SANDBOX_* variables can never be set
                by "${T}"/environment. (trunk r8911)


bin/portageq
  8886 zmedico  Instead of calling sys.exit when a ParseError occurs in the
                config constructor, raise a ParseError and make emerge and
                portageq handle the error. This way consumers of the portage
                api can handle the ParseError rather than have their
                application exit. Thanks to lxnay for reporting. (trunk
                r8884)


bin/prepstrip
  8916 zmedico  Disable the "QA Notice: Pre-stripped files" message when
                RESTRICT contains "strip" or "binchecks". This is needed at
                least for the glibc ebuild since it calls prepallstrip
                directly, resulting in it being called twice. Thanks to
                loki_val for reporting. (trunk r8915)


bin/repoman
  8898 zmedico  Bug #198398 - Make repoman bail out if support for RMD160
                hash creation appears to be missing. (trunk r8886:8888 and
                r8897)
  8905 zmedico  Use the BAD color class instead of hardcoded red. (trunk
                r8904)
  8919 zmedico  Fix the bug #198398 code from trunk to be compatible with the
                code in this branch.


doc/config (Added)
doc/config.docbook (Added)
doc/config/bashrc.docbook (Added)
doc/package (Added)
doc/package.docbook (Added)
doc/package/ebuild (Added)
doc/package/ebuild.docbook (Added)
doc/package/ebuild/phases.docbook (Added)
doc/portage.docbook
  8879 zmedico  Add some documentation for ebuild phases and pre/post phase
                hooks that can be defined via bashrc. (trunk r8876)


doc/qa.docbook
  8880 zmedico  Add a "Quality Assurance" <part> tag so that all chapters are
                consistently nested inside <part> tags. (trunk r8877)


man/make.conf.5
  8914 zmedico  Bug #202126 - Replace an obsolete reference to `emerge --help
                config` with a reference to the CONFIGURATION FILES section
                of emerge(1). (trunk r8913)


pym/portage.py
  8875 zmedico  Do an EBUILD_EXIT_STATUS_FILE sanity check in spawnebuild()
                where it spawns misc-functions.sh after the install phase.
                (trunk r8874)
  8881 zmedico  * When installing a binary package, export the file name of
                the package as PORTAGE_BINPKG_FILE in order to give bashrc
                users an opportunity to do various things such as remove
                binary packages after they're installed. * Add a note in
                ebuild.sh explaining why hardcoded bash lists are needed for
                backward compatibility with <portage-2.1.4 since they assume
                that a newly installed version of ebuild.sh will work for
                pkg_postinst, pkg_prerm, and pkg_postrm when portage is
                upgrading itself. (trunk r8878)
  8886 zmedico  Instead of calling sys.exit when a ParseError occurs in the
                config constructor, raise a ParseError and make emerge and
                portageq handle the error. This way consumers of the portage
                api can handle the ParseError rather than have their
                application exit. Thanks to lxnay for reporting. (trunk
                r8884)
  8900 zmedico  Bug #201848 - Mask ebuilds that do not define SLOT. (trunk
                r8894)
  8902 zmedico  Bug #201848 - Make the ebuild command reject ebuilds that do
                not define SLOT. (trunk r8895)


pym/portage_util.py
  8885 zmedico  * Raise PermissionDenied from getconfig() when appropriate. *
                When available, make getconfig() include an invalid token in
                a ParseError message. (trunk r8883)


=============================================================================
2.1.4_rc9
2007-12-07
branches/2.1.2 revision 8868
=============================================================================


pym/portage.py
  8868 zmedico  Bug #189417 - Explicitly whitelist any remaining variables
                that are allowed to leak into the ebuild environment. Also,
                fix spawnebuild to properly filter the env when it spawns
                misc-functions.sh after the install phase. (trunk r8863:8867)


=============================================================================
2.1.4_rc8
2007-12-06
branches/2.1.2 revision 8860
=============================================================================


bin/ebuild.sh
  8854 zmedico  Bug #201506 - Make preprocess_ebuild_env() preserve
                SANDBOX_{DENY,PREDICT,READ,WRITE} between all phases, except
                when the environment comes directly from environment.bz2.
                (trunk r8853)
  8856 zmedico  Remove redundant successful exit call from the "depend" phase
                and let it run to the bottom of ebuild.sh just like the other
                phases. (trunk r8852)
  8858 zmedico  Prevent the filter_opts local variable from leaking into the
                environment in preprocess_ebuild_env(). (trunk r8857)
  8860 zmedico  Declare retval as a local variable. (trunk r8859)


bin/emerge
  8847 zmedico  Show ? if the installed package is missing a repository
                label. The stable version of portage creates these labels
                now, so false positives won't be as common as they used to
                be. (trunk r8846)
  8855 zmedico  To avoid false positives during the transition period, don't
                show ? if the installed package is missing a repository
                label. Stages starting with 2007.1 will come with repository
                lables.


pym/portage.py
  8854 zmedico  Bug #201506 - Make preprocess_ebuild_env() preserve
                SANDBOX_{DENY,PREDICT,READ,WRITE} between all phases, except
                when the environment comes directly from environment.bz2.
                (trunk r8853)


=============================================================================
2.1.4_rc7
2007-12-03
branches/2.1.2 revision 8836
=============================================================================


bin/ebuild.sh
  8834 zmedico  Synchronize the conditional that triggers "${T}"/environment
                generation with the conditional that triggers distcc and
                ccache FEATURES setup. (trunk r8833)


pym/portage.py
  8823 zmedico  Bug #201082 - Don't call config.load_infodir() prior to
                pkg_postinst() because it's not needed and the ebuild path
                that's passed in for postinst is may be from the portage
                tree, which causes load_infodir() to discard critical
                metadata such as CATEGORY without realoading it. (trunk
                r8822)
  8827 zmedico  Make config.load_infodir() more fault tolerant for cases like
                bug #201082. (trunk r8826)
  8829 zmedico  Bug #201090 - When portage creates a temp PORTAGE_BIN_PATH,
                put it inside PORTAGE_TMPDIR since, unlike /tmp, it can't be
                mounted with the "noexec" option. (trunk r8828)
  8832 zmedico  * Don't load the CATEGORY in config.load_infodir() since this
                value is critical for doebuild() operation and we already
                know the category. * Always call config.setcpv() prior to
                config.load_infodir() so that the CATEGORY is always known.
                (trunk r8830:88310
  8836 zmedico  Remove redundant config.load_infodir() calls from
                portage.pkgmerge() and dblink.unmerge() since it's already
                called in doebuild(). (trunk r8835)


=============================================================================
2.1.4_rc6
2007-12-02
branches/2.1.2 revision 8819
=============================================================================


bin/isolated-functions.sh
pym/portage.py
  8819 zmedico  * whitelist CCACHE_* and DISTCC_* variables in
                config.environ() * unset CCACHE_* and DISTCC_* variables in
                save_ebuild_env() (trunk r8818)


=============================================================================
2.1.4_rc5
2007-12-02
branches/2.1.2 revision 8817
=============================================================================


NEWS
  8758 zmedico  * After the initial setup phase, the original ebuild and
                eclasses are no longer needed because the same ebuild
                environment is reused for the entire lifecycle of the
                package, including uninstallation.


bin/ebuild.sh
  8730 zmedico  Bug #200652 - Skip ${T}/environment handling for
                pkg_nofetch(). (trunk r8729)
  8746 zmedico  Adjust PYTHONPATH when calling portageq so that variable
                PORTAGE_PYM_PATH works. (trunk r8745)
  8756 zmedico  Bug #189417 - When ${T}/environment exists, isolate the
                ebuild environment from the calling environment. This makes
                it possible for the build to unset a variable that was
                inherited from the calling environment, and the variable will
                remain unset between phases. (trunk r8752:8755)
  8762 zmedico  Don't use sandbox's BASH_ENV for new shells because it does
                'source /etc/profile' which can interfere with the build
                environment by modifying our PATH. (trunk r8761)
  8766 zmedico  Bug #200775 - Save more portage generated environment
                variables that are in environment.bz2 so that they are
                available for use by tools such as epm. (trunk r8765)
  8769 zmedico  sandbox unsets ROOTPATH, so we have to back it up on the
                python side then restore it on the bash side. (trunk r8768)
  8775 zmedico  Fix quoting for PORTAGE_ROOTPATH. (trunk r8774)
  8778 zmedico  Update comments about ROOTPATH: sandbox's bashrc sources
                /etc/profile which unsets ROOTPATH, so we have to back it up
                and restore it. (trunk r8775:8777)
  8806 zmedico  Fix useq() so that it won't generate a bogus IUSE QA Notice
                if called during the "depend" phase with a flag that uses
                IUSE defaults. (trunk r8805)


bin/emerge
  8793 zmedico  After each merge, collect status from child processes in
                order to clean up zombies (such as the parallel-fetch
                process). (trunk r8790:8792)
  8795 zmedico  Show the pid in the "starting parallel fetching" message.
                (trunk r8794)
  8800 zmedico  Fix portage_exec namespace.
  8804 zmedico  Synchronize self-reinstallation logic so that emerge will
                always restart itself when dblink.merge() creates temporary
                copies of PORTAGE_{BIN,PYM}_PATH. (trunk r8803)


bin/isolated-functions.sh
  8756 zmedico  Bug #189417 - When ${T}/environment exists, isolate the
                ebuild environment from the calling environment. This makes
                it possible for the build to unset a variable that was
                inherited from the calling environment, and the variable will
                remain unset between phases. (trunk r8752:8755)
  8766 zmedico  Bug #200775 - Save more portage generated environment
                variables that are in environment.bz2 so that they are
                available for use by tools such as epm. (trunk r8765)
  8772 zmedico  Bug #200863 - Don't filter ${KV} since kernel-2.eclass uses
                that variable and we don't want to interfere. (trunk r8770)
  8782 zmedico  * whitelist PREROOTPATH in config.environ() * filter
                PREROOTPATH in save_ebuild_env() (trunk r8781)
  8784 zmedico  When die has been called and ${T}/environment does not exist,
                dump the current environment to ${T}/die.env in case it helps
                for debugging. (trunk r8783)
  8797 zmedico  * whitelist some misc variables from the calling environment
                * blacklist the same variables in save_ebuild_env() so that
                the latest values from the calling environment always
                override those from the ebuild environment (trunk r8796)
  8817 zmedico  For compatibility with cvs.eclass, do not unset CVS_RSH in
                save_ebuild_env() since that variable may be initialized in
                global scope. (trunk r8816)


pym/portage.py
  8740 zmedico  If portage is reinstalling itself, create a temporary copy of
                PORTAGE_BIN_PATH in order to avoid relying on on the new
                versions which may be incompatible. (trunk r8730:8739)
  8742 zmedico  In dblink.treewalk(), make portage unmerge multiple instances
                os sys-apps/portage in the same slot if necessary (needed
                when AUTOCLEAN=no is set).
  8744 zmedico  When portage reinstalls itself, copy both the bin and pym
                directories to a temp dir. Insert the temporary
                PORTAGE_PYM_PATH as the first element of sys.path and
                register an atexit hook to clean up the temporary
                directories. (trunk r8743)
  8748 zmedico  Don't modify sys.path inside dblink.merge() because it
                doesn't seem to help and it triggers import errors for elog
                modules when downgrading to versions of portage that use the
                old namespace. (trunk r8745)
  8750 zmedico  When portage reinstalls itself, pre-load elog modules in
                dblink.merge() since we won't be able to later if they get
                unmerged (happens when namespace changes). (trunk r8749)
  8752 zmedico  Make elog_process() pre-load log modules that it can be
                called just for that purpose. (trunk r8751)
  8756 zmedico  Bug #189417 - When ${T}/environment exists, isolate the
                ebuild environment from the calling environment. This makes
                it possible for the build to unset a variable that was
                inherited from the calling environment, and the variable will
                remain unset between phases. (trunk r8752:8755)
  8760 zmedico  Make config.environ() export PKGDIR to the ebuild environment
                during the "package" phase since it's currently referenced
                there. (trunk r8759)
  8764 zmedico  Add some variables such as TERM to the whitelist of variables
                from the calling environment that are allowed into the ebuild
                environment. (trunk r8763)
  8767 zmedico  Fix broken module loading logic.
  8769 zmedico  sandbox unsets ROOTPATH, so we have to back it up on the
                python side then restore it on the bash side. (trunk r8768)
  8773 zmedico  In doebuild_environment(), fix KV logic so that it never gets
                set during the "depend" phase. Also, use backup_changes() to
                properly cache the result. (trunk r8771)
  8778 zmedico  Update comments about ROOTPATH: sandbox's bashrc sources
                /etc/profile which unsets ROOTPATH, so we have to back it up
                and restore it. (trunk r8775:8777)
  8780 zmedico  * whitelist DISTDIR, PORTDIR, and PORTAGE_TMPDIR,
                PORTAGE_WORKDIR_MODE. * whitelist RPMDIR just for the "rpm"
                phase. (trunk r8779)
  8782 zmedico  * whitelist PREROOTPATH in config.environ() * filter
                PREROOTPATH in save_ebuild_env() (trunk r8781)
  8786 zmedico  In create_trees(), when isolating the environment of the
                ROOT=/ config, use it's env.d keys as a blacklist to make
                env.d override the calling environment. (trunk r8785)
  8788 zmedico  Add missing newline after message. (trunk r8787)
  8790 zmedico  Move duplicate module loading code into a function. (trunk
                r8789)
  8797 zmedico  * whitelist some misc variables from the calling environment
                * blacklist the same variables in save_ebuild_env() so that
                the latest values from the calling environment always
                override those from the ebuild environment (trunk r8796)
  8799 zmedico  For portage.spawn() calls, use a _shell_quote() function to
                quote the path of the binary since. (trunk r8798)
  8802 zmedico  In dblink.treewalk(), tweak the "Safely unmerging
                already-installed instance" logic to make sure that it works
                in all possible cases. (trunk r8801)
  8804 zmedico  Synchronize self-reinstallation logic so that emerge will
                always restart itself when dblink.merge() creates temporary
                copies of PORTAGE_{BIN,PYM}_PATH. (trunk r8803)


=============================================================================
2.1.4_rc4
2007-11-28
branches/2.1.2 revision 8728
=============================================================================


bin/ebuild.sh
  8648 zmedico  Bug #200238 - Make ebuild.sh properly bail out when the
                pkg_info() function doesn't exist. (trunk r8647)
  8650 zmedico  Implement loading of environment.bz2 for the pkg_info()
                phase. Since a temporary directory is required for processing
                of ${T}/environment, and we want a user who's not in the
                portage group to be able to run the pkg_info() phase,
                PORTAGE_TMPDIR is temporarily overridden with a directory
                created by mkdtemp. To make this work, doebuild() creates the
                tempdir and cleans it up in a finally block. (trunk r8649)
  8652 zmedico  * Load environment.bz2 for the pkg_config() phase. * Run the
                "clean" phase if pkg_config() succeeds. (trunk r8651)
  8657 zmedico  Test if ebuild functions are defined before calling them.
                This will be useful if an environment.bz2 has been loaded and
                it has missing functions for some reason. For example, there
                are a lot of default functions that are empty and could
                simply be omitted from the environment. (trunk r8654)
  8658 zmedico  Remove the empty default pkg_setup, src_install, pkg_preinst,
                pkg_postinst, pkg_prerm, pkg_postrm, and pkg_config functions
                since they do nothing more than clutter the environment.
                (trunk r8655)
  8660 zmedico  Allow the pkg_info and pkg_config pre/post hooks to run even
                when the ebuild function is not defined. (trunk r8659)
  8664 zmedico  Remove some unsafe assumptions from preprocess_ebuild_env()
                and note the remaining assumption that save_ebuild_env() is
                not overridden by the environment being loaded. (trunk r8662)
  8665 zmedico  Make preprocess_ebuild_env() reload a known good version of
                save_ebuild_env() in order to avoid making an assumption that
                it hasn't been overridden. (trunk r8663)
  8671 zmedico  * Move filtering of a bunch of portage config variables from
                save_ebuild_env() to config.environ(). * Add EMERGE_FROM to
                the READONLY_PORTAGE_VARS list. (trunk r8670)
  8675 zmedico  unset ECLASS along with the other variables from inherit().
                (trunk r8674)
  8681 zmedico  Automatically try to load environment.bz2 whenever
                "${T}/environment" does not exist, except for "clean" and
                "depend" phases. (trunk r8680)
  8684 zmedico  Bug #200313 - Detect and report when an ebuild phase exits
                unexpectedly. This is type of behavior is known to be
                triggered by things such as failed variable assignments (bug
                #190128) or bad substitution errors (bug #200313). We use a
                EBUILD_EXIT_STATUS_FILE environment variable to specify a
                file that the shell code is supposed to create when it exits
                in a normal manner. If the file does not get created like
                it's supposed to be then we can conclude that the shell has
                exited in some unexpected way. (trunk r8682)
  8687 zmedico  Check if ${EBUILD_EXIT_STATUS_FILE} is empty before
                attempting to use it. (trunk r8686)
  8693 zmedico  * In doebuild(), don't create directories for the "clean" or
                "unmerge". * Fix dyn_clean() to clean the status file and
                return early when appropriate. (trunk r8692)
  8701 zmedico  Make the environment handling code detect errors and die if
                necessary. (trunk r8700)
  8709 zmedico  Bug #200229 - The gimp ebuild defines AA as a local variable.
                In order to accomodate this, create a
                PORTAGE_MUTABLE_FILTERED_VARS list for variables that portage
                sets but doesn't mark readonly. In order to prevent changed
                values from causing unexpcted interference, they are filtered
                out of the environment when it is saved or loaded (any
                mutations do not persist). (trunk r8708)
  8719 zmedico  In the preprocess_ebuild_env() subshell, check for errors and
                return early when necessary. (trunk r8718)


bin/emerge
  8652 zmedico  * Load environment.bz2 for the pkg_config() phase. * Run the
                "clean" phase if pkg_config() succeeds. (trunk r8651)
  8669 zmedico  Bug #124041 - Make emerge show an informative warning message
                when one or more eclasses override eclasses from PORTDIR. The
                warning can be permanently disabled by setting
                PORTAGE_ECLASS_WARNING_ENABLE="0" in /etc/make.conf. (trunk
                r8668)
  8685 zmedico  --buildpkgonly will not merge anything, so it cancels all
                binary package options.
  8727 zmedico  In chk_updated_cfg_files(), avoid scanning for config files
                for paths that aren't writable by the current user. This
                prevents Permission denied errors from being triggered later
                when trying to scan subdirectories that are inaccessible.
                (trunk r8726)


bin/isolated-functions.sh
  8656 zmedico  The qa_call() function and anything before it are portage
                internals that the user will not be interested in. Therefore,
                the stack trace should only show calls that come after
                qa_call(). (trunk r8653)
  8665 zmedico  Make preprocess_ebuild_env() reload a known good version of
                save_ebuild_env() in order to avoid making an assumption that
                it hasn't been overridden. (trunk r8663)
  8667 zmedico  Filter _RC_GET_KV_CACHE from the saved environment. (trunk
                r8666)
  8671 zmedico  * Move filtering of a bunch of portage config variables from
                save_ebuild_env() to config.environ(). * Add EMERGE_FROM to
                the READONLY_PORTAGE_VARS list. (trunk r8670)
  8677 zmedico  Filter more misc environment variables. (trunk r8676)
  8679 zmedico  Make diefunc() show the path of ${T}/environment since it's
                usually in the stack trace and the user is likely to be
                interested in it. (trunk r8678)
  8684 zmedico  Bug #200313 - Detect and report when an ebuild phase exits
                unexpectedly. This is type of behavior is known to be
                triggered by things such as failed variable assignments (bug
                #190128) or bad substitution errors (bug #200313). We use a
                EBUILD_EXIT_STATUS_FILE environment variable to specify a
                file that the shell code is supposed to create when it exits
                in a normal manner. If the file does not get created like
                it's supposed to be then we can conclude that the shell has
                exited in some unexpected way. (trunk r8682)
  8687 zmedico  Check if ${EBUILD_EXIT_STATUS_FILE} is empty before
                attempting to use it. (trunk r8686)


bin/misc-functions.sh
  8644 zmedico  Use `md5` if `md5sum` is not available (useful for FreeBSD
                users). (trunk r8643)
  8684 zmedico  Bug #200313 - Detect and report when an ebuild phase exits
                unexpectedly. This is type of behavior is known to be
                triggered by things such as failed variable assignments (bug
                #190128) or bad substitution errors (bug #200313). We use a
                EBUILD_EXIT_STATUS_FILE environment variable to specify a
                file that the shell code is supposed to create when it exits
                in a normal manner. If the file does not get created like
                it's supposed to be then we can conclude that the shell has
                exited in some unexpected way. (trunk r8682)
  8687 zmedico  Check if ${EBUILD_EXIT_STATUS_FILE} is empty before
                attempting to use it. (trunk r8686)


bin/repoman
  8646 zmedico  Bug #140180 - Never trigger a LICENSE.missing violation for
                old style virtuals since they don't directly install
                anything. (trunk r8645)


pym/eclass_cache.py
  8669 zmedico  Bug #124041 - Make emerge show an informative warning message
                when one or more eclasses override eclasses from PORTDIR. The
                warning can be permanently disabled by setting
                PORTAGE_ECLASS_WARNING_ENABLE="0" in /etc/make.conf. (trunk
                r8668)


pym/getbinpkg.py
  8703 zmedico  Bug #200231 - Make dir_get_metadata() handle an exception
                thrown from dir_get_list() when there's a problem connection
                problem. (trunk r8702)


pym/portage.py
  8650 zmedico  Implement loading of environment.bz2 for the pkg_info()
                phase. Since a temporary directory is required for processing
                of ${T}/environment, and we want a user who's not in the
                portage group to be able to run the pkg_info() phase,
                PORTAGE_TMPDIR is temporarily overridden with a directory
                created by mkdtemp. To make this work, doebuild() creates the
                tempdir and cleans it up in a finally block. (trunk r8649)
  8669 zmedico  Bug #124041 - Make emerge show an informative warning message
                when one or more eclasses override eclasses from PORTDIR. The
                warning can be permanently disabled by setting
                PORTAGE_ECLASS_WARNING_ENABLE="0" in /etc/make.conf. (trunk
                r8668)
  8671 zmedico  * Move filtering of a bunch of portage config variables from
                save_ebuild_env() to config.environ(). * Add EMERGE_FROM to
                the READONLY_PORTAGE_VARS list. (trunk r8670)
  8673 zmedico  Add NOCONFMEM to config._environ_filter. (trunk r8672)
  8677 zmedico  Filter more misc environment variables. (trunk r8676)
  8684 zmedico  Bug #200313 - Detect and report when an ebuild phase exits
                unexpectedly. This is type of behavior is known to be
                triggered by things such as failed variable assignments (bug
                #190128) or bad substitution errors (bug #200313). We use a
                EBUILD_EXIT_STATUS_FILE environment variable to specify a
                file that the shell code is supposed to create when it exits
                in a normal manner. If the file does not get created like
                it's supposed to be then we can conclude that the shell has
                exited in some unexpected way. (trunk r8682)
  8689 zmedico  Implement config.pop(). (trunk r8688)
  8691 zmedico  Make config.pop() properly call config.modifying(). (trunk
                r8690)
  8693 zmedico  * In doebuild(), don't create directories for the "clean" or
                "unmerge". * Fix dyn_clean() to clean the status file and
                return early when appropriate. (trunk r8692)
  8695 zmedico  Fix grammar. (trunk r8694)
  8697 zmedico  Make doebuild skip directory creation for the "cleanrm"
                command. (trunk r8696)
  8699 zmedico  Make doebuild() use EBUILD_EXIT_STATUS_FILE sanity checks for
                the extra misc-functions.sh preinst/postinst shell code.
                (trunk r8698)
  8705 zmedico  Fix config.pop() so that is will properly raise a KeyError.
                (trunk r8704)
  8707 zmedico  Don't forget to unlink ${EBUILD_EXIT_STATUS_FILE} before each
                phase. (trunk r8706)
  8711 zmedico  Fix logic wrt exit_status_check and elog_process in
                doebuild(). (trunk r8710)
  8713 zmedico  Remove a redundant os.EX_OK check that exit_status_check()
                already handles internally. (trunk r8712)
  8715 zmedico  portage upgrade or downgrade invalidates
                EBUILD_EXIT_STATUS_FILE sanity checks since ebuild.sh portage
                version may differ from the current instance that is running
                in python. (trunk r8714)
  8717 zmedico  Just use ${PN} instead of catpkgsplit().
  8722 zmedico  Don't export PORTAGE_PACKAGE_EMPTY_ABORT to the ebuild
                environment. (trunk r8721).
  8723 zmedico  Add a sanity check in dblink.treewalk() so that a broken
                ebuild that doesn't install any files will not be able to
                replace a package in the same slot that really installs
                files. This check can be bypassed by manually unmerging the
                old package or by setting PORTAGE_PACKAGE_EMPTY_ABORT="0" in
                /etc/make.conf. (trunk r8720)
  8725 zmedico  Disable PORTAGE_PACKAGE_EMPTY_ABORT by default since the
                scrollkeeper-9999 upgrade will trigger a false positive.
                Thanks to leio for reporting. (trunk r8724)
  8728 zmedico  Condense duplicate eerror log generation code into a single
                _eerror() function.


=============================================================================
2.1.4_rc3
2007-11-23
branches/2.1.2 revision 8641
=============================================================================


bin/ebuild.sh
  8631 zmedico  Add support for persistence of colon separated
                SANDBOX_{DENY,READ,PREDICT,WRITE} variables between phases so
                things like the global scope addpredict() call in qt3.eclass
                will continue to work. (trunk r8628)
  8632 zmedico  Filter _E_DOCDESTTREE_ and _E_EXEDESTTREE_ from
                environment.bz2. (trunk r8629)
  8633 zmedico  In the grep expression that's generated in
                filter_readonly_variables(), condense redundant identical
                expressions into a single one. (trunk r8630)
  8635 zmedico  Fix the var_grep variable in filter_readonly_variables() so
                that it's properly local. (trunk r8634)
  8637 zmedico  Unconditionally filter some of the SANDBOX_* variables from
                the environment in order to avoid potential interference
                problems. For example, having an invalid value for
                SANDBOX_LOG prevents the sandbox from killing the ebuild when
                a violation occurs. (trunk r8636)
  8641 zmedico  Fix quoting to work properly with eval. (trunk r8640)


pym/portage.py
  8639 zmedico  When binarytree.populate() finds missing metadata, specify
                which keys are missing so that the user has a clue about what
                is wrong. (trunk r8638).


=============================================================================
2.1.4_rc2
2007-11-23
branches/2.1.2 revision 8624
=============================================================================


bin/ebuild.sh
  8618 zmedico  For compatibility with previous behavior, so the bashrc
                sourcing after the ebuild environment is fully loaded. (trunk
                r8617)
  8620 zmedico  unset x to avoid global env pollution. (trunk r8619)
  8622 zmedico  Try again to make bashrc sourcing compatible with previous
                behavior. The bashrcs get an opportunity to set aliases that
                will be expanded during sourcing of ebuilds and eclasses.
                (trunk r8621)
  8624 zmedico  Make save_ebuild_env() filter the new source_all_bashrcs()
                function from the environment. (trunk r8623)


=============================================================================
2.1.4_rc1
2007-11-22
branches/2.1.2 revision 8616
=============================================================================


bin/dohtml
man/ebuild.5
  8600 zmedico  Document dohtml -p. Thanks to robbat2 for reporting. (trunk
                r8599)


bin/ebuild.sh
  8553 zmedico  Make diefunc() clean up QA_INTERCEPTORS in case it is called
                from inherit() since sed called below. (trunk r8490)
  8560 zmedico  * Replace references to deprecated ${IMAGE} with equivalent
                ${D}. * Remove redundant trailing slashes and fix quoting.
                (trunk r8501)
  8562 zmedico  Fix quoting for `source ${EBUILD}`. (trunk r8503)
  8564 zmedico  Set IMAGE for minimal backward compatibility with overlays or
                user's bashrc, but don't export it. (trunk r8511:8513)
  8568 zmedico  Disable logging and ${T}/environment saving during the
                pkg_info() phase. (trunk r8526)
  8570 zmedico  Sync with ebuild.sh and isolated-functions.sh as of trunk
                r8569. This includes all the environment filtering
                enhancements that solve bugs #46223 and #190128.
  8574 zmedico  Clean up some local variables that are needlessly saved in
                the environment. (trunk r8573)
  8576 zmedico  Move environment saving from dyn_compile() to dyn_install()
                so that state from src_install() is saved. (trunk r8575)
  8582 zmedico  * Make save_ebuild_env() filter some more variables. * Make
                dyn_install() filter S when it's no longer needed. (trunk
                r8581)
  8584 zmedico  In dyn_install(), don't cleanse S from the global
                environment, in case the user wants to repeat the phase (like
                with FEATURES=noauto and the ebuild command). Only cleanse it
                from environment.bz2. (trunk r8583)
  8586 zmedico  Replace usage of the "myarg" global variable with the
                equivalent readonly EBUILD_SH_ARGS variable. (trunk r8585)
  8596 zmedico  Filter HOSTTYPE, MACHTYPE, and OSTYPE vars that are set by
                bash. (trunk r8595).
  8602 zmedico  When portage reinstalls itself, during inst/rm phases, the
                environment may have been saved by a different version of
                ebuild.sh, so it can't trusted that it's been properly
                filtered. Therefore, always preprocess the environment when
                ${PN} == portage. (trunk r8601)
  8604 zmedico  Don't call preprocess_ebuild_env() unless EBUILD_SH_ARGS is
                set since otherwise it can interfere with the environment for
                things like the "package" phase. (trunk r8603)
  8606 zmedico  Generalize the sed expression in filter_readonly_variables()
                so that it will work with things like 'declare -xr' as well
                as 'declare -rx'. (trunk r8605)
  8608 zmedico  Allow any errors from save_ebuild_env() to go to stderr
                instead of directing them to /dev/null. (trunk r8607)
  8612 zmedico  Make the sed expression in filter_readonly_variables() handle
                '^declare -r ' by simply removing it. (trunk r8611)


bin/emaint
  8554 zmedico  Bug #197797 - Set umask to 022 so that created files (such as
                the world file) have sane permissions.


bin/emerge
  8544 zmedico  For unsatisfied dependencies, shorten the per-package EAPI
                mask output and show an informative message whenever an EAPI
                mask is encountered. (trunk r8457)
  8555 zmedico  Fix blocker handling to properly handle SLOT atoms in
                depgraph.validate_blockers(). (trunk r8495)
  8556 zmedico  Make the slot collision display show all collisions instead
                of just the first one. (trunk r8498)
  8557 zmedico  In the slot collision display, show a maximum of 3 parents
                for each package in order to avoid flooding the display.
                (trunk r8500)
  8580 zmedico  Generate an eerror elog message when an ebuild prerm or
                postrm phase fails. (trunk r8577)
  8594 zmedico  In depgraph.altlist(), measure the bias of circular RDEPEND
                <-> PDEPEND relationships and use it to optimize merge order.
                (trunk r8593)


bin/isolated-functions.sh
  8570 zmedico  Sync with ebuild.sh and isolated-functions.sh as of trunk
                r8569. This includes all the environment filtering
                enhancements that solve bugs #46223 and #190128.
  8579 zmedico  Fix the diefunc overlay message so that it doesn't trigger
                falsely in prerm or postrm. (trunk r8578)


bin/misc-functions.sh
  8560 zmedico  * Replace references to deprecated ${IMAGE} with equivalent
                ${D}. * Remove redundant trailing slashes and fix quoting.
                (trunk r8501)
  8598 zmedico  Make dyn_package() create a /var/db/pkg/*/*/BINPKGMD5 entries
                so that packages installed via --buildpkg have a BINPKGMD5
                entry matching the package built. (trunk r8597)
  8614 zmedico  Use %% instead of % parameter expansion where appropriate for
                md5sum output. (trunk r8613)


bin/quickpkg
  8546 zmedico  Bug #198492 - Make quickpkg create $PKGDIR if it doesn't
                already exist. (trunk r8464)


bin/repoman
  8552 zmedico  Convert all the checks in repoman.checks to use a new
                LineCheck interface that takes a single line as an argument.
                This has at least a few of benefits: * Eliminates lots of
                redundant code * Error messages are ordered by line number
                across all checks The performance is slightly worse due to
                the increased number of method calls, but it's not really
                noticeable in comparison to the time consumed by dependency
                checks. Thanks to Petteri R?\195?\164ty
                <betelgeuse@gentoo.org> for the initial patch which I only
                made a few minor modifications to. (trunk r8483) Make the
                EbuildQuote.missing_quotes regex accept single quotes where
                it accepts double quotes in order to eliminate some false
                positives. Thanks to Krzysiek Pawlik <nelchael@gentoo.org>
                for reporting. (trunk r8485)
  8558 zmedico  Make 'full' the default mode, since 'scan' can be annoying
                when it omits relevant info. (trunk r8499)


man/repoman.1
  8558 zmedico  Make 'full' the default mode, since 'scan' can be annoying
                when it omits relevant info. (trunk r8499)


pym/getbinpkg.py
  8545 zmedico  It is not cool and/or helpfull to see an HTML dump of some
                page in case it is not what is expected (like a 404). (trunk
                r8462)
  8561 zmedico  Make dir_get_metadata() return early if the current user does
                not have write access to /var/cache/edb. Thanks to Cardoe for
                reporting. (trunk r8502)


pym/output.py
  8548 zmedico  Tweak EOutput.term_columns calculation for TERM="dumb" so
                that it behaves like TERM="cons25" currently does. Thanks to
                Ulrich Mueller <ulm@gentoo.org> for the patch. (trunk r8468)


pym/portage.py
  8522 zmedico  Synchronize vardbapi._aux_cache_keys with trunk. It's
                important at least to include RESTRICT since the depgraph
                uses that one and therefore it should be cached to improve
                performance. The others aren't strictly necessary at this
                time, but it's good to be in sync with trunk.
  8544 zmedico  For unsatisfied dependencies, shorten the per-package EAPI
                mask output and show an informative message whenever an EAPI
                mask is encountered. (trunk r8457)
  8547 zmedico  Don't do: Calculating dependencies |Fetching binary packages
                info... but instead put "Fetching ..." on it's own line.
                (trunk r8466)
  8549 zmedico  make.globals should not be relative to config_root because it
                only contains constants. (trunk r8471)
  8550 zmedico  Bug #198491 - Disable termios.OPOST post-processing of output
                on the slave pty file descriptor since otherwise weird things
                like \n -> \r\n transformations may occur. Thanks to Ulrich
                Mueller <ulm@gentoo.org> for this patch. (trunk r8473)
  8563 zmedico  Bug #199311 - Make dblink.getcontents() show the path of the
                CONTENTS file when any kind of parse error occurs. (trunk
                r8511)
  8564 zmedico  Set IMAGE for minimal backward compatibility with overlays or
                user's bashrc, but don't export it. (trunk r8511:8513)
  8565 zmedico  Clean up vardbapi.counter_tick_core() and replace shell code
                with pure python.
  8567 zmedico  Fix PROFILE_ONLY_VARIABLES handling in the config constructor
                so that variables are appropriately filtered from
                "backupenv", since otherwise they can leak in from there.
                (trunk r8524)
  8568 zmedico  Disable logging and ${T}/environment saving during the
                pkg_info() phase. (trunk r8526)
  8571 zmedico  When ROOT != "/" we only want overrides from the calling
                environment to apply to the config that's associated with
                ROOT != "/", so we wipe out the "backupenv" for the config
                that is associated with ROOT == "/" and regenerate it's
                incrementals. Thanks to solar for the suggestion. (trunk
                r8539)
  8572 zmedico  Fix an AttributeError for config.backupenv.
  8580 zmedico  Generate an eerror elog message when an ebuild prerm or
                postrm phase fails. (trunk r8577)
  8610 zmedico  When filtering the backupenv in create_trees(), be more
                selective and ensure that special variables that come from
                the config constructor are preserved. (trunk r8609)


pym/portage_const.py
  8566 zmedico  Bug #198398 - Enable Manifest generation when there are no
                hash functions available for types such as RMD160. Now it's
                possible to generate a Manifest when python-2.5 is built
                without ssl support. MANIFEST1_REQUIRED_HASH and
                MANIFEST2_REQUIRED_HASH are the only two functions that are
                strictly required now (MD5 and SHA1). (trunk r8521)


pym/portage_manifest.py
  8566 zmedico  Bug #198398 - Enable Manifest generation when there are no
                hash functions available for types such as RMD160. Now it's
                possible to generate a Manifest when python-2.5 is built
                without ssl support. MANIFEST1_REQUIRED_HASH and
                MANIFEST2_REQUIRED_HASH are the only two functions that are
                strictly required now (MD5 and SHA1). (trunk r8521)
  8616 zmedico  Sort hashes for predictable output from
                Manifest._createManifestEntries(). (trunk r8615)


tests/portage/test_spawn.py
  8551 zmedico  Remove the workaround for \n -> \r\n transformations in
                SpawnTestCase.testLogfile() since the problem is solved by
                the patch from bug #198491. (trunk r8474)


=============================================================================
2.1.3.19
2007-11-06
branches/2.1.2 revision 8448
=============================================================================


bin/ebuild.sh
  8443 zmedico  Go ahead and exempt selected profile-specific USE_EXPAND
                flags from IUSE QA Notices since we are planning to make
                these particular flags into implicit members of IUSE. We can
                make this extensible later, but for now we just want to
                eliminate some useless QA Notices (a subset of bug #70648).
                We're not exempting any non profile- specific USE_EXPAND
                flags here. For non profile-specific flags, we intend to
                implement an IUSE syntax extension (bug #133327). (trunk
                r8442)


bin/emerge
  8440 zmedico  Allow multislot packages to be added to the world file via
                --noreplace. Having these atoms in the world file will
                trigger recommendations to run emaint in some cases, like
                when running `emerge -e world`. The atoms need to be in the
                world file to prevent multislot packages from being removed
                by --depclean though. (trunk r8436) Bug #198129 - Prevent
                SLOT atoms like sys-devel/binutils:0 from being
                inappropriately recorded in the world file when USE=multislot
                is enabled. (trunk r8437:8439)
  8441 zmedico  Remove the installed package masking hack from bug #149816
                since installed packages should be able to satisfy
                dependencies whether they are masked or not (matches current
                trunk behavior).
  8446 zmedico  Simplify and fix bugs in is_valid_package_atom(). (trunk
                r8445)


bin/repoman
  8430 zmedico  Port the EbuildNestedDie check from trunk since the python
                version is much faster than the old one that uses grep.
  8448 zmedico  Remove the usage.obsolete "KEYWORDS contain -*" warning since
                people are using -* to indicate that a package should not be
                tried on archs other than those for which it already has
                KEYWORDS.


=============================================================================
2.1.3.18
2007-11-04
branches/2.1.2 revision 8427
=============================================================================


bin/etc-update
  8406 zmedico  if mode=1 and `dialog` is not usable, abort #197990 by
                DominikBuerkle (trunk r8402)
  8407 zmedico  Call die() so that the $TMP directory is always properly
                cleaned up. (trunk r8405)


bin/repoman
  8415 zmedico  Generate a usage.obsolete warning whenever -* is found in
                KEYWORDS. (trunk r8414)


pym/portage.py
  8386 zmedico  Synchronize getmaskingreason() and getmaskingstatus() with
                trunk so that behavior is the same for things like SLOT deps
                and -* in package.keywords.
  8391 zmedico  Bug #197932 - Make dbapi._cpv_sort_ascending() preserve
                explicit -r0 for consistency in findname and aux_get calls.
                (trunk r8390)
  8393 zmedico  Remove redundant code from previous commit. (trunk r8392)
  8394 zmedico  In portage.fetch(), condense digest check output to a single
                line for all digests. (trunk r8385)
  8395 zmedico  Revert to backward compatible masking behavior with respect
                to -* in KEYWORDS and package.keywords since -* behavior
                changes are not essential at this time and a change in this
                long standing behavior has potential to confuse lots of
                users.
  8404 zmedico  Bug #197965 - When fetch() encounters a checksum failure,
                look for an identical file from a previous checksum failure
                in order to avoid consuming unnecessary disk space with
                duplicate files. (trunk r8401) Bug #197965 - Make fetch()
                bail out after 5 checksum failures for a particular file
                since downloading the same file repeatedly from every single
                available mirror is a waste of bandwidth and time. (trunk
                r8403)
  8409 zmedico  Bug #197797 - Do not actively clear o+rx permission bits on
                the /var/lib/portage directory. Only clear the o+w bits. This
                allows users who aren't in the portage group to have read
                access to the world file by default, but administrators can
                explicitly chmod o-rx that directory if necessary, and
                portage will leave those bits alone. This makes the
                permission settings in dblink.treewalk() consistent with
                those that are already defined in config._init_dirs(). (trunk
                r8408)
  8411 zmedico  For sanity, pass an actual list of keys into aux_get()
                instead of iterating over a set that happens to be mutable
                (though it remains constant in practice). (trunk r8410)
  8413 zmedico  Make fetch() behave like the ebuild has RESTRICT="primaryuri"
                after 2 checksum failures for a fetched file. This should
                increase the probability of fetching the correct file before
                the maximum number of tries is reached. (trunk r8412)
  8417 zmedico  In fetch(), replace checksum_failure_counts dict with single
                int counter. (trunk r8416)
  8419 zmedico  Clean up ACCEPT_KEYWORDS incremental stacking logic and fix
                some minor inconsistencies. (trunk r8418)
  8422 zmedico  In portdbapi.cp_list(), validate the ebuild name to ensure
                that it matches the name of the package. (trunk r8421)
  8425 zmedico  Fix indentation typo.


pym/portage_manifest.py
  8424 zmedico  Make Manifest.create() do some basic validation of ebuild
                file names like portdbapi.cp_list() would do. (trunk r8423)
  8427 zmedico  Make exception strings more informative. (trunk r8426)


pym/portage_update.py
  8398 zmedico  Fix update_config_files() so that it uses update_dbentry() to
                handle update commands since that already supports slotmove
                commands for SLOT atoms. (trunk r8397)


=============================================================================
2.1.3.17
2007-11-02
branches/2.1.2 revision 8384
=============================================================================


bin/ebuild.sh
  8375 zmedico  Fix diefunc() so that it doesn't report that the ebuild is
                from an overlay when EMERGE_FROM == binary. (trunk r8349)


bin/emerge
  8362 zmedico  Make world atoms non-greedy for SLOTs in action_depclean()
                and depgraph.xcreate() since users can simply add SLOT atoms
                to world for any specific SLOTs that they want to keep.
  8371 zmedico  Optimize stdout_spinner.update() methods so that they don't
                waste cpu time by flushing output to the tty too frequently.
                (trunk r8332)
  8372 zmedico  Remove a few unused depgraph attributes. (trunk r8345)
  8378 zmedico  Optimize merge order to try and select nodes that only have
                unsatisfied PDEPEND slightly earlier. This solves a problem
                with xorg-server being merged too early during an all binary
                install (since DEPEND is ignored for binaries), triggering
                built_with_use() calls to fail as reported in bug #189966.
                Since DEPEND is discarded in cases like this, it is important
                to exploit the difference between PDEPEND and RDEPEND in
                order to optimize merge order. Without this optimization, the
                merge order is technically correct, but not as optimal as it
                should be and has lots of potential to trigger issues with
                built_with_use() or similar things that require better
                optimization of merge order. (trunk r8357:8359) Fix
                ignore_priority logic in depgraph.altlist() in order to
                handle some cases where it was possible for nodes to be
                selected without their PDEPENDs being propperly added to the
                asap_nodes list. (trunk r8360)


bin/repoman
  8368 zmedico  Optimize repoman to share portdbapi.cp_list() results between
                all profiles since those results never change. The cached
                results also propagate to the xmatch match-all when
                appropriate (old-style virtuals are excluded since they are
                profile dependent). (trunk r8313)
  8369 zmedico  Optimize repoman visibility checks to access as little
                metadata as possible. (improves performance especially in
                cases where metadata needs to be generated). This works by
                starting at the lowest version since that's most likely to
                have keywords and it returns as soon as the first visible
                package is found. (trunk r8309)
  8376 zmedico  Add a check for redundant cd "${S}" statements on the first
                line of src_(compile|install|test) ebuild methods. Thanks to
                Petteri R?\195?\164ty <betelgeuse@gentoo.org> for this patch.
                (trunk r8351 and r8353)
  8377 zmedico  Remove an extra \$ from the EbuildQuote.var_reference regex
                so that it will properly match things like variable
                references without braces, like $S. (trunk r8354) Properly
                escape { and } characters in regular expressions even though
                it seems to work either way. (trunk r8355)
  8384 zmedico  Sort scanlist and ebuildlist to ensure that repoman always
                processes packages in a predictable order. (trunk r8383)


man/make.conf.5
  8374 zmedico  Update the FEATURES=mirror docs to more accurately reflect
                behavior. (trunk r8348) Bug #197594 - Document
                FEATURES="lmirror". (trunk r8373)


man/portage.5
pym/portage_const.py
  8361 zmedico  protect variables specified in PROFILE_ONLY_VARIABLES from
                being set by the user (trunk r8251:8253, r8255, and r8259)


pym/output.py
  8363 zmedico  If the title string is too big then xtermTitle() can
                misbehave by causing the terminal to echo some of the
                characters and generate a "beep" sound. (trunk r8289)


pym/portage.py
  8361 zmedico  protect variables specified in PROFILE_ONLY_VARIABLES from
                being set by the user (trunk r8251:8253, r8255, and r8259)
  8364 zmedico  Rewrite the dblink.getcontents() code to use str.split(" ")
                for splitting CONTENTS lines so that even file paths that end
                with spaces can be handled. This patch makes the fix for bug
                #196836#c6 more complete. Some code for parsing old malformed
                symlink entries has been removed sinces it's probably not
                useful or worth maintaining anymore. (trunk r8337)
  8365 zmedico  Factor the KEYWORDS masking logic out of portdbapi.visible()
                and move it to config._getMissingEeywords(). (trunk r7997)
                Factor package.mask and profile masking logic out of
                portdbapi.visible() and move it to config._getMaskAtom() and
                _getProfileMaskAtom(). (trunk r8001) These are prerequisites
                for important repoman optimizations that will be ported from
                trunk.
  8367 zmedico  Sort all dbapi.cp_list() results in ascending order and cache
                the results when possible. The order is preserved in
                dbapi.match() so those results are also sorted. (trunk r8329)
  8369 zmedico  Optimize repoman visibility checks to access as little
                metadata as possible. (improves performance especially in
                cases where metadata needs to be generated). This works by
                starting at the lowest version since that's most likely to
                have keywords and it returns as soon as the first visible
                package is found. (trunk r8309)
  8370 zmedico  In portage.fetch(), condense digest check output to a single
                line for all digests. (trunk r8316)
  8380 zmedico  Return early from config._getMaskAtom() as soon as a matching
                unmask atom is found. (trunk r8379)
  8382 zmedico  Make portdbapi.gvisible() use portdbapi._aux_cache_keys for
                metadata pulls. (trunk r8381)


=============================================================================
2.1.3.16
2007-10-22
branches/2.1.2 revision 8249
=============================================================================


bin/ebuild.sh
  8231 zmedico  Remove slashes that cause problems when unpacking files with
                relative paths (bug #196565) (trunk r8200)


bin/emerge
  8229 zmedico  In depgraph.create(), don't ignore direct circular
                dependencies anymore since altlist() is able to handle it
                properly in cases where the dependency is satisfied. If the
                dep is unsatisfied then it can not be ignored. (trunk r8225)
                Allow the depgraph to add old-style virtual providers but
                prefer any pre-existing providers over new ones that are
                added. This prevents things like ghc-6.4.2 from selecting
                itself to satisfy it's own virtual/ghc dependency (creating a
                circular dependency) in cases where it should select the
                default ghc-bin provider. (trunk r8185:8187)
  8232 zmedico  Fix portage_exception namespace typo.
  8234 zmedico  In depgraph.create(), if a direct circular dependency is not
                an unsatisfied buildtime dependency then drop it here since
                otherwise it can skew the merge order calculation in an
                unwanted way. (trunk r8233)


bin/portageq
  8196 zmedico  Bug #196537 - Make portageq check that the <root> parameter
                is an existing directory and exit gracefully if not. (trunk
                r8195)
  8244 zmedico  Fix the version Id tag. (trunk r8243)


bin/repoman
  8237 zmedico  Bug #196652 - Check for useless ABOUT-NLS|COPYING|LICENSE
                files in dodoc arguments. (trunk r8236)


man/emerge.1
man/make.conf.5
pym/emergehelp.py
  8230 zmedico  Bug #196435 - Add some more references to quickpkg(1) since
                sometimes people don't realize that it exists. (trunk r8185)


pym/cache/util.py
  8223 zmedico  Bug #196680 - Handle a CacheError inside mirror_cache() when
                reading from the source cache. (trunk r8222)


pym/portage.py
  8229 zmedico  In depgraph.create(), don't ignore direct circular
                dependencies anymore since altlist() is able to handle it
                properly in cases where the dependency is satisfied. If the
                dep is unsatisfied then it can not be ignored. (trunk r8225)
                Allow the depgraph to add old-style virtual providers but
                prefer any pre-existing providers over new ones that are
                added. This prevents things like ghc-6.4.2 from selecting
                itself to satisfy it's own virtual/ghc dependency (creating a
                circular dependency) in cases where it should select the
                default ghc-bin provider. (trunk r8185:8187)
  8239 zmedico  Remove a redundant self.treeVirtuals deepcopy from the config
                constructor. (trunk r8238)
  8241 zmedico  Fix config.setinst() to return early when the given package
                already provides the virtual. (trunk r8240)
  8249 zmedico  Don't show the "checking files for package collisions"
                message when --quiet is enabled. (trunk r8248)


=============================================================================
2.1.3.15
2007-10-18
branches/2.1.2 revision 8175
=============================================================================


bin/portageq
  8159 zmedico  Bug #196043 - Implement a `portageq owners <root>
                [<filename>]+` command that is suitable for identifying all
                packages that own one or more files when a file collision has
                occurred. This uses dblink.isowner() so that the query works
                properly even when paths are ambiguous due to symlinked
                directories. (trunk r8154)


pym/portage.py
  8156 zmedico  In dblink.getcontents(), use a regular expression to detect
                when path normalization is required. Also, only join with
                ${ROOT} when necessary. This allows unnecessary normpath and
                join calls to be optimized away in the general case, reducing
                the cpu time for `equery belongs <filename>` by about 50%.
                (trunk r8150:8152)
  8157 zmedico  Fix a typo.
  8158 zmedico  Optimize dblink.isowner() to use fewer stat calls by only
                collecting stat results for parent directories. This provides
                equivalent accuracy to the previous approach but will perform
                much better when used to scan all installed packages for
                owners in the event of a file collision. (trunk r8153)
  8160 zmedico  Bug #196043 - Update the file collision ewarn notice to try
                and clarify the cases when a bug should NOT be filed. Also,
                recommend the new `portageq owners / <filename>` command
                since it works properly even when paths are ambiguous due to
                symlinked directories. (trunk r8155)
  8162 zmedico  Add missing "to" to fix grammar. (trunk r8161)
  8164 zmedico  Always unlink the .installed flag prior to merge since
                portage.movefile() never leaves intact. (trunk r6986)
  8165 zmedico  Bug #196043 - Unify the ouput handling for file collisions so
                that similar eerror messages are generated whether or not
                collision-protect is enabled. (trunk r8163)
  8167 zmedico  Fix the normalize_needed regex to properly match // anywhere
                in the path. Also add support for detection of . or .. where
                appropriate. (trunk r8166)
  8169 zmedico  Fix collision-protect so that it properly cancels the preinst
                phase like it used to. (trunk r8168)
  8171 zmedico  Adjust quote usage in collision-protect eerror output. (trunk
                r8170)
  8173 zmedico  Bug #195375 - Make dblink.treewalk() read inforoot/SLOT since
                it differs from the expected SLOT value when when
                USE=multislot is enabled. A warning message will be shown if
                the slot differs and --quiet mode is not enabled. (trunk
                r8172)
  8175 zmedico  Handle EnvironmentError instead of OSError since open()
                actually raises IOError. Also, treat a missing SLOT file as
                SLOT="" since it is currently possible to install an ebuild
                with an undefined SLOT even though repoman generates a
                SLOT.missing error with such an ebuild. (trunk r8174)


=============================================================================
2.1.3.14
2007-10-15
branches/2.1.2 revision 8141
=============================================================================


bin/etc-update
  8134 zmedico  Bug #195949 - Use a different diff_command sanity check when
                using_editor is true. (trunk r8129)
  8135 zmedico  Bug #195949 - Add one more using_editor conditional for
                diff_command. (trunk r8130)


bin/repoman
  8132 zmedico  Sort the modes in the repoman --help output. (trunk r8125)
  8141 zmedico  Fix --help summary so that "commit" mode shows. (trunk r8140)


cnf/etc-update.conf
  8137 zmedico  Update NOTE_2 to document proper use of the using_editor
                config option. (trunk r8136)
  8139 zmedico  Update emacs and vim docs to reference NOTE_2. (trunk r8138)


man/repoman.1
  8133 zmedico  Document the "manifest" mode. (trunk r8126)


pym/portage.py
  8131 zmedico  Remove the checks for files in symlinked directories from the
                collision protect code since it hasn't been needed ever since
                the followSymlinks parameter was disabled for
                portage.listdir() calls in order to prevent infinite
                recursion loops. (trunk r8120:8124)


=============================================================================
2.1.3.13
2007-10-13
branches/2.1.2 revision 8120
=============================================================================


bin/dohtml
  8057 zmedico  let dohtml handle weird filenames, patch by TGL (bug #171272)
                (trunk r7983)


bin/ebuild.sh
  8061 zmedico  add support for .lzma / .tar.lzma to unpack (trunk r7991)


bin/emerge
  8070 zmedico  Bug #195370 - Prevent bogus upgrade display when a new-style
                virtual is first installed and it replaces an old-style
                virtual. (trunk r8039)
  8072 zmedico  Raise a PackageNotFound exception instead of a ValueError in
                order to avoid ambiguity if an unexpected ValueError occurs.
                (trunk r8043)
  8094 zmedico  Bug #195370 - Filter some more bogus matches due to old-style
                virtuals. (trunk r8093)


bin/etc-update
  8062 zmedico  unify diff_command handling (trunk r7992)
  8063 zmedico  add standard --help/--version options (trunk r7993)
  8064 zmedico  add --debug option and display a message about skipping
                non-files so we dont get confusing loops where portage claims
                there are things to update but etc-update claims there are
                not (trunk r7994)


bin/misc-functions.sh
  8060 zmedico  add QA check for .pyc/.pyo files in /usr/share (trunk r7990)
  8118 zmedico  Avoid an error message from find when "${D}"/usr/share does
                not exist. (trunk r8117)


bin/repoman
  8065 zmedico  Move the "commit" mode manifest generation earlier in order
                to avoid digest verification issues when FEATURES="strict" is
                enabled. (trunk r7994:7996)


cnf/make.globals
  8056 zmedico  Add @localhost to default PORTAGE_ELOG_MAILFROM to account
                for mail servers that don't accept mails without a domainname
                (trunk r7982)


man/emerge.1
  8071 zmedico  Remove ambiguous "you should edit this file" warning. (trunk
                r8040)


pym/elog_modules/mod_mail.py
  8103 zmedico  Handle the PortageException that can be raised from
                portage.mail.send_mail(). (trunk r8102)


pym/elog_modules/mod_mail_summary.py
pym/portage_mail.py
  8059 zmedico  Handle Exceptions in mod_mail_summary.finalize() and check if
                the server actually supports TLS, bug #183808 (trunk r7984
                and r8058)


pym/portage.py
  8066 zmedico  Optimize away a match_from_list() call inside
                portdbapi.xmatch("match-all") when given atom has no operator
                or version. Also, make cp_list() use the xmatch("match-all")
                cache when possible. (trunk r8008)
  8067 zmedico  Remove a redundant os.access() call in portdbapi.aux_get()
                and handle the potential OSError instead. (trunk r8009)
  8068 zmedico  Properly exclude old-style virtuals from the
                portdbapi.cp_list() cache. (trunk r8010)
  8069 zmedico  Make portdbapi.aux_get() cache more often. (trunk r8011)
  8088 zmedico  Bug #195527 - Unconditionally detect file collisions and log
                them as eerror messages via elog. This will allow us to
                collect more file collision data but it won't be quite as
                annoying as enabling collision-protect by default would be.
                (trunk r8085:8087)
  8090 zmedico  s:this package wants:this package will: (trunk r8089)
  8092 zmedico  Remove a redundant call to elog_process(). (trunk r8091)
  8099 zmedico  In dblink.treewalk(), use os.walk() instead of
                portage.listdir() in order to avoid cacheddir() bloat when
                listing the files to be merged from ${D}. Remove a chdir()
                call that's no longer needed for the collision-protect
                symlink code. (trunk r8095:8098)
  8101 zmedico  Make the file collision eerror message less verbose when in
                --quiet mode. (trunk r8100)
  8116 zmedico  In the file collision eerror output, don't colorize the file
                paths since the escape codes look ugly in the log. (trunk
                r8113:8115)
  8120 zmedico  In some cases, openpty can be slow when it fails. Therefore,
                stop trying to use it after the first failure. (trunk r8119)


=============================================================================
2.1.3.12
2007-10-05
branches/2.1.2 revision 7976
=============================================================================


bin/dispatch-conf
  7920 zmedico  Bug #194095 - Validate dispatch-conf input in order to
                prevent spurious input characters from being interpreted as
                user input (which can be quite confusing and gives an "out of
                control" feeling). (trunk r7877)
  7926 zmedico  Bug #142508 - Clear the screen each time before calling the
                "diff" command so that any remnants of the previous config
                are now shown with the current one. (trunk r7893)


bin/ebuild
  7940 zmedico  Handle UnsupportedAPIException when running the ebuild(1)
                command. (trunk r7918)


bin/ebuild.sh
  7906 zmedico  Bug #179380 - Make the default src_compile() support
                ECONF_SOURCE if EAPI > 0. (trunk r6567)
  7921 zmedico  Fix quoting as reported by Drac in bug 194169 (trunk
                r7877:7879)
  7923 zmedico  Remove redundant trailing slashes from ${D}. (trunk r7890)


bin/emerge
  7927 zmedico  Bug #194398 - Do not log "exiting successfully" in emerge.log
                unless the status really is successful. Otherwise, log
                "exiting unsuccessfully". Thanks to David Watzke. (trunk
                r7900)
  7935 zmedico  Add EAPI masking support for binary packages. (trunk r7913)


bin/etc-update
  7922 zmedico  Initialize PORTAGE_TMPDIR before using it. (trunk r7887)
  7930 zmedico  this isnt part of gentoolkit anymore (trunk r7907)
  7931 zmedico  no need to use "function" when defining a function (trunk
                r7908)


bin/isolated-functions.sh
  7921 zmedico  Fix quoting as reported by Drac in bug 194169 (trunk
                r7877:7879)


bin/portageq
  7945 zmedico  Bug #194764 - All the match* functions can raise a ValueError
                if cpv_expand() receives an ambiguous atom. Therefore, move
                the ValueError handling code out of match() and use it to
                handle all such errors when appropriate. (trunk r7944)


bin/repoman
  7928 zmedico  Port the EbuildQuote check from trunk. (trunk r7904)
  7929 zmedico  Update the docs for the "ebuild.syntax" error to indicate
                that a digest verification failure can trigger it. (trunk
                r7905)
  7936 zmedico  Make repoman bail out if it is unable to properly access
                ebuild metadata for some reason. In this case it's impossible
                to generate a Manifest and therefore the --force option has
                to be disabled. (trunk r7914)
  7937 zmedico  Fix logic for the message that's show when --force is
                disabled. (trunk r7915)
  7941 zmedico  Eliminate confusing false positive error messages for
                SRC_URI.syntax and digestentry.unused that are reported when
                the SRC_URI for one or more ebuilds can't be parsed for some
                reason. There's no point in producing a false error here
                since the root cause will produce a valid error elsewhere,
                such as "SRC_URI.syntax" or "ebuild.sytax". (trunk r7905)
  7943 zmedico  Make the EbuildQuote check ignore lines beginning with local
                or export builtins since unquoted assignments are okay there.
                (trunk r7942)


man/ebuild.5
  7968 zmedico  Document the EAPI variable. (trunk r7948:7950)
  7971 zmedico  Document SLOT dependencies. (trunk r7962)
  7972 zmedico  Document IUSE defaults. (trunk r7966)


man/emerge.1
  7969 zmedico  Documnet EAPI in the MASKED PACKAGES section. (trunk r7951)
  7970 zmedico  Generalize the first paragraph of the MASKED PACKAGES section
                and document binary package CHOST masking. (trunk r7958)


man/make.conf.5
  7973 zmedico  Shorten the reference to IUSE defaults since it's now
                documented in ebuild(5). (trunk r7967)


man/repoman.1
  7929 zmedico  Update the docs for the "ebuild.syntax" error to indicate
                that a digest verification failure can trigger it. (trunk
                r7905)
  7936 zmedico  Make repoman bail out if it is unable to properly access
                ebuild metadata for some reason. In this case it's impossible
                to generate a Manifest and therefore the --force option has
                to be disabled. (trunk r7914)


pym/portage.py
  7924 zmedico  Document interaction between config.setinst() and old-style
                virtuals preferences. (trunk r7891)
  7925 zmedico  Reimplement portdbapi.visible() so that is works without
                using self.xmatch(). This should be 100% compatible with the
                previous implementation and have comparable performance. By
                eliminating the xmatch() dependency, the code becomes more
                generically usable, like for visibility filtering of binary
                packages. It seems that it will be necessary to move this
                code outside of the dbapi since visiblity filtering is really
                a resolver level function and to solve things like bug #88613
                will require a more flexible approach. (trunk r7892)
  7932 zmedico  Bump EAPI from 0 to 1 and fix eapi_is_supported() so that it
                works properly with both 0 and 1. (trunk r7909)
  7933 zmedico  When the metadata cache contains a negative EAPI, it means
                that the cache entry was generated by a version of portage
                that did not support the eapi. When the user upgrades to a
                version that now supports the previously unsupported EAPI,
                those cache entries need to be regenerated. Therefore, when a
                cache entry has a negative EAPI, check if the EAPI would be
                supported and trigger a regen if appropriate. (trunk r7910
                and r7919)
  7935 zmedico  Add EAPI masking support for binary packages. (trunk r7913)
  7938 zmedico  Make portdbapi.getfetchlist() bail out if the EAPI is
                unsupported. This makes it impossible for an unsupported EAPI
                to result in invalid Manifest generation. (trunk r7916)
  7939 zmedico  Include the package name in all exceptions raised from
                portdbapi.getfetchlist() so that a redundant and sometimes
                inaccurate message doesn't have to be shown when the error is
                caught in digestgen(). (trunk r7917)
  7976 zmedico  Strip the - prefix from EAPI in getmaskingstatus() if
                necessary. (trunk r7975)


pym/portage_const.py
  7932 zmedico  Bump EAPI from 0 to 1 and fix eapi_is_supported() so that it
                works properly with both 0 and 1. (trunk r7909)


pym/portage_exception.py
  7934 zmedico  Fix UnsupportedAPIException.__str__() to strip the leading
                negative sign (-) from the EAPI, to prevent confusion. (trunk
                r7912)


=============================================================================
2.1.3.11
2007-09-28
branches/2.1.2 revision 7876
=============================================================================


bin/emerge
  7868 zmedico  Bug #192706 - Do not print a summary at the end of --depclean
                if there is nothing to clean and --quiet is enabled. (trunk
                r7838)
  7872 zmedico  Bug #193548 - When emerge spawns find to search for config
                updates, show the find output if there is an error. (trunk
                r7871)
  7874 zmedico  When scanning for config updates, treat a symlink to an
                existing directory as if it's just a normal directory. (trunk
                r7873)
  7876 zmedico  Bug #193548 - When scanning for config updates and an error
                occurs, send find's stdout to /dev/null so that only an error
                message is shown. (trunk r7875)


pym/portage.py
  7870 zmedico  Bug #194081 - Add EBUSY to the list of ignored errnos for
                unlink and rmdir calls during unmerge. (trunk r7869)


=============================================================================
2.1.3.10
2007-09-27
branches/2.1.2 revision 7867
=============================================================================


bin/dispatch-conf
cnf/dispatch-conf.conf
pym/dispatch_conf.py
  7831 zmedico  Bug #74615 - Quote all file paths inside dispatch-conf shell
                commands. (trunk r7803)


bin/ebuild
  7845 zmedico  Display a short notification when an existing
                ${T}/environment sourced since it is easy to ignore and
                ignorance of it often leads to mysterious problems and
                general confusion. This message should not show in cases
                where it is obviously irrelevant, FEATURES=noauto, or
                PORTAGE_QUIET=1. (trunk r7844)
  7847 zmedico  Do the stale env check/warning after the digest/manifest
                phase when necessary. (trunk r7846)
  7867 zmedico  Handle KeyError thrown from aux_get(). (trunk r7866)


bin/ebuild.sh
  7843 zmedico  align the filename and line numbers in the output of the
                stack dump so that it is much easier to read (trunk r7842)
  7855 zmedico  with help from Donnie and Ulrich, use sed to extract the
                statement that led to the call to die so we can print it out
                in our error message (trunk r7852)


bin/ecompress
  7849 zmedico  Bug #193486 - Use xargs to avoid 'bash: /bin/rm: Argument
                list too long' errors. This patch uses a weird tr '\001'
                '\000' workaround since bash doesn't echo null bytes like one
                might expect. (trunk r7848)
  7851 zmedico  Bug #193486 - Use echo -n and properly quote the array
                argument. (trunk r7850)


bin/emerge
  7814 zmedico  Bug #192321 - Clean dir.old cruft so that they don't prevent
                unmerge of otherwise empty directories. (trunk r7774)
  7821 zmedico  Bug #190781 - Don't include --oneshot in the options that
                --update implies. (trunk r7790)
  7822 zmedico  Mask binary packages if their CHOST does not match the one
                defined in make.conf. (trunk r7792)
  7823 zmedico  When --with-bdeps=y is enabled for built packages, pull in
                build time deps as requested, but marked them as "satisfied"
                since they are not strictly required. This allows more
                freedom in the merge order calculation for solving circular
                dependencies. Don't convert to PDEPEND since that could make
                --with-bdeps=y less effective if it is used to adjust merge
                order to prevent built_with_use() calls from failing. (trunk
                r7793)
  7825 zmedico  When --deep is not enabled, many dependencies are dicarded
                and left out of the digraph. This patch prevents dependencies
                from being discarded in some cases where the are needed in
                order to optimize merge order. It also modifies the
                DepPriority.rebuild attribute so that it only applies to
                build time dependencies. This leads to better merge order in
                some cases when --deep is not enabled. For example, `emerge
                xf86-input-keyboard xorg-server` will now properly merge
                xorg-server before xf86-input-keyboard (problem from bug
                #192254, comment #5). (trunk r7797)
  7854 zmedico  Bug #194025 - Lock /var/db/pkg in post_merge() during the
                "Regenerating GNU info directory index" routine. (trunk
                r7853)
  7859 zmedico  Move a newline to fix formatting. (trunk r7858)
  7860 zmedico  Fix portage.exception namespace typo.


bin/etc-update
  7826 zmedico  tweak get_config() so that it only executes one external
                binary (sed) instead of chaining multiple ones (trunk r7798)
  7827 zmedico  fix possible information leak vulnerability when doing a
                merge of configuration files and be better about handling of
                whitespace in $TMP in a few places (trunk r7799)
  7830 zmedico  Initialize ${TMP} before registering the die trap so that
                we're sure which directory die will clean up. (trunk r7802)


man/ebuild.1
  7816 zmedico  Bug #191645 - Document the --force option. (trunk r7776)
  7818 zmedico  Bug #191645 - Cross-reference the `ebuild --force digest`
                docs with the FEATURES=assume-digests docs. (trunk r7778)


man/make.conf.5
  7817 zmedico  Add some additional notes about the behavior of
                FEATURES=assume-digests under various conditions. (trunk
                r7777)
  7818 zmedico  Bug #191645 - Cross-reference the `ebuild --force digest`
                docs with the FEATURES=assume-digests docs. (trunk r7778)
  7841 zmedico  Fix a typo. (trunk r7840)


man/repoman.1
  7812 zmedico  Bug #187795 - remove pointless digest.disjointed and
                digest.notadded warnings since they are always added to cvs
                automatically anyway. (trunk r7772)
  7813 zmedico  Bug #191645 - Document the --force option. (trunk r7773)
  7815 zmedico  Bug #110443 - Add a KEYWORDS.stable check for ebuilds that
                are added directly with stable KEYWORDS. (trunk r7775)
  7828 zmedico  s/note/not/ reported by p-y. (trunk r7800)


pym/eclass_cache.py
  7809 zmedico  Bug #192298 - Handle PermissionDenied error in
                cache.update_eclasses(). (trunk r7769)
  7810 zmedico  Catch errno.ENOTDIR instead of using os.path.isdir(). (trunk
                r7770)
  7862 zmedico  Simplify update_eclasses() a little. (trunk r7861)


pym/elog_modules/mod_save.py
pym/elog_modules/mod_save_summary.py
  7820 zmedico  Use ensure_dirs() and apply_permissions() to avoid redundant
                chown/chmod calls. This helps avoid 'Permission denied'
                errors during elog_process() when the ebuild command is run
                by normal user (issue reported by graaff). (trunk r7789)


pym/emergehelp.py
  7819 zmedico  Bug #192346 - The emerge --help shows a -i option that does
                not exist. (trunk r7779)


pym/getbinpkg.py
  7811 zmedico  Bug #192195 - In dir_get_list(), append a trailing / to the
                address when necessary in order to avoid getting a 400 error
                from the http server. (trunk r7771)


pym/portage.py
  7822 zmedico  Mask binary packages if their CHOST does not match the one
                defined in make.conf. (trunk r7792)
  7824 zmedico  Flush stderr and stdout if their file descriptors are in
                fd_pipes at the beginning of spawn(). (trunk r7793:7796)
  7832 zmedico  Bugs #168772 and #193695 - During unmerge, only ignore
                specific exceptions raised from unlink() and rmdir() calls.
                Bug #193695 - Add support for FreeBSD chflags during unmerge.
                This code is adapted from the code that already exists in
                movefile() for the merge phase. In movefile() FreeBSD chflags
                handling, use chflags instead of lchflags when temporarily
                adjusting the flags on the parent directory since we want to
                follow any symlinks to the real parent directory. (trunk
                r7803:7807)
  7833 zmedico  Bug #192341 - Eliminate the dependency on py-freebsd by
                implementing it's chflags() and lchflags() functions as
                wrappers around the chflags command (which should always be
                available in any case). The functions are only called when
                merging/unmerging files that actually have flags set so the
                performance difference should be negligible. (trunk r7808)
  7836 zmedico  Bug #192341 - When the chflags command does not exit
                successfully, try to generate an informative error. First,
                use stat or lstat to try and generate an ENOENT error. It the
                path exists, verify that the chflags binary exists and raise
                CommandNotFound if necessary. Finally, simply generate an
                EPERM OSError with the output of the command since we're not
                sure exactly why it failed or what the real errno was. (trunk
                r7834)
  7837 zmedico  Set non-blocking mode on the pty master file descriptor while
                the slave file descriptor is still held open since otherwise
                the fcntl call can fail on FreeBSD (the child process might
                have already exited and closed the slave file descriptor so
                we have to keep it open in order to avoid FreeBSD potentially
                generating an EAGAIN exception). This approach is cleaner
                than triggering the exception and being forced to handle it
                somehow. (trunk r7835)
  7857 zmedico  Ignore ENOTDIR from unmerge unlink calls. (trunk r7856)
  7863 zmedico  Avoid useless and ugly atexit tracebacks that are triggered
                when portage exits during the portdbapi constructor. (trunk
                r6620)


pym/portage_checksum.py
  7829 zmedico  Bug #190179 - Use `prelink --verify filename` to write the
                temp file via stdout since --undo fails when run as a normal
                non-superuser because it tries to chown the output file.
                Also, use mkstemp() to eliminate the need for locking the
                temp file. Thanks to Israel G. Lugo <israel.lugo@lugosys.com>
                for the initial patch. (trunk r7801)
  7865 zmedico  Move prelink tempfile cleanup to the finally block and remove
                unused locking code. (trunk r7864)


=============================================================================
2.1.3.9
2007-09-08
branches/2.1.2 revision 7762
=============================================================================


bin/emerge
  7762 zmedico  In depgraph.altlist(), try to merge asap_nodes sooner by
                giving them an exemption from the accept_root_node flag.


pym/portage.py
tests/portage/test_spawn.py
  7760 zmedico  Bug #190268 - Avoid unwanted sandbox violations in
                src_test(). - Allow SANDBOX_* variables to pass through. -
                Don't try to create an sandbox instance inside a test case in
                order to interaction with SANDBOX_* variables in src_test().
                (trunk r7759)


=============================================================================
2.1.3.8
2007-09-06
branches/2.1.2 revision 7747
=============================================================================


RELEASE-NOTES
  7727 zmedico  Move the note about not needing pycrypto with python-2.5 to
                the 2.1.3 section. (trunk r7726)


bin/emerge
  7731 zmedico  Remove pointless information from --info output (trunk r7695)
  7733 zmedico  Move blocker handling from depgraph.create() to select_dep().
                (trunk r7701)
  7745 zmedico  In the topological sort for merge order, try to avoid
                selecting root nodes whenever possible. This helps ensure
                that the maximimum possible number of soft dependencies have
                been removed from the graph before their parent nodes have
                been selected. This is especially important when those
                dependencies are going to be rebuilt by revdep-rebuild or
                `emerge -e system` after the CHOST has been changed (like
                when building a stage3 from a stage2). With this patch,
                `emerge -e system` properly rebuilds dev-lang/python before
                sys-apps/file, which helps to avoid a potential build
                failure. (trunk r7727:7729)


bin/etc-update
  7735 zmedico  change directory to / in case $PWD doesnt exist (trunk r7702)


bin/misc-functions.sh
  7732 zmedico  Bug #190214 - Make the rpm phase use /usr/src/rpm instead of
                /usr/src/redhat. Bug #190144 - Use the realpath of DISTDIR so
                that things like subversion.eclass are compatible with
                sandbox. (trunk r7700)


bin/repoman
  7736 zmedico  Bug #190406 - Filter the myheaders list so that it doesn't
                include binary blobs added to cvs with the -kb option. (trunk
                r7705)
  7737 zmedico  Add a --force option that forces commit to proceed. This is
                useful for cases like bug #110443 where the commit normally
                isn't allowed but there are exceptional circumstances where
                it may be acceptable. (trunk r7709)
  7738 zmedico  Make the commit message indicate when the --force option is
                used. (trunk r7712)
  7739 zmedico  Bug #110443 - Add a KEYWORDS.stable check for ebuilds that
                are added directly with stable KEYWORDS. (trunk r7710)
  7740 zmedico  Fix RepoMan's grammar. (trunk r7711)
  7741 zmedico  Skip the most expensive QA tests when --force in enabled
                since there's no point in wasting time on them when the user
                is intent on forcing the commit anyway. (trunk r7713)
  7742 zmedico  Move some of the less expensive QA checks before dep_check()
                so that they're still done even in --force mode. (trunk
                r7718)
  7743 zmedico  Convert myoptions from a list to a dict. (trunk r7714)


cnf/etc-update.conf
  7734 zmedico  remove $Id$ as it gives us nothing useful (trunk r7699)


pym/cvstree.py
  7736 zmedico  Bug #190406 - Filter the myheaders list so that it doesn't
                include binary blobs added to cvs with the -kb option. (trunk
                r7705)


pym/portage.py
  7732 zmedico  Bug #190214 - Make the rpm phase use /usr/src/rpm instead of
                /usr/src/redhat. Bug #190144 - Use the realpath of DISTDIR so
                that things like subversion.eclass are compatible with
                sandbox. (trunk r7700)
  7744 zmedico  Reformat collision-protect output so that the list of file
                collisions is shown below the banner. This puts more distance
                between the collision list and the list of files that
                prepstrip often displays just above, hopefully preventing
                user confusion about which files had collisions. (trunk
                r7720)
  7747 zmedico  For bug #190268, filter SANDBOX_* from the calling
                environment so that they can't interfere with ebuild.sh.
                (trunk r7746)


pym/portage_dep.py
  7730 zmedico  Don't cache results from match_from_list() since
                *dbapi.match() caches do the job. (trunk r7694)


=============================================================================
2.1.3.7
2007-08-23
branches/2.1.2 revision 7689
=============================================================================


bin/dohtml
man/ebuild.5
  7654 zmedico  Bug #189743 - Add .jpeg to the list of extensions supported
                by dohtml. (trunk r7653)


bin/ebuild.sh
  7679 zmedico  Bug #189791 - Send errors to /dev/null when debug-print()
                fails to write to ${T}/eclass-debug.log. (trunk r7678)


bin/emerge
  7626 zmedico  Always assign higher priority to dependencies on packages
                that are being rebuilt (except when --emptytree is enabled
                since all packages are merged in that case). This optimizes
                merge order so that dependencies are rebuilt/updated as soon
                as possible. (trunk r7625)
  7629 zmedico  Combine 2 locations in depgraph.create() where nodes are
                added to the digraph. This ensures that dependencies on
                "rebuild" nodes always have their priority increased. (trunk
                r7626:7628)
  7640 zmedico  For bug #189219, use pkgcmp() to sort versions in
                selected/protected/omitted unmerge display. (trunk r7639)
  7667 zmedico  Pass complete package metadata from depgraph.select_dep()
                into create() in order to minimize aux_get calls. (trunk
                r7663)
  7670 zmedico  Make depgraph.select_dep() reuse cached metadata from nodes
                that have already been added to the graph. (trunk r7666)
  7677 zmedico  Fix a typo from r7663. (trunk r7676)
  7681 zmedico  Make depgraph.create() avoid metadata lookups for binary
                packages and ebuilds in cases where an installed package has
                already been added to the graph. This greatly improves
                performance when the graph contains a large number of
                installed packages. (trunk r7680)
  7687 zmedico  Make depgraph.select_dep() node reuse work when in
                --usepkgonly mode. (trunk r7686)


bin/etc-update
  7637 zmedico  Make etc-update copy owner and group bits when it merges
                config files. (trunk r7636)


bin/misc-functions.sh
  7650 zmedico  filter out kernel modules from ELF QA checks #184443 (trunk
                r7645)


cnf/make.conf.arm.diff
cnf/make.conf.sh.diff
  7649 zmedico  remove "risky" message about -O2 (trunk r7644)


man/emerge.1
  7634 zmedico  make -f/-F distinction clearer (trunk r7632)


pym/elog_modules/mod_echo.py
  7675 zmedico  Use INFORM to colorize the package name. (trunk r7674)


pym/getbinpkg.py
  7657 zmedico  Show cache miss/hit counts all on one line, using \r to
                return to the beginning of he line and rewrite it each time
                that a counter is updated. Thanks to Mike "Fuzzy" Partin
                <fuzzy@smoke.dope.org> for this patch (submitted on the
                gentoo-portage-dev mailing list). (trunk r7655)
  7658 zmedico  Send cache hit/miss status updates to stdout instead of
                stderr and add some more flush() calls. (trunk r7656)
  7673 zmedico  Prevent output from being flushed to the console too
                frequently in dir_get_metadata(). (trunk r7672)


pym/portage.py
  7648 zmedico  Fix ACCEPT_KEYWORDS validation so that ** is valid. (trunk
                r7647)
  7662 zmedico  Bug #188703 - Don't adjust permissions in ${T} unless
                userpriv is enabled. (trunk r7661)
  7683 zmedico  In config.regenerate(), skip loading /etc/profile.env if it's
                mtime hasn't changed. (trunk r7682)
  7685 zmedico  Bug #189791 - Define EBUILD_PHASE=unpack during the nofetch
                phase since otherwise we get EBUILD_PHASE=merge which isn't
                in our list of valid EBUILD_PHASES recognized by elog. (trunk
                r7684)
  7689 zmedico  Add * and ~* to the list of valid values for ACCEPT_KEYWORDS.
                (trunk r7688)


pym/portage_update.py
  7669 zmedico  Fix update_dbentry() to process version components properly
                before passing them into ververify(). (trunk r7665)


pym/portage_versions.py
  7668 zmedico  Make best() return early when it's only given one package.
                (trunk r7664)


tests/portage_versions/test_vercmp.py
  7623 zmedico  Add some floating point vercmp cases. (trunk r7622)


=============================================================================
2.1.3.6
2007-08-15
branches/2.1.2 revision 7610
=============================================================================


bin/emerge
  7600 zmedico  For bug #188782, keep "nomerge" nodes in the graph during the
                merge order calculation so that merge order is better in
                cases where installed packages have unsatisfied dependencies.
                (trunk r7599)
  7603 zmedico  Make sure to skip info dir files with the .old extension.
                (trunk r7602)
  7605 zmedico  For bug #188782, dependencies on packages specified as
                arguments are given higher priority since the currently
                installed version has been rendered useless by ABI breakage.
                It's okay to increase the priority here even if the caller is
                not revdep-rebuild. (trunk r7604)


cnf/logrotate.d/elog-save-summary
  7610 zmedico  For bug #188807, add nocreate and delaycompress options for
                logrotate. (trunk r7609)


cnf/make.conf.alpha.diff
cnf/make.conf.ppc.diff
cnf/make.conf.sparc.diff
cnf/make.conf.x86-fbsd.diff
cnf/make.conf.x86.diff
  7608 zmedico  'decent' CFLAGS should not feature -O3. Bug 188619 (trunk
                r7595:7597)


pym/portage_versions.py
  7607 zmedico  For bug #188449, since python floats have limited range, we
                multiply both floating point representations by a constant so
                that they are transformed into whole numbers. This allows the
                practically infinite range of a python int to be exploited.
                The multiplication is done by padding both literal strings
                with zeros as necessary to ensure equal length. (trunk r7606)


=============================================================================
2.1.3.5
2007-08-12
branches/2.1.2 revision 7594
=============================================================================


bin/emerge
  7594 zmedico  For bug #33585, leave the old info dir file in place if there
                is nothing to generate. (trunk r7593)


pym/portage.py
  7590 zmedico  Optimize config.setcpv() so that it doesn't call regenerate()
                unnecessarily when there are no USE wildcards to expand.
                (trunk r7589)
  7592 zmedico  For bug #188559, invalidate dblink._contents_inodes as
                necessary to prevent FEATURES=unmerge-orphans from unmerging
                anything that belongs to the package that has just been
                merged. (trunk r7591)


=============================================================================
2.1.3.4
2007-08-10
branches/2.1.2 revision 7588
=============================================================================


bin/ebuild.sh
  7557 zmedico  Generate a QA Notice and cd to ${WORKDIR} if the ${S}
                directory does not exist. (trunk r7550)
  7588 zmedico  Don't generate a QA Notice if the ${S} directory doesn't
                exist since it might be irrelevant for some ebuilds. (trunk
                r7587)


bin/emerge
  7565 zmedico  Make config updates get counted correctly for bug #187741.
                (trunk r7564)
  7573 zmedico  Make sure that portage always has all of it's RDEPENDs
                installed first. (trunk r7572)
  7575 zmedico  Use == for comparison of portage_node since digraph.clone()
                makes a deepcopy of the nodes. (trunk r7574)
  7577 zmedico  For bug #187806, use mkstemp to create tmpservertimestampfile
                (instead of using PORTAGE_TMPDIR). (trunk r7576)


bin/repoman
  7581 zmedico  For bug #187795, remove pointless digest.disjointed and
                digest.notadded warnings since they are always added to cvs
                automatically anyway. (trunk r7580)


man/emerge.1
pym/emergehelp.py
  7584 zmedico  Update emerge --help and --info docs. Thanks to Arfrever
                Frehtes Taifersar Arahesis in bug #137483. (trunk r7583)


pym/portage.py
  7554 zmedico  Make droppriv for the depend phase conditional on userpriv in
                FEATURES. (trunk r7553)
  7556 zmedico  Remove the depend phase from the doebuild actionmap since
                it's never used. (trunk r7555)


=============================================================================
2.1.3.3
2007-08-03
branches/2.1.2 revision 7549
=============================================================================


pym/portage.py
  7549 zmedico  In portage.spawn() logging, put the read end of the pipe in
                O_NONBLOCK mode just once at the beginning. This avoids
                unnecessary fcntl calls and removes one more opportunity to
                trigger EAGAIN errors on FreeBSD. (trunk r7548)


=============================================================================
2.1.3.2
2007-08-02
branches/2.1.2 revision 7545
=============================================================================


pym/portage.py
  7542 zmedico  For bug #187480, fix writemsg args in portdbapi.gvisible().
                (trunk r7541)


pym/portage_util.py
  7545 zmedico  For bug #187518, handle EISDIR thrown from mkdir when the
                directory already exists on FreeBSD. (trunk r7544)


=============================================================================
2.1.3.1
2007-08-01
branches/2.1.2 revision 7540
=============================================================================


bin/emerge
  7431 zmedico  For bug #137483, move the `emerge --help config` docs to the
                emerge man page. Thanks to Arfrever Frehtes Taifersar
                Arahesis for this patch. (trunk r7430)
  7499 zmedico  Always pass a dbapi instance into a setcpv call. (trunk
                r7496)
  7525 zmedico  For bug #187142, properly pass a dbapi instance into setcpv()
                so that USE_EXPAND wildcards work correctly. (trunk r7524)
  7529 zmedico  Change the numeric value of DepPriority.MIN to be equal to
                that of a satisfied PDEPEND since there is currently nothing
                with lower priority. (trunk r7528)
  7536 zmedico  For bug #187375, handle an ImportError when portage is
                downgraded to a version without mod_echo. (trunk r7535)
  7538 zmedico  Like older versions of portage, don't show the repo display
                if [0] is all that will be shown. (trunk r7537)


bin/quickpkg
  7527 zmedico  As a workaround for bug #185305, make quickpkg break
                hardlinks during creation of the archive. (trunk r7526)


cnf/make.globals
man/make.conf.5
  7429 zmedico  For bug #187016, and env.d to the default USE_ORDER. (trunk
                r7426:7428)


man/ebuild.5
  7433 zmedico  For bug #139670, update the dohtml docs to show all supported
                file extensions. Thanks to Arfrever Frehtes Taifersar
                Arahesis for this patch. (trunk r7432)


man/emerge.1
pym/emergehelp.py
  7431 zmedico  For bug #137483, move the `emerge --help config` docs to the
                emerge man page. Thanks to Arfrever Frehtes Taifersar
                Arahesis for this patch. (trunk r7430)


pym/elog_modules/mod_echo.py
pym/elog_modules/mod_mail_summary.py
  7523 zmedico  Make finalize() accept a parameter once again since older
                versions of portage import elog modules from newer versions
                of portage when they upgrade themselves. (trunk r7522)


pym/portage.py
  7423 zmedico  For bug #186876, fall back it os.pipe() if pty.openpty()
                fails. (trunk r7422)
  7425 zmedico  For pty logging, handle the EAGAIN error that is thrown from
                fcntl when the slave end of the pty is closed on FreeBSD.
                (trunk r7424)
  7429 zmedico  For bug #187016, and env.d to the default USE_ORDER. (trunk
                r7426:7428)
  7517 zmedico  For bug #186960, try to create a directory for $ROOT if it
                doesn't exist. (trunk r7516)


tests/portage/test_spawn.py
  7540 zmedico  Fix TestCase import.


tests/portage/test_spawn.py (from /main/trunk/pym/portage/tests/ebuild/test_spawn.py:7538) (Added)
  7539 zmedico  Copy the portage.spawn() test from trunk.


=============================================================================
2.1.3
2007-07-27
branches/2.1.2 revision 7420
=============================================================================

