|
About
Documentation
Get BusyBox
Development
Links
Developer Pages
|
-
The Software Freedom Conservancy acts as the GPL enforcement agent for
various BusyBox copyright holders, assisted by a legal team at the
Software Freedom Law Center. If you wish to report a GPL violation on
BusyBox, please write to<EMAIL_ADDRESS>-
I want to thank the following companies which are providing support for the BusyBox project:
- AOE media, a
TYPO3 development agency contributes financially.
- Analog Devices, Inc. provided
a Blackfin development board free of charge.
Blackfin
is a NOMMU processor, and its availability for testing is invaluable.
If you are an embedded device developer,
please note that Analog Devices has entire Linux distribution available
for download for this board. Visit
http://blackfin.uclinux.org/
for more information.
- 22 November 2010 -- BusyBox 1.18.0 (unstable)
BusyBox 1.18.0.
(git,
patches,
how to add a patch)
Sizes of busybox-1.17.4 and busybox-1.18.0 (with equivalent config, static uclibc build):
text data bss dec hex filename
831950 453 7224 839627 ccfcb busybox-1.17.4/busybox
832282 450 7212 839944 cd108 busybox-1.18.0/busybox
Changes since previous release:
Alexander Shishkin:
pmap: new applet. +1k
add-shell, remove-shell: new applets
*: introduce and use xmkstemp. -65 bytes
fix out-of-tree build's recursion
ash: fix $! value when traps are set
ulimit: set both hard and soft limits by default
stat: remove superfluous setXXent() calls, plug memory leak
tail: free tailbuf upon cleaning up
smemcap: close /proc handle upon cleaning up
login: free fromhost upon cleaning up
mount: pass NULL, not "", as "data" to mount syscall if we have no opts
Baruch Siach:
nandwrite: new applet
nanddump: new applet
Bernhard Reutner-Fischer:
find_stray_empty_lines: make it work
Bradley M. Kuhn:
wget: implement -T SEC; rework progress meter to not use signals (it was unsafe)
Carmelo AMOROSO:
insmod: do not add a pair of "" around the arguments of the module
Christian Hornung:
ip: fix command line option parsing of "ip route get ..."
Cristian Ionescu-Idbohrn:
remove redundant ENABLE_DESKTOP in procps/ps.c
Dan Fandrich:
improve portability of tests
rename a struct member from "interrupt"
testsuite: show the number of failures after a test run
fix some test cases
tar: add a test for extraction of read-only directory
avoid side effects in putc(), which may be implemented as a macro
fix a couple of failing tar tests
fix build failure for pmap
mark some more applets NOEXEC/NOFORK
Daniel Dickinson:
syslogd: close/re-resolve/reopen remote sockets on some sendto() errors
Denys Vlasenko:
build system: make 3.82 compat fix. Closes bug 2323
base64: new applet
platform.h: regularize endian detection
md5 and shaN: big shrink
libbb/process_escape_sequence.c: fix recently broken handling of \\
libbb: add xfstat function
libbb: factor out common code from mpstat/iostat
libbb: fix fallout from last patch to obscure() (my mistake). +143 bytes
libbb: introduce and use common crc32 routine
libbb: introduce and use strcpy_and_process_escape_sequences
libbb: merge mail and uudecode's base64 decoders
libbb: move read_base64 to libbb/uuencode.c
lineedit: partially rewrite and clean up tab completion code
lineedit: do not hang on error, but return error indicator
lineedit: limit ASK_TERMINAL to the case when we can't find out the width
*: deinline SWAP_xE64 on 32-bit CPUs. Wins !90 bytes both on 32 and 64 bits
*: pass md5/shaN context pointer as 1st arg, not last
*: use SWAP_BE64 instead of open-coding it
shell/math.c: improved in various ways
shell: remove lash and bbsh
ash: add a testcase for bug 2281 (currently fails)
ash: add another ${v/a/b} test we currently fail
ash: add missing casts to match CTLfoo
ash: fix another bit of var_bash4 bug
ash: fix another bug detected by var_bash4.tests
ash: fix dequoting error detected by var_bash4 test
ash: fix signal and "set -e" interaction
hush: add support for "set -o pipefail"
hush: add support for ${var/pattern/repl}, conditional on bash compat
hush: add support for set -x
hush: implement brace expansion
hush: make set -x support optional
hush: optional support for history saving
hush: fix EXIT trap display inside exit trap handler
hush: fix another corner case with backslashes in heredocs
hush: fix backslash and terminator handling in <<[-]["]heredoc["]
hush: fix globbing+backslashes in unquoted $var expansion
hush: fix handling of \" in quoted/unquoted `cmd`
hush: fix handling of backslashes in variable assignment
hush: fix improper handling of newline and hash chars in a few corner cases
hush: fix multiple dependent variable expansion cases
hush: fix set -- q w e; (IFS='' echo "$*"; IFS=''; echo "$*"); echo "$*"
hush: fix var_bash3.tests and var_bash5.tests failures
hush: fix "cmd | var=`cmd` | cmd" handling
awk: 00.123 is not a octal constant; neither is 009.123 - fixed
awk: fix SEGV on closing non-opened file
bbconfig: add COMPRESS_BBCONFIG option
cmp: with -s, do not report open errors
crond: check mtime on crontab dir every minute, and reread if changed
dc: make it use long longs for integer ops
decompress_bunzip2: handle concatenated .bz2 files; speedup
depmod: generate "new-style" modules.dep with relative paths
diff: make diff -r much less eager to recurse into directories
dmesg: more correct skipping of <N> perfix
dnsd: fix 64-bit bug 2539
dos2unix: fix SEGV when run w/o parameters
find: add rudimentary support for -exec {} +
free: add -b/k/m/g options; remove 4 TB limitation. +100 bytes
free: more compatible output. +16 bytes. Closes bug 2383
grep: cap insanely big -B NUM values to MAX_INT / 8. Closes bug 2653
grep: fix -o match with empty string (suggested by Colin Watson (cjwatson@ubuntu.com))
ifupdown: %client%, not %clientid%
ifupdown: add manual method for IPv6. Closes bug 2497
init: do not clear CRTSCTS (fix from Debian bug 528560)
init: do not sleep forever on usage errors
init: if PID!=1, show clearer error message
ip: fix "ip r" breakage
klogd: do not log partial lines
ls: fix -lg to show group (was showing user)
lzop: fix misordered "v=NULL; free(v)"
man: add compatibility with man-db
mdev: fix non-working device deletion, add a test for that
mkswap: clear 1st kilobyte. Closes bug 1831
mktemp: fix "mktemp /path/to/tempfile.XXXXXX"
mktemp: fix for dir/file.XXXXXX param (by Rob). +9 bytes
modprobe-simple: do not error out on "rmmod module" if module is unloaded ok
modutils: explain why we no longer quote params
mv: implement -n option
nandwrite: complain on malformed -s NUM
nc: fix SEGV on -v when NC_EXTRA is off
netstat: fix IPv6 problem (garbage in scope_id)
netstat: was using buffers one byte short for scanf (no place for NUL) - fixed
ntpd: allow peer-less (standalone stratum 1 server) operation
ntpd: with -q, exit after 60 seconds even if time is not synced
patch: add -N and a test for it (fails for now)
patch: busyboxify by migrating from toybox to busybox helpers
patch: fix -N regression
patch: support "patch [FILE [PATCH]]" format
sed: fix sed -i: unlike without -i, it does not forget ranges
sed: make N command behave as in GNU sed
seq: exit on write errors
sleep: fix fractional arguments in non-POSIX locale
sleep: make it non-NOFORK. Fixes ^C in standalone shell
smemcap: use correct tar magic
sort: -o FILE should create/truncate FILE
split: handle "-" file name correctly
telnet: convert CR NUL -> CR on input. Closes bug 2569
telnet: do not check for 0 return from poll (it's impossible)
top: add tie breaking for topmem mode
udhcpc: emit maxsize option in all non-NAK type packets
udhcpc: periodically reread our ifindex and mac
udhcpc: reduce stack usage by de-inlining routines with on-stack pkt buf
udhcpc: remove -c CLIENTID, it is hard to use, -x 61:hexstring does the same better
udhcpc: remove now-unneeded definitions of vendor and client-id opts
udhcpd: reduce stack usage by ~700 bytes. +28 bytes code size
umount: do not (ab)use PATH_MAX as mntent buffer size
unicode: update unicode_width on !unicode branch too. Closes bug 2593
vi: fix "ask terminal" code
wc: add support for -m
Eric Lammerts:
stat: fix mtime/ctime/atime
Gilles Espinasse:
patch: implement -E option
Harald Becker:
deluser: make it simpler, fix inability to delete user from group
Holger Blasum:
update docs/new-applet-HOWTO.txt
Javier Viguera:
find_stray_empty_lines: fix tail "invalid context" error
Jeremie Koenig:
readlink: use xmalloc_realpath()
mark Linux-specific configuration options
init,loginutils: termios portability fixes
init,halt: portability improvements
init: make the initial $TERM value configurable
libbb.h: add device names for Hurd and FreeBSD
mkdir: fix -p on FreeBSD
libbb: conditionalize AF_* usage in error reporting
tcpsvd,udpsvd: conditionalize usage of SO_ORIGINAL_DST
less: remove misguided dependency on PLATFORM_LINUX
bootchartd: mounting tmpfs is Linux-specific
vlock: disable linux console calls on other systems
cttyhack: serial console detection is Linux-specific
klogd: make it work on non-linux systems
stty: sort out preprocessor conditionals
Kevin Cernekee:
docs: change CVS references to git
docs: sync up AUTHORS and busybox_footer.pod
fdisk: initial stab at GPT partition support
Lauri Kasanen:
modprobe: make -l open the right file
libbb: remove unused variable
Lukas Huba:
patch: implement -E option
Macpaul Lin:
fdisk: add support for NDS32 architecture
modutils: add support for NDS32 architecture
Marek Polacek:
mpstat: new applet. ~5.5k
iostat: new applet. 2800 bytes
powertop: new applet
*: s/perror/bb_simple_perror_msg/g
*: use _exit() in sighandlers
showkey: do not use exit-thru-sighandler
bloat-o-meter: make it python3 compliant
Matheus Izvekov:
diff: fix "diff dir1 dir2/". Closes bug 2203
Mike Frysinger:
depmod.pl: add recursive sanity check
build system: allow SKIP_STRIP to be set in the env
gen_build_files.sh: rewrite with sed
inetd: if argv[0] is not specified, set it to program name
Mike Shal:
lineedit: fix tab-completion of file names with spaces
Nguyen Thai Ngoc Duy:
wget: flush output to network before receving reply
Pascal Bellard:
depmod: accept and ignore -u, -q, -C FILE
cpio: avoid 'not created: newer or same age file exists' message for dirs
Peter Korsgaard:
httpd: optional support for gzip-compressed pages
httpd: simplified "gzip" test
Richard Braun:
tune2fs: implement -c and -i options
Rob Landley:
nbd-client: new applet
patch: replace it with toybox's implementation
patch: deal with omitted ",len" in hunk headers (default len to 1)
awk: reduce ifdef forest
Sergey Naumov:
blockdev: new applet
Souf Oued:
acpid: add config file and map file
Thomas Chou:
mkmakefile: make 3.82 fix
Tito Ragusa:
deluser: deluser/delgroup size reduction and improvements
Vladimir Dronnikov:
sendmail: fix assumption that headers should have a space after the colon
Vladislav Grishenko:
udhcp: add support for 0x21 ROUTES and 0xf9 MS_STATIC_ROUTES options
udhcpc: fix OPTION_IP_PAIR parsing
Waldemar Brodkorb:
OpenBSD compatibility
Wolfram Sang:
lineedit: create history files with mode 0600
- 22 November 2010 -- BusyBox 1.17.4 (stable)
BusyBox 1.17.4.
(git,
patches,
how to add a patch)
Bug fix release. 1.17.4 has fixes for
dnsd (fix for 64-bit builds),
ip route (fixed bug of misplaced argv++),
ls (-g was showing user instead of group),
sort (fix for -o FILE not creating FILE),
unicode (fixed bug in build with disabled unicode support).
- 9 October 2010 -- BusyBox 1.17.3 (stable)
BusyBox 1.17.3.
(git,
patches,
how to add a patch)
Bug fix release. 1.17.3 has fixes for
ip (build fix for older systems),
hush (fix for handling of backslashes in unquoted $var expansion),
line editing (fixed handling of EIO error and tab expansion for non-ASCII file names).
- 25 August 2010 -- BusyBox 1.17.2 (stable)
BusyBox 1.17.2.
(git,
patches,
how to add a patch)
Bug fix release. 1.17.2 has fixes for
build system (now works with make 3.82),
grep (zero length match could loop forever with -o),
mdev (/dev nodes were never deleted),
mktemp (fix for patterns with slashes),
sed (fixes to -i option and N command),
shell ($! was sometimes set to a wrong value;
ulimit without both -H and -S now sets both hard and soft limits)
Patch applet is completely replaced by a more capable
implementation from toybox (Rob Landley's code).
Aboriginal Linux needs it.
- 25 July 2010 -- BusyBox 1.17.1 (stable)
BusyBox 1.17.1.
(git,
patches,
how to add a patch)
Bug fix release. 1.17.1 has fixes for
build system (out-of-tree build was broken),
acpid (fix for older kernel headers),
depmod (now generates new-style modules.dep with relative paths),
diff (fix for "diff DIR1 DIR2/" - note the trailing slash),
dos2unix (fix for invocation without parameters),
ip r (was not working since "r" abbreviates both "route" and "rule"; aliased to "route" now),
mktemp (fix regression which prevented kernel builds),
modprobe (fix modprobe -l),
vi (fix in "ask terminal" code),
wget (fix for progress indicator)
- 06 July 2010 -- BusyBox 1.17.0 (unstable)
BusyBox 1.17.0.
(git,
patches,
how to add a patch)
Sizes of busybox-1.17.0 and busybox-1.16.2 (with equivalent config, static uclibc build):
text data bss dec hex filename
819343 441 7068 826852 c9de4 busybox-1.16.2
819623 441 7076 827140 c9f04 busybox-1.17.0
Changes since previous release:
New applets:
- conspy by Pascal Bellard (pascal.bellard AT ads-lu.com),
- rev by Marek Polacek (mmpolacek AT gmail.com),
- ubiattach,ubidetach by Baruch Siach (baruch AT tkos.co.il),
- modinfo by Pascal Bellard (pascal.bellard AT ads-lu.com),
- fgconsole by Grigory Batalov (bga AT altlinux.org),
- fkill by Souf Oued (souf_oued AT yahoo.fr),
- flock by Timo Teras (timo.teras AT iki.fi),
- smemcap, bootchartd, unxz (complete with xzcat and xz -d aliases)
Other changes:
- build system: make it possible to have include/applets.h-esque entries in .c files, to keep Config/Kbuild snippets in *.c files, to keep usage texts in .c files
- build system: gold may not support --sort-common (yet)
- unicode: support for it is significantly improved, by Tomas Heinrich (heinrich.tomas AT gmail.com)
- libbb: teach tar et. al. to understand .xz
- libbb: fix bb_ask() to operate on correct fd
- libbb: locate PAGE_SIZE on Hurd
- libbb: make index_in_substrings return -1 on ambiguous matches
- libbb/copyfd.c: don't mmap a largish buffer if we only want to copy a few kb
- libbb/read_key: fix buffer length calculation
- *: hurd compat fixes by Jérémie Koenig (jk AT jk.fr.eu.org)
- *: s/"/bin/sh"/DEFAULT_SHELL by Ladislav Michl (Ladislav.Michl AT seznam.cz)
- ash,hush: make it possible to alias one of shells to "bash"
- ash,hush: make "source" a synonym for . if bash compat is on
- ash,hush: make bare "." set exitcode to 2
- ash: <>FILE does not truncate FILE anymore. By Andreas Bühmann (buehmann AT users.berlios.de)
- ash: fix ". EMPTY_FILE" exitcode
- ash: fix bug which causes signal6.tests to fail
- ash: fix SEGV on empty command with redirection (bug 1087). Fix by Leonid (lly.dev AT gmail.com)
- ash: fix cubic slowdown in ${v/*foo*/repl} (really bad one)
- ash: fix obscure case of replacing + globbing + backslashes
- ash: fix redirection of fd 0 in scripts which are sourced from interactive ash
- ash: fix signal5.tests
- ash: fix unset in standalone mode
- ash: fix var_leak testcase
- ash: fix var_leak.tests so that it actually catches the NOFORK bug
- ash: refresh stack pointers after makestrspace in rmescapes. By Colin Watson (cjwatson AT ubuntu.com)
- ash: make trap with bad signal name not abort
- ash: use CONFIG_FEATURE_EDITING_MAX_LEN
- hush: fix "hush -c 'echo $#'" showing -1
- hush: fix a=abc; c=c; echo ${a%${c}}
- hush: fix hush -c 'echo $0' - was showing empty string
- hush: fix hush-bugs/parse_err.tests
- hush: fix more obscure ${var%...} cases
- hush: fix var=`exit 2` not setting $? to 2
- hush: handle expansions in ${var?expanded_word} constructs
- hush: support "cd -- DIR" and other such double-dash constructs in builtins
- hush: optional support for ${var:EXPR:EXPR} bashism
- hush: use ash's ulimit builtin; make it more more bash-like while at it
- adduser: copy /etc/skel to new homes. +100 bytes
- ar: add archive creation support. By Alexander Shishkin (virtuoso AT slind.org)
- ar: fix a regression: "ar t arch.a" stopped showing files. By Nguyễn Thái Ngọc Duy (pclouds AT gmail.com)
- awk: be more paranoid when freeing loop variable; make code less obfuscated
- awk: don't append bogus data after NUL in sub()
- awk: fix the case where nested "for" loops with the same variable misbehave
- awk: skip whitespace between array name and subscript. By Alexander Shishkin (virtuoso AT slind.org)
- beep: the -d option takes milliseconds, not microseconds. By Natanael Copa (natanael.copa AT gmail.com)
- brctl: fix parsing of timespec to allow 0 (setfd, sethello..), fix stp parameters incompatibility. By Maciek Borzecki (maciek.borzecki AT gmail.com)
- busybox --list option. +140 bytes. Rob wanted it
- cmp: ifdefectomy by Rob Landley (rob AT landley.net)
- cpio: "NNN blocks" message should go to stderr. By Matheus Izvekov (mizvekov AT gmail.com)
- cttyhack: don't do anything if ctty is already available
- data_extract_all(): do not chmod symlink. Closes bug 2053
- date,touch: accept "Jan 7 00:00:00 2010" format. By Alexander Shishkin (virtuoso AT slind.org)
- date: optional support for %N. Closes bug 1861
- date: support -d @SECONDS_SINCE_1970
- devmem: map two pages only if it is necessary
- dnsd: add -s option. This allows (clumsy) operation with real DNS servers
- dnsd: enforce alignment on packet buffer
- dnsd: fix one big-endian goof; add a TODO about RA bit
- dnsd: fix unaligned access problem
- dpkg: add support for lzma compression, by Pascal Bellard (pascal.bellard AT ads-lu.com)
- dpkg: better check for validity of options
- dpkg: support config file overwrite options. By Kim B. Heino (Kim.Heino AT bluegiga.com)
- dpkg: enable tar compability even if tar applet is not enabled
- [un]expand: account for different character widths
- fbsplash: reinstate drawing of over/undersized images
- fdisk: do not treat names ending in '0' as partitions
- fdisk: make 'b' command optionally adjust C/H/S; "fdisk IMAGE_FILE" sets cylinders
- find: fix -name matching for dotfiles. -1 byte
- ftpd: work around LIST -aXYZ too, not only LIST -lXYZ
- fuser: fix default signal, exitcode and PID display. By Maksym Kryzhanovskyy (xmaks AT email.cz)
- getty: do not emit bogus error message on EOF
- grep: fix -Fi. By Ian Wienand (ianw AT vmware.com)
- grep: make -w support unconditional
- gunzip: inflate_codes(): add fix from upstream gzip to prevent false CRC error
- head,tail: make suffixes unconditional for head too
- hexdump: fix "hexdump NONEXISTENT_FILE" handling
- hexdump: make -s 0xNNNNN work
- httpd: fix proxy mode bug (annoying but harmless)
- ifconfig: do not truncate interface names. Closes bug 1795
- ifdown: use /var/run/udhcpc.%iface%.pid only if it exists
- ifplugd: more robust interface name match check
- ifplugd: replace potentially-leaking setenv with malloc/putenv/free
- init: clear utmp entries for dead processes, if they (entries) exist
- ip a: fix SEGV if "dev IFACE" is not specified
- ip addr/rule/tunnel: unify parsing args. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
- ip link: add qlen. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
- ipaddress: print OPERSTATEs and NO-CARRIER. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
- ipcalc: more correct checking for proper number of arguments
- iplink: support add/delete. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
- loadfont/setfont: optional PSF2 font support
- loop: correct minor device number limit
- losetup: support /dev/loop10 and higher. Closes bug 1627
- lsusb: 2.6.32 compat. By Souf Oued (souf_oued AT yahoo.fr)
- mdev: add "!" syntax support
- mdev: fix a SEGV when subsystem is not known
- mdev: fix subsystem passing (new kernels broke it again). Closes bugs 639, 721
- mkswap: support [KBYTES] parameter
- mkXXXX: unify [KBYTES] parameter handling
- mkfs_ext2: fix handling of -I argument. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
- mktemp: be more compatible: bare "mktemp" creates tempfile in /tmp, not cwd
- modprobe: add support for -l and -s. By Pascal Bellard (pascal.bellard AT ads-lu.com)
- modprobe: pick up module options from /proc/cmdline too
- modprobe: remove 2k limit on /proc/cmdline
- modutils-24: [mips] modutlis-24 segfault fix for 2.4 kernel modules, by Ralf Rösch (ralf.roesch AT rw-gmbh.de)
- mount: add an optional capability to create new /dev/loopN as needed. By Lauri Kasanen (curaga AT operamail.com)
- mount: fix a case when sometimes error message is not printed
- mount: handle EDQUOT > 255 properly. Closes bug 1579
- nc: introduce CONFIG_NC_110_COMPAT option
- tftp/tftp: make tftp/tftpd-related options less confusing in config. Closes bug 2017
- ntpd: step correction to variables had wrong sign, fixing
- passwd: make 'echo -e "foo\nfoo" | passwd USER' work
- ping: do not leak data from stack
- provide safe_gethostname() for non-linux systems
- ps: fix non-DESKTOP option handling code
- ps: make "ps -o BAD" emit list of good -o params
- rpm: use open_zipped's logic (factored out into setup_unzip_on_fd())
- rpm: make rpm -i SRPM.rpm install it to surrent dir
- rpm2cpio: teach it to understand xz format
- sed: fix a case when one-line range matches past lines. Closes bug 1867
- sed: fix a command with multiple trailing backslashes
- sed: fix c cmd
- sed: fix nested {} case
- setkeycodes: fix handling of 0exx scancodes
- setsid: check for setsid error directly
- shaNNNsum: accept and ignore -b and -t
- stat: make output more similar to GNU stat. By Seb (sbb AT tuxfamily.org)
- swapon: skip noauto entries. By Lauri Kasanen (curaga AT operamail.com)
- syslogd: allow multiple -R options. By Thomas Geulig (geulig AT nentec.de)
- syslogd: remove stray umask(0) - was giving log files bad mode
- syslogd: make maximum message length configurable. By Janne Kiviluoto (janne.kiviluoto AT bluegiga.com)
- tail: document FANCY flags in helptext
- tar: fix "hardlinks to symlinks chown" bug 1519
- tar: fix mishandling of repeated hardlink in tarball
- tar: make typical extraction less memory-hungry
- tar: optional support for --to-command. By Ladislav Michl (Ladislav.Michl AT seznam.cz)
- tar: optional support for restoring selinux context. By J. Tang (tang AT jtang.org)
- tar: support GNU 256-bit encoding in all numeric fields
- telnet: prevent SEGV if we are requested TELOPT_NEW_ENVIRON
- telnetd: fill hostname field in utmp/wtmp records
- telnetd: write LOGIN/DEAD_PROCESS utmp records. Closes bug 1363
- test: "" is not a valid number. Closes bug 1915
- tftp: do not show progress bar if we get error right away. +13 bytes
- tftp: increase initial retry timeout from 50 to 100 ms
- tftp: make message about 512 byte block less confusing
- tftpd: fix file creation with bogus mode. Closes bug 1021
- top: make 's' display easier to understand
- touch: do not ignore argument of -d/-t option. By Mikhail Gusarov (dottedmag AT dottedmag.net)
- udhcp: abort if we see unknown option, and show valid options if so
- udhcp: disable time and log server options
- udhcp: fix DNS domain codec bug: bad compression flag checks
- udhcp: handle errors in read_staticlease
- udhcp: implement "raw" binary options. Closes bug 735
- udhcp: remove support for some really old and odd options
- udhcp: s/sipservers/sipsrv/ to match other similar option names
- udhcp: we call DNS name encoder with NULL, this can SEGV. Added a check
- udhcp: truncate packets instead of padding them to 574 bytes. Closes bug 1849
- udhcpc: add -x OPT:VAL option
- udhcpc: make it possible to disable vendor id
- udhcpd: apparently, sometimes IP is in ciaddr, not requested_ip
- udhcpd: fix -v/-P mixup
- udhcpd: fix daemonize crash on nommu systems. By Mike Frysinger (vapier AT gentoo.org)
- udhcpd: fix hostname truncation bug 1663
- udhcpd: support decoding of option 120 "SIP servers". Closes bug 737
- udhcpd: untangle incredibly messy handling of DHCPREQUEST
- unexpand: fix "a b"\n" input case. By Tomas Heinrich (heinrich.tomas AT gmail.com)
- unlzma: add "lzma -d" alias, add -t support, rename lzmacat to lzcat
- unzip: restore unix file mode if possible. Closes bug 1045
- unzip: improve handling of stream ZIP files
- vi: save/restore errno in signal handlers
- vi: discover window size even on serial consoles (optional)
- vi: fix "set ic" command. Closes bug 1765
- vi: fix NUM + "$" handling
- volume_id/linux_swap: detect suspended image signatures too
- wc: compat: make "wc -c ONE_FILE" not print leading spaces. +2 bytes
- wget: fix bug 1057 "busybox wget segfaults with http_proxy environment set"
- wget: ignore --no-check-certificate
- who: fix attempts to open '/dev/dev/ttyX'; make columns a bit wider, add -H
- xargs: bump default -sNUM up to 32k. Use sysconf() to trim it down if necessary
- xargs: make -s NUM accept practically unlimited range
- 12 June 2010 -- BusyBox 1.16.2 (stable)
BusyBox 1.16.2.
(git,
patches,
how to add a patch)
Bug fix release. 1.16.2 has fixes for ash (complex cases of stdin redirection,
memory reallocation bug fix), cpio ("NNN blocks" goes to stderr now),
udhcp (last byte of hosthame was truncated), dnsd (misaligned access),
hush (in some cases $# was wrong), hwclock (subsecond sync code removed),
sed (a corner case with line continuation is fixed).
- 28 March 2010 -- BusyBox 1.16.1 (stable)
BusyBox 1.16.1.
(git,
patches,
how to add a patch)
Bug fix release. 1.16.1 has fixes for ash (SEGV with 'trap' and 'jobs'),
beep (pause was 1000 times too small), udhcpd (SEGV with -v), fbsplash
(re-enable drawing of images with size different than screen size),
hush (exec was not picking up applets in standalone mode), blkid
(a few newer swap formats supported), md5sum/shaNsum (accept -bt options),
syslogd (logfile had mode 0666), tail (a case where we tried to write
negative number of bytes), tftpd (open without third argument),
touch (-d wasn't working as it should), wc (with one file, don't print
any leading spaces), wget (SEGV if proxy is specified in environment),
some toolchain compatibility fixes, help text fixes,
build system fix (defconfig was not updated).
- 27 January 2010 -- BusyBox 1.16.0 (unstable)
BusyBox 1.16.0.
(git,
patches,
how to add a patch)
Sizes of busybox-1.16.0 and busybox-1.15.3 (with equivalent config, static uclibc build):
text data bss dec hex filename
816619 453 7436 824508 c94bc busybox-1.15.3/busybox
812074 453 7300 819827 c8273 busybox-1.16.0/busybox
Changes since previous release:
New applets:
- lspci: new applet. +573 bytes. By Souf Oued (souf_oued AT yahoo.fr)
- lsusb: new applet. +400 bytes. By Souf Oued (souf_oued AT yahoo.fr)
- flashcp: new applet. +900 bytes. By Stefan Seyfried (stefan.seyfried AT googlemail.com)
- mkfs.reiser: new applet. Needs much polishing. By Vladimir Dronnikov (dronnikov AT gmail.com)
- mkfs_ext2: new applet. By Vladimir Dronnikov (dronnikov AT gmail.com)
- ntpd: new applet, +5k. By Adam Tkac (vonsch AT gmail.com)
- traceroute6: new applet. +1562 bytes. By Leonid Lisovskiy (lly.dev AT gmail.com)
- tune2fs: new applet by Vladimir. Only supports -L LABEL
- wall: new applet. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
Other changes:
- ash,hush: check that variable names are sane
- ash,hush: fix "'read' without parameters" bash compat thingy
- ash,hush: fix $RANDOM in children being repeated
- ash,hush: fix `trap`
- ash: do not let EXIT trap to fire in `trap`
- ash: error out on ${#1#}, ${#$11}, ${#11#}. By Cristian Ionescu-Idbohrn (cristian.ionescu-idbohrn AT axis.com)
- ash: factor out $RANDOM support and read builtin
- ash: fix bad interaction of "stty -echo" + ASK_TERMINAL
- ash: fix bug 585 (>"$VAR_WITH_UNICODE_CHARS" problem)
- ash: fix for read $IFS splitting. Closes bug 235
- ash: fix handling of Unicode chars in redirects. Closes bug 585
- ash: fix mishandling of bash-style redirects. By Chris Metcalf (cmetcalf AT tilera.com)
- ash: implement set -o pipefail (conditional on bash compat). By Michael Abbott (michael AT araneidae.co.uk)
- ash: make "jobs -l" more similar to bash. By Earl Chew. Closes bug 481
- ash: re-enable SIGHUP on entry. Closes bug 771
- hush: add printf builtin. By Mike Frysinger (vapier AT gentoo.org)
- hush: add support for $RANDOM
- hush: code shrink by Dan Fandrich (dan AT coneharvesters.com)
- hush: do not reset to default "" traps in subshell
- hush: export $PWD
- hush: fix exec builtin in a better way (+ "glob in exec" bug fixed)
- hush: fix exit code propagation from `cmd`
- hush: fix exitcodes of killed processes
- hush: fix handling of empty arguments
- hush: fix handling of words with braces
- hush: fix potential buffer overflow on NOMMU
- hush: fix subshell.tests failure on NOMMU
- hush: handle empty execs. By Mike Frysinger (vapier AT gentoo.org)
- hush: make memleak debugging more robust
- hush: plug a memory leak
- hush: support $PPID
- hush: two NOMMU fixes for bugs 877 and 883
- hush: unify handling of builtin applets. By Mike Frysinger (vapier AT gentoo.org)
- hush: wait for `cmd` to complete, and immediately store its exitcode in $?
- build system: fix for coarse mtime problem
- build system: fix parallel make
- build system: more fixes to parallel build
- build system: update documentation generator so that it sucks less
- *: do not assign to stdout/stderr, it's not portable. Based on patch by Aaron Carroll (xaaronc AT gmail.com)
- *: platform compatibility work. By Dan Fandrich (dan AT coneharvesters.com)
- *: use utimes() rather than obsolescent utime(). By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
- libbb: add and use xopen_nonblocking (-18b). By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
- libbb: add mallopt tweaks for reduced memory consumption
- libbb: better unicode width support. Hopefully fixes bug 839
- libbb: move generate_uuid from mkswap to libbb. By Vladimir Dronnikov (dronnikov AT gmail.com)
- libbb: optimize most of isXXXXX() macros
- libbb/lineedit: fix the case when we configured history to have 0 lines
- libbb/lineedit: restore ^D handling for unicode
- libbb/lineedit: try to make FEATURE_EDITING_ASK_TERMINAL less ugly
- libbb/lineedit: do not hardcode ctrl-C and ctrl-D, use termios fields
- libbb/lineedit: handle Ctrl-arrows
- libbb/read_key,lineedit: parse position answerback faster; sanitize its use
- libbb/read_key: ignore unknown keys (do not return them to caller byte-by-byte)
- libunarchive: fix a bug where mode and time is no longer restored. Introduced by vda in 1.15.x. Found by Rob Landley
- libunarchive: fix reversed test for older/newer
- libunarchive: move dpkg-specific things into dpkg.c. 0 byte size differences
- volume_id: add support for btrfs. By Vladimir Dronnikov (dronnikov AT gmail.com)
- tests: fix POSIX shell source style. By Mike Frysinger (vapier AT gentoo.org)
- all_sourcecode.tests: check commented out applet order too. By Mike Frysinger (vapier AT gentoo.org)
- INSTALL: update obsolete doc, as suggested by Doug Clapp (doug.clapp AT triad.rr.com)
- documentation and typo fixes. By Dan Fandrich (dan AT coneharvesters.com)
- adduser: create a group for new user too
- adduser: fix a logical inversion which made -G GRP inoperative. By Tito Ragusa (farmatito AT tiscali.it)
- applets/usage_compressed: combine many seds in one; hide dd stats. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
- applets: fix alphabetical order. By Mike Frysinger (vapier AT gentoo.org)
- ar: fix long filenames handling. Closes bug 611
- awk: fix a case when number is treated as string. Closes bug 725
- awk: implement mktime. By Leonid Lisovskiy (lly.dev AT gmail.com)
- chown: support long options. By Matheus Izvekov (mizvekov AT gmail.com)
- chpst: tiny shrinkage and add possible TODO. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
- cp: add support for --parents and long option synonyms of short opts. By Ian Wienand (ianw AT vmware.com)
- cp: fix -H handling
- cpio: fix -o-less cpio -F FILE
- cpio: fix unpacking of names with leading slashes
- crond: do not log info messages at LOG_ERR. Closes bug 681
- date: handle long options. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
- dc: make "dc -1.23 ..." work
- dd: fix conv=noerror w/o sync to not write out zeroed blocks
- dd: speed measurement. Optional. By Gabor Heja (kakaopor AT kakaopor.hu)
- df: unicode-aware column formatting. By Tomas Heinrich (theinric AT redhat.com)
- diff: rewrite. Much smaller and more correct. By Matheus Izvekov (mizvekov AT gmail.com)
- dpkg: fix handling of names with leading dots. Closes bug 783
- dumpleases: unicode spport. By Tomas Heinrich (heinrich.tomas AT gmail.com)
- echo et al: support \e escape
- env: don't SEGV on bare "env -"
- ether-wake: can use ether_hostton on uclibc >= 0.9.30. By Leonid Lisovskiy (lly.dev AT gmail.com)
- examples: add ENABLE_FEATURE_MDEV_RENAME_REGEXP examples to mdev documentation. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
- examples: add mdev.conf and mdev_fat.conf
- examples: adding runit-style service directory
- fbset: add possibility to set timing and sync polarity. By Michael Grzeschik (m.grzeschik AT pengutronix.de)
- fbsplash: allow compressed image files. By Vladimir Dronnikov (dronnikov AT gmail.com)
- fdisk: add a warning and truncate disks with >= 2^32 sectors
- find: -follow should not error out on dangling links
- find: add optional support for -links. By Matheus Izvekov (mizvekov AT gmail.com)
- find: correct handling of -xdev
- find: do not recurse into directories with depth == maxdepth. This may avoid many, many unnecessary stat() calls
- fold: fix a corner case. By Tomas Heinrich (heinrich.tomas AT gmail.com)
- fold: unicode support. Based on a patch by Tomas Heinrich (heinrich.tomas AT gmail.com)
- ftpd: conditional support for broken clients. By Stefan Seyfried (stefan.seyfried AT googlemail.com)
- ftpget/put: make 3rd parameter optional. By Vladimir Dronnikov (dronnikov AT gmail.com)
- grep: fix a case when -o loops forever
- gzip: add optional support for --long-opts. By Matheus Izvekov (mizvekov AT gmail.com)
- httpd: -m: output _salted_ MD5 hash. By (forrest AT hifulltech.com)
- httpd: fix bug 601 "I:index.php does not run interpreter on DIR/ url"
- httpd: shrink mime type matching code (suggested by Bernhard)
- httpd_indexcgi: fix off-by-one error
- httpd_post_upload.txt example: handle binary files too
- hwclock: fix sizeof bug (used it on pointer, not array)
- hwclock: make --systohc exact
- ifplugd: mention iff mode in help; restore auto-ifup unless -a; make iff method less iffy :D
- ifup: make /etc/network/interfaces parser tolerant to trailing spaces
- inetd: be more careful with syslog socket; other small fixes
- init: fix "while true; do reboot; done" bug. Closes bug 781
- init: fix logically inverted FEATURE_EXTRA_QUIET check
- init: for paranoid reasons, restore SIGCONT too
- init: make FEATURE_EXTRA_QUIET more consistent
- init: restore possibility to reload inittab even before we finish initialization
- init: use applet_name instead of "init" (we can be linuxrc)
- login: log PAM errors to syslog, not stderr. By Ian Wienand (ianw AT vmware.com)
- ls: add "total NNNN" header if DESKTOP. By Johannes Stezenbach (js AT sig21.net)
- ls: fix for !FEATURE_LS_RECURSIVE (forgotten free); cleanups
- ls: fix sort of very large files
- ls: make it so that group never glues itself to file size
- lsmod: unicode-aware column formatting. By Tomas Heinrich (heinrich.tomas AT gmail.com)
- mdev: adjust error message. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
- mdev: do not die on mknod errors
- mdev: handle string modes. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
- mdev: tiny shrinkage by index_in_strings. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
- mkfs_vfat: fixes for large image cases
- mkswap: add -L LABEL option. Closes bug 689
- modprobe-small: hopefully fix bug 591 (incorrect detection of alias with '-')
- modprobe: it's not an error if module is already loaded. Closes bug 833
- modprobe: protect against possible SEGV
- modutils: add FEATURE_INSMOD_TRY_MMAP option
- mount: "already mounted" msg appears only if -v
- mount: add support for -O list. By Michael Abbott (michael AT araneidae.co.uk)
- mount: do not execute "mount.(null)" :)
- mount: if we mount //host/xxx, add ip=IPADDR to options
- mount: prevent second mount -a from mounting everything again
- mount: support -o union. By Vladimir Dronnikov (dronnikov AT gmail.com)
- mountpoint: btrfs fix. By Vladimir Dronnikov (dronnikov AT gmail.com)
- nc: fix "nc -nl -p LPORT RHOST" case (was expecting remote port 0). Closes bug 837
- networking/httpd_ssi.c: new example CGI handler
- od: fix -tx without length spec
- passwd: do not complain if /etc/shadow is missing
- patch: add longopts, --dry-run, add one more test
- patch: ignore -g NUM. By Matheus Izvekov (mizvekov AT gmail.com)
- pidof/killall: fix bug 625 (kernel threads get stale "binary name")
- ping6: do not play dirty tricks with argv
- ping: fix unaligned access. Closes bug 745
- ping: use ICMP_MINLEN. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
- ps,top: add an option to show threads. +260 bytes
- ps: conditionally enable -T on non-DESKTOP build too
- ps: document -T option
- ps: show longer COMMAND
- rpm2cpio: handle bz2 too. By Pascal Bellard (pascal.bellard AT ads-lu.com)
- rpm2cpio: handle unseekable input correctly
- sed: fix bug 623 (SEGV on some sed commands)
- sed: minor usage tweak. By Rob Landley (rob AT landley.net)
- sed: on output file, set not only mode, but owner too
- sendmail: accept -i too, not only -oi. By Vladimir Dronnikov (dronnikov AT gmail.com)
- sendmail: fix for long headers. By Vladimir Dronnikov (dronnikov AT gmail.com)
- sendmail: update by Vladimir Dronnikov (dronnikov AT gmail.com)
- sort: make sort -o FILE FILE (same FILE) work. Closes bug 785
- split: handle - as "use stdin". Closes bug 741
- start-stop-daemon: we could need ssd -d (fancy). By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
- stty: add B921600. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
- stty: fix columns command. Closes bug 791
- swaponoff: add uuid/label support. By Natanael Copa (natanael.copa AT gmail.com)
- tar: accept spaces at the end of header fields (compat)
- tar: add support for --overwrite
- tar: add support for -o as synonym to --no-same-owner. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
- tar: do chown, not lchown to restore mode (compat)
- tar: fix --numeric-owner, --no-same-owner, --no-same-permissions bits
- tar: fix bug 673 (misdetection of repeated dir as hardlink)
- tar: fix handling of tarballs with chksums prepended by spaces
- tar: handle "tar fx TARFILE" etc
- tar: optional support for -m (--touch). By Mikhail Gusarov (dottedmag AT dottedmag.net)
- telnetd: optional support for -w ("inetd wait")
- tftp: add optional support for progress bar. By Magnus Damm (magnus.damm AT gmail.com)
- tftp: extend tsize support a little. By Magnus Damm (magnus.damm AT gmail.com)
- top: add -m ("memory") option
- tty: use defines rather than constants. By Bernhard Reutner-Fischer (rep.dot.nop AT gmail.com)
- udhcpc: fix bug 629: use bcast receive when we perform rebinding
- udp_io: fix two potential cases of unaligned accesses
- uniq: plug memory leak. Patch from OpenWRT project
- wc: fix a hang gue to isprint(EOF). By Dan Fandrich (dan AT coneharvesters.com)
- wget: check for close() success; fix chunked; do not bother to send QUIT to ftp
- wget: factor out progress bar code. By Magnus Damm (magnus.damm AT gmail.com)
- wget: fix for code 302. By Vladimir Dronnikov (dronnikov AT gmail.com)
- [un]expand: unicode support. By Tomas Heinrich (heinrich.tomas AT gmail.com)
- 12 December 2009 -- BusyBox 1.15.3 (stable)
BusyBox 1.15.3.
(git,
patches,
how to add a patch)
Bug fix release. 1.15.3 has fixes for ash (compilation with signed chars,
SIGHUP handling fix), awk, flash_eraseall (fix for newer kernel headers),
grep, mount (mount -a won't mount everyting again on 2nd run), ping
(fix unaligned access), split (accepts "-" as stdin now), build system
(parallel build).
- 8 October 2009 -- BusyBox 1.15.2 (stable)
BusyBox 1.15.2.
(git,
patches,
how to add a patch)
Bug fix release. 1.15.2 has fixes for ash and hush (`trap` handling),
dd (fixed handling of I/O errors), find (fix for -follow and symlinks),
pidof (corrected recognition of kernel thread names), sed (SEGV),
uniq (memory leak), line editing (Ctrl-D works again), build system.
- 15 September 2009 -- BusyBox 1.15.1 (stable), BusyBox 1.14.4 (stable)
BusyBox 1.15.1.
(git,
patches,
how to add a patch)
BusyBox 1.14.4.
(git,
patches,
how to add a patch)
Bug fix releases. 1.14.4 has fixes for ash, httpd, modprobe and the build system,
1.15.1 has fixes for ash (unicode fix), httpd (fix for "dir index via
interpreter" case), hush ($PWD support), inetd (fd leak fix), modprobe-small
(fix for aliases with dashes), unlzma (SEGV on 64-bit), and generic
unpacking routines (was not restoring mode).
- 23 August 2009 -- BusyBox 1.15.0 (unstable)
BusyBox 1.15.0.
(git,
patches,
how to add a patch)
Sizes of busybox-1.15.0 and busybox-1.14.3 (with equivalent config, static uclibc build):
text data bss dec hex filename
778114 454 7340 785908 bfdf4 busybox-1.14.3/busybox
780508 445 7328 788281 c0739 busybox-1.15.0/busybox
Changes since previous release:
New applets:
- beep: new applet by Bernhard
- dnsdomainname: new applet - the alias to "hostname -d"
- flash_lock, flash_unlock: new applets by Thierry Reding (thierry.reding AT avionic-design.de)
- fsync: new applet by Pekka Pessi (Pekka.Pessi AT nokia.com)
- ifplugd: new applet by Maksym Kryzhanovskyy (xmaks AT email.cz)
- lzop: new applet. Busyboxed by Alain Knaff. +7700 bytes
- scriptreplay: new applet
- volname: new applet
lash and msh are deprecated, please migrate to hush. They both are aliased to hush anyway.
lash now prints "lash is deprecated, please use hush instead" message, msh does not (yet).
Other changes:
- libbb: make find_pid_by_name look at /proc/PID/exe too
- libbb: make get_sock_lsa use only one getsockaddr syscall, not two
- libbb: prevent resursion on malloc failure
- libbb: stop using bb_strtod for now
- libbb/lineedit: implement Unicode-aware line editing (optional)
- libbb/lineedit: use read_key to recognize ESC sequence
- libbb/lineedit: added simplified Unicode support for non-locale-enabled builds
- libbb/lineedit: add an option to emit ESC [ 6 n ("report cursor position") and use results
- libbb/read_key: drop optimization where we read 3 bytes at once
- libbb/des encrypt: fix goof with NUL byte added at the end as '.'
- libbb/device matching against UUIDs: do not try floppies
- acpid: prevent creation of zombies
- adduser/addgroup: make system id range configurable. By Tito (farmatito AT tiscali.it)
- adduser/addgroup: support specifying uid/gid, add system account creation mode. By Tito
- ash: fix . builtin
- ash: fix bug 571 (jobs %string misbehaving)
- ash: further fixes to debug machinery. Fixes bug 485
- ash: make "jobs" work even in subshells
- awk: put at least one NUL between $n. Hopefully fixes bug 337
- busybox --install [-s] [DIR]: allow a parameter - destination DIR
- cp: by popular demand, make it POSIX compliant (but less safe)
- cpio: --verbose, --quiet, --to-stdout
- date: change date -d TIME format a bit, make it more compatible
- dd: conv=noerror should skip read errors using lseek. Fixes bug 539
- depmod.pl: updates and fixes galore
- depmod: fix handling of .gz modules
- df: fix "df /"
- dmesg: try to detect buffer size
- dpkg: delete postrm script after it has been run, not before. Fixes bug 449
- fdisk: add handling of avr32. Fixes bug 555
- ftpd: allow multiple -S options to increase verbosity too, like -v
- ftpd: fix a case when with -w unknown commands are ignored with no error code
- grep: fix -E + {range}; fix -o not printing all matches. Fixes bug 489
- gzip: fix gzip with many files corrupting some files after first
- halt/reboot/poweroff: add a CONFIG_xxx to act SysV compatibly
- hdparm: correct (t & 1) ? '0' : '5' thinko; wrap 80+ col lines
- hostname: support --fqdn, --domain, --file
- httpd: allow empty lines in conf file
- httpd: speed up httpd.conf parsing at the cost of 49 bytes of code
- hush: add HUSH_BASH_COMPAT, make [[ special handling depend on it
- hush: add support for local builtin
- hush: allow umask to take symbolic modes
- hush: disallow "{echo hi; }" (require whitespace) and "{ echo hi }" (require semicolon or &)
- hush: do not process options after non-option args
- hush: "export -n" support
- hush: fix "export not_yet_defined_var", fix parsing of "cmd | }" corner case
- hush: fix "if { echo foo; } then { echo bar; } fi" parsing
- hush: fix "trap -- handler SIGs..."; escape handlers in "trap" output
- hush: fix SEGV in % expansion
- hush: fix SIGCHLD counting code, but keep it disabled for now
- hush: fix \*newline* handling
- hush: fix a case when backgrounded command makes shell hang
- hush: fix a segfault in export builtin
- hush: fix wrong handling of \x in assignments
- hush: fix a bug where in "var=val func" var's value is not visible in func
- hush: fix handling of unterminated subshell: (*eof*. Fixes bug 229
- hush: fix handling of } which is not a closing one in { cmd; }
- hush: fix multiple redirections of the same fd. Fixes bug 227
- hush: fix non-interactive response to pipe being stopped
- hush: fix problems with case in subshells and with "case esac"
- hush: implement 'type' builtin
- hush: implement proper SIGHUP handling
- hush: implement unset -f; beautify the handling of signal-killed pipe
- hush: make . command search $PATH
- hush: make builtins work in pipes (eval ... | ...) on NOMMU
- hush: make it possible to have interactive shell on non-ctty. init=/bin/hush: shows prompt, history works, etc
- hush: return builtin by Bayram Kurumahmut (kbayram AT ubicom.com)
- hush: set $n properly for "source" builtin
- hush: specially handle [[ - suppress globbing & multiword expansion
- hush: stop ignoring ^Z in child shells
- hush: unblock TERM, INT, HUP in child shells too
- ifupdown: if $PATH is not set, do not set it to "" in children
- install: compat fix for mode of created files. By Mat Hostetter (mhostetter AT tilera.com)
- login: consider platforms having no domainname field in the utsname struct
- ls: fix --color handling. Fixes bug 435
- ls: make --color more compatible with coreutils
- man: use man.config, not only man.conf (man version 1.6f compat)
- mdev: #if forest removal (thanks Rob)
- mdev: be more permissive on errors (don't die): mdev -s users want that
- mdev: change subsystem syntax from /subsystem to subsystem/devname
- mdev: do not exit if user:group parse failed. Fixes bug 309
- mdev: fix a case where we mangle device_path string and then use it
- mdev: fix the case when move rule deletes node with name == device_name
- mdev: set $MDEV correctly for renamed nodes
- mdev: set mode, needed when device node already exists
- mdev: support $ENVVAR=regex
- mkswap: optionally generate UUID. +110 bytes
- modprobe: correct exitcode handling and error messages with respect to -q
- modprobe: fix modprobe -r. Fixes bug 315
- modprobe: treat tabs in modules.dep as delimiters too. Fixes bug 567
- mount: document when kernel started accepting string as NFS options
- mount: support -i; pass through -f and -n to helpers as necessary
- nc: fix nc -ll
- passwd + /etc/shadow: change "change time" field too
- patch: support -N option. By Olivier Duclos (olivier.duclos AT gmail.com)
- pgrep/pkill: support -s and -P options
- pgrep: match argv[0] too, not only comm; fix a bug in argv sanitization
- ping6: make it setuid just like ping
- printf: accept negative numbers for %x
- printf: fix exit code on conversion error
- ps: conditionally support additional -o FIELDs
- readlink: support -n, -v, -s and -q too if support for -f is requested
- runsv: run ./finish with parameters (runit compat)
- rx: strip padding from last block. Fixes bug 501
- sed: deal with peculiar behavior of '2d;2,1p' in GNU sed
- sed: fix "echo /usr/lib | sed 's,\(^/\|\)[^/][^/]*,..,g' " bug
- sed: fix handling of 1d;1,3p and 1d;1,REGEXp
- seq: fix input handling in non-C locales
- sv: fix "sv o SRV; ...; sv d SRV". Fixes bug 461
- svlogd: do not overrun read buffer. Fixes bug 439
- svlogd: use line buffering if any filtering is done. Fixes bug 521
- switch_root: allow /init to be a symlink; add doc (thanks Rob!)
- syslogd: added comment, no code changes
- tail: fix "tail +N file_shorter_than_N"
- tail: implement -F
- tail: read only a portion of a file if it's HUGE. Fixes bug 551
- tar: handle 256-base encoding in mtime
- tar: support for tar --numeric-owner. By Natanael Copa
- tcpsvd,udpsvd: fix uid/gid printing when run with -u
- telnetd: properly close fds in child
- test: fix "test !" and "test abc -a !". Fixes bug 465
- test: make 64-bit math enable-able for hush too
- tftp: do not risk invoking Sorcerer's Apprentice syndrome
- tftp[d]: fix block# handling on upload with non-default blocksize
- touch: implement -d --date (our own testsuite needs that)
- touch: implement -t TIME (needed for testsuite)
- udhcp: change UDHCP_DEBUG into int, make verbosity selectable with -v
- udhcp: dname_dec may return NULL, account for that case
- udhcp: shorten mac len from 16 to 6 in lease file
- udhcpc: fix a read error loop (e.g.: device is down) blocking TERM
- udhcpc: fix truncation of last char in client hostnames
- udhcpc: if got IP successfully, disable -n for future renewals
- udhcpc: support option 0x79 (static routes) (part of bug 341)
- udhcpd: don't fail ARP check if returned MAC matches client's one
- udhcpd: fix a bug in add_lease where it was reading at [-1]
- unlzma: speedup, by Pascal Bellard (pascal.bellard AT ads-lu.com)
- unzip: try lseek before resorting to reading for seeking forward
- vi: do not accept uppercase commands (compat). Fixes bug 397
- watchdog: enable it before setting timeout
- wget: fix redirection from HTTP to FTP server
- wget: remove IPv6 scope id in Host: field (apache compat)
- 2 August 2009 -- BusyBox 1.14.3 (stable)
BusyBox 1.14.3.
(git,
patches,
how to add a patch)
Bug fix release. Contains fixes in df (fix for "df /"), ls (problems with colored
output in some configurations), ping6 (was not suid, unlike ping), test (parameter
to "not" operator is optional), udhcpd (fixed lease file restore routine).
- 22 June 2009 -- BusyBox 1.14.2 (stable)
BusyBox 1.14.2.
(git,
patches,
how to add a patch)
Bug fix release. Contains fixes in ash ('.' builtin), ftpd, httpd, modprobe
(better exit code compatibility), readlink (more options supported),
telnetd (now closes file descriptors in children, it was forgetting to do so).
- 27 May 2009 -- BusyBox 1.14.1 (stable)
BusyBox 1.14.1.
(git,
patches,
how to add a patch)
Bug fix release. Contains fixes in acpid, awk, depmod, dhcp, gzip, mdev,
modprobe, sysctl; libbb fixes.
hush is significantly updated.
- 5 May 2009, SVN -> GIT
We've migrated from SVN to GIT. SVN is frozen read-only before the conversion,
so check out the Developing links and such for updated instructions.
- 15 April 2009 -- BusyBox 1.14.0 (unstable), BusyBox 1.13.4 (stable)
BusyBox 1.14.0.
(git,
patches,
how to add a patch)
BusyBox 1.13.4.
(git,
patches,
how to add a patch)
Sizes of busybox-1.13.4 and busybox-1.14.0 (with equivalent config, static uclibc build):
text data bss dec hex filename
785501 483 7036 793020 c19bc busybox.1.13.4/busybox
788380 467 6960 795807 c249f busybox.1.14.0/busybox
15361 0 0 15361 3c01 busybox.1.13.4/shell/hush.o
20724 0 0 20724 50f4 busybox.1.14.0/shell/hush.o
Most of growth is in hush. The rest shrank a bit.
New applets:
- flash_eraseall: by Sebastian Andrzej Siewior (bigeasy AT linutronix.de)
- acpid, mkdosfs, tunctl: by Vladimir
- ftpd: by Adam Tkac (vonsch AT gmail.com)
- timeout: by Roberto Foglietta
- ionice: adapted from Linux kernel example by Walter Harms
- mkpasswd: synonym to cryptpw. mkpasswd is in Debian, OTOH cryptpw was added to busybox earlier. Trying to make both camps happy by making those two applets just aliases. They are command-line compatible
Changes since previous release:
lash and msh are deprecated, please migrate to hush.
hush had many, many fixes and features added: here documents, arithmetic evaluation, function support, and all this works on NOMMU too, safely, including 100kb-sized `command` and here documents. Here document support, arithmetic evaluation, improved ${var} operations, other fixes are by Mike Frysinger (vapier AT gentoo.org).
Other changes:
- libbb: unify concurrent-safe update of /etc/{passwd,group,[g]shadow}. By Tito (farmatito AT tiscali.it)
- libbb/sha{1,256,512}: major code shrink
- libbb/lineedit: make history saving/loading concurrent-safe
- libbb: shrink linked list ops. By xmaks AT email.cz
- libbb: str2sockaddr should accept [IPv6] addr without port - wget 'ftp://[::1]/file' needs that to work
- libbb: make bb_info_msg do atomic, unbuffered writes
- util-linux/volumeid: abort early on read failures. Should help with probing missing fdd's
- util-linux/volumeid: fix bug 249 "findfs finds the wrong partition"
- adduser: allow adding to group 0; don't _create_ /etc/shadow, only append data if it exists
- ash: fix mishandled ^C and SIGINT (several cases)
- ash: fix "ash -c 'exec 1>&0'" complaining that fd 0 is busy
- ash: fix $IFS handling in read. Closes bug 235
- ash: fix a case where we were closing wrong descriptor
- ash: fix bad interaction between ash -c '....&' and bash compat
- ash: fix miscalculation of memory needed for eval tree. Found by Timo Teras (timo.teras AT iki.fi)
- ash: make dot command search current directory first, as bash does
- ash: printf builtin with no arguments should not exit
- awk: fix long field separators case. By Ian Wienand (ianw AT vmware.com)
- awk: in BEGIN section $0 should be "", not "0"
- awk: make "struct global" hack more robust wrt alignment. Closes bug 131
- brctl: fix compilation on 2.4.x kernels
- chat: treat timeout more correctly
- chat: recognize RECORD directive
- cksum, head, printenv: report errors via exitcode
- cpio: add -p, -0 and -L options
- crond, crontab: make cron directory location configurable
- crond: correct more of logfile to 0666 (as usual, umask allows user to remove unwanted bits)
- crond: put tasks in separate process groups
- dc: fix the "base 2" patch omission of base not being set
- depmod: accept and ignore -r. Linux kernel build needs this
- depmod: fix -b option. By timo.teras AT iki.fi
- udhcpc: fix a problem where we don't open listening socket fast enough
- udhcpc: stop filtering environment passed to the script
- udhcpd: disable option to have absolute lease times in lease file (that does not work with dumpleases)
- udhcpd: write 64-bit current time in lease file. Without it, determination of remaining lease time is unreliable
- udhcpd: remember hostnames of clients
- dumpleases: fix -a option, use recorded current time in lease file, show hostnames
- dnsd: fix a number of bugs. Ideas by Ming-Ching Tiew (mctiew AT yahoo.com)
- dpkg: better and shorter code to compare versions. Taken from "official" dpkg by Eugene T. Bordenkircher (eugebo AT gmail.com)
- du: fix "du /dir /dir" case
- env: support -uVAR=VAL
- expand, unexpand: fix incorrect expansion in some cases
- expr: a bit more robust handling of regexps with groups. Closes bug 87
- find: support --mindepth
- getty: make speed 0 mean "don't change speed", stop using non-portable way of setting speeds
- grep: support -z
- gzip: fix gzip -dc bug caused by using stale getopt state
- httpd: set $HOST to Host: header value. By Tobias Poschwatta (tp AT fonz.de)
- ifupdown: allow options to udhcpc to be configurable from .config
- init: do not eat last char in messages; do not print duplicate "init:" prefix to syslog
- init: fix a bug where on reload order of entries might be wrong
- init: major improvement in documentation and signal handling. Lots of nasty, but hard to trip, races are fixed
- init: reinstate proper handling of !ENABLE_FEATURE_USE_INITTAB
- init: remove wait loop on restart, it may be dangerous
- init: test for vt terminal with VT_OPENQRY, assume that anything else is TERM=vt102, not TERM=linux. Closes bug 195
- inotifyd: add x, o, and u events
- inotifyd: fix buffer overflow and "unreaped zombies" problem
- inotifyd: conserve resourses by closing unused inotify descriptors
- insmod/modprobe: do not pass NULL to kernel as module parameter
- ip: in "ip rule add from all table 1", "all" is taken as <IP_ADDRESS>/32, whereas "any" and "default" would be <IP_ADDRESS>/0. They must be all <IP_ADDRESS>/0. Closes bug 57
- iproute: fix ipXXX utilities trying to parse their applet name as their 1st parameter
- klogctl: fix a problem where we don't terminate read data with '\0' and then misinterpret it
- ls: do not follow links with -s. Closes bug 33
- ls: implement -Q and -g (-g was accepted but ignored)
- ls: make readlink error to not disrupt output (try ls -l /proc/self/fd)
- man: better check for duplicated MANPATH
- mdev: add support for - ("dont stop here") char
- mdev: if /sys/class/block exists, don't scan /sys/block
- mdev: ignore events with "$SUBSYSTEM" == "firmware" && "$ACTION" == "remove"
- mdev: provide $SUBSYSTEM. By Vladimir
- modprobe/insmod for 2.4: support compressed modules. By Guenter (lists AT gknw.net)
- modprobe: rework/speedup by Timo Teras (timo.teras AT iki.fi)
- modutils-24: fix bad interaction of xzalloc with xrealloc_vector
- mount: support "-O option", stop trying to mount swap partitions, fix CIFS support
- mountpoint: add -n option. By Vladimir
- nslookup: allow usage of IPv6 addresses or hostnames for DNS server name; allow for port specification. Tested to work on uclibc svn: "nslookup google.com [::1]:5353". glibc + IPv6 address of DNS server still does not work
- popmaildir: fix several grave bugs with using memory past end of malloc block
- printf: fix 1.12.0 breakage (from %*d fix), it was misinterpreting "*"
- printf: make integer format strings print long long-sized values
- rmmod: fix bug 263 "modutils/rmmod can't remove modules with dash in name on 2.4 kernels"
- sendmail: document and fix usage of fd #4, fix check for helper failure
- sendmail: update by Vladimir
- seq: add -w support. By Natanael Copa
- seq: add support for "-s separator"
- stat: make stat -f show filesystem "ID:" as coreutils does
- sysctl: fix another corner case with "dots and slashes"
- sysctl: fix broken -p [file]. Closes bug 231
- sysctl: support recursing if name is a directory: "sysctl net.ipv4.conf". Patch by xmaks AT email.cz
- syslogd: make signal handling syncronous
- syslogd: create logfile with 0666 (affected by umask as usual), not 0600
- tail: fix tail +N syntax not working. Closes bug 221
- tar: do not change new tarfile's mode, GNU tar doesn't do it
- tar: support GNU tar's "base256" encoding
- telnetd: correctly output 0xff char
- telnetd: do not advertise TELNET_LFLOW, we do not support it properly
- tftp: when we infer local name from remote (-r [/]path/path/file), strip path. This mimics wget and is generally more intuitive
- timeout: fix parsing of -t NUM on MMU
- top: make it work again on 2.4 kernels. Closes bug 125
- tr: fix overflow in expand and complement, fix stop after [:class:], fix handling of ranges and [x]'s
- tr: support -C as synonym to -c, support [:xdigit:]
- traceroute: rewrite. Do not emit raw IP packets, instead send UDP or ICMP packets and rely on the kernel to form IP headers, select source IP and interface
- uname: add support for -i and -o, fix printing of unknown -p value with -a option, support long options
- unzip: fix thinko with le/be conv and size. Closes bug 129
- vi: fix several instances of major goof: when text grows, text[] might get reallocated! We were keeping around pointers to old place
- vi: speedup and code shrink. By Walter Harms
- wget: --post-data support. By Harald Kuthe (harald-tuxbox AT arcor.de)
- wget: fix --header handling, more robust EINTR detection
- 8 March 2009 -- BusyBox 1.13.3 (stable)
BusyBox 1.13.3.
(git,
patches,
how to add a patch)
1.13.3 is a bug fix release. It has fixes for awk, depmod, init, killall, mdev,
modprobe, printf, syslogd, tar, top, unzip, wget.
- 31 December 2008 -- BusyBox 1.13.2 (stable), BusyBox 1.12.4 (stable)
BusyBox 1.13.2.
(git,
patches,
how to add a patch)
BusyBox 1.12.4.
(git,
patches,
how to add a patch)
Bug fix releases. 1.13.2 has fixes for crond, dc, init, ip, printf.
1.12.4 has fixes for ip and printf.
- 29 November 2008 -- BusyBox 1.13.1 (stable), BusyBox 1.12.3 (stable)
BusyBox 1.13.1.
(git,
patches,
how to add a patch)
BusyBox 1.12.3.
(git,
patches,
how to add a patch)
Bug fix releases. 1.13.1 has fixes for ash, option parsing, id, init,
inotifyd, klogd, line editing and modprobe. 1.12.3 has fixes
for option parsing and line editing.
- 10 November 2008 -- BusyBox 1.13.0 (unstable), BusyBox 1.12.2 (stable)
BusyBox 1.13.0.
(git,
patches,
how to add a patch)
BusyBox 1.12.2.
(git,
patches,
how to add a patch)
Sizes of busybox-1.12.2 and busybox-1.13.0 (with equivalent config, static uclibc build):
text data bss dec hex filename
778291 551 7856 786698 c010a busybox-1.12.2/busybox
778981 551 7852 787384 c03b8 busybox-1.13.0/busybox
New applets: blkid, devmem
Changes since previous release:
- mail applets: total overhaul. Vladimir as usual
- ash: fix "while kill -0 $child; do true; done" looping forever
- ash: fix NOEXEC mode - we were forgetting to pass environment
- ash: fix a bug in standalone mode (corrupted getopt state)
- ash: optionally support ">&file" and "&>file" redirections
- awk: bitwise ops cast oprands and results to unsigned long, not signed. Closes bug 4774
- awk: fix typo in atan2 code. Closes bug 5594
- awk: improve handling of negative numbers in bitwise ops; fix handling of octal costants
- awk: support hex constants
- basename: fix error code (again)
- cpio: emit TRAILER even when hard links were found. By Pascal Bellard (pascal.bellard AT ads-lu.com)
- crontab: do not destroy STDIN_FILENO, editor may need it (crontab -e)
- dc: support for bases 2 and 8, by Nate Case (ncase AT xes-inc.com)
- dhcpc: treat "discover...select...discover..." loop the same way as "discover...discover...discover..."
- dpkg: add dpkg -l PACKAGE_PATTERN. By Peter Korsgaard
- fbset: fix mode matching code: original code may trigger false positive.
- findfs: fix LUKS and FAT detection routines; do not exit if corrupted FAT fs makes us try to seek past the end
- grep: fix 'echo aaa | grep -o a' + ENABLE_EXTRA_COMPAT case. By Natanael Copa
- grep: fix EXTRA_COMPAT grep to honor -E and -i
- gunzip: restore mtime
- halt: reinstate -w even if !FEATURE_WTMP
- hexdump: fix SEGV in hexdump -e ""
- httpd: pass "Accept:" and "Accept-Language:" header to CGI scripts (Alina Friedrichsen)
- hush: fix environment and memory leaks
- hush: fix trashing of environment by local env vars: a=a; a=b cmd; - a was unset
- id: improve compatibility with coreutils. By Tito Ragusa
- inetd: fix a case when we have zero services
- inetd: use config parser. By Vladimir
- init: set stderr to NONBLOCK
- insmod: fix detection of open failure
- install: support -D
- ip: fix ip route rejecting dotted quads as prefix
- ip: route metric support (Natanael Copa)
- iplink: accept shorthands for "address" keyword: "ip link set address 00:11:22:33:44:55"
- kbd_mode: support -C TTY
- kill[all[5]]: accept -s SIG too. By Steve Bennett (steveb AT workware.net.au)
- klogd: handle many lines at once. By Steve Bennett (steveb AT workware.net.au)
- less: support -I to be able to search case-insensitively
- less: add optional line number toggle and resizing on window resize
- libbb: do not reject floating point strings like ".15"
- lineedit: fix bug 5824 "since rev 23530 fdisk and ed don't work any more"
- lineedit: fix problems with empty commands in history
- login: fix /etc/nologin handling
- man: fix inconsistencies in handling $MANPATH
- mdev: support match by major,minor. See bug 4714
- modprobe-small: make insmod command line compatible
- modprobe-small: support "blacklist" keyword in /etc/modules/MODULE_NAME
- modprobe: fix a segfault when modprobe is called with no arguments at all
- modutils/*: rewrite by Timo Teras (timo.teras AT iki.fi)
- mount: fix "-o parm1 -o parm2" not accumulating
- nmeter: 4k buffers are too small for /proc files, make them dynamically sized with 16k upper limit
- ping: SO_RCVBUF must be bigger than packet size, otherwise large ping packets might fail to be received
- route: fix for 64-bit BE machines by Seonghun Lim (wariua AT gmail.com)
- rpm: fix incompatibilities which prevented rpm -i foo.src.rpm
- runsvdir: support runsvdir-as-init
- setarch: do not try to use non-existent data in argv[]
- setfont: support -m and -C, support -m TEXTUAL_MAP (by Vladimir)
- setup_environment: cd $HOME regardless of clear_env value
- slattach: preserve speed in non-raw mode. By Matthieu Castet (matthieu.castet AT parrot.com)
- start_stop_daemon: accept (and ignore) -R PARAM
- sv: make default service dir configurable (Vladimir wants it)
- sysctl: fix bug 3894 (by Kryzhanovskyy Maksym)
- tar: fix bug 3844: non-root tar does not preserve perms
- telnetd: handle emacs M-DEL and IAC-NOP. By Jim Cathey (jcathey AT ciena.com)
- top: fix "top -d 1" (bug 5144)
- top: optional SMP support by Vineet Gupta (vineetg76 AT gmail.com)
- trylink: make messages less confusing
- unzip: handle "central directory". Needed for OpenOffice, gmail attachment .zips etc
- vi: Rob's algorithm of reading and matching ESC sequences (nice work btw!)
- vi: deal with EOF/error on stdin and with input NULs
- vi: fix uninitialized last_search_pattern (bug 5794)
- vi: handle chars 0x80, 0x81 etc correctly
- volume identification: abolish /proc/partitions and /proc/cdroms scanning. It does not catch volume managers and such. Simply scan /dev/* for any block devices
- watchdog: WDIOC_SETTIMEOUT accepts seconds, not milliseconds
- watchdog: add -T option
- 28 September 2008 -- BusyBox 1.12.1 (stable), BusyBox 1.11.3 (stable)
BusyBox 1.12.1.
(git,
patches,
how to add a patch)
BusyBox 1.11.3.
(git,
patches,
how to add a patch)
Bugfix-only releases for 1.11.x and 1.12.x branches.
- 21 August 2008 -- BusyBox 1.12.0 (unstable), BusyBox 1.11.2 (stable)
BusyBox 1.12.0.
(git,
patches,
how to add a patch)
BusyBox 1.11.2.
(git,
patches,
how to add a patch)
Sizes of busybox-1.11.2 and busybox-1.12.0 (with equivalent config, static uclibc build):
text data bss dec hex filename
829687 617 7052 837356 cc6ec busybox-1.11.2/busybox
822961 594 6832 830387 cabb3 busybox-1.12.0/busybox
New applets: rdev (Grant Erickson), setfont, showkey (both by Vladimir)
Most significant changes since previous release (please report any regression):
- ash: bash compat: "shift $BIGNUM" is equivalent to "shift 1"
- ash: dont allow e.g. exec <&10 to attach to script's fd!
- ash: fix a bug where redirection fds were not closed afterwards. Optimize close+fcntl(DUPFD) into dup2
- ash: fix segfault in "command -v"
- ash: fix very weak $RANDOM generator
- ash: prevent exec NN>&- from closing fd used for script reading
- ash: teach ash about 123>file. It could take only 0..9 before
- hush: fix a case where "$@" must expand to no word at all
- hush: fix mishandling of a'b'c=fff as assignments. They are not
- hush: fix non-detection of builtins and applets in "v=break; ...; $v; ..." case
- hush: fix "while false; ..." exitcode; add testsuites
- hush: support "case...esac" statements (~350 bytes of code)
- hush: support "break [N]" and "continue [N]" statements
- hush: support "for if in do done then; do echo $if; done" case
- hush: support "for v; do ... done" syntax (implied 'in "$@"')
- hush: support $_NUMBERS variable names
- libbb: unified config parser (by Vladimir). This change affected many applets
Other changes:
- libbb: dump: do not use uninitialized memory (closes bug 4364)
- libbb: fix bb_strtol[l]'s check for "-" (closes bug 4174)
- libbb: fix --help to not affect "test --help"
- libbb: fix mishandling of "all argv are opts" in getopt32()
- libbb: getopt32() should not ever touch argv[0] (even read)
- libbb: introduce and use xrealloc_vector
- libbb: [x]fopen_for_{read,write} introduced and used (by Vladimir)
- lineedit: fix use-after-free
- libunarchive: refactor handling of archived files. "tar f file.tar.lzma" now works too
- bb_strtoXXX: close bug 4174 (potential use of buf[-1])
- open_transformer: don't leak file descriptor
- open_transformer: fix bug of calling exit instead of _exit
- arp: without -H type, assume "ether" (closes bug 4564)
- ar: reuse existing ar unpacking code
- awk: fix a case with multiple -f options. Simplify -f file reading.
- build system: introduce and use FAST_FUNC: regparm on i386, otherwise no-op
- bunzip2: fix an uncompression error (by Rob Landley rob AT landley.net)
- b[un]zip2, g[un]zip: unlink destination if -f is given (closes bug 3854)
- comm: almost total rewrite
- cpio: fix -m to actually work as expected (by Pascal Bellard)
- cpio: internalize archive_xread_all_eof, add a few paranoia checks for corrupted cpio files
- cpio: make long opts depend only on ENABLE_GETOPT_LONG
- cpio: on unpack, limit filename length to 8k
- cpio: support some long options
- crond: use execlp instead of execl
- cut: fix buffer overflow (closes bug 4544)
- envdir: fix "envdir" (no params at all) and "envdir dir" cases
- findfs: make it use setuid-ness of busybox binary
- fsck: use getmntent_r instead of open-coded parsing (by Vladimir)
- fuser: a bit of safety in scanf
- grep: option to use GNU regex matching instead of POSIX one. This fixes problems with NULs in files being scanned, but costs +800 bytes
- halt: signal init regardless of ENABLE_INIT
- httpd: add homedir directive specially for (and by) Walter Harms wharms AT bfs.de
- ifupdown: /etc/network/interfaces can have comments with leading blanks
- ifupdown: fixes for custom MAC address (by Wade Berrier wberrier AT gmail.com)
- ifupdown: fixes for shutdown of DHCP-managed interfaces (by Wade Berrier wberrier AT gmail.com)
- inetd: do not trash errno in signal handlers; in CHLD handler, stop looping through services when pid is found
- insmod: users report that "|| defined(__powerpc__)" is missing
- install: do not chown intermediate directories with install -d (by Natanael Copa)
- install: fix long option not taking params (closes bug 4584)
- lpd,lpr: send/receive ACKs after filenames, not only after file bodies
- ls: fix a bug where we may use uninintialized variable
- man: add handling of "man links", by Ivana Varekova varekova AT redhat.com
- man: fix a case when a full pathname to manpage is given
- man: fix inverted cat/man bool variable
- man: fix missed NULL termination of an array
- man: mimic "no manual entry for 'bogus'" message and exitcode
- man: support cat pages too (by Jason Curl jcurlnews AT arcor.de)
- man: teach it to use .lzma if requested by .config
- mdev: check for "/block/" substring for block dev detection
- mdev: do not complain if mdev.conf does not exist
- mdev: if device was moved at creation, at removal correctly remove it from moved location and also remove symlinks to it
- mdev: support for serializing hotplug
- mdev, init: use shared code for fd sanitization
- mkdir: fix "uname 0222; mkdir -p foo/bar" case (by Doug Graham dgraham AT nortel.com)
- modprobe: support for /etc/modprobe.d (by Timo Teras)
- modprobe: use buffering line reads (fgets()) instead of reads()
- modutils: optional modprobe-small (by Vladimir), 15kb smaller than standard one
- mount: support for "-o mand" and "[no]relatime"
- mount: support nfs mount option "nordiplus" (by Octavian Purdila opurdila AT ixiacom.com)
- mount: support "relatime" / "norelatime"
- mount: testsuite for "-o mand"
- msh: fix "while... continue; ..." (closes bug 3884)
- mv: fix a case when we move dangling symlink across mountpoints
- netstat: optional -p support (by L. Gabriel Somlo somlo AT cmu.edu)
- nmeter: fix read past the end of a buffer (closes bug 4594)
- od, hexdump: fix bug where xrealloc may move pointer, leaving other pointers dangling (closes bug 4104)
- pidof/killall: allow find_pid_by_name to find running processes started as scripts_with_name_longer_than_15_bytes.sh (closes bug 4054)
- printf: do not print garbage on "%Ld" (closes bug 4214)
- printf: fix %b, fix several bugs in %*.*, fix compat issues with aborting too early, support %zd; expand testsuite
- printf: protect against bogus format specifiers (closes bug 4184)
- sendmail: updates from Vladimir:
- sendmail: do not discard all headers
- sendmail: do not ignore CC; accept to: and cc: case-insensitively. +20 bytes
- sendmail: fixed mail recipient address
- sendmail: fixed SEGV if sender address is missed
- sendmail: use HOSTNAME instead of HOST when no server is explicitly specified
- sleep: if FANCY && DESKTOP, support fractional seconds, minutes, hours and so on (coreutils compat)
- ssd: CLOSE_EXTRA_FDS in MMU case too
- ssd: do not stat -x EXECUTABLE, it is not needed anymore
- ssd: fix -a without -x case
- ssd: use $PATH
- tar: fix handling of tarballs with symlinks with size field != 0
- tar: handle autodetection for tiny .tar.gz files too, simplify autodetection
- taskset: fix some careless code in both fancy and non-fancy cases. -5 bytes for fancy, +5 for non-fancy
- tee: fix infinite looping on open error (echo asd | tee "")
- tee: "-" is a name for stdout, handle it that way
- telnetd: fix issue file printing
- test: fix parser to prefer binop over unop, as coreutils does
- testsuite: uniformly use $ECHO with -n -e
- time: don't segfault with no arguments
- touch: support -r REF_FILE if ENABLE_DESKTOP (needed for blackfin compile)
- tr: fix "access past the end of a string" bug 4354
- tr: fix "tr [=" case (closes bug 4374)
- tr: fix yet another access past the end of a string (closes bug 4374)
- unlzma: fix memory leak (by Pascal Bellard)
- vi: fix reversed checks for underflow
- vi: using array data after it fell out of scope is stupid
- xargs: fix -e default to match newer GNU xargs, add SUS mandated -E (closes bug 4414)
- other fixes and code size reductions in many applets
- 12 July 2008 -- BusyBox 1.11.1 (stable)
BusyBox 1.11.1.
(git,
patches,
how to add a patch)
Bugfix-only release for 1.11.x branch. It contains fixes for awk,
bunzip2, cpio, ifupdown, ip, man, start-stop-daemon, uname and vi.
- 11 July 2008 -- HOWTO is updated
"How to build static busybox for i486-linux-uclibc" is updated
and tested on a fresh Fedora 9 install. Please report if it doesn't
work for you.
- Old News
Click here to read older news
|


Enter a pin number and set it on or off.
Pin:
Hover in and out of one of the boxes, and pins 5 (yellow) and 3 (red) will turn on or off.
Message history, reverse order (last first).


# Episode 023
## Integrating IdentityServer4
## Part 3: API
ASP.NET Core: From 0 to overkill
## In the previous episode
- Setup IdentityServer4 in the authentication service
## In this episode
- Authenticate API requests using an access token (JWT)
## The usual plugs...
- If these videos are being useful
- Like
- Share
- Leave feedback


1. Select and copy the fields from Eurocard report like so:
2. Paste in here from Eurocard:
3. Output (copy to spreadsheet):
Update


Error occured:
{{err}}
Registration successful!
Login >>
SmartRead - Sign up
Already a member?
Click here to login ››
Name:
Email:
Password:
Gender:
Male
Female
Sign up
Need help?
Please wait..


Sniff zzz judging you shed everywhere, climb the curtains scratched jump on the table purr chuf attack.

Stretching knock over the lamp toss the mousie catnip, shed everywhere kittens biting fluffy fur scratched sniff sunbathe meow.
Eat the grass biting kittens hiss judging you, leap sleep in the sink bat litter box zzz hiss.


#include <signal.h> typedef void (*sighandler_t)(int); int gsignal(int signum); sighandler_t ssignal(int signum, sighandler_t action);
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
gsignal(), ssignal(): _SVID_SOURCE
Elsewhere, on System V-like systems, these functions implement software signaling, entirely independent of the classical signal(2) and kill(2) functions. The function ssignal() defines the action to take when the software signal with number signum is raised using the function gsignal(), and returns the previous such action or SIG_DFL. The function gsignal() does the following: if no action (or the action SIG_DFL) was specified for signum, then it does nothing and returns 0. If the action SIG_IGN was specified for signum, then it does nothing and returns 1. Otherwise, it resets the action to SIG_DFL and calls the action function with argument signum, and returns the value returned by that function. The range of possible values signum varies (often 1-15 or 1-17).


ARP (Address Resolution Protocol) enables any computer to query the MAC address of an IP so that packets can reach their final physical destination. When a node wants to communicate with certain IP it checks it has the MAC address for that IP in its APR cache.If the node doesn’t have the MAC it broadcasts an ARP request.When the destination IP receives the ARP request it sends and ARP reply back to the node containing its MAC address.After receiving the ARP reply, the node updates its ARP cache and associates the MAC address with the destination IP.
During ARP poisoning, also known as ARP spoofing or ARP cache poisoning, the attacker sends ARP replies to a victim node to poison the victim’s ARP cache. Since the ARP protocol is stateless, the attacker can trivially modify the ARP cache and replace a legitimate MAC address with the attacker MAC address for any target IP in the victim’s cache.A successful ARP poisoning attack leads to a Man-in-the Middle conditions since any network traffic form the victim node to the target IP will go through the attacker first.
Follow the next steps to test for ARP poisoning bugs:
The first step in testing ARP poisoning attacks is to understand the basic attack scenarios.The following are common ARP poisoning scenarios:
The most common ARP poisoning scenario targets disclosing information by means of sniffing a network communication.An attacker selects two victims (A and B) to execute the eavesdropping attack.It then sends ARP replies to victim A indicating that the MAC for B’s IP is the attacker’s MAC and ARP replies to victim B indicating that the MAC for A’s IP is the attacker’s MAC. The attacker then sets IP forwarding so that packets are forward from A to B. Finally, the attacker uses a network monitoring tool to view the contents of the packets being exchanged from A to B.
In detail:
Another dangerous application of ARP poisoning consists of executing a phishing attack on a network node.For example, the attacker poisons a victim’s ARP cache so that when the victim visits its online banking site it receives a phished version of the banking site entirely controlled by the attacker instead of the original site.In a switched network this is done by tunneling all DNS responses from the gateway to the victim through the attacker.Upon receiving the DNS responses for the bank, the gateway will forward them to the attacker who can modify them at his own will and change the original bank’s IP with an IP corresponding to a phishing site.
In detail:
The next step in testing ARP poisoning bugs is to understand what causes them and how to defend against them.This will tell you what networks are susceptible to this attack and what measures to take to protect against them.
Switched Local Area Networks (LANs) are networks that utilize switches instead of hubs.Switches are more secure than hubs because they deliver packets to specific nodes rather than acting as broadcasters. As opposed to hub networks, a network node sniffing packets in promiscuous mode will not be able to monitor the traffic between another two nodes in a switched network. ARP Poisoning attacks are specific to switched networks and exist by default. Switched networks work by sending ARP requests and receiving ARP replies.The problem and root cause of this bug is that this protocol is stateless. A network node doesn’t check that an ARP reply actually comes as a reply from a legitimate ARP request. It just assumes that all ARP requests are legitimate giving room to ARP poisoning attacks.
ARP poisoning can’t be totally prevented but can be mitigated.A way of doing this is to have static ARP tables so that any changes in the ARP tables are disallowed.However, this is impractical in large or rapidly changing networks.A more reliable countermeasure consists of proactively denying ARP packets in a switched network. This method known as DHCP Snooping’s ARP Security, or Dynamic ARP Inspection, enforces a network policy that disallows any ARP packets to be forwarded if the source IP (Source Protocol Address field) is not genuine.
Additional ARP poisoning detection and prevention tools are available in the Internet.For instance, Unix-based Arpwatch sends an email notification as soon as an ARP cache entry changes or Windows-based XArp also offers configuration options to intercept any malicious ARP packets. Finally, it is also possible to configure Network Intrusion Detection Systems (NIDS) to add rules to protect against ARP spoofing attacks.
Now that you’ve learned ARP Poisoning attack scenarios, why are they caused, and how to defend against them, this guides on how to execute ARP poisoning basic test cases.
To test for ARP poisoning for network sniffing you will need two boxes (a victim and an attacker) in the same network and a gateway box.Follow these steps:
Expected results: The first check you can to see if the ARP attack was successful do is running the arp -a command in the victim box (or its Unix equivalent). After executing the attack the entry for the gateway must be different. For instance, in windows running arp -a before the attack gives this:
C:\>arp -a
Interface: <IP_ADDRESS> --- 0x8
Internet Address IP Address Type
<IP_ADDRESS> 00-13-49-5c-e3-de dynamic
<IP_ADDRESS> ff-ff-ff-ff-ff-ff static
<IP_ADDRESS> 01-00-5e-00-00-16 static
After the attack the gateway entry in the victim’s ARP cache must be different (it is now equal to the attacker’s MAC):
C:\>arp -a
Interface: <IP_ADDRESS> --- 0x8
Internet Address IP Address Type
<IP_ADDRESS> 00-1b-77-b2-73-f2 dynamic
<IP_ADDRESS> ff-ff-ff-ff-ff-ff static
<IP_ADDRESS> 01-00-5e-00-00-16 static
A successful ARP poisoning attack will be visible both in Cain and Wireshark. In Cain, the lower pain of the Sniffer->ARP tab shows the packets being sniffed. You can use Wireshark to see the actual contents of the packets.
To test for phishing of a network node we will use Cain’s ARP-DNS feature. The ARP-DNS feature does more than just sniffing network packets.It modifies the contents of any DNS reply to the victim and replaces the IP of the target DNS domain with the attacker’s IP.Follow these steps to execute the test case:
Expected results: You can verify if the ARP poisoning was successful by running the arp command as in the previous example. To verify the redirection/defacement check if step 5 takes you to malicioussite.org.
Now that you’ve executed the basic ARP poisoning test cases, you must consider additional attacks.This step consists of executing test cases such as sniffing an TLS connection and recovering a password by means of an ARP poisoning attack.Use tools such as Ettercap or Cain to execute the multiple attack variations of ARP poisoning including:
The problem with ARP poisoning attacks is that, while trivial to execute, they carry a high impact.In addition, operating systems like Windows don’t defend against them by default.It is necessary that you understand the attack scenarios related to ARP poisoning so that you realize the danger of these attacks. Then go over the causes and the countermeasures available.Finally, execute the basic test cases and any additional ones depending on the ARP poisoning attack variations you want.


Tbooks Help
Support
Many issues can be solved immediately by following these troubleshooting tips. If you are still having trouble, contact details for our support team can be found at the bottom of this section.
Help With Downloaded ebooks
Downloaded ebooks can be read on any compatible e-reading device. After you purchase an ebook, carefully follow the instructions on that ebook’s page. Ebooks downloaded to your computer will not automatically sync with your device.
iPad, iPhone
If you are on your iPad or iPhone (recommended):
- Make sure you have the iBooks App installed on your iPhone or iPad. (It does not come pre-installed on iPhones.) Need the iBooks App?
- Download the ebook and open it in the iBooks app when prompted.
If you are on your computer:
- Download the .epub ebook file to your computer.
- Drag the .epub file from your computer to iTunes. (If you have upgraded to OS X Mavericks, you will be unable to load the ebook from iTunes. You can either read the ebook on the iBooks desktop app or switch to your iOS device.
- Plug your iPad or iPhone into your computer.
- In iTunes, go into the "books" section and drag the ebook to your iPhone or iPad.
Nook
- Download the .epub ebook file to your computer.
- Connect the Nook to your computer and access it in Finder (Mac) or Windows Explorer (PC).
- Locate the folder: My Nook > MyFiles > Books.
- Drag and drop the .epub file to that folder.
- Search your Nook Library for the ebook’s title.
Kindle
- Download the .epub ebook file to your computer.
- Connect the Kindle to your computer.
- The Kindle will load as a storage device called "kindle" on the Desktop (Mac) or My Computer (PC).
- Open the "documents" folder located inside the "kindle" storage device.
- Drag and drop the .mobi file to the “documents” folder on your Kindle.
Android
- Download the .epub e-ebook file to your Android
- Install the Aldiko Book Reader App on your Android for free.
- Open the link provided on your Android’s web browser (the popup browser will not work).
- In the Aldiko App, go to "Files" > "Download" > find the .epub file > "Import".
Computer
- Download the .epub ebook file to your computer.
- Install Adobe Digital Editions; it’s free and our recommended reader.
- When the .epub file is finished downloading, open it with Adobe Digital Editions.
Web Reader Preview Troubleshooting
Choose a modern web browser
Book's Web Reader allows you to preview your ebook online in any modern web browser. However, we recommend Google Chrome for the best reading experience.
You can download Chrome here: https://www.google.com/chrome
Update your browser
The reader requires that you use a recent version of your browser.
Google Chrome (Mac / Windows): Use the latest version.
Chrome updates automatically. If you've encountered an error during an update, please visit Chrome's support page: https://support.google.com/chrome/answer/111996
Safari OS X (Mac): Use the latest version.
To check for Safari updates, go to the main Apple menu and select "Software Update."
See how here: http://support.apple.com/kb/HT1338
Safari iOS (iPad / iPhone): Use the latest version.
On your iPad / iPhone, go to Settings > General > Software Update to check for updates.
See how here: http://support.apple.com/kb/HT4623
Firefox (Mac / Windows): Use the latest version.
Firefox automatically updates by default, but if you have declined automatic updates, you can check for newer versions here:
http://support.mozilla.org/en-US/kb/update-firefox-latest-version
Internet Explorer (Windows): Use one of the two latest versions.
Download the most recent version of IE here:
http://www.microsoft.com/en-us/download/ie.aspx?q=internet+explorer
Android Browser: Use Android 2.3 and up.
The Android browser can only be updated if the device/carrier offers an update to the operating system.
Switch to a faster network connection
Ebook previews may take some time to load over a slow Internet connection. If a preview takes too long to load over a cellular broadband network on a mobile device, switch to wifi for better results. If you're connecting over wifi, try switching to a faster wifi network or a local-area network for better results.
Restart your browser, reset your browser's cache
It may be possible to resolve lingering technical issues by restarting your web browser, or by resetting your browser's cache. Here's how to reset your cache on our supported browsers:
- Google Chrome: http://support.google.com/chrome/bin/answer.py?hl=en&answer=95582
- Safari (OS X): http://support.apple.com/kb/PH11914
- Safari (iOS): http://support.apple.com/kb/ht1677
- Firefox: http://support.mozilla.org/en-US/kb/how-clear-firefox-cache
- Internet Explorer: http://support.microsoft.com/kb/260897
- Android browser: http://www.accessc.com/articles/clear-history-cookies-cache-android.html
Contact Support
If the above troubleshooting tips do not work for you or if you have a different problem, please contact<EMAIL_ADDRESS>The more information you can provide, the faster we'll be able to diagnose and fix your problem.


Select Active Task
Choose from a list of pre-defined active tasks
This task records fetal activity for a given duration of time,
in terms of the number of times the woman experiences kicks.
in terms of the number of times the woman experiences kicks.
Configurable parameters
Instructions
Duration over which to record the kick count
hr
Results captured from the task
Duration over which kick count is recorded
Number of kicks recorded
Time range for the chart
Allow rollback of chart?
Title for the chart
Short identifier name
Display name for the Stat (e.g. Total Hours of Activity Over 6 Months)
Display Units (e.g. hours)
Display Units (e.g. hours)
Formula for to be applied
Time ranges options available to the mobile app user
Questionnaire Frequency
Date/Time of launch(pick one)
Lifetime of the run and of the questionnaire
Time(s) of the day for daily occurrence
+
Start date (pick a date)
No. of days to repeat the questionnaire
No. of days to repeat the questionnaire
End Date
2/19/2017
Lifetime of each run
Until the next run comes up
Lifetime of the questionnaire
2/14/2017 - 2/19/2017
Day/Time (of the week)
Start date (pick a date)
No. of days to repeat the questionnaire
No. of days to repeat the questionnaire
End Date
2/19/2017
Lifetime of each run
Until the next run comes up
Lifetime of the questionnaire
2/14/2017 - 2/19/2017
Select Date/Time (of the month)
If the selected date is not available in a month, the last day of the month will be used instead
Start date (pick a date)
No. of months to repeat the questionnaire
No. of months to repeat the questionnaire
End Date
2/19/2017
Lifetime of each run
Until the next run comes up
Lifetime of the questionnaire
2/14/2017 - 2/19/2017
Select time period
to
to
+
Default Lifetime of each run
As defined by the start and end times selected above


Thousand Ways to Navigate in React Native
￼#ReactEurope￼
- Hi everyone! My name is Charles MANGWA, and today I’ll be talking about navigation in React Native apps
- Aka The Talk Where I Drive You Crazy With Insane Library Names
- So let me start by introducing myself real quick:
- As I said I’m Charles,
- I’m a student here in Paris,
- I’ve been a volunteer at this very conference for 3 years now and this year I’m on stage, giving my 1st
talk ever, no pressure at all btw
- And I've discovered React Native back in June 2015 during a school project and wrote my 1st app ever,
this Minions dictionary you can see right over there (let's be honest: still my best achievement to this day!).
- As time went by, I realised how important a great navigation experience was.
So should you remember anything from my talk, let it be this quote from my good friend Léo Le Bras, which perfectly
describes the whole thing in my opinion.
- Because React Native itself provides 3 solutions: Navigator, NavigatorIOS and NavigationExperimental
- But all of them are currently deprecated or not maintained anymore, which is a bummer.
- That’s why we’ve seen the rise of a couple navigation libraries for React Native …
- And Don’t worry: this is a drop in the ocean of what you can find on NPM … and that’s the part of the talk where you should start understanding itd title
- So, some names like
react-navigation
or react-native-router-flux
might be familiar to you already, because they are very popular today.
- Same goes for
react-native-navigation
and native-navigation
which are the only 2 native solutions that are still maintained! I think they clearly deserve a « Bravo! »
for that.
- But, since June 2016 I’d been working on a project with Léo, and none of those were exactly what we needed.
- So the project is called Wino. It’s an app that helps you find the wine you should buy, according to where and
when you’ll be drinking it, only available on iOS for now and 100% written in React Native.
- When we were building the app, among all these libraries, one really caught our attention:
react-router-native
.
- The reason we loved it that much fits in 2 words actually:
Just Components™
.
That’s everything you need, in order to use react-router
since their v4.
- So, in terms of navigation in React Native, this meant that every single component could potentially be considered
a full-fledged route, and enables a bunch of possibilities we had never seen before in React Native.
- The only drawback was that it doesn’t ship with a navigation structure. Which means that you cannot use it in
React Native to navigate between your screens with all the fancy animations we love so much. Yeah, I think some of you might see where I’m going with this 😏…
- Well, after nearly 10 months of hard work, with 9 of them spent looking for an available package name on NPM,
here’s the result of this work :
react-router-navigation
v.1 is available!
- The idea is fairly simple here: keep the Just Components™ spirit of
react-router
and just add mobile navigation on top of it. So we consider it more of an add-on than a proper navigation
library itself.
react-router-navigation
offers 6 different components:
- 1. We have
which renders
one screen at a time and provides transitions between screens
- 1. These screens which are in turn wrapped into our 2nd component: the
component.
So, what you see here is the simplest way to get up and running with
react-router-navigation
: you just use a single
component, and pass as many
as you want inside of it. And we use the exact same API than
react-router
, so you
don’t have to learn something else.
- 1. The next 2 components are quite similar
and
. If you’ve ever struggled navigating inside tab views: this
is for you!
- 1. And last but not least, the core element of the navigation in a mobile
application, the bottom navigation bar:
- The great thing with
react-router-navigation
is how simple and powerful it is,
because in the end: we’re just using components, as promised! So if you’ve already written a React JS or
React Native app: well, you already know how to use it!
- Now for the shoutouts, because we have to give props to all those great people working on libraries we rely on,
- I’m talking about
react-router
, react-navigation
and react-native-tab-view
we use for navigation, transitions, routing, tab
bars, deep linking, and a bunch of other cool stuff. So: let's give a round of applause to everyone working
on these libraries please!
- If you want more details about
react-router-navigation
because I couldn't put
everything in this talk, I’ve just published a Medium post where I take it further and add some real-world
examples.
- Don’t hesitate if you have any questions, Leo is somewhere around, I’ll be at the afterparty and you can find
us on Twitter. Thank you all for your time!


I am a Deep learning Researcher studying at Seoul National University, and also Chief Scientist & co-Founder at V.DO.


{% extends base_template_name %} {% block content %} {% load static %}
Any member of these organizations may view or respond
Choose recipients from your connections:
Choose recipients from organizations in your area:


Albums
Artists
Playlists
The
Musicker
Playlists
Playlist Name
Add an Playlist
Choose The Specific Playlist
×
The Specific Playlist ID
Cancel
View
Choose The Specific Playlist For More Information
Change The Playlist
×
The Playlist ID
Playlist Name
Cancel
Change
Change The Playlist
Delete The Playlist
×
The Playlist ID
Cancel
Delete
Delete The Playlist
Playlist ID
Playlist Name


Authorised Examiner management
Training
Practice on any class of vehicle without using slots or recording the outcome.
Non-MOT test
A non-MOT test will produce a test number and VT32/VE certificate. It will not show on a vehicle's MOT history.
{% extends "layout.html" %} {% block page_title %} 2FA - GOV.UK prototype {% endblock %} {% block service_name %} {% endblock %} {% block content %}
Practice on any class of vehicle without using slots or recording the outcome.
A non-MOT test will produce a test number and VT32/VE certificate. It will not show on a vehicle's MOT history.


Founded in 1999, Percussion Studio is a student-led organization at Texas A&M University dedicated to the art of percussive ensemble performances. We cover everything from traditional percussion ensembles with and without melody to more original pieces along the lines of many professional performing groups. This all combines to form a unique and original show at the end of each long semester and many other performances throughout the year.


#include <range.h>
Inherits impulse::Frame.
Inherited by impulse::RangeProto.
Public Member Functions | |
| Range (int from=0, int to=0) | |
| Range (Frame *proto) | |
| string | inspect () |
| string | toString () |
| unsigned int | from () |
| unsigned int | to () |
| unsigned int | size () |
| unsigned int | sum () |
| unsigned int | product () |
| impulse::Range::Range | ( | int | from = 0 , |
|
| int | to = 0 | |||
| ) | [inline] |
| impulse::Range::Range | ( | Frame * | proto | ) | [inline] |
| string impulse::Range::inspect | ( | ) | [inline, virtual] |
| string impulse::Range::toString | ( | ) | [inline, virtual] |
Reimplemented from impulse::Frame.
| unsigned int impulse::Range::from | ( | ) | [inline] |
| unsigned int impulse::Range::to | ( | ) | [inline] |
| unsigned int impulse::Range::size | ( | ) | [inline] |
| unsigned int impulse::Range::sum | ( | ) | [inline] |
| unsigned int impulse::Range::product | ( | ) | [inline] |