On Wed, 16 Feb 2011 21:15:57 +0000
Otavio Salvador <ota...@ossystems.com.br> wrote:

> On Wed, Feb 16, 2011 at 21:06, Neil Williams <codeh...@debian.org>
> wrote: ...
> > I cannot recommend any embedded system should use any version of
> > busybox built by Debian for d-i without *also* installing and using
> > coreutils, login, passwd, shadow, perl and all the rest. i.e.
> > busybox from Debian is only suitable for what Debian normally does
> > with busybox
> > - which explicitly does *not* include handling passwords, shadow or
> > otherwise.
> 
> Please take a look on this thread:
> http://lists.debian.org/debian-boot/2011/02/msg00471.html
> 
> Basically we're going to revamp busybox and busybox-static
> configuration (d-i one is not going to be changed too much) and then
> we wish to try to be more "friendly" to this kind of use-cases.

As I'm sure you're aware, busybox is not one package, it's 50 or more -
and that's just counting the common variations in source configuration,
not counting the variations of C library used.

> Doing the proposed changes I guess we fit this gab.

Only in the static model, which explains why the binary is so large.
Emdebian Crush shipped with a binary of ~700kb but that was a much
older version. Embedded users who want a static version are probably
going to want a static version linked against uClibc and with no
coreutils, login, passwd etc. installed and all symlinks enabled. I
don't see how Debian can even test such a configuration, let alone
recommend it for widespread usage.

I think the best option is for d-i to simply keep up with busybox
releases. (Current stable is 1.18.3, Debian has 1.17.1, even with
bubulle's update since Squeeze.) That is, itself, a signficant challenge
for a busy and overworked team like d-i and has proved to be an
unreachable target before - especially once a release process starts up
and the rest of d-i needs so much testing. Busybox needs to freeze
early, that's entirely understandable.

The "standard" build won't be (ever) able to install the symlinks which
actually make busybox useful for embedded devices. (It can be hard to
run something on device to create the symlinks when the device cannot
boot because the symlinks don't exist.) The only real solution would be
a fourth build with the symlinks enabled but which conflicts with dpkg,
coreutils, login, passwd and numerous other utilities. I tried to make
this fourth build available just for a single architecture via
cross-building - it is a lot of work. This doesn't even start to handle
the more common instance where the device needs a customised busybox
configuration in the first place.

It's a bigger problem than kernels because users who want busybox want
busybox because there isn't room on the system for anything else and
every 10kb less in /bin/busybox makes it worth reconfiguring and
rebuilding it.

Trying to be friendly is a good thing - adding work for the d-i team
which still means that busybox needs to be reconfigured and rebuilt for
actual embedded devices anyway isn't being friendly - either to the
rest of the d-i team or the embedded users.

> Most important: what's the usage for the static build?

Umm, exactly - not much IMHO.

In the opinion of the dpkg maintainers, around the time of the Lenny
freeze, a system which replaces coreutils, dpkg and passwd is "not
Debian any more". In the opinion of many embedded developers, a system
with a full size busybox *and* coreutils, dpkg and the rest is simply
wasting precious space.

I don't want to be overly negative over this, I'm just trying to ensure
that a commendable desire to be friendly does not actually result in
wasting time within the d-i team and then turn out to not be useful
to embedded users.

IMHO, the best thing d-i can do is to ensure that Debian stays as close
to the current busybox stable release as possible. Updating to current
upstream stable as soon as possible after the release is done and
ensuring it is again updated before the next freeze takes hold. That's
a minimum of only two updates per release cycle, but updates which go
directly to latest upstream stable. It will necessarily slip during all
release freezes but that one commitment may well be enough. Rebuilding
from a Debian source package with adjusted configuration is a lot more
friendly than using wget on busybox.net.

Keep the deb and udeb configuration exactly as d-i requires - maybe
even drop the static version if d-i doesn't use it. Just keep the
package up to date and it will make embedded use a lot simpler than
trying to mangle together some incomplete, broken configuration which
isn't directly usable.

-- 


Neil Williams
=============
http://www.linux.codehelp.co.uk/

Attachment: pgprrywdQGAKp.pgp
Description: PGP signature

Reply via email to