From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([69.77.167.62] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1Jmypj-00025u-Ni for garchives@archives.gentoo.org; Fri, 18 Apr 2008 22:13:27 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id A141FE045E; Fri, 18 Apr 2008 22:13:26 +0000 (UTC) Received: from cgianelloni.localdomain (dsl211-165-131.sfo1.dsl.speakeasy.net [74.211.165.131]) by pigeon.gentoo.org (Postfix) with ESMTP id 3D346E045E for ; Fri, 18 Apr 2008 22:13:26 +0000 (UTC) Received: by cgianelloni.localdomain (Postfix, from userid 1000) id 3E0C3A8400E; Fri, 18 Apr 2008 15:12:08 -0700 (PDT) Subject: Re: [gentoo-catalyst] proper way to deviate in system use flags? From: Chris Gianelloni To: gentoo-catalyst@lists.gentoo.org In-Reply-To: <20080418032929.GC30602@dev.local> References: <20080418032929.GC30602@dev.local> Content-Type: text/plain Content-Transfer-Encoding: 7bit Date: Fri, 18 Apr 2008 15:12:08 -0700 Message-Id: <1208556728.4501.91.camel@cgianelloni.quova.com> 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 X-Mailer: Evolution 2.22.1 X-Archives-Salt: 83d4fdb8-e20c-44cd-b095-6b3a3d1e29c4 X-Archives-Hash: 195a5c224a5c1a49d25c4f2bc96051fd On Fri, 2008-04-18 at 11:29 +0800, Max Arnold wrote: > I'm trying to build my own stage4 with specific packages and use flags. > My steps are: stage3-i686-2007.0 + recent snapshot -> stage1 -> stage2 -> stage3 -> stage4 OK, start from an x86 stage3, though. > Specs for stages 1-3 are generic (just copied from releng/specs/2007.0/x86), and stage4 > adds portage_confdir, stage4/use and several packages. > > Stage4 compiles fine, but when I chroot to it and issue emerge -pvuDN world, portage > wants to remerge several system packages due to changed use flags (for example ipv6, which > is disabled in my stage4/use). > > So it is seems that my stage4/use and portage_confdir does not affect system packages > (I guess that catalyst does only --emptytree when emerging stage4). Ehh, not quite. The USE you set in your spec only affects the stage build. It doesn't affect what happens *after* the stage build. It also doesn't affect packages built before your current stage build. One thing that you did not mention is what version of catalyst that you're using. Newer versions of catalyst, like the currently masked 2.0.6_pre17, support writing out spec_prefix/use to make.conf so the changes "stick" in your stage. > So, there are my questions: > > 1. Am I correct in assumption that use flags are stacked during stage4 like this: > profile -> stage4/use -> package.use (increasing priority from left to right)? That's over-simplified, but yes. > 2. What is the proper (and simple to maintain) way to deviate slightly in system use flags? The way that you're doing it works fine if you're planning on shipping a stage4 all the time. Were I doing this myself, I'd make a new profile with the desired changes, but that's just me. > My guesses: > 1. Add 'hostuse' variable to earlier specs (stage3?) Already done in newer catalyst versions... > 2. Add 'portage_confdir' to earlier specs (but my -ipv6 listed in stage4/use and not in package.use) You should always use the same portage_confdir across all stages. In the future, catalyst will check for this and will refuse to run if you didn't use the same snapshot and portage_confdir on your stages. This should hopefully reduce the number of "human errors" made when people are using catalyst. ;] > 3. Create new target (based on stage4 code) and add --newuse somewhere It wouldn't matter. You'd need --newuse --deep. We specifically have not done this, as the stage4 code shares most of its code with the livecd/stage1 and livecd-stage2 code, which was originally written with the Minimal/Universal InstallCD in mind and doesn't require rebuilding the system packages to match the CD's USE. The best and most correct solution is to make your USE changes in a profile and use that profile to build your stages. > 4. Create my own profile (don't know where to put it and how to maintain during tree updates) This is what you should do. Simply stick it in $portdir/profiles where you'd like it before running your snapshot. To keep "emerge --sync" from wiping it out, add PORTAGE_RSYNC_EXTRA_OPTS="--exclude=profiles/myprofilename" to your /etc/make.conf on your host/build system. -- Chris Gianelloni Release Engineering Strategic Lead Games Developer -- gentoo-catalyst@lists.gentoo.org mailing list