* [gentoo-user] systemd installation location @ 2013-09-29 19:52 William Hubbs 2013-09-30 0:54 ` Daniel Campbell 0 siblings, 1 reply; 24+ messages in thread From: William Hubbs @ 2013-09-29 19:52 UTC (permalink / raw To: gentoo users [-- Attachment #1: Type: text/plain, Size: 871 bytes --] All, I can clarify one part of the systemd issue, because I have been involved in this part of the issue for months. Again, I am not trying to start a dispute here, just providing a clarification. The choice to install all of the systemd binaries in /usr is not an upstream choice. It was a choice made a year ago when our systemd team was one person [1], and now the team doesn't want to change it because it would require users to go through a migration, and the rest of the team doesn't see a benefit in changing it since it still links to libraries in /usr/lib. I joined the team, primarily to take responsibility for this change and to try to make it go as smoothly as possible, but I was overruled even though upstream gave us a pretty strong warning about it. William [1] http://blogs.gentoo.org/mgorny/2012/01/04/moving-systemd-into-usr-the-technical-side/ [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [gentoo-user] systemd installation location 2013-09-29 19:52 [gentoo-user] systemd installation location William Hubbs @ 2013-09-30 0:54 ` Daniel Campbell 2013-09-30 1:17 ` Mark David Dumlao 2013-09-30 1:40 ` Mark David Dumlao 0 siblings, 2 replies; 24+ messages in thread From: Daniel Campbell @ 2013-09-30 0:54 UTC (permalink / raw To: gentoo-user -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 09/29/2013 02:52 PM, William Hubbs wrote: > All, > > I can clarify one part of the systemd issue, because I have been > involved in this part of the issue for months. Again, I am not > trying to start a dispute here, just providing a clarification. > > The choice to install all of the systemd binaries in /usr is not > an upstream choice. It was a choice made a year ago when our > systemd team was one person [1], and now the team doesn't want to > change it because it would require users to go through a migration, > and the rest of the team doesn't see a benefit in changing it since > it still links to libraries in /usr/lib. > > I joined the team, primarily to take responsibility for this change > and to try to make it go as smoothly as possible, but I was > overruled even though upstream gave us a pretty strong warning > about it. > > William > > [1] > http://blogs.gentoo.org/mgorny/2012/01/04/moving-systemd-into-usr-the-technical-side/ > > Ouch. So systemd upstream doesn't suggest putting binaries in /usr? That shows at least a little respect for /bin, et al. Based on the blog post, I'm getting the feeling that -- for systemd anyway -- the issues with /usr are caused by its dependencies rather than systemd itself. If dbus and whatnot were in /bin where they belong, the need for an initramfs (for separate /usr) and/or dealing with things in a non-standard place wouldn't need to happen. I'm not affected by anything regarding the /usr switch, but I'd like to have a good talk with the first person who decided a system-critical binary belonged in /usr instead of /bin or /sbin. They've created a mess for every distro and any project that depends on their work. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.20 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBAgAGBQJSSMu5AAoJEJUrb08JgYgHFz4H/iyZt6MlTeW702KOlIy2Ydse mzsfiyPfPz8Rbz0Mqp5/17R8aQzOUG4l6dZS7d9HFKuMCG7t+kNZCSvxD69XeTVO tZY6YjHCGQaE6WaAMbiasXfRTeRt4ZDtP5l/lCUsYcTCWN13PyIcHCb5rGNHnHqq J/OcSeF5EoS+G/uSAuzDVaQ5wa0Z0qkqVSqQGjJ5NUHYIA5ZrtYpMNDR+MkFYYAB 7I4JE5kDXRYoBSiLLDb7tI7F1nGogHXxzECmMYW4ZneU0AJwhUAK0kU+oTHY2Z9Q 8TcjpdaG1BH4gA2NT+i+ZJz4XNqkMPa2vbvhcfGFs9Dg7IwabiuunOzh0GQM1S4= =jgci -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [gentoo-user] systemd installation location 2013-09-30 0:54 ` Daniel Campbell @ 2013-09-30 1:17 ` Mark David Dumlao 2013-09-30 1:22 ` Daniel Campbell 2013-09-30 1:40 ` Mark David Dumlao 1 sibling, 1 reply; 24+ messages in thread From: Mark David Dumlao @ 2013-09-30 1:17 UTC (permalink / raw To: gentoo-user On Mon, Sep 30, 2013 at 8:54 AM, Daniel Campbell <lists@sporkbox.us> wrote: > I'm not affected by anything regarding the /usr switch, but I'd like > to have a good talk with the first person who decided a > system-critical binary belonged in /usr instead of /bin or /sbin. > They've created a mess for every distro and any project that depends > on their work. As I've pointed out before: - "system-critical" is actually dependent on the system. A system dependent on an smb share will find smbmount system critical. One dependent on zfs-fuse will find fuse system critical. With the advent of fuse, arbitrary > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2.0.20 (GNU/Linux) > Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ > > iQEcBAEBAgAGBQJSSMu5AAoJEJUrb08JgYgHFz4H/iyZt6MlTeW702KOlIy2Ydse > mzsfiyPfPz8Rbz0Mqp5/17R8aQzOUG4l6dZS7d9HFKuMCG7t+kNZCSvxD69XeTVO > tZY6YjHCGQaE6WaAMbiasXfRTeRt4ZDtP5l/lCUsYcTCWN13PyIcHCb5rGNHnHqq > J/OcSeF5EoS+G/uSAuzDVaQ5wa0Z0qkqVSqQGjJ5NUHYIA5ZrtYpMNDR+MkFYYAB > 7I4JE5kDXRYoBSiLLDb7tI7F1nGogHXxzECmMYW4ZneU0AJwhUAK0kU+oTHY2Z9Q > 8TcjpdaG1BH4gA2NT+i+ZJz4XNqkMPa2vbvhcfGFs9Dg7IwabiuunOzh0GQM1S4= > =jgci > -----END PGP SIGNATURE----- > -- This email is: [ ] actionable [ ] fyi [ ] social Response needed: [ ] yes [ ] up to you [ ] no Time-sensitive: [ ] immediate [ ] soon [ ] none ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [gentoo-user] systemd installation location 2013-09-30 1:17 ` Mark David Dumlao @ 2013-09-30 1:22 ` Daniel Campbell 2013-09-30 1:51 ` Mark David Dumlao 0 siblings, 1 reply; 24+ messages in thread From: Daniel Campbell @ 2013-09-30 1:22 UTC (permalink / raw To: gentoo-user On 09/29/2013 08:17 PM, Mark David Dumlao wrote: > On Mon, Sep 30, 2013 at 8:54 AM, Daniel Campbell <lists@sporkbox.us> wrote: >> I'm not affected by anything regarding the /usr switch, but I'd like >> to have a good talk with the first person who decided a >> system-critical binary belonged in /usr instead of /bin or /sbin. >> They've created a mess for every distro and any project that depends >> on their work. > > As I've pointed out before: > - "system-critical" is actually dependent on the system. A system dependent > on an smb share will find smbmount system critical. One dependent on > zfs-fuse will find fuse system critical. With the advent of fuse, arbitrary > > > >> -----BEGIN PGP SIGNATURE----- >> Version: GnuPG v2.0.20 (GNU/Linux) >> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ >> >> iQEcBAEBAgAGBQJSSMu5AAoJEJUrb08JgYgHFz4H/iyZt6MlTeW702KOlIy2Ydse >> mzsfiyPfPz8Rbz0Mqp5/17R8aQzOUG4l6dZS7d9HFKuMCG7t+kNZCSvxD69XeTVO >> tZY6YjHCGQaE6WaAMbiasXfRTeRt4ZDtP5l/lCUsYcTCWN13PyIcHCb5rGNHnHqq >> J/OcSeF5EoS+G/uSAuzDVaQ5wa0Z0qkqVSqQGjJ5NUHYIA5ZrtYpMNDR+MkFYYAB >> 7I4JE5kDXRYoBSiLLDb7tI7F1nGogHXxzECmMYW4ZneU0AJwhUAK0kU+oTHY2Z9Q >> 8TcjpdaG1BH4gA2NT+i+ZJz4XNqkMPa2vbvhcfGFs9Dg7IwabiuunOzh0GQM1S4= >> =jgci >> -----END PGP SIGNATURE----- >> > > > It's fairly obvious (to me, anyway) that anything mounting a filesystem and making it available is system-critical. I run samba and don't need it for boot, but like you said, someone may need that. I wouldn't see a problem with smbmount being in /bin. FUSE deserves similar treatment. LVM's another that probably deserves special treatment. ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [gentoo-user] systemd installation location 2013-09-30 1:22 ` Daniel Campbell @ 2013-09-30 1:51 ` Mark David Dumlao 2013-09-30 2:01 ` Daniel Campbell 0 siblings, 1 reply; 24+ messages in thread From: Mark David Dumlao @ 2013-09-30 1:51 UTC (permalink / raw To: gentoo-user On Mon, Sep 30, 2013 at 9:22 AM, Daniel Campbell <lists@sporkbox.us> wrote: > It's fairly obvious (to me, anyway) that anything mounting a filesystem > and making it available is system-critical. I run samba and don't need > it for boot, but like you said, someone may need that. I wouldn't see a > problem with smbmount being in /bin. FUSE deserves similar treatment. > LVM's another that probably deserves special treatment. > If you allow FUSE you've already failed, because arbitrary programs can be required by FUSE filesystems. Suddenly your ssh client should be pushed to /, or your telnet, or rsync, or ftp. -- This email is: [ ] actionable [x] fyi [ ] social Response needed: [ ] yes [x] up to you [ ] no Time-sensitive: [ ] immediate [ ] soon [x] none ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [gentoo-user] systemd installation location 2013-09-30 1:51 ` Mark David Dumlao @ 2013-09-30 2:01 ` Daniel Campbell 2013-09-30 2:25 ` Mark David Dumlao 0 siblings, 1 reply; 24+ messages in thread From: Daniel Campbell @ 2013-09-30 2:01 UTC (permalink / raw To: gentoo-user On 09/29/2013 08:51 PM, Mark David Dumlao wrote: > On Mon, Sep 30, 2013 at 9:22 AM, Daniel Campbell <lists@sporkbox.us> wrote: >> It's fairly obvious (to me, anyway) that anything mounting a filesystem >> and making it available is system-critical. I run samba and don't need >> it for boot, but like you said, someone may need that. I wouldn't see a >> problem with smbmount being in /bin. FUSE deserves similar treatment. >> LVM's another that probably deserves special treatment. >> > > If you allow FUSE you've already failed, because arbitrary programs can > be required by FUSE filesystems. Suddenly your ssh client should be pushed > to /, or your telnet, or rsync, or ftp. > FUSE is that lenient with what it can use to mount with? o_O ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [gentoo-user] systemd installation location 2013-09-30 2:01 ` Daniel Campbell @ 2013-09-30 2:25 ` Mark David Dumlao 2013-09-30 2:31 ` Daniel Campbell 0 siblings, 1 reply; 24+ messages in thread From: Mark David Dumlao @ 2013-09-30 2:25 UTC (permalink / raw To: gentoo-user On Mon, Sep 30, 2013 at 10:01 AM, Daniel Campbell <lists@sporkbox.us> wrote: > On 09/29/2013 08:51 PM, Mark David Dumlao wrote: >> On Mon, Sep 30, 2013 at 9:22 AM, Daniel Campbell <lists@sporkbox.us> wrote: >>> It's fairly obvious (to me, anyway) that anything mounting a filesystem >>> and making it available is system-critical. I run samba and don't need >>> it for boot, but like you said, someone may need that. I wouldn't see a >>> problem with smbmount being in /bin. FUSE deserves similar treatment. >>> LVM's another that probably deserves special treatment. >>> >> >> If you allow FUSE you've already failed, because arbitrary programs can >> be required by FUSE filesystems. Suddenly your ssh client should be pushed >> to /, or your telnet, or rsync, or ftp. >> > FUSE is that lenient with what it can use to mount with? o_O Fuse is filesystems in userspace. The hard problem that isn't obvious here, is that anybody can come up with a userspace filesystem, and there is ZERO intelligence in the package manager that some filesystem is dependent on some userspace logic. for example, there's a filesystem called sshfs. It allows you to view an ssh connection as a directory. sshfs itself could be in /, but it depends on ssh and its libraries, which are normally in /usr. Now what do you do? Just to support sshfs, you have to move or copy all those programs to /. Portage doesn't know this. Ebuilds don't know this. Manual compiles don't know this. What should the ssh packagers do? What should the fuse-sshfs packagers do? What should users who are manually rolling out sshfs do? How about when you develop the next revolutionary crazy filesystem that allows you to view emacs sessions as directories? What should the emacs packagers do? What should the fuse-emacsfs packagers do? What should users manually rolling out that do? You want to automatically version /etc using some filesystem that uses a git backend (I'll call it gitfs). What should git packagers do? What should fuse-gitfs packagers do? etc.... How about svnfs? hgfs? bzrfs? scpfs? ... -- This email is: [ ] actionable [x] fyi [ ] social Response needed: [ ] yes [ ] up to you [x] no Time-sensitive: [ ] immediate [ ] soon [x] none ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [gentoo-user] systemd installation location 2013-09-30 2:25 ` Mark David Dumlao @ 2013-09-30 2:31 ` Daniel Campbell 2013-09-30 4:13 ` Pandu Poluan 0 siblings, 1 reply; 24+ messages in thread From: Daniel Campbell @ 2013-09-30 2:31 UTC (permalink / raw To: gentoo-user On 09/29/2013 09:25 PM, Mark David Dumlao wrote: > On Mon, Sep 30, 2013 at 10:01 AM, Daniel Campbell <lists@sporkbox.us> wrote: >> On 09/29/2013 08:51 PM, Mark David Dumlao wrote: >>> On Mon, Sep 30, 2013 at 9:22 AM, Daniel Campbell <lists@sporkbox.us> wrote: >>>> It's fairly obvious (to me, anyway) that anything mounting a filesystem >>>> and making it available is system-critical. I run samba and don't need >>>> it for boot, but like you said, someone may need that. I wouldn't see a >>>> problem with smbmount being in /bin. FUSE deserves similar treatment. >>>> LVM's another that probably deserves special treatment. >>>> >>> >>> If you allow FUSE you've already failed, because arbitrary programs can >>> be required by FUSE filesystems. Suddenly your ssh client should be pushed >>> to /, or your telnet, or rsync, or ftp. >>> >> FUSE is that lenient with what it can use to mount with? o_O > > Fuse is filesystems in userspace. The hard problem that isn't obvious > here, is that > anybody can come up with a userspace filesystem, and there is ZERO intelligence > in the package manager that some filesystem is dependent on some userspace > logic. > > for example, there's a filesystem called sshfs. It allows you to view an ssh > connection as a directory. sshfs itself could be in /, but it depends > on ssh and its > libraries, which are normally in /usr. Now what do you do? Just to > support sshfs, > you have to move or copy all those programs to /. Portage doesn't know this. > Ebuilds don't know this. Manual compiles don't know this. What should the ssh > packagers do? What should the fuse-sshfs packagers do? What should users > who are manually rolling out sshfs do? > > How about when you develop the next revolutionary crazy filesystem that > allows you to view emacs sessions as directories? What should the emacs > packagers do? What should the fuse-emacsfs packagers do? What should users > manually rolling out that do? > > You want to automatically version /etc using some filesystem that uses a git > backend (I'll call it gitfs). What should git packagers do? What > should fuse-gitfs > packagers do? etc.... How about svnfs? hgfs? bzrfs? scpfs? ... > Ah, I wasn't aware of how flexible and arbitrary fuse could be. In that case I'd probably keep it out of /bin for the reasons you outlined. But that doesn't solve the problem of "what if people want to boot with fuse?". At least, not without an initramfs. And then we've created a similar problem. If the proposed solution is all binaries and libraries in the same root/prefix directory, then why call it /usr? It has little to do with users if it's nothing but binaries, libraries, etc. In addition, would a local directory still be under this, for user-compiled programs not maintained by the PM? Or does that deserve a different top level directory? Then there's /opt, whose purpose I'm still not sure of. This is strengthening the idea that something new should be thought up and drafted. Not necessarily by us at Gentoo, but *somebody*. If I was crazy and knowledgeable enough I'd volunteer myself. ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [gentoo-user] systemd installation location 2013-09-30 2:31 ` Daniel Campbell @ 2013-09-30 4:13 ` Pandu Poluan 2013-09-30 5:08 ` Mark David Dumlao 0 siblings, 1 reply; 24+ messages in thread From: Pandu Poluan @ 2013-09-30 4:13 UTC (permalink / raw To: gentoo-user [-- Attachment #1: Type: text/plain, Size: 1577 bytes --] On Sep 30, 2013 9:31 AM, "Daniel Campbell" <lists@sporkbox.us> wrote: > --- le snip --- > If the proposed solution is all binaries and libraries in the same > root/prefix directory, then why call it /usr? My question exactly. Why install to /usr at all, leaving /bin and /sbin a practically empty directory containing symlinks only? I mean, I have no quarrel with / and /usr separation, having had them in the same partition for ages... but why not do it the other way around, i.e., put everything in / and have /usr be a container for symlinks? > It has little to do with > users if it's nothing but binaries, libraries, etc. In addition, would a > local directory still be under this, for user-compiled programs not > maintained by the PM? Or does that deserve a different top level directory? > > Then there's /opt, whose purpose I'm still not sure of. This is > strengthening the idea that something new should be thought up and > drafted. IIRC, it was supposed to contain third-party binaries, i.e., things not available in a distro's package repo. Thus, when one's tired of a third-party binary package, he/she can just delete the relevant directory under /opt, because the third-party package might not be uninstallable using the distro's package management system (if any). Of course, he/she might have to clean up the leftover crud in /etc, but those are usually small and can safely be ignored. Except perhaps startup initscripts. > Not necessarily by us at Gentoo, but *somebody*. If I was crazy > and knowledgeable enough I'd volunteer myself. > Rgds, -- [-- Attachment #2: Type: text/html, Size: 1966 bytes --] ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [gentoo-user] systemd installation location 2013-09-30 4:13 ` Pandu Poluan @ 2013-09-30 5:08 ` Mark David Dumlao 0 siblings, 0 replies; 24+ messages in thread From: Mark David Dumlao @ 2013-09-30 5:08 UTC (permalink / raw To: gentoo-user On Mon, Sep 30, 2013 at 12:13 PM, Pandu Poluan <pandu@poluan.info> wrote: > > On Sep 30, 2013 9:31 AM, "Daniel Campbell" <lists@sporkbox.us> wrote: >> > > --- le snip --- > >> If the proposed solution is all binaries and libraries in the same >> root/prefix directory, then why call it /usr? > > My question exactly. > > Why install to /usr at all, leaving /bin and /sbin a practically empty > directory containing symlinks only? > > I mean, I have no quarrel with / and /usr separation, having had them in the > same partition for ages... but why not do it the other way around, i.e., put > everything in / and have /usr be a container for symlinks? > If the binaries and libraries are kept together, /usr can actually be made reliably sharable, independent of local settings in /etc. It can also be made properly readonly, or otherwise use different mount options than /. Most of the things in /usr have the same read-write characteristics. They're mostly chunks of 1-20mb in size that are read very often and written very rarely. You can pick a filesystem with options that optimized for that. They're also non-data, so the root of that tree has an entirely different backup priority than /etc or /home. And then there are directories in /usr that don't exist in /. Are you gonna link them too? So we have /share now? Or /src? Seems to me that it makes less mess to move / to /usr than vice versa. -- This email is: [ ] actionable [x] fyi [ ] social Response needed: [ ] yes [ ] up to you [x] no Time-sensitive: [ ] immediate [ ] soon [x] none ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [gentoo-user] systemd installation location 2013-09-30 0:54 ` Daniel Campbell 2013-09-30 1:17 ` Mark David Dumlao @ 2013-09-30 1:40 ` Mark David Dumlao 2013-09-30 1:50 ` Daniel Campbell 1 sibling, 1 reply; 24+ messages in thread From: Mark David Dumlao @ 2013-09-30 1:40 UTC (permalink / raw To: gentoo-user On Mon, Sep 30, 2013 at 8:54 AM, Daniel Campbell <lists@sporkbox.us> wrote: > I'm not affected by anything regarding the /usr switch, but I'd like > to have a good talk with the first person who decided a > system-critical binary belonged in /usr instead of /bin or /sbin. > They've created a mess for every distro and any project that depends > on their work. (sorry for the previous post, accidentally clicked somewhere onscreen) As I've pointed out before: 1) "system-critical" is actually dependent on the system. A system dependent on an smb share will find smbmount system critical. One dependent on zfs-fuse will find fuse system critical. With the advent of fuse, some filesystem that depends on an arbitrary user program will find that system-critical. While this works for for 99.(99?)% of user systems out there, FHS is supposed to be targetting all of them, and so it fails in principle in that respect. I remember making a lengthy thread on this mailing list challenging how FHS defined this and it appeared that nobody could make a defense. 2) the reality is, it's not just binaries even. There are some things that binaries depend on, that in theory should be in /. For example, the hwid database, or libraries. Libraries make for a complex problem, because /usr is supposed to be network-sharable. Any libraries your programs depend on can't simply just be pushed to /, because then there'd be the chance that the programs and their libraries were not in sync. I made a handful of criticisms to FHS in that thread before, and nobody was able to mount a suitable defense. The point being, even in principle, separating / and /usr is flaky design at best. That we just so happened to accumulate a number of packages that are historically installed to /usr is a consequence of that. It's not even necessarily the fault of the upstream developer, who's not supposed to care so much which PREFIX they install to, or the distro packager, who can't yet predict how the user will tailor their system. If you were in the shoes of the ebuild packagers, you would be hard-pressed to predict which packages belong in the / PREFIX and which ones in /usr PREFIX, 100 times out of 100. But you need 100 times out of 100 or you'll get people whining that they can't boot or whining that they need to do some migration. That's why / and /usr separation is broken. -- This email is: [ ] actionable [x] fyi [x] social Response needed: [ ] yes [x] up to you [ ] no Time-sensitive: [ ] immediate [ ] soon [x] none ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [gentoo-user] systemd installation location 2013-09-30 1:40 ` Mark David Dumlao @ 2013-09-30 1:50 ` Daniel Campbell 2013-09-30 2:05 ` Mark David Dumlao 0 siblings, 1 reply; 24+ messages in thread From: Daniel Campbell @ 2013-09-30 1:50 UTC (permalink / raw To: gentoo-user On 09/29/2013 08:40 PM, Mark David Dumlao wrote: > On Mon, Sep 30, 2013 at 8:54 AM, Daniel Campbell <lists@sporkbox.us> wrote: >> I'm not affected by anything regarding the /usr switch, but I'd like >> to have a good talk with the first person who decided a >> system-critical binary belonged in /usr instead of /bin or /sbin. >> They've created a mess for every distro and any project that depends >> on their work. > > (sorry for the previous post, accidentally clicked somewhere onscreen) > > As I've pointed out before: > 1) "system-critical" is actually dependent on the system. A system dependent > on an smb share will find smbmount system critical. One dependent on > zfs-fuse will find fuse system critical. With the advent of fuse, > some filesystem > that depends on an arbitrary user program will find that system-critical. > While this works for for 99.(99?)% of user systems out there, FHS > is supposed > to be targetting all of them, and so it fails in principle in that respect. > I remember making a lengthy thread on this mailing list challenging how FHS > defined this and it appeared that nobody could make a defense. > 2) the reality is, it's not just binaries even. There are some things > that binaries > depend on, that in theory should be in /. For example, the hwid database, or > libraries. Libraries make for a complex problem, because /usr is supposed to > be network-sharable. Any libraries your programs depend on can't simply just > be pushed to /, because then there'd be the chance that the > programs and their > libraries were not in sync. Libraries were one of my concerns when I was replying. I thought to myself, "Well damn, won't shared libraries make this even more difficult?" Perhaps it's a case for static-linked core binaries. :) Anyway, I'm not in favor of FHS _per se_, but it sounds pretty reasonable to have some semblance of order among where different parts of a system go. Shoving everything into /usr and symlinking everything else seems like a stop-gap or good-enough solution that came about due to ignoring the existing standard (FHS) and refusing to try to change it. I could be wrong, though. My point is I'm not dogmatic about it; I just think that if the FOSS community were willing, a better solution could be crafted. > > I made a handful of criticisms to FHS in that thread before, and nobody was > able to mount a suitable defense. The point being, even in principle, separating > / and /usr is flaky design at best. That we just so happened to > accumulate a number > of packages that are historically installed to /usr is a consequence > of that. It's not > even necessarily the fault of the upstream developer, who's not > supposed to care so > much which PREFIX they install to, or the distro packager, who can't yet predict > how the user will tailor their system. > > If you were in the shoes of the ebuild packagers, you would be hard-pressed to > predict which packages belong in the / PREFIX and which ones in /usr PREFIX, > 100 times out of 100. But you need 100 times out of 100 or you'll get > people whining > that they can't boot or whining that they need to do some migration. That's > why / and /usr separation is broken. > I agree, but perhaps the / and /usr separation is a symptom of a greater problem instead of being the problem in and of itself. Like Inception, maybe we need to go further. :P ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [gentoo-user] systemd installation location 2013-09-30 1:50 ` Daniel Campbell @ 2013-09-30 2:05 ` Mark David Dumlao 2013-09-30 2:15 ` Daniel Campbell 2013-09-30 6:24 ` pk 0 siblings, 2 replies; 24+ messages in thread From: Mark David Dumlao @ 2013-09-30 2:05 UTC (permalink / raw To: gentoo-user On Mon, Sep 30, 2013 at 9:50 AM, Daniel Campbell <lists@sporkbox.us> wrote: > Anyway, I'm not in favor of FHS _per se_, but it sounds pretty > reasonable to have some semblance of order among where different parts > of a system go. Shoving everything into /usr and symlinking everything > else seems like a stop-gap or good-enough solution that came about due > to ignoring the existing standard (FHS) and refusing to try to change > it. I could be wrong, though. My point is I'm not dogmatic about it; I > just think that if the FOSS community were willing, a better solution > could be crafted. It's true that it's nice to have a semblance of order where different parts go. But "all libraries and binaries in /usr" is also a semblance of order. You don't separate stuff for the sake of separating stuff. You separate them because you have a good reason to separate them. It turns out that there isn't a good reason to separate them, and that there's no way to predictably separate them. Mushing them together isn't just a stop-gap or good-enough solution. The idea of keeping system-critical separate from non-critical was not maintainable in the long run to begin with. >> If you were in the shoes of the ebuild packagers, you would be hard-pressed to >> predict which packages belong in the / PREFIX and which ones in /usr PREFIX, >> 100 times out of 100. But you need 100 times out of 100 or you'll get >> people whining >> that they can't boot or whining that they need to do some migration. That's >> why / and /usr separation is broken. >> > I agree, but perhaps the / and /usr separation is a symptom of a greater > problem instead of being the problem in and of itself. Like Inception, > maybe we need to go further. :P The greater problem is what I'm pointing out already. Even in principle, you just can't predict which files belong in /. It's always been a case-by-case, system-by-system thing, and it just so happens that 99.9xxx% of the cases are the same. Distro packagers, however, have to decide for 100% of the cases. So they're going to end up making weird decisions that are easy for you to second-guess but are actually tough. If you want to solve the "hard problem", you want to create a tool that will automate / and /usr migrations. Portage has to be aware of the tool and maybe 100% of ebuilds will have to be rewritten to take advantage of the dynamic prefixes set by the tool. That solves it for good, and you can have your / and /usr separate. But only for gentoo. Every package manager needs to have a similar tool and similar intelligence for that to work. -- This email is: [ ] actionable [x] fyi [x] social Response needed: [ ] yes [x] up to you [ ] no Time-sensitive: [ ] immediate [ ] soon [x] none ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [gentoo-user] systemd installation location 2013-09-30 2:05 ` Mark David Dumlao @ 2013-09-30 2:15 ` Daniel Campbell 2013-09-30 2:42 ` Mark David Dumlao 2013-09-30 6:24 ` pk 1 sibling, 1 reply; 24+ messages in thread From: Daniel Campbell @ 2013-09-30 2:15 UTC (permalink / raw To: gentoo-user On 09/29/2013 09:05 PM, Mark David Dumlao wrote: > On Mon, Sep 30, 2013 at 9:50 AM, Daniel Campbell <lists@sporkbox.us> wrote: >> Anyway, I'm not in favor of FHS _per se_, but it sounds pretty >> reasonable to have some semblance of order among where different parts >> of a system go. Shoving everything into /usr and symlinking everything >> else seems like a stop-gap or good-enough solution that came about due >> to ignoring the existing standard (FHS) and refusing to try to change >> it. I could be wrong, though. My point is I'm not dogmatic about it; I >> just think that if the FOSS community were willing, a better solution >> could be crafted. > > It's true that it's nice to have a semblance of order where different parts go. > But "all libraries and binaries in /usr" is also a semblance of order. You don't > separate stuff for the sake of separating stuff. You separate them because you > have a good reason to separate them. It turns out that there isn't a good reason > to separate them, and that there's no way to predictably separate them. > > Mushing them together isn't just a stop-gap or good-enough solution. The > idea of keeping system-critical separate from non-critical was not maintainable > in the long run to begin with. > If separating them was unmaintainable, why bother with /bin and /sbin at all, then? If /usr is essentially replacing what / was originally, it's hard to take any filesystem standard seriously and we return to chaos. What was /usr's original purpose? I'm not really in favor of the separation or the merging; I'm in favor of what makes sense. For now, shoving things into /usr is practical because most other software does it. But that's following a trend. It's become *de facto* standard instead of a well-designed, well-reasoned standard. If the change to /usr was brought about because the FHS has holes in it, why not draft a new FHS completely from the ground up? Sometimes a vast rewrite is necessary in a standard, and the new standard could address modern challenges. >>> If you were in the shoes of the ebuild packagers, you would be hard-pressed to >>> predict which packages belong in the / PREFIX and which ones in /usr PREFIX, >>> 100 times out of 100. But you need 100 times out of 100 or you'll get >>> people whining >>> that they can't boot or whining that they need to do some migration. That's >>> why / and /usr separation is broken. >>> >> I agree, but perhaps the / and /usr separation is a symptom of a greater >> problem instead of being the problem in and of itself. Like Inception, >> maybe we need to go further. :P > > The greater problem is what I'm pointing out already. Even in principle, you > just can't predict which files belong in /. It's always been a case-by-case, > system-by-system thing, and it just so happens that 99.9xxx% of the cases > are the same. Distro packagers, however, have to decide for 100% of the cases. > So they're going to end up making weird decisions that are easy for you to > second-guess but are actually tough. > > If you want to solve the "hard problem", you want to create a tool that > will automate / and /usr migrations. Portage has to be aware of the tool > and maybe 100% of ebuilds will have to be rewritten to take advantage of the > dynamic prefixes set by the tool. That solves it for good, and you can have > your / and /usr separate. But only for gentoo. > > Every package manager needs to have a similar tool and similar intelligence > for that to work. > I agree, but I don't see a tool like that coming up. Enforcing a /usr merge and in edge cases forcing initramfs is the right *practical* solution, but I don't think it solves the greater problem, which is social and organizational. It may not even be a solvable problem, given how vast and diverse the FOSS world is. But maybe discussion on it can still be insightful, even if it can't be fruitful. ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [gentoo-user] systemd installation location 2013-09-30 2:15 ` Daniel Campbell @ 2013-09-30 2:42 ` Mark David Dumlao 2013-09-30 8:07 ` Neil Bothwick 0 siblings, 1 reply; 24+ messages in thread From: Mark David Dumlao @ 2013-09-30 2:42 UTC (permalink / raw To: gentoo-user On Mon, Sep 30, 2013 at 10:15 AM, Daniel Campbell <lists@sporkbox.us> wrote: > On 09/29/2013 09:05 PM, Mark David Dumlao wrote: >> On Mon, Sep 30, 2013 at 9:50 AM, Daniel Campbell <lists@sporkbox.us> wrote: >>> Anyway, I'm not in favor of FHS _per se_, but it sounds pretty >>> reasonable to have some semblance of order among where different parts >>> of a system go. Shoving everything into /usr and symlinking everything >>> else seems like a stop-gap or good-enough solution that came about due >>> to ignoring the existing standard (FHS) and refusing to try to change >>> it. I could be wrong, though. My point is I'm not dogmatic about it; I >>> just think that if the FOSS community were willing, a better solution >>> could be crafted. >> >> It's true that it's nice to have a semblance of order where different parts go. >> But "all libraries and binaries in /usr" is also a semblance of order. You don't >> separate stuff for the sake of separating stuff. You separate them because you >> have a good reason to separate them. It turns out that there isn't a good reason >> to separate them, and that there's no way to predictably separate them. >> >> Mushing them together isn't just a stop-gap or good-enough solution. The >> idea of keeping system-critical separate from non-critical was not maintainable >> in the long run to begin with. >> > If separating them was unmaintainable, why bother with /bin and /sbin at > all, then? If /usr is essentially replacing what / was originally, it's > hard to take any filesystem standard seriously and we return to chaos. The people that write software and systems and standards, etc are human. Give them a break. They did the best they could. > What was /usr's original purpose? /usr was originally the home directory. Programs were moved there because Unix didn't fit into a single disk. http://lists.busybox.net/pipermail/busybox/2010-December/074114.html > If the change to > /usr was brought about because the FHS has holes in it, why not draft a > new FHS completely from the ground up? At the end of the day, a standard is just a doc that people don't read. Part of the reason why FHS was "successful" was because it was more than just a prescriptive standard. Most of the rules in it had rationales written based on existing practices. In other words, writing a new FHS isn't going to do a damned thing to fix the problems people have had so far, and there's the likelihood that people won't follow it anyways. Heck, just look at /usr/portage. Portage, or at least the distfiles, in no way, shape, or form, belongs in /usr. It's just there because that's how it was done before. THE way to rewrite FHS is to change existing practice. And if the big distros agree on it, the existing practice gets codified into a standard. -- This email is: [ ] actionable [x] fyi [ ] social Response needed: [ ] yes [ ] up to you [x] no Time-sensitive: [ ] immediate [ ] soon [x] none ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [gentoo-user] systemd installation location 2013-09-30 2:42 ` Mark David Dumlao @ 2013-09-30 8:07 ` Neil Bothwick 0 siblings, 0 replies; 24+ messages in thread From: Neil Bothwick @ 2013-09-30 8:07 UTC (permalink / raw To: gentoo-user [-- Attachment #1: Type: text/plain, Size: 457 bytes --] On Mon, 30 Sep 2013 10:42:37 +0800, Mark David Dumlao wrote: > > What was /usr's original purpose? > /usr was originally the home directory. Programs were moved there > because Unix didn't fit into a single disk. > > http://lists.busybox.net/pipermail/busybox/2010-December/074114.html Thanks for that link, it does a good job of explaining how we got in this mess. -- Neil Bothwick I spilled Spot remover on my dog. Now he's gone. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [gentoo-user] systemd installation location 2013-09-30 2:05 ` Mark David Dumlao 2013-09-30 2:15 ` Daniel Campbell @ 2013-09-30 6:24 ` pk 2013-09-30 6:45 ` Alan McKinnon ` (2 more replies) 1 sibling, 3 replies; 24+ messages in thread From: pk @ 2013-09-30 6:24 UTC (permalink / raw To: gentoo-user On 2013-09-30 04:05, Mark David Dumlao wrote: > It's true that it's nice to have a semblance of order where different parts go. > But "all libraries and binaries in /usr" is also a semblance of order. You don't > separate stuff for the sake of separating stuff. You separate them because you > have a good reason to separate them. It turns out that there isn't a good reason > to separate them, and that there's no way to predictably separate them. > > Mushing them together isn't just a stop-gap or good-enough solution. The > idea of keeping system-critical separate from non-critical was not maintainable > in the long run to begin with. So what you're saying is that everything in /usr is system-critical? I have gimp installed in /usr... I don't see a need to start gimp at boot time. Maybe we should classify frozen-bubble as system-critical as well (it's also in /usr)? Seriously, boot-critical would be something that the system cannot *boot without*, which belongs in /. Everything else should be in /usr, i.e. non-boot-critical. How hard is it to start *non-boot* (system) critical *after* boot (things like sshd)? I do that today... > are the same. Distro packagers, however, have to decide for 100% of the cases. > So they're going to end up making weird decisions that are easy for you to > second-guess but are actually tough. That's only true for binary distros. > If you want to solve the "hard problem", you want to create a tool that > will automate / and /usr migrations. Portage has to be aware of the tool What's wrong with using autotools? I really don't see why you need it to be dynamic. In Gentoo you install stuff once for every version (or if you change use flag). Why invent stuff/complicate matters when you don't need to? Best regards Peter K ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [gentoo-user] systemd installation location 2013-09-30 6:24 ` pk @ 2013-09-30 6:45 ` Alan McKinnon 2013-09-30 22:14 ` pk 2013-09-30 16:06 ` [gentoo-user] " Martin Vaeth 2013-09-30 17:47 ` [gentoo-user] " Mark David Dumlao 2 siblings, 1 reply; 24+ messages in thread From: Alan McKinnon @ 2013-09-30 6:45 UTC (permalink / raw To: gentoo-user On 30/09/2013 08:24, pk wrote: > So what you're saying is that everything in /usr is system-critical? I > have gimp installed in /usr... I don't see a need to start gimp at boot > time. Maybe we should classify frozen-bubble as system-critical as well > (it's also in /usr)? > > Seriously, boot-critical would be something that the system cannot *boot > without*, which belongs in /. Everything else should be in /usr, i.e. > non-boot-critical. How hard is it to start *non-boot* (system) critical > *after* boot (things like sshd)? I do that today... That is over-simplifying the problem and trivializing it. No-one ever said the *everythign* in /usr is criticial for boot. This is the problem: a. There exists code used at boot and early-user space time. It is critical that this code is available when needed. b. One cannot predict with absolute certainty 100% of the time what exactly that critical code is. c. many reasonable setups turn out to have such critical code in /usr, and this cannot be reliably predicted in advance Your second paragraph reveals that you beleive you already know everything you need to have to boot your system. Now do the same for every possible Gentoo user out there and have it work 100% of the time in ALL valid cases. Do you now see the problem and the fulls cope and impact of it? -- Alan McKinnon alan.mckinnon@gmail.com ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [gentoo-user] systemd installation location 2013-09-30 6:45 ` Alan McKinnon @ 2013-09-30 22:14 ` pk 2013-09-30 22:43 ` Neil Bothwick 2013-10-01 6:16 ` Alan McKinnon 0 siblings, 2 replies; 24+ messages in thread From: pk @ 2013-09-30 22:14 UTC (permalink / raw To: gentoo-user On 2013-09-30 08:45, Alan McKinnon wrote: > That is over-simplifying the problem and trivializing it. No-one ever > said the *everythign* in /usr is criticial for boot. Is it really over-simplyfying it? How am I supposed to know whatever comes next? Someone ("upstream") *may* find it boot-critical to have 'Space Invaders' operational during boot. Yes, I say that somewhat *tounge-in-cheek* but the way things are going I'm not so sure anymore... > This is the problem: > > a. There exists code used at boot and early-user space time. It is > critical that this code is available when needed. I fully understand this and *if* I ever were to install code that I *knew* had this dependency I would take a serious look if I really *need* it and only then install it. But it would be up to me to make that decision and take the necessary steps. > b. One cannot predict with absolute certainty 100% of the time what > exactly that critical code is. In a general manner, no, you are correct... Also, see above ("Invaders")... (And if you don't understand what I'm trying to say, I'm saying this is as *arbitrary* as it gets - which you, like me, seem to be opposed to["arbitrariness"]) > c. many reasonable setups turn out to have such critical code in /usr, > and this cannot be reliably predicted in advance So I avoid things like Gnome, pulseaudio, systemd and similar stuff like the plague but I *still* shall be forced to use whatever is dictated by these things[1]? Don't get me wrong, if anyone wants to install Gnome or whatever then they should have the restrictions required by it. > Your second paragraph reveals that you beleive you already know > everything you need to have to boot your system. Now do the same for > every possible Gentoo user out there and have it work 100% of the time > in ALL valid cases. I *do* know everything I need to have to boot my system. I carefully select my hardware and I take particular care of how I set up my system thank you very much. But apparently my system is no longer deemed a "valid case"... so I'm obviously not a "possible Gentoo user" anymore. > Do you now see the problem and the fulls cope and impact of it? I've seen it since *long* before this thread started. The main problem is lack of resources (because of stupid decisions upstream which puts a burden on Gentoo devs) and I can't (currently) help much with that other than through monetary means (donations) but since Gentoo seems to go the way of the dodo for me (or "assimilated" if you will) then I will take my leave. For a while now it has only been inertia keeping me here. Or maybe a hope that things will get better... [1] And no, I'm not blaming systemd, Gnome or any of the other "pests" in particular for this... Best regards Peter K ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [gentoo-user] systemd installation location 2013-09-30 22:14 ` pk @ 2013-09-30 22:43 ` Neil Bothwick 2013-10-01 6:16 ` Alan McKinnon 1 sibling, 0 replies; 24+ messages in thread From: Neil Bothwick @ 2013-09-30 22:43 UTC (permalink / raw To: gentoo-user [-- Attachment #1: Type: text/plain, Size: 1168 bytes --] On Tue, 01 Oct 2013 00:14:55 +0200, pk wrote: > > Your second paragraph reveals that you beleive you already know > > everything you need to have to boot your system. Now do the same for > > every possible Gentoo user out there and have it work 100% of the time > > in ALL valid cases. > > I *do* know everything I need to have to boot my system. I carefully > select my hardware and I take particular care of how I set up my system > thank you very much. But apparently my system is no longer deemed a > "valid case"... so I'm obviously not a "possible Gentoo user" anymore. Actually you are. No one said that your setup would no longer work, only that it would no longer be supported by the devs. Since you know exactly what you want and how to get it, that shouldn't be a problem as you support it yourself. Come November you will be running an unsupported setup, just like I am now and have been for most of this year. But my system hasn't stopped working. Well it did once and I had to fix it myself, that's all. -- Neil Bothwick "A computer is like an Old Testament god, with a lot of rules and no mercy." -- Joseph Campbell [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [gentoo-user] systemd installation location 2013-09-30 22:14 ` pk 2013-09-30 22:43 ` Neil Bothwick @ 2013-10-01 6:16 ` Alan McKinnon 2013-10-01 19:59 ` pk 1 sibling, 1 reply; 24+ messages in thread From: Alan McKinnon @ 2013-10-01 6:16 UTC (permalink / raw To: gentoo-user On 01/10/2013 00:14, pk wrote: > On 2013-09-30 08:45, Alan McKinnon wrote: > >> That is over-simplifying the problem and trivializing it. No-one ever >> said the *everythign* in /usr is criticial for boot. > > Is it really over-simplyfying it? How am I supposed to know whatever > comes next? Someone ("upstream") *may* find it boot-critical to have > 'Space Invaders' operational during boot. Yes, I say that somewhat > *tounge-in-cheek* but the way things are going I'm not so sure anymore... There are many examples in /usr you could have used to illustrate your point, such as many fuse modules. And yet you chose an imaginary space invader game. Let's rather stick within the bounds of what is feasible, OK? >> This is the problem: >> >> a. There exists code used at boot and early-user space time. It is >> critical that this code is available when needed. > > I fully understand this and *if* I ever were to install code that I > *knew* had this dependency I would take a serious look if I really > *need* it and only then install it. But it would be up to me to make > that decision and take the necessary steps. But it's not just you. You are not running LFS, you are running Gentoo. It has ebuilds and ebuilds put the generated files somewhere, and that destination is the same for every user of that ebuild. Unix, by design and unlike a traditional mainframe OS, does not distinguish between different types of files and does limit where you can put files. This has two consequences - you can do virtually anything you like with it as everything is a file, and filesystem files and structure have been moved out to human space in the hands of the sysadmin/packager/maintainer/user or whatever. Some sanity must prevail. The Linux boot process can conceivably run any arbitrary code it needs to run to get userspace into a runnable state. This can easily be code that we haven't conceived of yet and becuase it is Unix, it could reside anywhere. Also because it's Unix and because sysadmins have learned over the years we constrain ourselves to putting the code in the bin, sbin and lib directories in / and in /usr. Clearly, there is a massive distinction between code there and in say /opt or /var/lib, that is why you won't find boot-critical code there. But there is no such clear distinction between / and /usr. What *you* think is not boot critical may be criticial for someone else. And here's the kicker: You don't get to decide for the other guy. But the packager gets to support him, and has to edit ebuilds to install all the necessary code not in /usr but in /. And they have to do this over and over and over, and while they are doing that they have to answer users like you who are complinaing about unneccessary rebuilds just to change the desitnation of a few files. This is a no-win-ever situation for devs and they have decided they are not doing it anymore and have made a decision to not support separate /usr without initramfs. that is their right as you do not pay them a salary. This is the correct decision for Gentoo to have made, as the problem is open ended and is never completed, plus there is no clear distinction between what is boot critical in the general case and what is not. if you can't see or understand that, then we have nothing more to discuss. If you don't like what Gentoo has done then I recommend you take it like a man and fork. Assume the maintenanceburden yourself. > >> b. One cannot predict with absolute certainty 100% of the time what >> exactly that critical code is. > > In a general manner, no, you are correct... Also, see above > ("Invaders")... (And if you don't understand what I'm trying to say, I'm > saying this is as *arbitrary* as it gets - which you, like me, seem to > be opposed to["arbitrariness"]) > >> c. many reasonable setups turn out to have such critical code in /usr, >> and this cannot be reliably predicted in advance > > So I avoid things like Gnome, pulseaudio, systemd and similar stuff like > the plague but I *still* shall be forced to use whatever is dictated by > these things[1]? Don't get me wrong, if anyone wants to install Gnome or > whatever then they should have the restrictions required by it. > >> Your second paragraph reveals that you beleive you already know >> everything you need to have to boot your system. Now do the same for >> every possible Gentoo user out there and have it work 100% of the time >> in ALL valid cases. > > I *do* know everything I need to have to boot my system. I carefully > select my hardware and I take particular care of how I set up my system > thank you very much. But apparently my system is no longer deemed a > "valid case"... so I'm obviously not a "possible Gentoo user" anymore. > >> Do you now see the problem and the fulls cope and impact of it? > > I've seen it since *long* before this thread started. The main problem > is lack of resources (because of stupid decisions upstream which puts a > burden on Gentoo devs) and I can't (currently) help much with that other > than through monetary means (donations) but since Gentoo seems to go the > way of the dodo for me (or "assimilated" if you will) then I will take > my leave. For a while now it has only been inertia keeping me here. Or > maybe a hope that things will get better... > > [1] And no, I'm not blaming systemd, Gnome or any of the other "pests" > in particular for this... > > Best regards > > Peter K > -- Alan McKinnon alan.mckinnon@gmail.com ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [gentoo-user] systemd installation location 2013-10-01 6:16 ` Alan McKinnon @ 2013-10-01 19:59 ` pk 0 siblings, 0 replies; 24+ messages in thread From: pk @ 2013-10-01 19:59 UTC (permalink / raw To: gentoo-user On 2013-10-01 08:16, Alan McKinnon wrote: > There are many examples in /usr you could have used to illustrate your > point, such as many fuse modules. And yet you chose an imaginary space > invader game. > > Let's rather stick within the bounds of what is feasible, OK? What can I say, I like to exaggerate... :-) But it seems you got my point. Although I would not rule out "Space Invaders" as either imaginary (it came out in 1978) nor infeasible (at boot). > But it's not just you. You are not running LFS, you are running Gentoo. > It has ebuilds and ebuilds put the generated files somewhere, and that > destination is the same for every user of that ebuild. Which is why I said what I said further down in the mail you replied to... > Unix, by design and unlike a traditional mainframe OS, does not > distinguish between different types of files and does limit where you > can put files. This has two consequences - you can do virtually anything > you like with it as everything is a file, and filesystem files and > structure have been moved out to human space in the hands of the > sysadmin/packager/maintainer/user or whatever. Some sanity must prevail. Yes, sanity is what I'm after but it seems I'm in the minority... > The Linux boot process can conceivably run any arbitrary code it needs > to run to get userspace into a runnable state. This can easily be code > that we haven't conceived of yet and becuase it is Unix, it could reside > anywhere. Also because it's Unix and because sysadmins have learned over > the years we constrain ourselves to putting the code in the bin, sbin > and lib directories in / and in /usr. > > Clearly, there is a massive distinction between code there and in say > /opt or /var/lib, that is why you won't find boot-critical code there. > But there is no such clear distinction between / and /usr. What *you* > think is not boot critical may be criticial for someone else. I couldn't agree more. However, since some devs (and I don't mean anyone in particular) have started to expect /usr to always be available for "boot-critical" software then what is to say that the next one *will* require /opt and/or /var/lib at boot time? And where do we make a distinction between a boot-critical thing and a non-boot-critical thing. For all I know there may actually be someone out there seriously considering adding "Space Invaders" as a boot thing for, say sysops that want to reboot a really big server and want to play while booting... I'm only kidding of course and hope noone takes this seriously!? ;-) > And here's the kicker: > > You don't get to decide for the other guy. But the packager gets to > support him, and has to edit ebuilds to install all the necessary code > not in /usr but in /. And they have to do this over and over and over, > and while they are doing that they have to answer users like you who are > complinaing about unneccessary rebuilds just to change the desitnation > of a few files. > > This is a no-win-ever situation for devs and they have decided they are > not doing it anymore and have made a decision to not support separate > /usr without initramfs. that is their right as you do not pay them a salary. > > This is the correct decision for Gentoo to have made, as the problem is > open ended and is never completed, plus there is no clear distinction > between what is boot critical in the general case and what is not. if > you can't see or understand that, then we have nothing more to discuss. > > If you don't like what Gentoo has done then I recommend you take it like > a man and fork. Assume the maintenanceburden yourself. I've already come to that conclusion myself (as, again, I mentioned in my mail further down). Bye, so long and thanks for the f*sh! Best regards Peter K ^ permalink raw reply [flat|nested] 24+ messages in thread
* [gentoo-user] Re: systemd installation location 2013-09-30 6:24 ` pk 2013-09-30 6:45 ` Alan McKinnon @ 2013-09-30 16:06 ` Martin Vaeth 2013-09-30 17:47 ` [gentoo-user] " Mark David Dumlao 2 siblings, 0 replies; 24+ messages in thread From: Martin Vaeth @ 2013-09-30 16:06 UTC (permalink / raw To: gentoo-user pk <peterk2@coolmail.se> wrote: > > Seriously, boot-critical would be something that the system cannot *boot > without*, which belongs in /. Everything else should be in /usr, i.e. > non-boot-critical. How hard is it to start *non-boot* (system) critical > *after* boot (things like sshd)? I do that today... For somebody who uses sshfs-fuse to mount /usr from another machine, sshd and fuse *are* boot critical. (And yes, this maybe a natural setup for home systems since in many settings this is more secure than using nfs for this.) But even without net-mounting the answer to "how hard is it to start ... after boot" the answer for modern kernels is: a lot. Modern kernels initialize modules simulataneously (i.e. in an unpredictable order). So you would have to remember and postpone these initializations which can produce all sorts of unexpected problems if you have complicated implicit dependencies. Older versions of udev did this in a somewhat primitive way (restarting failed services again), but obviously this is not a clean solution (since the failing could have other reasons). ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [gentoo-user] systemd installation location 2013-09-30 6:24 ` pk 2013-09-30 6:45 ` Alan McKinnon 2013-09-30 16:06 ` [gentoo-user] " Martin Vaeth @ 2013-09-30 17:47 ` Mark David Dumlao 2 siblings, 0 replies; 24+ messages in thread From: Mark David Dumlao @ 2013-09-30 17:47 UTC (permalink / raw To: gentoo-user On Mon, Sep 30, 2013 at 2:24 PM, pk <peterk2@coolmail.se> wrote: > On 2013-09-30 04:05, Mark David Dumlao wrote: >> are the same. Distro packagers, however, have to decide for 100% of the cases. >> So they're going to end up making weird decisions that are easy for you to >> second-guess but are actually tough. > > That's only true for binary distros. That is not true. Even in source-based distros like gentoo, distro packagers decide where the files go. So far, it's only in a completely from scratch *nix environment where the end user gets to decide where files go. And "where do the files go" is pretty much what made this problem be apparent. Many packages with udev rules depend on programs, resources, libraries in /usr. It is _not_ trivial to fix those packages. If _you_ think it is, I recommend you replace the entire gentoo bugzilla community because you are clearly a rockstar bugfixer. > >> If you want to solve the "hard problem", you want to create a tool that >> will automate / and /usr migrations. Portage has to be aware of the tool > > What's wrong with using autotools? I really don't see why you need it to > be dynamic. In Gentoo you install stuff once for every version (or if > you change use flag). Why invent stuff/complicate matters when you don't > need to? > You do not really understand the scope of the problem. The problem is that "boot critical" is subjective to the system. A program that is "boot critical" for one system may not be "boot critical" for another. But where software gets installed is generally "hard coded" into packages (defaulting to /usr). That is the status quo. Because of this, the package manager simply does not have enough information on whether a package is boot critical or not. It is not part of the ebuild. It is not part of the emerge switches. Not only that, whether a package is boot critical or not could change at any time. nfs-utils are only boot critical if you use nfs. ssh is only boot critical if you use sshfs. Perl is only boot critical if you have a startup script that counts the number of virgins you've sacrificed to the goat god. Making a filesystem boot-critical is something that the package manager does not and cannot track. Autotools also cannot track it as it happens outside of compile time. If you want the / and /usr separation nonsense solved, you should write a program that can "mark" a binary as boot-critical. It will then copy the binary and all of its libraries to /, and copy and rebuild any dependencies into / as well. It must be a full copy, otherwise the promise that /usr can be shared will be violated. Everytime that package is rebuilt, it must be built and copied into _both_ / and /usr. Your program should also be able to unmark a binary as boot critical and thus delete any copies in / Your program should be understood by portage, or at least run as a portage hook. Copy paste that to all package managers as well. What's more, any program depending on a boot critical program must be rewritten so that it looks for the program in the correct path. For backwards compatibility, a "boot critical" program should generate\ symlinks in the / filesystem's /usr tree (the normally empty directory shadowed by the /usr filesystem), so that if the /usr filesystem is not available any programs depending on that program would still work. That program is writable in theory. It's VERY tedious to write it, much less test that it works. -- This email is: [ ] actionable [x] fyi [ ] social Response needed: [ ] yes [x] up to you [ ] no Time-sensitive: [ ] immediate [ ] soon [x] none ^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2013-10-01 20:00 UTC | newest] Thread overview: 24+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-09-29 19:52 [gentoo-user] systemd installation location William Hubbs 2013-09-30 0:54 ` Daniel Campbell 2013-09-30 1:17 ` Mark David Dumlao 2013-09-30 1:22 ` Daniel Campbell 2013-09-30 1:51 ` Mark David Dumlao 2013-09-30 2:01 ` Daniel Campbell 2013-09-30 2:25 ` Mark David Dumlao 2013-09-30 2:31 ` Daniel Campbell 2013-09-30 4:13 ` Pandu Poluan 2013-09-30 5:08 ` Mark David Dumlao 2013-09-30 1:40 ` Mark David Dumlao 2013-09-30 1:50 ` Daniel Campbell 2013-09-30 2:05 ` Mark David Dumlao 2013-09-30 2:15 ` Daniel Campbell 2013-09-30 2:42 ` Mark David Dumlao 2013-09-30 8:07 ` Neil Bothwick 2013-09-30 6:24 ` pk 2013-09-30 6:45 ` Alan McKinnon 2013-09-30 22:14 ` pk 2013-09-30 22:43 ` Neil Bothwick 2013-10-01 6:16 ` Alan McKinnon 2013-10-01 19:59 ` pk 2013-09-30 16:06 ` [gentoo-user] " Martin Vaeth 2013-09-30 17:47 ` [gentoo-user] " Mark David Dumlao
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox