diff options
| author | Alexander Hill <ahill@breadpudding.dev> | 2025-12-21 19:50:14 -0500 |
|---|---|---|
| committer | Alexander Hill <ahill@breadpudding.dev> | 2025-12-21 19:50:14 -0500 |
| commit | a6920abf746e05b66bc66ca74d47e19e9a0bc62c (patch) | |
| tree | fe23f7d0cfc26ae8753e8d04ac40c6066ad0339c | |
| parent | e93c2168f531e65352352afe9ba590339014f5f6 (diff) | |
Replaced busybox with toyboxtreetap
| -rwxr-xr-x | bootstrap.sh | 6 | ||||
| -rwxr-xr-x | rootbuild.sh | 3 | ||||
| -rw-r--r-- | sources/toybox/.config | 392 | ||||
| -rw-r--r-- | sources/toybox/toybox.spec | 28 |
4 files changed, 424 insertions, 5 deletions
diff --git a/bootstrap.sh b/bootstrap.sh index 87704f4..b16ebaf 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -210,7 +210,7 @@ cmake -S llvm -B build-llvm \ -DCMAKE_INSTALL_PREFIX=$BOOTSTRAP/root \ -DCMAKE_TOOLCHAIN_FILE=$BOOTSTRAP/$TARGET.cmake \ -DLLVM_ENABLE_LIBCXX=ON \ - -DLLVM_ENABLE_PROJECTS="clang;llvm" \ + -DLLVM_ENABLE_PROJECTS="clang;lld;llvm" \ -DLLVM_ENABLE_ZSTD=OFF \ -DLLVM_HOST_TRIPLE=$TARGET \ -DLLVM_INSTALL_BINUTILS_SYMLINKS=ON \ @@ -226,7 +226,7 @@ ln -s clang++ $BOOTSTRAP/root/bin/c++ cd .. # Build remaining software with treetap -SOURCES=(busybox make mold) +SOURCES=(make mold toybox) for name in $SOURCES; do $TREETAP fetch $SPEC/$name/$name.spec $TREETAP build $SPEC/$name/$name.spec @@ -244,7 +244,6 @@ export TT_DIR=$BOOTSTRAP/root/maple/.treetap SOURCES=( autoconf automake - busybox byacc bzip2 cmake @@ -261,6 +260,7 @@ SOURCES=( musl perl pkgconf + toybox xz zlib ) diff --git a/rootbuild.sh b/rootbuild.sh index ee8aa1c..10edde2 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -24,7 +24,6 @@ make -j $(nproc) install DESTDIR=/ > /dev/null 2>&1 echo "Done!" # Now we can build stuff exclusively with treetap -# NOTE: bzip2 needs to be built before Busybox ~ahill # NOTE: bzip2, xz, and zlib need to be built before libarchive or we will be # missing functionality! ~ahill # NOTE: CMake requires LibreSSL and libarchive to function properly so it is @@ -36,7 +35,7 @@ echo "Done!" # NOTE: groff requires Perl to build. ~ahill # NOTE: nasm requires autoconf and automake to build. ~ahill cd /maple -PACKAGES="bzip2 busybox byacc libelf libressl m4 make muon musl perl pkgconf xz zlib autoconf automake flex groff libarchive libtool nasm cmake mold" +PACKAGES="byacc bzip2 libelf libressl m4 make muon musl perl pkgconf toybox xz zlib autoconf automake flex groff libarchive libtool nasm cmake mold" for pkg in $PACKAGES; do treetap fetch /maple/sources/$pkg/$pkg.spec treetap build /maple/sources/$pkg/$pkg.spec diff --git a/sources/toybox/.config b/sources/toybox/.config new file mode 100644 index 0000000..6e9f0f3 --- /dev/null +++ b/sources/toybox/.config @@ -0,0 +1,392 @@ +# +# Automatically generated make config: don't edit +# ToyBox version: KCONFIG_VERSION +# Sun Dec 21 19:29:09 2025 +# +# CONFIG_TOYBOX_ON_ANDROID is not set +CONFIG_TOYBOX_FORK=y + +# +# Posix commands +# +CONFIG_BASENAME=y +CONFIG_CAL=y +CONFIG_CAT=y +CONFIG_CHGRP=y +CONFIG_CHOWN=y +CONFIG_CHMOD=y +CONFIG_CKSUM=y +CONFIG_CRC32=y +CONFIG_CMP=y +CONFIG_COMM=y +CONFIG_CP=y +CONFIG_MV=y +CONFIG_INSTALL=y +CONFIG_CPIO=y +CONFIG_CUT=y +CONFIG_DATE=y +CONFIG_DD=y +CONFIG_DF=y +CONFIG_DIRNAME=y +CONFIG_DU=y +CONFIG_ECHO=y +CONFIG_ENV=y +CONFIG_EXPAND=y +CONFIG_FALSE=y +CONFIG_FILE=y +CONFIG_FIND=y +CONFIG_FOLD=y +CONFIG_GETCONF=y +CONFIG_GREP=y +CONFIG_EGREP=y +CONFIG_FGREP=y +CONFIG_HEAD=y +CONFIG_ICONV=y +CONFIG_ID=y +CONFIG_GROUPS=y +CONFIG_LOGNAME=y +CONFIG_WHOAMI=y +CONFIG_KILL=y +CONFIG_KILLALL5=y +CONFIG_LINK=y +CONFIG_LN=y +CONFIG_LOGGER=y +CONFIG_LS=y +CONFIG_MKDIR=y +CONFIG_MKFIFO=y +CONFIG_NICE=y +CONFIG_NL=y +CONFIG_NOHUP=y +CONFIG_OD=y +CONFIG_PASTE=y +CONFIG_PATCH=y +CONFIG_PRINTF=y +CONFIG_PS=y +CONFIG_TOP=y +CONFIG_IOTOP=y +CONFIG_PGREP=y +CONFIG_PKILL=y +CONFIG_PWD=y +CONFIG_RENICE=y +CONFIG_RM=y +CONFIG_RMDIR=y +CONFIG_SED=y +CONFIG_SLEEP=y +CONFIG_SORT=y +CONFIG_SPLIT=y +CONFIG_STRINGS=y +CONFIG_TAIL=y +CONFIG_TAR=y +CONFIG_TEE=y +CONFIG_TEST=y +CONFIG_TEST_GLUE=y +CONFIG_TIME=y +CONFIG_TOUCH=y +CONFIG_TRUE=y +CONFIG_TSORT=y +CONFIG_TTY=y +CONFIG_ULIMIT=y +CONFIG_ARCH=y +CONFIG_UNAME=y +CONFIG_UNIQ=y +CONFIG_UNLINK=y +CONFIG_UUDECODE=y +CONFIG_UUENCODE=y +CONFIG_WC=y +CONFIG_WHO=y +CONFIG_XARGS=y + +# +# Pending (unfinished) commands +# +# CONFIG_ARP is not set +# CONFIG_ARPING is not set +CONFIG_AWK=y +CONFIG_BC=y +# CONFIG_BOOTCHARTD is not set +# CONFIG_BRCTL is not set +CONFIG_CHSH=y +CONFIG_CROND=y +CONFIG_CRONTAB=y +# CONFIG_CSPLIT is not set +# CONFIG_DHCP is not set +# CONFIG_DHCP6 is not set +# CONFIG_DHCPD is not set +# CONFIG_DEBUG_DHCP is not set +CONFIG_DIFF=y +# CONFIG_DUMPLEASES is not set +CONFIG_EXPR=y +CONFIG_FDISK=y +CONFIG_FSCK=y +# CONFIG_GETFATTR is not set +CONFIG_GETTY=y +# CONFIG_GITCOMPAT is not set +# CONFIG_GITCLONE is not set +# CONFIG_GITINIT is not set +# CONFIG_GITREMOTE is not set +# CONFIG_GITFETCH is not set +# CONFIG_GITCHECKOUT is not set +CONFIG_GROUPADD=y +CONFIG_GROUPDEL=y +CONFIG_HEXDUMP=y +# CONFIG_INIT is not set +CONFIG_IP=y +CONFIG_IPCRM=y +CONFIG_IPCS=y +# CONFIG_KLOGD is not set +CONFIG_LAST=y +CONFIG_LSOF=y +CONFIG_MAN=y +CONFIG_MDEV=y +CONFIG_MDEV_CONF=y +CONFIG_MODPROBE=y +CONFIG_MORE=y +CONFIG_ROUTE=y +CONFIG_SH=y +# CONFIG_ALIAS is not set +# CONFIG_BREAK is not set +# CONFIG_CD is not set +# CONFIG_CONTINUE is not set +# CONFIG_DECLARE is not set +# CONFIG_EXIT is not set +# CONFIG_SET is not set +# CONFIG_UNSET is not set +# CONFIG_EVAL is not set +# CONFIG_EXEC is not set +# CONFIG_EXPORT is not set +# CONFIG_JOBS is not set +# CONFIG_LOCAL is not set +# CONFIG_RETURN is not set +# CONFIG_SHIFT is not set +# CONFIG_SOURCE is not set +# CONFIG_TRAP is not set +# CONFIG_UNALIAS is not set +# CONFIG_WAIT is not set +# CONFIG_STRACE is not set +# CONFIG_STTY is not set +# CONFIG_SULOGIN is not set +# CONFIG_SYSLOGD is not set +# CONFIG_TCPSVD is not set +CONFIG_TELNET=y +# CONFIG_TELNETD is not set +CONFIG_TFTP=y +CONFIG_TFTPD=y +CONFIG_TR=y +CONFIG_TRACEROUTE=y +CONFIG_USERADD=y +CONFIG_USERDEL=y +# CONFIG_VI is not set +# CONFIG_XZCAT is not set + +# +# Other commands +# +CONFIG_ACPI=y +CONFIG_ASCII=y +CONFIG_UNICODE=y +CONFIG_BASE64=y +CONFIG_BASE32=y +CONFIG_BLKDISCARD=y +CONFIG_BLKID=y +CONFIG_FSTYPE=y +CONFIG_BLOCKDEV=y +# CONFIG_BUNZIP2 is not set +# CONFIG_BZCAT is not set +# CONFIG_CHCON is not set +CONFIG_CHROOT=y +CONFIG_CHRT=y +CONFIG_CLEAR=y +CONFIG_COUNT=y +CONFIG_DEVMEM=y +CONFIG_DOS2UNIX=y +CONFIG_UNIX2DOS=y +CONFIG_EJECT=y +CONFIG_FACTOR=y +CONFIG_FALLOCATE=y +CONFIG_FLOCK=y +CONFIG_FMT=y +CONFIG_FREE=y +CONFIG_FREERAMDISK=y +CONFIG_FSFREEZE=y +CONFIG_FSYNC=y +CONFIG_GETOPT=y +CONFIG_GPIODETECT=y +CONFIG_GPIOFIND=y +CONFIG_GPIOINFO=y +CONFIG_GPIOGET=y +CONFIG_GPIOSET=y +CONFIG_HD=y +CONFIG_HELP=y +CONFIG_HEXEDIT=y +CONFIG_HWCLOCK=y +CONFIG_I2CDETECT=y +CONFIG_I2CDUMP=y +CONFIG_I2CGET=y +CONFIG_I2CSET=y +CONFIG_I2CTRANSFER=y +CONFIG_INOTIFYD=y +CONFIG_INSMOD=y +CONFIG_IONICE=y +CONFIG_IORENICE=y +CONFIG_LINUX32=y +CONFIG_LOGIN=y +CONFIG_LOSETUP=y +CONFIG_LSATTR=y +CONFIG_CHATTR=y +CONFIG_LSMOD=y +CONFIG_LSPCI=y +CONFIG_LSUSB=y +CONFIG_MAKEDEVS=y +CONFIG_MCOOKIE=y +CONFIG_MEMEATER=y +CONFIG_MIX=y +CONFIG_MKPASSWD=y +CONFIG_MKSWAP=y +CONFIG_MODINFO=y +CONFIG_MOUNTPOINT=y +CONFIG_NBD_CLIENT=y +CONFIG_NBD_SERVER=y +CONFIG_NOLOGIN=y +CONFIG_UNSHARE=y +CONFIG_NSENTER=y +CONFIG_ONEIT=y +CONFIG_OPENVT=y +CONFIG_CHVT=y +CONFIG_DEALLOCVT=y +CONFIG_PARTPROBE=y +CONFIG_PIVOT_ROOT=y +CONFIG_PMAP=y +CONFIG_PRINTENV=y +CONFIG_PWDX=y +CONFIG_PWGEN=y +CONFIG_READAHEAD=y +CONFIG_READELF=y +CONFIG_READLINK=y +CONFIG_REALPATH=y +CONFIG_REBOOT=y +CONFIG_RESET=y +CONFIG_REV=y +CONFIG_RMMOD=y +CONFIG_RTCWAKE=y +CONFIG_SETFATTR=y +CONFIG_SETSID=y +CONFIG_SHA3SUM=y +CONFIG_SHRED=y +CONFIG_SHUF=y +CONFIG_STAT=y +CONFIG_SWAPOFF=y +CONFIG_SWAPON=y +CONFIG_SWITCH_ROOT=y +CONFIG_SYSCTL=y +CONFIG_TAC=y +CONFIG_NPROC=y +CONFIG_TASKSET=y +CONFIG_TIMEOUT=y +CONFIG_TRUNCATE=y +CONFIG_TS=y +CONFIG_UCLAMPSET=y +CONFIG_UPTIME=y +CONFIG_USLEEP=y +CONFIG_UUIDGEN=y +CONFIG_VCONFIG=y +CONFIG_VMSTAT=y +CONFIG_W=y +CONFIG_WATCH=y +CONFIG_WATCHDOG=y +CONFIG_WHICH=y +CONFIG_XXD=y +CONFIG_YES=y + +# +# Networking commands +# +CONFIG_FTPGET=y +CONFIG_FTPPUT=y +CONFIG_HOST=y +CONFIG_HTTPD=y +CONFIG_IFCONFIG=y +CONFIG_MICROCOM=y +CONFIG_NETCAT=y +CONFIG_NETSTAT=y +CONFIG_PING=y +CONFIG_RFKILL=y +CONFIG_SNTP=y +CONFIG_TUNCTL=y +CONFIG_WGET=y +# CONFIG_WGET_LIBTLS is not set + +# +# Linux Standard Base commands +# +CONFIG_DMESG=y +CONFIG_GZIP=y +CONFIG_GUNZIP=y +CONFIG_ZCAT=y +CONFIG_HOSTNAME=y +CONFIG_DNSDOMAINNAME=y +CONFIG_KILLALL=y +CONFIG_MD5SUM=y +CONFIG_SHA1SUM=y +CONFIG_SHA224SUM=y +CONFIG_SHA256SUM=y +CONFIG_SHA384SUM=y +CONFIG_SHA512SUM=y +CONFIG_MKNOD=y +CONFIG_MKTEMP=y +CONFIG_MOUNT=y +CONFIG_PASSWD=y +# CONFIG_PASSWD_SAD is not set +CONFIG_PIDOF=y +CONFIG_SEQ=y +CONFIG_SU=y +CONFIG_SYNC=y +CONFIG_UMOUNT=y + +# +# Example commands +# +# CONFIG_DEMO_MANY_OPTIONS is not set +# CONFIG_DEMO_NUMBER is not set +# CONFIG_DEMO_SCANKEY is not set +# CONFIG_DEMO_UTF8TOWC is not set +# CONFIG_HELLO is not set +# CONFIG_HOSTID is not set +# CONFIG_LOGPATH is not set +# CONFIG_SKELETON is not set +# CONFIG_SKELETON_ALIAS is not set + +# +# Android commands +# +# CONFIG_GETENFORCE is not set +# CONFIG_LOAD_POLICY is not set +# CONFIG_LOG is not set +# CONFIG_RESTORECON is not set +# CONFIG_RUNCON is not set +# CONFIG_SENDEVENT is not set +# CONFIG_SETENFORCE is not set + +# +# +# + +# +# Toybox global settings +# +CONFIG_TOYBOX=y +CONFIG_TOYBOX_SUID=y +CONFIG_TOYBOX_LSM_NONE=y +# CONFIG_TOYBOX_SELINUX is not set +# CONFIG_TOYBOX_SMACK is not set +# CONFIG_TOYBOX_LIBCRYPTO is not set +# CONFIG_TOYBOX_LIBZ is not set +CONFIG_TOYBOX_FLOAT=y +CONFIG_TOYBOX_HELP=y +CONFIG_TOYBOX_HELP_DASHDASH=y +CONFIG_TOYBOX_ZHELP=y +# CONFIG_TOYBOX_FREE is not set +# CONFIG_TOYBOX_NORECURSE is not set +# CONFIG_TOYBOX_DEBUG is not set +CONFIG_TOYBOX_UID_SYS=100 +CONFIG_TOYBOX_UID_USR=1000 +# CONFIG_TOYBOX_FORCE_NOMMU is not set diff --git a/sources/toybox/toybox.spec b/sources/toybox/toybox.spec new file mode 100644 index 0000000..efe46e3 --- /dev/null +++ b/sources/toybox/toybox.spec @@ -0,0 +1,28 @@ +# Maintainer: Alexander Hill <ahill@breadpudding.dev> +SRC_HASH="9d4c124d7d731a2db399f6278baa2b42c2e3511f610c6ad30cc3f1a52581334b" +SRC_NAME="toybox" +SRC_PATCHES=" +f4dda4662bead0679256f54b1770faa57c1bfea9462778edf537644d1e5aa3b0 .config +" +SRC_URL="https://landley.net/toybox/downloads/toybox-0.8.13.tar.gz" +SRC_VERSION="0.8.13" + +build() { + tar xf ../$SRC_FILENAME + cd toybox-$SRC_VERSION/ + # NOTE: make defconfig seems to do more than simply configure toybox. We'll + # run it to set *something* up, then overwrite the configuration with + # what I saved before. ~ahill + make defconfig + cp ../.config . + make -j $TT_PROCS +} + +clean() { + rm -rf toybox-$SRC_VERSION/ +} + +package() { + cd toybox-$SRC_VERSION/ + PREFIX=$TT_INSTALLDIR/bin ./scripts/install.sh --symlink +}
\ No newline at end of file |
