acpid in 1.16.2 doesn't build on SLES 10.

Denys Vlasenko vda.linux at googlemail.com
Wed Jul 21 11:04:51 UTC 2010


On Wed, Jul 21, 2010 at 2:45 AM, Rob Landley <rob at landley.net> wrote:
> On Monday 19 July 2010 21:58:36 Denys Vlasenko wrote:
>> On Tuesday 20 July 2010 02:27, Rob Landley wrote:
>> > > However, if you need NC_110_COMPAT off, it means that you are using
>> > > bbox extensions in your build system, which makes it less portable.
>> >
>> > Less portable than busybox is?
>>
>> I operate on the presumption that nc-1.10 is _the_ authoritative
>> netcat as far as compat is concerned. GNU, BSD and nmap all
>> screwed it up. I can't fix that, but I can do the right thing:
>> not screw it up myself.
>
> Busybox had already added features to netcat before I showed up.  (As had the
> GNU and BSD people.)  You arbitrarily picked a version that reverted several
> features that had been in busybox netcat for years, and decreed it
> "authoritative".

That's what everyone else who (claimed to) reimplement nc should have done:
implement it compatibly with original nc-1.10, then maybe start adding
extensions, and try to do it in coordinated fashion, so that they
also stay mutually compatible.

That did not happen.


>> > There's no portable way to launch an ftp daemon on a specific port on the
>> > loopback interface, providing anonymous FTP access out of a specific
>> > directory. There are four or five different ftp servers and their command
>> > line arguments are all different.
>> >
>> > The busybox ftp server doesn't have a daemon mode, it _must_ be run from
>> > inetd.  Running inetd is only really support for root to do it, and
>> > requires a config file.  However, you can use netcat's server mode as a
>> > poor man's inetd to launch a single program, which lets busybox netcat
>> > host busybox ftpd without require root access or a config file.
>>
>> There is a "standard" tool for running inetd-like tools
>> without inetd: tcpsvd.
>
> Never heard of it.

It's a daemontools clone. Since daemontools has a stupid license,
the clone had to rename itself.

>> No need to invent incompatible magic netcat extensions.
>
> A git log of networking/nc.c finds:
>
> commit 1d7026745028982980d17b1023c4ce8ec97ea946
> Author: Matt Kraai <kraai at debian.org>
> Date:   Wed Feb 7 04:09:23 2001 +0000
>
>    Add listening support.

Listening support is fine. But -ll is an extension.
Apparently, BSD nc also had this idea, but they
implemented it using a different option, -k:

https://bugs.busybox.net/show_bug.cgi?id=2245


> Meanwhile there is no "tcpsvd.c" but a few minutes of rooting around fines
> network/tcpudp_perhost.c:
>
> /* Based on ipsvd utilities written by Gerrit Pape <pape at smarden.org>
>  * which are released into public domain by the author.
>  * Homepage: http://smarden.sunsite.dk/ipsvd/
>  *
>  * Copyright (C) 2007 Denys Vlasenko.
>
> .I note that http://smarden.sunsite.dk/ipsvd/ is 404.  According to
> archive.org, the site first showed up in 2006.
>
> So your "standard" was apparently created in 2006 and added in 2007.
> Meanwhile, I had busybox netcat server mode working just fine in 2006, with
> full -lle support, and the basic support was added to busybox in 2001.

-ll support was added in 2006:

Author: Rob Landley <rob at landley.net>
Date:   Mon Jul 10 19:45:20 2006 +0000

    Upgrade netcat a lot.  Make -e able to take the rest of the command line as
    what to exec.  Add -f mode and a brief explanation of how to use
it to replace
    minicom.  Add -l -l mode so you can turn any command into a
server.  And group
    all of netcat's command line options under two CONFIG entries, so if you
    disable both it doesn't use getopt at all.

> So your "standard" not only postdates busybox's support for this, but even the
> outside version you were copying seems to postdate busybox's traditional way
> of doing it.  (Netcat server mode was there before busybox grew menuconfig
> support.)
>
> I'm not seeing the rationale here.

Because there is no rationale. If you are trying to understand
why -ll is not in "big netcat" and why I'm against it,
then you misunderstood me: I'm _not_ against it.
It's not there because in oder to add it, someone needs to code it up.

Let's decide what to do here:
* do we want to add "multi-listening" to "big netcat"?
* do we want to change it from -ll to -l -k while we are at it,
  to be compatible with BSD netcat?
* and do we want to make -e PROG compatible while we are at it?


>> Like find -or, because you can use find -o, and you can make
>> your system smaller by abstaining from find -or and removing
>> that code from busybox binary.
>>
>> But if you are building kernels, you *cant* guarantee* that.
>> Who knows what fancy things are added in kernel build machinery
>> tomorrow?
>
> I submit patches to rip unnecessary crap back out of the kernel when it shows
> up.  (I still need to rewrite the perl removal stuff in C and resubmit.  I've
> missed a couple merge windows due to sheer swamped-ness...)

I imagine kernel people can agree to that. Grudgingly.

But if you'll try to remove a "find -or" or similar thing
just because your "find" doesn't handle -or, I suspect
they will say "fix your find and leave us alone".


>> Please let me know whether now it builds for you.
>
> I'm losing track of which patches to apply.  I grabbed the whole mess last
> night and it applied, and it didn't make anything _worse_.

It's simple.

The patches in http://busybox.net/downloads/fixes-1.17.0/
are meant to be applied to pristine 1.17.0

When you'll say that you are satisfied with them (esp. wrt "ask
terminal" thing),
they will be applied to 1.17.0 and that will be 1.17.1 release.

-- 
vda


More information about the busybox mailing list