Changeset 2725 in MondoRescue for branches/2.2.9/mindi-busybox/TODO


Ignore:
Timestamp:
Feb 25, 2011, 9:26:54 PM (13 years ago)
Author:
Bruno Cornec
Message:
  • Update mindi-busybox to 1.18.3 to avoid problems with the tar command which is now failing on recent versions with busybox 1.7.3
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2.9/mindi-busybox/TODO

    r1765 r2725  
    11Busybox TODO
     2
     3Harvest patches from
     4http://git.openembedded.org/cgit.cgi/openembedded/tree/recipes/busybox/
    25
    36Stuff that needs to be done.  This is organized by who plans to get around to
     
    710between your work and theirs.  But otherwise, all of these are fair game.
    811
    9 Rob Landley <rob@landley.net>:
    10   Add BB_NOMMU to platform.h and migrate __uClinux__ tests to that.
    11     #if defined __UCLIBC__ && !defined __ARCH_USE_MMU__
    12   Add a libbb/platform.c
    13     Implement fdprintf() for platforms that haven't got one.
    14     Implement bb_realpath() that can handle NULL on non-glibc.
    15     Cleanup bb_asprintf()
    16 
    17   Migrate calloc() and bb_calloc() occurrences to bb_xzalloc().
    18   Remove obsolete _() wrapper crud for internationalization we don't do.
    19   Figure out where we need utf8 support, and add it.
     12Rob Landley suggested this:
     13  Implement bb_realpath() that can handle NULL on non-glibc.
    2014
    2115  sh
    22     The command shell situation is a big mess.  We have three or four different
     16    The command shell situation is a mess.  We have two different
    2317    shells that don't really share any code, and the "standalone shell" doesn't
    2418    work all that well (especially not in a chroot environment), due to apps not
    25     being reentrant.  I'm writing a new shell (bbsh) to unify the various
    26     shells and configurably add the minimal set of bash features people
    27     actually use.  The hardest part is it has to configure down as small as
    28     lash while providing lash's features.  The rest is easy in comparison.
    29   bzip2
    30     Compression-side support.
    31   init
    32     General cleanup (should use ENABLE_FEATURE_INIT_SYSLOG and ENABLE_FEATURE_INIT_DEBUG).
    33   depmod
    34     busybox lacks a way to update module deps when running from firmware without the
    35     use of the depmod.pl (perl is to bloated for most embedded setups) and or orig
    36     modutils. The orig depmod is rather pointless to have to add to a firmware image
    37     in when we already have a insmod/rmmod and friends.
    38   Unify base64 handling.
    39     [done]
     19    being reentrant.
     20
    4021  Do a SUSv3 audit
    4122    Look at the full Single Unix Specification version 3 (available online at
     
    4627    Even better would be some kind of automated compliance test harness that
    4728    exercises each command line option and the various corner cases.
     29
    4830  Internationalization
    4931    How much internationalization should we do?
    5032
    5133    The low hanging fruit is UTF-8 character set support.  We should do this.
    52     (Vodz pointed out the shell's cmdedit as needing work here.  What else?)
     34    See TODO_unicode file.
    5335
    5436    We also have lots of hardwired english text messages.  Consolidating this
     
    7860    could export some of the other library interfaces we've already more or less
    7961    got the code for (like zlib).
     62
    8063  buildroot - Make a "dogfood" option
    8164    Busybox 1.1 will be capable of replacing most gnu packages for real world
     
    9780    One example of an existing system that does this already is Firmware Linux:
    9881      http://www.landley.net/code/firmware
     82
    9983  initramfs
    10084    Busybox should have a sample initramfs build script.  This depends on
    101     bbsh, mdev, and switch_root.
     85    shell, mdev, and switch_root.
     86
    10287  mkdep
    10388    Write a mkdep that doesn't segfault if there's a directory it doesn't
    10489    have permission to read, isn't based on manually editing the output of
    10590    lexx and yacc, doesn't make such a mess under include/config, etc.
     91
    10692  Group globals into unions of structures.
    10793    Go through and turn all the global and static variables into structures,
     
    10995    so busybox uses less bss.  (This is a big win on nommu machines.)  See
    11096    sed.c and mdev.c for examples.
     97
    11198  Go through bugs.busybox.net and close out all of that somehow.
    11299    This one's open to everybody, but I'll wind up doing it...
    113100
    114 
    115 Bernhard Fischer <busybox@busybox.net> suggests to look at these:
     101Bernhard Reutner-Fischer <busybox@busybox.net> suggests to look at these:
    116102  New debug options:
    117103    -Wlarger-than-127
    118104    Cleanup any big users
    119     -Wunused-parameter
    120     Facilitate applet PROTOTYPES to provide means for having applets that
    121     do a) not take any arguments b) need only one of argc or argv c) need
    122     both argc and argv. All of these three options should go for the most
    123     feature complete denominator.
    124105  Collate BUFSIZ IOBUF_SIZE MY_BUF_SIZE PIPE_PROGRESS_SIZE BUFSIZE PIPESIZE
    125106    make bb_common_bufsiz1 configurable, size wise.
     
    130111
    131112----
    132 find
    133   doesn't understand (), lots of susv3 stuff.
    134 ----
    135113diff
    136114  Make sure we handle empty files properly:
     
    148126  And while we're at it, a new patch filename quoting format is apparently
    149127  coming soon:  http://marc.theaimsgroup.com/?l=git&m=112927316408690&w=2
    150 ---
    151 ps / top
    152   Add support for both RSS and VSIZE rather than just one or the other.
    153   Or make it a build option.
    154 ---
    155 man
    156   It would be nice to have a man command.  Not one that handles troff or
    157   anything, just one that can handle preformatted ascii man pages, possibly
    158   compressed.  This could probably be a script in the extras directory that
    159   calls cat/zcat/bzcat | less
    160 
    161   (How doclifter might work into this is anybody's guess.)
    162 ---
    163 ar
    164   Write support?
    165128---
    166129stty / catv
     
    204167Text buffer support.
    205168  Several existing applets (sort, vi, less...) read
    206   a whole file into memory and act on it.  There might be an opportunity
    207   for shared code in there that could be moved into libbb...
     169  a whole file into memory and act on it.  Use open_read_close().
    208170---
    209171Memory Allocation
     
    220182  we can yank those #ifdefs too, and generally clean up the code.
    221183---
    222 Switch CONFIG_SYMBOLS to ENABLE_SYMBOLS
    223 
    224   In busybox 1.0 and earlier, configuration was done by CONFIG_SYMBOLS
    225   that were either defined or undefined to indicate whether the symbol was
    226   selected in the .config file.  They were used with #ifdefs, ala:
    227 
    228     #ifdef CONFIG_SYMBOL
    229       if (other_test) {
    230         do_code();
    231       }
    232     #endif
    233 
    234   In 1.1, we have new ENABLE_SYMBOLS which are always defined (as 0 or 1),
    235   meaning you can still use them for preprocessor tests by replacing
    236   "#ifdef CONFIG_SYMBOL" with "#if ENABLE_SYMBOL".  But more importantly, we
    237   can use them as a true or false test in normal C code:
    238 
    239     if (ENABLE_SYMBOL && other_test) {
    240       do_code();
    241     }
    242 
    243   (Optimizing away if() statements that resolve to a constant value
    244   is known as "dead code elimination", an optimization so old and simple that
    245   Turbo Pascal for DOS did it twenty years ago.  Even modern mini-compilers
    246   like the Tiny C Compiler (tcc) and the Small Device C Compiler (SDCC)
    247   perform dead code elimination.)
    248 
    249   Right now, busybox.h is #including both "config.h" (defining the
    250   CONFIG_SYMBOLS) and "bb_config.h" (defining the ENABLE_SYMBOLS).  At some
    251   point in the future, it would be nice to wean ourselves off of the
    252   CONFIG versions.  (Among other things, some defective build environments
    253   leak the Linux kernel's CONFIG_SYMBOLS into the system's standard #include
    254   files.  We've experienced collisions before.)
    255 ---
    256184FEATURE_CLEAN_UP
    257185  This is more an unresolved issue than a to-do item.  More thought is needed.
    258186
    259   Normally we rely on exit() to free memory, close files, and unmap segments
     187  Normally we rely on exit() to free memory, close files and unmap segments
    260188  for us.  This makes most calls to free(), close(), and unmap() optional in
    261189  busybox applets that don't intend to run for very long, and optional stuff
     
    286214
    287215
    288 
    289216Minor stuff:
    290217  watchdog.c could autodetect the timer duration via:
     
    299226  egrep "[^_]perror"
    300227---
    301   Remove superfluous fmt occurances: e.g.
    302   fprintf(stderr, "%s: %s not found\n", "unalias", *argptr);
    303   -> fprintf(stderr, "unalias: %s not found\n", *argptr);
    304 ---
    305228  possible code duplication ingroup() and is_a_group_member()
    306229---
    307   Move __get_hz() to a better place and (re)use it in route.c, ash.c, msh.c
    308 ---
    309 
    310 
    311 Code cleanup:
    312 
    313 Replace deprecated functions.
    314 
    315 bzero() -> memset()
    316 ---
    317 sigblock(), siggetmask(), sigsetmask(), sigmask() -> sigprocmask et al
     230  Move __get_hz() to a better place and (re)use it in route.c, ash.c
     231---
     232  See grep -r strtod
     233  Alot of duplication that wants cleanup.
     234---
     235  in_ether duplicated in network/{interface,ifconfig}.c
     236---
     237  unify progress_meter. wget, flash_eraseall, pipe_progress, fbsplash, setfiles.
     238---
     239  support start-stop-daemon -d <chdir-path>
    318240---
    319241vdprintf() -> similar sized functionality
    320242---
     243
     244(TODO list after discussion 11.05.2009)
     245
     246* shrink tc/brctl/ip
     247  tc/brctl seem like fairly large things to try and tackle in your timeframe,
     248  and i think people have posted attempts in the past. Adding additional
     249  options to ip though seems reasonable.
     250
     251* add tests for some applets
     252
     253* implement POSIX utilities and audit them for POSIX conformance. then
     254  audit them for GNU conformance. then document all your findings in a new
     255  doc/conformance.txt file while perhaps implementing some of the missing
     256  features.
     257  you can find the latest POSIX documentation (1003.1-2008) here:
     258  http://www.opengroup.org/onlinepubs/9699919799/
     259  and the complete list of all utilities that POSIX covers:
     260  http://www.opengroup.org/onlinepubs/9699919799/idx/utilities.html
     261  The first step would to generate a file/matrix what is already archived
     262  (also IPV6)
     263
     264* implement 'at'
     265
     266* rpcbind (former portmap) or equivalent
     267  so that we don't have to use -o nolock on nfs mounts
     268
     269* check IPV6 compliance
     270
     271* generate a mini example using kernel+busybox only (+libc) for example
     272
     273* more support for advanced linux 2.6.x features, see: iotop
     274  most likely there is more
     275
     276* even more support for statistics: mpstat, iostat, powertop....
Note: See TracChangeset for help on using the changeset viewer.