From d17d7220142adba328753ddc7caa0ab22a77d5c8 Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Mon, 15 Apr 2013 18:38:26 -0400 Subject: [PATCH] spec: Add binpkg_blacklist option for troublesome packages For packages that don't use EAPI-5's sub-slots to track ABI dependencies, binary packages may go stale without Portage noticing. You can use this new option to list packages that may be troublesome. Listed packages will be removed from the pkgcache, and rebuilt from scratch for your seed. If binpkg_blacklist is unset in your spec file, it defaults to including the following packages: * sys-devel/gcc: see, for example, http://mid.gmane.org/20130412011158.GB17116@odin.tremily.us * media-libs/mesa: see, for example, #454184 --- modules/generic_stage_target.py | 4 +++- targets/support/chroot-functions.sh | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/generic_stage_target.py b/modules/generic_stage_target.py index 31cb025e..4fbbb44a 100644 --- a/modules/generic_stage_target.py +++ b/modules/generic_stage_target.py @@ -16,7 +16,9 @@ class generic_stage_target(generic_target): self.valid_values.extend(["version_stamp","target","subarch",\ "rel_type","profile","snapshot","source_subpath","portage_confdir",\ "cflags","cxxflags","ldflags","cbuild","hostuse","portage_overlay",\ - "distcc_hosts","makeopts","pkgcache_path","kerncache_path"]) + "distcc_hosts","makeopts","pkgcache_path","kerncache_path", + 'binpkg_blacklist', + ]) self.set_valid_build_kernel_vars(addlargs) generic_target.__init__(self,myspec,addlargs) diff --git a/targets/support/chroot-functions.sh b/targets/support/chroot-functions.sh index 35ffbaa5..957af9d0 100644 --- a/targets/support/chroot-functions.sh +++ b/targets/support/chroot-functions.sh @@ -261,6 +261,11 @@ run_merge() { export EPAUSE_IGNORE=0 export CONFIG_PROTECT="-*" + default_binpkg_blacklist="sys-devel/gcc media-libs/mesa" + for binpkg in ${clst_binpkg_blacklist-${default_binpkg_blacklist}}; do + rm -vf "/usr/portage/packages/${binpkg}"* + done + if [ -n "${clst_VERBOSE}" ] then echo "ROOT=${ROOT} emerge ${clst_myemergeopts} -pt $@" || exit 1 -- 2.26.2