Merge new RPM code - contributed by Andy Green. - Significant update, maintains a repository, can check dependencies, uninstall, runs pre/post install scripts... miniconfig - Backport of 2.6.16 configuration code, plus my miniconfig patch. - See LWN FIXME udhcp rewrite *** in progress - Smaller, simpler. fdisk rewrite The current fdisk is a mess. It's enormous (the third largest C file in the tree after e2fsck.c and ash.c), it's nonstandard (to the point it has its own special build rule in util-linux/Makefile.in), and its purpose in life is to edit a _boot sector_ and call a couple of ioctls. A real busybox implementation would combine fdisk, sfdisk, and cfdisk in a fraction of the space the current fdisk takes up. init rewrite - I did this once before long ago and it got lost. - Make HUP reread inittab in a way that actually works. - add oneit passwd rewrite *** in progress - add salt to all new passwords. - Add md5 and sha1 password support. - shrink and simplify code. bbsh - This is a big one. - Replace 4 busybox shells with one shell that scales up and down. - Needs a _serious_ test suite to do this right. - Stage 1: Replace lash - Result must be able to CONFIG down as small as lash, but good basis - for expansion. - Stage 2: Replace hush. - Compile time options. Granular by feature. - Stage 3: Replace msh. - Stage 4: Obsolete ash, target susv3 shell section and bash man page. - The standalone shell mode of bbsh should not need /proc. - Should be nommu capable with all features enabled. nommu - Create a bb_spwan() using vfork() and exec(), use it everywhere. - Group globals into struct/union. (Beyond bb_common_bufsiz1.) - Use allocate on stack/heap configuration option in more places. - Run test suite on nommu platform, fix everything. portability - Group byte ordering stuff in platform.h - Get a test build environment that runs under qemu's non-x86 emulations (arm/mips/ppc/x86-64) for automated regression testing. (Run testsuite.) - Check macosx, bsd, possibly newlib/libgloss. - Automate testing on glibc and uclibc. make standalone - Individual executables instead of one big binary. - Optional shared library for libbb. (Done, not enabled.) - Lots of makefile work. test suite - Convert existing tests from old format to new format. - Runs as automated regression test suite. - Tests whatever's in the path: busybox or non-busybox. - Follow susv3 and make tests for susv3 compliance for all supported apps. Clean up archiver code. - Untangle it. (Maybe foist this off on glenn?) - If RPM maintaining Sub-projects dependent on this one: Add ipkg support. - Like RPM, this should maintain a repository. All supported repositories should be checked. Add repository support to .deb - Same. Fix sed bugs. - Tests in the test suite fail. Deal with that. - should use bb_process_escape_sequence(). Do a decent release announcement. - What's new since 1.00? Covering through 1.1.2. Redo top.c It's a mess, tangles in pidof, ps, killall... Deprecated features menu devfsd, susv2 obsoleted, mkswap v0 support... Applets to add: mkisofs, cdrecord, mkdosfs, genext2fs, lspci, lsusb Tweaks grep -r -o xargs -print0 (and find -0) mdev updates - add shellout capability. - work around bugs in uClibc 0.9.28 and earlier. fix df - Should show only most recently mounted filesystem on each dir. Example initramfs image. Device probing. switch_root. Up to date "dogfood" image. Build system with busybox, uclibc, linux, gcc, binutils, make. Rebuild system from source under itself. Already did this with Firmware Linux: - Remove need for bash (bbsh?) - Upgrade to current versions of everything. - Simplify build script. - Cross compile to qemu for arm, mips, ppc, x86-64, x86 from each of those. ------------------------------- pending: sed NUL passwd rewrite testsuite update date.c -r USE_BLAH() FEATURE_DATE_HINT 1.1.0 (svn 13254) release announcement 1.01 was: 1.01 didn't include: mount.c mount -a (fix via largeish rewrite). ps ax procps minimal.c? Add -f support to losetup umount -l should be lazy unmounts. move -l to -L programming.html: Building a "hello world" initramfs system. /init - how it works. mdev shared libraries. pivot_root. The following .config entries don't start with CONFIG: BB_APPLET_RUNLEVEL FDISK_SUPPORT_LARGE_DISKS CROSS_COMPILER_PREFIX EXTRA_CFLAGS_OPTIONS HAVE_DOT_CONFIG PREFIX USING_CROSS_COMPILER make miniconfig Busybox stuff: which -a (and alias support?) redo top.c Document usage of everything. Actually try to set it up. telnetd. udpcpc udhcpd mdev init busybox.conf udhcpc : shouldn't need script, way too noisy. Bugcheck (as non-root user): mkdir dir touch dir/file chmod 111 dir rm -rf dir cleanup vfork into fork_exec(FKEX_DAEMON|FKEX_PATH, command, ...); obsolete vfork_daemon_rexec.c compartment? update license.txt design.txt CONFIG_ vs ENABLE_ Sparse file awareness (config option) affecting cp, tar. Look at getline() instead of get_chomped_... Use Matt Mackall's bloat-o-meter (File attach to my nov 16 posting.) Makefile tweak: -lm -lcrypt Fix sort: sort --help isn't remotely complete. SORT_BIG needs libm. Go through busybox bug list. Close out for 1.1. Triage: Find the "should fix" subset. Behold the suckage: inetd.c fdisk.c Look at all of vodz's "ports" and do proper busybox versions. Maintainer: annotations in source files. ipkg http://www.uk-dave.com/tutorials/zaurus/ipkg.php tar #fix t #fix x fix C - it's uClibc, fix that. testsuite ftpget SIZE removal http://www.busybox.net/lists/busybox/2005-September/016311.html ifenslave mdev username:group (string, not just uid:gid) add shellout Do first revision of bbsh.c. Finish reading lash.c Suck parsing code out of modutils.c -- Clean up the config mess! Unify terminal handling: Telnet/netcat. Telnetd? Init getty/login bbsh IPV6: Unify this somehow? State of the Busybox address. less got horked? mount Bump bb_path_mtab_file to bigger config entry, add support in mkfs.ext3. # error message is terrible under FWL. # Pass -o flags on to filesystem (tmpfs?) even when using flags from fstab. mount -o remount,rw one - use mtab, not fstab mount -o loop_offset=12345 mount -o loop_crypto do a CONFIG_WITHOUT_PROC and make mtab bind to that. mount --rbind # umount /path/to/file -- autodetect loop. umount -a in a world with multiple namespaces? -- confirm umount -a blockdev umount -a dir : all subdirectories. Better docs no --loop, loop_offset, rbind, all -o options, -a blockdev/dir losetup -d should give error when loop device already unbound. Test switch_root.c sed should use bb_process_escape_sequence() Generally fix process_escape_sequence(). Check \? to make sure it doesn't become \\ Why doesn't this work: [^\"'\n] not backslash double quote single quote newline Handle nul bytes in input with no ending newline. Annotations in applets.h for SUSV3 and NOFORK. Thump testsuite. Pidof. Finish sed.tests - mark AUDIT Finish sort.tests - mark AUDIT What's broken about sort? (Two test cases) What's broken about sed? (Three test cases) 8-bit clean checking for all apps. tar -nosame patch df should keep track of already seen major/minor (for --bind and such). busybox standalone shell in 1.01 not finding any built-in commands or $PATH? Why are some busybox apps bigger using ENABLE_? tar df grep -r -o find -0 and -print0 (xargs too) make standalone new test harness Complete coverage archive.patch (general archive cleanup). PCMCIA: http://www.kernel.org/pub/linux/utils/kernel/pcmcia/howto.html tftpd setserial minicom replacement General: In gcc 4.0.2 build, find out why genattrtab and then the compilation of insn-attrtab.c is such a _pig_. More graceful gcc build, less sedding more --options Fun with qemu Build under Red Hat 7.2 Other hardware platforms. Test bootable image (without endless reboots). Firmware: Optimize installer's busybox.config Progress indicator! Count total output lines, then do a bar graph (per app, and total) Bootable firmware Use standalone shell instead of symlink forest Use find to get partitions (hda1) #Make "unwrapped" build option if you build as root. Writeable version of firmware-uml use mdev, switch_root, oneit. work out what to do about /dev/console Why does echo 0 > /proc/sys/vm/swappiness trigger OOM kiler? x86-64 build Make build independent of zlib presence on host system. Editing newbuild/firmware-build/index.html Use switch_root from busybox. Update initramfs script to mount bootable firmware. Figure out what's wrong with less. (Did reverting getopt_ulflags fix it?) linux-build make allnoconfig O= Unify linux-kernel source build? (Before and after?) Always build UML, just don't always use it? 0.0 Delete old untouched files out of packages. Try a uClibc snapshot. Progress indicator (curses)? grep === vs stdout... # Update busybox snapshot to 1.1.0-pre1 firmware: X11 VNC? Writeup "Why devfs sucked". Created due to the hotplug problem, but didn't solve the hotplug problem. SCSI devices created in order discovered. Insert one in middle, they all move. USB the same. Tried to represent bus topolgy in device names, made using devices tough. Introduced daemon to copy old names. If you've got the daemon anyway... Persistent device ownership/permissions. Kernel doesn't know what users are in your /etc/password, or which groups should be able to read from your sound card. (Hint: can't be world readable or anybody who can telnet into your machine as a normal user can listen to your office.) Things like /dev/cdrom need a config file. patch: >    you can remove a file by sending out a context diff that compares >    the file to be deleted with an empty file dated the Epoch.  The >    file will be removed unless patch is conforming to POSIX and the >    -E or --remove-empty-files option is not given. Hmm, quilt, git (and IIRC BitKeeper) don't comply with the above format, but they use /dev/null and it seems to work in practice. Jeff's version of quilt seems to be broken on this (he said he's using 0.32). ftp://ftp.trolltech.com/qt/source/qt-x11-opensource-src-4.0.1.tar.gz http://web.archive.org/web/19980119061128/http://www.fsf.org/ http://web.archive.org/web/19980119061402/www.fsf.org/gnu/linux-and-gnu.html http://web.archive.org/web/19980119061415/www.fsf.org/software/hurd/hurd.html http://web.archive.org/web/19980119063235/www.fsf.org/software/hurd/hurd-and-linux.html Look into prelinking: http://www.crast.us/james/articles/prelink.php Already finished: #Merge halt/poweroff/reboot # Get initrd working again. kill_init(). # mdev #Basic merge. #Config file # regex support # zap cmp # local_errno # bb_xasprintf(); # add dir/ #syntaxes: # symlink -> symlink # dir/ (and dir| dir=) # thing uid:gid 777 # /dev/initctl - a named pipe? #Is the "" escaping useful here? (Spaces?) # update to bloat-o-meter to handle statics (in 2.6.16 source) # programming.html # New platform.h file for compiler-specific and library-specific stuff. # Fix killall, reboot, halt, and poweroff. # Extra -libm dependency (for uClibc 0.9.28 and earlier). # Checkin losetup fix # busybox: tar --exclude # debug funky mount -t tmpfs problem. (Firmware-build 2.2 line 101). # Linux-kernel initramfs docs.