============================================================================= 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 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 []+` 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 ` 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 / ` 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 for the initial patch. (trunk r7801) 7865 zmedico Move prelink tempfile cleanup to the finally block and remove unused locking code. (trunk r7864)