--- trunk/mkinitrd-magellan/busybox/TODO 2009/04/24 18:32:46 815 +++ trunk/mkinitrd-magellan/busybox/TODO 2009/04/24 18:33:46 816 @@ -6,42 +6,24 @@ have any suggestions how they plan to go about it, and to minimize conflicts between your work and theirs. But otherwise, all of these are fair game. -Rob Landley : - Add BB_NOMMU to platform.h and migrate __uClinux__ tests to that. - #if defined __UCLIBC__ && !defined __ARCH_USE_MMU__ +Rob Landley suggested these: Add a libbb/platform.c Implement fdprintf() for platforms that haven't got one. Implement bb_realpath() that can handle NULL on non-glibc. Cleanup bb_asprintf() - Migrate calloc() and bb_calloc() occurrences to bb_xzalloc(). Remove obsolete _() wrapper crud for internationalization we don't do. Figure out where we need utf8 support, and add it. sh - The command shell situation is a big mess. We have three or four different + The command shell situation is a big mess. We have three different shells that don't really share any code, and the "standalone shell" doesn't work all that well (especially not in a chroot environment), due to apps not - being reentrant. I'm writing a new shell (bbsh) to unify the various - shells and configurably add the minimal set of bash features people - actually use. The hardest part is it has to configure down as small as - lash while providing lash's features. The rest is easy in comparison. - bzip2 - Compression-side support. + being reentrant. + lash is phased out. hush can be configured down to be nearly as small, + but less buggy :) init General cleanup (should use ENABLE_FEATURE_INIT_SYSLOG and ENABLE_FEATURE_INIT_DEBUG). - depmod - busybox lacks a way to update module deps when running from firmware without the - use of the depmod.pl (perl is to bloated for most embedded setups) and or orig - modutils. The orig depmod is rather pointless to have to add to a firmware image - in when we already have a insmod/rmmod and friends. - Unify base64 handling. - There's base64 encoding and decoding going on in: - networking/wget.c:base64enc() - coreutils/uudecode.c:read_base64() - coreutils/uuencode.c:tbl_base64[] - networking/httpd.c:decodeBase64() - And probably elsewhere. That needs to be unified into libbb functions. Do a SUSv3 audit Look at the full Single Unix Specification version 3 (available online at "http://www.opengroup.org/onlinepubs/009695399/nfindex.html") and @@ -117,7 +99,7 @@ This one's open to everybody, but I'll wind up doing it... -Bernhard Fischer suggests to look at these: +Bernhard Reutner-Fischer suggests to look at these: New debug options: -Wlarger-than-127 Cleanup any big users @@ -130,14 +112,10 @@ make bb_common_bufsiz1 configurable, size wise. make pipesize configurable, size wise. Use bb_common_bufsiz1 throughout applets! - Add chrt applet. Please CC Bernhard if you suggest a patch. As yet unclaimed: ---- -find - doesn't understand (), lots of susv3 stuff. ----- diff Make sure we handle empty files properly: From the patch man page: @@ -163,12 +141,21 @@ (How doclifter might work into this is anybody's guess.) --- ar - Write support? ----- + Write support! +--- stty / catv stty's visible() function and catv's guts are identical. Merge them into an appropriate libbb function. ----- +--- +struct suffix_mult + Several duplicate users of: grep -r "1024\*1024" * -B2 -A1 + Merge to a single size_suffixes[] in libbb. + Users: head tail od_bloaty hexdump and (partially as it wouldn't hurt) svlogd +--- +tail + ./busybox tail -f foo.c~ TODO + should not print fmt=header_fmt for subsequent date >> TODO; i.e. only + fmt+ if another (not the current) file did change Architectural issues: @@ -291,23 +278,21 @@ use bb_perror_msg where appropriate: See egrep "[^_]perror" --- - Remove superfluous fmt occurances: e.g. - fprintf(stderr, "%s: %s not found\n", "unalias", *argptr); - -> fprintf(stderr, "unalias: %s not found\n", *argptr); ---- possible code duplication ingroup() and is_a_group_member() --- Move __get_hz() to a better place and (re)use it in route.c, ash.c, msh.c --- + See grep -r strtod + Alot of duplication that wants cleanup. +--- + in_ether duplicated in network/{interface,ifconfig}.c +--- Code cleanup: Replace deprecated functions. -bzero() -> memset() ---- -sigblock(), siggetmask(), sigsetmask(), sigmask() -> sigprocmask et al --- vdprintf() -> similar sized functionality ---