Teach md5sum and sha1sum to work the way other applets do so I don't have to
[oweals/busybox.git] / TODO
diff --git a/TODO b/TODO
index 35732e523352f06cef6cec8175046f542fc4bb3f..c603a16517780a1bc5558bcff1038980f2375f49 100644 (file)
--- a/TODO
+++ b/TODO
@@ -7,6 +7,8 @@ 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 <rob@landley.net>:
+  Add BB_NOMMU to platform.h and migrate __uClinux__ tests to that.
+    #if defined __UCLIBC__ && !defined __ARCH_USE_MMU__
   Add a libbb/platform.c
     Implement fdprintf() for platforms that haven't got one.
     Implement bb_realpath() that can handle NULL on non-glibc.
@@ -27,7 +29,12 @@ Rob Landley <rob@landley.net>:
   bzip2
     Compression-side support.
   init
-    General cleanup.
+    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()
@@ -97,6 +104,17 @@ Rob Landley <rob@landley.net>:
   initramfs
     Busybox should have a sample initramfs build script.  This depends on
     bbsh, mdev, and switch_root.
+  mkdep
+    Write a mkdep that doesn't segfault if there's a directory it doesn't
+    have permission to read, isn't based on manually editing the output of
+    lexx and yacc, doesn't make such a mess under include/config, etc.
+  Group globals into unions of structures.
+    Go through and turn all the global and static variables into structures,
+    and have all those structures be in a big union shared between processes,
+    so busybox uses less bss.  (This is a big win on nommu machines.)  See
+    sed.c and mdev.c for examples.
+  Go through bugs.busybox.net and close out all of that somehow.
+    This one's open to everybody, but I'll wind up doing it...
 
 
 Bernhard Fischer <rep.nop@anon.at>:
@@ -117,10 +135,10 @@ diff
   Make sure we handle empty files properly:
     From the patch man page:
 
-   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.
+    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.
 ---
 patch
   Should have simple fuzz factor support to apply patches at an offset which
@@ -177,7 +195,7 @@ Memory Allocation
   allocation on the stack or the heap.  Unfortunately, we're not using it much.
   We need to audit our memory allocations and turn a lot of malloc/free calls
   into RESERVE_CONFIG_BUFFER/RELEASE_CONFIG_BUFFER.
-  For a start, see e.g. make CFLAGS_EXTRA=-Wlarger-than-64
+  For a start, see e.g. make EXTRA_CFLAGS=-Wlarger-than-64
 
   And while we're at it, many of the CONFIG_FEATURE_CLEAN_UP #ifdefs will be
   optimized out by the compiler in the stack allocation case (since there's no
@@ -257,6 +275,24 @@ Minor stuff:
     if(!ioctl (fd, WDIOC_GETTIMEOUT, &tmo)) timer_duration = 1 + (tmo / 2);
   Unfortunately, that needs linux/watchdog.h and that contains unfiltered
   kernel types on some distros, which breaks the build.
+---
+  use bb_error_msg where appropriate: See
+  egrep "(printf.*\([[:space:]]*(stderr|2)|[^_]write.*\([[:space:]]*(stderr|2))"
+---
+  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()
+---
+  unify itoa: netstat.c, hush.c, lash.c, msh.c
+  Put one single, robust version into e.g. safe_strtol.c
+---
+  Move __get_hz() to a better place and (re)use it in route.c, ash.c, msh.c
+---
 
 
 Code cleanup: