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 BFE0C138247 for ; Mon, 4 Nov 2013 21:46:50 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 4377FE0AFE; Mon, 4 Nov 2013 21:46:44 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 4A201E09FA for ; Mon, 4 Nov 2013 21:46:43 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp.gentoo.org (Postfix) with ESMTP id 4E5BA33EF07 for ; Mon, 4 Nov 2013 21:46:42 +0000 (UTC) X-Virus-Scanned: by amavisd-new using ClamAV at gentoo.org X-Spam-Flag: NO X-Spam-Score: -1.239 X-Spam-Level: X-Spam-Status: No, score=-1.239 tagged_above=-999 required=5.5 tests=[AWL=-1.236, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no Received: from smtp.gentoo.org ([IPv6:::ffff:127.0.0.1]) by localhost (smtp.gentoo.org [IPv6:::ffff:127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Qd8JdNyoSQHl for ; Mon, 4 Nov 2013 21:46:36 +0000 (UTC) Received: from plane.gmane.org (plane.gmane.org [80.91.229.3]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id D17BD33EED9 for ; Mon, 4 Nov 2013 21:46:33 +0000 (UTC) Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1VdRyg-0002i2-Tp for gentoo-dev@gentoo.org; Mon, 04 Nov 2013 22:46:31 +0100 Received: from ip68-231-22-224.ph.ph.cox.net ([68.231.22.224]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 04 Nov 2013 22:46:30 +0100 Received: from 1i5t5.duncan by ip68-231-22-224.ph.ph.cox.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 04 Nov 2013 22:46:30 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: gentoo-dev@lists.gentoo.org From: Duncan <1i5t5.duncan@cox.net> Subject: [gentoo-dev] Re: Official way to do rolling update (Was: Re: Releng breakage with respect to move from dev-python/python-exec to dev-lang/python-exec) Date: Mon, 4 Nov 2013 21:46:11 +0000 (UTC) Message-ID: References: <20131104051518.51efd36c@gentoo.org> <52775FD3.7000102@sporkbox.us> Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: ip68-231-22-224.ph.ph.cox.net User-Agent: Pan/0.140 (Chocolate Salty Balls; GIT 6e6fd84 /usr/src/portage/src/egit-src/pan2) X-Archives-Salt: 347a8509-4c8e-4518-8894-feafe89f1b2d X-Archives-Hash: f3ad2a498a7bc5d2867d5de083cdc149 Martin Vaeth posted on Mon, 04 Nov 2013 11:17:49 +0000 as excerpted: > Duncan <1i5t5.duncan@cox.net> wrote: >> >> and the default is oneshot > > I would always recommend to put -1 into EMERGE_DEFAULT_OPTS; > you can still use --select if you really want a new package in a word > file: after the first installation this should happen rather rarely (and > you can still use -n --select later on if you forgot it and realize that > depclean wants to remove it). I imagine were emerge being written today, -1 /would/ be the default, and there'd be an option like --select to add to the @world file if necessary. That's actually the way I setup my scripts, with -1 the default, and an extra "2" suffix script variant that did add to the world file. But backward compatibility being what it is, I guess by the time portage authors realized they had a backward default, they couldn't really fix it, except by something like EMERGE_DEFAULT_OPTS. >> Then there's esyn, which syncs both the gentoo tree and layman, as well >> as automatically handling ebuild patching and redigesting > > You can use eix-sync for that [...] > > The advantage is that you will probably have a better behaviour in case > some of the tasks fail... Again, if it were available (and something I knew about) back in the day... I might have ended up with that. However, I've come to appreciate an advantage to writing one's own scripts -- bug fixing or adding new functionality is a *LOT* easier since you're already familiar with the code. In fact, speaking from experience, adding support for a new feature to a script you've created yourself is often easier than figuring out the new config options for the same feature for an upstream script, when they add support for it! Plus, you don't have to worry about learning new config options for new features you'll never use, since you simply don't code them in the first place. =:^) The ebuild-patching tree and auto-redigest features were in fact recent adds, when I needed something that scaled better than one-off ebuild editing during the time gentoo/kde dropped support for USE=semantic- desktop and I had to carry my own patches to kill it. (FWIW, they've since reverted and offer USE=semantic-desktop again now, THANKS gentoo/kde! =:^) Similarly, adding git functionality to my existing kernel scripts wasn't difficult, and arguably easier to do since I knew the code, than trying to reverse engineer the new config options and perhaps the supporting code behind it, were I using an upstream solution that added git kernel support to existing helper scripts. >> I have a similar set, but starting with k* instead of e*, for automatic >> mainline kernel fetching, building, etc. > > This is rather cumbersome, since you should have different permissions > for building and installing (if you use the recommended way to build > into a separate KBUILD_OUTPUT with e.g. portage permissions). > Except for fetching, you might want to use the kernel script from the mv > overlay. Actually, both different building/installing permissions (via config file sudo option, tho I'll admit since I set that the option, running with that option turned off isn't tested, but the basic script infrastructure for it is there), and KBUILD_OUTPUT (setting in the config file) are already supported. =:^) And talk about ease of adding functionality, when I setup my 32-bit netbook build chroot, it was just a few lines changed in the kernel scripts themselves, and a "dynamic config" line added to the config file (which is sourced, so accepts both var=val style and dynamic config script snippets) to auto-detect which system I was building for and set KBUILD_OUTPUT accordingly, thereby keeping the work dirs and config entirely separate, automatically, via "dynamic config". Trivial feature-add, and now that it's there, if I suddenly needed to scale to 100 or 1000 different kernel configs, that'd be even more trivial (even just a config file change), if necessary by having the config file source yet another "separate-builds.conf" file with its own dynamic-config logic to choose between the different configs. This sort of solidly sysadmin level helper/glue script is something Unix/ Linux/Gentoo is well optimized to make not only possible, but trivial, to implement, and I definitely put that feature to use! =:^) -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman