--- /dev/null
+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]
#!@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
trap SIGINT SIGQUIT
}
+
PORTAGE_INST_UID="0"
PORTAGE_INST_GID="0"
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"})
if "moo" in myfiles:
print """
- Gentoo (""" + os.uname()[0] + """)
+ Larry loves Gentoo (""" + os.uname()[0] + """)
_______________________
< Have you mooed today? >
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()
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:
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
$(set | grep '^my_envd_' | sed -e 's:^my_envd_\([[:alpha:]_][[:alnum:]_]*\)=:setenv \1 :')
EOF
-
-[[ ${ROOT} == / ]] && ${PREFIX}/sbin/depscan.sh
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"]
main()
-
#-----------------------------------------------------------------------------
"file.size",
"metadata.missing",
"metadata.bad",
-"virtual.versioned"
+"virtual.versioned",
+"virtual.exists",
+"virtual.unavailable"
]
missingvars=["KEYWORDS","LICENSE","DESCRIPTION","HOMEPAGE","SLOT"]
# 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 ;)
# 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 ;)
# 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 ;)
# 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 ;)
# 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 ;)
# 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 ;)
# 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 ;)
# 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 ;)
# 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 ;)
# 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 ;)
# 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 ;)
# 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 ;)
# 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 ;)
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"
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.
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"]))
exit 0
fi
-export PKG="portage"
+export PKG="portage-prefix"
export TMP="/tmp"
export V="$1"
export DEST="${TMP}/${PKG}-${V}"
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
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/