RustForge

foundry

Foundry OS: the operating system built on the Rustbelt kernel

authorGrok Bot <grokbot@localhost>2026-10-31 21:06:40 -0700
commitea3177c9f1af8c4214786a9c6f78726b76a0e79a
parent8df0027b66bcebeb7a6ff16585a6de3caba28adc
treebrowse files at this commit
ports/busybox: busybox 1.36.1, static-PIE, in /usr/lib/busybox (off PATH)

Pinned stable release (SHA256), committed .config made by mkconfig.sh:
defconfig minus 83 applets Rustbelt can't run (modules, netlink/raw
network setup, flash/i2c/pci/usb, console fonts, swap, namespaces...),
plus FEATURE_PREFER_APPLETS so applets find each other off PATH.
build.sh needs no bzip2 (Python unpack + shim) and copies the host's
Linux UAPI headers. v2 staging installs busybox + 320 applet symlinks.
MMakefile+17 -2
Mports/README.md+14 -2
Aports/busybox/README.md+104 -0
Aports/busybox/build.sh+78 -0
Aports/busybox/busybox.config+1222 -0
Aports/busybox/busybox.sha256+1 -0
Aports/busybox/busybox.url+1 -0
Aports/busybox/bzip2-shim.py+9 -0
Aports/busybox/mkconfig.sh+65 -0
Aports/busybox/untar.py+9 -0

10 files changed, 1520 insertions, 4 deletions

@@ -24,12 +24,13 @@ C_OUT      := $(OUT)/c ALL_BIN    := $(BIN_ORDER) $(FOUNDRY_C) $(FOUNDRY_PORTS) PORTS_OUT  := $(OUT)/ports SBASE_OUT  := $(PORTS_OUT)/sbase+BUSYBOX_OUT := $(PORTS_OUT)/busybox # Contract v2: the kernel's ABI test programs live on B: (/mnt/disk0/bin), # in the kernel's order; everything else is in A:/bin. DATA_BIN   := $(filter-out $(RUST_PROGRAMS),$(BIN_ORDER))  .DEFAULT_GOAL := image-.PHONY: help image image-v1 image-v2 rust fixtures cprogs ports sbase staging-v1 staging-v2 kernel kernel-src run test test-v1 test-v2 test-reference compare k1-check unit rbsh-test musl clean distclean+.PHONY: help image image-v1 image-v2 rust fixtures cprogs ports sbase busybox staging-v1 staging-v2 kernel kernel-src run test test-v1 test-v2 test-reference compare k1-check unit rbsh-test musl clean distclean  help: 	@echo "Foundry OS (userland for the Rustbelt kernel $(KERNEL_VERSION) @ $(KERNEL_REV))"@@ -42,6 +43,7 @@ help: 	@echo "  make cprogs         build our C programs (c/) as static-PIEs with toolchain/foundry-cc" 	@echo "  make ports          fetch (cache/) + build the ports ($(FOUNDRY_PORTS)) the same way" 	@echo "  make sbase          fetch + build sbase (M4) into out/ports/sbase; v2 puts it in /usr/lib/sbase"+	@echo "  make busybox        fetch + build busybox (M5) into out/ports/busybox; v2 puts it in /usr/lib/busybox" 	@echo "  make staging-v1/-v2 assemble the image trees in out/staging-v1, out/staging-v2" 	@echo "  make kernel         build the pinned kernel into out/kernel-target" 	@echo "  make run            boot the image in a QEMU window"@@ -93,6 +95,15 @@ $(SBASE_OUT)/tools.txt: $(SYSROOT)/lib/musl-pie.specs ports/sbase/build.sh $(wil 	ports/fetch.sh sbase cache 	ports/sbase/build.sh cache $(PORTS_OUT)/sbase-build $(SBASE_OUT) +# busybox (M5): one program with ~320 applets, built into out/ports/busybox/.+# v2 installs it as /usr/lib/busybox/busybox plus one symlink per applet,+# off the default PATH (ports/busybox/README.md).+busybox: $(BUSYBOX_OUT)/applets.txt++$(BUSYBOX_OUT)/applets.txt: $(SYSROOT)/lib/musl-pie.specs ports/busybox/build.sh ports/busybox/busybox.config+	ports/fetch.sh busybox cache+	ports/busybox/build.sh cache $(PORTS_OUT)/busybox-build $(BUSYBOX_OUT)+ # ---- the image --------------------------------------------------------------- image: image-$(CONTRACT) @@ -114,7 +125,7 @@ image-v1: staging-v1 #   root/  -> A: (ext2 root): /sbin/init, our programs in /bin, /etc, /scripts #   data/  -> B: (FAT32, /mnt/disk0): rootfs/ minus scripts/, + the ABI fixtures in bin/ #   share/ -> C: (exFAT, /mnt/share): share/-staging-v2: rust fixtures cprogs ports sbase+staging-v2: rust fixtures cprogs ports sbase busybox 	rm -rf $(STAGING_V2) && mkdir -p $(STAGING_V2)/data/bin $(STAGING_V2)/share 	cp -r root $(STAGING_V2)/root && rm -f $(STAGING_V2)/root/README.md 	cd $(STAGING_V2)/root && mkdir -p sbin bin usr/bin tmp root home/tyler mnt/disk0 mnt/share@@ -126,6 +137,10 @@ staging-v2: rust fixtures cprogs ports sbase 	ln -s dash $(STAGING_V2)/root/bin/sh 	mkdir -p $(STAGING_V2)/root/usr/lib/sbase 	cp $(SBASE_OUT)/bin/* $(SBASE_OUT)/LICENSE $(STAGING_V2)/root/usr/lib/sbase/+	mkdir -p $(STAGING_V2)/root/usr/lib/busybox+	cp $(BUSYBOX_OUT)/busybox $(STAGING_V2)/root/usr/lib/busybox/+	cp $(BUSYBOX_OUT)/LICENSE $(STAGING_V2)/root/usr/lib/busybox/+	cd $(STAGING_V2)/root/usr/lib/busybox && for a in $$(cat $(BUSYBOX_OUT)/applets.txt); do ln -s busybox "$$a"; done 	cp rootfs/scripts/dash-test.sh $(STAGING_V2)/root/scripts/ 	cd rootfs && for e in $$(ls -A); do [ "$$e" = scripts ] || cp -r "$$e" $(STAGING_V2)/data/; done 	cp $(FIXTURES)/* $(STAGING_V2)/data/bin/
@@ -65,5 +65,17 @@ own static-PIE, 5.7 MB together.   no `sed -i`, no `head -c`, `od -c` is spelled `od -t c`, and `sleep`   takes whole seconds only. -Later: **busybox** (M5). Its applets go to `/usr/lib/busybox`, also off-the default `PATH`.+## busybox 1.36.1 (M5)++[busybox](https://busybox.net): one program with ~300 applets (`awk`,+`vi`, `tar`, `wget`, `ps`, `adduser`, the `ash` shell, ...). Built from+the newest *stable* release with a committed configuration+(`ports/busybox/busybox.config`: defconfig minus 83 applets Rustbelt can't+run). All the details, including every config choice, are in+**ports/busybox/README.md**.++- **Where it goes**: `/usr/lib/busybox/busybox` plus one symlink per applet+  (`/usr/lib/busybox/awk -> busybox`), off the default `PATH`, like sbase.+  `/bin/sh` stays dash.+- **Tested by** `dash /scripts/busybox-test.sh` (its own boot in `make+  test`; see docs/syscall-gaps.md).
@@ -0,0 +1,104 @@+# busybox 1.36.1 (M5)++[busybox](https://busybox.net) is one program that contains ~300 small+Unix tools ("applets"): `awk`, `sed`, `vi`, `tar`, `gzip`, `wget`, `ps`,+`adduser`, a shell (`ash`)... Which applet runs depends on the name it was+started under (`argv[0]`), or on the first argument: `busybox awk ...`.++## Version++**1.36.1** (2023-05-18), the newest release that busybox.net calls+"stable". 1.37.0 and 1.38.0 exist but are marked "unstable" on the+download page, so we wait. The tarball is pinned by SHA256 in+`busybox.sha256` and downloaded once into `cache/` by `ports/fetch.sh`.++## Where it goes++Contract v2 only, on the ext2 root:++```+/usr/lib/busybox/busybox      the program (static-PIE, ~1 MB)+/usr/lib/busybox/awk -> busybox   one symlink per applet (320 of them)+/usr/lib/busybox/LICENSE      GPL v2+```++The directory is **off** the default `PATH`, so the Foundry OS Rust tools+(`/bin/ls`, ...) and dash (`/bin/sh`) stay the default. Use busybox as++```sh+/usr/lib/busybox/busybox awk -F: '{print $1}' /etc/passwd+/usr/lib/busybox/awk -F: '{print $1}' /etc/passwd    # same thing+PATH=/usr/lib/busybox:$PATH                           # all applets, this shell only+/usr/lib/busybox/busybox ash                          # busybox's shell+```++## Configuration (`busybox.config`)++`busybox.config` is the complete `.config`, committed, and the build uses it+as is (it fails if busybox would have to ask about a new option). It is made+by `mkconfig.sh` from busybox's own `make defconfig` (nearly everything on),+with these changes. `mkconfig.sh` lists every option with a comment, so the+list there is the reference; in short:++**Switched off (83 applets): things Rustbelt cannot do**, so they could only+ever fail:++| Group | Applets | Why not |+|---|---|---|+| Kernel modules | `insmod`, `rmmod`, `lsmod`, `modprobe`, `depmod`, `modinfo` | Rustbelt has no loadable modules |+| Traffic control | `tc` | netlink; and 1.36.1's `tc` doesn't compile against current Linux headers |+| Linux network setup | `ip` (+ `ipaddr`, `iplink`, `iproute`, ...), `brctl`, `udhcpc`, `udhcpd`, `arping`, `ether-wake`, `zcip`, `ifplugd`, `nameif`, `tunctl`, `vconfig`, `ifenslave`, `nbd-client`, ... | netlink or raw packet sockets; Rustbelt sets up its network itself (DHCP in the kernel) |+| Hardware Rustbelt doesn't expose | flash/UBI tools, `i2c*`, `lspci`, `lsusb`, `hwclock`, `watchdog`, `devmem`, `acpid`, `beep`, `setserial` | no `/dev/mtd*`, `/dev/i2c-*`, `/dev/rtc`, `/sys` |+| Linux console and framebuffer | `loadfont`, `setfont`, `kbd_mode`, `loadkmap`, `dumpkmap`, `setkeycodes`, `fbset`, `fbsplash`, `conspy` | Linux console ioctls; Rustbelt's console works differently |+| Other kernel features | `mdev`, `uevent`, swap (`mkswap`, `swapon`, `swapoff`), `losetup`, `raidautorun`, floppy tools, `freeramdisk`, `eject`, `blkdiscard`, `fsfreeze`, `rdev`, `pivot_root`, `switch_root`, `nsenter`, `unshare`, `setarch`/`linux32`/`linux64`, `adjtimex` | hot-plug, swap, loop devices, RAID, namespaces, switching the root |++SELinux and PAM are already off in defconfig, and nothing is built as a+loadable module (busybox has none of its own anyway).++**Kept on purpose**, even though they fail today: `ps`, `top`, `free`,+`mount`, `df`, `mkfifo`, `chroot`, `dmesg`, `ping` and friends. They need+kernel features that are planned (K7, K14, K15 in docs/kernel-requests.md),+and the test runs them as expected failures, so we see when they start to+work. `login`, `su`, `passwd`, `adduser`, `getty` stay for M6 (users).++**Switched on (1 option): `FEATURE_PREFER_APPLETS`.** When one applet runs+another (`xargs echo`, `find -exec`, `adduser` running `addgroup`), busybox+normally looks the command up on `PATH`, where our busybox isn't. With+this option it runs its own applet (through `/proc/self/exe`) instead.+One exception, by busybox's design: `tar -z`/`-j` always run an external+`gzip`/`bzip2` from `PATH`; put `/usr/lib/busybox` on `PATH` for those (or+use a pipe: `tar -cf - dir | busybox gzip > dir.tgz`).++## Building++`make busybox` (also part of `make image`): `ports/fetch.sh busybox cache`,+then `build.sh cache out/ports/busybox-build out/ports/busybox`. It runs+busybox's Makefile with++```+make CC=toolchain/foundry-cc LD=ld HOSTCC=gcc EXTRA_CFLAGS="-isystem <kernel headers>"+```++- `CC=foundry-cc`: our gcc + musl wrapper, so the result is a static-PIE.+- `LD=ld`: busybox links each directory with `ld -r` first, and that can't+  be combined with foundry-cc's `-static-pie`. The final link still uses CC.+- `HOSTCC=gcc`: the little helper programs busybox runs during the build+  are for the build machine, not for Rustbelt.+- Kernel headers: busybox includes a few Linux headers (`<linux/fs.h>`...)+  that musl doesn't have. `build.sh` copies the build machine's+  (`/usr/include/linux`, `asm`, `asm-generic`: Debian/Ubuntu package+  `linux-libc-dev`) into the build directory.+- No `bzip2` program on the build machine? `build.sh` unpacks the tarball+  with Python (`untar.py`) and gives the build a tiny Python stand-in+  (`bzip2-shim.py`) for the one place it pipes through `bzip2`.++To change the configuration: edit the lists in `mkconfig.sh`, run+`ports/busybox/mkconfig.sh cache /tmp/bbcfg`, check `git diff+ports/busybox/busybox.config`, then `make busybox`.++## Speed note++Rustbelt reads the whole program file on every `execve` (no page cache+yet), so starting the 1 MB busybox costs about 0.2 s, against about 0.04 s+for a 16 KB sbase tool. Scripts that start hundreds of applets feel it.+See K15 in docs/kernel-requests.md.
@@ -0,0 +1,78 @@+#!/usr/bin/env bash+# Build busybox (one program that contains ~300 small Unix tools, called+# "applets") for Foundry OS:+#   1. unpack the cached tarball (with Python: no bzip2 program needed),+#   2. use the committed configuration ports/busybox/busybox.config (see+#      ports/busybox/README.md for what is switched off and why),+#   3. run busybox's Makefile with our compiler:+#        make CC=toolchain/foundry-cc LD=ld HOSTCC=gcc+# The result is ONE static-PIE program. It is installed as+# /usr/lib/busybox/busybox on the ext2 root, next to one symlink per applet+# (/usr/lib/busybox/awk -> busybox, ...), all OFF the default PATH, so the+# Foundry OS Rust tools stay the default. Run an applet as+#   busybox awk ...        (with /usr/lib/busybox/busybox spelled out)+# or as /usr/lib/busybox/awk ...+#+# Usage: ports/busybox/build.sh CACHE_DIR BUILD_DIR OUT_DIR+#   OUT_DIR/busybox is the program, OUT_DIR/applets.txt lists the applet+#   names, OUT_DIR/LICENSE is busybox's licence (GPL v2).+#+# Host needs (besides gcc and the musl sysroot): python3, and the Linux+# kernel's userspace headers in /usr/include/linux and /usr/include/asm+# (Debian/Ubuntu package linux-libc-dev). busybox includes a few of them+# (<linux/fs.h>, ...), and foundry-cc only searches the musl sysroot, so we+# copy them into BUILD_DIR/kernel-headers and add that with -isystem.+set -euo pipefail+HERE=$(cd "$(dirname "$0")" && pwd)+ROOT=$(cd "$HERE/../.." && pwd)+CACHE=$(realpath "$1") BUILD=$(realpath -m "$2") OUTDIR=$(realpath -m "$3")+read -r _ file < "$HERE/busybox.sha256"+rm -rf "$BUILD" && mkdir -p "$BUILD"+python3 "$HERE/untar.py" "$CACHE/$file" "$BUILD"+src=$BUILD/${file%.tar.bz2}++# Linux userspace headers. -L copies the files that symlinks point at.+kh=$BUILD/kernel-headers+asm=/usr/include/$(gcc -print-multiarch 2>/dev/null)/asm+[ -d "$asm" ] || asm=/usr/include/asm+for d in /usr/include/linux /usr/include/asm-generic "$asm"; do+    [ -d "$d" ] || { echo "[busybox] missing $d: install linux-libc-dev"; exit 1; }+done+mkdir -p "$kh"+cp -rL /usr/include/linux /usr/include/asm-generic "$kh/"+cp -rL "$asm" "$kh/asm"+[ -d /usr/include/mtd ] && cp -rL /usr/include/mtd "$kh/"++# busybox's build pipes its config through `bzip2 -1` (for `busybox+# --show-config`-style data). No bzip2 on the host? Use a tiny Python one.+if ! command -v bzip2 > /dev/null; then+    mkdir -p "$BUILD/hostbin"+    cp "$HERE/bzip2-shim.py" "$BUILD/hostbin/bzip2"+    chmod +x "$BUILD/hostbin/bzip2"+    export PATH=$BUILD/hostbin:$PATH+fi++cd "$src"+cp "$HERE/busybox.config" .config+# oldconfig fills in nothing new if busybox.config matches this version;+# if it had to ask anything, the committed file is stale.+{ yes "" || true; } | make oldconfig > "$BUILD/oldconfig.log" 2>&1+if ! diff -q <(grep '^CONFIG_\|is not set' "$HERE/busybox.config") \+             <(grep '^CONFIG_\|is not set' .config) > /dev/null; then+    echo "[busybox] busybox.config is out of date for this busybox version:"+    echo "          rerun ports/busybox/mkconfig.sh and commit the result"; exit 1+fi+# LD=ld: busybox first links each directory with `ld -r`, which can't be+# combined with foundry-cc's -static-pie. The final link still uses CC.+make -j"$(nproc)" CC="$ROOT/toolchain/foundry-cc" LD=ld HOSTCC=gcc \+     EXTRA_CFLAGS="-isystem $kh" busybox busybox.links > "$BUILD/make.log" 2>&1 ||+    { tail -30 "$BUILD/make.log"; exit 1; }+if readelf -l busybox | grep -q INTERP; then+    echo "[busybox] busybox has a PT_INTERP: not a static-PIE"; exit 1+fi+rm -rf "$OUTDIR" && mkdir -p "$OUTDIR"+cp busybox "$OUTDIR/busybox"+strip --strip-debug "$OUTDIR/busybox"+sed 's,.*/,,' busybox.links | sort > "$OUTDIR/applets.txt"   # /bin/ls -> ls+cp LICENSE "$OUTDIR/LICENSE"+echo "[busybox] built $OUTDIR/busybox: $(wc -l < "$OUTDIR/applets.txt") applets, $(stat -c %s "$OUTDIR/busybox") bytes, static-PIE"
@@ -0,0 +1,1222 @@+#+# Automatically generated make config: don't edit+# Busybox version: 1.36.1+#+CONFIG_HAVE_DOT_CONFIG=y++#+# Settings+#+CONFIG_DESKTOP=y+# CONFIG_EXTRA_COMPAT is not set+# CONFIG_FEDORA_COMPAT is not set+CONFIG_INCLUDE_SUSv2=y+CONFIG_LONG_OPTS=y+CONFIG_SHOW_USAGE=y+CONFIG_FEATURE_VERBOSE_USAGE=y+CONFIG_FEATURE_COMPRESS_USAGE=y+CONFIG_LFS=y+# CONFIG_PAM is not set+CONFIG_FEATURE_DEVPTS=y+CONFIG_FEATURE_UTMP=y+CONFIG_FEATURE_WTMP=y+CONFIG_FEATURE_PIDFILE=y+CONFIG_PID_FILE_PATH="/var/run"+CONFIG_BUSYBOX=y+CONFIG_FEATURE_SHOW_SCRIPT=y+CONFIG_FEATURE_INSTALLER=y+# CONFIG_INSTALL_NO_USR is not set+CONFIG_FEATURE_SUID=y+CONFIG_FEATURE_SUID_CONFIG=y+CONFIG_FEATURE_SUID_CONFIG_QUIET=y+CONFIG_FEATURE_PREFER_APPLETS=y+CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"+# CONFIG_SELINUX is not set+# CONFIG_FEATURE_CLEAN_UP is not set+CONFIG_FEATURE_SYSLOG_INFO=y+CONFIG_FEATURE_SYSLOG=y++#+# Build Options+#+# CONFIG_STATIC is not set+# CONFIG_PIE is not set+# CONFIG_NOMMU is not set+# CONFIG_BUILD_LIBBUSYBOX is not set+# CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set+# CONFIG_FEATURE_INDIVIDUAL is not set+# CONFIG_FEATURE_SHARED_BUSYBOX is not set+CONFIG_CROSS_COMPILER_PREFIX=""+CONFIG_SYSROOT=""+CONFIG_EXTRA_CFLAGS=""+CONFIG_EXTRA_LDFLAGS=""+CONFIG_EXTRA_LDLIBS=""+# CONFIG_USE_PORTABLE_CODE is not set+CONFIG_STACK_OPTIMIZATION_386=y+CONFIG_STATIC_LIBGCC=y++#+# Installation Options ("make install" behavior)+#+CONFIG_INSTALL_APPLET_SYMLINKS=y+# CONFIG_INSTALL_APPLET_HARDLINKS is not set+# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set+# CONFIG_INSTALL_APPLET_DONT is not set+# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set+# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set+# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set+CONFIG_PREFIX="./_install"++#+# Debugging Options+#+# CONFIG_DEBUG is not set+# CONFIG_DEBUG_PESSIMIZE is not set+# CONFIG_DEBUG_SANITIZE is not set+# CONFIG_UNIT_TEST is not set+# CONFIG_WERROR is not set+# CONFIG_WARN_SIMPLE_MSG is not set+CONFIG_NO_DEBUG_LIB=y+# CONFIG_DMALLOC is not set+# CONFIG_EFENCE is not set++#+# Library Tuning+#+# CONFIG_FEATURE_USE_BSS_TAIL is not set+CONFIG_FLOAT_DURATION=y+CONFIG_FEATURE_RTMINMAX=y+CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS=y+CONFIG_FEATURE_BUFFERS_USE_MALLOC=y+# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set+# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set+CONFIG_PASSWORD_MINLEN=6+CONFIG_MD5_SMALL=1+CONFIG_SHA1_SMALL=3+CONFIG_SHA1_HWACCEL=y+CONFIG_SHA256_HWACCEL=y+CONFIG_SHA3_SMALL=1+CONFIG_FEATURE_NON_POSIX_CP=y+# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set+CONFIG_FEATURE_USE_SENDFILE=y+CONFIG_FEATURE_COPYBUF_KB=4+CONFIG_MONOTONIC_SYSCALL=y+CONFIG_IOCTL_HEX2STR_ERROR=y+CONFIG_FEATURE_EDITING=y+CONFIG_FEATURE_EDITING_MAX_LEN=1024+# CONFIG_FEATURE_EDITING_VI is not set+CONFIG_FEATURE_EDITING_HISTORY=255+CONFIG_FEATURE_EDITING_SAVEHISTORY=y+# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set+CONFIG_FEATURE_REVERSE_SEARCH=y+CONFIG_FEATURE_TAB_COMPLETION=y+CONFIG_FEATURE_USERNAME_COMPLETION=y+CONFIG_FEATURE_EDITING_FANCY_PROMPT=y+CONFIG_FEATURE_EDITING_WINCH=y+# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set+# CONFIG_LOCALE_SUPPORT is not set+CONFIG_UNICODE_SUPPORT=y+# CONFIG_UNICODE_USING_LOCALE is not set+# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set+CONFIG_SUBST_WCHAR=63+CONFIG_LAST_SUPPORTED_WCHAR=767+# CONFIG_UNICODE_COMBINING_WCHARS is not set+# CONFIG_UNICODE_WIDE_WCHARS is not set+# CONFIG_UNICODE_BIDI_SUPPORT is not set+# CONFIG_UNICODE_NEUTRAL_TABLE is not set+# CONFIG_UNICODE_PRESERVE_BROKEN is not set+# CONFIG_LOOP_CONFIGURE is not set+# CONFIG_NO_LOOP_CONFIGURE is not set+CONFIG_TRY_LOOP_CONFIGURE=y++#+# Applets+#++#+# Archival Utilities+#+CONFIG_FEATURE_SEAMLESS_XZ=y+CONFIG_FEATURE_SEAMLESS_LZMA=y+CONFIG_FEATURE_SEAMLESS_BZ2=y+CONFIG_FEATURE_SEAMLESS_GZ=y+# CONFIG_FEATURE_SEAMLESS_Z is not set+# CONFIG_AR is not set+# CONFIG_FEATURE_AR_LONG_FILENAMES is not set+# CONFIG_FEATURE_AR_CREATE is not set+# CONFIG_UNCOMPRESS is not set+CONFIG_GUNZIP=y+CONFIG_ZCAT=y+CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y+CONFIG_BUNZIP2=y+CONFIG_BZCAT=y+CONFIG_UNLZMA=y+CONFIG_LZCAT=y+CONFIG_LZMA=y+CONFIG_UNXZ=y+CONFIG_XZCAT=y+CONFIG_XZ=y+CONFIG_BZIP2=y+CONFIG_BZIP2_SMALL=8+CONFIG_FEATURE_BZIP2_DECOMPRESS=y+CONFIG_CPIO=y+CONFIG_FEATURE_CPIO_O=y+CONFIG_FEATURE_CPIO_P=y+CONFIG_FEATURE_CPIO_IGNORE_DEVNO=y+CONFIG_FEATURE_CPIO_RENUMBER_INODES=y+CONFIG_DPKG=y+CONFIG_DPKG_DEB=y+CONFIG_GZIP=y+CONFIG_FEATURE_GZIP_LONG_OPTIONS=y+CONFIG_GZIP_FAST=0+# CONFIG_FEATURE_GZIP_LEVELS is not set+CONFIG_FEATURE_GZIP_DECOMPRESS=y+CONFIG_LZOP=y+# CONFIG_UNLZOP is not set+# CONFIG_LZOPCAT is not set+# CONFIG_LZOP_COMPR_HIGH is not set+CONFIG_RPM=y+CONFIG_RPM2CPIO=y+CONFIG_TAR=y+CONFIG_FEATURE_TAR_LONG_OPTIONS=y+CONFIG_FEATURE_TAR_CREATE=y+CONFIG_FEATURE_TAR_AUTODETECT=y+CONFIG_FEATURE_TAR_FROM=y+CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y+CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y+CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y+CONFIG_FEATURE_TAR_TO_COMMAND=y+CONFIG_FEATURE_TAR_UNAME_GNAME=y+CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y+# CONFIG_FEATURE_TAR_SELINUX is not set+CONFIG_UNZIP=y+CONFIG_FEATURE_UNZIP_CDF=y+CONFIG_FEATURE_UNZIP_BZIP2=y+CONFIG_FEATURE_UNZIP_LZMA=y+CONFIG_FEATURE_UNZIP_XZ=y+# CONFIG_FEATURE_LZMA_FAST is not set++#+# Coreutils+#+CONFIG_FEATURE_VERBOSE=y++#+# Common options for date and touch+#+CONFIG_FEATURE_TIMEZONE=y++#+# Common options for cp and mv+#+CONFIG_FEATURE_PRESERVE_HARDLINKS=y++#+# Common options for df, du, ls+#+CONFIG_FEATURE_HUMAN_READABLE=y+CONFIG_BASENAME=y+CONFIG_CAT=y+CONFIG_FEATURE_CATN=y+CONFIG_FEATURE_CATV=y+CONFIG_CHGRP=y+CONFIG_CHMOD=y+CONFIG_CHOWN=y+CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y+CONFIG_CHROOT=y+CONFIG_CKSUM=y+CONFIG_CRC32=y+CONFIG_COMM=y+CONFIG_CP=y+CONFIG_FEATURE_CP_LONG_OPTIONS=y+CONFIG_FEATURE_CP_REFLINK=y+CONFIG_CUT=y+CONFIG_FEATURE_CUT_REGEX=y+CONFIG_DATE=y+CONFIG_FEATURE_DATE_ISOFMT=y+# CONFIG_FEATURE_DATE_NANO is not set+CONFIG_FEATURE_DATE_COMPAT=y+CONFIG_DD=y+CONFIG_FEATURE_DD_SIGNAL_HANDLING=y+CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y+CONFIG_FEATURE_DD_IBS_OBS=y+CONFIG_FEATURE_DD_STATUS=y+CONFIG_DF=y+CONFIG_FEATURE_DF_FANCY=y+CONFIG_FEATURE_SKIP_ROOTFS=y+CONFIG_DIRNAME=y+CONFIG_DOS2UNIX=y+CONFIG_UNIX2DOS=y+CONFIG_DU=y+CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y+CONFIG_ECHO=y+CONFIG_FEATURE_FANCY_ECHO=y+CONFIG_ENV=y+CONFIG_EXPAND=y+CONFIG_UNEXPAND=y+CONFIG_EXPR=y+CONFIG_EXPR_MATH_SUPPORT_64=y+CONFIG_FACTOR=y+CONFIG_FALSE=y+CONFIG_FOLD=y+CONFIG_HEAD=y+CONFIG_FEATURE_FANCY_HEAD=y+CONFIG_HOSTID=y+CONFIG_ID=y+CONFIG_GROUPS=y+CONFIG_INSTALL=y+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y+CONFIG_LINK=y+CONFIG_LN=y+CONFIG_LOGNAME=y+CONFIG_LS=y+CONFIG_FEATURE_LS_FILETYPES=y+CONFIG_FEATURE_LS_FOLLOWLINKS=y+CONFIG_FEATURE_LS_RECURSIVE=y+CONFIG_FEATURE_LS_WIDTH=y+CONFIG_FEATURE_LS_SORTFILES=y+CONFIG_FEATURE_LS_TIMESTAMPS=y+CONFIG_FEATURE_LS_USERNAME=y+CONFIG_FEATURE_LS_COLOR=y+CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y+CONFIG_MD5SUM=y+CONFIG_SHA1SUM=y+CONFIG_SHA256SUM=y+CONFIG_SHA512SUM=y+CONFIG_SHA3SUM=y++#+# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum+#+CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y+CONFIG_MKDIR=y+CONFIG_MKFIFO=y+CONFIG_MKNOD=y+CONFIG_MKTEMP=y+CONFIG_MV=y+CONFIG_NICE=y+CONFIG_NL=y+CONFIG_NOHUP=y+CONFIG_NPROC=y+CONFIG_OD=y+CONFIG_PASTE=y+CONFIG_PRINTENV=y+CONFIG_PRINTF=y+CONFIG_PWD=y+CONFIG_READLINK=y+CONFIG_FEATURE_READLINK_FOLLOW=y+CONFIG_REALPATH=y+CONFIG_RM=y+CONFIG_RMDIR=y+CONFIG_SEQ=y+CONFIG_SHRED=y+CONFIG_SHUF=y+CONFIG_SLEEP=y+CONFIG_FEATURE_FANCY_SLEEP=y+CONFIG_SORT=y+CONFIG_FEATURE_SORT_BIG=y+# CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY is not set+CONFIG_SPLIT=y+CONFIG_FEATURE_SPLIT_FANCY=y+CONFIG_STAT=y+CONFIG_FEATURE_STAT_FORMAT=y+CONFIG_FEATURE_STAT_FILESYSTEM=y+CONFIG_STTY=y+CONFIG_SUM=y+CONFIG_SYNC=y+CONFIG_FEATURE_SYNC_FANCY=y+CONFIG_FSYNC=y+CONFIG_TAC=y+CONFIG_TAIL=y+CONFIG_FEATURE_FANCY_TAIL=y+CONFIG_TEE=y+CONFIG_FEATURE_TEE_USE_BLOCK_IO=y+CONFIG_TEST=y+CONFIG_TEST1=y+CONFIG_TEST2=y+CONFIG_FEATURE_TEST_64=y+CONFIG_TIMEOUT=y+CONFIG_TOUCH=y+CONFIG_FEATURE_TOUCH_SUSV3=y+CONFIG_TR=y+CONFIG_FEATURE_TR_CLASSES=y+CONFIG_FEATURE_TR_EQUIV=y+CONFIG_TRUE=y+CONFIG_TRUNCATE=y+CONFIG_TSORT=y+CONFIG_TTY=y+CONFIG_UNAME=y+CONFIG_UNAME_OSNAME="GNU/Linux"+CONFIG_BB_ARCH=y+CONFIG_UNIQ=y+CONFIG_UNLINK=y+CONFIG_USLEEP=y+CONFIG_UUDECODE=y+CONFIG_BASE32=y+CONFIG_BASE64=y+CONFIG_UUENCODE=y+CONFIG_WC=y+CONFIG_FEATURE_WC_LARGE=y+CONFIG_WHO=y+CONFIG_W=y+CONFIG_USERS=y+CONFIG_WHOAMI=y+CONFIG_YES=y++#+# Console Utilities+#+CONFIG_CHVT=y+CONFIG_CLEAR=y+CONFIG_DEALLOCVT=y+# CONFIG_DUMPKMAP is not set+CONFIG_FGCONSOLE=y+# CONFIG_KBD_MODE is not set+# CONFIG_LOADFONT is not set+# CONFIG_SETFONT is not set+# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set+CONFIG_DEFAULT_SETFONT_DIR=""+# CONFIG_FEATURE_LOADFONT_PSF2 is not set+# CONFIG_FEATURE_LOADFONT_RAW is not set+# CONFIG_LOADKMAP is not set+CONFIG_OPENVT=y+CONFIG_RESET=y+CONFIG_RESIZE=y+CONFIG_FEATURE_RESIZE_PRINT=y+CONFIG_SETCONSOLE=y+CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y+# CONFIG_SETKEYCODES is not set+CONFIG_SETLOGCONS=y+CONFIG_SHOWKEY=y++#+# Debian Utilities+#+CONFIG_PIPE_PROGRESS=y+CONFIG_RUN_PARTS=y+CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y+CONFIG_FEATURE_RUN_PARTS_FANCY=y+CONFIG_START_STOP_DAEMON=y+CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y+CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y+CONFIG_WHICH=y++#+# klibc-utils+#+# CONFIG_MINIPS is not set+# CONFIG_NUKE is not set+CONFIG_RESUME=y+CONFIG_RUN_INIT=y++#+# Editors+#+CONFIG_AWK=y+CONFIG_FEATURE_AWK_LIBM=y+CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y+CONFIG_CMP=y+CONFIG_DIFF=y+CONFIG_FEATURE_DIFF_LONG_OPTIONS=y+CONFIG_FEATURE_DIFF_DIR=y+CONFIG_ED=y+CONFIG_PATCH=y+CONFIG_SED=y+CONFIG_VI=y+CONFIG_FEATURE_VI_MAX_LEN=4096+# CONFIG_FEATURE_VI_8BIT is not set+CONFIG_FEATURE_VI_COLON=y+CONFIG_FEATURE_VI_COLON_EXPAND=y+CONFIG_FEATURE_VI_YANKMARK=y+CONFIG_FEATURE_VI_SEARCH=y+# CONFIG_FEATURE_VI_REGEX_SEARCH is not set+CONFIG_FEATURE_VI_USE_SIGNALS=y+CONFIG_FEATURE_VI_DOT_CMD=y+CONFIG_FEATURE_VI_READONLY=y+CONFIG_FEATURE_VI_SETOPTS=y+CONFIG_FEATURE_VI_SET=y+CONFIG_FEATURE_VI_WIN_RESIZE=y+CONFIG_FEATURE_VI_ASK_TERMINAL=y+CONFIG_FEATURE_VI_UNDO=y+CONFIG_FEATURE_VI_UNDO_QUEUE=y+CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256+CONFIG_FEATURE_VI_VERBOSE_STATUS=y+CONFIG_FEATURE_ALLOW_EXEC=y++#+# Finding Utilities+#+CONFIG_FIND=y+CONFIG_FEATURE_FIND_PRINT0=y+CONFIG_FEATURE_FIND_MTIME=y+CONFIG_FEATURE_FIND_ATIME=y+CONFIG_FEATURE_FIND_CTIME=y+CONFIG_FEATURE_FIND_MMIN=y+CONFIG_FEATURE_FIND_AMIN=y+CONFIG_FEATURE_FIND_CMIN=y+CONFIG_FEATURE_FIND_PERM=y+CONFIG_FEATURE_FIND_TYPE=y+CONFIG_FEATURE_FIND_EXECUTABLE=y+CONFIG_FEATURE_FIND_XDEV=y+CONFIG_FEATURE_FIND_MAXDEPTH=y+CONFIG_FEATURE_FIND_NEWER=y+CONFIG_FEATURE_FIND_INUM=y+CONFIG_FEATURE_FIND_SAMEFILE=y+CONFIG_FEATURE_FIND_EXEC=y+CONFIG_FEATURE_FIND_EXEC_PLUS=y+CONFIG_FEATURE_FIND_USER=y+CONFIG_FEATURE_FIND_GROUP=y+CONFIG_FEATURE_FIND_NOT=y+CONFIG_FEATURE_FIND_DEPTH=y+CONFIG_FEATURE_FIND_PAREN=y+CONFIG_FEATURE_FIND_SIZE=y+CONFIG_FEATURE_FIND_PRUNE=y+CONFIG_FEATURE_FIND_QUIT=y+CONFIG_FEATURE_FIND_DELETE=y+CONFIG_FEATURE_FIND_EMPTY=y+CONFIG_FEATURE_FIND_PATH=y+CONFIG_FEATURE_FIND_REGEX=y+# CONFIG_FEATURE_FIND_CONTEXT is not set+CONFIG_FEATURE_FIND_LINKS=y+CONFIG_GREP=y+CONFIG_EGREP=y+CONFIG_FGREP=y+CONFIG_FEATURE_GREP_CONTEXT=y+CONFIG_XARGS=y+CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y+CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y+CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y+CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y+CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y+CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL=y+CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE=y++#+# Init Utilities+#+CONFIG_BOOTCHARTD=y+CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER=y+CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE=y+CONFIG_HALT=y+CONFIG_POWEROFF=y+CONFIG_REBOOT=y+CONFIG_FEATURE_WAIT_FOR_INIT=y+# CONFIG_FEATURE_CALL_TELINIT is not set+CONFIG_TELINIT_PATH=""+CONFIG_INIT=y+CONFIG_LINUXRC=y+CONFIG_FEATURE_USE_INITTAB=y+# CONFIG_FEATURE_KILL_REMOVED is not set+CONFIG_FEATURE_KILL_DELAY=0+CONFIG_FEATURE_INIT_SCTTY=y+CONFIG_FEATURE_INIT_SYSLOG=y+CONFIG_FEATURE_INIT_QUIET=y+# CONFIG_FEATURE_INIT_COREDUMPS is not set+CONFIG_INIT_TERMINAL_TYPE="linux"+CONFIG_FEATURE_INIT_MODIFY_CMDLINE=y++#+# Login/Password Management Utilities+#+CONFIG_FEATURE_SHADOWPASSWDS=y+CONFIG_USE_BB_PWD_GRP=y+CONFIG_USE_BB_SHADOW=y+CONFIG_USE_BB_CRYPT=y+CONFIG_USE_BB_CRYPT_SHA=y+CONFIG_ADD_SHELL=y+CONFIG_REMOVE_SHELL=y+CONFIG_ADDGROUP=y+CONFIG_FEATURE_ADDUSER_TO_GROUP=y+CONFIG_ADDUSER=y+# CONFIG_FEATURE_CHECK_NAMES is not set+CONFIG_LAST_ID=60000+CONFIG_FIRST_SYSTEM_ID=100+CONFIG_LAST_SYSTEM_ID=999+CONFIG_CHPASSWD=y+CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="des"+CONFIG_CRYPTPW=y+CONFIG_MKPASSWD=y+CONFIG_DELUSER=y+CONFIG_DELGROUP=y+CONFIG_FEATURE_DEL_USER_FROM_GROUP=y+CONFIG_GETTY=y+CONFIG_LOGIN=y+# CONFIG_LOGIN_SESSION_AS_CHILD is not set+CONFIG_LOGIN_SCRIPTS=y+CONFIG_FEATURE_NOLOGIN=y+CONFIG_FEATURE_SECURETTY=y+CONFIG_PASSWD=y+CONFIG_FEATURE_PASSWD_WEAK_CHECK=y+CONFIG_SU=y+CONFIG_FEATURE_SU_SYSLOG=y+CONFIG_FEATURE_SU_CHECKS_SHELLS=y+# CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set+CONFIG_SULOGIN=y+CONFIG_VLOCK=y++#+# Linux Ext2 FS Progs+#+CONFIG_CHATTR=y+CONFIG_FSCK=y+CONFIG_LSATTR=y+# CONFIG_TUNE2FS is not set++#+# Linux Module Utilities+#+# CONFIG_MODPROBE_SMALL is not set+# CONFIG_DEPMOD is not set+# CONFIG_INSMOD is not set+# CONFIG_LSMOD is not set+# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set+# CONFIG_MODINFO is not set+# CONFIG_MODPROBE is not set+# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set+# CONFIG_RMMOD is not set++#+# Options common to multiple modutils+#+# CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS is not set+# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set+# CONFIG_FEATURE_2_4_MODULES is not set+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set+# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set+# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set+# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set+# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set+# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set+# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set+# CONFIG_FEATURE_MODUTILS_ALIAS is not set+# CONFIG_FEATURE_MODUTILS_SYMBOLS is not set+CONFIG_DEFAULT_MODULES_DIR=""+CONFIG_DEFAULT_DEPMOD_FILE=""++#+# Linux System Utilities+#+# CONFIG_ACPID is not set+# CONFIG_FEATURE_ACPID_COMPAT is not set+# CONFIG_BLKDISCARD is not set+CONFIG_BLKID=y+CONFIG_FEATURE_BLKID_TYPE=y+CONFIG_BLOCKDEV=y+CONFIG_CAL=y+CONFIG_CHRT=y+CONFIG_DMESG=y+CONFIG_FEATURE_DMESG_PRETTY=y+# CONFIG_EJECT is not set+# CONFIG_FEATURE_EJECT_SCSI is not set+CONFIG_FALLOCATE=y+CONFIG_FATATTR=y+# CONFIG_FBSET is not set+# CONFIG_FEATURE_FBSET_FANCY is not set+# CONFIG_FEATURE_FBSET_READMODE is not set+# CONFIG_FDFORMAT is not set+CONFIG_FDISK=y+# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set+CONFIG_FEATURE_FDISK_WRITABLE=y+# CONFIG_FEATURE_AIX_LABEL is not set+# CONFIG_FEATURE_SGI_LABEL is not set+# CONFIG_FEATURE_SUN_LABEL is not set+# CONFIG_FEATURE_OSF_LABEL is not set+# CONFIG_FEATURE_GPT_LABEL is not set+CONFIG_FEATURE_FDISK_ADVANCED=y+CONFIG_FINDFS=y+CONFIG_FLOCK=y+# CONFIG_FDFLUSH is not set+# CONFIG_FREERAMDISK is not set+CONFIG_FSCK_MINIX=y+# CONFIG_FSFREEZE is not set+CONFIG_FSTRIM=y+CONFIG_GETOPT=y+CONFIG_FEATURE_GETOPT_LONG=y+CONFIG_HEXDUMP=y+CONFIG_HD=y+CONFIG_XXD=y+# CONFIG_HWCLOCK is not set+# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set+CONFIG_IONICE=y+CONFIG_IPCRM=y+CONFIG_IPCS=y+CONFIG_LAST=y+CONFIG_FEATURE_LAST_FANCY=y+# CONFIG_LOSETUP is not set+# CONFIG_LSPCI is not set+# CONFIG_LSUSB is not set+# CONFIG_MDEV is not set+# CONFIG_FEATURE_MDEV_CONF is not set+# CONFIG_FEATURE_MDEV_RENAME is not set+# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set+# CONFIG_FEATURE_MDEV_EXEC is not set+# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set+# CONFIG_FEATURE_MDEV_DAEMON is not set+CONFIG_MESG=y+CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y+CONFIG_MKE2FS=y+CONFIG_MKFS_EXT2=y+CONFIG_MKFS_MINIX=y+CONFIG_FEATURE_MINIX2=y+# CONFIG_MKFS_REISER is not set+CONFIG_MKDOSFS=y+CONFIG_MKFS_VFAT=y+# CONFIG_MKSWAP is not set+# CONFIG_FEATURE_MKSWAP_UUID is not set+CONFIG_MORE=y+CONFIG_MOUNT=y+CONFIG_FEATURE_MOUNT_FAKE=y+CONFIG_FEATURE_MOUNT_VERBOSE=y+# CONFIG_FEATURE_MOUNT_HELPERS is not set+CONFIG_FEATURE_MOUNT_LABEL=y+# CONFIG_FEATURE_MOUNT_NFS is not set+CONFIG_FEATURE_MOUNT_CIFS=y+CONFIG_FEATURE_MOUNT_FLAGS=y+CONFIG_FEATURE_MOUNT_FSTAB=y+CONFIG_FEATURE_MOUNT_OTHERTAB=y+CONFIG_MOUNTPOINT=y+CONFIG_NOLOGIN=y+# CONFIG_NOLOGIN_DEPENDENCIES is not set+# CONFIG_NSENTER is not set+# CONFIG_PIVOT_ROOT is not set+CONFIG_RDATE=y+# CONFIG_RDEV is not set+CONFIG_READPROFILE=y+CONFIG_RENICE=y+CONFIG_REV=y+CONFIG_RTCWAKE=y+CONFIG_SCRIPT=y+CONFIG_SCRIPTREPLAY=y+# CONFIG_SETARCH is not set+# CONFIG_LINUX32 is not set+# CONFIG_LINUX64 is not set+CONFIG_SETPRIV=y+CONFIG_FEATURE_SETPRIV_DUMP=y+CONFIG_FEATURE_SETPRIV_CAPABILITIES=y+CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES=y+CONFIG_SETSID=y+# CONFIG_SWAPON is not set+# CONFIG_FEATURE_SWAPON_DISCARD is not set+# CONFIG_FEATURE_SWAPON_PRI is not set+# CONFIG_SWAPOFF is not set+# CONFIG_FEATURE_SWAPONOFF_LABEL is not set+# CONFIG_SWITCH_ROOT is not set+CONFIG_TASKSET=y+CONFIG_FEATURE_TASKSET_FANCY=y+CONFIG_FEATURE_TASKSET_CPULIST=y+# CONFIG_UEVENT is not set+CONFIG_UMOUNT=y+CONFIG_FEATURE_UMOUNT_ALL=y+# CONFIG_UNSHARE is not set+CONFIG_WALL=y++#+# Common options for mount/umount+#+CONFIG_FEATURE_MOUNT_LOOP=y+CONFIG_FEATURE_MOUNT_LOOP_CREATE=y+# CONFIG_FEATURE_MTAB_SUPPORT is not set+CONFIG_VOLUMEID=y++#+# Filesystem/Volume identification+#+CONFIG_FEATURE_VOLUMEID_BCACHE=y+CONFIG_FEATURE_VOLUMEID_BTRFS=y+CONFIG_FEATURE_VOLUMEID_CRAMFS=y+CONFIG_FEATURE_VOLUMEID_EROFS=y+CONFIG_FEATURE_VOLUMEID_EXFAT=y+CONFIG_FEATURE_VOLUMEID_EXT=y+CONFIG_FEATURE_VOLUMEID_F2FS=y+CONFIG_FEATURE_VOLUMEID_FAT=y+CONFIG_FEATURE_VOLUMEID_HFS=y+CONFIG_FEATURE_VOLUMEID_ISO9660=y+CONFIG_FEATURE_VOLUMEID_JFS=y+CONFIG_FEATURE_VOLUMEID_LFS=y+CONFIG_FEATURE_VOLUMEID_LINUXRAID=y+CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y+CONFIG_FEATURE_VOLUMEID_LUKS=y+CONFIG_FEATURE_VOLUMEID_MINIX=y+CONFIG_FEATURE_VOLUMEID_NILFS=y+CONFIG_FEATURE_VOLUMEID_NTFS=y+CONFIG_FEATURE_VOLUMEID_OCFS2=y+CONFIG_FEATURE_VOLUMEID_REISERFS=y+CONFIG_FEATURE_VOLUMEID_ROMFS=y+CONFIG_FEATURE_VOLUMEID_SQUASHFS=y+CONFIG_FEATURE_VOLUMEID_SYSV=y+CONFIG_FEATURE_VOLUMEID_UBIFS=y+CONFIG_FEATURE_VOLUMEID_UDF=y+CONFIG_FEATURE_VOLUMEID_XFS=y++#+# Miscellaneous Utilities+#+# CONFIG_ADJTIMEX is not set+CONFIG_ASCII=y+# CONFIG_BBCONFIG is not set+# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set+CONFIG_BC=y+CONFIG_DC=y+CONFIG_FEATURE_DC_BIG=y+# CONFIG_FEATURE_DC_LIBM is not set+CONFIG_FEATURE_BC_INTERACTIVE=y+CONFIG_FEATURE_BC_LONG_OPTIONS=y+# CONFIG_BEEP is not set+CONFIG_FEATURE_BEEP_FREQ=0+CONFIG_FEATURE_BEEP_LENGTH_MS=0+CONFIG_CHAT=y+CONFIG_FEATURE_CHAT_NOFAIL=y+# CONFIG_FEATURE_CHAT_TTY_HIFI is not set+CONFIG_FEATURE_CHAT_IMPLICIT_CR=y+CONFIG_FEATURE_CHAT_SWALLOW_OPTS=y+CONFIG_FEATURE_CHAT_SEND_ESCAPES=y+CONFIG_FEATURE_CHAT_VAR_ABORT_LEN=y+CONFIG_FEATURE_CHAT_CLR_ABORT=y+# CONFIG_CONSPY is not set+CONFIG_CROND=y+CONFIG_FEATURE_CROND_D=y+CONFIG_FEATURE_CROND_CALL_SENDMAIL=y+CONFIG_FEATURE_CROND_SPECIAL_TIMES=y+CONFIG_FEATURE_CROND_DIR="/var/spool/cron"+CONFIG_CRONTAB=y+# CONFIG_DEVFSD is not set+# CONFIG_DEVFSD_MODLOAD is not set+# CONFIG_DEVFSD_FG_NP is not set+# CONFIG_DEVFSD_VERBOSE is not set+# CONFIG_FEATURE_DEVFS is not set+# CONFIG_DEVMEM is not set+# CONFIG_FBSPLASH is not set+# CONFIG_FLASH_ERASEALL is not set+# CONFIG_FLASH_LOCK is not set+# CONFIG_FLASH_UNLOCK is not set+# CONFIG_FLASHCP is not set+CONFIG_HDPARM=y+CONFIG_FEATURE_HDPARM_GET_IDENTITY=y+CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y+CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y+CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y+CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y+CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y+CONFIG_HEXEDIT=y+# CONFIG_I2CGET is not set+# CONFIG_I2CSET is not set+# CONFIG_I2CDUMP is not set+# CONFIG_I2CDETECT is not set+# CONFIG_I2CTRANSFER is not set+# CONFIG_INOTIFYD is not set+CONFIG_LESS=y+CONFIG_FEATURE_LESS_MAXLINES=9999999+CONFIG_FEATURE_LESS_BRACKETS=y+CONFIG_FEATURE_LESS_FLAGS=y+CONFIG_FEATURE_LESS_TRUNCATE=y+CONFIG_FEATURE_LESS_MARKS=y+CONFIG_FEATURE_LESS_REGEXP=y+CONFIG_FEATURE_LESS_WINCH=y+CONFIG_FEATURE_LESS_ASK_TERMINAL=y+CONFIG_FEATURE_LESS_DASHCMD=y+CONFIG_FEATURE_LESS_LINENUMS=y+CONFIG_FEATURE_LESS_RAW=y+CONFIG_FEATURE_LESS_ENV=y+CONFIG_LSSCSI=y+CONFIG_MAKEDEVS=y+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set+CONFIG_FEATURE_MAKEDEVS_TABLE=y+CONFIG_MAN=y+CONFIG_MICROCOM=y+CONFIG_MIM=y+CONFIG_MT=y+# CONFIG_NANDWRITE is not set+# CONFIG_NANDDUMP is not set+CONFIG_PARTPROBE=y+# CONFIG_RAIDAUTORUN is not set+CONFIG_READAHEAD=y+# CONFIG_RFKILL is not set+CONFIG_RUNLEVEL=y+CONFIG_RX=y+CONFIG_SEEDRNG=y+CONFIG_SETFATTR=y+# CONFIG_SETSERIAL is not set+CONFIG_STRINGS=y+CONFIG_TIME=y+CONFIG_TREE=y+CONFIG_TS=y+CONFIG_TTYSIZE=y+# CONFIG_UBIATTACH is not set+# CONFIG_UBIDETACH is not set+# CONFIG_UBIMKVOL is not set+# CONFIG_UBIRMVOL is not set+# CONFIG_UBIRSVOL is not set+# CONFIG_UBIUPDATEVOL is not set+# CONFIG_UBIRENAME is not set+CONFIG_VOLNAME=y+# CONFIG_WATCHDOG is not set+# CONFIG_FEATURE_WATCHDOG_OPEN_TWICE is not set++#+# Networking Utilities+#+CONFIG_FEATURE_IPV6=y+# CONFIG_FEATURE_UNIX_LOCAL is not set+CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y+# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set+# CONFIG_FEATURE_ETC_NETWORKS is not set+# CONFIG_FEATURE_ETC_SERVICES is not set+CONFIG_FEATURE_HWIB=y+# CONFIG_FEATURE_TLS_SHA1 is not set+CONFIG_ARP=y+# CONFIG_ARPING is not set+# CONFIG_BRCTL is not set+# CONFIG_FEATURE_BRCTL_FANCY is not set+# CONFIG_FEATURE_BRCTL_SHOW is not set+CONFIG_DNSD=y+# CONFIG_ETHER_WAKE is not set+CONFIG_FTPD=y+CONFIG_FEATURE_FTPD_WRITE=y+CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y+CONFIG_FEATURE_FTPD_AUTHENTICATION=y+CONFIG_FTPGET=y+CONFIG_FTPPUT=y+CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y+CONFIG_HOSTNAME=y+CONFIG_DNSDOMAINNAME=y+CONFIG_HTTPD=y+CONFIG_FEATURE_HTTPD_PORT_DEFAULT=80+CONFIG_FEATURE_HTTPD_RANGES=y+CONFIG_FEATURE_HTTPD_SETUID=y+CONFIG_FEATURE_HTTPD_BASIC_AUTH=y+CONFIG_FEATURE_HTTPD_AUTH_MD5=y+CONFIG_FEATURE_HTTPD_CGI=y+CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR=y+CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV=y+CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y+CONFIG_FEATURE_HTTPD_ERROR_PAGES=y+CONFIG_FEATURE_HTTPD_PROXY=y+CONFIG_FEATURE_HTTPD_GZIP=y+CONFIG_FEATURE_HTTPD_ETAG=y+CONFIG_FEATURE_HTTPD_LAST_MODIFIED=y+CONFIG_FEATURE_HTTPD_DATE=y+CONFIG_FEATURE_HTTPD_ACL_IP=y+CONFIG_IFCONFIG=y+CONFIG_FEATURE_IFCONFIG_STATUS=y+CONFIG_FEATURE_IFCONFIG_SLIP=y+CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y+CONFIG_FEATURE_IFCONFIG_HW=y+CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y+# CONFIG_IFENSLAVE is not set+# CONFIG_IFPLUGD is not set+CONFIG_IFUP=y+CONFIG_IFDOWN=y+CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"+CONFIG_FEATURE_IFUPDOWN_IP=y+CONFIG_FEATURE_IFUPDOWN_IPV4=y+CONFIG_FEATURE_IFUPDOWN_IPV6=y+CONFIG_FEATURE_IFUPDOWN_MAPPING=y+# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set+CONFIG_INETD=y+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y+# CONFIG_FEATURE_INETD_RPC is not set+# CONFIG_IP is not set+# CONFIG_IPADDR is not set+# CONFIG_IPLINK is not set+# CONFIG_IPROUTE is not set+# CONFIG_IPTUNNEL is not set+# CONFIG_IPRULE is not set+# CONFIG_IPNEIGH is not set+# CONFIG_FEATURE_IP_ADDRESS is not set+# CONFIG_FEATURE_IP_LINK is not set+# CONFIG_FEATURE_IP_ROUTE is not set+CONFIG_FEATURE_IP_ROUTE_DIR=""+# CONFIG_FEATURE_IP_TUNNEL is not set+# CONFIG_FEATURE_IP_RULE is not set+# CONFIG_FEATURE_IP_NEIGH is not set+# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set+CONFIG_IPCALC=y+CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y+CONFIG_FEATURE_IPCALC_FANCY=y+CONFIG_FAKEIDENTD=y+# CONFIG_NAMEIF is not set+# CONFIG_FEATURE_NAMEIF_EXTENDED is not set+# CONFIG_NBDCLIENT is not set+CONFIG_NC=y+# CONFIG_NETCAT is not set+CONFIG_NC_SERVER=y+CONFIG_NC_EXTRA=y+CONFIG_NC_110_COMPAT=y+CONFIG_NETSTAT=y+CONFIG_FEATURE_NETSTAT_WIDE=y+CONFIG_FEATURE_NETSTAT_PRG=y+CONFIG_NSLOOKUP=y+CONFIG_FEATURE_NSLOOKUP_BIG=y+CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS=y+CONFIG_NTPD=y+CONFIG_FEATURE_NTPD_SERVER=y+CONFIG_FEATURE_NTPD_CONF=y+CONFIG_FEATURE_NTP_AUTH=y+CONFIG_PING=y+CONFIG_PING6=y+CONFIG_FEATURE_FANCY_PING=y+CONFIG_PSCAN=y+CONFIG_ROUTE=y+CONFIG_SLATTACH=y+CONFIG_SSL_CLIENT=y+# CONFIG_TC is not set+# CONFIG_FEATURE_TC_INGRESS is not set+CONFIG_TCPSVD=y+CONFIG_UDPSVD=y+CONFIG_TELNET=y+CONFIG_FEATURE_TELNET_TTYPE=y+CONFIG_FEATURE_TELNET_AUTOLOGIN=y+CONFIG_FEATURE_TELNET_WIDTH=y+CONFIG_TELNETD=y+CONFIG_FEATURE_TELNETD_STANDALONE=y+CONFIG_FEATURE_TELNETD_PORT_DEFAULT=23+CONFIG_FEATURE_TELNETD_INETD_WAIT=y+CONFIG_TFTP=y+CONFIG_FEATURE_TFTP_PROGRESS_BAR=y+CONFIG_FEATURE_TFTP_HPA_COMPAT=y+CONFIG_TFTPD=y+CONFIG_FEATURE_TFTP_GET=y+CONFIG_FEATURE_TFTP_PUT=y+CONFIG_FEATURE_TFTP_BLOCKSIZE=y+# CONFIG_TFTP_DEBUG is not set+CONFIG_TLS=y+CONFIG_TRACEROUTE=y+CONFIG_TRACEROUTE6=y+CONFIG_FEATURE_TRACEROUTE_VERBOSE=y+CONFIG_FEATURE_TRACEROUTE_USE_ICMP=y+# CONFIG_TUNCTL is not set+# CONFIG_FEATURE_TUNCTL_UG is not set+# CONFIG_VCONFIG is not set+CONFIG_WGET=y+CONFIG_FEATURE_WGET_LONG_OPTIONS=y+CONFIG_FEATURE_WGET_STATUSBAR=y+CONFIG_FEATURE_WGET_FTP=y+CONFIG_FEATURE_WGET_AUTHENTICATION=y+CONFIG_FEATURE_WGET_TIMEOUT=y+CONFIG_FEATURE_WGET_HTTPS=y+CONFIG_FEATURE_WGET_OPENSSL=y+CONFIG_WHOIS=y+# CONFIG_ZCIP is not set+# CONFIG_UDHCPD is not set+# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set+# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set+CONFIG_DHCPD_LEASES_FILE=""+# CONFIG_DUMPLEASES is not set+# CONFIG_DHCPRELAY is not set+# CONFIG_UDHCPC is not set+# CONFIG_FEATURE_UDHCPC_ARPING is not set+# CONFIG_FEATURE_UDHCPC_SANITIZEOPT is not set+CONFIG_UDHCPC_DEFAULT_SCRIPT=""+CONFIG_UDHCPC6_DEFAULT_SCRIPT=""+# CONFIG_UDHCPC6 is not set+# CONFIG_FEATURE_UDHCPC6_RFC3646 is not set+# CONFIG_FEATURE_UDHCPC6_RFC4704 is not set+# CONFIG_FEATURE_UDHCPC6_RFC4833 is not set+# CONFIG_FEATURE_UDHCPC6_RFC5970 is not set+CONFIG_UDHCPC_DEFAULT_INTERFACE=""+# CONFIG_FEATURE_UDHCP_PORT is not set+CONFIG_UDHCP_DEBUG=0+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0+# CONFIG_FEATURE_UDHCP_RFC3397 is not set+# CONFIG_FEATURE_UDHCP_8021Q is not set+CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n"++#+# Print Utilities+#+CONFIG_LPD=y+CONFIG_LPR=y+CONFIG_LPQ=y++#+# Mail Utilities+#+CONFIG_FEATURE_MIME_CHARSET="us-ascii"+CONFIG_MAKEMIME=y+CONFIG_POPMAILDIR=y+CONFIG_FEATURE_POPMAILDIR_DELIVERY=y+CONFIG_REFORMIME=y+CONFIG_FEATURE_REFORMIME_COMPAT=y+CONFIG_SENDMAIL=y++#+# Process Utilities+#+# CONFIG_FEATURE_FAST_TOP is not set+CONFIG_FEATURE_SHOW_THREADS=y+CONFIG_FREE=y+CONFIG_FUSER=y+CONFIG_IOSTAT=y+CONFIG_KILL=y+CONFIG_KILLALL=y+CONFIG_KILLALL5=y+CONFIG_LSOF=y+CONFIG_MPSTAT=y+CONFIG_NMETER=y+CONFIG_PGREP=y+CONFIG_PKILL=y+CONFIG_PIDOF=y+CONFIG_FEATURE_PIDOF_SINGLE=y+CONFIG_FEATURE_PIDOF_OMIT=y+CONFIG_PMAP=y+CONFIG_POWERTOP=y+CONFIG_FEATURE_POWERTOP_INTERACTIVE=y+CONFIG_PS=y+# CONFIG_FEATURE_PS_WIDE is not set+# CONFIG_FEATURE_PS_LONG is not set+CONFIG_FEATURE_PS_TIME=y+# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set+CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y+CONFIG_PSTREE=y+CONFIG_PWDX=y+CONFIG_SMEMCAP=y+CONFIG_BB_SYSCTL=y+CONFIG_TOP=y+CONFIG_FEATURE_TOP_INTERACTIVE=y+CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y+CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y+CONFIG_FEATURE_TOP_SMP_CPU=y+CONFIG_FEATURE_TOP_DECIMALS=y+CONFIG_FEATURE_TOP_SMP_PROCESS=y+CONFIG_FEATURE_TOPMEM=y+CONFIG_UPTIME=y+CONFIG_FEATURE_UPTIME_UTMP_SUPPORT=y+CONFIG_WATCH=y++#+# Runit Utilities+#+CONFIG_CHPST=y+CONFIG_SETUIDGID=y+CONFIG_ENVUIDGID=y+CONFIG_ENVDIR=y+CONFIG_SOFTLIMIT=y+CONFIG_RUNSV=y+CONFIG_RUNSVDIR=y+# CONFIG_FEATURE_RUNSVDIR_LOG is not set+CONFIG_SV=y+CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service"+CONFIG_SVC=y+CONFIG_SVOK=y+CONFIG_SVLOGD=y+# CONFIG_CHCON is not set+# CONFIG_GETENFORCE is not set+# CONFIG_GETSEBOOL is not set+# CONFIG_LOAD_POLICY is not set+# CONFIG_MATCHPATHCON is not set+# CONFIG_RUNCON is not set+# CONFIG_SELINUXENABLED is not set+# CONFIG_SESTATUS is not set+# CONFIG_SETENFORCE is not set+# CONFIG_SETFILES is not set+# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set+# CONFIG_RESTORECON is not set+# CONFIG_SETSEBOOL is not set++#+# Shells+#+CONFIG_SH_IS_ASH=y+# CONFIG_SH_IS_HUSH is not set+# CONFIG_SH_IS_NONE is not set+# CONFIG_BASH_IS_ASH is not set+# CONFIG_BASH_IS_HUSH is not set+CONFIG_BASH_IS_NONE=y+CONFIG_SHELL_ASH=y+CONFIG_ASH=y+CONFIG_ASH_OPTIMIZE_FOR_SIZE=y+CONFIG_ASH_INTERNAL_GLOB=y+CONFIG_ASH_BASH_COMPAT=y+# CONFIG_ASH_BASH_SOURCE_CURDIR is not set+CONFIG_ASH_BASH_NOT_FOUND_HOOK=y+CONFIG_ASH_JOB_CONTROL=y+CONFIG_ASH_ALIAS=y+CONFIG_ASH_RANDOM_SUPPORT=y+CONFIG_ASH_EXPAND_PRMT=y+CONFIG_ASH_IDLE_TIMEOUT=y+CONFIG_ASH_MAIL=y+CONFIG_ASH_ECHO=y+CONFIG_ASH_PRINTF=y+CONFIG_ASH_TEST=y+CONFIG_ASH_SLEEP=y+CONFIG_ASH_HELP=y+CONFIG_ASH_GETOPTS=y+CONFIG_ASH_CMDCMD=y+CONFIG_CTTYHACK=y+CONFIG_HUSH=y+CONFIG_SHELL_HUSH=y+CONFIG_HUSH_BASH_COMPAT=y+CONFIG_HUSH_BRACE_EXPANSION=y+# CONFIG_HUSH_BASH_SOURCE_CURDIR is not set+CONFIG_HUSH_LINENO_VAR=y+CONFIG_HUSH_INTERACTIVE=y+CONFIG_HUSH_SAVEHISTORY=y+CONFIG_HUSH_JOB=y+CONFIG_HUSH_TICK=y+CONFIG_HUSH_IF=y+CONFIG_HUSH_LOOPS=y+CONFIG_HUSH_CASE=y+CONFIG_HUSH_FUNCTIONS=y+CONFIG_HUSH_LOCAL=y+CONFIG_HUSH_RANDOM_SUPPORT=y+CONFIG_HUSH_MODE_X=y+CONFIG_HUSH_ECHO=y+CONFIG_HUSH_PRINTF=y+CONFIG_HUSH_TEST=y+CONFIG_HUSH_HELP=y+CONFIG_HUSH_EXPORT=y+CONFIG_HUSH_EXPORT_N=y+CONFIG_HUSH_READONLY=y+CONFIG_HUSH_KILL=y+CONFIG_HUSH_WAIT=y+CONFIG_HUSH_COMMAND=y+CONFIG_HUSH_TRAP=y+CONFIG_HUSH_TYPE=y+CONFIG_HUSH_TIMES=y+CONFIG_HUSH_READ=y+CONFIG_HUSH_SET=y+CONFIG_HUSH_UNSET=y+CONFIG_HUSH_ULIMIT=y+CONFIG_HUSH_UMASK=y+CONFIG_HUSH_GETOPTS=y+# CONFIG_HUSH_MEMLEAK is not set++#+# Options common to all shells+#+CONFIG_FEATURE_SH_MATH=y+CONFIG_FEATURE_SH_MATH_64=y+CONFIG_FEATURE_SH_MATH_BASE=y+CONFIG_FEATURE_SH_EXTRA_QUIET=y+# CONFIG_FEATURE_SH_STANDALONE is not set+# CONFIG_FEATURE_SH_NOFORK is not set+CONFIG_FEATURE_SH_READ_FRAC=y+CONFIG_FEATURE_SH_HISTFILESIZE=y+CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS=y++#+# System Logging Utilities+#+CONFIG_KLOGD=y++#+# klogd should not be used together with syslog to kernel printk buffer+#+CONFIG_FEATURE_KLOGD_KLOGCTL=y+CONFIG_LOGGER=y+CONFIG_LOGREAD=y+CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y+CONFIG_SYSLOGD=y+CONFIG_FEATURE_ROTATE_LOGFILE=y+CONFIG_FEATURE_REMOTE_LOG=y+CONFIG_FEATURE_SYSLOGD_DUP=y+CONFIG_FEATURE_SYSLOGD_CFG=y+# CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS is not set+CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256+CONFIG_FEATURE_IPC_SYSLOG=y+CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16+CONFIG_FEATURE_KMSG_SYSLOG=y
@@ -0,0 +1 @@+b8cc24c9574d809e7279c3be349795c5d5ceb6fdf19ca709f80cde50e47de314  busybox-1.36.1.tar.bz2
@@ -0,0 +1 @@+https://busybox.net/downloads/busybox-1.36.1.tar.bz2
@@ -0,0 +1,9 @@+#!/usr/bin/env python3+# Stand-in for the bzip2 program, used only by build.sh when the host has+# none: busybox's build runs `bzip2 -1` as a filter (stdin -> stdout).+import bz2, sys+args = sys.argv[1:]+level = next((int(a[1:]) for a in args if a[1:].isdigit()), 9)+data = sys.stdin.buffer.read()+out = bz2.decompress(data) if "-d" in args else bz2.compress(data, level)+sys.stdout.buffer.write(out)
@@ -0,0 +1,65 @@+#!/usr/bin/env bash+# Regenerate ports/busybox/busybox.config: busybox's own `make defconfig`+# (almost every applet on), minus the applets listed below that cannot work+# on Rustbelt. You only need this when moving to a new busybox version or+# changing the list; the build uses the committed busybox.config as is.+#+# Usage: ports/busybox/mkconfig.sh CACHE_DIR WORK_DIR+#   (WORK_DIR gets an unpacked busybox; the result is written back to+#    ports/busybox/busybox.config, so check `git diff` afterwards.)+set -euo pipefail+HERE=$(cd "$(dirname "$0")" && pwd)+CACHE=$(realpath "$1") WORK=$(realpath -m "$2")+read -r _ file < "$HERE/busybox.sha256"+rm -rf "$WORK" && mkdir -p "$WORK"+python3 "$HERE/untar.py" "$CACHE/$file" "$WORK"+cd "$WORK/${file%.tar.bz2}"+make defconfig > /dev/null++# Switched off, by group. Each needs something Rustbelt doesn't have and+# isn't planned to have soon, so the applet could only ever fail:+off=(+  # Loadable kernel modules (Rustbelt has none).+  INSMOD RMMOD LSMOD MODPROBE DEPMOD MODINFO MODPROBE_SMALL+  # Traffic control: needs netlink, and 1.36.1's tc doesn't even compile+  # against current Linux headers (CBQ was removed from them).+  TC+  # Linux network configuration over netlink or raw packet sockets+  # (Rustbelt configures its network itself, see `ifconfig`).+  IP IPADDR IPLINK IPROUTE IPTUNNEL IPRULE IPNEIGH BRCTL IFPLUGD NAMEIF+  TUNCTL VCONFIG IFENSLAVE ETHER_WAKE ARPING ZCIP UDHCPC UDHCPD DHCPRELAY+  UDHCPC6 DUMPLEASES NBDCLIENT+  # Flash chips, I2C buses, PCI/USB listings, real-time clock, watchdog:+  # hardware Rustbelt doesn't expose (no /dev/mtd*, /dev/i2c-*, /sys).+  NANDWRITE NANDDUMP UBIATTACH UBIDETACH UBIMKVOL UBIRMVOL UBIRSVOL+  UBIUPDATEVOL UBIRENAME I2CGET I2CSET I2CDUMP I2CDETECT I2CTRANSFER LSPCI LSUSB HWCLOCK+  WATCHDOG DEVMEM ACPID BEEP SETSERIAL+  # Linux console fonts, keymaps and framebuffer ioctls (Rustbelt's console+  # and framebuffer work differently).+  LOADFONT SETFONT KBD_MODE LOADKMAP DUMPKMAP SETKEYCODES FBSET FBSPLASH CONSPY+  # Hot-plug (uevents), swap, loop devices, RAID, floppies, ramdisks,+  # namespaces and switching the root: kernel features Rustbelt lacks.+  MDEV UEVENT MKSWAP SWAPON SWAPOFF LOSETUP RAIDAUTORUN FDFORMAT FDFLUSH+  FREERAMDISK EJECT BLKDISCARD FSFREEZE RDEV PIVOT_ROOT SWITCH_ROOT NSENTER+  UNSHARE SETARCH LINUX32 LINUX64 ADJTIMEX+)+# Switched on (defconfig has them off):+on=(+  # busybox lives off PATH (/usr/lib/busybox), so when one applet runs+  # another (tar -z runs gzip, xargs and find -exec run their command,+  # adduser runs addgroup) it must not look for it on PATH: with this it+  # runs its own applet through /proc/self/exe instead.+  FEATURE_PREFER_APPLETS+)+for o in "${on[@]}"; do+    grep -q "^# CONFIG_$o is not set" .config || { echo "[mkconfig] CONFIG_$o is not off in defconfig"; exit 1; }+    sed -i "s/^# CONFIG_$o is not set/CONFIG_$o=y/" .config+done+for o in "${off[@]}"; do+    grep -q "^CONFIG_$o=y" .config || { echo "[mkconfig] CONFIG_$o is not in defconfig"; exit 1; }+    sed -i "s/^CONFIG_$o=y/# CONFIG_$o is not set/" .config+done+{ yes "" || true; } | make oldconfig > /dev/null   # (yes ends by SIGPIPE)+# Drop the generated date line so the file only changes when options do.+grep -v '^# [A-Z][a-z][a-z] [A-Z][a-z][a-z] ' .config > "$HERE/busybox.config"+echo "[mkconfig] wrote $HERE/busybox.config: $(grep -c '=y' "$HERE/busybox.config") options on, ${#off[@]} applets switched off, ${#on[@]} option(s) switched on"
@@ -0,0 +1,9 @@+#!/usr/bin/env python3+# Unpack a .tar.bz2 with Python, so the build doesn't need the bzip2 program.+# Usage: untar.py TARBALL DEST_DIR+import sys, tarfile+with tarfile.open(sys.argv[1], "r:*") as t:+    if hasattr(tarfile, "data_filter"):+        t.extractall(sys.argv[2], filter="data")   # refuse odd paths/devices+    else:+        t.extractall(sys.argv[2])