[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Why GNU needn't worry [was: /usr --- to link or not to link]


>>>>> Thomas Bushnell, BSG writes:

 TBB> I do not want to punt the /usr -> / symlink.

Neither do I.  But I would like it to remain possible for people who
want a separate /usr to have one.

Think of this in terms of ecological niches.  We have two major

1) /usr and / are separate directories.  Packages which live in this
   ecosystem must know that /bin/true exists, but /usr/bin/true
   doesn't, and that /usr/bin/emacs exists but not /bin/emacs.

2) /usr and / are the same directory.  Packages in this ecosystem
   cannot depend on /bin being different from /usr/bin, etc.

Here is why I think you don't need to worry about anything:

* It is very easy to make packages that can work properly in *both*
environments.  So, let's make sure that every Debian GNU/Hurd package

* It is very easy to move from system #1 to system #2:

  (cd /usr && tar -cf - .) | (cd / && tar -xvBpf -) \
    && rm -rf /usr \
    && ln -s . /usr

* It is quite hard to move from system #2 to system #1, because you
  have to fight entropy in order to figure out whether moving
  /bin/perl to /usr/bin/perl will break anything.

* Having everything in / is more elegant, once shadowfs takes care of
  peoples' storage concerns.

So, my conclusion:

If we don't force the issue, people will naturally migrate from system
#1 to system #2.

I love Marcus' suggestion of the Debian install asking you if you want
system #1 or #2.  This is an option that isn't just useful for Hurd
systems: Linux people with large root partitions (like me) may want it

If you are suggesting we make Debian GNU/Hurd packages that only work
in system #1 or system #2, then I disagree completely.  This will only
create schism between us and Debian GNU/Linux, making it easier for
them to ignore us and reject the tiny fixes we need to have ae and
cpio (and maybe a few others) work on system #2.

If, on the other hand, we say our goal is to create packages that work
fine on both system #1 and #2, then they have no good reason to reject
our changes.

My main rationale is that I think we will have binary compatibility
with Linux long before every Debian GNU/Linux maintainer agrees that
/usr -> / is a Good Thing.  Let's just make sure that the Debian
GNU/Linux packages work with both systems, and then we won't need
separate Hurd packages for anything except the ones that are actually
improvements over their Linux counterparts (like glibc, Hurd-aware
fileutils, etc).

At that time, we can boast about how great our system is, how we never
do things like:

$ safe_finger gord@gnu.org
bash: safe_finger: command not found
  <Oops, safe_finger is in sbin...>
$ /sbin/safe_finger gord@gnu.org
bash: /sbin/safe_finger: No such file or directory
  <What the hell?!!>
$ locate safe_finger
  <fscking /usr directory!>
$ /usr/sbin/safe_finger gord@gnu.org


I think `/usr' is a Bad Thing too, but forcing people to abandon it is
like throwing out a child's security blanket.  Why not let them throw
it out themselves, and gain self-confidence and satisfaction in the

Give people freedom of choice, and you have the chance to prove how
you were right all along.  Make life miserable for those who disagree
with you, and you'll conclusively prove how you're a moron.

 Gordon Matzigkeit <gord@fig.org> //\ I'm a FIG (http://www.fig.org/)
    Lovers of freedom, unite!     \// I use GNU (http://www.gnu.org/)
[Unfortunately, www.fig.org is broken.  Please stay tuned for details.]

Reply to: