mirror of
https://github.com/sheumann/hush.git
synced 2024-12-21 23:29:34 +00:00
Why we didn't take a watchdog.c suggestion this time 'round, in case anybody
comes up with a fix...
This commit is contained in:
parent
e87ae0bd4f
commit
8bcc6e964b
45
TODO
45
TODO
@ -1,6 +1,6 @@
|
|||||||
Busybox TODO
|
Busybox TODO
|
||||||
|
|
||||||
Stuff that needs to be done
|
Stuff that needs to be done. All of this is fair game for 1.2.
|
||||||
|
|
||||||
find
|
find
|
||||||
doesn't understand (), lots of susv3 stuff.
|
doesn't understand (), lots of susv3 stuff.
|
||||||
@ -13,11 +13,20 @@ sh
|
|||||||
way of adding the minimal set of bash features a given script uses is a big
|
way of adding the minimal set of bash features a given script uses is a big
|
||||||
job, but it would be a big improvement.
|
job, but it would be a big improvement.
|
||||||
|
|
||||||
Note: Rob Landley (rob@landley.net) is working on this one, but very slowly...
|
Note: Rob Landley (rob@landley.net) is working on a new unified shell called
|
||||||
|
bbsh, but it's a low priority...
|
||||||
---
|
---
|
||||||
diff
|
diff
|
||||||
We should have a diff -u command. We have patch, we should have diff
|
We should have a diff -u command. We have patch, we should have diff
|
||||||
(we only need to support unified diffs though).
|
(we only need to support unified diffs though).
|
||||||
|
|
||||||
|
Also, 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.
|
||||||
---
|
---
|
||||||
patch
|
patch
|
||||||
Should have simple fuzz factor support to apply patches at an offset which
|
Should have simple fuzz factor support to apply patches at an offset which
|
||||||
@ -31,12 +40,20 @@ man
|
|||||||
anything, just one that can handle preformatted ascii man pages, possibly
|
anything, just one that can handle preformatted ascii man pages, possibly
|
||||||
compressed. This could probably be a script in the extras directory that
|
compressed. This could probably be a script in the extras directory that
|
||||||
calls cat/zcat/bzcat | less
|
calls cat/zcat/bzcat | less
|
||||||
|
|
||||||
|
(How doclifter might work into this is anybody's guess.)
|
||||||
---
|
---
|
||||||
bzip2
|
bzip2
|
||||||
Compression-side support.
|
Compression-side support.
|
||||||
---
|
---
|
||||||
init
|
init
|
||||||
General cleanup.
|
General cleanup.
|
||||||
|
---
|
||||||
|
ar
|
||||||
|
Write support?
|
||||||
|
---
|
||||||
|
mdev
|
||||||
|
Micro-udev.
|
||||||
|
|
||||||
Architectural issues:
|
Architectural issues:
|
||||||
|
|
||||||
@ -44,9 +61,11 @@ bb_close() with fsync()
|
|||||||
We should have a bb_close() in place of normal close, with a CONFIG_ option
|
We should have a bb_close() in place of normal close, with a CONFIG_ option
|
||||||
to not just check the return value of close() for an error, but fsync().
|
to not just check the return value of close() for an error, but fsync().
|
||||||
Close can't reliably report anything useful because if write() accepted the
|
Close can't reliably report anything useful because if write() accepted the
|
||||||
data then it either went out or it's in cache or a pipe buffer. Either way,
|
data then it either went out to the network or it's in cache or a pipe
|
||||||
there's no guarantee it'll make it to its final destination before close()
|
buffer. Either way, there's no guarantee it'll make it to its final
|
||||||
gets called, so there's no guarantee that any error will be reported.
|
destination before close() gets called, so there's no guarantee that any
|
||||||
|
error will be reported.
|
||||||
|
|
||||||
You need to call fsync() if you care about errors that occur after write(),
|
You need to call fsync() if you care about errors that occur after write(),
|
||||||
but that can have a big performance impact. So make it a config option.
|
but that can have a big performance impact. So make it a config option.
|
||||||
---
|
---
|
||||||
@ -89,8 +108,8 @@ Unify archivers
|
|||||||
"add this directory", "add this symlink" and so on.
|
"add this directory", "add this symlink" and so on.
|
||||||
|
|
||||||
This could clean up tar and zip, and make it cheaper to add cpio and ar
|
This could clean up tar and zip, and make it cheaper to add cpio and ar
|
||||||
write support, and possibly even cheaply add things like mkisofs someday,
|
write support, and possibly even cheaply add things like mkisofs or
|
||||||
if it becomes relevant.
|
mksquashfs someday, if they become relevant.
|
||||||
---
|
---
|
||||||
Text buffer support.
|
Text buffer support.
|
||||||
Several existing applets (sort, vi, less...) read
|
Several existing applets (sort, vi, less...) read
|
||||||
@ -126,6 +145,10 @@ buildroot - Make a "dogfood" option
|
|||||||
One example of an existing system that does this already is Firmware Linux:
|
One example of an existing system that does this already is Firmware Linux:
|
||||||
http://www.landley.net/code/firmware
|
http://www.landley.net/code/firmware
|
||||||
---
|
---
|
||||||
|
initramfs
|
||||||
|
Busybox should have a sample initramfs build script. This depends on
|
||||||
|
involves bbsh, mdev, and switch_root.
|
||||||
|
---
|
||||||
Memory Allocation
|
Memory Allocation
|
||||||
We have a CONFIG_BUFFER mechanism that lets us select whether to do memory
|
We have a CONFIG_BUFFER mechanism that lets us select whether to do memory
|
||||||
allocation on the stack or the heap. Unfortunately, we're not using it much.
|
allocation on the stack or the heap. Unfortunately, we're not using it much.
|
||||||
@ -202,3 +225,11 @@ FEATURE_CLEAN_UP
|
|||||||
render the existing FEATURE_CLEAN_UP code redundant.
|
render the existing FEATURE_CLEAN_UP code redundant.
|
||||||
|
|
||||||
For right now, exit() handles it just fine.
|
For right now, exit() handles it just fine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Minor stuff:
|
||||||
|
watchdog.c could autodetect the timer duration via:
|
||||||
|
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.
|
||||||
|
Loading…
Reference in New Issue
Block a user