aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2017-07-21 09:50:55 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2017-07-21 09:50:55 +0200
commit72089cf6b4a77214ec4fd21d5ee5bf56958781cb (patch)
treea5cd9d8f47e909834d3dbc44f895556e68bcf18f
parent75d151e31d135ebab083307ded4e9b98970baa75 (diff)
downloadbusybox-w32-72089cf6b4a77214ec4fd21d5ee5bf56958781cb.tar.gz
busybox-w32-72089cf6b4a77214ec4fd21d5ee5bf56958781cb.tar.bz2
busybox-w32-72089cf6b4a77214ec4fd21d5ee5bf56958781cb.zip
config: deindent all help texts
Those two spaces after tab have no effect, and always a nuisance when editing. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--Config.in618
-rw-r--r--archival/Config.src4
-rw-r--r--archival/ar.c20
-rw-r--r--archival/bbunzip.c50
-rw-r--r--archival/bzip2.c20
-rw-r--r--archival/cpio.c20
-rw-r--r--archival/dpkg.c8
-rw-r--r--archival/dpkg_deb.c8
-rw-r--r--archival/gzip.c28
-rw-r--r--archival/lzop.c12
-rw-r--r--archival/rpm.c2
-rw-r--r--archival/rpm2cpio.c2
-rw-r--r--archival/tar.c44
-rw-r--r--archival/unzip.c16
-rw-r--r--console-tools/chvt.c4
-rw-r--r--console-tools/clear.c2
-rw-r--r--console-tools/deallocvt.c2
-rw-r--r--console-tools/dumpkmap.c4
-rw-r--r--console-tools/fgconsole.c2
-rw-r--r--console-tools/kbd_mode.c2
-rw-r--r--console-tools/loadfont.c10
-rw-r--r--console-tools/loadkmap.c4
-rw-r--r--console-tools/openvt.c4
-rw-r--r--console-tools/reset.c4
-rw-r--r--console-tools/resize.c12
-rw-r--r--console-tools/setconsole.c4
-rw-r--r--console-tools/setkeycodes.c4
-rw-r--r--console-tools/setlogcons.c2
-rw-r--r--console-tools/showkey.c2
-rw-r--r--coreutils/Config.src10
-rw-r--r--coreutils/basename.c6
-rw-r--r--coreutils/cat.c8
-rw-r--r--coreutils/chgrp.c2
-rw-r--r--coreutils/chmod.c2
-rw-r--r--coreutils/chown.c4
-rw-r--r--coreutils/chroot.c4
-rw-r--r--coreutils/cksum.c2
-rw-r--r--coreutils/comm.c4
-rw-r--r--coreutils/cp.c6
-rw-r--r--coreutils/cut.c4
-rw-r--r--coreutils/date.c28
-rw-r--r--coreutils/dd.c30
-rw-r--r--coreutils/df.c10
-rw-r--r--coreutils/dirname.c4
-rw-r--r--coreutils/dos2unix.c8
-rw-r--r--coreutils/du.c6
-rw-r--r--coreutils/echo.c2
-rw-r--r--coreutils/env.c6
-rw-r--r--coreutils/expand.c4
-rw-r--r--coreutils/expr.c10
-rw-r--r--coreutils/factor.c2
-rw-r--r--coreutils/false.c2
-rw-r--r--coreutils/fold.c2
-rw-r--r--coreutils/fsync.c2
-rw-r--r--coreutils/head.c4
-rw-r--r--coreutils/hostid.c4
-rw-r--r--coreutils/id.c4
-rw-r--r--coreutils/install.c2
-rw-r--r--coreutils/link.c2
-rw-r--r--coreutils/ln.c2
-rw-r--r--coreutils/logname.c2
-rw-r--r--coreutils/ls.c20
-rw-r--r--coreutils/md5_sha1_sum.c16
-rw-r--r--coreutils/mkdir.c2
-rw-r--r--coreutils/mkfifo.c4
-rw-r--r--coreutils/mknod.c4
-rw-r--r--coreutils/mktemp.c2
-rw-r--r--coreutils/mv.c2
-rw-r--r--coreutils/nice.c2
-rw-r--r--coreutils/nl.c2
-rw-r--r--coreutils/nohup.c2
-rw-r--r--coreutils/nproc.c2
-rw-r--r--coreutils/od.c2
-rw-r--r--coreutils/paste.c4
-rw-r--r--coreutils/printenv.c2
-rw-r--r--coreutils/printf.c4
-rw-r--r--coreutils/pwd.c2
-rw-r--r--coreutils/readlink.c6
-rw-r--r--coreutils/realpath.c4
-rw-r--r--coreutils/rm.c2
-rw-r--r--coreutils/rmdir.c6
-rw-r--r--coreutils/seq.c2
-rw-r--r--coreutils/shred.c2
-rw-r--r--coreutils/shuf.c2
-rw-r--r--coreutils/sleep.c22
-rw-r--r--coreutils/sort.c12
-rw-r--r--coreutils/split.c8
-rw-r--r--coreutils/stat.c12
-rw-r--r--coreutils/stty.c2
-rw-r--r--coreutils/sum.c2
-rw-r--r--coreutils/sync.c6
-rw-r--r--coreutils/tac.c2
-rw-r--r--coreutils/tail.c16
-rw-r--r--coreutils/tee.c6
-rw-r--r--coreutils/test.c12
-rw-r--r--coreutils/timeout.c4
-rw-r--r--coreutils/touch.c10
-rw-r--r--coreutils/tr.c18
-rw-r--r--coreutils/true.c2
-rw-r--r--coreutils/truncate.c4
-rw-r--r--coreutils/tty.c4
-rw-r--r--coreutils/uname.c8
-rw-r--r--coreutils/uniq.c2
-rw-r--r--coreutils/unlink.c2
-rw-r--r--coreutils/usleep.c2
-rw-r--r--coreutils/uudecode.c4
-rw-r--r--coreutils/uuencode.c2
-rw-r--r--coreutils/wc.c6
-rw-r--r--coreutils/who.c30
-rw-r--r--coreutils/whoami.c4
-rw-r--r--coreutils/yes.c4
-rw-r--r--debianutils/pipe_progress.c2
-rw-r--r--debianutils/run_parts.c20
-rw-r--r--debianutils/start_stop_daemon.c12
-rw-r--r--debianutils/which.c4
-rw-r--r--e2fsprogs/chattr.c2
-rw-r--r--e2fsprogs/fsck.c6
-rw-r--r--e2fsprogs/lsattr.c2
-rw-r--r--e2fsprogs/tune2fs.c4
-rw-r--r--editors/Config.src4
-rw-r--r--editors/awk.c18
-rw-r--r--editors/cmp.c4
-rw-r--r--editors/diff.c10
-rw-r--r--editors/ed.c6
-rw-r--r--editors/patch.c2
-rw-r--r--editors/sed.c4
-rw-r--r--editors/vi.c82
-rw-r--r--findutils/find.c66
-rw-r--r--findutils/grep.c12
-rw-r--r--findutils/xargs.c22
-rw-r--r--init/bootchartd.c42
-rw-r--r--init/halt.c20
-rw-r--r--init/init.c86
-rw-r--r--libbb/Config.src286
-rw-r--r--libbb/common_bufsiz.c46
-rw-r--r--libbb/parse_config.c2
-rw-r--r--libbb/u_signal_names.c4
-rw-r--r--loginutils/Config.src104
-rw-r--r--loginutils/add-remove-shell.c16
-rw-r--r--loginutils/addgroup.c8
-rw-r--r--loginutils/adduser.c20
-rw-r--r--loginutils/chpasswd.c6
-rw-r--r--loginutils/cryptpw.c10
-rw-r--r--loginutils/deluser.c8
-rw-r--r--loginutils/getty.c22
-rw-r--r--loginutils/login.c30
-rw-r--r--loginutils/passwd.c14
-rw-r--r--loginutils/su.c8
-rw-r--r--loginutils/sulogin.c4
-rw-r--r--loginutils/vlock.c6
-rw-r--r--mailutils/Config.src2
-rw-r--r--mailutils/makemime.c2
-rw-r--r--mailutils/popmaildir.c12
-rw-r--r--mailutils/reformime.c6
-rw-r--r--mailutils/sendmail.c2
-rw-r--r--miscutils/adjtimex.c4
-rw-r--r--miscutils/bbconfig.c18
-rw-r--r--miscutils/beep.c6
-rw-r--r--miscutils/chat.c40
-rw-r--r--miscutils/conspy.c8
-rw-r--r--miscutils/crond.c40
-rw-r--r--miscutils/crontab.c8
-rw-r--r--miscutils/dc.c8
-rw-r--r--miscutils/devfsd.c45
-rw-r--r--miscutils/devmem.c4
-rw-r--r--miscutils/fbsplash.c16
-rw-r--r--miscutils/flash_eraseall.c4
-rw-r--r--miscutils/flash_lock_unlock.c8
-rw-r--r--miscutils/flashcp.c4
-rw-r--r--miscutils/hdparm.c32
-rw-r--r--miscutils/i2c_tools.c8
-rw-r--r--miscutils/inotifyd.c4
-rw-r--r--miscutils/less.c36
-rw-r--r--miscutils/lsscsi.c6
-rw-r--r--miscutils/makedevs.c22
-rw-r--r--miscutils/man.c2
-rw-r--r--miscutils/microcom.c2
-rw-r--r--miscutils/mt.c6
-rw-r--r--miscutils/nandwrite.c4
-rw-r--r--miscutils/partprobe.c2
-rw-r--r--miscutils/raidautorun.c4
-rw-r--r--miscutils/readahead.c18
-rw-r--r--miscutils/rfkill.c10
-rw-r--r--miscutils/runlevel.c6
-rw-r--r--miscutils/rx.c2
-rw-r--r--miscutils/setserial.c2
-rw-r--r--miscutils/strings.c4
-rw-r--r--miscutils/time.c6
-rw-r--r--miscutils/ttysize.c8
-rw-r--r--miscutils/ubi_tools.c12
-rw-r--r--miscutils/ubirename.c2
-rw-r--r--miscutils/volname.c2
-rw-r--r--miscutils/watchdog.c12
-rw-r--r--modutils/Config.src150
-rw-r--r--modutils/depmod.c6
-rw-r--r--modutils/insmod.c2
-rw-r--r--modutils/lsmod.c8
-rw-r--r--modutils/modinfo.c2
-rw-r--r--modutils/modprobe.c14
-rw-r--r--modutils/rmmod.c2
-rw-r--r--networking/Config.src42
-rw-r--r--networking/arp.c2
-rw-r--r--networking/arping.c2
-rw-r--r--networking/brctl.c18
-rw-r--r--networking/dnsd.c2
-rw-r--r--networking/ether-wake.c2
-rw-r--r--networking/ftpd.c16
-rw-r--r--networking/ftpgetput.c4
-rw-r--r--networking/hostname.c4
-rw-r--r--networking/httpd.c96
-rw-r--r--networking/ifconfig.c24
-rw-r--r--networking/ifenslave.c4
-rw-r--r--networking/ifplugd.c2
-rw-r--r--networking/ifupdown.c64
-rw-r--r--networking/inetd.c14
-rw-r--r--networking/ip.c40
-rw-r--r--networking/ipcalc.c8
-rw-r--r--networking/isrv_identd.c4
-rw-r--r--networking/nameif.c34
-rw-r--r--networking/nbd-client.c2
-rw-r--r--networking/nc.c20
-rw-r--r--networking/netstat.c10
-rw-r--r--networking/nslookup.c2
-rw-r--r--networking/ntpd.c10
-rw-r--r--networking/ping.c10
-rw-r--r--networking/pscan.c2
-rw-r--r--networking/route.c2
-rw-r--r--networking/slattach.c4
-rw-r--r--networking/ssl_client.c2
-rw-r--r--networking/tcpudp.c8
-rw-r--r--networking/telnet.c18
-rw-r--r--networking/telnetd.c58
-rw-r--r--networking/tftp.c40
-rw-r--r--networking/traceroute.c8
-rw-r--r--networking/tunctl.c6
-rw-r--r--networking/udhcp/Config.src128
-rw-r--r--networking/udhcp/d6_dhcpc.c14
-rw-r--r--networking/vconfig.c2
-rw-r--r--networking/wget.c120
-rw-r--r--networking/whois.c2
-rw-r--r--networking/zcip.c10
-rw-r--r--printutils/lpd.c2
-rw-r--r--printutils/lpr.c4
-rw-r--r--procps/Config.src4
-rw-r--r--procps/free.c6
-rw-r--r--procps/fuser.c6
-rw-r--r--procps/iostat.c2
-rw-r--r--procps/kill.c20
-rw-r--r--procps/lsof.c4
-rw-r--r--procps/mpstat.c2
-rw-r--r--procps/nmeter.c2
-rw-r--r--procps/pgrep.c4
-rw-r--r--procps/pidof.c12
-rw-r--r--procps/pmap.c8
-rw-r--r--procps/powertop.c6
-rw-r--r--procps/ps.c16
-rw-r--r--procps/pstree.c2
-rw-r--r--procps/pwdx.c2
-rw-r--r--procps/smemcap.c4
-rw-r--r--procps/sysctl.c2
-rw-r--r--procps/top.c30
-rw-r--r--procps/uptime.c8
-rw-r--r--procps/watch.c4
-rw-r--r--runit/chpst.c14
-rw-r--r--runit/runsv.c4
-rw-r--r--runit/runsvdir.c12
-rw-r--r--runit/sv.c12
-rw-r--r--runit/svlogd.c6
-rw-r--r--selinux/chcon.c2
-rw-r--r--selinux/getenforce.c2
-rw-r--r--selinux/getsebool.c2
-rw-r--r--selinux/load_policy.c2
-rw-r--r--selinux/matchpathcon.c4
-rw-r--r--selinux/runcon.c2
-rw-r--r--selinux/selinuxenabled.c4
-rw-r--r--selinux/sestatus.c2
-rw-r--r--selinux/setenforce.c2
-rw-r--r--selinux/setfiles.c16
-rw-r--r--selinux/setsebool.c4
-rw-r--r--shell/Config.src124
-rw-r--r--shell/ash.c50
-rw-r--r--shell/cttyhack.c54
-rw-r--r--shell/hush.c54
-rw-r--r--sysklogd/klogd.c26
-rw-r--r--sysklogd/logger.c8
-rw-r--r--sysklogd/logread.c18
-rw-r--r--sysklogd/syslogd.c82
-rw-r--r--util-linux/Config.src60
-rw-r--r--util-linux/acpid.c18
-rw-r--r--util-linux/blkdiscard.c2
-rw-r--r--util-linux/blkid.c8
-rw-r--r--util-linux/blockdev.c2
-rw-r--r--util-linux/cal.c2
-rw-r--r--util-linux/chrt.c4
-rw-r--r--util-linux/dmesg.c40
-rw-r--r--util-linux/eject.c6
-rw-r--r--util-linux/fallocate.c2
-rw-r--r--util-linux/fatattr.c2
-rw-r--r--util-linux/fbset.c22
-rw-r--r--util-linux/fdformat.c2
-rw-r--r--util-linux/fdisk.c42
-rw-r--r--util-linux/findfs.c6
-rw-r--r--util-linux/flock.c2
-rw-r--r--util-linux/freeramdisk.c26
-rw-r--r--util-linux/fsck_minix.c12
-rw-r--r--util-linux/fsfreeze.c2
-rw-r--r--util-linux/fstrim.c2
-rw-r--r--util-linux/getopt.c14
-rw-r--r--util-linux/hexdump.c14
-rw-r--r--util-linux/hexdump_xxd.c4
-rw-r--r--util-linux/hwclock.c18
-rw-r--r--util-linux/ionice.c4
-rw-r--r--util-linux/ipcrm.c6
-rw-r--r--util-linux/ipcs.c4
-rw-r--r--util-linux/last.c6
-rw-r--r--util-linux/losetup.c6
-rw-r--r--util-linux/lspci.c6
-rw-r--r--util-linux/lsusb.c6
-rw-r--r--util-linux/mdev.c34
-rw-r--r--util-linux/mesg.c14
-rw-r--r--util-linux/mkfs_ext2.c4
-rw-r--r--util-linux/mkfs_minix.c12
-rw-r--r--util-linux/mkfs_reiser.c4
-rw-r--r--util-linux/mkfs_vfat.c4
-rw-r--r--util-linux/mkswap.c18
-rw-r--r--util-linux/more.c10
-rw-r--r--util-linux/mount.c62
-rw-r--r--util-linux/mountpoint.c2
-rw-r--r--util-linux/nsenter.c6
-rw-r--r--util-linux/pivot_root.c12
-rw-r--r--util-linux/rdate.c8
-rw-r--r--util-linux/rdev.c2
-rw-r--r--util-linux/readprofile.c2
-rw-r--r--util-linux/renice.c4
-rw-r--r--util-linux/rev.c2
-rw-r--r--util-linux/rtcwake.c2
-rw-r--r--util-linux/script.c2
-rw-r--r--util-linux/scriptreplay.c4
-rw-r--r--util-linux/setarch.c12
-rw-r--r--util-linux/setpriv.c24
-rw-r--r--util-linux/setsid.c2
-rw-r--r--util-linux/swaponoff.c18
-rw-r--r--util-linux/switch_root.c24
-rw-r--r--util-linux/taskset.c10
-rw-r--r--util-linux/uevent.c4
-rw-r--r--util-linux/umount.c10
-rw-r--r--util-linux/unshare.c2
-rw-r--r--util-linux/volume_id/exfat.c6
-rw-r--r--util-linux/volume_id/f2fs.c8
-rw-r--r--util-linux/volume_id/nilfs.c18
-rw-r--r--util-linux/volume_id/squashfs.c8
-rw-r--r--util-linux/volume_id/ubifs.c4
-rw-r--r--util-linux/wall.c2
353 files changed, 2643 insertions, 2644 deletions
diff --git a/Config.in b/Config.in
index cf72287be..c1cc591f3 100644
--- a/Config.in
+++ b/Config.in
@@ -15,314 +15,314 @@ config DESKTOP
15 bool "Enable compatibility for full-blown desktop systems" 15 bool "Enable compatibility for full-blown desktop systems"
16 default y 16 default y
17 help 17 help
18 Enable applet options and features which are not essential. 18 Enable applet options and features which are not essential.
19 Many applet options have dedicated config options to (de)select them 19 Many applet options have dedicated config options to (de)select them
20 under that applet; this options enables those options which have no 20 under that applet; this options enables those options which have no
21 individual config item for them. 21 individual config item for them.
22 22
23 Select this if you plan to use busybox on full-blown desktop machine 23 Select this if you plan to use busybox on full-blown desktop machine
24 with common Linux distro, which needs higher level of command-line 24 with common Linux distro, which needs higher level of command-line
25 compatibility. 25 compatibility.
26 26
27 If you are preparing your build to be used on an embedded box 27 If you are preparing your build to be used on an embedded box
28 where you have tighter control over the entire set of userspace 28 where you have tighter control over the entire set of userspace
29 tools, you can unselect this option for smaller code size. 29 tools, you can unselect this option for smaller code size.
30 30
31config EXTRA_COMPAT 31config EXTRA_COMPAT
32 bool "Provide compatible behavior for rare corner cases (bigger code)" 32 bool "Provide compatible behavior for rare corner cases (bigger code)"
33 default n 33 default n
34 help 34 help
35 This option makes grep, sed etc handle rare corner cases 35 This option makes grep, sed etc handle rare corner cases
36 (embedded NUL bytes and such). This makes code bigger and uses 36 (embedded NUL bytes and such). This makes code bigger and uses
37 some GNU extensions in libc. You probably only need this option 37 some GNU extensions in libc. You probably only need this option
38 if you plan to run busybox on desktop. 38 if you plan to run busybox on desktop.
39 39
40config INCLUDE_SUSv2 40config INCLUDE_SUSv2
41 bool "Enable obsolete features removed before SUSv3" 41 bool "Enable obsolete features removed before SUSv3"
42 default y 42 default y
43 help 43 help
44 This option will enable backwards compatibility with SuSv2, 44 This option will enable backwards compatibility with SuSv2,
45 specifically, old-style numeric options ('command -1 <file>') 45 specifically, old-style numeric options ('command -1 <file>')
46 will be supported in head, tail, and fold. (Note: should 46 will be supported in head, tail, and fold. (Note: should
47 affect renice too.) 47 affect renice too.)
48 48
49config LONG_OPTS 49config LONG_OPTS
50 bool "Support --long-options" 50 bool "Support --long-options"
51 default y 51 default y
52 help 52 help
53 Enable this if you want busybox applets to use the gnu --long-option 53 Enable this if you want busybox applets to use the gnu --long-option
54 style, in addition to single character -a -b -c style options. 54 style, in addition to single character -a -b -c style options.
55 55
56config SHOW_USAGE 56config SHOW_USAGE
57 bool "Show applet usage messages" 57 bool "Show applet usage messages"
58 default y 58 default y
59 help 59 help
60 Enabling this option, BusyBox applets will show terse help messages 60 Enabling this option, BusyBox applets will show terse help messages
61 when invoked with wrong arguments. 61 when invoked with wrong arguments.
62 If you do not want to show any (helpful) usage message when 62 If you do not want to show any (helpful) usage message when
63 issuing wrong command syntax, you can say 'N' here, 63 issuing wrong command syntax, you can say 'N' here,
64 saving approximately 7k. 64 saving approximately 7k.
65 65
66config FEATURE_VERBOSE_USAGE 66config FEATURE_VERBOSE_USAGE
67 bool "Show verbose applet usage messages" 67 bool "Show verbose applet usage messages"
68 default y 68 default y
69 depends on SHOW_USAGE 69 depends on SHOW_USAGE
70 help 70 help
71 All BusyBox applets will show verbose help messages when 71 All BusyBox applets will show verbose help messages when
72 busybox is invoked with --help. This will add a lot of text to the 72 busybox is invoked with --help. This will add a lot of text to the
73 busybox binary. In the default configuration, this will add about 73 busybox binary. In the default configuration, this will add about
74 13k, but it can add much more depending on your configuration. 74 13k, but it can add much more depending on your configuration.
75 75
76config FEATURE_COMPRESS_USAGE 76config FEATURE_COMPRESS_USAGE
77 bool "Store applet usage messages in compressed form" 77 bool "Store applet usage messages in compressed form"
78 default y 78 default y
79 depends on SHOW_USAGE 79 depends on SHOW_USAGE
80 help 80 help
81 Store usage messages in .bz compressed form, uncompress them 81 Store usage messages in .bz compressed form, uncompress them
82 on-the-fly when <applet> --help is called. 82 on-the-fly when <applet> --help is called.
83 83
84 If you have a really tiny busybox with few applets enabled (and 84 If you have a really tiny busybox with few applets enabled (and
85 bunzip2 isn't one of them), the overhead of the decompressor might 85 bunzip2 isn't one of them), the overhead of the decompressor might
86 be noticeable. Also, if you run executables directly from ROM 86 be noticeable. Also, if you run executables directly from ROM
87 and have very little memory, this might not be a win. Otherwise, 87 and have very little memory, this might not be a win. Otherwise,
88 you probably want this. 88 you probably want this.
89 89
90config LFS 90config LFS
91 bool "Support files > 2 GB" 91 bool "Support files > 2 GB"
92 default y 92 default y
93 help 93 help
94 If you want to build BusyBox with large file support, then enable 94 If you want to build BusyBox with large file support, then enable
95 this option. This will have no effect if your kernel or your C 95 this option. This will have no effect if your kernel or your C
96 library lacks large file support for large files. Some of the 96 library lacks large file support for large files. Some of the
97 programs that can benefit from large file support include dd, gzip, 97 programs that can benefit from large file support include dd, gzip,
98 cp, mount, tar, and many others. If you want to access files larger 98 cp, mount, tar, and many others. If you want to access files larger
99 than 2 Gigabytes, enable this option. 99 than 2 Gigabytes, enable this option.
100 100
101config PAM 101config PAM
102 bool "Support PAM (Pluggable Authentication Modules)" 102 bool "Support PAM (Pluggable Authentication Modules)"
103 default n 103 default n
104 help 104 help
105 Use PAM in some busybox applets (currently login and httpd) instead 105 Use PAM in some busybox applets (currently login and httpd) instead
106 of direct access to password database. 106 of direct access to password database.
107 107
108config FEATURE_DEVPTS 108config FEATURE_DEVPTS
109 bool "Use the devpts filesystem for Unix98 PTYs" 109 bool "Use the devpts filesystem for Unix98 PTYs"
110 default y 110 default y
111 help 111 help
112 Enable if you want BusyBox to use Unix98 PTY support. If enabled, 112 Enable if you want BusyBox to use Unix98 PTY support. If enabled,
113 busybox will use /dev/ptmx for the master side of the pseudoterminal 113 busybox will use /dev/ptmx for the master side of the pseudoterminal
114 and /dev/pts/<number> for the slave side. Otherwise, BSD style 114 and /dev/pts/<number> for the slave side. Otherwise, BSD style
115 /dev/ttyp<number> will be used. To use this option, you should have 115 /dev/ttyp<number> will be used. To use this option, you should have
116 devpts mounted. 116 devpts mounted.
117 117
118config FEATURE_UTMP 118config FEATURE_UTMP
119 bool "Support utmp file" 119 bool "Support utmp file"
120 default y 120 default y
121 help 121 help
122 The file /var/run/utmp is used to track who is currently logged in. 122 The file /var/run/utmp is used to track who is currently logged in.
123 With this option on, certain applets (getty, login, telnetd etc) 123 With this option on, certain applets (getty, login, telnetd etc)
124 will create and delete entries there. 124 will create and delete entries there.
125 "who" applet requires this option. 125 "who" applet requires this option.
126 126
127config FEATURE_WTMP 127config FEATURE_WTMP
128 bool "Support wtmp file" 128 bool "Support wtmp file"
129 default y 129 default y
130 depends on FEATURE_UTMP 130 depends on FEATURE_UTMP
131 help 131 help
132 The file /var/run/wtmp is used to track when users have logged into 132 The file /var/run/wtmp is used to track when users have logged into
133 and logged out of the system. 133 and logged out of the system.
134 With this option on, certain applets (getty, login, telnetd etc) 134 With this option on, certain applets (getty, login, telnetd etc)
135 will append new entries there. 135 will append new entries there.
136 "last" applet requires this option. 136 "last" applet requires this option.
137 137
138config FEATURE_PIDFILE 138config FEATURE_PIDFILE
139 bool "Support writing pidfiles" 139 bool "Support writing pidfiles"
140 default y 140 default y
141 help 141 help
142 This option makes some applets (e.g. crond, syslogd, inetd) write 142 This option makes some applets (e.g. crond, syslogd, inetd) write
143 a pidfile at the configured PID_FILE_PATH. It has no effect 143 a pidfile at the configured PID_FILE_PATH. It has no effect
144 on applets which require pidfiles to run. 144 on applets which require pidfiles to run.
145 145
146config PID_FILE_PATH 146config PID_FILE_PATH
147 string "Directory for pidfiles" 147 string "Directory for pidfiles"
148 default "/var/run" 148 default "/var/run"
149 depends on FEATURE_PIDFILE 149 depends on FEATURE_PIDFILE
150 help 150 help
151 This is the default path where pidfiles are created. Applets which 151 This is the default path where pidfiles are created. Applets which
152 allow you to set the pidfile path on the command line will override 152 allow you to set the pidfile path on the command line will override
153 this value. The option has no effect on applets that require you to 153 this value. The option has no effect on applets that require you to
154 specify a pidfile path. 154 specify a pidfile path.
155 155
156config BUSYBOX 156config BUSYBOX
157 bool "Include busybox applet" 157 bool "Include busybox applet"
158 default y 158 default y
159 help 159 help
160 The busybox applet provides general help regarding busybox and 160 The busybox applet provides general help regarding busybox and
161 allows the included applets to be listed. It's also required 161 allows the included applets to be listed. It's also required
162 if applet links are to be installed at runtime. If you unselect 162 if applet links are to be installed at runtime. If you unselect
163 this option, running busybox without any arguments will give 163 this option, running busybox without any arguments will give
164 just a cryptic error message: 164 just a cryptic error message:
165 165
166 $ busybox 166 $ busybox
167 busybox: applet not found 167 busybox: applet not found
168 168
169 Running "busybox APPLET [ARGS...]" will still work, of course. 169 Running "busybox APPLET [ARGS...]" will still work, of course.
170 170
171config FEATURE_INSTALLER 171config FEATURE_INSTALLER
172 bool "Support --install [-s] to install applet links at runtime" 172 bool "Support --install [-s] to install applet links at runtime"
173 default y 173 default y
174 depends on BUSYBOX 174 depends on BUSYBOX
175 help 175 help
176 Enable 'busybox --install [-s]' support. This will allow you to use 176 Enable 'busybox --install [-s]' support. This will allow you to use
177 busybox at runtime to create hard links or symlinks for all the 177 busybox at runtime to create hard links or symlinks for all the
178 applets that are compiled into busybox. 178 applets that are compiled into busybox.
179 179
180config INSTALL_NO_USR 180config INSTALL_NO_USR
181 bool "Don't use /usr" 181 bool "Don't use /usr"
182 default n 182 default n
183 help 183 help
184 Disable use of /usr. busybox --install and "make install" 184 Disable use of /usr. busybox --install and "make install"
185 will install applets only to /bin and /sbin, 185 will install applets only to /bin and /sbin,
186 never to /usr/bin or /usr/sbin. 186 never to /usr/bin or /usr/sbin.
187 187
188config FEATURE_SUID 188config FEATURE_SUID
189 bool "Drop SUID state for most applets" 189 bool "Drop SUID state for most applets"
190 default y 190 default y
191 help 191 help
192 With this option you can install the busybox binary belonging 192 With this option you can install the busybox binary belonging
193 to root with the suid bit set, enabling some applets to perform 193 to root with the suid bit set, enabling some applets to perform
194 root-level operations even when run by ordinary users 194 root-level operations even when run by ordinary users
195 (for example, mounting of user mounts in fstab needs this). 195 (for example, mounting of user mounts in fstab needs this).
196 196
197 With this option enabled, Busybox drops privileges for applets 197 With this option enabled, Busybox drops privileges for applets
198 that don't need root access, before entering their main() function. 198 that don't need root access, before entering their main() function.
199 199
200 If you are really paranoid and don't want even initial busybox code 200 If you are really paranoid and don't want even initial busybox code
201 to run under root for evey applet, build two busybox binaries with 201 to run under root for evey applet, build two busybox binaries with
202 different applets in them (and the appropriate symlinks pointing 202 different applets in them (and the appropriate symlinks pointing
203 to each binary), and only set the suid bit on the one that needs it. 203 to each binary), and only set the suid bit on the one that needs it.
204 204
205 Some applets which require root rights (need suid bit on the binary 205 Some applets which require root rights (need suid bit on the binary
206 or to be run by root) and will refuse to execute otherwise: 206 or to be run by root) and will refuse to execute otherwise:
207 crontab, login, passwd, su, vlock, wall. 207 crontab, login, passwd, su, vlock, wall.
208 208
209 The applets which will use root rights if they have them 209 The applets which will use root rights if they have them
210 (via suid bit, or because run by root), but would try to work 210 (via suid bit, or because run by root), but would try to work
211 without root right nevertheless: 211 without root right nevertheless:
212 findfs, ping[6], traceroute[6], mount. 212 findfs, ping[6], traceroute[6], mount.
213 213
214 Note that if you DO NOT select this option, but DO make busybox 214 Note that if you DO NOT select this option, but DO make busybox
215 suid root, ALL applets will run under root, which is a huge 215 suid root, ALL applets will run under root, which is a huge
216 security hole (think "cp /some/file /etc/passwd"). 216 security hole (think "cp /some/file /etc/passwd").
217 217
218config FEATURE_SUID_CONFIG 218config FEATURE_SUID_CONFIG
219 bool "Enable SUID configuration via /etc/busybox.conf" 219 bool "Enable SUID configuration via /etc/busybox.conf"
220 default y 220 default y
221 depends on FEATURE_SUID 221 depends on FEATURE_SUID
222 help 222 help
223 Allow the SUID/SGID state of an applet to be determined at runtime 223 Allow the SUID/SGID state of an applet to be determined at runtime
224 by checking /etc/busybox.conf. (This is sort of a poor man's sudo.) 224 by checking /etc/busybox.conf. (This is sort of a poor man's sudo.)
225 The format of this file is as follows: 225 The format of this file is as follows:
226 226
227 APPLET = [Ssx-][Ssx-][x-] [USER.GROUP] 227 APPLET = [Ssx-][Ssx-][x-] [USER.GROUP]
228 228
229 s: USER or GROUP is allowed to execute APPLET. 229 s: USER or GROUP is allowed to execute APPLET.
230 APPLET will run under USER or GROUP 230 APPLET will run under USER or GROUP
231 (reagardless of who's running it). 231 (regardless of who's running it).
232 S: USER or GROUP is NOT allowed to execute APPLET. 232 S: USER or GROUP is NOT allowed to execute APPLET.
233 APPLET will run under USER or GROUP. 233 APPLET will run under USER or GROUP.
234 This option is not very sensical. 234 This option is not very sensical.
235 x: USER/GROUP/others are allowed to execute APPLET. 235 x: USER/GROUP/others are allowed to execute APPLET.
236 No UID/GID change will be done when it is run. 236 No UID/GID change will be done when it is run.
237 -: USER/GROUP/others are not allowed to execute APPLET. 237 -: USER/GROUP/others are not allowed to execute APPLET.
238 238
239 An example might help: 239 An example might help:
240 240
241 [SUID] 241 |[SUID]
242 su = ssx root.0 # applet su can be run by anyone and runs with 242 |su = ssx root.0 # applet su can be run by anyone and runs with
243 # euid=0,egid=0 243 | # euid=0,egid=0
244 su = ssx # exactly the same 244 |su = ssx # exactly the same
245 245 |
246 mount = sx- root.disk # applet mount can be run by root and members 246 |mount = sx- root.disk # applet mount can be run by root and members
247 # of group disk (but not anyone else) 247 | # of group disk (but not anyone else)
248 # and runs with euid=0 (egid is not changed) 248 | # and runs with euid=0 (egid is not changed)
249 249 |
250 cp = --- # disable applet cp for everyone 250 |cp = --- # disable applet cp for everyone
251 251
252 The file has to be owned by user root, group root and has to be 252 The file has to be owned by user root, group root and has to be
253 writeable only by root: 253 writeable only by root:
254 (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf) 254 (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf)
255 The busybox executable has to be owned by user root, group 255 The busybox executable has to be owned by user root, group
256 root and has to be setuid root for this to work: 256 root and has to be setuid root for this to work:
257 (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox) 257 (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox)
258 258
259 Robert 'sandman' Griebl has more information here: 259 Robert 'sandman' Griebl has more information here:
260 <url: http://www.softforge.de/bb/suid.html >. 260 <url: http://www.softforge.de/bb/suid.html >.
261 261
262config FEATURE_SUID_CONFIG_QUIET 262config FEATURE_SUID_CONFIG_QUIET
263 bool "Suppress warning message if /etc/busybox.conf is not readable" 263 bool "Suppress warning message if /etc/busybox.conf is not readable"
264 default y 264 default y
265 depends on FEATURE_SUID_CONFIG 265 depends on FEATURE_SUID_CONFIG
266 help 266 help
267 /etc/busybox.conf should be readable by the user needing the SUID, 267 /etc/busybox.conf should be readable by the user needing the SUID,
268 check this option to avoid users to be notified about missing 268 check this option to avoid users to be notified about missing
269 permissions. 269 permissions.
270 270
271config FEATURE_PREFER_APPLETS 271config FEATURE_PREFER_APPLETS
272 bool "exec prefers applets" 272 bool "exec prefers applets"
273 default n 273 default n
274 help 274 help
275 This is an experimental option which directs applets about to 275 This is an experimental option which directs applets about to
276 call 'exec' to try and find an applicable busybox applet before 276 call 'exec' to try and find an applicable busybox applet before
277 searching the PATH. This is typically done by exec'ing 277 searching the PATH. This is typically done by exec'ing
278 /proc/self/exe. 278 /proc/self/exe.
279 279
280 This may affect shell, find -exec, xargs and similar applets. 280 This may affect shell, find -exec, xargs and similar applets.
281 They will use applets even if /bin/APPLET -> busybox link 281 They will use applets even if /bin/APPLET -> busybox link
282 is missing (or is not a link to busybox). However, this causes 282 is missing (or is not a link to busybox). However, this causes
283 problems in chroot jails without mounted /proc and with ps/top 283 problems in chroot jails without mounted /proc and with ps/top
284 (command name can be shown as 'exe' for applets started this way). 284 (command name can be shown as 'exe' for applets started this way).
285 285
286config BUSYBOX_EXEC_PATH 286config BUSYBOX_EXEC_PATH
287 string "Path to BusyBox executable" 287 string "Path to BusyBox executable"
288 default "/proc/self/exe" 288 default "/proc/self/exe"
289 help 289 help
290 When Busybox applets need to run other busybox applets, BusyBox 290 When Busybox applets need to run other busybox applets, BusyBox
291 sometimes needs to exec() itself. When the /proc filesystem is 291 sometimes needs to exec() itself. When the /proc filesystem is
292 mounted, /proc/self/exe always points to the currently running 292 mounted, /proc/self/exe always points to the currently running
293 executable. If you haven't got /proc, set this to wherever you 293 executable. If you haven't got /proc, set this to wherever you
294 want to run BusyBox from. 294 want to run BusyBox from.
295 295
296config SELINUX 296config SELINUX
297 bool "Support NSA Security Enhanced Linux" 297 bool "Support NSA Security Enhanced Linux"
298 default n 298 default n
299 select PLATFORM_LINUX 299 select PLATFORM_LINUX
300 help 300 help
301 Enable support for SELinux in applets ls, ps, and id. Also provide 301 Enable support for SELinux in applets ls, ps, and id. Also provide
302 the option of compiling in SELinux applets. 302 the option of compiling in SELinux applets.
303 303
304 If you do not have a complete SELinux userland installed, this stuff 304 If you do not have a complete SELinux userland installed, this stuff
305 will not compile. Specifially, libselinux 1.28 or better is 305 will not compile. Specifially, libselinux 1.28 or better is
306 directly required by busybox. If the installation is located in a 306 directly required by busybox. If the installation is located in a
307 non-standard directory, provide it by invoking make as follows: 307 non-standard directory, provide it by invoking make as follows:
308 308
309 CFLAGS=-I<libselinux-include-path> \ 309 CFLAGS=-I<libselinux-include-path> \
310 LDFLAGS=-L<libselinux-lib-path> \ 310 LDFLAGS=-L<libselinux-lib-path> \
311 make 311 make
312 312
313 Most people will leave this set to 'N'. 313 Most people will leave this set to 'N'.
314 314
315config FEATURE_CLEAN_UP 315config FEATURE_CLEAN_UP
316 bool "Clean up all memory before exiting (usually not needed)" 316 bool "Clean up all memory before exiting (usually not needed)"
317 default n 317 default n
318 help 318 help
319 As a size optimization, busybox normally exits without explicitly 319 As a size optimization, busybox normally exits without explicitly
320 freeing dynamically allocated memory or closing files. This saves 320 freeing dynamically allocated memory or closing files. This saves
321 space since the OS will clean up for us, but it can confuse debuggers 321 space since the OS will clean up for us, but it can confuse debuggers
322 like valgrind, which report tons of memory and resource leaks. 322 like valgrind, which report tons of memory and resource leaks.
323 323
324 Don't enable this unless you have a really good reason to clean 324 Don't enable this unless you have a really good reason to clean
325 things up manually. 325 things up manually.
326 326
327# These are auto-selected by other options 327# These are auto-selected by other options
328 328
@@ -330,26 +330,26 @@ config FEATURE_SYSLOG
330 bool #No description makes it a hidden option 330 bool #No description makes it a hidden option
331 default n 331 default n
332 #help 332 #help
333 # This option is auto-selected when you select any applet which may 333 #This option is auto-selected when you select any applet which may
334 # send its output to syslog. You do not need to select it manually. 334 #send its output to syslog. You do not need to select it manually.
335 335
336config FEATURE_HAVE_RPC 336config FEATURE_HAVE_RPC
337 bool #No description makes it a hidden option 337 bool #No description makes it a hidden option
338 default n 338 default n
339 #help 339 #help
340 # This is automatically selected if any of enabled applets need it. 340 #This is automatically selected if any of enabled applets need it.
341 # You do not need to select it manually. 341 #You do not need to select it manually.
342 342
343config PLATFORM_LINUX 343config PLATFORM_LINUX
344 bool #No description makes it a hidden option 344 bool #No description makes it a hidden option
345 default n 345 default n
346 #help 346 #help
347 # For the most part, busybox requires only POSIX compatibility 347 #For the most part, busybox requires only POSIX compatibility
348 # from the target system, but some applets and features use 348 #from the target system, but some applets and features use
349 # Linux-specific interfaces. 349 #Linux-specific interfaces.
350 # 350 #
351 # This is automatically selected if any applet or feature requires 351 #This is automatically selected if any applet or feature requires
352 # Linux-specific interfaces. You do not need to select it manually. 352 #Linux-specific interfaces. You do not need to select it manually.
353 353
354comment 'Build Options' 354comment 'Build Options'
355 355
@@ -357,37 +357,37 @@ config STATIC
357 bool "Build BusyBox as a static binary (no shared libs)" 357 bool "Build BusyBox as a static binary (no shared libs)"
358 default n 358 default n
359 help 359 help
360 If you want to build a static BusyBox binary, which does not 360 If you want to build a static BusyBox binary, which does not
361 use or require any shared libraries, then enable this option. 361 use or require any shared libraries, then enable this option.
362 This can cause BusyBox to be considerably larger, so you should 362 This can cause BusyBox to be considerably larger, so you should
363 leave this option false unless you have a good reason (i.e. 363 leave this option false unless you have a good reason (i.e.
364 your target platform does not support shared libraries, or 364 your target platform does not support shared libraries, or
365 you are building an initrd which doesn't need anything but 365 you are building an initrd which doesn't need anything but
366 BusyBox, etc). 366 BusyBox, etc).
367 367
368 Most people will leave this set to 'N'. 368 Most people will leave this set to 'N'.
369 369
370config PIE 370config PIE
371 bool "Build BusyBox as a position independent executable" 371 bool "Build BusyBox as a position independent executable"
372 default n 372 default n
373 depends on !STATIC 373 depends on !STATIC
374 help 374 help
375 Hardened code option. PIE binaries are loaded at a different 375 Hardened code option. PIE binaries are loaded at a different
376 address at each invocation. This has some overhead, 376 address at each invocation. This has some overhead,
377 particularly on x86-32 which is short on registers. 377 particularly on x86-32 which is short on registers.
378 378
379 Most people will leave this set to 'N'. 379 Most people will leave this set to 'N'.
380 380
381config NOMMU 381config NOMMU
382 bool "Force NOMMU build" 382 bool "Force NOMMU build"
383 default n 383 default n
384 help 384 help
385 Busybox tries to detect whether architecture it is being 385 Busybox tries to detect whether architecture it is being
386 built against supports MMU or not. If this detection fails, 386 built against supports MMU or not. If this detection fails,
387 or if you want to build NOMMU version of busybox for testing, 387 or if you want to build NOMMU version of busybox for testing,
388 you may force NOMMU build here. 388 you may force NOMMU build here.
389 389
390 Most people will leave this set to 'N'. 390 Most people will leave this set to 'N'.
391 391
392# PIE can be made to work with BUILD_LIBBUSYBOX, but currently 392# PIE can be made to work with BUILD_LIBBUSYBOX, but currently
393# build system does not support that 393# build system does not support that
@@ -396,128 +396,128 @@ config BUILD_LIBBUSYBOX
396 default n 396 default n
397 depends on !FEATURE_PREFER_APPLETS && !PIE && !STATIC 397 depends on !FEATURE_PREFER_APPLETS && !PIE && !STATIC
398 help 398 help
399 Build a shared library libbusybox.so.N.N.N which contains all 399 Build a shared library libbusybox.so.N.N.N which contains all
400 busybox code. 400 busybox code.
401 401
402 This feature allows every applet to be built as a really tiny 402 This feature allows every applet to be built as a really tiny
403 separate executable linked against the library: 403 separate executable linked against the library:
404 $ size 0_lib/l* 404 |$ size 0_lib/l*
405 text data bss dec hex filename 405 | text data bss dec hex filename
406 939 212 28 1179 49b 0_lib/last 406 | 939 212 28 1179 49b 0_lib/last
407 939 212 28 1179 49b 0_lib/less 407 | 939 212 28 1179 49b 0_lib/less
408 919138 8328 1556 929022 e2cfe 0_lib/libbusybox.so.1.N.M 408 | 919138 8328 1556 929022 e2cfe 0_lib/libbusybox.so.1.N.M
409 409
410 This is useful on NOMMU systems which are not capable 410 This is useful on NOMMU systems which are not capable
411 of sharing executables, but are capable of sharing code 411 of sharing executables, but are capable of sharing code
412 in dynamic libraries. 412 in dynamic libraries.
413 413
414config FEATURE_LIBBUSYBOX_STATIC 414config FEATURE_LIBBUSYBOX_STATIC
415 bool "Pull in all external references into libbusybox" 415 bool "Pull in all external references into libbusybox"
416 default n 416 default n
417 depends on BUILD_LIBBUSYBOX 417 depends on BUILD_LIBBUSYBOX
418 help 418 help
419 Make libbusybox library independent, not using or requiring 419 Make libbusybox library independent, not using or requiring
420 any other shared libraries. 420 any other shared libraries.
421 421
422config FEATURE_INDIVIDUAL 422config FEATURE_INDIVIDUAL
423 bool "Produce a binary for each applet, linked against libbusybox" 423 bool "Produce a binary for each applet, linked against libbusybox"
424 default y 424 default y
425 depends on BUILD_LIBBUSYBOX 425 depends on BUILD_LIBBUSYBOX
426 help 426 help
427 If your CPU architecture doesn't allow for sharing text/rodata 427 If your CPU architecture doesn't allow for sharing text/rodata
428 sections of running binaries, but allows for runtime dynamic 428 sections of running binaries, but allows for runtime dynamic
429 libraries, this option will allow you to reduce memory footprint 429 libraries, this option will allow you to reduce memory footprint
430 when you have many different applets running at once. 430 when you have many different applets running at once.
431 431
432 If your CPU architecture allows for sharing text/rodata, 432 If your CPU architecture allows for sharing text/rodata,
433 having single binary is more optimal. 433 having single binary is more optimal.
434 434
435 Each applet will be a tiny program, dynamically linked 435 Each applet will be a tiny program, dynamically linked
436 against libbusybox.so.N.N.N. 436 against libbusybox.so.N.N.N.
437 437
438 You need to have a working dynamic linker. 438 You need to have a working dynamic linker.
439 439
440config FEATURE_SHARED_BUSYBOX 440config FEATURE_SHARED_BUSYBOX
441 bool "Produce additional busybox binary linked against libbusybox" 441 bool "Produce additional busybox binary linked against libbusybox"
442 default y 442 default y
443 depends on BUILD_LIBBUSYBOX 443 depends on BUILD_LIBBUSYBOX
444 help 444 help
445 Build busybox, dynamically linked against libbusybox.so.N.N.N. 445 Build busybox, dynamically linked against libbusybox.so.N.N.N.
446 446
447 You need to have a working dynamic linker. 447 You need to have a working dynamic linker.
448 448
449### config BUILD_AT_ONCE 449### config BUILD_AT_ONCE
450### bool "Compile all sources at once" 450### bool "Compile all sources at once"
451### default n 451### default n
452### help 452### help
453### Normally each source-file is compiled with one invocation of 453### Normally each source-file is compiled with one invocation of
454### the compiler. 454### the compiler.
455### If you set this option, all sources are compiled at once. 455### If you set this option, all sources are compiled at once.
456### This gives the compiler more opportunities to optimize which can 456### This gives the compiler more opportunities to optimize which can
457### result in smaller and/or faster binaries. 457### result in smaller and/or faster binaries.
458### 458###
459### Setting this option will consume alot of memory, e.g. if you 459### Setting this option will consume alot of memory, e.g. if you
460### enable all applets with all features, gcc uses more than 300MB 460### enable all applets with all features, gcc uses more than 300MB
461### RAM during compilation of busybox. 461### RAM during compilation of busybox.
462### 462###
463### This option is most likely only beneficial for newer compilers 463### This option is most likely only beneficial for newer compilers
464### such as gcc-4.1 and above. 464### such as gcc-4.1 and above.
465### 465###
466### Say 'N' unless you know what you are doing. 466### Say 'N' unless you know what you are doing.
467 467
468config CROSS_COMPILER_PREFIX 468config CROSS_COMPILER_PREFIX
469 string "Cross Compiler prefix" 469 string "Cross Compiler prefix"
470 default "" 470 default ""
471 help 471 help
472 If you want to build BusyBox with a cross compiler, then you 472 If you want to build BusyBox with a cross compiler, then you
473 will need to set this to the cross-compiler prefix, for example, 473 will need to set this to the cross-compiler prefix, for example,
474 "i386-uclibc-". 474 "i386-uclibc-".
475 475
476 Note that CROSS_COMPILE environment variable or 476 Note that CROSS_COMPILE environment variable or
477 "make CROSS_COMPILE=xxx ..." will override this selection. 477 "make CROSS_COMPILE=xxx ..." will override this selection.
478 478
479 Native builds leave this empty. 479 Native builds leave this empty.
480 480
481config SYSROOT 481config SYSROOT
482 string "Path to sysroot" 482 string "Path to sysroot"
483 default "" 483 default ""
484 help 484 help
485 If you want to build BusyBox with a cross compiler, then you 485 If you want to build BusyBox with a cross compiler, then you
486 might also need to specify where /usr/include and /usr/lib 486 might also need to specify where /usr/include and /usr/lib
487 will be found. 487 will be found.
488 488
489 For example, BusyBox can be built against an installed 489 For example, BusyBox can be built against an installed
490 Android NDK, platform version 9, for ARM ABI with 490 Android NDK, platform version 9, for ARM ABI with
491 491
492 CONFIG_SYSROOT=/opt/android-ndk/platforms/android-9/arch-arm 492 CONFIG_SYSROOT=/opt/android-ndk/platforms/android-9/arch-arm
493 493
494 Native builds leave this empty. 494 Native builds leave this empty.
495 495
496config EXTRA_CFLAGS 496config EXTRA_CFLAGS
497 string "Additional CFLAGS" 497 string "Additional CFLAGS"
498 default "" 498 default ""
499 help 499 help
500 Additional CFLAGS to pass to the compiler verbatim. 500 Additional CFLAGS to pass to the compiler verbatim.
501 501
502config EXTRA_LDFLAGS 502config EXTRA_LDFLAGS
503 string "Additional LDFLAGS" 503 string "Additional LDFLAGS"
504 default "" 504 default ""
505 help 505 help
506 Additional LDFLAGS to pass to the linker verbatim. 506 Additional LDFLAGS to pass to the linker verbatim.
507 507
508config EXTRA_LDLIBS 508config EXTRA_LDLIBS
509 string "Additional LDLIBS" 509 string "Additional LDLIBS"
510 default "" 510 default ""
511 help 511 help
512 Additional LDLIBS to pass to the linker with -l. 512 Additional LDLIBS to pass to the linker with -l.
513 513
514config USE_PORTABLE_CODE 514config USE_PORTABLE_CODE
515 bool "Avoid using GCC-specific code constructs" 515 bool "Avoid using GCC-specific code constructs"
516 default n 516 default n
517 help 517 help
518 Use this option if you are trying to compile busybox with 518 Use this option if you are trying to compile busybox with
519 compiler other than gcc. 519 compiler other than gcc.
520 If you do use gcc, this option may needlessly increase code size. 520 If you do use gcc, this option may needlessly increase code size.
521 521
522comment 'Installation Options ("make install" behavior)' 522comment 'Installation Options ("make install" behavior)'
523 523
@@ -525,32 +525,32 @@ choice
525 prompt "What kind of applet links to install" 525 prompt "What kind of applet links to install"
526 default INSTALL_APPLET_SYMLINKS 526 default INSTALL_APPLET_SYMLINKS
527 help 527 help
528 Choose what kind of links to applets are created by "make install". 528 Choose what kind of links to applets are created by "make install".
529 529
530config INSTALL_APPLET_SYMLINKS 530config INSTALL_APPLET_SYMLINKS
531 bool "as soft-links" 531 bool "as soft-links"
532 help 532 help
533 Install applets as soft-links to the busybox binary. This needs some 533 Install applets as soft-links to the busybox binary. This needs some
534 free inodes on the filesystem, but might help with filesystem 534 free inodes on the filesystem, but might help with filesystem
535 generators that can't cope with hard-links. 535 generators that can't cope with hard-links.
536 536
537config INSTALL_APPLET_HARDLINKS 537config INSTALL_APPLET_HARDLINKS
538 bool "as hard-links" 538 bool "as hard-links"
539 help 539 help
540 Install applets as hard-links to the busybox binary. This might 540 Install applets as hard-links to the busybox binary. This might
541 count on a filesystem with few inodes. 541 count on a filesystem with few inodes.
542 542
543config INSTALL_APPLET_SCRIPT_WRAPPERS 543config INSTALL_APPLET_SCRIPT_WRAPPERS
544 bool "as script wrappers" 544 bool "as script wrappers"
545 help 545 help
546 Install applets as script wrappers that call the busybox binary. 546 Install applets as script wrappers that call the busybox binary.
547 547
548config INSTALL_APPLET_DONT 548config INSTALL_APPLET_DONT
549 bool "not installed" 549 bool "not installed"
550 help 550 help
551 Do not install applet links. Useful when you plan to use 551 Do not install applet links. Useful when you plan to use
552 busybox --install for installing links, or plan to use 552 busybox --install for installing links, or plan to use
553 a standalone shell and thus don't need applet links. 553 a standalone shell and thus don't need applet links.
554 554
555endchoice 555endchoice
556 556
@@ -559,23 +559,23 @@ choice
559 default INSTALL_SH_APPLET_SYMLINK 559 default INSTALL_SH_APPLET_SYMLINK
560 depends on INSTALL_APPLET_SCRIPT_WRAPPERS 560 depends on INSTALL_APPLET_SCRIPT_WRAPPERS
561 help 561 help
562 Choose how you install /bin/sh applet link. 562 Choose how you install /bin/sh applet link.
563 563
564config INSTALL_SH_APPLET_SYMLINK 564config INSTALL_SH_APPLET_SYMLINK
565 bool "as soft-link" 565 bool "as soft-link"
566 help 566 help
567 Install /bin/sh applet as soft-link to the busybox binary. 567 Install /bin/sh applet as soft-link to the busybox binary.
568 568
569config INSTALL_SH_APPLET_HARDLINK 569config INSTALL_SH_APPLET_HARDLINK
570 bool "as hard-link" 570 bool "as hard-link"
571 help 571 help
572 Install /bin/sh applet as hard-link to the busybox binary. 572 Install /bin/sh applet as hard-link to the busybox binary.
573 573
574config INSTALL_SH_APPLET_SCRIPT_WRAPPER 574config INSTALL_SH_APPLET_SCRIPT_WRAPPER
575 bool "as script wrapper" 575 bool "as script wrapper"
576 help 576 help
577 Install /bin/sh applet as script wrapper that calls 577 Install /bin/sh applet as script wrapper that calls
578 the busybox binary. 578 the busybox binary.
579 579
580endchoice 580endchoice
581 581
@@ -583,7 +583,7 @@ config PREFIX
583 string "BusyBox installation prefix" 583 string "BusyBox installation prefix"
584 default "./_install" 584 default "./_install"
585 help 585 help
586 Define your directory to install BusyBox files/subdirs in. 586 Define your directory to install BusyBox files/subdirs in.
587 587
588comment 'Debugging Options' 588comment 'Debugging Options'
589 589
@@ -591,81 +591,81 @@ config DEBUG
591 bool "Build BusyBox with extra Debugging symbols" 591 bool "Build BusyBox with extra Debugging symbols"
592 default n 592 default n
593 help 593 help
594 Say Y here if you wish to examine BusyBox internals while applets are 594 Say Y here if you wish to examine BusyBox internals while applets are
595 running. This increases the size of the binary considerably, and 595 running. This increases the size of the binary considerably, and
596 should only be used when doing development. If you are doing 596 should only be used when doing development. If you are doing
597 development and want to debug BusyBox, answer Y. 597 development and want to debug BusyBox, answer Y.
598 598
599 Most people should answer N. 599 Most people should answer N.
600 600
601config DEBUG_PESSIMIZE 601config DEBUG_PESSIMIZE
602 bool "Disable compiler optimizations" 602 bool "Disable compiler optimizations"
603 default n 603 default n
604 depends on DEBUG 604 depends on DEBUG
605 help 605 help
606 The compiler's optimization of source code can eliminate and reorder 606 The compiler's optimization of source code can eliminate and reorder
607 code, resulting in an executable that's hard to understand when 607 code, resulting in an executable that's hard to understand when
608 stepping through it with a debugger. This switches it off, resulting 608 stepping through it with a debugger. This switches it off, resulting
609 in a much bigger executable that more closely matches the source 609 in a much bigger executable that more closely matches the source
610 code. 610 code.
611 611
612config DEBUG_SANITIZE 612config DEBUG_SANITIZE
613 bool "Enable runtime sanitizers (ASAN/LSAN/USAN/etc...)" 613 bool "Enable runtime sanitizers (ASAN/LSAN/USAN/etc...)"
614 default n 614 default n
615 help 615 help
616 Say Y here if you want to enable runtime sanitizers. These help 616 Say Y here if you want to enable runtime sanitizers. These help
617 catch bad memory accesses (e.g. buffer overflows), but will make 617 catch bad memory accesses (e.g. buffer overflows), but will make
618 the executable larger and slow down runtime a bit. 618 the executable larger and slow down runtime a bit.
619 619
620 This adds -fsanitize=foo options to gcc command line. 620 This adds -fsanitize=foo options to gcc command line.
621 621
622 If you aren't developing/testing busybox, say N here. 622 If you aren't developing/testing busybox, say N here.
623 623
624config UNIT_TEST 624config UNIT_TEST
625 bool "Build unit tests" 625 bool "Build unit tests"
626 default n 626 default n
627 help 627 help
628 Say Y here if you want to build unit tests (both the framework and 628 Say Y here if you want to build unit tests (both the framework and
629 test cases) as a Busybox applet. This results in bigger code, so you 629 test cases) as a Busybox applet. This results in bigger code, so you
630 probably don't want this option in production builds. 630 probably don't want this option in production builds.
631 631
632config WERROR 632config WERROR
633 bool "Abort compilation on any warning" 633 bool "Abort compilation on any warning"
634 default n 634 default n
635 help 635 help
636 This adds -Werror to gcc command line. 636 This adds -Werror to gcc command line.
637 637
638 Most people should answer N. 638 Most people should answer N.
639 639
640choice 640choice
641 prompt "Additional debugging library" 641 prompt "Additional debugging library"
642 default NO_DEBUG_LIB 642 default NO_DEBUG_LIB
643 help 643 help
644 Using an additional debugging library will make BusyBox become 644 Using an additional debugging library will make BusyBox become
645 considerable larger and will cause it to run more slowly. You 645 considerable larger and will cause it to run more slowly. You
646 should always leave this option disabled for production use. 646 should always leave this option disabled for production use.
647 647
648 dmalloc support: 648 dmalloc support:
649 ---------------- 649 ----------------
650 This enables compiling with dmalloc ( http://dmalloc.com/ ) 650 This enables compiling with dmalloc ( http://dmalloc.com/ )
651 which is an excellent public domain mem leak and malloc problem 651 which is an excellent public domain mem leak and malloc problem
652 detector. To enable dmalloc, before running busybox you will 652 detector. To enable dmalloc, before running busybox you will
653 want to properly set your environment, for example: 653 want to properly set your environment, for example:
654 export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile 654 export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
655 The 'debug=' value is generated using the following command 655 The 'debug=' value is generated using the following command
656 dmalloc -p log-stats -p log-non-free -p log-bad-space \ 656 dmalloc -p log-stats -p log-non-free -p log-bad-space \
657 -p log-elapsed-time -p check-fence -p check-heap \ 657 -p log-elapsed-time -p check-fence -p check-heap \
658 -p check-lists -p check-blank -p check-funcs -p realloc-copy \ 658 -p check-lists -p check-blank -p check-funcs -p realloc-copy \
659 -p allow-free-null 659 -p allow-free-null
660 660
661 Electric-fence support: 661 Electric-fence support:
662 ----------------------- 662 -----------------------
663 This enables compiling with Electric-fence support. Electric 663 This enables compiling with Electric-fence support. Electric
664 fence is another very useful malloc debugging library which uses 664 fence is another very useful malloc debugging library which uses
665 your computer's virtual memory hardware to detect illegal memory 665 your computer's virtual memory hardware to detect illegal memory
666 accesses. This support will make BusyBox be considerable larger 666 accesses. This support will make BusyBox be considerable larger
667 and run slower, so you should leave this option disabled unless 667 and run slower, so you should leave this option disabled unless
668 you are hunting a hard to find memory problem. 668 you are hunting a hard to find memory problem.
669 669
670 670
671config NO_DEBUG_LIB 671config NO_DEBUG_LIB
diff --git a/archival/Config.src b/archival/Config.src
index 4bb46f167..449914565 100644
--- a/archival/Config.src
+++ b/archival/Config.src
@@ -32,7 +32,7 @@ config FEATURE_LZMA_FAST
32 default n 32 default n
33 depends on UNLZMA || LZCAT || LZMA || FEATURE_SEAMLESS_LZMA 33 depends on UNLZMA || LZCAT || LZMA || FEATURE_SEAMLESS_LZMA
34 help 34 help
35 This option reduces decompression time by about 25% at the cost of 35 This option reduces decompression time by about 25% at the cost of
36 a 1K bigger binary. 36 a 1K bigger binary.
37 37
38endmenu 38endmenu
diff --git a/archival/ar.c b/archival/ar.c
index 8e4d81eeb..2886d155b 100644
--- a/archival/ar.c
+++ b/archival/ar.c
@@ -21,29 +21,29 @@
21//config: bool "ar (9.5 kb)" 21//config: bool "ar (9.5 kb)"
22//config: default n # needs to be improved to be able to replace binutils ar 22//config: default n # needs to be improved to be able to replace binutils ar
23//config: help 23//config: help
24//config: ar is an archival utility program used to create, modify, and 24//config: ar is an archival utility program used to create, modify, and
25//config: extract contents from archives. In practice, it is used exclusively 25//config: extract contents from archives. In practice, it is used exclusively
26//config: for object module archives used by compilers. 26//config: for object module archives used by compilers.
27//config: 27//config:
28//config: Unless you have a specific application which requires ar, you should 28//config: Unless you have a specific application which requires ar, you should
29//config: probably say N here: most compilers come with their own ar utility. 29//config: probably say N here: most compilers come with their own ar utility.
30//config: 30//config:
31//config:config FEATURE_AR_LONG_FILENAMES 31//config:config FEATURE_AR_LONG_FILENAMES
32//config: bool "Support long filenames (not needed for debs)" 32//config: bool "Support long filenames (not needed for debs)"
33//config: default y 33//config: default y
34//config: depends on AR 34//config: depends on AR
35//config: help 35//config: help
36//config: By default the ar format can only store the first 15 characters 36//config: By default the ar format can only store the first 15 characters
37//config: of the filename, this option removes that limitation. 37//config: of the filename, this option removes that limitation.
38//config: It supports the GNU ar long filename method which moves multiple long 38//config: It supports the GNU ar long filename method which moves multiple long
39//config: filenames into a the data section of a new ar entry. 39//config: filenames into a the data section of a new ar entry.
40//config: 40//config:
41//config:config FEATURE_AR_CREATE 41//config:config FEATURE_AR_CREATE
42//config: bool "Support archive creation" 42//config: bool "Support archive creation"
43//config: default y 43//config: default y
44//config: depends on AR 44//config: depends on AR
45//config: help 45//config: help
46//config: This enables archive creation (-c and -r) with busybox ar. 46//config: This enables archive creation (-c and -r) with busybox ar.
47 47
48//applet:IF_AR(APPLET(ar, BB_DIR_USR_BIN, BB_SUID_DROP)) 48//applet:IF_AR(APPLET(ar, BB_DIR_USR_BIN, BB_SUID_DROP))
49//kbuild:lib-$(CONFIG_AR) += ar.o 49//kbuild:lib-$(CONFIG_AR) += ar.o
diff --git a/archival/bbunzip.c b/archival/bbunzip.c
index bf18a7485..d2b162d5e 100644
--- a/archival/bbunzip.c
+++ b/archival/bbunzip.c
@@ -240,8 +240,8 @@ char* FAST_FUNC make_new_name_generic(char *filename, const char *expected_ext)
240//config: bool "uncompress (7.1 kb)" 240//config: bool "uncompress (7.1 kb)"
241//config: default n # ancient 241//config: default n # ancient
242//config: help 242//config: help
243//config: uncompress is used to decompress archives created by compress. 243//config: uncompress is used to decompress archives created by compress.
244//config: Not much used anymore, replaced by gzip/gunzip. 244//config: Not much used anymore, replaced by gzip/gunzip.
245 245
246//applet:IF_UNCOMPRESS(APPLET(uncompress, BB_DIR_BIN, BB_SUID_DROP)) 246//applet:IF_UNCOMPRESS(APPLET(uncompress, BB_DIR_BIN, BB_SUID_DROP))
247//kbuild:lib-$(CONFIG_UNCOMPRESS) += bbunzip.o 247//kbuild:lib-$(CONFIG_UNCOMPRESS) += bbunzip.o
@@ -316,16 +316,16 @@ int uncompress_main(int argc UNUSED_PARAM, char **argv)
316//config: default y 316//config: default y
317//config: select FEATURE_GZIP_DECOMPRESS 317//config: select FEATURE_GZIP_DECOMPRESS
318//config: help 318//config: help
319//config: gunzip is used to decompress archives created by gzip. 319//config: gunzip is used to decompress archives created by gzip.
320//config: You can use the `-t' option to test the integrity of 320//config: You can use the `-t' option to test the integrity of
321//config: an archive, without decompressing it. 321//config: an archive, without decompressing it.
322//config: 322//config:
323//config:config ZCAT 323//config:config ZCAT
324//config: bool "zcat (25 kb)" 324//config: bool "zcat (25 kb)"
325//config: default y 325//config: default y
326//config: select FEATURE_GZIP_DECOMPRESS 326//config: select FEATURE_GZIP_DECOMPRESS
327//config: help 327//config: help
328//config: Alias to "gunzip -c". 328//config: Alias to "gunzip -c".
329//config: 329//config:
330//config:config FEATURE_GUNZIP_LONG_OPTIONS 330//config:config FEATURE_GUNZIP_LONG_OPTIONS
331//config: bool "Enable long options" 331//config: bool "Enable long options"
@@ -429,21 +429,21 @@ int gunzip_main(int argc UNUSED_PARAM, char **argv)
429//config: default y 429//config: default y
430//config: select FEATURE_BZIP2_DECOMPRESS 430//config: select FEATURE_BZIP2_DECOMPRESS
431//config: help 431//config: help
432//config: bunzip2 is a compression utility using the Burrows-Wheeler block 432//config: bunzip2 is a compression utility using the Burrows-Wheeler block
433//config: sorting text compression algorithm, and Huffman coding. Compression 433//config: sorting text compression algorithm, and Huffman coding. Compression
434//config: is generally considerably better than that achieved by more 434//config: is generally considerably better than that achieved by more
435//config: conventional LZ77/LZ78-based compressors, and approaches the 435//config: conventional LZ77/LZ78-based compressors, and approaches the
436//config: performance of the PPM family of statistical compressors. 436//config: performance of the PPM family of statistical compressors.
437//config: 437//config:
438//config: Unless you have a specific application which requires bunzip2, you 438//config: Unless you have a specific application which requires bunzip2, you
439//config: should probably say N here. 439//config: should probably say N here.
440//config: 440//config:
441//config:config BZCAT 441//config:config BZCAT
442//config: bool "bzcat (8.8 kb)" 442//config: bool "bzcat (8.8 kb)"
443//config: default y 443//config: default y
444//config: select FEATURE_BZIP2_DECOMPRESS 444//config: select FEATURE_BZIP2_DECOMPRESS
445//config: help 445//config: help
446//config: Alias to "bunzip2 -c". 446//config: Alias to "bunzip2 -c".
447 447
448//applet:IF_BUNZIP2(APPLET(bunzip2, BB_DIR_USR_BIN, BB_SUID_DROP)) 448//applet:IF_BUNZIP2(APPLET(bunzip2, BB_DIR_USR_BIN, BB_SUID_DROP))
449// APPLET_ODDNAME:name main location suid_type help 449// APPLET_ODDNAME:name main location suid_type help
@@ -496,23 +496,23 @@ int bunzip2_main(int argc UNUSED_PARAM, char **argv)
496//config: bool "unlzma (8.6 kb)" 496//config: bool "unlzma (8.6 kb)"
497//config: default y 497//config: default y
498//config: help 498//config: help
499//config: unlzma is a compression utility using the Lempel-Ziv-Markov chain 499//config: unlzma is a compression utility using the Lempel-Ziv-Markov chain
500//config: compression algorithm, and range coding. Compression 500//config: compression algorithm, and range coding. Compression
501//config: is generally considerably better than that achieved by the bzip2 501//config: is generally considerably better than that achieved by the bzip2
502//config: compressors. 502//config: compressors.
503//config: 503//config:
504//config:config LZCAT 504//config:config LZCAT
505//config: bool "lzcat (8.5 kb)" 505//config: bool "lzcat (8.5 kb)"
506//config: default y 506//config: default y
507//config: help 507//config: help
508//config: Alias to "unlzma -c". 508//config: Alias to "unlzma -c".
509//config: 509//config:
510//config:config LZMA 510//config:config LZMA
511//config: bool "lzma -d" 511//config: bool "lzma -d"
512//config: default y 512//config: default y
513//config: help 513//config: help
514//config: Enable this option if you want commands like "lzma -d" to work. 514//config: Enable this option if you want commands like "lzma -d" to work.
515//config: IOW: you'll get lzma applet, but it will always require -d option. 515//config: IOW: you'll get lzma applet, but it will always require -d option.
516 516
517//applet:IF_UNLZMA(APPLET(unlzma, BB_DIR_USR_BIN, BB_SUID_DROP)) 517//applet:IF_UNLZMA(APPLET(unlzma, BB_DIR_USR_BIN, BB_SUID_DROP))
518// APPLET_ODDNAME:name main location suid_type help 518// APPLET_ODDNAME:name main location suid_type help
@@ -567,20 +567,20 @@ int unlzma_main(int argc UNUSED_PARAM, char **argv)
567//config: bool "unxz (13 kb)" 567//config: bool "unxz (13 kb)"
568//config: default y 568//config: default y
569//config: help 569//config: help
570//config: unxz is a unlzma successor. 570//config: unxz is a unlzma successor.
571//config: 571//config:
572//config:config XZCAT 572//config:config XZCAT
573//config: bool "xzcat (13 kb)" 573//config: bool "xzcat (13 kb)"
574//config: default y 574//config: default y
575//config: help 575//config: help
576//config: Alias to "unxz -c". 576//config: Alias to "unxz -c".
577//config: 577//config:
578//config:config XZ 578//config:config XZ
579//config: bool "xz -d" 579//config: bool "xz -d"
580//config: default y 580//config: default y
581//config: help 581//config: help
582//config: Enable this option if you want commands like "xz -d" to work. 582//config: Enable this option if you want commands like "xz -d" to work.
583//config: IOW: you'll get xz applet, but it will always require -d option. 583//config: IOW: you'll get xz applet, but it will always require -d option.
584 584
585//applet:IF_UNXZ(APPLET(unxz, BB_DIR_USR_BIN, BB_SUID_DROP)) 585//applet:IF_UNXZ(APPLET(unxz, BB_DIR_USR_BIN, BB_SUID_DROP))
586// APPLET_ODDNAME:name main location suid_type help 586// APPLET_ODDNAME:name main location suid_type help
diff --git a/archival/bzip2.c b/archival/bzip2.c
index a115cb6ea..0b9c508df 100644
--- a/archival/bzip2.c
+++ b/archival/bzip2.c
@@ -11,23 +11,23 @@
11//config: bool "bzip2 (18 kb)" 11//config: bool "bzip2 (18 kb)"
12//config: default y 12//config: default y
13//config: help 13//config: help
14//config: bzip2 is a compression utility using the Burrows-Wheeler block 14//config: bzip2 is a compression utility using the Burrows-Wheeler block
15//config: sorting text compression algorithm, and Huffman coding. Compression 15//config: sorting text compression algorithm, and Huffman coding. Compression
16//config: is generally considerably better than that achieved by more 16//config: is generally considerably better than that achieved by more
17//config: conventional LZ77/LZ78-based compressors, and approaches the 17//config: conventional LZ77/LZ78-based compressors, and approaches the
18//config: performance of the PPM family of statistical compressors. 18//config: performance of the PPM family of statistical compressors.
19//config: 19//config:
20//config: Unless you have a specific application which requires bzip2, you 20//config: Unless you have a specific application which requires bzip2, you
21//config: should probably say N here. 21//config: should probably say N here.
22//config: 22//config:
23//config:config FEATURE_BZIP2_DECOMPRESS 23//config:config FEATURE_BZIP2_DECOMPRESS
24//config: bool "Enable decompression" 24//config: bool "Enable decompression"
25//config: default y 25//config: default y
26//config: depends on BZIP2 || BUNZIP2 || BZCAT 26//config: depends on BZIP2 || BUNZIP2 || BZCAT
27//config: help 27//config: help
28//config: Enable -d (--decompress) and -t (--test) options for bzip2. 28//config: Enable -d (--decompress) and -t (--test) options for bzip2.
29//config: This will be automatically selected if bunzip2 or bzcat is 29//config: This will be automatically selected if bunzip2 or bzcat is
30//config: enabled. 30//config: enabled.
31 31
32//applet:IF_BZIP2(APPLET(bzip2, BB_DIR_USR_BIN, BB_SUID_DROP)) 32//applet:IF_BZIP2(APPLET(bzip2, BB_DIR_USR_BIN, BB_SUID_DROP))
33//kbuild:lib-$(CONFIG_BZIP2) += bzip2.o 33//kbuild:lib-$(CONFIG_BZIP2) += bzip2.o
diff --git a/archival/cpio.c b/archival/cpio.c
index 4416348b6..38bab8257 100644
--- a/archival/cpio.c
+++ b/archival/cpio.c
@@ -18,30 +18,30 @@
18//config: bool "cpio (14 kb)" 18//config: bool "cpio (14 kb)"
19//config: default y 19//config: default y
20//config: help 20//config: help
21//config: cpio is an archival utility program used to create, modify, and 21//config: cpio is an archival utility program used to create, modify, and
22//config: extract contents from archives. 22//config: extract contents from archives.
23//config: cpio has 110 bytes of overheads for every stored file. 23//config: cpio has 110 bytes of overheads for every stored file.
24//config: 24//config:
25//config: This implementation of cpio can extract cpio archives created in the 25//config: This implementation of cpio can extract cpio archives created in the
26//config: "newc" or "crc" format. 26//config: "newc" or "crc" format.
27//config: 27//config:
28//config: Unless you have a specific application which requires cpio, you 28//config: Unless you have a specific application which requires cpio, you
29//config: should probably say N here. 29//config: should probably say N here.
30//config: 30//config:
31//config:config FEATURE_CPIO_O 31//config:config FEATURE_CPIO_O
32//config: bool "Support archive creation" 32//config: bool "Support archive creation"
33//config: default y 33//config: default y
34//config: depends on CPIO 34//config: depends on CPIO
35//config: help 35//config: help
36//config: This implementation of cpio can create cpio archives in the "newc" 36//config: This implementation of cpio can create cpio archives in the "newc"
37//config: format only. 37//config: format only.
38//config: 38//config:
39//config:config FEATURE_CPIO_P 39//config:config FEATURE_CPIO_P
40//config: bool "Support passthrough mode" 40//config: bool "Support passthrough mode"
41//config: default y 41//config: default y
42//config: depends on FEATURE_CPIO_O 42//config: depends on FEATURE_CPIO_O
43//config: help 43//config: help
44//config: Passthrough mode. Rarely used. 44//config: Passthrough mode. Rarely used.
45 45
46//applet:IF_CPIO(APPLET(cpio, BB_DIR_BIN, BB_SUID_DROP)) 46//applet:IF_CPIO(APPLET(cpio, BB_DIR_BIN, BB_SUID_DROP))
47//kbuild:lib-$(CONFIG_CPIO) += cpio.o 47//kbuild:lib-$(CONFIG_CPIO) += cpio.o
diff --git a/archival/dpkg.c b/archival/dpkg.c
index 41c8fc5d1..90ad8766c 100644
--- a/archival/dpkg.c
+++ b/archival/dpkg.c
@@ -31,11 +31,11 @@
31//config: default y 31//config: default y
32//config: select FEATURE_SEAMLESS_GZ 32//config: select FEATURE_SEAMLESS_GZ
33//config: help 33//config: help
34//config: dpkg is a medium-level tool to install, build, remove and manage 34//config: dpkg is a medium-level tool to install, build, remove and manage
35//config: Debian packages. 35//config: Debian packages.
36//config: 36//config:
37//config: This implementation of dpkg has a number of limitations, 37//config: This implementation of dpkg has a number of limitations,
38//config: you should use the official dpkg if possible. 38//config: you should use the official dpkg if possible.
39 39
40//applet:IF_DPKG(APPLET(dpkg, BB_DIR_USR_BIN, BB_SUID_DROP)) 40//applet:IF_DPKG(APPLET(dpkg, BB_DIR_USR_BIN, BB_SUID_DROP))
41//kbuild:lib-$(CONFIG_DPKG) += dpkg.o 41//kbuild:lib-$(CONFIG_DPKG) += dpkg.o
diff --git a/archival/dpkg_deb.c b/archival/dpkg_deb.c
index ebbc7f035..029bc4af1 100644
--- a/archival/dpkg_deb.c
+++ b/archival/dpkg_deb.c
@@ -10,12 +10,12 @@
10//config: default y 10//config: default y
11//config: select FEATURE_SEAMLESS_GZ 11//config: select FEATURE_SEAMLESS_GZ
12//config: help 12//config: help
13//config: dpkg-deb unpacks and provides information about Debian archives. 13//config: dpkg-deb unpacks and provides information about Debian archives.
14//config: 14//config:
15//config: This implementation of dpkg-deb cannot pack archives. 15//config: This implementation of dpkg-deb cannot pack archives.
16//config: 16//config:
17//config: Unless you have a specific application which requires dpkg-deb, 17//config: Unless you have a specific application which requires dpkg-deb,
18//config: say N here. 18//config: say N here.
19 19
20//applet:IF_DPKG_DEB(APPLET_ODDNAME(dpkg-deb, dpkg_deb, BB_DIR_USR_BIN, BB_SUID_DROP, dpkg_deb)) 20//applet:IF_DPKG_DEB(APPLET_ODDNAME(dpkg-deb, dpkg_deb, BB_DIR_USR_BIN, BB_SUID_DROP, dpkg_deb))
21 21
diff --git a/archival/gzip.c b/archival/gzip.c
index a883a1fff..4cf34ac28 100644
--- a/archival/gzip.c
+++ b/archival/gzip.c
@@ -41,8 +41,8 @@ aa: 85.1% -- replaced with aa.gz
41//config: bool "gzip (19 kb)" 41//config: bool "gzip (19 kb)"
42//config: default y 42//config: default y
43//config: help 43//config: help
44//config: gzip is used to compress files. 44//config: gzip is used to compress files.
45//config: It's probably the most widely used UNIX compression program. 45//config: It's probably the most widely used UNIX compression program.
46//config: 46//config:
47//config:config FEATURE_GZIP_LONG_OPTIONS 47//config:config FEATURE_GZIP_LONG_OPTIONS
48//config: bool "Enable long options" 48//config: bool "Enable long options"
@@ -55,30 +55,30 @@ aa: 85.1% -- replaced with aa.gz
55//config: range 0 2 55//config: range 0 2
56//config: depends on GZIP 56//config: depends on GZIP
57//config: help 57//config: help
58//config: Enable big memory options for gzip. 58//config: Enable big memory options for gzip.
59//config: 0: small buffers, small hash-tables 59//config: 0: small buffers, small hash-tables
60//config: 1: larger buffers, larger hash-tables 60//config: 1: larger buffers, larger hash-tables
61//config: 2: larger buffers, largest hash-tables 61//config: 2: larger buffers, largest hash-tables
62//config: Larger models may give slightly better compression 62//config: Larger models may give slightly better compression
63//config: 63//config:
64//config:config FEATURE_GZIP_LEVELS 64//config:config FEATURE_GZIP_LEVELS
65//config: bool "Enable compression levels" 65//config: bool "Enable compression levels"
66//config: default n 66//config: default n
67//config: depends on GZIP 67//config: depends on GZIP
68//config: help 68//config: help
69//config: Enable support for compression levels 4-9. The default level 69//config: Enable support for compression levels 4-9. The default level
70//config: is 6. If levels 1-3 are specified, 4 is used. 70//config: is 6. If levels 1-3 are specified, 4 is used.
71//config: If this option is not selected, -N options are ignored and -9 71//config: If this option is not selected, -N options are ignored and -9
72//config: is used. 72//config: is used.
73//config: 73//config:
74//config:config FEATURE_GZIP_DECOMPRESS 74//config:config FEATURE_GZIP_DECOMPRESS
75//config: bool "Enable decompression" 75//config: bool "Enable decompression"
76//config: default y 76//config: default y
77//config: depends on GZIP || GUNZIP || ZCAT 77//config: depends on GZIP || GUNZIP || ZCAT
78//config: help 78//config: help
79//config: Enable -d (--decompress) and -t (--test) options for gzip. 79//config: Enable -d (--decompress) and -t (--test) options for gzip.
80//config: This will be automatically selected if gunzip or zcat is 80//config: This will be automatically selected if gunzip or zcat is
81//config: enabled. 81//config: enabled.
82 82
83//applet:IF_GZIP(APPLET(gzip, BB_DIR_BIN, BB_SUID_DROP)) 83//applet:IF_GZIP(APPLET(gzip, BB_DIR_BIN, BB_SUID_DROP))
84//kbuild:lib-$(CONFIG_GZIP) += gzip.o 84//kbuild:lib-$(CONFIG_GZIP) += gzip.o
diff --git a/archival/lzop.c b/archival/lzop.c
index 967d4b74d..df18ff170 100644
--- a/archival/lzop.c
+++ b/archival/lzop.c
@@ -29,28 +29,28 @@
29//config: bool "lzop (13 kb)" 29//config: bool "lzop (13 kb)"
30//config: default y 30//config: default y
31//config: help 31//config: help
32//config: Lzop compression/decompresion. 32//config: Lzop compression/decompresion.
33//config: 33//config:
34//config:config UNLZOP 34//config:config UNLZOP
35//config: bool "unlzop (13 kb)" 35//config: bool "unlzop (13 kb)"
36//config: default n # INCOMPAT: upstream lzop does not provide such tool 36//config: default n # INCOMPAT: upstream lzop does not provide such tool
37//config: help 37//config: help
38//config: Lzop decompresion. 38//config: Lzop decompresion.
39//config: 39//config:
40//config:config LZOPCAT 40//config:config LZOPCAT
41//config: bool "lzopcat (13 kb)" 41//config: bool "lzopcat (13 kb)"
42//config: default n # INCOMPAT: upstream lzop does not provide such tool 42//config: default n # INCOMPAT: upstream lzop does not provide such tool
43//config: help 43//config: help
44//config: Alias to "lzop -dc". 44//config: Alias to "lzop -dc".
45//config: 45//config:
46//config:config LZOP_COMPR_HIGH 46//config:config LZOP_COMPR_HIGH
47//config: bool "lzop compression levels 7,8,9 (not very useful)" 47//config: bool "lzop compression levels 7,8,9 (not very useful)"
48//config: default n 48//config: default n
49//config: depends on LZOP || UNLZOP || LZOPCAT 49//config: depends on LZOP || UNLZOP || LZOPCAT
50//config: help 50//config: help
51//config: High levels (7,8,9) of lzop compression. These levels 51//config: High levels (7,8,9) of lzop compression. These levels
52//config: are actually slower than gzip at equivalent compression ratios 52//config: are actually slower than gzip at equivalent compression ratios
53//config: and take up 3.2K of code. 53//config: and take up 3.2K of code.
54 54
55//applet:IF_LZOP(APPLET(lzop, BB_DIR_BIN, BB_SUID_DROP)) 55//applet:IF_LZOP(APPLET(lzop, BB_DIR_BIN, BB_SUID_DROP))
56// APPLET_ODDNAME:name main location suid_type help 56// APPLET_ODDNAME:name main location suid_type help
diff --git a/archival/rpm.c b/archival/rpm.c
index 2974dfc61..98039d499 100644
--- a/archival/rpm.c
+++ b/archival/rpm.c
@@ -11,7 +11,7 @@
11//config: bool "rpm (33 kb)" 11//config: bool "rpm (33 kb)"
12//config: default y 12//config: default y
13//config: help 13//config: help
14//config: Mini RPM applet - queries and extracts RPM packages. 14//config: Mini RPM applet - queries and extracts RPM packages.
15 15
16//applet:IF_RPM(APPLET(rpm, BB_DIR_BIN, BB_SUID_DROP)) 16//applet:IF_RPM(APPLET(rpm, BB_DIR_BIN, BB_SUID_DROP))
17//kbuild:lib-$(CONFIG_RPM) += rpm.o 17//kbuild:lib-$(CONFIG_RPM) += rpm.o
diff --git a/archival/rpm2cpio.c b/archival/rpm2cpio.c
index 9d503be52..3e4a6a249 100644
--- a/archival/rpm2cpio.c
+++ b/archival/rpm2cpio.c
@@ -11,7 +11,7 @@
11//config: bool "rpm2cpio (20 kb)" 11//config: bool "rpm2cpio (20 kb)"
12//config: default y 12//config: default y
13//config: help 13//config: help
14//config: Converts a RPM file into a CPIO archive. 14//config: Converts a RPM file into a CPIO archive.
15 15
16//applet:IF_RPM2CPIO(APPLET(rpm2cpio, BB_DIR_USR_BIN, BB_SUID_DROP)) 16//applet:IF_RPM2CPIO(APPLET(rpm2cpio, BB_DIR_USR_BIN, BB_SUID_DROP))
17//kbuild:lib-$(CONFIG_RPM2CPIO) += rpm2cpio.o 17//kbuild:lib-$(CONFIG_RPM2CPIO) += rpm2cpio.o
diff --git a/archival/tar.c b/archival/tar.c
index fcabb0126..0fc574dfd 100644
--- a/archival/tar.c
+++ b/archival/tar.c
@@ -45,9 +45,9 @@
45//config: bool "tar (40 kb)" 45//config: bool "tar (40 kb)"
46//config: default y 46//config: default y
47//config: help 47//config: help
48//config: tar is an archiving program. It's commonly used with gzip to 48//config: tar is an archiving program. It's commonly used with gzip to
49//config: create compressed archives. It's probably the most widely used 49//config: create compressed archives. It's probably the most widely used
50//config: UNIX archive program. 50//config: UNIX archive program.
51//config: 51//config:
52//config:config FEATURE_TAR_LONG_OPTIONS 52//config:config FEATURE_TAR_LONG_OPTIONS
53//config: bool "Enable long options" 53//config: bool "Enable long options"
@@ -64,35 +64,35 @@
64//config: default y 64//config: default y
65//config: depends on TAR && (FEATURE_SEAMLESS_Z || FEATURE_SEAMLESS_GZ || FEATURE_SEAMLESS_BZ2 || FEATURE_SEAMLESS_LZMA || FEATURE_SEAMLESS_XZ) 65//config: depends on TAR && (FEATURE_SEAMLESS_Z || FEATURE_SEAMLESS_GZ || FEATURE_SEAMLESS_BZ2 || FEATURE_SEAMLESS_LZMA || FEATURE_SEAMLESS_XZ)
66//config: help 66//config: help
67//config: With this option tar can automatically detect compressed 67//config: With this option tar can automatically detect compressed
68//config: tarballs. Currently it works only on files (not pipes etc). 68//config: tarballs. Currently it works only on files (not pipes etc).
69//config: 69//config:
70//config:config FEATURE_TAR_FROM 70//config:config FEATURE_TAR_FROM
71//config: bool "Enable -X (exclude from) and -T (include from) options)" 71//config: bool "Enable -X (exclude from) and -T (include from) options)"
72//config: default y 72//config: default y
73//config: depends on TAR 73//config: depends on TAR
74//config: help 74//config: help
75//config: If you enable this option you'll be able to specify 75//config: If you enable this option you'll be able to specify
76//config: a list of files to include or exclude from an archive. 76//config: a list of files to include or exclude from an archive.
77//config: 77//config:
78//config:config FEATURE_TAR_OLDGNU_COMPATIBILITY 78//config:config FEATURE_TAR_OLDGNU_COMPATIBILITY
79//config: bool "Support old tar header format" 79//config: bool "Support old tar header format"
80//config: default y 80//config: default y
81//config: depends on TAR || DPKG 81//config: depends on TAR || DPKG
82//config: help 82//config: help
83//config: This option is required to unpack archives created in 83//config: This option is required to unpack archives created in
84//config: the old GNU format; help to kill this old format by 84//config: the old GNU format; help to kill this old format by
85//config: repacking your ancient archives with the new format. 85//config: repacking your ancient archives with the new format.
86//config: 86//config:
87//config:config FEATURE_TAR_OLDSUN_COMPATIBILITY 87//config:config FEATURE_TAR_OLDSUN_COMPATIBILITY
88//config: bool "Enable untarring of tarballs with checksums produced by buggy Sun tar" 88//config: bool "Enable untarring of tarballs with checksums produced by buggy Sun tar"
89//config: default y 89//config: default y
90//config: depends on TAR || DPKG 90//config: depends on TAR || DPKG
91//config: help 91//config: help
92//config: This option is required to unpack archives created by some old 92//config: This option is required to unpack archives created by some old
93//config: version of Sun's tar (it was calculating checksum using signed 93//config: version of Sun's tar (it was calculating checksum using signed
94//config: arithmetic). It is said to be fixed in newer Sun tar, but "old" 94//config: arithmetic). It is said to be fixed in newer Sun tar, but "old"
95//config: tarballs still exist. 95//config: tarballs still exist.
96//config: 96//config:
97//config:config FEATURE_TAR_GNU_EXTENSIONS 97//config:config FEATURE_TAR_GNU_EXTENSIONS
98//config: bool "Support GNU tar extensions (long filenames)" 98//config: bool "Support GNU tar extensions (long filenames)"
@@ -104,18 +104,18 @@
104//config: default y 104//config: default y
105//config: depends on TAR && FEATURE_TAR_LONG_OPTIONS 105//config: depends on TAR && FEATURE_TAR_LONG_OPTIONS
106//config: help 106//config: help
107//config: If you enable this option you'll be able to instruct tar to send 107//config: If you enable this option you'll be able to instruct tar to send
108//config: the contents of each extracted file to the standard input of an 108//config: the contents of each extracted file to the standard input of an
109//config: external program. 109//config: external program.
110//config: 110//config:
111//config:config FEATURE_TAR_UNAME_GNAME 111//config:config FEATURE_TAR_UNAME_GNAME
112//config: bool "Enable use of user and group names" 112//config: bool "Enable use of user and group names"
113//config: default y 113//config: default y
114//config: depends on TAR 114//config: depends on TAR
115//config: help 115//config: help
116//config: Enable use of user and group names in tar. This affects contents 116//config: Enable use of user and group names in tar. This affects contents
117//config: listings (-t) and preserving permissions when unpacking (-p). 117//config: listings (-t) and preserving permissions when unpacking (-p).
118//config: +200 bytes. 118//config: +200 bytes.
119//config: 119//config:
120//config:config FEATURE_TAR_NOPRESERVE_TIME 120//config:config FEATURE_TAR_NOPRESERVE_TIME
121//config: bool "Enable -m (do not preserve time) GNU option" 121//config: bool "Enable -m (do not preserve time) GNU option"
@@ -127,8 +127,8 @@
127//config: default n 127//config: default n
128//config: depends on TAR && SELINUX 128//config: depends on TAR && SELINUX
129//config: help 129//config: help
130//config: With this option busybox supports restoring SELinux labels 130//config: With this option busybox supports restoring SELinux labels
131//config: when extracting files from tar archives. 131//config: when extracting files from tar archives.
132 132
133//applet:IF_TAR(APPLET(tar, BB_DIR_BIN, BB_SUID_DROP)) 133//applet:IF_TAR(APPLET(tar, BB_DIR_BIN, BB_SUID_DROP))
134//kbuild:lib-$(CONFIG_TAR) += tar.o 134//kbuild:lib-$(CONFIG_TAR) += tar.o
diff --git a/archival/unzip.c b/archival/unzip.c
index b618c3617..bb39d954e 100644
--- a/archival/unzip.c
+++ b/archival/unzip.c
@@ -20,20 +20,20 @@
20//config: bool "unzip (24 kb)" 20//config: bool "unzip (24 kb)"
21//config: default y 21//config: default y
22//config: help 22//config: help
23//config: unzip will list or extract files from a ZIP archive, 23//config: unzip will list or extract files from a ZIP archive,
24//config: commonly found on DOS/WIN systems. The default behavior 24//config: commonly found on DOS/WIN systems. The default behavior
25//config: (with no options) is to extract the archive into the 25//config: (with no options) is to extract the archive into the
26//config: current directory. 26//config: current directory.
27//config: 27//config:
28//config:config FEATURE_UNZIP_CDF 28//config:config FEATURE_UNZIP_CDF
29//config: bool "Read and use Central Directory data" 29//config: bool "Read and use Central Directory data"
30//config: default y 30//config: default y
31//config: depends on UNZIP 31//config: depends on UNZIP
32//config: help 32//config: help
33//config: If you know that you only need to deal with simple 33//config: If you know that you only need to deal with simple
34//config: ZIP files without deleted/updated files, SFX archives etc, 34//config: ZIP files without deleted/updated files, SFX archives etc,
35//config: you can reduce code size by unselecting this option. 35//config: you can reduce code size by unselecting this option.
36//config: To support less trivial ZIPs, say Y. 36//config: To support less trivial ZIPs, say Y.
37//config: 37//config:
38//config:config FEATURE_UNZIP_BZIP2 38//config:config FEATURE_UNZIP_BZIP2
39//config: bool "Support compression method 12 (bzip2)" 39//config: bool "Support compression method 12 (bzip2)"
diff --git a/console-tools/chvt.c b/console-tools/chvt.c
index 729f13ba2..d8152de6b 100644
--- a/console-tools/chvt.c
+++ b/console-tools/chvt.c
@@ -11,8 +11,8 @@
11//config: default y 11//config: default y
12//config: select PLATFORM_LINUX 12//config: select PLATFORM_LINUX
13//config: help 13//config: help
14//config: This program is used to change to another terminal. 14//config: This program is used to change to another terminal.
15//config: Example: chvt 4 (change to terminal /dev/tty4) 15//config: Example: chvt 4 (change to terminal /dev/tty4)
16 16
17//applet:IF_CHVT(APPLET(chvt, BB_DIR_USR_BIN, BB_SUID_DROP)) 17//applet:IF_CHVT(APPLET(chvt, BB_DIR_USR_BIN, BB_SUID_DROP))
18 18
diff --git a/console-tools/clear.c b/console-tools/clear.c
index 0c11ec817..13eec498b 100644
--- a/console-tools/clear.c
+++ b/console-tools/clear.c
@@ -10,7 +10,7 @@
10//config: bool "clear (tiny)" 10//config: bool "clear (tiny)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: This program clears the terminal screen. 13//config: This program clears the terminal screen.
14 14
15//applet:IF_CLEAR(APPLET(clear, BB_DIR_USR_BIN, BB_SUID_DROP)) 15//applet:IF_CLEAR(APPLET(clear, BB_DIR_USR_BIN, BB_SUID_DROP))
16 16
diff --git a/console-tools/deallocvt.c b/console-tools/deallocvt.c
index cf74a03ed..6ffb1471e 100644
--- a/console-tools/deallocvt.c
+++ b/console-tools/deallocvt.c
@@ -12,7 +12,7 @@
12//config: default y 12//config: default y
13//config: select PLATFORM_LINUX 13//config: select PLATFORM_LINUX
14//config: help 14//config: help
15//config: This program deallocates unused virtual consoles. 15//config: This program deallocates unused virtual consoles.
16 16
17//applet:IF_DEALLOCVT(APPLET(deallocvt, BB_DIR_USR_BIN, BB_SUID_DROP)) 17//applet:IF_DEALLOCVT(APPLET(deallocvt, BB_DIR_USR_BIN, BB_SUID_DROP))
18 18
diff --git a/console-tools/dumpkmap.c b/console-tools/dumpkmap.c
index a8d8e3572..d4e2cf281 100644
--- a/console-tools/dumpkmap.c
+++ b/console-tools/dumpkmap.c
@@ -12,8 +12,8 @@
12//config: default y 12//config: default y
13//config: select PLATFORM_LINUX 13//config: select PLATFORM_LINUX
14//config: help 14//config: help
15//config: This program dumps the kernel's keyboard translation table to 15//config: This program dumps the kernel's keyboard translation table to
16//config: stdout, in binary format. You can then use loadkmap to load it. 16//config: stdout, in binary format. You can then use loadkmap to load it.
17 17
18//applet:IF_DUMPKMAP(APPLET(dumpkmap, BB_DIR_BIN, BB_SUID_DROP)) 18//applet:IF_DUMPKMAP(APPLET(dumpkmap, BB_DIR_BIN, BB_SUID_DROP))
19 19
diff --git a/console-tools/fgconsole.c b/console-tools/fgconsole.c
index 2582162a5..64311f6ea 100644
--- a/console-tools/fgconsole.c
+++ b/console-tools/fgconsole.c
@@ -11,7 +11,7 @@
11//config: default y 11//config: default y
12//config: select PLATFORM_LINUX 12//config: select PLATFORM_LINUX
13//config: help 13//config: help
14//config: This program prints active (foreground) console number. 14//config: This program prints active (foreground) console number.
15 15
16//applet:IF_FGCONSOLE(APPLET(fgconsole, BB_DIR_USR_BIN, BB_SUID_DROP)) 16//applet:IF_FGCONSOLE(APPLET(fgconsole, BB_DIR_USR_BIN, BB_SUID_DROP))
17 17
diff --git a/console-tools/kbd_mode.c b/console-tools/kbd_mode.c
index 815a65ad9..d81c56e92 100644
--- a/console-tools/kbd_mode.c
+++ b/console-tools/kbd_mode.c
@@ -13,7 +13,7 @@
13//config: default y 13//config: default y
14//config: select PLATFORM_LINUX 14//config: select PLATFORM_LINUX
15//config: help 15//config: help
16//config: This program reports and sets keyboard mode. 16//config: This program reports and sets keyboard mode.
17 17
18//applet:IF_KBD_MODE(APPLET(kbd_mode, BB_DIR_BIN, BB_SUID_DROP)) 18//applet:IF_KBD_MODE(APPLET(kbd_mode, BB_DIR_BIN, BB_SUID_DROP))
19 19
diff --git a/console-tools/loadfont.c b/console-tools/loadfont.c
index b7d291723..6dc8fa831 100644
--- a/console-tools/loadfont.c
+++ b/console-tools/loadfont.c
@@ -14,29 +14,29 @@
14//config: default y 14//config: default y
15//config: select PLATFORM_LINUX 15//config: select PLATFORM_LINUX
16//config: help 16//config: help
17//config: This program loads a console font from standard input. 17//config: This program loads a console font from standard input.
18//config: 18//config:
19//config:config SETFONT 19//config:config SETFONT
20//config: bool "setfont (26 kb)" 20//config: bool "setfont (26 kb)"
21//config: default y 21//config: default y
22//config: select PLATFORM_LINUX 22//config: select PLATFORM_LINUX
23//config: help 23//config: help
24//config: Allows to load console screen map. Useful for i18n. 24//config: Allows to load console screen map. Useful for i18n.
25//config: 25//config:
26//config:config FEATURE_SETFONT_TEXTUAL_MAP 26//config:config FEATURE_SETFONT_TEXTUAL_MAP
27//config: bool "Support reading textual screen maps" 27//config: bool "Support reading textual screen maps"
28//config: default y 28//config: default y
29//config: depends on SETFONT 29//config: depends on SETFONT
30//config: help 30//config: help
31//config: Support reading textual screen maps. 31//config: Support reading textual screen maps.
32//config: 32//config:
33//config:config DEFAULT_SETFONT_DIR 33//config:config DEFAULT_SETFONT_DIR
34//config: string "Default directory for console-tools files" 34//config: string "Default directory for console-tools files"
35//config: default "" 35//config: default ""
36//config: depends on SETFONT 36//config: depends on SETFONT
37//config: help 37//config: help
38//config: Directory to use if setfont's params are simple filenames 38//config: Directory to use if setfont's params are simple filenames
39//config: (not /path/to/file or ./file). Default is "" (no default directory). 39//config: (not /path/to/file or ./file). Default is "" (no default directory).
40//config: 40//config:
41//config:comment "Common options for loadfont and setfont" 41//config:comment "Common options for loadfont and setfont"
42//config: depends on LOADFONT || SETFONT 42//config: depends on LOADFONT || SETFONT
diff --git a/console-tools/loadkmap.c b/console-tools/loadkmap.c
index 7e8f82497..839dc2083 100644
--- a/console-tools/loadkmap.c
+++ b/console-tools/loadkmap.c
@@ -11,8 +11,8 @@
11//config: default y 11//config: default y
12//config: select PLATFORM_LINUX 12//config: select PLATFORM_LINUX
13//config: help 13//config: help
14//config: This program loads a keyboard translation table from 14//config: This program loads a keyboard translation table from
15//config: standard input. 15//config: standard input.
16 16
17//applet:IF_LOADKMAP(APPLET(loadkmap, BB_DIR_SBIN, BB_SUID_DROP)) 17//applet:IF_LOADKMAP(APPLET(loadkmap, BB_DIR_SBIN, BB_SUID_DROP))
18 18
diff --git a/console-tools/openvt.c b/console-tools/openvt.c
index 7ed3a28d5..f3db28367 100644
--- a/console-tools/openvt.c
+++ b/console-tools/openvt.c
@@ -12,8 +12,8 @@
12//config: default y 12//config: default y
13//config: select PLATFORM_LINUX 13//config: select PLATFORM_LINUX
14//config: help 14//config: help
15//config: This program is used to start a command on an unused 15//config: This program is used to start a command on an unused
16//config: virtual terminal. 16//config: virtual terminal.
17 17
18//applet:IF_OPENVT(APPLET(openvt, BB_DIR_USR_BIN, BB_SUID_DROP)) 18//applet:IF_OPENVT(APPLET(openvt, BB_DIR_USR_BIN, BB_SUID_DROP))
19 19
diff --git a/console-tools/reset.c b/console-tools/reset.c
index a0ce5c73d..04e5b0ca1 100644
--- a/console-tools/reset.c
+++ b/console-tools/reset.c
@@ -13,8 +13,8 @@
13//config: bool "reset (275 bytes)" 13//config: bool "reset (275 bytes)"
14//config: default y 14//config: default y
15//config: help 15//config: help
16//config: This program is used to reset the terminal screen, if it 16//config: This program is used to reset the terminal screen, if it
17//config: gets messed up. 17//config: gets messed up.
18 18
19//applet:IF_RESET(APPLET(reset, BB_DIR_USR_BIN, BB_SUID_DROP)) 19//applet:IF_RESET(APPLET(reset, BB_DIR_USR_BIN, BB_SUID_DROP))
20 20
diff --git a/console-tools/resize.c b/console-tools/resize.c
index 4ac5ee1aa..62928a01e 100644
--- a/console-tools/resize.c
+++ b/console-tools/resize.c
@@ -10,18 +10,18 @@
10//config: bool "resize (756 bytes)" 10//config: bool "resize (756 bytes)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: This program is used to (re)set the width and height of your current 13//config: This program is used to (re)set the width and height of your current
14//config: terminal. 14//config: terminal.
15//config: 15//config:
16//config:config FEATURE_RESIZE_PRINT 16//config:config FEATURE_RESIZE_PRINT
17//config: bool "Print environment variables" 17//config: bool "Print environment variables"
18//config: default y 18//config: default y
19//config: depends on RESIZE 19//config: depends on RESIZE
20//config: help 20//config: help
21//config: Prints the newly set size (number of columns and rows) of 21//config: Prints the newly set size (number of columns and rows) of
22//config: the terminal. 22//config: the terminal.
23//config: E.g.: 23//config: E.g.:
24//config: COLUMNS=80;LINES=44;export COLUMNS LINES; 24//config: COLUMNS=80;LINES=44;export COLUMNS LINES;
25 25
26//applet:IF_RESIZE(APPLET(resize, BB_DIR_USR_BIN, BB_SUID_DROP)) 26//applet:IF_RESIZE(APPLET(resize, BB_DIR_USR_BIN, BB_SUID_DROP))
27 27
diff --git a/console-tools/setconsole.c b/console-tools/setconsole.c
index 7ba5a0eed..ad0f756ca 100644
--- a/console-tools/setconsole.c
+++ b/console-tools/setconsole.c
@@ -12,8 +12,8 @@
12//config: default y 12//config: default y
13//config: select PLATFORM_LINUX 13//config: select PLATFORM_LINUX
14//config: help 14//config: help
15//config: This program redirects the system console to another device, 15//config: This program redirects the system console to another device,
16//config: like the current tty while logged in via telnet. 16//config: like the current tty while logged in via telnet.
17//config: 17//config:
18//config:config FEATURE_SETCONSOLE_LONG_OPTIONS 18//config:config FEATURE_SETCONSOLE_LONG_OPTIONS
19//config: bool "Enable long options" 19//config: bool "Enable long options"
diff --git a/console-tools/setkeycodes.c b/console-tools/setkeycodes.c
index cc668ec8a..543fbe3e0 100644
--- a/console-tools/setkeycodes.c
+++ b/console-tools/setkeycodes.c
@@ -13,8 +13,8 @@
13//config: default y 13//config: default y
14//config: select PLATFORM_LINUX 14//config: select PLATFORM_LINUX
15//config: help 15//config: help
16//config: This program loads entries into the kernel's scancode-to-keycode 16//config: This program loads entries into the kernel's scancode-to-keycode
17//config: map, allowing unusual keyboards to generate usable keycodes. 17//config: map, allowing unusual keyboards to generate usable keycodes.
18 18
19//applet:IF_SETKEYCODES(APPLET(setkeycodes, BB_DIR_USR_BIN, BB_SUID_DROP)) 19//applet:IF_SETKEYCODES(APPLET(setkeycodes, BB_DIR_USR_BIN, BB_SUID_DROP))
20 20
diff --git a/console-tools/setlogcons.c b/console-tools/setlogcons.c
index 350a71d43..1b5814eee 100644
--- a/console-tools/setlogcons.c
+++ b/console-tools/setlogcons.c
@@ -13,7 +13,7 @@
13//config: default y 13//config: default y
14//config: select PLATFORM_LINUX 14//config: select PLATFORM_LINUX
15//config: help 15//config: help
16//config: This program redirects the output console of kernel messages. 16//config: This program redirects the output console of kernel messages.
17 17
18//applet:IF_SETLOGCONS(APPLET(setlogcons, BB_DIR_USR_SBIN, BB_SUID_DROP)) 18//applet:IF_SETLOGCONS(APPLET(setlogcons, BB_DIR_USR_SBIN, BB_SUID_DROP))
19 19
diff --git a/console-tools/showkey.c b/console-tools/showkey.c
index 8a485245d..c322ce99d 100644
--- a/console-tools/showkey.c
+++ b/console-tools/showkey.c
@@ -11,7 +11,7 @@
11//config: default y 11//config: default y
12//config: select PLATFORM_LINUX 12//config: select PLATFORM_LINUX
13//config: help 13//config: help
14//config: Shows keys pressed. 14//config: Shows keys pressed.
15 15
16//applet:IF_SHOWKEY(APPLET(showkey, BB_DIR_USR_BIN, BB_SUID_DROP)) 16//applet:IF_SHOWKEY(APPLET(showkey, BB_DIR_USR_BIN, BB_SUID_DROP))
17 17
diff --git a/coreutils/Config.src b/coreutils/Config.src
index 1d2fea1fb..7a8a3a634 100644
--- a/coreutils/Config.src
+++ b/coreutils/Config.src
@@ -13,9 +13,9 @@ config FEATURE_VERBOSE
13 bool "Support verbose options (usually -v) for various applets" 13 bool "Support verbose options (usually -v) for various applets"
14 default y 14 default y
15 help 15 help
16 Enable cp -v, rm -v and similar messages. 16 Enable cp -v, rm -v and similar messages.
17 Also enables long option (--verbose) if it exists. 17 Also enables long option (--verbose) if it exists.
18 Without this option, -v is accepted but ignored. 18 Without this option, -v is accepted but ignored.
19 19
20comment "Common options for cp and mv" 20comment "Common options for cp and mv"
21 depends on CP || MV 21 depends on CP || MV
@@ -25,7 +25,7 @@ config FEATURE_PRESERVE_HARDLINKS
25 default y 25 default y
26 depends on CP || MV 26 depends on CP || MV
27 help 27 help
28 Allow cp and mv to preserve hard links. 28 Allow cp and mv to preserve hard links.
29 29
30comment "Common options for df, du, ls" 30comment "Common options for df, du, ls"
31 depends on DF || DU || LS 31 depends on DF || DU || LS
@@ -35,6 +35,6 @@ config FEATURE_HUMAN_READABLE
35 default y 35 default y
36 depends on DF || DU || LS 36 depends on DF || DU || LS
37 help 37 help
38 Allow df, du, and ls to have human readable output. 38 Allow df, du, and ls to have human readable output.
39 39
40endmenu 40endmenu
diff --git a/coreutils/basename.c b/coreutils/basename.c
index 6d8215895..481cdcee9 100644
--- a/coreutils/basename.c
+++ b/coreutils/basename.c
@@ -18,9 +18,9 @@
18//config: bool "basename (371 bytes)" 18//config: bool "basename (371 bytes)"
19//config: default y 19//config: default y
20//config: help 20//config: help
21//config: basename is used to strip the directory and suffix from filenames, 21//config: basename is used to strip the directory and suffix from filenames,
22//config: leaving just the filename itself. Enable this option if you wish 22//config: leaving just the filename itself. Enable this option if you wish
23//config: to enable the 'basename' utility. 23//config: to enable the 'basename' utility.
24 24
25//applet:IF_BASENAME(APPLET_NOFORK(basename, basename, BB_DIR_USR_BIN, BB_SUID_DROP, basename)) 25//applet:IF_BASENAME(APPLET_NOFORK(basename, basename, BB_DIR_USR_BIN, BB_SUID_DROP, basename))
26 26
diff --git a/coreutils/cat.c b/coreutils/cat.c
index 41bef8f1d..390254512 100644
--- a/coreutils/cat.c
+++ b/coreutils/cat.c
@@ -10,22 +10,22 @@
10//config: bool "cat (5.6 kb)" 10//config: bool "cat (5.6 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: cat is used to concatenate files and print them to the standard 13//config: cat is used to concatenate files and print them to the standard
14//config: output. Enable this option if you wish to enable the 'cat' utility. 14//config: output. Enable this option if you wish to enable the 'cat' utility.
15//config: 15//config:
16//config:config FEATURE_CATN 16//config:config FEATURE_CATN
17//config: bool "Enable -n and -b options" 17//config: bool "Enable -n and -b options"
18//config: default y 18//config: default y
19//config: depends on CAT 19//config: depends on CAT
20//config: help 20//config: help
21//config: -n numbers all output lines while -b numbers nonempty output lines. 21//config: -n numbers all output lines while -b numbers nonempty output lines.
22//config: 22//config:
23//config:config FEATURE_CATV 23//config:config FEATURE_CATV
24//config: bool "cat -v[etA]" 24//config: bool "cat -v[etA]"
25//config: default y 25//config: default y
26//config: depends on CAT 26//config: depends on CAT
27//config: help 27//config: help
28//config: Display nonprinting characters as escape sequences 28//config: Display nonprinting characters as escape sequences
29 29
30//applet:IF_CAT(APPLET(cat, BB_DIR_BIN, BB_SUID_DROP)) 30//applet:IF_CAT(APPLET(cat, BB_DIR_BIN, BB_SUID_DROP))
31 31
diff --git a/coreutils/chgrp.c b/coreutils/chgrp.c
index 834346b4d..27a0edf0d 100644
--- a/coreutils/chgrp.c
+++ b/coreutils/chgrp.c
@@ -10,7 +10,7 @@
10//config: bool "chgrp (7.2 kb)" 10//config: bool "chgrp (7.2 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: chgrp is used to change the group ownership of files. 13//config: chgrp is used to change the group ownership of files.
14 14
15//applet:IF_CHGRP(APPLET_NOEXEC(chgrp, chgrp, BB_DIR_BIN, BB_SUID_DROP, chgrp)) 15//applet:IF_CHGRP(APPLET_NOEXEC(chgrp, chgrp, BB_DIR_BIN, BB_SUID_DROP, chgrp))
16 16
diff --git a/coreutils/chmod.c b/coreutils/chmod.c
index ec075f7c9..2174334d1 100644
--- a/coreutils/chmod.c
+++ b/coreutils/chmod.c
@@ -13,7 +13,7 @@
13//config: bool "chmod (5.1 kb)" 13//config: bool "chmod (5.1 kb)"
14//config: default y 14//config: default y
15//config: help 15//config: help
16//config: chmod is used to change the access permission of files. 16//config: chmod is used to change the access permission of files.
17 17
18//applet:IF_CHMOD(APPLET_NOEXEC(chmod, chmod, BB_DIR_BIN, BB_SUID_DROP, chmod)) 18//applet:IF_CHMOD(APPLET_NOEXEC(chmod, chmod, BB_DIR_BIN, BB_SUID_DROP, chmod))
19 19
diff --git a/coreutils/chown.c b/coreutils/chown.c
index 5c04bc39a..1bfc725cc 100644
--- a/coreutils/chown.c
+++ b/coreutils/chown.c
@@ -10,8 +10,8 @@
10//config: bool "chown (7.2 kb)" 10//config: bool "chown (7.2 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: chown is used to change the user and/or group ownership 13//config: chown is used to change the user and/or group ownership
14//config: of files. 14//config: of files.
15//config: 15//config:
16//config:config FEATURE_CHOWN_LONG_OPTIONS 16//config:config FEATURE_CHOWN_LONG_OPTIONS
17//config: bool "Enable long options" 17//config: bool "Enable long options"
diff --git a/coreutils/chroot.c b/coreutils/chroot.c
index 6fa3a3f27..44a587fe0 100644
--- a/coreutils/chroot.c
+++ b/coreutils/chroot.c
@@ -10,8 +10,8 @@
10//config: bool "chroot (3.7 kb)" 10//config: bool "chroot (3.7 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: chroot is used to change the root directory and run a command. 13//config: chroot is used to change the root directory and run a command.
14//config: The default command is `/bin/sh'. 14//config: The default command is `/bin/sh'.
15 15
16//applet:IF_CHROOT(APPLET(chroot, BB_DIR_USR_SBIN, BB_SUID_DROP)) 16//applet:IF_CHROOT(APPLET(chroot, BB_DIR_USR_SBIN, BB_SUID_DROP))
17 17
diff --git a/coreutils/cksum.c b/coreutils/cksum.c
index dce17d94b..c0cf65d2a 100644
--- a/coreutils/cksum.c
+++ b/coreutils/cksum.c
@@ -10,7 +10,7 @@
10//config: bool "cksum (4.2 kb)" 10//config: bool "cksum (4.2 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: cksum is used to calculate the CRC32 checksum of a file. 13//config: cksum is used to calculate the CRC32 checksum of a file.
14 14
15//applet:IF_CKSUM(APPLET_NOEXEC(cksum, cksum, BB_DIR_USR_BIN, BB_SUID_DROP, cksum)) 15//applet:IF_CKSUM(APPLET_NOEXEC(cksum, cksum, BB_DIR_USR_BIN, BB_SUID_DROP, cksum))
16 16
diff --git a/coreutils/comm.c b/coreutils/comm.c
index 8f9dcde29..5be11468c 100644
--- a/coreutils/comm.c
+++ b/coreutils/comm.c
@@ -10,8 +10,8 @@
10//config: bool "comm (3.9 kb)" 10//config: bool "comm (3.9 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: comm is used to compare two files line by line and return 13//config: comm is used to compare two files line by line and return
14//config: a three-column output. 14//config: a three-column output.
15 15
16//applet:IF_COMM(APPLET(comm, BB_DIR_USR_BIN, BB_SUID_DROP)) 16//applet:IF_COMM(APPLET(comm, BB_DIR_USR_BIN, BB_SUID_DROP))
17 17
diff --git a/coreutils/cp.c b/coreutils/cp.c
index 726859c5f..092e39583 100644
--- a/coreutils/cp.c
+++ b/coreutils/cp.c
@@ -15,15 +15,15 @@
15//config: bool "cp (9.7 kb)" 15//config: bool "cp (9.7 kb)"
16//config: default y 16//config: default y
17//config: help 17//config: help
18//config: cp is used to copy files and directories. 18//config: cp is used to copy files and directories.
19//config: 19//config:
20//config:config FEATURE_CP_LONG_OPTIONS 20//config:config FEATURE_CP_LONG_OPTIONS
21//config: bool "Enable long options" 21//config: bool "Enable long options"
22//config: default y 22//config: default y
23//config: depends on CP && LONG_OPTS 23//config: depends on CP && LONG_OPTS
24//config: help 24//config: help
25//config: Enable long options. 25//config: Enable long options.
26//config: Also add support for --parents option. 26//config: Also add support for --parents option.
27 27
28//applet:IF_CP(APPLET_NOEXEC(cp, cp, BB_DIR_BIN, BB_SUID_DROP, cp)) 28//applet:IF_CP(APPLET_NOEXEC(cp, cp, BB_DIR_BIN, BB_SUID_DROP, cp))
29 29
diff --git a/coreutils/cut.c b/coreutils/cut.c
index 2338702f3..6578ce8ce 100644
--- a/coreutils/cut.c
+++ b/coreutils/cut.c
@@ -12,8 +12,8 @@
12//config: bool "cut (5.3 kb)" 12//config: bool "cut (5.3 kb)"
13//config: default y 13//config: default y
14//config: help 14//config: help
15//config: cut is used to print selected parts of lines from 15//config: cut is used to print selected parts of lines from
16//config: each file to stdout. 16//config: each file to stdout.
17 17
18//applet:IF_CUT(APPLET_NOEXEC(cut, cut, BB_DIR_USR_BIN, BB_SUID_DROP, cut)) 18//applet:IF_CUT(APPLET_NOEXEC(cut, cut, BB_DIR_USR_BIN, BB_SUID_DROP, cut))
19 19
diff --git a/coreutils/date.c b/coreutils/date.c
index c658d000b..0fb9f1f00 100644
--- a/coreutils/date.c
+++ b/coreutils/date.c
@@ -22,16 +22,16 @@
22//config: bool "date (7.1 kb)" 22//config: bool "date (7.1 kb)"
23//config: default y 23//config: default y
24//config: help 24//config: help
25//config: date is used to set the system date or display the 25//config: date is used to set the system date or display the
26//config: current time in the given format. 26//config: current time in the given format.
27//config: 27//config:
28//config:config FEATURE_DATE_ISOFMT 28//config:config FEATURE_DATE_ISOFMT
29//config: bool "Enable ISO date format output (-I)" 29//config: bool "Enable ISO date format output (-I)"
30//config: default y 30//config: default y
31//config: depends on DATE 31//config: depends on DATE
32//config: help 32//config: help
33//config: Enable option (-I) to output an ISO-8601 compliant 33//config: Enable option (-I) to output an ISO-8601 compliant
34//config: date/time string. 34//config: date/time string.
35//config: 35//config:
36//config:# defaults to "no": stat's nanosecond field is a bit non-portable 36//config:# defaults to "no": stat's nanosecond field is a bit non-portable
37//config:config FEATURE_DATE_NANO 37//config:config FEATURE_DATE_NANO
@@ -40,23 +40,23 @@
40//config: depends on DATE # syscall(__NR_clock_gettime) 40//config: depends on DATE # syscall(__NR_clock_gettime)
41//config: select PLATFORM_LINUX 41//config: select PLATFORM_LINUX
42//config: help 42//config: help
43//config: Support %[num]N format specifier. Adds ~250 bytes of code. 43//config: Support %[num]N format specifier. Adds ~250 bytes of code.
44//config: 44//config:
45//config:config FEATURE_DATE_COMPAT 45//config:config FEATURE_DATE_COMPAT
46//config: bool "Support weird 'date MMDDhhmm[[YY]YY][.ss]' format" 46//config: bool "Support weird 'date MMDDhhmm[[YY]YY][.ss]' format"
47//config: default y 47//config: default y
48//config: depends on DATE 48//config: depends on DATE
49//config: help 49//config: help
50//config: System time can be set by 'date -s DATE' and simply 'date DATE', 50//config: System time can be set by 'date -s DATE' and simply 'date DATE',
51//config: but formats of DATE string are different. 'date DATE' accepts 51//config: but formats of DATE string are different. 'date DATE' accepts
52//config: a rather weird MMDDhhmm[[YY]YY][.ss] format with completely 52//config: a rather weird MMDDhhmm[[YY]YY][.ss] format with completely
53//config: unnatural placement of year between minutes and seconds. 53//config: unnatural placement of year between minutes and seconds.
54//config: date -s (and other commands like touch -d) use more sensible 54//config: date -s (and other commands like touch -d) use more sensible
55//config: formats (for one, ISO format YYYY-MM-DD hh:mm:ss.ssssss). 55//config: formats (for one, ISO format YYYY-MM-DD hh:mm:ss.ssssss).
56//config: 56//config:
57//config: With this option off, 'date DATE' is 'date -s DATE' support 57//config: With this option off, 'date DATE' is 'date -s DATE' support
58//config: the same format. With it on, 'date DATE' additionally supports 58//config: the same format. With it on, 'date DATE' additionally supports
59//config: MMDDhhmm[[YY]YY][.ss] format. 59//config: MMDDhhmm[[YY]YY][.ss] format.
60 60
61//applet:IF_DATE(APPLET(date, BB_DIR_BIN, BB_SUID_DROP)) 61//applet:IF_DATE(APPLET(date, BB_DIR_BIN, BB_SUID_DROP))
62 62
diff --git a/coreutils/dd.c b/coreutils/dd.c
index 0150aff96..43545c010 100644
--- a/coreutils/dd.c
+++ b/coreutils/dd.c
@@ -10,46 +10,46 @@
10//config: bool "dd (7.1 kb)" 10//config: bool "dd (7.1 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: dd copies a file (from standard input to standard output, 13//config: dd copies a file (from standard input to standard output,
14//config: by default) using specific input and output blocksizes, 14//config: by default) using specific input and output blocksizes,
15//config: while optionally performing conversions on it. 15//config: while optionally performing conversions on it.
16//config: 16//config:
17//config:config FEATURE_DD_SIGNAL_HANDLING 17//config:config FEATURE_DD_SIGNAL_HANDLING
18//config: bool "Enable signal handling for status reporting" 18//config: bool "Enable signal handling for status reporting"
19//config: default y 19//config: default y
20//config: depends on DD 20//config: depends on DD
21//config: help 21//config: help
22//config: Sending a SIGUSR1 signal to a running `dd' process makes it 22//config: Sending a SIGUSR1 signal to a running `dd' process makes it
23//config: print to standard error the number of records read and written 23//config: print to standard error the number of records read and written
24//config: so far, then to resume copying. 24//config: so far, then to resume copying.
25//config: 25//config:
26//config: $ dd if=/dev/zero of=/dev/null & 26//config: $ dd if=/dev/zero of=/dev/null &
27//config: $ pid=$!; kill -USR1 $pid; sleep 1; kill $pid 27//config: $ pid=$!; kill -USR1 $pid; sleep 1; kill $pid
28//config: 10899206+0 records in 28//config: 10899206+0 records in
29//config: 10899206+0 records out 29//config: 10899206+0 records out
30//config: 30//config:
31//config:config FEATURE_DD_THIRD_STATUS_LINE 31//config:config FEATURE_DD_THIRD_STATUS_LINE
32//config: bool "Enable the third status line upon signal" 32//config: bool "Enable the third status line upon signal"
33//config: default y 33//config: default y
34//config: depends on DD && FEATURE_DD_SIGNAL_HANDLING 34//config: depends on DD && FEATURE_DD_SIGNAL_HANDLING
35//config: help 35//config: help
36//config: Displays a coreutils-like third status line with transferred bytes, 36//config: Displays a coreutils-like third status line with transferred bytes,
37//config: elapsed time and speed. 37//config: elapsed time and speed.
38//config: 38//config:
39//config:config FEATURE_DD_IBS_OBS 39//config:config FEATURE_DD_IBS_OBS
40//config: bool "Enable ibs, obs and conv options" 40//config: bool "Enable ibs, obs and conv options"
41//config: default y 41//config: default y
42//config: depends on DD 42//config: depends on DD
43//config: help 43//config: help
44//config: Enable support for writing a certain number of bytes in and out, 44//config: Enable support for writing a certain number of bytes in and out,
45//config: at a time, and performing conversions on the data stream. 45//config: at a time, and performing conversions on the data stream.
46//config: 46//config:
47//config:config FEATURE_DD_STATUS 47//config:config FEATURE_DD_STATUS
48//config: bool "Enable status display options" 48//config: bool "Enable status display options"
49//config: default y 49//config: default y
50//config: depends on DD 50//config: depends on DD
51//config: help 51//config: help
52//config: Enable support for status=noxfer/none option. 52//config: Enable support for status=noxfer/none option.
53 53
54//applet:IF_DD(APPLET_NOEXEC(dd, dd, BB_DIR_BIN, BB_SUID_DROP, dd)) 54//applet:IF_DD(APPLET_NOEXEC(dd, dd, BB_DIR_BIN, BB_SUID_DROP, dd))
55 55
diff --git a/coreutils/df.c b/coreutils/df.c
index 900c57ea2..27dd2b5a8 100644
--- a/coreutils/df.c
+++ b/coreutils/df.c
@@ -21,17 +21,17 @@
21//config: bool "df (7.5 kb)" 21//config: bool "df (7.5 kb)"
22//config: default y 22//config: default y
23//config: help 23//config: help
24//config: df reports the amount of disk space used and available 24//config: df reports the amount of disk space used and available
25//config: on filesystems. 25//config: on filesystems.
26//config: 26//config:
27//config:config FEATURE_DF_FANCY 27//config:config FEATURE_DF_FANCY
28//config: bool "Enable -a, -i, -B" 28//config: bool "Enable -a, -i, -B"
29//config: default y 29//config: default y
30//config: depends on DF 30//config: depends on DF
31//config: help 31//config: help
32//config: -a Show all filesystems 32//config: -a Show all filesystems
33//config: -i Inodes 33//config: -i Inodes
34//config: -B <SIZE> Blocksize 34//config: -B <SIZE> Blocksize
35 35
36//applet:IF_DF(APPLET(df, BB_DIR_BIN, BB_SUID_DROP)) 36//applet:IF_DF(APPLET(df, BB_DIR_BIN, BB_SUID_DROP))
37 37
diff --git a/coreutils/dirname.c b/coreutils/dirname.c
index 7fa31365f..511267b78 100644
--- a/coreutils/dirname.c
+++ b/coreutils/dirname.c
@@ -10,8 +10,8 @@
10//config: bool "dirname (289 bytes)" 10//config: bool "dirname (289 bytes)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: dirname is used to strip a non-directory suffix from 13//config: dirname is used to strip a non-directory suffix from
14//config: a file name. 14//config: a file name.
15 15
16//applet:IF_DIRNAME(APPLET_NOFORK(dirname, dirname, BB_DIR_USR_BIN, BB_SUID_DROP, dirname)) 16//applet:IF_DIRNAME(APPLET_NOFORK(dirname, dirname, BB_DIR_USR_BIN, BB_SUID_DROP, dirname))
17 17
diff --git a/coreutils/dos2unix.c b/coreutils/dos2unix.c
index e595bf558..a3d008051 100644
--- a/coreutils/dos2unix.c
+++ b/coreutils/dos2unix.c
@@ -15,15 +15,15 @@
15//config: bool "dos2unix (5.1 kb)" 15//config: bool "dos2unix (5.1 kb)"
16//config: default y 16//config: default y
17//config: help 17//config: help
18//config: dos2unix is used to convert a text file from DOS format to 18//config: dos2unix is used to convert a text file from DOS format to
19//config: UNIX format, and vice versa. 19//config: UNIX format, and vice versa.
20//config: 20//config:
21//config:config UNIX2DOS 21//config:config UNIX2DOS
22//config: bool "unix2dos (5.1 kb)" 22//config: bool "unix2dos (5.1 kb)"
23//config: default y 23//config: default y
24//config: help 24//config: help
25//config: unix2dos is used to convert a text file from UNIX format to 25//config: unix2dos is used to convert a text file from UNIX format to
26//config: DOS format, and vice versa. 26//config: DOS format, and vice versa.
27 27
28//applet:IF_DOS2UNIX(APPLET_NOEXEC(dos2unix, dos2unix, BB_DIR_USR_BIN, BB_SUID_DROP, dos2unix)) 28//applet:IF_DOS2UNIX(APPLET_NOEXEC(dos2unix, dos2unix, BB_DIR_USR_BIN, BB_SUID_DROP, dos2unix))
29//applet:IF_UNIX2DOS(APPLET_NOEXEC(unix2dos, dos2unix, BB_DIR_USR_BIN, BB_SUID_DROP, unix2dos)) 29//applet:IF_UNIX2DOS(APPLET_NOEXEC(unix2dos, dos2unix, BB_DIR_USR_BIN, BB_SUID_DROP, unix2dos))
diff --git a/coreutils/du.c b/coreutils/du.c
index 03e31a0e4..947c46e74 100644
--- a/coreutils/du.c
+++ b/coreutils/du.c
@@ -22,15 +22,15 @@
22//config: bool "du (default blocksize of 512 bytes)" 22//config: bool "du (default blocksize of 512 bytes)"
23//config: default y 23//config: default y
24//config: help 24//config: help
25//config: du is used to report the amount of disk space used 25//config: du is used to report the amount of disk space used
26//config: for specified files. 26//config: for specified files.
27//config: 27//config:
28//config:config FEATURE_DU_DEFAULT_BLOCKSIZE_1K 28//config:config FEATURE_DU_DEFAULT_BLOCKSIZE_1K
29//config: bool "Use a default blocksize of 1024 bytes (1K)" 29//config: bool "Use a default blocksize of 1024 bytes (1K)"
30//config: default y 30//config: default y
31//config: depends on DU 31//config: depends on DU
32//config: help 32//config: help
33//config: Use a blocksize of (1K) instead of the default 512b. 33//config: Use a blocksize of (1K) instead of the default 512b.
34 34
35//applet:IF_DU(APPLET(du, BB_DIR_USR_BIN, BB_SUID_DROP)) 35//applet:IF_DU(APPLET(du, BB_DIR_USR_BIN, BB_SUID_DROP))
36 36
diff --git a/coreutils/echo.c b/coreutils/echo.c
index a7e4ca9ac..af33319a1 100644
--- a/coreutils/echo.c
+++ b/coreutils/echo.c
@@ -22,7 +22,7 @@
22//config: bool "echo (basic SuSv3 version taking no options)" 22//config: bool "echo (basic SuSv3 version taking no options)"
23//config: default y 23//config: default y
24//config: help 24//config: help
25//config: echo is used to print a specified string to stdout. 25//config: echo is used to print a specified string to stdout.
26//config: 26//config:
27//config:# this entry also appears in shell/Config.in, next to the echo builtin 27//config:# this entry also appears in shell/Config.in, next to the echo builtin
28//config:config FEATURE_FANCY_ECHO 28//config:config FEATURE_FANCY_ECHO
diff --git a/coreutils/env.c b/coreutils/env.c
index 7037a44c2..8def9c2da 100644
--- a/coreutils/env.c
+++ b/coreutils/env.c
@@ -27,9 +27,9 @@
27//config: bool "env (3.8 kb)" 27//config: bool "env (3.8 kb)"
28//config: default y 28//config: default y
29//config: help 29//config: help
30//config: env is used to set an environment variable and run 30//config: env is used to set an environment variable and run
31//config: a command; without options it displays the current 31//config: a command; without options it displays the current
32//config: environment. 32//config: environment.
33//config: 33//config:
34//config:config FEATURE_ENV_LONG_OPTIONS 34//config:config FEATURE_ENV_LONG_OPTIONS
35//config: bool "Enable long options" 35//config: bool "Enable long options"
diff --git a/coreutils/expand.c b/coreutils/expand.c
index dff0ce558..64f2a539d 100644
--- a/coreutils/expand.c
+++ b/coreutils/expand.c
@@ -24,7 +24,7 @@
24//config: bool "expand (5.8 kb)" 24//config: bool "expand (5.8 kb)"
25//config: default y 25//config: default y
26//config: help 26//config: help
27//config: By default, convert all tabs to spaces. 27//config: By default, convert all tabs to spaces.
28//config: 28//config:
29//config:config FEATURE_EXPAND_LONG_OPTIONS 29//config:config FEATURE_EXPAND_LONG_OPTIONS
30//config: bool "Enable long options" 30//config: bool "Enable long options"
@@ -35,7 +35,7 @@
35//config: bool "unexpand (6 kb)" 35//config: bool "unexpand (6 kb)"
36//config: default y 36//config: default y
37//config: help 37//config: help
38//config: By default, convert only leading sequences of blanks to tabs. 38//config: By default, convert only leading sequences of blanks to tabs.
39//config: 39//config:
40//config:config FEATURE_UNEXPAND_LONG_OPTIONS 40//config:config FEATURE_UNEXPAND_LONG_OPTIONS
41//config: bool "Enable long options" 41//config: bool "Enable long options"
diff --git a/coreutils/expr.c b/coreutils/expr.c
index ecb7534b2..a2bbfdd69 100644
--- a/coreutils/expr.c
+++ b/coreutils/expr.c
@@ -26,17 +26,17 @@
26//config: bool "expr (6.1 kb)" 26//config: bool "expr (6.1 kb)"
27//config: default y 27//config: default y
28//config: help 28//config: help
29//config: expr is used to calculate numbers and print the result 29//config: expr is used to calculate numbers and print the result
30//config: to standard output. 30//config: to standard output.
31//config: 31//config:
32//config:config EXPR_MATH_SUPPORT_64 32//config:config EXPR_MATH_SUPPORT_64
33//config: bool "Extend Posix numbers support to 64 bit" 33//config: bool "Extend Posix numbers support to 64 bit"
34//config: default y 34//config: default y
35//config: depends on EXPR 35//config: depends on EXPR
36//config: help 36//config: help
37//config: Enable 64-bit math support in the expr applet. This will make 37//config: Enable 64-bit math support in the expr applet. This will make
38//config: the applet slightly larger, but will allow computation with very 38//config: the applet slightly larger, but will allow computation with very
39//config: large numbers. 39//config: large numbers.
40 40
41//applet:IF_EXPR(APPLET(expr, BB_DIR_USR_BIN, BB_SUID_DROP)) 41//applet:IF_EXPR(APPLET(expr, BB_DIR_USR_BIN, BB_SUID_DROP))
42 42
diff --git a/coreutils/factor.c b/coreutils/factor.c
index 4ccc3fee4..467e23a4d 100644
--- a/coreutils/factor.c
+++ b/coreutils/factor.c
@@ -7,7 +7,7 @@
7//config: bool "factor (2.6 kb)" 7//config: bool "factor (2.6 kb)"
8//config: default y 8//config: default y
9//config: help 9//config: help
10//config: factor factorizes integers 10//config: factor factorizes integers
11 11
12//applet:IF_FACTOR(APPLET(factor, BB_DIR_USR_BIN, BB_SUID_DROP)) 12//applet:IF_FACTOR(APPLET(factor, BB_DIR_USR_BIN, BB_SUID_DROP))
13 13
diff --git a/coreutils/false.c b/coreutils/false.c
index 171ad813b..e3903efd0 100644
--- a/coreutils/false.c
+++ b/coreutils/false.c
@@ -10,7 +10,7 @@
10//config: bool "false (tiny)" 10//config: bool "false (tiny)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: false returns an exit code of FALSE (1). 13//config: false returns an exit code of FALSE (1).
14 14
15//applet:IF_FALSE(APPLET_NOFORK(false, false, BB_DIR_BIN, BB_SUID_DROP, false)) 15//applet:IF_FALSE(APPLET_NOFORK(false, false, BB_DIR_BIN, BB_SUID_DROP, false))
16 16
diff --git a/coreutils/fold.c b/coreutils/fold.c
index 35905f3df..286db228d 100644
--- a/coreutils/fold.c
+++ b/coreutils/fold.c
@@ -13,7 +13,7 @@
13//config: bool "fold (4.6 kb)" 13//config: bool "fold (4.6 kb)"
14//config: default y 14//config: default y
15//config: help 15//config: help
16//config: Wrap text to fit a specific width. 16//config: Wrap text to fit a specific width.
17 17
18//applet:IF_FOLD(APPLET_NOEXEC(fold, fold, BB_DIR_USR_BIN, BB_SUID_DROP, fold)) 18//applet:IF_FOLD(APPLET_NOEXEC(fold, fold, BB_DIR_USR_BIN, BB_SUID_DROP, fold))
19 19
diff --git a/coreutils/fsync.c b/coreutils/fsync.c
index 8524047a5..5e77e2c16 100644
--- a/coreutils/fsync.c
+++ b/coreutils/fsync.c
@@ -10,7 +10,7 @@
10//config: bool "fsync (3.7 kb)" 10//config: bool "fsync (3.7 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: fsync is used to flush file-related cached blocks to disk. 13//config: fsync is used to flush file-related cached blocks to disk.
14 14
15//applet:IF_FSYNC(APPLET_NOFORK(fsync, fsync, BB_DIR_BIN, BB_SUID_DROP, fsync)) 15//applet:IF_FSYNC(APPLET_NOFORK(fsync, fsync, BB_DIR_BIN, BB_SUID_DROP, fsync))
16 16
diff --git a/coreutils/head.c b/coreutils/head.c
index b4b16abea..fc3a48d5b 100644
--- a/coreutils/head.c
+++ b/coreutils/head.c
@@ -10,8 +10,8 @@
10//config: bool "head (3.7 kb)" 10//config: bool "head (3.7 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: head is used to print the first specified number of lines 13//config: head is used to print the first specified number of lines
14//config: from files. 14//config: from files.
15//config: 15//config:
16//config:config FEATURE_FANCY_HEAD 16//config:config FEATURE_FANCY_HEAD
17//config: bool "Enable -c, -q, and -v" 17//config: bool "Enable -c, -q, and -v"
diff --git a/coreutils/hostid.c b/coreutils/hostid.c
index 790384c95..d21e6d6ac 100644
--- a/coreutils/hostid.c
+++ b/coreutils/hostid.c
@@ -10,8 +10,8 @@
10//config: bool "hostid (247 bytes)" 10//config: bool "hostid (247 bytes)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: hostid prints the numeric identifier (in hexadecimal) for 13//config: hostid prints the numeric identifier (in hexadecimal) for
14//config: the current host. 14//config: the current host.
15 15
16//applet:IF_HOSTID(APPLET_NOFORK(hostid, hostid, BB_DIR_USR_BIN, BB_SUID_DROP, hostid)) 16//applet:IF_HOSTID(APPLET_NOFORK(hostid, hostid, BB_DIR_USR_BIN, BB_SUID_DROP, hostid))
17 17
diff --git a/coreutils/id.c b/coreutils/id.c
index 93ca0acf6..6043bca61 100644
--- a/coreutils/id.c
+++ b/coreutils/id.c
@@ -16,13 +16,13 @@
16//config: bool "id (6.7 kb)" 16//config: bool "id (6.7 kb)"
17//config: default y 17//config: default y
18//config: help 18//config: help
19//config: id displays the current user and group ID names. 19//config: id displays the current user and group ID names.
20//config: 20//config:
21//config:config GROUPS 21//config:config GROUPS
22//config: bool "groups (6.5 kb)" 22//config: bool "groups (6.5 kb)"
23//config: default y 23//config: default y
24//config: help 24//config: help
25//config: Print the group names associated with current user id. 25//config: Print the group names associated with current user id.
26 26
27//applet:IF_GROUPS(APPLET_NOEXEC(groups, id, BB_DIR_USR_BIN, BB_SUID_DROP, groups)) 27//applet:IF_GROUPS(APPLET_NOEXEC(groups, id, BB_DIR_USR_BIN, BB_SUID_DROP, groups))
28//applet:IF_ID( APPLET_NOEXEC(id, id, BB_DIR_USR_BIN, BB_SUID_DROP, id )) 28//applet:IF_ID( APPLET_NOEXEC(id, id, BB_DIR_USR_BIN, BB_SUID_DROP, id ))
diff --git a/coreutils/install.c b/coreutils/install.c
index 4c44f0d4d..a1342bb13 100644
--- a/coreutils/install.c
+++ b/coreutils/install.c
@@ -9,7 +9,7 @@
9//config: bool "install (12 kb)" 9//config: bool "install (12 kb)"
10//config: default y 10//config: default y
11//config: help 11//config: help
12//config: Copy files and set attributes. 12//config: Copy files and set attributes.
13//config: 13//config:
14//config:config FEATURE_INSTALL_LONG_OPTIONS 14//config:config FEATURE_INSTALL_LONG_OPTIONS
15//config: bool "Enable long options" 15//config: bool "Enable long options"
diff --git a/coreutils/link.c b/coreutils/link.c
index c6417fef8..56832fdf6 100644
--- a/coreutils/link.c
+++ b/coreutils/link.c
@@ -9,7 +9,7 @@
9//config: bool "link (3.1 kb)" 9//config: bool "link (3.1 kb)"
10//config: default y 10//config: default y
11//config: help 11//config: help
12//config: link creates hard links between files. 12//config: link creates hard links between files.
13 13
14//applet:IF_LINK(APPLET_NOFORK(link, link, BB_DIR_BIN, BB_SUID_DROP, link)) 14//applet:IF_LINK(APPLET_NOFORK(link, link, BB_DIR_BIN, BB_SUID_DROP, link))
15 15
diff --git a/coreutils/ln.c b/coreutils/ln.c
index 0bd323b2a..fed96af42 100644
--- a/coreutils/ln.c
+++ b/coreutils/ln.c
@@ -10,7 +10,7 @@
10//config: bool "ln (4.5 kb)" 10//config: bool "ln (4.5 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: ln is used to create hard or soft links between files. 13//config: ln is used to create hard or soft links between files.
14 14
15//applet:IF_LN(APPLET_NOEXEC(ln, ln, BB_DIR_BIN, BB_SUID_DROP, ln)) 15//applet:IF_LN(APPLET_NOEXEC(ln, ln, BB_DIR_BIN, BB_SUID_DROP, ln))
16 16
diff --git a/coreutils/logname.c b/coreutils/logname.c
index bf3748338..e614ca7cf 100644
--- a/coreutils/logname.c
+++ b/coreutils/logname.c
@@ -19,7 +19,7 @@
19//config: bool "logname (894 bytes)" 19//config: bool "logname (894 bytes)"
20//config: default y 20//config: default y
21//config: help 21//config: help
22//config: logname is used to print the current user's login name. 22//config: logname is used to print the current user's login name.
23 23
24//applet:IF_LOGNAME(APPLET_NOFORK(logname, logname, BB_DIR_USR_BIN, BB_SUID_DROP, logname)) 24//applet:IF_LOGNAME(APPLET_NOFORK(logname, logname, BB_DIR_USR_BIN, BB_SUID_DROP, logname))
25 25
diff --git a/coreutils/ls.c b/coreutils/ls.c
index cf5228745..0fe0345b3 100644
--- a/coreutils/ls.c
+++ b/coreutils/ls.c
@@ -31,7 +31,7 @@
31//config: bool "ls (14 kb)" 31//config: bool "ls (14 kb)"
32//config: default y 32//config: default y
33//config: help 33//config: help
34//config: ls is used to list the contents of directories. 34//config: ls is used to list the contents of directories.
35//config: 35//config:
36//config:config FEATURE_LS_FILETYPES 36//config:config FEATURE_LS_FILETYPES
37//config: bool "Enable filetyping options (-p and -F)" 37//config: bool "Enable filetyping options (-p and -F)"
@@ -58,39 +58,39 @@
58//config: default y 58//config: default y
59//config: depends on LS 59//config: depends on LS
60//config: help 60//config: help
61//config: Allow ls to sort file names alphabetically. 61//config: Allow ls to sort file names alphabetically.
62//config: 62//config:
63//config:config FEATURE_LS_TIMESTAMPS 63//config:config FEATURE_LS_TIMESTAMPS
64//config: bool "Show file timestamps" 64//config: bool "Show file timestamps"
65//config: default y 65//config: default y
66//config: depends on LS 66//config: depends on LS
67//config: help 67//config: help
68//config: Allow ls to display timestamps for files. 68//config: Allow ls to display timestamps for files.
69//config: 69//config:
70//config:config FEATURE_LS_USERNAME 70//config:config FEATURE_LS_USERNAME
71//config: bool "Show username/groupnames" 71//config: bool "Show username/groupnames"
72//config: default y 72//config: default y
73//config: depends on LS 73//config: depends on LS
74//config: help 74//config: help
75//config: Allow ls to display username/groupname for files. 75//config: Allow ls to display username/groupname for files.
76//config: 76//config:
77//config:config FEATURE_LS_COLOR 77//config:config FEATURE_LS_COLOR
78//config: bool "Allow use of color to identify file types" 78//config: bool "Allow use of color to identify file types"
79//config: default y 79//config: default y
80//config: depends on LS && LONG_OPTS 80//config: depends on LS && LONG_OPTS
81//config: help 81//config: help
82//config: This enables the --color option to ls. 82//config: This enables the --color option to ls.
83//config: 83//config:
84//config:config FEATURE_LS_COLOR_IS_DEFAULT 84//config:config FEATURE_LS_COLOR_IS_DEFAULT
85//config: bool "Produce colored ls output by default" 85//config: bool "Produce colored ls output by default"
86//config: default y 86//config: default y
87//config: depends on FEATURE_LS_COLOR 87//config: depends on FEATURE_LS_COLOR
88//config: help 88//config: help
89//config: Saying yes here will turn coloring on by default, 89//config: Saying yes here will turn coloring on by default,
90//config: even if no "--color" option is given to the ls command. 90//config: even if no "--color" option is given to the ls command.
91//config: This is not recommended, since the colors are not 91//config: This is not recommended, since the colors are not
92//config: configurable, and the output may not be legible on 92//config: configurable, and the output may not be legible on
93//config: many output screens. 93//config: many output screens.
94 94
95//applet:IF_LS(APPLET_NOEXEC(ls, ls, BB_DIR_BIN, BB_SUID_DROP, ls)) 95//applet:IF_LS(APPLET_NOEXEC(ls, ls, BB_DIR_BIN, BB_SUID_DROP, ls))
96 96
diff --git a/coreutils/md5_sha1_sum.c b/coreutils/md5_sha1_sum.c
index 6d08d2e40..bcccdd64f 100644
--- a/coreutils/md5_sha1_sum.c
+++ b/coreutils/md5_sha1_sum.c
@@ -9,31 +9,31 @@
9//config: bool "md5sum (6.8 kb)" 9//config: bool "md5sum (6.8 kb)"
10//config: default y 10//config: default y
11//config: help 11//config: help
12//config: md5sum is used to print or check MD5 checksums. 12//config: md5sum is used to print or check MD5 checksums.
13//config: 13//config:
14//config:config SHA1SUM 14//config:config SHA1SUM
15//config: bool "sha1sum (6 kb)" 15//config: bool "sha1sum (6 kb)"
16//config: default y 16//config: default y
17//config: help 17//config: help
18//config: Compute and check SHA1 message digest 18//config: Compute and check SHA1 message digest
19//config: 19//config:
20//config:config SHA256SUM 20//config:config SHA256SUM
21//config: bool "sha256sum (7.1 kb)" 21//config: bool "sha256sum (7.1 kb)"
22//config: default y 22//config: default y
23//config: help 23//config: help
24//config: Compute and check SHA256 message digest 24//config: Compute and check SHA256 message digest
25//config: 25//config:
26//config:config SHA512SUM 26//config:config SHA512SUM
27//config: bool "sha512sum (7.6 kb)" 27//config: bool "sha512sum (7.6 kb)"
28//config: default y 28//config: default y
29//config: help 29//config: help
30//config: Compute and check SHA512 message digest 30//config: Compute and check SHA512 message digest
31//config: 31//config:
32//config:config SHA3SUM 32//config:config SHA3SUM
33//config: bool "sha3sum (6.3 kb)" 33//config: bool "sha3sum (6.3 kb)"
34//config: default y 34//config: default y
35//config: help 35//config: help
36//config: Compute and check SHA3 message digest 36//config: Compute and check SHA3 message digest
37//config: 37//config:
38//config:comment "Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum" 38//config:comment "Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum"
39//config: depends on MD5SUM || SHA1SUM || SHA256SUM || SHA512SUM || SHA3SUM 39//config: depends on MD5SUM || SHA1SUM || SHA256SUM || SHA512SUM || SHA3SUM
@@ -43,9 +43,9 @@
43//config: default y 43//config: default y
44//config: depends on MD5SUM || SHA1SUM || SHA256SUM || SHA512SUM || SHA3SUM 44//config: depends on MD5SUM || SHA1SUM || SHA256SUM || SHA512SUM || SHA3SUM
45//config: help 45//config: help
46//config: Enabling the -c options allows files to be checked 46//config: Enabling the -c options allows files to be checked
47//config: against pre-calculated hash values. 47//config: against pre-calculated hash values.
48//config: -s and -w are useful options when verifying checksums. 48//config: -s and -w are useful options when verifying checksums.
49 49
50//applet:IF_MD5SUM(APPLET_NOEXEC(md5sum, md5_sha1_sum, BB_DIR_USR_BIN, BB_SUID_DROP, md5sum)) 50//applet:IF_MD5SUM(APPLET_NOEXEC(md5sum, md5_sha1_sum, BB_DIR_USR_BIN, BB_SUID_DROP, md5sum))
51//applet:IF_SHA1SUM(APPLET_NOEXEC(sha1sum, md5_sha1_sum, BB_DIR_USR_BIN, BB_SUID_DROP, sha1sum)) 51//applet:IF_SHA1SUM(APPLET_NOEXEC(sha1sum, md5_sha1_sum, BB_DIR_USR_BIN, BB_SUID_DROP, sha1sum))
diff --git a/coreutils/mkdir.c b/coreutils/mkdir.c
index d0b74bfde..22851187c 100644
--- a/coreutils/mkdir.c
+++ b/coreutils/mkdir.c
@@ -17,7 +17,7 @@
17//config: bool "mkdir (4.4 kb)" 17//config: bool "mkdir (4.4 kb)"
18//config: default y 18//config: default y
19//config: help 19//config: help
20//config: mkdir is used to create directories with the specified names. 20//config: mkdir is used to create directories with the specified names.
21//config: 21//config:
22//config:config FEATURE_MKDIR_LONG_OPTIONS 22//config:config FEATURE_MKDIR_LONG_OPTIONS
23//config: bool "Enable long options" 23//config: bool "Enable long options"
diff --git a/coreutils/mkfifo.c b/coreutils/mkfifo.c
index 8a2f20553..0f614017e 100644
--- a/coreutils/mkfifo.c
+++ b/coreutils/mkfifo.c
@@ -10,8 +10,8 @@
10//config: bool "mkfifo (3.7 kb)" 10//config: bool "mkfifo (3.7 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: mkfifo is used to create FIFOs (named pipes). 13//config: mkfifo is used to create FIFOs (named pipes).
14//config: The 'mknod' program can also create FIFOs. 14//config: The 'mknod' program can also create FIFOs.
15 15
16//applet:IF_MKFIFO(APPLET_NOEXEC(mkfifo, mkfifo, BB_DIR_USR_BIN, BB_SUID_DROP, mkfifo)) 16//applet:IF_MKFIFO(APPLET_NOEXEC(mkfifo, mkfifo, BB_DIR_USR_BIN, BB_SUID_DROP, mkfifo))
17 17
diff --git a/coreutils/mknod.c b/coreutils/mknod.c
index 321415e17..565b33d20 100644
--- a/coreutils/mknod.c
+++ b/coreutils/mknod.c
@@ -10,8 +10,8 @@
10//config: bool "mknod (4 kb)" 10//config: bool "mknod (4 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: mknod is used to create FIFOs or block/character special 13//config: mknod is used to create FIFOs or block/character special
14//config: files with the specified names. 14//config: files with the specified names.
15 15
16//applet:IF_MKNOD(APPLET_NOEXEC(mknod, mknod, BB_DIR_BIN, BB_SUID_DROP, mknod)) 16//applet:IF_MKNOD(APPLET_NOEXEC(mknod, mknod, BB_DIR_BIN, BB_SUID_DROP, mknod))
17 17
diff --git a/coreutils/mktemp.c b/coreutils/mktemp.c
index 3e35befeb..bfef0b4a6 100644
--- a/coreutils/mktemp.c
+++ b/coreutils/mktemp.c
@@ -34,7 +34,7 @@
34//config: bool "mktemp (4 kb)" 34//config: bool "mktemp (4 kb)"
35//config: default y 35//config: default y
36//config: help 36//config: help
37//config: mktemp is used to create unique temporary files 37//config: mktemp is used to create unique temporary files
38 38
39//applet:IF_MKTEMP(APPLET(mktemp, BB_DIR_BIN, BB_SUID_DROP)) 39//applet:IF_MKTEMP(APPLET(mktemp, BB_DIR_BIN, BB_SUID_DROP))
40 40
diff --git a/coreutils/mv.c b/coreutils/mv.c
index d620c43ab..147dd3bb2 100644
--- a/coreutils/mv.c
+++ b/coreutils/mv.c
@@ -15,7 +15,7 @@
15//config: bool "mv (9.8 kb)" 15//config: bool "mv (9.8 kb)"
16//config: default y 16//config: default y
17//config: help 17//config: help
18//config: mv is used to move or rename files or directories. 18//config: mv is used to move or rename files or directories.
19//config: 19//config:
20//config:config FEATURE_MV_LONG_OPTIONS 20//config:config FEATURE_MV_LONG_OPTIONS
21//config: bool "Enable long options" 21//config: bool "Enable long options"
diff --git a/coreutils/nice.c b/coreutils/nice.c
index e30242ffa..0bf055299 100644
--- a/coreutils/nice.c
+++ b/coreutils/nice.c
@@ -10,7 +10,7 @@
10//config: bool "nice (1.8 kb)" 10//config: bool "nice (1.8 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: nice runs a program with modified scheduling priority. 13//config: nice runs a program with modified scheduling priority.
14 14
15//applet:IF_NICE(APPLET(nice, BB_DIR_BIN, BB_SUID_DROP)) 15//applet:IF_NICE(APPLET(nice, BB_DIR_BIN, BB_SUID_DROP))
16 16
diff --git a/coreutils/nl.c b/coreutils/nl.c
index 9f303fe6c..93e78c490 100644
--- a/coreutils/nl.c
+++ b/coreutils/nl.c
@@ -8,7 +8,7 @@
8//config: bool "nl (4.3 kb)" 8//config: bool "nl (4.3 kb)"
9//config: default y 9//config: default y
10//config: help 10//config: help
11//config: nl is used to number lines of files. 11//config: nl is used to number lines of files.
12 12
13//applet:IF_NL(APPLET(nl, BB_DIR_USR_BIN, BB_SUID_DROP)) 13//applet:IF_NL(APPLET(nl, BB_DIR_USR_BIN, BB_SUID_DROP))
14 14
diff --git a/coreutils/nohup.c b/coreutils/nohup.c
index 4366cdc8d..8e28f9029 100644
--- a/coreutils/nohup.c
+++ b/coreutils/nohup.c
@@ -13,7 +13,7 @@
13//config: bool "nohup (2 kb)" 13//config: bool "nohup (2 kb)"
14//config: default y 14//config: default y
15//config: help 15//config: help
16//config: run a command immune to hangups, with output to a non-tty. 16//config: run a command immune to hangups, with output to a non-tty.
17 17
18//applet:IF_NOHUP(APPLET(nohup, BB_DIR_USR_BIN, BB_SUID_DROP)) 18//applet:IF_NOHUP(APPLET(nohup, BB_DIR_USR_BIN, BB_SUID_DROP))
19 19
diff --git a/coreutils/nproc.c b/coreutils/nproc.c
index 7144f73e8..68a831865 100644
--- a/coreutils/nproc.c
+++ b/coreutils/nproc.c
@@ -7,7 +7,7 @@
7//config: bool "nproc (248 bytes)" 7//config: bool "nproc (248 bytes)"
8//config: default y 8//config: default y
9//config: help 9//config: help
10//config: Print number of CPUs 10//config: Print number of CPUs
11 11
12//applet:IF_NPROC(APPLET(nproc, BB_DIR_USR_BIN, BB_SUID_DROP)) 12//applet:IF_NPROC(APPLET(nproc, BB_DIR_USR_BIN, BB_SUID_DROP))
13 13
diff --git a/coreutils/od.c b/coreutils/od.c
index edcd12a54..e3a68435b 100644
--- a/coreutils/od.c
+++ b/coreutils/od.c
@@ -14,7 +14,7 @@
14//config: bool "od (11 kb)" 14//config: bool "od (11 kb)"
15//config: default y 15//config: default y
16//config: help 16//config: help
17//config: od is used to dump binary files in octal and other formats. 17//config: od is used to dump binary files in octal and other formats.
18 18
19//applet:IF_OD(APPLET(od, BB_DIR_USR_BIN, BB_SUID_DROP)) 19//applet:IF_OD(APPLET(od, BB_DIR_USR_BIN, BB_SUID_DROP))
20 20
diff --git a/coreutils/paste.c b/coreutils/paste.c
index e4e9c7565..52f67f951 100644
--- a/coreutils/paste.c
+++ b/coreutils/paste.c
@@ -10,8 +10,8 @@
10//config: bool "paste (4.5 kb)" 10//config: bool "paste (4.5 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: paste is used to paste lines of different files together 13//config: paste is used to paste lines of different files together
14//config: and write the result to stdout 14//config: and write the result to stdout
15 15
16//applet:IF_PASTE(APPLET_NOEXEC(paste, paste, BB_DIR_USR_BIN, BB_SUID_DROP, paste)) 16//applet:IF_PASTE(APPLET_NOEXEC(paste, paste, BB_DIR_USR_BIN, BB_SUID_DROP, paste))
17 17
diff --git a/coreutils/printenv.c b/coreutils/printenv.c
index 767a27525..b0468b3f7 100644
--- a/coreutils/printenv.c
+++ b/coreutils/printenv.c
@@ -11,7 +11,7 @@
11//config: bool "printenv (1 kb)" 11//config: bool "printenv (1 kb)"
12//config: default y 12//config: default y
13//config: help 13//config: help
14//config: printenv is used to print all or part of environment. 14//config: printenv is used to print all or part of environment.
15 15
16//applet:IF_PRINTENV(APPLET_NOFORK(printenv, printenv, BB_DIR_BIN, BB_SUID_DROP, printenv)) 16//applet:IF_PRINTENV(APPLET_NOFORK(printenv, printenv, BB_DIR_BIN, BB_SUID_DROP, printenv))
17 17
diff --git a/coreutils/printf.c b/coreutils/printf.c
index acaf076ff..d3fc72adb 100644
--- a/coreutils/printf.c
+++ b/coreutils/printf.c
@@ -42,8 +42,8 @@
42//config: bool "printf (3.3 kb)" 42//config: bool "printf (3.3 kb)"
43//config: default y 43//config: default y
44//config: help 44//config: help
45//config: printf is used to format and print specified strings. 45//config: printf is used to format and print specified strings.
46//config: It's similar to `echo' except it has more options. 46//config: It's similar to `echo' except it has more options.
47 47
48//applet:IF_PRINTF(APPLET_NOFORK(printf, printf, BB_DIR_USR_BIN, BB_SUID_DROP, printf)) 48//applet:IF_PRINTF(APPLET_NOFORK(printf, printf, BB_DIR_USR_BIN, BB_SUID_DROP, printf))
49 49
diff --git a/coreutils/pwd.c b/coreutils/pwd.c
index e0a195d37..345d85100 100644
--- a/coreutils/pwd.c
+++ b/coreutils/pwd.c
@@ -10,7 +10,7 @@
10//config: bool "pwd (3.4 kb)" 10//config: bool "pwd (3.4 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: pwd is used to print the current directory. 13//config: pwd is used to print the current directory.
14 14
15//applet:IF_PWD(APPLET_NOFORK(pwd, pwd, BB_DIR_BIN, BB_SUID_DROP, pwd)) 15//applet:IF_PWD(APPLET_NOFORK(pwd, pwd, BB_DIR_BIN, BB_SUID_DROP, pwd))
16 16
diff --git a/coreutils/readlink.c b/coreutils/readlink.c
index e593bb9a4..9690290e3 100644
--- a/coreutils/readlink.c
+++ b/coreutils/readlink.c
@@ -10,15 +10,15 @@
10//config: bool "readlink (3.6 kb)" 10//config: bool "readlink (3.6 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: This program reads a symbolic link and returns the name 13//config: This program reads a symbolic link and returns the name
14//config: of the file it points to 14//config: of the file it points to
15//config: 15//config:
16//config:config FEATURE_READLINK_FOLLOW 16//config:config FEATURE_READLINK_FOLLOW
17//config: bool "Enable canonicalization by following all symlinks (-f)" 17//config: bool "Enable canonicalization by following all symlinks (-f)"
18//config: default y 18//config: default y
19//config: depends on READLINK 19//config: depends on READLINK
20//config: help 20//config: help
21//config: Enable the readlink option (-f). 21//config: Enable the readlink option (-f).
22 22
23//applet:IF_READLINK(APPLET(readlink, BB_DIR_USR_BIN, BB_SUID_DROP)) 23//applet:IF_READLINK(APPLET(readlink, BB_DIR_USR_BIN, BB_SUID_DROP))
24 24
diff --git a/coreutils/realpath.c b/coreutils/realpath.c
index a2661c461..6a61c3dc8 100644
--- a/coreutils/realpath.c
+++ b/coreutils/realpath.c
@@ -10,8 +10,8 @@
10//config: bool "realpath (1.1 kb)" 10//config: bool "realpath (1.1 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: Return the canonicalized absolute pathname. 13//config: Return the canonicalized absolute pathname.
14//config: This isn't provided by GNU shellutils, but where else does it belong. 14//config: This isn't provided by GNU shellutils, but where else does it belong.
15 15
16//applet:IF_REALPATH(APPLET(realpath, BB_DIR_USR_BIN, BB_SUID_DROP)) 16//applet:IF_REALPATH(APPLET(realpath, BB_DIR_USR_BIN, BB_SUID_DROP))
17 17
diff --git a/coreutils/rm.c b/coreutils/rm.c
index 70530a458..f91c94570 100644
--- a/coreutils/rm.c
+++ b/coreutils/rm.c
@@ -14,7 +14,7 @@
14//config: bool "rm (4.9 kb)" 14//config: bool "rm (4.9 kb)"
15//config: default y 15//config: default y
16//config: help 16//config: help
17//config: rm is used to remove files or directories. 17//config: rm is used to remove files or directories.
18 18
19//applet:IF_RM(APPLET_NOFORK(rm, rm, BB_DIR_BIN, BB_SUID_DROP, rm)) 19//applet:IF_RM(APPLET_NOFORK(rm, rm, BB_DIR_BIN, BB_SUID_DROP, rm))
20 20
diff --git a/coreutils/rmdir.c b/coreutils/rmdir.c
index 2486ea67e..c04ce78f8 100644
--- a/coreutils/rmdir.c
+++ b/coreutils/rmdir.c
@@ -10,15 +10,15 @@
10//config: bool "rmdir (3.4 kb)" 10//config: bool "rmdir (3.4 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: rmdir is used to remove empty directories. 13//config: rmdir is used to remove empty directories.
14//config: 14//config:
15//config:config FEATURE_RMDIR_LONG_OPTIONS 15//config:config FEATURE_RMDIR_LONG_OPTIONS
16//config: bool "Enable long options" 16//config: bool "Enable long options"
17//config: default y 17//config: default y
18//config: depends on RMDIR && LONG_OPTS 18//config: depends on RMDIR && LONG_OPTS
19//config: help 19//config: help
20//config: Support long options for the rmdir applet, including 20//config: Support long options for the rmdir applet, including
21//config: --ignore-fail-on-non-empty for compatibility with GNU rmdir. 21//config: --ignore-fail-on-non-empty for compatibility with GNU rmdir.
22 22
23//applet:IF_RMDIR(APPLET_NOFORK(rmdir, rmdir, BB_DIR_BIN, BB_SUID_DROP, rmdir)) 23//applet:IF_RMDIR(APPLET_NOFORK(rmdir, rmdir, BB_DIR_BIN, BB_SUID_DROP, rmdir))
24 24
diff --git a/coreutils/seq.c b/coreutils/seq.c
index c66bed94a..f36dbb4ec 100644
--- a/coreutils/seq.c
+++ b/coreutils/seq.c
@@ -10,7 +10,7 @@
10//config: bool "seq (3.6 kb)" 10//config: bool "seq (3.6 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: print a sequence of numbers 13//config: print a sequence of numbers
14 14
15//applet:IF_SEQ(APPLET_NOFORK(seq, seq, BB_DIR_USR_BIN, BB_SUID_DROP, seq)) 15//applet:IF_SEQ(APPLET_NOFORK(seq, seq, BB_DIR_USR_BIN, BB_SUID_DROP, seq))
16 16
diff --git a/coreutils/shred.c b/coreutils/shred.c
index 93319e24d..3ceb58d19 100644
--- a/coreutils/shred.c
+++ b/coreutils/shred.c
@@ -8,7 +8,7 @@
8//config: bool "shred (5 kb)" 8//config: bool "shred (5 kb)"
9//config: default y 9//config: default y
10//config: help 10//config: help
11//config: Overwrite a file to hide its contents, and optionally delete it 11//config: Overwrite a file to hide its contents, and optionally delete it
12 12
13//applet:IF_SHRED(APPLET(shred, BB_DIR_USR_BIN, BB_SUID_DROP)) 13//applet:IF_SHRED(APPLET(shred, BB_DIR_USR_BIN, BB_SUID_DROP))
14 14
diff --git a/coreutils/shuf.c b/coreutils/shuf.c
index b1a9d1254..403041534 100644
--- a/coreutils/shuf.c
+++ b/coreutils/shuf.c
@@ -11,7 +11,7 @@
11//config: bool "shuf (5.4 kb)" 11//config: bool "shuf (5.4 kb)"
12//config: default y 12//config: default y
13//config: help 13//config: help
14//config: Generate random permutations 14//config: Generate random permutations
15 15
16//kbuild:lib-$(CONFIG_SHUF) += shuf.o 16//kbuild:lib-$(CONFIG_SHUF) += shuf.o
17//applet:IF_SHUF(APPLET_NOEXEC(shuf, shuf, BB_DIR_USR_BIN, BB_SUID_DROP, shuf)) 17//applet:IF_SHUF(APPLET_NOEXEC(shuf, shuf, BB_DIR_USR_BIN, BB_SUID_DROP, shuf))
diff --git a/coreutils/sleep.c b/coreutils/sleep.c
index 6b3aa1ffa..9b9581ca9 100644
--- a/coreutils/sleep.c
+++ b/coreutils/sleep.c
@@ -16,29 +16,29 @@
16//config: bool "sleep (1.7 kb)" 16//config: bool "sleep (1.7 kb)"
17//config: default y 17//config: default y
18//config: help 18//config: help
19//config: sleep is used to pause for a specified number of seconds. 19//config: sleep is used to pause for a specified number of seconds.
20//config: It comes in 3 versions: 20//config: It comes in 3 versions:
21//config: - small: takes one integer parameter 21//config: - small: takes one integer parameter
22//config: - fancy: takes multiple integer arguments with suffixes: 22//config: - fancy: takes multiple integer arguments with suffixes:
23//config: sleep 1d 2h 3m 15s 23//config: sleep 1d 2h 3m 15s
24//config: - fancy with fractional numbers: 24//config: - fancy with fractional numbers:
25//config: sleep 2.3s 4.5h sleeps for 16202.3 seconds 25//config: sleep 2.3s 4.5h sleeps for 16202.3 seconds
26//config: Last one is "the most compatible" with coreutils sleep, 26//config: Last one is "the most compatible" with coreutils sleep,
27//config: but it adds around 1k of code. 27//config: but it adds around 1k of code.
28//config: 28//config:
29//config:config FEATURE_FANCY_SLEEP 29//config:config FEATURE_FANCY_SLEEP
30//config: bool "Enable multiple arguments and s/m/h/d suffixes" 30//config: bool "Enable multiple arguments and s/m/h/d suffixes"
31//config: default y 31//config: default y
32//config: depends on SLEEP 32//config: depends on SLEEP
33//config: help 33//config: help
34//config: Allow sleep to pause for specified minutes, hours, and days. 34//config: Allow sleep to pause for specified minutes, hours, and days.
35//config: 35//config:
36//config:config FEATURE_FLOAT_SLEEP 36//config:config FEATURE_FLOAT_SLEEP
37//config: bool "Enable fractional arguments" 37//config: bool "Enable fractional arguments"
38//config: default y 38//config: default y
39//config: depends on FEATURE_FANCY_SLEEP 39//config: depends on FEATURE_FANCY_SLEEP
40//config: help 40//config: help
41//config: Allow for fractional numeric parameters. 41//config: Allow for fractional numeric parameters.
42 42
43/* Do not make this applet NOFORK. It breaks ^C-ing of pauses in shells */ 43/* Do not make this applet NOFORK. It breaks ^C-ing of pauses in shells */
44//applet:IF_SLEEP(APPLET(sleep, BB_DIR_BIN, BB_SUID_DROP)) 44//applet:IF_SLEEP(APPLET(sleep, BB_DIR_BIN, BB_SUID_DROP))
diff --git a/coreutils/sort.c b/coreutils/sort.c
index a8803819d..9860dca64 100644
--- a/coreutils/sort.c
+++ b/coreutils/sort.c
@@ -15,19 +15,19 @@
15//config: bool "sort (7.4 kb)" 15//config: bool "sort (7.4 kb)"
16//config: default y 16//config: default y
17//config: help 17//config: help
18//config: sort is used to sort lines of text in specified files. 18//config: sort is used to sort lines of text in specified files.
19//config: 19//config:
20//config:config FEATURE_SORT_BIG 20//config:config FEATURE_SORT_BIG
21//config: bool "Full SuSv3 compliant sort (support -ktcsbdfiozgM)" 21//config: bool "Full SuSv3 compliant sort (support -ktcsbdfiozgM)"
22//config: default y 22//config: default y
23//config: depends on SORT 23//config: depends on SORT
24//config: help 24//config: help
25//config: Without this, sort only supports -r, -u, and an integer version 25//config: Without this, sort only supports -r, -u, and an integer version
26//config: of -n. Selecting this adds sort keys, floating point support, and 26//config: of -n. Selecting this adds sort keys, floating point support, and
27//config: more. This adds a little over 3k to a nonstatic build on x86. 27//config: more. This adds a little over 3k to a nonstatic build on x86.
28//config: 28//config:
29//config: The SuSv3 sort standard is available at: 29//config: The SuSv3 sort standard is available at:
30//config: http://www.opengroup.org/onlinepubs/007904975/utilities/sort.html 30//config: http://www.opengroup.org/onlinepubs/007904975/utilities/sort.html
31 31
32//applet:IF_SORT(APPLET_NOEXEC(sort, sort, BB_DIR_USR_BIN, BB_SUID_DROP, sort)) 32//applet:IF_SORT(APPLET_NOEXEC(sort, sort, BB_DIR_USR_BIN, BB_SUID_DROP, sort))
33 33
diff --git a/coreutils/split.c b/coreutils/split.c
index dc6f62109..d0c63573a 100644
--- a/coreutils/split.c
+++ b/coreutils/split.c
@@ -9,16 +9,16 @@
9//config: bool "split (5.4 kb)" 9//config: bool "split (5.4 kb)"
10//config: default y 10//config: default y
11//config: help 11//config: help
12//config: Split a file into pieces. 12//config: Split a file into pieces.
13//config: 13//config:
14//config:config FEATURE_SPLIT_FANCY 14//config:config FEATURE_SPLIT_FANCY
15//config: bool "Fancy extensions" 15//config: bool "Fancy extensions"
16//config: default y 16//config: default y
17//config: depends on SPLIT 17//config: depends on SPLIT
18//config: help 18//config: help
19//config: Add support for features not required by SUSv3. 19//config: Add support for features not required by SUSv3.
20//config: Supports additional suffixes 'b' for 512 bytes, 20//config: Supports additional suffixes 'b' for 512 bytes,
21//config: 'g' for 1GiB for the -b option. 21//config: 'g' for 1GiB for the -b option.
22 22
23//applet:IF_SPLIT(APPLET(split, BB_DIR_USR_BIN, BB_SUID_DROP)) 23//applet:IF_SPLIT(APPLET(split, BB_DIR_USR_BIN, BB_SUID_DROP))
24 24
diff --git a/coreutils/stat.c b/coreutils/stat.c
index e2f9a223d..3b85808b5 100644
--- a/coreutils/stat.c
+++ b/coreutils/stat.c
@@ -16,16 +16,16 @@
16//config: bool "stat (10 kb)" 16//config: bool "stat (10 kb)"
17//config: default y 17//config: default y
18//config: help 18//config: help
19//config: display file or filesystem status. 19//config: display file or filesystem status.
20//config: 20//config:
21//config:config FEATURE_STAT_FORMAT 21//config:config FEATURE_STAT_FORMAT
22//config: bool "Enable custom formats (-c)" 22//config: bool "Enable custom formats (-c)"
23//config: default y 23//config: default y
24//config: depends on STAT 24//config: depends on STAT
25//config: help 25//config: help
26//config: Without this, stat will not support the '-c format' option where 26//config: Without this, stat will not support the '-c format' option where
27//config: users can pass a custom format string for output. This adds about 27//config: users can pass a custom format string for output. This adds about
28//config: 7k to a nonstatic build on amd64. 28//config: 7k to a nonstatic build on amd64.
29//config: 29//config:
30//config:config FEATURE_STAT_FILESYSTEM 30//config:config FEATURE_STAT_FILESYSTEM
31//config: bool "Enable display of filesystem status (-f)" 31//config: bool "Enable display of filesystem status (-f)"
@@ -33,8 +33,8 @@
33//config: depends on STAT 33//config: depends on STAT
34//config: select PLATFORM_LINUX # statfs() 34//config: select PLATFORM_LINUX # statfs()
35//config: help 35//config: help
36//config: Without this, stat will not support the '-f' option to display 36//config: Without this, stat will not support the '-f' option to display
37//config: information about filesystem status. 37//config: information about filesystem status.
38 38
39//applet:IF_STAT(APPLET(stat, BB_DIR_BIN, BB_SUID_DROP)) 39//applet:IF_STAT(APPLET(stat, BB_DIR_BIN, BB_SUID_DROP))
40 40
diff --git a/coreutils/stty.c b/coreutils/stty.c
index 3a4b32ce0..f987fbbcf 100644
--- a/coreutils/stty.c
+++ b/coreutils/stty.c
@@ -23,7 +23,7 @@
23//config: bool "stty (8.6 kb)" 23//config: bool "stty (8.6 kb)"
24//config: default y 24//config: default y
25//config: help 25//config: help
26//config: stty is used to change and print terminal line settings. 26//config: stty is used to change and print terminal line settings.
27 27
28//applet:IF_STTY(APPLET(stty, BB_DIR_BIN, BB_SUID_DROP)) 28//applet:IF_STTY(APPLET(stty, BB_DIR_BIN, BB_SUID_DROP))
29 29
diff --git a/coreutils/sum.c b/coreutils/sum.c
index ef2f94e45..487e93f4a 100644
--- a/coreutils/sum.c
+++ b/coreutils/sum.c
@@ -16,7 +16,7 @@
16//config: bool "sum (4.3 kb)" 16//config: bool "sum (4.3 kb)"
17//config: default y 17//config: default y
18//config: help 18//config: help
19//config: checksum and count the blocks in a file 19//config: checksum and count the blocks in a file
20 20
21//applet:IF_SUM(APPLET(sum, BB_DIR_USR_BIN, BB_SUID_DROP)) 21//applet:IF_SUM(APPLET(sum, BB_DIR_USR_BIN, BB_SUID_DROP))
22 22
diff --git a/coreutils/sync.c b/coreutils/sync.c
index 5557103b3..66445281a 100644
--- a/coreutils/sync.c
+++ b/coreutils/sync.c
@@ -11,14 +11,14 @@
11//config: bool "sync (769 bytes)" 11//config: bool "sync (769 bytes)"
12//config: default y 12//config: default y
13//config: help 13//config: help
14//config: sync is used to flush filesystem buffers. 14//config: sync is used to flush filesystem buffers.
15//config:config FEATURE_SYNC_FANCY 15//config:config FEATURE_SYNC_FANCY
16//config: bool "Enable -d and -f flags (requires syncfs(2) in libc)" 16//config: bool "Enable -d and -f flags (requires syncfs(2) in libc)"
17//config: default y 17//config: default y
18//config: depends on SYNC 18//config: depends on SYNC
19//config: help 19//config: help
20//config: sync -d FILE... executes fdatasync() on each FILE. 20//config: sync -d FILE... executes fdatasync() on each FILE.
21//config: sync -f FILE... executes syncfs() on each FILE. 21//config: sync -f FILE... executes syncfs() on each FILE.
22 22
23//applet:IF_SYNC(APPLET_NOFORK(sync, sync, BB_DIR_BIN, BB_SUID_DROP, sync)) 23//applet:IF_SYNC(APPLET_NOFORK(sync, sync, BB_DIR_BIN, BB_SUID_DROP, sync))
24 24
diff --git a/coreutils/tac.c b/coreutils/tac.c
index 1f5b34a84..6d3ea9c19 100644
--- a/coreutils/tac.c
+++ b/coreutils/tac.c
@@ -16,7 +16,7 @@
16//config: bool "tac (4.1 kb)" 16//config: bool "tac (4.1 kb)"
17//config: default y 17//config: default y
18//config: help 18//config: help
19//config: tac is used to concatenate and print files in reverse. 19//config: tac is used to concatenate and print files in reverse.
20 20
21//applet:IF_TAC(APPLET_NOEXEC(tac, tac, BB_DIR_USR_BIN, BB_SUID_DROP, tac)) 21//applet:IF_TAC(APPLET_NOEXEC(tac, tac, BB_DIR_USR_BIN, BB_SUID_DROP, tac))
22 22
diff --git a/coreutils/tail.c b/coreutils/tail.c
index a834e241e..fd310f422 100644
--- a/coreutils/tail.c
+++ b/coreutils/tail.c
@@ -22,20 +22,20 @@
22//config: bool "tail (7.1 kb)" 22//config: bool "tail (7.1 kb)"
23//config: default y 23//config: default y
24//config: help 24//config: help
25//config: tail is used to print the last specified number of lines 25//config: tail is used to print the last specified number of lines
26//config: from files. 26//config: from files.
27//config: 27//config:
28//config:config FEATURE_FANCY_TAIL 28//config:config FEATURE_FANCY_TAIL
29//config: bool "Enable -q, -s, -v, and -F options" 29//config: bool "Enable -q, -s, -v, and -F options"
30//config: default y 30//config: default y
31//config: depends on TAIL 31//config: depends on TAIL
32//config: help 32//config: help
33//config: These options are provided by GNU tail, but 33//config: These options are provided by GNU tail, but
34//config: are not specific in the SUSv3 standard: 34//config: are not specified in the SUSv3 standard:
35//config: -q Never output headers giving file names 35//config: -q Never output headers giving file names
36//config: -s SEC Wait SEC seconds between reads with -f 36//config: -s SEC Wait SEC seconds between reads with -f
37//config: -v Always output headers giving file names 37//config: -v Always output headers giving file names
38//config: -F Same as -f, but keep retrying 38//config: -F Same as -f, but keep retrying
39 39
40//applet:IF_TAIL(APPLET(tail, BB_DIR_USR_BIN, BB_SUID_DROP)) 40//applet:IF_TAIL(APPLET(tail, BB_DIR_USR_BIN, BB_SUID_DROP))
41 41
diff --git a/coreutils/tee.c b/coreutils/tee.c
index f7676ce9e..f0ec791bb 100644
--- a/coreutils/tee.c
+++ b/coreutils/tee.c
@@ -10,15 +10,15 @@
10//config: bool "tee (4.3 kb)" 10//config: bool "tee (4.3 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: tee is used to read from standard input and write 13//config: tee is used to read from standard input and write
14//config: to standard output and files. 14//config: to standard output and files.
15//config: 15//config:
16//config:config FEATURE_TEE_USE_BLOCK_IO 16//config:config FEATURE_TEE_USE_BLOCK_IO
17//config: bool "Enable block I/O (larger/faster) instead of byte I/O" 17//config: bool "Enable block I/O (larger/faster) instead of byte I/O"
18//config: default y 18//config: default y
19//config: depends on TEE 19//config: depends on TEE
20//config: help 20//config: help
21//config: Enable this option for a faster tee, at expense of size. 21//config: Enable this option for a faster tee, at expense of size.
22 22
23//applet:IF_TEE(APPLET(tee, BB_DIR_USR_BIN, BB_SUID_DROP)) 23//applet:IF_TEE(APPLET(tee, BB_DIR_USR_BIN, BB_SUID_DROP))
24 24
diff --git a/coreutils/test.c b/coreutils/test.c
index 5cca5d1f2..d8ac42e22 100644
--- a/coreutils/test.c
+++ b/coreutils/test.c
@@ -23,28 +23,28 @@
23//config: bool "test (3.6 kb)" 23//config: bool "test (3.6 kb)"
24//config: default y 24//config: default y
25//config: help 25//config: help
26//config: test is used to check file types and compare values, 26//config: test is used to check file types and compare values,
27//config: returning an appropriate exit code. The bash shell 27//config: returning an appropriate exit code. The bash shell
28//config: has test built in, ash can build it in optionally. 28//config: has test built in, ash can build it in optionally.
29//config: 29//config:
30//config:config TEST1 30//config:config TEST1
31//config: bool "test as [" 31//config: bool "test as ["
32//config: default y 32//config: default y
33//config: help 33//config: help
34//config: Provide test command in the "[ EXPR ]" form 34//config: Provide test command in the "[ EXPR ]" form
35//config: 35//config:
36//config:config TEST2 36//config:config TEST2
37//config: bool "test as [[" 37//config: bool "test as [["
38//config: default y 38//config: default y
39//config: help 39//config: help
40//config: Provide test command in the "[[ EXPR ]]" form 40//config: Provide test command in the "[[ EXPR ]]" form
41//config: 41//config:
42//config:config FEATURE_TEST_64 42//config:config FEATURE_TEST_64
43//config: bool "Extend test to 64 bit" 43//config: bool "Extend test to 64 bit"
44//config: default y 44//config: default y
45//config: depends on TEST || TEST1 || TEST2 || ASH_TEST || HUSH_TEST 45//config: depends on TEST || TEST1 || TEST2 || ASH_TEST || HUSH_TEST
46//config: help 46//config: help
47//config: Enable 64-bit support in test. 47//config: Enable 64-bit support in test.
48 48
49//applet:IF_TEST(APPLET_NOFORK(test, test, BB_DIR_USR_BIN, BB_SUID_DROP, test)) 49//applet:IF_TEST(APPLET_NOFORK(test, test, BB_DIR_USR_BIN, BB_SUID_DROP, test))
50//applet:IF_TEST1(APPLET_NOFORK([, test, BB_DIR_USR_BIN, BB_SUID_DROP, test)) 50//applet:IF_TEST1(APPLET_NOFORK([, test, BB_DIR_USR_BIN, BB_SUID_DROP, test))
diff --git a/coreutils/timeout.c b/coreutils/timeout.c
index 5981c7bcb..4a6117f59 100644
--- a/coreutils/timeout.c
+++ b/coreutils/timeout.c
@@ -31,8 +31,8 @@
31//config: bool "timeout (5.5 kb)" 31//config: bool "timeout (5.5 kb)"
32//config: default y 32//config: default y
33//config: help 33//config: help
34//config: Runs a program and watches it. If it does not terminate in 34//config: Runs a program and watches it. If it does not terminate in
35//config: specified number of seconds, it is sent a signal. 35//config: specified number of seconds, it is sent a signal.
36 36
37//applet:IF_TIMEOUT(APPLET(timeout, BB_DIR_USR_BIN, BB_SUID_DROP)) 37//applet:IF_TIMEOUT(APPLET(timeout, BB_DIR_USR_BIN, BB_SUID_DROP))
38 38
diff --git a/coreutils/touch.c b/coreutils/touch.c
index 7b7b9f8a1..11b40d427 100644
--- a/coreutils/touch.c
+++ b/coreutils/touch.c
@@ -16,23 +16,23 @@
16//config: bool "touch (5.8 kb)" 16//config: bool "touch (5.8 kb)"
17//config: default y 17//config: default y
18//config: help 18//config: help
19//config: touch is used to create or change the access and/or 19//config: touch is used to create or change the access and/or
20//config: modification timestamp of specified files. 20//config: modification timestamp of specified files.
21//config: 21//config:
22//config:config FEATURE_TOUCH_NODEREF 22//config:config FEATURE_TOUCH_NODEREF
23//config: bool "Add support for -h" 23//config: bool "Add support for -h"
24//config: default y 24//config: default y
25//config: depends on TOUCH 25//config: depends on TOUCH
26//config: help 26//config: help
27//config: Enable touch to have the -h option. 27//config: Enable touch to have the -h option.
28//config: This requires libc support for lutimes() function. 28//config: This requires libc support for lutimes() function.
29//config: 29//config:
30//config:config FEATURE_TOUCH_SUSV3 30//config:config FEATURE_TOUCH_SUSV3
31//config: bool "Add support for SUSV3 features (-d -t -r)" 31//config: bool "Add support for SUSV3 features (-d -t -r)"
32//config: default y 32//config: default y
33//config: depends on TOUCH 33//config: depends on TOUCH
34//config: help 34//config: help
35//config: Enable touch to use a reference file or a given date/time argument. 35//config: Enable touch to use a reference file or a given date/time argument.
36 36
37//applet:IF_TOUCH(APPLET_NOFORK(touch, touch, BB_DIR_BIN, BB_SUID_DROP, touch)) 37//applet:IF_TOUCH(APPLET_NOFORK(touch, touch, BB_DIR_BIN, BB_SUID_DROP, touch))
38 38
diff --git a/coreutils/tr.c b/coreutils/tr.c
index 4281a2c69..64e4efc91 100644
--- a/coreutils/tr.c
+++ b/coreutils/tr.c
@@ -22,27 +22,27 @@
22//config: bool "tr (5.5 kb)" 22//config: bool "tr (5.5 kb)"
23//config: default y 23//config: default y
24//config: help 24//config: help
25//config: tr is used to squeeze, and/or delete characters from standard 25//config: tr is used to squeeze, and/or delete characters from standard
26//config: input, writing to standard output. 26//config: input, writing to standard output.
27//config: 27//config:
28//config:config FEATURE_TR_CLASSES 28//config:config FEATURE_TR_CLASSES
29//config: bool "Enable character classes (such as [:upper:])" 29//config: bool "Enable character classes (such as [:upper:])"
30//config: default y 30//config: default y
31//config: depends on TR 31//config: depends on TR
32//config: help 32//config: help
33//config: Enable character classes, enabling commands such as: 33//config: Enable character classes, enabling commands such as:
34//config: tr [:upper:] [:lower:] to convert input into lowercase. 34//config: tr [:upper:] [:lower:] to convert input into lowercase.
35//config: 35//config:
36//config:config FEATURE_TR_EQUIV 36//config:config FEATURE_TR_EQUIV
37//config: bool "Enable equivalence classes" 37//config: bool "Enable equivalence classes"
38//config: default y 38//config: default y
39//config: depends on TR 39//config: depends on TR
40//config: help 40//config: help
41//config: Enable equivalence classes, which essentially add the enclosed 41//config: Enable equivalence classes, which essentially add the enclosed
42//config: character to the current set. For instance, tr [=a=] xyz would 42//config: character to the current set. For instance, tr [=a=] xyz would
43//config: replace all instances of 'a' with 'xyz'. This option is mainly 43//config: replace all instances of 'a' with 'xyz'. This option is mainly
44//config: useful for cases when no other way of expressing a character 44//config: useful for cases when no other way of expressing a character
45//config: is possible. 45//config: is possible.
46 46
47//applet:IF_TR(APPLET(tr, BB_DIR_USR_BIN, BB_SUID_DROP)) 47//applet:IF_TR(APPLET(tr, BB_DIR_USR_BIN, BB_SUID_DROP))
48 48
diff --git a/coreutils/true.c b/coreutils/true.c
index 29386b021..400388c34 100644
--- a/coreutils/true.c
+++ b/coreutils/true.c
@@ -10,7 +10,7 @@
10//config: bool "true (tiny)" 10//config: bool "true (tiny)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: true returns an exit code of TRUE (0). 13//config: true returns an exit code of TRUE (0).
14 14
15//applet:IF_TRUE(APPLET_NOFORK(true, true, BB_DIR_BIN, BB_SUID_DROP, true)) 15//applet:IF_TRUE(APPLET_NOFORK(true, true, BB_DIR_BIN, BB_SUID_DROP, true))
16 16
diff --git a/coreutils/truncate.c b/coreutils/truncate.c
index eefe2b4fc..f67abaf40 100644
--- a/coreutils/truncate.c
+++ b/coreutils/truncate.c
@@ -9,8 +9,8 @@
9//config: bool "truncate (4.7 kb)" 9//config: bool "truncate (4.7 kb)"
10//config: default y 10//config: default y
11//config: help 11//config: help
12//config: truncate truncates files to a given size. If a file does 12//config: truncate truncates files to a given size. If a file does
13//config: not exist, it is created unless told otherwise. 13//config: not exist, it is created unless told otherwise.
14 14
15//applet:IF_TRUNCATE(APPLET_NOFORK(truncate, truncate, BB_DIR_USR_BIN, BB_SUID_DROP, truncate)) 15//applet:IF_TRUNCATE(APPLET_NOFORK(truncate, truncate, BB_DIR_USR_BIN, BB_SUID_DROP, truncate))
16 16
diff --git a/coreutils/tty.c b/coreutils/tty.c
index 9a5f1ef52..331941a01 100644
--- a/coreutils/tty.c
+++ b/coreutils/tty.c
@@ -10,8 +10,8 @@
10//config: bool "tty (3.3 kb)" 10//config: bool "tty (3.3 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: tty is used to print the name of the current terminal to 13//config: tty is used to print the name of the current terminal to
14//config: standard output. 14//config: standard output.
15 15
16//applet:IF_TTY(APPLET(tty, BB_DIR_USR_BIN, BB_SUID_DROP)) 16//applet:IF_TTY(APPLET(tty, BB_DIR_USR_BIN, BB_SUID_DROP))
17 17
diff --git a/coreutils/uname.c b/coreutils/uname.c
index 8a33cf3b5..aad58cab0 100644
--- a/coreutils/uname.c
+++ b/coreutils/uname.c
@@ -46,22 +46,22 @@
46//config: bool "uname (3.7 kb)" 46//config: bool "uname (3.7 kb)"
47//config: default y 47//config: default y
48//config: help 48//config: help
49//config: uname is used to print system information. 49//config: uname is used to print system information.
50//config: 50//config:
51//config:config UNAME_OSNAME 51//config:config UNAME_OSNAME
52//config: string "Operating system name" 52//config: string "Operating system name"
53//config: default "GNU/Linux" 53//config: default "GNU/Linux"
54//config: depends on UNAME 54//config: depends on UNAME
55//config: help 55//config: help
56//config: Sets the operating system name reported by uname -o. The 56//config: Sets the operating system name reported by uname -o. The
57//config: default is "GNU/Linux". 57//config: default is "GNU/Linux".
58//config: 58//config:
59//can't use "ARCH" for this applet, all hell breaks loose in build system :) 59//can't use "ARCH" for this applet, all hell breaks loose in build system :)
60//config:config BB_ARCH 60//config:config BB_ARCH
61//config: bool "arch (1.6 kb)" 61//config: bool "arch (1.6 kb)"
62//config: default y 62//config: default y
63//config: help 63//config: help
64//config: Same as uname -m. 64//config: Same as uname -m.
65 65
66//applet:IF_UNAME(APPLET(uname, BB_DIR_BIN, BB_SUID_DROP)) 66//applet:IF_UNAME(APPLET(uname, BB_DIR_BIN, BB_SUID_DROP))
67// APPLET_ODDNAME:name main location suid_type help 67// APPLET_ODDNAME:name main location suid_type help
diff --git a/coreutils/uniq.c b/coreutils/uniq.c
index 3f9c56e74..f71557b67 100644
--- a/coreutils/uniq.c
+++ b/coreutils/uniq.c
@@ -10,7 +10,7 @@
10//config: bool "uniq (4.8 kb)" 10//config: bool "uniq (4.8 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: uniq is used to remove duplicate lines from a sorted file. 13//config: uniq is used to remove duplicate lines from a sorted file.
14 14
15//applet:IF_UNIQ(APPLET(uniq, BB_DIR_USR_BIN, BB_SUID_DROP)) 15//applet:IF_UNIQ(APPLET(uniq, BB_DIR_USR_BIN, BB_SUID_DROP))
16 16
diff --git a/coreutils/unlink.c b/coreutils/unlink.c
index fcc86da97..3322d5b47 100644
--- a/coreutils/unlink.c
+++ b/coreutils/unlink.c
@@ -9,7 +9,7 @@
9//config: bool "unlink (3.5 kb)" 9//config: bool "unlink (3.5 kb)"
10//config: default y 10//config: default y
11//config: help 11//config: help
12//config: unlink deletes a file by calling unlink() 12//config: unlink deletes a file by calling unlink()
13 13
14//applet:IF_UNLINK(APPLET(unlink, BB_DIR_USR_BIN, BB_SUID_DROP)) 14//applet:IF_UNLINK(APPLET(unlink, BB_DIR_USR_BIN, BB_SUID_DROP))
15 15
diff --git a/coreutils/usleep.c b/coreutils/usleep.c
index 1675b2fc9..7c25aada1 100644
--- a/coreutils/usleep.c
+++ b/coreutils/usleep.c
@@ -10,7 +10,7 @@
10//config: bool "usleep (1.1 kb)" 10//config: bool "usleep (1.1 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: usleep is used to pause for a specified number of microseconds. 13//config: usleep is used to pause for a specified number of microseconds.
14 14
15//applet:IF_USLEEP(APPLET_NOFORK(usleep, usleep, BB_DIR_BIN, BB_SUID_DROP, usleep)) 15//applet:IF_USLEEP(APPLET_NOFORK(usleep, usleep, BB_DIR_BIN, BB_SUID_DROP, usleep))
16 16
diff --git a/coreutils/uudecode.c b/coreutils/uudecode.c
index 418d0238f..4e72e86ee 100644
--- a/coreutils/uudecode.c
+++ b/coreutils/uudecode.c
@@ -14,7 +14,7 @@
14//config: bool "uudecode (5.9 kb)" 14//config: bool "uudecode (5.9 kb)"
15//config: default y 15//config: default y
16//config: help 16//config: help
17//config: uudecode is used to decode a uuencoded file. 17//config: uudecode is used to decode a uuencoded file.
18 18
19//applet:IF_UUDECODE(APPLET(uudecode, BB_DIR_USR_BIN, BB_SUID_DROP)) 19//applet:IF_UUDECODE(APPLET(uudecode, BB_DIR_USR_BIN, BB_SUID_DROP))
20 20
@@ -179,7 +179,7 @@ int uudecode_main(int argc UNUSED_PARAM, char **argv)
179//config: bool "base64 (5 kb)" 179//config: bool "base64 (5 kb)"
180//config: default y 180//config: default y
181//config: help 181//config: help
182//config: Base64 encode and decode 182//config: Base64 encode and decode
183 183
184//usage:#define base64_trivial_usage 184//usage:#define base64_trivial_usage
185//usage: "[-d] [FILE]" 185//usage: "[-d] [FILE]"
diff --git a/coreutils/uuencode.c b/coreutils/uuencode.c
index cd167aeda..7164f838a 100644
--- a/coreutils/uuencode.c
+++ b/coreutils/uuencode.c
@@ -11,7 +11,7 @@
11//config: bool "uuencode (4.6 kb)" 11//config: bool "uuencode (4.6 kb)"
12//config: default y 12//config: default y
13//config: help 13//config: help
14//config: uuencode is used to uuencode a file. 14//config: uuencode is used to uuencode a file.
15 15
16//applet:IF_UUENCODE(APPLET(uuencode, BB_DIR_USR_BIN, BB_SUID_DROP)) 16//applet:IF_UUENCODE(APPLET(uuencode, BB_DIR_USR_BIN, BB_SUID_DROP))
17 17
diff --git a/coreutils/wc.c b/coreutils/wc.c
index 716119d6c..c74b7a65f 100644
--- a/coreutils/wc.c
+++ b/coreutils/wc.c
@@ -36,15 +36,15 @@
36//config: bool "wc (4.4 kb)" 36//config: bool "wc (4.4 kb)"
37//config: default y 37//config: default y
38//config: help 38//config: help
39//config: wc is used to print the number of bytes, words, and lines, 39//config: wc is used to print the number of bytes, words, and lines,
40//config: in specified files. 40//config: in specified files.
41//config: 41//config:
42//config:config FEATURE_WC_LARGE 42//config:config FEATURE_WC_LARGE
43//config: bool "Support very large counts" 43//config: bool "Support very large counts"
44//config: default y 44//config: default y
45//config: depends on WC 45//config: depends on WC
46//config: help 46//config: help
47//config: Use "unsigned long long" for counter variables. 47//config: Use "unsigned long long" for counter variables.
48 48
49//applet:IF_WC(APPLET(wc, BB_DIR_USR_BIN, BB_SUID_DROP)) 49//applet:IF_WC(APPLET(wc, BB_DIR_USR_BIN, BB_SUID_DROP))
50 50
diff --git a/coreutils/who.c b/coreutils/who.c
index 73167904f..91f99138c 100644
--- a/coreutils/who.c
+++ b/coreutils/who.c
@@ -17,26 +17,26 @@
17 *---------------------------------------------------------------------- 17 *----------------------------------------------------------------------
18 */ 18 */
19//config:config WHO 19//config:config WHO
20//config: bool "who (3.7 kb)" 20//config: bool "who (3.7 kb)"
21//config: default y 21//config: default y
22//config: depends on FEATURE_UTMP 22//config: depends on FEATURE_UTMP
23//config: help 23//config: help
24//config: who is used to show who is logged on. 24//config: Print users currently logged on.
25//config: 25//config:
26// procps-ng has this variation of "who": 26// procps-ng has this variation of "who":
27//config:config W 27//config:config W
28//config: bool "w (3.7 kb)" 28//config: bool "w (3.7 kb)"
29//config: default y 29//config: default y
30//config: depends on FEATURE_UTMP 30//config: depends on FEATURE_UTMP
31//config: help 31//config: help
32//config: w is used to show who is logged on. 32//config: Print users currently logged on.
33//config: 33//config:
34//config:config USERS 34//config:config USERS
35//config: bool "users (3.2 kb)" 35//config: bool "users (3.2 kb)"
36//config: default y 36//config: default y
37//config: depends on FEATURE_UTMP 37//config: depends on FEATURE_UTMP
38//config: help 38//config: help
39//config: Print users currently logged on. 39//config: Print users currently logged on.
40 40
41// APPLET_ODDNAME:name main location suid_type help 41// APPLET_ODDNAME:name main location suid_type help
42//applet:IF_USERS(APPLET_ODDNAME(users, who, BB_DIR_USR_BIN, BB_SUID_DROP, users)) 42//applet:IF_USERS(APPLET_ODDNAME(users, who, BB_DIR_USR_BIN, BB_SUID_DROP, users))
diff --git a/coreutils/whoami.c b/coreutils/whoami.c
index 02a51084a..9dab15817 100644
--- a/coreutils/whoami.c
+++ b/coreutils/whoami.c
@@ -10,8 +10,8 @@
10//config: bool "whoami (2.9 kb)" 10//config: bool "whoami (2.9 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: whoami is used to print the username of the current 13//config: whoami is used to print the username of the current
14//config: user id (same as id -un). 14//config: user id (same as id -un).
15 15
16//applet:IF_WHOAMI(APPLET_NOFORK(whoami, whoami, BB_DIR_USR_BIN, BB_SUID_DROP, whoami)) 16//applet:IF_WHOAMI(APPLET_NOFORK(whoami, whoami, BB_DIR_USR_BIN, BB_SUID_DROP, whoami))
17 17
diff --git a/coreutils/yes.c b/coreutils/yes.c
index e8edc0c0d..493b7b1c3 100644
--- a/coreutils/yes.c
+++ b/coreutils/yes.c
@@ -14,8 +14,8 @@
14//config: bool "yes (956 bytes)" 14//config: bool "yes (956 bytes)"
15//config: default y 15//config: default y
16//config: help 16//config: help
17//config: yes is used to repeatedly output a specific string, or 17//config: yes is used to repeatedly output a specific string, or
18//config: the default string `y'. 18//config: the default string `y'.
19 19
20//applet:IF_YES(APPLET_NOFORK(yes, yes, BB_DIR_USR_BIN, BB_SUID_DROP, yes)) 20//applet:IF_YES(APPLET_NOFORK(yes, yes, BB_DIR_USR_BIN, BB_SUID_DROP, yes))
21 21
diff --git a/debianutils/pipe_progress.c b/debianutils/pipe_progress.c
index af5de2d52..e6b7601fa 100644
--- a/debianutils/pipe_progress.c
+++ b/debianutils/pipe_progress.c
@@ -10,7 +10,7 @@
10//config: bool "pipe_progress (225 bytes)" 10//config: bool "pipe_progress (225 bytes)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: Display a dot to indicate pipe activity. 13//config: Display a dot to indicate pipe activity.
14 14
15//applet:IF_PIPE_PROGRESS(APPLET(pipe_progress, BB_DIR_BIN, BB_SUID_DROP)) 15//applet:IF_PIPE_PROGRESS(APPLET(pipe_progress, BB_DIR_BIN, BB_SUID_DROP))
16 16
diff --git a/debianutils/run_parts.c b/debianutils/run_parts.c
index 011066bd4..c6a90a486 100644
--- a/debianutils/run_parts.c
+++ b/debianutils/run_parts.c
@@ -26,16 +26,16 @@
26//config: bool "run-parts (5.6 kb)" 26//config: bool "run-parts (5.6 kb)"
27//config: default y 27//config: default y
28//config: help 28//config: help
29//config: run-parts is a utility designed to run all the scripts in a directory. 29//config: run-parts is a utility designed to run all the scripts in a directory.
30//config: 30//config:
31//config: It is useful to set up a directory like cron.daily, where you need to 31//config: It is useful to set up a directory like cron.daily, where you need to
32//config: execute all the scripts in that directory. 32//config: execute all the scripts in that directory.
33//config: 33//config:
34//config: In this implementation of run-parts some features (such as report 34//config: In this implementation of run-parts some features (such as report
35//config: mode) are not implemented. 35//config: mode) are not implemented.
36//config: 36//config:
37//config: Unless you know that run-parts is used in some of your scripts 37//config: Unless you know that run-parts is used in some of your scripts
38//config: you can safely say N here. 38//config: you can safely say N here.
39//config: 39//config:
40//config:config FEATURE_RUN_PARTS_LONG_OPTIONS 40//config:config FEATURE_RUN_PARTS_LONG_OPTIONS
41//config: bool "Enable long options" 41//config: bool "Enable long options"
@@ -47,9 +47,9 @@
47//config: default y 47//config: default y
48//config: depends on RUN_PARTS 48//config: depends on RUN_PARTS
49//config: help 49//config: help
50//config: Support additional options: 50//config: Support additional options:
51//config: -l --list print the names of the all matching files (not 51//config: -l --list print the names of the all matching files (not
52//config: limited to executables), but don't actually run them. 52//config: limited to executables), but don't actually run them.
53 53
54//applet:IF_RUN_PARTS(APPLET_ODDNAME(run-parts, run_parts, BB_DIR_BIN, BB_SUID_DROP, run_parts)) 54//applet:IF_RUN_PARTS(APPLET_ODDNAME(run-parts, run_parts, BB_DIR_BIN, BB_SUID_DROP, run_parts))
55 55
diff --git a/debianutils/start_stop_daemon.c b/debianutils/start_stop_daemon.c
index 584158fe8..9d60b2c7f 100644
--- a/debianutils/start_stop_daemon.c
+++ b/debianutils/start_stop_daemon.c
@@ -60,9 +60,9 @@ Misc options:
60//config: bool "start-stop-daemon (12 kb)" 60//config: bool "start-stop-daemon (12 kb)"
61//config: default y 61//config: default y
62//config: help 62//config: help
63//config: start-stop-daemon is used to control the creation and 63//config: start-stop-daemon is used to control the creation and
64//config: termination of system-level processes, usually the ones 64//config: termination of system-level processes, usually the ones
65//config: started during the startup of the system. 65//config: started during the startup of the system.
66//config: 66//config:
67//config:config FEATURE_START_STOP_DAEMON_LONG_OPTIONS 67//config:config FEATURE_START_STOP_DAEMON_LONG_OPTIONS
68//config: bool "Enable long options" 68//config: bool "Enable long options"
@@ -74,9 +74,9 @@ Misc options:
74//config: default y 74//config: default y
75//config: depends on START_STOP_DAEMON 75//config: depends on START_STOP_DAEMON
76//config: help 76//config: help
77//config: -o|--oknodo ignored since we exit with 0 anyway 77//config: -o|--oknodo ignored since we exit with 0 anyway
78//config: -v|--verbose 78//config: -v|--verbose
79//config: -N|--nicelevel N 79//config: -N|--nicelevel N
80 80
81//applet:IF_START_STOP_DAEMON(APPLET_ODDNAME(start-stop-daemon, start_stop_daemon, BB_DIR_SBIN, BB_SUID_DROP, start_stop_daemon)) 81//applet:IF_START_STOP_DAEMON(APPLET_ODDNAME(start-stop-daemon, start_stop_daemon, BB_DIR_SBIN, BB_SUID_DROP, start_stop_daemon))
82 82
diff --git a/debianutils/which.c b/debianutils/which.c
index bdf6b9b14..3197ddac1 100644
--- a/debianutils/which.c
+++ b/debianutils/which.c
@@ -9,8 +9,8 @@
9//config: bool "which (3.7 kb)" 9//config: bool "which (3.7 kb)"
10//config: default y 10//config: default y
11//config: help 11//config: help
12//config: which is used to find programs in your PATH and 12//config: which is used to find programs in your PATH and
13//config: print out their pathnames. 13//config: print out their pathnames.
14 14
15//applet:IF_WHICH(APPLET(which, BB_DIR_USR_BIN, BB_SUID_DROP)) 15//applet:IF_WHICH(APPLET(which, BB_DIR_USR_BIN, BB_SUID_DROP))
16 16
diff --git a/e2fsprogs/chattr.c b/e2fsprogs/chattr.c
index f84ff0d0c..72327d728 100644
--- a/e2fsprogs/chattr.c
+++ b/e2fsprogs/chattr.c
@@ -13,7 +13,7 @@
13//config: bool "chattr (3.2 kb)" 13//config: bool "chattr (3.2 kb)"
14//config: default y 14//config: default y
15//config: help 15//config: help
16//config: chattr changes the file attributes on a second extended file system. 16//config: chattr changes the file attributes on a second extended file system.
17 17
18//applet:IF_CHATTR(APPLET(chattr, BB_DIR_BIN, BB_SUID_DROP)) 18//applet:IF_CHATTR(APPLET(chattr, BB_DIR_BIN, BB_SUID_DROP))
19 19
diff --git a/e2fsprogs/fsck.c b/e2fsprogs/fsck.c
index 8d03e0cee..1c285bb92 100644
--- a/e2fsprogs/fsck.c
+++ b/e2fsprogs/fsck.c
@@ -37,9 +37,9 @@
37//config: bool "fsck (6.7 kb)" 37//config: bool "fsck (6.7 kb)"
38//config: default y 38//config: default y
39//config: help 39//config: help
40//config: fsck is used to check and optionally repair one or more filesystems. 40//config: fsck is used to check and optionally repair one or more filesystems.
41//config: In actuality, fsck is simply a front-end for the various file system 41//config: In actuality, fsck is simply a front-end for the various file system
42//config: checkers (fsck.fstype) available under Linux. 42//config: checkers (fsck.fstype) available under Linux.
43 43
44//applet:IF_FSCK(APPLET(fsck, BB_DIR_SBIN, BB_SUID_DROP)) 44//applet:IF_FSCK(APPLET(fsck, BB_DIR_SBIN, BB_SUID_DROP))
45 45
diff --git a/e2fsprogs/lsattr.c b/e2fsprogs/lsattr.c
index f59fe93a2..756d26832 100644
--- a/e2fsprogs/lsattr.c
+++ b/e2fsprogs/lsattr.c
@@ -14,7 +14,7 @@
14//config: default y 14//config: default y
15//config: select PLATFORM_LINUX 15//config: select PLATFORM_LINUX
16//config: help 16//config: help
17//config: lsattr lists the file attributes on a second extended file system. 17//config: lsattr lists the file attributes on a second extended file system.
18 18
19//applet:IF_LSATTR(APPLET(lsattr, BB_DIR_BIN, BB_SUID_DROP)) 19//applet:IF_LSATTR(APPLET(lsattr, BB_DIR_BIN, BB_SUID_DROP))
20 20
diff --git a/e2fsprogs/tune2fs.c b/e2fsprogs/tune2fs.c
index d9fac4e42..95411db5f 100644
--- a/e2fsprogs/tune2fs.c
+++ b/e2fsprogs/tune2fs.c
@@ -10,8 +10,8 @@
10//config: bool "tune2fs (4.4 kb)" 10//config: bool "tune2fs (4.4 kb)"
11//config: default n # off: it is too limited compared to upstream version 11//config: default n # off: it is too limited compared to upstream version
12//config: help 12//config: help
13//config: tune2fs allows the system administrator to adjust various tunable 13//config: tune2fs allows the system administrator to adjust various tunable
14//config: filesystem parameters on Linux ext2/ext3 filesystems. 14//config: filesystem parameters on Linux ext2/ext3 filesystems.
15 15
16//applet:IF_TUNE2FS(APPLET(tune2fs, BB_DIR_SBIN, BB_SUID_DROP)) 16//applet:IF_TUNE2FS(APPLET(tune2fs, BB_DIR_SBIN, BB_SUID_DROP))
17 17
diff --git a/editors/Config.src b/editors/Config.src
index 8f2b265bd..0920bc494 100644
--- a/editors/Config.src
+++ b/editors/Config.src
@@ -12,7 +12,7 @@ config FEATURE_ALLOW_EXEC
12 default y 12 default y
13 depends on VI || AWK 13 depends on VI || AWK
14 help 14 help
15 Enables vi and awk features which allow user to execute 15 Enables vi and awk features which allow user to execute
16 shell commands (using system() C call). 16 shell commands (using system() C call).
17 17
18endmenu 18endmenu
diff --git a/editors/awk.c b/editors/awk.c
index 9d859b820..aa927db1a 100644
--- a/editors/awk.c
+++ b/editors/awk.c
@@ -11,27 +11,27 @@
11//config: bool "awk (22 kb)" 11//config: bool "awk (22 kb)"
12//config: default y 12//config: default y
13//config: help 13//config: help
14//config: Awk is used as a pattern scanning and processing language. This is 14//config: Awk is used as a pattern scanning and processing language. This is
15//config: the BusyBox implementation of that programming language. 15//config: the BusyBox implementation of that programming language.
16//config: 16//config:
17//config:config FEATURE_AWK_LIBM 17//config:config FEATURE_AWK_LIBM
18//config: bool "Enable math functions (requires libm)" 18//config: bool "Enable math functions (requires libm)"
19//config: default y 19//config: default y
20//config: depends on AWK 20//config: depends on AWK
21//config: help 21//config: help
22//config: Enable math functions of the Awk programming language. 22//config: Enable math functions of the Awk programming language.
23//config: NOTE: This requires libm to be present for linking. 23//config: NOTE: This requires libm to be present for linking.
24//config: 24//config:
25//config:config FEATURE_AWK_GNU_EXTENSIONS 25//config:config FEATURE_AWK_GNU_EXTENSIONS
26//config: bool "Enable a few GNU extensions" 26//config: bool "Enable a few GNU extensions"
27//config: default y 27//config: default y
28//config: depends on AWK 28//config: depends on AWK
29//config: help 29//config: help
30//config: Enable a few features from gawk: 30//config: Enable a few features from gawk:
31//config: * command line option -e AWK_PROGRAM 31//config: * command line option -e AWK_PROGRAM
32//config: * simultaneous use of -f and -e on the command line. 32//config: * simultaneous use of -f and -e on the command line.
33//config: This enables the use of awk library files. 33//config: This enables the use of awk library files.
34//config: Ex: awk -f mylib.awk -e '{print myfunction($1);}' ... 34//config: Example: awk -f mylib.awk -e '{print myfunction($1);}' ...
35 35
36//applet:IF_AWK(APPLET_NOEXEC(awk, awk, BB_DIR_USR_BIN, BB_SUID_DROP, awk)) 36//applet:IF_AWK(APPLET_NOEXEC(awk, awk, BB_DIR_USR_BIN, BB_SUID_DROP, awk))
37 37
diff --git a/editors/cmp.c b/editors/cmp.c
index 6e5500c17..f53d9603c 100644
--- a/editors/cmp.c
+++ b/editors/cmp.c
@@ -14,8 +14,8 @@
14//config: bool "cmp (5.4 kb)" 14//config: bool "cmp (5.4 kb)"
15//config: default y 15//config: default y
16//config: help 16//config: help
17//config: cmp is used to compare two files and returns the result 17//config: cmp is used to compare two files and returns the result
18//config: to standard output. 18//config: to standard output.
19 19
20//kbuild:lib-$(CONFIG_CMP) += cmp.o 20//kbuild:lib-$(CONFIG_CMP) += cmp.o
21 21
diff --git a/editors/diff.c b/editors/diff.c
index b6a5ca606..03c13908e 100644
--- a/editors/diff.c
+++ b/editors/diff.c
@@ -80,9 +80,9 @@
80//config: bool "diff (13 kb)" 80//config: bool "diff (13 kb)"
81//config: default y 81//config: default y
82//config: help 82//config: help
83//config: diff compares two files or directories and outputs the 83//config: diff compares two files or directories and outputs the
84//config: differences between them in a form that can be given to 84//config: differences between them in a form that can be given to
85//config: the patch command. 85//config: the patch command.
86//config: 86//config:
87//config:config FEATURE_DIFF_LONG_OPTIONS 87//config:config FEATURE_DIFF_LONG_OPTIONS
88//config: bool "Enable long options" 88//config: bool "Enable long options"
@@ -94,8 +94,8 @@
94//config: default y 94//config: default y
95//config: depends on DIFF 95//config: depends on DIFF
96//config: help 96//config: help
97//config: This option enables support for directory and subdirectory 97//config: This option enables support for directory and subdirectory
98//config: comparison. 98//config: comparison.
99 99
100//kbuild:lib-$(CONFIG_DIFF) += diff.o 100//kbuild:lib-$(CONFIG_DIFF) += diff.o
101 101
diff --git a/editors/ed.c b/editors/ed.c
index 863a99366..c594d3da1 100644
--- a/editors/ed.c
+++ b/editors/ed.c
@@ -11,9 +11,9 @@
11//config: bool "ed (25 kb)" 11//config: bool "ed (25 kb)"
12//config: default y 12//config: default y
13//config: help 13//config: help
14//config: The original 1970's Unix text editor, from the days of teletypes. 14//config: The original 1970's Unix text editor, from the days of teletypes.
15//config: Small, simple, evil. Part of SUSv3. If you're not already using 15//config: Small, simple, evil. Part of SUSv3. If you're not already using
16//config: this, you don't need it. 16//config: this, you don't need it.
17 17
18//kbuild:lib-$(CONFIG_ED) += ed.o 18//kbuild:lib-$(CONFIG_ED) += ed.o
19 19
diff --git a/editors/patch.c b/editors/patch.c
index 86a0193a1..81316fae3 100644
--- a/editors/patch.c
+++ b/editors/patch.c
@@ -26,7 +26,7 @@
26//config: bool "patch (9.1 kb)" 26//config: bool "patch (9.1 kb)"
27//config: default y 27//config: default y
28//config: help 28//config: help
29//config: Apply a unified diff formatted patch. 29//config: Apply a unified diff formatted patch.
30 30
31//applet:IF_PATCH(APPLET(patch, BB_DIR_USR_BIN, BB_SUID_DROP)) 31//applet:IF_PATCH(APPLET(patch, BB_DIR_USR_BIN, BB_SUID_DROP))
32 32
diff --git a/editors/sed.c b/editors/sed.c
index c5df5d9e7..bec20040a 100644
--- a/editors/sed.c
+++ b/editors/sed.c
@@ -60,8 +60,8 @@
60//config: bool "sed (12 kb)" 60//config: bool "sed (12 kb)"
61//config: default y 61//config: default y
62//config: help 62//config: help
63//config: sed is used to perform text transformations on a file 63//config: sed is used to perform text transformations on a file
64//config: or input from a pipeline. 64//config: or input from a pipeline.
65 65
66//kbuild:lib-$(CONFIG_SED) += sed.o 66//kbuild:lib-$(CONFIG_SED) += sed.o
67 67
diff --git a/editors/vi.c b/editors/vi.c
index 015938585..116022c93 100644
--- a/editors/vi.c
+++ b/editors/vi.c
@@ -24,10 +24,10 @@
24//config: bool "vi (22 kb)" 24//config: bool "vi (22 kb)"
25//config: default y 25//config: default y
26//config: help 26//config: help
27//config: 'vi' is a text editor. More specifically, it is the One True 27//config: 'vi' is a text editor. More specifically, it is the One True
28//config: text editor <grin>. It does, however, have a rather steep 28//config: text editor <grin>. It does, however, have a rather steep
29//config: learning curve. If you are not already comfortable with 'vi' 29//config: learning curve. If you are not already comfortable with 'vi'
30//config: you may wish to use something else. 30//config: you may wish to use something else.
31//config: 31//config:
32//config:config FEATURE_VI_MAX_LEN 32//config:config FEATURE_VI_MAX_LEN
33//config: int "Maximum screen width" 33//config: int "Maximum screen width"
@@ -35,77 +35,77 @@
35//config: default 4096 35//config: default 4096
36//config: depends on VI 36//config: depends on VI
37//config: help 37//config: help
38//config: Contrary to what you may think, this is not eating much. 38//config: Contrary to what you may think, this is not eating much.
39//config: Make it smaller than 4k only if you are very limited on memory. 39//config: Make it smaller than 4k only if you are very limited on memory.
40//config: 40//config:
41//config:config FEATURE_VI_8BIT 41//config:config FEATURE_VI_8BIT
42//config: bool "Allow to display 8-bit chars (otherwise shows dots)" 42//config: bool "Allow to display 8-bit chars (otherwise shows dots)"
43//config: default n 43//config: default n
44//config: depends on VI 44//config: depends on VI
45//config: help 45//config: help
46//config: If your terminal can display characters with high bit set, 46//config: If your terminal can display characters with high bit set,
47//config: you may want to enable this. Note: vi is not Unicode-capable. 47//config: you may want to enable this. Note: vi is not Unicode-capable.
48//config: If your terminal combines several 8-bit bytes into one character 48//config: If your terminal combines several 8-bit bytes into one character
49//config: (as in Unicode mode), this will not work properly. 49//config: (as in Unicode mode), this will not work properly.
50//config: 50//config:
51//config:config FEATURE_VI_COLON 51//config:config FEATURE_VI_COLON
52//config: bool "Enable \":\" colon commands (no \"ex\" mode)" 52//config: bool "Enable \":\" colon commands (no \"ex\" mode)"
53//config: default y 53//config: default y
54//config: depends on VI 54//config: depends on VI
55//config: help 55//config: help
56//config: Enable a limited set of colon commands. This does not 56//config: Enable a limited set of colon commands. This does not
57//config: provide an "ex" mode. 57//config: provide an "ex" mode.
58//config: 58//config:
59//config:config FEATURE_VI_YANKMARK 59//config:config FEATURE_VI_YANKMARK
60//config: bool "Enable yank/put commands and mark cmds" 60//config: bool "Enable yank/put commands and mark cmds"
61//config: default y 61//config: default y
62//config: depends on VI 62//config: depends on VI
63//config: help 63//config: help
64//config: This enables you to use yank and put, as well as mark. 64//config: This enables you to use yank and put, as well as mark.
65//config: 65//config:
66//config:config FEATURE_VI_SEARCH 66//config:config FEATURE_VI_SEARCH
67//config: bool "Enable search and replace cmds" 67//config: bool "Enable search and replace cmds"
68//config: default y 68//config: default y
69//config: depends on VI 69//config: depends on VI
70//config: help 70//config: help
71//config: Select this if you wish to be able to do search and replace. 71//config: Select this if you wish to be able to do search and replace.
72//config: 72//config:
73//config:config FEATURE_VI_REGEX_SEARCH 73//config:config FEATURE_VI_REGEX_SEARCH
74//config: bool "Enable regex in search and replace" 74//config: bool "Enable regex in search and replace"
75//config: default n # Uses GNU regex, which may be unavailable. FIXME 75//config: default n # Uses GNU regex, which may be unavailable. FIXME
76//config: depends on FEATURE_VI_SEARCH 76//config: depends on FEATURE_VI_SEARCH
77//config: help 77//config: help
78//config: Use extended regex search. 78//config: Use extended regex search.
79//config: 79//config:
80//config:config FEATURE_VI_USE_SIGNALS 80//config:config FEATURE_VI_USE_SIGNALS
81//config: bool "Catch signals" 81//config: bool "Catch signals"
82//config: default y 82//config: default y
83//config: depends on VI 83//config: depends on VI
84//config: help 84//config: help
85//config: Selecting this option will make vi signal aware. This will support 85//config: Selecting this option will make vi signal aware. This will support
86//config: SIGWINCH to deal with Window Changes, catch ^Z and ^C and alarms. 86//config: SIGWINCH to deal with Window Changes, catch ^Z and ^C and alarms.
87//config: 87//config:
88//config:config FEATURE_VI_DOT_CMD 88//config:config FEATURE_VI_DOT_CMD
89//config: bool "Remember previous cmd and \".\" cmd" 89//config: bool "Remember previous cmd and \".\" cmd"
90//config: default y 90//config: default y
91//config: depends on VI 91//config: depends on VI
92//config: help 92//config: help
93//config: Make vi remember the last command and be able to repeat it. 93//config: Make vi remember the last command and be able to repeat it.
94//config: 94//config:
95//config:config FEATURE_VI_READONLY 95//config:config FEATURE_VI_READONLY
96//config: bool "Enable -R option and \"view\" mode" 96//config: bool "Enable -R option and \"view\" mode"
97//config: default y 97//config: default y
98//config: depends on VI 98//config: depends on VI
99//config: help 99//config: help
100//config: Enable the read-only command line option, which allows the user to 100//config: Enable the read-only command line option, which allows the user to
101//config: open a file in read-only mode. 101//config: open a file in read-only mode.
102//config: 102//config:
103//config:config FEATURE_VI_SETOPTS 103//config:config FEATURE_VI_SETOPTS
104//config: bool "Enable settable options, ai ic showmatch" 104//config: bool "Enable settable options, ai ic showmatch"
105//config: default y 105//config: default y
106//config: depends on VI 106//config: depends on VI
107//config: help 107//config: help
108//config: Enable the editor to set some (ai, ic, showmatch) options. 108//config: Enable the editor to set some (ai, ic, showmatch) options.
109//config: 109//config:
110//config:config FEATURE_VI_SET 110//config:config FEATURE_VI_SET
111//config: bool "Support :set" 111//config: bool "Support :set"
@@ -117,37 +117,37 @@
117//config: default y 117//config: default y
118//config: depends on VI 118//config: depends on VI
119//config: help 119//config: help
120//config: Behave nicely with terminals that get resized. 120//config: Behave nicely with terminals that get resized.
121//config: 121//config:
122//config:config FEATURE_VI_ASK_TERMINAL 122//config:config FEATURE_VI_ASK_TERMINAL
123//config: bool "Use 'tell me cursor position' ESC sequence to measure window" 123//config: bool "Use 'tell me cursor position' ESC sequence to measure window"
124//config: default y 124//config: default y
125//config: depends on VI 125//config: depends on VI
126//config: help 126//config: help
127//config: If terminal size can't be retrieved and $LINES/$COLUMNS are not set, 127//config: If terminal size can't be retrieved and $LINES/$COLUMNS are not set,
128//config: this option makes vi perform a last-ditch effort to find it: 128//config: this option makes vi perform a last-ditch effort to find it:
129//config: position cursor to 999,999 and ask terminal to report real 129//config: position cursor to 999,999 and ask terminal to report real
130//config: cursor position using "ESC [ 6 n" escape sequence, then read stdin. 130//config: cursor position using "ESC [ 6 n" escape sequence, then read stdin.
131//config: This is not clean but helps a lot on serial lines and such. 131//config: This is not clean but helps a lot on serial lines and such.
132//config: 132//config:
133//config:config FEATURE_VI_UNDO 133//config:config FEATURE_VI_UNDO
134//config: bool "Support undo command \"u\"" 134//config: bool "Support undo command \"u\""
135//config: default y 135//config: default y
136//config: depends on VI 136//config: depends on VI
137//config: help 137//config: help
138//config: Support the 'u' command to undo insertion, deletion, and replacement 138//config: Support the 'u' command to undo insertion, deletion, and replacement
139//config: of text. 139//config: of text.
140//config: 140//config:
141//config:config FEATURE_VI_UNDO_QUEUE 141//config:config FEATURE_VI_UNDO_QUEUE
142//config: bool "Enable undo operation queuing" 142//config: bool "Enable undo operation queuing"
143//config: default y 143//config: default y
144//config: depends on FEATURE_VI_UNDO 144//config: depends on FEATURE_VI_UNDO
145//config: help 145//config: help
146//config: The vi undo functions can use an intermediate queue to greatly lower 146//config: The vi undo functions can use an intermediate queue to greatly lower
147//config: malloc() calls and overhead. When the maximum size of this queue is 147//config: malloc() calls and overhead. When the maximum size of this queue is
148//config: reached, the contents of the queue are committed to the undo stack. 148//config: reached, the contents of the queue are committed to the undo stack.
149//config: This increases the size of the undo code and allows some undo 149//config: This increases the size of the undo code and allows some undo
150//config: operations (especially un-typing/backspacing) to be far more useful. 150//config: operations (especially un-typing/backspacing) to be far more useful.
151//config: 151//config:
152//config:config FEATURE_VI_UNDO_QUEUE_MAX 152//config:config FEATURE_VI_UNDO_QUEUE_MAX
153//config: int "Maximum undo character queue size" 153//config: int "Maximum undo character queue size"
@@ -155,13 +155,13 @@
155//config: range 32 65536 155//config: range 32 65536
156//config: depends on FEATURE_VI_UNDO_QUEUE 156//config: depends on FEATURE_VI_UNDO_QUEUE
157//config: help 157//config: help
158//config: This option sets the number of bytes used at runtime for the queue. 158//config: This option sets the number of bytes used at runtime for the queue.
159//config: Smaller values will create more undo objects and reduce the amount 159//config: Smaller values will create more undo objects and reduce the amount
160//config: of typed or backspaced characters that are grouped into one undo 160//config: of typed or backspaced characters that are grouped into one undo
161//config: operation; larger values increase the potential size of each undo 161//config: operation; larger values increase the potential size of each undo
162//config: and will generally malloc() larger objects and less frequently. 162//config: and will generally malloc() larger objects and less frequently.
163//config: Unless you want more (or less) frequent "undo points" while typing, 163//config: Unless you want more (or less) frequent "undo points" while typing,
164//config: you should probably leave this unchanged. 164//config: you should probably leave this unchanged.
165 165
166//applet:IF_VI(APPLET(vi, BB_DIR_BIN, BB_SUID_DROP)) 166//applet:IF_VI(APPLET(vi, BB_DIR_BIN, BB_SUID_DROP))
167 167
diff --git a/findutils/find.c b/findutils/find.c
index 70ad03208..69baf065d 100644
--- a/findutils/find.c
+++ b/findutils/find.c
@@ -57,33 +57,33 @@
57//config: bool "find (14 kb)" 57//config: bool "find (14 kb)"
58//config: default y 58//config: default y
59//config: help 59//config: help
60//config: find is used to search your system to find specified files. 60//config: find is used to search your system to find specified files.
61//config: 61//config:
62//config:config FEATURE_FIND_PRINT0 62//config:config FEATURE_FIND_PRINT0
63//config: bool "Enable -print0: NUL-terminated output" 63//config: bool "Enable -print0: NUL-terminated output"
64//config: default y 64//config: default y
65//config: depends on FIND 65//config: depends on FIND
66//config: help 66//config: help
67//config: Causes output names to be separated by a NUL character 67//config: Causes output names to be separated by a NUL character
68//config: rather than a newline. This allows names that contain 68//config: rather than a newline. This allows names that contain
69//config: newlines and other whitespace to be more easily 69//config: newlines and other whitespace to be more easily
70//config: interpreted by other programs. 70//config: interpreted by other programs.
71//config: 71//config:
72//config:config FEATURE_FIND_MTIME 72//config:config FEATURE_FIND_MTIME
73//config: bool "Enable -mtime: modified time matching" 73//config: bool "Enable -mtime: modified time matching"
74//config: default y 74//config: default y
75//config: depends on FIND 75//config: depends on FIND
76//config: help 76//config: help
77//config: Allow searching based on the modification time of 77//config: Allow searching based on the modification time of
78//config: files, in days. 78//config: files, in days.
79//config: 79//config:
80//config:config FEATURE_FIND_MMIN 80//config:config FEATURE_FIND_MMIN
81//config: bool "Enable -mmin: modified time matching by minutes" 81//config: bool "Enable -mmin: modified time matching by minutes"
82//config: default y 82//config: default y
83//config: depends on FIND 83//config: depends on FIND
84//config: help 84//config: help
85//config: Allow searching based on the modification time of 85//config: Allow searching based on the modification time of
86//config: files, in minutes. 86//config: files, in minutes.
87//config: 87//config:
88//config:config FEATURE_FIND_PERM 88//config:config FEATURE_FIND_PERM
89//config: bool "Enable -perm: permissions matching" 89//config: bool "Enable -perm: permissions matching"
@@ -95,8 +95,8 @@
95//config: default y 95//config: default y
96//config: depends on FIND 96//config: depends on FIND
97//config: help 97//config: help
98//config: Enable searching based on file type (file, 98//config: Enable searching based on file type (file,
99//config: directory, socket, device, etc.). 99//config: directory, socket, device, etc.).
100//config: 100//config:
101//config:config FEATURE_FIND_XDEV 101//config:config FEATURE_FIND_XDEV
102//config: bool "Enable -xdev: 'stay in filesystem'" 102//config: bool "Enable -xdev: 'stay in filesystem'"
@@ -113,8 +113,8 @@
113//config: default y 113//config: default y
114//config: depends on FIND 114//config: depends on FIND
115//config: help 115//config: help
116//config: Support the 'find -newer' option for finding any files which have 116//config: Support the 'find -newer' option for finding any files which have
117//config: modification time that is more recent than the specified FILE. 117//config: modification time that is more recent than the specified FILE.
118//config: 118//config:
119//config:config FEATURE_FIND_INUM 119//config:config FEATURE_FIND_INUM
120//config: bool "Enable -inum: inode number matching" 120//config: bool "Enable -inum: inode number matching"
@@ -126,18 +126,18 @@
126//config: default y 126//config: default y
127//config: depends on FIND 127//config: depends on FIND
128//config: help 128//config: help
129//config: Support the 'find -exec' option for executing commands based upon 129//config: Support the 'find -exec' option for executing commands based upon
130//config: the files matched. 130//config: the files matched.
131//config: 131//config:
132//config:config FEATURE_FIND_EXEC_PLUS 132//config:config FEATURE_FIND_EXEC_PLUS
133//config: bool "Enable -exec ... {} +" 133//config: bool "Enable -exec ... {} +"
134//config: default y 134//config: default y
135//config: depends on FEATURE_FIND_EXEC 135//config: depends on FEATURE_FIND_EXEC
136//config: help 136//config: help
137//config: Support the 'find -exec ... {} +' option for executing commands 137//config: Support the 'find -exec ... {} +' option for executing commands
138//config: for all matched files at once. 138//config: for all matched files at once.
139//config: Without this option, -exec + is a synonym for -exec ; 139//config: Without this option, -exec + is a synonym for -exec ;
140//config: (IOW: it works correctly, but without expected speedup) 140//config: (IOW: it works correctly, but without expected speedup)
141//config: 141//config:
142//config:config FEATURE_FIND_USER 142//config:config FEATURE_FIND_USER
143//config: bool "Enable -user: username/uid matching" 143//config: bool "Enable -user: username/uid matching"
@@ -154,23 +154,23 @@
154//config: default y 154//config: default y
155//config: depends on FIND 155//config: depends on FIND
156//config: help 156//config: help
157//config: Support the '!' operator to invert the test results. 157//config: Support the '!' operator to invert the test results.
158//config: If 'Enable full-blown desktop' is enabled, then will also support 158//config: If 'Enable full-blown desktop' is enabled, then will also support
159//config: the non-POSIX notation '-not'. 159//config: the non-POSIX notation '-not'.
160//config: 160//config:
161//config:config FEATURE_FIND_DEPTH 161//config:config FEATURE_FIND_DEPTH
162//config: bool "Enable -depth" 162//config: bool "Enable -depth"
163//config: default y 163//config: default y
164//config: depends on FIND 164//config: depends on FIND
165//config: help 165//config: help
166//config: Process each directory's contents before the directory itself. 166//config: Process each directory's contents before the directory itself.
167//config: 167//config:
168//config:config FEATURE_FIND_PAREN 168//config:config FEATURE_FIND_PAREN
169//config: bool "Enable parens in options" 169//config: bool "Enable parens in options"
170//config: default y 170//config: default y
171//config: depends on FIND 171//config: depends on FIND
172//config: help 172//config: help
173//config: Enable usage of parens '(' to specify logical order of arguments. 173//config: Enable usage of parens '(' to specify logical order of arguments.
174//config: 174//config:
175//config:config FEATURE_FIND_SIZE 175//config:config FEATURE_FIND_SIZE
176//config: bool "Enable -size: file size matching" 176//config: bool "Enable -size: file size matching"
@@ -182,45 +182,45 @@
182//config: default y 182//config: default y
183//config: depends on FIND 183//config: depends on FIND
184//config: help 184//config: help
185//config: If the file is a directory, don't descend into it. Useful for 185//config: If the file is a directory, don't descend into it. Useful for
186//config: exclusion .svn and CVS directories. 186//config: exclusion .svn and CVS directories.
187//config: 187//config:
188//config:config FEATURE_FIND_DELETE 188//config:config FEATURE_FIND_DELETE
189//config: bool "Enable -delete: delete files/dirs" 189//config: bool "Enable -delete: delete files/dirs"
190//config: default y 190//config: default y
191//config: depends on FIND && FEATURE_FIND_DEPTH 191//config: depends on FIND && FEATURE_FIND_DEPTH
192//config: help 192//config: help
193//config: Support the 'find -delete' option for deleting files and directories. 193//config: Support the 'find -delete' option for deleting files and directories.
194//config: WARNING: This option can do much harm if used wrong. Busybox will not 194//config: WARNING: This option can do much harm if used wrong. Busybox will not
195//config: try to protect the user from doing stupid things. Use with care. 195//config: try to protect the user from doing stupid things. Use with care.
196//config: 196//config:
197//config:config FEATURE_FIND_PATH 197//config:config FEATURE_FIND_PATH
198//config: bool "Enable -path: match pathname with shell pattern" 198//config: bool "Enable -path: match pathname with shell pattern"
199//config: default y 199//config: default y
200//config: depends on FIND 200//config: depends on FIND
201//config: help 201//config: help
202//config: The -path option matches whole pathname instead of just filename. 202//config: The -path option matches whole pathname instead of just filename.
203//config: 203//config:
204//config:config FEATURE_FIND_REGEX 204//config:config FEATURE_FIND_REGEX
205//config: bool "Enable -regex: match pathname with regex" 205//config: bool "Enable -regex: match pathname with regex"
206//config: default y 206//config: default y
207//config: depends on FIND 207//config: depends on FIND
208//config: help 208//config: help
209//config: The -regex option matches whole pathname against regular expression. 209//config: The -regex option matches whole pathname against regular expression.
210//config: 210//config:
211//config:config FEATURE_FIND_CONTEXT 211//config:config FEATURE_FIND_CONTEXT
212//config: bool "Enable -context: security context matching" 212//config: bool "Enable -context: security context matching"
213//config: default n 213//config: default n
214//config: depends on FIND && SELINUX 214//config: depends on FIND && SELINUX
215//config: help 215//config: help
216//config: Support the 'find -context' option for matching security context. 216//config: Support the 'find -context' option for matching security context.
217//config: 217//config:
218//config:config FEATURE_FIND_LINKS 218//config:config FEATURE_FIND_LINKS
219//config: bool "Enable -links: link count matching" 219//config: bool "Enable -links: link count matching"
220//config: default y 220//config: default y
221//config: depends on FIND 221//config: depends on FIND
222//config: help 222//config: help
223//config: Support the 'find -links' option for matching number of links. 223//config: Support the 'find -links' option for matching number of links.
224 224
225//applet:IF_FIND(APPLET_NOEXEC(find, find, BB_DIR_USR_BIN, BB_SUID_DROP, find)) 225//applet:IF_FIND(APPLET_NOEXEC(find, find, BB_DIR_USR_BIN, BB_SUID_DROP, find))
226 226
diff --git a/findutils/grep.c b/findutils/grep.c
index cbbad731c..568ab12c2 100644
--- a/findutils/grep.c
+++ b/findutils/grep.c
@@ -22,28 +22,28 @@
22//config: bool "grep (8.5 kb)" 22//config: bool "grep (8.5 kb)"
23//config: default y 23//config: default y
24//config: help 24//config: help
25//config: grep is used to search files for a specified pattern. 25//config: grep is used to search files for a specified pattern.
26//config: 26//config:
27//config:config EGREP 27//config:config EGREP
28//config: bool "egrep (7.6 kb)" 28//config: bool "egrep (7.6 kb)"
29//config: default y 29//config: default y
30//config: help 30//config: help
31//config: Alias to "grep -E". 31//config: Alias to "grep -E".
32//config: 32//config:
33//config:config FGREP 33//config:config FGREP
34//config: bool "fgrep (7.6 kb)" 34//config: bool "fgrep (7.6 kb)"
35//config: default y 35//config: default y
36//config: help 36//config: help
37//config: Alias to "grep -F". 37//config: Alias to "grep -F".
38//config: 38//config:
39//config:config FEATURE_GREP_CONTEXT 39//config:config FEATURE_GREP_CONTEXT
40//config: bool "Enable before and after context flags (-A, -B and -C)" 40//config: bool "Enable before and after context flags (-A, -B and -C)"
41//config: default y 41//config: default y
42//config: depends on GREP || EGREP || FGREP 42//config: depends on GREP || EGREP || FGREP
43//config: help 43//config: help
44//config: Print the specified number of leading (-B) and/or trailing (-A) 44//config: Print the specified number of leading (-B) and/or trailing (-A)
45//config: context surrounding our matching lines. 45//config: context surrounding our matching lines.
46//config: Print the specified number of context lines (-C). 46//config: Print the specified number of context lines (-C).
47 47
48//applet:IF_GREP(APPLET(grep, BB_DIR_BIN, BB_SUID_DROP)) 48//applet:IF_GREP(APPLET(grep, BB_DIR_BIN, BB_SUID_DROP))
49// APPLET_ODDNAME:name main location suid_type help 49// APPLET_ODDNAME:name main location suid_type help
diff --git a/findutils/xargs.c b/findutils/xargs.c
index 078ce3bc7..2d0d1c8b9 100644
--- a/findutils/xargs.c
+++ b/findutils/xargs.c
@@ -19,47 +19,47 @@
19//config: bool "xargs (6.7 kb)" 19//config: bool "xargs (6.7 kb)"
20//config: default y 20//config: default y
21//config: help 21//config: help
22//config: xargs is used to execute a specified command for 22//config: xargs is used to execute a specified command for
23//config: every item from standard input. 23//config: every item from standard input.
24//config: 24//config:
25//config:config FEATURE_XARGS_SUPPORT_CONFIRMATION 25//config:config FEATURE_XARGS_SUPPORT_CONFIRMATION
26//config: bool "Enable -p: prompt and confirmation" 26//config: bool "Enable -p: prompt and confirmation"
27//config: default y 27//config: default y
28//config: depends on XARGS 28//config: depends on XARGS
29//config: help 29//config: help
30//config: Support -p: prompt the user whether to run each command 30//config: Support -p: prompt the user whether to run each command
31//config: line and read a line from the terminal. 31//config: line and read a line from the terminal.
32//config: 32//config:
33//config:config FEATURE_XARGS_SUPPORT_QUOTES 33//config:config FEATURE_XARGS_SUPPORT_QUOTES
34//config: bool "Enable single and double quotes and backslash" 34//config: bool "Enable single and double quotes and backslash"
35//config: default y 35//config: default y
36//config: depends on XARGS 36//config: depends on XARGS
37//config: help 37//config: help
38//config: Support quoting in the input. 38//config: Support quoting in the input.
39//config: 39//config:
40//config:config FEATURE_XARGS_SUPPORT_TERMOPT 40//config:config FEATURE_XARGS_SUPPORT_TERMOPT
41//config: bool "Enable -x: exit if -s or -n is exceeded" 41//config: bool "Enable -x: exit if -s or -n is exceeded"
42//config: default y 42//config: default y
43//config: depends on XARGS 43//config: depends on XARGS
44//config: help 44//config: help
45//config: Support -x: exit if the command size (see the -s or -n option) 45//config: Support -x: exit if the command size (see the -s or -n option)
46//config: is exceeded. 46//config: is exceeded.
47//config: 47//config:
48//config:config FEATURE_XARGS_SUPPORT_ZERO_TERM 48//config:config FEATURE_XARGS_SUPPORT_ZERO_TERM
49//config: bool "Enable -0: NUL-terminated input" 49//config: bool "Enable -0: NUL-terminated input"
50//config: default y 50//config: default y
51//config: depends on XARGS 51//config: depends on XARGS
52//config: help 52//config: help
53//config: Support -0: input items are terminated by a NUL character 53//config: Support -0: input items are terminated by a NUL character
54//config: instead of whitespace, and the quotes and backslash 54//config: instead of whitespace, and the quotes and backslash
55//config: are not special. 55//config: are not special.
56//config: 56//config:
57//config:config FEATURE_XARGS_SUPPORT_REPL_STR 57//config:config FEATURE_XARGS_SUPPORT_REPL_STR
58//config: bool "Enable -I STR: string to replace" 58//config: bool "Enable -I STR: string to replace"
59//config: default y 59//config: default y
60//config: depends on XARGS 60//config: depends on XARGS
61//config: help 61//config: help
62//config: Support -I STR and -i[STR] options. 62//config: Support -I STR and -i[STR] options.
63 63
64//applet:IF_XARGS(APPLET_NOEXEC(xargs, xargs, BB_DIR_USR_BIN, BB_SUID_DROP, xargs)) 64//applet:IF_XARGS(APPLET_NOEXEC(xargs, xargs, BB_DIR_USR_BIN, BB_SUID_DROP, xargs))
65 65
diff --git a/init/bootchartd.c b/init/bootchartd.c
index d7d6f1483..b5dd17439 100644
--- a/init/bootchartd.c
+++ b/init/bootchartd.c
@@ -11,40 +11,40 @@
11//config: bool "bootchartd (10 kb)" 11//config: bool "bootchartd (10 kb)"
12//config: default y 12//config: default y
13//config: help 13//config: help
14//config: bootchartd is commonly used to profile the boot process 14//config: bootchartd is commonly used to profile the boot process
15//config: for the purpose of speeding it up. In this case, it is started 15//config: for the purpose of speeding it up. In this case, it is started
16//config: by the kernel as the init process. This is configured by adding 16//config: by the kernel as the init process. This is configured by adding
17//config: the init=/sbin/bootchartd option to the kernel command line. 17//config: the init=/sbin/bootchartd option to the kernel command line.
18//config: 18//config:
19//config: It can also be used to monitor the resource usage of a specific 19//config: It can also be used to monitor the resource usage of a specific
20//config: application or the running system in general. In this case, 20//config: application or the running system in general. In this case,
21//config: bootchartd is started interactively by running bootchartd start 21//config: bootchartd is started interactively by running bootchartd start
22//config: and stopped using bootchartd stop. 22//config: and stopped using bootchartd stop.
23//config: 23//config:
24//config:config FEATURE_BOOTCHARTD_BLOATED_HEADER 24//config:config FEATURE_BOOTCHARTD_BLOATED_HEADER
25//config: bool "Compatible, bloated header" 25//config: bool "Compatible, bloated header"
26//config: default y 26//config: default y
27//config: depends on BOOTCHARTD 27//config: depends on BOOTCHARTD
28//config: help 28//config: help
29//config: Create extended header file compatible with "big" bootchartd. 29//config: Create extended header file compatible with "big" bootchartd.
30//config: "Big" bootchartd is a shell script and it dumps some 30//config: "Big" bootchartd is a shell script and it dumps some
31//config: "convenient" info int the header, such as: 31//config: "convenient" info int the header, such as:
32//config: title = Boot chart for `hostname` (`date`) 32//config: title = Boot chart for `hostname` (`date`)
33//config: system.uname = `uname -srvm` 33//config: system.uname = `uname -srvm`
34//config: system.release = `cat /etc/DISTRO-release` 34//config: system.release = `cat /etc/DISTRO-release`
35//config: system.cpu = `grep '^model name' /proc/cpuinfo | head -1` ($cpucount) 35//config: system.cpu = `grep '^model name' /proc/cpuinfo | head -1` ($cpucount)
36//config: system.kernel.options = `cat /proc/cmdline` 36//config: system.kernel.options = `cat /proc/cmdline`
37//config: This data is not mandatory for bootchart graph generation, 37//config: This data is not mandatory for bootchart graph generation,
38//config: and is considered bloat. Nevertheless, this option 38//config: and is considered bloat. Nevertheless, this option
39//config: makes bootchartd applet to dump a subset of it. 39//config: makes bootchartd applet to dump a subset of it.
40//config: 40//config:
41//config:config FEATURE_BOOTCHARTD_CONFIG_FILE 41//config:config FEATURE_BOOTCHARTD_CONFIG_FILE
42//config: bool "Support bootchartd.conf" 42//config: bool "Support bootchartd.conf"
43//config: default y 43//config: default y
44//config: depends on BOOTCHARTD 44//config: depends on BOOTCHARTD
45//config: help 45//config: help
46//config: Enable reading and parsing of $PWD/bootchartd.conf 46//config: Enable reading and parsing of $PWD/bootchartd.conf
47//config: and /etc/bootchartd.conf files. 47//config: and /etc/bootchartd.conf files.
48 48
49#include "libbb.h" 49#include "libbb.h"
50#include "common_bufsiz.h" 50#include "common_bufsiz.h"
diff --git a/init/halt.c b/init/halt.c
index e6eb28fc9..632c6cc56 100644
--- a/init/halt.c
+++ b/init/halt.c
@@ -11,39 +11,39 @@
11//config: bool "halt (3.7 kb)" 11//config: bool "halt (3.7 kb)"
12//config: default y 12//config: default y
13//config: help 13//config: help
14//config: Stop all processes and halt the system. 14//config: Stop all processes and halt the system.
15//config: 15//config:
16//config:config POWEROFF 16//config:config POWEROFF
17//config: bool "poweroff (3.7 kb)" 17//config: bool "poweroff (3.7 kb)"
18//config: default y 18//config: default y
19//config: help 19//config: help
20//config: Stop all processes and power off the system. 20//config: Stop all processes and power off the system.
21//config: 21//config:
22//config:config REBOOT 22//config:config REBOOT
23//config: bool "reboot (3.7 kb)" 23//config: bool "reboot (3.7 kb)"
24//config: default y 24//config: default y
25//config: help 25//config: help
26//config: Stop all processes and reboot the system. 26//config: Stop all processes and reboot the system.
27//config: 27//config:
28//config:config FEATURE_CALL_TELINIT 28//config:config FEATURE_CALL_TELINIT
29//config: bool "Call telinit on shutdown and reboot" 29//config: bool "Call telinit on shutdown and reboot"
30//config: default y 30//config: default y
31//config: depends on (HALT || POWEROFF || REBOOT) && !INIT 31//config: depends on (HALT || POWEROFF || REBOOT) && !INIT
32//config: help 32//config: help
33//config: Call an external program (normally telinit) to facilitate 33//config: Call an external program (normally telinit) to facilitate
34//config: a switch to a proper runlevel. 34//config: a switch to a proper runlevel.
35//config: 35//config:
36//config: This option is only available if you selected halt and friends, 36//config: This option is only available if you selected halt and friends,
37//config: but did not select init. 37//config: but did not select init.
38//config: 38//config:
39//config:config TELINIT_PATH 39//config:config TELINIT_PATH
40//config: string "Path to telinit executable" 40//config: string "Path to telinit executable"
41//config: default "/sbin/telinit" 41//config: default "/sbin/telinit"
42//config: depends on FEATURE_CALL_TELINIT 42//config: depends on FEATURE_CALL_TELINIT
43//config: help 43//config: help
44//config: When busybox halt and friends have to call external telinit 44//config: When busybox halt and friends have to call external telinit
45//config: to facilitate proper shutdown, this path is to be used when 45//config: to facilitate proper shutdown, this path is to be used when
46//config: locating telinit executable. 46//config: locating telinit executable.
47 47
48//applet:IF_HALT(APPLET(halt, BB_DIR_SBIN, BB_SUID_DROP)) 48//applet:IF_HALT(APPLET(halt, BB_DIR_SBIN, BB_SUID_DROP))
49// APPLET_ODDNAME:name main location suid_type help 49// APPLET_ODDNAME:name main location suid_type help
diff --git a/init/init.c b/init/init.c
index 3427e1cc8..ab137a981 100644
--- a/init/init.c
+++ b/init/init.c
@@ -14,34 +14,34 @@
14//config: default y 14//config: default y
15//config: select FEATURE_SYSLOG 15//config: select FEATURE_SYSLOG
16//config: help 16//config: help
17//config: init is the first program run when the system boots. 17//config: init is the first program run when the system boots.
18//config: 18//config:
19//config:config LINUXRC 19//config:config LINUXRC
20//config: bool "linuxrc: support running init from initrd (not initramfs)" 20//config: bool "linuxrc: support running init from initrd (not initramfs)"
21//config: default y 21//config: default y
22//config: select FEATURE_SYSLOG 22//config: select FEATURE_SYSLOG
23//config: help 23//config: help
24//config: Legacy support for running init under the old-style initrd. Allows 24//config: Legacy support for running init under the old-style initrd. Allows
25//config: the name linuxrc to act as init, and it doesn't assume init is PID 1. 25//config: the name linuxrc to act as init, and it doesn't assume init is PID 1.
26//config: 26//config:
27//config: This does not apply to initramfs, which runs /init as PID 1 and 27//config: This does not apply to initramfs, which runs /init as PID 1 and
28//config: requires no special support. 28//config: requires no special support.
29//config: 29//config:
30//config:config FEATURE_USE_INITTAB 30//config:config FEATURE_USE_INITTAB
31//config: bool "Support reading an inittab file" 31//config: bool "Support reading an inittab file"
32//config: default y 32//config: default y
33//config: depends on INIT || LINUXRC 33//config: depends on INIT || LINUXRC
34//config: help 34//config: help
35//config: Allow init to read an inittab file when the system boot. 35//config: Allow init to read an inittab file when the system boot.
36//config: 36//config:
37//config:config FEATURE_KILL_REMOVED 37//config:config FEATURE_KILL_REMOVED
38//config: bool "Support killing processes that have been removed from inittab" 38//config: bool "Support killing processes that have been removed from inittab"
39//config: default n 39//config: default n
40//config: depends on FEATURE_USE_INITTAB 40//config: depends on FEATURE_USE_INITTAB
41//config: help 41//config: help
42//config: When respawn entries are removed from inittab and a SIGHUP is 42//config: When respawn entries are removed from inittab and a SIGHUP is
43//config: sent to init, this option will make init kill the processes 43//config: sent to init, this option will make init kill the processes
44//config: that have been removed. 44//config: that have been removed.
45//config: 45//config:
46//config:config FEATURE_KILL_DELAY 46//config:config FEATURE_KILL_DELAY
47//config: int "How long to wait between TERM and KILL (0 - send TERM only)" if FEATURE_KILL_REMOVED 47//config: int "How long to wait between TERM and KILL (0 - send TERM only)" if FEATURE_KILL_REMOVED
@@ -49,34 +49,34 @@
49//config: default 0 49//config: default 0
50//config: depends on FEATURE_KILL_REMOVED 50//config: depends on FEATURE_KILL_REMOVED
51//config: help 51//config: help
52//config: With nonzero setting, init sends TERM, forks, child waits N 52//config: With nonzero setting, init sends TERM, forks, child waits N
53//config: seconds, sends KILL and exits. Setting it too high is unwise 53//config: seconds, sends KILL and exits. Setting it too high is unwise
54//config: (child will hang around for too long and could actually kill 54//config: (child will hang around for too long and could actually kill
55//config: the wrong process!) 55//config: the wrong process!)
56//config: 56//config:
57//config:config FEATURE_INIT_SCTTY 57//config:config FEATURE_INIT_SCTTY
58//config: bool "Run commands with leading dash with controlling tty" 58//config: bool "Run commands with leading dash with controlling tty"
59//config: default y 59//config: default y
60//config: depends on INIT || LINUXRC 60//config: depends on INIT || LINUXRC
61//config: help 61//config: help
62//config: If this option is enabled, init will try to give a controlling 62//config: If this option is enabled, init will try to give a controlling
63//config: tty to any command which has leading hyphen (often it's "-/bin/sh"). 63//config: tty to any command which has leading hyphen (often it's "-/bin/sh").
64//config: More precisely, init will do "ioctl(STDIN_FILENO, TIOCSCTTY, 0)". 64//config: More precisely, init will do "ioctl(STDIN_FILENO, TIOCSCTTY, 0)".
65//config: If device attached to STDIN_FILENO can be a ctty but is not yet 65//config: If device attached to STDIN_FILENO can be a ctty but is not yet
66//config: a ctty for other session, it will become this process' ctty. 66//config: a ctty for other session, it will become this process' ctty.
67//config: This is not the traditional init behavour, but is often what you want 67//config: This is not the traditional init behavour, but is often what you want
68//config: in an embedded system where the console is only accessed during 68//config: in an embedded system where the console is only accessed during
69//config: development or for maintenance. 69//config: development or for maintenance.
70//config: NB: using cttyhack applet may work better. 70//config: NB: using cttyhack applet may work better.
71//config: 71//config:
72//config:config FEATURE_INIT_SYSLOG 72//config:config FEATURE_INIT_SYSLOG
73//config: bool "Enable init to write to syslog" 73//config: bool "Enable init to write to syslog"
74//config: default y 74//config: default y
75//config: depends on INIT || LINUXRC 75//config: depends on INIT || LINUXRC
76//config: help 76//config: help
77//config: If selected, some init messages are sent to syslog. 77//config: If selected, some init messages are sent to syslog.
78//config: Otherwise, they are sent to VT #5 if linux virtual tty is detected 78//config: Otherwise, they are sent to VT #5 if linux virtual tty is detected
79//config: (if not, no separate logging is done). 79//config: (if not, no separate logging is done).
80//config: 80//config:
81//config:config FEATURE_INIT_QUIET 81//config:config FEATURE_INIT_QUIET
82//config: bool "Be quiet on boot (no 'init started:' message)" 82//config: bool "Be quiet on boot (no 'init started:' message)"
@@ -88,37 +88,37 @@
88//config: default n # not Y because this is a debug option 88//config: default n # not Y because this is a debug option
89//config: depends on INIT || LINUXRC 89//config: depends on INIT || LINUXRC
90//config: help 90//config: help
91//config: If this option is enabled and the file /.init_enable_core 91//config: If this option is enabled and the file /.init_enable_core
92//config: exists, then init will call setrlimit() to allow unlimited 92//config: exists, then init will call setrlimit() to allow unlimited
93//config: core file sizes. If this option is disabled, processes 93//config: core file sizes. If this option is disabled, processes
94//config: will not generate any core files. 94//config: will not generate any core files.
95//config: 95//config:
96//config:config INIT_TERMINAL_TYPE 96//config:config INIT_TERMINAL_TYPE
97//config: string "Initial terminal type" 97//config: string "Initial terminal type"
98//config: default "linux" 98//config: default "linux"
99//config: depends on INIT || LINUXRC 99//config: depends on INIT || LINUXRC
100//config: help 100//config: help
101//config: This is the initial value set by init for the TERM environment 101//config: This is the initial value set by init for the TERM environment
102//config: variable. This variable is used by programs which make use of 102//config: variable. This variable is used by programs which make use of
103//config: extended terminal capabilities. 103//config: extended terminal capabilities.
104//config: 104//config:
105//config: Note that on Linux, init attempts to detect serial terminal and 105//config: Note that on Linux, init attempts to detect serial terminal and
106//config: sets TERM to "vt102" if one is found. 106//config: sets TERM to "vt102" if one is found.
107//config: 107//config:
108//config:config FEATURE_INIT_MODIFY_CMDLINE 108//config:config FEATURE_INIT_MODIFY_CMDLINE
109//config: bool "Clear init's command line" 109//config: bool "Clear init's command line"
110//config: default y 110//config: default y
111//config: depends on INIT || LINUXRC 111//config: depends on INIT || LINUXRC
112//config: help 112//config: help
113//config: When launched as PID 1 and after parsing its arguments, init 113//config: When launched as PID 1 and after parsing its arguments, init
114//config: wipes all the arguments but argv[0] and rewrites argv[0] to 114//config: wipes all the arguments but argv[0] and rewrites argv[0] to
115//config: contain only "init", so that its command line appears solely as 115//config: contain only "init", so that its command line appears solely as
116//config: "init" in tools such as ps. 116//config: "init" in tools such as ps.
117//config: If this option is set to Y, init will keep its original behavior, 117//config: If this option is set to Y, init will keep its original behavior,
118//config: otherwise, all the arguments including argv[0] will be preserved, 118//config: otherwise, all the arguments including argv[0] will be preserved,
119//config: be they parsed or ignored by init. 119//config: be they parsed or ignored by init.
120//config: The original command-line used to launch init can then be 120//config: The original command-line used to launch init can then be
121//config: retrieved in /proc/1/cmdline on Linux, for example. 121//config: retrieved in /proc/1/cmdline on Linux, for example.
122 122
123//applet:IF_INIT(APPLET(init, BB_DIR_SBIN, BB_SUID_DROP)) 123//applet:IF_INIT(APPLET(init, BB_DIR_SBIN, BB_SUID_DROP))
124//applet:IF_LINUXRC(APPLET_ODDNAME(linuxrc, init, BB_DIR_ROOT, BB_SUID_DROP, linuxrc)) 124//applet:IF_LINUXRC(APPLET_ODDNAME(linuxrc, init, BB_DIR_ROOT, BB_SUID_DROP, linuxrc))
diff --git a/libbb/Config.src b/libbb/Config.src
index 16c79dbf0..9da8b65ee 100644
--- a/libbb/Config.src
+++ b/libbb/Config.src
@@ -11,14 +11,14 @@ choice
11 prompt "Buffer allocation policy" 11 prompt "Buffer allocation policy"
12 default FEATURE_BUFFERS_USE_MALLOC 12 default FEATURE_BUFFERS_USE_MALLOC
13 help 13 help
14 There are 3 ways BusyBox can handle buffer allocations: 14 There are 3 ways BusyBox can handle buffer allocations:
15 - Use malloc. This costs code size for the call to xmalloc. 15 - Use malloc. This costs code size for the call to xmalloc.
16 - Put them on stack. For some very small machines with limited stack 16 - Put them on stack. For some very small machines with limited stack
17 space, this can be deadly. For most folks, this works just fine. 17 space, this can be deadly. For most folks, this works just fine.
18 - Put them in BSS. This works beautifully for computers with a real 18 - Put them in BSS. This works beautifully for computers with a real
19 MMU (and OS support), but wastes runtime RAM for uCLinux. This 19 MMU (and OS support), but wastes runtime RAM for uCLinux. This
20 behavior was the only one available for BusyBox versions 0.48 and 20 behavior was the only one available for BusyBox versions 0.48 and
21 earlier. 21 earlier.
22 22
23config FEATURE_BUFFERS_USE_MALLOC 23config FEATURE_BUFFERS_USE_MALLOC
24 bool "Allocate with Malloc" 24 bool "Allocate with Malloc"
@@ -36,52 +36,52 @@ config PASSWORD_MINLEN
36 default 6 36 default 6
37 range 5 32 37 range 5 32
38 help 38 help
39 Minimum allowable password length. 39 Minimum allowable password length.
40 40
41config MD5_SMALL 41config MD5_SMALL
42 int "MD5: Trade bytes for speed (0:fast, 3:slow)" 42 int "MD5: Trade bytes for speed (0:fast, 3:slow)"
43 default 1 # all "fast or small" options default to small 43 default 1 # all "fast or small" options default to small
44 range 0 3 44 range 0 3
45 help 45 help
46 Trade binary size versus speed for the md5sum algorithm. 46 Trade binary size versus speed for the md5sum algorithm.
47 Approximate values running uClibc and hashing 47 Approximate values running uClibc and hashing
48 linux-2.4.4.tar.bz2 were: 48 linux-2.4.4.tar.bz2 were:
49 user times (sec) text size (386) 49 value user times (sec) text size (386)
50 0 (fastest) 1.1 6144 50 0 (fastest) 1.1 6144
51 1 1.4 5392 51 1 1.4 5392
52 2 3.0 5088 52 2 3.0 5088
53 3 (smallest) 5.1 4912 53 3 (smallest) 5.1 4912
54 54
55config SHA3_SMALL 55config SHA3_SMALL
56 int "SHA3: Trade bytes for speed (0:fast, 1:slow)" 56 int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
57 default 1 # all "fast or small" options default to small 57 default 1 # all "fast or small" options default to small
58 range 0 1 58 range 0 1
59 help 59 help
60 Trade binary size versus speed for the sha3sum algorithm. 60 Trade binary size versus speed for the sha3sum algorithm.
61 SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate): 61 SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
62 64-bit x86: +270 bytes of code, 45% faster 62 64-bit x86: +270 bytes of code, 45% faster
63 32-bit x86: +450 bytes of code, 75% faster 63 32-bit x86: +450 bytes of code, 75% faster
64 64
65config FEATURE_FAST_TOP 65config FEATURE_FAST_TOP
66 bool "Faster /proc scanning code (+100 bytes)" 66 bool "Faster /proc scanning code (+100 bytes)"
67 default n # all "fast or small" options default to small 67 default n # all "fast or small" options default to small
68 help 68 help
69 This option makes top and ps ~20% faster (or 20% less CPU hungry), 69 This option makes top and ps ~20% faster (or 20% less CPU hungry),
70 but code size is slightly bigger. 70 but code size is slightly bigger.
71 71
72config FEATURE_ETC_NETWORKS 72config FEATURE_ETC_NETWORKS
73 bool "Support /etc/networks" 73 bool "Support /etc/networks"
74 default n 74 default n
75 help 75 help
76 Enable support for network names in /etc/networks. This is 76 Enable support for network names in /etc/networks. This is
77 a rarely used feature which allows you to use names 77 a rarely used feature which allows you to use names
78 instead of IP/mask pairs in route command. 78 instead of IP/mask pairs in route command.
79 79
80config FEATURE_EDITING 80config FEATURE_EDITING
81 bool "Command line editing" 81 bool "Command line editing"
82 default y 82 default y
83 help 83 help
84 Enable line editing (mainly for shell command line). 84 Enable line editing (mainly for shell command line).
85 85
86config FEATURE_EDITING_MAX_LEN 86config FEATURE_EDITING_MAX_LEN
87 int "Maximum length of input" 87 int "Maximum length of input"
@@ -89,17 +89,17 @@ config FEATURE_EDITING_MAX_LEN
89 default 1024 89 default 1024
90 depends on FEATURE_EDITING 90 depends on FEATURE_EDITING
91 help 91 help
92 Line editing code uses on-stack buffers for storage. 92 Line editing code uses on-stack buffers for storage.
93 You may want to decrease this parameter if your target machine 93 You may want to decrease this parameter if your target machine
94 benefits from smaller stack usage. 94 benefits from smaller stack usage.
95 95
96config FEATURE_EDITING_VI 96config FEATURE_EDITING_VI
97 bool "vi-style line editing commands" 97 bool "vi-style line editing commands"
98 default n 98 default n
99 depends on FEATURE_EDITING 99 depends on FEATURE_EDITING
100 help 100 help
101 Enable vi-style line editing. In shells, this mode can be 101 Enable vi-style line editing. In shells, this mode can be
102 turned on and off with "set -o vi" and "set +o vi". 102 turned on and off with "set -o vi" and "set +o vi".
103 103
104config FEATURE_EDITING_HISTORY 104config FEATURE_EDITING_HISTORY
105 int "History size" 105 int "History size"
@@ -108,29 +108,29 @@ config FEATURE_EDITING_HISTORY
108 default 255 108 default 255
109 depends on FEATURE_EDITING 109 depends on FEATURE_EDITING
110 help 110 help
111 Specify command history size (0 - disable). 111 Specify command history size (0 - disable).
112 112
113config FEATURE_EDITING_SAVEHISTORY 113config FEATURE_EDITING_SAVEHISTORY
114 bool "History saving" 114 bool "History saving"
115 default y 115 default y
116 depends on FEATURE_EDITING 116 depends on FEATURE_EDITING
117 help 117 help
118 Enable history saving in shells. 118 Enable history saving in shells.
119 119
120config FEATURE_EDITING_SAVE_ON_EXIT 120config FEATURE_EDITING_SAVE_ON_EXIT
121 bool "Save history on shell exit, not after every command" 121 bool "Save history on shell exit, not after every command"
122 default n 122 default n
123 depends on FEATURE_EDITING_SAVEHISTORY 123 depends on FEATURE_EDITING_SAVEHISTORY
124 help 124 help
125 Save history on shell exit, not after every command. 125 Save history on shell exit, not after every command.
126 126
127config FEATURE_REVERSE_SEARCH 127config FEATURE_REVERSE_SEARCH
128 bool "Reverse history search" 128 bool "Reverse history search"
129 default y 129 default y
130 depends on FEATURE_EDITING 130 depends on FEATURE_EDITING
131 help 131 help
132 Enable readline-like Ctrl-R combination for reverse history search. 132 Enable readline-like Ctrl-R combination for reverse history search.
133 Increases code by about 0.5k. 133 Increases code by about 0.5k.
134 134
135config FEATURE_TAB_COMPLETION 135config FEATURE_TAB_COMPLETION
136 bool "Tab completion" 136 bool "Tab completion"
@@ -147,237 +147,237 @@ config FEATURE_EDITING_FANCY_PROMPT
147 default y 147 default y
148 depends on FEATURE_EDITING 148 depends on FEATURE_EDITING
149 help 149 help
150 Setting this option allows for prompts to use things like \w and 150 Setting this option allows for prompts to use things like \w and
151 \$ and escape codes. 151 \$ and escape codes.
152 152
153config FEATURE_EDITING_ASK_TERMINAL 153config FEATURE_EDITING_ASK_TERMINAL
154 bool "Query cursor position from terminal" 154 bool "Query cursor position from terminal"
155 default n 155 default n
156 depends on FEATURE_EDITING 156 depends on FEATURE_EDITING
157 help 157 help
158 Allow usage of "ESC [ 6 n" sequence. Terminal answers back with 158 Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
159 current cursor position. This information is used to make line 159 current cursor position. This information is used to make line
160 editing more robust in some cases. 160 editing more robust in some cases.
161 If you are not sure whether your terminals respond to this code 161 If you are not sure whether your terminals respond to this code
162 correctly, or want to save on code size (about 400 bytes), 162 correctly, or want to save on code size (about 400 bytes),
163 then do not turn this option on. 163 then do not turn this option on.
164 164
165config LOCALE_SUPPORT 165config LOCALE_SUPPORT
166 bool "Enable locale support (system needs locale for this to work)" 166 bool "Enable locale support (system needs locale for this to work)"
167 default n 167 default n
168 help 168 help
169 Enable this if your system has locale support and you would like 169 Enable this if your system has locale support and you would like
170 busybox to support locale settings. 170 busybox to support locale settings.
171 171
172config UNICODE_SUPPORT 172config UNICODE_SUPPORT
173 bool "Support Unicode" 173 bool "Support Unicode"
174 default y 174 default y
175 help 175 help
176 This makes various applets aware that one byte is not 176 This makes various applets aware that one byte is not
177 one character on screen. 177 one character on screen.
178 178
179 Busybox aims to eventually work correctly with Unicode displays. 179 Busybox aims to eventually work correctly with Unicode displays.
180 Any older encodings are not guaranteed to work. 180 Any older encodings are not guaranteed to work.
181 Probably by the time when busybox will be fully Unicode-clean, 181 Probably by the time when busybox will be fully Unicode-clean,
182 other encodings will be mainly of historic interest. 182 other encodings will be mainly of historic interest.
183 183
184config UNICODE_USING_LOCALE 184config UNICODE_USING_LOCALE
185 bool "Use libc routines for Unicode (else uses internal ones)" 185 bool "Use libc routines for Unicode (else uses internal ones)"
186 default n 186 default n
187 depends on UNICODE_SUPPORT && LOCALE_SUPPORT 187 depends on UNICODE_SUPPORT && LOCALE_SUPPORT
188 help 188 help
189 With this option on, Unicode support is implemented using libc 189 With this option on, Unicode support is implemented using libc
190 routines. Otherwise, internal implementation is used. 190 routines. Otherwise, internal implementation is used.
191 Internal implementation is smaller. 191 Internal implementation is smaller.
192 192
193config FEATURE_CHECK_UNICODE_IN_ENV 193config FEATURE_CHECK_UNICODE_IN_ENV
194 bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables" 194 bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
195 default n 195 default n
196 depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE 196 depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE
197 help 197 help
198 With this option on, Unicode support is activated 198 With this option on, Unicode support is activated
199 only if locale-related variables have the value of the form 199 only if locale-related variables have the value of the form
200 "xxxx.utf8" 200 "xxxx.utf8"
201 201
202 Otherwise, Unicode support will be always enabled and active. 202 Otherwise, Unicode support will be always enabled and active.
203 203
204config SUBST_WCHAR 204config SUBST_WCHAR
205 int "Character code to substitute unprintable characters with" 205 int "Character code to substitute unprintable characters with"
206 depends on UNICODE_SUPPORT 206 depends on UNICODE_SUPPORT
207 default 63 207 default 63
208 help 208 help
209 Typical values are 63 for '?' (works with any output device), 209 Typical values are 63 for '?' (works with any output device),
210 30 for ASCII substitute control code, 210 30 for ASCII substitute control code,
211 65533 (0xfffd) for Unicode replacement character. 211 65533 (0xfffd) for Unicode replacement character.
212 212
213config LAST_SUPPORTED_WCHAR 213config LAST_SUPPORTED_WCHAR
214 int "Range of supported Unicode characters" 214 int "Range of supported Unicode characters"
215 depends on UNICODE_SUPPORT 215 depends on UNICODE_SUPPORT
216 default 767 216 default 767
217 help 217 help
218 Any character with Unicode value bigger than this is assumed 218 Any character with Unicode value bigger than this is assumed
219 to be non-printable on output device. Many applets replace 219 to be non-printable on output device. Many applets replace
220 such characters with substitution character. 220 such characters with substitution character.
221 221
222 The idea is that many valid printable Unicode chars 222 The idea is that many valid printable Unicode chars
223 nevertheless are not displayed correctly. Think about 223 nevertheless are not displayed correctly. Think about
224 combining charachers, double-wide hieroglyphs, obscure 224 combining charachers, double-wide hieroglyphs, obscure
225 characters in dozens of ancient scripts... 225 characters in dozens of ancient scripts...
226 Many terminals, terminal emulators, xterms etc will fail 226 Many terminals, terminal emulators, xterms etc will fail
227 to handle them correctly. Choose the smallest value 227 to handle them correctly. Choose the smallest value
228 which suits your needs. 228 which suits your needs.
229 229
230 Typical values are: 230 Typical values are:
231 126 - ASCII only 231 126 - ASCII only
232 767 (0x2ff) - there are no combining chars in [0..767] range 232 767 (0x2ff) - there are no combining chars in [0..767] range
233 (the range includes Latin 1, Latin Ext. A and B), 233 (the range includes Latin 1, Latin Ext. A and B),
234 code is ~700 bytes smaller for this case. 234 code is ~700 bytes smaller for this case.
235 4351 (0x10ff) - there are no double-wide chars in [0..4351] range, 235 4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
236 code is ~300 bytes smaller for this case. 236 code is ~300 bytes smaller for this case.
237 12799 (0x31ff) - nearly all non-ideographic characters are 237 12799 (0x31ff) - nearly all non-ideographic characters are
238 available in [0..12799] range, including 238 available in [0..12799] range, including
239 East Asian scripts like katakana, hiragana, hangul, 239 East Asian scripts like katakana, hiragana, hangul,
240 bopomofo... 240 bopomofo...
241 0 - off, any valid printable Unicode character will be printed. 241 0 - off, any valid printable Unicode character will be printed.
242 242
243config UNICODE_COMBINING_WCHARS 243config UNICODE_COMBINING_WCHARS
244 bool "Allow zero-width Unicode characters on output" 244 bool "Allow zero-width Unicode characters on output"
245 default n 245 default n
246 depends on UNICODE_SUPPORT 246 depends on UNICODE_SUPPORT
247 help 247 help
248 With this option off, any Unicode char with width of 0 248 With this option off, any Unicode char with width of 0
249 is substituted on output. 249 is substituted on output.
250 250
251config UNICODE_WIDE_WCHARS 251config UNICODE_WIDE_WCHARS
252 bool "Allow wide Unicode characters on output" 252 bool "Allow wide Unicode characters on output"
253 default n 253 default n
254 depends on UNICODE_SUPPORT 254 depends on UNICODE_SUPPORT
255 help 255 help
256 With this option off, any Unicode char with width > 1 256 With this option off, any Unicode char with width > 1
257 is substituted on output. 257 is substituted on output.
258 258
259config UNICODE_BIDI_SUPPORT 259config UNICODE_BIDI_SUPPORT
260 bool "Bidirectional character-aware line input" 260 bool "Bidirectional character-aware line input"
261 default n 261 default n
262 depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE 262 depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE
263 help 263 help
264 With this option on, right-to-left Unicode characters 264 With this option on, right-to-left Unicode characters
265 are treated differently on input (e.g. cursor movement). 265 are treated differently on input (e.g. cursor movement).
266 266
267config UNICODE_NEUTRAL_TABLE 267config UNICODE_NEUTRAL_TABLE
268 bool "In bidi input, support non-ASCII neutral chars too" 268 bool "In bidi input, support non-ASCII neutral chars too"
269 default n 269 default n
270 depends on UNICODE_BIDI_SUPPORT 270 depends on UNICODE_BIDI_SUPPORT
271 help 271 help
272 In most cases it's enough to treat only ASCII non-letters 272 In most cases it's enough to treat only ASCII non-letters
273 (i.e. punctuation, numbers and space) as characters 273 (i.e. punctuation, numbers and space) as characters
274 with neutral directionality. 274 with neutral directionality.
275 With this option on, more extensive (and bigger) table 275 With this option on, more extensive (and bigger) table
276 of neutral chars will be used. 276 of neutral chars will be used.
277 277
278config UNICODE_PRESERVE_BROKEN 278config UNICODE_PRESERVE_BROKEN
279 bool "Make it possible to enter sequences of chars which are not Unicode" 279 bool "Make it possible to enter sequences of chars which are not Unicode"
280 default n 280 default n
281 depends on UNICODE_SUPPORT 281 depends on UNICODE_SUPPORT
282 help 282 help
283 With this option on, on line-editing input (such as used by shells) 283 With this option on, on line-editing input (such as used by shells)
284 invalid UTF-8 bytes are not substituted with the selected 284 invalid UTF-8 bytes are not substituted with the selected
285 substitution character. 285 substitution character.
286 For example, this means that entering 'l', 's', ' ', 0xff, [Enter] 286 For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
287 at shell prompt will list file named 0xff (single char name 287 at shell prompt will list file named 0xff (single char name
288 with char value 255), not file named '?'. 288 with char value 255), not file named '?'.
289 289
290config FEATURE_NON_POSIX_CP 290config FEATURE_NON_POSIX_CP
291 bool "Non-POSIX, but safer, copying to special nodes" 291 bool "Non-POSIX, but safer, copying to special nodes"
292 default y 292 default y
293 help 293 help
294 With this option, "cp file symlink" will delete symlink 294 With this option, "cp file symlink" will delete symlink
295 and create a regular file. This does not conform to POSIX, 295 and create a regular file. This does not conform to POSIX,
296 but prevents a symlink attack. 296 but prevents a symlink attack.
297 Similarly, "cp file device" will not send file's data 297 Similarly, "cp file device" will not send file's data
298 to the device. (To do that, use "cat file >device") 298 to the device. (To do that, use "cat file >device")
299 299
300config FEATURE_VERBOSE_CP_MESSAGE 300config FEATURE_VERBOSE_CP_MESSAGE
301 bool "Give more precise messages when copy fails (cp, mv etc)" 301 bool "Give more precise messages when copy fails (cp, mv etc)"
302 default n 302 default n
303 help 303 help
304 Error messages with this feature enabled: 304 Error messages with this feature enabled:
305 305
306 $ cp file /does_not_exist/file 306 $ cp file /does_not_exist/file
307 cp: cannot create '/does_not_exist/file': Path does not exist 307 cp: cannot create '/does_not_exist/file': Path does not exist
308 $ cp file /vmlinuz/file 308 $ cp file /vmlinuz/file
309 cp: cannot stat '/vmlinuz/file': Path has non-directory component 309 cp: cannot stat '/vmlinuz/file': Path has non-directory component
310 310
311 If this feature is not enabled, they will be, respectively: 311 If this feature is not enabled, they will be, respectively:
312 312
313 cp: cannot create '/does_not_exist/file': No such file or directory 313 cp: cannot create '/does_not_exist/file': No such file or directory
314 cp: cannot stat '/vmlinuz/file': Not a directory 314 cp: cannot stat '/vmlinuz/file': Not a directory
315 315
316 This will cost you ~60 bytes. 316 This will cost you ~60 bytes.
317 317
318config FEATURE_USE_SENDFILE 318config FEATURE_USE_SENDFILE
319 bool "Use sendfile system call" 319 bool "Use sendfile system call"
320 default y 320 default y
321 select PLATFORM_LINUX 321 select PLATFORM_LINUX
322 help 322 help
323 When enabled, busybox will use the kernel sendfile() function 323 When enabled, busybox will use the kernel sendfile() function
324 instead of read/write loops to copy data between file descriptors 324 instead of read/write loops to copy data between file descriptors
325 (for example, cp command does this a lot). 325 (for example, cp command does this a lot).
326 If sendfile() doesn't work, copying code falls back to read/write 326 If sendfile() doesn't work, copying code falls back to read/write
327 loop. sendfile() was originally implemented for faster I/O 327 loop. sendfile() was originally implemented for faster I/O
328 from files to sockets, but since Linux 2.6.33 it was extended 328 from files to sockets, but since Linux 2.6.33 it was extended
329 to work for many more file types. 329 to work for many more file types.
330 330
331config FEATURE_COPYBUF_KB 331config FEATURE_COPYBUF_KB
332 int "Copy buffer size, in kilobytes" 332 int "Copy buffer size, in kilobytes"
333 range 1 1024 333 range 1 1024
334 default 4 334 default 4
335 help 335 help
336 Size of buffer used by cp, mv, install, wget etc. 336 Size of buffer used by cp, mv, install, wget etc.
337 Buffers which are 4 kb or less will be allocated on stack. 337 Buffers which are 4 kb or less will be allocated on stack.
338 Bigger buffers will be allocated with mmap, with fallback to 4 kb 338 Bigger buffers will be allocated with mmap, with fallback to 4 kb
339 stack buffer if mmap fails. 339 stack buffer if mmap fails.
340 340
341config FEATURE_SKIP_ROOTFS 341config FEATURE_SKIP_ROOTFS
342 bool "Skip rootfs in mount table" 342 bool "Skip rootfs in mount table"
343 default y 343 default y
344 help 344 help
345 Ignore rootfs entry in mount table. 345 Ignore rootfs entry in mount table.
346 346
347 In Linux, kernel has a special filesystem, rootfs, which is initially 347 In Linux, kernel has a special filesystem, rootfs, which is initially
348 mounted on /. It contains initramfs data, if kernel is configured 348 mounted on /. It contains initramfs data, if kernel is configured
349 to have one. Usually, another file system is mounted over / early 349 to have one. Usually, another file system is mounted over / early
350 in boot process, and therefore most tools which manipulate 350 in boot process, and therefore most tools which manipulate
351 mount table, such as df, will skip rootfs entry. 351 mount table, such as df, will skip rootfs entry.
352 352
353 However, some systems do not mount anything on /. 353 However, some systems do not mount anything on /.
354 If you need to configure busybox for one of these systems, 354 If you need to configure busybox for one of these systems,
355 you may find it useful to turn this option off to make df show 355 you may find it useful to turn this option off to make df show
356 initramfs statistics. 356 initramfs statistics.
357 357
358 Otherwise, choose Y. 358 Otherwise, choose Y.
359 359
360config MONOTONIC_SYSCALL 360config MONOTONIC_SYSCALL
361 bool "Use clock_gettime(CLOCK_MONOTONIC) syscall" 361 bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
362 default y 362 default y
363 select PLATFORM_LINUX 363 select PLATFORM_LINUX
364 help 364 help
365 Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring 365 Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
366 time intervals (time, ping, traceroute etc need this). 366 time intervals (time, ping, traceroute etc need this).
367 Probably requires Linux 2.6+. If not selected, gettimeofday 367 Probably requires Linux 2.6+. If not selected, gettimeofday
368 will be used instead (which gives wrong results if date/time 368 will be used instead (which gives wrong results if date/time
369 is reset). 369 is reset).
370 370
371config IOCTL_HEX2STR_ERROR 371config IOCTL_HEX2STR_ERROR
372 bool "Use ioctl names rather than hex values in error messages" 372 bool "Use ioctl names rather than hex values in error messages"
373 default y 373 default y
374 help 374 help
375 Use ioctl names rather than hex values in error messages 375 Use ioctl names rather than hex values in error messages
376 (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this 376 (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
377 saves about 1400 bytes. 377 saves about 1400 bytes.
378 378
379config FEATURE_HWIB 379config FEATURE_HWIB
380 bool "Support infiniband HW" 380 bool "Support infiniband HW"
381 default y 381 default y
382 help 382 help
383 Support for printing infiniband addresses in network applets. 383 Support for printing infiniband addresses in network applets.
diff --git a/libbb/common_bufsiz.c b/libbb/common_bufsiz.c
index f1124ba0e..6bc6d7bc9 100644
--- a/libbb/common_bufsiz.c
+++ b/libbb/common_bufsiz.c
@@ -10,35 +10,35 @@
10//config: bool "Use the end of BSS page" 10//config: bool "Use the end of BSS page"
11//config: default n 11//config: default n
12//config: help 12//config: help
13//config: Attempt to reclaim a small unused part of BSS. 13//config: Attempt to reclaim a small unused part of BSS.
14//config: 14//config:
15//config: Executables have the following parts: 15//config: Executables have the following parts:
16//config: = read-only executable code and constants, also known as "text" 16//config: = read-only executable code and constants, also known as "text"
17//config: = read-write data 17//config: = read-write data
18//config: = non-initialized (zeroed on demand) data, also known as "bss" 18//config: = non-initialized (zeroed on demand) data, also known as "bss"
19//config: 19//config:
20//config: At link time, "text" is padded to a full page. At runtime, all "text" 20//config: At link time, "text" is padded to a full page. At runtime, all "text"
21//config: pages are mapped RO and executable. 21//config: pages are mapped RO and executable.
22//config: 22//config:
23//config: "Data" starts on the next page boundary, but is not padded 23//config: "Data" starts on the next page boundary, but is not padded
24//config: to a full page at the end. "Bss" starts wherever "data" ends. 24//config: to a full page at the end. "Bss" starts wherever "data" ends.
25//config: At runtime, "data" pages are mapped RW and they are file-backed 25//config: At runtime, "data" pages are mapped RW and they are file-backed
26//config: (this includes a small portion of "bss" which may live in the last 26//config: (this includes a small portion of "bss" which may live in the last
27//config: partial page of "data"). 27//config: partial page of "data").
28//config: Pages which are fully in "bss" are mapped to anonymous memory. 28//config: Pages which are fully in "bss" are mapped to anonymous memory.
29//config: 29//config:
30//config: "Bss" end is usually not page-aligned. There is an unused space 30//config: "Bss" end is usually not page-aligned. There is an unused space
31//config: in the last page. Linker marks its start with the "_end" symbol. 31//config: in the last page. Linker marks its start with the "_end" symbol.
32//config: 32//config:
33//config: This option will attempt to use that space for bb_common_bufsiz1[] 33//config: This option will attempt to use that space for bb_common_bufsiz1[]
34//config: array. If it fits after _end, it will be used, and COMMON_BUFSIZE 34//config: array. If it fits after _end, it will be used, and COMMON_BUFSIZE
35//config: will be enlarged from its guaranteed minimum size of 1 kbyte. 35//config: will be enlarged from its guaranteed minimum size of 1 kbyte.
36//config: This may require recompilation a second time, since value of _end 36//config: This may require recompilation a second time, since value of _end
37//config: is known only after final link. 37//config: is known only after final link.
38//config: 38//config:
39//config: If you are getting a build error like this: 39//config: If you are getting a build error like this:
40//config: appletlib.c:(.text.main+0xd): undefined reference to '_end' 40//config: appletlib.c:(.text.main+0xd): undefined reference to '_end'
41//config: disable this option. 41//config: disable this option.
42 42
43//kbuild:lib-y += common_bufsiz.o 43//kbuild:lib-y += common_bufsiz.o
44 44
diff --git a/libbb/parse_config.c b/libbb/parse_config.c
index 408439766..307ae2cd2 100644
--- a/libbb/parse_config.c
+++ b/libbb/parse_config.c
@@ -13,7 +13,7 @@
13////config: bool "Uniform config file parser debugging applet: parse" 13////config: bool "Uniform config file parser debugging applet: parse"
14////config: default n 14////config: default n
15////config: help 15////config: help
16////config: Typical usage of parse API: 16////config: Typical usage of parse API:
17////config: char *t[3]; 17////config: char *t[3];
18////config: parser_t *p = config_open(filename); 18////config: parser_t *p = config_open(filename);
19////config: while (config_read(p, t, 3, 0, delimiters, flags)) { // 1..3 tokens 19////config: while (config_read(p, t, 3, 0, delimiters, flags)) { // 1..3 tokens
diff --git a/libbb/u_signal_names.c b/libbb/u_signal_names.c
index b49714f2a..bf984a44e 100644
--- a/libbb/u_signal_names.c
+++ b/libbb/u_signal_names.c
@@ -11,8 +11,8 @@
11//config: bool "Support RTMIN[+n] and RTMAX[-n] signal names" 11//config: bool "Support RTMIN[+n] and RTMAX[-n] signal names"
12//config: default y 12//config: default y
13//config: help 13//config: help
14//config: Support RTMIN[+n] and RTMAX[-n] signal names 14//config: Support RTMIN[+n] and RTMAX[-n] signal names
15//config: in kill, killall etc. This costs ~250 bytes. 15//config: in kill, killall etc. This costs ~250 bytes.
16 16
17#include "libbb.h" 17#include "libbb.h"
18 18
diff --git a/loginutils/Config.src b/loginutils/Config.src
index beb4eb855..680f42118 100644
--- a/loginutils/Config.src
+++ b/loginutils/Config.src
@@ -9,87 +9,87 @@ config FEATURE_SHADOWPASSWDS
9 bool "Support shadow passwords" 9 bool "Support shadow passwords"
10 default y 10 default y
11 help 11 help
12 Build support for shadow password in /etc/shadow. This file is only 12 Build support for shadow password in /etc/shadow. This file is only
13 readable by root and thus the encrypted passwords are no longer 13 readable by root and thus the encrypted passwords are no longer
14 publicly readable. 14 publicly readable.
15 15
16config USE_BB_PWD_GRP 16config USE_BB_PWD_GRP
17 bool "Use internal password and group functions rather than system functions" 17 bool "Use internal password and group functions rather than system functions"
18 default y 18 default y
19 help 19 help
20 If you leave this disabled, busybox will use the system's password 20 If you leave this disabled, busybox will use the system's password
21 and group functions. And if you are using the GNU C library 21 and group functions. And if you are using the GNU C library
22 (glibc), you will then need to install the /etc/nsswitch.conf 22 (glibc), you will then need to install the /etc/nsswitch.conf
23 configuration file and the required /lib/libnss_* libraries in 23 configuration file and the required /lib/libnss_* libraries in
24 order for the password and group functions to work. This generally 24 order for the password and group functions to work. This generally
25 makes your embedded system quite a bit larger. 25 makes your embedded system quite a bit larger.
26 26
27 Enabling this option will cause busybox to directly access the 27 Enabling this option will cause busybox to directly access the
28 system's /etc/password, /etc/group files (and your system will be 28 system's /etc/password, /etc/group files (and your system will be
29 smaller, and I will get fewer emails asking about how glibc NSS 29 smaller, and I will get fewer emails asking about how glibc NSS
30 works). When this option is enabled, you will not be able to use 30 works). When this option is enabled, you will not be able to use
31 PAM to access remote LDAP password servers and whatnot. And if you 31 PAM to access remote LDAP password servers and whatnot. And if you
32 want hostname resolution to work with glibc, you still need the 32 want hostname resolution to work with glibc, you still need the
33 /lib/libnss_* libraries. 33 /lib/libnss_* libraries.
34 34
35 If you need to use glibc's nsswitch.conf mechanism 35 If you need to use glibc's nsswitch.conf mechanism
36 (e.g. if user/group database is NOT stored in /etc/passwd etc), 36 (e.g. if user/group database is NOT stored in /etc/passwd etc),
37 you must NOT use this option. 37 you must NOT use this option.
38 38
39 If you enable this option, it will add about 1.5k. 39 If you enable this option, it will add about 1.5k.
40 40
41config USE_BB_SHADOW 41config USE_BB_SHADOW
42 bool "Use internal shadow password functions" 42 bool "Use internal shadow password functions"
43 default y 43 default y
44 depends on USE_BB_PWD_GRP && FEATURE_SHADOWPASSWDS 44 depends on USE_BB_PWD_GRP && FEATURE_SHADOWPASSWDS
45 help 45 help
46 If you leave this disabled, busybox will use the system's shadow 46 If you leave this disabled, busybox will use the system's shadow
47 password handling functions. And if you are using the GNU C library 47 password handling functions. And if you are using the GNU C library
48 (glibc), you will then need to install the /etc/nsswitch.conf 48 (glibc), you will then need to install the /etc/nsswitch.conf
49 configuration file and the required /lib/libnss_* libraries in 49 configuration file and the required /lib/libnss_* libraries in
50 order for the shadow password functions to work. This generally 50 order for the shadow password functions to work. This generally
51 makes your embedded system quite a bit larger. 51 makes your embedded system quite a bit larger.
52 52
53 Enabling this option will cause busybox to directly access the 53 Enabling this option will cause busybox to directly access the
54 system's /etc/shadow file when handling shadow passwords. This 54 system's /etc/shadow file when handling shadow passwords. This
55 makes your system smaller (and I will get fewer emails asking about 55 makes your system smaller (and I will get fewer emails asking about
56 how glibc NSS works). When this option is enabled, you will not be 56 how glibc NSS works). When this option is enabled, you will not be
57 able to use PAM to access shadow passwords from remote LDAP 57 able to use PAM to access shadow passwords from remote LDAP
58 password servers and whatnot. 58 password servers and whatnot.
59 59
60config USE_BB_CRYPT 60config USE_BB_CRYPT
61 bool "Use internal crypt functions" 61 bool "Use internal crypt functions"
62 default y 62 default y
63 help 63 help
64 Busybox has internal DES and MD5 crypt functions. 64 Busybox has internal DES and MD5 crypt functions.
65 They produce results which are identical to corresponding 65 They produce results which are identical to corresponding
66 standard C library functions. 66 standard C library functions.
67 67
68 If you leave this disabled, busybox will use the system's 68 If you leave this disabled, busybox will use the system's
69 crypt functions. Most C libraries use large (~70k) 69 crypt functions. Most C libraries use large (~70k)
70 static buffers there, and also combine them with more general 70 static buffers there, and also combine them with more general
71 DES encryption/decryption. 71 DES encryption/decryption.
72 72
73 For busybox, having large static buffers is undesirable, 73 For busybox, having large static buffers is undesirable,
74 especially on NOMMU machines. Busybox also doesn't need 74 especially on NOMMU machines. Busybox also doesn't need
75 DES encryption/decryption and can do with smaller code. 75 DES encryption/decryption and can do with smaller code.
76 76
77 If you enable this option, it will add about 4.8k of code 77 If you enable this option, it will add about 4.8k of code
78 if you are building dynamically linked executable. 78 if you are building dynamically linked executable.
79 In static build, it makes code _smaller_ by about 1.2k, 79 In static build, it makes code _smaller_ by about 1.2k,
80 and likely many kilobytes less of bss. 80 and likely many kilobytes less of bss.
81 81
82config USE_BB_CRYPT_SHA 82config USE_BB_CRYPT_SHA
83 bool "Enable SHA256/512 crypt functions" 83 bool "Enable SHA256/512 crypt functions"
84 default y 84 default y
85 depends on USE_BB_CRYPT 85 depends on USE_BB_CRYPT
86 help 86 help
87 Enable this if you have passwords starting with "$5$" or "$6$" 87 Enable this if you have passwords starting with "$5$" or "$6$"
88 in your /etc/passwd or /etc/shadow files. These passwords 88 in your /etc/passwd or /etc/shadow files. These passwords
89 are hashed using SHA256 and SHA512 algorithms. Support for them 89 are hashed using SHA256 and SHA512 algorithms. Support for them
90 was added to glibc in 2008. 90 was added to glibc in 2008.
91 With this option off, login will fail password check for any 91 With this option off, login will fail password check for any
92 user which has password encrypted with these algorithms. 92 user which has password encrypted with these algorithms.
93 93
94INSERT 94INSERT
95 95
diff --git a/loginutils/add-remove-shell.c b/loginutils/add-remove-shell.c
index eb16c6ead..750b44bd6 100644
--- a/loginutils/add-remove-shell.c
+++ b/loginutils/add-remove-shell.c
@@ -8,16 +8,16 @@
8 * for details. 8 * for details.
9 */ 9 */
10//config:config ADD_SHELL 10//config:config ADD_SHELL
11//config: bool "add-shell (2.8 kb)" 11//config: bool "add-shell (2.8 kb)"
12//config: default y if DESKTOP 12//config: default y if DESKTOP
13//config: help 13//config: help
14//config: Add shells to /etc/shells. 14//config: Add shells to /etc/shells.
15//config: 15//config:
16//config:config REMOVE_SHELL 16//config:config REMOVE_SHELL
17//config: bool "remove-shell (2.7 kb)" 17//config: bool "remove-shell (2.7 kb)"
18//config: default y if DESKTOP 18//config: default y if DESKTOP
19//config: help 19//config: help
20//config: Remove shells from /etc/shells. 20//config: Remove shells from /etc/shells.
21 21
22// APPLET_ODDNAME:name main location suid_type help 22// APPLET_ODDNAME:name main location suid_type help
23//applet:IF_ADD_SHELL( APPLET_ODDNAME(add-shell , add_remove_shell, BB_DIR_USR_SBIN, BB_SUID_DROP, add_shell )) 23//applet:IF_ADD_SHELL( APPLET_ODDNAME(add-shell , add_remove_shell, BB_DIR_USR_SBIN, BB_SUID_DROP, add_shell ))
diff --git a/loginutils/addgroup.c b/loginutils/addgroup.c
index c02ff10e9..b197fc149 100644
--- a/loginutils/addgroup.c
+++ b/loginutils/addgroup.c
@@ -13,7 +13,7 @@
13//config: bool "addgroup (8.2 kb)" 13//config: bool "addgroup (8.2 kb)"
14//config: default y 14//config: default y
15//config: help 15//config: help
16//config: Utility for creating a new group account. 16//config: Utility for creating a new group account.
17//config: 17//config:
18//config:config FEATURE_ADDGROUP_LONG_OPTIONS 18//config:config FEATURE_ADDGROUP_LONG_OPTIONS
19//config: bool "Enable long options" 19//config: bool "Enable long options"
@@ -25,9 +25,9 @@
25//config: default y 25//config: default y
26//config: depends on ADDGROUP 26//config: depends on ADDGROUP
27//config: help 27//config: help
28//config: If called with two non-option arguments, 28//config: If called with two non-option arguments,
29//config: addgroup will add an existing user to an 29//config: addgroup will add an existing user to an
30//config: existing group. 30//config: existing group.
31 31
32//applet:IF_ADDGROUP(APPLET(addgroup, BB_DIR_USR_SBIN, BB_SUID_DROP)) 32//applet:IF_ADDGROUP(APPLET(addgroup, BB_DIR_USR_SBIN, BB_SUID_DROP))
33 33
diff --git a/loginutils/adduser.c b/loginutils/adduser.c
index e2818f852..ef18278ac 100644
--- a/loginutils/adduser.c
+++ b/loginutils/adduser.c
@@ -11,7 +11,7 @@
11//config: bool "adduser (15 kb)" 11//config: bool "adduser (15 kb)"
12//config: default y 12//config: default y
13//config: help 13//config: help
14//config: Utility for creating a new user account. 14//config: Utility for creating a new user account.
15//config: 15//config:
16//config:config FEATURE_ADDUSER_LONG_OPTIONS 16//config:config FEATURE_ADDUSER_LONG_OPTIONS
17//config: bool "Enable long options" 17//config: bool "Enable long options"
@@ -23,19 +23,19 @@
23//config: default n 23//config: default n
24//config: depends on ADDUSER || ADDGROUP 24//config: depends on ADDUSER || ADDGROUP
25//config: help 25//config: help
26//config: Enable sanity check on user and group names in adduser and addgroup. 26//config: Enable sanity check on user and group names in adduser and addgroup.
27//config: To avoid problems, the user or group name should consist only of 27//config: To avoid problems, the user or group name should consist only of
28//config: letters, digits, underscores, periods, at signs and dashes, 28//config: letters, digits, underscores, periods, at signs and dashes,
29//config: and not start with a dash (as defined by IEEE Std 1003.1-2001). 29//config: and not start with a dash (as defined by IEEE Std 1003.1-2001).
30//config: For compatibility with Samba machine accounts "$" is also supported 30//config: For compatibility with Samba machine accounts "$" is also supported
31//config: at the end of the user or group name. 31//config: at the end of the user or group name.
32//config: 32//config:
33//config:config LAST_ID 33//config:config LAST_ID
34//config: int "Last valid uid or gid for adduser and addgroup" 34//config: int "Last valid uid or gid for adduser and addgroup"
35//config: depends on ADDUSER || ADDGROUP 35//config: depends on ADDUSER || ADDGROUP
36//config: default 60000 36//config: default 60000
37//config: help 37//config: help
38//config: Last valid uid or gid for adduser and addgroup 38//config: Last valid uid or gid for adduser and addgroup
39//config: 39//config:
40//config:config FIRST_SYSTEM_ID 40//config:config FIRST_SYSTEM_ID
41//config: int "First valid system uid or gid for adduser and addgroup" 41//config: int "First valid system uid or gid for adduser and addgroup"
@@ -43,7 +43,7 @@
43//config: range 0 LAST_ID 43//config: range 0 LAST_ID
44//config: default 100 44//config: default 100
45//config: help 45//config: help
46//config: First valid system uid or gid for adduser and addgroup 46//config: First valid system uid or gid for adduser and addgroup
47//config: 47//config:
48//config:config LAST_SYSTEM_ID 48//config:config LAST_SYSTEM_ID
49//config: int "Last valid system uid or gid for adduser and addgroup" 49//config: int "Last valid system uid or gid for adduser and addgroup"
@@ -51,7 +51,7 @@
51//config: range FIRST_SYSTEM_ID LAST_ID 51//config: range FIRST_SYSTEM_ID LAST_ID
52//config: default 999 52//config: default 999
53//config: help 53//config: help
54//config: Last valid system uid or gid for adduser and addgroup 54//config: Last valid system uid or gid for adduser and addgroup
55 55
56//applet:IF_ADDUSER(APPLET(adduser, BB_DIR_USR_SBIN, BB_SUID_DROP)) 56//applet:IF_ADDUSER(APPLET(adduser, BB_DIR_USR_SBIN, BB_SUID_DROP))
57 57
diff --git a/loginutils/chpasswd.c b/loginutils/chpasswd.c
index 60f54ab01..e390da647 100644
--- a/loginutils/chpasswd.c
+++ b/loginutils/chpasswd.c
@@ -9,15 +9,15 @@
9//config: bool "chpasswd (18 kb)" 9//config: bool "chpasswd (18 kb)"
10//config: default y 10//config: default y
11//config: help 11//config: help
12//config: Reads a file of user name and password pairs from standard input 12//config: Reads a file of user name and password pairs from standard input
13//config: and uses this information to update a group of existing users. 13//config: and uses this information to update a group of existing users.
14//config: 14//config:
15//config:config FEATURE_DEFAULT_PASSWD_ALGO 15//config:config FEATURE_DEFAULT_PASSWD_ALGO
16//config: string "Default encryption method (passwd -a, cryptpw -m, chpasswd -c ALG)" 16//config: string "Default encryption method (passwd -a, cryptpw -m, chpasswd -c ALG)"
17//config: default "des" 17//config: default "des"
18//config: depends on PASSWD || CRYPTPW || CHPASSWD 18//config: depends on PASSWD || CRYPTPW || CHPASSWD
19//config: help 19//config: help
20//config: Possible choices are "d[es]", "m[d5]", "s[ha256]" or "sha512". 20//config: Possible choices are "d[es]", "m[d5]", "s[ha256]" or "sha512".
21 21
22//applet:IF_CHPASSWD(APPLET(chpasswd, BB_DIR_USR_SBIN, BB_SUID_DROP)) 22//applet:IF_CHPASSWD(APPLET(chpasswd, BB_DIR_USR_SBIN, BB_SUID_DROP))
23 23
diff --git a/loginutils/cryptpw.c b/loginutils/cryptpw.c
index 75769c813..f8906c59a 100644
--- a/loginutils/cryptpw.c
+++ b/loginutils/cryptpw.c
@@ -13,16 +13,16 @@
13//config: bool "cryptpw (14 kb)" 13//config: bool "cryptpw (14 kb)"
14//config: default y 14//config: default y
15//config: help 15//config: help
16//config: Encrypts the given password with the crypt(3) libc function 16//config: Encrypts the given password with the crypt(3) libc function
17//config: using the given salt. 17//config: using the given salt.
18//config: 18//config:
19//config:config MKPASSWD 19//config:config MKPASSWD
20//config: bool "mkpasswd (15 kb)" 20//config: bool "mkpasswd (15 kb)"
21//config: default y 21//config: default y
22//config: help 22//config: help
23//config: Encrypts the given password with the crypt(3) libc function 23//config: Encrypts the given password with the crypt(3) libc function
24//config: using the given salt. Debian has this utility under mkpasswd 24//config: using the given salt. Debian has this utility under mkpasswd
25//config: name. Busybox provides mkpasswd as an alias for cryptpw. 25//config: name. Busybox provides mkpasswd as an alias for cryptpw.
26 26
27//applet:IF_CRYPTPW(APPLET(cryptpw, BB_DIR_USR_BIN, BB_SUID_DROP)) 27//applet:IF_CRYPTPW(APPLET(cryptpw, BB_DIR_USR_BIN, BB_SUID_DROP))
28// APPLET_ODDNAME:name main location suid_type help 28// APPLET_ODDNAME:name main location suid_type help
diff --git a/loginutils/deluser.c b/loginutils/deluser.c
index 5b05faf3a..3b6bd952d 100644
--- a/loginutils/deluser.c
+++ b/loginutils/deluser.c
@@ -12,21 +12,21 @@
12//config: bool "deluser (8.4 kb)" 12//config: bool "deluser (8.4 kb)"
13//config: default y 13//config: default y
14//config: help 14//config: help
15//config: Utility for deleting a user account. 15//config: Utility for deleting a user account.
16//config: 16//config:
17//config:config DELGROUP 17//config:config DELGROUP
18//config: bool "delgroup (5.6 kb)" 18//config: bool "delgroup (5.6 kb)"
19//config: default y 19//config: default y
20//config: help 20//config: help
21//config: Utility for deleting a group account. 21//config: Utility for deleting a group account.
22//config: 22//config:
23//config:config FEATURE_DEL_USER_FROM_GROUP 23//config:config FEATURE_DEL_USER_FROM_GROUP
24//config: bool "Support removing users from groups" 24//config: bool "Support removing users from groups"
25//config: default y 25//config: default y
26//config: depends on DELGROUP 26//config: depends on DELGROUP
27//config: help 27//config: help
28//config: If called with two non-option arguments, deluser 28//config: If called with two non-option arguments, deluser
29//config: or delgroup will remove an user from a specified group. 29//config: or delgroup will remove an user from a specified group.
30 30
31//applet:IF_DELUSER(APPLET(deluser, BB_DIR_USR_SBIN, BB_SUID_DROP)) 31//applet:IF_DELUSER(APPLET(deluser, BB_DIR_USR_SBIN, BB_SUID_DROP))
32//applet:IF_DELGROUP(APPLET_ODDNAME(delgroup, deluser, BB_DIR_USR_SBIN, BB_SUID_DROP, delgroup)) 32//applet:IF_DELGROUP(APPLET_ODDNAME(delgroup, deluser, BB_DIR_USR_SBIN, BB_SUID_DROP, delgroup))
diff --git a/loginutils/getty.c b/loginutils/getty.c
index d38471a42..fd5116d08 100644
--- a/loginutils/getty.c
+++ b/loginutils/getty.c
@@ -26,19 +26,19 @@
26//config: default y 26//config: default y
27//config: select FEATURE_SYSLOG 27//config: select FEATURE_SYSLOG
28//config: help 28//config: help
29//config: getty lets you log in on a tty. It is normally invoked by init. 29//config: getty lets you log in on a tty. It is normally invoked by init.
30//config: 30//config:
31//config: Note that you can save a few bytes by disabling it and 31//config: Note that you can save a few bytes by disabling it and
32//config: using login applet directly. 32//config: using login applet directly.
33//config: If you need to reset tty attributes before calling login, 33//config: If you need to reset tty attributes before calling login,
34//config: this script approximates getty: 34//config: this script approximates getty:
35//config: 35//config:
36//config: exec </dev/$1 >/dev/$1 2>&1 || exit 1 36//config: exec </dev/$1 >/dev/$1 2>&1 || exit 1
37//config: reset 37//config: reset
38//config: stty sane; stty ispeed 38400; stty ospeed 38400 38//config: stty sane; stty ispeed 38400; stty ospeed 38400
39//config: printf "%s login: " "`hostname`" 39//config: printf "%s login: " "`hostname`"
40//config: read -r login 40//config: read -r login
41//config: exec /bin/login "$login" 41//config: exec /bin/login "$login"
42 42
43//applet:IF_GETTY(APPLET(getty, BB_DIR_SBIN, BB_SUID_DROP)) 43//applet:IF_GETTY(APPLET(getty, BB_DIR_SBIN, BB_SUID_DROP))
44 44
diff --git a/loginutils/login.c b/loginutils/login.c
index fbdfd2925..39f703f07 100644
--- a/loginutils/login.c
+++ b/loginutils/login.c
@@ -7,46 +7,46 @@
7//config: default y 7//config: default y
8//config: select FEATURE_SYSLOG 8//config: select FEATURE_SYSLOG
9//config: help 9//config: help
10//config: login is used when signing onto a system. 10//config: login is used when signing onto a system.
11//config: 11//config:
12//config: Note that Busybox binary must be setuid root for this applet to 12//config: Note that Busybox binary must be setuid root for this applet to
13//config: work properly. 13//config: work properly.
14//config: 14//config:
15//config:config LOGIN_SESSION_AS_CHILD 15//config:config LOGIN_SESSION_AS_CHILD
16//config: bool "Run logged in session in a child process" 16//config: bool "Run logged in session in a child process"
17//config: default y if PAM 17//config: default y if PAM
18//config: depends on LOGIN 18//config: depends on LOGIN
19//config: help 19//config: help
20//config: Run the logged in session in a child process. This allows 20//config: Run the logged in session in a child process. This allows
21//config: login to clean up things such as utmp entries or PAM sessions 21//config: login to clean up things such as utmp entries or PAM sessions
22//config: when the login session is complete. If you use PAM, you 22//config: when the login session is complete. If you use PAM, you
23//config: almost always would want this to be set to Y, else PAM session 23//config: almost always would want this to be set to Y, else PAM session
24//config: will not be cleaned up. 24//config: will not be cleaned up.
25//config: 25//config:
26//config:config LOGIN_SCRIPTS 26//config:config LOGIN_SCRIPTS
27//config: bool "Support login scripts" 27//config: bool "Support login scripts"
28//config: depends on LOGIN 28//config: depends on LOGIN
29//config: default y 29//config: default y
30//config: help 30//config: help
31//config: Enable this if you want login to execute $LOGIN_PRE_SUID_SCRIPT 31//config: Enable this if you want login to execute $LOGIN_PRE_SUID_SCRIPT
32//config: just prior to switching from root to logged-in user. 32//config: just prior to switching from root to logged-in user.
33//config: 33//config:
34//config:config FEATURE_NOLOGIN 34//config:config FEATURE_NOLOGIN
35//config: bool "Support /etc/nologin" 35//config: bool "Support /etc/nologin"
36//config: default y 36//config: default y
37//config: depends on LOGIN 37//config: depends on LOGIN
38//config: help 38//config: help
39//config: The file /etc/nologin is used by (some versions of) login(1). 39//config: The file /etc/nologin is used by (some versions of) login(1).
40//config: If it exists, non-root logins are prohibited. 40//config: If it exists, non-root logins are prohibited.
41//config: 41//config:
42//config:config FEATURE_SECURETTY 42//config:config FEATURE_SECURETTY
43//config: bool "Support /etc/securetty" 43//config: bool "Support /etc/securetty"
44//config: default y 44//config: default y
45//config: depends on LOGIN 45//config: depends on LOGIN
46//config: help 46//config: help
47//config: The file /etc/securetty is used by (some versions of) login(1). 47//config: The file /etc/securetty is used by (some versions of) login(1).
48//config: The file contains the device names of tty lines (one per line, 48//config: The file contains the device names of tty lines (one per line,
49//config: without leading /dev/) on which root is allowed to login. 49//config: without leading /dev/) on which root is allowed to login.
50 50
51//applet:/* Needs to be run by root or be suid root - needs to change uid and gid: */ 51//applet:/* Needs to be run by root or be suid root - needs to change uid and gid: */
52//applet:IF_LOGIN(APPLET(login, BB_DIR_BIN, BB_SUID_REQUIRE)) 52//applet:IF_LOGIN(APPLET(login, BB_DIR_BIN, BB_SUID_REQUIRE))
diff --git a/loginutils/passwd.c b/loginutils/passwd.c
index ea8f07474..03f8ad0a4 100644
--- a/loginutils/passwd.c
+++ b/loginutils/passwd.c
@@ -7,20 +7,20 @@
7//config: default y 7//config: default y
8//config: select FEATURE_SYSLOG 8//config: select FEATURE_SYSLOG
9//config: help 9//config: help
10//config: passwd changes passwords for user and group accounts. A normal user 10//config: passwd changes passwords for user and group accounts. A normal user
11//config: may only change the password for his/her own account, the super user 11//config: may only change the password for his/her own account, the super user
12//config: may change the password for any account. The administrator of a group 12//config: may change the password for any account. The administrator of a group
13//config: may change the password for the group. 13//config: may change the password for the group.
14//config: 14//config:
15//config: Note that Busybox binary must be setuid root for this applet to 15//config: Note that Busybox binary must be setuid root for this applet to
16//config: work properly. 16//config: work properly.
17//config: 17//config:
18//config:config FEATURE_PASSWD_WEAK_CHECK 18//config:config FEATURE_PASSWD_WEAK_CHECK
19//config: bool "Check new passwords for weakness" 19//config: bool "Check new passwords for weakness"
20//config: default y 20//config: default y
21//config: depends on PASSWD 21//config: depends on PASSWD
22//config: help 22//config: help
23//config: With this option passwd will refuse new passwords which are "weak". 23//config: With this option passwd will refuse new passwords which are "weak".
24 24
25//applet:/* Needs to be run by root or be suid root - needs to change /etc/{passwd,shadow}: */ 25//applet:/* Needs to be run by root or be suid root - needs to change /etc/{passwd,shadow}: */
26//applet:IF_PASSWD(APPLET(passwd, BB_DIR_USR_BIN, BB_SUID_REQUIRE)) 26//applet:IF_PASSWD(APPLET(passwd, BB_DIR_USR_BIN, BB_SUID_REQUIRE))
diff --git a/loginutils/su.c b/loginutils/su.c
index b70696fe7..41291ea8f 100644
--- a/loginutils/su.c
+++ b/loginutils/su.c
@@ -9,10 +9,10 @@
9//config: default y 9//config: default y
10//config: select FEATURE_SYSLOG 10//config: select FEATURE_SYSLOG
11//config: help 11//config: help
12//config: su is used to become another user during a login session. 12//config: su is used to become another user during a login session.
13//config: Invoked without a username, su defaults to becoming the super user. 13//config: Invoked without a username, su defaults to becoming the super user.
14//config: Note that busybox binary must be setuid root for this applet to 14//config: Note that busybox binary must be setuid root for this applet to
15//config: work properly. 15//config: work properly.
16//config: 16//config:
17//config:config FEATURE_SU_SYSLOG 17//config:config FEATURE_SU_SYSLOG
18//config: bool "Log to syslog all attempts to use su" 18//config: bool "Log to syslog all attempts to use su"
diff --git a/loginutils/sulogin.c b/loginutils/sulogin.c
index cdc2c8c5a..d5a463cac 100644
--- a/loginutils/sulogin.c
+++ b/loginutils/sulogin.c
@@ -9,8 +9,8 @@
9//config: default y 9//config: default y
10//config: select FEATURE_SYSLOG 10//config: select FEATURE_SYSLOG
11//config: help 11//config: help
12//config: sulogin is invoked when the system goes into single user 12//config: sulogin is invoked when the system goes into single user
13//config: mode (this is done through an entry in inittab). 13//config: mode (this is done through an entry in inittab).
14 14
15//applet:IF_SULOGIN(APPLET(sulogin, BB_DIR_SBIN, BB_SUID_DROP)) 15//applet:IF_SULOGIN(APPLET(sulogin, BB_DIR_SBIN, BB_SUID_DROP))
16 16
diff --git a/loginutils/vlock.c b/loginutils/vlock.c
index e3b701d53..f22abd3aa 100644
--- a/loginutils/vlock.c
+++ b/loginutils/vlock.c
@@ -19,10 +19,10 @@
19//config: bool "vlock (17 kb)" 19//config: bool "vlock (17 kb)"
20//config: default y 20//config: default y
21//config: help 21//config: help
22//config: Build the "vlock" applet which allows you to lock (virtual) terminals. 22//config: Build the "vlock" applet which allows you to lock (virtual) terminals.
23//config: 23//config:
24//config: Note that Busybox binary must be setuid root for this applet to 24//config: Note that Busybox binary must be setuid root for this applet to
25//config: work properly. 25//config: work properly.
26 26
27//applet:/* Needs to be run by root or be suid root - needs to change uid and gid: */ 27//applet:/* Needs to be run by root or be suid root - needs to change uid and gid: */
28//applet:IF_VLOCK(APPLET(vlock, BB_DIR_USR_BIN, BB_SUID_REQUIRE)) 28//applet:IF_VLOCK(APPLET(vlock, BB_DIR_USR_BIN, BB_SUID_REQUIRE))
diff --git a/mailutils/Config.src b/mailutils/Config.src
index e45a0f8fb..6d47163e4 100644
--- a/mailutils/Config.src
+++ b/mailutils/Config.src
@@ -7,6 +7,6 @@ config FEATURE_MIME_CHARSET
7 default "us-ascii" 7 default "us-ascii"
8 depends on MAKEMIME || REFORMIME || SENDMAIL 8 depends on MAKEMIME || REFORMIME || SENDMAIL
9 help 9 help
10 Default charset of the message. 10 Default charset of the message.
11 11
12endmenu 12endmenu
diff --git a/mailutils/makemime.c b/mailutils/makemime.c
index 9c79133b6..577bcde39 100644
--- a/mailutils/makemime.c
+++ b/mailutils/makemime.c
@@ -10,7 +10,7 @@
10//config: bool "makemime (5.9 kb)" 10//config: bool "makemime (5.9 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: Create MIME-formatted messages. 13//config: Create MIME-formatted messages.
14 14
15//applet:IF_MAKEMIME(APPLET(makemime, BB_DIR_BIN, BB_SUID_DROP)) 15//applet:IF_MAKEMIME(APPLET(makemime, BB_DIR_BIN, BB_SUID_DROP))
16 16
diff --git a/mailutils/popmaildir.c b/mailutils/popmaildir.c
index ad9a04a89..1695a9bb8 100644
--- a/mailutils/popmaildir.c
+++ b/mailutils/popmaildir.c
@@ -13,18 +13,18 @@
13//config: bool "popmaildir (10 kb)" 13//config: bool "popmaildir (10 kb)"
14//config: default y 14//config: default y
15//config: help 15//config: help
16//config: Simple yet powerful POP3 mail popper. Delivers content 16//config: Simple yet powerful POP3 mail popper. Delivers content
17//config: of remote mailboxes to local Maildir. 17//config: of remote mailboxes to local Maildir.
18//config: 18//config:
19//config:config FEATURE_POPMAILDIR_DELIVERY 19//config:config FEATURE_POPMAILDIR_DELIVERY
20//config: bool "Allow message filters and custom delivery program" 20//config: bool "Allow message filters and custom delivery program"
21//config: default y 21//config: default y
22//config: depends on POPMAILDIR 22//config: depends on POPMAILDIR
23//config: help 23//config: help
24//config: Allow to use a custom program to filter the content 24//config: Allow to use a custom program to filter the content
25//config: of the message before actual delivery (-F "prog [args...]"). 25//config: of the message before actual delivery (-F "prog [args...]").
26//config: Allow to use a custom program for message actual delivery 26//config: Allow to use a custom program for message actual delivery
27//config: (-M "prog [args...]"). 27//config: (-M "prog [args...]").
28 28
29//applet:IF_POPMAILDIR(APPLET(popmaildir, BB_DIR_USR_SBIN, BB_SUID_DROP)) 29//applet:IF_POPMAILDIR(APPLET(popmaildir, BB_DIR_USR_SBIN, BB_SUID_DROP))
30 30
diff --git a/mailutils/reformime.c b/mailutils/reformime.c
index 4f29f68e8..6a0254803 100644
--- a/mailutils/reformime.c
+++ b/mailutils/reformime.c
@@ -10,15 +10,15 @@
10//config: bool "reformime (7.5 kb)" 10//config: bool "reformime (7.5 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: Parse MIME-formatted messages. 13//config: Parse MIME-formatted messages.
14//config: 14//config:
15//config:config FEATURE_REFORMIME_COMPAT 15//config:config FEATURE_REFORMIME_COMPAT
16//config: bool "Accept and ignore options other than -x and -X" 16//config: bool "Accept and ignore options other than -x and -X"
17//config: default y 17//config: default y
18//config: depends on REFORMIME 18//config: depends on REFORMIME
19//config: help 19//config: help
20//config: Accept (for compatibility only) and ignore options 20//config: Accept (for compatibility only) and ignore options
21//config: other than -x and -X. 21//config: other than -x and -X.
22 22
23//applet:IF_REFORMIME(APPLET(reformime, BB_DIR_BIN, BB_SUID_DROP)) 23//applet:IF_REFORMIME(APPLET(reformime, BB_DIR_BIN, BB_SUID_DROP))
24 24
diff --git a/mailutils/sendmail.c b/mailutils/sendmail.c
index c70d06263..346de2712 100644
--- a/mailutils/sendmail.c
+++ b/mailutils/sendmail.c
@@ -10,7 +10,7 @@
10//config: bool "sendmail (14 kb)" 10//config: bool "sendmail (14 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: Barebones sendmail. 13//config: Barebones sendmail.
14 14
15//applet:IF_SENDMAIL(APPLET(sendmail, BB_DIR_USR_SBIN, BB_SUID_DROP)) 15//applet:IF_SENDMAIL(APPLET(sendmail, BB_DIR_USR_SBIN, BB_SUID_DROP))
16 16
diff --git a/miscutils/adjtimex.c b/miscutils/adjtimex.c
index c91527ffb..04ba5636f 100644
--- a/miscutils/adjtimex.c
+++ b/miscutils/adjtimex.c
@@ -15,8 +15,8 @@
15//config: default y 15//config: default y
16//config: select PLATFORM_LINUX 16//config: select PLATFORM_LINUX
17//config: help 17//config: help
18//config: Adjtimex reads and optionally sets adjustment parameters for 18//config: Adjtimex reads and optionally sets adjustment parameters for
19//config: the Linux clock adjustment algorithm. 19//config: the Linux clock adjustment algorithm.
20 20
21//applet:IF_ADJTIMEX(APPLET(adjtimex, BB_DIR_SBIN, BB_SUID_DROP)) 21//applet:IF_ADJTIMEX(APPLET(adjtimex, BB_DIR_SBIN, BB_SUID_DROP))
22 22
diff --git a/miscutils/bbconfig.c b/miscutils/bbconfig.c
index faaacad18..045aca211 100644
--- a/miscutils/bbconfig.c
+++ b/miscutils/bbconfig.c
@@ -5,22 +5,22 @@
5//config: bool "bbconfig (9.7 kb)" 5//config: bool "bbconfig (9.7 kb)"
6//config: default n 6//config: default n
7//config: help 7//config: help
8//config: The bbconfig applet will print the config file with which 8//config: The bbconfig applet will print the config file with which
9//config: busybox was built. 9//config: busybox was built.
10//config: 10//config:
11//config:config FEATURE_COMPRESS_BBCONFIG 11//config:config FEATURE_COMPRESS_BBCONFIG
12//config: bool "Compress bbconfig data" 12//config: bool "Compress bbconfig data"
13//config: default y 13//config: default y
14//config: depends on BBCONFIG 14//config: depends on BBCONFIG
15//config: help 15//config: help
16//config: Store bbconfig data in compressed form, uncompress them on-the-fly 16//config: Store bbconfig data in compressed form, uncompress them on-the-fly
17//config: before output. 17//config: before output.
18//config: 18//config:
19//config: If you have a really tiny busybox with few applets enabled (and 19//config: If you have a really tiny busybox with few applets enabled (and
20//config: bunzip2 isn't one of them), the overhead of the decompressor might 20//config: bunzip2 isn't one of them), the overhead of the decompressor might
21//config: be noticeable. Also, if you run executables directly from ROM 21//config: be noticeable. Also, if you run executables directly from ROM
22//config: and have very little memory, this might not be a win. Otherwise, 22//config: and have very little memory, this might not be a win. Otherwise,
23//config: you probably want this. 23//config: you probably want this.
24 24
25//applet:IF_BBCONFIG(APPLET(bbconfig, BB_DIR_BIN, BB_SUID_DROP)) 25//applet:IF_BBCONFIG(APPLET(bbconfig, BB_DIR_BIN, BB_SUID_DROP))
26 26
diff --git a/miscutils/beep.c b/miscutils/beep.c
index 782656fc5..b9b62f79b 100644
--- a/miscutils/beep.c
+++ b/miscutils/beep.c
@@ -12,7 +12,7 @@
12//config: default y 12//config: default y
13//config: select PLATFORM_LINUX 13//config: select PLATFORM_LINUX
14//config: help 14//config: help
15//config: The beep applets beeps in a given freq/Hz. 15//config: The beep applets beeps in a given freq/Hz.
16//config: 16//config:
17//config:config FEATURE_BEEP_FREQ 17//config:config FEATURE_BEEP_FREQ
18//config: int "default frequency" 18//config: int "default frequency"
@@ -20,7 +20,7 @@
20//config: default 4000 20//config: default 4000
21//config: depends on BEEP 21//config: depends on BEEP
22//config: help 22//config: help
23//config: Frequency for default beep. 23//config: Frequency for default beep.
24//config: 24//config:
25//config:config FEATURE_BEEP_LENGTH_MS 25//config:config FEATURE_BEEP_LENGTH_MS
26//config: int "default length" 26//config: int "default length"
@@ -28,7 +28,7 @@
28//config: default 30 28//config: default 30
29//config: depends on BEEP 29//config: depends on BEEP
30//config: help 30//config: help
31//config: Length in ms for default beep. 31//config: Length in ms for default beep.
32 32
33//applet:IF_BEEP(APPLET(beep, BB_DIR_USR_BIN, BB_SUID_DROP)) 33//applet:IF_BEEP(APPLET(beep, BB_DIR_USR_BIN, BB_SUID_DROP))
34 34
diff --git a/miscutils/chat.c b/miscutils/chat.c
index a1dc753bb..216a899a0 100644
--- a/miscutils/chat.c
+++ b/miscutils/chat.c
@@ -11,68 +11,68 @@
11//config: bool "chat (6.6 kb)" 11//config: bool "chat (6.6 kb)"
12//config: default y 12//config: default y
13//config: help 13//config: help
14//config: Simple chat utility. 14//config: Simple chat utility.
15//config: 15//config:
16//config:config FEATURE_CHAT_NOFAIL 16//config:config FEATURE_CHAT_NOFAIL
17//config: bool "Enable NOFAIL expect strings" 17//config: bool "Enable NOFAIL expect strings"
18//config: depends on CHAT 18//config: depends on CHAT
19//config: default y 19//config: default y
20//config: help 20//config: help
21//config: When enabled expect strings which are started with a dash trigger 21//config: When enabled expect strings which are started with a dash trigger
22//config: no-fail mode. That is when expectation is not met within timeout 22//config: no-fail mode. That is when expectation is not met within timeout
23//config: the script is not terminated but sends next SEND string and waits 23//config: the script is not terminated but sends next SEND string and waits
24//config: for next EXPECT string. This allows to compose far more flexible 24//config: for next EXPECT string. This allows to compose far more flexible
25//config: scripts. 25//config: scripts.
26//config: 26//config:
27//config:config FEATURE_CHAT_TTY_HIFI 27//config:config FEATURE_CHAT_TTY_HIFI
28//config: bool "Force STDIN to be a TTY" 28//config: bool "Force STDIN to be a TTY"
29//config: depends on CHAT 29//config: depends on CHAT
30//config: default n 30//config: default n
31//config: help 31//config: help
32//config: Original chat always treats STDIN as a TTY device and sets for it 32//config: Original chat always treats STDIN as a TTY device and sets for it
33//config: so-called raw mode. This option turns on such behaviour. 33//config: so-called raw mode. This option turns on such behaviour.
34//config: 34//config:
35//config:config FEATURE_CHAT_IMPLICIT_CR 35//config:config FEATURE_CHAT_IMPLICIT_CR
36//config: bool "Enable implicit Carriage Return" 36//config: bool "Enable implicit Carriage Return"
37//config: depends on CHAT 37//config: depends on CHAT
38//config: default y 38//config: default y
39//config: help 39//config: help
40//config: When enabled make chat to terminate all SEND strings with a "\r" 40//config: When enabled make chat to terminate all SEND strings with a "\r"
41//config: unless "\c" is met anywhere in the string. 41//config: unless "\c" is met anywhere in the string.
42//config: 42//config:
43//config:config FEATURE_CHAT_SWALLOW_OPTS 43//config:config FEATURE_CHAT_SWALLOW_OPTS
44//config: bool "Swallow options" 44//config: bool "Swallow options"
45//config: depends on CHAT 45//config: depends on CHAT
46//config: default y 46//config: default y
47//config: help 47//config: help
48//config: Busybox chat require no options. To make it not fail when used 48//config: Busybox chat require no options. To make it not fail when used
49//config: in place of original chat (which has a bunch of options) turn 49//config: in place of original chat (which has a bunch of options) turn
50//config: this on. 50//config: this on.
51//config: 51//config:
52//config:config FEATURE_CHAT_SEND_ESCAPES 52//config:config FEATURE_CHAT_SEND_ESCAPES
53//config: bool "Support weird SEND escapes" 53//config: bool "Support weird SEND escapes"
54//config: depends on CHAT 54//config: depends on CHAT
55//config: default y 55//config: default y
56//config: help 56//config: help
57//config: Original chat uses some escape sequences in SEND arguments which 57//config: Original chat uses some escape sequences in SEND arguments which
58//config: are not sent to device but rather performs special actions. 58//config: are not sent to device but rather performs special actions.
59//config: E.g. "\K" means to send a break sequence to device. 59//config: E.g. "\K" means to send a break sequence to device.
60//config: "\d" delays execution for a second, "\p" -- for a 1/100 of second. 60//config: "\d" delays execution for a second, "\p" -- for a 1/100 of second.
61//config: Before turning this option on think twice: do you really need them? 61//config: Before turning this option on think twice: do you really need them?
62//config: 62//config:
63//config:config FEATURE_CHAT_VAR_ABORT_LEN 63//config:config FEATURE_CHAT_VAR_ABORT_LEN
64//config: bool "Support variable-length ABORT conditions" 64//config: bool "Support variable-length ABORT conditions"
65//config: depends on CHAT 65//config: depends on CHAT
66//config: default y 66//config: default y
67//config: help 67//config: help
68//config: Original chat uses fixed 50-bytes length ABORT conditions. Say N here. 68//config: Original chat uses fixed 50-bytes length ABORT conditions. Say N here.
69//config: 69//config:
70//config:config FEATURE_CHAT_CLR_ABORT 70//config:config FEATURE_CHAT_CLR_ABORT
71//config: bool "Support revoking of ABORT conditions" 71//config: bool "Support revoking of ABORT conditions"
72//config: depends on CHAT 72//config: depends on CHAT
73//config: default y 73//config: default y
74//config: help 74//config: help
75//config: Support CLR_ABORT directive. 75//config: Support CLR_ABORT directive.
76 76
77//applet:IF_CHAT(APPLET(chat, BB_DIR_USR_SBIN, BB_SUID_DROP)) 77//applet:IF_CHAT(APPLET(chat, BB_DIR_USR_SBIN, BB_SUID_DROP))
78 78
diff --git a/miscutils/conspy.c b/miscutils/conspy.c
index 22a6918e1..47b9e7207 100644
--- a/miscutils/conspy.c
+++ b/miscutils/conspy.c
@@ -14,10 +14,10 @@
14//config: default y 14//config: default y
15//config: select PLATFORM_LINUX 15//config: select PLATFORM_LINUX
16//config: help 16//config: help
17//config: A text-mode VNC like program for Linux virtual terminals. 17//config: A text-mode VNC like program for Linux virtual terminals.
18//config: example: conspy NUM shared access to console num 18//config: example: conspy NUM shared access to console num
19//config: or conspy -nd NUM screenshot of console num 19//config: or conspy -nd NUM screenshot of console num
20//config: or conspy -cs NUM poor man's GNU screen like 20//config: or conspy -cs NUM poor man's GNU screen like
21 21
22//applet:IF_CONSPY(APPLET(conspy, BB_DIR_BIN, BB_SUID_DROP)) 22//applet:IF_CONSPY(APPLET(conspy, BB_DIR_BIN, BB_SUID_DROP))
23 23
diff --git a/miscutils/crond.c b/miscutils/crond.c
index 8d24f294c..6c54e1a8f 100644
--- a/miscutils/crond.c
+++ b/miscutils/crond.c
@@ -13,50 +13,50 @@
13//config: default y 13//config: default y
14//config: select FEATURE_SYSLOG 14//config: select FEATURE_SYSLOG
15//config: help 15//config: help
16//config: Crond is a background daemon that parses individual crontab 16//config: Crond is a background daemon that parses individual crontab
17//config: files and executes commands on behalf of the users in question. 17//config: files and executes commands on behalf of the users in question.
18//config: This is a port of dcron from slackware. It uses files of the 18//config: This is a port of dcron from slackware. It uses files of the
19//config: format /var/spool/cron/crontabs/<username> files, for example: 19//config: format /var/spool/cron/crontabs/<username> files, for example:
20//config: $ cat /var/spool/cron/crontabs/root 20//config: $ cat /var/spool/cron/crontabs/root
21//config: # Run daily cron jobs at 4:40 every day: 21//config: # Run daily cron jobs at 4:40 every day:
22//config: 40 4 * * * /etc/cron/daily > /dev/null 2>&1 22//config: 40 4 * * * /etc/cron/daily > /dev/null 2>&1
23//config: 23//config:
24//config:config FEATURE_CROND_D 24//config:config FEATURE_CROND_D
25//config: bool "Support option -d to redirect output to stderr" 25//config: bool "Support option -d to redirect output to stderr"
26//config: depends on CROND 26//config: depends on CROND
27//config: default y 27//config: default y
28//config: help 28//config: help
29//config: -d N sets loglevel (0:most verbose) and directs all output to stderr. 29//config: -d N sets loglevel (0:most verbose) and directs all output to stderr.
30//config: 30//config:
31//config:config FEATURE_CROND_CALL_SENDMAIL 31//config:config FEATURE_CROND_CALL_SENDMAIL
32//config: bool "Report command output via email (using sendmail)" 32//config: bool "Report command output via email (using sendmail)"
33//config: default y 33//config: default y
34//config: depends on CROND 34//config: depends on CROND
35//config: help 35//config: help
36//config: Command output will be sent to corresponding user via email. 36//config: Command output will be sent to corresponding user via email.
37//config: 37//config:
38//config:config FEATURE_CROND_SPECIAL_TIMES 38//config:config FEATURE_CROND_SPECIAL_TIMES
39//config: bool "Support special times (@reboot, @daily, etc) in crontabs" 39//config: bool "Support special times (@reboot, @daily, etc) in crontabs"
40//config: default y 40//config: default y
41//config: depends on CROND 41//config: depends on CROND
42//config: help 42//config: help
43//config: string meaning 43//config: string meaning
44//config: ------ ------- 44//config: ------ -------
45//config: @reboot Run once, at startup 45//config: @reboot Run once, at startup
46//config: @yearly Run once a year: "0 0 1 1 *" 46//config: @yearly Run once a year: "0 0 1 1 *"
47//config: @annually Same as @yearly: "0 0 1 1 *" 47//config: @annually Same as @yearly: "0 0 1 1 *"
48//config: @monthly Run once a month: "0 0 1 * *" 48//config: @monthly Run once a month: "0 0 1 * *"
49//config: @weekly Run once a week: "0 0 * * 0" 49//config: @weekly Run once a week: "0 0 * * 0"
50//config: @daily Run once a day: "0 0 * * *" 50//config: @daily Run once a day: "0 0 * * *"
51//config: @midnight Same as @daily: "0 0 * * *" 51//config: @midnight Same as @daily: "0 0 * * *"
52//config: @hourly Run once an hour: "0 * * * *" 52//config: @hourly Run once an hour: "0 * * * *"
53//config: 53//config:
54//config:config FEATURE_CROND_DIR 54//config:config FEATURE_CROND_DIR
55//config: string "crond spool directory" 55//config: string "crond spool directory"
56//config: default "/var/spool/cron" 56//config: default "/var/spool/cron"
57//config: depends on CROND || CRONTAB 57//config: depends on CROND || CRONTAB
58//config: help 58//config: help
59//config: Location of crond spool. 59//config: Location of crond spool.
60 60
61//applet:IF_CROND(APPLET(crond, BB_DIR_USR_SBIN, BB_SUID_DROP)) 61//applet:IF_CROND(APPLET(crond, BB_DIR_USR_SBIN, BB_SUID_DROP))
62 62
diff --git a/miscutils/crontab.c b/miscutils/crontab.c
index 409307567..23cb54887 100644
--- a/miscutils/crontab.c
+++ b/miscutils/crontab.c
@@ -13,10 +13,10 @@
13//config: bool "crontab (9.7 kb)" 13//config: bool "crontab (9.7 kb)"
14//config: default y 14//config: default y
15//config: help 15//config: help
16//config: Crontab manipulates the crontab for a particular user. Only 16//config: Crontab manipulates the crontab for a particular user. Only
17//config: the superuser may specify a different user and/or crontab directory. 17//config: the superuser may specify a different user and/or crontab directory.
18//config: Note that Busybox binary must be setuid root for this applet to 18//config: Note that Busybox binary must be setuid root for this applet to
19//config: work properly. 19//config: work properly.
20 20
21/* Needs to be run by root or be suid root - needs to change /var/spool/cron* files: */ 21/* Needs to be run by root or be suid root - needs to change /var/spool/cron* files: */
22//applet:IF_CRONTAB(APPLET(crontab, BB_DIR_USR_BIN, BB_SUID_REQUIRE)) 22//applet:IF_CRONTAB(APPLET(crontab, BB_DIR_USR_BIN, BB_SUID_REQUIRE))
diff --git a/miscutils/dc.c b/miscutils/dc.c
index d4cd49998..b922a7184 100644
--- a/miscutils/dc.c
+++ b/miscutils/dc.c
@@ -6,16 +6,16 @@
6//config: bool "dc (4.2 kb)" 6//config: bool "dc (4.2 kb)"
7//config: default y 7//config: default y
8//config: help 8//config: help
9//config: Dc is a reverse-polish desk calculator which supports unlimited 9//config: Dc is a reverse-polish desk calculator which supports unlimited
10//config: precision arithmetic. 10//config: precision arithmetic.
11//config: 11//config:
12//config:config FEATURE_DC_LIBM 12//config:config FEATURE_DC_LIBM
13//config: bool "Enable power and exp functions (requires libm)" 13//config: bool "Enable power and exp functions (requires libm)"
14//config: default y 14//config: default y
15//config: depends on DC 15//config: depends on DC
16//config: help 16//config: help
17//config: Enable power and exp functions. 17//config: Enable power and exp functions.
18//config: NOTE: This will require libm to be present for linking. 18//config: NOTE: This will require libm to be present for linking.
19 19
20//applet:IF_DC(APPLET(dc, BB_DIR_USR_BIN, BB_SUID_DROP)) 20//applet:IF_DC(APPLET(dc, BB_DIR_USR_BIN, BB_SUID_DROP))
21 21
diff --git a/miscutils/devfsd.c b/miscutils/devfsd.c
index 334f1071b..814714f53 100644
--- a/miscutils/devfsd.c
+++ b/miscutils/devfsd.c
@@ -59,56 +59,55 @@
59//config: select PLATFORM_LINUX 59//config: select PLATFORM_LINUX
60//config: select FEATURE_SYSLOG 60//config: select FEATURE_SYSLOG
61//config: help 61//config: help
62//config: This is deprecated and should NOT be used anymore. 62//config: This is deprecated and should NOT be used anymore.
63//config: Use linux >= 2.6 (optionally with hotplug) and mdev instead! 63//config: Use linux >= 2.6 (optionally with hotplug) and mdev instead!
64//config: See docs/mdev.txt for detailed instructions on how to use mdev 64//config: See docs/mdev.txt for detailed instructions on how to use mdev
65//config: instead. 65//config: instead.
66//config: 66//config:
67//config: Provides compatibility with old device names on a devfs systems. 67//config: Provides compatibility with old device names on a devfs systems.
68//config: You should set it to true if you have devfs enabled. 68//config: You should set it to true if you have devfs enabled.
69//config: The following keywords in devsfd.conf are supported: 69//config: The following keywords in devsfd.conf are supported:
70//config: "CLEAR_CONFIG", "INCLUDE", "OPTIONAL_INCLUDE", "RESTORE", 70//config: "CLEAR_CONFIG", "INCLUDE", "OPTIONAL_INCLUDE", "RESTORE",
71//config: "PERMISSIONS", "EXECUTE", "COPY", "IGNORE", 71//config: "PERMISSIONS", "EXECUTE", "COPY", "IGNORE",
72//config: "MKOLDCOMPAT", "MKNEWCOMPAT","RMOLDCOMPAT", "RMNEWCOMPAT". 72//config: "MKOLDCOMPAT", "MKNEWCOMPAT","RMOLDCOMPAT", "RMNEWCOMPAT".
73//config: 73//config:
74//config: But only if they are written UPPERCASE!!!!!!!! 74//config: But only if they are written UPPERCASE!!!!!!!!
75//config: 75//config:
76//config:config DEVFSD_MODLOAD 76//config:config DEVFSD_MODLOAD
77//config: bool "Adds support for MODLOAD keyword in devsfd.conf" 77//config: bool "Adds support for MODLOAD keyword in devsfd.conf"
78//config: default y 78//config: default y
79//config: depends on DEVFSD 79//config: depends on DEVFSD
80//config: help 80//config: help
81//config: This actually doesn't work with busybox modutils but needs 81//config: This actually doesn't work with busybox modutils but needs
82//config: the external modutils. 82//config: the external modutils.
83//config: 83//config:
84//config:config DEVFSD_FG_NP 84//config:config DEVFSD_FG_NP
85//config: bool "Enable the -fg and -np options" 85//config: bool "Enable the -fg and -np options"
86//config: default y 86//config: default y
87//config: depends on DEVFSD 87//config: depends on DEVFSD
88//config: help 88//config: help
89//config: -fg Run the daemon in the foreground. 89//config: -fg Run the daemon in the foreground.
90//config: -np Exit after parsing the configuration file. 90//config: -np Exit after parsing config. Do not poll for events.
91//config: Do not poll for events.
92//config: 91//config:
93//config:config DEVFSD_VERBOSE 92//config:config DEVFSD_VERBOSE
94//config: bool "Increases logging (and size)" 93//config: bool "Increases logging (and size)"
95//config: default y 94//config: default y
96//config: depends on DEVFSD 95//config: depends on DEVFSD
97//config: help 96//config: help
98//config: Increases logging to stderr or syslog. 97//config: Increases logging to stderr or syslog.
99//config: 98//config:
100//config:config FEATURE_DEVFS 99//config:config FEATURE_DEVFS
101//config: bool "Use devfs names for all devices (obsolete)" 100//config: bool "Use devfs names for all devices (obsolete)"
102//config: default n 101//config: default n
103//config: select PLATFORM_LINUX 102//config: select PLATFORM_LINUX
104//config: help 103//config: help
105//config: This is obsolete and should NOT be used anymore. 104//config: This is obsolete and should NOT be used anymore.
106//config: Use linux >= 2.6 (optionally with hotplug) and mdev instead! 105//config: Use linux >= 2.6 (optionally with hotplug) and mdev instead!
107//config: 106//config:
108//config: For legacy systems -- if there is no way around devfsd -- this 107//config: For legacy systems -- if there is no way around devfsd -- this
109//config: tells busybox to look for names like /dev/loop/0 instead of 108//config: tells busybox to look for names like /dev/loop/0 instead of
110//config: /dev/loop0. If your /dev directory has normal names instead of 109//config: /dev/loop0. If your /dev directory has normal names instead of
111//config: devfs names, you don't want this. 110//config: devfs names, you don't want this.
112 111
113//applet:IF_DEVFSD(APPLET(devfsd, BB_DIR_SBIN, BB_SUID_DROP)) 112//applet:IF_DEVFSD(APPLET(devfsd, BB_DIR_SBIN, BB_SUID_DROP))
114 113
diff --git a/miscutils/devmem.c b/miscutils/devmem.c
index ec911a707..624054770 100644
--- a/miscutils/devmem.c
+++ b/miscutils/devmem.c
@@ -7,8 +7,8 @@
7//config: bool "devmem (2.5 kb)" 7//config: bool "devmem (2.5 kb)"
8//config: default y 8//config: default y
9//config: help 9//config: help
10//config: devmem is a small program that reads and writes from physical 10//config: devmem is a small program that reads and writes from physical
11//config: memory using /dev/mem. 11//config: memory using /dev/mem.
12 12
13//applet:IF_DEVMEM(APPLET(devmem, BB_DIR_SBIN, BB_SUID_DROP)) 13//applet:IF_DEVMEM(APPLET(devmem, BB_DIR_SBIN, BB_SUID_DROP))
14 14
diff --git a/miscutils/fbsplash.c b/miscutils/fbsplash.c
index 4c891deb0..9ac91e01e 100644
--- a/miscutils/fbsplash.c
+++ b/miscutils/fbsplash.c
@@ -25,20 +25,20 @@
25//config: default y 25//config: default y
26//config: select PLATFORM_LINUX 26//config: select PLATFORM_LINUX
27//config: help 27//config: help
28//config: Shows splash image and progress bar on framebuffer device. 28//config: Shows splash image and progress bar on framebuffer device.
29//config: Can be used during boot phase of an embedded device. ~2kb. 29//config: Can be used during boot phase of an embedded device.
30//config: Usage: 30//config: Usage:
31//config: - use kernel option 'vga=xxx' or otherwise enable fb device. 31//config: - use kernel option 'vga=xxx' or otherwise enable fb device.
32//config: - put somewhere fbsplash.cfg file and an image in .ppm format. 32//config: - put somewhere fbsplash.cfg file and an image in .ppm format.
33//config: - $ setsid fbsplash [params] & 33//config: - $ setsid fbsplash [params] &
34//config: -c: hide cursor 34//config: -c: hide cursor
35//config: -d /dev/fbN: framebuffer device (if not /dev/fb0) 35//config: -d /dev/fbN: framebuffer device (if not /dev/fb0)
36//config: -s path_to_image_file (can be "-" for stdin) 36//config: -s path_to_image_file (can be "-" for stdin)
37//config: -i path_to_cfg_file (can be "-" for stdin) 37//config: -i path_to_cfg_file (can be "-" for stdin)
38//config: -f path_to_fifo (can be "-" for stdin) 38//config: -f path_to_fifo (can be "-" for stdin)
39//config: - if you want to run it only in presence of kernel parameter: 39//config: - if you want to run it only in presence of kernel parameter:
40//config: grep -q "fbsplash=on" </proc/cmdline && setsid fbsplash [params] & 40//config: grep -q "fbsplash=on" </proc/cmdline && setsid fbsplash [params] &
41//config: - commands for fifo: 41//config: - commands for fifo:
42//config: "NN" (ASCII decimal number) - percentage to show on progress bar 42//config: "NN" (ASCII decimal number) - percentage to show on progress bar
43//config: "exit" - well you guessed it 43//config: "exit" - well you guessed it
44 44
diff --git a/miscutils/flash_eraseall.c b/miscutils/flash_eraseall.c
index b64fda396..af9ebea24 100644
--- a/miscutils/flash_eraseall.c
+++ b/miscutils/flash_eraseall.c
@@ -13,8 +13,8 @@
13//config: bool "flash_eraseall (5.5 kb)" 13//config: bool "flash_eraseall (5.5 kb)"
14//config: default n # doesn't build on Ubuntu 8.04 14//config: default n # doesn't build on Ubuntu 8.04
15//config: help 15//config: help
16//config: The flash_eraseall binary from mtd-utils as of git head c4c6a59eb. 16//config: The flash_eraseall binary from mtd-utils as of git head c4c6a59eb.
17//config: This utility is used to erase the whole MTD device. 17//config: This utility is used to erase the whole MTD device.
18 18
19//applet:IF_FLASH_ERASEALL(APPLET(flash_eraseall, BB_DIR_USR_SBIN, BB_SUID_DROP)) 19//applet:IF_FLASH_ERASEALL(APPLET(flash_eraseall, BB_DIR_USR_SBIN, BB_SUID_DROP))
20 20
diff --git a/miscutils/flash_lock_unlock.c b/miscutils/flash_lock_unlock.c
index 00de3da06..374eed5f6 100644
--- a/miscutils/flash_lock_unlock.c
+++ b/miscutils/flash_lock_unlock.c
@@ -7,15 +7,15 @@
7//config: bool "flash_lock (2.1 kb)" 7//config: bool "flash_lock (2.1 kb)"
8//config: default n # doesn't build on Ubuntu 8.04 8//config: default n # doesn't build on Ubuntu 8.04
9//config: help 9//config: help
10//config: The flash_lock binary from mtd-utils as of git head 5ec0c10d0. This 10//config: The flash_lock binary from mtd-utils as of git head 5ec0c10d0. This
11//config: utility locks part or all of the flash device. 11//config: utility locks part or all of the flash device.
12//config: 12//config:
13//config:config FLASH_UNLOCK 13//config:config FLASH_UNLOCK
14//config: bool "flash_unlock (1.3 kb)" 14//config: bool "flash_unlock (1.3 kb)"
15//config: default n # doesn't build on Ubuntu 8.04 15//config: default n # doesn't build on Ubuntu 8.04
16//config: help 16//config: help
17//config: The flash_unlock binary from mtd-utils as of git head 5ec0c10d0. This 17//config: The flash_unlock binary from mtd-utils as of git head 5ec0c10d0. This
18//config: utility unlocks part or all of the flash device. 18//config: utility unlocks part or all of the flash device.
19 19
20// APPLET_ODDNAME:name main location suid_type help 20// APPLET_ODDNAME:name main location suid_type help
21//applet:IF_FLASH_LOCK( APPLET_ODDNAME(flash_lock, flash_lock_unlock, BB_DIR_USR_SBIN, BB_SUID_DROP, flash_lock)) 21//applet:IF_FLASH_LOCK( APPLET_ODDNAME(flash_lock, flash_lock_unlock, BB_DIR_USR_SBIN, BB_SUID_DROP, flash_lock))
diff --git a/miscutils/flashcp.c b/miscutils/flashcp.c
index f6f61cf16..d4ac62df4 100644
--- a/miscutils/flashcp.c
+++ b/miscutils/flashcp.c
@@ -10,8 +10,8 @@
10//config: bool "flashcp (5.4 kb)" 10//config: bool "flashcp (5.4 kb)"
11//config: default n # doesn't build on Ubuntu 8.04 11//config: default n # doesn't build on Ubuntu 8.04
12//config: help 12//config: help
13//config: The flashcp binary, inspired by mtd-utils as of git head 5eceb74f7. 13//config: The flashcp binary, inspired by mtd-utils as of git head 5eceb74f7.
14//config: This utility is used to copy images into a MTD device. 14//config: This utility is used to copy images into a MTD device.
15 15
16//applet:IF_FLASHCP(APPLET(flashcp, BB_DIR_USR_SBIN, BB_SUID_DROP)) 16//applet:IF_FLASHCP(APPLET(flashcp, BB_DIR_USR_SBIN, BB_SUID_DROP))
17 17
diff --git a/miscutils/hdparm.c b/miscutils/hdparm.c
index af7fb99e9..0bbe6ca10 100644
--- a/miscutils/hdparm.c
+++ b/miscutils/hdparm.c
@@ -16,58 +16,58 @@
16//config: default y 16//config: default y
17//config: select PLATFORM_LINUX 17//config: select PLATFORM_LINUX
18//config: help 18//config: help
19//config: Get/Set hard drive parameters. Primarily intended for ATA 19//config: Get/Set hard drive parameters. Primarily intended for ATA
20//config: drives. 20//config: drives.
21//config: 21//config:
22//config:config FEATURE_HDPARM_GET_IDENTITY 22//config:config FEATURE_HDPARM_GET_IDENTITY
23//config: bool "Support obtaining detailed information directly from drives" 23//config: bool "Support obtaining detailed information directly from drives"
24//config: default y 24//config: default y
25//config: depends on HDPARM 25//config: depends on HDPARM
26//config: help 26//config: help
27//config: Enable the -I and -i options to obtain detailed information 27//config: Enable the -I and -i options to obtain detailed information
28//config: directly from drives about their capabilities and supported ATA 28//config: directly from drives about their capabilities and supported ATA
29//config: feature set. If no device name is specified, hdparm will read 29//config: feature set. If no device name is specified, hdparm will read
30//config: identify data from stdin. Enabling this option will add about 16k... 30//config: identify data from stdin. Enabling this option will add about 16k...
31//config: 31//config:
32//config:config FEATURE_HDPARM_HDIO_SCAN_HWIF 32//config:config FEATURE_HDPARM_HDIO_SCAN_HWIF
33//config: bool "Register an IDE interface (DANGEROUS)" 33//config: bool "Register an IDE interface (DANGEROUS)"
34//config: default y 34//config: default y
35//config: depends on HDPARM 35//config: depends on HDPARM
36//config: help 36//config: help
37//config: Enable the 'hdparm -R' option to register an IDE interface. 37//config: Enable the 'hdparm -R' option to register an IDE interface.
38//config: This is dangerous stuff, so you should probably say N. 38//config: This is dangerous stuff, so you should probably say N.
39//config: 39//config:
40//config:config FEATURE_HDPARM_HDIO_UNREGISTER_HWIF 40//config:config FEATURE_HDPARM_HDIO_UNREGISTER_HWIF
41//config: bool "Un-register an IDE interface (DANGEROUS)" 41//config: bool "Un-register an IDE interface (DANGEROUS)"
42//config: default y 42//config: default y
43//config: depends on HDPARM 43//config: depends on HDPARM
44//config: help 44//config: help
45//config: Enable the 'hdparm -U' option to un-register an IDE interface. 45//config: Enable the 'hdparm -U' option to un-register an IDE interface.
46//config: This is dangerous stuff, so you should probably say N. 46//config: This is dangerous stuff, so you should probably say N.
47//config: 47//config:
48//config:config FEATURE_HDPARM_HDIO_DRIVE_RESET 48//config:config FEATURE_HDPARM_HDIO_DRIVE_RESET
49//config: bool "Perform device reset (DANGEROUS)" 49//config: bool "Perform device reset (DANGEROUS)"
50//config: default y 50//config: default y
51//config: depends on HDPARM 51//config: depends on HDPARM
52//config: help 52//config: help
53//config: Enable the 'hdparm -w' option to perform a device reset. 53//config: Enable the 'hdparm -w' option to perform a device reset.
54//config: This is dangerous stuff, so you should probably say N. 54//config: This is dangerous stuff, so you should probably say N.
55//config: 55//config:
56//config:config FEATURE_HDPARM_HDIO_TRISTATE_HWIF 56//config:config FEATURE_HDPARM_HDIO_TRISTATE_HWIF
57//config: bool "Tristate device for hotswap (DANGEROUS)" 57//config: bool "Tristate device for hotswap (DANGEROUS)"
58//config: default y 58//config: default y
59//config: depends on HDPARM 59//config: depends on HDPARM
60//config: help 60//config: help
61//config: Enable the 'hdparm -x' option to tristate device for hotswap, 61//config: Enable the 'hdparm -x' option to tristate device for hotswap,
62//config: and the '-b' option to get/set bus state. This is dangerous 62//config: and the '-b' option to get/set bus state. This is dangerous
63//config: stuff, so you should probably say N. 63//config: stuff, so you should probably say N.
64//config: 64//config:
65//config:config FEATURE_HDPARM_HDIO_GETSET_DMA 65//config:config FEATURE_HDPARM_HDIO_GETSET_DMA
66//config: bool "Get/set using_dma flag" 66//config: bool "Get/set using_dma flag"
67//config: default y 67//config: default y
68//config: depends on HDPARM 68//config: depends on HDPARM
69//config: help 69//config: help
70//config: Enable the 'hdparm -d' option to get/set using_dma flag. 70//config: Enable the 'hdparm -d' option to get/set using_dma flag.
71 71
72//applet:IF_HDPARM(APPLET(hdparm, BB_DIR_SBIN, BB_SUID_DROP)) 72//applet:IF_HDPARM(APPLET(hdparm, BB_DIR_SBIN, BB_SUID_DROP))
73 73
diff --git a/miscutils/i2c_tools.c b/miscutils/i2c_tools.c
index 578613978..ca2580e92 100644
--- a/miscutils/i2c_tools.c
+++ b/miscutils/i2c_tools.c
@@ -14,28 +14,28 @@
14//config: default y 14//config: default y
15//config: select PLATFORM_LINUX 15//config: select PLATFORM_LINUX
16//config: help 16//config: help
17//config: Read from I2C/SMBus chip registers. 17//config: Read from I2C/SMBus chip registers.
18//config: 18//config:
19//config:config I2CSET 19//config:config I2CSET
20//config: bool "i2cset (6.9 kb)" 20//config: bool "i2cset (6.9 kb)"
21//config: default y 21//config: default y
22//config: select PLATFORM_LINUX 22//config: select PLATFORM_LINUX
23//config: help 23//config: help
24//config: Set I2C registers. 24//config: Set I2C registers.
25//config: 25//config:
26//config:config I2CDUMP 26//config:config I2CDUMP
27//config: bool "i2cdump (7.2 kb)" 27//config: bool "i2cdump (7.2 kb)"
28//config: default y 28//config: default y
29//config: select PLATFORM_LINUX 29//config: select PLATFORM_LINUX
30//config: help 30//config: help
31//config: Examine I2C registers. 31//config: Examine I2C registers.
32//config: 32//config:
33//config:config I2CDETECT 33//config:config I2CDETECT
34//config: bool "i2cdetect (7.2 kb)" 34//config: bool "i2cdetect (7.2 kb)"
35//config: default y 35//config: default y
36//config: select PLATFORM_LINUX 36//config: select PLATFORM_LINUX
37//config: help 37//config: help
38//config: Detect I2C chips. 38//config: Detect I2C chips.
39//config: 39//config:
40 40
41//applet:IF_I2CGET(APPLET(i2cget, BB_DIR_USR_SBIN, BB_SUID_DROP)) 41//applet:IF_I2CGET(APPLET(i2cget, BB_DIR_USR_SBIN, BB_SUID_DROP))
diff --git a/miscutils/inotifyd.c b/miscutils/inotifyd.c
index 2e0163e35..0060797ed 100644
--- a/miscutils/inotifyd.c
+++ b/miscutils/inotifyd.c
@@ -30,8 +30,8 @@
30//config: bool "inotifyd (3.5 kb)" 30//config: bool "inotifyd (3.5 kb)"
31//config: default n # doesn't build on Knoppix 5 31//config: default n # doesn't build on Knoppix 5
32//config: help 32//config: help
33//config: Simple inotify daemon. Reports filesystem changes. Requires 33//config: Simple inotify daemon. Reports filesystem changes. Requires
34//config: kernel >= 2.6.13 34//config: kernel >= 2.6.13
35 35
36//applet:IF_INOTIFYD(APPLET(inotifyd, BB_DIR_SBIN, BB_SUID_DROP)) 36//applet:IF_INOTIFYD(APPLET(inotifyd, BB_DIR_SBIN, BB_SUID_DROP))
37 37
diff --git a/miscutils/less.c b/miscutils/less.c
index a4ef1518f..c1d5e1b39 100644
--- a/miscutils/less.c
+++ b/miscutils/less.c
@@ -25,8 +25,8 @@
25//config: bool "less (15 kb)" 25//config: bool "less (15 kb)"
26//config: default y 26//config: default y
27//config: help 27//config: help
28//config: 'less' is a pager, meaning that it displays text files. It possesses 28//config: 'less' is a pager, meaning that it displays text files. It possesses
29//config: a wide array of features, and is an improvement over 'more'. 29//config: a wide array of features, and is an improvement over 'more'.
30//config: 30//config:
31//config:config FEATURE_LESS_MAXLINES 31//config:config FEATURE_LESS_MAXLINES
32//config: int "Max number of input lines less will try to eat" 32//config: int "Max number of input lines less will try to eat"
@@ -38,64 +38,64 @@
38//config: default y 38//config: default y
39//config: depends on LESS 39//config: depends on LESS
40//config: help 40//config: help
41//config: This option adds the capability to search for matching left and right 41//config: This option adds the capability to search for matching left and right
42//config: brackets, facilitating programming. 42//config: brackets, facilitating programming.
43//config: 43//config:
44//config:config FEATURE_LESS_FLAGS 44//config:config FEATURE_LESS_FLAGS
45//config: bool "Enable -m/-M" 45//config: bool "Enable -m/-M"
46//config: default y 46//config: default y
47//config: depends on LESS 47//config: depends on LESS
48//config: help 48//config: help
49//config: The -M/-m flag enables a more sophisticated status line. 49//config: The -M/-m flag enables a more sophisticated status line.
50//config: 50//config:
51//config:config FEATURE_LESS_TRUNCATE 51//config:config FEATURE_LESS_TRUNCATE
52//config: bool "Enable -S" 52//config: bool "Enable -S"
53//config: default y 53//config: default y
54//config: depends on LESS 54//config: depends on LESS
55//config: help 55//config: help
56//config: The -S flag causes long lines to be truncated rather than 56//config: The -S flag causes long lines to be truncated rather than
57//config: wrapped. 57//config: wrapped.
58//config: 58//config:
59//config:config FEATURE_LESS_MARKS 59//config:config FEATURE_LESS_MARKS
60//config: bool "Enable marks" 60//config: bool "Enable marks"
61//config: default y 61//config: default y
62//config: depends on LESS 62//config: depends on LESS
63//config: help 63//config: help
64//config: Marks enable positions in a file to be stored for easy reference. 64//config: Marks enable positions in a file to be stored for easy reference.
65//config: 65//config:
66//config:config FEATURE_LESS_REGEXP 66//config:config FEATURE_LESS_REGEXP
67//config: bool "Enable regular expressions" 67//config: bool "Enable regular expressions"
68//config: default y 68//config: default y
69//config: depends on LESS 69//config: depends on LESS
70//config: help 70//config: help
71//config: Enable regular expressions, allowing complex file searches. 71//config: Enable regular expressions, allowing complex file searches.
72//config: 72//config:
73//config:config FEATURE_LESS_WINCH 73//config:config FEATURE_LESS_WINCH
74//config: bool "Enable automatic resizing on window size changes" 74//config: bool "Enable automatic resizing on window size changes"
75//config: default y 75//config: default y
76//config: depends on LESS 76//config: depends on LESS
77//config: help 77//config: help
78//config: Makes less track window size changes. 78//config: Makes less track window size changes.
79//config: 79//config:
80//config:config FEATURE_LESS_ASK_TERMINAL 80//config:config FEATURE_LESS_ASK_TERMINAL
81//config: bool "Use 'tell me cursor position' ESC sequence to measure window" 81//config: bool "Use 'tell me cursor position' ESC sequence to measure window"
82//config: default y 82//config: default y
83//config: depends on FEATURE_LESS_WINCH 83//config: depends on FEATURE_LESS_WINCH
84//config: help 84//config: help
85//config: Makes less track window size changes. 85//config: Makes less track window size changes.
86//config: If terminal size can't be retrieved and $LINES/$COLUMNS are not set, 86//config: If terminal size can't be retrieved and $LINES/$COLUMNS are not set,
87//config: this option makes less perform a last-ditch effort to find it: 87//config: this option makes less perform a last-ditch effort to find it:
88//config: position cursor to 999,999 and ask terminal to report real 88//config: position cursor to 999,999 and ask terminal to report real
89//config: cursor position using "ESC [ 6 n" escape sequence, then read stdin. 89//config: cursor position using "ESC [ 6 n" escape sequence, then read stdin.
90//config: This is not clean but helps a lot on serial lines and such. 90//config: This is not clean but helps a lot on serial lines and such.
91//config: 91//config:
92//config:config FEATURE_LESS_DASHCMD 92//config:config FEATURE_LESS_DASHCMD
93//config: bool "Enable flag changes ('-' command)" 93//config: bool "Enable flag changes ('-' command)"
94//config: default y 94//config: default y
95//config: depends on LESS 95//config: depends on LESS
96//config: help 96//config: help
97//config: This enables the ability to change command-line flags within 97//config: This enables the ability to change command-line flags within
98//config: less itself ('-' keyboard command). 98//config: less itself ('-' keyboard command).
99//config: 99//config:
100//config:config FEATURE_LESS_LINENUMS 100//config:config FEATURE_LESS_LINENUMS
101//config: bool "Enable -N (dynamic switching of line numbers)" 101//config: bool "Enable -N (dynamic switching of line numbers)"
diff --git a/miscutils/lsscsi.c b/miscutils/lsscsi.c
index 72fafefb0..b69ff1eef 100644
--- a/miscutils/lsscsi.c
+++ b/miscutils/lsscsi.c
@@ -11,10 +11,10 @@
11//config: default y 11//config: default y
12//config: #select PLATFORM_LINUX 12//config: #select PLATFORM_LINUX
13//config: help 13//config: help
14//config: lsscsi is a utility for displaying information about SCSI buses in the 14//config: lsscsi is a utility for displaying information about SCSI buses in the
15//config: system and devices connected to them. 15//config: system and devices connected to them.
16//config: 16//config:
17//config: This version uses sysfs (/sys/bus/scsi/devices) only. 17//config: This version uses sysfs (/sys/bus/scsi/devices) only.
18 18
19//applet:IF_LSSCSI(APPLET(lsscsi, BB_DIR_USR_BIN, BB_SUID_DROP)) 19//applet:IF_LSSCSI(APPLET(lsscsi, BB_DIR_USR_BIN, BB_SUID_DROP))
20 20
diff --git a/miscutils/makedevs.c b/miscutils/makedevs.c
index 5f8593a0c..c2f86df01 100644
--- a/miscutils/makedevs.c
+++ b/miscutils/makedevs.c
@@ -10,20 +10,20 @@
10//config: bool "makedevs (9.3 kb)" 10//config: bool "makedevs (9.3 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: 'makedevs' is a utility used to create a batch of devices with 13//config: 'makedevs' is a utility used to create a batch of devices with
14//config: one command. 14//config: one command.
15//config: 15//config:
16//config: There are two choices for command line behaviour, the interface 16//config: There are two choices for command line behaviour, the interface
17//config: as used by LEAF/Linux Router Project, or a device table file. 17//config: as used by LEAF/Linux Router Project, or a device table file.
18//config: 18//config:
19//config: 'leaf' is traditionally what busybox follows, it allows multiple 19//config: 'leaf' is traditionally what busybox follows, it allows multiple
20//config: devices of a particluar type to be created per command. 20//config: devices of a particluar type to be created per command.
21//config: e.g. /dev/hda[0-9] 21//config: e.g. /dev/hda[0-9]
22//config: Device properties are passed as command line arguments. 22//config: Device properties are passed as command line arguments.
23//config: 23//config:
24//config: 'table' reads device properties from a file or stdin, allowing 24//config: 'table' reads device properties from a file or stdin, allowing
25//config: a batch of unrelated devices to be made with one command. 25//config: a batch of unrelated devices to be made with one command.
26//config: User/group names are allowed as an alternative to uid/gid. 26//config: User/group names are allowed as an alternative to uid/gid.
27//config: 27//config:
28//config:choice 28//config:choice
29//config: prompt "Choose makedevs behaviour" 29//config: prompt "Choose makedevs behaviour"
diff --git a/miscutils/man.c b/miscutils/man.c
index de6ef1961..a16202f25 100644
--- a/miscutils/man.c
+++ b/miscutils/man.c
@@ -6,7 +6,7 @@
6//config: bool "man (27 kb)" 6//config: bool "man (27 kb)"
7//config: default y 7//config: default y
8//config: help 8//config: help
9//config: Format and display manual pages. 9//config: Format and display manual pages.
10 10
11//applet:IF_MAN(APPLET(man, BB_DIR_USR_BIN, BB_SUID_DROP)) 11//applet:IF_MAN(APPLET(man, BB_DIR_USR_BIN, BB_SUID_DROP))
12 12
diff --git a/miscutils/microcom.c b/miscutils/microcom.c
index 436509c47..14b9f3baf 100644
--- a/miscutils/microcom.c
+++ b/miscutils/microcom.c
@@ -11,7 +11,7 @@
11//config: bool "microcom (5.6 kb)" 11//config: bool "microcom (5.6 kb)"
12//config: default y 12//config: default y
13//config: help 13//config: help
14//config: The poor man's minicom utility for chatting with serial port devices. 14//config: The poor man's minicom utility for chatting with serial port devices.
15 15
16//applet:IF_MICROCOM(APPLET(microcom, BB_DIR_USR_BIN, BB_SUID_DROP)) 16//applet:IF_MICROCOM(APPLET(microcom, BB_DIR_USR_BIN, BB_SUID_DROP))
17 17
diff --git a/miscutils/mt.c b/miscutils/mt.c
index aec7bf775..fad656e95 100644
--- a/miscutils/mt.c
+++ b/miscutils/mt.c
@@ -6,9 +6,9 @@
6//config: bool "mt (2.6 kb)" 6//config: bool "mt (2.6 kb)"
7//config: default y 7//config: default y
8//config: help 8//config: help
9//config: mt is used to control tape devices. You can use the mt utility 9//config: mt is used to control tape devices. You can use the mt utility
10//config: to advance or rewind a tape past a specified number of archive 10//config: to advance or rewind a tape past a specified number of archive
11//config: files on the tape. 11//config: files on the tape.
12 12
13//applet:IF_MT(APPLET(mt, BB_DIR_BIN, BB_SUID_DROP)) 13//applet:IF_MT(APPLET(mt, BB_DIR_BIN, BB_SUID_DROP))
14 14
diff --git a/miscutils/nandwrite.c b/miscutils/nandwrite.c
index 8659b491f..14b1ed056 100644
--- a/miscutils/nandwrite.c
+++ b/miscutils/nandwrite.c
@@ -13,14 +13,14 @@
13//config: default y 13//config: default y
14//config: select PLATFORM_LINUX 14//config: select PLATFORM_LINUX
15//config: help 15//config: help
16//config: Write to the specified MTD device, with bad blocks awareness 16//config: Write to the specified MTD device, with bad blocks awareness
17//config: 17//config:
18//config:config NANDDUMP 18//config:config NANDDUMP
19//config: bool "nanddump (6.3 kb)" 19//config: bool "nanddump (6.3 kb)"
20//config: default y 20//config: default y
21//config: select PLATFORM_LINUX 21//config: select PLATFORM_LINUX
22//config: help 22//config: help
23//config: Dump the content of raw NAND chip 23//config: Dump the content of raw NAND chip
24 24
25//applet:IF_NANDWRITE(APPLET(nandwrite, BB_DIR_USR_SBIN, BB_SUID_DROP)) 25//applet:IF_NANDWRITE(APPLET(nandwrite, BB_DIR_USR_SBIN, BB_SUID_DROP))
26//applet:IF_NANDDUMP(APPLET_ODDNAME(nanddump, nandwrite, BB_DIR_USR_SBIN, BB_SUID_DROP, nanddump)) 26//applet:IF_NANDDUMP(APPLET_ODDNAME(nanddump, nandwrite, BB_DIR_USR_SBIN, BB_SUID_DROP, nanddump))
diff --git a/miscutils/partprobe.c b/miscutils/partprobe.c
index 787def8cd..2c12a7d20 100644
--- a/miscutils/partprobe.c
+++ b/miscutils/partprobe.c
@@ -9,7 +9,7 @@
9//config: default y 9//config: default y
10//config: select PLATFORM_LINUX 10//config: select PLATFORM_LINUX
11//config: help 11//config: help
12//config: Ask kernel to rescan partition table. 12//config: Ask kernel to rescan partition table.
13 13
14//applet:IF_PARTPROBE(APPLET(partprobe, BB_DIR_USR_SBIN, BB_SUID_DROP)) 14//applet:IF_PARTPROBE(APPLET(partprobe, BB_DIR_USR_SBIN, BB_SUID_DROP))
15 15
diff --git a/miscutils/raidautorun.c b/miscutils/raidautorun.c
index 45e398ebf..ecedf9ce2 100644
--- a/miscutils/raidautorun.c
+++ b/miscutils/raidautorun.c
@@ -12,8 +12,8 @@
12//config: default y 12//config: default y
13//config: select PLATFORM_LINUX 13//config: select PLATFORM_LINUX
14//config: help 14//config: help
15//config: raidautorun tells the kernel md driver to 15//config: raidautorun tells the kernel md driver to
16//config: search and start RAID arrays. 16//config: search and start RAID arrays.
17 17
18//applet:IF_RAIDAUTORUN(APPLET(raidautorun, BB_DIR_SBIN, BB_SUID_DROP)) 18//applet:IF_RAIDAUTORUN(APPLET(raidautorun, BB_DIR_SBIN, BB_SUID_DROP))
19 19
diff --git a/miscutils/readahead.c b/miscutils/readahead.c
index eb966b0f0..972302a18 100644
--- a/miscutils/readahead.c
+++ b/miscutils/readahead.c
@@ -15,17 +15,17 @@
15//config: depends on LFS 15//config: depends on LFS
16//config: select PLATFORM_LINUX 16//config: select PLATFORM_LINUX
17//config: help 17//config: help
18//config: Preload the files listed on the command line into RAM cache so that 18//config: Preload the files listed on the command line into RAM cache so that
19//config: subsequent reads on these files will not block on disk I/O. 19//config: subsequent reads on these files will not block on disk I/O.
20//config: 20//config:
21//config: This applet just calls the readahead(2) system call on each file. 21//config: This applet just calls the readahead(2) system call on each file.
22//config: It is mainly useful in system startup scripts to preload files 22//config: It is mainly useful in system startup scripts to preload files
23//config: or executables before they are used. When used at the right time 23//config: or executables before they are used. When used at the right time
24//config: (in particular when a CPU bound process is running) it can 24//config: (in particular when a CPU bound process is running) it can
25//config: significantly speed up system startup. 25//config: significantly speed up system startup.
26//config: 26//config:
27//config: As readahead(2) blocks until each file has been read, it is best to 27//config: As readahead(2) blocks until each file has been read, it is best to
28//config: run this applet as a background job. 28//config: run this applet as a background job.
29 29
30//applet:IF_READAHEAD(APPLET(readahead, BB_DIR_USR_SBIN, BB_SUID_DROP)) 30//applet:IF_READAHEAD(APPLET(readahead, BB_DIR_USR_SBIN, BB_SUID_DROP))
31 31
diff --git a/miscutils/rfkill.c b/miscutils/rfkill.c
index 2c083b144..546928402 100644
--- a/miscutils/rfkill.c
+++ b/miscutils/rfkill.c
@@ -12,12 +12,12 @@
12//config: default n # doesn't build on Ubuntu 9.04 12//config: default n # doesn't build on Ubuntu 9.04
13//config: select PLATFORM_LINUX 13//config: select PLATFORM_LINUX
14//config: help 14//config: help
15//config: Enable/disable wireless devices. 15//config: Enable/disable wireless devices.
16//config: 16//config:
17//config: rfkill list : list all wireless devices 17//config: rfkill list : list all wireless devices
18//config: rfkill list bluetooth : list all bluetooth devices 18//config: rfkill list bluetooth : list all bluetooth devices
19//config: rfkill list 1 : list device corresponding to the given index 19//config: rfkill list 1 : list device corresponding to the given index
20//config: rfkill block|unblock wlan : block/unblock all wlan(wifi) devices 20//config: rfkill block|unblock wlan : block/unblock all wlan(wifi) devices
21//config: 21//config:
22 22
23//applet:IF_RFKILL(APPLET(rfkill, BB_DIR_USR_SBIN, BB_SUID_DROP)) 23//applet:IF_RFKILL(APPLET(rfkill, BB_DIR_USR_SBIN, BB_SUID_DROP))
diff --git a/miscutils/runlevel.c b/miscutils/runlevel.c
index 79fa3c834..6b4742255 100644
--- a/miscutils/runlevel.c
+++ b/miscutils/runlevel.c
@@ -16,10 +16,10 @@
16//config: default y 16//config: default y
17//config: depends on FEATURE_UTMP 17//config: depends on FEATURE_UTMP
18//config: help 18//config: help
19//config: find the current and previous system runlevel. 19//config: find the current and previous system runlevel.
20//config: 20//config:
21//config: This applet uses utmp but does not rely on busybox supporing 21//config: This applet uses utmp but does not rely on busybox supporing
22//config: utmp on purpose. It is used by e.g. emdebian via /etc/init.d/rc. 22//config: utmp on purpose. It is used by e.g. emdebian via /etc/init.d/rc.
23 23
24//applet:IF_RUNLEVEL(APPLET(runlevel, BB_DIR_SBIN, BB_SUID_DROP)) 24//applet:IF_RUNLEVEL(APPLET(runlevel, BB_DIR_SBIN, BB_SUID_DROP))
25 25
diff --git a/miscutils/rx.c b/miscutils/rx.c
index 3cf17843f..874a3f0a3 100644
--- a/miscutils/rx.c
+++ b/miscutils/rx.c
@@ -19,7 +19,7 @@
19//config: default y 19//config: default y
20//config: select PLATFORM_LINUX 20//config: select PLATFORM_LINUX
21//config: help 21//config: help
22//config: Receive files using the Xmodem protocol. 22//config: Receive files using the Xmodem protocol.
23 23
24//applet:IF_RX(APPLET(rx, BB_DIR_USR_BIN, BB_SUID_DROP)) 24//applet:IF_RX(APPLET(rx, BB_DIR_USR_BIN, BB_SUID_DROP))
25 25
diff --git a/miscutils/setserial.c b/miscutils/setserial.c
index a60950206..28a1bef18 100644
--- a/miscutils/setserial.c
+++ b/miscutils/setserial.c
@@ -13,7 +13,7 @@
13//config: default y 13//config: default y
14//config: select PLATFORM_LINUX 14//config: select PLATFORM_LINUX
15//config: help 15//config: help
16//config: Retrieve or set Linux serial port. 16//config: Retrieve or set Linux serial port.
17 17
18//applet:IF_SETSERIAL(APPLET(setserial, BB_DIR_BIN, BB_SUID_DROP)) 18//applet:IF_SETSERIAL(APPLET(setserial, BB_DIR_BIN, BB_SUID_DROP))
19 19
diff --git a/miscutils/strings.c b/miscutils/strings.c
index 17c047079..ccb05f6d4 100644
--- a/miscutils/strings.c
+++ b/miscutils/strings.c
@@ -10,8 +10,8 @@
10//config: bool "strings (4.3 kb)" 10//config: bool "strings (4.3 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: strings prints the printable character sequences for each file 13//config: strings prints the printable character sequences for each file
14//config: specified. 14//config: specified.
15 15
16//applet:IF_STRINGS(APPLET(strings, BB_DIR_USR_BIN, BB_SUID_DROP)) 16//applet:IF_STRINGS(APPLET(strings, BB_DIR_USR_BIN, BB_SUID_DROP))
17 17
diff --git a/miscutils/time.c b/miscutils/time.c
index c443ef909..60fc11f6e 100644
--- a/miscutils/time.c
+++ b/miscutils/time.c
@@ -12,9 +12,9 @@
12//config: bool "time (7 kb)" 12//config: bool "time (7 kb)"
13//config: default y 13//config: default y
14//config: help 14//config: help
15//config: The time command runs the specified program with the given arguments. 15//config: The time command runs the specified program with the given arguments.
16//config: When the command finishes, time writes a message to standard output 16//config: When the command finishes, time writes a message to standard output
17//config: giving timing statistics about this program run. 17//config: giving timing statistics about this program run.
18 18
19//applet:IF_TIME(APPLET(time, BB_DIR_USR_BIN, BB_SUID_DROP)) 19//applet:IF_TIME(APPLET(time, BB_DIR_USR_BIN, BB_SUID_DROP))
20 20
diff --git a/miscutils/ttysize.c b/miscutils/ttysize.c
index a2eeb9347..7f6a84308 100644
--- a/miscutils/ttysize.c
+++ b/miscutils/ttysize.c
@@ -13,10 +13,10 @@
13//config: bool "ttysize (372 bytes)" 13//config: bool "ttysize (372 bytes)"
14//config: default y 14//config: default y
15//config: help 15//config: help
16//config: A replacement for "stty size". Unlike stty, can report only width, 16//config: A replacement for "stty size". Unlike stty, can report only width,
17//config: only height, or both, in any order. It also does not complain on 17//config: only height, or both, in any order. It also does not complain on
18//config: error, but returns default 80x24. 18//config: error, but returns default 80x24.
19//config: Usage in shell scripts: width=`ttysize w`. 19//config: Usage in shell scripts: width=`ttysize w`.
20 20
21//applet:IF_TTYSIZE(APPLET(ttysize, BB_DIR_USR_BIN, BB_SUID_DROP)) 21//applet:IF_TTYSIZE(APPLET(ttysize, BB_DIR_USR_BIN, BB_SUID_DROP))
22 22
diff --git a/miscutils/ubi_tools.c b/miscutils/ubi_tools.c
index 07f9a72ea..c6ba22adf 100644
--- a/miscutils/ubi_tools.c
+++ b/miscutils/ubi_tools.c
@@ -8,42 +8,42 @@
8//config: default y 8//config: default y
9//config: select PLATFORM_LINUX 9//config: select PLATFORM_LINUX
10//config: help 10//config: help
11//config: Attach MTD device to an UBI device. 11//config: Attach MTD device to an UBI device.
12//config: 12//config:
13//config:config UBIDETACH 13//config:config UBIDETACH
14//config: bool "ubidetach (4.6 kb)" 14//config: bool "ubidetach (4.6 kb)"
15//config: default y 15//config: default y
16//config: select PLATFORM_LINUX 16//config: select PLATFORM_LINUX
17//config: help 17//config: help
18//config: Detach MTD device from an UBI device. 18//config: Detach MTD device from an UBI device.
19//config: 19//config:
20//config:config UBIMKVOL 20//config:config UBIMKVOL
21//config: bool "ubimkvol (5.8 kb)" 21//config: bool "ubimkvol (5.8 kb)"
22//config: default y 22//config: default y
23//config: select PLATFORM_LINUX 23//config: select PLATFORM_LINUX
24//config: help 24//config: help
25//config: Create a UBI volume. 25//config: Create a UBI volume.
26//config: 26//config:
27//config:config UBIRMVOL 27//config:config UBIRMVOL
28//config: bool "ubirmvol (5.2 kb)" 28//config: bool "ubirmvol (5.2 kb)"
29//config: default y 29//config: default y
30//config: select PLATFORM_LINUX 30//config: select PLATFORM_LINUX
31//config: help 31//config: help
32//config: Delete a UBI volume. 32//config: Delete a UBI volume.
33//config: 33//config:
34//config:config UBIRSVOL 34//config:config UBIRSVOL
35//config: bool "ubirsvol (4.6 kb)" 35//config: bool "ubirsvol (4.6 kb)"
36//config: default y 36//config: default y
37//config: select PLATFORM_LINUX 37//config: select PLATFORM_LINUX
38//config: help 38//config: help
39//config: Resize a UBI volume. 39//config: Resize a UBI volume.
40//config: 40//config:
41//config:config UBIUPDATEVOL 41//config:config UBIUPDATEVOL
42//config: bool "ubiupdatevol (5.6 kb)" 42//config: bool "ubiupdatevol (5.6 kb)"
43//config: default y 43//config: default y
44//config: select PLATFORM_LINUX 44//config: select PLATFORM_LINUX
45//config: help 45//config: help
46//config: Update a UBI volume. 46//config: Update a UBI volume.
47 47
48// APPLET_ODDNAME:name main location suid_type help 48// APPLET_ODDNAME:name main location suid_type help
49//applet:IF_UBIATTACH( APPLET_ODDNAME(ubiattach, ubi_tools, BB_DIR_USR_SBIN, BB_SUID_DROP, ubiattach)) 49//applet:IF_UBIATTACH( APPLET_ODDNAME(ubiattach, ubi_tools, BB_DIR_USR_SBIN, BB_SUID_DROP, ubiattach))
diff --git a/miscutils/ubirename.c b/miscutils/ubirename.c
index 8fb42ee81..786c4b9fa 100644
--- a/miscutils/ubirename.c
+++ b/miscutils/ubirename.c
@@ -11,7 +11,7 @@
11//config: default y 11//config: default y
12//config: select PLATFORM_LINUX 12//config: select PLATFORM_LINUX
13//config: help 13//config: help
14//config: Utility to rename UBI volumes 14//config: Utility to rename UBI volumes
15 15
16//applet:IF_UBIRENAME(APPLET(ubirename, BB_DIR_USR_SBIN, BB_SUID_DROP)) 16//applet:IF_UBIRENAME(APPLET(ubirename, BB_DIR_USR_SBIN, BB_SUID_DROP))
17 17
diff --git a/miscutils/volname.c b/miscutils/volname.c
index d80787f1a..6e6bbaa44 100644
--- a/miscutils/volname.c
+++ b/miscutils/volname.c
@@ -31,7 +31,7 @@
31//config: bool "volname (1.7 kb)" 31//config: bool "volname (1.7 kb)"
32//config: default y 32//config: default y
33//config: help 33//config: help
34//config: Prints a CD-ROM volume name. 34//config: Prints a CD-ROM volume name.
35 35
36//applet:IF_VOLNAME(APPLET(volname, BB_DIR_USR_BIN, BB_SUID_DROP)) 36//applet:IF_VOLNAME(APPLET(volname, BB_DIR_USR_BIN, BB_SUID_DROP))
37 37
diff --git a/miscutils/watchdog.c b/miscutils/watchdog.c
index 2ef4997b1..ec06bcb51 100644
--- a/miscutils/watchdog.c
+++ b/miscutils/watchdog.c
@@ -13,12 +13,12 @@
13//config: default y 13//config: default y
14//config: select PLATFORM_LINUX 14//config: select PLATFORM_LINUX
15//config: help 15//config: help
16//config: The watchdog utility is used with hardware or software watchdog 16//config: The watchdog utility is used with hardware or software watchdog
17//config: device drivers. It opens the specified watchdog device special file 17//config: device drivers. It opens the specified watchdog device special file
18//config: and periodically writes a magic character to the device. If the 18//config: and periodically writes a magic character to the device. If the
19//config: watchdog applet ever fails to write the magic character within a 19//config: watchdog applet ever fails to write the magic character within a
20//config: certain amount of time, the watchdog device assumes the system has 20//config: certain amount of time, the watchdog device assumes the system has
21//config: hung, and will cause the hardware to reboot. 21//config: hung, and will cause the hardware to reboot.
22 22
23//applet:IF_WATCHDOG(APPLET(watchdog, BB_DIR_SBIN, BB_SUID_DROP)) 23//applet:IF_WATCHDOG(APPLET(watchdog, BB_DIR_SBIN, BB_SUID_DROP))
24 24
diff --git a/modutils/Config.src b/modutils/Config.src
index 9b76c83d2..e413702bb 100644
--- a/modutils/Config.src
+++ b/modutils/Config.src
@@ -9,29 +9,29 @@ config MODPROBE_SMALL
9 bool "Simplified modutils" 9 bool "Simplified modutils"
10 default y 10 default y
11 help 11 help
12 Build smaller (~1.5 kbytes), simplified module tools. 12 Build smaller (~1.5 kbytes), simplified module tools.
13 13
14 This option by itself does not enable any applets - 14 This option by itself does not enable any applets -
15 you need to select applets individually below. 15 you need to select applets individually below.
16 16
17 With this option modprobe does not require modules.dep file 17 With this option modprobe does not require modules.dep file
18 and does not use /etc/modules.conf file. 18 and does not use /etc/modules.conf file.
19 It scans module files in /lib/modules/`uname -r` and 19 It scans module files in /lib/modules/`uname -r` and
20 determines dependencies and module alias names on the fly. 20 determines dependencies and module alias names on the fly.
21 This may make module loading slower, most notably 21 This may make module loading slower, most notably
22 when one needs to load module by alias (this requires 22 when one needs to load module by alias (this requires
23 scanning through module _bodies_). 23 scanning through module _bodies_).
24 24
25 At the first attempt to load a module by alias modprobe 25 At the first attempt to load a module by alias modprobe
26 will try to generate modules.dep.bb file in order to speed up 26 will try to generate modules.dep.bb file in order to speed up
27 future loads by alias. Failure to do so (read-only /lib/modules, 27 future loads by alias. Failure to do so (read-only /lib/modules,
28 etc) is not reported, and future modprobes will be slow too. 28 etc) is not reported, and future modprobes will be slow too.
29 29
30 NB: modules.dep.bb file format is not compatible 30 NB: modules.dep.bb file format is not compatible
31 with modules.dep file as created/used by standard module tools. 31 with modules.dep file as created/used by standard module tools.
32 32
33 Additional module parameters can be stored in 33 Additional module parameters can be stored in
34 /etc/modules/$module_name files. 34 /etc/modules/$module_name files.
35 35
36INSERT 36INSERT
37 37
@@ -42,145 +42,145 @@ config FEATURE_CMDLINE_MODULE_OPTIONS
42 default y 42 default y
43 depends on INSMOD || MODPROBE 43 depends on INSMOD || MODPROBE
44 help 44 help
45 Allow insmod and modprobe take module options from the applets' 45 Allow insmod and modprobe take module options from the applets'
46 command line. 46 command line.
47 47
48config FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED 48config FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
49 bool "Skip loading of already loaded modules" 49 bool "Skip loading of already loaded modules"
50 default y 50 default y
51 depends on MODPROBE_SMALL && (DEPMOD || INSMOD || MODPROBE) 51 depends on MODPROBE_SMALL && (DEPMOD || INSMOD || MODPROBE)
52 help 52 help
53 Check if the module is already loaded. 53 Check if the module is already loaded.
54 54
55config FEATURE_2_4_MODULES 55config FEATURE_2_4_MODULES
56 bool "Support version 2.2/2.4 Linux kernels" 56 bool "Support version 2.2/2.4 Linux kernels"
57 default n 57 default n
58 depends on (INSMOD || LSMOD || MODPROBE || RMMOD) && !MODPROBE_SMALL 58 depends on (INSMOD || LSMOD || MODPROBE || RMMOD) && !MODPROBE_SMALL
59 help 59 help
60 Support module loading for 2.2.x and 2.4.x Linux kernels. 60 Support module loading for 2.2.x and 2.4.x Linux kernels.
61 This increases size considerably. Say N unless you plan 61 This increases size considerably. Say N unless you plan
62 to run ancient kernels. 62 to run ancient kernels.
63 63
64config FEATURE_INSMOD_VERSION_CHECKING 64config FEATURE_INSMOD_VERSION_CHECKING
65 bool "Enable module version checking" 65 bool "Enable module version checking"
66 default n 66 default n
67 depends on FEATURE_2_4_MODULES && (INSMOD || MODPROBE) 67 depends on FEATURE_2_4_MODULES && (INSMOD || MODPROBE)
68 help 68 help
69 Support checking of versions for modules. This is used to 69 Support checking of versions for modules. This is used to
70 ensure that the kernel and module are made for each other. 70 ensure that the kernel and module are made for each other.
71 71
72config FEATURE_INSMOD_KSYMOOPS_SYMBOLS 72config FEATURE_INSMOD_KSYMOOPS_SYMBOLS
73 bool "Add module symbols to kernel symbol table" 73 bool "Add module symbols to kernel symbol table"
74 default n 74 default n
75 depends on FEATURE_2_4_MODULES && (INSMOD || MODPROBE) 75 depends on FEATURE_2_4_MODULES && (INSMOD || MODPROBE)
76 help 76 help
77 By adding module symbols to the kernel symbol table, Oops messages 77 By adding module symbols to the kernel symbol table, Oops messages
78 occurring within kernel modules can be properly debugged. By enabling 78 occurring within kernel modules can be properly debugged. By enabling
79 this feature, module symbols will always be added to the kernel symbol 79 this feature, module symbols will always be added to the kernel symbol
80 table for proper debugging support. If you are not interested in 80 table for proper debugging support. If you are not interested in
81 Oops messages from kernel modules, say N. 81 Oops messages from kernel modules, say N.
82 82
83config FEATURE_INSMOD_LOADINKMEM 83config FEATURE_INSMOD_LOADINKMEM
84 bool "In kernel memory optimization (uClinux only)" 84 bool "In kernel memory optimization (uClinux only)"
85 default n 85 default n
86 depends on FEATURE_2_4_MODULES && (INSMOD || MODPROBE) 86 depends on FEATURE_2_4_MODULES && (INSMOD || MODPROBE)
87 help 87 help
88 This is a special uClinux only memory optimization that lets insmod 88 This is a special uClinux only memory optimization that lets insmod
89 load the specified kernel module directly into kernel space, reducing 89 load the specified kernel module directly into kernel space, reducing
90 memory usage by preventing the need for two copies of the module 90 memory usage by preventing the need for two copies of the module
91 being loaded into memory. 91 being loaded into memory.
92 92
93config FEATURE_INSMOD_LOAD_MAP 93config FEATURE_INSMOD_LOAD_MAP
94 bool "Enable insmod load map (-m) option" 94 bool "Enable insmod load map (-m) option"
95 default n 95 default n
96 depends on FEATURE_2_4_MODULES && INSMOD 96 depends on FEATURE_2_4_MODULES && INSMOD
97 help 97 help
98 Enabling this, one would be able to get a load map 98 Enabling this, one would be able to get a load map
99 output on stdout. This makes kernel module debugging 99 output on stdout. This makes kernel module debugging
100 easier. 100 easier.
101 If you don't plan to debug kernel modules, you 101 If you don't plan to debug kernel modules, you
102 don't need this option. 102 don't need this option.
103 103
104config FEATURE_INSMOD_LOAD_MAP_FULL 104config FEATURE_INSMOD_LOAD_MAP_FULL
105 bool "Symbols in load map" 105 bool "Symbols in load map"
106 default y 106 default y
107 depends on FEATURE_INSMOD_LOAD_MAP 107 depends on FEATURE_INSMOD_LOAD_MAP
108 help 108 help
109 Without this option, -m will only output section 109 Without this option, -m will only output section
110 load map. With this option, -m will also output 110 load map. With this option, -m will also output
111 symbols load map. 111 symbols load map.
112 112
113config FEATURE_CHECK_TAINTED_MODULE 113config FEATURE_CHECK_TAINTED_MODULE
114 bool "Support tainted module checking with new kernels" 114 bool "Support tainted module checking with new kernels"
115 default y 115 default y
116 depends on (LSMOD || FEATURE_2_4_MODULES) && !MODPROBE_SMALL 116 depends on (LSMOD || FEATURE_2_4_MODULES) && !MODPROBE_SMALL
117 help 117 help
118 Support checking for tainted modules. These are usually binary 118 Support checking for tainted modules. These are usually binary
119 only modules that will make the linux-kernel list ignore your 119 only modules that will make the linux-kernel list ignore your
120 support request. 120 support request.
121 This option is required to support GPLONLY modules. 121 This option is required to support GPLONLY modules.
122 122
123config FEATURE_INSMOD_TRY_MMAP 123config FEATURE_INSMOD_TRY_MMAP
124 bool "Try to load module from a mmap'ed area" 124 bool "Try to load module from a mmap'ed area"
125 default n 125 default n
126 depends on (INSMOD || MODPROBE) && !MODPROBE_SMALL 126 depends on (INSMOD || MODPROBE) && !MODPROBE_SMALL
127 help 127 help
128 This option causes module loading code to try to mmap 128 This option causes module loading code to try to mmap
129 module first. If it does not work (for example, 129 module first. If it does not work (for example,
130 it does not work for compressed modules), module will be read 130 it does not work for compressed modules), module will be read
131 (and unpacked if needed) into a memory block allocated by malloc. 131 (and unpacked if needed) into a memory block allocated by malloc.
132 132
133 The only case when mmap works but malloc does not is when 133 The only case when mmap works but malloc does not is when
134 you are trying to load a big module on a very memory-constrained 134 you are trying to load a big module on a very memory-constrained
135 machine. Malloc will momentarily need 2x as much memory as mmap. 135 machine. Malloc will momentarily need 2x as much memory as mmap.
136 136
137 Choosing N saves about 250 bytes of code (on 32-bit x86). 137 Choosing N saves about 250 bytes of code (on 32-bit x86).
138 138
139config FEATURE_MODUTILS_ALIAS 139config FEATURE_MODUTILS_ALIAS
140 bool "Support module.aliases file" 140 bool "Support module.aliases file"
141 default y 141 default y
142 depends on (DEPMOD || MODPROBE) && !MODPROBE_SMALL 142 depends on (DEPMOD || MODPROBE) && !MODPROBE_SMALL
143 help 143 help
144 Generate and parse modules.alias containing aliases for bus 144 Generate and parse modules.alias containing aliases for bus
145 identifiers: 145 identifiers:
146 alias pcmcia:m*c*f03fn*pfn*pa*pb*pc*pd* parport_cs 146 alias pcmcia:m*c*f03fn*pfn*pa*pb*pc*pd* parport_cs
147 147
148 and aliases for logical modules names e.g.: 148 and aliases for logical modules names e.g.:
149 alias padlock_aes aes 149 alias padlock_aes aes
150 alias aes_i586 aes 150 alias aes_i586 aes
151 alias aes_generic aes 151 alias aes_generic aes
152 152
153 Say Y if unsure. 153 Say Y if unsure.
154 154
155config FEATURE_MODUTILS_SYMBOLS 155config FEATURE_MODUTILS_SYMBOLS
156 bool "Support module.symbols file" 156 bool "Support module.symbols file"
157 default y 157 default y
158 depends on (DEPMOD || MODPROBE) && !MODPROBE_SMALL 158 depends on (DEPMOD || MODPROBE) && !MODPROBE_SMALL
159 help 159 help
160 Generate and parse modules.symbols containing aliases for 160 Generate and parse modules.symbols containing aliases for
161 symbol_request() kernel calls, such as: 161 symbol_request() kernel calls, such as:
162 alias symbol:usb_sg_init usbcore 162 alias symbol:usb_sg_init usbcore
163 163
164 Say Y if unsure. 164 Say Y if unsure.
165 165
166config DEFAULT_MODULES_DIR 166config DEFAULT_MODULES_DIR
167 string "Default directory containing modules" 167 string "Default directory containing modules"
168 default "/lib/modules" 168 default "/lib/modules"
169 depends on DEPMOD || MODPROBE || MODINFO 169 depends on DEPMOD || MODPROBE || MODINFO
170 help 170 help
171 Directory that contains kernel modules. 171 Directory that contains kernel modules.
172 Defaults to "/lib/modules" 172 Defaults to "/lib/modules"
173 173
174config DEFAULT_DEPMOD_FILE 174config DEFAULT_DEPMOD_FILE
175 string "Default name of modules.dep" 175 string "Default name of modules.dep"
176 default "modules.dep" 176 default "modules.dep"
177 depends on DEPMOD || MODPROBE || MODINFO 177 depends on DEPMOD || MODPROBE || MODINFO
178 help 178 help
179 Filename that contains kernel modules dependencies. 179 Filename that contains kernel modules dependencies.
180 Defaults to "modules.dep". 180 Defaults to "modules.dep".
181 If you configured the "simplified modutils" (MODPROBE_SMALL), a 181 If you configured the "simplified modutils" (MODPROBE_SMALL), a
182 ".bb" suffix will be added after this name. Do not specify ".bb" 182 ".bb" suffix will be added after this name. Do not specify ".bb"
183 here unless you intend your depmod or modprobe to work on 183 here unless you intend your depmod or modprobe to work on
184 "modules.dep.bb.bb" or such. 184 "modules.dep.bb.bb" or such.
185 185
186endmenu 186endmenu
diff --git a/modutils/depmod.c b/modutils/depmod.c
index f6e889d8f..004c67a11 100644
--- a/modutils/depmod.c
+++ b/modutils/depmod.c
@@ -12,9 +12,9 @@
12//config: default y 12//config: default y
13//config: select PLATFORM_LINUX 13//config: select PLATFORM_LINUX
14//config: help 14//config: help
15//config: depmod generates modules.dep (and potentially modules.alias 15//config: depmod generates modules.dep (and potentially modules.alias
16//config: and modules.symbols) that contain dependency information 16//config: and modules.symbols) that contain dependency information
17//config: for modprobe. 17//config: for modprobe.
18 18
19//applet:IF_DEPMOD(IF_NOT_MODPROBE_SMALL(APPLET(depmod, BB_DIR_SBIN, BB_SUID_DROP))) 19//applet:IF_DEPMOD(IF_NOT_MODPROBE_SMALL(APPLET(depmod, BB_DIR_SBIN, BB_SUID_DROP)))
20 20
diff --git a/modutils/insmod.c b/modutils/insmod.c
index 6f448f34d..b8ede8a81 100644
--- a/modutils/insmod.c
+++ b/modutils/insmod.c
@@ -11,7 +11,7 @@
11//config: default y 11//config: default y
12//config: select PLATFORM_LINUX 12//config: select PLATFORM_LINUX
13//config: help 13//config: help
14//config: insmod is used to load specified modules in the running kernel. 14//config: insmod is used to load specified modules in the running kernel.
15 15
16//applet:IF_INSMOD(IF_NOT_MODPROBE_SMALL(APPLET(insmod, BB_DIR_SBIN, BB_SUID_DROP))) 16//applet:IF_INSMOD(IF_NOT_MODPROBE_SMALL(APPLET(insmod, BB_DIR_SBIN, BB_SUID_DROP)))
17 17
diff --git a/modutils/lsmod.c b/modutils/lsmod.c
index 9fe0eff22..4bf8f8481 100644
--- a/modutils/lsmod.c
+++ b/modutils/lsmod.c
@@ -12,16 +12,16 @@
12//config: default y 12//config: default y
13//config: select PLATFORM_LINUX 13//config: select PLATFORM_LINUX
14//config: help 14//config: help
15//config: lsmod is used to display a list of loaded modules. 15//config: lsmod is used to display a list of loaded modules.
16//config: 16//config:
17//config:config FEATURE_LSMOD_PRETTY_2_6_OUTPUT 17//config:config FEATURE_LSMOD_PRETTY_2_6_OUTPUT
18//config: bool "Pretty output" 18//config: bool "Pretty output"
19//config: default y 19//config: default y
20//config: depends on LSMOD && !MODPROBE_SMALL 20//config: depends on LSMOD && !MODPROBE_SMALL
21//config: help 21//config: help
22//config: This option makes output format of lsmod adjusted to 22//config: This option makes output format of lsmod adjusted to
23//config: the format of module-init-tools for Linux kernel 2.6. 23//config: the format of module-init-tools for Linux kernel 2.6.
24//config: Increases size somewhat. 24//config: Increases size somewhat.
25 25
26//applet:IF_LSMOD(IF_NOT_MODPROBE_SMALL(APPLET(lsmod, BB_DIR_SBIN, BB_SUID_DROP))) 26//applet:IF_LSMOD(IF_NOT_MODPROBE_SMALL(APPLET(lsmod, BB_DIR_SBIN, BB_SUID_DROP)))
27 27
diff --git a/modutils/modinfo.c b/modutils/modinfo.c
index 6eae1b7b1..371c93991 100644
--- a/modutils/modinfo.c
+++ b/modutils/modinfo.c
@@ -10,7 +10,7 @@
10//config: default y 10//config: default y
11//config: select PLATFORM_LINUX 11//config: select PLATFORM_LINUX
12//config: help 12//config: help
13//config: Show information about a Linux Kernel module 13//config: Show information about a Linux Kernel module
14 14
15//applet:IF_MODINFO(APPLET(modinfo, BB_DIR_SBIN, BB_SUID_DROP)) 15//applet:IF_MODINFO(APPLET(modinfo, BB_DIR_SBIN, BB_SUID_DROP))
16 16
diff --git a/modutils/modprobe.c b/modutils/modprobe.c
index 6bcfb9bcd..1a7db09f2 100644
--- a/modutils/modprobe.c
+++ b/modutils/modprobe.c
@@ -12,19 +12,19 @@
12//config: default y 12//config: default y
13//config: select PLATFORM_LINUX 13//config: select PLATFORM_LINUX
14//config: help 14//config: help
15//config: Handle the loading of modules, and their dependencies on a high 15//config: Handle the loading of modules, and their dependencies on a high
16//config: level. 16//config: level.
17//config: 17//config:
18//config:config FEATURE_MODPROBE_BLACKLIST 18//config:config FEATURE_MODPROBE_BLACKLIST
19//config: bool "Blacklist support" 19//config: bool "Blacklist support"
20//config: default y 20//config: default y
21//config: depends on MODPROBE && !MODPROBE_SMALL 21//config: depends on MODPROBE && !MODPROBE_SMALL
22//config: help 22//config: help
23//config: Say 'y' here to enable support for the 'blacklist' command in 23//config: Say 'y' here to enable support for the 'blacklist' command in
24//config: modprobe.conf. This prevents the alias resolver to resolve 24//config: modprobe.conf. This prevents the alias resolver to resolve
25//config: blacklisted modules. This is useful if you want to prevent your 25//config: blacklisted modules. This is useful if you want to prevent your
26//config: hardware autodetection scripts to load modules like evdev, frame 26//config: hardware autodetection scripts to load modules like evdev, frame
27//config: buffer drivers etc. 27//config: buffer drivers etc.
28 28
29//applet:IF_MODPROBE(IF_NOT_MODPROBE_SMALL(APPLET(modprobe, BB_DIR_SBIN, BB_SUID_DROP))) 29//applet:IF_MODPROBE(IF_NOT_MODPROBE_SMALL(APPLET(modprobe, BB_DIR_SBIN, BB_SUID_DROP)))
30 30
diff --git a/modutils/rmmod.c b/modutils/rmmod.c
index 1e87abf3a..d60e49413 100644
--- a/modutils/rmmod.c
+++ b/modutils/rmmod.c
@@ -12,7 +12,7 @@
12//config: default y 12//config: default y
13//config: select PLATFORM_LINUX 13//config: select PLATFORM_LINUX
14//config: help 14//config: help
15//config: rmmod is used to unload specified modules from the kernel. 15//config: rmmod is used to unload specified modules from the kernel.
16 16
17//applet:IF_RMMOD(IF_NOT_MODPROBE_SMALL(APPLET(rmmod, BB_DIR_SBIN, BB_SUID_DROP))) 17//applet:IF_RMMOD(IF_NOT_MODPROBE_SMALL(APPLET(rmmod, BB_DIR_SBIN, BB_SUID_DROP)))
18 18
diff --git a/networking/Config.src b/networking/Config.src
index 0adb1e2f9..492c60da4 100644
--- a/networking/Config.src
+++ b/networking/Config.src
@@ -9,42 +9,42 @@ config FEATURE_IPV6
9 bool "Enable IPv6 support" 9 bool "Enable IPv6 support"
10 default y 10 default y
11 help 11 help
12 Enable IPv6 support in busybox. 12 Enable IPv6 support in busybox.
13 This adds IPv6 support in the networking applets. 13 This adds IPv6 support in the networking applets.
14 14
15config FEATURE_UNIX_LOCAL 15config FEATURE_UNIX_LOCAL
16 bool "Enable Unix domain socket support (usually not needed)" 16 bool "Enable Unix domain socket support (usually not needed)"
17 default n 17 default n
18 help 18 help
19 Enable Unix domain socket support in all busybox networking 19 Enable Unix domain socket support in all busybox networking
20 applets. Address of the form local:/path/to/unix/socket 20 applets. Address of the form local:/path/to/unix/socket
21 will be recognized. 21 will be recognized.
22 22
23 This extension is almost never used in real world usage. 23 This extension is almost never used in real world usage.
24 You most likely want to say N. 24 You most likely want to say N.
25 25
26config FEATURE_PREFER_IPV4_ADDRESS 26config FEATURE_PREFER_IPV4_ADDRESS
27 bool "Prefer IPv4 addresses from DNS queries" 27 bool "Prefer IPv4 addresses from DNS queries"
28 default y 28 default y
29 depends on FEATURE_IPV6 29 depends on FEATURE_IPV6
30 help 30 help
31 Use IPv4 address of network host if it has one. 31 Use IPv4 address of network host if it has one.
32 32
33 If this option is off, the first returned address will be used. 33 If this option is off, the first returned address will be used.
34 This may cause problems when your DNS server is IPv6-capable and 34 This may cause problems when your DNS server is IPv6-capable and
35 is returning IPv6 host addresses too. If IPv6 address 35 is returning IPv6 host addresses too. If IPv6 address
36 precedes IPv4 one in DNS reply, busybox network applets 36 precedes IPv4 one in DNS reply, busybox network applets
37 (e.g. wget) will use IPv6 address. On an IPv6-incapable host 37 (e.g. wget) will use IPv6 address. On an IPv6-incapable host
38 or network applets will fail to connect to the host 38 or network applets will fail to connect to the host
39 using IPv6 address. 39 using IPv6 address.
40 40
41config VERBOSE_RESOLUTION_ERRORS 41config VERBOSE_RESOLUTION_ERRORS
42 bool "Verbose resolution errors" 42 bool "Verbose resolution errors"
43 default n 43 default n
44 help 44 help
45 Enable if you are not satisfied with simplistic 45 Enable if you are not satisfied with simplistic
46 "can't resolve 'hostname.com'" and want to know more. 46 "can't resolve 'hostname.com'" and want to know more.
47 This may increase size of your executable a bit. 47 This may increase size of your executable a bit.
48 48
49INSERT 49INSERT
50 50
@@ -55,8 +55,8 @@ config IFUPDOWN_UDHCPC_CMD_OPTIONS
55 default "-R -n" 55 default "-R -n"
56 depends on IFUP || IFDOWN 56 depends on IFUP || IFDOWN
57 help 57 help
58 Command line options to pass to udhcpc from ifup. 58 Command line options to pass to udhcpc from ifup.
59 Intended to alter options not available in /etc/network/interfaces. 59 Intended to alter options not available in /etc/network/interfaces.
60 (IE: --syslog --background etc...) 60 (IE: --syslog --background etc...)
61 61
62endmenu 62endmenu
diff --git a/networking/arp.c b/networking/arp.c
index f23ec8629..177ab1571 100644
--- a/networking/arp.c
+++ b/networking/arp.c
@@ -17,7 +17,7 @@
17//config: default y 17//config: default y
18//config: select PLATFORM_LINUX 18//config: select PLATFORM_LINUX
19//config: help 19//config: help
20//config: Manipulate the system ARP cache. 20//config: Manipulate the system ARP cache.
21 21
22//applet:IF_ARP(APPLET(arp, BB_DIR_SBIN, BB_SUID_DROP)) 22//applet:IF_ARP(APPLET(arp, BB_DIR_SBIN, BB_SUID_DROP))
23 23
diff --git a/networking/arping.c b/networking/arping.c
index bc6b6be6a..71672957e 100644
--- a/networking/arping.c
+++ b/networking/arping.c
@@ -10,7 +10,7 @@
10//config: default y 10//config: default y
11//config: select PLATFORM_LINUX 11//config: select PLATFORM_LINUX
12//config: help 12//config: help
13//config: Ping hosts by ARP packets. 13//config: Ping hosts by ARP packets.
14//config: 14//config:
15 15
16//applet:IF_ARPING(APPLET(arping, BB_DIR_USR_SBIN, BB_SUID_DROP)) 16//applet:IF_ARPING(APPLET(arping, BB_DIR_USR_SBIN, BB_SUID_DROP))
diff --git a/networking/brctl.c b/networking/brctl.c
index bedf8031a..690791e4c 100644
--- a/networking/brctl.c
+++ b/networking/brctl.c
@@ -17,27 +17,27 @@
17//config: default y 17//config: default y
18//config: select PLATFORM_LINUX 18//config: select PLATFORM_LINUX
19//config: help 19//config: help
20//config: Manage ethernet bridges. 20//config: Manage ethernet bridges.
21//config: Supports addbr/delbr and addif/delif. 21//config: Supports addbr/delbr and addif/delif.
22//config: 22//config:
23//config:config FEATURE_BRCTL_FANCY 23//config:config FEATURE_BRCTL_FANCY
24//config: bool "Fancy options" 24//config: bool "Fancy options"
25//config: default y 25//config: default y
26//config: depends on BRCTL 26//config: depends on BRCTL
27//config: help 27//config: help
28//config: Add support for extended option like: 28//config: Add support for extended option like:
29//config: setageing, setfd, sethello, setmaxage, 29//config: setageing, setfd, sethello, setmaxage,
30//config: setpathcost, setportprio, setbridgeprio, 30//config: setpathcost, setportprio, setbridgeprio,
31//config: stp 31//config: stp
32//config: This adds about 600 bytes. 32//config: This adds about 600 bytes.
33//config: 33//config:
34//config:config FEATURE_BRCTL_SHOW 34//config:config FEATURE_BRCTL_SHOW
35//config: bool "Support show" 35//config: bool "Support show"
36//config: default y 36//config: default y
37//config: depends on BRCTL && FEATURE_BRCTL_FANCY 37//config: depends on BRCTL && FEATURE_BRCTL_FANCY
38//config: help 38//config: help
39//config: Add support for option which prints the current config: 39//config: Add support for option which prints the current config:
40//config: show 40//config: show
41 41
42//applet:IF_BRCTL(APPLET(brctl, BB_DIR_USR_SBIN, BB_SUID_DROP)) 42//applet:IF_BRCTL(APPLET(brctl, BB_DIR_USR_SBIN, BB_SUID_DROP))
43 43
diff --git a/networking/dnsd.c b/networking/dnsd.c
index 9e058584a..37a80309d 100644
--- a/networking/dnsd.c
+++ b/networking/dnsd.c
@@ -20,7 +20,7 @@
20//config: bool "dnsd (9.8 kb)" 20//config: bool "dnsd (9.8 kb)"
21//config: default y 21//config: default y
22//config: help 22//config: help
23//config: Small and static DNS server daemon. 23//config: Small and static DNS server daemon.
24 24
25//applet:IF_DNSD(APPLET(dnsd, BB_DIR_USR_SBIN, BB_SUID_DROP)) 25//applet:IF_DNSD(APPLET(dnsd, BB_DIR_USR_SBIN, BB_SUID_DROP))
26 26
diff --git a/networking/ether-wake.c b/networking/ether-wake.c
index 16155df54..52522e76d 100644
--- a/networking/ether-wake.c
+++ b/networking/ether-wake.c
@@ -68,7 +68,7 @@
68//config: default y 68//config: default y
69//config: select PLATFORM_LINUX 69//config: select PLATFORM_LINUX
70//config: help 70//config: help
71//config: Send a magic packet to wake up sleeping machines. 71//config: Send a magic packet to wake up sleeping machines.
72 72
73//applet:IF_ETHER_WAKE(APPLET_ODDNAME(ether-wake, ether_wake, BB_DIR_USR_SBIN, BB_SUID_DROP, ether_wake)) 73//applet:IF_ETHER_WAKE(APPLET_ODDNAME(ether-wake, ether_wake, BB_DIR_USR_SBIN, BB_SUID_DROP, ether_wake))
74 74
diff --git a/networking/ftpd.c b/networking/ftpd.c
index e923e78b2..aee00e1c3 100644
--- a/networking/ftpd.c
+++ b/networking/ftpd.c
@@ -15,32 +15,32 @@
15//config: bool "ftpd (30 kb)" 15//config: bool "ftpd (30 kb)"
16//config: default y 16//config: default y
17//config: help 17//config: help
18//config: Simple FTP daemon. You have to run it via inetd. 18//config: Simple FTP daemon. You have to run it via inetd.
19//config: 19//config:
20//config:config FEATURE_FTPD_WRITE 20//config:config FEATURE_FTPD_WRITE
21//config: bool "Enable upload commands" 21//config: bool "Enable upload commands"
22//config: default y 22//config: default y
23//config: depends on FTPD 23//config: depends on FTPD
24//config: help 24//config: help
25//config: Enable all kinds of FTP upload commands (-w option) 25//config: Enable all kinds of FTP upload commands (-w option)
26//config: 26//config:
27//config:config FEATURE_FTPD_ACCEPT_BROKEN_LIST 27//config:config FEATURE_FTPD_ACCEPT_BROKEN_LIST
28//config: bool "Enable workaround for RFC-violating clients" 28//config: bool "Enable workaround for RFC-violating clients"
29//config: default y 29//config: default y
30//config: depends on FTPD 30//config: depends on FTPD
31//config: help 31//config: help
32//config: Some ftp clients (among them KDE's Konqueror) issue illegal 32//config: Some ftp clients (among them KDE's Konqueror) issue illegal
33//config: "LIST -l" requests. This option works around such problems. 33//config: "LIST -l" requests. This option works around such problems.
34//config: It might prevent you from listing files starting with "-" and 34//config: It might prevent you from listing files starting with "-" and
35//config: it increases the code size by ~40 bytes. 35//config: it increases the code size by ~40 bytes.
36//config: Most other ftp servers seem to behave similar to this. 36//config: Most other ftp servers seem to behave similar to this.
37//config: 37//config:
38//config:config FEATURE_FTPD_AUTHENTICATION 38//config:config FEATURE_FTPD_AUTHENTICATION
39//config: bool "Enable authentication" 39//config: bool "Enable authentication"
40//config: default y 40//config: default y
41//config: depends on FTPD 41//config: depends on FTPD
42//config: help 42//config: help
43//config: Enable basic system login as seen in telnet etc. 43//config: Enable basic system login as seen in telnet etc.
44 44
45//applet:IF_FTPD(APPLET(ftpd, BB_DIR_USR_SBIN, BB_SUID_DROP)) 45//applet:IF_FTPD(APPLET(ftpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
46 46
diff --git a/networking/ftpgetput.c b/networking/ftpgetput.c
index b967cd7d9..d70f4ca77 100644
--- a/networking/ftpgetput.c
+++ b/networking/ftpgetput.c
@@ -16,13 +16,13 @@
16//config: bool "ftpget (8 kb)" 16//config: bool "ftpget (8 kb)"
17//config: default y 17//config: default y
18//config: help 18//config: help
19//config: Retrieve a remote file via FTP. 19//config: Retrieve a remote file via FTP.
20//config: 20//config:
21//config:config FTPPUT 21//config:config FTPPUT
22//config: bool "ftpput (7.7 kb)" 22//config: bool "ftpput (7.7 kb)"
23//config: default y 23//config: default y
24//config: help 24//config: help
25//config: Store a remote file via FTP. 25//config: Store a remote file via FTP.
26//config: 26//config:
27//config:config FEATURE_FTPGETPUT_LONG_OPTIONS 27//config:config FEATURE_FTPGETPUT_LONG_OPTIONS
28//config: bool "Enable long options in ftpget/ftpput" 28//config: bool "Enable long options in ftpget/ftpput"
diff --git a/networking/hostname.c b/networking/hostname.c
index 07d746c0f..4b305d2b6 100644
--- a/networking/hostname.c
+++ b/networking/hostname.c
@@ -14,13 +14,13 @@
14//config: bool "hostname (5.6 kb)" 14//config: bool "hostname (5.6 kb)"
15//config: default y 15//config: default y
16//config: help 16//config: help
17//config: Show or set the system's host name. 17//config: Show or set the system's host name.
18//config: 18//config:
19//config:config DNSDOMAINNAME 19//config:config DNSDOMAINNAME
20//config: bool "dnsdomainname (3.6 kb)" 20//config: bool "dnsdomainname (3.6 kb)"
21//config: default y 21//config: default y
22//config: help 22//config: help
23//config: Alias to "hostname -d". 23//config: Alias to "hostname -d".
24 24
25// APPLET_ODDNAME:name main location suid_type help 25// APPLET_ODDNAME:name main location suid_type help
26//applet:IF_DNSDOMAINNAME(APPLET_ODDNAME(dnsdomainname, hostname, BB_DIR_BIN, BB_SUID_DROP, dnsdomainname)) 26//applet:IF_DNSDOMAINNAME(APPLET_ODDNAME(dnsdomainname, hostname, BB_DIR_BIN, BB_SUID_DROP, dnsdomainname))
diff --git a/networking/httpd.c b/networking/httpd.c
index 7ad6d0878..cfc07075b 100644
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -102,120 +102,120 @@
102//config: bool "httpd (32 kb)" 102//config: bool "httpd (32 kb)"
103//config: default y 103//config: default y
104//config: help 104//config: help
105//config: HTTP server. 105//config: HTTP server.
106//config: 106//config:
107//config:config FEATURE_HTTPD_RANGES 107//config:config FEATURE_HTTPD_RANGES
108//config: bool "Support 'Ranges:' header" 108//config: bool "Support 'Ranges:' header"
109//config: default y 109//config: default y
110//config: depends on HTTPD 110//config: depends on HTTPD
111//config: help 111//config: help
112//config: Makes httpd emit "Accept-Ranges: bytes" header and understand 112//config: Makes httpd emit "Accept-Ranges: bytes" header and understand
113//config: "Range: bytes=NNN-[MMM]" header. Allows for resuming interrupted 113//config: "Range: bytes=NNN-[MMM]" header. Allows for resuming interrupted
114//config: downloads, seeking in multimedia players etc. 114//config: downloads, seeking in multimedia players etc.
115//config: 115//config:
116//config:config FEATURE_HTTPD_SETUID 116//config:config FEATURE_HTTPD_SETUID
117//config: bool "Enable -u <user> option" 117//config: bool "Enable -u <user> option"
118//config: default y 118//config: default y
119//config: depends on HTTPD 119//config: depends on HTTPD
120//config: help 120//config: help
121//config: This option allows the server to run as a specific user 121//config: This option allows the server to run as a specific user
122//config: rather than defaulting to the user that starts the server. 122//config: rather than defaulting to the user that starts the server.
123//config: Use of this option requires special privileges to change to a 123//config: Use of this option requires special privileges to change to a
124//config: different user. 124//config: different user.
125//config: 125//config:
126//config:config FEATURE_HTTPD_BASIC_AUTH 126//config:config FEATURE_HTTPD_BASIC_AUTH
127//config: bool "Enable Basic http Authentication" 127//config: bool "Enable Basic http Authentication"
128//config: default y 128//config: default y
129//config: depends on HTTPD 129//config: depends on HTTPD
130//config: help 130//config: help
131//config: Utilizes password settings from /etc/httpd.conf for basic 131//config: Utilizes password settings from /etc/httpd.conf for basic
132//config: authentication on a per url basis. 132//config: authentication on a per url basis.
133//config: Example for httpd.conf file: 133//config: Example for httpd.conf file:
134//config: /adm:toor:PaSsWd 134//config: /adm:toor:PaSsWd
135//config: 135//config:
136//config:config FEATURE_HTTPD_AUTH_MD5 136//config:config FEATURE_HTTPD_AUTH_MD5
137//config: bool "Support MD5 crypted passwords for http Authentication" 137//config: bool "Support MD5 crypted passwords for http Authentication"
138//config: default y 138//config: default y
139//config: depends on FEATURE_HTTPD_BASIC_AUTH 139//config: depends on FEATURE_HTTPD_BASIC_AUTH
140//config: help 140//config: help
141//config: Enables encrypted passwords, and wildcard user/passwords 141//config: Enables encrypted passwords, and wildcard user/passwords
142//config: in httpd.conf file. 142//config: in httpd.conf file.
143//config: User '*' means 'any system user name is ok', 143//config: User '*' means 'any system user name is ok',
144//config: password of '*' means 'use system password for this user' 144//config: password of '*' means 'use system password for this user'
145//config: Examples: 145//config: Examples:
146//config: /adm:toor:$1$P/eKnWXS$aI1aPGxT.dJD5SzqAKWrF0 146//config: /adm:toor:$1$P/eKnWXS$aI1aPGxT.dJD5SzqAKWrF0
147//config: /adm:root:* 147//config: /adm:root:*
148//config: /wiki:*:* 148//config: /wiki:*:*
149//config: 149//config:
150//config:config FEATURE_HTTPD_CGI 150//config:config FEATURE_HTTPD_CGI
151//config: bool "Support Common Gateway Interface (CGI)" 151//config: bool "Support Common Gateway Interface (CGI)"
152//config: default y 152//config: default y
153//config: depends on HTTPD 153//config: depends on HTTPD
154//config: help 154//config: help
155//config: This option allows scripts and executables to be invoked 155//config: This option allows scripts and executables to be invoked
156//config: when specific URLs are requested. 156//config: when specific URLs are requested.
157//config: 157//config:
158//config:config FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR 158//config:config FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
159//config: bool "Support running scripts through an interpreter" 159//config: bool "Support running scripts through an interpreter"
160//config: default y 160//config: default y
161//config: depends on FEATURE_HTTPD_CGI 161//config: depends on FEATURE_HTTPD_CGI
162//config: help 162//config: help
163//config: This option enables support for running scripts through an 163//config: This option enables support for running scripts through an
164//config: interpreter. Turn this on if you want PHP scripts to work 164//config: interpreter. Turn this on if you want PHP scripts to work
165//config: properly. You need to supply an additional line in your 165//config: properly. You need to supply an additional line in your
166//config: httpd.conf file: 166//config: httpd.conf file:
167//config: *.php:/path/to/your/php 167//config: *.php:/path/to/your/php
168//config: 168//config:
169//config:config FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV 169//config:config FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV
170//config: bool "Set REMOTE_PORT environment variable for CGI" 170//config: bool "Set REMOTE_PORT environment variable for CGI"
171//config: default y 171//config: default y
172//config: depends on FEATURE_HTTPD_CGI 172//config: depends on FEATURE_HTTPD_CGI
173//config: help 173//config: help
174//config: Use of this option can assist scripts in generating 174//config: Use of this option can assist scripts in generating
175//config: references that contain a unique port number. 175//config: references that contain a unique port number.
176//config: 176//config:
177//config:config FEATURE_HTTPD_ENCODE_URL_STR 177//config:config FEATURE_HTTPD_ENCODE_URL_STR
178//config: bool "Enable -e option (useful for CGIs written as shell scripts)" 178//config: bool "Enable -e option (useful for CGIs written as shell scripts)"
179//config: default y 179//config: default y
180//config: depends on HTTPD 180//config: depends on HTTPD
181//config: help 181//config: help
182//config: This option allows html encoding of arbitrary strings for display 182//config: This option allows html encoding of arbitrary strings for display
183//config: by the browser. Output goes to stdout. 183//config: by the browser. Output goes to stdout.
184//config: For example, httpd -e "<Hello World>" produces 184//config: For example, httpd -e "<Hello World>" produces
185//config: "&#60Hello&#32World&#62". 185//config: "&#60Hello&#32World&#62".
186//config: 186//config:
187//config:config FEATURE_HTTPD_ERROR_PAGES 187//config:config FEATURE_HTTPD_ERROR_PAGES
188//config: bool "Support custom error pages" 188//config: bool "Support custom error pages"
189//config: default y 189//config: default y
190//config: depends on HTTPD 190//config: depends on HTTPD
191//config: help 191//config: help
192//config: This option allows you to define custom error pages in 192//config: This option allows you to define custom error pages in
193//config: the configuration file instead of the default HTTP status 193//config: the configuration file instead of the default HTTP status
194//config: error pages. For instance, if you add the line: 194//config: error pages. For instance, if you add the line:
195//config: E404:/path/e404.html 195//config: E404:/path/e404.html
196//config: in the config file, the server will respond the specified 196//config: in the config file, the server will respond the specified
197//config: '/path/e404.html' file instead of the terse '404 NOT FOUND' 197//config: '/path/e404.html' file instead of the terse '404 NOT FOUND'
198//config: message. 198//config: message.
199//config: 199//config:
200//config:config FEATURE_HTTPD_PROXY 200//config:config FEATURE_HTTPD_PROXY
201//config: bool "Support reverse proxy" 201//config: bool "Support reverse proxy"
202//config: default y 202//config: default y
203//config: depends on HTTPD 203//config: depends on HTTPD
204//config: help 204//config: help
205//config: This option allows you to define URLs that will be forwarded 205//config: This option allows you to define URLs that will be forwarded
206//config: to another HTTP server. To setup add the following line to the 206//config: to another HTTP server. To setup add the following line to the
207//config: configuration file 207//config: configuration file
208//config: P:/url/:http://hostname[:port]/new/path/ 208//config: P:/url/:http://hostname[:port]/new/path/
209//config: Then a request to /url/myfile will be forwarded to 209//config: Then a request to /url/myfile will be forwarded to
210//config: http://hostname[:port]/new/path/myfile. 210//config: http://hostname[:port]/new/path/myfile.
211//config: 211//config:
212//config:config FEATURE_HTTPD_GZIP 212//config:config FEATURE_HTTPD_GZIP
213//config: bool "Support GZIP content encoding" 213//config: bool "Support GZIP content encoding"
214//config: default y 214//config: default y
215//config: depends on HTTPD 215//config: depends on HTTPD
216//config: help 216//config: help
217//config: Makes httpd send files using GZIP content encoding if the 217//config: Makes httpd send files using GZIP content encoding if the
218//config: client supports it and a pre-compressed <file>.gz exists. 218//config: client supports it and a pre-compressed <file>.gz exists.
219 219
220//applet:IF_HTTPD(APPLET(httpd, BB_DIR_USR_SBIN, BB_SUID_DROP)) 220//applet:IF_HTTPD(APPLET(httpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
221 221
diff --git a/networking/ifconfig.c b/networking/ifconfig.c
index a08a0a18d..d1e9c58dc 100644
--- a/networking/ifconfig.c
+++ b/networking/ifconfig.c
@@ -30,48 +30,48 @@
30//config: default y 30//config: default y
31//config: select PLATFORM_LINUX 31//config: select PLATFORM_LINUX
32//config: help 32//config: help
33//config: Ifconfig is used to configure the kernel-resident network interfaces. 33//config: Ifconfig is used to configure the kernel-resident network interfaces.
34//config: 34//config:
35//config:config FEATURE_IFCONFIG_STATUS 35//config:config FEATURE_IFCONFIG_STATUS
36//config: bool "Enable status reporting output (+7k)" 36//config: bool "Enable status reporting output (+7k)"
37//config: default y 37//config: default y
38//config: depends on IFCONFIG 38//config: depends on IFCONFIG
39//config: help 39//config: help
40//config: If ifconfig is called with no arguments it will display the status 40//config: If ifconfig is called with no arguments it will display the status
41//config: of the currently active interfaces. 41//config: of the currently active interfaces.
42//config: 42//config:
43//config:config FEATURE_IFCONFIG_SLIP 43//config:config FEATURE_IFCONFIG_SLIP
44//config: bool "Enable slip-specific options \"keepalive\" and \"outfill\"" 44//config: bool "Enable slip-specific options \"keepalive\" and \"outfill\""
45//config: default y 45//config: default y
46//config: depends on IFCONFIG 46//config: depends on IFCONFIG
47//config: help 47//config: help
48//config: Allow "keepalive" and "outfill" support for SLIP. If you're not 48//config: Allow "keepalive" and "outfill" support for SLIP. If you're not
49//config: planning on using serial lines, leave this unchecked. 49//config: planning on using serial lines, leave this unchecked.
50//config: 50//config:
51//config:config FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ 51//config:config FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
52//config: bool "Enable options \"mem_start\", \"io_addr\", and \"irq\"" 52//config: bool "Enable options \"mem_start\", \"io_addr\", and \"irq\""
53//config: default y 53//config: default y
54//config: depends on IFCONFIG 54//config: depends on IFCONFIG
55//config: help 55//config: help
56//config: Allow the start address for shared memory, start address for I/O, 56//config: Allow the start address for shared memory, start address for I/O,
57//config: and/or the interrupt line used by the specified device. 57//config: and/or the interrupt line used by the specified device.
58//config: 58//config:
59//config:config FEATURE_IFCONFIG_HW 59//config:config FEATURE_IFCONFIG_HW
60//config: bool "Enable option \"hw\" (ether only)" 60//config: bool "Enable option \"hw\" (ether only)"
61//config: default y 61//config: default y
62//config: depends on IFCONFIG 62//config: depends on IFCONFIG
63//config: help 63//config: help
64//config: Set the hardware address of this interface, if the device driver 64//config: Set the hardware address of this interface, if the device driver
65//config: supports this operation. Currently, we only support the 'ether' 65//config: supports this operation. Currently, we only support the 'ether'
66//config: class. 66//config: class.
67//config: 67//config:
68//config:config FEATURE_IFCONFIG_BROADCAST_PLUS 68//config:config FEATURE_IFCONFIG_BROADCAST_PLUS
69//config: bool "Set the broadcast automatically" 69//config: bool "Set the broadcast automatically"
70//config: default y 70//config: default y
71//config: depends on IFCONFIG 71//config: depends on IFCONFIG
72//config: help 72//config: help
73//config: Setting this will make ifconfig attempt to find the broadcast 73//config: Setting this will make ifconfig attempt to find the broadcast
74//config: automatically if the value '+' is used. 74//config: automatically if the value '+' is used.
75 75
76//applet:IF_IFCONFIG(APPLET(ifconfig, BB_DIR_SBIN, BB_SUID_DROP)) 76//applet:IF_IFCONFIG(APPLET(ifconfig, BB_DIR_SBIN, BB_SUID_DROP))
77 77
diff --git a/networking/ifenslave.c b/networking/ifenslave.c
index 7619fc376..26e5e8cf3 100644
--- a/networking/ifenslave.c
+++ b/networking/ifenslave.c
@@ -102,8 +102,8 @@
102//config: default y 102//config: default y
103//config: select PLATFORM_LINUX 103//config: select PLATFORM_LINUX
104//config: help 104//config: help
105//config: Userspace application to bind several interfaces 105//config: Userspace application to bind several interfaces
106//config: to a logical interface (use with kernel bonding driver). 106//config: to a logical interface (use with kernel bonding driver).
107 107
108//applet:IF_IFENSLAVE(APPLET(ifenslave, BB_DIR_SBIN, BB_SUID_DROP)) 108//applet:IF_IFENSLAVE(APPLET(ifenslave, BB_DIR_SBIN, BB_SUID_DROP))
109 109
diff --git a/networking/ifplugd.c b/networking/ifplugd.c
index 635417e05..c36bc9524 100644
--- a/networking/ifplugd.c
+++ b/networking/ifplugd.c
@@ -11,7 +11,7 @@
11//config: default y 11//config: default y
12//config: select PLATFORM_LINUX 12//config: select PLATFORM_LINUX
13//config: help 13//config: help
14//config: Network interface plug detection daemon. 14//config: Network interface plug detection daemon.
15 15
16//applet:IF_IFPLUGD(APPLET(ifplugd, BB_DIR_USR_SBIN, BB_SUID_DROP)) 16//applet:IF_IFPLUGD(APPLET(ifplugd, BB_DIR_USR_SBIN, BB_SUID_DROP))
17 17
diff --git a/networking/ifupdown.c b/networking/ifupdown.c
index e067543fa..f8c29ab00 100644
--- a/networking/ifupdown.c
+++ b/networking/ifupdown.c
@@ -21,63 +21,63 @@
21//config: bool "ifup (17 kb)" 21//config: bool "ifup (17 kb)"
22//config: default y 22//config: default y
23//config: help 23//config: help
24//config: Activate the specified interfaces. This applet makes use 24//config: Activate the specified interfaces. This applet makes use
25//config: of either "ifconfig" and "route" or the "ip" command to actually 25//config: of either "ifconfig" and "route" or the "ip" command to actually
26//config: configure network interfaces. Therefore, you will probably also want 26//config: configure network interfaces. Therefore, you will probably also want
27//config: to enable either IFCONFIG and ROUTE, or enable 27//config: to enable either IFCONFIG and ROUTE, or enable
28//config: FEATURE_IFUPDOWN_IP and the various IP options. Of 28//config: FEATURE_IFUPDOWN_IP and the various IP options. Of
29//config: course you could use non-busybox versions of these programs, so 29//config: course you could use non-busybox versions of these programs, so
30//config: against my better judgement (since this will surely result in plenty 30//config: against my better judgement (since this will surely result in plenty
31//config: of support questions on the mailing list), I do not force you to 31//config: of support questions on the mailing list), I do not force you to
32//config: enable these additional options. It is up to you to supply either 32//config: enable these additional options. It is up to you to supply either
33//config: "ifconfig", "route" and "run-parts" or the "ip" command, either 33//config: "ifconfig", "route" and "run-parts" or the "ip" command, either
34//config: via busybox or via standalone utilities. 34//config: via busybox or via standalone utilities.
35//config: 35//config:
36//config:config IFDOWN 36//config:config IFDOWN
37//config: bool "ifdown (15 kb)" 37//config: bool "ifdown (15 kb)"
38//config: default y 38//config: default y
39//config: help 39//config: help
40//config: Deactivate the specified interfaces. 40//config: Deactivate the specified interfaces.
41//config: 41//config:
42//config:config IFUPDOWN_IFSTATE_PATH 42//config:config IFUPDOWN_IFSTATE_PATH
43//config: string "Absolute path to ifstate file" 43//config: string "Absolute path to ifstate file"
44//config: default "/var/run/ifstate" 44//config: default "/var/run/ifstate"
45//config: depends on IFUP || IFDOWN 45//config: depends on IFUP || IFDOWN
46//config: help 46//config: help
47//config: ifupdown keeps state information in a file called ifstate. 47//config: ifupdown keeps state information in a file called ifstate.
48//config: Typically it is located in /var/run/ifstate, however 48//config: Typically it is located in /var/run/ifstate, however
49//config: some distributions tend to put it in other places 49//config: some distributions tend to put it in other places
50//config: (debian, for example, uses /etc/network/run/ifstate). 50//config: (debian, for example, uses /etc/network/run/ifstate).
51//config: This config option defines location of ifstate. 51//config: This config option defines location of ifstate.
52//config: 52//config:
53//config:config FEATURE_IFUPDOWN_IP 53//config:config FEATURE_IFUPDOWN_IP
54//config: bool "Use ip tool (else ifconfig/route is used)" 54//config: bool "Use ip tool (else ifconfig/route is used)"
55//config: default y 55//config: default y
56//config: depends on IFUP || IFDOWN 56//config: depends on IFUP || IFDOWN
57//config: help 57//config: help
58//config: Use the iproute "ip" command to implement "ifup" and "ifdown", rather 58//config: Use the iproute "ip" command to implement "ifup" and "ifdown", rather
59//config: than the default of using the older "ifconfig" and "route" utilities. 59//config: than the default of using the older "ifconfig" and "route" utilities.
60//config: 60//config:
61//config: If Y: you must install either the full-blown iproute2 package 61//config: If Y: you must install either the full-blown iproute2 package
62//config: or enable "ip" applet in Busybox, or the "ifup" and "ifdown" applets 62//config: or enable "ip" applet in Busybox, or the "ifup" and "ifdown" applets
63//config: will not work. 63//config: will not work.
64//config: 64//config:
65//config: If N: you must install either the full-blown ifconfig and route 65//config: If N: you must install either the full-blown ifconfig and route
66//config: utilities, or enable these applets in Busybox. 66//config: utilities, or enable these applets in Busybox.
67//config: 67//config:
68//config:config FEATURE_IFUPDOWN_IPV4 68//config:config FEATURE_IFUPDOWN_IPV4
69//config: bool "Support IPv4" 69//config: bool "Support IPv4"
70//config: default y 70//config: default y
71//config: depends on IFUP || IFDOWN 71//config: depends on IFUP || IFDOWN
72//config: help 72//config: help
73//config: If you want ifup/ifdown to talk IPv4, leave this on. 73//config: If you want ifup/ifdown to talk IPv4, leave this on.
74//config: 74//config:
75//config:config FEATURE_IFUPDOWN_IPV6 75//config:config FEATURE_IFUPDOWN_IPV6
76//config: bool "Support IPv6" 76//config: bool "Support IPv6"
77//config: default y 77//config: default y
78//config: depends on (IFUP || IFDOWN) && FEATURE_IPV6 78//config: depends on (IFUP || IFDOWN) && FEATURE_IPV6
79//config: help 79//config: help
80//config: If you need support for IPv6, turn this option on. 80//config: If you need support for IPv6, turn this option on.
81//config: 81//config:
82//UNUSED: 82//UNUSED:
83////////:config FEATURE_IFUPDOWN_IPX 83////////:config FEATURE_IFUPDOWN_IPX
@@ -93,18 +93,18 @@
93//config: default y 93//config: default y
94//config: depends on IFUP || IFDOWN 94//config: depends on IFUP || IFDOWN
95//config: help 95//config: help
96//config: This enables support for the "mapping" stanza, unless you have 96//config: This enables support for the "mapping" stanza, unless you have
97//config: a weird network setup you don't need it. 97//config: a weird network setup you don't need it.
98//config: 98//config:
99//config:config FEATURE_IFUPDOWN_EXTERNAL_DHCP 99//config:config FEATURE_IFUPDOWN_EXTERNAL_DHCP
100//config: bool "Support external DHCP clients" 100//config: bool "Support external DHCP clients"
101//config: default n 101//config: default n
102//config: depends on IFUP || IFDOWN 102//config: depends on IFUP || IFDOWN
103//config: help 103//config: help
104//config: This enables support for the external dhcp clients. Clients are 104//config: This enables support for the external dhcp clients. Clients are
105//config: tried in the following order: dhcpcd, dhclient, pump and udhcpc. 105//config: tried in the following order: dhcpcd, dhclient, pump and udhcpc.
106//config: Otherwise, if udhcpc applet is enabled, it is used. 106//config: Otherwise, if udhcpc applet is enabled, it is used.
107//config: Otherwise, ifup/ifdown will have no support for DHCP. 107//config: Otherwise, ifup/ifdown will have no support for DHCP.
108 108
109// APPLET_ODDNAME:name main location suid_type help 109// APPLET_ODDNAME:name main location suid_type help
110//applet:IF_IFUP( APPLET_ODDNAME(ifup, ifupdown, BB_DIR_SBIN, BB_SUID_DROP, ifup)) 110//applet:IF_IFUP( APPLET_ODDNAME(ifup, ifupdown, BB_DIR_SBIN, BB_SUID_DROP, ifup))
diff --git a/networking/inetd.c b/networking/inetd.c
index 9a9956857..2991edc09 100644
--- a/networking/inetd.c
+++ b/networking/inetd.c
@@ -158,42 +158,42 @@
158//config: default y 158//config: default y
159//config: select FEATURE_SYSLOG 159//config: select FEATURE_SYSLOG
160//config: help 160//config: help
161//config: Internet superserver daemon 161//config: Internet superserver daemon
162//config: 162//config:
163//config:config FEATURE_INETD_SUPPORT_BUILTIN_ECHO 163//config:config FEATURE_INETD_SUPPORT_BUILTIN_ECHO
164//config: bool "Support echo service" 164//config: bool "Support echo service"
165//config: default y 165//config: default y
166//config: depends on INETD 166//config: depends on INETD
167//config: help 167//config: help
168//config: Echo received data internal inetd service 168//config: Echo received data internal inetd service
169//config: 169//config:
170//config:config FEATURE_INETD_SUPPORT_BUILTIN_DISCARD 170//config:config FEATURE_INETD_SUPPORT_BUILTIN_DISCARD
171//config: bool "Support discard service" 171//config: bool "Support discard service"
172//config: default y 172//config: default y
173//config: depends on INETD 173//config: depends on INETD
174//config: help 174//config: help
175//config: Internet /dev/null internal inetd service 175//config: Internet /dev/null internal inetd service
176//config: 176//config:
177//config:config FEATURE_INETD_SUPPORT_BUILTIN_TIME 177//config:config FEATURE_INETD_SUPPORT_BUILTIN_TIME
178//config: bool "Support time service" 178//config: bool "Support time service"
179//config: default y 179//config: default y
180//config: depends on INETD 180//config: depends on INETD
181//config: help 181//config: help
182//config: Return 32 bit time since 1900 internal inetd service 182//config: Return 32 bit time since 1900 internal inetd service
183//config: 183//config:
184//config:config FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME 184//config:config FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME
185//config: bool "Support daytime service" 185//config: bool "Support daytime service"
186//config: default y 186//config: default y
187//config: depends on INETD 187//config: depends on INETD
188//config: help 188//config: help
189//config: Return human-readable time internal inetd service 189//config: Return human-readable time internal inetd service
190//config: 190//config:
191//config:config FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN 191//config:config FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN
192//config: bool "Support chargen service" 192//config: bool "Support chargen service"
193//config: default y 193//config: default y
194//config: depends on INETD 194//config: depends on INETD
195//config: help 195//config: help
196//config: Familiar character generator internal inetd service 196//config: Familiar character generator internal inetd service
197//config: 197//config:
198//config:config FEATURE_INETD_RPC 198//config:config FEATURE_INETD_RPC
199//config: bool "Support RPC services" 199//config: bool "Support RPC services"
@@ -201,7 +201,7 @@
201//config: depends on INETD 201//config: depends on INETD
202//config: select FEATURE_HAVE_RPC 202//config: select FEATURE_HAVE_RPC
203//config: help 203//config: help
204//config: Support Sun-RPC based services 204//config: Support Sun-RPC based services
205 205
206//applet:IF_INETD(APPLET(inetd, BB_DIR_USR_SBIN, BB_SUID_DROP)) 206//applet:IF_INETD(APPLET(inetd, BB_DIR_USR_SBIN, BB_SUID_DROP))
207 207
diff --git a/networking/ip.c b/networking/ip.c
index de3a65bae..cca7cbe12 100644
--- a/networking/ip.c
+++ b/networking/ip.c
@@ -13,9 +13,9 @@
13//config: default y 13//config: default y
14//config: select PLATFORM_LINUX 14//config: select PLATFORM_LINUX
15//config: help 15//config: help
16//config: The "ip" applet is a TCP/IP interface configuration and routing 16//config: The "ip" applet is a TCP/IP interface configuration and routing
17//config: utility. You generally don't need "ip" to use busybox with 17//config: utility. You generally don't need "ip" to use busybox with
18//config: TCP/IP. 18//config: TCP/IP.
19//config: 19//config:
20//config:config IPADDR 20//config:config IPADDR
21//config: bool "ipaddr (14 kb)" 21//config: bool "ipaddr (14 kb)"
@@ -23,7 +23,7 @@
23//config: select FEATURE_IP_ADDRESS 23//config: select FEATURE_IP_ADDRESS
24//config: select PLATFORM_LINUX 24//config: select PLATFORM_LINUX
25//config: help 25//config: help
26//config: Support short form of ip addr: ipaddr 26//config: Support short form of ip addr: ipaddr
27//config: 27//config:
28//config:config IPLINK 28//config:config IPLINK
29//config: bool "iplink (16 kb)" 29//config: bool "iplink (16 kb)"
@@ -31,7 +31,7 @@
31//config: select FEATURE_IP_LINK 31//config: select FEATURE_IP_LINK
32//config: select PLATFORM_LINUX 32//config: select PLATFORM_LINUX
33//config: help 33//config: help
34//config: Support short form of ip link: iplink 34//config: Support short form of ip link: iplink
35//config: 35//config:
36//config:config IPROUTE 36//config:config IPROUTE
37//config: bool "iproute (15 kb)" 37//config: bool "iproute (15 kb)"
@@ -39,7 +39,7 @@
39//config: select FEATURE_IP_ROUTE 39//config: select FEATURE_IP_ROUTE
40//config: select PLATFORM_LINUX 40//config: select PLATFORM_LINUX
41//config: help 41//config: help
42//config: Support short form of ip route: iproute 42//config: Support short form of ip route: iproute
43//config: 43//config:
44//config:config IPTUNNEL 44//config:config IPTUNNEL
45//config: bool "iptunnel (9.6 kb)" 45//config: bool "iptunnel (9.6 kb)"
@@ -47,7 +47,7 @@
47//config: select FEATURE_IP_TUNNEL 47//config: select FEATURE_IP_TUNNEL
48//config: select PLATFORM_LINUX 48//config: select PLATFORM_LINUX
49//config: help 49//config: help
50//config: Support short form of ip tunnel: iptunnel 50//config: Support short form of ip tunnel: iptunnel
51//config: 51//config:
52//config:config IPRULE 52//config:config IPRULE
53//config: bool "iprule (10 kb)" 53//config: bool "iprule (10 kb)"
@@ -55,7 +55,7 @@
55//config: select FEATURE_IP_RULE 55//config: select FEATURE_IP_RULE
56//config: select PLATFORM_LINUX 56//config: select PLATFORM_LINUX
57//config: help 57//config: help
58//config: Support short form of ip rule: iprule 58//config: Support short form of ip rule: iprule
59//config: 59//config:
60//config:config IPNEIGH 60//config:config IPNEIGH
61//config: bool "ipneigh (8.3 kb)" 61//config: bool "ipneigh (8.3 kb)"
@@ -63,66 +63,66 @@
63//config: select FEATURE_IP_NEIGH 63//config: select FEATURE_IP_NEIGH
64//config: select PLATFORM_LINUX 64//config: select PLATFORM_LINUX
65//config: help 65//config: help
66//config: Support short form of ip neigh: ipneigh 66//config: Support short form of ip neigh: ipneigh
67//config: 67//config:
68//config:config FEATURE_IP_ADDRESS 68//config:config FEATURE_IP_ADDRESS
69//config: bool "ip address" 69//config: bool "ip address"
70//config: default y 70//config: default y
71//config: depends on IP || IPADDR 71//config: depends on IP || IPADDR
72//config: help 72//config: help
73//config: Address manipulation support for the "ip" applet. 73//config: Address manipulation support for the "ip" applet.
74//config: 74//config:
75//config:config FEATURE_IP_LINK 75//config:config FEATURE_IP_LINK
76//config: bool "ip link" 76//config: bool "ip link"
77//config: default y 77//config: default y
78//config: depends on IP || IPLINK 78//config: depends on IP || IPLINK
79//config: help 79//config: help
80//config: Configure network devices with "ip". 80//config: Configure network devices with "ip".
81//config: 81//config:
82//config:config FEATURE_IP_ROUTE 82//config:config FEATURE_IP_ROUTE
83//config: bool "ip route" 83//config: bool "ip route"
84//config: default y 84//config: default y
85//config: depends on IP || IPROUTE 85//config: depends on IP || IPROUTE
86//config: help 86//config: help
87//config: Add support for routing table management to "ip". 87//config: Add support for routing table management to "ip".
88//config: 88//config:
89//config:config FEATURE_IP_ROUTE_DIR 89//config:config FEATURE_IP_ROUTE_DIR
90//config: string "ip route configuration directory" 90//config: string "ip route configuration directory"
91//config: default "/etc/iproute2" 91//config: default "/etc/iproute2"
92//config: depends on FEATURE_IP_ROUTE 92//config: depends on FEATURE_IP_ROUTE
93//config: help 93//config: help
94//config: Location of the "ip" applet routing configuration. 94//config: Location of the "ip" applet routing configuration.
95//config: 95//config:
96//config:config FEATURE_IP_TUNNEL 96//config:config FEATURE_IP_TUNNEL
97//config: bool "ip tunnel" 97//config: bool "ip tunnel"
98//config: default y 98//config: default y
99//config: depends on IP || IPTUNNEL 99//config: depends on IP || IPTUNNEL
100//config: help 100//config: help
101//config: Add support for tunneling commands to "ip". 101//config: Add support for tunneling commands to "ip".
102//config: 102//config:
103//config:config FEATURE_IP_RULE 103//config:config FEATURE_IP_RULE
104//config: bool "ip rule" 104//config: bool "ip rule"
105//config: default y 105//config: default y
106//config: depends on IP || IPRULE 106//config: depends on IP || IPRULE
107//config: help 107//config: help
108//config: Add support for rule commands to "ip". 108//config: Add support for rule commands to "ip".
109//config: 109//config:
110//config:config FEATURE_IP_NEIGH 110//config:config FEATURE_IP_NEIGH
111//config: bool "ip neighbor" 111//config: bool "ip neighbor"
112//config: default y 112//config: default y
113//config: depends on IP || IPNEIGH 113//config: depends on IP || IPNEIGH
114//config: help 114//config: help
115//config: Add support for neighbor commands to "ip". 115//config: Add support for neighbor commands to "ip".
116//config: 116//config:
117//config:config FEATURE_IP_RARE_PROTOCOLS 117//config:config FEATURE_IP_RARE_PROTOCOLS
118//config: bool "Support displaying rarely used link types" 118//config: bool "Support displaying rarely used link types"
119//config: default n 119//config: default n
120//config: depends on IP || IPADDR || IPLINK || IPROUTE || IPTUNNEL || IPRULE || IPNEIGH 120//config: depends on IP || IPADDR || IPLINK || IPROUTE || IPTUNNEL || IPRULE || IPNEIGH
121//config: help 121//config: help
122//config: If you are not going to use links of type "frad", "econet", 122//config: If you are not going to use links of type "frad", "econet",
123//config: "bif" etc, you probably don't need to enable this. 123//config: "bif" etc, you probably don't need to enable this.
124//config: Ethernet, wireless, infrared, ppp/slip, ip tunnelling 124//config: Ethernet, wireless, infrared, ppp/slip, ip tunnelling
125//config: link types are supported without this option selected. 125//config: link types are supported without this option selected.
126 126
127//applet:IF_IP(APPLET(ip, BB_DIR_SBIN, BB_SUID_DROP)) 127//applet:IF_IP(APPLET(ip, BB_DIR_SBIN, BB_SUID_DROP))
128//applet:IF_IPADDR(APPLET(ipaddr, BB_DIR_SBIN, BB_SUID_DROP)) 128//applet:IF_IPADDR(APPLET(ipaddr, BB_DIR_SBIN, BB_SUID_DROP))
diff --git a/networking/ipcalc.c b/networking/ipcalc.c
index 5975e6fd7..9888a6ff2 100644
--- a/networking/ipcalc.c
+++ b/networking/ipcalc.c
@@ -15,8 +15,8 @@
15//config: bool "ipcalc (4.3 kb)" 15//config: bool "ipcalc (4.3 kb)"
16//config: default y 16//config: default y
17//config: help 17//config: help
18//config: ipcalc takes an IP address and netmask and calculates the 18//config: ipcalc takes an IP address and netmask and calculates the
19//config: resulting broadcast, network, and host range. 19//config: resulting broadcast, network, and host range.
20//config: 20//config:
21//config:config FEATURE_IPCALC_LONG_OPTIONS 21//config:config FEATURE_IPCALC_LONG_OPTIONS
22//config: bool "Enable long options" 22//config: bool "Enable long options"
@@ -28,8 +28,8 @@
28//config: default y 28//config: default y
29//config: depends on IPCALC 29//config: depends on IPCALC
30//config: help 30//config: help
31//config: Adds the options hostname, prefix and silent to the output of 31//config: Adds the options hostname, prefix and silent to the output of
32//config: "ipcalc". 32//config: "ipcalc".
33 33
34//applet:IF_IPCALC(APPLET(ipcalc, BB_DIR_BIN, BB_SUID_DROP)) 34//applet:IF_IPCALC(APPLET(ipcalc, BB_DIR_BIN, BB_SUID_DROP))
35 35
diff --git a/networking/isrv_identd.c b/networking/isrv_identd.c
index 3384fddf2..133d62a65 100644
--- a/networking/isrv_identd.c
+++ b/networking/isrv_identd.c
@@ -11,8 +11,8 @@
11//config: default y 11//config: default y
12//config: select FEATURE_SYSLOG 12//config: select FEATURE_SYSLOG
13//config: help 13//config: help
14//config: fakeidentd listens on the ident port and returns a predefined 14//config: fakeidentd listens on the ident port and returns a predefined
15//config: fake value on any query. 15//config: fake value on any query.
16 16
17//applet:IF_FAKEIDENTD(APPLET(fakeidentd, BB_DIR_USR_SBIN, BB_SUID_DROP)) 17//applet:IF_FAKEIDENTD(APPLET(fakeidentd, BB_DIR_USR_SBIN, BB_SUID_DROP))
18 18
diff --git a/networking/nameif.c b/networking/nameif.c
index e65aef417..31ee98a39 100644
--- a/networking/nameif.c
+++ b/networking/nameif.c
@@ -16,29 +16,29 @@
16//config: select PLATFORM_LINUX 16//config: select PLATFORM_LINUX
17//config: select FEATURE_SYSLOG 17//config: select FEATURE_SYSLOG
18//config: help 18//config: help
19//config: nameif is used to rename network interface by its MAC address. 19//config: nameif is used to rename network interface by its MAC address.
20//config: Renamed interfaces MUST be in the down state. 20//config: Renamed interfaces MUST be in the down state.
21//config: It is possible to use a file (default: /etc/mactab) 21//config: It is possible to use a file (default: /etc/mactab)
22//config: with list of new interface names and MACs. 22//config: with list of new interface names and MACs.
23//config: Maximum interface name length: IFNAMSIZ = 16 23//config: Maximum interface name length: IFNAMSIZ = 16
24//config: File fields are separated by space or tab. 24//config: File fields are separated by space or tab.
25//config: File format: 25//config: File format:
26//config: # Comment 26//config: # Comment
27//config: new_interface_name XX:XX:XX:XX:XX:XX 27//config: new_interface_name XX:XX:XX:XX:XX:XX
28//config: 28//config:
29//config:config FEATURE_NAMEIF_EXTENDED 29//config:config FEATURE_NAMEIF_EXTENDED
30//config: bool "Extended nameif" 30//config: bool "Extended nameif"
31//config: default y 31//config: default y
32//config: depends on NAMEIF 32//config: depends on NAMEIF
33//config: help 33//config: help
34//config: This extends the nameif syntax to support the bus_info, driver, 34//config: This extends the nameif syntax to support the bus_info, driver,
35//config: phyaddr selectors. The syntax is compatible to the normal nameif. 35//config: phyaddr selectors. The syntax is compatible to the normal nameif.
36//config: File format: 36//config: File format:
37//config: new_interface_name driver=asix bus=usb-0000:00:08.2-3 37//config: new_interface_name driver=asix bus=usb-0000:00:08.2-3
38//config: new_interface_name bus=usb-0000:00:08.2-3 00:80:C8:38:91:B5 38//config: new_interface_name bus=usb-0000:00:08.2-3 00:80:C8:38:91:B5
39//config: new_interface_name phy_address=2 00:80:C8:38:91:B5 39//config: new_interface_name phy_address=2 00:80:C8:38:91:B5
40//config: new_interface_name mac=00:80:C8:38:91:B5 40//config: new_interface_name mac=00:80:C8:38:91:B5
41//config: new_interface_name 00:80:C8:38:91:B5 41//config: new_interface_name 00:80:C8:38:91:B5
42 42
43//applet:IF_NAMEIF(APPLET(nameif, BB_DIR_SBIN, BB_SUID_DROP)) 43//applet:IF_NAMEIF(APPLET(nameif, BB_DIR_SBIN, BB_SUID_DROP))
44 44
diff --git a/networking/nbd-client.c b/networking/nbd-client.c
index ca71e4232..a5e25e6aa 100644
--- a/networking/nbd-client.c
+++ b/networking/nbd-client.c
@@ -15,7 +15,7 @@
15//config: bool "nbd-client (4.6 kb)" 15//config: bool "nbd-client (4.6 kb)"
16//config: default y 16//config: default y
17//config: help 17//config: help
18//config: Network block device client 18//config: Network block device client
19 19
20#define NBD_SET_SOCK _IO(0xab, 0) 20#define NBD_SET_SOCK _IO(0xab, 0)
21#define NBD_SET_BLKSIZE _IO(0xab, 1) 21#define NBD_SET_BLKSIZE _IO(0xab, 1)
diff --git a/networking/nc.c b/networking/nc.c
index ac80d425a..a13d77a00 100644
--- a/networking/nc.c
+++ b/networking/nc.c
@@ -10,34 +10,34 @@
10//config: bool "nc (11 kb)" 10//config: bool "nc (11 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: A simple Unix utility which reads and writes data across network 13//config: A simple Unix utility which reads and writes data across network
14//config: connections. 14//config: connections.
15//config: 15//config:
16//config:config NC_SERVER 16//config:config NC_SERVER
17//config: bool "Netcat server options (-l)" 17//config: bool "Netcat server options (-l)"
18//config: default y 18//config: default y
19//config: depends on NC 19//config: depends on NC
20//config: help 20//config: help
21//config: Allow netcat to act as a server. 21//config: Allow netcat to act as a server.
22//config: 22//config:
23//config:config NC_EXTRA 23//config:config NC_EXTRA
24//config: bool "Netcat extensions (-eiw and -f FILE)" 24//config: bool "Netcat extensions (-eiw and -f FILE)"
25//config: default y 25//config: default y
26//config: depends on NC 26//config: depends on NC
27//config: help 27//config: help
28//config: Add -e (support for executing the rest of the command line after 28//config: Add -e (support for executing the rest of the command line after
29//config: making or receiving a successful connection), -i (delay interval for 29//config: making or receiving a successful connection), -i (delay interval for
30//config: lines sent), -w (timeout for initial connection). 30//config: lines sent), -w (timeout for initial connection).
31//config: 31//config:
32//config:config NC_110_COMPAT 32//config:config NC_110_COMPAT
33//config: bool "Netcat 1.10 compatibility (+2.5k)" 33//config: bool "Netcat 1.10 compatibility (+2.5k)"
34//config: default n # off specially for Rob 34//config: default n # off specially for Rob
35//config: depends on NC 35//config: depends on NC
36//config: help 36//config: help
37//config: This option makes nc closely follow original nc-1.10. 37//config: This option makes nc closely follow original nc-1.10.
38//config: The code is about 2.5k bigger. It enables 38//config: The code is about 2.5k bigger. It enables
39//config: -s ADDR, -n, -u, -v, -o FILE, -z options, but loses 39//config: -s ADDR, -n, -u, -v, -o FILE, -z options, but loses
40//config: busybox-specific extensions: -f FILE. 40//config: busybox-specific extensions: -f FILE.
41 41
42//applet:IF_NC(APPLET(nc, BB_DIR_USR_BIN, BB_SUID_DROP)) 42//applet:IF_NC(APPLET(nc, BB_DIR_USR_BIN, BB_SUID_DROP))
43 43
diff --git a/networking/netstat.c b/networking/netstat.c
index 003c2ba6f..33281e333 100644
--- a/networking/netstat.c
+++ b/networking/netstat.c
@@ -18,23 +18,23 @@
18//config: default y 18//config: default y
19//config: select PLATFORM_LINUX 19//config: select PLATFORM_LINUX
20//config: help 20//config: help
21//config: netstat prints information about the Linux networking subsystem. 21//config: netstat prints information about the Linux networking subsystem.
22//config: 22//config:
23//config:config FEATURE_NETSTAT_WIDE 23//config:config FEATURE_NETSTAT_WIDE
24//config: bool "Enable wide output" 24//config: bool "Enable wide output"
25//config: default y 25//config: default y
26//config: depends on NETSTAT 26//config: depends on NETSTAT
27//config: help 27//config: help
28//config: Add support for wide columns. Useful when displaying IPv6 addresses 28//config: Add support for wide columns. Useful when displaying IPv6 addresses
29//config: (-W option). 29//config: (-W option).
30//config: 30//config:
31//config:config FEATURE_NETSTAT_PRG 31//config:config FEATURE_NETSTAT_PRG
32//config: bool "Enable PID/Program name output" 32//config: bool "Enable PID/Program name output"
33//config: default y 33//config: default y
34//config: depends on NETSTAT 34//config: depends on NETSTAT
35//config: help 35//config: help
36//config: Add support for -p flag to print out PID and program name. 36//config: Add support for -p flag to print out PID and program name.
37//config: +700 bytes of code. 37//config: +700 bytes of code.
38 38
39//applet:IF_NETSTAT(APPLET(netstat, BB_DIR_BIN, BB_SUID_DROP)) 39//applet:IF_NETSTAT(APPLET(netstat, BB_DIR_BIN, BB_SUID_DROP))
40 40
diff --git a/networking/nslookup.c b/networking/nslookup.c
index 4e479730c..45c218e6c 100644
--- a/networking/nslookup.c
+++ b/networking/nslookup.c
@@ -14,7 +14,7 @@
14//config: bool "nslookup (4.5 kb)" 14//config: bool "nslookup (4.5 kb)"
15//config: default y 15//config: default y
16//config: help 16//config: help
17//config: nslookup is a tool to query Internet name servers. 17//config: nslookup is a tool to query Internet name servers.
18 18
19//applet:IF_NSLOOKUP(APPLET(nslookup, BB_DIR_USR_BIN, BB_SUID_DROP)) 19//applet:IF_NSLOOKUP(APPLET(nslookup, BB_DIR_USR_BIN, BB_SUID_DROP))
20 20
diff --git a/networking/ntpd.c b/networking/ntpd.c
index fdcb27fb2..f21f9513d 100644
--- a/networking/ntpd.c
+++ b/networking/ntpd.c
@@ -45,23 +45,23 @@
45//config: default y 45//config: default y
46//config: select PLATFORM_LINUX 46//config: select PLATFORM_LINUX
47//config: help 47//config: help
48//config: The NTP client/server daemon. 48//config: The NTP client/server daemon.
49//config: 49//config:
50//config:config FEATURE_NTPD_SERVER 50//config:config FEATURE_NTPD_SERVER
51//config: bool "Make ntpd usable as a NTP server" 51//config: bool "Make ntpd usable as a NTP server"
52//config: default y 52//config: default y
53//config: depends on NTPD 53//config: depends on NTPD
54//config: help 54//config: help
55//config: Make ntpd usable as a NTP server. If you disable this option 55//config: Make ntpd usable as a NTP server. If you disable this option
56//config: ntpd will be usable only as a NTP client. 56//config: ntpd will be usable only as a NTP client.
57//config: 57//config:
58//config:config FEATURE_NTPD_CONF 58//config:config FEATURE_NTPD_CONF
59//config: bool "Make ntpd understand /etc/ntp.conf" 59//config: bool "Make ntpd understand /etc/ntp.conf"
60//config: default y 60//config: default y
61//config: depends on NTPD 61//config: depends on NTPD
62//config: help 62//config: help
63//config: Make ntpd look in /etc/ntp.conf for peers. Only "server address" 63//config: Make ntpd look in /etc/ntp.conf for peers. Only "server address"
64//config: is supported. 64//config: is supported.
65 65
66//applet:IF_NTPD(APPLET(ntpd, BB_DIR_USR_SBIN, BB_SUID_DROP)) 66//applet:IF_NTPD(APPLET(ntpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
67 67
diff --git a/networking/ping.c b/networking/ping.c
index 31a085984..cdfb297e9 100644
--- a/networking/ping.c
+++ b/networking/ping.c
@@ -51,23 +51,23 @@
51//config: default y 51//config: default y
52//config: select PLATFORM_LINUX 52//config: select PLATFORM_LINUX
53//config: help 53//config: help
54//config: ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram to 54//config: ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram to
55//config: elicit an ICMP ECHO_RESPONSE from a host or gateway. 55//config: elicit an ICMP ECHO_RESPONSE from a host or gateway.
56//config: 56//config:
57//config:config PING6 57//config:config PING6
58//config: bool "ping6 (10 kb)" 58//config: bool "ping6 (10 kb)"
59//config: default y 59//config: default y
60//config: depends on FEATURE_IPV6 60//config: depends on FEATURE_IPV6
61//config: help 61//config: help
62//config: Alias to "ping -6". 62//config: Alias to "ping -6".
63//config: 63//config:
64//config:config FEATURE_FANCY_PING 64//config:config FEATURE_FANCY_PING
65//config: bool "Enable fancy ping output" 65//config: bool "Enable fancy ping output"
66//config: default y 66//config: default y
67//config: depends on PING || PING6 67//config: depends on PING || PING6
68//config: help 68//config: help
69//config: Make the output from the ping applet include statistics, and at the 69//config: Make the output from the ping applet include statistics, and at the
70//config: same time provide full support for ICMP packets. 70//config: same time provide full support for ICMP packets.
71 71
72/* Needs socket(AF_INET, SOCK_RAW, IPPROTO_ICMP), therefore BB_SUID_MAYBE: */ 72/* Needs socket(AF_INET, SOCK_RAW, IPPROTO_ICMP), therefore BB_SUID_MAYBE: */
73//applet:IF_PING(APPLET(ping, BB_DIR_BIN, BB_SUID_MAYBE)) 73//applet:IF_PING(APPLET(ping, BB_DIR_BIN, BB_SUID_MAYBE))
diff --git a/networking/pscan.c b/networking/pscan.c
index 2859ff30f..17985d2c8 100644
--- a/networking/pscan.c
+++ b/networking/pscan.c
@@ -9,7 +9,7 @@
9//config: bool "pscan (6.6 kb)" 9//config: bool "pscan (6.6 kb)"
10//config: default y 10//config: default y
11//config: help 11//config: help
12//config: Simple network port scanner. 12//config: Simple network port scanner.
13 13
14//applet:IF_PSCAN(APPLET(pscan, BB_DIR_USR_BIN, BB_SUID_DROP)) 14//applet:IF_PSCAN(APPLET(pscan, BB_DIR_USR_BIN, BB_SUID_DROP))
15 15
diff --git a/networking/route.c b/networking/route.c
index 38b95b2f2..32789eecc 100644
--- a/networking/route.c
+++ b/networking/route.c
@@ -29,7 +29,7 @@
29//config: default y 29//config: default y
30//config: select PLATFORM_LINUX 30//config: select PLATFORM_LINUX
31//config: help 31//config: help
32//config: Route displays or manipulates the kernel's IP routing tables. 32//config: Route displays or manipulates the kernel's IP routing tables.
33 33
34//applet:IF_ROUTE(APPLET(route, BB_DIR_SBIN, BB_SUID_DROP)) 34//applet:IF_ROUTE(APPLET(route, BB_DIR_SBIN, BB_SUID_DROP))
35 35
diff --git a/networking/slattach.c b/networking/slattach.c
index 3be5bd27e..71b5bf427 100644
--- a/networking/slattach.c
+++ b/networking/slattach.c
@@ -17,8 +17,8 @@
17//config: default y 17//config: default y
18//config: select PLATFORM_LINUX 18//config: select PLATFORM_LINUX
19//config: help 19//config: help
20//config: slattach is a small utility to attach network interfaces to serial 20//config: slattach is a small utility to attach network interfaces to serial
21//config: lines. 21//config: lines.
22 22
23//applet:IF_SLATTACH(APPLET(slattach, BB_DIR_SBIN, BB_SUID_DROP)) 23//applet:IF_SLATTACH(APPLET(slattach, BB_DIR_SBIN, BB_SUID_DROP))
24 24
diff --git a/networking/ssl_client.c b/networking/ssl_client.c
index 6cbdafbfa..d479846d7 100644
--- a/networking/ssl_client.c
+++ b/networking/ssl_client.c
@@ -8,7 +8,7 @@
8//config: default y 8//config: default y
9//config: select TLS 9//config: select TLS
10//config: help 10//config: help
11//config: This tool pipes data to/from a socket, TLS-encrypting it. 11//config: This tool pipes data to/from a socket, TLS-encrypting it.
12 12
13//applet:IF_SSL_CLIENT(APPLET(ssl_client, BB_DIR_USR_BIN, BB_SUID_DROP)) 13//applet:IF_SSL_CLIENT(APPLET(ssl_client, BB_DIR_USR_BIN, BB_SUID_DROP))
14 14
diff --git a/networking/tcpudp.c b/networking/tcpudp.c
index b970c4723..270325164 100644
--- a/networking/tcpudp.c
+++ b/networking/tcpudp.c
@@ -32,15 +32,15 @@
32//config: bool "tcpsvd (13 kb)" 32//config: bool "tcpsvd (13 kb)"
33//config: default y 33//config: default y
34//config: help 34//config: help
35//config: tcpsvd listens on a TCP port and runs a program for each new 35//config: tcpsvd listens on a TCP port and runs a program for each new
36//config: connection. 36//config: connection.
37//config: 37//config:
38//config:config UDPSVD 38//config:config UDPSVD
39//config: bool "udpsvd (13 kb)" 39//config: bool "udpsvd (13 kb)"
40//config: default y 40//config: default y
41//config: help 41//config: help
42//config: udpsvd listens on an UDP port and runs a program for each new 42//config: udpsvd listens on an UDP port and runs a program for each new
43//config: connection. 43//config: connection.
44 44
45//applet:IF_TCPSVD(APPLET_ODDNAME(tcpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, tcpsvd)) 45//applet:IF_TCPSVD(APPLET_ODDNAME(tcpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, tcpsvd))
46//applet:IF_UDPSVD(APPLET_ODDNAME(udpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, udpsvd)) 46//applet:IF_UDPSVD(APPLET_ODDNAME(udpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, udpsvd))
diff --git a/networking/telnet.c b/networking/telnet.c
index 1c4811d5d..9f191f7ad 100644
--- a/networking/telnet.c
+++ b/networking/telnet.c
@@ -24,27 +24,27 @@
24//config: bool "telnet (8.7 kb)" 24//config: bool "telnet (8.7 kb)"
25//config: default y 25//config: default y
26//config: help 26//config: help
27//config: Telnet is an interface to the TELNET protocol, but is also commonly 27//config: Telnet is an interface to the TELNET protocol, but is also commonly
28//config: used to test other simple protocols. 28//config: used to test other simple protocols.
29//config: 29//config:
30//config:config FEATURE_TELNET_TTYPE 30//config:config FEATURE_TELNET_TTYPE
31//config: bool "Pass TERM type to remote host" 31//config: bool "Pass TERM type to remote host"
32//config: default y 32//config: default y
33//config: depends on TELNET 33//config: depends on TELNET
34//config: help 34//config: help
35//config: Setting this option will forward the TERM environment variable to the 35//config: Setting this option will forward the TERM environment variable to the
36//config: remote host you are connecting to. This is useful to make sure that 36//config: remote host you are connecting to. This is useful to make sure that
37//config: things like ANSI colors and other control sequences behave. 37//config: things like ANSI colors and other control sequences behave.
38//config: 38//config:
39//config:config FEATURE_TELNET_AUTOLOGIN 39//config:config FEATURE_TELNET_AUTOLOGIN
40//config: bool "Pass USER type to remote host" 40//config: bool "Pass USER type to remote host"
41//config: default y 41//config: default y
42//config: depends on TELNET 42//config: depends on TELNET
43//config: help 43//config: help
44//config: Setting this option will forward the USER environment variable to the 44//config: Setting this option will forward the USER environment variable to the
45//config: remote host you are connecting to. This is useful when you need to 45//config: remote host you are connecting to. This is useful when you need to
46//config: log into a machine without telling the username (autologin). This 46//config: log into a machine without telling the username (autologin). This
47//config: option enables `-a' and `-l USER' arguments. 47//config: option enables `-a' and `-l USER' arguments.
48//config: 48//config:
49//config:config FEATURE_TELNET_WIDTH 49//config:config FEATURE_TELNET_WIDTH
50//config: bool "Enable window size autodetection" 50//config: bool "Enable window size autodetection"
diff --git a/networking/telnetd.c b/networking/telnetd.c
index b617c2889..6e12de07a 100644
--- a/networking/telnetd.c
+++ b/networking/telnetd.c
@@ -25,69 +25,69 @@
25//config: default y 25//config: default y
26//config: select FEATURE_SYSLOG 26//config: select FEATURE_SYSLOG
27//config: help 27//config: help
28//config: A daemon for the TELNET protocol, allowing you to log onto the host 28//config: A daemon for the TELNET protocol, allowing you to log onto the host
29//config: running the daemon. Please keep in mind that the TELNET protocol 29//config: running the daemon. Please keep in mind that the TELNET protocol
30//config: sends passwords in plain text. If you can't afford the space for an 30//config: sends passwords in plain text. If you can't afford the space for an
31//config: SSH daemon and you trust your network, you may say 'y' here. As a 31//config: SSH daemon and you trust your network, you may say 'y' here. As a
32//config: more secure alternative, you should seriously consider installing the 32//config: more secure alternative, you should seriously consider installing the
33//config: very small Dropbear SSH daemon instead: 33//config: very small Dropbear SSH daemon instead:
34//config: http://matt.ucc.asn.au/dropbear/dropbear.html 34//config: http://matt.ucc.asn.au/dropbear/dropbear.html
35//config: 35//config:
36//config: Note that for busybox telnetd to work you need several things: 36//config: Note that for busybox telnetd to work you need several things:
37//config: First of all, your kernel needs: 37//config: First of all, your kernel needs:
38//config: CONFIG_UNIX98_PTYS=y 38//config: CONFIG_UNIX98_PTYS=y
39//config: 39//config:
40//config: Next, you need a /dev/pts directory on your root filesystem: 40//config: Next, you need a /dev/pts directory on your root filesystem:
41//config: 41//config:
42//config: $ ls -ld /dev/pts 42//config: $ ls -ld /dev/pts
43//config: drwxr-xr-x 2 root root 0 Sep 23 13:21 /dev/pts/ 43//config: drwxr-xr-x 2 root root 0 Sep 23 13:21 /dev/pts/
44//config: 44//config:
45//config: Next you need the pseudo terminal master multiplexer /dev/ptmx: 45//config: Next you need the pseudo terminal master multiplexer /dev/ptmx:
46//config: 46//config:
47//config: $ ls -la /dev/ptmx 47//config: $ ls -la /dev/ptmx
48//config: crw-rw-rw- 1 root tty 5, 2 Sep 23 13:55 /dev/ptmx 48//config: crw-rw-rw- 1 root tty 5, 2 Sep 23 13:55 /dev/ptmx
49//config: 49//config:
50//config: Any /dev/ttyp[0-9]* files you may have can be removed. 50//config: Any /dev/ttyp[0-9]* files you may have can be removed.
51//config: Next, you need to mount the devpts filesystem on /dev/pts using: 51//config: Next, you need to mount the devpts filesystem on /dev/pts using:
52//config: 52//config:
53//config: mount -t devpts devpts /dev/pts 53//config: mount -t devpts devpts /dev/pts
54//config: 54//config:
55//config: You need to be sure that busybox has LOGIN and 55//config: You need to be sure that busybox has LOGIN and
56//config: FEATURE_SUID enabled. And finally, you should make 56//config: FEATURE_SUID enabled. And finally, you should make
57//config: certain that Busybox has been installed setuid root: 57//config: certain that Busybox has been installed setuid root:
58//config: 58//config:
59//config: chown root.root /bin/busybox 59//config: chown root.root /bin/busybox
60//config: chmod 4755 /bin/busybox 60//config: chmod 4755 /bin/busybox
61//config: 61//config:
62//config: with all that done, telnetd _should_ work.... 62//config: with all that done, telnetd _should_ work....
63//config: 63//config:
64//config:config FEATURE_TELNETD_STANDALONE 64//config:config FEATURE_TELNETD_STANDALONE
65//config: bool "Support standalone telnetd (not inetd only)" 65//config: bool "Support standalone telnetd (not inetd only)"
66//config: default y 66//config: default y
67//config: depends on TELNETD 67//config: depends on TELNETD
68//config: help 68//config: help
69//config: Selecting this will make telnetd able to run standalone. 69//config: Selecting this will make telnetd able to run standalone.
70//config: 70//config:
71//config:config FEATURE_TELNETD_INETD_WAIT 71//config:config FEATURE_TELNETD_INETD_WAIT
72//config: bool "Support -w SEC option (inetd wait mode)" 72//config: bool "Support -w SEC option (inetd wait mode)"
73//config: default y 73//config: default y
74//config: depends on FEATURE_TELNETD_STANDALONE 74//config: depends on FEATURE_TELNETD_STANDALONE
75//config: help 75//config: help
76//config: This option allows you to run telnetd in "inet wait" mode. 76//config: This option allows you to run telnetd in "inet wait" mode.
77//config: Example inetd.conf line (note "wait", not usual "nowait"): 77//config: Example inetd.conf line (note "wait", not usual "nowait"):
78//config: 78//config:
79//config: telnet stream tcp wait root /bin/telnetd telnetd -w10 79//config: telnet stream tcp wait root /bin/telnetd telnetd -w10
80//config: 80//config:
81//config: In this example, inetd passes _listening_ socket_ as fd 0 81//config: In this example, inetd passes _listening_ socket_ as fd 0
82//config: to telnetd when connection appears. 82//config: to telnetd when connection appears.
83//config: telnetd will wait for connections until all existing 83//config: telnetd will wait for connections until all existing
84//config: connections are closed, and no new connections 84//config: connections are closed, and no new connections
85//config: appear during 10 seconds. Then it exits, and inetd continues 85//config: appear during 10 seconds. Then it exits, and inetd continues
86//config: to listen for new connections. 86//config: to listen for new connections.
87//config: 87//config:
88//config: This option is rarely used. "tcp nowait" is much more usual 88//config: This option is rarely used. "tcp nowait" is much more usual
89//config: way of running tcp services, including telnetd. 89//config: way of running tcp services, including telnetd.
90//config: You most probably want to say N here. 90//config: You most probably want to say N here.
91 91
92//applet:IF_TELNETD(APPLET(telnetd, BB_DIR_USR_SBIN, BB_SUID_DROP)) 92//applet:IF_TELNETD(APPLET(telnetd, BB_DIR_USR_SBIN, BB_SUID_DROP))
93 93
diff --git a/networking/tftp.c b/networking/tftp.c
index 3fe1fcb82..947e65169 100644
--- a/networking/tftp.c
+++ b/networking/tftp.c
@@ -22,19 +22,19 @@
22//config: bool "tftp (12 kb)" 22//config: bool "tftp (12 kb)"
23//config: default y 23//config: default y
24//config: help 24//config: help
25//config: This enables the Trivial File Transfer Protocol client program. TFTP 25//config: This enables the Trivial File Transfer Protocol client program. TFTP
26//config: is usually used for simple, small transfers such as a root image 26//config: is usually used for simple, small transfers such as a root image
27//config: for a network-enabled bootloader. 27//config: for a network-enabled bootloader.
28//config: 28//config:
29//config:config TFTPD 29//config:config TFTPD
30//config: bool "tftpd (10 kb)" 30//config: bool "tftpd (10 kb)"
31//config: default y 31//config: default y
32//config: help 32//config: help
33//config: This enables the Trivial File Transfer Protocol server program. 33//config: This enables the Trivial File Transfer Protocol server program.
34//config: It expects that stdin is a datagram socket and a packet 34//config: It expects that stdin is a datagram socket and a packet
35//config: is already pending on it. It will exit after one transfer. 35//config: is already pending on it. It will exit after one transfer.
36//config: In other words: it should be run from inetd in nowait mode, 36//config: In other words: it should be run from inetd in nowait mode,
37//config: or from udpsvd. Example: "udpsvd -E 0 69 tftpd DIR" 37//config: or from udpsvd. Example: "udpsvd -E 0 69 tftpd DIR"
38//config: 38//config:
39//config:comment "Common options for tftp/tftpd" 39//config:comment "Common options for tftp/tftpd"
40//config: depends on TFTP || TFTPD 40//config: depends on TFTP || TFTPD
@@ -44,29 +44,29 @@
44//config: default y 44//config: default y
45//config: depends on TFTP || TFTPD 45//config: depends on TFTP || TFTPD
46//config: help 46//config: help
47//config: Add support for the GET command within the TFTP client. This allows 47//config: Add support for the GET command within the TFTP client. This allows
48//config: a client to retrieve a file from a TFTP server. 48//config: a client to retrieve a file from a TFTP server.
49//config: Also enable upload support in tftpd, if tftpd is selected. 49//config: Also enable upload support in tftpd, if tftpd is selected.
50//config: 50//config:
51//config: Note: this option does _not_ make tftpd capable of download 51//config: Note: this option does _not_ make tftpd capable of download
52//config: (the usual operation people need from it)! 52//config: (the usual operation people need from it)!
53//config: 53//config:
54//config:config FEATURE_TFTP_PUT 54//config:config FEATURE_TFTP_PUT
55//config: bool "Enable 'tftp put' and/or tftpd download code" 55//config: bool "Enable 'tftp put' and/or tftpd download code"
56//config: default y 56//config: default y
57//config: depends on TFTP || TFTPD 57//config: depends on TFTP || TFTPD
58//config: help 58//config: help
59//config: Add support for the PUT command within the TFTP client. This allows 59//config: Add support for the PUT command within the TFTP client. This allows
60//config: a client to transfer a file to a TFTP server. 60//config: a client to transfer a file to a TFTP server.
61//config: Also enable download support in tftpd, if tftpd is selected. 61//config: Also enable download support in tftpd, if tftpd is selected.
62//config: 62//config:
63//config:config FEATURE_TFTP_BLOCKSIZE 63//config:config FEATURE_TFTP_BLOCKSIZE
64//config: bool "Enable 'blksize' and 'tsize' protocol options" 64//config: bool "Enable 'blksize' and 'tsize' protocol options"
65//config: default y 65//config: default y
66//config: depends on TFTP || TFTPD 66//config: depends on TFTP || TFTPD
67//config: help 67//config: help
68//config: Allow tftp to specify block size, and tftpd to understand 68//config: Allow tftp to specify block size, and tftpd to understand
69//config: "blksize" and "tsize" options. 69//config: "blksize" and "tsize" options.
70//config: 70//config:
71//config:config FEATURE_TFTP_PROGRESS_BAR 71//config:config FEATURE_TFTP_PROGRESS_BAR
72//config: bool "Enable progress bar" 72//config: bool "Enable progress bar"
@@ -78,8 +78,8 @@
78//config: default n 78//config: default n
79//config: depends on TFTP || TFTPD 79//config: depends on TFTP || TFTPD
80//config: help 80//config: help
81//config: Make tftp[d] print debugging messages on stderr. 81//config: Make tftp[d] print debugging messages on stderr.
82//config: This is useful if you are diagnosing a bug in tftp[d]. 82//config: This is useful if you are diagnosing a bug in tftp[d].
83 83
84//applet:#if ENABLE_FEATURE_TFTP_GET || ENABLE_FEATURE_TFTP_PUT 84//applet:#if ENABLE_FEATURE_TFTP_GET || ENABLE_FEATURE_TFTP_PUT
85//applet:IF_TFTP(APPLET(tftp, BB_DIR_USR_BIN, BB_SUID_DROP)) 85//applet:IF_TFTP(APPLET(tftp, BB_DIR_USR_BIN, BB_SUID_DROP))
diff --git a/networking/traceroute.c b/networking/traceroute.c
index 408f43c55..a958a2c6c 100644
--- a/networking/traceroute.c
+++ b/networking/traceroute.c
@@ -214,22 +214,22 @@
214//config: default y 214//config: default y
215//config: select PLATFORM_LINUX 215//config: select PLATFORM_LINUX
216//config: help 216//config: help
217//config: Utility to trace the route of IP packets. 217//config: Utility to trace the route of IP packets.
218//config: 218//config:
219//config:config TRACEROUTE6 219//config:config TRACEROUTE6
220//config: bool "traceroute6 (12 kb)" 220//config: bool "traceroute6 (12 kb)"
221//config: default y 221//config: default y
222//config: depends on FEATURE_IPV6 222//config: depends on FEATURE_IPV6
223//config: help 223//config: help
224//config: Utility to trace the route of IPv6 packets. 224//config: Utility to trace the route of IPv6 packets.
225//config: 225//config:
226//config:config FEATURE_TRACEROUTE_VERBOSE 226//config:config FEATURE_TRACEROUTE_VERBOSE
227//config: bool "Enable verbose output" 227//config: bool "Enable verbose output"
228//config: default y 228//config: default y
229//config: depends on TRACEROUTE || TRACEROUTE6 229//config: depends on TRACEROUTE || TRACEROUTE6
230//config: help 230//config: help
231//config: Add some verbosity to traceroute. This includes among other things 231//config: Add some verbosity to traceroute. This includes among other things
232//config: hostnames and ICMP response types. 232//config: hostnames and ICMP response types.
233//config: 233//config:
234//config:config FEATURE_TRACEROUTE_USE_ICMP 234//config:config FEATURE_TRACEROUTE_USE_ICMP
235//config: bool "Enable -I option (use ICMP instead of UDP)" 235//config: bool "Enable -I option (use ICMP instead of UDP)"
diff --git a/networking/tunctl.c b/networking/tunctl.c
index 97ee1961b..0a26ff7fb 100644
--- a/networking/tunctl.c
+++ b/networking/tunctl.c
@@ -14,15 +14,15 @@
14//config: default y 14//config: default y
15//config: select PLATFORM_LINUX 15//config: select PLATFORM_LINUX
16//config: help 16//config: help
17//config: tunctl creates or deletes tun devices. 17//config: tunctl creates or deletes tun devices.
18//config: 18//config:
19//config:config FEATURE_TUNCTL_UG 19//config:config FEATURE_TUNCTL_UG
20//config: bool "Support owner:group assignment" 20//config: bool "Support owner:group assignment"
21//config: default y 21//config: default y
22//config: depends on TUNCTL 22//config: depends on TUNCTL
23//config: help 23//config: help
24//config: Allow to specify owner and group of newly created interface. 24//config: Allow to specify owner and group of newly created interface.
25//config: 340 bytes of pure bloat. Say no here. 25//config: 340 bytes of pure bloat. Say no here.
26 26
27//applet:IF_TUNCTL(APPLET(tunctl, BB_DIR_SBIN, BB_SUID_DROP)) 27//applet:IF_TUNCTL(APPLET(tunctl, BB_DIR_SBIN, BB_SUID_DROP))
28 28
diff --git a/networking/udhcp/Config.src b/networking/udhcp/Config.src
index 43f3676e4..af2fe1835 100644
--- a/networking/udhcp/Config.src
+++ b/networking/udhcp/Config.src
@@ -10,105 +10,105 @@ config UDHCPD
10 default y 10 default y
11 select PLATFORM_LINUX 11 select PLATFORM_LINUX
12 help 12 help
13 udhcpd is a DHCP server geared primarily toward embedded systems, 13 udhcpd is a DHCP server geared primarily toward embedded systems,
14 while striving to be fully functional and RFC compliant. 14 while striving to be fully functional and RFC compliant.
15 15
16config FEATURE_UDHCPD_WRITE_LEASES_EARLY 16config FEATURE_UDHCPD_WRITE_LEASES_EARLY
17 bool "Rewrite the lease file at every new acknowledge" 17 bool "Rewrite the lease file at every new acknowledge"
18 default y 18 default y
19 depends on UDHCPD 19 depends on UDHCPD
20 help 20 help
21 If selected, udhcpd will write a new file with leases every 21 If selected, udhcpd will write a new file with leases every
22 time a new lease has been accepted, thus eliminating the need 22 time a new lease has been accepted, thus eliminating the need
23 to send SIGUSR1 for the initial writing or updating. Any timed 23 to send SIGUSR1 for the initial writing or updating. Any timed
24 rewriting remains undisturbed. 24 rewriting remains undisturbed.
25 25
26config FEATURE_UDHCPD_BASE_IP_ON_MAC 26config FEATURE_UDHCPD_BASE_IP_ON_MAC
27 bool "Select IP address based on client MAC" 27 bool "Select IP address based on client MAC"
28 default n 28 default n
29 depends on UDHCPD 29 depends on UDHCPD
30 help 30 help
31 If selected, udhcpd will base its selection of IP address to offer 31 If selected, udhcpd will base its selection of IP address to offer
32 on the client's hardware address. Otherwise udhcpd uses the next 32 on the client's hardware address. Otherwise udhcpd uses the next
33 consecutive free address. 33 consecutive free address.
34 34
35 This reduces the frequency of IP address changes for clients 35 This reduces the frequency of IP address changes for clients
36 which let their lease expire, and makes consecutive DHCPOFFERS 36 which let their lease expire, and makes consecutive DHCPOFFERS
37 for the same client to (almost always) contain the same 37 for the same client to (almost always) contain the same
38 IP address. 38 IP address.
39 39
40config DHCPD_LEASES_FILE 40config DHCPD_LEASES_FILE
41 string "Absolute path to lease file" 41 string "Absolute path to lease file"
42 default "/var/lib/misc/udhcpd.leases" 42 default "/var/lib/misc/udhcpd.leases"
43 depends on UDHCPD 43 depends on UDHCPD
44 help 44 help
45 udhcpd stores addresses in a lease file. This is the absolute path 45 udhcpd stores addresses in a lease file. This is the absolute path
46 of the file. Normally it is safe to leave it untouched. 46 of the file. Normally it is safe to leave it untouched.
47 47
48config DUMPLEASES 48config DUMPLEASES
49 bool "dumpleases (6.4 kb)" 49 bool "dumpleases (6.4 kb)"
50 default y 50 default y
51 help 51 help
52 dumpleases displays the leases written out by the udhcpd. 52 dumpleases displays the leases written out by the udhcpd.
53 Lease times are stored in the file by time remaining in lease, or 53 Lease times are stored in the file by time remaining in lease, or
54 by the absolute time that it expires in seconds from epoch. 54 by the absolute time that it expires in seconds from epoch.
55 55
56config DHCPRELAY 56config DHCPRELAY
57 bool "dhcprelay (5.8 kb)" 57 bool "dhcprelay (5.8 kb)"
58 default y 58 default y
59 help 59 help
60 dhcprelay listens for dhcp requests on one or more interfaces 60 dhcprelay listens for dhcp requests on one or more interfaces
61 and forwards these requests to a different interface or dhcp 61 and forwards these requests to a different interface or dhcp
62 server. 62 server.
63 63
64config UDHCPC 64config UDHCPC
65 bool "udhcpc (DHCP client)" 65 bool "udhcpc (DHCP client)"
66 default y 66 default y
67 select PLATFORM_LINUX 67 select PLATFORM_LINUX
68 help 68 help
69 udhcpc is a DHCP client geared primarily toward embedded systems, 69 udhcpc is a DHCP client geared primarily toward embedded systems,
70 while striving to be fully functional and RFC compliant. 70 while striving to be fully functional and RFC compliant.
71 71
72 The udhcp client negotiates a lease with the DHCP server and 72 The udhcp client negotiates a lease with the DHCP server and
73 runs a script when a lease is obtained or lost. 73 runs a script when a lease is obtained or lost.
74 74
75config FEATURE_UDHCPC_ARPING 75config FEATURE_UDHCPC_ARPING
76 bool "Verify that the offered address is free, using ARP ping" 76 bool "Verify that the offered address is free, using ARP ping"
77 default y 77 default y
78 depends on UDHCPC 78 depends on UDHCPC
79 help 79 help
80 If selected, udhcpc will send ARP probes and make sure 80 If selected, udhcpc will send ARP probes and make sure
81 the offered address is really not in use by anyone. The client 81 the offered address is really not in use by anyone. The client
82 will DHCPDECLINE the offer if the address is in use, 82 will DHCPDECLINE the offer if the address is in use,
83 and restart the discover process. 83 and restart the discover process.
84 84
85config FEATURE_UDHCPC_SANITIZEOPT 85config FEATURE_UDHCPC_SANITIZEOPT
86 bool "Do not pass malformed host and domain names" 86 bool "Do not pass malformed host and domain names"
87 default y 87 default y
88 depends on UDHCPC 88 depends on UDHCPC
89 help 89 help
90 If selected, udhcpc will check some options (such as option 12 - 90 If selected, udhcpc will check some options (such as option 12 -
91 hostname) and if they don't look like valid hostnames 91 hostname) and if they don't look like valid hostnames
92 (for example, if they start with dash or contain spaces), 92 (for example, if they start with dash or contain spaces),
93 they will be replaced with string "bad" when exporting 93 they will be replaced with string "bad" when exporting
94 to the environment. 94 to the environment.
95 95
96config UDHCPC_DEFAULT_SCRIPT 96config UDHCPC_DEFAULT_SCRIPT
97 string "Absolute path to config script" 97 string "Absolute path to config script"
98 default "/usr/share/udhcpc/default.script" 98 default "/usr/share/udhcpc/default.script"
99 depends on UDHCPC 99 depends on UDHCPC
100 help 100 help
101 This script is called after udhcpc receives an answer. See 101 This script is called after udhcpc receives an answer. See
102 examples/udhcp for a working example. Normally it is safe 102 examples/udhcp for a working example. Normally it is safe
103 to leave this untouched. 103 to leave this untouched.
104 104
105config FEATURE_UDHCP_PORT 105config FEATURE_UDHCP_PORT
106 bool "Enable '-P port' option for udhcpd and udhcpc" 106 bool "Enable '-P port' option for udhcpd and udhcpc"
107 default n 107 default n
108 depends on UDHCPD || UDHCPC 108 depends on UDHCPD || UDHCPC
109 help 109 help
110 At the cost of ~300 bytes, enables -P port option. 110 At the cost of ~300 bytes, enables -P port option.
111 This feature is typically not needed. 111 This feature is typically not needed.
112 112
113config UDHCP_DEBUG 113config UDHCP_DEBUG
114 int "Maximum verbosity level for udhcp applets (0..9)" 114 int "Maximum verbosity level for udhcp applets (0..9)"
@@ -116,28 +116,28 @@ config UDHCP_DEBUG
116 range 0 9 116 range 0 9
117 depends on UDHCPD || UDHCPC || DHCPRELAY 117 depends on UDHCPD || UDHCPC || DHCPRELAY
118 help 118 help
119 Verbosity can be increased with multiple -v options. 119 Verbosity can be increased with multiple -v options.
120 This option controls how high it can be cranked up. 120 This option controls how high it can be cranked up.
121 121
122 Bigger values result in bigger code. Levels above 1 122 Bigger values result in bigger code. Levels above 1
123 are very verbose and useful for debugging only. 123 are very verbose and useful for debugging only.
124 124
125config FEATURE_UDHCP_RFC3397 125config FEATURE_UDHCP_RFC3397
126 bool "Support RFC3397 domain search (experimental)" 126 bool "Support RFC3397 domain search (experimental)"
127 default y 127 default y
128 depends on UDHCPD || UDHCPC 128 depends on UDHCPD || UDHCPC
129 help 129 help
130 If selected, both client and server will support passing of domain 130 If selected, both client and server will support passing of domain
131 search lists via option 119, specified in RFC 3397, 131 search lists via option 119, specified in RFC 3397,
132 and SIP servers option 120, specified in RFC 3361. 132 and SIP servers option 120, specified in RFC 3361.
133 133
134config FEATURE_UDHCP_8021Q 134config FEATURE_UDHCP_8021Q
135 bool "Support 802.1Q VLAN parameters" 135 bool "Support 802.1Q VLAN parameters"
136 default y 136 default y
137 depends on UDHCPD || UDHCPC 137 depends on UDHCPD || UDHCPC
138 help 138 help
139 If selected, both client and server will support passing of VLAN 139 If selected, both client and server will support passing of VLAN
140 ID and priority via options 132 and 133 as per 802.1Q. 140 ID and priority via options 132 and 133 as per 802.1Q.
141 141
142config UDHCPC_SLACK_FOR_BUGGY_SERVERS 142config UDHCPC_SLACK_FOR_BUGGY_SERVERS
143 int "DHCP options slack buffer size" 143 int "DHCP options slack buffer size"
@@ -145,19 +145,19 @@ config UDHCPC_SLACK_FOR_BUGGY_SERVERS
145 range 0 924 145 range 0 924
146 depends on UDHCPD || UDHCPC 146 depends on UDHCPD || UDHCPC
147 help 147 help
148 Some buggy DHCP servers send DHCP offer packets with option 148 Some buggy DHCP servers send DHCP offer packets with option
149 field larger than we expect (which might also be considered a 149 field larger than we expect (which might also be considered a
150 buffer overflow attempt). These packets are normally discarded. 150 buffer overflow attempt). These packets are normally discarded.
151 If circumstances beyond your control force you to support such 151 If circumstances beyond your control force you to support such
152 servers, this may help. The upper limit (924) makes dhcpc accept 152 servers, this may help. The upper limit (924) makes dhcpc accept
153 even 1500 byte packets (maximum-sized ethernet packets). 153 even 1500 byte packets (maximum-sized ethernet packets).
154 154
155 This option does not make dhcp[cd] emit non-standard 155 This option does not make dhcp[cd] emit non-standard
156 sized packets. 156 sized packets.
157 157
158 Known buggy DHCP servers: 158 Known buggy DHCP servers:
159 3Com OfficeConnect Remote 812 ADSL Router: 159 3Com OfficeConnect Remote 812 ADSL Router:
160 seems to confuse maximum allowed UDP packet size with 160 seems to confuse maximum allowed UDP packet size with
161 maximum size of entire IP packet, and sends packets which are 161 maximum size of entire IP packet, and sends packets
162 28 bytes too large. 162 which are 28 bytes too large.
163 Seednet (ISP) VDSL: sends packets 2 bytes too large. 163 Seednet (ISP) VDSL: sends packets 2 bytes too large.
diff --git a/networking/udhcp/d6_dhcpc.c b/networking/udhcp/d6_dhcpc.c
index f6d3fb98b..ebf793438 100644
--- a/networking/udhcp/d6_dhcpc.c
+++ b/networking/udhcp/d6_dhcpc.c
@@ -14,31 +14,31 @@
14//config: default n # not yet ready 14//config: default n # not yet ready
15//config: depends on FEATURE_IPV6 15//config: depends on FEATURE_IPV6
16//config: help 16//config: help
17//config: udhcpc6 is a DHCPv6 client 17//config: udhcpc6 is a DHCPv6 client
18//config: 18//config:
19//config:config FEATURE_UDHCPC6_RFC3646 19//config:config FEATURE_UDHCPC6_RFC3646
20//config: bool "Support RFC 3646 (DNS server and search list)" 20//config: bool "Support RFC 3646 (DNS server and search list)"
21//config: default y 21//config: default y
22//config: depends on UDHCPC6 22//config: depends on UDHCPC6
23//config: help 23//config: help
24//config: List of DNS servers and domain search list can be requested with 24//config: List of DNS servers and domain search list can be requested with
25//config: "-O dns" and "-O search". If server gives these values, 25//config: "-O dns" and "-O search". If server gives these values,
26//config: they will be set in environment variables "dns" and "search". 26//config: they will be set in environment variables "dns" and "search".
27//config: 27//config:
28//config:config FEATURE_UDHCPC6_RFC4704 28//config:config FEATURE_UDHCPC6_RFC4704
29//config: bool "Support RFC 4704 (Client FQDN)" 29//config: bool "Support RFC 4704 (Client FQDN)"
30//config: default y 30//config: default y
31//config: depends on UDHCPC6 31//config: depends on UDHCPC6
32//config: help 32//config: help
33//config: You can request FQDN to be given by server using "-O fqdn". 33//config: You can request FQDN to be given by server using "-O fqdn".
34//config: 34//config:
35//config:config FEATURE_UDHCPC6_RFC4833 35//config:config FEATURE_UDHCPC6_RFC4833
36//config: bool "Support RFC 4833 (Timezones)" 36//config: bool "Support RFC 4833 (Timezones)"
37//config: default y 37//config: default y
38//config: depends on UDHCPC6 38//config: depends on UDHCPC6
39//config: help 39//config: help
40//config: You can request POSIX timezone with "-O tz" and timezone name 40//config: You can request POSIX timezone with "-O tz" and timezone name
41//config: with "-O timezone". 41//config: with "-O timezone".
42 42
43//applet:IF_UDHCPC6(APPLET(udhcpc6, BB_DIR_USR_BIN, BB_SUID_DROP)) 43//applet:IF_UDHCPC6(APPLET(udhcpc6, BB_DIR_USR_BIN, BB_SUID_DROP))
44 44
diff --git a/networking/vconfig.c b/networking/vconfig.c
index 9efb79c16..e6e2872bf 100644
--- a/networking/vconfig.c
+++ b/networking/vconfig.c
@@ -14,7 +14,7 @@
14//config: default y 14//config: default y
15//config: select PLATFORM_LINUX 15//config: select PLATFORM_LINUX
16//config: help 16//config: help
17//config: Creates, removes, and configures VLAN interfaces 17//config: Creates, removes, and configures VLAN interfaces
18 18
19//applet:IF_VCONFIG(APPLET(vconfig, BB_DIR_SBIN, BB_SUID_DROP)) 19//applet:IF_VCONFIG(APPLET(vconfig, BB_DIR_SBIN, BB_SUID_DROP))
20 20
diff --git a/networking/wget.c b/networking/wget.c
index 6d78dd56f..e47c9a51b 100644
--- a/networking/wget.c
+++ b/networking/wget.c
@@ -13,8 +13,8 @@
13//config: bool "wget (35 kb)" 13//config: bool "wget (35 kb)"
14//config: default y 14//config: default y
15//config: help 15//config: help
16//config: wget is a utility for non-interactive download of files from HTTP 16//config: wget is a utility for non-interactive download of files from HTTP
17//config: and FTP servers. 17//config: and FTP servers.
18//config: 18//config:
19//config:config FEATURE_WGET_LONG_OPTIONS 19//config:config FEATURE_WGET_LONG_OPTIONS
20//config: bool "Enable long options" 20//config: bool "Enable long options"
@@ -31,21 +31,21 @@
31//config: default y 31//config: default y
32//config: depends on WGET 32//config: depends on WGET
33//config: help 33//config: help
34//config: Support authenticated HTTP transfers. 34//config: Support authenticated HTTP transfers.
35//config: 35//config:
36//config:config FEATURE_WGET_TIMEOUT 36//config:config FEATURE_WGET_TIMEOUT
37//config: bool "Enable timeout option -T SEC" 37//config: bool "Enable timeout option -T SEC"
38//config: default y 38//config: default y
39//config: depends on WGET 39//config: depends on WGET
40//config: help 40//config: help
41//config: Supports network read and connect timeouts for wget, 41//config: Supports network read and connect timeouts for wget,
42//config: so that wget will give up and timeout, through the -T 42//config: so that wget will give up and timeout, through the -T
43//config: command line option. 43//config: command line option.
44//config: 44//config:
45//config: Currently only connect and network data read timeout are 45//config: Currently only connect and network data read timeout are
46//config: supported (i.e., timeout is not applied to the DNS query). When 46//config: supported (i.e., timeout is not applied to the DNS query). When
47//config: FEATURE_WGET_LONG_OPTIONS is also enabled, the --timeout option 47//config: FEATURE_WGET_LONG_OPTIONS is also enabled, the --timeout option
48//config: will work in addition to -T. 48//config: will work in addition to -T.
49//config: 49//config:
50//config:config FEATURE_WGET_HTTPS 50//config:config FEATURE_WGET_HTTPS
51//config: bool "Support HTTPS using internal TLS code" 51//config: bool "Support HTTPS using internal TLS code"
@@ -53,68 +53,68 @@
53//config: depends on WGET 53//config: depends on WGET
54//config: select TLS 54//config: select TLS
55//config: help 55//config: help
56//config: wget will use internal TLS code to connect to https:// URLs. 56//config: wget will use internal TLS code to connect to https:// URLs.
57//config: Note: 57//config: Note:
58//config: On NOMMU machines, ssl_helper applet should be available 58//config: On NOMMU machines, ssl_helper applet should be available
59//config: in the $PATH for this to work. Make sure to select that applet. 59//config: in the $PATH for this to work. Make sure to select that applet.
60//config: 60//config:
61//config: Note: currently, TLS code only makes TLS I/O work, it 61//config: Note: currently, TLS code only makes TLS I/O work, it
62//config: does *not* check that the peer is who it claims to be, etc. 62//config: does *not* check that the peer is who it claims to be, etc.
63//config: IOW: it uses peer-supplied public keys to establish encryption 63//config: IOW: it uses peer-supplied public keys to establish encryption
64//config: and signing keys, then encrypts and signs outgoing data and 64//config: and signing keys, then encrypts and signs outgoing data and
65//config: decrypts incoming data. 65//config: decrypts incoming data.
66//config: It does not check signature hashes on the incoming data: 66//config: It does not check signature hashes on the incoming data:
67//config: this means that attackers manipulating TCP packets can 67//config: this means that attackers manipulating TCP packets can
68//config: send altered data and we unknowingly receive garbage. 68//config: send altered data and we unknowingly receive garbage.
69//config: (This check might be relatively easy to add). 69//config: (This check might be relatively easy to add).
70//config: It does not check public key's certificate: 70//config: It does not check public key's certificate:
71//config: this means that the peer may be an attacker impersonating 71//config: this means that the peer may be an attacker impersonating
72//config: the server we think we are talking to. 72//config: the server we think we are talking to.
73//config: 73//config:
74//config: If you think this is unacceptable, consider this. As more and more 74//config: If you think this is unacceptable, consider this. As more and more
75//config: servers switch to HTTPS-only operation, without such "crippled" 75//config: servers switch to HTTPS-only operation, without such "crippled"
76//config: TLS code it is *impossible* to simply download a kernel source 76//config: TLS code it is *impossible* to simply download a kernel source
77//config: from kernel.org. Which can in real world translate into 77//config: from kernel.org. Which can in real world translate into
78//config: "my small automatic tooling to build cross-compilers from sources 78//config: "my small automatic tooling to build cross-compilers from sources
79//config: no longer works, I need to additionally keep a local copy 79//config: no longer works, I need to additionally keep a local copy
80//config: of ~4 megabyte source tarball of a SSL library and ~2 megabyte 80//config: of ~4 megabyte source tarball of a SSL library and ~2 megabyte
81//config: source of wget, need to compile and built both before I can 81//config: source of wget, need to compile and built both before I can
82//config: download anything. All this despite the fact that the build 82//config: download anything. All this despite the fact that the build
83//config: is done in a QEMU sandbox on a machine with absolutely nothing 83//config: is done in a QEMU sandbox on a machine with absolutely nothing
84//config: worth stealing, so I don't care if someone would go to a lot 84//config: worth stealing, so I don't care if someone would go to a lot
85//config: of trouble to intercept my HTTPS download to send me an altered 85//config: of trouble to intercept my HTTPS download to send me an altered
86//config: kernel tarball". 86//config: kernel tarball".
87//config: 87//config:
88//config: If you still think this is unacceptable, send patches. 88//config: If you still think this is unacceptable, send patches.
89//config: 89//config:
90//config: If you still think this is unacceptable, do not want to send 90//config: If you still think this is unacceptable, do not want to send
91//config: patches, but do want to waste bandwidth expaining how wrong 91//config: patches, but do want to waste bandwidth expaining how wrong
92//config: it is, you will be ignored. 92//config: it is, you will be ignored.
93//config: 93//config:
94//config:config FEATURE_WGET_OPENSSL 94//config:config FEATURE_WGET_OPENSSL
95//config: bool "Try to connect to HTTPS using openssl" 95//config: bool "Try to connect to HTTPS using openssl"
96//config: default y 96//config: default y
97//config: depends on WGET 97//config: depends on WGET
98//config: help 98//config: help
99//config: Try to use openssl to handle HTTPS. 99//config: Try to use openssl to handle HTTPS.
100//config: 100//config:
101//config: OpenSSL has a simple SSL client for debug purposes. 101//config: OpenSSL has a simple SSL client for debug purposes.
102//config: If you select this option, wget will effectively run: 102//config: If you select this option, wget will effectively run:
103//config: "openssl s_client -quiet -connect hostname:443 103//config: "openssl s_client -quiet -connect hostname:443
104//config: -servername hostname 2>/dev/null" and pipe its data 104//config: -servername hostname 2>/dev/null" and pipe its data
105//config: through it. -servername is not used if hostname is numeric. 105//config: through it. -servername is not used if hostname is numeric.
106//config: Note inconvenient API: host resolution is done twice, 106//config: Note inconvenient API: host resolution is done twice,
107//config: and there is no guarantee openssl's idea of IPv6 address 107//config: and there is no guarantee openssl's idea of IPv6 address
108//config: format is the same as ours. 108//config: format is the same as ours.
109//config: Another problem is that s_client prints debug information 109//config: Another problem is that s_client prints debug information
110//config: to stderr, and it needs to be suppressed. This means 110//config: to stderr, and it needs to be suppressed. This means
111//config: all error messages get suppressed too. 111//config: all error messages get suppressed too.
112//config: openssl is also a big binary, often dynamically linked 112//config: openssl is also a big binary, often dynamically linked
113//config: against ~15 libraries. 113//config: against ~15 libraries.
114//config: 114//config:
115//config: If openssl can't be executed, internal TLS code will be used 115//config: If openssl can't be executed, internal TLS code will be used
116//config: (if you enabled it); if openssl can be executed but fails later, 116//config: (if you enabled it); if openssl can be executed but fails later,
117//config: wget can't detect this, and download will fail. 117//config: wget can't detect this, and download will fail.
118 118
119//applet:IF_WGET(APPLET(wget, BB_DIR_USR_BIN, BB_SUID_DROP)) 119//applet:IF_WGET(APPLET(wget, BB_DIR_USR_BIN, BB_SUID_DROP))
120 120
diff --git a/networking/whois.c b/networking/whois.c
index ee5a6011f..0cb7e5411 100644
--- a/networking/whois.c
+++ b/networking/whois.c
@@ -14,7 +14,7 @@
14//config: bool "whois (6.6 kb)" 14//config: bool "whois (6.6 kb)"
15//config: default y 15//config: default y
16//config: help 16//config: help
17//config: whois is a client for the whois directory service 17//config: whois is a client for the whois directory service
18 18
19//applet:IF_WHOIS(APPLET(whois, BB_DIR_USR_BIN, BB_SUID_DROP)) 19//applet:IF_WHOIS(APPLET(whois, BB_DIR_USR_BIN, BB_SUID_DROP))
20 20
diff --git a/networking/zcip.c b/networking/zcip.c
index 20543700a..232165efa 100644
--- a/networking/zcip.c
+++ b/networking/zcip.c
@@ -20,12 +20,12 @@
20//config: select PLATFORM_LINUX 20//config: select PLATFORM_LINUX
21//config: select FEATURE_SYSLOG 21//config: select FEATURE_SYSLOG
22//config: help 22//config: help
23//config: ZCIP provides ZeroConf IPv4 address selection, according to RFC 3927. 23//config: ZCIP provides ZeroConf IPv4 address selection, according to RFC 3927.
24//config: It's a daemon that allocates and defends a dynamically assigned 24//config: It's a daemon that allocates and defends a dynamically assigned
25//config: address on the 169.254/16 network, requiring no system administrator. 25//config: address on the 169.254/16 network, requiring no system administrator.
26//config: 26//config:
27//config: See http://www.zeroconf.org for further details, and "zcip.script" 27//config: See http://www.zeroconf.org for further details, and "zcip.script"
28//config: in the busybox examples. 28//config: in the busybox examples.
29 29
30//applet:IF_ZCIP(APPLET(zcip, BB_DIR_SBIN, BB_SUID_DROP)) 30//applet:IF_ZCIP(APPLET(zcip, BB_DIR_SBIN, BB_SUID_DROP))
31 31
diff --git a/printutils/lpd.c b/printutils/lpd.c
index 2be485a69..3fdba5d2b 100644
--- a/printutils/lpd.c
+++ b/printutils/lpd.c
@@ -73,7 +73,7 @@
73//config: bool "lpd (5.3 kb)" 73//config: bool "lpd (5.3 kb)"
74//config: default y 74//config: default y
75//config: help 75//config: help
76//config: lpd is a print spooling daemon. 76//config: lpd is a print spooling daemon.
77 77
78//applet:IF_LPD(APPLET(lpd, BB_DIR_USR_SBIN, BB_SUID_DROP)) 78//applet:IF_LPD(APPLET(lpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
79 79
diff --git a/printutils/lpr.c b/printutils/lpr.c
index 23bf8cdaf..808ecb5dc 100644
--- a/printutils/lpr.c
+++ b/printutils/lpr.c
@@ -15,13 +15,13 @@
15//config: bool "lpr (10 kb)" 15//config: bool "lpr (10 kb)"
16//config: default y 16//config: default y
17//config: help 17//config: help
18//config: lpr sends files (or standard input) to a print spooling daemon. 18//config: lpr sends files (or standard input) to a print spooling daemon.
19//config: 19//config:
20//config:config LPQ 20//config:config LPQ
21//config: bool "lpq (10 kb)" 21//config: bool "lpq (10 kb)"
22//config: default y 22//config: default y
23//config: help 23//config: help
24//config: lpq is a print spool queue examination and manipulation program. 24//config: lpq is a print spool queue examination and manipulation program.
25 25
26// APPLET_ODDNAME:name main location suid_type help 26// APPLET_ODDNAME:name main location suid_type help
27//applet:IF_LPQ(APPLET_ODDNAME(lpq, lpqr, BB_DIR_USR_BIN, BB_SUID_DROP, lpq)) 27//applet:IF_LPQ(APPLET_ODDNAME(lpq, lpqr, BB_DIR_USR_BIN, BB_SUID_DROP, lpq))
diff --git a/procps/Config.src b/procps/Config.src
index 35fef2eda..515d79938 100644
--- a/procps/Config.src
+++ b/procps/Config.src
@@ -12,7 +12,7 @@ config FEATURE_SHOW_THREADS
12 default y 12 default y
13 depends on PS || TOP || PSTREE 13 depends on PS || TOP || PSTREE
14 help 14 help
15 Enables the ps -T option, showing of threads in pstree, 15 Enables the ps -T option, showing of threads in pstree,
16 and 'h' command in top. 16 and 'h' command in top.
17 17
18endmenu 18endmenu
diff --git a/procps/free.c b/procps/free.c
index 497bf1911..618664e08 100644
--- a/procps/free.c
+++ b/procps/free.c
@@ -11,9 +11,9 @@
11//config: default y 11//config: default y
12//config: select PLATFORM_LINUX #sysinfo() 12//config: select PLATFORM_LINUX #sysinfo()
13//config: help 13//config: help
14//config: free displays the total amount of free and used physical and swap 14//config: free displays the total amount of free and used physical and swap
15//config: memory in the system, as well as the buffers used by the kernel. 15//config: memory in the system, as well as the buffers used by the kernel.
16//config: The shared memory column should be ignored; it is obsolete. 16//config: The shared memory column should be ignored; it is obsolete.
17 17
18//applet:IF_FREE(APPLET(free, BB_DIR_USR_BIN, BB_SUID_DROP)) 18//applet:IF_FREE(APPLET(free, BB_DIR_USR_BIN, BB_SUID_DROP))
19 19
diff --git a/procps/fuser.c b/procps/fuser.c
index 463d8800c..2585a4203 100644
--- a/procps/fuser.c
+++ b/procps/fuser.c
@@ -10,9 +10,9 @@
10//config: bool "fuser (7 kb)" 10//config: bool "fuser (7 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: fuser lists all PIDs (Process IDs) that currently have a given 13//config: fuser lists all PIDs (Process IDs) that currently have a given
14//config: file open. fuser can also list all PIDs that have a given network 14//config: file open. fuser can also list all PIDs that have a given network
15//config: (TCP or UDP) port open. 15//config: (TCP or UDP) port open.
16 16
17//applet:IF_FUSER(APPLET(fuser, BB_DIR_USR_BIN, BB_SUID_DROP)) 17//applet:IF_FUSER(APPLET(fuser, BB_DIR_USR_BIN, BB_SUID_DROP))
18 18
diff --git a/procps/iostat.c b/procps/iostat.c
index 94a928020..608d41364 100644
--- a/procps/iostat.c
+++ b/procps/iostat.c
@@ -11,7 +11,7 @@
11//config: bool "iostat (7.4 kb)" 11//config: bool "iostat (7.4 kb)"
12//config: default y 12//config: default y
13//config: help 13//config: help
14//config: Report CPU and I/O statistics 14//config: Report CPU and I/O statistics
15 15
16//applet:IF_IOSTAT(APPLET(iostat, BB_DIR_BIN, BB_SUID_DROP)) 16//applet:IF_IOSTAT(APPLET(iostat, BB_DIR_BIN, BB_SUID_DROP))
17 17
diff --git a/procps/kill.c b/procps/kill.c
index 3c330e5b9..5cff24475 100644
--- a/procps/kill.c
+++ b/procps/kill.c
@@ -11,26 +11,26 @@
11//config: bool "kill (2.6 kb)" 11//config: bool "kill (2.6 kb)"
12//config: default y 12//config: default y
13//config: help 13//config: help
14//config: The command kill sends the specified signal to the specified 14//config: The command kill sends the specified signal to the specified
15//config: process or process group. If no signal is specified, the TERM 15//config: process or process group. If no signal is specified, the TERM
16//config: signal is sent. 16//config: signal is sent.
17//config: 17//config:
18//config:config KILLALL 18//config:config KILLALL
19//config: bool "killall (5.6 kb)" 19//config: bool "killall (5.6 kb)"
20//config: default y 20//config: default y
21//config: help 21//config: help
22//config: killall sends a signal to all processes running any of the 22//config: killall sends a signal to all processes running any of the
23//config: specified commands. If no signal name is specified, SIGTERM is 23//config: specified commands. If no signal name is specified, SIGTERM is
24//config: sent. 24//config: sent.
25//config: 25//config:
26//config:config KILLALL5 26//config:config KILLALL5
27//config: bool "killall5 (5.3 kb)" 27//config: bool "killall5 (5.3 kb)"
28//config: default y 28//config: default y
29//config: help 29//config: help
30//config: The SystemV killall command. killall5 sends a signal 30//config: The SystemV killall command. killall5 sends a signal
31//config: to all processes except kernel threads and the processes 31//config: to all processes except kernel threads and the processes
32//config: in its own session, so it won't kill the shell that is running 32//config: in its own session, so it won't kill the shell that is running
33//config: the script it was called from. 33//config: the script it was called from.
34 34
35//applet:IF_KILL(APPLET(kill, BB_DIR_BIN, BB_SUID_DROP)) 35//applet:IF_KILL(APPLET(kill, BB_DIR_BIN, BB_SUID_DROP))
36// APPLET_ODDNAME:name main location suid_type help 36// APPLET_ODDNAME:name main location suid_type help
diff --git a/procps/lsof.c b/procps/lsof.c
index d1e994ab9..8d3a23cc8 100644
--- a/procps/lsof.c
+++ b/procps/lsof.c
@@ -11,8 +11,8 @@
11//config: bool "lsof (3.6 kb)" 11//config: bool "lsof (3.6 kb)"
12//config: default y 12//config: default y
13//config: help 13//config: help
14//config: Show open files in the format of: 14//config: Show open files in the format of:
15//config: PID <TAB> /path/to/executable <TAB> /path/to/opened/file 15//config: PID <TAB> /path/to/executable <TAB> /path/to/opened/file
16 16
17//applet:IF_LSOF(APPLET(lsof, BB_DIR_USR_BIN, BB_SUID_DROP)) 17//applet:IF_LSOF(APPLET(lsof, BB_DIR_USR_BIN, BB_SUID_DROP))
18 18
diff --git a/procps/mpstat.c b/procps/mpstat.c
index 455cdb1b2..1eabd8e38 100644
--- a/procps/mpstat.c
+++ b/procps/mpstat.c
@@ -15,7 +15,7 @@
15//config: bool "mpstat (10 kb)" 15//config: bool "mpstat (10 kb)"
16//config: default y 16//config: default y
17//config: help 17//config: help
18//config: Per-processor statistics 18//config: Per-processor statistics
19 19
20#include "libbb.h" 20#include "libbb.h"
21#include <sys/utsname.h> /* struct utsname */ 21#include <sys/utsname.h> /* struct utsname */
diff --git a/procps/nmeter.c b/procps/nmeter.c
index a7c548d98..9463f94dc 100644
--- a/procps/nmeter.c
+++ b/procps/nmeter.c
@@ -10,7 +10,7 @@
10//config: bool "nmeter (10 kb)" 10//config: bool "nmeter (10 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: Prints selected system stats continuously, one line per update. 13//config: Prints selected system stats continuously, one line per update.
14 14
15//applet:IF_NMETER(APPLET(nmeter, BB_DIR_USR_BIN, BB_SUID_DROP)) 15//applet:IF_NMETER(APPLET(nmeter, BB_DIR_USR_BIN, BB_SUID_DROP))
16 16
diff --git a/procps/pgrep.c b/procps/pgrep.c
index 335f2d226..327f6a934 100644
--- a/procps/pgrep.c
+++ b/procps/pgrep.c
@@ -10,13 +10,13 @@
10//config: bool "pgrep (6.8 kb)" 10//config: bool "pgrep (6.8 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: Look for processes by name. 13//config: Look for processes by name.
14//config: 14//config:
15//config:config PKILL 15//config:config PKILL
16//config: bool "pkill (7.6 kb)" 16//config: bool "pkill (7.6 kb)"
17//config: default y 17//config: default y
18//config: help 18//config: help
19//config: Send signals to processes by name. 19//config: Send signals to processes by name.
20 20
21//applet:IF_PGREP(APPLET(pgrep, BB_DIR_USR_BIN, BB_SUID_DROP)) 21//applet:IF_PGREP(APPLET(pgrep, BB_DIR_USR_BIN, BB_SUID_DROP))
22// APPLET_ODDNAME:name main location suid_type help 22// APPLET_ODDNAME:name main location suid_type help
diff --git a/procps/pidof.c b/procps/pidof.c
index 0d08c6095..41247a02c 100644
--- a/procps/pidof.c
+++ b/procps/pidof.c
@@ -10,24 +10,24 @@
10//config: bool "pidof (6.6 kb)" 10//config: bool "pidof (6.6 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: Pidof finds the process id's (pids) of the named programs. It prints 13//config: Pidof finds the process id's (pids) of the named programs. It prints
14//config: those id's on the standard output. 14//config: those id's on the standard output.
15//config: 15//config:
16//config:config FEATURE_PIDOF_SINGLE 16//config:config FEATURE_PIDOF_SINGLE
17//config: bool "Enable single shot (-s)" 17//config: bool "Enable single shot (-s)"
18//config: default y 18//config: default y
19//config: depends on PIDOF 19//config: depends on PIDOF
20//config: help 20//config: help
21//config: Support '-s' for returning only the first pid found. 21//config: Support '-s' for returning only the first pid found.
22//config: 22//config:
23//config:config FEATURE_PIDOF_OMIT 23//config:config FEATURE_PIDOF_OMIT
24//config: bool "Enable omitting pids (-o PID)" 24//config: bool "Enable omitting pids (-o PID)"
25//config: default y 25//config: default y
26//config: depends on PIDOF 26//config: depends on PIDOF
27//config: help 27//config: help
28//config: Support '-o PID' for omitting the given pid(s) in output. 28//config: Support '-o PID' for omitting the given pid(s) in output.
29//config: The special pid %PPID can be used to name the parent process 29//config: The special pid %PPID can be used to name the parent process
30//config: of the pidof, in other words the calling shell or shell script. 30//config: of the pidof, in other words the calling shell or shell script.
31 31
32//applet:IF_PIDOF(APPLET(pidof, BB_DIR_BIN, BB_SUID_DROP)) 32//applet:IF_PIDOF(APPLET(pidof, BB_DIR_BIN, BB_SUID_DROP))
33 33
diff --git a/procps/pmap.c b/procps/pmap.c
index bbcd54482..c8f728897 100644
--- a/procps/pmap.c
+++ b/procps/pmap.c
@@ -9,10 +9,10 @@
9 */ 9 */
10 10
11//config:config PMAP 11//config:config PMAP
12//config: bool "pmap (6 kb)" 12//config: bool "pmap (6 kb)"
13//config: default y 13//config: default y
14//config: help 14//config: help
15//config: Display processes' memory mappings. 15//config: Display processes' memory mappings.
16 16
17//applet:IF_PMAP(APPLET(pmap, BB_DIR_USR_BIN, BB_SUID_DROP)) 17//applet:IF_PMAP(APPLET(pmap, BB_DIR_USR_BIN, BB_SUID_DROP))
18//kbuild:lib-$(CONFIG_PMAP) += pmap.o 18//kbuild:lib-$(CONFIG_PMAP) += pmap.o
diff --git a/procps/powertop.c b/procps/powertop.c
index ae3aa8938..ebd659bdb 100644
--- a/procps/powertop.c
+++ b/procps/powertop.c
@@ -17,15 +17,15 @@
17//config: bool "powertop (9.1 kb)" 17//config: bool "powertop (9.1 kb)"
18//config: default y 18//config: default y
19//config: help 19//config: help
20//config: Analyze power consumption on Intel-based laptops 20//config: Analyze power consumption on Intel-based laptops
21//config: 21//config:
22//config:config FEATURE_POWERTOP_INTERACTIVE 22//config:config FEATURE_POWERTOP_INTERACTIVE
23//config: bool "Accept keyboard commands" 23//config: bool "Accept keyboard commands"
24//config: default y 24//config: default y
25//config: depends on POWERTOP 25//config: depends on POWERTOP
26//config: help 26//config: help
27//config: Without this, powertop will only refresh display every 10 seconds. 27//config: Without this, powertop will only refresh display every 10 seconds.
28//config: No keyboard commands will work, only ^C to terminate. 28//config: No keyboard commands will work, only ^C to terminate.
29 29
30// XXX This should be configurable 30// XXX This should be configurable
31#define ENABLE_FEATURE_POWERTOP_PROCIRQ 1 31#define ENABLE_FEATURE_POWERTOP_PROCIRQ 1
diff --git a/procps/ps.c b/procps/ps.c
index a8d2d188a..d4d787d78 100644
--- a/procps/ps.c
+++ b/procps/ps.c
@@ -12,24 +12,24 @@
12//config: bool "ps (11 kb)" 12//config: bool "ps (11 kb)"
13//config: default y 13//config: default y
14//config: help 14//config: help
15//config: ps gives a snapshot of the current processes. 15//config: ps gives a snapshot of the current processes.
16//config: 16//config:
17//config:config FEATURE_PS_WIDE 17//config:config FEATURE_PS_WIDE
18//config: bool "Enable wide output option (-w)" 18//config: bool "Enable wide output option (-w)"
19//config: default y 19//config: default y
20//config: depends on PS && !DESKTOP 20//config: depends on PS && !DESKTOP
21//config: help 21//config: help
22//config: Support argument 'w' for wide output. 22//config: Support argument 'w' for wide output.
23//config: If given once, 132 chars are printed, and if given more 23//config: If given once, 132 chars are printed, and if given more
24//config: than once, the length is unlimited. 24//config: than once, the length is unlimited.
25//config: 25//config:
26//config:config FEATURE_PS_LONG 26//config:config FEATURE_PS_LONG
27//config: bool "Enable long output option (-l)" 27//config: bool "Enable long output option (-l)"
28//config: default y 28//config: default y
29//config: depends on PS && !DESKTOP 29//config: depends on PS && !DESKTOP
30//config: help 30//config: help
31//config: Support argument 'l' for long output. 31//config: Support argument 'l' for long output.
32//config: Adds fields PPID, RSS, START, TIME & TTY 32//config: Adds fields PPID, RSS, START, TIME & TTY
33//config: 33//config:
34//config:config FEATURE_PS_TIME 34//config:config FEATURE_PS_TIME
35//config: bool "Support -o time and -o etime output specifiers" 35//config: bool "Support -o time and -o etime output specifiers"
@@ -42,8 +42,8 @@
42//config: default n 42//config: default n
43//config: depends on FEATURE_PS_TIME 43//config: depends on FEATURE_PS_TIME
44//config: help 44//config: help
45//config: Include support for measuring HZ on old kernels and non-ELF systems 45//config: Include support for measuring HZ on old kernels and non-ELF systems
46//config: (if you are on Linux 2.4.0+ and use ELF, you don't need this) 46//config: (if you are on Linux 2.4.0+ and use ELF, you don't need this)
47//config: 47//config:
48//config:config FEATURE_PS_ADDITIONAL_COLUMNS 48//config:config FEATURE_PS_ADDITIONAL_COLUMNS
49//config: bool "Support -o rgroup, -o ruser, -o nice specifiers" 49//config: bool "Support -o rgroup, -o ruser, -o nice specifiers"
diff --git a/procps/pstree.c b/procps/pstree.c
index cf8b81f8d..212cda23c 100644
--- a/procps/pstree.c
+++ b/procps/pstree.c
@@ -14,7 +14,7 @@
14//config: bool "pstree (9.4 kb)" 14//config: bool "pstree (9.4 kb)"
15//config: default y 15//config: default y
16//config: help 16//config: help
17//config: Display a tree of processes. 17//config: Display a tree of processes.
18 18
19//applet:IF_PSTREE(APPLET(pstree, BB_DIR_USR_BIN, BB_SUID_DROP)) 19//applet:IF_PSTREE(APPLET(pstree, BB_DIR_USR_BIN, BB_SUID_DROP))
20 20
diff --git a/procps/pwdx.c b/procps/pwdx.c
index 936153861..dac238950 100644
--- a/procps/pwdx.c
+++ b/procps/pwdx.c
@@ -12,7 +12,7 @@
12//config: bool "pwdx (3.5 kb)" 12//config: bool "pwdx (3.5 kb)"
13//config: default y 13//config: default y
14//config: help 14//config: help
15//config: Report current working directory of a process 15//config: Report current working directory of a process
16 16
17//applet:IF_PWDX(APPLET(pwdx, BB_DIR_USR_BIN, BB_SUID_DROP)) 17//applet:IF_PWDX(APPLET(pwdx, BB_DIR_USR_BIN, BB_SUID_DROP))
18 18
diff --git a/procps/smemcap.c b/procps/smemcap.c
index 327a37cdb..c15fef1c3 100644
--- a/procps/smemcap.c
+++ b/procps/smemcap.c
@@ -16,8 +16,8 @@
16//config: bool "smemcap (2.5 kb)" 16//config: bool "smemcap (2.5 kb)"
17//config: default y 17//config: default y
18//config: help 18//config: help
19//config: smemcap is a tool for capturing process data for smem, 19//config: smemcap is a tool for capturing process data for smem,
20//config: a memory usage statistic tool. 20//config: a memory usage statistic tool.
21 21
22#include "libbb.h" 22#include "libbb.h"
23#include "bb_archive.h" 23#include "bb_archive.h"
diff --git a/procps/sysctl.c b/procps/sysctl.c
index 305783be6..b17f5e896 100644
--- a/procps/sysctl.c
+++ b/procps/sysctl.c
@@ -14,7 +14,7 @@
14//config: bool "sysctl (6.9 kb)" 14//config: bool "sysctl (6.9 kb)"
15//config: default y 15//config: default y
16//config: help 16//config: help
17//config: Configure kernel parameters at runtime. 17//config: Configure kernel parameters at runtime.
18 18
19//applet:IF_BB_SYSCTL(APPLET(sysctl, BB_DIR_SBIN, BB_SUID_DROP)) 19//applet:IF_BB_SYSCTL(APPLET(sysctl, BB_DIR_SBIN, BB_SUID_DROP))
20 20
diff --git a/procps/top.c b/procps/top.c
index f43cd9c2c..015d1ab74 100644
--- a/procps/top.c
+++ b/procps/top.c
@@ -53,63 +53,63 @@
53//config: bool "top (17 kb)" 53//config: bool "top (17 kb)"
54//config: default y 54//config: default y
55//config: help 55//config: help
56//config: The top program provides a dynamic real-time view of a running 56//config: The top program provides a dynamic real-time view of a running
57//config: system. 57//config: system.
58//config: 58//config:
59//config:config FEATURE_TOP_INTERACTIVE 59//config:config FEATURE_TOP_INTERACTIVE
60//config: bool "Accept keyboard commands" 60//config: bool "Accept keyboard commands"
61//config: default y 61//config: default y
62//config: depends on TOP 62//config: depends on TOP
63//config: help 63//config: help
64//config: Without this, top will only refresh display every 5 seconds. 64//config: Without this, top will only refresh display every 5 seconds.
65//config: No keyboard commands will work, only ^C to terminate. 65//config: No keyboard commands will work, only ^C to terminate.
66//config: 66//config:
67//config:config FEATURE_TOP_CPU_USAGE_PERCENTAGE 67//config:config FEATURE_TOP_CPU_USAGE_PERCENTAGE
68//config: bool "Show CPU per-process usage percentage" 68//config: bool "Show CPU per-process usage percentage"
69//config: default y 69//config: default y
70//config: depends on TOP 70//config: depends on TOP
71//config: help 71//config: help
72//config: Make top display CPU usage for each process. 72//config: Make top display CPU usage for each process.
73//config: This adds about 2k. 73//config: This adds about 2k.
74//config: 74//config:
75//config:config FEATURE_TOP_CPU_GLOBAL_PERCENTS 75//config:config FEATURE_TOP_CPU_GLOBAL_PERCENTS
76//config: bool "Show CPU global usage percentage" 76//config: bool "Show CPU global usage percentage"
77//config: default y 77//config: default y
78//config: depends on FEATURE_TOP_CPU_USAGE_PERCENTAGE 78//config: depends on FEATURE_TOP_CPU_USAGE_PERCENTAGE
79//config: help 79//config: help
80//config: Makes top display "CPU: NN% usr NN% sys..." line. 80//config: Makes top display "CPU: NN% usr NN% sys..." line.
81//config: This adds about 0.5k. 81//config: This adds about 0.5k.
82//config: 82//config:
83//config:config FEATURE_TOP_SMP_CPU 83//config:config FEATURE_TOP_SMP_CPU
84//config: bool "SMP CPU usage display ('c' key)" 84//config: bool "SMP CPU usage display ('c' key)"
85//config: default y 85//config: default y
86//config: depends on FEATURE_TOP_CPU_GLOBAL_PERCENTS 86//config: depends on FEATURE_TOP_CPU_GLOBAL_PERCENTS
87//config: help 87//config: help
88//config: Allow 'c' key to switch between individual/cumulative CPU stats 88//config: Allow 'c' key to switch between individual/cumulative CPU stats
89//config: This adds about 0.5k. 89//config: This adds about 0.5k.
90//config: 90//config:
91//config:config FEATURE_TOP_DECIMALS 91//config:config FEATURE_TOP_DECIMALS
92//config: bool "Show 1/10th of a percent in CPU/mem statistics" 92//config: bool "Show 1/10th of a percent in CPU/mem statistics"
93//config: default y 93//config: default y
94//config: depends on FEATURE_TOP_CPU_USAGE_PERCENTAGE 94//config: depends on FEATURE_TOP_CPU_USAGE_PERCENTAGE
95//config: help 95//config: help
96//config: Show 1/10th of a percent in CPU/mem statistics. 96//config: Show 1/10th of a percent in CPU/mem statistics.
97//config: This adds about 0.3k. 97//config: This adds about 0.3k.
98//config: 98//config:
99//config:config FEATURE_TOP_SMP_PROCESS 99//config:config FEATURE_TOP_SMP_PROCESS
100//config: bool "Show CPU process runs on ('j' field)" 100//config: bool "Show CPU process runs on ('j' field)"
101//config: default y 101//config: default y
102//config: depends on TOP 102//config: depends on TOP
103//config: help 103//config: help
104//config: Show CPU where process was last found running on. 104//config: Show CPU where process was last found running on.
105//config: This is the 'j' field. 105//config: This is the 'j' field.
106//config: 106//config:
107//config:config FEATURE_TOPMEM 107//config:config FEATURE_TOPMEM
108//config: bool "Topmem command ('s' key)" 108//config: bool "Topmem command ('s' key)"
109//config: default y 109//config: default y
110//config: depends on TOP 110//config: depends on TOP
111//config: help 111//config: help
112//config: Enable 's' in top (gives lots of memory info). 112//config: Enable 's' in top (gives lots of memory info).
113 113
114//applet:IF_TOP(APPLET(top, BB_DIR_USR_BIN, BB_SUID_DROP)) 114//applet:IF_TOP(APPLET(top, BB_DIR_USR_BIN, BB_SUID_DROP))
115 115
diff --git a/procps/uptime.c b/procps/uptime.c
index 53fbe547e..24b2b39df 100644
--- a/procps/uptime.c
+++ b/procps/uptime.c
@@ -16,16 +16,16 @@
16//config: default y 16//config: default y
17//config: select PLATFORM_LINUX #sysinfo() 17//config: select PLATFORM_LINUX #sysinfo()
18//config: help 18//config: help
19//config: uptime gives a one line display of the current time, how long 19//config: uptime gives a one line display of the current time, how long
20//config: the system has been running, how many users are currently logged 20//config: the system has been running, how many users are currently logged
21//config: on, and the system load averages for the past 1, 5, and 15 minutes. 21//config: on, and the system load averages for the past 1, 5, and 15 minutes.
22//config: 22//config:
23//config:config FEATURE_UPTIME_UTMP_SUPPORT 23//config:config FEATURE_UPTIME_UTMP_SUPPORT
24//config: bool "Show the number of users" 24//config: bool "Show the number of users"
25//config: default y 25//config: default y
26//config: depends on UPTIME && FEATURE_UTMP 26//config: depends on UPTIME && FEATURE_UTMP
27//config: help 27//config: help
28//config: Display the number of users currently logged on. 28//config: Display the number of users currently logged on.
29 29
30//applet:IF_UPTIME(APPLET(uptime, BB_DIR_USR_BIN, BB_SUID_DROP)) 30//applet:IF_UPTIME(APPLET(uptime, BB_DIR_USR_BIN, BB_SUID_DROP))
31 31
diff --git a/procps/watch.c b/procps/watch.c
index 3127a0ca6..2bb7cca90 100644
--- a/procps/watch.c
+++ b/procps/watch.c
@@ -15,8 +15,8 @@
15//config: bool "watch (4.1 kb)" 15//config: bool "watch (4.1 kb)"
16//config: default y 16//config: default y
17//config: help 17//config: help
18//config: watch is used to execute a program periodically, showing 18//config: watch is used to execute a program periodically, showing
19//config: output to the screen. 19//config: output to the screen.
20 20
21//applet:IF_WATCH(APPLET(watch, BB_DIR_BIN, BB_SUID_DROP)) 21//applet:IF_WATCH(APPLET(watch, BB_DIR_BIN, BB_SUID_DROP))
22 22
diff --git a/runit/chpst.c b/runit/chpst.c
index 2e94a37c0..3a2f9e616 100644
--- a/runit/chpst.c
+++ b/runit/chpst.c
@@ -31,33 +31,33 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31//config: bool "chpst (8.7 kb)" 31//config: bool "chpst (8.7 kb)"
32//config: default y 32//config: default y
33//config: help 33//config: help
34//config: chpst changes the process state according to the given options, and 34//config: chpst changes the process state according to the given options, and
35//config: execs specified program. 35//config: execs specified program.
36//config: 36//config:
37//config:config SETUIDGID 37//config:config SETUIDGID
38//config: bool "setuidgid (4.2 kb)" 38//config: bool "setuidgid (4.2 kb)"
39//config: default y 39//config: default y
40//config: help 40//config: help
41//config: Sets soft resource limits as specified by options 41//config: Sets soft resource limits as specified by options
42//config: 42//config:
43//config:config ENVUIDGID 43//config:config ENVUIDGID
44//config: bool "envuidgid (3.6 kb)" 44//config: bool "envuidgid (3.6 kb)"
45//config: default y 45//config: default y
46//config: help 46//config: help
47//config: Sets $UID to account's uid and $GID to account's gid 47//config: Sets $UID to account's uid and $GID to account's gid
48//config: 48//config:
49//config:config ENVDIR 49//config:config ENVDIR
50//config: bool "envdir (2.5 kb)" 50//config: bool "envdir (2.5 kb)"
51//config: default y 51//config: default y
52//config: help 52//config: help
53//config: Sets various environment variables as specified by files 53//config: Sets various environment variables as specified by files
54//config: in the given directory 54//config: in the given directory
55//config: 55//config:
56//config:config SOFTLIMIT 56//config:config SOFTLIMIT
57//config: bool "softlimit (4.3 kb)" 57//config: bool "softlimit (4.3 kb)"
58//config: default y 58//config: default y
59//config: help 59//config: help
60//config: Sets soft resource limits as specified by options 60//config: Sets soft resource limits as specified by options
61 61
62//applet:IF_CHPST(APPLET(chpst, BB_DIR_USR_BIN, BB_SUID_DROP)) 62//applet:IF_CHPST(APPLET(chpst, BB_DIR_USR_BIN, BB_SUID_DROP))
63// APPLET_ODDNAME:name main location suid_type help 63// APPLET_ODDNAME:name main location suid_type help
diff --git a/runit/runsv.c b/runit/runsv.c
index 79f02f4c5..ad7d82cb8 100644
--- a/runit/runsv.c
+++ b/runit/runsv.c
@@ -31,8 +31,8 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31//config: bool "runsv (7.2 kb)" 31//config: bool "runsv (7.2 kb)"
32//config: default y 32//config: default y
33//config: help 33//config: help
34//config: runsv starts and monitors a service and optionally an appendant log 34//config: runsv starts and monitors a service and optionally an appendant log
35//config: service. 35//config: service.
36 36
37//applet:IF_RUNSV(APPLET(runsv, BB_DIR_USR_BIN, BB_SUID_DROP)) 37//applet:IF_RUNSV(APPLET(runsv, BB_DIR_USR_BIN, BB_SUID_DROP))
38 38
diff --git a/runit/runsvdir.c b/runit/runsvdir.c
index 946ae697d..b4f5c303b 100644
--- a/runit/runsvdir.c
+++ b/runit/runsvdir.c
@@ -31,18 +31,18 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31//config: bool "runsvdir (6 kb)" 31//config: bool "runsvdir (6 kb)"
32//config: default y 32//config: default y
33//config: help 33//config: help
34//config: runsvdir starts a runsv process for each subdirectory, or symlink to 34//config: runsvdir starts a runsv process for each subdirectory, or symlink to
35//config: a directory, in the services directory dir, up to a limit of 1000 35//config: a directory, in the services directory dir, up to a limit of 1000
36//config: subdirectories, and restarts a runsv process if it terminates. 36//config: subdirectories, and restarts a runsv process if it terminates.
37//config: 37//config:
38//config:config FEATURE_RUNSVDIR_LOG 38//config:config FEATURE_RUNSVDIR_LOG
39//config: bool "Enable scrolling argument log" 39//config: bool "Enable scrolling argument log"
40//config: depends on RUNSVDIR 40//config: depends on RUNSVDIR
41//config: default n 41//config: default n
42//config: help 42//config: help
43//config: Enable feature where second parameter of runsvdir holds last error 43//config: Enable feature where second parameter of runsvdir holds last error
44//config: message (viewable via top/ps). Otherwise (feature is off 44//config: message (viewable via top/ps). Otherwise (feature is off
45//config: or no parameter), error messages go to stderr only. 45//config: or no parameter), error messages go to stderr only.
46 46
47//applet:IF_RUNSVDIR(APPLET(runsvdir, BB_DIR_USR_BIN, BB_SUID_DROP)) 47//applet:IF_RUNSVDIR(APPLET(runsvdir, BB_DIR_USR_BIN, BB_SUID_DROP))
48 48
diff --git a/runit/sv.c b/runit/sv.c
index a0c7953da..2d5b466bf 100644
--- a/runit/sv.c
+++ b/runit/sv.c
@@ -157,23 +157,23 @@ Exit Codes
157//config: bool "sv (7.8 kb)" 157//config: bool "sv (7.8 kb)"
158//config: default y 158//config: default y
159//config: help 159//config: help
160//config: sv reports the current status and controls the state of services 160//config: sv reports the current status and controls the state of services
161//config: monitored by the runsv supervisor. 161//config: monitored by the runsv supervisor.
162//config: 162//config:
163//config:config SV_DEFAULT_SERVICE_DIR 163//config:config SV_DEFAULT_SERVICE_DIR
164//config: string "Default directory for services" 164//config: string "Default directory for services"
165//config: default "/var/service" 165//config: default "/var/service"
166//config: depends on SV 166//config: depends on SV
167//config: help 167//config: help
168//config: Default directory for services. 168//config: Default directory for services.
169//config: Defaults to "/var/service" 169//config: Defaults to "/var/service"
170//config: 170//config:
171//config:config SVC 171//config:config SVC
172//config: bool "svc (7.8 kb)" 172//config: bool "svc (7.8 kb)"
173//config: default y 173//config: default y
174//config: help 174//config: help
175//config: svc controls the state of services monitored by the runsv supervisor. 175//config: svc controls the state of services monitored by the runsv supervisor.
176//config: It is comaptible with daemontools command with the same name. 176//config: It is comaptible with daemontools command with the same name.
177 177
178//applet:IF_SV(APPLET(sv, BB_DIR_USR_BIN, BB_SUID_DROP)) 178//applet:IF_SV(APPLET(sv, BB_DIR_USR_BIN, BB_SUID_DROP))
179//applet:IF_SVC(APPLET(svc, BB_DIR_USR_BIN, BB_SUID_DROP)) 179//applet:IF_SVC(APPLET(svc, BB_DIR_USR_BIN, BB_SUID_DROP))
diff --git a/runit/svlogd.c b/runit/svlogd.c
index 1346994ca..8dbf67106 100644
--- a/runit/svlogd.c
+++ b/runit/svlogd.c
@@ -128,9 +128,9 @@ log message, you can use a pattern like this instead
128//config: bool "svlogd (15 kb)" 128//config: bool "svlogd (15 kb)"
129//config: default y 129//config: default y
130//config: help 130//config: help
131//config: svlogd continuously reads log data from its standard input, optionally 131//config: svlogd continuously reads log data from its standard input, optionally
132//config: filters log messages, and writes the data to one or more automatically 132//config: filters log messages, and writes the data to one or more automatically
133//config: rotated logs. 133//config: rotated logs.
134 134
135//applet:IF_SVLOGD(APPLET(svlogd, BB_DIR_USR_SBIN, BB_SUID_DROP)) 135//applet:IF_SVLOGD(APPLET(svlogd, BB_DIR_USR_SBIN, BB_SUID_DROP))
136 136
diff --git a/selinux/chcon.c b/selinux/chcon.c
index 6caf14750..ae87fb554 100644
--- a/selinux/chcon.c
+++ b/selinux/chcon.c
@@ -12,7 +12,7 @@
12//config: default n 12//config: default n
13//config: depends on SELINUX 13//config: depends on SELINUX
14//config: help 14//config: help
15//config: Enable support to change the security context of file. 15//config: Enable support to change the security context of file.
16//config: 16//config:
17//config:config FEATURE_CHCON_LONG_OPTIONS 17//config:config FEATURE_CHCON_LONG_OPTIONS
18//config: bool "Enable long options" 18//config: bool "Enable long options"
diff --git a/selinux/getenforce.c b/selinux/getenforce.c
index 44bcdfd24..0286dd0be 100644
--- a/selinux/getenforce.c
+++ b/selinux/getenforce.c
@@ -11,7 +11,7 @@
11//config: default n 11//config: default n
12//config: depends on SELINUX 12//config: depends on SELINUX
13//config: help 13//config: help
14//config: Enable support to get the current mode of SELinux. 14//config: Enable support to get the current mode of SELinux.
15 15
16//applet:IF_GETENFORCE(APPLET(getenforce, BB_DIR_USR_SBIN, BB_SUID_DROP)) 16//applet:IF_GETENFORCE(APPLET(getenforce, BB_DIR_USR_SBIN, BB_SUID_DROP))
17 17
diff --git a/selinux/getsebool.c b/selinux/getsebool.c
index 2c56a05fc..6d7805c8d 100644
--- a/selinux/getsebool.c
+++ b/selinux/getsebool.c
@@ -11,7 +11,7 @@
11//config: default n 11//config: default n
12//config: depends on SELINUX 12//config: depends on SELINUX
13//config: help 13//config: help
14//config: Enable support to get SELinux boolean values. 14//config: Enable support to get SELinux boolean values.
15 15
16//applet:IF_GETSEBOOL(APPLET(getsebool, BB_DIR_USR_SBIN, BB_SUID_DROP)) 16//applet:IF_GETSEBOOL(APPLET(getsebool, BB_DIR_USR_SBIN, BB_SUID_DROP))
17 17
diff --git a/selinux/load_policy.c b/selinux/load_policy.c
index 22ee0527d..b7930839c 100644
--- a/selinux/load_policy.c
+++ b/selinux/load_policy.c
@@ -9,7 +9,7 @@
9//config: default n 9//config: default n
10//config: depends on SELINUX 10//config: depends on SELINUX
11//config: help 11//config: help
12//config: Enable support to load SELinux policy. 12//config: Enable support to load SELinux policy.
13 13
14//applet:IF_LOAD_POLICY(APPLET(load_policy, BB_DIR_USR_SBIN, BB_SUID_DROP)) 14//applet:IF_LOAD_POLICY(APPLET(load_policy, BB_DIR_USR_SBIN, BB_SUID_DROP))
15 15
diff --git a/selinux/matchpathcon.c b/selinux/matchpathcon.c
index 7814f62ed..3388d0857 100644
--- a/selinux/matchpathcon.c
+++ b/selinux/matchpathcon.c
@@ -10,8 +10,8 @@
10//config: default n 10//config: default n
11//config: depends on SELINUX 11//config: depends on SELINUX
12//config: help 12//config: help
13//config: Enable support to get default security context of the 13//config: Enable support to get default security context of the
14//config: specified path from the file contexts configuration. 14//config: specified path from the file contexts configuration.
15 15
16//applet:IF_MATCHPATHCON(APPLET(matchpathcon, BB_DIR_USR_SBIN, BB_SUID_DROP)) 16//applet:IF_MATCHPATHCON(APPLET(matchpathcon, BB_DIR_USR_SBIN, BB_SUID_DROP))
17 17
diff --git a/selinux/runcon.c b/selinux/runcon.c
index f7d6fcd29..09082d6c2 100644
--- a/selinux/runcon.c
+++ b/selinux/runcon.c
@@ -33,7 +33,7 @@
33//config: default n 33//config: default n
34//config: depends on SELINUX 34//config: depends on SELINUX
35//config: help 35//config: help
36//config: Enable support to run command in specified security context. 36//config: Enable support to run command in specified security context.
37//config: 37//config:
38//config:config FEATURE_RUNCON_LONG_OPTIONS 38//config:config FEATURE_RUNCON_LONG_OPTIONS
39//config: bool "Enable long options" 39//config: bool "Enable long options"
diff --git a/selinux/selinuxenabled.c b/selinux/selinuxenabled.c
index e2c44b3b8..e70a452cf 100644
--- a/selinux/selinuxenabled.c
+++ b/selinux/selinuxenabled.c
@@ -11,8 +11,8 @@
11//config: default n 11//config: default n
12//config: depends on SELINUX 12//config: depends on SELINUX
13//config: help 13//config: help
14//config: Enable support for this command to be used within shell scripts 14//config: Enable support for this command to be used within shell scripts
15//config: to determine if selinux is enabled. 15//config: to determine if selinux is enabled.
16 16
17//applet:IF_SELINUXENABLED(APPLET(selinuxenabled, BB_DIR_USR_SBIN, BB_SUID_DROP)) 17//applet:IF_SELINUXENABLED(APPLET(selinuxenabled, BB_DIR_USR_SBIN, BB_SUID_DROP))
18 18
diff --git a/selinux/sestatus.c b/selinux/sestatus.c
index 719832e8f..daf4b223b 100644
--- a/selinux/sestatus.c
+++ b/selinux/sestatus.c
@@ -12,7 +12,7 @@
12//config: default n 12//config: default n
13//config: depends on SELINUX 13//config: depends on SELINUX
14//config: help 14//config: help
15//config: Displays the status of SELinux. 15//config: Displays the status of SELinux.
16 16
17//applet:IF_SESTATUS(APPLET(sestatus, BB_DIR_USR_SBIN, BB_SUID_DROP)) 17//applet:IF_SESTATUS(APPLET(sestatus, BB_DIR_USR_SBIN, BB_SUID_DROP))
18 18
diff --git a/selinux/setenforce.c b/selinux/setenforce.c
index 2e4ab77b1..c28de6ec5 100644
--- a/selinux/setenforce.c
+++ b/selinux/setenforce.c
@@ -11,7 +11,7 @@
11//config: default n 11//config: default n
12//config: depends on SELINUX 12//config: depends on SELINUX
13//config: help 13//config: help
14//config: Enable support to modify the mode SELinux is running in. 14//config: Enable support to modify the mode SELinux is running in.
15 15
16//applet:IF_SETENFORCE(APPLET(setenforce, BB_DIR_USR_SBIN, BB_SUID_DROP)) 16//applet:IF_SETENFORCE(APPLET(setenforce, BB_DIR_USR_SBIN, BB_SUID_DROP))
17 17
diff --git a/selinux/setfiles.c b/selinux/setfiles.c
index ceba36326..01106bd67 100644
--- a/selinux/setfiles.c
+++ b/selinux/setfiles.c
@@ -8,26 +8,26 @@
8//config: default n 8//config: default n
9//config: depends on SELINUX 9//config: depends on SELINUX
10//config: help 10//config: help
11//config: Enable support to modify to relabel files. 11//config: Enable support to modify to relabel files.
12//config: Notice: If you built libselinux with -D_FILE_OFFSET_BITS=64, 12//config: Notice: If you built libselinux with -D_FILE_OFFSET_BITS=64,
13//config: (It is default in libselinux's Makefile), you _must_ enable 13//config: (It is default in libselinux's Makefile), you _must_ enable
14//config: CONFIG_LFS. 14//config: CONFIG_LFS.
15//config: 15//config:
16//config:config FEATURE_SETFILES_CHECK_OPTION 16//config:config FEATURE_SETFILES_CHECK_OPTION
17//config: bool "Enable check option" 17//config: bool "Enable check option"
18//config: default n 18//config: default n
19//config: depends on SETFILES 19//config: depends on SETFILES
20//config: help 20//config: help
21//config: Support "-c" option (check the validity of the contexts against 21//config: Support "-c" option (check the validity of the contexts against
22//config: the specified binary policy) for setfiles. Requires libsepol. 22//config: the specified binary policy) for setfiles. Requires libsepol.
23//config: 23//config:
24//config:config RESTORECON 24//config:config RESTORECON
25//config: bool "restorecon (12 kb)" 25//config: bool "restorecon (12 kb)"
26//config: default n 26//config: default n
27//config: depends on SELINUX 27//config: depends on SELINUX
28//config: help 28//config: help
29//config: Enable support to relabel files. The feature is almost 29//config: Enable support to relabel files. The feature is almost
30//config: the same as setfiles, but usage is a little different. 30//config: the same as setfiles, but usage is a little different.
31 31
32//applet:IF_SETFILES(APPLET(setfiles, BB_DIR_SBIN, BB_SUID_DROP)) 32//applet:IF_SETFILES(APPLET(setfiles, BB_DIR_SBIN, BB_SUID_DROP))
33// APPLET_ODDNAME:name main location suid_type help 33// APPLET_ODDNAME:name main location suid_type help
diff --git a/selinux/setsebool.c b/selinux/setsebool.c
index 9005a384d..579118172 100644
--- a/selinux/setsebool.c
+++ b/selinux/setsebool.c
@@ -12,8 +12,8 @@
12//config: default n 12//config: default n
13//config: depends on SELINUX 13//config: depends on SELINUX
14//config: help 14//config: help
15//config: Enable support for change boolean. 15//config: Enable support for change boolean.
16//config: semanage and -P option is not supported yet. 16//config: semanage and -P option is not supported yet.
17 17
18//applet:IF_SETSEBOOL(APPLET(setsebool, BB_DIR_USR_SBIN, BB_SUID_DROP)) 18//applet:IF_SETSEBOOL(APPLET(setsebool, BB_DIR_USR_SBIN, BB_SUID_DROP))
19 19
diff --git a/shell/Config.src b/shell/Config.src
index 0dbf304ae..81c4ec874 100644
--- a/shell/Config.src
+++ b/shell/Config.src
@@ -10,26 +10,26 @@ choice
10 prompt "Choose which shell is aliased to 'sh' name" 10 prompt "Choose which shell is aliased to 'sh' name"
11 default SH_IS_ASH 11 default SH_IS_ASH
12 help 12 help
13 Choose which shell you want to be executed by 'sh' alias. 13 Choose which shell you want to be executed by 'sh' alias.
14 The ash shell is the most bash compatible and full featured one. 14 The ash shell is the most bash compatible and full featured one.
15 15
16# note: cannot use "select ASH" here, it breaks "make allnoconfig" 16# note: cannot use "select ASH" here, it breaks "make allnoconfig"
17config SH_IS_ASH 17config SH_IS_ASH
18 depends on !NOMMU 18 depends on !NOMMU
19 bool "ash" 19 bool "ash"
20 help 20 help
21 Choose ash to be the shell executed by 'sh' name. 21 Choose ash to be the shell executed by 'sh' name.
22 The ash code will be built into busybox. If you don't select 22 The ash code will be built into busybox. If you don't select
23 "ash" choice (CONFIG_ASH), this shell may only be invoked by 23 "ash" choice (CONFIG_ASH), this shell may only be invoked by
24 the name 'sh' (and not 'ash'). 24 the name 'sh' (and not 'ash').
25 25
26config SH_IS_HUSH 26config SH_IS_HUSH
27 bool "hush" 27 bool "hush"
28 help 28 help
29 Choose hush to be the shell executed by 'sh' name. 29 Choose hush to be the shell executed by 'sh' name.
30 The hush code will be built into busybox. If you don't select 30 The hush code will be built into busybox. If you don't select
31 "hush" choice (CONFIG_HUSH), this shell may only be invoked by 31 "hush" choice (CONFIG_HUSH), this shell may only be invoked by
32 the name 'sh' (and not 'hush'). 32 the name 'sh' (and not 'hush').
33 33
34config SH_IS_NONE 34config SH_IS_NONE
35 bool "none" 35 bool "none"
@@ -40,36 +40,36 @@ choice
40 prompt "Choose which shell is aliased to 'bash' name" 40 prompt "Choose which shell is aliased to 'bash' name"
41 default BASH_IS_NONE 41 default BASH_IS_NONE
42 help 42 help
43 Choose which shell you want to be executed by 'bash' alias. 43 Choose which shell you want to be executed by 'bash' alias.
44 The ash shell is the most bash compatible and full featured one, 44 The ash shell is the most bash compatible and full featured one,
45 although compatibility is far from being complete. 45 although compatibility is far from being complete.
46 46
47 Note that selecting this option does not switch on any bash 47 Note that selecting this option does not switch on any bash
48 compatibility code. It merely makes it possible to install 48 compatibility code. It merely makes it possible to install
49 /bin/bash (sym)link and run scripts which start with 49 /bin/bash (sym)link and run scripts which start with
50 #!/bin/bash line. 50 #!/bin/bash line.
51 51
52 Many systems use it in scripts which use bash-specific features, 52 Many systems use it in scripts which use bash-specific features,
53 even simple ones like $RANDOM. Without this option, busybox 53 even simple ones like $RANDOM. Without this option, busybox
54 can't be used for running them because it won't recongnize 54 can't be used for running them because it won't recongnize
55 "bash" as a supported applet name. 55 "bash" as a supported applet name.
56 56
57config BASH_IS_ASH 57config BASH_IS_ASH
58 depends on !NOMMU 58 depends on !NOMMU
59 bool "ash" 59 bool "ash"
60 help 60 help
61 Choose ash to be the shell executed by 'bash' name. 61 Choose ash to be the shell executed by 'bash' name.
62 The ash code will be built into busybox. If you don't select 62 The ash code will be built into busybox. If you don't select
63 "ash" choice (CONFIG_ASH), this shell may only be invoked by 63 "ash" choice (CONFIG_ASH), this shell may only be invoked by
64 the name 'bash' (and not 'ash'). 64 the name 'bash' (and not 'ash').
65 65
66config BASH_IS_HUSH 66config BASH_IS_HUSH
67 bool "hush" 67 bool "hush"
68 help 68 help
69 Choose hush to be the shell executed by 'bash' name. 69 Choose hush to be the shell executed by 'bash' name.
70 The hush code will be built into busybox. If you don't select 70 The hush code will be built into busybox. If you don't select
71 "hush" choice (CONFIG_HUSH), this shell may only be invoked by 71 "hush" choice (CONFIG_HUSH), this shell may only be invoked by
72 the name 'bash' (and not 'hush'). 72 the name 'bash' (and not 'hush').
73 73
74config BASH_IS_NONE 74config BASH_IS_NONE
75 bool "none" 75 bool "none"
@@ -88,78 +88,78 @@ config FEATURE_SH_MATH
88 default y 88 default y
89 depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH 89 depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH
90 help 90 help
91 Enable math support in the shell via $((...)) syntax. 91 Enable math support in the shell via $((...)) syntax.
92 92
93config FEATURE_SH_MATH_64 93config FEATURE_SH_MATH_64
94 bool "Extend POSIX math support to 64 bit" 94 bool "Extend POSIX math support to 64 bit"
95 default y 95 default y
96 depends on FEATURE_SH_MATH 96 depends on FEATURE_SH_MATH
97 help 97 help
98 Enable 64-bit math support in the shell. This will make the shell 98 Enable 64-bit math support in the shell. This will make the shell
99 slightly larger, but will allow computation with very large numbers. 99 slightly larger, but will allow computation with very large numbers.
100 This is not in POSIX, so do not rely on this in portable code. 100 This is not in POSIX, so do not rely on this in portable code.
101 101
102config FEATURE_SH_EXTRA_QUIET 102config FEATURE_SH_EXTRA_QUIET
103 bool "Hide message on interactive shell startup" 103 bool "Hide message on interactive shell startup"
104 default y 104 default y
105 depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH 105 depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH
106 help 106 help
107 Remove the busybox introduction when starting a shell. 107 Remove the busybox introduction when starting a shell.
108 108
109config FEATURE_SH_STANDALONE 109config FEATURE_SH_STANDALONE
110 bool "Standalone shell" 110 bool "Standalone shell"
111 default n 111 default n
112 depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH 112 depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH
113 help 113 help
114 This option causes busybox shells to use busybox applets 114 This option causes busybox shells to use busybox applets
115 in preference to executables in the PATH whenever possible. For 115 in preference to executables in the PATH whenever possible. For
116 example, entering the command 'ifconfig' into the shell would cause 116 example, entering the command 'ifconfig' into the shell would cause
117 busybox to use the ifconfig busybox applet. Specifying the fully 117 busybox to use the ifconfig busybox applet. Specifying the fully
118 qualified executable name, such as '/sbin/ifconfig' will still 118 qualified executable name, such as '/sbin/ifconfig' will still
119 execute the /sbin/ifconfig executable on the filesystem. This option 119 execute the /sbin/ifconfig executable on the filesystem. This option
120 is generally used when creating a statically linked version of busybox 120 is generally used when creating a statically linked version of busybox
121 for use as a rescue shell, in the event that you screw up your system. 121 for use as a rescue shell, in the event that you screw up your system.
122 122
123 This is implemented by re-execing /proc/self/exe (typically) 123 This is implemented by re-execing /proc/self/exe (typically)
124 with right parameters. 124 with right parameters.
125 125
126 However, there are drawbacks: it is problematic in chroot jails 126 However, there are drawbacks: it is problematic in chroot jails
127 without mounted /proc, and ps/top may show command name as 'exe' 127 without mounted /proc, and ps/top may show command name as 'exe'
128 for applets started this way. 128 for applets started this way.
129 129
130config FEATURE_SH_NOFORK 130config FEATURE_SH_NOFORK
131 bool "Run 'nofork' applets directly" 131 bool "Run 'nofork' applets directly"
132 default n 132 default n
133 depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH 133 depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH
134 help 134 help
135 This option causes busybox shells to not execute typical 135 This option causes busybox shells to not execute typical
136 fork/exec/wait sequence, but call <applet>_main directly, 136 fork/exec/wait sequence, but call <applet>_main directly,
137 if possible. (Sometimes it is not possible: for example, 137 if possible. (Sometimes it is not possible: for example,
138 this is not possible in pipes). 138 this is not possible in pipes).
139 139
140 This will be done only for some applets (those which are marked 140 This will be done only for some applets (those which are marked
141 NOFORK in include/applets.h). 141 NOFORK in include/applets.h).
142 142
143 This may significantly speed up some shell scripts. 143 This may significantly speed up some shell scripts.
144 144
145 This feature is relatively new. Use with care. Report bugs 145 This feature is relatively new. Use with care. Report bugs
146 to project mailing list. 146 to project mailing list.
147 147
148config FEATURE_SH_READ_FRAC 148config FEATURE_SH_READ_FRAC
149 bool "read -t N.NNN support (+110 bytes)" 149 bool "read -t N.NNN support (+110 bytes)"
150 default y 150 default y
151 depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH 151 depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH
152 help 152 help
153 Enable support for fractional second timeout in read builtin. 153 Enable support for fractional second timeout in read builtin.
154 154
155config FEATURE_SH_HISTFILESIZE 155config FEATURE_SH_HISTFILESIZE
156 bool "Use $HISTFILESIZE" 156 bool "Use $HISTFILESIZE"
157 default y 157 default y
158 depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH 158 depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH
159 help 159 help
160 This option makes busybox shells to use $HISTFILESIZE variable 160 This option makes busybox shells to use $HISTFILESIZE variable
161 to set shell history size. Note that its max value is capped 161 to set shell history size. Note that its max value is capped
162 by "History size" setting in library tuning section. 162 by "History size" setting in library tuning section.
163 163
164endif # Options common to all shells 164endif # Options common to all shells
165 165
diff --git a/shell/ash.c b/shell/ash.c
index 9d81f4ba8..b28731eb1 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -20,10 +20,10 @@
20//config: default y 20//config: default y
21//config: depends on !NOMMU 21//config: depends on !NOMMU
22//config: help 22//config: help
23//config: The most complete and most pedantically correct shell included with 23//config: The most complete and most pedantically correct shell included with
24//config: busybox. This shell is actually a derivative of the Debian 'dash' 24//config: busybox. This shell is actually a derivative of the Debian 'dash'
25//config: shell (by Herbert Xu), which was created by porting the 'ash' shell 25//config: shell (by Herbert Xu), which was created by porting the 'ash' shell
26//config: (written by Kenneth Almquist) from NetBSD. 26//config: (written by Kenneth Almquist) from NetBSD.
27//config: 27//config:
28//config:# ash options 28//config:# ash options
29//config:# note: Don't remove !NOMMU part in the next line; it would break 29//config:# note: Don't remove !NOMMU part in the next line; it would break
@@ -40,11 +40,11 @@
40//config: default y # Y is bigger, but because of uclibc glob() bug, let Y be default for now 40//config: default y # Y is bigger, but because of uclibc glob() bug, let Y be default for now
41//config: depends on ASH || SH_IS_ASH || BASH_IS_ASH 41//config: depends on ASH || SH_IS_ASH || BASH_IS_ASH
42//config: help 42//config: help
43//config: Do not use glob() function from libc, use internal implementation. 43//config: Do not use glob() function from libc, use internal implementation.
44//config: Use this if you are getting "glob.h: No such file or directory" 44//config: Use this if you are getting "glob.h: No such file or directory"
45//config: or similar build errors. 45//config: or similar build errors.
46//config: Note that as of now (2017-01), uclibc and musl glob() both have bugs 46//config: Note that as of now (2017-01), uclibc and musl glob() both have bugs
47//config: which would break ash if you select N here. 47//config: which would break ash if you select N here.
48//config: 48//config:
49//config:config ASH_BASH_COMPAT 49//config:config ASH_BASH_COMPAT
50//config: bool "bash-compatible extensions" 50//config: bool "bash-compatible extensions"
@@ -66,37 +66,37 @@
66//config: default y 66//config: default y
67//config: depends on ASH || SH_IS_ASH || BASH_IS_ASH 67//config: depends on ASH || SH_IS_ASH || BASH_IS_ASH
68//config: help 68//config: help
69//config: Enable pseudorandom generator and dynamic variable "$RANDOM". 69//config: Enable pseudorandom generator and dynamic variable "$RANDOM".
70//config: Each read of "$RANDOM" will generate a new pseudorandom value. 70//config: Each read of "$RANDOM" will generate a new pseudorandom value.
71//config: You can reset the generator by using a specified start value. 71//config: You can reset the generator by using a specified start value.
72//config: After "unset RANDOM" the generator will switch off and this 72//config: After "unset RANDOM" the generator will switch off and this
73//config: variable will no longer have special treatment. 73//config: variable will no longer have special treatment.
74//config: 74//config:
75//config:config ASH_EXPAND_PRMT 75//config:config ASH_EXPAND_PRMT
76//config: bool "Expand prompt string" 76//config: bool "Expand prompt string"
77//config: default y 77//config: default y
78//config: depends on ASH || SH_IS_ASH || BASH_IS_ASH 78//config: depends on ASH || SH_IS_ASH || BASH_IS_ASH
79//config: help 79//config: help
80//config: $PS# may contain volatile content, such as backquote commands. 80//config: $PS# may contain volatile content, such as backquote commands.
81//config: This option recreates the prompt string from the environment 81//config: This option recreates the prompt string from the environment
82//config: variable each time it is displayed. 82//config: variable each time it is displayed.
83//config: 83//config:
84//config:config ASH_IDLE_TIMEOUT 84//config:config ASH_IDLE_TIMEOUT
85//config: bool "Idle timeout variable $TMOUT" 85//config: bool "Idle timeout variable $TMOUT"
86//config: default y 86//config: default y
87//config: depends on ASH || SH_IS_ASH || BASH_IS_ASH 87//config: depends on ASH || SH_IS_ASH || BASH_IS_ASH
88//config: help 88//config: help
89//config: Enable bash-like auto-logout after $TMOUT seconds of idle time. 89//config: Enable bash-like auto-logout after $TMOUT seconds of idle time.
90//config: 90//config:
91//config:config ASH_MAIL 91//config:config ASH_MAIL
92//config: bool "Check for new mail in interactive shell" 92//config: bool "Check for new mail in interactive shell"
93//config: default y 93//config: default y
94//config: depends on ASH || SH_IS_ASH || BASH_IS_ASH 94//config: depends on ASH || SH_IS_ASH || BASH_IS_ASH
95//config: help 95//config: help
96//config: Enable "check for new mail" function: 96//config: Enable "check for new mail" function:
97//config: if set, $MAIL file and $MAILPATH list of files 97//config: if set, $MAIL file and $MAILPATH list of files
98//config: are checked for mtime changes, and "you have mail" 98//config: are checked for mtime changes, and "you have mail"
99//config: message is printed if change is detected. 99//config: message is printed if change is detected.
100//config: 100//config:
101//config:config ASH_ECHO 101//config:config ASH_ECHO
102//config: bool "echo builtin" 102//config: bool "echo builtin"
@@ -128,9 +128,9 @@
128//config: default y 128//config: default y
129//config: depends on ASH || SH_IS_ASH || BASH_IS_ASH 129//config: depends on ASH || SH_IS_ASH || BASH_IS_ASH
130//config: help 130//config: help
131//config: Enable support for the 'command' builtin, which allows 131//config: Enable support for the 'command' builtin, which allows
132//config: you to run the specified command or builtin, 132//config: you to run the specified command or builtin,
133//config: even when there is a function with the same name. 133//config: even when there is a function with the same name.
134//config: 134//config:
135//config:endif # ash options 135//config:endif # ash options
136 136
diff --git a/shell/cttyhack.c b/shell/cttyhack.c
index 9a5f4bb52..9004b4763 100644
--- a/shell/cttyhack.c
+++ b/shell/cttyhack.c
@@ -14,45 +14,45 @@
14//config: bool "cttyhack (2.5 kb)" 14//config: bool "cttyhack (2.5 kb)"
15//config: default y 15//config: default y
16//config: help 16//config: help
17//config: One common problem reported on the mailing list is the "can't 17//config: One common problem reported on the mailing list is the "can't
18//config: access tty; job control turned off" error message, which typically 18//config: access tty; job control turned off" error message, which typically
19//config: appears when one tries to use a shell with stdin/stdout on 19//config: appears when one tries to use a shell with stdin/stdout on
20//config: /dev/console. 20//config: /dev/console.
21//config: This device is special - it cannot be a controlling tty. 21//config: This device is special - it cannot be a controlling tty.
22//config: 22//config:
23//config: The proper solution is to use the correct device instead of 23//config: The proper solution is to use the correct device instead of
24//config: /dev/console. 24//config: /dev/console.
25//config: 25//config:
26//config: cttyhack provides a "quick and dirty" solution to this problem. 26//config: cttyhack provides a "quick and dirty" solution to this problem.
27//config: It analyzes stdin with various ioctls, trying to determine whether 27//config: It analyzes stdin with various ioctls, trying to determine whether
28//config: it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line). 28//config: it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
29//config: On Linux it also checks sysfs for a pointer to the active console. 29//config: On Linux it also checks sysfs for a pointer to the active console.
30//config: If cttyhack is able to find the real console device, it closes 30//config: If cttyhack is able to find the real console device, it closes
31//config: stdin/out/err and reopens that device. 31//config: stdin/out/err and reopens that device.
32//config: Then it executes the given program. Opening the device will make 32//config: Then it executes the given program. Opening the device will make
33//config: that device a controlling tty. This may require cttyhack 33//config: that device a controlling tty. This may require cttyhack
34//config: to be a session leader. 34//config: to be a session leader.
35//config: 35//config:
36//config: Example for /etc/inittab (for busybox init): 36//config: Example for /etc/inittab (for busybox init):
37//config: 37//config:
38//config: ::respawn:/bin/cttyhack /bin/sh 38//config: ::respawn:/bin/cttyhack /bin/sh
39//config: 39//config:
40//config: Starting an interactive shell from boot shell script: 40//config: Starting an interactive shell from boot shell script:
41//config: 41//config:
42//config: setsid cttyhack sh 42//config: setsid cttyhack sh
43//config: 43//config:
44//config: Giving controlling tty to shell running with PID 1: 44//config: Giving controlling tty to shell running with PID 1:
45//config: 45//config:
46//config: # exec cttyhack sh 46//config: # exec cttyhack sh
47//config: 47//config:
48//config: Without cttyhack, you need to know exact tty name, 48//config: Without cttyhack, you need to know exact tty name,
49//config: and do something like this: 49//config: and do something like this:
50//config: 50//config:
51//config: # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1' 51//config: # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
52//config: 52//config:
53//config: Starting getty on a controlling tty from a shell script: 53//config: Starting getty on a controlling tty from a shell script:
54//config: 54//config:
55//config: # getty 115200 $(cttyhack) 55//config: # getty 115200 $(cttyhack)
56 56
57//usage:#define cttyhack_trivial_usage 57//usage:#define cttyhack_trivial_usage
58//usage: "[PROG ARGS]" 58//usage: "[PROG ARGS]"
diff --git a/shell/hush.c b/shell/hush.c
index 4f1f81f31..170d5f33b 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -104,15 +104,15 @@
104//config: bool "hush (64 kb)" 104//config: bool "hush (64 kb)"
105//config: default y 105//config: default y
106//config: help 106//config: help
107//config: hush is a small shell. It handles the normal flow control 107//config: hush is a small shell. It handles the normal flow control
108//config: constructs such as if/then/elif/else/fi, for/in/do/done, while loops, 108//config: constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
109//config: case/esac. Redirections, here documents, $((arithmetic)) 109//config: case/esac. Redirections, here documents, $((arithmetic))
110//config: and functions are supported. 110//config: and functions are supported.
111//config: 111//config:
112//config: It will compile and work on no-mmu systems. 112//config: It will compile and work on no-mmu systems.
113//config: 113//config:
114//config: It does not handle select, aliases, tilde expansion, 114//config: It does not handle select, aliases, tilde expansion,
115//config: &>file and >&file redirection of stdout+stderr. 115//config: &>file and >&file redirection of stdout+stderr.
116//config: 116//config:
117//config:config HUSH_BASH_COMPAT 117//config:config HUSH_BASH_COMPAT
118//config: bool "bash-compatible extensions" 118//config: bool "bash-compatible extensions"
@@ -124,17 +124,17 @@
124//config: default y 124//config: default y
125//config: depends on HUSH_BASH_COMPAT 125//config: depends on HUSH_BASH_COMPAT
126//config: help 126//config: help
127//config: Enable {abc,def} extension. 127//config: Enable {abc,def} extension.
128//config: 128//config:
129//config:config HUSH_INTERACTIVE 129//config:config HUSH_INTERACTIVE
130//config: bool "Interactive mode" 130//config: bool "Interactive mode"
131//config: default y 131//config: default y
132//config: depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH 132//config: depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
133//config: help 133//config: help
134//config: Enable interactive mode (prompt and command editing). 134//config: Enable interactive mode (prompt and command editing).
135//config: Without this, hush simply reads and executes commands 135//config: Without this, hush simply reads and executes commands
136//config: from stdin just like a shell script from a file. 136//config: from stdin just like a shell script from a file.
137//config: No prompt, no PS1/PS2 magic shell variables. 137//config: No prompt, no PS1/PS2 magic shell variables.
138//config: 138//config:
139//config:config HUSH_SAVEHISTORY 139//config:config HUSH_SAVEHISTORY
140//config: bool "Save command history to .hush_history" 140//config: bool "Save command history to .hush_history"
@@ -146,18 +146,18 @@
146//config: default y 146//config: default y
147//config: depends on HUSH_INTERACTIVE 147//config: depends on HUSH_INTERACTIVE
148//config: help 148//config: help
149//config: Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current 149//config: Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
150//config: command (not entire shell), fg/bg builtins work. Without this option, 150//config: command (not entire shell), fg/bg builtins work. Without this option,
151//config: "cmd &" still works by simply spawning a process and immediately 151//config: "cmd &" still works by simply spawning a process and immediately
152//config: prompting for next command (or executing next command in a script), 152//config: prompting for next command (or executing next command in a script),
153//config: but no separate process group is formed. 153//config: but no separate process group is formed.
154//config: 154//config:
155//config:config HUSH_TICK 155//config:config HUSH_TICK
156//config: bool "Support process substitution" 156//config: bool "Support process substitution"
157//config: default y 157//config: default y
158//config: depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH 158//config: depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
159//config: help 159//config: help
160//config: Enable `command` and $(command). 160//config: Enable `command` and $(command).
161//config: 161//config:
162//config:config HUSH_IF 162//config:config HUSH_IF
163//config: bool "Support if/then/elif/else/fi" 163//config: bool "Support if/then/elif/else/fi"
@@ -174,37 +174,37 @@
174//config: default y 174//config: default y
175//config: depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH 175//config: depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
176//config: help 176//config: help
177//config: Enable case ... esac statement. +400 bytes. 177//config: Enable case ... esac statement. +400 bytes.
178//config: 178//config:
179//config:config HUSH_FUNCTIONS 179//config:config HUSH_FUNCTIONS
180//config: bool "Support funcname() { commands; } syntax" 180//config: bool "Support funcname() { commands; } syntax"
181//config: default y 181//config: default y
182//config: depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH 182//config: depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
183//config: help 183//config: help
184//config: Enable support for shell functions. +800 bytes. 184//config: Enable support for shell functions. +800 bytes.
185//config: 185//config:
186//config:config HUSH_LOCAL 186//config:config HUSH_LOCAL
187//config: bool "local builtin" 187//config: bool "local builtin"
188//config: default y 188//config: default y
189//config: depends on HUSH_FUNCTIONS 189//config: depends on HUSH_FUNCTIONS
190//config: help 190//config: help
191//config: Enable support for local variables in functions. 191//config: Enable support for local variables in functions.
192//config: 192//config:
193//config:config HUSH_RANDOM_SUPPORT 193//config:config HUSH_RANDOM_SUPPORT
194//config: bool "Pseudorandom generator and $RANDOM variable" 194//config: bool "Pseudorandom generator and $RANDOM variable"
195//config: default y 195//config: default y
196//config: depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH 196//config: depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
197//config: help 197//config: help
198//config: Enable pseudorandom generator and dynamic variable "$RANDOM". 198//config: Enable pseudorandom generator and dynamic variable "$RANDOM".
199//config: Each read of "$RANDOM" will generate a new pseudorandom value. 199//config: Each read of "$RANDOM" will generate a new pseudorandom value.
200//config: 200//config:
201//config:config HUSH_MODE_X 201//config:config HUSH_MODE_X
202//config: bool "Support 'hush -x' option and 'set -x' command" 202//config: bool "Support 'hush -x' option and 'set -x' command"
203//config: default y 203//config: default y
204//config: depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH 204//config: depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
205//config: help 205//config: help
206//config: This instructs hush to print commands before execution. 206//config: This instructs hush to print commands before execution.
207//config: Adds ~300 bytes. 207//config: Adds ~300 bytes.
208//config: 208//config:
209//config:config HUSH_ECHO 209//config:config HUSH_ECHO
210//config: bool "echo builtin" 210//config: bool "echo builtin"
@@ -236,14 +236,14 @@
236//config: default y 236//config: default y
237//config: depends on HUSH_EXPORT 237//config: depends on HUSH_EXPORT
238//config: help 238//config: help
239//config: export -n unexports variables. It is a bash extension. 239//config: export -n unexports variables. It is a bash extension.
240//config: 240//config:
241//config:config HUSH_READONLY 241//config:config HUSH_READONLY
242//config: bool "readonly builtin" 242//config: bool "readonly builtin"
243//config: default y 243//config: default y
244//config: depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH 244//config: depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
245//config: help 245//config: help
246//config: Enable support for read-only variables. 246//config: Enable support for read-only variables.
247//config: 247//config:
248//config:config HUSH_KILL 248//config:config HUSH_KILL
249//config: bool "kill builtin (supports kill %jobspec)" 249//config: bool "kill builtin (supports kill %jobspec)"
diff --git a/sysklogd/klogd.c b/sysklogd/klogd.c
index b20d86174..728cc8d38 100644
--- a/sysklogd/klogd.c
+++ b/sysklogd/klogd.c
@@ -20,11 +20,11 @@
20//config: bool "klogd (5.5 kb)" 20//config: bool "klogd (5.5 kb)"
21//config: default y 21//config: default y
22//config: help 22//config: help
23//config: klogd is a utility which intercepts and logs all 23//config: klogd is a utility which intercepts and logs all
24//config: messages from the Linux kernel and sends the messages 24//config: messages from the Linux kernel and sends the messages
25//config: out to the 'syslogd' utility so they can be logged. If 25//config: out to the 'syslogd' utility so they can be logged. If
26//config: you wish to record the messages produced by the kernel, 26//config: you wish to record the messages produced by the kernel,
27//config: you should enable this option. 27//config: you should enable this option.
28//config: 28//config:
29//config:comment "klogd should not be used together with syslog to kernel printk buffer" 29//config:comment "klogd should not be used together with syslog to kernel printk buffer"
30//config: depends on KLOGD && FEATURE_KMSG_SYSLOG 30//config: depends on KLOGD && FEATURE_KMSG_SYSLOG
@@ -35,16 +35,16 @@
35//config: depends on KLOGD 35//config: depends on KLOGD
36//config: select PLATFORM_LINUX 36//config: select PLATFORM_LINUX
37//config: help 37//config: help
38//config: The klogd applet supports two interfaces for reading 38//config: The klogd applet supports two interfaces for reading
39//config: kernel messages. Linux provides the klogctl() interface 39//config: kernel messages. Linux provides the klogctl() interface
40//config: which allows reading messages from the kernel ring buffer 40//config: which allows reading messages from the kernel ring buffer
41//config: independently from the file system. 41//config: independently from the file system.
42//config: 42//config:
43//config: If you answer 'N' here, klogd will use the more portable 43//config: If you answer 'N' here, klogd will use the more portable
44//config: approach of reading them from /proc or a device node. 44//config: approach of reading them from /proc or a device node.
45//config: However, this method requires the file to be available. 45//config: However, this method requires the file to be available.
46//config: 46//config:
47//config: If in doubt, say 'Y'. 47//config: If in doubt, say 'Y'.
48 48
49//applet:IF_KLOGD(APPLET(klogd, BB_DIR_SBIN, BB_SUID_DROP)) 49//applet:IF_KLOGD(APPLET(klogd, BB_DIR_SBIN, BB_SUID_DROP))
50 50
diff --git a/sysklogd/logger.c b/sysklogd/logger.c
index 09fed0c73..6769a8175 100644
--- a/sysklogd/logger.c
+++ b/sysklogd/logger.c
@@ -11,10 +11,10 @@
11//config: default y 11//config: default y
12//config: select FEATURE_SYSLOG 12//config: select FEATURE_SYSLOG
13//config: help 13//config: help
14//config: The logger utility allows you to send arbitrary text 14//config: The logger utility allows you to send arbitrary text
15//config: messages to the system log (i.e. the 'syslogd' utility) so 15//config: messages to the system log (i.e. the 'syslogd' utility) so
16//config: they can be logged. This is generally used to help locate 16//config: they can be logged. This is generally used to help locate
17//config: problems that occur within programs and scripts. 17//config: problems that occur within programs and scripts.
18 18
19//applet:IF_LOGGER(APPLET(logger, BB_DIR_USR_BIN, BB_SUID_DROP)) 19//applet:IF_LOGGER(APPLET(logger, BB_DIR_USR_BIN, BB_SUID_DROP))
20 20
diff --git a/sysklogd/logread.c b/sysklogd/logread.c
index dd4c7cb6d..da552e087 100644
--- a/sysklogd/logread.c
+++ b/sysklogd/logread.c
@@ -14,21 +14,21 @@
14//WRONG: it should be compilable without SYSLOG=y: 14//WRONG: it should be compilable without SYSLOG=y:
15//WRONG: depends on FEATURE_IPC_SYSLOG 15//WRONG: depends on FEATURE_IPC_SYSLOG
16//config: help 16//config: help
17//config: If you enabled Circular Buffer support, you almost 17//config: If you enabled Circular Buffer support, you almost
18//config: certainly want to enable this feature as well. This 18//config: certainly want to enable this feature as well. This
19//config: utility will allow you to read the messages that are 19//config: utility will allow you to read the messages that are
20//config: stored in the syslogd circular buffer. 20//config: stored in the syslogd circular buffer.
21//config: 21//config:
22//config:config FEATURE_LOGREAD_REDUCED_LOCKING 22//config:config FEATURE_LOGREAD_REDUCED_LOCKING
23//config: bool "Double buffering" 23//config: bool "Double buffering"
24//config: default y 24//config: default y
25//config: depends on LOGREAD 25//config: depends on LOGREAD
26//config: help 26//config: help
27//config: 'logread' output to slow serial terminals can have 27//config: 'logread' output to slow serial terminals can have
28//config: side effects on syslog because of the semaphore. 28//config: side effects on syslog because of the semaphore.
29//config: This option make logread to double buffer copy 29//config: This option make logread to double buffer copy
30//config: from circular buffer, minimizing semaphore 30//config: from circular buffer, minimizing semaphore
31//config: contention at some minor memory expense. 31//config: contention at some minor memory expense.
32//config: 32//config:
33 33
34//applet:IF_LOGREAD(APPLET(logread, BB_DIR_SBIN, BB_SUID_DROP)) 34//applet:IF_LOGREAD(APPLET(logread, BB_DIR_SBIN, BB_SUID_DROP))
diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c
index a9c9c69bc..31730a7f9 100644
--- a/sysklogd/syslogd.c
+++ b/sysklogd/syslogd.c
@@ -16,53 +16,53 @@
16//config: bool "syslogd (12 kb)" 16//config: bool "syslogd (12 kb)"
17//config: default y 17//config: default y
18//config: help 18//config: help
19//config: The syslogd utility is used to record logs of all the 19//config: The syslogd utility is used to record logs of all the
20//config: significant events that occur on a system. Every 20//config: significant events that occur on a system. Every
21//config: message that is logged records the date and time of the 21//config: message that is logged records the date and time of the
22//config: event, and will generally also record the name of the 22//config: event, and will generally also record the name of the
23//config: application that generated the message. When used in 23//config: application that generated the message. When used in
24//config: conjunction with klogd, messages from the Linux kernel 24//config: conjunction with klogd, messages from the Linux kernel
25//config: can also be recorded. This is terribly useful, 25//config: can also be recorded. This is terribly useful,
26//config: especially for finding what happened when something goes 26//config: especially for finding what happened when something goes
27//config: wrong. And something almost always will go wrong if 27//config: wrong. And something almost always will go wrong if
28//config: you wait long enough.... 28//config: you wait long enough....
29//config: 29//config:
30//config:config FEATURE_ROTATE_LOGFILE 30//config:config FEATURE_ROTATE_LOGFILE
31//config: bool "Rotate message files" 31//config: bool "Rotate message files"
32//config: default y 32//config: default y
33//config: depends on SYSLOGD 33//config: depends on SYSLOGD
34//config: help 34//config: help
35//config: This enables syslogd to rotate the message files 35//config: This enables syslogd to rotate the message files
36//config: on his own. No need to use an external rotate script. 36//config: on his own. No need to use an external rotate script.
37//config: 37//config:
38//config:config FEATURE_REMOTE_LOG 38//config:config FEATURE_REMOTE_LOG
39//config: bool "Remote Log support" 39//config: bool "Remote Log support"
40//config: default y 40//config: default y
41//config: depends on SYSLOGD 41//config: depends on SYSLOGD
42//config: help 42//config: help
43//config: When you enable this feature, the syslogd utility can 43//config: When you enable this feature, the syslogd utility can
44//config: be used to send system log messages to another system 44//config: be used to send system log messages to another system
45//config: connected via a network. This allows the remote 45//config: connected via a network. This allows the remote
46//config: machine to log all the system messages, which can be 46//config: machine to log all the system messages, which can be
47//config: terribly useful for reducing the number of serial 47//config: terribly useful for reducing the number of serial
48//config: cables you use. It can also be a very good security 48//config: cables you use. It can also be a very good security
49//config: measure to prevent system logs from being tampered with 49//config: measure to prevent system logs from being tampered with
50//config: by an intruder. 50//config: by an intruder.
51//config: 51//config:
52//config:config FEATURE_SYSLOGD_DUP 52//config:config FEATURE_SYSLOGD_DUP
53//config: bool "Support -D (drop dups) option" 53//config: bool "Support -D (drop dups) option"
54//config: default y 54//config: default y
55//config: depends on SYSLOGD 55//config: depends on SYSLOGD
56//config: help 56//config: help
57//config: Option -D instructs syslogd to drop consecutive messages 57//config: Option -D instructs syslogd to drop consecutive messages
58//config: which are totally the same. 58//config: which are totally the same.
59//config: 59//config:
60//config:config FEATURE_SYSLOGD_CFG 60//config:config FEATURE_SYSLOGD_CFG
61//config: bool "Support syslog.conf" 61//config: bool "Support syslog.conf"
62//config: default y 62//config: default y
63//config: depends on SYSLOGD 63//config: depends on SYSLOGD
64//config: help 64//config: help
65//config: Supports restricted syslogd config. See docs/syslog.conf.txt 65//config: Supports restricted syslogd config. See docs/syslog.conf.txt
66//config: 66//config:
67//config:config FEATURE_SYSLOGD_READ_BUFFER_SIZE 67//config:config FEATURE_SYSLOGD_READ_BUFFER_SIZE
68//config: int "Read buffer size in bytes" 68//config: int "Read buffer size in bytes"
@@ -70,23 +70,23 @@
70//config: range 256 20000 70//config: range 256 20000
71//config: depends on SYSLOGD 71//config: depends on SYSLOGD
72//config: help 72//config: help
73//config: This option sets the size of the syslog read buffer. 73//config: This option sets the size of the syslog read buffer.
74//config: Actual memory usage increases around five times the 74//config: Actual memory usage increases around five times the
75//config: change done here. 75//config: change done here.
76//config: 76//config:
77//config:config FEATURE_IPC_SYSLOG 77//config:config FEATURE_IPC_SYSLOG
78//config: bool "Circular Buffer support" 78//config: bool "Circular Buffer support"
79//config: default y 79//config: default y
80//config: depends on SYSLOGD 80//config: depends on SYSLOGD
81//config: help 81//config: help
82//config: When you enable this feature, the syslogd utility will 82//config: When you enable this feature, the syslogd utility will
83//config: use a circular buffer to record system log messages. 83//config: use a circular buffer to record system log messages.
84//config: When the buffer is filled it will continue to overwrite 84//config: When the buffer is filled it will continue to overwrite
85//config: the oldest messages. This can be very useful for 85//config: the oldest messages. This can be very useful for
86//config: systems with little or no permanent storage, since 86//config: systems with little or no permanent storage, since
87//config: otherwise system logs can eventually fill up your 87//config: otherwise system logs can eventually fill up your
88//config: entire filesystem, which may cause your system to 88//config: entire filesystem, which may cause your system to
89//config: break badly. 89//config: break badly.
90//config: 90//config:
91//config:config FEATURE_IPC_SYSLOG_BUFFER_SIZE 91//config:config FEATURE_IPC_SYSLOG_BUFFER_SIZE
92//config: int "Circular buffer size in Kbytes (minimum 4KB)" 92//config: int "Circular buffer size in Kbytes (minimum 4KB)"
@@ -94,8 +94,8 @@
94//config: range 4 2147483647 94//config: range 4 2147483647
95//config: depends on FEATURE_IPC_SYSLOG 95//config: depends on FEATURE_IPC_SYSLOG
96//config: help 96//config: help
97//config: This option sets the size of the circular buffer 97//config: This option sets the size of the circular buffer
98//config: used to record system log messages. 98//config: used to record system log messages.
99//config: 99//config:
100//config:config FEATURE_KMSG_SYSLOG 100//config:config FEATURE_KMSG_SYSLOG
101//config: bool "Linux kernel printk buffer support" 101//config: bool "Linux kernel printk buffer support"
@@ -103,12 +103,12 @@
103//config: depends on SYSLOGD 103//config: depends on SYSLOGD
104//config: select PLATFORM_LINUX 104//config: select PLATFORM_LINUX
105//config: help 105//config: help
106//config: When you enable this feature, the syslogd utility will 106//config: When you enable this feature, the syslogd utility will
107//config: write system log message to the Linux kernel's printk buffer. 107//config: write system log message to the Linux kernel's printk buffer.
108//config: This can be used as a smaller alternative to the syslogd IPC 108//config: This can be used as a smaller alternative to the syslogd IPC
109//config: support, as klogd and logread aren't needed. 109//config: support, as klogd and logread aren't needed.
110//config: 110//config:
111//config: NOTICE: Syslog facilities in log entries needs kernel 3.5+. 111//config: NOTICE: Syslog facilities in log entries needs kernel 3.5+.
112 112
113//applet:IF_SYSLOGD(APPLET(syslogd, BB_DIR_SBIN, BB_SUID_DROP)) 113//applet:IF_SYSLOGD(APPLET(syslogd, BB_DIR_SBIN, BB_SUID_DROP))
114 114
diff --git a/util-linux/Config.src b/util-linux/Config.src
index 0971d714a..68fcc266f 100644
--- a/util-linux/Config.src
+++ b/util-linux/Config.src
@@ -15,29 +15,29 @@ config FEATURE_MOUNT_LOOP
15 default y 15 default y
16 depends on MOUNT || UMOUNT 16 depends on MOUNT || UMOUNT
17 help 17 help
18 Enabling this feature allows automatic mounting of files (containing 18 Enabling this feature allows automatic mounting of files (containing
19 filesystem images) via the linux kernel's loopback devices. 19 filesystem images) via the linux kernel's loopback devices.
20 The mount command will detect you are trying to mount a file instead 20 The mount command will detect you are trying to mount a file instead
21 of a block device, and transparently associate the file with a 21 of a block device, and transparently associate the file with a
22 loopback device. The umount command will also free that loopback 22 loopback device. The umount command will also free that loopback
23 device. 23 device.
24 24
25 You can still use the 'losetup' utility (to manually associate files 25 You can still use the 'losetup' utility (to manually associate files
26 with loop devices) if you need to do something advanced, such as 26 with loop devices) if you need to do something advanced, such as
27 specify an offset or cryptographic options to the loopback device. 27 specify an offset or cryptographic options to the loopback device.
28 (If you don't want umount to free the loop device, use "umount -D".) 28 (If you don't want umount to free the loop device, use "umount -D".)
29 29
30config FEATURE_MOUNT_LOOP_CREATE 30config FEATURE_MOUNT_LOOP_CREATE
31 bool "Create new loopback devices if needed" 31 bool "Create new loopback devices if needed"
32 default y 32 default y
33 depends on FEATURE_MOUNT_LOOP 33 depends on FEATURE_MOUNT_LOOP
34 help 34 help
35 Linux kernels >= 2.6.24 support unlimited loopback devices. They are 35 Linux kernels >= 2.6.24 support unlimited loopback devices. They are
36 allocated for use when trying to use a loop device. The loop device 36 allocated for use when trying to use a loop device. The loop device
37 must however exist. 37 must however exist.
38 38
39 This feature lets mount to try to create next /dev/loopN device 39 This feature lets mount to try to create next /dev/loopN device
40 if it does not find a free one. 40 if it does not find a free one.
41 41
42config FEATURE_MTAB_SUPPORT 42config FEATURE_MTAB_SUPPORT
43 bool "Support old /etc/mtab file" 43 bool "Support old /etc/mtab file"
@@ -45,23 +45,23 @@ config FEATURE_MTAB_SUPPORT
45 depends on MOUNT || UMOUNT 45 depends on MOUNT || UMOUNT
46 select FEATURE_MOUNT_FAKE 46 select FEATURE_MOUNT_FAKE
47 help 47 help
48 Historically, Unix systems kept track of the currently mounted 48 Historically, Unix systems kept track of the currently mounted
49 partitions in the file "/etc/mtab". These days, the kernel exports 49 partitions in the file "/etc/mtab". These days, the kernel exports
50 the list of currently mounted partitions in "/proc/mounts", rendering 50 the list of currently mounted partitions in "/proc/mounts", rendering
51 the old mtab file obsolete. (In modern systems, /etc/mtab should be 51 the old mtab file obsolete. (In modern systems, /etc/mtab should be
52 a symlink to /proc/mounts.) 52 a symlink to /proc/mounts.)
53 53
54 The only reason to have mount maintain an /etc/mtab file itself is if 54 The only reason to have mount maintain an /etc/mtab file itself is if
55 your stripped-down embedded system does not have a /proc directory. 55 your stripped-down embedded system does not have a /proc directory.
56 If you must use this, keep in mind it's inherently brittle (for 56 If you must use this, keep in mind it's inherently brittle (for
57 example a mount under chroot won't update it), can't handle modern 57 example a mount under chroot won't update it), can't handle modern
58 features like separate per-process filesystem namespaces, requires 58 features like separate per-process filesystem namespaces, requires
59 that your /etc directory be writable, tends to get easily confused 59 that your /etc directory be writable, tends to get easily confused
60 by --bind or --move mounts, won't update if you rename a directory 60 by --bind or --move mounts, won't update if you rename a directory
61 that contains a mount point, and so on. (In brief: avoid.) 61 that contains a mount point, and so on. (In brief: avoid.)
62 62
63 About the only reason to use this is if you've removed /proc from 63 About the only reason to use this is if you've removed /proc from
64 your kernel. 64 your kernel.
65 65
66source util-linux/volume_id/Config.in 66source util-linux/volume_id/Config.in
67 67
diff --git a/util-linux/acpid.c b/util-linux/acpid.c
index 7abea1400..3c3811752 100644
--- a/util-linux/acpid.c
+++ b/util-linux/acpid.c
@@ -11,23 +11,23 @@
11//config: default y 11//config: default y
12//config: select PLATFORM_LINUX 12//config: select PLATFORM_LINUX
13//config: help 13//config: help
14//config: acpid listens to ACPI events coming either in textual form from 14//config: acpid listens to ACPI events coming either in textual form from
15//config: /proc/acpi/event (though it is marked deprecated it is still widely 15//config: /proc/acpi/event (though it is marked deprecated it is still widely
16//config: used and _is_ a standard) or in binary form from specified evdevs 16//config: used and _is_ a standard) or in binary form from specified evdevs
17//config: (just use /dev/input/event*). 17//config: (just use /dev/input/event*).
18//config: 18//config:
19//config: It parses the event to retrieve ACTION and a possible PARAMETER. 19//config: It parses the event to retrieve ACTION and a possible PARAMETER.
20//config: It then spawns /etc/acpi/<ACTION>[/<PARAMETER>] either via run-parts 20//config: It then spawns /etc/acpi/<ACTION>[/<PARAMETER>] either via run-parts
21//config: (if the resulting path is a directory) or directly as an executable. 21//config: (if the resulting path is a directory) or directly as an executable.
22//config: 22//config:
23//config: N.B. acpid relies on run-parts so have the latter installed. 23//config: N.B. acpid relies on run-parts so have the latter installed.
24//config: 24//config:
25//config:config FEATURE_ACPID_COMPAT 25//config:config FEATURE_ACPID_COMPAT
26//config: bool "Accept and ignore redundant options" 26//config: bool "Accept and ignore redundant options"
27//config: default y 27//config: default y
28//config: depends on ACPID 28//config: depends on ACPID
29//config: help 29//config: help
30//config: Accept and ignore compatibility options -g -m -s -S -v. 30//config: Accept and ignore compatibility options -g -m -s -S -v.
31 31
32//applet:IF_ACPID(APPLET(acpid, BB_DIR_SBIN, BB_SUID_DROP)) 32//applet:IF_ACPID(APPLET(acpid, BB_DIR_SBIN, BB_SUID_DROP))
33 33
diff --git a/util-linux/blkdiscard.c b/util-linux/blkdiscard.c
index 690062970..8f6a4ab6c 100644
--- a/util-linux/blkdiscard.c
+++ b/util-linux/blkdiscard.c
@@ -9,7 +9,7 @@
9//config: bool "blkdiscard (5.3 kb)" 9//config: bool "blkdiscard (5.3 kb)"
10//config: default y 10//config: default y
11//config: help 11//config: help
12//config: blkdiscard discards sectors on a given device. 12//config: blkdiscard discards sectors on a given device.
13 13
14//kbuild:lib-$(CONFIG_BLKDISCARD) += blkdiscard.o 14//kbuild:lib-$(CONFIG_BLKDISCARD) += blkdiscard.o
15//applet:IF_BLKDISCARD(APPLET(blkdiscard, BB_DIR_USR_BIN, BB_SUID_DROP)) 15//applet:IF_BLKDISCARD(APPLET(blkdiscard, BB_DIR_USR_BIN, BB_SUID_DROP))
diff --git a/util-linux/blkid.c b/util-linux/blkid.c
index 08fa07968..f353cf248 100644
--- a/util-linux/blkid.c
+++ b/util-linux/blkid.c
@@ -12,16 +12,16 @@
12//config: select PLATFORM_LINUX 12//config: select PLATFORM_LINUX
13//config: select VOLUMEID 13//config: select VOLUMEID
14//config: help 14//config: help
15//config: Lists labels and UUIDs of all filesystems. 15//config: Lists labels and UUIDs of all filesystems.
16//config: WARNING: 16//config: WARNING:
17//config: With all submodules selected, it will add ~8k to busybox. 17//config: With all submodules selected, it will add ~8k to busybox.
18//config: 18//config:
19//config:config FEATURE_BLKID_TYPE 19//config:config FEATURE_BLKID_TYPE
20//config: bool "Print filesystem type" 20//config: bool "Print filesystem type"
21//config: default n 21//config: default n
22//config: depends on BLKID 22//config: depends on BLKID
23//config: help 23//config: help
24//config: Show TYPE="filesystem type" 24//config: Show TYPE="filesystem type"
25 25
26//applet:IF_BLKID(APPLET(blkid, BB_DIR_SBIN, BB_SUID_DROP)) 26//applet:IF_BLKID(APPLET(blkid, BB_DIR_SBIN, BB_SUID_DROP))
27 27
diff --git a/util-linux/blockdev.c b/util-linux/blockdev.c
index 9924ef06f..9e1fef206 100644
--- a/util-linux/blockdev.c
+++ b/util-linux/blockdev.c
@@ -9,7 +9,7 @@
9//config: bool "blockdev (2.4 kb)" 9//config: bool "blockdev (2.4 kb)"
10//config: default y 10//config: default y
11//config: help 11//config: help
12//config: Performs some ioctls with block devices. 12//config: Performs some ioctls with block devices.
13 13
14//applet:IF_BLOCKDEV(APPLET(blockdev, BB_DIR_SBIN, BB_SUID_DROP)) 14//applet:IF_BLOCKDEV(APPLET(blockdev, BB_DIR_SBIN, BB_SUID_DROP))
15 15
diff --git a/util-linux/cal.c b/util-linux/cal.c
index f7a965619..091fdbd2b 100644
--- a/util-linux/cal.c
+++ b/util-linux/cal.c
@@ -14,7 +14,7 @@
14//config: bool "cal (6.5 kb)" 14//config: bool "cal (6.5 kb)"
15//config: default y 15//config: default y
16//config: help 16//config: help
17//config: cal is used to display a monthly calendar. 17//config: cal is used to display a monthly calendar.
18 18
19//applet:IF_CAL(APPLET(cal, BB_DIR_USR_BIN, BB_SUID_DROP)) 19//applet:IF_CAL(APPLET(cal, BB_DIR_USR_BIN, BB_SUID_DROP))
20 20
diff --git a/util-linux/chrt.c b/util-linux/chrt.c
index ad13dd512..4bc8b6cfa 100644
--- a/util-linux/chrt.c
+++ b/util-linux/chrt.c
@@ -9,8 +9,8 @@
9//config: bool "chrt (4.4 kb)" 9//config: bool "chrt (4.4 kb)"
10//config: default y 10//config: default y
11//config: help 11//config: help
12//config: manipulate real-time attributes of a process. 12//config: manipulate real-time attributes of a process.
13//config: This requires sched_{g,s}etparam support in your libc. 13//config: This requires sched_{g,s}etparam support in your libc.
14 14
15//applet:IF_CHRT(APPLET(chrt, BB_DIR_USR_BIN, BB_SUID_DROP)) 15//applet:IF_CHRT(APPLET(chrt, BB_DIR_USR_BIN, BB_SUID_DROP))
16 16
diff --git a/util-linux/dmesg.c b/util-linux/dmesg.c
index 5822d0290..6da9d9f4e 100644
--- a/util-linux/dmesg.c
+++ b/util-linux/dmesg.c
@@ -13,34 +13,34 @@
13//config: default y 13//config: default y
14//config: select PLATFORM_LINUX 14//config: select PLATFORM_LINUX
15//config: help 15//config: help
16//config: dmesg is used to examine or control the kernel ring buffer. When the 16//config: dmesg is used to examine or control the kernel ring buffer. When the
17//config: Linux kernel prints messages to the system log, they are stored in 17//config: Linux kernel prints messages to the system log, they are stored in
18//config: the kernel ring buffer. You can use dmesg to print the kernel's ring 18//config: the kernel ring buffer. You can use dmesg to print the kernel's ring
19//config: buffer, clear the kernel ring buffer, change the size of the kernel 19//config: buffer, clear the kernel ring buffer, change the size of the kernel
20//config: ring buffer, and change the priority level at which kernel messages 20//config: ring buffer, and change the priority level at which kernel messages
21//config: are also logged to the system console. Enable this option if you 21//config: are also logged to the system console. Enable this option if you
22//config: wish to enable the 'dmesg' utility. 22//config: wish to enable the 'dmesg' utility.
23//config: 23//config:
24//config:config FEATURE_DMESG_PRETTY 24//config:config FEATURE_DMESG_PRETTY
25//config: bool "Pretty output" 25//config: bool "Pretty output"
26//config: default y 26//config: default y
27//config: depends on DMESG 27//config: depends on DMESG
28//config: help 28//config: help
29//config: If you wish to scrub the syslog level from the output, say 'Y' here. 29//config: If you wish to scrub the syslog level from the output, say 'Y' here.
30//config: The syslog level is a string prefixed to every line with the form 30//config: The syslog level is a string prefixed to every line with the form
31//config: "<#>". 31//config: "<#>".
32//config: 32//config:
33//config: With this option you will see: 33//config: With this option you will see:
34//config: # dmesg 34//config: # dmesg
35//config: Linux version 2.6.17.4 ..... 35//config: Linux version 2.6.17.4 .....
36//config: BIOS-provided physical RAM map: 36//config: BIOS-provided physical RAM map:
37//config: BIOS-e820: 0000000000000000 - 000000000009f000 (usable) 37//config: BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
38//config: 38//config:
39//config: Without this option you will see: 39//config: Without this option you will see:
40//config: # dmesg 40//config: # dmesg
41//config: <5>Linux version 2.6.17.4 ..... 41//config: <5>Linux version 2.6.17.4 .....
42//config: <6>BIOS-provided physical RAM map: 42//config: <6>BIOS-provided physical RAM map:
43//config: <6> BIOS-e820: 0000000000000000 - 000000000009f000 (usable) 43//config: <6> BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
44 44
45//applet:IF_DMESG(APPLET(dmesg, BB_DIR_BIN, BB_SUID_DROP)) 45//applet:IF_DMESG(APPLET(dmesg, BB_DIR_BIN, BB_SUID_DROP))
46 46
diff --git a/util-linux/eject.c b/util-linux/eject.c
index 07ac2fd54..8095cbef0 100644
--- a/util-linux/eject.c
+++ b/util-linux/eject.c
@@ -17,15 +17,15 @@
17//config: default y 17//config: default y
18//config: select PLATFORM_LINUX 18//config: select PLATFORM_LINUX
19//config: help 19//config: help
20//config: Used to eject cdroms. (defaults to /dev/cdrom) 20//config: Used to eject cdroms. (defaults to /dev/cdrom)
21//config: 21//config:
22//config:config FEATURE_EJECT_SCSI 22//config:config FEATURE_EJECT_SCSI
23//config: bool "SCSI support" 23//config: bool "SCSI support"
24//config: default y 24//config: default y
25//config: depends on EJECT 25//config: depends on EJECT
26//config: help 26//config: help
27//config: Add the -s option to eject, this allows to eject SCSI-Devices and 27//config: Add the -s option to eject, this allows to eject SCSI-Devices and
28//config: usb-storage devices. 28//config: usb-storage devices.
29 29
30//applet:IF_EJECT(APPLET(eject, BB_DIR_USR_BIN, BB_SUID_DROP)) 30//applet:IF_EJECT(APPLET(eject, BB_DIR_USR_BIN, BB_SUID_DROP))
31 31
diff --git a/util-linux/fallocate.c b/util-linux/fallocate.c
index 34f01ebd5..70e7e178f 100644
--- a/util-linux/fallocate.c
+++ b/util-linux/fallocate.c
@@ -9,7 +9,7 @@
9//config: bool "fallocate (5 kb)" 9//config: bool "fallocate (5 kb)"
10//config: default y 10//config: default y
11//config: help 11//config: help
12//config: Preallocate space for files. 12//config: Preallocate space for files.
13 13
14//applet:IF_FALLOCATE(APPLET(fallocate, BB_DIR_USR_BIN, BB_SUID_DROP)) 14//applet:IF_FALLOCATE(APPLET(fallocate, BB_DIR_USR_BIN, BB_SUID_DROP))
15 15
diff --git a/util-linux/fatattr.c b/util-linux/fatattr.c
index e69cb93e7..9fb566d5a 100644
--- a/util-linux/fatattr.c
+++ b/util-linux/fatattr.c
@@ -13,7 +13,7 @@
13//config: default y 13//config: default y
14//config: select PLATFORM_LINUX 14//config: select PLATFORM_LINUX
15//config: help 15//config: help
16//config: fatattr lists or changes the file attributes on a fat file system. 16//config: fatattr lists or changes the file attributes on a fat file system.
17 17
18//applet:IF_FATATTR(APPLET(fatattr, BB_DIR_BIN, BB_SUID_DROP)) 18//applet:IF_FATATTR(APPLET(fatattr, BB_DIR_BIN, BB_SUID_DROP))
19 19
diff --git a/util-linux/fbset.c b/util-linux/fbset.c
index 0b141816d..11cb20cb2 100644
--- a/util-linux/fbset.c
+++ b/util-linux/fbset.c
@@ -16,29 +16,29 @@
16//config: default y 16//config: default y
17//config: select PLATFORM_LINUX 17//config: select PLATFORM_LINUX
18//config: help 18//config: help
19//config: fbset is used to show or change the settings of a Linux frame buffer 19//config: fbset is used to show or change the settings of a Linux frame buffer
20//config: device. The frame buffer device provides a simple and unique 20//config: device. The frame buffer device provides a simple and unique
21//config: interface to access a graphics display. Enable this option 21//config: interface to access a graphics display. Enable this option
22//config: if you wish to enable the 'fbset' utility. 22//config: if you wish to enable the 'fbset' utility.
23//config: 23//config:
24//config:config FEATURE_FBSET_FANCY 24//config:config FEATURE_FBSET_FANCY
25//config: bool "Enable extra options" 25//config: bool "Enable extra options"
26//config: default y 26//config: default y
27//config: depends on FBSET 27//config: depends on FBSET
28//config: help 28//config: help
29//config: This option enables extended fbset options, allowing one to set the 29//config: This option enables extended fbset options, allowing one to set the
30//config: framebuffer size, color depth, etc. interface to access a graphics 30//config: framebuffer size, color depth, etc. interface to access a graphics
31//config: display. Enable this option if you wish to enable extended fbset 31//config: display. Enable this option if you wish to enable extended fbset
32//config: options. 32//config: options.
33//config: 33//config:
34//config:config FEATURE_FBSET_READMODE 34//config:config FEATURE_FBSET_READMODE
35//config: bool "Enable readmode support" 35//config: bool "Enable readmode support"
36//config: default y 36//config: default y
37//config: depends on FBSET 37//config: depends on FBSET
38//config: help 38//config: help
39//config: This option allows fbset to read the video mode database stored by 39//config: This option allows fbset to read the video mode database stored by
40//config: default as /etc/fb.modes, which can be used to set frame buffer 40//config: default as /etc/fb.modes, which can be used to set frame buffer
41//config: device to pre-defined video modes. 41//config: device to pre-defined video modes.
42 42
43//applet:IF_FBSET(APPLET(fbset, BB_DIR_USR_SBIN, BB_SUID_DROP)) 43//applet:IF_FBSET(APPLET(fbset, BB_DIR_USR_SBIN, BB_SUID_DROP))
44 44
diff --git a/util-linux/fdformat.c b/util-linux/fdformat.c
index 62077ff3b..6faaf1b10 100644
--- a/util-linux/fdformat.c
+++ b/util-linux/fdformat.c
@@ -9,7 +9,7 @@
9//config: default y 9//config: default y
10//config: select PLATFORM_LINUX 10//config: select PLATFORM_LINUX
11//config: help 11//config: help
12//config: fdformat is used to low-level format a floppy disk. 12//config: fdformat is used to low-level format a floppy disk.
13 13
14//applet:IF_FDFORMAT(APPLET(fdformat, BB_DIR_USR_SBIN, BB_SUID_DROP)) 14//applet:IF_FDFORMAT(APPLET(fdformat, BB_DIR_USR_SBIN, BB_SUID_DROP))
15 15
diff --git a/util-linux/fdisk.c b/util-linux/fdisk.c
index c3784c28d..e00f85864 100644
--- a/util-linux/fdisk.c
+++ b/util-linux/fdisk.c
@@ -11,10 +11,10 @@
11//config: default y 11//config: default y
12//config: select PLATFORM_LINUX 12//config: select PLATFORM_LINUX
13//config: help 13//config: help
14//config: The fdisk utility is used to divide hard disks into one or more 14//config: The fdisk utility is used to divide hard disks into one or more
15//config: logical disks, which are generally called partitions. This utility 15//config: logical disks, which are generally called partitions. This utility
16//config: can be used to list and edit the set of partitions or BSD style 16//config: can be used to list and edit the set of partitions or BSD style
17//config: 'disk slices' that are defined on a hard drive. 17//config: 'disk slices' that are defined on a hard drive.
18//config: 18//config:
19//config:config FDISK_SUPPORT_LARGE_DISKS 19//config:config FDISK_SUPPORT_LARGE_DISKS
20//config: bool "Support over 4GB disks" 20//config: bool "Support over 4GB disks"
@@ -27,59 +27,59 @@
27//config: default y 27//config: default y
28//config: depends on FDISK 28//config: depends on FDISK
29//config: help 29//config: help
30//config: Enabling this option allows you to create or change a partition table 30//config: Enabling this option allows you to create or change a partition table
31//config: and write those changes out to disk. If you leave this option 31//config: and write those changes out to disk. If you leave this option
32//config: disabled, you will only be able to view the partition table. 32//config: disabled, you will only be able to view the partition table.
33//config: 33//config:
34//config:config FEATURE_AIX_LABEL 34//config:config FEATURE_AIX_LABEL
35//config: bool "Support AIX disklabels" 35//config: bool "Support AIX disklabels"
36//config: default n 36//config: default n
37//config: depends on FDISK && FEATURE_FDISK_WRITABLE 37//config: depends on FDISK && FEATURE_FDISK_WRITABLE
38//config: help 38//config: help
39//config: Enabling this option allows you to create or change AIX disklabels. 39//config: Enabling this option allows you to create or change AIX disklabels.
40//config: Most people can safely leave this option disabled. 40//config: Most people can safely leave this option disabled.
41//config: 41//config:
42//config:config FEATURE_SGI_LABEL 42//config:config FEATURE_SGI_LABEL
43//config: bool "Support SGI disklabels" 43//config: bool "Support SGI disklabels"
44//config: default n 44//config: default n
45//config: depends on FDISK && FEATURE_FDISK_WRITABLE 45//config: depends on FDISK && FEATURE_FDISK_WRITABLE
46//config: help 46//config: help
47//config: Enabling this option allows you to create or change SGI disklabels. 47//config: Enabling this option allows you to create or change SGI disklabels.
48//config: Most people can safely leave this option disabled. 48//config: Most people can safely leave this option disabled.
49//config: 49//config:
50//config:config FEATURE_SUN_LABEL 50//config:config FEATURE_SUN_LABEL
51//config: bool "Support SUN disklabels" 51//config: bool "Support SUN disklabels"
52//config: default n 52//config: default n
53//config: depends on FDISK && FEATURE_FDISK_WRITABLE 53//config: depends on FDISK && FEATURE_FDISK_WRITABLE
54//config: help 54//config: help
55//config: Enabling this option allows you to create or change SUN disklabels. 55//config: Enabling this option allows you to create or change SUN disklabels.
56//config: Most people can safely leave this option disabled. 56//config: Most people can safely leave this option disabled.
57//config: 57//config:
58//config:config FEATURE_OSF_LABEL 58//config:config FEATURE_OSF_LABEL
59//config: bool "Support BSD disklabels" 59//config: bool "Support BSD disklabels"
60//config: default n 60//config: default n
61//config: depends on FDISK && FEATURE_FDISK_WRITABLE 61//config: depends on FDISK && FEATURE_FDISK_WRITABLE
62//config: help 62//config: help
63//config: Enabling this option allows you to create or change BSD disklabels 63//config: Enabling this option allows you to create or change BSD disklabels
64//config: and define and edit BSD disk slices. 64//config: and define and edit BSD disk slices.
65//config: 65//config:
66//config:config FEATURE_GPT_LABEL 66//config:config FEATURE_GPT_LABEL
67//config: bool "Support GPT disklabels" 67//config: bool "Support GPT disklabels"
68//config: default n 68//config: default n
69//config: depends on FDISK && FEATURE_FDISK_WRITABLE 69//config: depends on FDISK && FEATURE_FDISK_WRITABLE
70//config: help 70//config: help
71//config: Enabling this option allows you to view GUID Partition Table 71//config: Enabling this option allows you to view GUID Partition Table
72//config: disklabels. 72//config: disklabels.
73//config: 73//config:
74//config:config FEATURE_FDISK_ADVANCED 74//config:config FEATURE_FDISK_ADVANCED
75//config: bool "Support expert mode" 75//config: bool "Support expert mode"
76//config: default y 76//config: default y
77//config: depends on FDISK && FEATURE_FDISK_WRITABLE 77//config: depends on FDISK && FEATURE_FDISK_WRITABLE
78//config: help 78//config: help
79//config: Enabling this option allows you to do terribly unsafe things like 79//config: Enabling this option allows you to do terribly unsafe things like
80//config: define arbitrary drive geometry, move the beginning of data in a 80//config: define arbitrary drive geometry, move the beginning of data in a
81//config: partition, and similarly evil things. Unless you have a very good 81//config: partition, and similarly evil things. Unless you have a very good
82//config: reason you would be wise to leave this disabled. 82//config: reason you would be wise to leave this disabled.
83 83
84//applet:IF_FDISK(APPLET(fdisk, BB_DIR_SBIN, BB_SUID_DROP)) 84//applet:IF_FDISK(APPLET(fdisk, BB_DIR_SBIN, BB_SUID_DROP))
85 85
diff --git a/util-linux/findfs.c b/util-linux/findfs.c
index b9cd95687..359da581f 100644
--- a/util-linux/findfs.c
+++ b/util-linux/findfs.c
@@ -13,9 +13,9 @@
13//config: select PLATFORM_LINUX 13//config: select PLATFORM_LINUX
14//config: select VOLUMEID 14//config: select VOLUMEID
15//config: help 15//config: help
16//config: Prints the name of a filesystem with given label or UUID. 16//config: Prints the name of a filesystem with given label or UUID.
17//config: WARNING: 17//config: WARNING:
18//config: With all submodules selected, it will add ~8k to busybox. 18//config: With all submodules selected, it will add ~8k to busybox.
19 19
20/* Benefits from suid root: better access to /dev/BLOCKDEVs: */ 20/* Benefits from suid root: better access to /dev/BLOCKDEVs: */
21//applet:IF_FINDFS(APPLET(findfs, BB_DIR_SBIN, BB_SUID_MAYBE)) 21//applet:IF_FINDFS(APPLET(findfs, BB_DIR_SBIN, BB_SUID_MAYBE))
diff --git a/util-linux/flock.c b/util-linux/flock.c
index e77718869..ec35af18f 100644
--- a/util-linux/flock.c
+++ b/util-linux/flock.c
@@ -7,7 +7,7 @@
7//config: bool "flock (6.1 kb)" 7//config: bool "flock (6.1 kb)"
8//config: default y 8//config: default y
9//config: help 9//config: help
10//config: Manage locks from shell scripts 10//config: Manage locks from shell scripts
11 11
12//applet:IF_FLOCK(APPLET(flock, BB_DIR_USR_BIN, BB_SUID_DROP)) 12//applet:IF_FLOCK(APPLET(flock, BB_DIR_USR_BIN, BB_SUID_DROP))
13 13
diff --git a/util-linux/freeramdisk.c b/util-linux/freeramdisk.c
index 0b8d2bc5b..55187cb40 100644
--- a/util-linux/freeramdisk.c
+++ b/util-linux/freeramdisk.c
@@ -13,25 +13,25 @@
13//config: default y 13//config: default y
14//config: select PLATFORM_LINUX 14//config: select PLATFORM_LINUX
15//config: help 15//config: help
16//config: fdflush is only needed when changing media on slightly-broken 16//config: fdflush is only needed when changing media on slightly-broken
17//config: removable media drives. It is used to make Linux believe that a 17//config: removable media drives. It is used to make Linux believe that a
18//config: hardware disk-change switch has been actuated, which causes Linux to 18//config: hardware disk-change switch has been actuated, which causes Linux to
19//config: forget anything it has cached from the previous media. If you have 19//config: forget anything it has cached from the previous media. If you have
20//config: such a slightly-broken drive, you will need to run fdflush every time 20//config: such a slightly-broken drive, you will need to run fdflush every time
21//config: you change a disk. Most people have working hardware and can safely 21//config: you change a disk. Most people have working hardware and can safely
22//config: leave this disabled. 22//config: leave this disabled.
23//config: 23//config:
24//config:config FREERAMDISK 24//config:config FREERAMDISK
25//config: bool "freeramdisk (1.4 kb)" 25//config: bool "freeramdisk (1.4 kb)"
26//config: default y 26//config: default y
27//config: select PLATFORM_LINUX 27//config: select PLATFORM_LINUX
28//config: help 28//config: help
29//config: Linux allows you to create ramdisks. This utility allows you to 29//config: Linux allows you to create ramdisks. This utility allows you to
30//config: delete them and completely free all memory that was used for the 30//config: delete them and completely free all memory that was used for the
31//config: ramdisk. For example, if you boot Linux into a ramdisk and later 31//config: ramdisk. For example, if you boot Linux into a ramdisk and later
32//config: pivot_root, you may want to free the memory that is allocated to the 32//config: pivot_root, you may want to free the memory that is allocated to the
33//config: ramdisk. If you have no use for freeing memory from a ramdisk, leave 33//config: ramdisk. If you have no use for freeing memory from a ramdisk, leave
34//config: this disabled. 34//config: this disabled.
35 35
36// APPLET_ODDNAME:name main location suid_type help 36// APPLET_ODDNAME:name main location suid_type help
37//applet:IF_FDFLUSH(APPLET_ODDNAME(fdflush, freeramdisk, BB_DIR_BIN, BB_SUID_DROP, fdflush)) 37//applet:IF_FDFLUSH(APPLET_ODDNAME(fdflush, freeramdisk, BB_DIR_BIN, BB_SUID_DROP, fdflush))
diff --git a/util-linux/fsck_minix.c b/util-linux/fsck_minix.c
index 2ab7530ea..8c2b7d8de 100644
--- a/util-linux/fsck_minix.c
+++ b/util-linux/fsck_minix.c
@@ -89,12 +89,12 @@
89//config: bool "fsck_minix" 89//config: bool "fsck_minix"
90//config: default y 90//config: default y
91//config: help 91//config: help
92//config: The minix filesystem is a nice, small, compact, read-write filesystem 92//config: The minix filesystem is a nice, small, compact, read-write filesystem
93//config: with little overhead. It is not a journaling filesystem however and 93//config: with little overhead. It is not a journaling filesystem however and
94//config: can experience corruption if it is not properly unmounted or if the 94//config: can experience corruption if it is not properly unmounted or if the
95//config: power goes off in the middle of a write. This utility allows you to 95//config: power goes off in the middle of a write. This utility allows you to
96//config: check for and attempt to repair any corruption that occurs to a minix 96//config: check for and attempt to repair any corruption that occurs to a minix
97//config: filesystem. 97//config: filesystem.
98 98
99//applet:IF_FSCK_MINIX(APPLET_ODDNAME(fsck.minix, fsck_minix, BB_DIR_SBIN, BB_SUID_DROP, fsck_minix)) 99//applet:IF_FSCK_MINIX(APPLET_ODDNAME(fsck.minix, fsck_minix, BB_DIR_SBIN, BB_SUID_DROP, fsck_minix))
100 100
diff --git a/util-linux/fsfreeze.c b/util-linux/fsfreeze.c
index 8bc4c471f..5c10c8044 100644
--- a/util-linux/fsfreeze.c
+++ b/util-linux/fsfreeze.c
@@ -11,7 +11,7 @@
11//config: select PLATFORM_LINUX 11//config: select PLATFORM_LINUX
12//config: select LONG_OPTS 12//config: select LONG_OPTS
13//config: help 13//config: help
14//config: Halt new accesses and flush writes on a mounted filesystem. 14//config: Halt new accesses and flush writes on a mounted filesystem.
15 15
16//applet:IF_FSFREEZE(APPLET(fsfreeze, BB_DIR_USR_SBIN, BB_SUID_DROP)) 16//applet:IF_FSFREEZE(APPLET(fsfreeze, BB_DIR_USR_SBIN, BB_SUID_DROP))
17 17
diff --git a/util-linux/fstrim.c b/util-linux/fstrim.c
index c07da8a62..6d0d61d92 100644
--- a/util-linux/fstrim.c
+++ b/util-linux/fstrim.c
@@ -13,7 +13,7 @@
13//config: default y 13//config: default y
14//config: select PLATFORM_LINUX 14//config: select PLATFORM_LINUX
15//config: help 15//config: help
16//config: Discard unused blocks on a mounted filesystem. 16//config: Discard unused blocks on a mounted filesystem.
17 17
18//applet:IF_FSTRIM(APPLET(fstrim, BB_DIR_SBIN, BB_SUID_DROP)) 18//applet:IF_FSTRIM(APPLET(fstrim, BB_DIR_SBIN, BB_SUID_DROP))
19 19
diff --git a/util-linux/getopt.c b/util-linux/getopt.c
index 7c65a6a1f..cd5679cff 100644
--- a/util-linux/getopt.c
+++ b/util-linux/getopt.c
@@ -33,19 +33,19 @@
33//config: bool "getopt (5.6 kb)" 33//config: bool "getopt (5.6 kb)"
34//config: default y 34//config: default y
35//config: help 35//config: help
36//config: The getopt utility is used to break up (parse) options in command 36//config: The getopt utility is used to break up (parse) options in command
37//config: lines to make it easy to write complex shell scripts that also check 37//config: lines to make it easy to write complex shell scripts that also check
38//config: for legal (and illegal) options. If you want to write horribly 38//config: for legal (and illegal) options. If you want to write horribly
39//config: complex shell scripts, or use some horribly complex shell script 39//config: complex shell scripts, or use some horribly complex shell script
40//config: written by others, this utility may be for you. Most people will 40//config: written by others, this utility may be for you. Most people will
41//config: wisely leave this disabled. 41//config: wisely leave this disabled.
42//config: 42//config:
43//config:config FEATURE_GETOPT_LONG 43//config:config FEATURE_GETOPT_LONG
44//config: bool "Support option -l" 44//config: bool "Support option -l"
45//config: default y if LONG_OPTS 45//config: default y if LONG_OPTS
46//config: depends on GETOPT 46//config: depends on GETOPT
47//config: help 47//config: help
48//config: Enable support for long options (option -l). 48//config: Enable support for long options (option -l).
49 49
50//applet:IF_GETOPT(APPLET(getopt, BB_DIR_BIN, BB_SUID_DROP)) 50//applet:IF_GETOPT(APPLET(getopt, BB_DIR_BIN, BB_SUID_DROP))
51 51
diff --git a/util-linux/hexdump.c b/util-linux/hexdump.c
index e8c0ee0f5..719feaf4e 100644
--- a/util-linux/hexdump.c
+++ b/util-linux/hexdump.c
@@ -12,24 +12,24 @@
12//config: bool "hexdump (8.8 kb)" 12//config: bool "hexdump (8.8 kb)"
13//config: default y 13//config: default y
14//config: help 14//config: help
15//config: The hexdump utility is used to display binary data in a readable 15//config: The hexdump utility is used to display binary data in a readable
16//config: way that is comparable to the output from most hex editors. 16//config: way that is comparable to the output from most hex editors.
17//config: 17//config:
18//config:config FEATURE_HEXDUMP_REVERSE 18//config:config FEATURE_HEXDUMP_REVERSE
19//config: bool "Support -R, reverse of 'hexdump -Cv'" 19//config: bool "Support -R, reverse of 'hexdump -Cv'"
20//config: default y 20//config: default y
21//config: depends on HEXDUMP 21//config: depends on HEXDUMP
22//config: help 22//config: help
23//config: The hexdump utility is used to display binary data in an ascii 23//config: The hexdump utility is used to display binary data in an ascii
24//config: readable way. This option creates binary data from an ascii input. 24//config: readable way. This option creates binary data from an ascii input.
25//config: NB: this option is non-standard. It's unwise to use it in scripts 25//config: NB: this option is non-standard. It's unwise to use it in scripts
26//config: aimed to be portable. 26//config: aimed to be portable.
27//config: 27//config:
28//config:config HD 28//config:config HD
29//config: bool "hd (8 kb)" 29//config: bool "hd (8 kb)"
30//config: default y 30//config: default y
31//config: help 31//config: help
32//config: hd is an alias to hexdump -C. 32//config: hd is an alias to hexdump -C.
33 33
34//applet:IF_HEXDUMP(APPLET_NOEXEC(hexdump, hexdump, BB_DIR_USR_BIN, BB_SUID_DROP, hexdump)) 34//applet:IF_HEXDUMP(APPLET_NOEXEC(hexdump, hexdump, BB_DIR_USR_BIN, BB_SUID_DROP, hexdump))
35//applet:IF_HD(APPLET_NOEXEC(hd, hexdump, BB_DIR_USR_BIN, BB_SUID_DROP, hd)) 35//applet:IF_HD(APPLET_NOEXEC(hd, hexdump, BB_DIR_USR_BIN, BB_SUID_DROP, hd))
diff --git a/util-linux/hexdump_xxd.c b/util-linux/hexdump_xxd.c
index 5f72d3be4..37e58f2d0 100644
--- a/util-linux/hexdump_xxd.c
+++ b/util-linux/hexdump_xxd.c
@@ -10,8 +10,8 @@
10//config: bool "xxd (8.9 kb)" 10//config: bool "xxd (8.9 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: The xxd utility is used to display binary data in a readable 13//config: The xxd utility is used to display binary data in a readable
14//config: way that is comparable to the output from most hex editors. 14//config: way that is comparable to the output from most hex editors.
15 15
16//applet:IF_XXD(APPLET_NOEXEC(xxd, xxd, BB_DIR_USR_BIN, BB_SUID_DROP, xxd)) 16//applet:IF_XXD(APPLET_NOEXEC(xxd, xxd, BB_DIR_USR_BIN, BB_SUID_DROP, xxd))
17 17
diff --git a/util-linux/hwclock.c b/util-linux/hwclock.c
index c2721dbac..5df56de15 100644
--- a/util-linux/hwclock.c
+++ b/util-linux/hwclock.c
@@ -11,10 +11,10 @@
11//config: default y 11//config: default y
12//config: select PLATFORM_LINUX 12//config: select PLATFORM_LINUX
13//config: help 13//config: help
14//config: The hwclock utility is used to read and set the hardware clock 14//config: The hwclock utility is used to read and set the hardware clock
15//config: on a system. This is primarily used to set the current time on 15//config: on a system. This is primarily used to set the current time on
16//config: shutdown in the hardware clock, so the hardware will keep the 16//config: shutdown in the hardware clock, so the hardware will keep the
17//config: correct time when Linux is _not_ running. 17//config: correct time when Linux is _not_ running.
18//config: 18//config:
19//config:config FEATURE_HWCLOCK_LONG_OPTIONS 19//config:config FEATURE_HWCLOCK_LONG_OPTIONS
20//config: bool "Support long options (--hctosys,...)" 20//config: bool "Support long options (--hctosys,...)"
@@ -26,12 +26,12 @@
26//config: default n # util-linux-ng in Fedora 13 still uses /etc/adjtime 26//config: default n # util-linux-ng in Fedora 13 still uses /etc/adjtime
27//config: depends on HWCLOCK 27//config: depends on HWCLOCK
28//config: help 28//config: help
29//config: Starting with FHS 2.3, the adjtime state file is supposed to exist 29//config: Starting with FHS 2.3, the adjtime state file is supposed to exist
30//config: at /var/lib/hwclock/adjtime instead of /etc/adjtime. If you wish 30//config: at /var/lib/hwclock/adjtime instead of /etc/adjtime. If you wish
31//config: to use the FHS behavior, answer Y here, otherwise answer N for the 31//config: to use the FHS behavior, answer Y here, otherwise answer N for the
32//config: classic /etc/adjtime path. 32//config: classic /etc/adjtime path.
33//config: 33//config:
34//config: pathname.com/fhs/pub/fhs-2.3.html#VARLIBHWCLOCKSTATEDIRECTORYFORHWCLO 34//config: pathname.com/fhs/pub/fhs-2.3.html#VARLIBHWCLOCKSTATEDIRECTORYFORHWCLO
35 35
36//applet:IF_HWCLOCK(APPLET(hwclock, BB_DIR_SBIN, BB_SUID_DROP)) 36//applet:IF_HWCLOCK(APPLET(hwclock, BB_DIR_SBIN, BB_SUID_DROP))
37 37
diff --git a/util-linux/ionice.c b/util-linux/ionice.c
index cda5a90d6..c7b7f0373 100644
--- a/util-linux/ionice.c
+++ b/util-linux/ionice.c
@@ -11,8 +11,8 @@
11//config: default y 11//config: default y
12//config: select PLATFORM_LINUX 12//config: select PLATFORM_LINUX
13//config: help 13//config: help
14//config: Set/set program io scheduling class and priority 14//config: Set/set program io scheduling class and priority
15//config: Requires kernel >= 2.6.13 15//config: Requires kernel >= 2.6.13
16 16
17//applet:IF_IONICE(APPLET(ionice, BB_DIR_BIN, BB_SUID_DROP)) 17//applet:IF_IONICE(APPLET(ionice, BB_DIR_BIN, BB_SUID_DROP))
18 18
diff --git a/util-linux/ipcrm.c b/util-linux/ipcrm.c
index cabd8b9e7..c51d33143 100644
--- a/util-linux/ipcrm.c
+++ b/util-linux/ipcrm.c
@@ -11,9 +11,9 @@
11//config: bool "ipcrm (2.9 kb)" 11//config: bool "ipcrm (2.9 kb)"
12//config: default y 12//config: default y
13//config: help 13//config: help
14//config: The ipcrm utility allows the removal of System V interprocess 14//config: The ipcrm utility allows the removal of System V interprocess
15//config: communication (IPC) objects and the associated data structures 15//config: communication (IPC) objects and the associated data structures
16//config: from the system. 16//config: from the system.
17 17
18//applet:IF_IPCRM(APPLET(ipcrm, BB_DIR_USR_BIN, BB_SUID_DROP)) 18//applet:IF_IPCRM(APPLET(ipcrm, BB_DIR_USR_BIN, BB_SUID_DROP))
19 19
diff --git a/util-linux/ipcs.c b/util-linux/ipcs.c
index 0d5a16a2b..1404930d4 100644
--- a/util-linux/ipcs.c
+++ b/util-linux/ipcs.c
@@ -12,8 +12,8 @@
12//config: default y 12//config: default y
13//config: select PLATFORM_LINUX 13//config: select PLATFORM_LINUX
14//config: help 14//config: help
15//config: The ipcs utility is used to provide information on the currently 15//config: The ipcs utility is used to provide information on the currently
16//config: allocated System V interprocess (IPC) objects in the system. 16//config: allocated System V interprocess (IPC) objects in the system.
17 17
18//applet:IF_IPCS(APPLET(ipcs, BB_DIR_USR_BIN, BB_SUID_DROP)) 18//applet:IF_IPCS(APPLET(ipcs, BB_DIR_USR_BIN, BB_SUID_DROP))
19 19
diff --git a/util-linux/last.c b/util-linux/last.c
index 5bce85753..f5ee8e5f4 100644
--- a/util-linux/last.c
+++ b/util-linux/last.c
@@ -11,15 +11,15 @@
11//config: default y 11//config: default y
12//config: depends on FEATURE_WTMP 12//config: depends on FEATURE_WTMP
13//config: help 13//config: help
14//config: 'last' displays a list of the last users that logged into the system. 14//config: 'last' displays a list of the last users that logged into the system.
15//config: 15//config:
16//config:config FEATURE_LAST_FANCY 16//config:config FEATURE_LAST_FANCY
17//config: bool "Output extra information" 17//config: bool "Output extra information"
18//config: default y 18//config: default y
19//config: depends on LAST 19//config: depends on LAST
20//config: help 20//config: help
21//config: 'last' displays detailed information about the last users that 21//config: 'last' displays detailed information about the last users that
22//config: logged into the system (mimics sysvinit last). +900 bytes. 22//config: logged into the system (mimics sysvinit last). +900 bytes.
23 23
24//applet:IF_LAST(APPLET(last, BB_DIR_USR_BIN, BB_SUID_DROP)) 24//applet:IF_LAST(APPLET(last, BB_DIR_USR_BIN, BB_SUID_DROP))
25 25
diff --git a/util-linux/losetup.c b/util-linux/losetup.c
index cbd1c6052..c608de6cc 100644
--- a/util-linux/losetup.c
+++ b/util-linux/losetup.c
@@ -11,9 +11,9 @@
11//config: default y 11//config: default y
12//config: select PLATFORM_LINUX 12//config: select PLATFORM_LINUX
13//config: help 13//config: help
14//config: losetup is used to associate or detach a loop device with a regular 14//config: losetup is used to associate or detach a loop device with a regular
15//config: file or block device, and to query the status of a loop device. This 15//config: file or block device, and to query the status of a loop device. This
16//config: version does not currently support enabling data encryption. 16//config: version does not currently support enabling data encryption.
17 17
18//kbuild:lib-$(CONFIG_LOSETUP) += losetup.o 18//kbuild:lib-$(CONFIG_LOSETUP) += losetup.o
19 19
diff --git a/util-linux/lspci.c b/util-linux/lspci.c
index c4f43bd12..3877deb67 100644
--- a/util-linux/lspci.c
+++ b/util-linux/lspci.c
@@ -11,10 +11,10 @@
11//config: default y 11//config: default y
12//config: #select PLATFORM_LINUX 12//config: #select PLATFORM_LINUX
13//config: help 13//config: help
14//config: lspci is a utility for displaying information about PCI buses in the 14//config: lspci is a utility for displaying information about PCI buses in the
15//config: system and devices connected to them. 15//config: system and devices connected to them.
16//config: 16//config:
17//config: This version uses sysfs (/sys/bus/pci/devices) only. 17//config: This version uses sysfs (/sys/bus/pci/devices) only.
18 18
19//applet:IF_LSPCI(APPLET(lspci, BB_DIR_USR_BIN, BB_SUID_DROP)) 19//applet:IF_LSPCI(APPLET(lspci, BB_DIR_USR_BIN, BB_SUID_DROP))
20 20
diff --git a/util-linux/lsusb.c b/util-linux/lsusb.c
index 9d12d8752..cabf047cf 100644
--- a/util-linux/lsusb.c
+++ b/util-linux/lsusb.c
@@ -11,10 +11,10 @@
11//config: default y 11//config: default y
12//config: #select PLATFORM_LINUX 12//config: #select PLATFORM_LINUX
13//config: help 13//config: help
14//config: lsusb is a utility for displaying information about USB buses in the 14//config: lsusb is a utility for displaying information about USB buses in the
15//config: system and devices connected to them. 15//config: system and devices connected to them.
16//config: 16//config:
17//config: This version uses sysfs (/sys/bus/usb/devices) only. 17//config: This version uses sysfs (/sys/bus/usb/devices) only.
18 18
19//applet:IF_LSUSB(APPLET(lsusb, BB_DIR_USR_BIN, BB_SUID_DROP)) 19//applet:IF_LSUSB(APPLET(lsusb, BB_DIR_USR_BIN, BB_SUID_DROP))
20 20
diff --git a/util-linux/mdev.c b/util-linux/mdev.c
index a68e3f4e6..23b6f8285 100644
--- a/util-linux/mdev.c
+++ b/util-linux/mdev.c
@@ -13,58 +13,58 @@
13//config: default y 13//config: default y
14//config: select PLATFORM_LINUX 14//config: select PLATFORM_LINUX
15//config: help 15//config: help
16//config: mdev is a mini-udev implementation for dynamically creating device 16//config: mdev is a mini-udev implementation for dynamically creating device
17//config: nodes in the /dev directory. 17//config: nodes in the /dev directory.
18//config: 18//config:
19//config: For more information, please see docs/mdev.txt 19//config: For more information, please see docs/mdev.txt
20//config: 20//config:
21//config:config FEATURE_MDEV_CONF 21//config:config FEATURE_MDEV_CONF
22//config: bool "Support /etc/mdev.conf" 22//config: bool "Support /etc/mdev.conf"
23//config: default y 23//config: default y
24//config: depends on MDEV 24//config: depends on MDEV
25//config: help 25//config: help
26//config: Add support for the mdev config file to control ownership and 26//config: Add support for the mdev config file to control ownership and
27//config: permissions of the device nodes. 27//config: permissions of the device nodes.
28//config: 28//config:
29//config: For more information, please see docs/mdev.txt 29//config: For more information, please see docs/mdev.txt
30//config: 30//config:
31//config:config FEATURE_MDEV_RENAME 31//config:config FEATURE_MDEV_RENAME
32//config: bool "Support subdirs/symlinks" 32//config: bool "Support subdirs/symlinks"
33//config: default y 33//config: default y
34//config: depends on FEATURE_MDEV_CONF 34//config: depends on FEATURE_MDEV_CONF
35//config: help 35//config: help
36//config: Add support for renaming devices and creating symlinks. 36//config: Add support for renaming devices and creating symlinks.
37//config: 37//config:
38//config: For more information, please see docs/mdev.txt 38//config: For more information, please see docs/mdev.txt
39//config: 39//config:
40//config:config FEATURE_MDEV_RENAME_REGEXP 40//config:config FEATURE_MDEV_RENAME_REGEXP
41//config: bool "Support regular expressions substitutions when renaming device" 41//config: bool "Support regular expressions substitutions when renaming device"
42//config: default y 42//config: default y
43//config: depends on FEATURE_MDEV_RENAME 43//config: depends on FEATURE_MDEV_RENAME
44//config: help 44//config: help
45//config: Add support for regular expressions substitutions when renaming 45//config: Add support for regular expressions substitutions when renaming
46//config: device. 46//config: device.
47//config: 47//config:
48//config:config FEATURE_MDEV_EXEC 48//config:config FEATURE_MDEV_EXEC
49//config: bool "Support command execution at device addition/removal" 49//config: bool "Support command execution at device addition/removal"
50//config: default y 50//config: default y
51//config: depends on FEATURE_MDEV_CONF 51//config: depends on FEATURE_MDEV_CONF
52//config: help 52//config: help
53//config: This adds support for an optional field to /etc/mdev.conf for 53//config: This adds support for an optional field to /etc/mdev.conf for
54//config: executing commands when devices are created/removed. 54//config: executing commands when devices are created/removed.
55//config: 55//config:
56//config: For more information, please see docs/mdev.txt 56//config: For more information, please see docs/mdev.txt
57//config: 57//config:
58//config:config FEATURE_MDEV_LOAD_FIRMWARE 58//config:config FEATURE_MDEV_LOAD_FIRMWARE
59//config: bool "Support loading of firmwares" 59//config: bool "Support loading of firmwares"
60//config: default y 60//config: default y
61//config: depends on MDEV 61//config: depends on MDEV
62//config: help 62//config: help
63//config: Some devices need to load firmware before they can be usable. 63//config: Some devices need to load firmware before they can be usable.
64//config: 64//config:
65//config: These devices will request userspace look up the files in 65//config: These devices will request userspace look up the files in
66//config: /lib/firmware/ and if it exists, send it to the kernel for 66//config: /lib/firmware/ and if it exists, send it to the kernel for
67//config: loading into the hardware. 67//config: loading into the hardware.
68 68
69//applet:IF_MDEV(APPLET(mdev, BB_DIR_SBIN, BB_SUID_DROP)) 69//applet:IF_MDEV(APPLET(mdev, BB_DIR_SBIN, BB_SUID_DROP))
70 70
diff --git a/util-linux/mesg.c b/util-linux/mesg.c
index a83da03e6..c4371eb24 100644
--- a/util-linux/mesg.c
+++ b/util-linux/mesg.c
@@ -11,20 +11,20 @@
11//config: bool "mesg (1.2 kb)" 11//config: bool "mesg (1.2 kb)"
12//config: default y 12//config: default y
13//config: help 13//config: help
14//config: Mesg controls access to your terminal by others. It is typically 14//config: Mesg controls access to your terminal by others. It is typically
15//config: used to allow or disallow other users to write to your terminal 15//config: used to allow or disallow other users to write to your terminal
16//config: 16//config:
17//config:config FEATURE_MESG_ENABLE_ONLY_GROUP 17//config:config FEATURE_MESG_ENABLE_ONLY_GROUP
18//config: bool "Enable writing to tty only by group, not by everybody" 18//config: bool "Enable writing to tty only by group, not by everybody"
19//config: default y 19//config: default y
20//config: depends on MESG 20//config: depends on MESG
21//config: help 21//config: help
22//config: Usually, ttys are owned by group "tty", and "write" tool is 22//config: Usually, ttys are owned by group "tty", and "write" tool is
23//config: setgid to this group. This way, "mesg y" only needs to enable 23//config: setgid to this group. This way, "mesg y" only needs to enable
24//config: "write by owning group" bit in tty mode. 24//config: "write by owning group" bit in tty mode.
25//config: 25//config:
26//config: If you set this option to N, "mesg y" will enable writing 26//config: If you set this option to N, "mesg y" will enable writing
27//config: by anybody at all. This is not recommended. 27//config: by anybody at all. This is not recommended.
28 28
29//applet:IF_MESG(APPLET(mesg, BB_DIR_USR_BIN, BB_SUID_DROP)) 29//applet:IF_MESG(APPLET(mesg, BB_DIR_USR_BIN, BB_SUID_DROP))
30 30
diff --git a/util-linux/mkfs_ext2.c b/util-linux/mkfs_ext2.c
index f646f368c..8434dd6ad 100644
--- a/util-linux/mkfs_ext2.c
+++ b/util-linux/mkfs_ext2.c
@@ -12,14 +12,14 @@
12//config: default y 12//config: default y
13//config: select PLATFORM_LINUX 13//config: select PLATFORM_LINUX
14//config: help 14//config: help
15//config: Utility to create EXT2 filesystems. 15//config: Utility to create EXT2 filesystems.
16//config: 16//config:
17//config:config MKFS_EXT2 17//config:config MKFS_EXT2
18//config: bool "mkfs.ext2 (9.8 kb)" 18//config: bool "mkfs.ext2 (9.8 kb)"
19//config: default y 19//config: default y
20//config: select PLATFORM_LINUX 20//config: select PLATFORM_LINUX
21//config: help 21//config: help
22//config: Alias to "mke2fs". 22//config: Alias to "mke2fs".
23 23
24// APPLET_ODDNAME:name main location suid_type help 24// APPLET_ODDNAME:name main location suid_type help
25//applet:IF_MKE2FS( APPLET_ODDNAME(mke2fs, mkfs_ext2, BB_DIR_SBIN, BB_SUID_DROP, mkfs_ext2)) 25//applet:IF_MKE2FS( APPLET_ODDNAME(mke2fs, mkfs_ext2, BB_DIR_SBIN, BB_SUID_DROP, mkfs_ext2))
diff --git a/util-linux/mkfs_minix.c b/util-linux/mkfs_minix.c
index 0dfe34705..88647e9d8 100644
--- a/util-linux/mkfs_minix.c
+++ b/util-linux/mkfs_minix.c
@@ -67,18 +67,18 @@
67//config: default y 67//config: default y
68//config: select PLATFORM_LINUX 68//config: select PLATFORM_LINUX
69//config: help 69//config: help
70//config: The minix filesystem is a nice, small, compact, read-write filesystem 70//config: The minix filesystem is a nice, small, compact, read-write filesystem
71//config: with little overhead. If you wish to be able to create minix 71//config: with little overhead. If you wish to be able to create minix
72//config: filesystems this utility will do the job for you. 72//config: filesystems this utility will do the job for you.
73//config: 73//config:
74//config:config FEATURE_MINIX2 74//config:config FEATURE_MINIX2
75//config: bool "Support Minix fs v2 (fsck_minix/mkfs_minix)" 75//config: bool "Support Minix fs v2 (fsck_minix/mkfs_minix)"
76//config: default y 76//config: default y
77//config: depends on FSCK_MINIX || MKFS_MINIX 77//config: depends on FSCK_MINIX || MKFS_MINIX
78//config: help 78//config: help
79//config: If you wish to be able to create version 2 minix filesystems, enable 79//config: If you wish to be able to create version 2 minix filesystems, enable
80//config: this. If you enabled 'mkfs_minix' then you almost certainly want to 80//config: this. If you enabled 'mkfs_minix' then you almost certainly want to
81//config: be using the version 2 filesystem support. 81//config: be using the version 2 filesystem support.
82 82
83// APPLET_ODDNAME:name main location suid_type help 83// APPLET_ODDNAME:name main location suid_type help
84//applet:IF_MKFS_MINIX(APPLET_ODDNAME(mkfs.minix, mkfs_minix, BB_DIR_SBIN, BB_SUID_DROP, mkfs_minix)) 84//applet:IF_MKFS_MINIX(APPLET_ODDNAME(mkfs.minix, mkfs_minix, BB_DIR_SBIN, BB_SUID_DROP, mkfs_minix))
diff --git a/util-linux/mkfs_reiser.c b/util-linux/mkfs_reiser.c
index d01119f7f..c7d99b018 100644
--- a/util-linux/mkfs_reiser.c
+++ b/util-linux/mkfs_reiser.c
@@ -11,8 +11,8 @@
11//config: default n 11//config: default n
12//config: select PLATFORM_LINUX 12//config: select PLATFORM_LINUX
13//config: help 13//config: help
14//config: Utility to create ReiserFS filesystems. 14//config: Utility to create ReiserFS filesystems.
15//config: Note: this applet needs a lot of testing and polishing. 15//config: Note: this applet needs a lot of testing and polishing.
16 16
17//applet:IF_MKFS_REISER(APPLET_ODDNAME(mkfs.reiser, mkfs_reiser, BB_DIR_SBIN, BB_SUID_DROP, mkfs_reiser)) 17//applet:IF_MKFS_REISER(APPLET_ODDNAME(mkfs.reiser, mkfs_reiser, BB_DIR_SBIN, BB_SUID_DROP, mkfs_reiser))
18 18
diff --git a/util-linux/mkfs_vfat.c b/util-linux/mkfs_vfat.c
index a191c03d6..f9768ed56 100644
--- a/util-linux/mkfs_vfat.c
+++ b/util-linux/mkfs_vfat.c
@@ -12,14 +12,14 @@
12//config: default y 12//config: default y
13//config: select PLATFORM_LINUX 13//config: select PLATFORM_LINUX
14//config: help 14//config: help
15//config: Utility to create FAT32 filesystems. 15//config: Utility to create FAT32 filesystems.
16//config: 16//config:
17//config:config MKFS_VFAT 17//config:config MKFS_VFAT
18//config: bool "mkfs.vfat (6.8 kb)" 18//config: bool "mkfs.vfat (6.8 kb)"
19//config: default y 19//config: default y
20//config: select PLATFORM_LINUX 20//config: select PLATFORM_LINUX
21//config: help 21//config: help
22//config: Alias to "mkdosfs". 22//config: Alias to "mkdosfs".
23 23
24// APPLET_ODDNAME:name main location suid_type help 24// APPLET_ODDNAME:name main location suid_type help
25//applet:IF_MKDOSFS( APPLET_ODDNAME(mkdosfs, mkfs_vfat, BB_DIR_SBIN, BB_SUID_DROP, mkfs_vfat)) 25//applet:IF_MKDOSFS( APPLET_ODDNAME(mkdosfs, mkfs_vfat, BB_DIR_SBIN, BB_SUID_DROP, mkfs_vfat))
diff --git a/util-linux/mkswap.c b/util-linux/mkswap.c
index deb911485..e44e13c0d 100644
--- a/util-linux/mkswap.c
+++ b/util-linux/mkswap.c
@@ -9,21 +9,21 @@
9//config: bool "mkswap (5.8 kb)" 9//config: bool "mkswap (5.8 kb)"
10//config: default y 10//config: default y
11//config: help 11//config: help
12//config: The mkswap utility is used to configure a file or disk partition as 12//config: The mkswap utility is used to configure a file or disk partition as
13//config: Linux swap space. This allows Linux to use the entire file or 13//config: Linux swap space. This allows Linux to use the entire file or
14//config: partition as if it were additional RAM, which can greatly increase 14//config: partition as if it were additional RAM, which can greatly increase
15//config: the capability of low-memory machines. This additional memory is 15//config: the capability of low-memory machines. This additional memory is
16//config: much slower than real RAM, but can be very helpful at preventing your 16//config: much slower than real RAM, but can be very helpful at preventing your
17//config: applications being killed by the Linux out of memory (OOM) killer. 17//config: applications being killed by the Linux out of memory (OOM) killer.
18//config: Once you have created swap space using 'mkswap' you need to enable 18//config: Once you have created swap space using 'mkswap' you need to enable
19//config: the swap space using the 'swapon' utility. 19//config: the swap space using the 'swapon' utility.
20//config: 20//config:
21//config:config FEATURE_MKSWAP_UUID 21//config:config FEATURE_MKSWAP_UUID
22//config: bool "UUID support" 22//config: bool "UUID support"
23//config: default y 23//config: default y
24//config: depends on MKSWAP 24//config: depends on MKSWAP
25//config: help 25//config: help
26//config: Generate swap spaces with universally unique identifiers. 26//config: Generate swap spaces with universally unique identifiers.
27 27
28//applet:IF_MKSWAP(APPLET(mkswap, BB_DIR_SBIN, BB_SUID_DROP)) 28//applet:IF_MKSWAP(APPLET(mkswap, BB_DIR_SBIN, BB_SUID_DROP))
29 29
diff --git a/util-linux/more.c b/util-linux/more.c
index 11546a8f8..926cf5f26 100644
--- a/util-linux/more.c
+++ b/util-linux/more.c
@@ -17,11 +17,11 @@
17//config: bool "more (6.7 kb)" 17//config: bool "more (6.7 kb)"
18//config: default y 18//config: default y
19//config: help 19//config: help
20//config: more is a simple utility which allows you to read text one screen 20//config: more is a simple utility which allows you to read text one screen
21//config: sized page at a time. If you want to read text that is larger than 21//config: sized page at a time. If you want to read text that is larger than
22//config: the screen, and you are using anything faster than a 300 baud modem, 22//config: the screen, and you are using anything faster than a 300 baud modem,
23//config: you will probably find this utility very helpful. If you don't have 23//config: you will probably find this utility very helpful. If you don't have
24//config: any need to reading text files, you can leave this disabled. 24//config: any need to reading text files, you can leave this disabled.
25 25
26//applet:IF_MORE(APPLET(more, BB_DIR_BIN, BB_SUID_DROP)) 26//applet:IF_MORE(APPLET(more, BB_DIR_BIN, BB_SUID_DROP))
27 27
diff --git a/util-linux/mount.c b/util-linux/mount.c
index 423e89d5b..1a39da2db 100644
--- a/util-linux/mount.c
+++ b/util-linux/mount.c
@@ -22,40 +22,40 @@
22//config: default y 22//config: default y
23//config: select PLATFORM_LINUX 23//config: select PLATFORM_LINUX
24//config: help 24//config: help
25//config: All files and filesystems in Unix are arranged into one big directory 25//config: All files and filesystems in Unix are arranged into one big directory
26//config: tree. The 'mount' utility is used to graft a filesystem onto a 26//config: tree. The 'mount' utility is used to graft a filesystem onto a
27//config: particular part of the tree. A filesystem can either live on a block 27//config: particular part of the tree. A filesystem can either live on a block
28//config: device, or it can be accessible over the network, as is the case with 28//config: device, or it can be accessible over the network, as is the case with
29//config: NFS filesystems. Most people using BusyBox will also want to enable 29//config: NFS filesystems. Most people using BusyBox will also want to enable
30//config: the 'mount' utility. 30//config: the 'mount' utility.
31//config: 31//config:
32//config:config FEATURE_MOUNT_FAKE 32//config:config FEATURE_MOUNT_FAKE
33//config: bool "Support option -f" 33//config: bool "Support option -f"
34//config: default y 34//config: default y
35//config: depends on MOUNT 35//config: depends on MOUNT
36//config: help 36//config: help
37//config: Enable support for faking a file system mount. 37//config: Enable support for faking a file system mount.
38//config: 38//config:
39//config:config FEATURE_MOUNT_VERBOSE 39//config:config FEATURE_MOUNT_VERBOSE
40//config: bool "Support option -v" 40//config: bool "Support option -v"
41//config: default y 41//config: default y
42//config: depends on MOUNT 42//config: depends on MOUNT
43//config: help 43//config: help
44//config: Enable multi-level -v[vv...] verbose messages. Useful if you 44//config: Enable multi-level -v[vv...] verbose messages. Useful if you
45//config: debug mount problems and want to see what is exactly passed 45//config: debug mount problems and want to see what is exactly passed
46//config: to the kernel. 46//config: to the kernel.
47//config: 47//config:
48//config:config FEATURE_MOUNT_HELPERS 48//config:config FEATURE_MOUNT_HELPERS
49//config: bool "Support mount helpers" 49//config: bool "Support mount helpers"
50//config: default n 50//config: default n
51//config: depends on MOUNT 51//config: depends on MOUNT
52//config: help 52//config: help
53//config: Enable mounting of virtual file systems via external helpers. 53//config: Enable mounting of virtual file systems via external helpers.
54//config: E.g. "mount obexfs#-b00.11.22.33.44.55 /mnt" will in effect call 54//config: E.g. "mount obexfs#-b00.11.22.33.44.55 /mnt" will in effect call
55//config: "obexfs -b00.11.22.33.44.55 /mnt" 55//config: "obexfs -b00.11.22.33.44.55 /mnt"
56//config: Also "mount -t sometype [-o opts] fs /mnt" will try 56//config: Also "mount -t sometype [-o opts] fs /mnt" will try
57//config: "sometype [-o opts] fs /mnt" if simple mount syscall fails. 57//config: "sometype [-o opts] fs /mnt" if simple mount syscall fails.
58//config: The idea is to use such virtual filesystems in /etc/fstab. 58//config: The idea is to use such virtual filesystems in /etc/fstab.
59//config: 59//config:
60//config:config FEATURE_MOUNT_LABEL 60//config:config FEATURE_MOUNT_LABEL
61//config: bool "Support specifying devices by label or UUID" 61//config: bool "Support specifying devices by label or UUID"
@@ -63,9 +63,9 @@
63//config: depends on MOUNT 63//config: depends on MOUNT
64//config: select VOLUMEID 64//config: select VOLUMEID
65//config: help 65//config: help
66//config: This allows for specifying a device by label or uuid, rather than by 66//config: This allows for specifying a device by label or uuid, rather than by
67//config: name. This feature utilizes the same functionality as blkid/findfs. 67//config: name. This feature utilizes the same functionality as blkid/findfs.
68//config: This also enables label or uuid support for swapon. 68//config: This also enables label or uuid support for swapon.
69//config: 69//config:
70//config:config FEATURE_MOUNT_NFS 70//config:config FEATURE_MOUNT_NFS
71//config: bool "Support mounting NFS file systems on Linux < 2.6.23" 71//config: bool "Support mounting NFS file systems on Linux < 2.6.23"
@@ -74,43 +74,43 @@
74//config: select FEATURE_HAVE_RPC 74//config: select FEATURE_HAVE_RPC
75//config: select FEATURE_SYSLOG 75//config: select FEATURE_SYSLOG
76//config: help 76//config: help
77//config: Enable mounting of NFS file systems on Linux kernels prior 77//config: Enable mounting of NFS file systems on Linux kernels prior
78//config: to version 2.6.23. Note that in this case mounting of NFS 78//config: to version 2.6.23. Note that in this case mounting of NFS
79//config: over IPv6 will not be possible. 79//config: over IPv6 will not be possible.
80//config: 80//config:
81//config: Note that this option links in RPC support from libc, 81//config: Note that this option links in RPC support from libc,
82//config: which is rather large (~10 kbytes on uclibc). 82//config: which is rather large (~10 kbytes on uclibc).
83//config: 83//config:
84//config:config FEATURE_MOUNT_CIFS 84//config:config FEATURE_MOUNT_CIFS
85//config: bool "Support mounting CIFS/SMB file systems" 85//config: bool "Support mounting CIFS/SMB file systems"
86//config: default y 86//config: default y
87//config: depends on MOUNT 87//config: depends on MOUNT
88//config: help 88//config: help
89//config: Enable support for samba mounts. 89//config: Enable support for samba mounts.
90//config: 90//config:
91//config:config FEATURE_MOUNT_FLAGS 91//config:config FEATURE_MOUNT_FLAGS
92//config: depends on MOUNT 92//config: depends on MOUNT
93//config: bool "Support lots of -o flags" 93//config: bool "Support lots of -o flags"
94//config: default y 94//config: default y
95//config: help 95//config: help
96//config: Without this, mount only supports ro/rw/remount. With this, it 96//config: Without this, mount only supports ro/rw/remount. With this, it
97//config: supports nosuid, suid, dev, nodev, exec, noexec, sync, async, atime, 97//config: supports nosuid, suid, dev, nodev, exec, noexec, sync, async, atime,
98//config: noatime, diratime, nodiratime, loud, bind, move, shared, slave, 98//config: noatime, diratime, nodiratime, loud, bind, move, shared, slave,
99//config: private, unbindable, rshared, rslave, rprivate, and runbindable. 99//config: private, unbindable, rshared, rslave, rprivate, and runbindable.
100//config: 100//config:
101//config:config FEATURE_MOUNT_FSTAB 101//config:config FEATURE_MOUNT_FSTAB
102//config: depends on MOUNT 102//config: depends on MOUNT
103//config: bool "Support /etc/fstab and -a" 103//config: bool "Support /etc/fstab and -a"
104//config: default y 104//config: default y
105//config: help 105//config: help
106//config: Support mount all and looking for files in /etc/fstab. 106//config: Support mount all and looking for files in /etc/fstab.
107//config: 107//config:
108//config:config FEATURE_MOUNT_OTHERTAB 108//config:config FEATURE_MOUNT_OTHERTAB
109//config: depends on FEATURE_MOUNT_FSTAB 109//config: depends on FEATURE_MOUNT_FSTAB
110//config: bool "Support -T <alt_fstab>" 110//config: bool "Support -T <alt_fstab>"
111//config: default y 111//config: default y
112//config: help 112//config: help
113//config: Support mount -T (specifying an alternate fstab) 113//config: Support mount -T (specifying an alternate fstab)
114 114
115/* On full-blown systems, requires suid for user mounts. 115/* On full-blown systems, requires suid for user mounts.
116 * But it's not unthinkable to have it available in non-suid flavor on some systems, 116 * But it's not unthinkable to have it available in non-suid flavor on some systems,
diff --git a/util-linux/mountpoint.c b/util-linux/mountpoint.c
index 0ba4a308e..b7f048196 100644
--- a/util-linux/mountpoint.c
+++ b/util-linux/mountpoint.c
@@ -12,7 +12,7 @@
12//config: bool "mountpoint (4.5 kb)" 12//config: bool "mountpoint (4.5 kb)"
13//config: default y 13//config: default y
14//config: help 14//config: help
15//config: mountpoint checks if the directory is a mountpoint. 15//config: mountpoint checks if the directory is a mountpoint.
16 16
17//applet:IF_MOUNTPOINT(APPLET(mountpoint, BB_DIR_BIN, BB_SUID_DROP)) 17//applet:IF_MOUNTPOINT(APPLET(mountpoint, BB_DIR_BIN, BB_SUID_DROP))
18 18
diff --git a/util-linux/nsenter.c b/util-linux/nsenter.c
index 315e3420b..12c86b0ed 100644
--- a/util-linux/nsenter.c
+++ b/util-linux/nsenter.c
@@ -12,15 +12,15 @@
12//config: default y 12//config: default y
13//config: select PLATFORM_LINUX 13//config: select PLATFORM_LINUX
14//config: help 14//config: help
15//config: Run program with namespaces of other processes. 15//config: Run program with namespaces of other processes.
16//config: 16//config:
17//config:config FEATURE_NSENTER_LONG_OPTS 17//config:config FEATURE_NSENTER_LONG_OPTS
18//config: bool "Enable long options" 18//config: bool "Enable long options"
19//config: default y 19//config: default y
20//config: depends on NSENTER && LONG_OPTS 20//config: depends on NSENTER && LONG_OPTS
21//config: help 21//config: help
22//config: Support long options for the nsenter applet. This makes 22//config: Support long options for the nsenter applet. This makes
23//config: the busybox implementation more compatible with upstream. 23//config: the busybox implementation more compatible with upstream.
24 24
25//applet:IF_NSENTER(APPLET(nsenter, BB_DIR_USR_BIN, BB_SUID_DROP)) 25//applet:IF_NSENTER(APPLET(nsenter, BB_DIR_USR_BIN, BB_SUID_DROP))
26 26
diff --git a/util-linux/pivot_root.c b/util-linux/pivot_root.c
index c21291ba0..331038057 100644
--- a/util-linux/pivot_root.c
+++ b/util-linux/pivot_root.c
@@ -13,13 +13,13 @@
13//config: default y 13//config: default y
14//config: select PLATFORM_LINUX 14//config: select PLATFORM_LINUX
15//config: help 15//config: help
16//config: The pivot_root utility swaps the mount points for the root filesystem 16//config: The pivot_root utility swaps the mount points for the root filesystem
17//config: with some other mounted filesystem. This allows you to do all sorts 17//config: with some other mounted filesystem. This allows you to do all sorts
18//config: of wild and crazy things with your Linux system and is far more 18//config: of wild and crazy things with your Linux system and is far more
19//config: powerful than 'chroot'. 19//config: powerful than 'chroot'.
20//config: 20//config:
21//config: Note: This is for initrd in linux 2.4. Under initramfs (introduced 21//config: Note: This is for initrd in linux 2.4. Under initramfs (introduced
22//config: in linux 2.6) use switch_root instead. 22//config: in linux 2.6) use switch_root instead.
23 23
24//applet:IF_PIVOT_ROOT(APPLET(pivot_root, BB_DIR_SBIN, BB_SUID_DROP)) 24//applet:IF_PIVOT_ROOT(APPLET(pivot_root, BB_DIR_SBIN, BB_SUID_DROP))
25 25
diff --git a/util-linux/rdate.c b/util-linux/rdate.c
index d950b45b5..66b877e24 100644
--- a/util-linux/rdate.c
+++ b/util-linux/rdate.c
@@ -11,10 +11,10 @@
11//config: bool "rdate (6 kb)" 11//config: bool "rdate (6 kb)"
12//config: default y 12//config: default y
13//config: help 13//config: help
14//config: The rdate utility allows you to synchronize the date and time of your 14//config: The rdate utility allows you to synchronize the date and time of your
15//config: system clock with the date and time of a remote networked system using 15//config: system clock with the date and time of a remote networked system using
16//config: the RFC868 protocol, which is built into the inetd daemon on most 16//config: the RFC868 protocol, which is built into the inetd daemon on most
17//config: systems. 17//config: systems.
18 18
19//applet:IF_RDATE(APPLET(rdate, BB_DIR_USR_SBIN, BB_SUID_DROP)) 19//applet:IF_RDATE(APPLET(rdate, BB_DIR_USR_SBIN, BB_SUID_DROP))
20 20
diff --git a/util-linux/rdev.c b/util-linux/rdev.c
index 6ea9c2a8a..2ffe07688 100644
--- a/util-linux/rdev.c
+++ b/util-linux/rdev.c
@@ -12,7 +12,7 @@
12//config: bool "rdev (1.4 kb)" 12//config: bool "rdev (1.4 kb)"
13//config: default y 13//config: default y
14//config: help 14//config: help
15//config: Print the device node associated with the filesystem mounted at '/'. 15//config: Print the device node associated with the filesystem mounted at '/'.
16 16
17//applet:IF_RDEV(APPLET(rdev, BB_DIR_USR_SBIN, BB_SUID_DROP)) 17//applet:IF_RDEV(APPLET(rdev, BB_DIR_USR_SBIN, BB_SUID_DROP))
18 18
diff --git a/util-linux/readprofile.c b/util-linux/readprofile.c
index b4cb5804f..b045657d8 100644
--- a/util-linux/readprofile.c
+++ b/util-linux/readprofile.c
@@ -36,7 +36,7 @@
36//config: default y 36//config: default y
37//config: #select PLATFORM_LINUX 37//config: #select PLATFORM_LINUX
38//config: help 38//config: help
39//config: This allows you to parse /proc/profile for basic profiling. 39//config: This allows you to parse /proc/profile for basic profiling.
40 40
41//applet:IF_READPROFILE(APPLET(readprofile, BB_DIR_USR_SBIN, BB_SUID_DROP)) 41//applet:IF_READPROFILE(APPLET(readprofile, BB_DIR_USR_SBIN, BB_SUID_DROP))
42 42
diff --git a/util-linux/renice.c b/util-linux/renice.c
index 751af4548..23cbca88d 100644
--- a/util-linux/renice.c
+++ b/util-linux/renice.c
@@ -22,8 +22,8 @@
22//config: bool "renice (3.8 kb)" 22//config: bool "renice (3.8 kb)"
23//config: default y 23//config: default y
24//config: help 24//config: help
25//config: Renice alters the scheduling priority of one or more running 25//config: Renice alters the scheduling priority of one or more running
26//config: processes. 26//config: processes.
27 27
28//applet:IF_RENICE(APPLET(renice, BB_DIR_USR_BIN, BB_SUID_DROP)) 28//applet:IF_RENICE(APPLET(renice, BB_DIR_USR_BIN, BB_SUID_DROP))
29 29
diff --git a/util-linux/rev.c b/util-linux/rev.c
index 3d07b2247..2bef9b9be 100644
--- a/util-linux/rev.c
+++ b/util-linux/rev.c
@@ -9,7 +9,7 @@
9//config: bool "rev (4.5 kb)" 9//config: bool "rev (4.5 kb)"
10//config: default y 10//config: default y
11//config: help 11//config: help
12//config: Reverse lines of a file or files. 12//config: Reverse lines of a file or files.
13 13
14//applet:IF_REV(APPLET(rev, BB_DIR_BIN, BB_SUID_DROP)) 14//applet:IF_REV(APPLET(rev, BB_DIR_BIN, BB_SUID_DROP))
15 15
diff --git a/util-linux/rtcwake.c b/util-linux/rtcwake.c
index 01ab8ebb9..4c47c5369 100644
--- a/util-linux/rtcwake.c
+++ b/util-linux/rtcwake.c
@@ -27,7 +27,7 @@
27//config: default y 27//config: default y
28//config: select PLATFORM_LINUX 28//config: select PLATFORM_LINUX
29//config: help 29//config: help
30//config: Enter a system sleep state until specified wakeup time. 30//config: Enter a system sleep state until specified wakeup time.
31 31
32//applet:IF_RTCWAKE(APPLET(rtcwake, BB_DIR_USR_SBIN, BB_SUID_DROP)) 32//applet:IF_RTCWAKE(APPLET(rtcwake, BB_DIR_USR_SBIN, BB_SUID_DROP))
33 33
diff --git a/util-linux/script.c b/util-linux/script.c
index d82a92d1e..9eebb51a4 100644
--- a/util-linux/script.c
+++ b/util-linux/script.c
@@ -14,7 +14,7 @@
14//config: bool "script (8 kb)" 14//config: bool "script (8 kb)"
15//config: default y 15//config: default y
16//config: help 16//config: help
17//config: The script makes typescript of terminal session. 17//config: The script makes typescript of terminal session.
18 18
19//applet:IF_SCRIPT(APPLET(script, BB_DIR_USR_BIN, BB_SUID_DROP)) 19//applet:IF_SCRIPT(APPLET(script, BB_DIR_USR_BIN, BB_SUID_DROP))
20 20
diff --git a/util-linux/scriptreplay.c b/util-linux/scriptreplay.c
index d0050f26b..7e9850103 100644
--- a/util-linux/scriptreplay.c
+++ b/util-linux/scriptreplay.c
@@ -11,8 +11,8 @@
11//config: bool "scriptreplay (2.6 kb)" 11//config: bool "scriptreplay (2.6 kb)"
12//config: default y 12//config: default y
13//config: help 13//config: help
14//config: This program replays a typescript, using timing information 14//config: This program replays a typescript, using timing information
15//config: given by script -t. 15//config: given by script -t.
16 16
17//applet:IF_SCRIPTREPLAY(APPLET(scriptreplay, BB_DIR_BIN, BB_SUID_DROP)) 17//applet:IF_SCRIPTREPLAY(APPLET(scriptreplay, BB_DIR_BIN, BB_SUID_DROP))
18 18
diff --git a/util-linux/setarch.c b/util-linux/setarch.c
index 07de7f4db..d4b568832 100644
--- a/util-linux/setarch.c
+++ b/util-linux/setarch.c
@@ -11,24 +11,24 @@
11//config: default y 11//config: default y
12//config: select PLATFORM_LINUX 12//config: select PLATFORM_LINUX
13//config: help 13//config: help
14//config: The linux32 utility is used to create a 32bit environment for the 14//config: The linux32 utility is used to create a 32bit environment for the
15//config: specified program (usually a shell). It only makes sense to have 15//config: specified program (usually a shell). It only makes sense to have
16//config: this util on a system that supports both 64bit and 32bit userland 16//config: this util on a system that supports both 64bit and 32bit userland
17//config: (like amd64/x86, ppc64/ppc, sparc64/sparc, etc...). 17//config: (like amd64/x86, ppc64/ppc, sparc64/sparc, etc...).
18//config: 18//config:
19//config:config LINUX32 19//config:config LINUX32
20//config: bool "linux32 (3.2 kb)" 20//config: bool "linux32 (3.2 kb)"
21//config: default y 21//config: default y
22//config: select PLATFORM_LINUX 22//config: select PLATFORM_LINUX
23//config: help 23//config: help
24//config: Alias to "setarch linux32". 24//config: Alias to "setarch linux32".
25//config: 25//config:
26//config:config LINUX64 26//config:config LINUX64
27//config: bool "linux64 (3.2 kb)" 27//config: bool "linux64 (3.2 kb)"
28//config: default y 28//config: default y
29//config: select PLATFORM_LINUX 29//config: select PLATFORM_LINUX
30//config: help 30//config: help
31//config: Alias to "setarch linux64". 31//config: Alias to "setarch linux64".
32 32
33//applet:IF_SETARCH(APPLET(setarch, BB_DIR_BIN, BB_SUID_DROP)) 33//applet:IF_SETARCH(APPLET(setarch, BB_DIR_BIN, BB_SUID_DROP))
34// APPLET_ODDNAME:name main location suid_type help 34// APPLET_ODDNAME:name main location suid_type help
diff --git a/util-linux/setpriv.c b/util-linux/setpriv.c
index 89181085a..0f85428ab 100644
--- a/util-linux/setpriv.c
+++ b/util-linux/setpriv.c
@@ -13,36 +13,36 @@
13//config: select PLATFORM_LINUX 13//config: select PLATFORM_LINUX
14//config: select LONG_OPTS 14//config: select LONG_OPTS
15//config: help 15//config: help
16//config: Run a program with different Linux privilege settings. 16//config: Run a program with different Linux privilege settings.
17//config: Requires kernel >= 3.5 17//config: Requires kernel >= 3.5
18//config: 18//config:
19//config:config FEATURE_SETPRIV_DUMP 19//config:config FEATURE_SETPRIV_DUMP
20//config: bool "Support dumping current privilege state" 20//config: bool "Support dumping current privilege state"
21//config: default y 21//config: default y
22//config: depends on SETPRIV 22//config: depends on SETPRIV
23//config: help 23//config: help
24//config: Enables the "--dump" switch to print out the current privilege 24//config: Enables the "--dump" switch to print out the current privilege
25//config: state. This is helpful for diagnosing problems. 25//config: state. This is helpful for diagnosing problems.
26//config: 26//config:
27//config:config FEATURE_SETPRIV_CAPABILITIES 27//config:config FEATURE_SETPRIV_CAPABILITIES
28//config: bool "Support capabilities" 28//config: bool "Support capabilities"
29//config: default y 29//config: default y
30//config: depends on SETPRIV 30//config: depends on SETPRIV
31//config: help 31//config: help
32//config: Capabilities can be used to grant processes additional rights 32//config: Capabilities can be used to grant processes additional rights
33//config: without the necessity to always execute as the root user. 33//config: without the necessity to always execute as the root user.
34//config: Enabling this option enables "--dump" to show information on 34//config: Enabling this option enables "--dump" to show information on
35//config: capabilities. 35//config: capabilities.
36//config: 36//config:
37//config:config FEATURE_SETPRIV_CAPABILITY_NAMES 37//config:config FEATURE_SETPRIV_CAPABILITY_NAMES
38//config: bool "Support capability names" 38//config: bool "Support capability names"
39//config: default y 39//config: default y
40//config: depends on SETPRIV && FEATURE_SETPRIV_CAPABILITIES 40//config: depends on SETPRIV && FEATURE_SETPRIV_CAPABILITIES
41//config: help 41//config: help
42//config: Capabilities can be either referenced via a human-readble name, 42//config: Capabilities can be either referenced via a human-readble name,
43//config: e.g. "net_admin", or using their index, e.g. "cap_12". Enabling 43//config: e.g. "net_admin", or using their index, e.g. "cap_12". Enabling
44//config: this option allows using the human-readable names in addition to 44//config: this option allows using the human-readable names in addition to
45//config: the index-based names. 45//config: the index-based names.
46 46
47//applet:IF_SETPRIV(APPLET(setpriv, BB_DIR_BIN, BB_SUID_DROP)) 47//applet:IF_SETPRIV(APPLET(setpriv, BB_DIR_BIN, BB_SUID_DROP))
48 48
diff --git a/util-linux/setsid.c b/util-linux/setsid.c
index 15a7c05e9..60cab2fcf 100644
--- a/util-linux/setsid.c
+++ b/util-linux/setsid.c
@@ -17,7 +17,7 @@
17//config: bool "setsid (3.9 kb)" 17//config: bool "setsid (3.9 kb)"
18//config: default y 18//config: default y
19//config: help 19//config: help
20//config: setsid runs a program in a new session 20//config: setsid runs a program in a new session
21 21
22//applet:IF_SETSID(APPLET(setsid, BB_DIR_USR_BIN, BB_SUID_DROP)) 22//applet:IF_SETSID(APPLET(setsid, BB_DIR_USR_BIN, BB_SUID_DROP))
23 23
diff --git a/util-linux/swaponoff.c b/util-linux/swaponoff.c
index dc8dd9df6..bda0687d6 100644
--- a/util-linux/swaponoff.c
+++ b/util-linux/swaponoff.c
@@ -11,27 +11,27 @@
11//config: default y 11//config: default y
12//config: select PLATFORM_LINUX 12//config: select PLATFORM_LINUX
13//config: help 13//config: help
14//config: Once you have created some swap space using 'mkswap', you also need 14//config: Once you have created some swap space using 'mkswap', you also need
15//config: to enable your swap space with the 'swapon' utility. The 'swapoff' 15//config: to enable your swap space with the 'swapon' utility. The 'swapoff'
16//config: utility is used, typically at system shutdown, to disable any swap 16//config: utility is used, typically at system shutdown, to disable any swap
17//config: space. If you are not using any swap space, you can leave this 17//config: space. If you are not using any swap space, you can leave this
18//config: option disabled. 18//config: option disabled.
19//config: 19//config:
20//config:config FEATURE_SWAPON_DISCARD 20//config:config FEATURE_SWAPON_DISCARD
21//config: bool "Support discard option -d" 21//config: bool "Support discard option -d"
22//config: default y 22//config: default y
23//config: depends on SWAPON 23//config: depends on SWAPON
24//config: help 24//config: help
25//config: Enable support for discarding swap area blocks at swapon and/or as 25//config: Enable support for discarding swap area blocks at swapon and/or as
26//config: the kernel frees them. This option enables both the -d option on 26//config: the kernel frees them. This option enables both the -d option on
27//config: 'swapon' and the 'discard' option for swap entries in /etc/fstab. 27//config: 'swapon' and the 'discard' option for swap entries in /etc/fstab.
28//config: 28//config:
29//config:config FEATURE_SWAPON_PRI 29//config:config FEATURE_SWAPON_PRI
30//config: bool "Support priority option -p" 30//config: bool "Support priority option -p"
31//config: default y 31//config: default y
32//config: depends on SWAPON 32//config: depends on SWAPON
33//config: help 33//config: help
34//config: Enable support for setting swap device priority in swapon. 34//config: Enable support for setting swap device priority in swapon.
35//config: 35//config:
36//config:config SWAPOFF 36//config:config SWAPOFF
37//config: bool "swapoff (4.3 kb)" 37//config: bool "swapoff (4.3 kb)"
diff --git a/util-linux/switch_root.c b/util-linux/switch_root.c
index 92e385b98..32708934e 100644
--- a/util-linux/switch_root.c
+++ b/util-linux/switch_root.c
@@ -10,20 +10,20 @@
10//config: default y 10//config: default y
11//config: select PLATFORM_LINUX 11//config: select PLATFORM_LINUX
12//config: help 12//config: help
13//config: The switch_root utility is used from initramfs to select a new 13//config: The switch_root utility is used from initramfs to select a new
14//config: root device. Under initramfs, you have to use this instead of 14//config: root device. Under initramfs, you have to use this instead of
15//config: pivot_root. (Stop reading here if you don't care why.) 15//config: pivot_root. (Stop reading here if you don't care why.)
16//config: 16//config:
17//config: Booting with initramfs extracts a gzipped cpio archive into rootfs 17//config: Booting with initramfs extracts a gzipped cpio archive into rootfs
18//config: (which is a variant of ramfs/tmpfs). Because rootfs can't be moved 18//config: (which is a variant of ramfs/tmpfs). Because rootfs can't be moved
19//config: or unmounted*, pivot_root will not work from initramfs. Instead, 19//config: or unmounted*, pivot_root will not work from initramfs. Instead,
20//config: switch_root deletes everything out of rootfs (including itself), 20//config: switch_root deletes everything out of rootfs (including itself),
21//config: does a mount --move that overmounts rootfs with the new root, and 21//config: does a mount --move that overmounts rootfs with the new root, and
22//config: then execs the specified init program. 22//config: then execs the specified init program.
23//config: 23//config:
24//config: * Because the Linux kernel uses rootfs internally as the starting 24//config: * Because the Linux kernel uses rootfs internally as the starting
25//config: and ending point for searching through the kernel's doubly linked 25//config: and ending point for searching through the kernel's doubly linked
26//config: list of active mount points. That's why. 26//config: list of active mount points. That's why.
27 27
28//applet:IF_SWITCH_ROOT(APPLET(switch_root, BB_DIR_SBIN, BB_SUID_DROP)) 28//applet:IF_SWITCH_ROOT(APPLET(switch_root, BB_DIR_SBIN, BB_SUID_DROP))
29 29
diff --git a/util-linux/taskset.c b/util-linux/taskset.c
index 581b0d144..9957b1a71 100644
--- a/util-linux/taskset.c
+++ b/util-linux/taskset.c
@@ -10,17 +10,17 @@
10//config: bool "taskset (4.1 kb)" 10//config: bool "taskset (4.1 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: Retrieve or set a processes's CPU affinity. 13//config: Retrieve or set a processes's CPU affinity.
14//config: This requires sched_{g,s}etaffinity support in your libc. 14//config: This requires sched_{g,s}etaffinity support in your libc.
15//config: 15//config:
16//config:config FEATURE_TASKSET_FANCY 16//config:config FEATURE_TASKSET_FANCY
17//config: bool "Fancy output" 17//config: bool "Fancy output"
18//config: default y 18//config: default y
19//config: depends on TASKSET 19//config: depends on TASKSET
20//config: help 20//config: help
21//config: Needed for machines with more than 32-64 CPUs: 21//config: Needed for machines with more than 32-64 CPUs:
22//config: affinity parameter 0xHHHHHHHHHHHHHHHHHHHH can be arbitrarily long 22//config: affinity parameter 0xHHHHHHHHHHHHHHHHHHHH can be arbitrarily long
23//config: in this case. Otherwise, it is limited to sizeof(long). 23//config: in this case. Otherwise, it is limited to sizeof(long).
24 24
25//applet:IF_TASKSET(APPLET(taskset, BB_DIR_USR_BIN, BB_SUID_DROP)) 25//applet:IF_TASKSET(APPLET(taskset, BB_DIR_USR_BIN, BB_SUID_DROP))
26//kbuild:lib-$(CONFIG_TASKSET) += taskset.o 26//kbuild:lib-$(CONFIG_TASKSET) += taskset.o
diff --git a/util-linux/uevent.c b/util-linux/uevent.c
index cef93adf6..252e8fb64 100644
--- a/util-linux/uevent.c
+++ b/util-linux/uevent.c
@@ -8,8 +8,8 @@
8//config: default y 8//config: default y
9//config: select PLATFORM_LINUX 9//config: select PLATFORM_LINUX
10//config: help 10//config: help
11//config: uevent is a netlink listener for kernel uevent notifications 11//config: uevent is a netlink listener for kernel uevent notifications
12//config: sent via netlink. It is usually used for dynamic device creation. 12//config: sent via netlink. It is usually used for dynamic device creation.
13 13
14//applet:IF_UEVENT(APPLET(uevent, BB_DIR_SBIN, BB_SUID_DROP)) 14//applet:IF_UEVENT(APPLET(uevent, BB_DIR_SBIN, BB_SUID_DROP))
15 15
diff --git a/util-linux/umount.c b/util-linux/umount.c
index f970f9f84..31bf671c1 100644
--- a/util-linux/umount.c
+++ b/util-linux/umount.c
@@ -12,17 +12,17 @@
12//config: default y 12//config: default y
13//config: select PLATFORM_LINUX 13//config: select PLATFORM_LINUX
14//config: help 14//config: help
15//config: When you want to remove a mounted filesystem from its current mount 15//config: When you want to remove a mounted filesystem from its current mount
16//config: point, for example when you are shutting down the system, the 16//config: point, for example when you are shutting down the system, the
17//config: 'umount' utility is the tool to use. If you enabled the 'mount' 17//config: 'umount' utility is the tool to use. If you enabled the 'mount'
18//config: utility, you almost certainly also want to enable 'umount'. 18//config: utility, you almost certainly also want to enable 'umount'.
19//config: 19//config:
20//config:config FEATURE_UMOUNT_ALL 20//config:config FEATURE_UMOUNT_ALL
21//config: bool "Support option -a" 21//config: bool "Support option -a"
22//config: default y 22//config: default y
23//config: depends on UMOUNT 23//config: depends on UMOUNT
24//config: help 24//config: help
25//config: Support -a option to unmount all currently mounted filesystems. 25//config: Support -a option to unmount all currently mounted filesystems.
26 26
27//applet:IF_UMOUNT(APPLET(umount, BB_DIR_BIN, BB_SUID_DROP)) 27//applet:IF_UMOUNT(APPLET(umount, BB_DIR_BIN, BB_SUID_DROP))
28 28
diff --git a/util-linux/unshare.c b/util-linux/unshare.c
index 892d3b6c7..e7b95c72b 100644
--- a/util-linux/unshare.c
+++ b/util-linux/unshare.c
@@ -13,7 +13,7 @@
13//config: select PLATFORM_LINUX 13//config: select PLATFORM_LINUX
14//config: select LONG_OPTS 14//config: select LONG_OPTS
15//config: help 15//config: help
16//config: Run program with some namespaces unshared from parent. 16//config: Run program with some namespaces unshared from parent.
17 17
18// needs LONG_OPTS: it is awkward to exclude code which handles --propagation 18// needs LONG_OPTS: it is awkward to exclude code which handles --propagation
19// and --setgroups based on LONG_OPTS, so instead applet requires LONG_OPTS. 19// and --setgroups based on LONG_OPTS, so instead applet requires LONG_OPTS.
diff --git a/util-linux/volume_id/exfat.c b/util-linux/volume_id/exfat.c
index 7ed13a70e..14bf9d691 100644
--- a/util-linux/volume_id/exfat.c
+++ b/util-linux/volume_id/exfat.c
@@ -25,9 +25,9 @@
25//config: default y 25//config: default y
26//config: depends on VOLUMEID 26//config: depends on VOLUMEID
27//config: help 27//config: help
28//config: exFAT (extended FAT) is a proprietary file system designed especially 28//config: exFAT (extended FAT) is a proprietary file system designed especially
29//config: for flash drives. It has many features from NTFS, but with less 29//config: for flash drives. It has many features from NTFS, but with less
30//config: overhead. exFAT is used on most SDXC cards for consumer electronics. 30//config: overhead. exFAT is used on most SDXC cards for consumer electronics.
31 31
32#include "volume_id_internal.h" 32#include "volume_id_internal.h"
33 33
diff --git a/util-linux/volume_id/f2fs.c b/util-linux/volume_id/f2fs.c
index 1d3bdae36..3027f178e 100644
--- a/util-linux/volume_id/f2fs.c
+++ b/util-linux/volume_id/f2fs.c
@@ -13,10 +13,10 @@
13//config: default y 13//config: default y
14//config: depends on VOLUMEID 14//config: depends on VOLUMEID
15//config: help 15//config: help
16//config: F2FS (aka Flash-Friendly File System) is a log-structured file system, 16//config: F2FS (aka Flash-Friendly File System) is a log-structured file system,
17//config: which is adapted to newer forms of storage. F2FS also remedies some 17//config: which is adapted to newer forms of storage. F2FS also remedies some
18//config: known issues of the older log structured file systems, such as high 18//config: known issues of the older log structured file systems, such as high
19//config: cleaning overhead. 19//config: cleaning overhead.
20 20
21#include "volume_id_internal.h" 21#include "volume_id_internal.h"
22 22
diff --git a/util-linux/volume_id/nilfs.c b/util-linux/volume_id/nilfs.c
index ffe919f36..9d6c57fba 100644
--- a/util-linux/volume_id/nilfs.c
+++ b/util-linux/volume_id/nilfs.c
@@ -26,16 +26,16 @@
26//config: default y 26//config: default y
27//config: depends on VOLUMEID 27//config: depends on VOLUMEID
28//config: help 28//config: help
29//config: NILFS is a New Implementation of a Log-Structured File System (LFS) 29//config: NILFS is a New Implementation of a Log-Structured File System (LFS)
30//config: that supports continuous snapshots. This provides features like 30//config: that supports continuous snapshots. This provides features like
31//config: versioning of the entire filesystem, restoration of files that 31//config: versioning of the entire filesystem, restoration of files that
32//config: were deleted a few minutes ago. NILFS keeps consistency like 32//config: were deleted a few minutes ago. NILFS keeps consistency like
33//config: conventional LFS, so it provides quick recovery after system crashes. 33//config: conventional LFS, so it provides quick recovery after system crashes.
34//config: 34//config:
35//config: The possible use of NILFS includes versioning, tamper detection, 35//config: The possible use of NILFS includes versioning, tamper detection,
36//config: SOX compliance logging, and so forth. It can serve as an alternative 36//config: SOX compliance logging, and so forth. It can serve as an alternative
37//config: filesystem for Linux desktop environment, or as a basis of advanced 37//config: filesystem for Linux desktop environment, or as a basis of advanced
38//config: storage appliances. 38//config: storage appliances.
39 39
40#include "volume_id_internal.h" 40#include "volume_id_internal.h"
41 41
diff --git a/util-linux/volume_id/squashfs.c b/util-linux/volume_id/squashfs.c
index 6bba199cd..e3ffce35e 100644
--- a/util-linux/volume_id/squashfs.c
+++ b/util-linux/volume_id/squashfs.c
@@ -13,10 +13,10 @@
13//config: default y 13//config: default y
14//config: depends on VOLUMEID && FEATURE_BLKID_TYPE 14//config: depends on VOLUMEID && FEATURE_BLKID_TYPE
15//config: help 15//config: help
16//config: Squashfs is a compressed read-only filesystem for Linux. Squashfs is 16//config: Squashfs is a compressed read-only filesystem for Linux. Squashfs is
17//config: intended for general read-only filesystem use and in constrained block 17//config: intended for general read-only filesystem use and in constrained block
18//config: device/memory systems (e.g. embedded systems) where low overhead is 18//config: device/memory systems (e.g. embedded systems) where low overhead is
19//config: needed. 19//config: needed.
20 20
21#include "volume_id_internal.h" 21#include "volume_id_internal.h"
22 22
diff --git a/util-linux/volume_id/ubifs.c b/util-linux/volume_id/ubifs.c
index 99b0aa830..7512b84b0 100644
--- a/util-linux/volume_id/ubifs.c
+++ b/util-linux/volume_id/ubifs.c
@@ -13,8 +13,8 @@
13//config: default y 13//config: default y
14//config: depends on VOLUMEID 14//config: depends on VOLUMEID
15//config: help 15//config: help
16//config: UBIFS (Unsorted Block Image File System) is a file 16//config: UBIFS (Unsorted Block Image File System) is a file
17//config: system for use with raw flash memory media. 17//config: system for use with raw flash memory media.
18 18
19#include "volume_id_internal.h" 19#include "volume_id_internal.h"
20 20
diff --git a/util-linux/wall.c b/util-linux/wall.c
index 4550f0b68..e214d8c3f 100644
--- a/util-linux/wall.c
+++ b/util-linux/wall.c
@@ -11,7 +11,7 @@
11//config: default y 11//config: default y
12//config: depends on FEATURE_UTMP 12//config: depends on FEATURE_UTMP
13//config: help 13//config: help
14//config: Write a message to all users that are logged in. 14//config: Write a message to all users that are logged in.
15 15
16/* Needs to be run by root or be suid root - needs to write to /dev/TTY: */ 16/* Needs to be run by root or be suid root - needs to write to /dev/TTY: */
17//applet:IF_WALL(APPLET(wall, BB_DIR_USR_BIN, BB_SUID_REQUIRE)) 17//applet:IF_WALL(APPLET(wall, BB_DIR_USR_BIN, BB_SUID_REQUIRE))