From: Rick Farina (Zero_Chaos) Date: Fri, 25 Jan 2013 03:46:05 +0000 (-0500) Subject: make bindist optional X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=6b4153ab9a07fb2f2c77484bc60d24d0a491e618;p=catalyst.git make bindist optional After the recent fixes which ensure the bindist use flag is always set, users now have no way to disable this flag. This patch introduces the new "bindist" feature, enabled by default, which will allow users to turn off bindist if they are not going to redistribute the builds (or for tinderbox testing, etc). --- diff --git a/catalyst b/catalyst index 93114e94..9f8dd301 100755 --- a/catalyst +++ b/catalyst @@ -112,6 +112,14 @@ def parse_config(myconfig): print "Autoresuming support enabled." conf_values["AUTORESUME"]="1" + if "bindist" in string.split(conf_values["options"]): + print "Binary redistribution enabled" + conf_values["BINDIST"]="1" + else: + print "Bindist is not enabled in catalyst.conf" + print "Binary redistribution of generated stages/isos may be prohibited by law." + print "Please see the use description for bindist on any package you are including." + if "ccache" in string.split(conf_values["options"]): print "Compiler cache support enabled." conf_values["CCACHE"]="1" diff --git a/files/catalyst.conf b/files/catalyst.conf index e2def664..f88f1052 100644 --- a/files/catalyst.conf +++ b/files/catalyst.conf @@ -49,6 +49,8 @@ hash_function="crc32" # the -a option to the catalyst cmdline. -p will clear the autoresume flags # as well as your pkgcache and kerncache # ( This option is not fully tested, bug reports welcome ) +# bindist = enables the bindist USE flag, please see package specific definition, +# however, it is suggested to enable this if redistributing builds. # ccache = enables build time ccache support # distcc = enable distcc support for building. You have to set distcc_hosts in # your spec file. @@ -64,7 +66,7 @@ hash_function="crc32" # your cache. The cache is unlinked before any empty or rm processing, though. # # (These options can be used together) -options="autoresume kerncache pkgcache seedcache snapcache" +options="autoresume bindist kerncache pkgcache seedcache snapcache" # portdir specifies the source portage tree used by the snapshot target. portdir="/usr/portage" diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py index 0a473ef6..12921d6c 100644 --- a/modules/generic_stage_target.py +++ b/modules/generic_stage_target.py @@ -490,8 +490,9 @@ class generic_stage_target(generic_target): if type(self.settings["use"])==types.StringType: self.settings["use"]=self.settings["use"].split() - # Force bindist for all targets - self.settings["use"].append("bindist") + # Force bindist when options ask for it + if "BINDIST" in self.settings: + self.settings["use"].append("bindist") def set_stage_path(self): self.settings["stage_path"]=normpath(self.settings["chroot_path"]) diff --git a/modules/grp_target.py b/modules/grp_target.py index 654b5e5c..69415222 100644 --- a/modules/grp_target.py +++ b/modules/grp_target.py @@ -62,11 +62,12 @@ class grp_target(generic_stage_target): raise CatalystError,"GRP build aborting due to error." def set_use(self): - generic_stage_target.set_use(self) - if "use" in self.settings: - self.settings["use"].append("bindist") - else: - self.settings["use"]=["bindist"] + generic_stage_target.set_use(self) + if "BINDIST" in self.settings: + if "use" in self.settings: + self.settings["use"].append("bindist") + else: + self.settings["use"]=["bindist"] def set_mounts(self): self.mounts.append("/tmp/grp") diff --git a/modules/livecd_stage1_target.py b/modules/livecd_stage1_target.py index 5b552b9b..59de9bb8 100644 --- a/modules/livecd_stage1_target.py +++ b/modules/livecd_stage1_target.py @@ -48,10 +48,12 @@ class livecd_stage1_target(generic_stage_target): generic_stage_target.set_use(self) if "use" in self.settings: self.settings["use"].append("livecd") - self.settings["use"].append("bindist") + if "BINDIST" in self.settings: + self.settings["use"].append("bindist") else: self.settings["use"]=["livecd"] - self.settings["use"].append("bindist") + if "BINDIST" in self.settings: + self.settings["use"].append("bindist") def set_packages(self): generic_stage_target.set_packages(self) diff --git a/targets/stage1/stage1-chroot.sh b/targets/stage1/stage1-chroot.sh index 73d27ffe..462ea283 100644 --- a/targets/stage1/stage1-chroot.sh +++ b/targets/stage1/stage1-chroot.sh @@ -7,6 +7,8 @@ export clst_buildpkgs="$(/tmp/build.py)" # Setup our environment BOOTSTRAP_USE="$(portageq envvar BOOTSTRAP_USE)" +[ -n "${clst_BINDIST}" ] && BOOTSTRAP_USE="${BOOTSTRAP_USE} bindist" + FEATURES="${clst_myfeatures} nodoc noman noinfo -news" ## Sanity check profile @@ -50,8 +52,8 @@ sed -i '/USE="${USE} -build"/d' /etc/portage/make.conf # Now, we install our packages [ -e /etc/portage/make.conf ] && \ - echo "USE=\"-* bindist build ${BOOTSTRAP_USE} ${clst_HOSTUSE}\"" \ + echo "USE=\"-* build ${BOOTSTRAP_USE} ${clst_HOSTUSE}\"" \ >> /etc/portage/make.conf run_merge "--oneshot ${clst_buildpkgs}" -sed -i "/USE=\"-* bindist build ${BOOTSTRAP_USE} ${clst_HOSTUSE}\"/d" \ +sed -i "/USE=\"-* build ${BOOTSTRAP_USE} ${clst_HOSTUSE}\"/d" \ /etc/portage/make.conf