* [gentoo-portage-dev] [0/3] BUILD_PKGS, a replacement for build{,sys}pkg FEATURES
@ 2005-11-03 8:46 Thomas de Grenier de Latour
2005-11-03 8:48 ` [gentoo-portage-dev] [1/3] BUILD_PKGS: code Thomas de Grenier de Latour
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Thomas de Grenier de Latour @ 2005-11-03 8:46 UTC (permalink / raw
To: gentoo-portage-dev
https://bugs.gentoo.org/show_bug.cgi?id=34964
I think this patches could be candidate for the new 2.0.54 branch.
BUILD_PKGS is a new configuration variable which allows choosing
what packages should be built as .tbz2 binaries.
It is a space delimited list of rules, which can be of different
kinds:
- "*" matches any package
- "system" matches any package explicitly required by the profile
(or providing a required virtual)
- category names can be used to match all packages from a given
category (for instance "sys-apps")
- shell-like patterns on category names are also allowed (for
instance "sys-*")
- full package names can be used to match a given package (for
instance "app-office/openoffice")
- shell-like patterns on full packages names are also allowed (for
instance "*/mozilla*")
Note that depend atoms with versions are NOT valid rules (i
thought it would just make things too complicated, for little
benefit).
Rules can be negated with an exclamation mark: "!rule". Negative
rules are actually exceptions against positive rules, and only have
an effect when they are more specific than the most specific rule
matching the package. The less specific rule is "*", then it's
"system", then it's patterns on categories, etc., and the most
specific is the exact full package name.
The point for not using "-" as a negation mark is that BUILD_PKGS
is an incremental variable: removing a rule ("-rule") is different
than adding a negative rule ("!rule").
Some example of valid BUILD_PKGS values:
- Keep tbz2 for system packages and packages from "sys-something"
categories, but the kernel sources, and also for a few ones known
for the time they take to compile:
BUILD_PKGS="system sys-* !sys-kernel kde-* x11-libs/qt"
- Keep tbz2 for everything but kernel sources and -bin packages:
BUILD_PKGS="* !sys-kernel !*/*-bin"
Note that this patches deprecate the "buildpkg" and "buildsyspkg"
FEATURES flags. This flags will still work, but with a warning, and
their implementation will actually be a simple append to the
BUILD_PKGS configuration variable.
Oh, and if the name "BUILD_PKGS" sucks, feel free to sed the
patches for something better.
Thanks,
--
TGL.
--
gentoo-portage-dev@gentoo.org mailing list
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [gentoo-portage-dev] [1/3] BUILD_PKGS: code
2005-11-03 8:46 [gentoo-portage-dev] [0/3] BUILD_PKGS, a replacement for build{,sys}pkg FEATURES Thomas de Grenier de Latour
@ 2005-11-03 8:48 ` Thomas de Grenier de Latour
2005-11-03 8:50 ` [gentoo-portage-dev] [2/3] BUILD_PKGS: cnf Thomas de Grenier de Latour
2005-11-03 8:51 ` [gentoo-portage-dev] [3/3] BUILD_PKGS: man Thomas de Grenier de Latour
2 siblings, 0 replies; 4+ messages in thread
From: Thomas de Grenier de Latour @ 2005-11-03 8:48 UTC (permalink / raw
To: gentoo-portage-dev
[-- Attachment #1: Type: text/plain, Size: 1055 bytes --]
This is the code:
* pym/portage_const.py: add BUILD_PKGS to the incremental variables
* pym/portage.py, in the config class, adds:
- a getprovides() method to get the list of virtuals a pkg
provides. Code is from setinst(), and setinst() now calls
this method.
- an issytem() method to check whether a package is in the
system list or provides a virtual required by system. It
uses getprovides().
* pym/portage.py, in portdbapi, adds:
- an istobuildpkg() method, which evaluates the BUILD_PKGS
rules against a CPV. If matches, returns a non-empty string
(the best matching rule), and else returns 0. It uses
config.issystem().
* bin/emerge:
- deals with buildpkg/buildsyspkg deprecation, appending "*" or
"system" to BUILD_PKGS if necessary.
- reverses other "buildsyspkg" changes
- in depgraph.merge(), call istobuildpkg() to check whether
binary package should be created. If yes, do it (similar to
--buildpkg), and also display which rule was matching.
--
TGL.
[-- Attachment #2: portage-2.0-svn20051024-BUILD_PKGS-code.patch --]
[-- Type: text/x-patch, Size: 7465 bytes --]
--- pym/portage_const.py.0 2005-10-25 11:56:22.000000000 +0200
+++ pym/portage_const.py 2005-10-25 11:57:11.000000000 +0200
@@ -40,7 +40,7 @@
SANDBOX_PIDS_FILE = "/tmp/sandboxpids.tmp"
CONFIG_MEMORY_FILE = PRIVATE_PATH + "/config"
-INCREMENTALS=["USE","FEATURES","ACCEPT_KEYWORDS","ACCEPT_LICENSE","CONFIG_PROTECT_MASK","CONFIG_PROTECT","PRELINK_PATH","PRELINK_PATH_MASK"]
+INCREMENTALS=["USE","FEATURES","ACCEPT_KEYWORDS","ACCEPT_LICENSE","CONFIG_PROTECT_MASK","CONFIG_PROTECT","PRELINK_PATH","PRELINK_PATH_MASK","BUILD_PKGS"]
STICKIES=["KEYWORDS_ACCEPT","USE","CFLAGS","CXXFLAGS","MAKEOPTS","EXTRA_ECONF","EXTRA_EINSTALL","EXTRA_EMAKE"]
EAPI = 0
--- pym/portage.py.0 2005-10-25 11:45:03.000000000 +0200
+++ pym/portage.py 2005-10-25 15:06:57.000000000 +0200
@@ -1307,14 +1307,19 @@
self.configdict["pkg"]["USE"] = self.puse[:] # this gets appended to USE
self.reset(keeping_pkg=1,use_cache=use_cache)
- def setinst(self,mycpv,mydbapi):
- # Grab the virtuals this package provides and add them into the tree virtuals.
+ def getprovides(self,mycpv,mydbapi):
+ # Returns the list of virtuals a package provides.
provides = mydbapi.aux_get(mycpv, ["PROVIDE"])[0]
if isinstance(mydbapi, portdbapi):
myuse = self["USE"]
else:
myuse = mydbapi.aux_get(mycpv, ["USE"])[0]
virts = flatten(portage_dep.use_reduce(portage_dep.paren_reduce(provides), uselist=myuse.split()))
+ return virts
+
+ def setinst(self,mycpv,mydbapi):
+ # Grab the virtuals this package provides and add them into the tree virtuals.
+ virts = self.getprovides(mycpv,mydbapi)
cp = dep_getkey(mycpv)
for virt in virts:
@@ -1326,6 +1331,19 @@
self.virtuals = self.__getvirtuals_compile()
+ def issystem(self,mydbapi,mycpv=None,skip_provides=0):
+ # Check whether mycpv (or self.mycpv) is a system package (or provides a system virtual)
+ if not mycpv:
+ if self.mycpv: mycpv = self.mycpv
+ else: return 0
+ mysplit = pkgsplit(mycpv)
+ pkgdeps = [ dep[1:] for dep in self.packages if dep[0] == '*' ]
+ if match_to_list(mycpv,pkgdeps): return 1
+ if not skip_provides:
+ myprovides = self.getprovides(mycpv,mydbapi)
+ for mykey in myprovides:
+ if mykey in pkgdeps: return 1
+ return 0
def regenerate(self,useonly=0,use_cache=1):
global usesplit,profiledir
@@ -5743,6 +5761,47 @@
newlist.append(mycpv)
return newlist
+ def istobuildpkg(self,mycpv):
+ # Check whether a package match the BUILD_PKGS policy.
+ # Returns a string (best matching rule) to say "yes", and 0 to say "no".
+ from fnmatch import fnmatch
+ mykey = cpv_getkey(mycpv)
+ mycat = mykey.split("/")[0]
+ mybuildpolicy = self.mysettings["BUILD_PKGS"].split()
+ # A package will be kept if it matches at least one positive rule,
+ # and no negative rule of a strictly higher level. Levels are:
+ # 6 for "cat/pkg", 5 for pattern on "cat/pkg", 4 for "category",
+ # 3 for pattern on "category", 2 for "system" and 1 for "*".
+ conclusion=0
+ bestrule=""
+ for myrule in mybuildpolicy:
+ # Rule sign: negative if "!something"
+ rulesign=1
+ if myrule[0]=="!":
+ rulesign=-1
+ myrule=myrule[1:]
+ # Calculate rule value (0 if non-matching)
+ rulevalue=0
+ if myrule == "*":
+ rulevalue = 1 * rulesign
+ elif myrule == "system" and self.mysettings.issystem(self, mycpv):
+ rulevalue = 2 * rulesign
+ elif myrule == mycat:
+ rulevalue = 4 * rulesign
+ elif fnmatch(mycat.lower(),myrule.lower()):
+ rulevalue = 3 * rulesign
+ elif myrule == mykey:
+ rulevalue = 6 * rulesign
+ elif fnmatch(mykey.lower(),myrule.lower()):
+ rulevalue = 5 * rulesign
+ # Update conclusion. Be carefull not to depend on rules ordering.
+ if (conclusion >= 0) and (abs(rulevalue) > conclusion) \
+ or (conclusion < 0) and (abs(rulevalue) >= abs(conclusion)):
+ conclusion=rulevalue
+ bestrule=myrule
+ if conclusion > 0: return bestrule
+ else: return 0
+
class binarytree(packagetree):
"this tree scans for a list of all packages available in PKGDIR"
def __init__(self,root,pkgdir,virtual=None,clone=None):
--- bin/emerge.0 2005-10-25 12:24:58.000000000 +0200
+++ bin/emerge 2005-10-25 13:02:10.000000000 +0200
@@ -318,11 +318,25 @@
print "emerge: can't specify both of \"--tree\" and \"--columns\"."
sys.exit(1)
-# Always create packages if FEATURES=buildpkg
# Imply --buildpkg if --buildpkgonly
-if ("buildpkg" in portage.features) or ("--buildpkgonly" in myopts):
- if "--buildpkg" not in myopts:
- myopts.append("--buildpkg")
+if ("--buildpkgonly" in myopts) and ("--buildpkg" not in myopts):
+ myopts.append("--buildpkg")
+
+# FEATURES=buildpkg deprecation
+if ("buildpkg" in portage.features):
+ print "!!! FEATURES=\"buildpkg\" is deprecated. Use BUILD_PKGS=\"*\" instead."
+ portage.settings.unlock()
+ portage.settings["BUILD_PKGS"]=portage.settings["BUILD_PKGS"]+" *"
+ portage.settings.backup_changes("BUILD_PKGS")
+ portage.settings.lock()
+
+# FEATURES=buildsyspkg deprecation
+if ("buildsyspkg" in portage.features):
+ print "!!! FEATURES=\"buildsyspkg\" is deprecated. Use BUILD_PKGS=\"system\" instead."
+ portage.settings.unlock()
+ portage.settings["BUILD_PKGS"]=portage.settings["BUILD_PKGS"]+" system"
+ portage.settings.backup_changes("BUILD_PKGS")
+ portage.settings.lock()
# --tree only makes sense with --pretend
if "--tree" in myopts and not (("--pretend" in myopts) or ("--ask" in myopts)):
@@ -1775,8 +1789,6 @@
if ("--pretend" not in myopts):
sys.exit(1)
- #buildsyspkg: I need mysysdict also on resume (moved from the else block)
- mysysdict=genericdict(syslist)
if ("--resume" in myopts):
# We're resuming.
print green("*** Resuming merge...")
@@ -1788,6 +1800,7 @@
else:
myfavs=portage.grabfile(portage.root+portage.WORLD_FILE)
myfavdict=genericdict(myfavs)
+ mysysdict=genericdict(syslist)
for x in range(len(mylist)):
if mylist[x][3]!="nomerge":
# Add to the mergelist
@@ -1834,12 +1847,8 @@
self.pkgsettings.backup_changes("EMERGE_FROM")
self.pkgsettings.reset()
- #buildsyspkg: Check if we need to _force_ binary package creation
- issyspkg = ("buildsyspkg" in myfeat) \
- and x[0] != "blocks" \
- and mysysdict.has_key(portage.cpv_getkey(x[2])) \
- and not ("--buildpkg" in myopts)
if x[0] in ["ebuild","blocks"]:
+ buildpkgrule = portage.db[myroot]["porttree"].dbapi.istobuildpkg(x[pkgindex])
if (x[0]=="blocks") and ("--fetchonly" not in myopts):
raise Exception, "Merging a blocker"
elif ("--fetchonly" in myopts) or ("--fetch-all-uri" in myopts):
@@ -1853,11 +1862,10 @@
print
returnme=1
continue
- elif "--buildpkg" in myopts or issyspkg:
- #buildsyspkg: Sounds useful to display something, but I don't know if we should also log it
- if issyspkg:
- print ">>> This is a system package, let's pack a rescue tarball."
- #emergelog(">>> This is a system package, let's pack a rescue tarball.")
+ elif ("--buildpkg" in myopts) or buildpkgrule:
+ if not ("--buildpkg" in myopts) :
+ print ">>> We'll keep a binary tarball of this package,"
+ print ">>> because of BUILD_PKGS rule \"%s\"" % buildpkgrule
#create pkg, then merge pkg
short_msg = "emerge: ("+str(mergecount)+" of "+str(len(mymergelist))+") "+x[pkgindex]+" Clean"
emergelog(" === ("+str(mergecount)+" of "+str(len(mymergelist))+") Cleaning ("+x[pkgindex]+"::"+y+")", short_msg=short_msg)
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [gentoo-portage-dev] [2/3] BUILD_PKGS: cnf
2005-11-03 8:46 [gentoo-portage-dev] [0/3] BUILD_PKGS, a replacement for build{,sys}pkg FEATURES Thomas de Grenier de Latour
2005-11-03 8:48 ` [gentoo-portage-dev] [1/3] BUILD_PKGS: code Thomas de Grenier de Latour
@ 2005-11-03 8:50 ` Thomas de Grenier de Latour
2005-11-03 8:51 ` [gentoo-portage-dev] [3/3] BUILD_PKGS: man Thomas de Grenier de Latour
2 siblings, 0 replies; 4+ messages in thread
From: Thomas de Grenier de Latour @ 2005-11-03 8:50 UTC (permalink / raw
To: gentoo-portage-dev
[-- Attachment #1: Type: text/plain, Size: 80 bytes --]
This patch adds documentation for BUILD_PKGS in cnf/make.conf*
files.
--
TGL.
[-- Attachment #2: portage-2.0-svn20051024-BUILD_PKGS-cnf.patch --]
[-- Type: text/x-patch, Size: 42484 bytes --]
diff -uNr cnf.orig/make.conf cnf/make.conf
--- cnf.orig/make.conf 2005-10-25 13:08:19.770107152 +0200
+++ cnf/make.conf 2005-10-25 13:54:12.281661792 +0200
@@ -256,8 +256,7 @@
# 'autoaddcvs' causes portage to automatically try to add files to cvs
# that will have to be added later. Done at generation times
# and only has an effect when 'cvs' is also set.
-# 'buildpkg' causes binary packages to be created of all packages that
-# are being merged.
+# 'buildpkg' !!! DEPRECATED: use the BUILD_PKGS variable instead.
# 'ccache' enables ccache support via CC.
# 'collision-protect'
# prevents packages from overwriting files that are owned by
@@ -296,7 +295,7 @@
# as a security measure. As a side effect this can remove
# sandbox access violations for users.
# 'usersandbox' enables sandboxing while portage is running under userpriv.
-#FEATURES="sandbox buildpkg ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
+#FEATURES="sandbox ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
#FEATURES="sandbox ccache distcc distlocks autoaddcvs"
#
# CCACHE_SIZE sets the space use limitations for ccache. The default size is
@@ -317,3 +316,29 @@
# 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
+#
+# BUILD_PKGS lists the packages for which binary tarballs should be kept.
+# Different kind of rules can be used here:
+# - "*" matches any package. It replaces the "buildpkg" FEATURES flag.
+# - "system" matches any package required by your profile (or providing a
+# required virtual). It replaces the "buildsyspkg" FEATURES flag.
+# - category names can be used to match all packages from a given category
+# (for instance "sys-apps")
+# - shell-like patterns on category names are also allowed
+# (for instance "sys-*")
+# - full package names can be used to match a given package
+# (for instance "app-office/openoffice")
+# - shell-like patterns on full packages names are also allowed
+# (for instance "*/mozilla*").
+# Note that depend atoms with versions (like ">=app-office/openoffice-2")
+# are NOT valid rules.
+# Rules can be negated with an exclamation mark: "!rule". Such negative
+# rules will only take precedence over positive rules when they are more
+# precise. The less precise rule is "*", then it's "system", then it's
+# patterns on categories, etc., and the most precise is exact full package
+# name.
+# The following example is a valid BUILD_PKGS spec which states that binary
+# tarballs should be kept for system packages and packages from a
+# "sys-something" category, but the ones from "sys-kernel", and also for a
+# few more packages known for the time they take to compile:
+#BUILD_PKGS="system sys-* !sys-kernel kde-* www-client/mozilla www-client/mozilla-firefox mail-client/mozilla-thunderbird x11-libs/qt x11-base/xorg-x11"
diff -uNr cnf.orig/make.conf.alpha cnf/make.conf.alpha
--- cnf.orig/make.conf.alpha 2005-10-25 13:08:19.759108824 +0200
+++ cnf/make.conf.alpha 2005-10-25 13:54:12.282661640 +0200
@@ -242,8 +242,7 @@
# 'autoaddcvs' causes portage to automatically try to add files to cvs
# that will have to be added later. Done at generation times
# and only has an effect when 'cvs' is also set.
-# 'buildpkg' causes binary packages to be created of all packages that
-# are being merged.
+# 'buildpkg' !!! DEPRECATED: use the BUILD_PKGS variable instead.
# 'ccache' enables ccache support via CC.
# 'collision-protect'
# prevents packages from overwriting files that are owned by
@@ -282,7 +281,7 @@
# as a security measure. As a side effect this can remove
# sandbox access violations for users.
# 'usersandbox' enables sandboxing while portage is running under userpriv.
-#FEATURES="sandbox buildpkg ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
+#FEATURES="sandbox ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
#FEATURES="sandbox ccache distcc distlocks autoaddcvs"
#
# CCACHE_SIZE sets the space use limitations for ccache. The default size is
@@ -303,3 +302,29 @@
# 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
+#
+# BUILD_PKGS lists the packages for which binary tarballs should be kept.
+# Different kind of rules can be used here:
+# - "*" matches any package. It replaces the "buildpkg" FEATURES flag.
+# - "system" matches any package required by your profile (or providing a
+# required virtual). It replaces the "buildsyspkg" FEATURES flag.
+# - category names can be used to match all packages from a given category
+# (for instance "sys-apps")
+# - shell-like patterns on category names are also allowed
+# (for instance "sys-*")
+# - full package names can be used to match a given package
+# (for instance "app-office/openoffice")
+# - shell-like patterns on full packages names are also allowed
+# (for instance "*/mozilla*").
+# Note that depend atoms with versions (like ">=app-office/openoffice-2")
+# are NOT valid rules.
+# Rules can be negated with an exclamation mark: "!rule". Such negative
+# rules will only take precedence over positive rules when they are more
+# precise. The less precise rule is "*", then it's "system", then it's
+# patterns on categories, etc., and the most precise is exact full package
+# name.
+# The following example is a valid BUILD_PKGS spec which states that binary
+# tarballs should be kept for system packages and packages from a
+# "sys-something" category, but the ones from "sys-kernel", and also for a
+# few more packages known for the time they take to compile:
+#BUILD_PKGS="system sys-* !sys-kernel kde-* www-client/mozilla www-client/mozilla-firefox mail-client/mozilla-thunderbird x11-libs/qt x11-base/xorg-x11"
diff -uNr cnf.orig/make.conf.amd64 cnf/make.conf.amd64
--- cnf.orig/make.conf.amd64 2005-10-25 13:08:19.770107152 +0200
+++ cnf/make.conf.amd64 2005-10-25 13:54:12.283661488 +0200
@@ -253,8 +253,7 @@
# 'autoaddcvs' causes portage to automatically try to add files to cvs
# that will have to be added later. Done at generation times
# and only has an effect when 'cvs' is also set.
-# 'buildpkg' causes binary packages to be created of all packages that
-# are being merged.
+# 'buildpkg' !!! DEPRECATED: use the BUILD_PKGS variable instead.
# 'ccache' enables ccache support via CC.
# 'collision-protect'
# prevents packages from overwriting files that are owned by
@@ -293,7 +292,7 @@
# as a security measure. As a side effect this can remove
# sandbox access violations for users.
# 'usersandbox' enables sandboxing while portage is running under userpriv.
-#FEATURES="sandbox buildpkg ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
+#FEATURES="sandbox ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
#FEATURES="sandbox ccache distcc distlocks autoaddcvs"
#
# CCACHE_SIZE sets the space use limitations for ccache. The default size is
@@ -314,3 +313,29 @@
# 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
+#
+# BUILD_PKGS lists the packages for which binary tarballs should be kept.
+# Different kind of rules can be used here:
+# - "*" matches any package. It replaces the "buildpkg" FEATURES flag.
+# - "system" matches any package required by your profile (or providing a
+# required virtual). It replaces the "buildsyspkg" FEATURES flag.
+# - category names can be used to match all packages from a given category
+# (for instance "sys-apps")
+# - shell-like patterns on category names are also allowed
+# (for instance "sys-*")
+# - full package names can be used to match a given package
+# (for instance "app-office/openoffice")
+# - shell-like patterns on full packages names are also allowed
+# (for instance "*/mozilla*").
+# Note that depend atoms with versions (like ">=app-office/openoffice-2")
+# are NOT valid rules.
+# Rules can be negated with an exclamation mark: "!rule". Such negative
+# rules will only take precedence over positive rules when they are more
+# precise. The less precise rule is "*", then it's "system", then it's
+# patterns on categories, etc., and the most precise is exact full package
+# name.
+# The following example is a valid BUILD_PKGS spec which states that binary
+# tarballs should be kept for system packages and packages from a
+# "sys-something" category, but the ones from "sys-kernel", and also for a
+# few more packages known for the time they take to compile:
+#BUILD_PKGS="system sys-* !sys-kernel kde-* www-client/mozilla www-client/mozilla-firefox mail-client/mozilla-thunderbird x11-libs/qt x11-base/xorg-x11"
diff -uNr cnf.orig/make.conf.arm cnf/make.conf.arm
--- cnf.orig/make.conf.arm 2005-10-25 13:08:19.759108824 +0200
+++ cnf/make.conf.arm 2005-10-25 13:54:12.284661336 +0200
@@ -250,8 +250,7 @@
# 'autoaddcvs' causes portage to automatically try to add files to cvs
# that will have to be added later. Done at generation times
# and only has an effect when 'cvs' is also set.
-# 'buildpkg' causes binary packages to be created of all packages that
-# are being merged.
+# 'buildpkg' !!! DEPRECATED: use the BUILD_PKGS variable instead.
# 'ccache' enables ccache support via CC.
# 'collision-protect'
# prevents packages from overwriting files that are owned by
@@ -290,7 +289,7 @@
# as a security measure. As a side effect this can remove
# sandbox access violations for users.
# 'usersandbox' enables sandboxing while portage is running under userpriv.
-#FEATURES="sandbox buildpkg ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
+#FEATURES="sandbox ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
#FEATURES="sandbox ccache distcc distlocks autoaddcvs"
#
# CCACHE_SIZE sets the space use limitations for ccache. The default size is
@@ -311,3 +310,29 @@
# 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
+#
+# BUILD_PKGS lists the packages for which binary tarballs should be kept.
+# Different kind of rules can be used here:
+# - "*" matches any package. It replaces the "buildpkg" FEATURES flag.
+# - "system" matches any package required by your profile (or providing a
+# required virtual). It replaces the "buildsyspkg" FEATURES flag.
+# - category names can be used to match all packages from a given category
+# (for instance "sys-apps")
+# - shell-like patterns on category names are also allowed
+# (for instance "sys-*")
+# - full package names can be used to match a given package
+# (for instance "app-office/openoffice")
+# - shell-like patterns on full packages names are also allowed
+# (for instance "*/mozilla*").
+# Note that depend atoms with versions (like ">=app-office/openoffice-2")
+# are NOT valid rules.
+# Rules can be negated with an exclamation mark: "!rule". Such negative
+# rules will only take precedence over positive rules when they are more
+# precise. The less precise rule is "*", then it's "system", then it's
+# patterns on categories, etc., and the most precise is exact full package
+# name.
+# The following example is a valid BUILD_PKGS spec which states that binary
+# tarballs should be kept for system packages and packages from a
+# "sys-something" category, but the ones from "sys-kernel", and also for a
+# few more packages known for the time they take to compile:
+#BUILD_PKGS="system sys-* !sys-kernel kde-* www-client/mozilla www-client/mozilla-firefox mail-client/mozilla-thunderbird x11-libs/qt x11-base/xorg-x11"
diff -uNr cnf.orig/make.conf.hppa cnf/make.conf.hppa
--- cnf.orig/make.conf.hppa 2005-10-25 13:08:19.759108824 +0200
+++ cnf/make.conf.hppa 2005-10-25 13:54:12.288660728 +0200
@@ -259,8 +259,7 @@
# 'autoaddcvs' causes portage to automatically try to add files to cvs
# that will have to be added later. Done at generation times
# and only has an effect when 'cvs' is also set.
-# 'buildpkg' causes binary packages to be created of all packages that
-# are being merged.
+# 'buildpkg' !!! DEPRECATED: use the BUILD_PKGS variable instead.
# 'ccache' enables ccache support via CC.
# 'collision-protect'
# prevents packages from overwriting files that are owned by
@@ -299,7 +298,7 @@
# as a security measure. As a side effect this can remove
# sandbox access violations for users.
# 'usersandbox' enables sandboxing while portage is running under userpriv.
-#FEATURES="sandbox buildpkg ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
+#FEATURES="sandbox ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
#FEATURES="sandbox ccache distcc distlocks autoaddcvs"
#
# CCACHE_SIZE sets the space use limitations for ccache. The default size is
@@ -320,3 +319,29 @@
# 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
+#
+# BUILD_PKGS lists the packages for which binary tarballs should be kept.
+# Different kind of rules can be used here:
+# - "*" matches any package. It replaces the "buildpkg" FEATURES flag.
+# - "system" matches any package required by your profile (or providing a
+# required virtual). It replaces the "buildsyspkg" FEATURES flag.
+# - category names can be used to match all packages from a given category
+# (for instance "sys-apps")
+# - shell-like patterns on category names are also allowed
+# (for instance "sys-*")
+# - full package names can be used to match a given package
+# (for instance "app-office/openoffice")
+# - shell-like patterns on full packages names are also allowed
+# (for instance "*/mozilla*").
+# Note that depend atoms with versions (like ">=app-office/openoffice-2")
+# are NOT valid rules.
+# Rules can be negated with an exclamation mark: "!rule". Such negative
+# rules will only take precedence over positive rules when they are more
+# precise. The less precise rule is "*", then it's "system", then it's
+# patterns on categories, etc., and the most precise is exact full package
+# name.
+# The following example is a valid BUILD_PKGS spec which states that binary
+# tarballs should be kept for system packages and packages from a
+# "sys-something" category, but the ones from "sys-kernel", and also for a
+# few more packages known for the time they take to compile:
+#BUILD_PKGS="system sys-* !sys-kernel kde-* www-client/mozilla www-client/mozilla-firefox mail-client/mozilla-thunderbird x11-libs/qt x11-base/xorg-x11"
diff -uNr cnf.orig/make.conf.ia64 cnf/make.conf.ia64
--- cnf.orig/make.conf.ia64 2005-10-25 13:08:19.759108824 +0200
+++ cnf/make.conf.ia64 2005-10-25 13:54:12.289660576 +0200
@@ -221,8 +221,7 @@
# 'autoaddcvs' causes portage to automatically try to add files to cvs
# that will have to be added later. Done at generation times
# and only has an effect when 'cvs' is also set.
-# 'buildpkg' causes binary packages to be created of all packages that
-# are being merged.
+# 'buildpkg' !!! DEPRECATED: use the BUILD_PKGS variable instead.
# 'ccache' enables ccache support via CC.
# 'collision-protect'
# prevents packages from overwriting files that are owned by
@@ -261,7 +260,7 @@
# as a security measure. As a side effect this can remove
# sandbox access violations for users.
# 'usersandbox' enables sandboxing while portage is running under userpriv.
-#FEATURES="sandbox buildpkg ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
+#FEATURES="sandbox ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
#FEATURES="sandbox ccache distcc distlocks autoaddcvs"
#
# CCACHE_SIZE sets the space use limitations for ccache. The default size is
@@ -282,3 +281,29 @@
# 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
+#
+# BUILD_PKGS lists the packages for which binary tarballs should be kept.
+# Different kind of rules can be used here:
+# - "*" matches any package. It replaces the "buildpkg" FEATURES flag.
+# - "system" matches any package required by your profile (or providing a
+# required virtual). It replaces the "buildsyspkg" FEATURES flag.
+# - category names can be used to match all packages from a given category
+# (for instance "sys-apps")
+# - shell-like patterns on category names are also allowed
+# (for instance "sys-*")
+# - full package names can be used to match a given package
+# (for instance "app-office/openoffice")
+# - shell-like patterns on full packages names are also allowed
+# (for instance "*/mozilla*").
+# Note that depend atoms with versions (like ">=app-office/openoffice-2")
+# are NOT valid rules.
+# Rules can be negated with an exclamation mark: "!rule". Such negative
+# rules will only take precedence over positive rules when they are more
+# precise. The less precise rule is "*", then it's "system", then it's
+# patterns on categories, etc., and the most precise is exact full package
+# name.
+# The following example is a valid BUILD_PKGS spec which states that binary
+# tarballs should be kept for system packages and packages from a
+# "sys-something" category, but the ones from "sys-kernel", and also for a
+# few more packages known for the time they take to compile:
+#BUILD_PKGS="system sys-* !sys-kernel kde-* www-client/mozilla www-client/mozilla-firefox mail-client/mozilla-thunderbird x11-libs/qt x11-base/xorg-x11"
diff -uNr cnf.orig/make.conf.mips cnf/make.conf.mips
--- cnf.orig/make.conf.mips 2005-10-25 13:08:19.770107152 +0200
+++ cnf/make.conf.mips 2005-10-25 13:54:12.289660576 +0200
@@ -239,8 +239,7 @@
# 'autoaddcvs' causes portage to automatically try to add files to cvs
# that will have to be added later. Done at generation times
# and only has an effect when 'cvs' is also set.
-# 'buildpkg' causes binary packages to be created of all packages that
-# are being merged.
+# 'buildpkg' !!! DEPRECATED: use the BUILD_PKGS variable instead.
# 'ccache' enables ccache support via CC.
# 'collision-protect'
# prevents packages from overwriting files that are owned by
@@ -279,7 +278,7 @@
# as a security measure. As a side effect this can remove
# sandbox access violations for users.
# 'usersandbox' enables sandboxing while portage is running under userpriv.
-#FEATURES="sandbox buildpkg ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
+#FEATURES="sandbox ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
#FEATURES="sandbox ccache distcc distlocks autoaddcvs"
#
# CCACHE_SIZE sets the space use limitations for ccache. The default size is
@@ -300,3 +299,29 @@
# 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
+#
+# BUILD_PKGS lists the packages for which binary tarballs should be kept.
+# Different kind of rules can be used here:
+# - "*" matches any package. It replaces the "buildpkg" FEATURES flag.
+# - "system" matches any package required by your profile (or providing a
+# required virtual). It replaces the "buildsyspkg" FEATURES flag.
+# - category names can be used to match all packages from a given category
+# (for instance "sys-apps")
+# - shell-like patterns on category names are also allowed
+# (for instance "sys-*")
+# - full package names can be used to match a given package
+# (for instance "app-office/openoffice")
+# - shell-like patterns on full packages names are also allowed
+# (for instance "*/mozilla*").
+# Note that depend atoms with versions (like ">=app-office/openoffice-2")
+# are NOT valid rules.
+# Rules can be negated with an exclamation mark: "!rule". Such negative
+# rules will only take precedence over positive rules when they are more
+# precise. The less precise rule is "*", then it's "system", then it's
+# patterns on categories, etc., and the most precise is exact full package
+# name.
+# The following example is a valid BUILD_PKGS spec which states that binary
+# tarballs should be kept for system packages and packages from a
+# "sys-something" category, but the ones from "sys-kernel", and also for a
+# few more packages known for the time they take to compile:
+#BUILD_PKGS="system sys-* !sys-kernel kde-* www-client/mozilla www-client/mozilla-firefox mail-client/mozilla-thunderbird x11-libs/qt x11-base/xorg-x11"
diff -uNr cnf.orig/make.conf.ppc cnf/make.conf.ppc
--- cnf.orig/make.conf.ppc 2005-10-25 13:08:19.759108824 +0200
+++ cnf/make.conf.ppc 2005-10-25 13:54:12.290660424 +0200
@@ -272,8 +272,7 @@
# 'autoaddcvs' causes portage to automatically try to add files to cvs
# that will have to be added later. Done at generation times
# and only has an effect when 'cvs' is also set.
-# 'buildpkg' causes binary packages to be created of all packages that
-# are being merged.
+# 'buildpkg' !!! DEPRECATED: use the BUILD_PKGS variable instead.
# 'ccache' enables ccache support via CC.
# 'collision-protect'
# prevents packages from overwriting files that are owned by
@@ -312,7 +311,7 @@
# as a security measure. As a side effect this can remove
# sandbox access violations for users.
# 'usersandbox' enables sandboxing while portage is running under userpriv.
-#FEATURES="sandbox buildpkg ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
+#FEATURES="sandbox ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
#FEATURES="sandbox ccache distcc distlocks autoaddcvs"
#
# CCACHE_SIZE sets the space use limitations for ccache. The default size is
@@ -333,3 +332,29 @@
# 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
+#
+# BUILD_PKGS lists the packages for which binary tarballs should be kept.
+# Different kind of rules can be used here:
+# - "*" matches any package. It replaces the "buildpkg" FEATURES flag.
+# - "system" matches any package required by your profile (or providing a
+# required virtual). It replaces the "buildsyspkg" FEATURES flag.
+# - category names can be used to match all packages from a given category
+# (for instance "sys-apps")
+# - shell-like patterns on category names are also allowed
+# (for instance "sys-*")
+# - full package names can be used to match a given package
+# (for instance "app-office/openoffice")
+# - shell-like patterns on full packages names are also allowed
+# (for instance "*/mozilla*").
+# Note that depend atoms with versions (like ">=app-office/openoffice-2")
+# are NOT valid rules.
+# Rules can be negated with an exclamation mark: "!rule". Such negative
+# rules will only take precedence over positive rules when they are more
+# precise. The less precise rule is "*", then it's "system", then it's
+# patterns on categories, etc., and the most precise is exact full package
+# name.
+# The following example is a valid BUILD_PKGS spec which states that binary
+# tarballs should be kept for system packages and packages from a
+# "sys-something" category, but the ones from "sys-kernel", and also for a
+# few more packages known for the time they take to compile:
+#BUILD_PKGS="system sys-* !sys-kernel kde-* www-client/mozilla www-client/mozilla-firefox mail-client/mozilla-thunderbird x11-libs/qt x11-base/xorg-x11"
diff -uNr cnf.orig/make.conf.ppc64 cnf/make.conf.ppc64
--- cnf.orig/make.conf.ppc64 2005-10-25 13:08:19.760108672 +0200
+++ cnf/make.conf.ppc64 2005-10-25 13:54:12.290660424 +0200
@@ -257,8 +257,7 @@
# 'autoaddcvs' causes portage to automatically try to add files to cvs
# that will have to be added later. Done at generation times
# and only has an effect when 'cvs' is also set.
-# 'buildpkg' causes binary packages to be created of all packages that
-# are being merged.
+# 'buildpkg' !!! DEPRECATED: use the BUILD_PKGS variable instead.
# 'ccache' enables ccache support via CC.
# 'collision-protect'
# prevents packages from overwriting files that are owned by
@@ -297,7 +296,7 @@
# as a security measure. As a side effect this can remove
# sandbox access violations for users.
# 'usersandbox' enables sandboxing while portage is running under userpriv.
-#FEATURES="sandbox buildpkg ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
+#FEATURES="sandbox ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
#FEATURES="sandbox ccache distcc distlocks autoaddcvs"
#
# CCACHE_SIZE sets the space use limitations for ccache. The default size is
@@ -318,3 +317,29 @@
# 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
+#
+# BUILD_PKGS lists the packages for which binary tarballs should be kept.
+# Different kind of rules can be used here:
+# - "*" matches any package. It replaces the "buildpkg" FEATURES flag.
+# - "system" matches any package required by your profile (or providing a
+# required virtual). It replaces the "buildsyspkg" FEATURES flag.
+# - category names can be used to match all packages from a given category
+# (for instance "sys-apps")
+# - shell-like patterns on category names are also allowed
+# (for instance "sys-*")
+# - full package names can be used to match a given package
+# (for instance "app-office/openoffice")
+# - shell-like patterns on full packages names are also allowed
+# (for instance "*/mozilla*").
+# Note that depend atoms with versions (like ">=app-office/openoffice-2")
+# are NOT valid rules.
+# Rules can be negated with an exclamation mark: "!rule". Such negative
+# rules will only take precedence over positive rules when they are more
+# precise. The less precise rule is "*", then it's "system", then it's
+# patterns on categories, etc., and the most precise is exact full package
+# name.
+# The following example is a valid BUILD_PKGS spec which states that binary
+# tarballs should be kept for system packages and packages from a
+# "sys-something" category, but the ones from "sys-kernel", and also for a
+# few more packages known for the time they take to compile:
+#BUILD_PKGS="system sys-* !sys-kernel kde-* www-client/mozilla www-client/mozilla-firefox mail-client/mozilla-thunderbird x11-libs/qt x11-base/xorg-x11"
diff -uNr cnf.orig/make.conf.s390 cnf/make.conf.s390
--- cnf.orig/make.conf.s390 2005-10-25 13:08:19.760108672 +0200
+++ cnf/make.conf.s390 2005-10-25 13:54:12.290660424 +0200
@@ -221,8 +221,7 @@
# 'autoaddcvs' causes portage to automatically try to add files to cvs
# that will have to be added later. Done at generation times
# and only has an effect when 'cvs' is also set.
-# 'buildpkg' causes binary packages to be created of all packages that
-# are being merged.
+# 'buildpkg' !!! DEPRECATED: use the BUILD_PKGS variable instead.
# 'ccache' enables ccache support via CC.
# 'collision-protect'
# prevents packages from overwriting files that are owned by
@@ -261,7 +260,7 @@
# as a security measure. As a side effect this can remove
# sandbox access violations for users.
# 'usersandbox' enables sandboxing while portage is running under userpriv.
-#FEATURES="sandbox buildpkg ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
+#FEATURES="sandbox ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
#FEATURES="sandbox ccache distcc distlocks autoaddcvs"
#
# CCACHE_SIZE sets the space use limitations for ccache. The default size is
@@ -282,3 +281,29 @@
# 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
+#
+# BUILD_PKGS lists the packages for which binary tarballs should be kept.
+# Different kind of rules can be used here:
+# - "*" matches any package. It replaces the "buildpkg" FEATURES flag.
+# - "system" matches any package required by your profile (or providing a
+# required virtual). It replaces the "buildsyspkg" FEATURES flag.
+# - category names can be used to match all packages from a given category
+# (for instance "sys-apps")
+# - shell-like patterns on category names are also allowed
+# (for instance "sys-*")
+# - full package names can be used to match a given package
+# (for instance "app-office/openoffice")
+# - shell-like patterns on full packages names are also allowed
+# (for instance "*/mozilla*").
+# Note that depend atoms with versions (like ">=app-office/openoffice-2")
+# are NOT valid rules.
+# Rules can be negated with an exclamation mark: "!rule". Such negative
+# rules will only take precedence over positive rules when they are more
+# precise. The less precise rule is "*", then it's "system", then it's
+# patterns on categories, etc., and the most precise is exact full package
+# name.
+# The following example is a valid BUILD_PKGS spec which states that binary
+# tarballs should be kept for system packages and packages from a
+# "sys-something" category, but the ones from "sys-kernel", and also for a
+# few more packages known for the time they take to compile:
+#BUILD_PKGS="system sys-* !sys-kernel kde-* www-client/mozilla www-client/mozilla-firefox mail-client/mozilla-thunderbird x11-libs/qt x11-base/xorg-x11"
diff -uNr cnf.orig/make.conf.sparc cnf/make.conf.sparc
--- cnf.orig/make.conf.sparc 2005-10-25 13:08:19.760108672 +0200
+++ cnf/make.conf.sparc 2005-10-25 13:54:12.291660272 +0200
@@ -257,8 +257,7 @@
# 'autoaddcvs' causes portage to automatically try to add files to cvs
# that will have to be added later. Done at generation times
# and only has an effect when 'cvs' is also set.
-# 'buildpkg' causes binary packages to be created of all packages that
-# are being merged.
+# 'buildpkg' !!! DEPRECATED: use the BUILD_PKGS variable instead.
# 'ccache' enables ccache support via CC.
# 'collision-protect'
# prevents packages from overwriting files that are owned by
@@ -297,7 +296,7 @@
# as a security measure. As a side effect this can remove
# sandbox access violations for users.
# 'usersandbox' enables sandboxing while portage is running under userpriv.
-#FEATURES="sandbox buildpkg ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
+#FEATURES="sandbox ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
#FEATURES="sandbox ccache distcc distlocks autoaddcvs"
#
# CCACHE_SIZE sets the space use limitations for ccache. The default size is
@@ -318,3 +317,29 @@
# 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
+#
+# BUILD_PKGS lists the packages for which binary tarballs should be kept.
+# Different kind of rules can be used here:
+# - "*" matches any package. It replaces the "buildpkg" FEATURES flag.
+# - "system" matches any package required by your profile (or providing a
+# required virtual). It replaces the "buildsyspkg" FEATURES flag.
+# - category names can be used to match all packages from a given category
+# (for instance "sys-apps")
+# - shell-like patterns on category names are also allowed
+# (for instance "sys-*")
+# - full package names can be used to match a given package
+# (for instance "app-office/openoffice")
+# - shell-like patterns on full packages names are also allowed
+# (for instance "*/mozilla*").
+# Note that depend atoms with versions (like ">=app-office/openoffice-2")
+# are NOT valid rules.
+# Rules can be negated with an exclamation mark: "!rule". Such negative
+# rules will only take precedence over positive rules when they are more
+# precise. The less precise rule is "*", then it's "system", then it's
+# patterns on categories, etc., and the most precise is exact full package
+# name.
+# The following example is a valid BUILD_PKGS spec which states that binary
+# tarballs should be kept for system packages and packages from a
+# "sys-something" category, but the ones from "sys-kernel", and also for a
+# few more packages known for the time they take to compile:
+#BUILD_PKGS="system sys-* !sys-kernel kde-* www-client/mozilla www-client/mozilla-firefox mail-client/mozilla-thunderbird x11-libs/qt x11-base/xorg-x11"
diff -uNr cnf.orig/make.conf.x86 cnf/make.conf.x86
--- cnf.orig/make.conf.x86 2005-10-25 13:08:19.759108824 +0200
+++ cnf/make.conf.x86 2005-10-25 13:54:12.291660272 +0200
@@ -256,8 +256,7 @@
# 'autoaddcvs' causes portage to automatically try to add files to cvs
# that will have to be added later. Done at generation times
# and only has an effect when 'cvs' is also set.
-# 'buildpkg' causes binary packages to be created of all packages that
-# are being merged.
+# 'buildpkg' !!! DEPRECATED: use the BUILD_PKGS variable instead.
# 'ccache' enables ccache support via CC.
# 'collision-protect'
# prevents packages from overwriting files that are owned by
@@ -296,7 +295,7 @@
# as a security measure. As a side effect this can remove
# sandbox access violations for users.
# 'usersandbox' enables sandboxing while portage is running under userpriv.
-#FEATURES="sandbox buildpkg ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
+#FEATURES="sandbox ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
#FEATURES="sandbox ccache distcc distlocks autoaddcvs"
#
# CCACHE_SIZE sets the space use limitations for ccache. The default size is
@@ -317,3 +316,29 @@
# 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
+#
+# BUILD_PKGS lists the packages for which binary tarballs should be kept.
+# Different kind of rules can be used here:
+# - "*" matches any package. It replaces the "buildpkg" FEATURES flag.
+# - "system" matches any package required by your profile (or providing a
+# required virtual). It replaces the "buildsyspkg" FEATURES flag.
+# - category names can be used to match all packages from a given category
+# (for instance "sys-apps")
+# - shell-like patterns on category names are also allowed
+# (for instance "sys-*")
+# - full package names can be used to match a given package
+# (for instance "app-office/openoffice")
+# - shell-like patterns on full packages names are also allowed
+# (for instance "*/mozilla*").
+# Note that depend atoms with versions (like ">=app-office/openoffice-2")
+# are NOT valid rules.
+# Rules can be negated with an exclamation mark: "!rule". Such negative
+# rules will only take precedence over positive rules when they are more
+# precise. The less precise rule is "*", then it's "system", then it's
+# patterns on categories, etc., and the most precise is exact full package
+# name.
+# The following example is a valid BUILD_PKGS spec which states that binary
+# tarballs should be kept for system packages and packages from a
+# "sys-something" category, but the ones from "sys-kernel", and also for a
+# few more packages known for the time they take to compile:
+#BUILD_PKGS="system sys-* !sys-kernel kde-* www-client/mozilla www-client/mozilla-firefox mail-client/mozilla-thunderbird x11-libs/qt x11-base/xorg-x11"
diff -uNr cnf.orig/make.conf.x86-fbsd cnf/make.conf.x86-fbsd
--- cnf.orig/make.conf.x86-fbsd 2005-10-25 13:08:19.760108672 +0200
+++ cnf/make.conf.x86-fbsd 2005-10-25 13:54:12.291660272 +0200
@@ -246,8 +246,7 @@
# 'autoaddcvs' causes portage to automatically try to add files to cvs
# that will have to be added later. Done at generation times
# and only has an effect when 'cvs' is also set.
-# 'buildpkg' causes binary packages to be created of all packages that
-# are being merged.
+# 'buildpkg' !!! DEPRECATED: use the BUILD_PKGS variable instead.
# 'ccache' enables ccache support via CC.
# 'collision-protect'
# prevents packages from overwriting files that are owned by
@@ -287,7 +286,7 @@
# as a security measure. As a side effect this can remove
# sandbox access violations for users.
# 'usersandbox' enables sandboxing while portage is running under userpriv.
-#FEATURES="sandbox buildpkg ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
+#FEATURES="sandbox ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
#FEATURES="sandbox ccache distcc distlocks autoaddcvs"
#
# CCACHE_SIZE sets the space use limitations for ccache. The default size is
@@ -308,3 +307,29 @@
# 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
+#
+# BUILD_PKGS lists the packages for which binary tarballs should be kept.
+# Different kind of rules can be used here:
+# - "*" matches any package. It replaces the "buildpkg" FEATURES flag.
+# - "system" matches any package required by your profile (or providing a
+# required virtual). It replaces the "buildsyspkg" FEATURES flag.
+# - category names can be used to match all packages from a given category
+# (for instance "sys-apps")
+# - shell-like patterns on category names are also allowed
+# (for instance "sys-*")
+# - full package names can be used to match a given package
+# (for instance "app-office/openoffice")
+# - shell-like patterns on full packages names are also allowed
+# (for instance "*/mozilla*").
+# Note that depend atoms with versions (like ">=app-office/openoffice-2")
+# are NOT valid rules.
+# Rules can be negated with an exclamation mark: "!rule". Such negative
+# rules will only take precedence over positive rules when they are more
+# precise. The less precise rule is "*", then it's "system", then it's
+# patterns on categories, etc., and the most precise is exact full package
+# name.
+# The following example is a valid BUILD_PKGS spec which states that binary
+# tarballs should be kept for system packages and packages from a
+# "sys-something" category, but the ones from "sys-kernel", and also for a
+# few more packages known for the time they take to compile:
+#BUILD_PKGS="system sys-* !sys-kernel kde-* www-client/mozilla www-client/mozilla-firefox mail-client/mozilla-thunderbird x11-libs/qt x11-base/xorg-x11"
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [gentoo-portage-dev] [3/3] BUILD_PKGS: man
2005-11-03 8:46 [gentoo-portage-dev] [0/3] BUILD_PKGS, a replacement for build{,sys}pkg FEATURES Thomas de Grenier de Latour
2005-11-03 8:48 ` [gentoo-portage-dev] [1/3] BUILD_PKGS: code Thomas de Grenier de Latour
2005-11-03 8:50 ` [gentoo-portage-dev] [2/3] BUILD_PKGS: cnf Thomas de Grenier de Latour
@ 2005-11-03 8:51 ` Thomas de Grenier de Latour
2 siblings, 0 replies; 4+ messages in thread
From: Thomas de Grenier de Latour @ 2005-11-03 8:51 UTC (permalink / raw
To: gentoo-portage-dev
[-- Attachment #1: Type: text/plain, Size: 55 bytes --]
And finally this one is for man/make.conf.5.
--
TGL.
[-- Attachment #2: portage-2.0-svn20051024-BUILD_PKGS-man.patch --]
[-- Type: text/x-patch, Size: 2227 bytes --]
--- man.orig/make.conf.5 2005-10-25 17:42:25.096037600 +0200
+++ man/make.conf.5 2005-10-25 18:16:19.358782656 +0200
@@ -38,6 +38,45 @@
.br
Defaults to yes.
.TP
+\fBBUILD_PKGS\fR = \fI[space delimited list of rules]\fR
+Lists the packages for which binary tarballs should be kept.
+Different kind of rules can be used here:
+.br
+\- "\fI*\fR" matches any package. It replaces the "\fIbuildpkg\fR" \fBFEATURES\fR flag.
+.br
+\- "\fIsystem\fR" matches any package required by your profile (or providing a
+required virtual). It replaces the "\fIbuildsyspkg\fR" \fBFEATURES\fR flag.
+.br
+\- category names can be used to match all packages from a given category
+(for instance "\fIsys\-apps\fR")
+.br
+\- shell-like patterns on category names are also allowed
+(for instance "\fIsys\-*\fR")
+.br
+\- full package names can be used to match a given package
+(for instance "\fIapp\-office/openoffice\fR")
+.br
+\- shell-like patterns on full packages names are also allowed
+(for instance "\fI*/mozilla*\fR").
+.br
+Note that depend atoms with versions (like "\fI>=app\-office/openoffice\-2\fR")
+are \fBNOT\fR valid rules.
+.br
+Rules can be negated with an exclamation mark: "\fI!rule\fR". Such negative
+rules will only take precedence over positive rules when they are more
+precise. The less precise rule is "\fI*\fR", then it's "\fIsystem\fR", then it's
+patterns on categories, etc., and the most precise is exact full package
+name.
+.br
+The following example is a valid \fBBUILD_PKGS\fR spec which states that binary
+tarballs should be kept for system packages and packages from a
+"sys-something" category, but the ones from "sys\-kernel", and also for a
+few more packages known for the time they take to compile:
+.br
+\fBBUILD_PKGS="system sys\-* !sys\-kernel kde\-* x11\-libs/qt"\fR
+.br
+Default is unset (no binary packages will be built).
+.TP
\fBBUILD_PREFIX\fR = \fI[path]\fR
Defines the location of the package working directory.
.br
@@ -121,7 +160,7 @@
\fBFEATURES\fR.
.TP
.B buildpkg
-Binary packages will be created for all packages that are merged.
+DEPRECATED: see the BUILD_PKGS variable instead.
.TP
.B ccache
Enable portage support for the ccache package. If the ccache dir is not
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2005-11-03 8:53 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-11-03 8:46 [gentoo-portage-dev] [0/3] BUILD_PKGS, a replacement for build{,sys}pkg FEATURES Thomas de Grenier de Latour
2005-11-03 8:48 ` [gentoo-portage-dev] [1/3] BUILD_PKGS: code Thomas de Grenier de Latour
2005-11-03 8:50 ` [gentoo-portage-dev] [2/3] BUILD_PKGS: cnf Thomas de Grenier de Latour
2005-11-03 8:51 ` [gentoo-portage-dev] [3/3] BUILD_PKGS: man Thomas de Grenier de Latour
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox