Integrated Treetap into Maple Linux #1

Merged
ahill merged 74 commits from treetap into main 2026-01-25 22:51:04 +00:00
4 changed files with 424 additions and 5 deletions
Showing only changes of commit a6920abf74 - Show all commits

View File

@ -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
)

View File

@ -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

392
sources/toybox/.config Normal file
View File

@ -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

View File

@ -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
}