Re: djblinux/djbos/"D. J. Bix"

Laurent Bercot <[email protected]> Tue, 24 Jun 2003 00:44:22 +0200
Newsgroups gmane.comp.djb.package
Message-ID <[email protected]>
> Rephrased: in the reformulated system shall-we-call-it distribution what
> directories would be in the root and what would their purposes be?

 This depends heavily on the purpose of your distribution. For instance,
if your system is going to be a NFs server, you'll have /shared ; else
you won't. If your system is going to have a single disk partition,
you'll have /package and /command ; but if you want to separate
emergency/boot-time commands from "normal use" ones, you'll have
something like /rootfs and /usr, both having package and command
subdirectories, and /package and /command being a dir containing
a forest of symlinks to the right directories, a la update-symlinks
(http://www.skarnet.org/software/symtools/)

 If you intend to maintain compatibility with standard Unix tools such
as login, you'll have /etc ; but if you want to have another, better
configuration system homed in /package, then /etc won't exist.
And so on, and so on.

 Since a /package-based system has only been tried individually, there
hasn't been much concertation, and no standard has been proposed.
We could use this list to try and establish such a standard (if DJB is
OK with that, for it goes well beyond /package) but I'm not sure whether
it's possible to design a filesystem hierarchy that does the right thing
in every case.


> What I was intending was to clarify is how 'foreign' packages should
> take a place when being integrated into the /package system.  Putting
> everything under /package/misc/spf creates an irregular classification
> for packages that seemingly should belong under e.g. /package/prog for
> gcc.
> 
> That 'ed' is under /package/text and 'gcc' is under /package/misc/spf
> indicates a lack of coherency and needless complexity.  

 That's less a problem than having to repackage the world, which is a
mistake made by too many distributions. See
 http://cr.yp.to/compatibility.html

 In other words: repackaging is Bad. (I wasn't convinced the first time
I came here ; now, as a software author who wants to be able to get
useful bug-reports with reproduceable behaviours, I totally agree.)

 Installing a piece of software under /package/misc/spf/foobar is fine:
most software authors explicitly support installation under a
"non-standard" root. GNU configure scripts make that easy, if there's
one thing they make easy. :)
 On the other hand, patching the software - which most repackaging
systems do - shifts the responsibility from the original author to you.
It's okay for one or two packages, but insane for a whole distribution.
The main principle is: don't change the way the author intended the
software to be used.


> I am asking this because the issue is unclear.  Does GNU ed belong under
> /package/text, or should Stefan have submitted a patch to Paul for
> sp-foreign?  Paul has created something of a divergent de facto
> standard.

 I believe that ed's place is /package/misc/spf/ed .
 If Stefan wants to provide a gnu-ed-sk package, with a gnu-ed-sk
command which is based on GNU ed, fine. But it's gnu-ed-sk, not ed,
and Stefan, not the ed maintainers, is responsible for the gnu-ed-sk
software. He's creating work for himself.


>  If Paul is doing the right thing by putting foreign packages
> under a secondary hierarchy, it seems sensical to allocate
> /package/ports for the purpose instead of using /package/misc/spf.

 I see no sensible difference between /package/ports and
/package/misc/spf. It's only a convention, and we have one that works,
so why change ?


> That document does not address the issue of distributing precompiled
> packages.

 This is a whole other subject.
 There are a number of problems with precompiled packages - some of them
technical, some of them legal. For instance, under which licensing terms
should a precompiled package be distributed ? I'm the author of execline,
which is BSD-licensed ; I want to distribute a binary execline package,
statically linked against the diet libc, which is GPL. Can I even do that
without explicitly putting the binary package under the GPL ? More
difficult: can I distribute a statically linked qmail, knowing that the
diet libc is GPL, but the binary qmail package won't be modifiable at all ?

 And, if you want a /package-based djb-like binary distribution, help us
persuade DJB to release versions of ucspi-tcp, djbdns, qmail, libtai and
friends that install by default under /package, so that we can comply to
http://cr.yp.to/distributors.html  :)

-- 
 Ska