I'm going out now. I may be some time. Rob Landley rob at landley.net Sat Sep 30 20:17:08 UTC 2006 Bruce [expletive delted] Perens sucked all the fun out of this project for me, and at the moment I really don't want to work on it anymore. He may have lost the licensing dispute, but he did manage to suck out all my enthusiasm for working on any project he can take credit for. I was always a volunteer here, and now it's a chore. I could sit here a few months to see if I get over it, but I don't think that's in the best interests of BusyBox. I'm still putting out a 1.2.2 bugfix release (which is purely mechanical backporting, you can't get writer's block on something like that), but afterwards I'm leaving Denis Vlasenko in charge: he already has write access to the downloads directory, and after 1.2.2 further releases are up to him. As far as I'm concerned, that makes him maintainer. (Also, he's never wanted the position, I trust his technical judgement, and he didn't run fast enough when I asked him. These are all important qualifications.) I'd like to thank TimeSys for letting me spend so much of my time on BusyBox this year. I wasn't maintainer when they hired me, and there's no shortage of other things for me to do for them, but they were really cool about it. Some backstory: I spent a couple years tracking the SCO thing very closely and doing what I could to help. (You may remember Halloween IX and the OSI position paper I co-authored? There was more. I laugh at the whole "is PJ of Groklaw a real person" thing because I was on a conference call with her. BusyBox isn't the first hobby I've put lots of time into, late at night at various coffee shops...) The bit that always got my blood pressure up was the "SCO Disease" theory of intellectual property, where code could be contaminated with nebulous ownership claims that you cannot find by examination of the code, and can't remove no matter what you change. I also studied a lot of detail on the USL vs BSD case, years ago, where Berkeley had removed all of the AT&T code in the normal course of a decade of development. I didn't realize that I'd developed some emotional scars until Bruce showed up after a decade long absence and arogantly lay claim to everything everyone else had done with a project he'd abandoned, and started dictating terms. He didn't even bother to read the archives of the discussion he jumped into. He could not be swayed with rational argument, wouldn't go off and do something useful (like maintain his own fork), and even a detailed forensic analysis showing that we're not using his code anymore (shades of BSD vs USL) wasn't enough to get him to shut up and go away (and certainly no guarantee against a return in future), because in some nebulous way he _still_ somehow owned the project, and always would. So what if Bruce quickly abandoned BusyBox to the obscurity of the Debian boot floppy until Erik restarted the project years later? So what if Bruce never posted to this list for the whole of Erik's tenure? So what if Bruce was so out of touch that when he finally _did_ post to the list his personal page taking credit for BusyBox still pointed to busybox.lineo.com which was last valid in 2001 (and which he apparently only knew about because Erik told him about it in 1999 according to oldnews.html)? Oddly, I worked on BusyBox for over two years before I even knew Bruce had anything to do with it, and I didn't know the details until I did research for that lwn.net article I wrote a few months ago. The fact is, Bruce still founded the project, and named it, and is still taking totally undeserved credit for seven years of Erik Andersen's hard work, and still thinks he has some kind of moral authority over what we do with it. And nothing I do will change that. It's particularly annoying since Bruce didn't make a single original contribution while founding BusyBox. I'm not referring to "all these command line tools already existed", I mean even the idea of tying several binaries together with different behavior based on the name it's called under comes from gzip. (BusyBox 0.25 includes a badly mangled copy of gzip 1.2.4, and that varied its behavior based on argv when it was released back in _1993_.) Bruce never looked at the embedded market as Erik did, or dreamed of a general-purpose package to replace the bloated gnu stuff like I did. The project Bruce declared complete and abandoned was approximately as interesting as Red Hat's "nash" package, which is another "command shell with things like mount and insmod glued on", this time for initrd rather than boot floppies. It's by Erik Troan, part of the mkinitrd package, and it's still in use by Fedora: http://www.die.net/doc/linux/man/man8/nash.8.html And if you've never heard of "nash", you're in good company, because it didn't have someone like Erik pick it up and turn it into a general purpose tool. The last straw was a recent conference call with the SFLC lawyers where they confirmed that I could release a GPLv2 only version, and confirmed that files I apply a GPLv2 only patch to can only be distributed GPLv2. But a strict reading of the GPLv2 apparently requires preserving old license notices even when they don't apply (since section 2 includes section 1 verbatim; it's a bit muddy). Apparently it was ok changing them before they pointed this out since I was acting in good faith, but they wanted me to stop now that they'd pointed it out to me. They want me to leave the old license notices intact, and add a new license notice to correct the old one, which is _deeply_ silly, and probably not an enforceable requirement. At this point I got a mental image of Bruce pointing and laughing (yes, right in the middle of a conference call with lawyers), which just won't go away. As usual, Bruce was wrong on substance in every meaningful way, but managed to make trouble by harping on a technicality in hopes of finding a loophole. After years of tracking SCO, boy did _THAT_ feel familiar. And I'm just sick of it. It was the last straw. I have now officially wandered into "out out damn spot" territory thinking about Bruce's claims to BusyBox. I see it every time I look at the code, even though I can PROVE it's not there. How do you remove something that doesn't exist? So to me, BusyBox has now acquired Bruce Disease. To say it's no fun anymore is an understatement: I've developed an aversion to even looking at it. I just get sick to my stomach at the idea of working on it at all anymore. I mentioned there's no shortage of non-BusyBox work for me at Timesys (although they did kind of enjoy having the BusyBox maintainer on staff :). Hobby-wise if the only way to have a _simple_ license notice is to start over from scratch, I can do that. I've started a new project called "toybox" (purely for my own personal amusement so far). Right now it's just a mercurial repository with a half-dozen files in it, but I'll be porting the applets _I_ wrote to the new base (and maybe Erik's if he doesn't object, he already said I can use his code GPLv2 only without actively stupid broken license notices), and that's also where I'll be writing a new shell and mke2fs and so on. Maybe I'll put it up at http://toybox.landley.net or some such when I get the new server I ordered set up. (Which won't be this weekend. Memo to self: next time I check whether "barebones" includes a processor or not. :P ) I think this is long and rambling enough. Denis wanted to make sure I'd stay subscribed to the list, so I will, but I'm not planning on posting much. Rob -- Never bet against the cheap plastic solution.
I'm going out now. I may be some time. Mark Richards mark.richards at massmicro.com Sat Sep 30 21:31:44 UTC 2006 Rob Landley wrote: > Bruce [expletive delted] Perens sucked all the fun out of this project for me, > and at the moment I really don't want to work on it anymore. He may have > lost the licensing dispute, but he did manage to suck out all my enthusiasm > for working on any project he can take credit for. Nobody does anything to you unless you let them. You made the decision. Own it. How did he "lose" when you admit: "They want me to leave the old license notices intact, and add a new license notice to correct the old one"? Note I omitted your editorial, which is the sum of your Swan Song. You lost me when you trashed me for having an obfuscated reply-to address that you could have - or that is should have - recognized as such. Instead you resorted to treating me in your email like an idiot berating my "anti-spam" filtering and threatening me with being removed from the list when my intent, had you asked, was to protect my address from poorly-managed email reflectors. I came here to learn more about these tools and hoped to, in future, offer some positive contribution. I'm still willing to do so and enjoy the fruit of my work simply because it helps others do theirs. And you? Now that all the soap opera is done, maybe I and a host of others are free to do just that. It was painful to see alleged grown ups reduced to [expletive deleted]. Hopefully this egotistical crap is done. /m
I'm going out now. I may be some time. Denis Vlasenko vda.linux at googlemail.com Sun Oct 1 15:45:08 UTC 2006 On Saturday 30 September 2006 22:17, Rob Landley wrote: > Bruce [expletive delted] Perens sucked all the fun out of this project for me, > and at the moment I really don't want to work on it anymore. He may have > lost the licensing dispute, but he did manage to suck out all my enthusiasm > for working on any project he can take credit for. Fortunately, I am not going to pay attention to such silly distractions at all. All new code which I will commit to svn will be GPLv2 only. It's that simple. > I think this is long and rambling enough. Denis wanted to make sure I'd stay > subscribed to the list, so I will, but I'm not planning on posting much. Okay, I need to explain what I intend to do now. I believe that busybox now is mature enough to be almost usable on ordinary desktop machines. So I actually did that - replaced most of applicable /bin/* with links to busybox. I expect some fallout. I will try to fix it. Few examples: (1) Midnight Commander uses -v option when it calls g[un]zip. It is of course fixable in MC, but the goal is to make bbox usable on _unmodified_ desktop system! (2) od -t is used in bbox's own build system, but bbox od doesn't handle -t. (3) bbox build started to produce larger (+100k) executable from the same source tree and .config. Wow... Did not track down which applet affects this, and how... (1) and (2) are good examples of cases which do not matter for embedded world but are needed on desktop. Busybox should not lose its position of embedded device tool. I think it makes sense to introduce CONFIG_DESKTOP and put all such things under it. I will add such thing with gunzip -v fix. Non-DESKTOP bbox will silently ignore -v, DESKTOP one will print statistics. I know that increased attention to destop needs will inevibably lead to _some_ increases in size even for non DESKTOP case. Please think also about positive side: with such move there is a chance that bbox will get much wider userbase and therefore will bring some sanity into desktop world. Of course contributions and corrections (and even rants about bloat) from embedded people are still accepted and encouraged. P.S. below sig: the list of applets I added to /bin on my box. Need to check whether it will at least boot correctly now ;) -- vda ln -sf /app/busybox-1.2.1.svn/busybox /bin/basename # exists: /bin/basename and /usr/bin/basename ln -sf /app/busybox-1.2.1.svn/busybox /bin/bunzip2 # exists: /bin/bunzip2 and /usr/bin/bunzip2 ln -sf /app/busybox-1.2.1.svn/busybox /bin/bzcat # exists: /bin/bzcat and /usr/bin/bzcat ln -sf /app/busybox-1.2.1.svn/busybox /bin/cal # exists: /bin/cal ln -sf /app/busybox-1.2.1.svn/busybox /bin/cat # exists: /bin/cat and /usr/bin/cat ln -sf /app/busybox-1.2.1.svn/busybox /bin/chgrp # exists: /bin/chgrp and /usr/bin/chgrp ln -sf /app/busybox-1.2.1.svn/busybox /bin/chmod # exists: /bin/chmod and /usr/bin/chmod ln -sf /app/busybox-1.2.1.svn/busybox /bin/chown # exists: /bin/chown and /usr/bin/chown ln -sf /app/busybox-1.2.1.svn/busybox /bin/chroot # exists: /bin/chroot and /usr/bin/chroot ln -sf /app/busybox-1.2.1.svn/busybox /bin/cksum # exists: /bin/cksum and /usr/bin/cksum ln -sf /app/busybox-1.2.1.svn/busybox /bin/cp # exists: /bin/cp and /usr/bin/cp ln -sf /app/busybox-1.2.1.svn/busybox /bin/cut # exists: /bin/cut and /usr/bin/cut ln -sf /app/busybox-1.2.1.svn/busybox /bin/date # exists: /bin/date and /usr/bin/date ln -sf /app/busybox-1.2.1.svn/busybox /bin/dd # exists: /bin/dd and /usr/bin/dd ln -sf /app/busybox-1.2.1.svn/busybox /bin/df # exists: /bin/df and /usr/bin/df ln -sf /app/busybox-1.2.1.svn/busybox /bin/dirname # exists: /bin/dirname and /usr/bin/dirname ln -sf /app/busybox-1.2.1.svn/busybox /bin/dmesg # exists: /bin/dmesg ln -sf /app/busybox-1.2.1.svn/busybox /bin/du # exists: /bin/du and /usr/bin/du ln -sf /app/busybox-1.2.1.svn/busybox /bin/echo # exists: /bin/echo and /usr/bin/echo ln -sf /app/busybox-1.2.1.svn/busybox /bin/egrep # exists: /bin/egrep and /usr/bin/egrep ln -sf /app/busybox-1.2.1.svn/busybox /bin/env # exists: /bin/env and /usr/bin/env ln -sf /app/busybox-1.2.1.svn/busybox /bin/false # exists: /bin/false and /usr/bin/false ln -sf /app/busybox-1.2.1.svn/busybox /bin/fdisk # exists: /bin/fdisk ln -sf /app/busybox-1.2.1.svn/busybox /bin/fgrep # exists: /bin/fgrep and /usr/bin/fgrep ln -sf /app/busybox-1.2.1.svn/busybox /bin/find # exists: /bin/find and /usr/bin/find ln -sf /app/busybox-1.2.1.svn/busybox /bin/fold # exists: /bin/fold and /usr/bin/fold ln -sf /app/busybox-1.2.1.svn/busybox /bin/free # exists: /bin/free ln -sf /app/busybox-1.2.1.svn/busybox /bin/fuser # exists: /bin/fuser and /usr/bin/fuser ln -sf /app/busybox-1.2.1.svn/busybox /bin/getopt # exists: /bin/getopt ln -sf /app/busybox-1.2.1.svn/busybox /bin/grep # exists: /bin/grep and /usr/bin/grep ln -sf /app/busybox-1.2.1.svn/busybox /bin/gunzip # exists: /bin/gunzip and /usr/bin/gunzip ln -sf /app/busybox-1.2.1.svn/busybox /bin/gzip # exists: /bin/gzip and /usr/bin/gzip ln -sf /app/busybox-1.2.1.svn/busybox /bin/head # exists: /bin/head and /usr/bin/head ln -sf /app/busybox-1.2.1.svn/busybox /bin/hexdump # exists: /bin/hexdump ln -sf /app/busybox-1.2.1.svn/busybox /bin/hostid # exists: /bin/hostid and /usr/bin/hostid ln -sf /app/busybox-1.2.1.svn/busybox /bin/hostname # exists: /bin/hostname and /usr/bin/hostname ln -sf /app/busybox-1.2.1.svn/busybox /bin/hwclock # exists: /bin/hwclock ln -sf /app/busybox-1.2.1.svn/busybox /bin/id # exists: /bin/id and /usr/bin/id ln -sf /app/busybox-1.2.1.svn/busybox /bin/insmod # exists: /bin/insmod ln -sf /app/busybox-1.2.1.svn/busybox /bin/install # exists: /bin/install and /usr/bin/install ln -sf /app/busybox-1.2.1.svn/busybox /bin/ipcrm # exists: /bin/ipcrm ln -sf /app/busybox-1.2.1.svn/busybox /bin/ipcs # exists: /bin/ipcs ln -sf /app/busybox-1.2.1.svn/busybox /bin/kill # exists: /bin/kill and /usr/bin/kill ln -sf /app/busybox-1.2.1.svn/busybox /bin/killall # exists: /bin/killall and /usr/bin/killall ln -sf /app/busybox-1.2.1.svn/busybox /bin/last # exists: /bin/last ln -sf /app/busybox-1.2.1.svn/busybox /bin/ln # exists: /bin/ln and /usr/bin/ln ln -sf /app/busybox-1.2.1.svn/busybox /bin/logger # exists: /bin/logger ln -sf /app/busybox-1.2.1.svn/busybox /bin/logname # exists: /bin/logname and /usr/bin/logname ln -sf /app/busybox-1.2.1.svn/busybox /bin/ls # exists: /bin/ls and /usr/bin/ls ln -sf /app/busybox-1.2.1.svn/busybox /bin/lsmod # exists: /bin/lsmod ln -sf /app/busybox-1.2.1.svn/busybox /bin/md5sum # exists: /bin/md5sum and /usr/bin/md5sum ln -sf /app/busybox-1.2.1.svn/busybox /bin/mesg # exists: /bin/mesg ln -sf /app/busybox-1.2.1.svn/busybox /bin/mkdir # exists: /bin/mkdir and /usr/bin/mkdir ln -sf /app/busybox-1.2.1.svn/busybox /bin/mkfifo # exists: /bin/mkfifo and /usr/bin/mkfifo ln -sf /app/busybox-1.2.1.svn/busybox /bin/mknod # exists: /bin/mknod and /usr/bin/mknod ln -sf /app/busybox-1.2.1.svn/busybox /bin/mkswap # exists: /bin/mkswap ln -sf /app/busybox-1.2.1.svn/busybox /bin/modprobe # exists: /bin/modprobe ln -sf /app/busybox-1.2.1.svn/busybox /bin/more # exists: /bin/more ln -sf /app/busybox-1.2.1.svn/busybox /bin/mount # exists: /bin/mount ln -sf /app/busybox-1.2.1.svn/busybox /bin/mv # exists: /bin/mv and /usr/bin/mv ln -sf /app/busybox-1.2.1.svn/busybox /bin/nc # exists: /bin/nc and /usr/bin/nc ln -sf /app/busybox-1.2.1.svn/busybox /bin/nice # exists: /bin/nice and /usr/bin/nice ln -sf /app/busybox-1.2.1.svn/busybox /bin/nohup # exists: /bin/nohup and /usr/bin/nohup ln -sf /app/busybox-1.2.1.svn/busybox /bin/od # exists: /bin/od and /usr/bin/od ln -sf /app/busybox-1.2.1.svn/busybox /bin/ping # exists: /bin/ping and /usr/bin/ping ln -sf /app/busybox-1.2.1.svn/busybox /bin/ping6 # exists: /bin/ping6 and /usr/bin/ping6 ln -sf /app/busybox-1.2.1.svn/busybox /bin/pivot_root # exists: /bin/pivot_root ln -sf /app/busybox-1.2.1.svn/busybox /bin/printenv # exists: /bin/printenv and /usr/bin/printenv ln -sf /app/busybox-1.2.1.svn/busybox /bin/printf # exists: /bin/printf and /usr/bin/printf ln -sf /app/busybox-1.2.1.svn/busybox /bin/ps # exists: /bin/ps ln -sf /app/busybox-1.2.1.svn/busybox /bin/pwd # exists: /bin/pwd and /usr/bin/pwd ln -sf /app/busybox-1.2.1.svn/busybox /bin/readlink # exists: /bin/readlink and /usr/bin/readlink ln -sf /app/busybox-1.2.1.svn/busybox /bin/readprofile # exists: /bin/readprofile ln -sf /app/busybox-1.2.1.svn/busybox /bin/renice # exists: /bin/renice ln -sf /app/busybox-1.2.1.svn/busybox /bin/rm # exists: /bin/rm and /usr/bin/rm ln -sf /app/busybox-1.2.1.svn/busybox /bin/rmdir # exists: /bin/rmdir and /usr/bin/rmdir ln -sf /app/busybox-1.2.1.svn/busybox /bin/rmmod # exists: /bin/rmmod ln -sf /app/busybox-1.2.1.svn/busybox /bin/rpm # exists: /bin/rpm and /usr/bin/rpm ln -sf /app/busybox-1.2.1.svn/busybox /bin/sed # exists: /bin/sed and /usr/bin/sed ln -sf /app/busybox-1.2.1.svn/busybox /bin/seq # exists: /bin/seq and /usr/bin/seq ln -sf /app/busybox-1.2.1.svn/busybox /bin/setsid # exists: /bin/setsid ln -sf /app/busybox-1.2.1.svn/busybox /bin/sha1sum # exists: /bin/sha1sum and /usr/bin/sha1sum ln -sf /app/busybox-1.2.1.svn/busybox /bin/sleep # exists: /bin/sleep and /usr/bin/sleep ln -sf /app/busybox-1.2.1.svn/busybox /bin/sort # exists: /bin/sort and /usr/bin/sort ln -sf /app/busybox-1.2.1.svn/busybox /bin/stat # exists: /bin/stat and /usr/bin/stat ln -sf /app/busybox-1.2.1.svn/busybox /bin/stty # exists: /bin/stty and /usr/bin/stty ln -sf /app/busybox-1.2.1.svn/busybox /bin/su # exists: /bin/su and /usr/bin/su ln -sf /app/busybox-1.2.1.svn/busybox /bin/sum # exists: /bin/sum and /usr/bin/sum ln -sf /app/busybox-1.2.1.svn/busybox /bin/swapoff # exists: /bin/swapoff ln -sf /app/busybox-1.2.1.svn/busybox /bin/swapon # exists: /bin/swapon ln -sf /app/busybox-1.2.1.svn/busybox /bin/sync # exists: /bin/sync and /usr/bin/sync ln -sf /app/busybox-1.2.1.svn/busybox /bin/sysctl # exists: /bin/sysctl ln -sf /app/busybox-1.2.1.svn/busybox /bin/tail # exists: /bin/tail and /usr/bin/tail ln -sf /app/busybox-1.2.1.svn/busybox /bin/tar # exists: /bin/tar ln -sf /app/busybox-1.2.1.svn/busybox /bin/tee # exists: /bin/tee and /usr/bin/tee ln -sf /app/busybox-1.2.1.svn/busybox /bin/test # exists: /bin/test and /usr/bin/test ln -sf /app/busybox-1.2.1.svn/busybox /bin/top # exists: /bin/top ln -sf /app/busybox-1.2.1.svn/busybox /bin/touch # exists: /bin/touch and /usr/bin/touch ln -sf /app/busybox-1.2.1.svn/busybox /bin/tr # exists: /bin/tr and /usr/bin/tr ln -sf /app/busybox-1.2.1.svn/busybox /bin/true # exists: /bin/true and /usr/bin/true ln -sf /app/busybox-1.2.1.svn/busybox /bin/tty # exists: /bin/tty and /usr/bin/tty ln -sf /app/busybox-1.2.1.svn/busybox /bin/umount # exists: /bin/umount ln -sf /app/busybox-1.2.1.svn/busybox /bin/uname # exists: /bin/uname and /usr/bin/uname ln -sf /app/busybox-1.2.1.svn/busybox /bin/uniq # exists: /bin/uniq and /usr/bin/uniq ln -sf /app/busybox-1.2.1.svn/busybox /bin/uptime # exists: /bin/uptime and /usr/bin/uptime ln -sf /app/busybox-1.2.1.svn/busybox /bin/watch # exists: /bin/watch ln -sf /app/busybox-1.2.1.svn/busybox /bin/wc # exists: /bin/wc and /usr/bin/wc ln -sf /app/busybox-1.2.1.svn/busybox /bin/who # exists: /bin/who and /usr/bin/who ln -sf /app/busybox-1.2.1.svn/busybox /bin/whoami # exists: /bin/whoami and /usr/bin/whoami ln -sf /app/busybox-1.2.1.svn/busybox /bin/xargs # exists: /bin/xargs and /usr/bin/xargs ln -sf /app/busybox-1.2.1.svn/busybox /bin/yes # exists: /bin/yes and /usr/bin/yes ln -sf /app/busybox-1.2.1.svn/busybox /bin/zcat # exists: /bin/zcat and /usr/bin/zcat
I'm going out now. I may be some time. Rob Landley rob at landley.net Sun Oct 1 18:36:40 UTC 2006 On Sunday 01 October 2006 11:45 am, Denis Vlasenko wrote: > Fortunately, I am not going to pay attention to such silly distractions > at all. All new code which I will commit to svn will be GPLv2 only. > It's that simple. Good for you. Feel free to loot applets from toybox then (which is also GPLv2 only, or at least will be when I get the new server finished to put the mercurial repository online with, anyway). Although the design's noticeably different and I probably won't have anything worth using for a month or more, but hey. Gotta start somewhere. :) > > I think this is long and rambling enough. Denis wanted to make sure I'd stay > > subscribed to the list, so I will, but I'm not planning on posting much. > > Okay, I need to explain what I intend to do now. > > I believe that busybox now is mature enough to be almost usable > on ordinary desktop machines. So I actually did that - replaced > most of applicable /bin/* with links to busybox. Which is cool. I was going for a self-hosting development environment first. The goal of my old Firmware Linux project was to build a system under itself with BusyBox and uClibc replacing every gnu package except the toolchain. The closest I got was seven packages (linux-libc-headers, uClibc, gcc, binutils, make, BusyBox, bash). Eight if you count the linux kernel. The last thing required to hit my original goal was bbsh (to replace bash). My _new_ goal was to get it down to four: linux, BusyBox, uCLibc, and tcc. That would involve upgrading tcc until it can build the Linux kernel, the kernel headers becoming usable (make headers_install in 2.6.18 is close, but alas not quite there yet for a couple different reasons), and me upgrading at least three things in BusyBox (bbsh, a write mode for "ar", and adding a "make" applet). My _new_ new goal is to get it down to linux, toybox, uClibc, and tcc. (Heck, maybe I'll see if klibc can actually do anything useful. If that gets merged into Linux, that would get me down to _three_ packages. Still, that would just be an option: uClibc is more generally useful.) > I expect some fallout. I will try to fix it. Did uClibc ever fix the bug that made busybox "tar xvjfC blah.tbz dirname" try to extract a file called "C" when BusyBox was linked against uClibc 0.9.28? I just updated "http://busybox.net/~landley/todo.txt" (so it's now "stale but less so") if you want to take a look at that. I also sent you my "pending" folder (and have since dug up a second one, older and much smaller, dunno if any of that's still relevant...) > Busybox should not lose its position of embedded device tool. Oh, I dunno. Toybox may make a play for the niche, someday. :) I'm thinking of it as a sort of "BusyBox lite". Someday, when computers go beyond cheap to disposable and you have a full motion video display on the front of each box of captain crunch, it'll still need software to run the thing. And if it has to be cheap enough to throw away and also run on a cheap battery for months, 4 megabytes of ram could easily be the _high_ end of things, and the really tiny systems tend to be nommu to save the memory used by the page tables, so that may still be interesting too... The bits of BusyBox development that have really held my interest weren't adding features, but taking our big bloated apps (ash, fdisk, e2fsprogs, shadow support) ripping them out and writing tiny versions. (I may have started with "sed" to make binutils' ./configure happy, but my second big project was rewriting bunzip2 because the old one was just too big and complicated.) *shrug* > I think it makes sense to introduce CONFIG_DESKTOP and put > all such things under it. They should probably be individually configurable for now. What I learned with CONFIG_NITPICK is that our current menuconfig sucks rocks. Visibility and selection state are mixed up horribly. If you hide something, you set it to "n". There's no way to make it take its default value when it's hidden, because the design assumption is that hidden means off. (Actually, hidden menus don't even get written out in the unmodified menuconfig; I had to change that to make the ENABLE_ stuff work.) I'm all for tagging things into groups so you can switch the entire group at once to be "all on", "all off", or "individually editable" with a central switch somewhere. But our current .config infrastructure doesn't do that, and I wasn't going to upgrade the old stuff if you had a kernel/klibc-based replacement in the wings... :) > I will add such thing with gunzip -v fix. > Non-DESKTOP bbox will silently ignore -v, > DESKTOP one will print statistics. We can have various default configurations. Not quite sure on the syntax ("make desktopconfig"?) but I don't see it as a bad thing. This is something miniconfig was going to allow. (Then again, I've been called a perfectionist, rewriting entire subsystems to get the behavior I want. I wouldn't ask anyone else to do that. Among other things they're probably sane. And you may notice that being maintainer seriously cuts into your actual coding time. Reading and merging other people's code happens at the expense of writing your own. Only so many hours in the day.) It's your call, I'm just saying how I'd do it. Since I'm _not_ doing it (not here, anyway), this carries no weight and is eminently ignorable. > I know that increased attention to destop needs will inevibably > lead to _some_ increases in size even for non DESKTOP case. I didn't accept increases in size for the non-development environment case. It's not inevitable, it's just a boatload of work repeatedly re-auditing stuff. (And bloat-o-meter is a beautiful thing.) But again, it's a question of finding somebody to do the work. > Please think also about positive side: with such move there is > a chance that bbox will get much wider userbase and therefore > will bring some sanity into desktop world. I kept hoping knoppix would pick it up, but they never did. I cornered some of the One Laptop Per Child guys at OLS, but they hadn't even looked at it and they're being sponsored by Red Hat. Good luck with this. > Of course contributions and corrections (and even rants about > bloat) from embedded people are still accepted > and encouraged. > > P.S. below sig: the list of applets I added to /bin on my box. > Need to check whether it will at least boot correctly now ;) > -- > vda I'm about 2/3 of the way through the patch backport for 1.2.2. (You may notice that http://busybox.net/downloads/busybox-1.2.1.fixes.patch has gotten noticeably larger. Since this is the last "or later" licensed release I'm merging all the relevant fixes up through svn 16112, so there's a ways to go yet.) I might get that done today. Dunno. (I might finish book 3 in the Temeraire series, "Black Powder War", instead. Might manage both!) I'll update the news.html page for 1.2.2, and I'll mention the change of maintainership when I do. After that I'll be out of your way. Meanwhile, off to the coffee shop, with paperback and laptop. (Wasn't that a book by Hemingway or somebody?) Rob -- Never bet against the cheap plastic solution.
Copyright 2006 http://lists.busybox.net/pipermail/busybox/