summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Hill <ahill@breadpudding.dev>2025-12-20 21:41:41 -0500
committerAlexander Hill <ahill@breadpudding.dev>2025-12-20 21:42:56 -0500
commit7c52f81b903d61ba8749a679525e9d4be8884d81 (patch)
tree42c73e98bad66c62abd1521215e76fed116198c2
parent83f0d023427ae138da7ef1e518782b32bf5a57cd (diff)
Removed bsdutils and its dependencies to fix rootbuild
-rw-r--r--STATUS.md4
-rwxr-xr-xbootstrap.sh6
-rwxr-xr-xrootbuild.sh14
-rw-r--r--sources/bsdutils/bsdutils.spec82
-rw-r--r--sources/busybox/.config112
-rwxr-xr-xsources/busybox/busybox.spec4
-rw-r--r--sources/editline/editline.spec24
-rw-r--r--sources/musl-fts/musl-fts.spec24
-rw-r--r--sources/ncurses/ncurses.spec37
9 files changed, 67 insertions, 240 deletions
diff --git a/STATUS.md b/STATUS.md
index 0cca612..e43b6e2 100644
--- a/STATUS.md
+++ b/STATUS.md
@@ -8,12 +8,10 @@ Definitions:
| ------------- | ---------- | ------------ |
| `autoconf` | Yes | Yes |
| `automake` | Yes | Yes |
-| `bsdutils` | Yes | Yes |
| `busybox` | Yes | Yes |
| `byacc` | Yes | Yes |
| `bzip2` | Yes | Yes |
| `cmake` | Yes | Yes |
-| `editline` | Yes | Yes |
| `flex` | Yes | Yes |
| `groff` | Yes | Yes |
| `libarchive` | Yes | Yes |
@@ -27,10 +25,8 @@ Definitions:
| `mold` | Yes | Yes |
| `muon` | Yes | Yes |
| `musl` | Yes | Yes |
-| `musl-fts` | Yes | Yes |
| `nano` | Yes | Yes |
| `nasm` | Yes | Yes |
-| `ncurses` | Yes | Yes |
| `perl` | Yes | Yes |
| `pkgconf` | Yes | Yes |
| `ruby` | Yes | Yes |
diff --git a/bootstrap.sh b/bootstrap.sh
index b531aa7..87704f4 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -239,17 +239,15 @@ cp $TREETAP $BOOTSTRAP/root/bin/
# Prepare for chroot build
mkdir -p $BOOTSTRAP/root/maple/
-cp rootbuild.sh $BOOTSTRAP/root/maple/
+cp $BOOTSTRAP/../rootbuild.sh $BOOTSTRAP/root/maple/
export TT_DIR=$BOOTSTRAP/root/maple/.treetap
SOURCES=(
autoconf
automake
- bsdutils
busybox
byacc
bzip2
cmake
- editline
flex
libarchive
libressl
@@ -261,8 +259,6 @@ SOURCES=(
mold
muon
musl
- musl-fts
- ncurses
perl
pkgconf
xz
diff --git a/rootbuild.sh b/rootbuild.sh
index 75e424c..1fbc33b 100755
--- a/rootbuild.sh
+++ b/rootbuild.sh
@@ -9,8 +9,9 @@ export CXXFLAGS=$CFLAGS
cd /maple
treetap build sources/xz/xz.spec
cd .treetap/sources/xz/*/*/xz-*/
-echo "Bootstrapping xz"
+echo -n "Bootstrapping xz... "
make -j $(nproc) install DESTDIR=/ > /dev/null 2>&1
+echo "Done!"
# libarchive Build
# NOTE: bsdcpio is needed to run "treetap package", so we manually install.
@@ -18,23 +19,24 @@ make -j $(nproc) install DESTDIR=/ > /dev/null 2>&1
cd /maple
treetap build sources/libarchive/libarchive.spec
cd .treetap/sources/libarchive/*/*/libarchive-*/
-echo "Bootstrapping libarchive"
+echo -n "Bootstrapping libarchive... "
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
# built after them. ~ahill
# NOTE: mold requires CMake to build. ~ahill
# NOTE: flex requires byacc and m4 to build. ~ahill
-# NOTE: editline requires ncurses to build. ~ahill
# NOTE: autoconf requires GNU m4 and perl to build. ~ahill
# NOTE: automake requires m4 to build. ~ahill
-# NOTE: musl-fts requires autoconf, automake, and libtool to build. ~ahill
-# NOTE: bsdutils requires musl-fts and muon to build. ~ahill
+# NOTE: groff requires Perl to build. ~ahill
+# NOTE: nasm requires autoconf and automake to build. ~ahill
cd /maple
-PACKAGES="busybox byacc bzip2 groff libressl m4 make muon musl nasm ncurses perl pkgconf xz zlib autoconf automake editline flex libarchive libtool musl-fts bsdutils cmake mold"
+PACKAGES="bzip2 busybox byacc libressl m4 make muon musl perl pkgconf 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/bsdutils/bsdutils.spec b/sources/bsdutils/bsdutils.spec
deleted file mode 100644
index 6c2eb63..0000000
--- a/sources/bsdutils/bsdutils.spec
+++ /dev/null
@@ -1,82 +0,0 @@
-# Maintainer: Alexander Hill <ahill@breadpudding.dev>
-SRC_FILENAME="bsdutils-13.2.tar.gz"
-SRC_HASH="4547990309afe686c6f36c2a4f7ac5806e0064b182dd1f93f52dda7661979a3c"
-SRC_NAME="bsdutils"
-SRC_REVISION=1
-SRC_URL="https://codeberg.org/dcantrell/bsdutils/archive/v13.2.tar.gz"
-SRC_VERSION="13.2"
-
-# NOTE: Even though the install implementation from bsdutils is being used, some
-# packages may try to use -D and -t, which are only supported under
-# Busybox's implementation. ~ahill
-
-build() {
- tar xf ../$SRC_FILENAME
- cd bsdutils/
- # NOTE: Before we start building bsdutils, we tell it *not* to build df/wc,
- # since that requires an additional dependency (libxo) and we already
- # have BusyBox's version of df and wc to replace it. ~ahill
- sed -i "/libxo/d" meson.build
- sed -i "/'df'/d" src/meson.build
- sed -i "/'wc'/d" src/meson.build
- # NOTE: Apparently, rpmatch is REQUIRED, despite meson.build stating that it
- # is optional. Disabling find in favor of BusyBox to prevent another
- # dependency from being introduced. ~ahill
- sed -i "/'find'/d" src/meson.build
- # NOTE: Finally, we have a *lot* of duplicate commands between bsdutils and
- # Busybox. After reviewing *all* of the commands they share, these are
- # the commands I believe Busybox should handle. ~ahill
- sed -i "/'dirname'/d" src/meson.build
- sed -i "/'echo'/d" src/meson.build
- sed -i "/'expand'/d" src/meson.build
- sed -i "/'expr'/d" src/meson.build
- sed -i "/'false'/d" src/meson.build
- sed -i "/'fold'/d" src/meson.build
- sed -i "/'groups'/d" src/meson.build
- sed -i "/'head'/d" src/meson.build
- sed -i "/'hexdump'/d" src/meson.build
- sed -i "/'kill'/d" src/meson.build
- sed -i "/'ln'/d" src/meson.build
- sed -i "/'logname'/d" src/meson.build
- sed -i "/'ls'/d" src/meson.build
- sed -i "/'mkdir'/d" src/meson.build
- sed -i "/'mkfifo'/d" src/meson.build
- sed -i "/'mknod'/d" src/meson.build
- sed -i "/'mktemp'/d" src/meson.build
- sed -i "/'mv'/d" src/meson.build
- sed -i "/'nice'/d" src/meson.build
- sed -i "/'nohup'/d" src/meson.build
- sed -i "/'paste'/d" src/meson.build
- sed -i "/'printenv'/d" src/meson.build
- sed -i "/'printf'/d" src/meson.build
- sed -i "/'pwd'/d" src/meson.build
- sed -i "/'rm'/d" src/meson.build
- sed -i "/'rmdir'/d" src/meson.build
- sed -i "/'sed'/d" src/meson.build
- sed -i "/'sleep'/d" src/meson.build
- sed -i "/'stat'/d" src/meson.build
- sed -i "/'stty'/d" src/meson.build
- sed -i "/'sync'/d" src/meson.build
- sed -i "/'tail'/d" src/meson.build
- sed -i "/'tee'/d" src/meson.build
- sed -i "/'test'/d" src/meson.build
- sed -i "/'true'/d" src/meson.build
- sed -i "/'tty'/d" src/meson.build
- sed -i "/'uname'/d" src/meson.build
- sed -i "/'unexpand'/d" src/meson.build
- sed -i "/'uniq'/d" src/meson.build
- sed -i "/'users'/d" src/meson.build
- sed -i "/'whoami'/d" src/meson.build
- sed -i "/'xargs'/d" src/meson.build
- muon setup $TT_MESON_COMMON build
- muon samu -C build
-}
-
-clean() {
- rm -rf bsdutils/
-}
-
-package() {
- cd bsdutils/
- muon -C build install -d $TT_INSTALLDIR
-}
diff --git a/sources/busybox/.config b/sources/busybox/.config
index 5c29f10..1d41ead 100644
--- a/sources/busybox/.config
+++ b/sources/busybox/.config
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Busybox version: 1.36.1
-# Sun Dec 7 02:40:00 2025
+# Sat Dec 20 20:41:36 2025
#
CONFIG_HAVE_DOT_CONFIG=y
@@ -217,56 +217,56 @@ CONFIG_FEATURE_PRESERVE_HARDLINKS=y
#
CONFIG_FEATURE_HUMAN_READABLE=y
CONFIG_BASENAME=y
-# CONFIG_CAT is not set
-# CONFIG_FEATURE_CATN is not set
-# CONFIG_FEATURE_CATV is not set
-# CONFIG_CHGRP is not set
-# CONFIG_CHMOD is not set
-# CONFIG_CHOWN is not set
-# CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set
-# CONFIG_CHROOT is not set
-# CONFIG_CKSUM is not set
+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 is not set
-# CONFIG_CP is not set
-# CONFIG_FEATURE_CP_LONG_OPTIONS is not set
-# CONFIG_FEATURE_CP_REFLINK is not set
-# CONFIG_CUT is not set
-# CONFIG_FEATURE_CUT_REGEX is not set
-# CONFIG_DATE is not set
-# CONFIG_FEATURE_DATE_ISOFMT is not set
+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 is not set
-# CONFIG_DD is not set
-# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
-# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set
-# CONFIG_FEATURE_DD_IBS_OBS is not set
-# CONFIG_FEATURE_DD_STATUS 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 is not set
-# CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K is not set
+CONFIG_DU=y
+CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
CONFIG_ECHO=y
CONFIG_FEATURE_FANCY_ECHO=y
-# CONFIG_ENV is not set
+CONFIG_ENV=y
CONFIG_EXPAND=y
CONFIG_UNEXPAND=y
CONFIG_EXPR=y
CONFIG_EXPR_MATH_SUPPORT_64=y
-# CONFIG_FACTOR is not set
+CONFIG_FACTOR=y
CONFIG_FALSE=y
CONFIG_FOLD=y
CONFIG_HEAD=y
CONFIG_FEATURE_FANCY_HEAD=y
CONFIG_HOSTID=y
-# CONFIG_ID is not set
+CONFIG_ID=y
CONFIG_GROUPS=y
-# CONFIG_INSTALL is not set
-# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
+CONFIG_INSTALL=y
+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
CONFIG_LINK=y
CONFIG_LN=y
CONFIG_LOGNAME=y
@@ -296,7 +296,7 @@ CONFIG_MKNOD=y
CONFIG_MKTEMP=y
CONFIG_MV=y
CONFIG_NICE=y
-# CONFIG_NL is not set
+CONFIG_NL=y
CONFIG_NOHUP=y
CONFIG_NPROC=y
CONFIG_OD=y
@@ -304,12 +304,12 @@ CONFIG_PASTE=y
CONFIG_PRINTENV=y
CONFIG_PRINTF=y
CONFIG_PWD=y
-# CONFIG_READLINK is not set
-# CONFIG_FEATURE_READLINK_FOLLOW is not set
-# CONFIG_REALPATH is not set
+CONFIG_READLINK=y
+CONFIG_FEATURE_READLINK_FOLLOW=y
+CONFIG_REALPATH=y
CONFIG_RM=y
CONFIG_RMDIR=y
-# CONFIG_SEQ is not set
+CONFIG_SEQ=y
CONFIG_SHRED=y
CONFIG_SHUF=y
CONFIG_SLEEP=y
@@ -317,8 +317,8 @@ CONFIG_FEATURE_FANCY_SLEEP=y
CONFIG_SORT=y
CONFIG_FEATURE_SORT_BIG=y
# CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY is not set
-# CONFIG_SPLIT is not set
-# CONFIG_FEATURE_SPLIT_FANCY is not set
+CONFIG_SPLIT=y
+CONFIG_FEATURE_SPLIT_FANCY=y
CONFIG_STAT=y
CONFIG_FEATURE_STAT_FORMAT=y
CONFIG_FEATURE_STAT_FILESYSTEM=y
@@ -336,21 +336,21 @@ CONFIG_TEST=y
CONFIG_TEST1=y
CONFIG_TEST2=y
CONFIG_FEATURE_TEST_64=y
-# CONFIG_TIMEOUT is not set
-# CONFIG_TOUCH is not set
-# CONFIG_FEATURE_TOUCH_SUSV3 is not set
-# CONFIG_TR is not set
-# CONFIG_FEATURE_TR_CLASSES is not set
-# CONFIG_FEATURE_TR_EQUIV is not set
+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 is not set
-# CONFIG_TSORT is not set
+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 is not set
+CONFIG_UNLINK=y
CONFIG_USLEEP=y
CONFIG_UUDECODE=y
CONFIG_BASE32=y
@@ -358,11 +358,11 @@ CONFIG_BASE64=y
CONFIG_UUENCODE=y
CONFIG_WC=y
CONFIG_FEATURE_WC_LARGE=y
-# CONFIG_WHO is not set
+CONFIG_WHO=y
CONFIG_W=y
CONFIG_USERS=y
CONFIG_WHOAMI=y
-# CONFIG_YES is not set
+CONFIG_YES=y
#
# Console Utilities
@@ -404,7 +404,7 @@ 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 is not set
+CONFIG_WHICH=y
#
# klibc-utils
@@ -760,12 +760,12 @@ CONFIG_ADJTIMEX=y
CONFIG_ASCII=y
# CONFIG_BBCONFIG is not set
# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set
-# CONFIG_BC is not set
-# CONFIG_DC is not set
-# CONFIG_FEATURE_DC_BIG 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 is not set
-# CONFIG_FEATURE_BC_LONG_OPTIONS is not set
+CONFIG_FEATURE_BC_INTERACTIVE=y
+CONFIG_FEATURE_BC_LONG_OPTIONS=y
CONFIG_BEEP=y
CONFIG_FEATURE_BEEP_FREQ=4000
CONFIG_FEATURE_BEEP_LENGTH_MS=30
@@ -882,7 +882,7 @@ CONFIG_FEATURE_FTPD_AUTHENTICATION=y
CONFIG_FTPGET=y
CONFIG_FTPPUT=y
CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y
-# CONFIG_HOSTNAME is not set
+CONFIG_HOSTNAME=y
CONFIG_DNSDOMAINNAME=y
CONFIG_HTTPD=y
CONFIG_FEATURE_HTTPD_PORT_DEFAULT=80
diff --git a/sources/busybox/busybox.spec b/sources/busybox/busybox.spec
index d7e2746..c261557 100755
--- a/sources/busybox/busybox.spec
+++ b/sources/busybox/busybox.spec
@@ -2,9 +2,9 @@
SRC_HASH="b8cc24c9574d809e7279c3be349795c5d5ceb6fdf19ca709f80cde50e47de314"
SRC_NAME="busybox"
SRC_PATCHES="
-59d4edffe7f191fa3c8ae519ca62ea6cff77e5c9ae0945fd381570e884065975 .config
+a35fa3d6687d7cbcaa2d8675208392086d56df0c8719ddbde9f46373b189d0d4 .config
"
-SRC_REVISION=3
+SRC_REVISION=4
SRC_URL="https://busybox.net/downloads/busybox-1.36.1.tar.bz2"
SRC_VERSION="1.36.1"
diff --git a/sources/editline/editline.spec b/sources/editline/editline.spec
deleted file mode 100644
index bbca7dd..0000000
--- a/sources/editline/editline.spec
+++ /dev/null
@@ -1,24 +0,0 @@
-# Maintainer: Alexander Hill <ahill@breadpudding.dev>
-SRC_HASH="21362b00653bbfc1c71f71a7578da66b5b5203559d43134d2dd7719e313ce041"
-SRC_NAME="editline"
-SRC_URL="https://thrysoee.dk/editline/libedit-20251016-3.1.tar.gz"
-SRC_VERSION="20251016-3.1"
-
-build() {
- tar xf ../$SRC_FILENAME
- cd libedit-*/
- ./configure $TT_AUTOCONF_COMMON --disable-static
- # NOTE: wchar_t isn't defined correctly due to a bug in clang, preventing
- # libedit from building properly. ~ahill
- # See also: https://bugs.gentoo.org/870001
- make -O -j $TT_PROCS CFLAGS="$CFLAGS -include stdc-predef.h"
-}
-
-clean() {
- rm -rf libedit-*/
-}
-
-package() {
- cd libedit-*/
- make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR
-} \ No newline at end of file
diff --git a/sources/musl-fts/musl-fts.spec b/sources/musl-fts/musl-fts.spec
deleted file mode 100644
index 35f9df7..0000000
--- a/sources/musl-fts/musl-fts.spec
+++ /dev/null
@@ -1,24 +0,0 @@
-# Maintainer: Alexander Hill <ahill@breadpudding.dev>
-SRC_FILENAME="musl_fts-1.2.7.tar.gz"
-SRC_HASH="49ae567a96dbab22823d045ffebe0d6b14b9b799925e9ca9274d47d26ff482a6"
-SRC_NAME="musl-fts"
-SRC_URL="https://github.com/void-linux/musl-fts/archive/refs/tags/v1.2.7.tar.gz"
-SRC_VERSION="1.2.7"
-
-build() {
- tar xf ../$SRC_FILENAME
- cd musl-fts-*/
- # TODO: Can we rewrite this to not rely on libtool going forward? ~ahill
- ./bootstrap.sh
- ./configure $TT_AUTOCONF_COMMON --disable-static
- make -j $TT_PROCS
-}
-
-clean() {
- rm -rf musl-fts-*/
-}
-
-package() {
- cd musl-fts-*/
- make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR
-} \ No newline at end of file
diff --git a/sources/ncurses/ncurses.spec b/sources/ncurses/ncurses.spec
deleted file mode 100644
index 0128c50..0000000
--- a/sources/ncurses/ncurses.spec
+++ /dev/null
@@ -1,37 +0,0 @@
-# Maintainer: Alexander Hill <ahill@breadpudding.dev>
-SRC_HASH="136d91bc269a9a5785e5f9e980bc76ab57428f604ce3e5a5a90cebc767971cc6"
-SRC_NAME="ncurses"
-SRC_REVISION=1
-SRC_URL="https://invisible-island.net/archives/ncurses/ncurses-6.5.tar.gz"
-SRC_VERSION="6.5"
-
-# TODO: Remove the target triple prefix from all of ncurses' executables ~ahill
-
-build() {
- tar xf ../$SRC_FILENAME
- cd ncurses-*/
- ./configure $TT_AUTOCONF_COMMON \
- --enable-pc-files \
- --program-prefix="" \
- --with-cxx-shared \
- --with-pkg-config-libdir=$TT_LIBDIR/pkgconfig \
- --with-shared \
- --without-ada \
- --without-debug \
- --without-normal \
- --without-tests
- make -O -j $TT_PROCS
-}
-
-clean() {
- rm -rf ncurses-*/
-}
-
-package() {
- cd ncurses-*/
- make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR
- # NOTE: These symlinks exist for compatibility's sake, since some libraries
- # will only look for "ncurses" and not "ncursesw". ~ahill
- ln -s libncursesw.so $TT_INSTALLDIR/lib/libncurses.so
- ln -s libncurses++w.so $TT_INSTALLDIR/lib/libncurses++.so
-}