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__
+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.
+ General cleanup (should use ENABLE_FEATURE_INIT_SYSLOG).
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
This one's open to everybody, but I'll wind up doing it...
-Bernhard Fischer <busybox@busybox.net> suggests to look at these:
- Makefile stuff:
- make -j is broken. klibc make infrastructure (vda?)
+Bernhard Reutner-Fischer <busybox@busybox.net> suggests to look at these:
New debug options:
-Wlarger-than-127
Cleanup any big users
As yet unclaimed:
-----
-find
- doesn't understand (), lots of susv3 stuff.
----
diff
Make sure we handle empty files properly:
And while we're at it, a new patch filename quoting format is apparently
coming soon: http://marc.theaimsgroup.com/?l=git&m=112927316408690&w=2
---
-man
- It would be nice to have a man command. Not one that handles troff or
- anything, just one that can handle preformatted ascii man pages, possibly
- compressed. This could probably be a script in the extras directory that
- calls cat/zcat/bzcat | less
-
- (How doclifter might work into this is anybody's guess.)
----
ar
- Write support?
+ 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
+---
+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:
---
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
---
+ 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
---
-