- reinstate static for the command string arrray to be gentle to gcc-3.x
[oweals/busybox.git] / TODO
diff --git a/TODO b/TODO
index 80a37b3594bbbd08578df15fe4c4dc75bdb13e05..78f48fc014e3a200bfb11aba3334b01c24a25693 100644 (file)
--- a/TODO
+++ b/TODO
@@ -30,6 +30,11 @@ Rob Landley <rob@landley.net>:
     Compression-side support.
   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()
@@ -99,15 +104,33 @@ Rob Landley <rob@landley.net>:
   initramfs
     Busybox should have a sample initramfs build script.  This depends on
     bbsh, mdev, and switch_root.
-
-
-Bernhard Fischer <rep.nop@anon.at>:
-  Makefile stuff:
-    make -j is broken, -j1 is forced atm
+  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 <busybox@busybox.net> suggests to look at these:
   New debug options:
     -Wlarger-than-127
+    Cleanup any big users
+    -Wunused-parameter
+    Facilitate applet PROTOTYPES to provide means for having applets that
+    do a) not take any arguments b) need only one of argc or argv c) need
+    both argc and argv. All of these three options should go for the most
+    feature complete denominator.
   Collate BUFSIZ IOBUF_SIZE MY_BUF_SIZE PIPE_PROGRESS_SIZE BUFSIZE PIPESIZE
-    Use bb_common_bufsiz1?
+    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:
 
@@ -119,10 +142,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
@@ -141,9 +164,15 @@ man
 ---
 ar
   Write support?
----
-crond
-  turn FEATURE_DEBUG_OPT into ENABLE_FEATURE_CROND_DEBUG_OPT
+----
+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
 
 Architectural issues:
 
@@ -179,7 +208,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
@@ -239,7 +268,7 @@ FEATURE_CLEAN_UP
   jumps out of the normal flow control and bypasses any cleanup code we
   put at the end of our applets.
 
-  It's possible to add hooks to libbb functions like xmalloc() and bb_xopen()
+  It's possible to add hooks to libbb functions like xmalloc() and xopen()
   to add their entries to a linked list, which could be traversed and
   freed/closed automatically.  (This would need to be able to free just the
   entries after a checkpoint to be usable for a forkless standalone shell.
@@ -272,6 +301,8 @@ Minor stuff:
 ---
   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
+---
 
 
 Code cleanup:
@@ -284,4 +315,3 @@ sigblock(), siggetmask(), sigsetmask(), sigmask() -> sigprocmask et al
 ---
 vdprintf() -> similar sized functionality
 ---
-