From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1RhHeL-0002K6-OA for garchives@archives.gentoo.org; Sun, 01 Jan 2012 09:24:18 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 2723A21C0FC; Sun, 1 Jan 2012 09:24:04 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 9AE1D21C031 for ; Sun, 1 Jan 2012 09:23:36 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp.gentoo.org (Postfix) with ESMTP id 2BD131B400E for ; Sun, 1 Jan 2012 09:23:36 +0000 (UTC) X-Virus-Scanned: by amavisd-new using ClamAV at gentoo.org X-Spam-Flag: NO X-Spam-Score: -4.231 X-Spam-Level: X-Spam-Status: No, score=-4.231 tagged_above=-999 required=5.5 tests=[AWL=1.271, BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-1.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham Received: from smtp.gentoo.org ([127.0.0.1]) by localhost (smtp.gentoo.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ERhYiuOkd0U8 for ; Sun, 1 Jan 2012 09:23:28 +0000 (UTC) Received: from lo.gmane.org (lo.gmane.org [80.91.229.12]) by smtp.gentoo.org (Postfix) with ESMTP id D5DB31B4015 for ; Sun, 1 Jan 2012 09:23:25 +0000 (UTC) Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1RhHdS-0001jC-OW for gentoo-dev@gentoo.org; Sun, 01 Jan 2012 10:23:22 +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 ; Sun, 01 Jan 2012 10:23:22 +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 ; Sun, 01 Jan 2012 10:23:22 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: gentoo-dev@lists.gentoo.org From: Duncan <1i5t5.duncan@cox.net> Subject: [gentoo-dev] Re: rfc: locations of binaries and separate /usr Date: Sun, 1 Jan 2012 09:23:11 +0000 (UTC) Message-ID: References: <20120101015947.GA9914@linux1> 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 X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: ip68-231-22-224.ph.ph.cox.net User-Agent: Pan/0.135 (Tomorrow I'll Wake Up and Scald Myself with Tea; GIT fb7a33e /st/portage/src/egit-src/pan2) Content-Transfer-Encoding: quoted-printable X-Archives-Salt: 59604acb-4ad4-419c-8742-8e82d5013020 X-Archives-Hash: 81f94092af03f7b4b48b11d197b12f66 William Hubbs posted on Sat, 31 Dec 2011 19:59:47 -0600 as excerpted: > a significant change is taking place with several upstreams that will > affect us in gentoo[. Boot-critical components such as Udev, kmod, > etc], are advocating a major change to the locations where binaries > and libraries are stored on linux systems. >=20 > The goal is to deprecate /bin, /lib, /sbin and /usr/sbin. My > understanding is that they want to move software that is installed in > /bin, /sbin and /usr/sbin to /usr/bin. Also, they want to move > everything from /lib to /usr/lib. > If we migrate everything off of the root fs to /usr, all of those > solutions become moot. On the other hand, if we don't migrate, > we run the risk of eventually having our default configuration > not supported by upstream. >=20 > I see three options: >=20 > 1) Start migrating packages along with upstream[. Have separate /usr > users] start using an initramfs [as previously discussed onlist]. >=20 > 2) Combine the sbin and bin directories both on the root filesystem an= d > in /usr by moving things from /sbin to /bin and /usr/sbin to /usr/bin. >=20 > 3) Try to maintain things the way they are as long as possible. >=20 > Whether or not I like what is happening personally, I think we should > consider the first option, because I think it will get more and more > difficult for us to do anything else over time. And we will eventually > find ourselves not supported by upstreams. I'm for #1 (migrate along with upstream) as well. Gentoo has historically been both "light patch", with a policy of staying= =20 close to upstream if possible, and "customizer's choice", allowing users=20 far more flexibility than most distros. Keeping both goals in mind,=20 migrating with upstream is ultimately the only viable alternative for a=20 whole host of reasons including both staying close to upstream and simple= =20 manpower resource issues. That said, we can continue to try to support a separate /usr as long as=20 possible, while switching new installs to the new way and changing the=20 handbook to document it, preferably as soon as possible. Further, as=20 previously discussed, a near-static bare-minimal initramfs that can be=20 configured and forgotten about for long periods over many kernel upgrades= =20 should make the switch as painless as possible at least for "simple" bare= - partition installations. As for the switchover, I had already been thinking about it here and thus= =20 have a couple ideas I'd very much like to see implemented in portage/PM/ base.eclass that could definitely help, along with a USE flag. I'll call=20 them "migrated-rootfs" and "migrateroot-strict" for purposes of=20 discussion, here, and assume they're both portage features and that=20 migrated-rootfs is also a USE flag FEATURES=3Dmigrated-rootfs would set a USE-default for migrated-root-to-u= sr=20 so that it'd default to ON, and would indicate that a user is an "early=20 adopter" of the new layout, preferring migration as soon as possible. =20 Users could still set the USE flag as desired for specific packages, at=20 least at first, tho at some point it'd probably first be made a profile=20 default, and ultimately profile-masked either on or off. Additionally, FEATURES=3Dmigrated-root would expand the collision-protect= =20 feature to check for and warn on both same-package and cross-package=20 collisions between related dirs, with all four bin/sbin root/usr dirs=20 checked for name collisions, and both lib dirs (for single lib,=20 additional pairs for multilib) checked as well. Optionally, if implementation is easy enough, have portage simply remove=20 symlinks to identically named files that would otherwise set off the=20 warning. This is a major reason for having it a feature and a USE flag=20 both, since if this is implemented, portage would take preventive action=20 quite apart from whether an ebuild had been updated to use the USE flag=20 or not. FEATURES=3Dmigrateroot-strict would make those collision warnings fatal,=20 much like FEATURES=3Dmultilib-strict does for its multilib checks. (As a= n=20 amd64 user who had this feature on for years, until I switched to no- multilib, that's what the idea is based on.) The goal would be to allow early adopter users to set the less strict=20 version and run a --empty-tree @world update, then grep the logs for the=20 warnings it turned on. If none occurred and /usr is either already on=20 the same filesystem or they have the appropriate early-boot measures in=20 place, they could feel reasonably confident about setting up symlinks=20 pointing to the /usr/bin and /usr/lib dirs as appropriate, and could then= =20 set FEATURES=3Dmigratedroot-strict to ensure it stays "clean", since afte= r=20 that any attempted merge that would collide would be fatal. Alternatively users could just set the strict version and see what=20 breaks, instead of grepping the logs for the warnings. Since this would leverage the code already in place and tested for=20 collision-protect and multilib-strict, cross-package checking should be=20 fairly easy to implement, but same-package checking and/or actively=20 stripping colliding symlinks may involve rather more new code. Zac? Other portage,/PM/PMS folks? --=20 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