Supporting distro re-packaging (Was: [sclug] Linux Apprentice Wanted !)

Roland Turner SCLUG raz.fpyht.bet.hx at raz.cx
Tue Nov 7 15:21:23 UTC 2006


I'm on a roll here, and I've not even had coffee today (honest!). I
wrote:

> So, to conquer the world, all that we have to do is port Debian, RedHat
> and SUSE (and perhaps some others) to
> 
> (a) install their own variant as need be of a basic LSB instance
> 
> and
> 
> (b) put all of their other packages in independent universes

This is actually pretty straightforward (sort of). Let LSB (or perhaps
an LSB-fascists fork) not merely provide a general description of the
directories /(bin|boot|dev|etc|home|lib|media|mnt|opt|proc|root|sbin|
srv|sys|tmp|usr|var)/, but a complete set of contents
for /bin, /lib, /bin, /usr and /sbin and perhaps tools to
generate /dev, /boot, /etc, /media. What goes there is _only_ the base
system.

Then, per FHS, place distro-specific packages (i.e. most of them)
in /opt/debian.org/foo-1.34 or /opt/redhat.com/bar-2.45, or...

This gets a little tricky if a package author has dependencies on stuff
that cannot be freely distributed (parts of SUSE?), but it's a start.

The reverse is also true of course; consign all of /lib, /bin and so on
to the distro maintainers, but put the portable platform bits
in /opt/lsb.org/1.0 and /opt/lsb.org/1.5 ...

Apache can then put its web server in /opt/apache.org/httpd-2.3.3 and
its own builds of any third-party components not in the relevant LSB
version there too. e.g. Suppose that openSSL is not in /opt/lsb.org/1.5,
or that the version there is not useful; put it in
/opt/apache.org/openssl-0.9.7, thus avoiding conflicts with other builds
and/or versions of openssl that may also be present and in use.

(Hmm, Pieter's idea suddenly has legs. Granted, I've not solved _all_ of
the other problems, but the transitive-closure-of-dependencies problem
is solved!)

Also, putting the LSB bits into /opt is potentially more useful than
putting them in /; not only does it avoid the need to port all packages
in all existing distros to a different filesystem structure (!), it
allows somewhat peaceful co-existence of different LSB versions. Running
Debian/Sarge with LSB 1.2 built in but the apache.org build of
httpd-2.3.3 requires LSB 1.5? No problem, use of /opt means
that /opt/lsb.org/1.5 can, at least in principle, be constructed for
almost any version of any platform. If LSBF has actually built this
environment, then the user need merely install it and can then install
and run the apache.org build at will.

Now, multiple CPU types...

- Raz

P.S. OMFG, /(lib|bin|sbin)/ are now superfluous! Once you assume that
you can have multiple instances of libc et al, there is no need to have
a set in / at all, in fact all that you need is whatever stuff is
actually required to boot/recover sitting in /boot/*, and the rest sits
in /opt/lsb.org/* (and perhaps a distro-base set in /usr/*). Voila, I've
just [re-]invented Morphix's two-stage boot.



More information about the Sclug mailing list