acpid in 1.16.2 doesn't build on SLES 10.

Rob Landley rob at landley.net
Tue Jul 20 00:27:47 UTC 2010


On Sunday 18 July 2010 16:04:53 Denys Vlasenko wrote:
> On Saturday 17 July 2010 20:50, Rob Landley wrote:
> > On Thursday 15 July 2010 02:02:33 Denys Vlasenko wrote:
> > > On Wednesday 14 July 2010 20:09, Rob Landley wrote:
> > > > If I could actually use defconfig instead of my allnoconfig
> > > > KCONFIG_ALLCONFIG=trimconfig thing, that would be an improvement...
> > >
> > > To achieve this you need to let me know what currently prevents that.
> >
> > CONFIG_NC_110_COMPAT defaults to y.
> >
> > Busybox tune2fs doesn't support -j.
>
> Fixed in updated busybox-1.17.0-build_system.patch

You might as well leave that one on, since it does support ext2 fine.  It's 
just ext3 support that's missing.

I'll remove apps that "aren't good enough for me but which aren't actually 
broken either" (such as patch that doesn't support offsets) at my end, and I'll 
make a note to upgrade them later.

I prefer to err in favor of switching stuff on, since that way the code gets 
tested.  Testing "allyesconfig" involves installing selinux and pam and such on 
your host, which most people won't do.

> 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?

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.

(Busybox _has_ these capabilities, but disables them by default because it has 
a config option that switches features _off_, which seems weird, but oh well.  I 
can do a tiny trimconfig just for that option if necessary.)

My native-build.sh script is already configured to accept an externally 
supplied FTP server (via the FTP_SERVER and FTP_PORT environment variables).  
If you don't want to have one at all, you can just set those to nonsense 
values.  As long as they're not blank, it won't try to launch its own.

> Anything else which precludes 1.17.1 release?

Let's see:

  GEN     include/usage_compressed.h
od: invalid option -- 't'
BusyBox v1.17.0 (2010-07-19 18:45:16 CDT) multi-call binary.

Usage: od [-aBbcDdeFfHhIiLlOovXx] [FILE]

Write an unambiguous representation, octal bytes by default, of FILE
(or stdin) to stdout

od: invalid option -- 't'
BusyBox v1.17.0 (2010-07-19 18:45:16 CDT) multi-call binary.

Usage: od [-aBbcDdeFfHhIiLlOovXx] [FILE]

I.E. busybox no longer wants to build with itself, because you used an od flag 
that busybox hasn't got.  (Or isn't in defconfig.)  It seems to have continued 
on regardless, but it's a little distrubing.

Ah, I see:

  #if ENABLE_DESKTOP
  /* This one provides -t (busybox's own build script needs it) */
  #include "od_bloaty.c"

So your definition of "desktop" is a build system capable of rebuilding 
busybox.

And you've picked up a habit of bolting an entire second alternate 
implementation of a given command on to busybox with a config switch to choose 
which one you want.

I'm not sure having two code paths to maintain is the path of simplicity and 
maintainability.  I _do_ know it means that no matter what .config I choose, I 
can never test the full set of busybox functionality, so running nightly test 
suites is pointless.

Similarly, the linux build does this:

find "$STAGE_DIR/include" -name ".install" -print0 -or -name "..install.cmd" -
print0 | xargs -0 rm

Which results in this:

find: unrecognized: -or
BusyBox v1.17.0 (2010-07-19 18:45:16 CDT) multi-call binary.

Usage: find [PATH]... [EXPRESSION]

I'm pretty sure that used to work.  Not sure why it isn't doing so now...

  #if ENABLE_DESKTOP
                                 "-and\0"
                                 "-or\0"
        IF_FEATURE_FIND_NOT(     "-not\0"    )
  #endif

Because of that.  Right, I need to ENABLE_DESKTOP in order to allow my build 
system to work, because find -or is considered a desktop feature, and defconfig 
doesn't enable that.  And even though find literally has 21 seperate config 
options, which is a bit much if you ask me, you have to enable _another_ config 
option out of another menu entirely in order to get the obscure "-and" and "-
or" options...

Right.

Path of least resistance is to add ENABLE_DESKTOP to defconfig, I expect.  (And 
for me to write a new od.c implementation after I get done ripping netcat a 
new one.  FSF code does not belong in busybox, not even stripped down and 
cleaned up.)

Rob
-- 
GPLv3: as worthy a successor as The Phantom Meanace, as timely as Duke Nukem 
Forever, and as welcome as New Coke.


More information about the busybox mailing list