-
Notifications
You must be signed in to change notification settings - Fork 1
/
Changelog
1452 lines (1306 loc) · 66.8 KB
/
Changelog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
0.60.5
Stable Release
Bugfixes:
* Fixed a race that could cause init to hang
* Fixed init orphan process reaping
* Fixed init to always attempt to provide a controlling tty.
This should fix most cases where ash would print
"job control disabled" -- the other cases are user error.
* Fixed 'gunzip -c' to not delete the source source file
* Fixed a silly math problem in the time applet
* Fixed 'cp -a' so it will once again copy symlinks properly
* Fixed a long standing problem in tftp with freeing memory
* Fixed Makefile largefile settings
* Fixed a buffer overflow in vi
* Cosmetic cleanups in lsmod, lash, init, swapon/off, and hostname
* Set the close-on-exec flag on files opened by init
* The updated top applet was backported from unstable
* Several ash bugfixes were backported from unstable
* Several warnings in ash, md5sum, and ifconfig
-Erik Andersen, 26 October 2002
0.60.4
Stable Release
New Applets & New Features:
* Added new a 'top' applet (by special request)
* Lots of small uClinux adjustments
Bugfixes:
* This release has _lots_ of bugfixes. See Changelog.full
for the complete list of what was changed.
-Erik Andersen, 18 September 2002
0.60.3
Stable Release
New Applets & New Features:
* Added new a 'time' applet (by special request)
* Added new a 'losetup' applet
* The tftp has been fixed to work
* Default shell is now ash.
* msh shell should work properly on mmu-less systems again
* ls can now do color
Bugfixes:
* Erik Andersen
-- Hacked together a new time applet
-- Fixed dangling comma in init.c (s390 arch only)
-- Fixed more so when it is run on files in the procfs that
claim 0 length, it will not do weird things i.e. more /proc/pci
-- Copyright message cleanups. Fixed sash attributions.
-- Backporting of fixes and general maintenance.
-- Fixed several cases where reboot, halt, and poweroff would fail
to function properly when Linux is booted into an initrd.
-- Fixed a silly compile bug in cpio
-- nslookup now works properly with uClibc, remove old workaround
-- Added conv=noerror support to dd
-- Fixed ash and msh cmdedit to properly account for the current
PATH setting
-- Document netcat options and add -e support
-- Fixed insanely broken insmod endianness handling
-- Update init.c for better syle conformance, properly detach from
terminal when necessary, better code reuse, FIFO inittab file
reading/executing, allow init to be halted and restarted, etc.
-- Allow gunzip to work on multiple archives, add -v option
-- Updated x86 optimizations to save over 10k.
* Edward Betts
-- added -x switch to du.c
* Cliff L. Biffle
-- Added memory usage to the ps listings
* Przemyslaw Czerpak
-- Made telnet 8-bit clean, handle screen size, and is now RFC
compliant. Works nicely now.
* Wolfgang Denk
-- hush now supports shell loops (for, while, until) and control
operators (||, &&)
* Russ Dill
-- Added an 'restart' inittab action, allowing init to re-exec
itself (or call a script which calls pivot_root then exec...)
* Larry Doolittle
-- Made syslogd not give up when errno is EINTR
* Geoffrey Espin
-- support find -newer <file>
* Robert Griebl
-- Reworked modprobe so it now reads and uses modules.dep
* Karl M. Hegbloom
-- Fixed a silly bug where CONTEXT and EGREP_ALIAS were coupled.
* Kevin Hilman
-- Fixed memory corruption from long pathnames in /etc/fstab
* J.W.Janssen
-- color ls support!
* Matt Kraai
-- Fixed get_line_from_file() so that NULL is treated as end of
line, thereby fixing cut, grep, sed, etc. when working on binary
files or anything that might contain a NULL.
-- Fixed wget to do DNS initial DNS lookups, and do that only once
to avoid skipping to a different server when round-robin DNS is
in use (bug found by Mike Coleman <[email protected]>)
-- Several sed fixes
-- Added new losetup applet
* Ben Low
-- allow tftp to work with stdin as well as stdout.
* Frank P. MacLachlan <[email protected]> avoid a potential
NULL pointer problem in mount.
* Glenn McGrath
-- gunzip was incorrectly reporting a failed crc and length
(Discovered by Change, Shu-Hao). The problem was the bitbuffer
needs to be unwound after decompression as it was eating into the
crc/size field.
-- Reworked wc.c to fix severe efficiency problems and make it
smaller. When just counting file chars, simply stat the file
instead of reading the whole thing. (Fixes Debian bug #103302)
-- Updated dmalloc options
* Manuel Novoa III
-- rewrote get_last_path_component() so it would not be so
horrible, and would behave correctly in several important corner
cases.
* Vladimir Oleynik
-- Fixed ash problem where ^C could be blocked
-- Several command line editing updates (cmdedit now supports
CTRL-K and CTRL-L, fixed a segfault, etc)
-- Fixed ash problem where ^C could be blocked
-- Several size optimizations for various applets
* Tim Riker
-- make ash prompt the same as other shells if cmdedit and
fancyprompt are enabled.
* Jeff Studer
-- tftp now generates default values for localfilename and
remotefilename based on provided file names when possible.
* Stefan Soucek and Miles Bader
-- Re-add mmu-less support to msh
* Jim Treadway
-- Fixed a buffer overflow in the local group handling code.
-- Fixed a missing "\" in usage.h
-- Made pidof not add trailing spaces
-- Fixed msh bugs so things like "A = 1; B = `eval $A`; echo $B"
can now work.
* Mike Voytovich
-- insmod big endian ARM support
-Erik Andersen, 27 April 2002
0.60.2
Stable Release
* Please support busybox and help us buy busybox.net. See the
(current) busybox webpage for details.
New Applets & New Features:
* msh was reworked by Vladimir Oleynik's so it can handle things like
for i in `ls *.c` ; do echo $i ; done
unfortunately, this also means that msh is no-longer uClinux safe,
and will require some surgery to make it use vfork() again.
* Charles Steinkuehler <[email protected]> -- reworked hostname
so it behaves as expected (backport from busybox unstable)
Known Problems
none. :)
Bugfixes:
* Erik Andersen
-- Fixed grep -E and egrep so they actually behave as expected
-- init cleanups and (theoretical) uClinux support
-- Fixed large file (>2Gig) support (enable in the Makefile)
-- Always enable test when a shell is enabled (least surprise)
-- Made 'mount -a' use proc to avoid a static noauto list
-- lots of source tree cleanups
* Laurence Anderson
-- Removed some traces of no-longer existant rpmunpack (which
has been obsoleted by the rpm2cpio applet).
-- Fixed unarchive.c to use the correct buffer when calling
dirname, improve an error message, and plug some memory leaks.
-- Fixed rpm2cpio.c mkfs_minix.c fsck_minix.c fbset.c to use
standard types (s/u16/u_int16_t/g s/u32/u_int32_t/g etc)
* ASA <[email protected]> -- fixed ash handling of command line args
when sourcing ('.') commands.
* Ethan Benson <[email protected]>
-- Fix mount's noauto option to not automount as "usbdevfs"
* David Kimdon <[email protected]> -- fixed md5sum binary sums
* Matt Kraai
-- Fix sed s/[/]// handling (noted by Dumas Patrice).
-- Fix dirname(3) improper consts, allow libc version to override.
-- Fixed invoking applets when their names contain a leading dash
and a full pathname.
-- Fix ash exec
-- Fixed basename to be SUSv2 compliant (which specifies that the
extension should stay if it is identical to the basename.
-- Fixed rmdir, since SuS2 says rmdir must provide -p
-- Fixed sed empty line substitutions (noted by Joshua Hudson).
* Steve Merrifield <[email protected]> -- make vi use xmalloc
* Glenn McGrath
-- dpkg cleanups, various bugfixes
* Vladimir Oleynik
-- Add support for `busybox --help APPLET'
-- Fixed route so it properly displays all route entries
-- Fix for ash leading redirections (i.e. '2>/dev/null ls rubbish')
* Andrew Tipton <[email protected]> -- enable vi cursor keys when in
edit mode as vim does.
-Erik Andersen, 20 November 2001
0.60.1
Stable Release
New Applets & New Features:
none. :)
Known Problems (to be fixed in 0.60.2)
* msh can segfault on constructs such as
for i in `ls *.c` ; do echo $i ; done
due to a memory allocation problem. This only seems to cause
problems when the backtick expands to be several k in size.
Bugfixes:
* Matt Kraai
-- Fixed msh to support underscores in variable names.
-- Fixed a sed problem with unsatisfied backrefs (the problem was
noted by Martin Bene).
-- Removed BB_SH define entirely. Now one simply picks the shell
or shells they want as BB_<foo> in Config.h
-- Fixed head to use ferror(3) to check for errors, not errno.
* Shu-Hao Chang <[email protected]>
-- Fixed sed handling of multiple -e commands
* Magick <[email protected]>
-- Fixed an init bug with AskFirst and /dev/null
* Jaspreet Singh <[email protected]>
-- Fixed both a segfault and cosmetic bug in route
* Erik Andersen
-- Made the insmod options BB_FEATURE_NEW_MODULE_INTERFACE and
BB_FEATURE_OLD_MODULE_INTERFACE mutually exclusive
-- xgetcwd.c now includes sys/param.h to ensure PATH_MAX is defined
-- Fixed a potential segfault with lash + BB_FEATURE_CLEAN_UP
-- Removed uint64_t from dos2unix, avoiding C lib compat. problems.
* Glenn McGrath
-- Rewrite of tftp (commands match atftp, accepts -b, can use
non-standard ports, and is smaller).
-- Fixed unarchive exclude list handling
* Manuel Novoa III
-- rewrite of simplify_path so it behaves itself (fixing some
problems with mount and other applets).
-- Fixed ifconfig 'broadcast +' handling and disabled it by default
* Matthias ? <[email protected]>
-- Fixed syslogd to log all messages from a single connection, not
just the first.
-Erik Andersen, 23 August 2001
0.60.0
Note:
For this release I have bumped the version number to 0.60.0. This
reflects the fact that this release is intended to form a new stable
BusyBox release series. If you need to rely on a stable version of
BusyBox, you should plan on using the stable 0.60.x series. If bugs
show up then I will release 0.60.1, then 0.60.2, etc... This is also
intended to deal with the fact that the BusyBox build system will be
getting a major overhaul for the next release and I don't want that to
break products that people are shipping. To avoid that, the new build
system will be released as part of a new BusyBox development series
that will have some not-yet-decided-on odd version number. Once things
stabablize and the new build system is working for everyone, then I
will release that as a new stable release series.
Critical Bugfixes:
* Matt Kraai
-- Fixed wget output file opening (wget failed in 0.52).
-- Fixed a memory leak in syslogd (found by Adam Slattery).
* Vladimir Oleynik, Matt Kraai, Erik Andersen
-- several nasty bugs in ash and msh. msh could not assign
any variables and had debug code still enabled. ash
had several compile errors (depending on selected options)
and variable assignment problems as well.
New Applets:
* David McCullough <[email protected]> -- modprobe
* Vladimir Oleynik -- traceroute
* Erik Andersen -- pidof
New Scripts:
* David Schleef, Erik Andersen, Stuart Hughes -- depmod.pl
This is a replacement for the depmod program from the modutils
package, but is fully cross platform and is designed to run on
your host system (not on the target).
Other Changes:
* Erik Andersen
-- fixed busybox.spec so it should now work on redhat systems
-- fixed dos2unix and unix2dos so they should work once again
-- Adjustments to make busybox more uClinux friendly. Busybox
should now work on uClinux systems without needing and source
code changes (applets that won't work on uClinux systems are
now automagicaly disabled).
-- various things (cleanups, libc compatibility work, etc, etc)
* Jim Gleason <[email protected]>
-- Fixed for sed, where it failed to preserve whether or not the
line was previously altered when running a subst command.
* Matt Kraai
-- Made tar read 20 512byte blocks at a time (like GNU tar)
-- Allow msh.c assignments with the export and readonly commands.
-- Added BB_FEATURE_DEVFS to enable devfs device names.
-- Better devfs support
-- Don't save/restore vi readonly flag if vi is compiled read-only.
-- Reworked rdate option handling (is now smaller).
-- Size reduction in ping
-- Always write dd counts to stderr
-- Allow multiple shells to be enabled
* Aaron Lehmann
-- slimmed down md5sum
-- contributed a nice new (hand written, not lex/yacc) Posix math
support for ash, which is once again a full posix shell.
* Felix von Leitner <[email protected]> -- patches to make busybox
work with dietlibc.
* David McCullough
-- Adjustments to make busybox more uClinux friendly
* Glenn McGrath
-- Fixed gzip so when a filename is '-' it will use stdin/stdout
-- dpkg rewrite. Should now be compatable with the real dpkg,
but needs more testing.
-- Updates to archiving tools (gunzip/gzip/cpio/ar/etc)
-- Rewrote uuencode, will allow base64 encoding to be used by wget
* Vladimir Oleynik
-- Fixed tr to support 'tr a-z A-Z' syntax,
-- Many ash corrections, optimizations, and cleanups.
-- optimizations for traceroute, md5sum, chown, ping
-- cmdedit updates and API change
-- Namespace cleanup (i.e. adding 'static' private function calls)
-- added "stopped jobs" warning to ash on exit
* Adam Slattery
-- Fixed ping compile problem
* Robert J. Osborne <[email protected]>
-- fixed a vi bug with delete and escape sequences on empty files.
-Erik Andersen, 31 July 2001
0.52
Critical Bugfixes:
* Glenn McGrath -- Fixed gunzip, zcat when reading from stdin
* Marc Karasek and Kanoj (kernel serial.c maintainer) -- fixed init
problem on serial consoles with 2.4.3+ kernels.
New Applets:
* Laurence Anderson -- rpm2cpio applet, this obsoletes rpmunpack
which has now been removed from BusyBox
* Laurence Anderson and Glenn McGrath -- cpio applet, currently
only supports unpacking the ascii cpio format.
* Vladimir Oleynik and Erik Andersen -- added ash, the most correct
busybox shell.
* Larry Doolittle -- hush, small shell designed specifically
for busybox. Quite usable but still a work in progress.
* Erik Andersen -- msh, minix shell. A very small but capable shell
that only uses vfork, so it can be used on uClinux systems.
Other Changes:
* Sterling Huxley -- Several bugfixes for the vi applet.
* Glenn McGrath -- Restructure unarchiving code to make more code
common to the ar, cpio, dpkg, dpkg-deb applets.
tar applet has not yet been assimilated...
* Matt Kraai -- Rewrote cp, dirname, mkdir, mv, and rm.
* Paul J.Y. Lahaie <[email protected]> -- Fixed an endian-ness
bug in md5sum (in 0.51, md5sum on big endian machines was broken)
* Mark Whitley -- rewrote cut, major updates to grep and sed.
* Erik Andersen -- bunches of insmod fixes. It should now always
work (no more segfault or missing symbols problems).
* Bernhard Kuhn <[email protected]> and Jinux Kim
added uClinux/m68k insmod support.
* Manuel Novoa III -- rewrote make_human_readable so ls, du, and df
should work as expected. Eliminated use of floats.
* Aaron Lehmann <[email protected]> -- Scrubbed gzip.c
* Alan Modra <[email protected]> -- fixed an hard to spot
bug breaking gunzip checksum checking.
* Gennady Feldman -- Fixed 'syslog -C'
* Gernot Poerner <[email protected]> -- Added mount bind support.
* Adam Heath <[email protected]> -- wget arbitrary header support
* John Beppu -- updated the automagical doc generator
* Zillions of other bugfixes, optimizations, and cleanups.
-Erik Andersen, 7 July 2001
0.51
Critical Bugfixes:
* Erik Andersen -- Fixed a bug that could crash the shell in 0.50
when pressing <Enter> on an empty line.
* Gennady Feldman -- Fixed a bug that could crash the shell in 0.50
when performing an 'export' in the shell.
* Gennady Feldman -- fixed a syslogd bug where syslogd could cause
the init process to block (which can break systems badly).
New Applets:
* Sterling Huxley -- contributed a new vi applet! This is a very
functional vi implementation in Only 22k.
* Erik Andersen -- added env applet
Other changes:
* Erik Andersen -- Split utility.c into libbb, which provides a
much cleaner was for us to include shared functionality.
* Erik Andersen -- Reorganized how and when busybox includes
syscalls, aiding portability and (in this case) making the
busybox work on ia64 systems.
* Erik Andersen -- dpkg.c cleanup to use the updated gunzip interface.
* Erik Andersen -- Cleanups for libc5, glibc, and uClibc.
* Erik Andersen and Matt Kraai -- Cleanups for the human-readable
output from ls, du, and df.
* Laurence Anderson <[email protected]> -- Fixed wget HTTP 1.1
support and added chunked encoding so it is now RFC compliant.
* John Beppu -- The busybox.pod documentation is now automagically
generated from the source code. This makes it _much_ simpler.
Now to update the docs, just update the usage message...
* Dirk Behme <[email protected]> -- Adjusted MIPS insmod
support a bit for Mips RS3.
* Christophe Boyanique -- egrep invoked the "init" applet in 0.50!
* Larry Doolittle -- Added -Wshadow and fixed a number of shadowed
variables
* David Douthitt -- fixed 'find -print'
* Gennady Feldman -- fixes for the syslogd circular buffer code
* Jeff Garzik -- a number of structural cleanups, fixes for -Wshadow
bugs, and similar problems.
* Matt Kraai -- Added a new 'shutdown' action to busybox init. Now
you can specify arbitrary behavior for 'ctrlaltdel' so now
pressing CTL-ALT-DEL can do something else (or nothing).
* Andreas Neuhaus <[email protected]> -- fix for merging
kernel command line environment variables into child environment
for init.c
* Glenn McGrath -- Fixed problems with dpkg and dpkg-deb applets
* Glenn McGrath -- Don't try to automount devfs
* Vladimir Oleynik -- optimizations for more.c
* Vladimir Oleynik -- Added locale support to the shell, and fixed
locale support in several other places
* Vladimir Oleynik -- moved struct applet from busybox.c to applets.c
* Vladimir Oleynik -- A size optimization for rdate
* Vladimir Oleynik -- Fixed printf applets's locale handling
* Vladimir Oleynik -- More cmdedit updates
* Vladimir Oleynik -- Fixed `du' applet so it continues running
after permission errors.
* Vladimir Oleynik -- Reduced stack usage in recursive_action()
* Pierre Peiffer <[email protected]> -- made
find_pid_by_name() cope with swapped out processes.
* Jari Ruusu <[email protected]> -- updates so that setting
D_FILE_OFFSET_BITS=64 now works as expected.
* Anthony Towns <[email protected]> -- fixed a bug with
sed address range handling
* Dmitry Zakharov <[email protected]> -- a number of updates
to wget: support for ftp downloads, basic HTTP basic auth, handling
of http redirects, when attempting to continue an aborted download
but server doesn't support restarts then reopen output file in
write mode, bugfix: when content-length not given, wget didn't
download anything, if -c is not specified, it no longer default to
restarting an aborted download.
-Erik Andersen, 10 April 2001
0.50
* Erik Andersen -- added ifconfig interface status reporting
* Erik Andersen -- Debian packaging updates
* Erik Andersen -- lash environment variable expansion rewritten,
with lots of help/fixes/testing from Larry Doolittle.
* Erik Andersen -- Fix use of busybox with dmalloc debugging lib
* Erik Andersen -- fixed ls behavior for broken or very narrow terminals
* Erik Andersen -- stub umount2 and pivot_root if they are not available
* Erik Andersen -- libc5 fixes
* Erik Andersen -- make init work with devfsd
* Erik Andersen -- fixed df for nfs and dos where blksize = 512
* Erik Andersen -- Make sure libpwd.a is linked _last_ so it
overrides the system pwd/grp
* Christophe Boyanique -- added an optional egrep alias for grep.
* Christophe Boyanique -- added optional 'rm -i' support.
* Kenneth Chalmers and Erik Andersen -- fixed ln so it
behaves when given no arguments (prints usage) and when
given just one arg (tries to make a link in the cwd).
* Magnus Damm -- added a tftp applet
* Magnus Damm -- powerpc support for busybox insmod.
* David Douthitt -- fixed a build error in df.c when
BB_FEATURE_HUMAN_READABLE was disabled
* John Beppu -- wrote autodocifier.pl, which will be used to auto-
generate the documentation from the source code, making life
much simpler for all.
* Magnus Damm <[email protected]> -- Fixed an 'inner scope var
masking outer scope var with same name' bug that prevented
the loopback device from being unmounted if mount() failed.
* Larry Doolittle -- rewrote ifconfig to make it smaller
* Larry Doolittle and Erik Andersen -- cleanups to pristine source
* Larry Doolittle -- many bugfixes resulting from regression testing
* Gennady Feldman -- split syslogd.c into syslogd and klogd
* Gennady Feldman -- make syslogd single threaded -- no more forking
* Jeff Garzik -- getopt-ified rmmod.
* Jeff Garzik -- glibc 2.2 warning cleanups
* Jeff Garzik -- namespace pollution cleanup (staticified variables).
* Erik Gustavsson <[email protected]> -- allow env variables set on the
kernel command line to be inherited into init and its children.
* Erik Habbinga -- fixed an uninitialized substitution delimiter in sed.
* Chris Jaeger -- Makefile cleanup to make option setting less error-prone
* Chris Jaeger <[email protected]> -- Carefully check NFS_MOUNT_VERSION
depending on what kernel is being used.
* Quinn Jensen <[email protected]> -- MIPS support for busybox insmod.
* Evin Robertson -- new pivot_root applet
* Kent Robotti -- usage message cleanups
* Kent Robotti -- reworked dos2unix/unix2dos
* Evin Robertson and Manuel Novoa III -- reworked how usage messages
are stored to save several k of space.
* Matt Kraai -- Keep trying if an NFS mount fails
* Matt Kraai -- fixed insmod so it won't try to insmod directories.
* Matt Kraai -- added nc listening support
* Matt Kraai and David Douthitt -- reworked fine to support -type,
-perm, -mtime, and other improvements.
* Matt Kraai -- added find_applet_by_name and saved some memory thereby
* Matt Kraai -- added chomp to reduce redundant code elsewhere
* Matt Kraai -- Removed trailing \n chars from error_msg{,_and_die} messages.
* John Lombardo -- fixed OOM in insmod.
* Glenn McGrath -- bypass /proc in mount, now uses sysfs.
* Glenn McGrath -- several updates to dpkg and dpkg-deb.
* Manuel Novoa III -- several size optimizations: parse_mode,
process_escape_sequence, format, and get_kernel_revision.
* Manuel Novoa III -- rewrote ifconfig again to make it smaller still
* Manuel Novoa III -- added ifconfig -a, updated interface reporting
* Vladimir N. Oleynik -- Fixed a bug where init set PATH incorrectly
* Vladimir N. Oleynik -- cleanups to route, cmdedit, mkdir,
mkfs_minix, mkswap, chmod_chown_chgrp and utility.c
* Vladimir N. Oleynik -- many fixes to cmdedit. so tab completion
is now working and general editing is much improved, and to
improve complex prompt handling.
* Vladimir N. Oleynik -- added route status reporting.
* Vladimir N. Oleynik -- fixed wget to use xfopen
* Vladimir N. Oleynik -- new stty applet
* Vladimir N. Oleynik -- fixed find, it used to stop on perm errors.
* Vladimir N. Oleynik -- locale forced to posix for scripts
* Vladimir N. Oleynik -- saved 128 bytes by moving error checking
for several my_* functions into utility.c
* Bjorn Wesen -- new ifconfig and route applet (taken from
work done by Axis Communications).
* Mark Whitley -- Added a 'How to contribute to Busybox' doc
and updated the style guide.
* Mark Whitley -- implemented grep -A, -B, and -C
* Mark Whitley -- overhauled the test suite.
-Erik Andersen, 15 March 2001
0.49
* Matt Kraai -- new sort.c
* Matt Kraai -- new tail.c
* Glenn McGrath -- new 'dpkg-deb' applet
* Glenn McGrath -- new ar code
* spoon -- new watchdog applet
* Vladimir N. Oleynik <[email protected]> -- fixed cmdedit.c so now
scrolling and tab completion in lash work properly. Also several
byte saving optimizations.
* Erik Andersen -- disabled many less commonly used applets by default
* Mark Whitley -- more thrashing about to get clean perror_msg usage
* Matt Kraai -- new command line munging
* Larry Doolittle -- keep some locales from messing up busybox.sh
* Matt Kraai -- cleaned up dd and tail with new parse_number routine
* Mark Whitley -- remove debugging messages from deallocvt
* Matt Kraai and Mark Whitley -- new document "How to Add a New Applet
to BusyBox"
* David Douthitt -- fixed "grep -qv" bug
* Larry Doolittle -- fixed insmod bug with old kernels
* Matt Kraai -- logger remixed to use getopt, selection of stdin made
util-linux compatible
* Erik Andersen -- many more internal symbols classified static to
avoid namespace pollution
* Matt Kraai -- nc listening support
* Erik Andersen -- made sed understand arbitrary regexp delimiters
* Matt Kraai et al. -- more tar improvements and bug fixes, now
handles regexp file exclusion
* Larry Doolittle -- new script (multibuild.pl) to automate build rule
checking
* Matt Kraai -- update/cleanup of the docs on how to use init
* Erik Andersen -- renamed all sh.c symbols per the style guide,
better if-then-else-fi handling
* Erik Andersen -- cleaner division of labor between cmdedit.c and sh.c
* Larry Doolittle -- shell data structure cleanup, fixed buglets
in read, exec, and piped builtins
* Erik Andersen -- md5sum was broken in 0.48. Now fixed (and doesn't
use getline, shrinking static compiles (since nothing else used it).
* ?? -- squashed memory leak in shell prompt handling
* Mark Whitley -- Updates to style guide
* Mark Whitley -- Big cleanup in utility.c: style guide compliance,
de-macro-ifying some variables and functions
* Erik Andersen -- ls now honors BB_FEATURE_AUTOWIDTH so it can find
the width and height of the console.
* Erik Andersen -- insmod now ignores -L and accepts the -o option.
* Erik Andersen -- updates so you can now select from the Makefile
whether or not to use the system's passwd and group functions.
Since most systems use GNU libc, this can save you from having to
install the /etc/nsswitch.conf configuration file and the required
libnss_* libraries. Adds 1.5k. You can now, also, disable this,
causing busybox to use the system's pwd.h and grp.h functions.
-Erik Andersen, 27 January 2001
0.48
* Glenn McGrath -- tar now supports uncompressing tar files,
define BB_FEATURE_TAR_GZIP to use the -z option.
* Matt Kraai -- fix all usage of TRUE and FALSE so all apps now
return EXIT_SUCCESS or EXIT_FAILURE to the system.
Now TRUE and FALSE are set to the C standard where TRUE=1.
* me -- Fixed uname problem causing the kernel version to be
mis-detected (causing problems with poweroff, init,
and other things).
* Alcove, Julien Gaulmin <[email protected]> and
Nicolas Ferre <[email protected]> -- insmod support on ARM
and StrongArm, and suport for lsmod on older 2.0.x kernels.
* Kent Robotti -- Renamed unrpm to original rpmunpack, so you can use
an included shell script called unrpm as a front end to it. There's
also a shell script called undeb included for debian packages.
* Matt Kraai -- fix an infinite loop with ls -aR
* Larry Doolittle -- Shaved off about 100 bytes and 200 bytes heap
from date.c. Also document the "-d" option in the usage message.
* Gennady Feldman -- fixed dd to use blocksize when reading/writing,
(it was reading the whole thing and then writing it out). Also
updated usage information (was missing conv=notrunc) and added
conv=sync feature.
* Larry Doolittle (in collaboration with Matt Kraai) -- allow for a
pristine source directory -- where all the .o files and such are
not placed into the source tree. Thanks Larry!
* Larry Doolittle -- use the applet definitions in applets.h
to autogenerate the applet function and usage prototypes.
* Sebastien Huet, Arne Bernin, and Kent Robotti -- Add in tar -X and
fixed a bug breaking tar --exclude.
* Jonas Holmberg -- echo option handling made GNU-echo compatible
* Aleksey Demidov <[email protected]> -- date option handling made
GNU-date compatible
* me -- Progress meter (optional) in wget
* Doolittle/me -- programs invoked by full path name take
precedence over applets unless BB_FEATURE_SH_BUILTINS_ALWAYS_WIN
* Gaute B Strokkenes <[email protected]> -- applets found using a
binary search instead of linear search. Much faster!
* new applets: cmp readlink
* Mark Whitley -- Removed advertising clause of Berkeley license
according to decision by the Regents of the University of
California; included reference
* tail's confusing special treatment of single digit options removed;
people should use -n instead
* Larry Doolittle -- \r handled now in echo and tr
* Matt Kraai -- rewrite of uniq
* Mark Whitley -- remix of xargs
* Jim Gleason <[email protected]> -- fixed tar so it no longer breaks
hard links.
* Matt Kraai -- logger now logs all arguments, not just the first
* Gennady Feldman -- syslogd no longer logs to localhost if compiled
for remote logging...
* Richard June <[email protected]> -- support for 'gzip -d'
* various artists -- Other good stuff that I forgot to document.
-Erik Andersen, 13 December 2000
0.47
* A bug in syslogd was fixed that allowed it to potentially fork-bomb
your system. Anyone using 0.46 syslogd should upgrade.
* Renamed busybox.defs.h to the more sensible "Config.h"
* Improved portability between different libcs.
* Many apps ported to use getopt()
* Common handling of '--help'
* All usage messages centralized.
* Added a bunch of new commands:
* 'rdate' contributed by Sterling Huxley <[email protected]>
* 'wget' contributed by Chip Rosenthal <[email protected]>,
<[email protected]> and Covad Communications
* 'getopt' from "Alfred M. Szmidt" <[email protected]>
* dos2unix, unix2dos, reset, and unrpm.c (and lots of help
debugging) thanks to Kent Robotti <[email protected]>.
* 'renice' command, thanks to Dave Cinege <[email protected]>
* 'xargs' (written by me)
* 'expr' contributed by Edward Betts <[email protected]>, based
on GNY expr
* lsmod now uses the query_module syscall, rather then /proc (me)
* syslogd can now log messages to remote hosts -- patch thanks
to Gyepi Sam <[email protected]>
* chroot can now call the builtin shell - Pavel Roskin <[email protected]>
* 'make install' now creates relative symlinks, and added a new
'make install-hardlinks' target to (tada) install hardlinks.
* Rewrite of 'tail' to make it simpler, smaller, and more robust.
It now weighs only 2.25k (3k when full featured). The code is
cleaner too, thanks to Allen Soard <[email protected]>
* Add optional ls file sorting, thanks to a patch from
Sterling Huxley <[email protected]>
* Fixed chmod option parsing so things like 'chmod -r /tmp/file'
now work (previously it thought -r was an option). Doh!
* Fixed tar handling of stdin and stdout
* Renamed "internal.h" to the more sensible "busybox.h"
* Preliminary support for GNU HURD.
* Updated my devps and devmtab kernel patches for the latest 2.2.x
kernel, for those wanting to go proc-less.
* Tons of other bugfixes.
-Erik Andersen, 25 September 2000
0.46
* Better portability. Now should compile cleanly with libc5,
GNU libc 2.0 and 2.1, and various Linux kernels including
2.0.x, 2.2.x, and to 2.4.0-test*. (patch for 2.4.x kernels
to make /proc/mounts behave included in the kernel-patches dir).
* Fixed a _horrible_ bug where 'tar -tvf' could unlink
local files that matched tarball contents!!! Fix thanks
to Marius Groeger <[email protected]>
* Fixed a nasty bug in tar when could mess up saved symlinks.
* Fixed tar creation support when reading from stdin ('tar -cf - . ')
thanks to Daniel Quinlan <[email protected]>
* Updates to handle Linux 2.4.0 kernels (kludged around the
"none" entries in /proc/mounts, added a hack to make sysinfo
work with both old and new kernels).
* Fixed insmod module option parsing for options lacking an '='.
Fix thanks to Marc Nijdam <[email protected]>
* Fixed segfault with 'cut -f 1 -d:' and added 'cut -s' suport.
Fix thanks to Arne Bernin <[email protected]>
* Several fixes from Marius Groeger <[email protected]>
- Added support for "sh -c command args..."
- Fixed globbing, i.e. 'echo * *' and 'echo "******"' now work.
- Added shell environment variable substitution
- Added the "read" shell builtin.
* Fixed cursor editing in cmdedit.c. The following keyboard sequence
used to create an infinite loop: ls, cursor up, left, down.
* Added support for being a login shell, so things like
'-su' or '-sh' (stuff where argv[0][0]=='-') will now always
invoke the shell. Now you can use BusyBox as a login shell.
* ls.c now ignores '-g', since some ftp clients like that sort
of thing. Patch thanks to David Vrabel <[email protected]>
* Fix to init.c from Stuart Menefy <[email protected]> so that
it always sets the controlling terminal before running any programs
* Several fixes from Matt Kraai <[email protected]>
- Fixed tr so it recognizes standard escape sequences.
Merged common escape seq. code from tr and echo into utility.c.
- Major work in updating/cleaning up the docs, and getting the
new SGML based docs into shape.
- cleanup of ar.c
- BusyBox should now poweroff when asked to do so.
- Fixed 'ln -n' and 'ln -s' so they both work properly.
* Reorganized signal names in kill.c for better architecture support
-- patch thanks to simon wood <[email protected]>
* In 0.43, backspace and delete worked properly, but with 0.45,
it just echoed a ^? for backspace, and ^H for control-h. This
was due to a broken macro in init.c, that is now fixed.
* Removed sfdisk from BusyBox. It was buggy, fat, and we really
couldn't maintain it very well, so including it was not really
very appropriate. Those wanting an fdisk are invited to
grab a copy from util-linux.
* Added 'dumpkmap' to allow people to dump a binary keymap, which can
then be loaded in by 'loadkmap' -- submitted by
Arne Bernin <[email protected]>
* Fixed NFS so it supports 2.4.x kernels and NFSv3.
* Brand, new versions of grep and sed which use libc regex routines,
thanks to Mark Whitley <[email protected]>. The hand-tooled
"regexp.[ch]" files have been removed. Much help on these from
Matt Kraai as well.
-Erik Andersen, 11 July 2000
0.45
* Now compiles vs libc5 (which can save lots of space for
embedded systems).
* Added BB_FEATURE_TRIVIAL_HELP which compiles out most all of the
help messages (i.e --help). Saves 17k over a full compile.
* Added cut and tr from minix, since due to the license change,
we can now use minix code. Minix tr saves 4k.
* insmod now works. It costs 29k, but imagine an initrd with a
staticly linked busybox containing only insmod and sh, a few /dev
entries, and a kernel module or two... It doesn't get smaller
then this folks (I pity the fool that writes insmod in asm ;-).
Many kudos go to Ron Alder <[email protected]> for finishing this off!
* Added a mini ar archive utility, especially written for BusyBox by
Glenn McGrath <[email protected]>
* Added mktemp, contributed by Daniel Jacobowitz <[email protected]>
* Added setkeycodes, for those that have weird keyboard buttons.
* Added md5sum, uuencode and uudecode -- thanks to Alfred M. Szmidt
<[email protected]> for contributing these.
* Added 'grep -v' option (inverted search) and updated
docs accordingly. -beppu
* Wrote which
* Replaced the telnet implementation with one written by
Tomi Ollila <[email protected]> It works great and costs 3k.
* BusyBox sh (lash) now supports being used as a standalone shell. When
BB_FEATURE_SH_STANDALONE_SHELL is defined, all the busybox commands may
be invoked as shell internals. Best used when compiling staticly
(i.e. DOSTATIC=true)
* BusyBox sh (lash) internals now behave as expected wrt pipes
and redirects.
* Fixed ping warnings -- fix from Sascha Ziemann <[email protected]>
* Fixed update segfault
* Fixed mknod -- minor number was always 0
* Fixed tar option parsing, so both "tar xvf foo.tar" and
"tar -xvf foo.tar" now work (i.e. no "-" before options)
(this was very broken in 0.43).
* Several contributions from Randolph Chung <[email protected]>.
* cp/mv now accepts the -f flag
* tail can now accept -<num> commands (e.g. -10) for better
compatibility with the standard tail command
* added a simple id implementation; doesn't support sup. groups yet
* logname used getlogin(3) which uses utmp. Now it doesn't.
* whoami used getpwuid(3) which uses libc NSS. Now it behaves.
* Add support for "noatime" and "nodiratime" mount flags to mount.
* Changed 'umount -f' to mean force, and actually use umount2.
* Changed 'umount -l' to mean "Do not free loop device".
* Fixed basename to support stripping of suffixes. Patch thanks
to xiong jianxin <[email protected]>
* cp -fa now works as expected for symlinks (it didn't before)
* zcat now works (wasn't working since option parsing was broken)
* Renamed "mnc" to the more correct "nc" (for netcat).
* Makefile intelligence updates
* Changed the way init parses /etc/inittab entries to avoid problems
with commands that contain colons in them. Fix thanks to
Pavel Roskin <[email protected]>
* Fixed a warning in utility.c due to char being unsigned on Linux/PPC,
Fix thanks to Pavel Roskin <[email protected]>
* Made "killall" complain (not error and exit) about processes that it
cannot find by name -- Pavel Roskin <[email protected]>
* Fixed more and ps to have sensible terminal width defaults, thanks
to Pavel Roskin.
* Fixed all fatalError() calls lacking a "\n", thanks to Pavel Roskin.
* Fixed a segfault in yes when no args were given -- Pavel Roskin.
* Simplified freeramdisk and added argument checking -- Pavel Roskin.
* Fixed segfault caused by "touch -c"
* Fixed segfault caused by "rm -f"
* Fixed segfault caused by "ln -s -s" and similar abuses. Further fixes
and "--" support from Pavel Roskin.
* Fixed segfault caused by "cp -a -a" and similar abuses.
* Implemented "rm -- <foo>". Implementation fixed by Pavel Roskin.
* "which" rewritten to use stat(). Fixes to improve its compatability
with traditional implementations -- Pavel Roskin.
* "mount" now reports errors from nfsmount() and assumes NFS mount
if ':' is present in the device name - Pavel Roskin
* Fixed exit status for killall - Pavel Roskin
* Fixed 'swapon -a' and 'swapoff -a', which were broken.
* Fixed 'mount -a' so it works as expected.
* Implemented 'ls -R' (enabled by enabling BB_FEATURE_LS_RECURSIVE)
* Implemented "ping -s", fixed error messages and argument parsing -
Pavel Roskin
* Syslogd will not go to background if "-n" is given. Better help
and argument checking -- Pavel Roskin
* Fixed a small bug that could cause tar to emit warning messages
and not extract the first file in a directory in some cases
of nested directories. Thanks to Kevin Traas <[email protected]>
for helping track this one down.
* More doc updates
* Fixed grep "Line too long" problem -- John Beppu
* Fixed 'grep -q -i B some_file' so it works
* math takes input from stdin if no args are given. -- John Beppu
* math was renamed to dc. Although it deviates from dc's behaviour,
this will probably be remedied in the future. -- John Beppu
-Erik Andersen, June 21, 2000
0.44
Previously, an erronous announcement of BusyBox 0.44 was made, so to
avoid possible confusion, we are skipping straight to 0.45, and calling
it good.
-Erik Andersen
0.43
* Major update to the provided documentation.
* Busybox now includes a shell! It currently costs 7.5 k (plus an
additional 2.5 k if you compile in command line editing). Handles
job control, has the usual set of builtins, and does everything
except for handling programming statements (if, while, etc...)
* Busybox can now work perfectly when /proc is disabled, thereby
saving a bunch of memory (kernel /proc support is not thin). This
is done by making use of some nice kernel patches I wrote up to
support the features that busybox requires and that /proc usually
provides. To enable this, turn on BB_FEATURE_USE_DEVPS_PATCH and
patch your kernel with the devps patch in the kernel-patches/
directory.
* Wrote basename, dirname, killall, and uptime.
* tar has been completely rewritten by me. Both tar creation and
extraction are now well behaved. Costs 7.6k with all optional
tar features enabled, and 5k for just tar extraction support.
* Added freeramdisk, which will free up all memory associated
with a ram disk. Contributed by Emanuele Caratti <[email protected]>
and then adjusted a bit by me.
* Added tr from John Lombardo <[email protected]>
* Added echo and test (from me).
* Added usleep contributed by Nicolas Pitre <[email protected]>
* BusyBox's bss size has been majorly reduced (was 384668, is now 28740).
* Several fixes from Pavel Roskin <[email protected]>:
- When `tail' fails to open a file it now exits.
- When `syslogd' is given the `-n' option it should still use
fork() for running klogd.
* nslookup types are now changed to u_int32_t (instead of uint32_t)
changed per a patch from Pascal Bellard <[email protected]>
* Fixed "du" so it gives the same answers as GNU "du" (busybox du used
to count hard-linked files more then once). Many thanks to
Friedrich Vedder <[email protected]> for the fix.
* Removed /proc dependancies for init and free (while maintaining
exactly the same functionality). /proc takes up 90k of kernel
space, so it is nice to avoid using it at all costs.
* init no longer tries to mount /proc (unless there is less the 1 meg
free). Use of /proc (or not) is policy that should be set up in
/etc/fstab (or in hardcoded scripts), not in init.
* Fixed rebooting when init runs as an initrd.
* Fixes and updates from Karl M. Hegbloom <[email protected]>
- update.c rewritten to look more like update-2.11
- moveed the inode hash out of du.c and into utility.c to make
it a common resource that can be used by other apps.
- cp_mv.c now checks inodes to see if a source and dest are
the same, and prints an error (instead of endlessly looping).
- mv now attempts to do a rename, and will fall back to doing
a copy only if the rename fails.
- Syslogd now supports multiple concurrent connections
* Several fixes from Pavel Roskin <[email protected]>:
- Fixes to sort. Removed "-g", fixed and added "-r"
- Fixes to the makefile for handling "strip"
* An initial telnet implementation was added by
Randolph Chung <[email protected]>.
* Fixed a bug where "sed 's/foo/bar/g'" (i.e. a script w/o a "-e")
* ps now supports BB_FEATURE_AUTOWIDTH, and can adjust its width
to match the terminal (defaults to width=79 when this is off).
* ps now accepts (and ignores) all options except for "--help" (which
as would be expected displays help).
* Fixed mount'ing loop devices when the filesystem type was not
specified. It used to revert to non-loop after the first try.
* all mallocs now use xmalloc (and so are OOM error safe), and
the common error handling saves a few bytes. Thanks to
Bob Tinsley <[email protected]> for the patch.
* Fix "+" parsing bug in date, from "Merle F. McClelland" <[email protected]>.
* Fix symlink following bug in chmod -R and friends.
* Now allows SYSV style 'chown foo:bar' in addition to 'chown foo.bar'
* Fixed a bug in the busybox globbing routine such that 'find /dir -name [i]'
no longer segfaults.
-Erik Andersen
0.42
* Fairly massive restructuring of umount.c to deal with remounting
busy devices read-only. Adds a -r option to control that; it is
optionally compiled in with BB_FEATURE_REMOUNT
* Added a bunch of functions to mtab.c to interact with the
{get,set,end}mntent interface; as it turns out, those functions do
not appear to be re-entrant, and that causes a lot of problems with
the way umount was originally written.
* Makes init send TERM and KILL (instead of HUP and KILL) on reboot
to be more consistent with sysvinit
* Changes to init.c to use the new -r option to umount. Also increased
the sleep time between the time the TERM and KILL signals are sent
- Randolph Chung
* cp.c, mv.c: removed, replaced by cp_mv.c which has been
extensively rewritten from the original cp.c.
* Fixed cp and mv so if the source and destination are a the
same directory it will print an error and continue.
* Also added a warning message to the `mv' usage string saying that
this is not GNU mv, and it will break hard links. cp also breaks
hard links.
* ln.c: implemented `-n' switch, no-deref symlinks.
* include<sys/param.h>: and use PATH_MAX everywhere. busybox: File
* name buffer overrun guards to prevent future crashes.
- Always check exit status.