From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id E3BAB1381F3 for ; Tue, 16 Apr 2013 19:42:43 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 68F0DE0A00; Tue, 16 Apr 2013 19:42:43 +0000 (UTC) Received: from vms173005pub.verizon.net (vms173005pub.verizon.net [206.46.173.5]) by pigeon.gentoo.org (Postfix) with ESMTP id DEDCCE0A00 for ; Tue, 16 Apr 2013 19:42:42 +0000 (UTC) Received: from odin.tremily.us ([unknown] [72.68.100.81]) by vms173005.mailsrvcs.net (Sun Java(tm) System Messaging Server 7u2-7.02 32bit (built Apr 16 2009)) with ESMTPA id <0MLD002B95F1NZ40@vms173005.mailsrvcs.net> for gentoo-catalyst@lists.gentoo.org; Tue, 16 Apr 2013 14:42:38 -0500 (CDT) Received: by odin.tremily.us (Postfix, from userid 1000) id 5EA4096CF5B; Tue, 16 Apr 2013 15:42:37 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tremily.us; s=odin; t=1366141357; bh=ReYHN8WxXGMdgmSiEkRAgGCb9G9/z5kUreRGPV7T0zI=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=q8eAAKh4iLk1F4PBwrapyaVuWJUI3RmZj95rqxUx6o9cREkvwyVmc8m/I/8D7uD0K Lsxqd23+Z4SGxNxPLSN2un0pm1fvxHUVPGw/BErHMPLyraGwCe1MABaW2ZtgdfXunJ kT0i0dCicmKxHRLvx90NgegE3B/Vm/dZJgJ4ndRg= From: "W. Trevor King" To: Catalyst Cc: "W. Trevor King" Subject: [gentoo-catalyst] [PATCH 0/2] Blacklisting binary packages Date: Tue, 16 Apr 2013 15:42:32 -0400 Message-id: X-Mailer: git-send-email 1.8.1.5 In-reply-to: <20130309121023.GE26574@odin.tremily.us> References: <20130309121023.GE26574@odin.tremily.us> Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-catalyst@lists.gentoo.org Reply-to: gentoo-catalyst@lists.gentoo.org MIME-version: 1.0 Content-type: text/plain; charset=UTF-8 Content-transfer-encoding: 8bit X-Archives-Salt: 06f83bf7-60c5-4c2a-be50-e3b25fb3ee7f X-Archives-Hash: 25042af9e0902f46a38593754e629754 From: "W. Trevor King" The current approach to avoiding problems due to stale binary packages with untracked ABI dependencies is to disable binpkg use during troublesome sections of the build (e.g. seed updates). I think that a cleaner solution would be to use a configurable spec option blacklisting binpkgs for troublesome packages. For example, in a stage1 with update_seed enabled, the Portage emerge (before the seed update) has: … removed '/usr/portage/packages/sys-devel/gcc-4.6.3.tbz2' removed '/usr/portage/packages/sys-devel/gcc-config-1.7.3.tbz2' emerge --quiet --usepkg --buildpkg --newuse --oneshot --nodeps --update sys-apps/portage … During the seed update, the rest of the packages can use preexisting binpkgs from earlier builds: … >>> Emerging binary (1 of 17) sys-devel/gnuconfig-20121010 >>> Installing (1 of 17) sys-devel/gnuconfig-20121010 >>> Emerging binary (2 of 17) app-misc/mime-types-9 >>> Installing (2 of 17) app-misc/mime-types-9 >>> Emerging (3 of 17) sys-libs/timezone-data-2013a >>> Installing (3 of 17) sys-libs/timezone-data-2013a … I'm not sure yet why some packages (e.g. timezone-data) don't use the prexisting binpkgs, even though they do exist: # ls packages/default/stage1-i686-2013.1/sys-libs/timezone-data-201* packages/default/stage1-i686-2013.1/sys-libs/timezone-data-2012j.tbz2 packages/default/stage1-i686-2013.1/sys-libs/timezone-data-2013a.tbz2 Later in the stage1 build, GCC is not installed from a binary package (because this package was removed earlier): … >>> Emerging binary (59 of 75) virtual/libc-0 for /tmp/stage1root/ >>> Installing (59 of 75) virtual/libc-0 to /tmp/stage1root/ >>> Emerging (60 of 75) sys-devel/gcc-4.6.3 for /tmp/stage1root/ >>> Installing (60 of 75) sys-devel/gcc-4.6.3 to /tmp/stage1root/ … I think this approach is cleaner because it: * Avoids problems we've already seen by blacklisting troublesome packages. * Allows you to reuse binary packages in the seed update stage, at the cost of rebuilding gcc for your stage1root. * Can be applied to any stage, so you don't get bitten by stale binpkgs in stage2, etc. due to a snapshot update. * Can be overridden by folks who know some blacklisted package will be fine for their combination of seed, snapshot, and pkgcache. W. Trevor King (2): spec: Add binpkg_blacklist option for troublesome packages Revert "don't build packages during update_seed" modules/generic_stage_target.py | 4 +++- targets/stage1/stage1-chroot.sh | 4 ++-- targets/support/chroot-functions.sh | 5 +++++ 3 files changed, 10 insertions(+), 3 deletions(-) -- 1.8.2