diff options
| author | Alexander Hill <ahill@breadpudding.dev> | 2025-12-06 21:48:33 -0500 |
|---|---|---|
| committer | Alexander Hill <ahill@breadpudding.dev> | 2025-12-06 21:48:33 -0500 |
| commit | 70055d5bc825b3020ce7d86bf1380048561e23b9 (patch) | |
| tree | e8b785bbe34cb366b71ba38d91742584d805df96 | |
| parent | cdbbc7ce28104d17a80851b64c16849b70e0322b (diff) | |
Merged bsdutils/Busybox and updated treetap
| -rw-r--r-- | STATUS.md | 2 | ||||
| -rwxr-xr-x | bootstrap.sh | 2 | ||||
| -rwxr-xr-x | rootbuild.sh | 3 | ||||
| -rw-r--r-- | sources/bsdutils/bsdutils.spec | 137 | ||||
| -rw-r--r-- | sources/busybox/.config | 126 | ||||
| -rwxr-xr-x | sources/busybox/busybox.spec | 20 | ||||
| -rw-r--r-- | sources/bzip2/bzip2.spec | 3 | ||||
| -rw-r--r-- | sources/cmake/cmake.spec | 3 | ||||
| -rw-r--r-- | sources/muon/muon.spec | 3 | ||||
| -rwxr-xr-x | sources/musl/musl.spec | 3 | ||||
| -rw-r--r-- | sources/ncurses/ncurses.spec | 3 | ||||
| -rw-r--r-- | sources/perl/perl.spec | 3 | ||||
| -rwxr-xr-x | treetap | 64 |
13 files changed, 188 insertions, 184 deletions
@@ -9,7 +9,7 @@ Definitions: | `autoconf` | Yes | Yes | | `automake` | Yes | Yes | | `bsdutils` | Yes | Yes | -| `busybox` | No | No | +| `busybox` | Yes | Yes | | `byacc` | Yes | Yes | | `bzip2` | Yes | Yes | | `cmake` | Yes | Yes | diff --git a/bootstrap.sh b/bootstrap.sh index 868f3c4..b531aa7 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -271,4 +271,4 @@ SOURCES=( for name in $SOURCES; do $TREETAP fetch $SPEC/$name/$name.spec done -cp -r $SPEC $BOOTSTRAP/root/maple/
\ No newline at end of file +cp -r $SPEC $BOOTSTRAP/root/maple/ diff --git a/rootbuild.sh b/rootbuild.sh index 363d91b..75e424c 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -32,8 +32,9 @@ make -j $(nproc) install DESTDIR=/ > /dev/null 2>&1 # 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 cd /maple -PACKAGES="byacc bzip2 libressl m4 make muon musl ncurses perl pkgconf xz zlib autoconf automake editline flex libarchive libtool musl-fts cmake mold" +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" 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 index 487558d..6c2eb63 100644 --- a/sources/bsdutils/bsdutils.spec +++ b/sources/bsdutils/bsdutils.spec @@ -2,93 +2,13 @@ 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" -# TODO: Determine which utilities should be moved to bsdutils and which should -# stick with Busybox. ~ahill -# [ -# bc -# cat -# chgrp -# chmod -# chown -# chroot -# cksum -# comm -# cp -# csplit -# cut -# date -# dc -# dd -# dirname -# du -# echo -# env -# expand -# expr -# factor -# false -# fmt -# fold -# groups -# head -# hexdump -# hostname -# id -# install -# join -# kill -# ln -# logname -# ls -# mkdir -# mkfifo -# mknod -# mktemp -# mv -# nice -# nl -# nohup -# paste -# pathchk -# pr -# printenv -# printf -# pwd -# readlink -# realpath -# rm -# rmdir -# sed -# seq -# sleep -# split -# stat -# stdbuf -# stty -# sync -# tail -# tee -# test -# timeout -# touch -# tr -# true -# truncate -# tsort -# tty -# uname -# unexpand -# uniq -# unlink -# users -# which -# who -# whoami -# xargs -# yes +# 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 @@ -104,9 +24,50 @@ build() { # 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. Busybox takes priority unless the bsdutils version has more - # functionality. ~ahill - # ... + # 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 } @@ -118,4 +79,4 @@ clean() { package() { cd bsdutils/ muon -C build install -d $TT_INSTALLDIR -}
\ No newline at end of file +} diff --git a/sources/busybox/.config b/sources/busybox/.config index b61b046..5c29f10 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 Nov 23 09:24:20 2025 +# Sun Dec 7 02:40:00 2025 # CONFIG_HAVE_DOT_CONFIG=y @@ -54,7 +54,7 @@ CONFIG_EXTRA_LDFLAGS="" CONFIG_EXTRA_LDLIBS="" # CONFIG_USE_PORTABLE_CODE is not set CONFIG_STACK_OPTIMIZATION_386=y -CONFIG_STATIC_LIBGCC=y +# CONFIG_STATIC_LIBGCC is not set # # Installation Options ("make install" behavior) @@ -149,17 +149,17 @@ CONFIG_FEATURE_SEAMLESS_GZ=y CONFIG_GUNZIP=y CONFIG_ZCAT=y CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y -CONFIG_BUNZIP2=y -CONFIG_BZCAT=y +# CONFIG_BUNZIP2 is not set +# CONFIG_BZCAT is not set # CONFIG_UNLZMA is not set # CONFIG_LZCAT is not set # CONFIG_LZMA is not set # CONFIG_UNXZ is not set # CONFIG_XZCAT is not set # CONFIG_XZ is not set -CONFIG_BZIP2=y -CONFIG_BZIP2_SMALL=8 -CONFIG_FEATURE_BZIP2_DECOMPRESS=y +# CONFIG_BZIP2 is not set +CONFIG_BZIP2_SMALL=0 +# CONFIG_FEATURE_BZIP2_DECOMPRESS is not set # CONFIG_CPIO is not set # CONFIG_FEATURE_CPIO_O is not set # CONFIG_FEATURE_CPIO_P is not set @@ -217,56 +217,56 @@ CONFIG_FEATURE_PRESERVE_HARDLINKS=y # 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_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_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_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_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_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_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_DU is not set +# CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K is not set CONFIG_ECHO=y CONFIG_FEATURE_FANCY_ECHO=y -CONFIG_ENV=y +# CONFIG_ENV is not set CONFIG_EXPAND=y CONFIG_UNEXPAND=y CONFIG_EXPR=y CONFIG_EXPR_MATH_SUPPORT_64=y -CONFIG_FACTOR=y +# CONFIG_FACTOR is not set CONFIG_FALSE=y CONFIG_FOLD=y CONFIG_HEAD=y CONFIG_FEATURE_FANCY_HEAD=y CONFIG_HOSTID=y -CONFIG_ID=y +# CONFIG_ID is not set CONFIG_GROUPS=y -CONFIG_INSTALL=y -CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y +# CONFIG_INSTALL is not set +# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set 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=y +# CONFIG_NL is not set 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=y -CONFIG_FEATURE_READLINK_FOLLOW=y -CONFIG_REALPATH=y +# CONFIG_READLINK is not set +# CONFIG_FEATURE_READLINK_FOLLOW is not set +# CONFIG_REALPATH is not set CONFIG_RM=y CONFIG_RMDIR=y -CONFIG_SEQ=y +# CONFIG_SEQ is not set 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=y -CONFIG_FEATURE_SPLIT_FANCY=y +# CONFIG_SPLIT is not set +# CONFIG_FEATURE_SPLIT_FANCY is not set 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=y -CONFIG_TOUCH=y -CONFIG_FEATURE_TOUCH_SUSV3=y -CONFIG_TR=y -CONFIG_FEATURE_TR_CLASSES=y -CONFIG_FEATURE_TR_EQUIV=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_TRUE=y -CONFIG_TRUNCATE=y -CONFIG_TSORT=y +# CONFIG_TRUNCATE is not set +# CONFIG_TSORT is not set CONFIG_TTY=y CONFIG_UNAME=y CONFIG_UNAME_OSNAME="GNU/Linux" CONFIG_BB_ARCH=y CONFIG_UNIQ=y -CONFIG_UNLINK=y +# CONFIG_UNLINK is not set 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=y +# CONFIG_WHO is not set CONFIG_W=y CONFIG_USERS=y CONFIG_WHOAMI=y -CONFIG_YES=y +# CONFIG_YES is not set # # 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=y +# CONFIG_WHICH is not set # # klibc-utils @@ -509,7 +509,7 @@ CONFIG_FEATURE_WAIT_FOR_INIT=y # CONFIG_FEATURE_CALL_TELINIT is not set CONFIG_TELINIT_PATH="" CONFIG_INIT=y -CONFIG_LINUXRC=y +# CONFIG_LINUXRC is not set CONFIG_FEATURE_USE_INITTAB=y # CONFIG_FEATURE_KILL_REMOVED is not set CONFIG_FEATURE_KILL_DELAY=0 @@ -760,12 +760,12 @@ CONFIG_ADJTIMEX=y 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_BC is not set +# CONFIG_DC is not set +# CONFIG_FEATURE_DC_BIG is not set # CONFIG_FEATURE_DC_LIBM is not set -CONFIG_FEATURE_BC_INTERACTIVE=y -CONFIG_FEATURE_BC_LONG_OPTIONS=y +# CONFIG_FEATURE_BC_INTERACTIVE is not set +# CONFIG_FEATURE_BC_LONG_OPTIONS is not set 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=y +# CONFIG_HOSTNAME is not set 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 da3a454..d7e2746 100755 --- a/sources/busybox/busybox.spec +++ b/sources/busybox/busybox.spec @@ -2,14 +2,15 @@ SRC_HASH="b8cc24c9574d809e7279c3be349795c5d5ceb6fdf19ca709f80cde50e47de314" SRC_NAME="busybox" SRC_PATCHES=" -63478e21fdb8a1aa13d5f98c6a599e6ed040deb79707677f6186083c826a2824 .config +59d4edffe7f191fa3c8ae519ca62ea6cff77e5c9ae0945fd381570e884065975 .config " +SRC_REVISION=3 SRC_URL="https://busybox.net/downloads/busybox-1.36.1.tar.bz2" -SRC_VERSION="1.36.1r2" +SRC_VERSION="1.36.1" build() { tar xf ../$SRC_FILENAME - cd busybox-*/ + cd busybox-$SRC_VERSION/ cp ../.config . # NOTE: Like we did with musl before, we don't set CROSS_COMPILE because # LLVM is smart and doesn't need a compiler to cross-compile code. @@ -24,16 +25,19 @@ build() { # returned type "void". This doesn't actually affect the build, but # I'm not sure where else to put this. ~ahill sed -i "s/main()/void main()/" scripts/kconfig/lxdialog/check-lxdialog.sh - make -O -j $TT_PROCS + # NOTE: AR, CC, and HOSTCC are required here due to GNU dependencies. ~ahill + make -O -j $TT_PROCS AR=ar CC=clang HOSTCC=clang } clean() { - rm -rf busybox-*/ + rm -rf busybox-$SRC_VERSION/ } package() { - cd busybox-*/ + cd busybox-$SRC_VERSION/ # NOTE: Busybox doesn't have a proper DESTDIR, so we just set CONFIG_PREFIX # during the install to work around this limitation. ~ahill - make -O -j $TT_PROCS install CONFIG_PREFIX=$TT_INSTALLDIR -}
\ No newline at end of file + # NOTE: Once again, AR, CC, and HOSTCC are set because we're using LLVM and + # not GCC. ~ahill + make -O -j $TT_PROCS install AR=ar CC=clang CONFIG_PREFIX=$TT_INSTALLDIR HOSTCC=$CC +} diff --git a/sources/bzip2/bzip2.spec b/sources/bzip2/bzip2.spec index 956ce0d..55a9a0f 100644 --- a/sources/bzip2/bzip2.spec +++ b/sources/bzip2/bzip2.spec @@ -1,8 +1,9 @@ # Maintainer: Alexander Hill <ahill@breadpudding.dev> SRC_HASH="ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269" SRC_NAME="bzip2" +SRC_REVISION=2 SRC_URL="https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz" -SRC_VERSION="1.0.8r2" +SRC_VERSION="1.0.8" # TODO: Install the man pages ~ahill diff --git a/sources/cmake/cmake.spec b/sources/cmake/cmake.spec index 5687bba..b82a8d1 100644 --- a/sources/cmake/cmake.spec +++ b/sources/cmake/cmake.spec @@ -1,8 +1,9 @@ # Maintainer: Alexander Hill <ahill@breadpudding.dev> SRC_HASH="4104e94657d247c811cb29985405a360b78130b5d51e7f6daceb2447830bd579" SRC_NAME="cmake" +SRC_REVISION=1 SRC_URL="https://github.com/Kitware/CMake/releases/download/v4.2.0/cmake-4.2.0.tar.gz" -SRC_VERSION="4.2.0r1" +SRC_VERSION="4.2.0" build() { tar xf ../$SRC_FILENAME diff --git a/sources/muon/muon.spec b/sources/muon/muon.spec index 0828618..0de3bdd 100644 --- a/sources/muon/muon.spec +++ b/sources/muon/muon.spec @@ -2,8 +2,9 @@ SRC_FILENAME="muon-0.5.0.tar.gz" SRC_HASH="565c1b6e1e58f7e90d8813fda0e2102df69fb493ddab4cf6a84ce3647466bee5" SRC_NAME="muon" +SRC_REVISION=1 SRC_URL="https://git.sr.ht/~lattis/muon/archive/0.5.0.tar.gz" -SRC_VERSION="0.5.0r1" +SRC_VERSION="0.5.0" build() { tar xf ../$SRC_FILENAME diff --git a/sources/musl/musl.spec b/sources/musl/musl.spec index a4fb38a..455bb7f 100755 --- a/sources/musl/musl.spec +++ b/sources/musl/musl.spec @@ -4,8 +4,9 @@ SRC_NAME="musl" SRC_PATCHES=" c0ffd0493dcde91850e39428a31577892aad20e83bc4bf4a5c37350649ce7932 CVE-2025-26519.patch " +SRC_REVISION=1 SRC_URL="https://musl.libc.org/releases/musl-1.2.5.tar.gz" -SRC_VERSION="1.2.5r1" +SRC_VERSION="1.2.5" build() { tar xf ../$SRC_FILENAME diff --git a/sources/ncurses/ncurses.spec b/sources/ncurses/ncurses.spec index 14165c6..0128c50 100644 --- a/sources/ncurses/ncurses.spec +++ b/sources/ncurses/ncurses.spec @@ -1,8 +1,9 @@ # 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.5r1" +SRC_VERSION="6.5" # TODO: Remove the target triple prefix from all of ncurses' executables ~ahill diff --git a/sources/perl/perl.spec b/sources/perl/perl.spec index bc737a1..310694c 100644 --- a/sources/perl/perl.spec +++ b/sources/perl/perl.spec @@ -1,8 +1,9 @@ # Maintainer: Alexander Hill <ahill@breadpudding.dev> SRC_HASH="e093ef184d7f9a1b9797e2465296f55510adb6dab8842b0c3ed53329663096dc" SRC_NAME="perl" +SRC_REVISION=1 SRC_URL="https://www.cpan.org/src/5.0/perl-5.42.0.tar.gz" -SRC_VERSION="5.42.0r1" +SRC_VERSION="5.42.0" build() { tar xf ../$SRC_FILENAME @@ -18,6 +18,12 @@ # Changelog # ############# +# December 6, 2025 (1.4.0) +# + Added sane defaults for the environment if they are not defined [ahill] +# + Added SRC_REVISION and SRC_FULLVERSION to prevent issues related to +# SRC_VERSION [ahill] +# * Fixed an issue where uninstalls fail due to spaces in the filename [ahill] + # November 29, 2025 (1.3.1) # + Added GNUInstallDirs to TT_CMAKE_COMMON [ahill] # * Tweaked the messages to make it easier to see that treetap exited @@ -73,13 +79,19 @@ # package - Installs the package contents to $TT_INSTALLDIR # Specification Variables: -# SRC_FILENAME - The name of the tarball to extract (optional) -# SRC_HASH - The hash of the tarball for verification purposes (required) -# SRC_NAME - The name of the package being built (required) -# SRC_PATCHES - A list of SHA256 hashes followed by their filenames to be +# SRC_FILENAME - The name of the tarball to extract (optional) +# SRC_FULLVERSION - The full version of the package, which is automatically +# set to SRC_VERSION, or "(SRC_VERSION)r(SRC_REVISION)" if +# SRC_REVISION is set. +# SRC_HASH - The hash of the tarball for verification purposes +# (required) +# SRC_NAME - The name of the package being built (required) +# SRC_PATCHES - A list of SHA256 hashes followed by their filenames to be # copied to the build directory (optional) -# SRC_URL - The URL of the tarball to be downloaded (required) -# SRC_VERSION - The version of the package being built (required) +# SRC_REVISION - The package revision number to denote changes specifically +# made for Maple Linux (optional) +# SRC_URL - The URL of the tarball to be downloaded (required) +# SRC_VERSION - The version of the package being built (required) # Treetap Variables: # TT_ARCH - The architecture portion of TT_TARGET @@ -134,7 +146,22 @@ [ -z "$TT_DIR" ] && TT_DIR="$(pwd)/.treetap" [ -z "$TT_PKGDIR" ] && TT_PKGDIR="$TT_DIR/packages" [ -z "$TT_SYSROOT" ] && TT_SYSROOT=/ -TT_VERSION="1.3.1" +TT_VERSION="1.4.0" + +######################### +# Environment Variables # +######################### + +[ -z "$AR" ] && export AR=ar +[ -z "$AS" ] && export AS=nasm +[ -z "$CC" ] && export CC=clang +[ -z "$CXX" ] && export CXX=clang++ +[ -z "$LD" ] && export LD=mold +[ -z "$NM" ] && export NM=nm +[ -z "$OBJCOPY" ] && export OBJCOPY=objcopy +[ -z "$OBJDUMP" ] && export OBJDUMP=objdump +[ -z "$PKG_CONFIG" ] && export PKG_CONFIG=pkgconf +[ -z "$STRIP" ] && export STRIP=strip ##################### # Utility Functions # @@ -184,6 +211,11 @@ source_spec() { [ -z "$SRC_NAME" ] && (echo "source_spec: SRC_NAME is required but not defined"; exit 1) [ -z "$SRC_URL" ] && (echo "source_spec: SRC_URL is required but not defined"; exit 1) [ -z "$SRC_VERSION" ] && (echo "source_spec: SRC_VERSION is required but not defined"; exit 1) + if [ -z "$SRC_REVISION" ]; then + SRC_FULLVERSION=$SRC_VERSION + else + SRC_FULLVERSION="${SRC_VERSION}r${SRC_REVISION}" + fi # Optional Fields [ -z "$SRC_FILENAME" ] && SRC_FILENAME=$(basename $SRC_URL) @@ -314,10 +346,10 @@ package_uninstall() { PUSHD=$(pwd) cd $TT_SYSROOT bsdcpio -iJt < $PKG_FULLPATH | tail -n +2 | sort -r | while read path; do - if [ -d $path ]; then - rmdir --ignore-fail-on-non-empty $path + if [ -d "$path" ]; then + rmdir --ignore-fail-on-non-empty "$path" else - rm -f $path + rm -f "$path" fi done cd $PUSHD @@ -329,12 +361,12 @@ source_build() { source_spec $1 mkdir -p $TT_BUILDDIR if [ ! -z "$SRC_PATCHES" ]; then - echo -n "Validating patches for $SRC_NAME $SRC_VERSION... " + echo -n "Validating patches for $SRC_NAME $SRC_FULLVERSION... " cd $(dirname $1) echo $SRC_PATCHES | sha256sum -c - > /dev/null # Is this even the right way to check a return value? ~ahill if [ ! "$?" = "0" ]; then - echo "Failed to validate patches for $SRC_NAME $SRC_VERSION for $TT_MICROARCH ($TT_TARGET)" + echo "Failed to validate patches for $SRC_NAME $SRC_FULLVERSION for $TT_MICROARCH ($TT_TARGET)" exit 1 fi echo $SRC_PATCHES | while read line; do @@ -342,7 +374,7 @@ source_build() { done echo "Done!" fi - echo -n "Building $SRC_NAME $SRC_VERSION for $TT_MICROARCH... " + echo -n "Building $SRC_NAME $SRC_FULLVERSION for $TT_MICROARCH... " PUSHD=$(pwd) cd $TT_BUILDDIR # Please don't use this in your build script. This is meant for @@ -362,7 +394,7 @@ source_clean() { mkdir -p $TT_BUILDDIR PUSHD=$(pwd) cd $TT_BUILDDIR - echo -n "Cleaning $SRC_NAME $SRC_VERSION for $TT_MICROARCH... " + echo -n "Cleaning $SRC_NAME $SRC_FULLVERSION for $TT_MICROARCH... " clean rm -rf $TT_INSTALLDIR cd $PUSHD @@ -402,10 +434,10 @@ source_package() { mkdir -p $TT_PKGDIR/$TT_MICROARCH PUSHD=$(pwd) cd $TT_BUILDDIR - echo -n "Archiving $SRC_NAME $SRC_VERSION for $TT_MICROARCH... " + echo -n "Archiving $SRC_NAME $SRC_FULLVERSION for $TT_MICROARCH... " package > package-$(date +%Y%m%d%H%M%S).log cd $TT_INSTALLDIR - find | bsdcpio -Jo > "$TT_PKGDIR/$TT_MICROARCH/$SRC_NAME-$SRC_VERSION-$TT_MICROARCH.cpio.xz" + find | bsdcpio -Jo > "$TT_PKGDIR/$TT_MICROARCH/$SRC_NAME-$SRC_FULLVERSION-$TT_MICROARCH.cpio.xz" rm -rf $TT_INSTALLDIR cd $PUSHD exit 0 |
