From: Kito Date: Wed, 14 Dec 2005 18:08:29 +0000 (-0000) Subject: Merge changes from trunk rev 2368. X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=c1d7307f9d91717921fa0512926bdf6991cd7616;p=portage.git Merge changes from trunk rev 2368. svn path=/main/branches/prefix/; revision=2369 --- diff --git a/RELEASE-NOTES b/RELEASE-NOTES new file mode 100644 index 000000000..c153fd415 --- /dev/null +++ b/RELEASE-NOTES @@ -0,0 +1,42 @@ +Release Notes for portage-2.2_pre1 +================================== + +New features / Major changes +---------------------------- +* elog framework: This finally adds a flexible way to log all einfo, ewarn and + eerror messages as well as adding a new elog command for ebuilds. New ebuilds + should use elog instead of einfo for delivering important information as + einfo messages will not be logged by default. [genone] +* elog modules: Together with the framework some basic modules implementing + common logging facilities are shipped, these include: + - mod_syslog for relaying messages to syslog + - mod_mail for sending messages to a predefined mail adress + - mod_save for saving messages to a file + - mod_custom for processing messages with a custom command + NOTE: The elog interfaces are still subject to change, so don't rely on the + exact format yet. [genone] +* version syntax enhancements: The version parsing and comparison code was + completely rewritten and now supports two extensions to previous versions: + - a cvs prefix to denote live cvs (or svn or any other vcs) ebuilds, so now + you can have a package foo with the ebuilds foo-1.ebuild and + foo-cvs.1.ebuild in the same directory. cvs ebuilds will always be + ranked higher than any non-cvs ebuild. + - multiple suffixes now allow for constructions like foo-1.0_pre1_rc5 + Also the new code is now separated into its own module portage_versions.py + with no dependencies on the main portage module. [genone] +* recursive config files: Most of the config files in /etc/portage can now + also be directories, if they are then portage will recursively use all + files in them. So you could have /etc/portage/package.keywords/kde/base + and /etc/portage/package.keywords/gnome instead of a single package.keywords. + This applies to the following files: + - package.keywords + - package.mask + - package.unmask + - package.use + - mirrors + [genone] + +Bug fixes / Minor Changes +------------------------- +* Removal of "masked by -*" message [genone] +* Fixed some minor screwup in the sort algorithm for versions [genone] diff --git a/bin/dodoc b/bin/dodoc index aefec427f..b8134ed15 100755 --- a/bin/dodoc +++ b/bin/dodoc @@ -1,7 +1,6 @@ #!@BASH@ # Copyright 1999-2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Id: /var/cvsroot/gentoo-src/portage/bin/dodoc,v 1.6.2.2 2005/05/15 11:04:21 jstubbs Exp $ if [ $# -lt 1 ] ; then echo "$0: at least one argument needed" 1>&2 diff --git a/bin/ebuild.sh b/bin/ebuild.sh index 5d3775b6f..becb5b6db 100755 --- a/bin/ebuild.sh +++ b/bin/ebuild.sh @@ -1129,6 +1129,7 @@ dyn_test() { trap SIGINT SIGQUIT } + PORTAGE_INST_UID="0" PORTAGE_INST_GID="0" diff --git a/bin/emaint b/bin/emaint index 9e0f324d9..308e511f7 100755 --- a/bin/emaint +++ b/bin/emaint @@ -66,6 +66,12 @@ def exclusive(option, unused1, unused2, unused3, var=None): usage = "usage: emaint [options] " + " | ".join(module_names) + +usage+= "\n\nCurrently emaint can only check and fix problems with one's world\n" +usage+= "file. Future versions will integrate other portage check-and-fix\n" +usage+= "tools and provide a single interface to system health checks." + + parser = OptionParser(usage=usage) parser.add_option("-c", "--check", help="check for problems", action="callback", callback=exclusive, callback_kwargs={"var":"action"}) diff --git a/bin/emerge b/bin/emerge index f271123dd..295dbc997 100755 --- a/bin/emerge +++ b/bin/emerge @@ -296,7 +296,7 @@ for x in cmdline: if "moo" in myfiles: print """ - Gentoo (""" + os.uname()[0] + """) + Larry loves Gentoo (""" + os.uname()[0] + """) _______________________ < Have you mooed today? > @@ -1467,6 +1467,28 @@ class depgraph: if "--verbose" in myopts: overlays = string.split(portage.settings['PORTDIR_OVERLAY']) + use_expand = portage.settings["USE_EXPAND"].lower().split() + use_expand_hidden = portage.settings["USE_EXPAND_HIDDEN"].lower().split() + + def create_use_string(iuse, cur_use, old_use, masked_use): + usestr="" + for flag in iuse: + usechange="" + if old_use: + if (flag in old_use and flag not in cur_use) or (flag not in old_use and flag in cur_use): + usechange="*" + + if flag in cur_use: + if usechange == "*": + substr = green("+"+flag) + else: + substr = red("+"+flag) + elif flag in masked_use: + substr = blue("(-"+flag+")") + else: + substr = blue("-"+flag) + usestr += substr + usechange + " " + return usestr if "--tree" in myopts: mylist.reverse() @@ -1569,8 +1591,13 @@ class depgraph: portage.writemsg("!!! Error getting IUSE (report this to bugs.gentoo.org)\n") portage.writemsg("!!! %s\n" % x) iuse_split = [] + + iuse_split = portage.unique_array(iuse_split) iuse_split.sort() - old_use=None + + cur_use = self.applied_useflags[x[2]] + + old_use = [] if myoldbest: pkg=myoldbest else: @@ -1582,24 +1609,40 @@ class depgraph: raise # Needed else can't exit except: pass - iuse="" - now_use=self.applied_useflags[x[2]] - for ebuild_iuse in portage_util.unique_array(iuse_split): - usechange="" - if old_use: - if (old_use.count(ebuild_iuse) and not now_use.count(ebuild_iuse)) or (not old_use.count(ebuild_iuse) and now_use.count(ebuild_iuse)): - usechange="*" - - if ebuild_iuse in self.applied_useflags[x[2]]: - if usechange == "*": - iuse=green("+"+ebuild_iuse) - else: - iuse=red("+"+ebuild_iuse) - elif ebuild_iuse in portage.settings.usemask: - iuse=blue("(-"+ebuild_iuse+")") - else: - iuse=blue("-"+ebuild_iuse) - verboseadd+=iuse+usechange+" " + + reg_use = [] + exp_map = {} + for flag in iuse_split: + found = False + for var in use_expand: + if flag.startswith(var+"_"): + if var in exp_map: + exp_map[var]+= [flag[len(var)+1:]] + else: + exp_map[var] = [flag[len(var)+1:]] + found = True + break + if not found: + reg_use.append(flag) + + usestr = create_use_string(reg_use, cur_use, old_use, portage.settings.usemask).strip() + if usestr: + verboseadd += 'USE="'+usestr+"' " + + for var in use_expand: + if var not in exp_map: + continue + expcur = [] + expold = [] + expmask = [] + for flag in exp_map[var]: + if var+"_"+flag in cur_use: + expcur+= [flag] + if var+"_"+flag in old_use: + expold+= [flag] + if var+"_"+flag in portage.settings.usemask: + expmask+= [flag] + verboseadd += var.upper()+'="'+create_use_string(exp_map[var],expcur,expold,expmask).strip()+'" ' # size verbose mysize=0 diff --git a/bin/env-update.sh b/bin/env-update.sh index 90e37000d..9f3c939cf 100755 --- a/bin/env-update.sh +++ b/bin/env-update.sh @@ -217,5 +217,3 @@ cat << EOF > ${CSHENV} $(set | grep '^my_envd_' | sed -e 's:^my_envd_\([[:alpha:]_][[:alnum:]_]*\)=:setenv \1 :') EOF - -[[ ${ROOT} == / ]] && ${PREFIX}/sbin/depscan.sh diff --git a/bin/portageq b/bin/portageq index 82464a7db..a3125a13d 100755 --- a/bin/portageq +++ b/bin/portageq @@ -149,42 +149,42 @@ def gentoo_mirrors(argv): def portdir(argv): """ - Returns the PORTDIR path as defined in the portage configuration. + Returns the PORTDIR path. """ print portage.settings["PORTDIR"] def config_protect(argv): """ - Returns the CONFIG_PROTECT paths as defined in the portage configuration. + Returns the CONFIG_PROTECT paths. """ print portage.settings["CONFIG_PROTECT"] def config_protect_mask(argv): """ - Returns the CONFIG_PROTECT_MASK paths as defined in the portage configuration. + Returns the CONFIG_PROTECT_MASK paths. """ print portage.settings["CONFIG_PROTECT_MASK"] def portdir_overlay(argv): """ - Returns the PORTDIR_OVERLAY path as defined in the portage configuration. + Returns the PORTDIR_OVERLAY path. """ print portage.settings["PORTDIR_OVERLAY"] def pkgdir(argv): """ - Returns the PKGDIR path as defined in the portage configuration. + Returns the PKGDIR path. """ print portage.settings["PKGDIR"] def distdir(argv): """ - Returns the DISTDIR path as defined in the portage configuration. + Returns the DISTDIR path. """ print portage.settings["DISTDIR"] @@ -269,5 +269,4 @@ def main(): main() - #----------------------------------------------------------------------------- diff --git a/bin/repoman b/bin/repoman index f64309691..7643b1597 100755 --- a/bin/repoman +++ b/bin/repoman @@ -160,7 +160,9 @@ qawarnings=[ "file.size", "metadata.missing", "metadata.bad", -"virtual.versioned" +"virtual.versioned", +"virtual.exists", +"virtual.unavailable" ] missingvars=["KEYWORDS","LICENSE","DESCRIPTION","HOMEPAGE","SLOT"] diff --git a/cnf/make.conf b/cnf/make.conf index 000cfdc83..211aa85a5 100644 --- a/cnf/make.conf +++ b/cnf/make.conf @@ -317,3 +317,43 @@ CHOST="i686-pc-linux-gnu" # The file format is one pattern per line, blanks and ';' or '#' lines are # comments. See 'man rsync' for more details on the exclude-from format. #RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes + +# logging related variables: +# PORTAGE_ELOG_CLASSES: selects messages to be logged, possible values are: +# info, warn, error, log +# Warning: commenting this will disable elog +PORTAGE_ELOG_CLASSES="warn error log" + +# PORTAGE_ELOG_SYSTEM: selects the module(s) to process the log messages. Modules +# included in portage are (empty means logging is disabled): +# save (saves one log per package in $PORTAGE_TMPDIR/elogs) +# custom (passes all messages to $PORTAGE_LOG_COMMAND) +# syslog (sends all messages to syslog) +# mail (send all messages to the mailserver defined +# in $PORTAGE_LOG_MAILURI) +# To use elog you should enable at least one module +#PORTAGE_ELOG_SYSTEM="save mail" + +# PORTAGE_ELOG_COMMAND: only used with the "custom" logging module. Specifies a command +# to process log messages. Two variables are expanded: +# ${PACKAGE} - expands to the cpv entry of the processed +# package (see $PVR in ebuild(5)) +# ${LOGFILE} - absolute path to the logfile +#PORTAGE_ELOG_COMMAND="/path/to/logprocessor -p ${PACKAGE} -f ${LOGFILE}" + +# PORTAGE_ELOG_MAILURI: this variable holds all important settings for the mail +# module. In most cases listing the recipient adress and +# the receiving mailserver should be sufficient, but you can +# also use advanced settings like authentication or TLS. The +# full syntax is: +# adress [[user:passwd@]mailserver[:port]] +# where +# adress: recipient adress +# user: username for smtp auth (defaults to none) +# passwd: password for smtp auth (defaults to none) +# mailserver: smtp server that should be used to deliver the mail (defaults to localhost) +# port: port to use on the given smtp server (defaults to 25, values > 100000 indicate that starttls should be used on (port-100000)) +# Examples: +#PORTAGE_ELOG_MAILURI="root@localhost localhost" (this is also the default setting) +#PORTAGE_ELOG_MAILURI="user@some.domain mail.some.domain" (sends mails to user@some.domain using the mailserver mail.some.domain) +#PORTAGE_ELOG_MAILURI="user@some.domain user:secret@mail.some.domain:100465" (this is left uncommented as a reader excercise ;) diff --git a/cnf/make.conf.alpha b/cnf/make.conf.alpha index d90a75fd3..b4d7a780a 100644 --- a/cnf/make.conf.alpha +++ b/cnf/make.conf.alpha @@ -303,3 +303,43 @@ CFLAGS="-mcpu=ev5 -O3 -pipe " # The file format is one pattern per line, blanks and ';' or '#' lines are # comments. See 'man rsync' for more details on the exclude-from format. #RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes + +# logging related variables: +# PORTAGE_ELOG_CLASSES: selects messages to be logged, possible values are: +# info, warn, error, log +# Warning: commenting this will disable elog +PORTAGE_ELOG_CLASSES="warn error log" + +# PORTAGE_ELOG_SYSTEM: selects the module(s) to process the log messages. Modules +# included in portage are (empty means logging is disabled): +# save (saves one log per package in $PORTAGE_TMPDIR/elogs) +# custom (passes all messages to $PORTAGE_LOG_COMMAND) +# syslog (sends all messages to syslog) +# mail (send all messages to the mailserver defined +# in $PORTAGE_LOG_MAILURI) +# To use elog you should enable at least one module +#PORTAGE_ELOG_SYSTEM="save mail" + +# PORTAGE_ELOG_COMMAND: only used with the "custom" logging module. Specifies a command +# to process log messages. Two variables are expanded: +# ${PACKAGE} - expands to the cpv entry of the processed +# package (see $PVR in ebuild(5)) +# ${LOGFILE} - absolute path to the logfile +#PORTAGE_ELOG_COMMAND="/path/to/logprocessor -p ${PACKAGE} -f ${LOGFILE}" + +# PORTAGE_ELOG_MAILURI: this variable holds all important settings for the mail +# module. In most cases listing the recipient adress and +# the receiving mailserver should be sufficient, but you can +# also use advanced settings like authentication or TLS. The +# full syntax is: +# adress [[user:passwd@]mailserver[:port]] +# where +# adress: recipient adress +# user: username for smtp auth (defaults to none) +# passwd: password for smtp auth (defaults to none) +# mailserver: smtp server that should be used to deliver the mail (defaults to localhost) +# port: port to use on the given smtp server (defaults to 25, values > 100000 indicate that starttls should be used on (port-100000)) +# Examples: +#PORTAGE_ELOG_MAILURI="root@localhost localhost" (this is also the default setting) +#PORTAGE_ELOG_MAILURI="user@some.domain mail.some.domain" (sends mails to user@some.domain using the mailserver mail.some.domain) +#PORTAGE_ELOG_MAILURI="user@some.domain user:secret@mail.some.domain:100465" (this is left uncommented as a reader excercise ;) diff --git a/cnf/make.conf.amd64 b/cnf/make.conf.amd64 index cd73d793a..2b8cc7284 100644 --- a/cnf/make.conf.amd64 +++ b/cnf/make.conf.amd64 @@ -314,3 +314,43 @@ CHOST="x86_64-pc-linux-gnu" # The file format is one pattern per line, blanks and ';' or '#' lines are # comments. See 'man rsync' for more details on the exclude-from format. #RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes + +# logging related variables: +# PORTAGE_ELOG_CLASSES: selects messages to be logged, possible values are: +# info, warn, error, log +# Warning: commenting this will disable elog +PORTAGE_ELOG_CLASSES="warn error log" + +# PORTAGE_ELOG_SYSTEM: selects the module(s) to process the log messages. Modules +# included in portage are (empty means logging is disabled): +# save (saves one log per package in $PORTAGE_TMPDIR/elogs) +# custom (passes all messages to $PORTAGE_LOG_COMMAND) +# syslog (sends all messages to syslog) +# mail (send all messages to the mailserver defined +# in $PORTAGE_LOG_MAILURI) +# To use elog you should enable at least one module +#PORTAGE_ELOG_SYSTEM="save mail" + +# PORTAGE_ELOG_COMMAND: only used with the "custom" logging module. Specifies a command +# to process log messages. Two variables are expanded: +# ${PACKAGE} - expands to the cpv entry of the processed +# package (see $PVR in ebuild(5)) +# ${LOGFILE} - absolute path to the logfile +#PORTAGE_ELOG_COMMAND="/path/to/logprocessor -p ${PACKAGE} -f ${LOGFILE}" + +# PORTAGE_ELOG_MAILURI: this variable holds all important settings for the mail +# module. In most cases listing the recipient adress and +# the receiving mailserver should be sufficient, but you can +# also use advanced settings like authentication or TLS. The +# full syntax is: +# adress [[user:passwd@]mailserver[:port]] +# where +# adress: recipient adress +# user: username for smtp auth (defaults to none) +# passwd: password for smtp auth (defaults to none) +# mailserver: smtp server that should be used to deliver the mail (defaults to localhost) +# port: port to use on the given smtp server (defaults to 25, values > 100000 indicate that starttls should be used on (port-100000)) +# Examples: +#PORTAGE_ELOG_MAILURI="root@localhost localhost" (this is also the default setting) +#PORTAGE_ELOG_MAILURI="user@some.domain mail.some.domain" (sends mails to user@some.domain using the mailserver mail.some.domain) +#PORTAGE_ELOG_MAILURI="user@some.domain user:secret@mail.some.domain:100465" (this is left uncommented as a reader excercise ;) diff --git a/cnf/make.conf.arm b/cnf/make.conf.arm index 528e8e6cb..ef4b0da1f 100644 --- a/cnf/make.conf.arm +++ b/cnf/make.conf.arm @@ -311,3 +311,43 @@ CHOST="armv4l-unknown-linux-gnu" # The file format is one pattern per line, blanks and ';' or '#' lines are # comments. See 'man rsync' for more details on the exclude-from format. #RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes + +# logging related variables: +# PORTAGE_ELOG_CLASSES: selects messages to be logged, possible values are: +# info, warn, error, log +# Warning: commenting this will disable elog +PORTAGE_ELOG_CLASSES="warn error log" + +# PORTAGE_ELOG_SYSTEM: selects the module(s) to process the log messages. Modules +# included in portage are (empty means logging is disabled): +# save (saves one log per package in $PORTAGE_TMPDIR/elogs) +# custom (passes all messages to $PORTAGE_LOG_COMMAND) +# syslog (sends all messages to syslog) +# mail (send all messages to the mailserver defined +# in $PORTAGE_LOG_MAILURI) +# To use elog you should enable at least one module +#PORTAGE_ELOG_SYSTEM="save mail" + +# PORTAGE_ELOG_COMMAND: only used with the "custom" logging module. Specifies a command +# to process log messages. Two variables are expanded: +# ${PACKAGE} - expands to the cpv entry of the processed +# package (see $PVR in ebuild(5)) +# ${LOGFILE} - absolute path to the logfile +#PORTAGE_ELOG_COMMAND="/path/to/logprocessor -p ${PACKAGE} -f ${LOGFILE}" + +# PORTAGE_ELOG_MAILURI: this variable holds all important settings for the mail +# module. In most cases listing the recipient adress and +# the receiving mailserver should be sufficient, but you can +# also use advanced settings like authentication or TLS. The +# full syntax is: +# adress [[user:passwd@]mailserver[:port]] +# where +# adress: recipient adress +# user: username for smtp auth (defaults to none) +# passwd: password for smtp auth (defaults to none) +# mailserver: smtp server that should be used to deliver the mail (defaults to localhost) +# port: port to use on the given smtp server (defaults to 25, values > 100000 indicate that starttls should be used on (port-100000)) +# Examples: +#PORTAGE_ELOG_MAILURI="root@localhost localhost" (this is also the default setting) +#PORTAGE_ELOG_MAILURI="user@some.domain mail.some.domain" (sends mails to user@some.domain using the mailserver mail.some.domain) +#PORTAGE_ELOG_MAILURI="user@some.domain user:secret@mail.some.domain:100465" (this is left uncommented as a reader excercise ;) diff --git a/cnf/make.conf.hppa b/cnf/make.conf.hppa index f935d13d2..53807126a 100644 --- a/cnf/make.conf.hppa +++ b/cnf/make.conf.hppa @@ -320,3 +320,43 @@ CHOST="hppa-unknown-linux-gnu" # The file format is one pattern per line, blanks and ';' or '#' lines are # comments. See 'man rsync' for more details on the exclude-from format. #RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes + +# logging related variables: +# PORTAGE_ELOG_CLASSES: selects messages to be logged, possible values are: +# info, warn, error, log +# Warning: commenting this will disable elog +PORTAGE_ELOG_CLASSES="warn error log" + +# PORTAGE_ELOG_SYSTEM: selects the module(s) to process the log messages. Modules +# included in portage are (empty means logging is disabled): +# save (saves one log per package in $PORTAGE_TMPDIR/elogs) +# custom (passes all messages to $PORTAGE_LOG_COMMAND) +# syslog (sends all messages to syslog) +# mail (send all messages to the mailserver defined +# in $PORTAGE_LOG_MAILURI) +# To use elog you should enable at least one module +#PORTAGE_ELOG_SYSTEM="save mail" + +# PORTAGE_ELOG_COMMAND: only used with the "custom" logging module. Specifies a command +# to process log messages. Two variables are expanded: +# ${PACKAGE} - expands to the cpv entry of the processed +# package (see $PVR in ebuild(5)) +# ${LOGFILE} - absolute path to the logfile +#PORTAGE_ELOG_COMMAND="/path/to/logprocessor -p ${PACKAGE} -f ${LOGFILE}" + +# PORTAGE_ELOG_MAILURI: this variable holds all important settings for the mail +# module. In most cases listing the recipient adress and +# the receiving mailserver should be sufficient, but you can +# also use advanced settings like authentication or TLS. The +# full syntax is: +# adress [[user:passwd@]mailserver[:port]] +# where +# adress: recipient adress +# user: username for smtp auth (defaults to none) +# passwd: password for smtp auth (defaults to none) +# mailserver: smtp server that should be used to deliver the mail (defaults to localhost) +# port: port to use on the given smtp server (defaults to 25, values > 100000 indicate that starttls should be used on (port-100000)) +# Examples: +#PORTAGE_ELOG_MAILURI="root@localhost localhost" (this is also the default setting) +#PORTAGE_ELOG_MAILURI="user@some.domain mail.some.domain" (sends mails to user@some.domain using the mailserver mail.some.domain) +#PORTAGE_ELOG_MAILURI="user@some.domain user:secret@mail.some.domain:100465" (this is left uncommented as a reader excercise ;) diff --git a/cnf/make.conf.ia64 b/cnf/make.conf.ia64 index 20a81f7c5..b3ef70ff2 100644 --- a/cnf/make.conf.ia64 +++ b/cnf/make.conf.ia64 @@ -282,3 +282,43 @@ CHOST="ia64-unknown-linux-gnu" # The file format is one pattern per line, blanks and ';' or '#' lines are # comments. See 'man rsync' for more details on the exclude-from format. #RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes + +# logging related variables: +# PORTAGE_ELOG_CLASSES: selects messages to be logged, possible values are: +# info, warn, error, log +# Warning: commenting this will disable elog +PORTAGE_ELOG_CLASSES="warn error log" + +# PORTAGE_ELOG_SYSTEM: selects the module(s) to process the log messages. Modules +# included in portage are (empty means logging is disabled): +# save (saves one log per package in $PORTAGE_TMPDIR/elogs) +# custom (passes all messages to $PORTAGE_LOG_COMMAND) +# syslog (sends all messages to syslog) +# mail (send all messages to the mailserver defined +# in $PORTAGE_LOG_MAILURI) +# To use elog you should enable at least one module +#PORTAGE_ELOG_SYSTEM="save mail" + +# PORTAGE_ELOG_COMMAND: only used with the "custom" logging module. Specifies a command +# to process log messages. Two variables are expanded: +# ${PACKAGE} - expands to the cpv entry of the processed +# package (see $PVR in ebuild(5)) +# ${LOGFILE} - absolute path to the logfile +#PORTAGE_ELOG_COMMAND="/path/to/logprocessor -p ${PACKAGE} -f ${LOGFILE}" + +# PORTAGE_ELOG_MAILURI: this variable holds all important settings for the mail +# module. In most cases listing the recipient adress and +# the receiving mailserver should be sufficient, but you can +# also use advanced settings like authentication or TLS. The +# full syntax is: +# adress [[user:passwd@]mailserver[:port]] +# where +# adress: recipient adress +# user: username for smtp auth (defaults to none) +# passwd: password for smtp auth (defaults to none) +# mailserver: smtp server that should be used to deliver the mail (defaults to localhost) +# port: port to use on the given smtp server (defaults to 25, values > 100000 indicate that starttls should be used on (port-100000)) +# Examples: +#PORTAGE_ELOG_MAILURI="root@localhost localhost" (this is also the default setting) +#PORTAGE_ELOG_MAILURI="user@some.domain mail.some.domain" (sends mails to user@some.domain using the mailserver mail.some.domain) +#PORTAGE_ELOG_MAILURI="user@some.domain user:secret@mail.some.domain:100465" (this is left uncommented as a reader excercise ;) diff --git a/cnf/make.conf.mips b/cnf/make.conf.mips index e06cbd9ec..e67d419c5 100644 --- a/cnf/make.conf.mips +++ b/cnf/make.conf.mips @@ -300,3 +300,43 @@ CHOST="mips-unknown-linux-gnu" # The file format is one pattern per line, blanks and ';' or '#' lines are # comments. See 'man rsync' for more details on the exclude-from format. #RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes + +# logging related variables: +# PORTAGE_ELOG_CLASSES: selects messages to be logged, possible values are: +# info, warn, error, log +# Warning: commenting this will disable elog +PORTAGE_ELOG_CLASSES="warn error log" + +# PORTAGE_ELOG_SYSTEM: selects the module(s) to process the log messages. Modules +# included in portage are (empty means logging is disabled): +# save (saves one log per package in $PORTAGE_TMPDIR/elogs) +# custom (passes all messages to $PORTAGE_LOG_COMMAND) +# syslog (sends all messages to syslog) +# mail (send all messages to the mailserver defined +# in $PORTAGE_LOG_MAILURI) +# To use elog you should enable at least one module +#PORTAGE_ELOG_SYSTEM="save mail" + +# PORTAGE_ELOG_COMMAND: only used with the "custom" logging module. Specifies a command +# to process log messages. Two variables are expanded: +# ${PACKAGE} - expands to the cpv entry of the processed +# package (see $PVR in ebuild(5)) +# ${LOGFILE} - absolute path to the logfile +#PORTAGE_ELOG_COMMAND="/path/to/logprocessor -p ${PACKAGE} -f ${LOGFILE}" + +# PORTAGE_ELOG_MAILURI: this variable holds all important settings for the mail +# module. In most cases listing the recipient adress and +# the receiving mailserver should be sufficient, but you can +# also use advanced settings like authentication or TLS. The +# full syntax is: +# adress [[user:passwd@]mailserver[:port]] +# where +# adress: recipient adress +# user: username for smtp auth (defaults to none) +# passwd: password for smtp auth (defaults to none) +# mailserver: smtp server that should be used to deliver the mail (defaults to localhost) +# port: port to use on the given smtp server (defaults to 25, values > 100000 indicate that starttls should be used on (port-100000)) +# Examples: +#PORTAGE_ELOG_MAILURI="root@localhost localhost" (this is also the default setting) +#PORTAGE_ELOG_MAILURI="user@some.domain mail.some.domain" (sends mails to user@some.domain using the mailserver mail.some.domain) +#PORTAGE_ELOG_MAILURI="user@some.domain user:secret@mail.some.domain:100465" (this is left uncommented as a reader excercise ;) diff --git a/cnf/make.conf.ppc b/cnf/make.conf.ppc index 3cf2c7369..f173ed2c6 100644 --- a/cnf/make.conf.ppc +++ b/cnf/make.conf.ppc @@ -340,3 +340,43 @@ CHOST="powerpc-unknown-linux-gnu" # The file format is one pattern per line, blanks and ';' or '#' lines are # comments. See 'man rsync' for more details on the exclude-from format. #RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes + +# logging related variables: +# PORTAGE_ELOG_CLASSES: selects messages to be logged, possible values are: +# info, warn, error, log +# Warning: commenting this will disable elog +PORTAGE_ELOG_CLASSES="warn error log" + +# PORTAGE_ELOG_SYSTEM: selects the module(s) to process the log messages. Modules +# included in portage are (empty means logging is disabled): +# save (saves one log per package in $PORTAGE_TMPDIR/elogs) +# custom (passes all messages to $PORTAGE_LOG_COMMAND) +# syslog (sends all messages to syslog) +# mail (send all messages to the mailserver defined +# in $PORTAGE_LOG_MAILURI) +# To use elog you should enable at least one module +#PORTAGE_ELOG_SYSTEM="save mail" + +# PORTAGE_ELOG_COMMAND: only used with the "custom" logging module. Specifies a command +# to process log messages. Two variables are expanded: +# ${PACKAGE} - expands to the cpv entry of the processed +# package (see $PVR in ebuild(5)) +# ${LOGFILE} - absolute path to the logfile +#PORTAGE_ELOG_COMMAND="/path/to/logprocessor -p ${PACKAGE} -f ${LOGFILE}" + +# PORTAGE_ELOG_MAILURI: this variable holds all important settings for the mail +# module. In most cases listing the recipient adress and +# the receiving mailserver should be sufficient, but you can +# also use advanced settings like authentication or TLS. The +# full syntax is: +# adress [[user:passwd@]mailserver[:port]] +# where +# adress: recipient adress +# user: username for smtp auth (defaults to none) +# passwd: password for smtp auth (defaults to none) +# mailserver: smtp server that should be used to deliver the mail (defaults to localhost) +# port: port to use on the given smtp server (defaults to 25, values > 100000 indicate that starttls should be used on (port-100000)) +# Examples: +#PORTAGE_ELOG_MAILURI="root@localhost localhost" (this is also the default setting) +#PORTAGE_ELOG_MAILURI="user@some.domain mail.some.domain" (sends mails to user@some.domain using the mailserver mail.some.domain) +#PORTAGE_ELOG_MAILURI="user@some.domain user:secret@mail.some.domain:100465" (this is left uncommented as a reader excercise ;) diff --git a/cnf/make.conf.ppc64 b/cnf/make.conf.ppc64 index 54ac76cae..18d172bd8 100644 --- a/cnf/make.conf.ppc64 +++ b/cnf/make.conf.ppc64 @@ -318,3 +318,43 @@ CHOST="powerpc64-unknown-linux-gnu" # The file format is one pattern per line, blanks and ';' or '#' lines are # comments. See 'man rsync' for more details on the exclude-from format. #RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes + +# logging related variables: +# PORTAGE_ELOG_CLASSES: selects messages to be logged, possible values are: +# info, warn, error, log +# Warning: commenting this will disable elog +PORTAGE_ELOG_CLASSES="warn error log" + +# PORTAGE_ELOG_SYSTEM: selects the module(s) to process the log messages. Modules +# included in portage are (empty means logging is disabled): +# save (saves one log per package in $PORTAGE_TMPDIR/elogs) +# custom (passes all messages to $PORTAGE_LOG_COMMAND) +# syslog (sends all messages to syslog) +# mail (send all messages to the mailserver defined +# in $PORTAGE_LOG_MAILURI) +# To use elog you should enable at least one module +#PORTAGE_ELOG_SYSTEM="save mail" + +# PORTAGE_ELOG_COMMAND: only used with the "custom" logging module. Specifies a command +# to process log messages. Two variables are expanded: +# ${PACKAGE} - expands to the cpv entry of the processed +# package (see $PVR in ebuild(5)) +# ${LOGFILE} - absolute path to the logfile +#PORTAGE_ELOG_COMMAND="/path/to/logprocessor -p ${PACKAGE} -f ${LOGFILE}" + +# PORTAGE_ELOG_MAILURI: this variable holds all important settings for the mail +# module. In most cases listing the recipient adress and +# the receiving mailserver should be sufficient, but you can +# also use advanced settings like authentication or TLS. The +# full syntax is: +# adress [[user:passwd@]mailserver[:port]] +# where +# adress: recipient adress +# user: username for smtp auth (defaults to none) +# passwd: password for smtp auth (defaults to none) +# mailserver: smtp server that should be used to deliver the mail (defaults to localhost) +# port: port to use on the given smtp server (defaults to 25, values > 100000 indicate that starttls should be used on (port-100000)) +# Examples: +#PORTAGE_ELOG_MAILURI="root@localhost localhost" (this is also the default setting) +#PORTAGE_ELOG_MAILURI="user@some.domain mail.some.domain" (sends mails to user@some.domain using the mailserver mail.some.domain) +#PORTAGE_ELOG_MAILURI="user@some.domain user:secret@mail.some.domain:100465" (this is left uncommented as a reader excercise ;) diff --git a/cnf/make.conf.s390 b/cnf/make.conf.s390 index 6f5297d1d..c5bf313e0 100644 --- a/cnf/make.conf.s390 +++ b/cnf/make.conf.s390 @@ -282,3 +282,43 @@ CHOST="s390-ibm-linux-gnu" # The file format is one pattern per line, blanks and ';' or '#' lines are # comments. See 'man rsync' for more details on the exclude-from format. #RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes + +# logging related variables: +# PORTAGE_ELOG_CLASSES: selects messages to be logged, possible values are: +# info, warn, error, log +# Warning: commenting this will disable elog +PORTAGE_ELOG_CLASSES="warn error log" + +# PORTAGE_ELOG_SYSTEM: selects the module(s) to process the log messages. Modules +# included in portage are (empty means logging is disabled): +# save (saves one log per package in $PORTAGE_TMPDIR/elogs) +# custom (passes all messages to $PORTAGE_LOG_COMMAND) +# syslog (sends all messages to syslog) +# mail (send all messages to the mailserver defined +# in $PORTAGE_LOG_MAILURI) +# To use elog you should enable at least one module +#PORTAGE_ELOG_SYSTEM="save mail" + +# PORTAGE_ELOG_COMMAND: only used with the "custom" logging module. Specifies a command +# to process log messages. Two variables are expanded: +# ${PACKAGE} - expands to the cpv entry of the processed +# package (see $PVR in ebuild(5)) +# ${LOGFILE} - absolute path to the logfile +#PORTAGE_ELOG_COMMAND="/path/to/logprocessor -p ${PACKAGE} -f ${LOGFILE}" + +# PORTAGE_ELOG_MAILURI: this variable holds all important settings for the mail +# module. In most cases listing the recipient adress and +# the receiving mailserver should be sufficient, but you can +# also use advanced settings like authentication or TLS. The +# full syntax is: +# adress [[user:passwd@]mailserver[:port]] +# where +# adress: recipient adress +# user: username for smtp auth (defaults to none) +# passwd: password for smtp auth (defaults to none) +# mailserver: smtp server that should be used to deliver the mail (defaults to localhost) +# port: port to use on the given smtp server (defaults to 25, values > 100000 indicate that starttls should be used on (port-100000)) +# Examples: +#PORTAGE_ELOG_MAILURI="root@localhost localhost" (this is also the default setting) +#PORTAGE_ELOG_MAILURI="user@some.domain mail.some.domain" (sends mails to user@some.domain using the mailserver mail.some.domain) +#PORTAGE_ELOG_MAILURI="user@some.domain user:secret@mail.some.domain:100465" (this is left uncommented as a reader excercise ;) diff --git a/cnf/make.conf.sparc b/cnf/make.conf.sparc index 48c5ddb43..eed13cae4 100644 --- a/cnf/make.conf.sparc +++ b/cnf/make.conf.sparc @@ -318,3 +318,43 @@ # The file format is one pattern per line, blanks and ';' or '#' lines are # comments. See 'man rsync' for more details on the exclude-from format. #RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes + +# logging related variables: +# PORTAGE_ELOG_CLASSES: selects messages to be logged, possible values are: +# info, warn, error, log +# Warning: commenting this will disable elog +PORTAGE_ELOG_CLASSES="warn error log" + +# PORTAGE_ELOG_SYSTEM: selects the module(s) to process the log messages. Modules +# included in portage are (empty means logging is disabled): +# save (saves one log per package in $PORTAGE_TMPDIR/elogs) +# custom (passes all messages to $PORTAGE_LOG_COMMAND) +# syslog (sends all messages to syslog) +# mail (send all messages to the mailserver defined +# in $PORTAGE_LOG_MAILURI) +# To use elog you should enable at least one module +#PORTAGE_ELOG_SYSTEM="save mail" + +# PORTAGE_ELOG_COMMAND: only used with the "custom" logging module. Specifies a command +# to process log messages. Two variables are expanded: +# ${PACKAGE} - expands to the cpv entry of the processed +# package (see $PVR in ebuild(5)) +# ${LOGFILE} - absolute path to the logfile +#PORTAGE_ELOG_COMMAND="/path/to/logprocessor -p ${PACKAGE} -f ${LOGFILE}" + +# PORTAGE_ELOG_MAILURI: this variable holds all important settings for the mail +# module. In most cases listing the recipient adress and +# the receiving mailserver should be sufficient, but you can +# also use advanced settings like authentication or TLS. The +# full syntax is: +# adress [[user:passwd@]mailserver[:port]] +# where +# adress: recipient adress +# user: username for smtp auth (defaults to none) +# passwd: password for smtp auth (defaults to none) +# mailserver: smtp server that should be used to deliver the mail (defaults to localhost) +# port: port to use on the given smtp server (defaults to 25, values > 100000 indicate that starttls should be used on (port-100000)) +# Examples: +#PORTAGE_ELOG_MAILURI="root@localhost localhost" (this is also the default setting) +#PORTAGE_ELOG_MAILURI="user@some.domain mail.some.domain" (sends mails to user@some.domain using the mailserver mail.some.domain) +#PORTAGE_ELOG_MAILURI="user@some.domain user:secret@mail.some.domain:100465" (this is left uncommented as a reader excercise ;) diff --git a/cnf/make.conf.x86 b/cnf/make.conf.x86 index cd2da93db..32b5de719 100644 --- a/cnf/make.conf.x86 +++ b/cnf/make.conf.x86 @@ -317,3 +317,43 @@ CHOST="i686-pc-linux-gnu" # The file format is one pattern per line, blanks and ';' or '#' lines are # comments. See 'man rsync' for more details on the exclude-from format. #RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes + +# logging related variables: +# PORTAGE_ELOG_CLASSES: selects messages to be logged, possible values are: +# info, warn, error, log +# Warning: commenting this will disable elog +PORTAGE_ELOG_CLASSES="warn error log" + +# PORTAGE_ELOG_SYSTEM: selects the module(s) to process the log messages. Modules +# included in portage are (empty means logging is disabled): +# save (saves one log per package in $PORTAGE_TMPDIR/elogs) +# custom (passes all messages to $PORTAGE_LOG_COMMAND) +# syslog (sends all messages to syslog) +# mail (send all messages to the mailserver defined +# in $PORTAGE_LOG_MAILURI) +# To use elog you should enable at least one module +#PORTAGE_ELOG_SYSTEM="save mail" + +# PORTAGE_ELOG_COMMAND: only used with the "custom" logging module. Specifies a command +# to process log messages. Two variables are expanded: +# ${PACKAGE} - expands to the cpv entry of the processed +# package (see $PVR in ebuild(5)) +# ${LOGFILE} - absolute path to the logfile +#PORTAGE_ELOG_COMMAND="/path/to/logprocessor -p ${PACKAGE} -f ${LOGFILE}" + +# PORTAGE_ELOG_MAILURI: this variable holds all important settings for the mail +# module. In most cases listing the recipient adress and +# the receiving mailserver should be sufficient, but you can +# also use advanced settings like authentication or TLS. The +# full syntax is: +# adress [[user:passwd@]mailserver[:port]] +# where +# adress: recipient adress +# user: username for smtp auth (defaults to none) +# passwd: password for smtp auth (defaults to none) +# mailserver: smtp server that should be used to deliver the mail (defaults to localhost) +# port: port to use on the given smtp server (defaults to 25, values > 100000 indicate that starttls should be used on (port-100000)) +# Examples: +#PORTAGE_ELOG_MAILURI="root@localhost localhost" (this is also the default setting) +#PORTAGE_ELOG_MAILURI="user@some.domain mail.some.domain" (sends mails to user@some.domain using the mailserver mail.some.domain) +#PORTAGE_ELOG_MAILURI="user@some.domain user:secret@mail.some.domain:100465" (this is left uncommented as a reader excercise ;) diff --git a/cnf/make.conf.x86-fbsd b/cnf/make.conf.x86-fbsd index 98650bfaa..340bd2b61 100644 --- a/cnf/make.conf.x86-fbsd +++ b/cnf/make.conf.x86-fbsd @@ -308,3 +308,43 @@ CHOST="i686-unknown-freebsd5.3" # The file format is one pattern per line, blanks and ';' or '#' lines are # comments. See 'man rsync' for more details on the exclude-from format. #RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes + +# logging related variables: +# PORTAGE_ELOG_CLASSES: selects messages to be logged, possible values are: +# info, warn, error, log +# Warning: commenting this will disable elog +PORTAGE_ELOG_CLASSES="warn error log" + +# PORTAGE_ELOG_SYSTEM: selects the module(s) to process the log messages. Modules +# included in portage are (empty means logging is disabled): +# save (saves one log per package in $PORTAGE_TMPDIR/elogs) +# custom (passes all messages to $PORTAGE_LOG_COMMAND) +# syslog (sends all messages to syslog) +# mail (send all messages to the mailserver defined +# in $PORTAGE_LOG_MAILURI) +# To use elog you should enable at least one module +#PORTAGE_ELOG_SYSTEM="save mail" + +# PORTAGE_ELOG_COMMAND: only used with the "custom" logging module. Specifies a command +# to process log messages. Two variables are expanded: +# ${PACKAGE} - expands to the cpv entry of the processed +# package (see $PVR in ebuild(5)) +# ${LOGFILE} - absolute path to the logfile +#PORTAGE_ELOG_COMMAND="/path/to/logprocessor -p ${PACKAGE} -f ${LOGFILE}" + +# PORTAGE_ELOG_MAILURI: this variable holds all important settings for the mail +# module. In most cases listing the recipient adress and +# the receiving mailserver should be sufficient, but you can +# also use advanced settings like authentication or TLS. The +# full syntax is: +# adress [[user:passwd@]mailserver[:port]] +# where +# adress: recipient adress +# user: username for smtp auth (defaults to none) +# passwd: password for smtp auth (defaults to none) +# mailserver: smtp server that should be used to deliver the mail (defaults to localhost) +# port: port to use on the given smtp server (defaults to 25, values > 100000 indicate that starttls should be used on (port-100000)) +# Examples: +#PORTAGE_ELOG_MAILURI="root@localhost localhost" (this is also the default setting) +#PORTAGE_ELOG_MAILURI="user@some.domain mail.some.domain" (sends mails to user@some.domain using the mailserver mail.some.domain) +#PORTAGE_ELOG_MAILURI="user@some.domain user:secret@mail.some.domain:100465" (this is left uncommented as a reader excercise ;) diff --git a/pym/emergehelp.py b/pym/emergehelp.py index ed88eac03..19b30a6c5 100644 --- a/pym/emergehelp.py +++ b/pym/emergehelp.py @@ -113,6 +113,11 @@ def help(myaction,myopts,havecolor=1): print " your system. Specify arguments using the dependency specification" print " format described in the "+bold("--clean")+" action above." print + print " "+green("--config") + print " Run package specific actions needed to be executed after the" + print " emerge process has completed. This usually entails configuration" + print " file setup or other similar setups that the user may wish to run." + print print turquoise("Options:") print " "+green("--ask")+" ("+green("-a")+" short option)" print " before performing the merge, display what ebuilds and tbz2s will" diff --git a/pym/portage.py b/pym/portage.py index 05e0939cc..ec237f2c4 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -1455,7 +1455,7 @@ class config: if self.has_key(var): for x in string.split(self[var]): mystr = string.lower(var)+"_"+x - if mystr not in usesplit: + if mystr not in usesplit and mystr not in self.usemask: usesplit.append(mystr) # Pre-Pend ARCH variable to USE settings so '-*' in env doesn't kill arch. diff --git a/pym/portage_const.py b/pym/portage_const.py index 0a031ba3a..7d6c28b99 100644 --- a/pym/portage_const.py +++ b/pym/portage_const.py @@ -45,7 +45,7 @@ INVALID_ENV_FILE = "/etc/spork/is/not/valid/profile.env" CUSTOM_MIRRORS_FILE = USER_CONFIG_PATH+"/mirrors" CONFIG_MEMORY_FILE = PRIVATE_PATH + "/config" -INCREMENTALS=["USE","USE_EXPAND","FEATURES","ACCEPT_KEYWORDS","ACCEPT_LICENSE","CONFIG_PROTECT_MASK","CONFIG_PROTECT","PRELINK_PATH","PRELINK_PATH_MASK"] +INCREMENTALS=["USE","USE_EXPAND","USE_EXPAND_HIDDEN","FEATURES","ACCEPT_KEYWORDS","ACCEPT_LICENSE","CONFIG_PROTECT_MASK","CONFIG_PROTECT","PRELINK_PATH","PRELINK_PATH_MASK"] STICKIES=["KEYWORDS_ACCEPT","USE","CFLAGS","CXXFLAGS","MAKEOPTS","EXTRA_ECONF","EXTRA_EINSTALL","EXTRA_EMAKE"] EBUILD_PHASES = ["setup","unpack","compile","test","install","preinst","postinst","prerm","postrm"] DEFAULT_PATH = ":".join(map(lambda x: os.path.join(PREFIX, x), ["/sbin", "/usr/sbin/", "/bin", "/usr/bin"])) diff --git a/tarball.sh b/tarball.sh index eb8e7ae15..4cbacd25c 100755 --- a/tarball.sh +++ b/tarball.sh @@ -9,7 +9,7 @@ if [ -z "$1" ]; then exit 0 fi -export PKG="portage" +export PKG="portage-prefix" export TMP="/tmp" export V="$1" export DEST="${TMP}/${PKG}-${V}" @@ -24,16 +24,7 @@ fi rm -rf ${DEST} install -d -m0755 ${DEST} -#get any binaries out of the way -cd src/sandbox-1.1 -make clean -cd ../.. -for x in bin cnf man pym src -do - cp -ax $x ${DEST} -done -# Clean invalid sandbox sources -rm -rf ${DEST}/src/{sandbox,sandbox-dev} +cp -pPR . ${DEST} cp ${DEST}/pym/portage.py ${DEST}/pym/portage.py.orig sed '/^VERSION=/s/^.*$/VERSION="'${V}'"/' < ${DEST}/pym/portage.py.orig > ${DEST}/pym/portage.py cp ${DEST}/man/emerge.1 ${DEST}/man/emerge.1.orig @@ -46,14 +37,16 @@ cp ChangeLog ${DEST} cd ${DEST} find -name CVS -exec rm -rf {} \; -find -name '.svn' -exec rm -rf {} \; +find -name '.svn' -type d -exec rm -rf {} \; find -name '*~' -exec rm -rf {} \; find -name '*.pyc' -exec rm -rf {} \; find -name '*.pyo' -exec rm -rf {} \; -chown -R root:root ${DEST} +chown -R root:0 ${DEST} cd $TMP rm -f ${PKG}-${V}/bin/emerge.py ${PKG}-${V}/bin/{pmake,sandbox} ${PKG}-${V}/{bin,pym}/'.#'* ${PKG}-${V}/{bin,pym}/*.{orig,diff} ${PKG}-${V}/{bin,pym}/*.py[oc] -tar cjvf ${TMP}/${PKG}-${V}.tar.bz2 ${PKG}-${V} - +cd $TMP/${PKG}-${V} +chmod a+x autogen.sh && ./autogen.sh +rm -f AUTHORS NEWS autogen.sh make-man-tarball.sh tabcheck.py tarball.sh ChangeLog.000 COPYING +tar cjvf ${TMP}/${PKG}-${V}.tar.bz2 ${TMP}/${PKG}-${V} #scp ${TMP}/${PKG}-${V}.tar.bz2 carpaski@twobit.net:/home/html/gentoo/portage/ #scp ${TMP}/${PKG}-${V}.tar.bz2 carpaski@zarquon.twobit.net:/home/www/localhost/htdocs/gentoo/portage/