>>>>> Brederlow  writes:

 B> It's not quite a port, it's a different operating system. :)

Is a system that uses vim instead of elvis a new port or a new
operating system?  My answer is neither, it's just an additional
option for basically the same operating system.

Seriously, though... GNU/Hurd is (or at least will be) a system that
is ABI-compatible with Linux.  The glibc, gnumach and hurd packages
will be different, but every other binary can be the same, unless they
*want* to use special Hurd features that aren't available under Linux,
or are too Linux-specific (like things that use /proc, which we
haven't written emulation for yet).

The only reason why people think that this is a new operating system
is because they are too attached to Linux.  I love Linux a lot, and
have accomplished many interesting things with it, but not enough to
think that it's the *only* way of doing things.

All that this is pointing out is that dpkg's idea of Architecture is
too inflexible.  People should only be forced to use ABI dependencies,
not architecture strings, to name the dependencies of their binaries.
I think then you'd find that only a small portion of Debian GNU/Linux
actually depends on Linux.

In many ways, using the GNU Hurd packages instead of Linux (plus
associated glibc ports, which have different internals) should be
like a cross between the Great X Reorganization and the move from
libc5 to glibc.

I know that these were both painful things for Debian to go through,
but they've been done, we can learn from them, and make life easier
for the developers of the next GNU kernel (the one that will replace
the Hurd, if any) by preparing our distribution to offer alternative
kernels.  And no, I don't mean offering Linux 2.2 as opposed to Linux
2.0, but that is a minor instance of the thing I'm talking about.

 B> When I'm a hurd fan, I can just select debian-hurd and hit the
 B> download key (together with stabling symlincs) and I have my hurd
 B> for all my archs.

 B> Also a structure with the arch right at the front would allow
 B> downloading all arch-xxx stuff in a simple way.

What if ``all arch-xxx stuff'' is just 20-30 packages, and you already
have the other 4000 on your disk.  I would be quite pissed off if you
told me I had to download the other 3770 packages just because the
Architectures don't match.

Especially if I live in a place where I am charged an hourly rate for
my Internet connection, I have a slow link, and I want to just try out
the current sources.

I want it to be possible for the Hurd and Linux to exist on the same
machine, share a root partition and most binaries, and then just boot
a different kernel and use a different libc at startup.

The latest roadblock to my goal is the dpkg notion of Architecture.
When that is fixed, we can move on to bigger things, like getting
better glibc-2.1 ABI compatibility.

 B> /debian/link-farm/debian-hurd/...  (just hurd stuff below this)
 B> /debian/link-farm/arch-i386/...  (all i386 and all stuff below
 B> this) /debian/link-farm/slink/...  (all slink stuff below here)

Okay, now I'm understanding what you mean.  Just ignore my above
comments if you agree with them... I just want to make things more
explicit.

Certainly it is worthwhile to organize the tree as we want, but I
don't think that it is a great idea to use separate scripts (though it
may be a good prototype for the real implementation).  I'd like to see
native dpkg and dinstall support, and that will take some rewriting.

I'd also like to see Architecture become obsolete, and replaced by
something like:

Depends: arch-i386, libc6, [...]

for most packages, and:

Depends: arch-i386, linux-libc6, [...]

or:

Depends: arch-i386, hurd-libc6, [...]

for most kernel-specific packages.  Very few packages (only the ones
that use syscalls directly) would need to explicitly depend on linux
or hurd themselves, because the libc6 ABI nearly completely insulates
a package from the kernel.

I don't think generalizing the behaviour of dinstall according to this
would be too difficult.  If we need to support legacy
(Architecture-specified) packages, then we can add static rules that
automatically convert the Architecture into the Depends as given
above.

But for now, we would have to figure out where to put the current
linux and hurd kernel packages.  In the current policy structure,
linux and linux-libc6 are both part of Required, and so the Hurd has
no place in arch-i386.

That's not a big problem now, but it will get more and more
frustrating as we get more compatible (i.e. hurd-libc6 doesn't exist
yet, but hurd-libc0.2 still has a lot in common with linux-libc6), and
want to duplicate less work.

 B> Thinking about it, it would also be nice to have
 B> /debian/link-farm/dists/slink/required/...  and similar. :)

Agreed.

-- 
 Gordon Matzigkeit <[EMAIL PROTECTED]>  //\ I'm a FIG (http://www.fig.org/)
Committed to freedom and diversity \// I use GNU (http://www.gnu.org/)

Reply via email to