From d97f4abeb3a36af6b8d6289edb725d1e6522a71f Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Mon, 13 Oct 2025 13:29:12 -0400 Subject: [PATCH 01/74] Updated sources and moved configuration to its own folder --- Dockerfile | 4 +- LICENSE | 2 +- build-bootstrap.sh | 82 ++-- build-chroot.sh | 334 ++++++--------- .../linux.x86_64.config | 0 fetch-sources.sh | 28 +- patches/mrustc-maple.patch | 385 ----------------- patches/rustc-src-maple.patch | 399 ------------------ limine.conf => root/boot/limine.conf | 0 root/etc/chrony.conf | 2 + root/etc/group | 2 + root/etc/hostname | 1 + root/etc/init.d/chronyd | 4 + root/etc/init.d/dhcpcd | 6 + root/etc/init.d/dropbear | 4 + root/etc/init.d/mdevd | 6 + root/etc/os-release | 5 + root/etc/pam.d/sshd | 5 + root/etc/pam.d/system-auth | 5 + root/etc/passwd | 2 + root/etc/resolv.conf | 2 + root/etc/shadow | 2 + root/etc/shells | 2 + sources.list | 291 ++++++------- 24 files changed, 395 insertions(+), 1178 deletions(-) rename linux.x86_64.config => config/linux.x86_64.config (100%) delete mode 100644 patches/mrustc-maple.patch delete mode 100644 patches/rustc-src-maple.patch rename limine.conf => root/boot/limine.conf (100%) create mode 100644 root/etc/chrony.conf create mode 100644 root/etc/group create mode 100644 root/etc/hostname create mode 100755 root/etc/init.d/chronyd create mode 100755 root/etc/init.d/dhcpcd create mode 100755 root/etc/init.d/dropbear create mode 100755 root/etc/init.d/mdevd create mode 100644 root/etc/os-release create mode 100644 root/etc/pam.d/sshd create mode 100644 root/etc/pam.d/system-auth create mode 100644 root/etc/passwd create mode 100644 root/etc/resolv.conf create mode 100644 root/etc/shadow create mode 100644 root/etc/shells diff --git a/Dockerfile b/Dockerfile index 4cc92c8..2b16c4d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,5 +2,5 @@ FROM alpine:latest RUN apk update RUN apk upgrade -RUN apk add cargo clang cmake curl git libc++ linux-headers makedoas python3 rsync rust samurai umount -RUN git clone https://github.com/cbpudding/maplelinux-bootstrap /maple \ No newline at end of file +RUN apk add cargo clang cmake curl git libc++ linux-headers make python3 rsync rust samurai umount +RUN git clone https://github.com/cbpudding/maplelinux-bootstrap /maple diff --git a/LICENSE b/LICENSE index b2a6784..fe784d2 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ ISC License -Copyright (c) Alexander Hill, Nicholas McDaniel, and Maple Linux Contributors +Copyright (c) 2024-2025 Alexander Hill, Nicholas McDaniel, and Maple Linux Contributors Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above diff --git a/build-bootstrap.sh b/build-bootstrap.sh index 3cbc828..e4bf660 100755 --- a/build-bootstrap.sh +++ b/build-bootstrap.sh @@ -82,14 +82,13 @@ cmake -B stage1 -G Ninja -S llvm \ -DLLVM_HOST_TRIPLE=$BUILD \ -DLLVM_INSTALL_BINUTILS_SYMLINKS=ON \ -DLLVM_INSTALL_UTILS=ON \ - -DLLVM_LINK_LLVM_DYLIB=ON \ - -DLLVM_TARGETS_TO_BUILD=X86 + -DLLVM_LINK_LLVM_DYLIB=ON cmake --build stage1 cmake --install stage1 cd .. export CC="$MAPLE/maple/tools/bin/clang" -export CFLAGS="-O3 -march=skylake -pipe --sysroot=$MAPLE" +export CFLAGS="$CFLAGS --sysroot=$MAPLE" export CXX="$MAPLE/maple/tools/bin/clang++" export CXXFLAGS="$CFLAGS" export LD=$MAPLE/maple/tools/bin/ld.lld @@ -136,8 +135,8 @@ cd dash-*/ --libexecdir=/lib \ --prefix="" \ --sharedstatedir=/usr/com -make -j $THREADS -make -j $THREADS install DESTDIR=$MAPLE +make -O -j $THREADS +make -O -j $THREADS install DESTDIR=$MAPLE ln -sf dash $MAPLE/bin/sh cd .. @@ -152,8 +151,8 @@ cd m4-*/ --libexecdir=/lib \ --prefix="" \ --sharedstatedir=/usr/com -make -j $THREADS -make -j $THREADS install DESTDIR=$MAPLE +make -O -j $THREADS +make -O -j $THREADS install DESTDIR=$MAPLE cd .. # Coreutils Build @@ -167,8 +166,8 @@ cd coreutils-*/ --libexecdir=/lib \ --prefix="" \ --sharedstatedir=/usr/com -make -j $THREADS -make -j $THREADS install DESTDIR=$MAPLE +make -O -j $THREADS +make -O -j $THREADS install DESTDIR=$MAPLE cd .. # Diffutils Build @@ -181,8 +180,8 @@ cd diffutils-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install DESTDIR=$MAPLE +make -O -j $THREADS +make -O -j $THREADS install DESTDIR=$MAPLE cd .. # Findutils Build @@ -196,8 +195,8 @@ cd findutils-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install DESTDIR=$MAPLE +make -O -j $THREADS +make -O -j $THREADS install DESTDIR=$MAPLE cd .. # Grep Build @@ -211,8 +210,8 @@ cd grep-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install DESTDIR=$MAPLE +make -O -j $THREADS +make -O -j $THREADS install DESTDIR=$MAPLE cd .. # Gzip Build @@ -225,8 +224,8 @@ cd gzip-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREAD -make -j $THREAD install DESTDIR=$MAPLE +make -O -j $THREAD +make -O -j $THREAD install DESTDIR=$MAPLE cd .. # Make Build @@ -241,8 +240,8 @@ cd make-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREAD -make -j $THREAD install DESTDIR=$MAPLE +make -O -j $THREAD +make -O -j $THREAD install DESTDIR=$MAPLE cd .. # Sed Build @@ -257,8 +256,8 @@ cd sed-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREAD -make -j $THREAD install DESTDIR=$MAPLE +make -O -j $THREAD +make -O -j $THREAD install DESTDIR=$MAPLE cd .. # Tar Build @@ -272,8 +271,8 @@ cd tar-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREAD -make -j $THREAD install DESTDIR=$MAPLE +make -O -j $THREAD +make -O -j $THREAD install DESTDIR=$MAPLE cd .. # Xz Build @@ -290,8 +289,8 @@ cd xz-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREAD -make -j $THREAD install DESTDIR=$MAPLE +make -O -j $THREAD +make -O -j $THREAD install DESTDIR=$MAPLE cd .. # Gawk Build @@ -305,8 +304,8 @@ cd gawk-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install DESTDIR=$MAPLE +make -O -j $THREADS +make -O -j $THREADS install DESTDIR=$MAPLE cd .. # LLVM Build (Stage 2) @@ -334,17 +333,24 @@ echo "set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)" >> $TOOLCHAIN_FILE # NOTE: compiler-rt fails to build on musl because execinfo.h is missing. # Disabling COMPILER_RT_BUILD_GWP_ASAN works. ~ahill # See also: https://github.com/llvm/llvm-project/issues/60687 +# TODO: When building LLVM from an older version, clang-tblgen and llvm-tblgen +# start complaining about missing libc++ symbols when CMake builds a +# native version for the build. CLANG_TABLEGEN and LLVM_TABLEGEN are both +# set, but that only seems to temporarily defer the build. ~ahill +# See also: https://github.com/llvm/llvm-project/issues/53561 cmake -B stage2 -G Ninja -S llvm \ - -DCMAKE_BUILD_TYPE=Release \ - -DCLANG_DEFAULT_CXX_STDLIB=libc++ \ + -DCLANG_DEFAULT_CXX_STDLIB=libc++ \ -DCLANG_DEFAULT_RTLIB=compiler-rt \ -DCLANG_DEFAULT_UNWINDLIB=libunwind \ - -DCMAKE_BUILD_PARALLEL_LEVEL=$THREADS \ + -DCLANG_VENDOR=Maple \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \ + -DCMAKE_INSTALL_BINDIR=$MAPLE/bin \ -DCMAKE_INSTALL_LIBDIR=$MAPLE/lib \ -DCMAKE_INSTALL_PREFIX=$MAPLE/usr \ -DCMAKE_INSTALL_RPATH=/lib \ + -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -DCMAKE_TOOLCHAIN_FILE=$(pwd)/$TOOLCHAIN_FILE \ - -DCLANG_VENDOR=Maple \ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF \ -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON \ -DLIBCXX_CXX_ABI=libcxxabi \ @@ -364,9 +370,7 @@ cmake -B stage2 -G Ninja -S llvm \ -DLLVM_HOST_TRIPLE=$HOST \ -DLLVM_INSTALL_BINUTILS_SYMLINKS=ON \ -DLLVM_INSTALL_UTILS=ON \ - -DLLVM_LINK_LLVM_DYLIB=ON \ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ - -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON + -DLLVM_LINK_LLVM_DYLIB=ON cmake --build stage2 cmake --install stage2 ln -sf clang $MAPLE/bin/cc @@ -377,8 +381,14 @@ ln -sf ld.lld $MAPLE/bin/ld mv $MAPLE/maple/tools/include/$HOST/c++/v1/__config_site $MAPLE/maple/tools/include/c++/v1/ cd .. +# Rust Build +tar xf ../sources/rustc-*.tar* +cd rustc-*/ +# ... +cd .. + cd .. # Copy the necessary configuration files to the bootstrap -cp limine.conf $MAPLE/boot/ -cp linux.$(uname -m).config $MAPLE/maple/ \ No newline at end of file +cp -rv root/* maple/ +cp config/linux.$(uname -m).config $MAPLE/maple/ diff --git a/build-chroot.sh b/build-chroot.sh index 643936c..f790331 100755 --- a/build-chroot.sh +++ b/build-chroot.sh @@ -29,8 +29,8 @@ cd libressl-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install # NOTE: No need to hide what we're using. ~ahill ln -s openssl /bin/libressl cd .. @@ -38,8 +38,8 @@ cd .. # bzip2 Build tar xf ../sources/bzip2-*.tar* cd bzip2-*/ -make CC=clang -make install CC=clang PREFIX=/usr +make -O CC=clang +make -O install CC=clang PREFIX=/usr cd .. # cpio Build @@ -52,8 +52,8 @@ cd cpio-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # libarchive Build @@ -66,8 +66,8 @@ cd libarchive-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # libexpat Build @@ -80,8 +80,8 @@ cd expat-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # pkgconf Build @@ -95,8 +95,8 @@ cd pkgconf-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install ln -s pkgconf /bin/pkg-config cd .. @@ -111,8 +111,8 @@ cd perl-*/ -Duseshrplib \ -Dusethreads \ -Ud_eaccess -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # Autoconf Build @@ -124,8 +124,8 @@ cd autoconf-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # Automake Build @@ -137,8 +137,8 @@ cd automake-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # libtool Build @@ -151,8 +151,8 @@ cd libtool-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # cURL Build @@ -175,8 +175,8 @@ cd curl-*/ --with-zlib \ --with-zsh-functions-dir \ --without-libpsl -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # CMake Build @@ -196,8 +196,8 @@ cd cmake-*/ --system-liblzma \ --system-zlib \ --xdgdatadir=usr/share -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # Samurai Build @@ -207,8 +207,8 @@ cd samurai-*/ # the Makefile. ~ahill sed -i "s/^PREFIX=.*/PREFIX=\/usr/" Makefile # NOTE: CC is manually defined due to the use of the c99 command. ~ahill -make -j $THREADS CC=clang -make -j $THREADS install +make -O -j $THREADS CC=clang +make -O -j $THREADS install cd .. # git Build @@ -220,8 +220,8 @@ cd git-*/ # NOTE: Passing NO_TCLTK disables the GUI and passing NO_GETTEXT disables locale # generation... unless it attempts to build the GUI, where it will attempt # to generate the locales anyways. ~ahill -make -j $THREADS all prefix=/usr NO_GETTEXT=YesUnfortunately NO_REGEX=NeedsStartEnd NO_TCLTK=YesPlease -make -j $THREADS install prefix=/usr NO_GETTEXT=YesUnfortunately NO_REGEX=NeedsStartEnd NO_TCLTK=YesPlease +make -O -j $THREADS all prefix=/usr NO_GETTEXT=YesUnfortunately NO_REGEX=NeedsStartEnd NO_TCLTK=YesPlease +make -O -j $THREADS install prefix=/usr NO_GETTEXT=YesUnfortunately NO_REGEX=NeedsStartEnd NO_TCLTK=YesPlease cd .. # muon Build @@ -252,8 +252,8 @@ cd ncurses-*/ --without-ada \ --without-manpages \ --without-normal -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install # NOTE: These symbolic links are for backwards compatibility. Specifically, for # fixing "make menuconfig" for the Linux kernel, since it looks for the # non-wide version of the library. ~ahill @@ -276,8 +276,8 @@ CFLAGS="-Wno-implicit-int" ./configure \ --exec-prefix="" \ --libexecdir=/lib \ --prefix=/usr -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install # NOTE: While zsh isn't 100% compatible with bash, it can still be used as a # reliable replacement in this case. ~ahill ln -s zsh /bin/bash @@ -287,8 +287,8 @@ cd .. tar xf ../sources/libcap-*.tar* cd libcap-*/ # NOTE: Review additional prefix settings for correctness -make CC=clang prefix=/usr lib=lib -j $THREADS -make prefix=/usr lib=lib -j $THREADS install +make CC=clang prefix=/usr lib=lib -O -j $THREADS +make prefix=/usr lib=lib -O -j $THREADS install cd .. # Linux PAM Build @@ -306,19 +306,6 @@ LDFLAGS="-Wl,--undefined-version" muon setup build # the Internet to download meson's tests in our current state. ~ahill samu -C build muon -C build install -# FIXME: This is enough to get PAM authentication going, but this really should -# be reviewed before it is put anywhere important. ~ahill -mkdir -p /etc/pam.d -echo "#%PAM-1.0" > /etc/pam.d/system-auth -echo "auth required pam_unix.so nullok" >> /etc/pam.d/system-auth -echo "account required pam_unix.so" >> /etc/pam.d/system-auth -echo "password required pam_unix.so nullok shadow" >> /etc/pam.d/system-auth -echo "session required pam_unix.so" >> /etc/pam.d/system-auth -echo "#%PAM-1.0" > /etc/pam.d/sshd -echo "auth include system-auth" >> /etc/pam.d/sshd -echo "account include system-auth" >> /etc/pam.d/sshd -echo "password include system-auth" >> /etc/pam.d/sshd -echo "session include system-auth" >> /etc/pam.d/sshd cd .. # OpenRC Build @@ -347,8 +334,8 @@ cd nasm-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # Limine Build @@ -361,8 +348,8 @@ cd limine-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # dosfstools Build @@ -374,8 +361,8 @@ cd dosfstools-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # bison Build @@ -388,8 +375,8 @@ cd bison-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # flex Build @@ -403,8 +390,8 @@ cd flex-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # util-linux Build @@ -427,8 +414,8 @@ cd util-linux-* --sysconfdir=/etc \ --without-python \ --without-systemd -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # libinih Build @@ -452,8 +439,8 @@ cd userspace-rcu-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # xfsprogs Build @@ -476,8 +463,8 @@ CFLAGS=-DOVERRIDE_SYSTEM_STATX ./configure \ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # bc Build @@ -493,8 +480,8 @@ cd bc-*/ # MAKEINFO=true replaces the makeinfo executable (which we don't have) # with `/usr/bin/true`. This is fine for the bootstrap, but should # not be done when properly packaged. ~nmcdaniel -make MAKEINFO=true -j $THREADS -make MAKEINFO=true -j $THREADS install +make MAKEINFO=true -O -j $THREADS +make MAKEINFO=true -O -j $THREADS install cd .. # libelf Build @@ -512,8 +499,8 @@ make -j $THREADS libelf.so # NOTE: INCDIR is manually set here because it defaults to $(PREFIX)/include, # which becomes /include. Setting this to /usr/include fixes installation. # ~ahill -make -j $THREADS install-headers INCDIR=/usr/include -make -j $THREADS install-shared +make -O -j $THREADS install-headers INCDIR=/usr/include +make -O -j $THREADS install-shared cd .. # Linux Build @@ -571,12 +558,12 @@ cd procps-ng-*/ --prefix=/usr \ --sysconfdir=/etc \ --without-ncurses -make -j $THREADS +make -O -j $THREADS # FIXME: For some reason, a -e sneaks its way into local/capnames.h, which # causes a syntax error to occur. This is an incredibly jank patch and I # don't know what causes this yet. ~ahill sed -i "s/^-e//" local/capnames.h -make -j $THREADS install +make -O -j $THREADS install cd .. # kbd Build @@ -593,8 +580,8 @@ cd kbd-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # iproute2 Build @@ -605,7 +592,7 @@ cd iproute2-*/ # musl, which means we need to manually define HAVE_HANDLE_AT and # HAVE_SETNS to make it work properly. ~ahill CFLAGS="$(CFLAGS) -DHAVE_HANDLE_AT -DHAVE_SETNS" make -j $THREADS CC=clang -make -j $THREADS install +make -O -j $THREADS install cd .. # libmd Build @@ -618,8 +605,8 @@ cd libmd-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # libbsd Build @@ -633,8 +620,8 @@ cd libbsd-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # Shadow Build @@ -648,8 +635,8 @@ cd shadow-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # nano Build @@ -664,8 +651,8 @@ cd nano-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # dhcpcd Build @@ -678,40 +665,16 @@ cd dhcpcd-*/ --prefix=/usr \ --sbindir=/sbin \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install -# NOTE: dhcpcd doesn't come with OpenRC support, so we need to add the entry -# under /etc/init.d. First time actually writing an OpenRC service, so -# expect strangeness to occur. ~ahill -echo "#!/sbin/openrc-run" > /etc/init.d/dhcpcd -echo "description=\"DHCP Client Daemon\"" >> /etc/init.d/dhcpcd -echo "command=\"/sbin/dhcpcd\"" >> /etc/init.d/dhcpcd -echo "command_args=\"-M\"" >> /etc/init.d/dhcpcd -echo "command_args_background=\"-b\"" >> /etc/init.d/dhcpcd -# NOTE: dhcpcd forks itself to the background, meaning a custom PID file will -# not function as intended. Instead, use dhcpcd's own /run/dhcpcd/pid to -# tell OpenRC where to find the service. ~ahill -echo "pidfile=\"/run/dhcpcd/pid\"" >> /etc/init.d/dhcpcd -chmod +x /etc/init.d/dhcpcd -rc-update add dhcpcd default +make -O -j $THREADS +make -O -j $THREADS install cd .. # Chrony Build tar xf ../sources/chrony-*.tar* cd chrony-*/ ./configure --exec-prefix=/ --prefix=/usr -make -j $THREADS -make -j $THREADS install -echo "cmdport 0" > /etc/chrony.conf -echo "pool pool.ntp.org iburst maxsources 3" >> /etc/chrony.conf -echo "#!/sbin/openrc-run" > /etc/init.d/chronyd -echo "description=\"Network Time Protocol Daemon\"" >> /etc/init.d/chronyd -echo "command=\"/sbin/chronyd\"" >> /etc/init.d/chronyd -# I guess we should just point OpenRC to the existing PID file unless the daemon -# doesn't make its own? ~ahill -echo "pidfile=\"/run/chrony/chronyd.pid\"" >> /etc/init.d/chronyd -chmod +x /etc/init.d/chronyd -rc-update add chronyd default +make -O -j $THREADS +make -O -j $THREADS install cd .. # libmnl Build @@ -724,8 +687,8 @@ cd libmnl-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # libnftnl Build @@ -738,8 +701,8 @@ cd libnftnl-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # libgmp Build @@ -777,8 +740,8 @@ cd nftables-*/ --prefix=/usr \ --sysconfdir=/etc \ --without-cli -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # patch Build @@ -790,8 +753,8 @@ cd patch-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # X.Org Utility Macros Build @@ -805,7 +768,7 @@ cd macros-util-macros-*/ --sysconfdir=/etc # NOTE: make claims that there's nothing to do for the build... so we just # don't. ~ahill -make -j $THREADS install +make -O -j $THREADS install cd .. # libxtrans Build @@ -819,7 +782,7 @@ cd libxtrans-xtrans-*/ --prefix=/usr \ --sysconfdir=/etc # NOTE: Once again, make does nothing. ~ahill -make -j $THREADS install +make -O -j $THREADS install cd .. # xorgproto Build @@ -839,8 +802,8 @@ cd libffi-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # Python Build @@ -861,8 +824,8 @@ cd Python-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # xcbproto Build @@ -874,8 +837,8 @@ cd xcbproto-xcb-proto-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # libXau Build @@ -897,8 +860,8 @@ cd libxcb-libxcb-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # libX11 Build @@ -918,8 +881,8 @@ ac_cv_path_RAWCPP="clang -E -" ./autogen.sh \ --sysconfdir=/etc \ --without-xsltproc \ --without-xmlto -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # Pixman Build @@ -965,8 +928,8 @@ cd util-font-util-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # libfontenc Build @@ -980,8 +943,8 @@ cd libfontenc-libfontenc-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # libXfont2 Build @@ -995,8 +958,8 @@ cd libxfont-libXfont2-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # libxcvt Build @@ -1019,8 +982,8 @@ cd skalibs-*/ --enable-pkgconfig \ --includedir=/usr/include \ --prefix=/ -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # mdevd Build @@ -1033,23 +996,16 @@ cd mdevd-*/ --includedir=/usr/include \ --libexecdir=/lib \ --prefix=/ -make -j $THREADS -make -j $THREADS install -echo "#!/sbin/openrc-run" > /etc/init.d/mdevd -echo "description=\"Mini Device Mapper Daemon\"" >> /etc/init.d/mdevd -echo "command=\"/bin/mdevd\"" >> /etc/init.d/mdevd -echo "command_args=\"-O4\"" >> /etc/init.d/mdevd -echo "command_background=\"yes\"" >> /etc/init.d/mdevd -echo "pidfile=\"/run/mdevd.pid\"" >> /etc/init.d/mdevd -chmod +x /etc/init.d/mdevd +make -O -j $THREADS +make -O -j $THREADS install cd .. # libudev-zero Build tar xf ../sources/libudev-zero-*.tar* cd libudev-zero-*/ # FIXME: libudev-zero copies headers to /include instead of /usr/include. ~ahill -make -j $THREADS -make -j $THREADS install PREFIX=/ +make -O -j $THREADS +make -O -j $THREADS install PREFIX=/ cd .. # libXdmcp Build @@ -1063,8 +1019,8 @@ cd libxdmcp-libXdmcp-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # Flit Core Build @@ -1340,8 +1296,8 @@ cd libxext-libXext-*/ --without-fop \ --without-xmlto \ --without-xsltproc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # libXfixes Build @@ -1354,8 +1310,8 @@ cd libxfixes-libXfixes-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # libxshmfence Build @@ -1369,8 +1325,8 @@ cd libxshmfence-libxshmfence-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # libXxf86vm Build @@ -1383,8 +1339,8 @@ cd libxxf86vm-libXxf86vm-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # libXrender Build @@ -1397,8 +1353,8 @@ cd libxrender-libXrender-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # libXrandr Build @@ -1411,8 +1367,8 @@ cd libxrandr-libXrandr-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # Mesa Build @@ -1491,8 +1447,8 @@ mv xcb-util-m4-*/ m4 --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # XCB Util WM Build @@ -1510,8 +1466,8 @@ mv xcb-util-m4-*/ m4 --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # Xlibre Build @@ -1543,8 +1499,8 @@ cd xf86-video-vesa-xlibre-xf86-video-vesa-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # Dropbear Build @@ -1557,17 +1513,10 @@ cd dropbear-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install # NOTE: Creating an ssh alias here for convenience's sake. ~ahill ln -s dbclient /bin/ssh -# NOTE: Dropbear doesn't come with OpenRC support, but that's simple enough to -# fix. ~ahill -echo "#!/bin/openrc-run" > /etc/init.d/dropbear -echo "command=\"/bin/dropbear\"" >> /etc/init.d/dropbear -echo "command_args=\"-R\"" >> /etc/init.d/dropbear -echo "pidfile=\"/run/dropbear.pid\"" >> /etc/init.d/dropbear -chmod +x /etc/init.d/dropbear # NOTE: Dropbear won't make keys if the directory doesn't exist. ~ahill mkdir -p /etc/dropbear cd .. @@ -1585,8 +1534,8 @@ cd mtdev-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # evdev Build @@ -1601,8 +1550,8 @@ cd libevdev-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # libinput Build @@ -1630,8 +1579,8 @@ cd xf86-input-libinput-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # Pytest Runner Build @@ -1671,8 +1620,8 @@ cd xkbcomp-*/ --localstatedir=/var \ --prefix=/usr \ --sysconfdir=/etc -make -j $THREADS -make -j $THREADS install +make -O -j $THREADS +make -O -j $THREADS install cd .. # PCRE2 Build @@ -1925,26 +1874,13 @@ cd .. # FIXME: libepoxy has a known bug with this version of muon. See the Mesa build # for more information. ~ahill -# Basic Configuration -echo "root:x:0:0::/:/bin/zsh" > /etc/passwd -echo "root:x:0:root" > /etc/group -echo "root::20295::::::" > /etc/shadow -echo "/bin/sh" > /etc/shells -echo "/bin/zsh" >> /etc/shells -echo "maple" > /etc/hostname -echo "NAME=Maple Linux" > /etc/os-release -echo "VERSION=2025" >> /etc/os-release -echo "ID=maple" >> /etc/os-release -echo "VERSION_ID=2025" >> /etc/os-release -echo "PRETTY_NAME=\"Maple Linux\"" >> /etc/os-release -echo "nameserver 1.1.1.1" > /etc/resolv.conf -echo "nameserver 1.0.0.1" >> /etc/resolv.conf - # Finally, make the image bootable. cp /usr/share/limine/BOOTX64.EFI /boot/EFI/BOOT/ ln -s agetty /etc/init.d/agetty.tty1 cp /etc/conf.d/agetty /etc/conf.d/agetty.tty1 rc-update add agetty.tty1 default +rc-update add chronyd default +rc-update add dhcpcd default # NOTE: Dropbear currently included for troubleshooting purposes. Should be # disabled for desktop systems. ~ahill rc-update add dropbear default diff --git a/linux.x86_64.config b/config/linux.x86_64.config similarity index 100% rename from linux.x86_64.config rename to config/linux.x86_64.config diff --git a/fetch-sources.sh b/fetch-sources.sh index 6d700ea..8d7e409 100755 --- a/fetch-sources.sh +++ b/fetch-sources.sh @@ -2,17 +2,21 @@ mkdir -p sources cd sources cat ../sources.list | while read line; do - HASH=$(echo $line | cut -d"," -f1) - URL=$(echo $line | cut -d"," -f2) - CANONICAL=$(echo $line | cut -d"," -f3) - if [ -z "$CANONICAL" ]; then - OUTPUT=$(basename $URL) - else - OUTPUT=$CANONICAL + # This ignores lines starting with # so comments can be added. ~ahill + if case $line in \#*) false;; *) true;; esac; then + HASH=$(echo $line | cut -d"," -f1) + # Comments (-f2) are ignored by the script ~ahill + URL=$(echo $line | cut -d"," -f3) + CANONICAL=$(echo $line | cut -d"," -f4) + if [ -z "$CANONICAL" ]; then + OUTPUT=$(basename $URL) + else + OUTPUT=$CANONICAL + fi + if [ ! -f "$OUTPUT" ]; then + echo $OUTPUT + curl -L $URL -o $OUTPUT + fi + echo "$HASH $OUTPUT" | sha256sum -c - fi - if [ ! -f "$OUTPUT" ]; then - echo $OUTPUT - curl -L $URL -o $OUTPUT - fi - echo "$HASH $OUTPUT" | sha256sum -c - done diff --git a/patches/mrustc-maple.patch b/patches/mrustc-maple.patch deleted file mode 100644 index 97d6018..0000000 --- a/patches/mrustc-maple.patch +++ /dev/null @@ -1,385 +0,0 @@ -diff -ruN mrustc-0.11.2.orig/src/ast/ast.cpp mrustc-0.11.2/src/ast/ast.cpp ---- mrustc-0.11.2.orig/src/ast/ast.cpp 2025-05-05 19:48:49.015447489 -0400 -+++ mrustc-0.11.2/src/ast/ast.cpp 2025-05-06 21:59:55.063318921 -0400 -@@ -243,9 +243,9 @@ - - Function::Function(Span sp, ::std::string abi, Flags flags, GenericParams params, TypeRef ret_type, Arglist args, bool is_variadic): - m_span(sp), -- m_params( move(params) ), -- m_rettype( move(ret_type) ), -- m_args( move(args) ), -+ m_params( std::move(params) ), -+ m_rettype( std::move(ret_type) ), -+ m_args( std::move(args) ), - m_is_variadic(is_variadic), - m_abi( mv$(abi) ), - m_flags(flags) -diff -ruN mrustc-0.11.2.orig/src/ast/ast.hpp mrustc-0.11.2/src/ast/ast.hpp ---- mrustc-0.11.2.orig/src/ast/ast.hpp 2025-05-05 19:48:49.015447489 -0400 -+++ mrustc-0.11.2/src/ast/ast.hpp 2025-05-06 22:00:48.786212819 -0400 -@@ -101,8 +101,8 @@ - - //TypeAlias() {} - TypeAlias(GenericParams params, TypeRef type): -- m_params( move(params) ), -- m_type( move(type) ) -+ m_params( std::move(params) ), -+ m_type( std::move(type) ) - {} - static TypeAlias new_associated_type(GenericParams params, GenericParams type_bounds, TypeRef default_type) { - TypeAlias rv { std::move(params), std::move(default_type) }; -@@ -164,8 +164,8 @@ - - Static(Class s_class, TypeRef type, Expr value): - m_class(s_class), -- m_type( move(type) ), -- m_value( move(value) ) -+ m_type( std::move(type) ), -+ m_value( std::move(value) ) - {} - - const Class& s_class() const { return m_class; } -@@ -421,8 +421,8 @@ - - Enum() {} - Enum( GenericParams params, ::std::vector variants ): -- m_params( move(params) ), -- m_variants( move(variants) ) -+ m_params( std::move(params) ), -+ m_variants( std::move(variants) ) - {} - - const GenericParams& params() const { return m_params; } -@@ -483,11 +483,11 @@ - { - } - Struct( GenericParams params, ::std::vector fields ): -- m_params( move(params) ), -+ m_params( std::move(params) ), - m_data( StructData::make_Struct({mv$(fields)}) ) - {} - Struct( GenericParams params, ::std::vector fields ): -- m_params( move(params) ), -+ m_params( std::move(params) ), - m_data( StructData::make_Tuple({mv$(fields)}) ) - {} - -@@ -511,7 +511,7 @@ - } m_markings; - - Union( GenericParams params, ::std::vector fields ): -- m_params( move(params) ), -+ m_params( std::move(params) ), - m_variants( mv$(fields) ) - {} - -diff -ruN mrustc-0.11.2.orig/src/ast/expr.hpp mrustc-0.11.2/src/ast/expr.hpp ---- mrustc-0.11.2.orig/src/ast/expr.hpp 2025-05-05 19:48:49.015447489 -0400 -+++ mrustc-0.11.2/src/ast/expr.hpp 2025-05-06 22:01:28.556431607 -0400 -@@ -76,8 +76,8 @@ - m_block_type(type), - m_yields_final_value(yields_final_value), - m_label(""), -- m_local_mod( move(local_mod) ), -- m_nodes( move(nodes) ) -+ m_local_mod( std::move(local_mod) ), -+ m_nodes( std::move(nodes) ) - { - } - -@@ -106,9 +106,9 @@ - bool m_is_braced; - - ExprNode_Macro(AST::Path name, RcString ident, ::TokenTree&& tokens, bool is_braced=false): -- m_path( move(name) ), -+ m_path( std::move(name) ), - m_ident(ident), -- m_tokens( move(tokens) ) -+ m_tokens( std::move(tokens) ) - , m_is_braced(is_braced) - {} - -@@ -132,11 +132,11 @@ - ::std::vector<::std::string> m_flags; - - ExprNode_Asm(::std::string text, ::std::vector output, ::std::vector input, ::std::vector<::std::string> clobbers, ::std::vector<::std::string> flags): -- m_text( move(text) ), -- m_output( move(output) ), -- m_input( move(input) ), -- m_clobbers( move(clobbers) ), -- m_flags( move(flags) ) -+ m_text( std::move(text) ), -+ m_output( std::move(output) ), -+ m_input( std::move(input) ), -+ m_clobbers( std::move(clobbers) ), -+ m_flags( std::move(flags) ) - { - } - -@@ -169,8 +169,8 @@ - - ExprNode_Asm2(AsmCommon::Options options, std::vector lines, std::vector params) - : m_options(options) -- , m_lines( move(lines) ) -- , m_params( move(params) ) -+ , m_lines( std::move(lines) ) -+ , m_params( std::move(params) ) - { - } - -@@ -194,8 +194,8 @@ - - ExprNode_Flow(Type type, Ident target, ExprNodeP value): - m_type(type), -- m_target( move(target) ), -- m_value( move(value) ) -+ m_target( std::move(target) ), -+ m_value( std::move(value) ) - { - } - -@@ -212,10 +212,10 @@ - ::std::pair m_letelse_slots; - - ExprNode_LetBinding(Pattern pat, TypeRef type, ExprNodeP value, ExprNodeP else_arm={}) -- : m_pat( move(pat) ) -- , m_type( move(type) ) -- , m_value( move(value) ) -- , m_else( move(else_arm) ) -+ : m_pat( std::move(pat) ) -+ , m_type( std::move(type) ) -+ , m_value( std::move(value) ) -+ , m_else( std::move(else_arm) ) - { - } - -@@ -237,8 +237,8 @@ - ExprNode_Assign(): m_op(NONE) {} - ExprNode_Assign(Operation op, ExprNodeP slot, ExprNodeP value): - m_op(op), -- m_slot( move(slot) ), -- m_value( move(value) ) -+ m_slot( std::move(slot) ), -+ m_value( std::move(value) ) - { - } - -@@ -251,8 +251,8 @@ - ::std::vector m_args; - - ExprNode_CallPath(Path&& path, ::std::vector&& args): -- m_path( move(path) ), -- m_args( move(args) ) -+ m_path( std::move(path) ), -+ m_args( std::move(args) ) - { - } - -@@ -266,9 +266,9 @@ - ::std::vector m_args; - - ExprNode_CallMethod(ExprNodeP obj, PathNode method, ::std::vector args): -- m_val( move(obj) ), -- m_method( move(method) ), -- m_args( move(args) ) -+ m_val( std::move(obj) ), -+ m_method( std::move(method) ), -+ m_args( std::move(args) ) - { - } - -@@ -282,8 +282,8 @@ - ::std::vector m_args; - - ExprNode_CallObject(ExprNodeP val, ::std::vector< ExprNodeP >&& args): -- m_val( move(val) ), -- m_args( move(args) ) -+ m_val( std::move(val) ), -+ m_args( std::move(args) ) - { - } - NODE_METHODS(); -@@ -531,9 +531,9 @@ - t_values m_values; - - ExprNode_StructLiteral(Path path, ExprNodeP base_value, t_values&& values ): -- m_path( move(path) ), -- m_base_value( move(base_value) ), -- m_values( move(values) ) -+ m_path( std::move(path) ), -+ m_base_value( std::move(base_value) ), -+ m_values( std::move(values) ) - {} - - NODE_METHODS(); -@@ -548,8 +548,8 @@ - t_values m_values; - - ExprNode_StructLiteralPattern(Path path, t_values&& values) -- : m_path( move(path) ) -- , m_values( move(values) ) -+ : m_path( std::move(path) ) -+ , m_values( std::move(values) ) - {} - - NODE_METHODS(); -@@ -646,8 +646,8 @@ - TypeRef m_type; - - ExprNode_Cast(ExprNodeP value, TypeRef&& dst_type): -- m_value( move(value) ), -- m_type( move(dst_type) ) -+ m_value( std::move(value) ), -+ m_type( std::move(dst_type) ) - { - } - NODE_METHODS(); -@@ -661,8 +661,8 @@ - TypeRef m_type; - - ExprNode_TypeAnnotation(ExprNodeP value, TypeRef&& dst_type): -- m_value( move(value) ), -- m_type( move(dst_type) ) -+ m_value( std::move(value) ), -+ m_type( std::move(dst_type) ) - { - } - NODE_METHODS(); -diff -ruN mrustc-0.11.2.orig/src/ast/lifetime_ref.hpp mrustc-0.11.2/src/ast/lifetime_ref.hpp ---- mrustc-0.11.2.orig/src/ast/lifetime_ref.hpp 2025-05-05 20:46:46.568398964 -0400 -+++ mrustc-0.11.2/src/ast/lifetime_ref.hpp 2025-05-05 19:59:44.934652489 -0400 -@@ -6,6 +6,7 @@ - * - AST Lifetime reference - */ - #pragma once -+#include - #include "../common.hpp" - #include "ident.hpp" - -diff -ruN mrustc-0.11.2.orig/src/debug.cpp mrustc-0.11.2/src/debug.cpp ---- mrustc-0.11.2.orig/src/debug.cpp 2025-05-05 20:46:46.568562659 -0400 -+++ mrustc-0.11.2/src/debug.cpp 2025-05-05 19:57:59.149549205 -0400 -@@ -5,6 +5,7 @@ - * debug.cpp - * - Debug printing (with indenting) - */ -+#include - #include - #include - #include -diff -ruN mrustc-0.11.2.orig/src/hir/expr.hpp mrustc-0.11.2/src/hir/expr.hpp ---- mrustc-0.11.2.orig/src/hir/expr.hpp 2025-05-05 19:48:49.017523096 -0400 -+++ mrustc-0.11.2/src/hir/expr.hpp 2025-05-06 22:02:51.568333466 -0400 -@@ -156,8 +156,8 @@ - ExprNode_Asm2(Span sp, AsmCommon::Options options, std::vector lines, std::vector params) - : ExprNode(mv$(sp)) - , m_options(options) -- , m_lines( move(lines) ) -- , m_params( move(params) ) -+ , m_lines( std::move(lines) ) -+ , m_params( std::move(params) ) - { - } - -diff -ruN mrustc-0.11.2.orig/src/hir/generic_ref.hpp mrustc-0.11.2/src/hir/generic_ref.hpp ---- mrustc-0.11.2.orig/src/hir/generic_ref.hpp 2025-05-05 20:46:46.568679102 -0400 -+++ mrustc-0.11.2/src/hir/generic_ref.hpp 2025-05-05 19:59:36.463727568 -0400 -@@ -6,6 +6,7 @@ - * - Reference to a generic - */ - #pragma once -+#include - #include - - /// Binding index for a Generic that indicates "Self" -diff -ruN mrustc-0.11.2.orig/src/hir/type_ref.hpp mrustc-0.11.2/src/hir/type_ref.hpp ---- mrustc-0.11.2.orig/src/hir/type_ref.hpp 2025-05-05 20:46:46.568770980 -0400 -+++ mrustc-0.11.2/src/hir/type_ref.hpp 2025-05-05 19:59:57.743537961 -0400 -@@ -7,6 +7,7 @@ - */ - #pragma once - -+#include - #include - #include - -diff -ruN mrustc-0.11.2.orig/src/macro_rules/macro_rules.hpp mrustc-0.11.2/src/macro_rules/macro_rules.hpp ---- mrustc-0.11.2.orig/src/macro_rules/macro_rules.hpp 2025-05-05 19:48:49.012008507 -0400 -+++ mrustc-0.11.2/src/macro_rules/macro_rules.hpp 2025-05-06 22:02:05.491732403 -0400 -@@ -102,7 +102,7 @@ - name( op ), - name_index(index), - tok( mv$(sep) ), -- subpats( move(ents) ), -+ subpats( std::move(ents) ), - type(PAT_LOOP) - { - } -diff -ruN mrustc-0.11.2.orig/src/trans/codegen_c.cpp mrustc-0.11.2/src/trans/codegen_c.cpp ---- mrustc-0.11.2.orig/src/trans/codegen_c.cpp 2025-05-05 19:48:49.014366958 -0400 -+++ mrustc-0.11.2/src/trans/codegen_c.cpp 2025-05-06 22:09:34.173707709 -0400 -@@ -1287,10 +1287,11 @@ - break; - } - // HACK: Work around [https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117423] by disabling an optimisation stage -- if( opt.opt_level > 0 ) -+ // Disabled for Maple Linux. See build-chroot.sh for details. ~ahill -+ /* if( opt.opt_level > 0 ) - { - args.push_back("-fno-tree-sra"); -- } -+ } */ - if( opt.emit_debug_info ) - { - args.push_back("-g"); -@@ -4785,7 +4786,8 @@ - switch (v.first[0]) - { - case '=': m_of << "="; break; -- case '+': m_of << "+"; break; -+ // Patched for Maple Linux. See build-chroot.sh for details. ~ahill -+ case '+': m_of << "="; break; - default: MIR_TODO(mir_res, "Handle asm! output leader '" << v.first[0] << "'"); - } - m_of << H::convert_reg(v.first.c_str() + 1); -@@ -5428,12 +5430,14 @@ - if(i != 0) m_of << ","; - m_of << " "; - m_of << "\""; -- if( !p.output && !p.input ) { -+ // Patched for Maple Linux. See build-chroot.sh for details. ~ahill -+ m_of << "="; -+ /*if( !p.output && !p.input ) { - m_of << "+"; - } - else { - m_of << (p.input ? "+" : "="); -- } -+ }*/ - TU_MATCH_HDRA((p.spec), {) - TU_ARMA(Class, c) - // https://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html -diff -ruN mrustc-0.11.2.orig/src/trans/target.cpp mrustc-0.11.2/src/trans/target.cpp ---- mrustc-0.11.2.orig/src/trans/target.cpp 2025-05-05 19:48:49.014366958 -0400 -+++ mrustc-0.11.2/src/trans/target.cpp 2025-05-06 22:07:39.775297252 -0400 -@@ -405,7 +405,8 @@ - TargetSpec init_from_spec_name(const ::std::string& target_name) - { - // Options for all the fully-GNU environments -- #define BACKEND_C_OPTS_GNU {"-ffunction-sections", "-pthread"}, {"-Wl,--start-group"}, {"-Wl,--end-group", "-Wl,--gc-sections", "-l", "atomic"} -+ // Patched for Maple Linux. See build-chroot.sh for details. ~ahill -+ #define BACKEND_C_OPTS_GNU {"-ffunction-sections", "-pthread"}, {"-Wl,--start-group"}, {"-Wl,--end-group", "-Wl,--gc-sections"} - // If there's a '/' or a '\' in the filename, open it as a path, otherwise assume it's a triple. - if( target_name.find('/') != ::std::string::npos || target_name.find('\\') != ::std::string::npos ) - { -diff -ruN mrustc-0.11.2.orig/src/trans/codegen_c.cpp mrustc-0.11.2/src/trans/codegen_c.cpp ---- mrustc-0.11.2.orig/src/trans/codegen_c.cpp 2024-12-29 22:28:18.000000000 -0500 -+++ mrustc-0.11.2/src/trans/codegen_c.cpp 2025-05-07 12:57:51.573401275 -0400 -@@ -1295,6 +1295,7 @@ - { - args.push_back("-g"); - } -+ args.push_back("-fno-delete-null-pointer-checks"); - // TODO: Why? - args.push_back("-fPIC"); - args.push_back("-o"); diff --git a/patches/rustc-src-maple.patch b/patches/rustc-src-maple.patch deleted file mode 100644 index 31f5216..0000000 --- a/patches/rustc-src-maple.patch +++ /dev/null @@ -1,399 +0,0 @@ ---- rustc-1.74.0-src.orig/compiler/rustc_codegen_llvm/src/consts.rs 2023-11-12 23:10:51.000000000 -0500 -+++ rustc-1.74.0-src/compiler/rustc_codegen_llvm/src/consts.rs 2025-05-07 11:37:17.220114783 -0400 -@@ -371,8 +371,9 @@ - // otherwise some LLVM optimization passes don't work as expected - let mut val_llty = self.val_ty(v); - let v = if val_llty == self.type_i1() { -- val_llty = self.type_i8(); -- llvm::LLVMConstZExt(v, val_llty) -+ // val_llty = self.type_i8(); -+ // llvm::LLVMConstZExt(v, val_llty) -+ unimplemented!("Const ZExt"); - } else { - v - }; ---- rustc-1.74.0-src.orig/compiler/rustc_codegen_llvm/src/llvm/ffi.rs 2023-11-12 23:10:51.000000000 -0500 -+++ rustc-1.74.0-src/compiler/rustc_codegen_llvm/src/llvm/ffi.rs 2025-05-07 11:39:59.399988363 -0400 -@@ -969,7 +969,7 @@ - ConstantIndices: *const &'a Value, - NumIndices: c_uint, - ) -> &'a Value; -- pub fn LLVMConstZExt<'a>(ConstantVal: &'a Value, ToType: &'a Type) -> &'a Value; -+ // pub fn LLVMConstZExt<'a>(ConstantVal: &'a Value, ToType: &'a Type) -> &'a Value; - pub fn LLVMConstPtrToInt<'a>(ConstantVal: &'a Value, ToType: &'a Type) -> &'a Value; - pub fn LLVMConstIntToPtr<'a>(ConstantVal: &'a Value, ToType: &'a Type) -> &'a Value; - pub fn LLVMConstBitCast<'a>(ConstantVal: &'a Value, ToType: &'a Type) -> &'a Value; ---- rustc-1.74.0-src.orig/compiler/rustc_llvm/llvm-wrapper/LLVMWrapper.h 2023-11-12 23:10:51.000000000 -0500 -+++ rustc-1.74.0-src/compiler/rustc_llvm/llvm-wrapper/LLVMWrapper.h 2025-05-06 22:48:58.362609469 -0400 -@@ -23,9 +23,9 @@ - #include "llvm/Target/TargetMachine.h" - #include "llvm/Target/TargetOptions.h" - #include "llvm/Transforms/IPO.h" --#include "llvm/Transforms/Instrumentation.h" -+#include "llvm/Transforms/Utils/Instrumentation.h" - #include "llvm/Transforms/Scalar.h" --#include "llvm/Transforms/Vectorize.h" -+#include "llvm/Transforms/Vectorize/LoadStoreVectorizer.h" - - #define LLVM_VERSION_GE(major, minor) \ - (LLVM_VERSION_MAJOR > (major) || \ ---- ./rustc-1.74.0-src.orig/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp 2023-11-13 04:10:51.000000000 +0000 -+++ ./rustc-1.74.0-src/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp 2025-05-08 01:29:24.667035511 +0000 -@@ -1,3 +1,4 @@ -+#include - #include - - #include -@@ -38,7 +39,7 @@ - #include "llvm/LTO/LTO.h" - #include "llvm/Bitcode/BitcodeWriter.h" - --#include "llvm/Transforms/Instrumentation.h" -+#include "llvm/Transforms/Utils/Instrumentation.h" - #include "llvm/Transforms/Instrumentation/AddressSanitizer.h" - #include "llvm/Support/TimeProfiler.h" - #include "llvm/Transforms/Instrumentation/GCOVProfiler.h" -@@ -50,6 +51,9 @@ - #include "llvm/Transforms/Utils/NameAnonGlobals.h" - #include "llvm/Transforms/Utils.h" - -+#include "llvm-c/TargetMachine.h" -+#include "llvm-c/Target.h" -+ - using namespace llvm; - - static codegen::RegisterCodeGenFlags CGF; -@@ -331,7 +335,7 @@ - PrintBackendInfo Print, - void* Out) { - const TargetMachine *Target = unwrap(TM); -- const Triple::ArchType HostArch = Triple(sys::getDefaultTargetTriple()).getArch(); -+ const Triple::ArchType HostArch = Triple(LLVMGetDefaultTargetTriple()).getArch(); - const Triple::ArchType TargetArch = Target->getTargetTriple().getArch(); - - std::ostringstream Buf; -@@ -351,7 +355,7 @@ - // different arch since that could be wrong or misleading. - if (HostArch == TargetArch) { - MaxCPULen = std::max(MaxCPULen, (unsigned) std::strlen("native")); -- const StringRef HostCPU = sys::getHostCPUName(); -+ const StringRef HostCPU = LLVMGetHostCPUName(); - Buf << " " << std::left << std::setw(MaxCPULen) << "native" - << " - Select the CPU of the current host " - "(currently " << HostCPU.str() << ").\n"; -@@ -397,7 +401,7 @@ - } - - extern "C" const char* LLVMRustGetHostCPUName(size_t *len) { -- StringRef Name = sys::getHostCPUName(); -+ StringRef Name = LLVMGetHostCPUName(); - *len = Name.size(); - return Name.data(); - } -@@ -452,7 +456,7 @@ - if (OutputObjFile) { - Options.ObjectFilenameForDebug = OutputObjFile; - } --#if LLVM_VERSION_GE(16, 0) -+/*#if LLVM_VERSION_GE(16, 0) - if (!strcmp("zlib", DebugInfoCompression) && llvm::compression::zlib::isAvailable()) { - Options.CompressDebugSections = DebugCompressionType::Zlib; - } else if (!strcmp("zstd", DebugInfoCompression) && llvm::compression::zstd::isAvailable()) { -@@ -460,9 +464,9 @@ - } else if (!strcmp("none", DebugInfoCompression)) { - Options.CompressDebugSections = DebugCompressionType::None; - } --#endif -+#endif*/ - -- Options.RelaxELFRelocations = RelaxELFRelocations; -+ //Options.RelaxELFRelocations = RelaxELFRelocations; - Options.UseInitArray = UseInitArray; - - #if LLVM_VERSION_LT(17, 0) -@@ -515,8 +519,11 @@ - assert(buffer_offset == ArgsCstrBuffLen); - - Options.MCOptions.Argv0 = arg0; -- Options.MCOptions.CommandLineArgs = -- llvm::ArrayRef(cmd_arg_strings, num_cmd_arg_strings); -+ std::string args = ""; -+ for (int i = 0; i < num_cmd_arg_strings; i++) { -+ args += cmd_arg_strings[i] + " "; -+ } -+ Options.MCOptions.CommandlineArgs = args; - } - - TargetMachine *TM = TheTarget->createTargetMachine( -@@ -527,8 +534,8 @@ - extern "C" void LLVMRustDisposeTargetMachine(LLVMTargetMachineRef TM) { - - MCTargetOptions& MCOptions = unwrap(TM)->Options.MCOptions; -- delete[] MCOptions.Argv0; -- delete[] MCOptions.CommandLineArgs.data(); -+ // delete[] MCOptions.Argv0; -+ // delete[] MCOptions.CommandLineArgs.data(); - - delete unwrap(TM); - } -@@ -541,7 +548,7 @@ - TargetLibraryInfoImpl TLII(TargetTriple); - if (DisableSimplifyLibCalls) - TLII.disableAllFunctions(); -- unwrap(PMR)->add(new TargetLibraryInfoWrapperPass(TLII)); -+ unwrap(PMR)->add(reinterpret_cast(new TargetLibraryInfoWrapperPass(TLII))); - } - - extern "C" void LLVMRustSetLLVMOptions(int Argc, char **Argv) { -@@ -761,6 +768,7 @@ - FS, - #endif - PGOOptions::IRInstr, PGOOptions::NoCSAction, -+ PGOOptions::ColdFuncOpt::Default, - DebugInfoForProfiling); - } else if (PGOUsePath) { - assert(!PGOSampleUsePath); -@@ -770,6 +778,7 @@ - FS, - #endif - PGOOptions::IRUse, PGOOptions::NoCSAction, -+ PGOOptions::ColdFuncOpt::Default, - DebugInfoForProfiling); - } else if (PGOSampleUsePath) { - PGOOpt = PGOOptions(PGOSampleUsePath, "", "", -@@ -778,6 +787,7 @@ - FS, - #endif - PGOOptions::SampleUse, PGOOptions::NoCSAction, -+ PGOOptions::ColdFuncOpt::Default, - DebugInfoForProfiling); - } else if (DebugInfoForProfiling) { - PGOOpt = PGOOptions("", "", "", -@@ -786,6 +796,7 @@ - FS, - #endif - PGOOptions::NoAction, PGOOptions::NoCSAction, -+ PGOOptions::ColdFuncOpt::Default, - DebugInfoForProfiling); - } - -@@ -813,7 +824,7 @@ - // PassBuilder does not create a pipeline. - std::vector> - PipelineStartEPCallbacks; -- std::vector> -+ std::vector> - OptimizerLastEPCallbacks; - - if (!IsLinkerPluginLTO -@@ -823,7 +834,7 @@ - [](ModulePassManager &MPM, OptimizationLevel Level) { - MPM.addPass(LowerTypeTestsPass(/*ExportSummary=*/nullptr, - /*ImportSummary=*/nullptr, -- /*DropTypeTests=*/false)); -+ /*DropTypeTests=*/llvm::lowertypetests::DropTestKind::None)); - } - ); - } -@@ -854,7 +865,7 @@ - // cargo run tests in multhreading mode by default - // so use atomics for coverage counters - Options.Atomic = true; -- MPM.addPass(InstrProfiling(Options, false)); -+ MPM.addPass(InstrProfilingLoweringPass(Options, false)); - } - ); - } -@@ -867,7 +878,7 @@ - /*CompileKernel=*/false, - /*EagerChecks=*/true); - OptimizerLastEPCallbacks.push_back( -- [Options](ModulePassManager &MPM, OptimizationLevel Level) { -+ [Options](ModulePassManager &MPM, OptimizationLevel Level, ThinOrFullLTOPhase _) { - #if LLVM_VERSION_LT(16, 0) - MPM.addPass(ModuleMemorySanitizerPass(Options)); - MPM.addPass(createModuleToFunctionPassAdaptor(MemorySanitizerPass(Options))); -@@ -880,7 +891,7 @@ - - if (SanitizerOptions->SanitizeThread) { - OptimizerLastEPCallbacks.push_back( -- [](ModulePassManager &MPM, OptimizationLevel Level) { -+ [](ModulePassManager &MPM, OptimizationLevel Level, ThinOrFullLTOPhase _) { - MPM.addPass(ModuleThreadSanitizerPass()); - MPM.addPass(createModuleToFunctionPassAdaptor(ThreadSanitizerPass())); - } -@@ -889,7 +900,7 @@ - - if (SanitizerOptions->SanitizeAddress || SanitizerOptions->SanitizeKernelAddress) { - OptimizerLastEPCallbacks.push_back( -- [SanitizerOptions](ModulePassManager &MPM, OptimizationLevel Level) { -+ [SanitizerOptions](ModulePassManager &MPM, OptimizationLevel Level, ThinOrFullLTOPhase _) { - auto CompileKernel = SanitizerOptions->SanitizeKernelAddress; - AddressSanitizerOptions opts = AddressSanitizerOptions{ - CompileKernel, -@@ -908,7 +919,7 @@ - } - if (SanitizerOptions->SanitizeHWAddress) { - OptimizerLastEPCallbacks.push_back( -- [SanitizerOptions](ModulePassManager &MPM, OptimizationLevel Level) { -+ [SanitizerOptions](ModulePassManager &MPM, OptimizationLevel Level, ThinOrFullLTOPhase _) { - HWAddressSanitizerOptions opts( - /*CompileKernel=*/false, SanitizerOptions->SanitizeHWAddressRecover, - /*DisableOptimization=*/false); -@@ -945,7 +956,7 @@ - PB.registerOptimizerLastEPCallback(C); - - // Pass false as we manually schedule ThinLTOBufferPasses below. -- MPM = PB.buildO0DefaultPipeline(OptLevel, /* PreLinkLTO */ false); -+ MPM = PB.buildO0DefaultPipeline(OptLevel, /* PreLinkLTO */ ThinOrFullLTOPhase::FullLTOPreLink); - } else { - for (const auto &C : PipelineStartEPCallbacks) - PB.registerPipelineStartEPCallback(C); -@@ -956,7 +967,7 @@ - - switch (OptStage) { - case LLVMRustOptStage::PreLinkNoLTO: -- MPM = PB.buildPerModuleDefaultPipeline(OptLevel, DebugPassManager); -+ MPM = PB.buildPerModuleDefaultPipeline(OptLevel, ThinOrFullLTOPhase::FullLTOPreLink); - break; - case LLVMRustOptStage::PreLinkThinLTO: - MPM = PB.buildThinLTOPreLinkDefaultPipeline(OptLevel); -@@ -967,7 +978,7 @@ - if (OptimizerLastEPCallbacks.empty()) - NeedThinLTOBufferPasses = false; - for (const auto &C : OptimizerLastEPCallbacks) -- C(MPM, OptLevel); -+ C(MPM, OptLevel, ThinOrFullLTOPhase::None); - break; - case LLVMRustOptStage::PreLinkFatLTO: - MPM = PB.buildLTOPreLinkDefaultPipeline(OptLevel); -@@ -989,7 +1000,7 @@ - for (const auto &C : PipelineStartEPCallbacks) - C(MPM, OptLevel); - for (const auto &C : OptimizerLastEPCallbacks) -- C(MPM, OptLevel); -+ C(MPM, OptLevel, ThinOrFullLTOPhase::None); - } - - if (ExtraPassesLen) { -@@ -1218,7 +1229,7 @@ - // Not 100% sure what these are, but they impact what's internalized and - // what's inlined across modules, I believe. - #if LLVM_VERSION_GE(18, 0) -- DenseMap ImportLists; -+ FunctionImporter::ImportListsTy ImportLists; - DenseMap ExportLists; - DenseMap ModuleToDefinedGVSummaries; - #else -@@ -1407,12 +1418,12 @@ - TargetMachine &Target = *unwrap(TM); - - bool ClearDSOLocal = clearDSOLocalOnDeclarations(Mod, Target); -- bool error = renameModuleForThinLTO(Mod, Data->Index, ClearDSOLocal); -+ renameModuleForThinLTO(Mod, Data->Index, ClearDSOLocal); - -- if (error) { -- LLVMRustSetLastError("renameModuleForThinLTO failed"); -- return false; -- } -+ // if (error) { -+ // LLVMRustSetLastError("renameModuleForThinLTO failed"); -+ // return false; -+ // } - return true; - } - -@@ -1629,14 +1640,13 @@ - // used during the normal linker-plugin incremental thin-LTO process. - extern "C" void - LLVMRustComputeLTOCacheKey(RustStringRef KeyOut, const char *ModId, LLVMRustThinLTOData *Data) { -- SmallString<40> Key; - llvm::lto::Config conf; - const auto &ImportList = Data->ImportLists.lookup(ModId); - const auto &ExportList = Data->ExportLists.lookup(ModId); - const auto &ResolvedODR = Data->ResolvedODR.lookup(ModId); - const auto &DefinedGlobals = Data->ModuleToDefinedGVSummaries.lookup(ModId); -- std::set CfiFunctionDefs; -- std::set CfiFunctionDecls; -+ DenseSet CfiFunctionDefs; -+ DenseSet CfiFunctionDecls; - - // Based on the 'InProcessThinBackend' constructor in LLVM - for (auto &Name : Data->Index.cfiFunctionDefs()) -@@ -1646,7 +1656,7 @@ - CfiFunctionDecls.insert( - GlobalValue::getGUID(GlobalValue::dropLLVMManglingEscape(Name))); - -- llvm::computeLTOCacheKey(Key, conf, Data->Index, ModId, -+ std::string Key = llvm::computeLTOCacheKey(conf, Data->Index, ModId, - ImportList, ExportList, ResolvedODR, DefinedGlobals, CfiFunctionDefs, CfiFunctionDecls - ); - ---- rustc-1.74.0-src.orig/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp 2023-11-12 23:10:51.000000000 -0500 -+++ rustc-1.74.0-src/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp 2025-05-07 11:23:24.661493619 -0400 -@@ -1081,11 +1081,12 @@ - LLVMRustDIBuilderRef Builder, LLVMValueRef V, LLVMMetadataRef VarInfo, - uint64_t *AddrOps, unsigned AddrOpsCount, LLVMMetadataRef DL, - LLVMBasicBlockRef InsertAtEnd) { -- return wrap(Builder->insertDeclare( -+ Builder->insertDeclare( - unwrap(V), unwrap(VarInfo), - Builder->createExpression(llvm::ArrayRef(AddrOps, AddrOpsCount)), - DebugLoc(cast(unwrap(DL))), -- unwrap(InsertAtEnd))); -+ unwrap(InsertAtEnd)); -+ return nullptr; //FIXME: VERY BAD - } - - extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateEnumerator( -@@ -1105,7 +1106,7 @@ - unwrapDI(Scope), StringRef(Name, NameLen), - unwrapDI(File), LineNumber, - SizeInBits, AlignInBits, DINodeArray(unwrapDI(Elements)), -- unwrapDI(ClassTy), "", IsScoped)); -+ unwrapDI(ClassTy), 0, "", IsScoped)); - } - - extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateUnionType( -@@ -1369,8 +1370,8 @@ - return LLVMPointerTypeKind; - case Type::FixedVectorTyID: - return LLVMVectorTypeKind; -- case Type::X86_MMXTyID: -- return LLVMX86_MMXTypeKind; -+ // case Type::X86_MMXTyID: -+ // return LLVMX86_MMXTypeKind; - case Type::TokenTyID: - return LLVMTokenTypeKind; - case Type::ScalableVectorTyID: -@@ -1814,6 +1815,7 @@ - std::string{}, // ExtName - std::string{}, // SymbolName - std::string{}, // AliasTarget -+ std::string{}, - ordinal, // Ordinal - ordinal_present, // Noname - false, // Data -@@ -1909,7 +1911,7 @@ - } - } - if (DiagnosticHandlerCallback) { -- DiagnosticHandlerCallback(DI, DiagnosticHandlerContext); -+ DiagnosticHandlerCallback(&DI, DiagnosticHandlerContext); - return true; - } - return false; ---- rustc-1.74.0-src.orig/compiler/rustc_target/src/spec/x86_64_unknown_linux_musl.rs 2023-11-12 23:10:51.000000000 -0500 -+++ rustc-1.74.0-src/compiler/rustc_target/src/spec/x86_64_unknown_linux_musl.rs 2025-05-07 17:44:10.449613830 -0400 -@@ -18,8 +18,9 @@ - Target { - llvm_target: "x86_64-unknown-linux-musl".into(), - pointer_width: 64, -- data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -- .into(), -+ //data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -+ data_layout: -+ "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128".into(), - arch: "x86_64".into(), - options: base, - } \ No newline at end of file diff --git a/limine.conf b/root/boot/limine.conf similarity index 100% rename from limine.conf rename to root/boot/limine.conf diff --git a/root/etc/chrony.conf b/root/etc/chrony.conf new file mode 100644 index 0000000..53f8bdd --- /dev/null +++ b/root/etc/chrony.conf @@ -0,0 +1,2 @@ +cmdport 0 +pool pool.ntp.org iburst maxsources 3 diff --git a/root/etc/group b/root/etc/group new file mode 100644 index 0000000..c553363 --- /dev/null +++ b/root/etc/group @@ -0,0 +1,2 @@ +root:x:0:root +nobody:x:65534:nobody diff --git a/root/etc/hostname b/root/etc/hostname new file mode 100644 index 0000000..06fbeeb --- /dev/null +++ b/root/etc/hostname @@ -0,0 +1 @@ +maple diff --git a/root/etc/init.d/chronyd b/root/etc/init.d/chronyd new file mode 100755 index 0000000..ebe513b --- /dev/null +++ b/root/etc/init.d/chronyd @@ -0,0 +1,4 @@ +#!/bin/openrc-run +description="Network Time Protocol Daemon" +command="/bin/chronyd" +pidfile="/run/chrony/chronyd.pid" diff --git a/root/etc/init.d/dhcpcd b/root/etc/init.d/dhcpcd new file mode 100755 index 0000000..419556b --- /dev/null +++ b/root/etc/init.d/dhcpcd @@ -0,0 +1,6 @@ +#!/bin/openrc-run +description="DHCP Client Daemon" +command="/bin/dhcpcd" +command_args="-M" +command_args_background="-b" +pidfile="/run/dhcpcd/pid" diff --git a/root/etc/init.d/dropbear b/root/etc/init.d/dropbear new file mode 100755 index 0000000..405bd03 --- /dev/null +++ b/root/etc/init.d/dropbear @@ -0,0 +1,4 @@ +#!/bin/openrc-run +command="/bin/dropbear" +command_args="-R" +pidfile="/run/dropbear.pid" diff --git a/root/etc/init.d/mdevd b/root/etc/init.d/mdevd new file mode 100755 index 0000000..f8c7e4f --- /dev/null +++ b/root/etc/init.d/mdevd @@ -0,0 +1,6 @@ +#!/bin/openrc-run +description="Mini Device Mapper Daemon" +command="/bin/mdevd" +command_args="-O4" +command_background="yes" +pidfile="/run/mdevd.pid" diff --git a/root/etc/os-release b/root/etc/os-release new file mode 100644 index 0000000..00785b6 --- /dev/null +++ b/root/etc/os-release @@ -0,0 +1,5 @@ +NAME=Maple Linux +VERSION=2025 +ID=maple +VERSION_ID=2025 +PRETTY_NAME="Maple Linux" diff --git a/root/etc/pam.d/sshd b/root/etc/pam.d/sshd new file mode 100644 index 0000000..6d1ea17 --- /dev/null +++ b/root/etc/pam.d/sshd @@ -0,0 +1,5 @@ +#%PAM-1.0 +auth include system-auth +account include system-auth +password include system-auth +session include system-auth diff --git a/root/etc/pam.d/system-auth b/root/etc/pam.d/system-auth new file mode 100644 index 0000000..f0804c3 --- /dev/null +++ b/root/etc/pam.d/system-auth @@ -0,0 +1,5 @@ +#%PAM-1.0 +auth required pam_unix.so nullok +account required pam_unix.so +password required pam_unix.so nullok shadow +session required pam_unix.so diff --git a/root/etc/passwd b/root/etc/passwd new file mode 100644 index 0000000..27d66ce --- /dev/null +++ b/root/etc/passwd @@ -0,0 +1,2 @@ +root:x:0:0::/:/bin/zsh +nobody:x:65534:65534::/:/bin/nologin diff --git a/root/etc/resolv.conf b/root/etc/resolv.conf new file mode 100644 index 0000000..0b030bf --- /dev/null +++ b/root/etc/resolv.conf @@ -0,0 +1,2 @@ +nameserver 1.1.1.1 +nameserver 1.0.0.1 diff --git a/root/etc/shadow b/root/etc/shadow new file mode 100644 index 0000000..3b0fe76 --- /dev/null +++ b/root/etc/shadow @@ -0,0 +1,2 @@ +root::20295:::::: +nobody::20374:::::: diff --git a/root/etc/shells b/root/etc/shells new file mode 100644 index 0000000..a67a8da --- /dev/null +++ b/root/etc/shells @@ -0,0 +1,2 @@ +/bin/sh +/bin/zsh diff --git a/sources.list b/sources.list index e8a5a0d..d84c23f 100644 --- a/sources.list +++ b/sources.list @@ -1,144 +1,147 @@ -ba885c1319578d6c94d46e9b0dceb4014caafe2490e437a0dbca3f270a223f5a,https://ftpmirror.gnu.org/gnu/autoconf/autoconf-2.72.tar.xz, -168aa363278351b89af56684448f525a5bce5079d0b6842bd910fdd3f1646887,https://ftpmirror.gnu.org/gnu/automake/automake-1.18.1.tar.xz, -0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d,https://files.pythonhosted.org/packages/7d/6b/d52e42361e1aa00709585ecc30b3f9684b3ab62530771402248b1b1d6240/babel-2.17.0.tar.gz, -ae470fec429775653e042015edc928d07c8c3b2fc59765172a330d3d87785f86,https://ftpmirror.gnu.org/gnu/bc/bc-1.08.2.tar.gz, -9bba0214ccf7f1079c5d59210045227bcf619519840ebfa80cd3849cff5a5bf2,https://ftpmirror.gnu.org/gnu/bison/bison-3.8.2.tar.xz, -698edd0ea270bde950f53aed21f3a0135672206f3911e0176261a31e0e07b397,https://files.pythonhosted.org/packages/25/1c/23e33405a7c9eac261dff640926b8b5adaed6a6eb3e1767d441ed611d0c0/build-1.3.0.tar.gz, -ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269,https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz, -445ed8208a6e4823de1226a74ca319d3600e83f6369f99b14265006599c32ccb,https://cairographics.org/releases/cairo-1.18.4.tar.xz, -33ea8eb2a4daeaa506e8fcafd5d6d89027ed6f2f0609645c6f149b560d301706,https://chrony-project.org/releases/chrony-4.8.tar.gz, -ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a,https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz, -b29f6f19733aa224b7763507a108a427ed48c688e1faf22b29c44e1c30549282,https://github.com/Kitware/CMake/releases/download/v4.1.1/cmake-4.1.1.tar.gz, -e8bb26ad0293f9b5a1fc43fb42ba970e312c66ce92c1b0b16713d7500db251bf,https://ftpmirror.gnu.org/gnu/coreutils/coreutils-9.7.tar.xz, -937610b97c329a1ec9268553fb780037bcfff0dcffe9725ebc4fd9c1aa9075db,https://ftpmirror.gnu.org/gnu/cpio/cpio-2.15.tar.bz2, -6cd0a8a5b126ddfda61c94dc2c3fc53481ba7a35461cf7c5ab66aa9d6775b609,https://curl.se/download/curl-8.15.0.tar.xz, -845fd61702ae5e53e09664faa450da82805958924b109b8c5b4777bd8551af00,https://salsa.debian.org/debian/dash/-/archive/debian/0.5.12-12/dash-debian-0.5.12-12.tar.gz, -6721e606609226dbf4d864a78802a9e96beec0ee034a1bd84138b3e037bba7d9,https://github.com/NetworkConfiguration/dhcpcd/releases/download/v10.2.4/dhcpcd-10.2.4.tar.xz, -7c8b7f9fc8609141fdea9cece85249d308624391ff61dedaf528fcb337727dfd,https://ftpmirror.gnu.org/gnu/diffutils/diffutils-3.12.tar.xz, -64926eebf90092dca21b14259a5301b7b98e7b1943e8a201c7d726084809b527,https://github.com/dosfstools/dosfstools/releases/download/v4.2/dosfstools-4.2.tar.gz, -93ebe1294ee3203d3bf548c78d51bde9494d3f24de64eaec380a2620f0431f20,https://github.com/mkj/dropbear/archive/refs/tags/DROPBEAR_2025.88.tar.gz,dropbear-2025.88.tar.gz -354552544b8f99012e5062f7d570ec77f14b412a3ff5c7d8d0dae62c0d217c30,https://github.com/libexpat/libexpat/releases/download/R_2_7_1/expat-2.7.1.tar.xz, -1387e0b67ff247d2abde998f90dfbf70c1491391a59ddfecb8ae698789f0a4f5,https://ftpmirror.gnu.org/gnu/findutils/findutils-4.10.0.tar.xz, -1b1cde5b235d40479e91be2f0e88a309e3214c8ab470ec8a2744d82a5a9ea05c,https://github.com/fribidi/fribidi/releases/download/v1.0.16/fribidi-1.0.16.tar.xz, -e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995,https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz, -18f63100d6f94385c6ed57a72073443e1a71a4acb4339491615d0f16d6ff01b2,https://files.pythonhosted.org/packages/69/59/b6fc2188dfc7ea4f936cd12b49d707f66a1cb7a1d2c16172963534db741b/flit_core-3.12.0.tar.gz, -f0129159515c13ebe53ba2a6a94755e98c266470e844ee0aacc6196fd62b44f0,https://gitlab.freedesktop.org/xorg/font/util/-/archive/font-util-1.4.1/util-font-util-1.4.1.tar.gz, -82e73b26adad651b236e5f5d4b3074daf8ff0910188808496326bd3449e5261d,https://gitlab.freedesktop.org/fontconfig/fontconfig/-/archive/2.17.1/fontconfig-2.17.1.tar.gz, -0550350666d427c74daeb85d5ac7bb353acba5f76956395995311a9c6f063289,https://download.savannah.gnu.org/releases/freetype/freetype-2.13.3.tar.xz, -f8c3486509de705192138b00ef2c00bbbdd0e84c30d5c07d23fc73a9dc4cc9cc,https://ftpmirror.gnu.org/gnu/gawk/gawk-5.3.2.tar.xz, -9f3d0739bb02ce0e67872f2b54355017da622e7fb0dbeda998d46863f80dc3c2,https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/archive/2.43.5/gdk-pixbuf-2.43.5.tar.gz, -d1fb86e260cfe7da6031f94d2e44c0da55903dbae0a2fa0fae78c91ae1b56f00,https://ftp.gnu.org/pub/gnu/gettext/gettext-0.26.tar.xz, -3524fc5fd81f16f80e1696a8281bd8ad831048b67848015d7b7382bf365ae685,https://github.com/git/git/archive/refs/tags/v2.51.0.tar.gz,git-2.51.0.tar.gz -56aef5791f402fff73a2de0664e573c5d00ef8cb71405eb76b388f44c6d78927,https://gitlab.gnome.org/GNOME/glib/-/archive/2.86.0/glib-2.86.0.tar.gz, -b16c78e7604b9be9f546ee35ad8b6db6f39bbbbfb19e8d038b6fe2ea5bba4ff4,https://github.com/KhronosGroup/glslang/archive/refs/tags/15.4.0.tar.gz,glslang-15.4.0.tar.gz -a3c2b80201b89e68616f4ad30bc66aee4927c3ce50e33929ca819d5c43538898,https://gmplib.org/download/gmp/gmp-6.3.0.tar.xz, -fd87e0aba7e43ae054837afd6cd4db03a3f2693deb3619085e6ed9d8d9604ad8,https://ftp.gnu.org/pub/gnu/gperf/gperf-3.3.tar.gz, -2649b27c0e90e632eadcd757be06c6e9a4f48d941de51e7c0f83ff76408a07b9,https://ftpmirror.gnu.org/gnu/grep/grep-3.12.tar.xz, -069a00aa1fc893f18423602f4e095583be5a220429f6e8a58d70511490b4b019,https://gitlab.gnome.org/GNOME/gvdb/-/archive/2b42fc75f09dbe1cd1057580b5782b08f2dcb400/gvdb-2b42fc75f09dbe1cd1057580b5782b08f2dcb400.tar.gz, -01a7b881bd220bfdf615f97b8718f80bdfd3f6add385b993dcf6efd14e8c0ac6,https://ftpmirror.gnu.org/gnu/gzip/gzip-1.14.tar.xz, -0f052eb4ab01d8bae98ba971c954becb32be57d7250f18af343b1d27892e03fa,https://github.com/harfbuzz/harfbuzz/releases/download/11.4.5/harfbuzz-11.4.5.tar.xz, -d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000,https://files.pythonhosted.org/packages/76/66/650a33bd90f786193e4de4b3ad86ea60b53c89b669a5c7be931fac31cdb0/importlib_metadata-8.7.0.tar.gz, -5900ccc15f9ac3bf7b7eae81deb5937123df35e99347a7f11a22818482f0a8d0,https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-6.16.0.tar.xz, -fb3197f17a99eb44d22a3a1a71f755f9622dd963e66acfdea1a45120951b02ed,https://www.kernel.org/pub/linux/utils/kbd/kbd-2.9.0.tar.xz, -5a5d5073070cc7e0c7a7a3c6ec2a0e1780850c8b47b3e3892226b93ffcb9cb54,https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-34.2.tar.xz, -19f917d42d530f98815ac824d90c7eaf648e9d9a50e4f309c812457ffa5496b5,https://libarchive.org/downloads/libarchive-3.8.1.tar.xz, -b88cc9163d0c652aaf39a99991d974ddba1c3a9711db8f1b5838af2a14731014,https://libbsd.freedesktop.org/releases/libbsd-0.12.2.tar.xz, -629da4ab29900d0f7fcc36227073743119925fd711c99a1689bbf5c9b40c8e6f,https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.76.tar.xz, -d4bae92797a50f81a93524762e0410a49cd84cfa0f997795bc0172ac8fb1d96a,https://dri.freedesktop.org/libdrm/libdrm-2.4.125.tar.xz, -6253395679c2bb2156d926b3d8b7e3b2bbeb40a56d2bea29e1c73e40ed9de4ba,https://github.com/arachsys/libelf/archive/refs/tags/v0.193.tar.gz,libelf-0.193.tar.gz -0cfa48d1dddac26988ae9ce16282eff97683f1adcd3f5d4312f86d714565d890,https://gitlab.freedesktop.org/libevdev/libevdev/-/archive/libevdev-1.13.4/libevdev-libevdev-1.13.4.tar.gz, -31dc201284fb5d2bec60b2ceee3126b5cf633c3de74151be44817890e8e7c581,https://gitlab.freedesktop.org/xorg/lib/libfontenc/-/archive/libfontenc-1.1.8/libfontenc-libfontenc-1.1.8.tar.gz, -f3a3082a23b37c293a4fcd1053147b371f2ff91fa7ea1b2a52e335676bac82dc,https://github.com/libffi/libffi/releases/download/v3.5.2/libffi-3.5.2.tar.gz, -7caf26a2202a4ca689df3fe4175dfa74e0faa18fcca07331bba934fd0ecb8f12,https://github.com/benhoyt/inih/archive/refs/tags/r61.tar.gz,libinih-r61.tar.gz -98bb615d98ddc4607bddb13a7b7550d129eb8cd16f86cd5ca090207bc46b488b,https://gitlab.freedesktop.org/libinput/libinput/-/archive/1.29.1/libinput-1.29.1.tar.gz, -8f0012234b464ce50890c490f18194f913a7b1f4e6a03d6644179fa0f867d0cf,https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/3.1.2/libjpeg-turbo-3.1.2.tar.gz, -1bd6aa42275313af3141c7cf2e5b964e8b1fd488025caf2f971f43b00776b332,https://libbsd.freedesktop.org/releases/libmd-1.1.0.tar.xz, -274b9b919ef3152bfb3da3a13c950dd60d6e2bcd54230ffeca298d03b40d0525,https://www.netfilter.org/pub/libmnl/libmnl-1.0.5.tar.bz2, -0f4be47a8bb8b77a350ee58cbd4b5fae6260ad486a527706ab15cfe1dd55a3c4,https://www.netfilter.org/pub/libnftnl/libnftnl-1.3.0.tar.xz, -a395317730e0e8d5e71419d4d1256a89e32c2fa793607b63c4d0fb497ae34602,https://gitlab.freedesktop.org/xorg/lib/libpciaccess/-/archive/libpciaccess-0.18.1/libpciaccess-libpciaccess-0.18.1.tar.gz, -4df396518620a7aa3651443e87d1b2862e4e88cad135a8b93423e01706232307,https://download.sourceforge.net/libpng/libpng-1.6.50.tar.xz, -0f71c16bd34bdaaccdcb96a5d94a4921bfb612ec6e0eba7a80d8854eefd8bb61,https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-4.1.0.tar.gz, -f81f5860666b0bc7d84baddefa60d1cb9fa6fceb2398cc3baca6afaa60266675,https://ftpmirror.gnu.org/gnu/libtool/libtool-2.5.4.tar.xz, -0bd89b657d62d019598e6c7ed726ff8fed80e8ba092a83b484d66afb80b77da5,https://github.com/illiliti/libudev-zero/archive/refs/tags/1.0.3.tar.gz,libudev-zero-1.0.3.tar.gz -ea97bead1e8721d9002055970e8ad64ef79ee9dcee8595a3dae2cf5c2192a47f,https://gitlab.freedesktop.org/xorg/lib/libx11/-/archive/libX11-1.8.12/libx11-libX11-1.8.12.tar.gz, -af261cc1b3b349cfe7a7899a48b4e4aa257b4d11bf2ea084fb3191df7d15fbe9,https://gitlab.freedesktop.org/xorg/lib/libxau/-/archive/libXau-1.0.12/libxau-libXau-1.0.12.tar.gz, -113a6f8f614e037ff03cad218cdcbfe307dfc9d909a842b17276a694476ed639,https://gitlab.freedesktop.org/xorg/lib/libxcb/-/archive/libxcb-1.17.0/libxcb-libxcb-1.17.0.tar.gz, -5edaa65f5abd94ae12030b52fda66828eb8a41396aa9c02fd2c6210445fff61e,https://gitlab.freedesktop.org/xorg/lib/libxcvt/-/archive/libxcvt-0.1.3/libxcvt-libxcvt-0.1.3.tar.gz, -f5e93a7191e4ea2f43482e9c8470c5320e1bb7ee0070b72f97ad2d1141833cd4,https://gitlab.freedesktop.org/xorg/lib/libxdmcp/-/archive/libXdmcp-1.1.5/libxdmcp-libXdmcp-1.1.5.tar.gz, -4e48ea271b5f53c3386018a6e0263454fe582a413fce0273ade601fbfe9e0c72,https://gitlab.freedesktop.org/xorg/lib/libxext/-/archive/libXext-1.3.6/libxext-libXext-1.3.6.tar.gz, -1e7dfe2dd0eb2528fc21c2b1db64443b0f41e2ac623809939be6b4008c42ef5a,https://gitlab.freedesktop.org/xorg/lib/libxfixes/-/archive/libXfixes-6.0.2/libxfixes-libXfixes-6.0.2.tar.gz, -fb0fab7745c4670cd3c49b0cd3965494a6bee3778f36a0385a3265e803fe4d70,https://gitlab.freedesktop.org/xorg/lib/libxfont/-/archive/libXfont2-2.0.7/libxfont-libXfont2-2.0.7.tar.gz, -f033ea2b78d2b8f6c6fc4028aeace48f8d1b59d881d602a1d9418da69cc50200,https://gitlab.freedesktop.org/xorg/lib/libxkbfile/-/archive/libxkbfile-1.1.3/libxkbfile-libxkbfile-1.1.3.tar.gz, -54968c8ab8723c2d75a38fc45810e8cf60d44991e0887661bf9905a4042ad108,https://gitlab.gnome.org/GNOME/libxml2/-/archive/v2.14.5/libxml2-v2.14.5.tar.gz, -a1909cbe9ded94187b6420ae8c347153f8278955265cb80a64cdae5501433396,https://gitlab.freedesktop.org/xorg/lib/libxrandr/-/archive/libXrandr-1.5.4/libxrandr-libXrandr-1.5.4.tar.gz, -470559df9e0e4dbc81d5855d3d364a17e12263600a08217232f8b1f6ef3cddbf,https://gitlab.freedesktop.org/xorg/lib/libxrender/-/archive/libXrender-0.9.12/libxrender-libXrender-0.9.12.tar.gz, -61b90057e1cb1ec4688b2fd223f5008d637ab5a5e476ef3727543bb449c87697,https://gitlab.freedesktop.org/xorg/lib/libxshmfence/-/archive/libxshmfence-1.3.3/libxshmfence-libxshmfence-1.3.3.tar.gz, -6def23c86de6ff72030b9971ed6ddec24ba9b47344237ab7b5abeb2f044c3332,https://gitlab.freedesktop.org/xorg/lib/libxtrans/-/archive/xtrans-1.6.0/libxtrans-xtrans-1.6.0.tar.gz, -a23745e7865f4aa2ee2610f289ed8081140580cbe577b46aa1a7fb28ab7192cf,https://gitlab.freedesktop.org/xorg/lib/libxxf86vm/-/archive/libXxf86vm-1.1.6/libxxf86vm-libXxf86vm-1.1.6.tar.gz, -60e4f02f10f0c13249293471e1a95343865cfec63826a7e89d29f0ee34c03eaa,https://codeberg.org/Limine/Limine/releases/download/v9.6.6/limine-9.6.6.tar.xz, -0e1a946741db288a40361ad04ff38fe04bf0819834b8abb84c4b535fed9ba4ef,https://files.pythonhosted.org/packages/ba/85/50f030e20ca64562ac8fd36b65338c4da626739afd49200936f3d99a6047/lingua-4.15.0.tar.gz, -76bffbae7eab2a1de1ed05692bef709f43b02a52fe95ae655cacf0fa252213f3,https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.16.5.tar.xz, -21dbcec6e01dd578f14789eac9024a18941e6f2702a05cf91b28c232eeb26ab0,https://github.com/linux-pam/linux-pam/releases/download/v1.7.1/Linux-PAM-1.7.1.tar.xz, -1672e3efb4c2affd62dbbe12ea898b28a451416c7d95c1bd0190c26cbe878825,https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.0/llvm-project-21.1.0.src.tar.xz, -e236ea3a1ccf5f6c270b1c4bb60726f371fa49459a8eaaebc90b216b328daf2b,https://ftpmirror.gnu.org/gnu/m4/m4-1.4.20.tar.xz, -dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3,https://ftpmirror.gnu.org/gnu/make/make-4.4.1.tar.gz, -99579a6f39583fa7e5630a28c3c1f440e4e97a414b80372649c0ce338da2ea28,https://files.pythonhosted.org/packages/9e/38/bd5b78a920a64d708fe6bc8e0a2c075e1389d53bef8413725c63ba041535/mako-1.3.10.tar.gz, -ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0,https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz, -ec966eec39879f33c785343373021c44f887c836a08fcaf1d63412e3bdbfca32,https://skarnet.org/software/mdevd/mdevd-0.1.7.0.tar.gz, -8765bd25f7c3e61d7e963a7b2d312f743361d3187d3e3e6c0ade8e999d4b07bc,https://gitlab.freedesktop.org/mesa/mesa/-/archive/mesa-25.2.2/mesa-mesa-25.2.2.tar.gz, -a55bd02a9af4dd266c0042ec608744fff3a017577614c057da09f1f4566ea32c,https://bitmath.se/org/code/mtdev/mtdev-1.1.7.tar.gz, -565c1b6e1e58f7e90d8813fda0e2102df69fb493ddab4cf6a84ce3647466bee5,https://git.sr.ht/~lattis/muon/archive/0.5.0.tar.gz,muon-0.5.0.tar.gz -a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4,https://musl.libc.org/releases/musl-1.2.5.tar.gz, -f7abfbf0eed5f573ab51bd77a458f32d82f9859c55e9689f819d96fe1437a619,https://nano-editor.org/dist/v8/nano-8.6.tar.xz, -1412a1c760bbd05db026b6c0d1657affd6631cd0a63cddb6f73cc6d4aa616148,https://nasm.us/pub/nasm/releasebuilds/2.16.03/nasm-2.16.03.tar.xz, -97fc51ac2b085d4cde31ef4d2c3122c21abc217e9090a43a30fc5ec21684e059,https://invisible-island.net/datafiles/release/ncurses.tar.gz,ncurses-6.3.tar.gz -1daf10f322e14fd90a017538aaf2c034d7cc1eb1cc418ded47445d714ea168d4,https://www.netfilter.org/pub/nftables/nftables-1.1.5.tar.xz, -af95c2527cdf5d953d544140d5e60b46a29c5c3259672f5839153158e3bdd112,https://codeload.github.com/OpenRC/openrc/tar.gz/refs/tags/0.62.8,openrc-0.62.8.tar.gz -d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f,https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz, -1b2e2f683dfb5adec3faf17087ade8c648f10a5d3d0e17e421e0ac1a39e6740e,https://gitlab.gnome.org/GNOME/pango/-/archive/1.57.0/pango-1.57.0.tar.gz, -f87cee69eec2b4fcbf60a396b030ad6aa3415f192aa5f7ee84cad5e11f7f5ae3,https://ftpmirror.gnu.org/gnu/patch/patch-2.8.tar.xz, -8d28d7f2c3b970c3a4bf3776bcbb5adfc923183ce74bc8df1ebaad8c1985bd07,https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.46/pcre2-10.46.tar.gz, -e093ef184d7f9a1b9797e2465296f55510adb6dab8842b0c3ed53329663096dc,https://www.cpan.org/src/5.0/perl-5.42.0.tar.gz, -a098c33924754ad43f981b740f6d576c70f9ed1006e12221b1845431ebce1239,https://cairographics.org/releases/pixman-0.46.4.tar.xz, -cd05c9589b9f86ecf044c10a2269822bc9eb001eced2582cfffd658b0a50c243,https://distfiles.ariadne.space/pkgconf/pkgconf-2.5.1.tar.xz, -f3ef94aefed6e183e342a8a269ae1fc4742ba193186ad76f175938621dbfc26b,https://files.pythonhosted.org/packages/10/9a/79b1067d27e38ddf84fe7da6ec516f1743f31f752c6122193e7bce38bdbf/polib-1.2.0.tar.gz, -c2e6d193cc78f84cd6ddb72aaf6d5c6a9162f0470e5992092057f5ff518562fa,https://gigenet.dl.sourceforge.net/project/procps-ng/Production/procps-ng-4.0.5.tar.xz, -1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8,https://files.pythonhosted.org/packages/e7/82/28175b2414effca1cdac8dc99f76d660e7a4fb0ceefa4b4ab8f5f6742925/pyproject_hooks-1.2.0.tar.gz, -61a42919e13d539f7673cf11d1c404380e28e540510860b9d242196e165709c9,https://www.python.org/ftp/python/3.9.23/Python-3.9.23.tar.xz, -70d4739585a7008f37bf4933c013fdb327b8878a5a69fcbb3316c88882f0f49b,https://files.pythonhosted.org/packages/d7/7d/60976d532519c3a0b41e06a59ad60949e2be1af937cf02738fec91bfd808/pytest-runner-6.0.1.tar.gz, -d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e,https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz, -3b8cf51548dfc49b7efe035e191ff5e1963ebc4fe8f6064a5eefc5343eaf78a5,https://github.com/michaelforney/samurai/releases/download/1.2/samurai-1.2.tar.gz, -6e226b732e1cd739464ad6862bd1a1aba42d7982922da7a53519631d24975181,https://ftpmirror.gnu.org/gnu/sed/sed-4.9.tar.xz, -f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c,https://files.pythonhosted.org/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz, -6662c9b9497b6c9bf13bead9d7a9084756f68238302c5ed089fb4dbd29d102d7,https://files.pythonhosted.org/packages/8f/8d/ffdcace33d0480d591057a30285b7c33f8dc431fed3fff7dbadf5f9f128f/setuptools_scm-9.2.0.tar.gz, -add4604d3bc410344433122a819ee4154b79dd8316a56298c60417e637c07608,https://github.com/shadow-maint/shadow/releases/download/4.18.0/shadow-4.18.0.tar.xz, -531291d0387eb94e16e775d7e73788d06d2b2fdd8cd2ac6b6b15287593b6a2de,https://gitlab.freedesktop.org/xdg/shared-mime-info/-/archive/2.4/shared-mime-info-2.4.tar.gz, -0e626261848cc920738f92fd50a24c14b21e30306dfed97b8435369f4bae00a5,https://skarnet.org/software/skalibs/skalibs-2.14.4.0.tar.gz, -878fb5ab705442070e4dd1929bb5e2249511c0bcf2b0eeacf3bcd80875c82eff,https://files.pythonhosted.org/packages/85/ad/430fb60d90e1d112a62ff57bdd1f286ec73a2a0331272febfddd21f330e1/StrEnum-0.4.15.tar.gz, -5bbea925663d4cd2bab23efad53874f2718248a73dcaf9dd21dff8cb48e602fc,https://github.com/KhronosGroup/SPIRV-Headers/archive/refs/tags/vulkan-sdk-1.4.321.0.tar.gz,SPIRV-Headers-vulkan-sdk-1.4.321.0.tar.gz -4f7019a06c731daebbc18080db338964002493ead4cfb440fef95d120c50a170,https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v21.1.0.tar.gz,spirv-llvm-translator-21.1.0.tar.gz -6a9313fa68e061d463f616357cd24cdf1c3a27d906ea791d7ba67dd1b6666a40,https://github.com/KhronosGroup/SPIRV-Tools/archive/refs/tags/v2025.1.tar.gz,spirv-tools-2025.1.tar.gz -4d62ff37342ec7aed748535323930c7cf94acf71c3591882b26a7ea50f3edc16,https://ftpmirror.gnu.org/gnu/tar/tar-1.35.tar.xz, -273a0a73b1f0bed640afee4a5df0337357ced5b53d3d5d1c405b936501f71017,https://download.osgeo.org/libtiff/tiff-4.7.0.tar.xz, -6ee152cfb083a378285a49c8e52294307458119147f795bfb7f460cb7ed1d659,https://github.com/illiliti/tinyramfs/archive/refs/tags/0.2.0.tar.gz,tinyramfs-0.2.0.tar.gz -cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff,https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz, -0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466,https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz, -26687ec84e3e114759454c884a08abeaf79dec09b041895ddf4c45ec150acb6d,https://lttng.org/files/urcu/userspace-rcu-0.15.3.tar.bz2, -be9ad9a276f4305ab7dd2f5225c8be1ff54352f565ff4dede9628c1aaa7dec57,https://www.kernel.org/pub/linux/utils/util-linux/v2.41/util-linux-2.41.1.tar.xz, -beac7e00e5996bd0c9d9bd8cf62704583b22dbe8613bd768626b95fcac955744,https://gitlab.freedesktop.org/xorg/util/macros/-/archive/util-macros-1.20.2/macros-util-macros-1.20.2.tar.gz, -661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729,https://files.pythonhosted.org/packages/8a/98/2d9906746cdc6a6ef809ae6338005b3f21bb568bea3165cfc6a243fdc25c/wheel-0.45.1.tar.gz, -479447448281cfb6585ad780f23bd75311af20daf344fb9209c8a87ea77e296a,https://gitlab.freedesktop.org/xorg/proto/xcbproto/-/archive/xcb-proto-1.17.0/xcbproto-xcb-proto-1.17.0.tar.gz, -7b56592b339d47809cbefb9f46721705c662de1a001bc773d335975cd2eba34f,https://gitlab.freedesktop.org/xorg/lib/libxcb-util/-/archive/xcb-util-0.4.1/libxcb-util-xcb-util-0.4.1.tar.gz, -c1b792306874c36b535413a33edc71a0ac46e78adcf6ddb1a34090a07393d717,https://gitlab.freedesktop.org/xorg/lib/libxcb-wm/-/archive/xcb-util-wm-0.4.2/libxcb-wm-xcb-util-wm-0.4.2.tar.gz, -dd18aece9b4e99e6b3d4d9d436cf0645ea31d11e142da193e8b01c23a8b097b2,https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/archive/xkbcomp-1.4.7/xkbcomp-xkbcomp-1.4.7.tar.gz, -9ab49abdae20545c8f215472d8537e0228635b7947d63e02592db24a5025ed6a,https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/archive/xkeyboard-config-2.45/xkeyboard-config-xkeyboard-config-2.45.tar.gz, -6389dae32d7d772245fed7c76d3f83cb7ffa88eb447dbb4db8400c2220e42c2a,https://gitlab.freedesktop.org/xorg/util/xcb-util-m4/-/archive/c617eee22ae5c285e79e81ec39ce96862fd3262f/xcb-util-m4-c617eee22ae5c285e79e81ec39ce96862fd3262f.tar.gz, -f1be5a443af78307af18103a6bb614021fe163380b0eb43dec820a2389fbd6c8,https://github.com/X11Libre/xf86-input-libinput/archive/refs/tags/xlibre-xf86-input-libinput-1.5.1.0.tar.gz, -8a82efea51d363e887f5ea5efadcce201beed5cb344dbac03787fbbbf79c8a0f,https://github.com/X11Libre/xf86-video-vesa/archive/refs/tags/xlibre-xf86-video-vesa-2.6.0.2.tar.gz, -fa7ba8c35cb988e7d65b7e7630fe9d0e17e8d79799d3b98db7e19f2b9b150506,https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/xfsprogs-6.16.0.tar.xz, -87cd9aaf57ca5b9bc3c83a185ec11bc6e705c0c490219e5407bf94177db9fadf,https://github.com/X11Libre/xserver/archive/refs/tags/xlibre-xserver-25.0.0.11.tar.gz, -c92466091663b68d93997eab4f329d0be511cb448a61b61fe74a738f2698b77c,https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/archive/xorgproto-2024.1/xorgproto-xorgproto-2024.1.tar.gz, -0b54f79df85912504de0b14aec7971e3f964491af1812d83447005807513cd9e,https://github.com/tukaani-project/xz/releases/download/v5.8.1/xz-5.8.1.tar.xz, -a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166,https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz, -9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23,https://www.zlib.net/zlib-1.3.1.tar.gz, -9b8d1ecedd5b5e81fbf1918e876752a7dd948e05c1a0dba10ab863842d45acd5,https://www.zsh.org/pub/zsh-5.9.tar.xz, +#sha256sum,comment,url,filename(optional) +ba885c1319578d6c94d46e9b0dceb4014caafe2490e437a0dbca3f270a223f5a,autoconf,https://ftpmirror.gnu.org/gnu/autoconf/autoconf-2.72.tar.xz, +168aa363278351b89af56684448f525a5bce5079d0b6842bd910fdd3f1646887,automake,https://ftpmirror.gnu.org/gnu/automake/automake-1.18.1.tar.xz, +0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d,babel,https://files.pythonhosted.org/packages/7d/6b/d52e42361e1aa00709585ecc30b3f9684b3ab62530771402248b1b1d6240/babel-2.17.0.tar.gz, +ae470fec429775653e042015edc928d07c8c3b2fc59765172a330d3d87785f86,bc,https://ftpmirror.gnu.org/gnu/bc/bc-1.08.2.tar.gz, +9bba0214ccf7f1079c5d59210045227bcf619519840ebfa80cd3849cff5a5bf2,bison,https://ftpmirror.gnu.org/gnu/bison/bison-3.8.2.tar.xz, +698edd0ea270bde950f53aed21f3a0135672206f3911e0176261a31e0e07b397,build,https://files.pythonhosted.org/packages/25/1c/23e33405a7c9eac261dff640926b8b5adaed6a6eb3e1767d441ed611d0c0/build-1.3.0.tar.gz, +ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269,bzip2,https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz, +445ed8208a6e4823de1226a74ca319d3600e83f6369f99b14265006599c32ccb,cairo,https://cairographics.org/releases/cairo-1.18.4.tar.xz, +33ea8eb2a4daeaa506e8fcafd5d6d89027ed6f2f0609645c6f149b560d301706,chrony,https://chrony-project.org/releases/chrony-4.8.tar.gz, +ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a,click,https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz, +643f04182b7ba323ab31f526f785134fb79cba3188a852206ef0473fee282a15,cmake,https://github.com/Kitware/CMake/releases/download/v4.1.2/cmake-4.1.2.tar.gz, +e6d4fd2d852c9141a1c2a18a13d146a0cd7e45195f72293a4e4c044ec6ccca15,coreutils,https://ftpmirror.gnu.org/gnu/coreutils/coreutils-9.8.tar.xz, +937610b97c329a1ec9268553fb780037bcfff0dcffe9725ebc4fd9c1aa9075db,cpio,https://ftpmirror.gnu.org/gnu/cpio/cpio-2.15.tar.bz2, +40c8cddbcb6cc6251c03dea423a472a6cea4037be654ba5cf5dec6eb2d22ff1d,curl,https://curl.se/download/curl-8.16.0.tar.xz, +845fd61702ae5e53e09664faa450da82805958924b109b8c5b4777bd8551af00,dash,https://salsa.debian.org/debian/dash/-/archive/debian/0.5.12-12/dash-debian-0.5.12-12.tar.gz, +6721e606609226dbf4d864a78802a9e96beec0ee034a1bd84138b3e037bba7d9,dhcpcd,https://github.com/NetworkConfiguration/dhcpcd/releases/download/v10.2.4/dhcpcd-10.2.4.tar.xz, +7c8b7f9fc8609141fdea9cece85249d308624391ff61dedaf528fcb337727dfd,diffutils,https://ftpmirror.gnu.org/gnu/diffutils/diffutils-3.12.tar.xz, +64926eebf90092dca21b14259a5301b7b98e7b1943e8a201c7d726084809b527,dosfstools,https://github.com/dosfstools/dosfstools/releases/download/v4.2/dosfstools-4.2.tar.gz, +93ebe1294ee3203d3bf548c78d51bde9494d3f24de64eaec380a2620f0431f20,dropbear,https://github.com/mkj/dropbear/archive/refs/tags/DROPBEAR_2025.88.tar.gz,dropbear-2025.88.tar.gz +71df8f40706a7bb0a80a5367079ea75d91da4f8c65c58ec59bcdfbf7decdab9f,expat,https://github.com/libexpat/libexpat/releases/download/R_2_7_3/expat-2.7.3.tar.xz, +1387e0b67ff247d2abde998f90dfbf70c1491391a59ddfecb8ae698789f0a4f5,findutils,https://ftpmirror.gnu.org/gnu/findutils/findutils-4.10.0.tar.xz, +1b1cde5b235d40479e91be2f0e88a309e3214c8ab470ec8a2744d82a5a9ea05c,fribidi,https://github.com/fribidi/fribidi/releases/download/v1.0.16/fribidi-1.0.16.tar.xz, +2b47e8f2d90d35d29339ed78e1a6eabb36eefa9cfa5a5ca3b0d1f27502c43675,flatpak,https://github.com/flatpak/flatpak/releases/download/1.16.1/flatpak-1.16.1.tar.xz, +e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995,flex,https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz, +18f63100d6f94385c6ed57a72073443e1a71a4acb4339491615d0f16d6ff01b2,flit_core,https://files.pythonhosted.org/packages/69/59/b6fc2188dfc7ea4f936cd12b49d707f66a1cb7a1d2c16172963534db741b/flit_core-3.12.0.tar.gz, +f0129159515c13ebe53ba2a6a94755e98c266470e844ee0aacc6196fd62b44f0,font-util,https://gitlab.freedesktop.org/xorg/font/util/-/archive/font-util-1.4.1/util-font-util-1.4.1.tar.gz, +82e73b26adad651b236e5f5d4b3074daf8ff0910188808496326bd3449e5261d,fontconfig,https://gitlab.freedesktop.org/fontconfig/fontconfig/-/archive/2.17.1/fontconfig-2.17.1.tar.gz, +32427e8c471ac095853212a37aef816c60b42052d4d9e48230bab3bdf2936ccc,freetype,https://download.savannah.gnu.org/releases/freetype/freetype-2.14.1.tar.xz, +f8c3486509de705192138b00ef2c00bbbdd0e84c30d5c07d23fc73a9dc4cc9cc,gawk,https://ftpmirror.gnu.org/gnu/gawk/gawk-5.3.2.tar.xz, +cc591e3949a95e2f7b50173c9373df8846648b15aa596d9e7ec7258381bfac0d,gdk-pixbuf,https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/archive/2.44.3/gdk-pixbuf-2.44.3.tar.gz, +d1fb86e260cfe7da6031f94d2e44c0da55903dbae0a2fa0fae78c91ae1b56f00,gettext,https://ftp.gnu.org/pub/gnu/gettext/gettext-0.26.tar.xz, +3524fc5fd81f16f80e1696a8281bd8ad831048b67848015d7b7382bf365ae685,git,https://github.com/git/git/archive/refs/tags/v2.51.0.tar.gz,git-2.51.0.tar.gz +56aef5791f402fff73a2de0664e573c5d00ef8cb71405eb76b388f44c6d78927,glib,https://gitlab.gnome.org/GNOME/glib/-/archive/2.86.0/glib-2.86.0.tar.gz, +b16c78e7604b9be9f546ee35ad8b6db6f39bbbbfb19e8d038b6fe2ea5bba4ff4,glslang,https://github.com/KhronosGroup/glslang/archive/refs/tags/15.4.0.tar.gz,glslang-15.4.0.tar.gz +a3c2b80201b89e68616f4ad30bc66aee4927c3ce50e33929ca819d5c43538898,gmp,https://gmplib.org/download/gmp/gmp-6.3.0.tar.xz, +fd87e0aba7e43ae054837afd6cd4db03a3f2693deb3619085e6ed9d8d9604ad8,gperf,https://ftp.gnu.org/pub/gnu/gperf/gperf-3.3.tar.gz, +2649b27c0e90e632eadcd757be06c6e9a4f48d941de51e7c0f83ff76408a07b9,grep,https://ftpmirror.gnu.org/gnu/grep/grep-3.12.tar.xz, +069a00aa1fc893f18423602f4e095583be5a220429f6e8a58d70511490b4b019,gvdb,https://gitlab.gnome.org/GNOME/gvdb/-/archive/2b42fc75f09dbe1cd1057580b5782b08f2dcb400/gvdb-2b42fc75f09dbe1cd1057580b5782b08f2dcb400.tar.gz, +01a7b881bd220bfdf615f97b8718f80bdfd3f6add385b993dcf6efd14e8c0ac6,gzip,https://ftpmirror.gnu.org/gnu/gzip/gzip-1.14.tar.xz, +e5c81b7f6e0b102dfb000cfa424538b8e896ab78a2f4b8a5ec8cae62ab43369e,harfbuzz,https://github.com/harfbuzz/harfbuzz/releases/download/12.1.0/harfbuzz-12.1.0.tar.xz, +d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000,importlib_metadata,https://files.pythonhosted.org/packages/76/66/650a33bd90f786193e4de4b3ad86ea60b53c89b669a5c7be931fac31cdb0/importlib_metadata-8.7.0.tar.gz, +9781e59410ab7dea8e9f79bb10ff1488e63d10fcbb70503b94426ba27a8e2dec,iproute2,https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-6.17.0.tar.xz, +fb3197f17a99eb44d22a3a1a71f755f9622dd963e66acfdea1a45120951b02ed,kbd,https://www.kernel.org/pub/linux/utils/kbd/kbd-2.9.0.tar.xz, +5a5d5073070cc7e0c7a7a3c6ec2a0e1780850c8b47b3e3892226b93ffcb9cb54,kmod,https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-34.2.tar.xz, +19f917d42d530f98815ac824d90c7eaf648e9d9a50e4f309c812457ffa5496b5,libarchive,https://libarchive.org/downloads/libarchive-3.8.1.tar.xz, +b88cc9163d0c652aaf39a99991d974ddba1c3a9711db8f1b5838af2a14731014,libbsd,https://libbsd.freedesktop.org/releases/libbsd-0.12.2.tar.xz, +629da4ab29900d0f7fcc36227073743119925fd711c99a1689bbf5c9b40c8e6f,libcap2,https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.76.tar.xz, +6cab16d4d259b6abc9f485233863454114a3c307eca806679aad3edbe967bf42,libdrm,https://dri.freedesktop.org/libdrm/libdrm-2.4.126.tar.xz, +6253395679c2bb2156d926b3d8b7e3b2bbeb40a56d2bea29e1c73e40ed9de4ba,libelf,https://github.com/arachsys/libelf/archive/refs/tags/v0.193.tar.gz,libelf-0.193.tar.gz +0cfa48d1dddac26988ae9ce16282eff97683f1adcd3f5d4312f86d714565d890,libevdev,https://gitlab.freedesktop.org/libevdev/libevdev/-/archive/libevdev-1.13.4/libevdev-libevdev-1.13.4.tar.gz, +31dc201284fb5d2bec60b2ceee3126b5cf633c3de74151be44817890e8e7c581,libfontenc,https://gitlab.freedesktop.org/xorg/lib/libfontenc/-/archive/libfontenc-1.1.8/libfontenc-libfontenc-1.1.8.tar.gz, +f3a3082a23b37c293a4fcd1053147b371f2ff91fa7ea1b2a52e335676bac82dc,libffi,https://github.com/libffi/libffi/releases/download/v3.5.2/libffi-3.5.2.tar.gz, +9c15fa751bb8093d042dae1b9f125eb45198c32c6704cd5481ccde460d4f8151,libinih,https://github.com/benhoyt/inih/archive/refs/tags/r62.tar.gz,libinih-r62.tar.gz +98bb615d98ddc4607bddb13a7b7550d129eb8cd16f86cd5ca090207bc46b488b,libinput,https://gitlab.freedesktop.org/libinput/libinput/-/archive/1.29.1/libinput-1.29.1.tar.gz, +8f0012234b464ce50890c490f18194f913a7b1f4e6a03d6644179fa0f867d0cf,libjpeg-turbo,https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/3.1.2/libjpeg-turbo-3.1.2.tar.gz, +1bd6aa42275313af3141c7cf2e5b964e8b1fd488025caf2f971f43b00776b332,libmd,https://libbsd.freedesktop.org/releases/libmd-1.1.0.tar.xz, +274b9b919ef3152bfb3da3a13c950dd60d6e2bcd54230ffeca298d03b40d0525,libmnl,https://www.netfilter.org/pub/libmnl/libmnl-1.0.5.tar.bz2, +0f4be47a8bb8b77a350ee58cbd4b5fae6260ad486a527706ab15cfe1dd55a3c4,libnftnl,https://www.netfilter.org/pub/libnftnl/libnftnl-1.3.0.tar.xz, +a395317730e0e8d5e71419d4d1256a89e32c2fa793607b63c4d0fb497ae34602,libpciaccess,https://gitlab.freedesktop.org/xorg/lib/libpciaccess/-/archive/libpciaccess-0.18.1/libpciaccess-libpciaccess-0.18.1.tar.gz, +4df396518620a7aa3651443e87d1b2862e4e88cad135a8b93423e01706232307,libpng,https://download.sourceforge.net/libpng/libpng-1.6.50.tar.xz, +c7ff7a7d675d5f57730940e5ccff1dbe2dcd5b7405b5397e0f7ffd66a5ed5679,libressl,https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-4.1.1.tar.gz, +f81f5860666b0bc7d84baddefa60d1cb9fa6fceb2398cc3baca6afaa60266675,libtool,https://ftpmirror.gnu.org/gnu/libtool/libtool-2.5.4.tar.xz, +0bd89b657d62d019598e6c7ed726ff8fed80e8ba092a83b484d66afb80b77da5,libudev-zero,https://github.com/illiliti/libudev-zero/archive/refs/tags/1.0.3.tar.gz,libudev-zero-1.0.3.tar.gz +ea97bead1e8721d9002055970e8ad64ef79ee9dcee8595a3dae2cf5c2192a47f,libX11,https://gitlab.freedesktop.org/xorg/lib/libx11/-/archive/libX11-1.8.12/libx11-libX11-1.8.12.tar.gz, +af261cc1b3b349cfe7a7899a48b4e4aa257b4d11bf2ea084fb3191df7d15fbe9,libXau,https://gitlab.freedesktop.org/xorg/lib/libxau/-/archive/libXau-1.0.12/libxau-libXau-1.0.12.tar.gz, +113a6f8f614e037ff03cad218cdcbfe307dfc9d909a842b17276a694476ed639,libxcb,https://gitlab.freedesktop.org/xorg/lib/libxcb/-/archive/libxcb-1.17.0/libxcb-libxcb-1.17.0.tar.gz, +5edaa65f5abd94ae12030b52fda66828eb8a41396aa9c02fd2c6210445fff61e,libxcvt,https://gitlab.freedesktop.org/xorg/lib/libxcvt/-/archive/libxcvt-0.1.3/libxcvt-libxcvt-0.1.3.tar.gz, +f5e93a7191e4ea2f43482e9c8470c5320e1bb7ee0070b72f97ad2d1141833cd4,libXdmcp,https://gitlab.freedesktop.org/xorg/lib/libxdmcp/-/archive/libXdmcp-1.1.5/libxdmcp-libXdmcp-1.1.5.tar.gz, +4e48ea271b5f53c3386018a6e0263454fe582a413fce0273ade601fbfe9e0c72,libXext,https://gitlab.freedesktop.org/xorg/lib/libxext/-/archive/libXext-1.3.6/libxext-libXext-1.3.6.tar.gz, +1e7dfe2dd0eb2528fc21c2b1db64443b0f41e2ac623809939be6b4008c42ef5a,libXfixes,https://gitlab.freedesktop.org/xorg/lib/libxfixes/-/archive/libXfixes-6.0.2/libxfixes-libXfixes-6.0.2.tar.gz, +fb0fab7745c4670cd3c49b0cd3965494a6bee3778f36a0385a3265e803fe4d70,libXfont2,https://gitlab.freedesktop.org/xorg/lib/libxfont/-/archive/libXfont2-2.0.7/libxfont-libXfont2-2.0.7.tar.gz, +f033ea2b78d2b8f6c6fc4028aeace48f8d1b59d881d602a1d9418da69cc50200,libxkbfile,https://gitlab.freedesktop.org/xorg/lib/libxkbfile/-/archive/libxkbfile-1.1.3/libxkbfile-libxkbfile-1.1.3.tar.gz, +027e302d24e0d136393a24e02938046cda72281a3e3620d56cbc0995524658bc,libxml2,https://gitlab.gnome.org/GNOME/libxml2/-/archive/v2.15.0/libxml2-v2.15.0.tar.gz, +a1909cbe9ded94187b6420ae8c347153f8278955265cb80a64cdae5501433396,libXrandr,https://gitlab.freedesktop.org/xorg/lib/libxrandr/-/archive/libXrandr-1.5.4/libxrandr-libXrandr-1.5.4.tar.gz, +470559df9e0e4dbc81d5855d3d364a17e12263600a08217232f8b1f6ef3cddbf,libxrender,https://gitlab.freedesktop.org/xorg/lib/libxrender/-/archive/libXrender-0.9.12/libxrender-libXrender-0.9.12.tar.gz, +61b90057e1cb1ec4688b2fd223f5008d637ab5a5e476ef3727543bb449c87697,libxshmfence,https://gitlab.freedesktop.org/xorg/lib/libxshmfence/-/archive/libxshmfence-1.3.3/libxshmfence-libxshmfence-1.3.3.tar.gz, +6def23c86de6ff72030b9971ed6ddec24ba9b47344237ab7b5abeb2f044c3332,libxtrans,https://gitlab.freedesktop.org/xorg/lib/libxtrans/-/archive/xtrans-1.6.0/libxtrans-xtrans-1.6.0.tar.gz, +a23745e7865f4aa2ee2610f289ed8081140580cbe577b46aa1a7fb28ab7192cf,libXxf86vm,https://gitlab.freedesktop.org/xorg/lib/libxxf86vm/-/archive/libXxf86vm-1.1.6/libxxf86vm-libXxf86vm-1.1.6.tar.gz, +29d52f0584cd0d9aa108e303e48551707f537f74c34a16479abb0497d8145a58,Limine,https://codeberg.org/Limine/Limine/releases/download/v10.1.0/limine-10.1.0.tar.xz, +0e1a946741db288a40361ad04ff38fe04bf0819834b8abb84c4b535fed9ba4ef,lingua,https://files.pythonhosted.org/packages/ba/85/50f030e20ca64562ac8fd36b65338c4da626739afd49200936f3d99a6047/lingua-4.15.0.tar.gz, +fdebcb065065f5c1b8dc68a6fb59cda50cdddbf9103d207c2196d55ea764f57f,Linux,https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.17.2.tar.xz, +21dbcec6e01dd578f14789eac9024a18941e6f2702a05cf91b28c232eeb26ab0,Linux PAM,https://github.com/linux-pam/linux-pam/releases/download/v1.7.1/Linux-PAM-1.7.1.tar.xz, +9c9db50d8046f668156d83f6b594631b4ca79a0d96e4f19bed9dc019b022e58f,LLVM,https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.3/llvm-project-21.1.3.src.tar.xz, +e236ea3a1ccf5f6c270b1c4bb60726f371fa49459a8eaaebc90b216b328daf2b,m4,https://ftpmirror.gnu.org/gnu/m4/m4-1.4.20.tar.xz, +dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3,make,https://ftpmirror.gnu.org/gnu/make/make-4.4.1.tar.gz, +99579a6f39583fa7e5630a28c3c1f440e4e97a414b80372649c0ce338da2ea28,mako,https://files.pythonhosted.org/packages/9e/38/bd5b78a920a64d708fe6bc8e0a2c075e1389d53bef8413725c63ba041535/mako-1.3.10.tar.gz, +ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0,markupsafe,https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz, +ec966eec39879f33c785343373021c44f887c836a08fcaf1d63412e3bdbfca32,mdevd,https://skarnet.org/software/mdevd/mdevd-0.1.7.0.tar.gz, +276490281e37add4ebc935a106af33daa70d3cbca4305afc8746ea66981d2f71,mesa,https://gitlab.freedesktop.org/mesa/mesa/-/archive/mesa-25.2.4/mesa-mesa-25.2.4.tar.gz, +a55bd02a9af4dd266c0042ec608744fff3a017577614c057da09f1f4566ea32c,mtdev,https://bitmath.se/org/code/mtdev/mtdev-1.1.7.tar.gz, +565c1b6e1e58f7e90d8813fda0e2102df69fb493ddab4cf6a84ce3647466bee5,muon,https://git.sr.ht/~lattis/muon/archive/0.5.0.tar.gz,muon-0.5.0.tar.gz +a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4,musl,https://musl.libc.org/releases/musl-1.2.5.tar.gz, +f7abfbf0eed5f573ab51bd77a458f32d82f9859c55e9689f819d96fe1437a619,nano,https://nano-editor.org/dist/v8/nano-8.6.tar.xz, +b7324cbe86e767b65f26f467ed8b12ad80e124e3ccb89076855c98e43a9eddd4,nasm,https://www.nasm.us/pub/nasm/releasebuilds/3.01/nasm-3.01.tar.xz, +97fc51ac2b085d4cde31ef4d2c3122c21abc217e9090a43a30fc5ec21684e059,ncurses,https://invisible-island.net/datafiles/release/ncurses.tar.gz,ncurses-6.3.tar.gz +1daf10f322e14fd90a017538aaf2c034d7cc1eb1cc418ded47445d714ea168d4,nftables,https://www.netfilter.org/pub/nftables/nftables-1.1.5.tar.xz, +1b661016bd8cd4189be83b441dd7062c967b641fdc00f741e359e22d06857df8,openrc,https://github.com/OpenRC/openrc/archive/refs/tags/0.63.tar.gz,openrc-0.63.tar.gz +d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f,packaging,https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz, +1b2e2f683dfb5adec3faf17087ade8c648f10a5d3d0e17e421e0ac1a39e6740e,pango,https://gitlab.gnome.org/GNOME/pango/-/archive/1.57.0/pango-1.57.0.tar.gz, +f87cee69eec2b4fcbf60a396b030ad6aa3415f192aa5f7ee84cad5e11f7f5ae3,patch,https://ftpmirror.gnu.org/gnu/patch/patch-2.8.tar.xz, +8d28d7f2c3b970c3a4bf3776bcbb5adfc923183ce74bc8df1ebaad8c1985bd07,pcre2,https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.46/pcre2-10.46.tar.gz, +e093ef184d7f9a1b9797e2465296f55510adb6dab8842b0c3ed53329663096dc,perl,https://www.cpan.org/src/5.0/perl-5.42.0.tar.gz, +a098c33924754ad43f981b740f6d576c70f9ed1006e12221b1845431ebce1239,pixman,https://cairographics.org/releases/pixman-0.46.4.tar.xz, +cd05c9589b9f86ecf044c10a2269822bc9eb001eced2582cfffd658b0a50c243,pkgconf,https://distfiles.ariadne.space/pkgconf/pkgconf-2.5.1.tar.xz, +f3ef94aefed6e183e342a8a269ae1fc4742ba193186ad76f175938621dbfc26b,polib,https://files.pythonhosted.org/packages/10/9a/79b1067d27e38ddf84fe7da6ec516f1743f31f752c6122193e7bce38bdbf/polib-1.2.0.tar.gz, +c2e6d193cc78f84cd6ddb72aaf6d5c6a9162f0470e5992092057f5ff518562fa,procps-ng,https://gigenet.dl.sourceforge.net/project/procps-ng/Production/procps-ng-4.0.5.tar.xz, +1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8,pyproject_hooks,https://files.pythonhosted.org/packages/e7/82/28175b2414effca1cdac8dc99f76d660e7a4fb0ceefa4b4ab8f5f6742925/pyproject_hooks-1.2.0.tar.gz, +61a42919e13d539f7673cf11d1c404380e28e540510860b9d242196e165709c9,Python,https://www.python.org/ftp/python/3.9.23/Python-3.9.23.tar.xz, +70d4739585a7008f37bf4933c013fdb327b8878a5a69fcbb3316c88882f0f49b,pytest-runner,https://files.pythonhosted.org/packages/d7/7d/60976d532519c3a0b41e06a59ad60949e2be1af937cf02738fec91bfd808/pytest-runner-6.0.1.tar.gz, +d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e,pyyaml,https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz, +6bfeaddd90ffda2f063492b092bfed925c4b8c701579baf4b1316e021470daac,rustc,https://static.rust-lang.org/dist/rustc-1.90.0-src.tar.xz, +3b8cf51548dfc49b7efe035e191ff5e1963ebc4fe8f6064a5eefc5343eaf78a5,samurai,https://github.com/michaelforney/samurai/releases/download/1.2/samurai-1.2.tar.gz, +6e226b732e1cd739464ad6862bd1a1aba42d7982922da7a53519631d24975181,sed,https://ftpmirror.gnu.org/gnu/sed/sed-4.9.tar.xz, +f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c,setuptools,https://files.pythonhosted.org/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz, +6662c9b9497b6c9bf13bead9d7a9084756f68238302c5ed089fb4dbd29d102d7,setuptools_scm,https://files.pythonhosted.org/packages/8f/8d/ffdcace33d0480d591057a30285b7c33f8dc431fed3fff7dbadf5f9f128f/setuptools_scm-9.2.0.tar.gz, +add4604d3bc410344433122a819ee4154b79dd8316a56298c60417e637c07608,shadow,https://github.com/shadow-maint/shadow/releases/download/4.18.0/shadow-4.18.0.tar.xz, +531291d0387eb94e16e775d7e73788d06d2b2fdd8cd2ac6b6b15287593b6a2de,shared-mime-info,https://gitlab.freedesktop.org/xdg/shared-mime-info/-/archive/2.4/shared-mime-info-2.4.tar.gz, +0e626261848cc920738f92fd50a24c14b21e30306dfed97b8435369f4bae00a5,skalibs,https://skarnet.org/software/skalibs/skalibs-2.14.4.0.tar.gz, +878fb5ab705442070e4dd1929bb5e2249511c0bcf2b0eeacf3bcd80875c82eff,StrEnum,https://files.pythonhosted.org/packages/85/ad/430fb60d90e1d112a62ff57bdd1f286ec73a2a0331272febfddd21f330e1/StrEnum-0.4.15.tar.gz, +5bbea925663d4cd2bab23efad53874f2718248a73dcaf9dd21dff8cb48e602fc,SPIRV-Headers,https://github.com/KhronosGroup/SPIRV-Headers/archive/refs/tags/vulkan-sdk-1.4.321.0.tar.gz,SPIRV-Headers-vulkan-sdk-1.4.321.0.tar.gz +4f7019a06c731daebbc18080db338964002493ead4cfb440fef95d120c50a170,SPIRV-LLVM-Translator,https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v21.1.0.tar.gz,spirv-llvm-translator-21.1.0.tar.gz +6a9313fa68e061d463f616357cd24cdf1c3a27d906ea791d7ba67dd1b6666a40,SPIRV-Tools,https://github.com/KhronosGroup/SPIRV-Tools/archive/refs/tags/v2025.1.tar.gz,spirv-tools-2025.1.tar.gz +4d62ff37342ec7aed748535323930c7cf94acf71c3591882b26a7ea50f3edc16,tar,https://ftpmirror.gnu.org/gnu/tar/tar-1.35.tar.xz, +b92017489bdc1db3a4c97191aa4b75366673cb746de0dce5d7a749d5954681ba,tiff,https://download.osgeo.org/libtiff/tiff-4.7.1.tar.xz, +6ee152cfb083a378285a49c8e52294307458119147f795bfb7f460cb7ed1d659,tinyramfs,https://github.com/illiliti/tinyramfs/archive/refs/tags/0.2.0.tar.gz,tinyramfs-0.2.0.tar.gz +cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff,tomli,https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz, +0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466,typing_extensions,https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz, +26687ec84e3e114759454c884a08abeaf79dec09b041895ddf4c45ec150acb6d,liburcu,https://lttng.org/files/urcu/userspace-rcu-0.15.3.tar.bz2, +6062a1d89b571a61932e6fc0211f36060c4183568b81ee866cf363bce9f6583e,util-linux,https://www.kernel.org/pub/linux/utils/util-linux/v2.41/util-linux-2.41.2.tar.xz, +beac7e00e5996bd0c9d9bd8cf62704583b22dbe8613bd768626b95fcac955744,util-macros,https://gitlab.freedesktop.org/xorg/util/macros/-/archive/util-macros-1.20.2/macros-util-macros-1.20.2.tar.gz, +661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729,wheel,https://files.pythonhosted.org/packages/8a/98/2d9906746cdc6a6ef809ae6338005b3f21bb568bea3165cfc6a243fdc25c/wheel-0.45.1.tar.gz, +7b56592b339d47809cbefb9f46721705c662de1a001bc773d335975cd2eba34f,xcb-util,https://gitlab.freedesktop.org/xorg/lib/libxcb-util/-/archive/xcb-util-0.4.1/libxcb-util-xcb-util-0.4.1.tar.gz, +6389dae32d7d772245fed7c76d3f83cb7ffa88eb447dbb4db8400c2220e42c2a,xcb-util-m4,https://gitlab.freedesktop.org/xorg/util/xcb-util-m4/-/archive/c617eee22ae5c285e79e81ec39ce96862fd3262f/xcb-util-m4-c617eee22ae5c285e79e81ec39ce96862fd3262f.tar.gz, +c1b792306874c36b535413a33edc71a0ac46e78adcf6ddb1a34090a07393d717,xcb-util-wm,https://gitlab.freedesktop.org/xorg/lib/libxcb-wm/-/archive/xcb-util-wm-0.4.2/libxcb-wm-xcb-util-wm-0.4.2.tar.gz, +479447448281cfb6585ad780f23bd75311af20daf344fb9209c8a87ea77e296a,xcbproto,https://gitlab.freedesktop.org/xorg/proto/xcbproto/-/archive/xcb-proto-1.17.0/xcbproto-xcb-proto-1.17.0.tar.gz, +fa7ba8c35cb988e7d65b7e7630fe9d0e17e8d79799d3b98db7e19f2b9b150506,xfsprogs,https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/xfsprogs-6.16.0.tar.xz, +dd18aece9b4e99e6b3d4d9d436cf0645ea31d11e142da193e8b01c23a8b097b2,xkbcomp,https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/archive/xkbcomp-1.4.7/xkbcomp-xkbcomp-1.4.7.tar.gz, +81107e12f71087b3f1d7dea43c186805d46abaffead0cafca9bdd24b94c2007e,xkeyboard-config,https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/archive/xkeyboard-config-2.46/xkeyboard-config-xkeyboard-config-2.46.tar.gz, +f1be5a443af78307af18103a6bb614021fe163380b0eb43dec820a2389fbd6c8,xlibre-xf86-input-libinput,https://github.com/X11Libre/xf86-input-libinput/archive/refs/tags/xlibre-xf86-input-libinput-1.5.1.0.tar.gz, +7137c2bdd9e290aff83565d77b842a209b138776785c745cf7c0d10c9f25fe8f,xlibre-xf86-video-vesa,https://codeload.github.com/X11Libre/xf86-video-vesa/tar.gz/refs/tags/xlibre-xf86-video-vesa-2.6.0.3,xlibre-xf86-video-vesa-2.6.0.3.tar.gz +32c5760681cbfbc3b8a605a18588c9c5dd721aecf40acc140fbe8b4f765c4e13,xlibre-xserver,https://github.com/X11Libre/xserver/archive/refs/tags/xlibre-xserver-25.0.0.12.tar.gz, +c92466091663b68d93997eab4f329d0be511cb448a61b61fe74a738f2698b77c,xorgproto,https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/archive/xorgproto-2024.1/xorgproto-xorgproto-2024.1.tar.gz, +0b54f79df85912504de0b14aec7971e3f964491af1812d83447005807513cd9e,xz,https://github.com/tukaani-project/xz/releases/download/v5.8.1/xz-5.8.1.tar.xz, +a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166,zipp,https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz, +9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23,zlib,https://www.zlib.net/zlib-1.3.1.tar.gz, +9b8d1ecedd5b5e81fbf1918e876752a7dd948e05c1a0dba10ab863842d45acd5,zsh,https://www.zsh.org/pub/zsh-5.9.tar.xz, -- 2.49.1 From 5484dbc5de255c56766f66d0c1d7afdcf988ee99 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Fri, 7 Nov 2025 19:32:17 -0500 Subject: [PATCH 02/74] Discovered a much faster way to build LLVM --- Dockerfile | 6 - build-bootstrap.sh | 492 +++++++++++++-------------------------------- sources.list | 34 ++-- 3 files changed, 162 insertions(+), 370 deletions(-) delete mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 2b16c4d..0000000 --- a/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM alpine:latest - -RUN apk update -RUN apk upgrade -RUN apk add cargo clang cmake curl git libc++ linux-headers make python3 rsync rust samurai umount -RUN git clone https://github.com/cbpudding/maplelinux-bootstrap /maple diff --git a/build-bootstrap.sh b/build-bootstrap.sh index e4bf660..f1a43f3 100755 --- a/build-bootstrap.sh +++ b/build-bootstrap.sh @@ -1,115 +1,126 @@ -#!/bin/sh -e -export MAPLE=$(pwd)/maple - +#!/bin/zsh -e export BUILD=$(clang -dumpmachine) +export MAPLE=$(pwd)/maple +export MICROARCH="skylake" +export TARGET=x86_64-maple-linux-musl + +export AR=llvm-ar export CC=clang -export CFLAGS="-O3 -march=skylake -pipe" +export CFLAGS="-O3 -march=$MICROARCH -pipe" export CXX=clang++ export CXXFLAGS="$CFLAGS" -export HOST=x86_64-maple-linux-musl export LD=ld.lld +export RANLIB=llvm-ranlib export THREADS=$(nproc) -# A simplified FHS variant with symlinks for backwards compatibility ~ahill -# TODO: Where does /usr/com fit into all of this (shared state directory)? ~ahill -mkdir -p $MAPLE/bin -mkdir -p $MAPLE/boot -mkdir -p $MAPLE/boot/EFI/BOOT/ -mkdir -p $MAPLE/dev -mkdir -p $MAPLE/etc -mkdir -p $MAPLE/home -mkdir -p $MAPLE/lib +# A simplified version of the filesystem loosely based on FHS with symlinks for +# backwards compatibility. ~ahill +mkdir -p $MAPLE/{bin,boot/EFI/BOOT,dev,etc,home,lib,proc,run,sys,tmp,usr/{include,share},var/{cache,lib,log,spool,tmp}} # TODO: Does it make sense to have this long-term? Anything that depends on # libc++ fails to link without it, but this should be fixed via a # configuration change in LLVM. ~ahill -ln -sf . $MAPLE/lib/$HOST -mkdir -p $MAPLE/maple/patches -mkdir -p $MAPLE/maple/sources -mkdir -p $MAPLE/proc -mkdir -p $MAPLE/run +ln -sf . $MAPLE/lib/$TARGET +ln -sf . $MAPLE/usr/include/$TARGET +# NOTE: Symlinks are for compatibility's sake. These shouldn't have to exist for +# the base system to function. ~ahill ln -sf bin $MAPLE/sbin -mkdir -p $MAPLE/sys -mkdir -p $MAPLE/tmp -mkdir -p $MAPLE/usr ln -sf ../bin $MAPLE/usr/bin -mkdir -p $MAPLE/usr/include -ln -sf . $MAPLE/usr/include/$HOST +ln -sf ../bin $MAPLE/usr/sbin ln -sf ../lib $MAPLE/usr/lib ln -sf ../lib $MAPLE/usr/libexec -ln -sf ../bin $MAPLE/usr/sbin -mkdir -p $MAPLE/usr/share -mkdir -p $MAPLE/var -mkdir -p $MAPLE/var/cache -mkdir -p $MAPLE/var/lib ln -sf ../run/lock $MAPLE/var/lock -mkdir -p $MAPLE/var/log ln -sf ../run $MAPLE/var/run -mkdir -p $MAPLE/var/spool -mkdir -p $MAPLE/var/tmp -mkdir -p build +# NOTE: These are exclusively used for the bootstrapping process and can be +# removed later. ~ahill +mkdir -p $MAPLE/maple/{patches,sources} + +# Create the build directory and enter it so we can begin! ~ahill +mkdir build cd build -# LLVM Build -tar xf ../sources/llvm-project-*.tar* -cd llvm-project-*/ -# TODO: Python is a required part of LLVM, but we can't include the latest -# version due to conflicts with LibreSSL. Maybe we can piggyback off of -# Python 3.9 for a while, but that's not a sustainable solution long-term. -# ~ahill -# See also: https://peps.python.org/pep-0644/ -cmake -B stage1 -G Ninja -S llvm \ - -DCLANG_DEFAULT_CXX_STDLIB=libc++ \ - -DCLANG_DEFAULT_RTLIB=compiler-rt \ - -DCLANG_DEFAULT_UNWINDLIB=libunwind \ - -DCLANG_VENDOR=Maple \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \ - -DCMAKE_INSTALL_PREFIX=$MAPLE/maple/tools \ - -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON \ - -DLIBCXX_CXX_ABI=libcxxabi \ - -DLIBCXX_HAS_MUSL_LIBC=ON \ - -DLIBCXX_USE_COMPILER_RT=ON \ - -DLIBCXXABI_USE_COMPILER_RT=ON \ - -DLIBCXXABI_USE_LLVM_UNWINDER=ON \ - -DLIBUNWIND_ENABLE_ASSERTIONS=OFF \ - -DLIBUNWIND_USE_COMPILER_RT=ON \ - -DLLVM_BUILD_LLVM_DYLIB=ON \ - -DLLVM_DEFAULT_TARGET_TRIPLE=$HOST \ - -DLLVM_ENABLE_LIBCXX=ON \ - -DLLVM_ENABLE_PROJECTS="clang;lld;llvm" \ - -DLLVM_ENABLE_RUNTIMES="compiler-rt;libunwind;libcxxabi;libcxx" \ - -DLLVM_HOST_TRIPLE=$BUILD \ - -DLLVM_INSTALL_BINUTILS_SYMLINKS=ON \ - -DLLVM_INSTALL_UTILS=ON \ - -DLLVM_LINK_LLVM_DYLIB=ON -cmake --build stage1 -cmake --install stage1 -cd .. - -export CC="$MAPLE/maple/tools/bin/clang" -export CFLAGS="$CFLAGS --sysroot=$MAPLE" -export CXX="$MAPLE/maple/tools/bin/clang++" -export CXXFLAGS="$CFLAGS" -export LD=$MAPLE/maple/tools/bin/ld.lld -export PATH="$MAPLE/maple/tools/bin:$PATH" -export RUSTFLAGS="-C target-feature=-crt-static" - # Linux Headers tar xf ../sources/linux-*.tar* cd linux-*/ LLVM=1 make -j $THREADS mrproper -# TODO: Why do we need rsync to install the Linux headers? ~ahill -LLVM=1 make -j $THREADS headers_install INSTALL_HDR_PATH=$MAPLE/usr +# NOTE: We don't use the built-in headers_install here because it requires rsync +# for some reason. ~ahill +LLVM=1 make -j $THREADS headers +find usr/include -type f ! -name "*.h" -delete +cp -r usr/include $MAPLE/usr cd .. -# musl Build -# FIXME: CVE-2025-26519 +# musl Build (Stage 1) tar xf ../sources/musl-*.tar* cd musl-*/ -./configure --includedir=/usr/include --prefix="" +./configure \ + --bindir=/bin \ + --build=$BUILD \ + --includedir=/usr/include \ + --libdir=/lib \ + --prefix=/ \ + --target=$TARGET make -O -j $THREADS -make -O -j $THREADS install DESTDIR=$MAPLE +make -O install-headers DESTDIR=$MAPLE +cd .. + +# LLVM Build +tar xf ../sources/llvm-project-*.tar* +cd llvm-project-*/ + +# Common flags used across all of the LLVM builds +COMMON_LLVM_CMAKE=( + "-DCMAKE_ASM_COMPILER_TARGET=$TARGET" + "-DCMAKE_BUILD_TYPE=Release" + "-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON" + "-DCMAKE_C_COMPILER=$CC" + "-DCMAKE_C_COMPILER_TARGET=$TARGET" + "-DCMAKE_CXX_COMPILER=$CXX" + "-DCMAKE_CXX_COMPILER_TARGET=$TARGET" + "-DCMAKE_FIND_ROOT_PATH=$MAPLE" + "-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY" + "-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY" + "-DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY" + "-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER" + "-DCMAKE_INSTALL_DATAROOTDIR=usr/share" + "-DCMAKE_INSTALL_INCLUDEDIR=usr/include" + "-DCMAKE_INSTALL_LIBEXECDIR=lib" + "-DCMAKE_INSTALL_PREFIX=$MAPLE" + "-DCMAKE_INSTALL_RPATH=/lib" + "-DCMAKE_INSTALL_RUNSTATEDIR=run" + "-DCMAKE_INSTALL_SHAREDSTATEDIR=usr/com" + "-DCMAKE_SYSROOT=$MAPLE" + "-DCMAKE_SYSTEM_NAME=Linux" + "-DLLVM_HOST_TRIPLE=$TARGET" + "-DLLVM_USE_LINKER=lld" + "-DLLVM_TARGETS_TO_BUILD=X86" + "-DLLVM_ENABLE_ZSTD=OFF" +) + +# (LLVM) Builtins Build +# NOTE: For some reason, atomics are not built unless you... disable the thing +# that disables it? Why was it implemented this way? ~ahill +cmake -S compiler-rt/lib/builtins -B build-builtins \ + $COMMON_LLVM_CMAKE \ + -DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=OFF +cmake --build build-builtins +cmake --install build-builtins + +# musl Build (Stage 2) +# FIXME: CVE-2025-26519 +cd ../musl-*/ +make -O clean +CFLAGS="-fuse-ld=lld --sysroot=$MAPLE $CFLAGS" \ +LIBCC="$MAPLE/lib/linux/libclang_rt.builtins-x86_64.a" \ +./configure \ + --bindir=/bin \ + --build=$BUILD \ + --includedir=/usr/include \ + --libdir=/lib \ + --prefix=/ \ + --target=$TARGET +make -O -j $THREADS +make -O install DESTDIR=$MAPLE # NOTE: musl provides static libraries for POSIX libraries such as libm, but # fails to provide shared versions which will breaks builds later on. # Granted, they are useless since libc.so contains all the functionality @@ -123,272 +134,59 @@ done # entry point is something I have never thought of before, but I'm # interested in exploring the possibilities. ~ahill ln -sf /lib/ld-musl-x86_64.so.1 $MAPLE/bin/ldd -cd .. +cd ../llvm-project-*/ -# dash Build -tar xf ../sources/dash-*.tar* -cd dash-*/ -./configure \ - --datarootdir=/usr/share \ - --exec-prefix="" \ - --includedir=/usr/include \ - --libexecdir=/lib \ - --prefix="" \ - --sharedstatedir=/usr/com -make -O -j $THREADS -make -O -j $THREADS install DESTDIR=$MAPLE -ln -sf dash $MAPLE/bin/sh -cd .. - -# m4 Build -tar xf ../sources/m4-*.tar* -cd m4-*/ -./configure \ - --datarootdir=/usr/share \ - --disable-nls \ - --enable-c++ \ - --includedir=/usr/include \ - --libexecdir=/lib \ - --prefix="" \ - --sharedstatedir=/usr/com -make -O -j $THREADS -make -O -j $THREADS install DESTDIR=$MAPLE -cd .. - -# Coreutils Build -tar xf ../sources/coreutils-*.tar* -cd coreutils-*/ -./configure \ - --datarootdir=/usr/share \ - --disable-nls \ - --enable-install-program=hostname \ - --includedir=/usr/include \ - --libexecdir=/lib \ - --prefix="" \ - --sharedstatedir=/usr/com -make -O -j $THREADS -make -O -j $THREADS install DESTDIR=$MAPLE -cd .. - -# Diffutils Build -tar xf ../sources/diffutils-*.tar* -cd diffutils-*/ -./configure \ - --disable-nls \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install DESTDIR=$MAPLE -cd .. - -# Findutils Build -tar xf ../sources/findutils-*.tar* -cd findutils-*/ -./configure \ - --datarootdir=/usr/share \ - --disable-nls \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install DESTDIR=$MAPLE -cd .. - -# Grep Build -tar xf ../sources/grep-*.tar* -cd grep-*/ -./configure \ - --datarootdir=/usr/share \ - --disable-nls \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install DESTDIR=$MAPLE -cd .. - -# Gzip Build -tar xf ../sources/gzip-*.tar* -cd gzip-*/ -./configure \ - --datarootdir=/usr/share \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREAD -make -O -j $THREAD install DESTDIR=$MAPLE -cd .. - -# Make Build -tar xf ../sources/make-*.tar* -cd make-*/ -./configure \ - --datarootdir=/usr/share \ - --disable-nls \ - --enable-year2038 \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREAD -make -O -j $THREAD install DESTDIR=$MAPLE -cd .. - -# Sed Build -tar xf ../sources/sed-*.tar* -cd sed-*/ -./configure \ - --datarootdir=/usr/share \ - --disable-i18n \ - --disable-nls \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREAD -make -O -j $THREAD install DESTDIR=$MAPLE -cd .. - -# Tar Build -tar xf ../sources/tar-*.tar* -cd tar-*/ -./configure \ - --datarootdir=/usr/share \ - --disable-nls \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREAD -make -O -j $THREAD install DESTDIR=$MAPLE -cd .. - -# Xz Build -tar xf ../sources/xz-*.tar* -cd xz-*/ -./configure \ - --datarootdir=/usr/share \ - --disable-doc \ - --disable-nls \ - --disable-static \ - --enable-year2038 \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREAD -make -O -j $THREAD install DESTDIR=$MAPLE -cd .. - -# Gawk Build -tar xf ../sources/gawk-*.tar* -cd gawk-*/ -./configure \ - --disable-mpfr \ - --disable-nls \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install DESTDIR=$MAPLE -cd .. - -# LLVM Build (Stage 2) -# NOTE: We are removing the sysroot option from CFLAGS and CXXFLAGS to prevent a -# potential conflict with CMake. Adapted from Nick's contribution. ~ahill -export CFLAGS=$(echo $CFLAGS | sed "s/--sysroot=\S*//") -export CXXFLAGS=$(echo $CXXFLAGS | sed "s/--sysroot=\S*//") -cd llvm-project-*/ -TOOLCHAIN_FILE=$HOST-maple-clang.cmake -# NOTE: First time doing this. Did I do it right? ~ahill -echo "set(CMAKE_SYSTEM_NAME Linux)" > $TOOLCHAIN_FILE -echo "set(CMAKE_SYSROOT $MAPLE)" >> $TOOLCHAIN_FILE -echo "set(CMAKE_C_COMPILER_TARGET $HOST)" >> $TOOLCHAIN_FILE -echo "set(CMAKE_CXX_COMPILER_TARGET $HOST)" >> $TOOLCHAIN_FILE -echo "set(CMAKE_C_FLAGS_INIT \"$CFLAGS\")" >> $TOOLCHAIN_FILE -echo "set(CMAKE_CXX_FLAGS_INIT \"$CXXFLAGS\")" >> $TOOLCHAIN_FILE -echo "set(CMAKE_LINKER_TYPE LLD)" >> $TOOLCHAIN_FILE -echo "set(CMAKE_C_COMPILER \"$CC\")" >> $TOOLCHAIN_FILE -echo "set(CMAKE_CXX_COMPILER \"$CXX\")" >> $TOOLCHAIN_FILE -echo "set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)" >> $TOOLCHAIN_FILE -echo "set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)" >> $TOOLCHAIN_FILE -echo "set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)" >> $TOOLCHAIN_FILE -echo "set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)" >> $TOOLCHAIN_FILE +# (LLVM) Runtimes Build # TODO: Is it possible to prevent CMake from building static libraries? ~ahill -# NOTE: compiler-rt fails to build on musl because execinfo.h is missing. -# Disabling COMPILER_RT_BUILD_GWP_ASAN works. ~ahill -# See also: https://github.com/llvm/llvm-project/issues/60687 -# TODO: When building LLVM from an older version, clang-tblgen and llvm-tblgen -# start complaining about missing libc++ symbols when CMake builds a -# native version for the build. CLANG_TABLEGEN and LLVM_TABLEGEN are both -# set, but that only seems to temporarily defer the build. ~ahill -# See also: https://github.com/llvm/llvm-project/issues/53561 -cmake -B stage2 -G Ninja -S llvm \ +# NOTE: We have to trick CMake because we don't have a copy of libunwind yet, so +# CMAKE_C_COMPILER_WORKS and CMAKE_CXX_COMPILER_WORKS are manually set to +# prevent it from trying to link with libunwind initially. ~ahill +cmake -S runtimes -B build-runtimes \ + $COMMON_LLVM_CMAKE \ + -DCMAKE_C_COMPILER_WORKS=ON \ + -DCMAKE_C_FLAGS="-fuse-ld=lld -Qunused-arguments -rtlib=compiler-rt -Wl,--dynamic-linker=/lib/ld-musl-x86_64.so.1" \ + -DCMAKE_CXX_COMPILER_WORKS=ON \ + -DCMAKE_CXX_FLAGS="-fuse-ld=lld -Qunused-arguments -rtlib=compiler-rt -Wl,--dynamic-linker=/lib/ld-musl-x86_64.so.1" \ + -DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=OFF \ + -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON \ + -DLIBCXX_CXX_ABI=libcxxabi \ + -DLIBCXX_HAS_MUSL_LIBC=ON \ + -DLIBCXX_USE_COMPILER_RT=ON \ + -DLIBCXXABI_HAS_CXA_THREAD_ATEXIT_IMPL=OFF \ + -DLIBCXXABI_USE_COMPILER_RT=ON \ + -DLIBCXXABI_USE_LLVM_UNWINDER=ON \ + -DLIBUNWIND_USE_COMPILER_RT=ON \ + -DLLVM_ENABLE_RUNTIMES="compiler-rt;libunwind;libcxxabi;libcxx" +cmake --build build-runtimes +cmake --install build-runtimes + +# (LLVM) LLVM Build +# NOTE: For some reason, atomics cannot be found in compiler-rt, so we have to +# help it by specifying HAVE_CXX_ATOMICS_WITHOUT_LIB and +# HAVE_CXX_ATOMICS64_WITHOUT_LIB. ~ahill +cmake -S llvm -B build-llvm \ + $COMMON_LLVM_CMAKE \ -DCLANG_DEFAULT_CXX_STDLIB=libc++ \ - -DCLANG_DEFAULT_RTLIB=compiler-rt \ - -DCLANG_DEFAULT_UNWINDLIB=libunwind \ - -DCLANG_VENDOR=Maple \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \ - -DCMAKE_INSTALL_BINDIR=$MAPLE/bin \ - -DCMAKE_INSTALL_LIBDIR=$MAPLE/lib \ - -DCMAKE_INSTALL_PREFIX=$MAPLE/usr \ - -DCMAKE_INSTALL_RPATH=/lib \ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ - -DCMAKE_TOOLCHAIN_FILE=$(pwd)/$TOOLCHAIN_FILE \ - -DCOMPILER_RT_BUILD_GWP_ASAN=OFF \ - -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON \ - -DLIBCXX_CXX_ABI=libcxxabi \ - -DLIBCXX_HAS_MUSL_LIBC=ON \ - -DLIBCXX_USE_COMPILER_RT=ON \ - -DLIBCXXABI_USE_COMPILER_RT=ON \ - -DLIBCXXABI_USE_LLVM_UNWINDER=ON \ - -DLIBUNWIND_ENABLE_ASSERTIONS=OFF \ - -DLIBUNWIND_USE_COMPILER_RT=ON \ - -DLLVM_BUILD_LLVM_DYLIB=ON \ - -DLLVM_ENABLE_LIBCXX=ON \ - -DLLVM_ENABLE_LLD=ON \ - -DLLVM_ENABLE_PROJECTS="clang;libclc;lld;lldb;llvm" \ - -DLLVM_ENABLE_RTTI=ON \ - -DLLVM_ENABLE_RUNTIMES="compiler-rt;libunwind;libcxxabi;libcxx" \ - -DLLVM_ENABLE_ZSTD=OFF \ - -DLLVM_HOST_TRIPLE=$HOST \ - -DLLVM_INSTALL_BINUTILS_SYMLINKS=ON \ - -DLLVM_INSTALL_UTILS=ON \ - -DLLVM_LINK_LLVM_DYLIB=ON -cmake --build stage2 -cmake --install stage2 -ln -sf clang $MAPLE/bin/cc -ln -sf clang++ $MAPLE/bin/c++ -ln -sf ld.lld $MAPLE/bin/ld -# NOTE: Temporary workaround because builds that require __config fail -# otherwise. Is there a better solution for this? ~ahill -mv $MAPLE/maple/tools/include/$HOST/c++/v1/__config_site $MAPLE/maple/tools/include/c++/v1/ -cd .. - -# Rust Build -tar xf ../sources/rustc-*.tar* -cd rustc-*/ + -DCLANG_DEFAULT_RTLIB=compiler-rt \ + -DCLANG_DEFAULT_UNWINDLIB=libunwind \ + -DCLANG_VENDOR=Maple \ + -DCMAKE_C_FLAGS="-fuse-ld=lld -Qunused-arguments -rtlib=compiler-rt -unwindlib=libunwind -Wl,--dynamic-linker=/lib/ld-musl-x86_64.so.1" \ + -DCMAKE_CXX_FLAGS="-fuse-ld=lld -Qunused-arguments -rtlib=compiler-rt -stdlib=libc++ -unwindlib=libunwind -Wl,--dynamic-linker=/lib/ld-musl-x86_64.so.1" \ + -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ + -DCXX_SUPPORTS_CUSTOM_LINKER=ON \ + -DHAVE_CXX_ATOMICS_WITHOUT_LIB=ON \ + -DHAVE_CXX_ATOMICS64_WITHOUT_LIB=ON \ + -DLLVM_BUILD_LLVM_DYLIB=ON \ + -DLLVM_ENABLE_LIBCXX=ON \ + -DLLVM_ENABLE_PROJECTS="clang;libclc;lld;lldb;llvm" \ + -DLLVM_ENABLE_RTTI=ON \ + -DLLVM_INSTALL_BINUTILS_SYMLINKS=ON \ + -DLLVM_INSTALL_UTILS=ON \ + -DLLVM_LINK_LLVM_DYLIB=ON +cmake --build build-llvm # ... + +# Finally done with LLVM ~ahill cd .. -cd .. - -# Copy the necessary configuration files to the bootstrap -cp -rv root/* maple/ -cp config/linux.$(uname -m).config $MAPLE/maple/ +# ... \ No newline at end of file diff --git a/sources.list b/sources.list index d84c23f..f9ebdaf 100644 --- a/sources.list +++ b/sources.list @@ -1,25 +1,25 @@ #sha256sum,comment,url,filename(optional) -ba885c1319578d6c94d46e9b0dceb4014caafe2490e437a0dbca3f270a223f5a,autoconf,https://ftpmirror.gnu.org/gnu/autoconf/autoconf-2.72.tar.xz, -168aa363278351b89af56684448f525a5bce5079d0b6842bd910fdd3f1646887,automake,https://ftpmirror.gnu.org/gnu/automake/automake-1.18.1.tar.xz, +ba885c1319578d6c94d46e9b0dceb4014caafe2490e437a0dbca3f270a223f5a,autoconf,https://ftp.gnu.org/gnu/autoconf/autoconf-2.72.tar.xz, +168aa363278351b89af56684448f525a5bce5079d0b6842bd910fdd3f1646887,automake,https://ftp.gnu.org/gnu/automake/automake-1.18.1.tar.xz, 0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d,babel,https://files.pythonhosted.org/packages/7d/6b/d52e42361e1aa00709585ecc30b3f9684b3ab62530771402248b1b1d6240/babel-2.17.0.tar.gz, -ae470fec429775653e042015edc928d07c8c3b2fc59765172a330d3d87785f86,bc,https://ftpmirror.gnu.org/gnu/bc/bc-1.08.2.tar.gz, -9bba0214ccf7f1079c5d59210045227bcf619519840ebfa80cd3849cff5a5bf2,bison,https://ftpmirror.gnu.org/gnu/bison/bison-3.8.2.tar.xz, +ae470fec429775653e042015edc928d07c8c3b2fc59765172a330d3d87785f86,bc,https://ftp.gnu.org/gnu/bc/bc-1.08.2.tar.gz, +9bba0214ccf7f1079c5d59210045227bcf619519840ebfa80cd3849cff5a5bf2,bison,https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz, 698edd0ea270bde950f53aed21f3a0135672206f3911e0176261a31e0e07b397,build,https://files.pythonhosted.org/packages/25/1c/23e33405a7c9eac261dff640926b8b5adaed6a6eb3e1767d441ed611d0c0/build-1.3.0.tar.gz, ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269,bzip2,https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz, 445ed8208a6e4823de1226a74ca319d3600e83f6369f99b14265006599c32ccb,cairo,https://cairographics.org/releases/cairo-1.18.4.tar.xz, 33ea8eb2a4daeaa506e8fcafd5d6d89027ed6f2f0609645c6f149b560d301706,chrony,https://chrony-project.org/releases/chrony-4.8.tar.gz, ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a,click,https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz, 643f04182b7ba323ab31f526f785134fb79cba3188a852206ef0473fee282a15,cmake,https://github.com/Kitware/CMake/releases/download/v4.1.2/cmake-4.1.2.tar.gz, -e6d4fd2d852c9141a1c2a18a13d146a0cd7e45195f72293a4e4c044ec6ccca15,coreutils,https://ftpmirror.gnu.org/gnu/coreutils/coreutils-9.8.tar.xz, -937610b97c329a1ec9268553fb780037bcfff0dcffe9725ebc4fd9c1aa9075db,cpio,https://ftpmirror.gnu.org/gnu/cpio/cpio-2.15.tar.bz2, +e6d4fd2d852c9141a1c2a18a13d146a0cd7e45195f72293a4e4c044ec6ccca15,coreutils,https://ftp.gnu.org/gnu/coreutils/coreutils-9.8.tar.xz, +937610b97c329a1ec9268553fb780037bcfff0dcffe9725ebc4fd9c1aa9075db,cpio,https://ftp.gnu.org/gnu/cpio/cpio-2.15.tar.bz2, 40c8cddbcb6cc6251c03dea423a472a6cea4037be654ba5cf5dec6eb2d22ff1d,curl,https://curl.se/download/curl-8.16.0.tar.xz, 845fd61702ae5e53e09664faa450da82805958924b109b8c5b4777bd8551af00,dash,https://salsa.debian.org/debian/dash/-/archive/debian/0.5.12-12/dash-debian-0.5.12-12.tar.gz, 6721e606609226dbf4d864a78802a9e96beec0ee034a1bd84138b3e037bba7d9,dhcpcd,https://github.com/NetworkConfiguration/dhcpcd/releases/download/v10.2.4/dhcpcd-10.2.4.tar.xz, -7c8b7f9fc8609141fdea9cece85249d308624391ff61dedaf528fcb337727dfd,diffutils,https://ftpmirror.gnu.org/gnu/diffutils/diffutils-3.12.tar.xz, +7c8b7f9fc8609141fdea9cece85249d308624391ff61dedaf528fcb337727dfd,diffutils,https://ftp.gnu.org/gnu/diffutils/diffutils-3.12.tar.xz, 64926eebf90092dca21b14259a5301b7b98e7b1943e8a201c7d726084809b527,dosfstools,https://github.com/dosfstools/dosfstools/releases/download/v4.2/dosfstools-4.2.tar.gz, 93ebe1294ee3203d3bf548c78d51bde9494d3f24de64eaec380a2620f0431f20,dropbear,https://github.com/mkj/dropbear/archive/refs/tags/DROPBEAR_2025.88.tar.gz,dropbear-2025.88.tar.gz 71df8f40706a7bb0a80a5367079ea75d91da4f8c65c58ec59bcdfbf7decdab9f,expat,https://github.com/libexpat/libexpat/releases/download/R_2_7_3/expat-2.7.3.tar.xz, -1387e0b67ff247d2abde998f90dfbf70c1491391a59ddfecb8ae698789f0a4f5,findutils,https://ftpmirror.gnu.org/gnu/findutils/findutils-4.10.0.tar.xz, +1387e0b67ff247d2abde998f90dfbf70c1491391a59ddfecb8ae698789f0a4f5,findutils,https://ftp.gnu.org/gnu/findutils/findutils-4.10.0.tar.xz, 1b1cde5b235d40479e91be2f0e88a309e3214c8ab470ec8a2744d82a5a9ea05c,fribidi,https://github.com/fribidi/fribidi/releases/download/v1.0.16/fribidi-1.0.16.tar.xz, 2b47e8f2d90d35d29339ed78e1a6eabb36eefa9cfa5a5ca3b0d1f27502c43675,flatpak,https://github.com/flatpak/flatpak/releases/download/1.16.1/flatpak-1.16.1.tar.xz, e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995,flex,https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz, @@ -27,7 +27,7 @@ e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995,flex,https://gi f0129159515c13ebe53ba2a6a94755e98c266470e844ee0aacc6196fd62b44f0,font-util,https://gitlab.freedesktop.org/xorg/font/util/-/archive/font-util-1.4.1/util-font-util-1.4.1.tar.gz, 82e73b26adad651b236e5f5d4b3074daf8ff0910188808496326bd3449e5261d,fontconfig,https://gitlab.freedesktop.org/fontconfig/fontconfig/-/archive/2.17.1/fontconfig-2.17.1.tar.gz, 32427e8c471ac095853212a37aef816c60b42052d4d9e48230bab3bdf2936ccc,freetype,https://download.savannah.gnu.org/releases/freetype/freetype-2.14.1.tar.xz, -f8c3486509de705192138b00ef2c00bbbdd0e84c30d5c07d23fc73a9dc4cc9cc,gawk,https://ftpmirror.gnu.org/gnu/gawk/gawk-5.3.2.tar.xz, +f8c3486509de705192138b00ef2c00bbbdd0e84c30d5c07d23fc73a9dc4cc9cc,gawk,https://ftp.gnu.org/gnu/gawk/gawk-5.3.2.tar.xz, cc591e3949a95e2f7b50173c9373df8846648b15aa596d9e7ec7258381bfac0d,gdk-pixbuf,https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/archive/2.44.3/gdk-pixbuf-2.44.3.tar.gz, d1fb86e260cfe7da6031f94d2e44c0da55903dbae0a2fa0fae78c91ae1b56f00,gettext,https://ftp.gnu.org/pub/gnu/gettext/gettext-0.26.tar.xz, 3524fc5fd81f16f80e1696a8281bd8ad831048b67848015d7b7382bf365ae685,git,https://github.com/git/git/archive/refs/tags/v2.51.0.tar.gz,git-2.51.0.tar.gz @@ -35,9 +35,9 @@ d1fb86e260cfe7da6031f94d2e44c0da55903dbae0a2fa0fae78c91ae1b56f00,gettext,https:/ b16c78e7604b9be9f546ee35ad8b6db6f39bbbbfb19e8d038b6fe2ea5bba4ff4,glslang,https://github.com/KhronosGroup/glslang/archive/refs/tags/15.4.0.tar.gz,glslang-15.4.0.tar.gz a3c2b80201b89e68616f4ad30bc66aee4927c3ce50e33929ca819d5c43538898,gmp,https://gmplib.org/download/gmp/gmp-6.3.0.tar.xz, fd87e0aba7e43ae054837afd6cd4db03a3f2693deb3619085e6ed9d8d9604ad8,gperf,https://ftp.gnu.org/pub/gnu/gperf/gperf-3.3.tar.gz, -2649b27c0e90e632eadcd757be06c6e9a4f48d941de51e7c0f83ff76408a07b9,grep,https://ftpmirror.gnu.org/gnu/grep/grep-3.12.tar.xz, +2649b27c0e90e632eadcd757be06c6e9a4f48d941de51e7c0f83ff76408a07b9,grep,https://ftp.gnu.org/gnu/grep/grep-3.12.tar.xz, 069a00aa1fc893f18423602f4e095583be5a220429f6e8a58d70511490b4b019,gvdb,https://gitlab.gnome.org/GNOME/gvdb/-/archive/2b42fc75f09dbe1cd1057580b5782b08f2dcb400/gvdb-2b42fc75f09dbe1cd1057580b5782b08f2dcb400.tar.gz, -01a7b881bd220bfdf615f97b8718f80bdfd3f6add385b993dcf6efd14e8c0ac6,gzip,https://ftpmirror.gnu.org/gnu/gzip/gzip-1.14.tar.xz, +01a7b881bd220bfdf615f97b8718f80bdfd3f6add385b993dcf6efd14e8c0ac6,gzip,https://ftp.gnu.org/gnu/gzip/gzip-1.14.tar.xz, e5c81b7f6e0b102dfb000cfa424538b8e896ab78a2f4b8a5ec8cae62ab43369e,harfbuzz,https://github.com/harfbuzz/harfbuzz/releases/download/12.1.0/harfbuzz-12.1.0.tar.xz, d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000,importlib_metadata,https://files.pythonhosted.org/packages/76/66/650a33bd90f786193e4de4b3ad86ea60b53c89b669a5c7be931fac31cdb0/importlib_metadata-8.7.0.tar.gz, 9781e59410ab7dea8e9f79bb10ff1488e63d10fcbb70503b94426ba27a8e2dec,iproute2,https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-6.17.0.tar.xz, @@ -60,7 +60,7 @@ f3a3082a23b37c293a4fcd1053147b371f2ff91fa7ea1b2a52e335676bac82dc,libffi,https:// a395317730e0e8d5e71419d4d1256a89e32c2fa793607b63c4d0fb497ae34602,libpciaccess,https://gitlab.freedesktop.org/xorg/lib/libpciaccess/-/archive/libpciaccess-0.18.1/libpciaccess-libpciaccess-0.18.1.tar.gz, 4df396518620a7aa3651443e87d1b2862e4e88cad135a8b93423e01706232307,libpng,https://download.sourceforge.net/libpng/libpng-1.6.50.tar.xz, c7ff7a7d675d5f57730940e5ccff1dbe2dcd5b7405b5397e0f7ffd66a5ed5679,libressl,https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-4.1.1.tar.gz, -f81f5860666b0bc7d84baddefa60d1cb9fa6fceb2398cc3baca6afaa60266675,libtool,https://ftpmirror.gnu.org/gnu/libtool/libtool-2.5.4.tar.xz, +f81f5860666b0bc7d84baddefa60d1cb9fa6fceb2398cc3baca6afaa60266675,libtool,https://ftp.gnu.org/gnu/libtool/libtool-2.5.4.tar.xz, 0bd89b657d62d019598e6c7ed726ff8fed80e8ba092a83b484d66afb80b77da5,libudev-zero,https://github.com/illiliti/libudev-zero/archive/refs/tags/1.0.3.tar.gz,libudev-zero-1.0.3.tar.gz ea97bead1e8721d9002055970e8ad64ef79ee9dcee8595a3dae2cf5c2192a47f,libX11,https://gitlab.freedesktop.org/xorg/lib/libx11/-/archive/libX11-1.8.12/libx11-libX11-1.8.12.tar.gz, af261cc1b3b349cfe7a7899a48b4e4aa257b4d11bf2ea084fb3191df7d15fbe9,libXau,https://gitlab.freedesktop.org/xorg/lib/libxau/-/archive/libXau-1.0.12/libxau-libXau-1.0.12.tar.gz, @@ -82,8 +82,8 @@ a23745e7865f4aa2ee2610f289ed8081140580cbe577b46aa1a7fb28ab7192cf,libXxf86vm,http fdebcb065065f5c1b8dc68a6fb59cda50cdddbf9103d207c2196d55ea764f57f,Linux,https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.17.2.tar.xz, 21dbcec6e01dd578f14789eac9024a18941e6f2702a05cf91b28c232eeb26ab0,Linux PAM,https://github.com/linux-pam/linux-pam/releases/download/v1.7.1/Linux-PAM-1.7.1.tar.xz, 9c9db50d8046f668156d83f6b594631b4ca79a0d96e4f19bed9dc019b022e58f,LLVM,https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.3/llvm-project-21.1.3.src.tar.xz, -e236ea3a1ccf5f6c270b1c4bb60726f371fa49459a8eaaebc90b216b328daf2b,m4,https://ftpmirror.gnu.org/gnu/m4/m4-1.4.20.tar.xz, -dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3,make,https://ftpmirror.gnu.org/gnu/make/make-4.4.1.tar.gz, +e236ea3a1ccf5f6c270b1c4bb60726f371fa49459a8eaaebc90b216b328daf2b,m4,https://ftp.gnu.org/gnu/m4/m4-1.4.20.tar.xz, +dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3,make,https://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz, 99579a6f39583fa7e5630a28c3c1f440e4e97a414b80372649c0ce338da2ea28,mako,https://files.pythonhosted.org/packages/9e/38/bd5b78a920a64d708fe6bc8e0a2c075e1389d53bef8413725c63ba041535/mako-1.3.10.tar.gz, ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0,markupsafe,https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz, ec966eec39879f33c785343373021c44f887c836a08fcaf1d63412e3bdbfca32,mdevd,https://skarnet.org/software/mdevd/mdevd-0.1.7.0.tar.gz, @@ -98,7 +98,7 @@ b7324cbe86e767b65f26f467ed8b12ad80e124e3ccb89076855c98e43a9eddd4,nasm,https://ww 1b661016bd8cd4189be83b441dd7062c967b641fdc00f741e359e22d06857df8,openrc,https://github.com/OpenRC/openrc/archive/refs/tags/0.63.tar.gz,openrc-0.63.tar.gz d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f,packaging,https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz, 1b2e2f683dfb5adec3faf17087ade8c648f10a5d3d0e17e421e0ac1a39e6740e,pango,https://gitlab.gnome.org/GNOME/pango/-/archive/1.57.0/pango-1.57.0.tar.gz, -f87cee69eec2b4fcbf60a396b030ad6aa3415f192aa5f7ee84cad5e11f7f5ae3,patch,https://ftpmirror.gnu.org/gnu/patch/patch-2.8.tar.xz, +f87cee69eec2b4fcbf60a396b030ad6aa3415f192aa5f7ee84cad5e11f7f5ae3,patch,https://ftp.gnu.org/gnu/patch/patch-2.8.tar.xz, 8d28d7f2c3b970c3a4bf3776bcbb5adfc923183ce74bc8df1ebaad8c1985bd07,pcre2,https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.46/pcre2-10.46.tar.gz, e093ef184d7f9a1b9797e2465296f55510adb6dab8842b0c3ed53329663096dc,perl,https://www.cpan.org/src/5.0/perl-5.42.0.tar.gz, a098c33924754ad43f981b740f6d576c70f9ed1006e12221b1845431ebce1239,pixman,https://cairographics.org/releases/pixman-0.46.4.tar.xz, @@ -111,7 +111,7 @@ c2e6d193cc78f84cd6ddb72aaf6d5c6a9162f0470e5992092057f5ff518562fa,procps-ng,https d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e,pyyaml,https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz, 6bfeaddd90ffda2f063492b092bfed925c4b8c701579baf4b1316e021470daac,rustc,https://static.rust-lang.org/dist/rustc-1.90.0-src.tar.xz, 3b8cf51548dfc49b7efe035e191ff5e1963ebc4fe8f6064a5eefc5343eaf78a5,samurai,https://github.com/michaelforney/samurai/releases/download/1.2/samurai-1.2.tar.gz, -6e226b732e1cd739464ad6862bd1a1aba42d7982922da7a53519631d24975181,sed,https://ftpmirror.gnu.org/gnu/sed/sed-4.9.tar.xz, +6e226b732e1cd739464ad6862bd1a1aba42d7982922da7a53519631d24975181,sed,https://ftp.gnu.org/gnu/sed/sed-4.9.tar.xz, f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c,setuptools,https://files.pythonhosted.org/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz, 6662c9b9497b6c9bf13bead9d7a9084756f68238302c5ed089fb4dbd29d102d7,setuptools_scm,https://files.pythonhosted.org/packages/8f/8d/ffdcace33d0480d591057a30285b7c33f8dc431fed3fff7dbadf5f9f128f/setuptools_scm-9.2.0.tar.gz, add4604d3bc410344433122a819ee4154b79dd8316a56298c60417e637c07608,shadow,https://github.com/shadow-maint/shadow/releases/download/4.18.0/shadow-4.18.0.tar.xz, @@ -121,7 +121,7 @@ add4604d3bc410344433122a819ee4154b79dd8316a56298c60417e637c07608,shadow,https:// 5bbea925663d4cd2bab23efad53874f2718248a73dcaf9dd21dff8cb48e602fc,SPIRV-Headers,https://github.com/KhronosGroup/SPIRV-Headers/archive/refs/tags/vulkan-sdk-1.4.321.0.tar.gz,SPIRV-Headers-vulkan-sdk-1.4.321.0.tar.gz 4f7019a06c731daebbc18080db338964002493ead4cfb440fef95d120c50a170,SPIRV-LLVM-Translator,https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v21.1.0.tar.gz,spirv-llvm-translator-21.1.0.tar.gz 6a9313fa68e061d463f616357cd24cdf1c3a27d906ea791d7ba67dd1b6666a40,SPIRV-Tools,https://github.com/KhronosGroup/SPIRV-Tools/archive/refs/tags/v2025.1.tar.gz,spirv-tools-2025.1.tar.gz -4d62ff37342ec7aed748535323930c7cf94acf71c3591882b26a7ea50f3edc16,tar,https://ftpmirror.gnu.org/gnu/tar/tar-1.35.tar.xz, +4d62ff37342ec7aed748535323930c7cf94acf71c3591882b26a7ea50f3edc16,tar,https://ftp.gnu.org/gnu/tar/tar-1.35.tar.xz, b92017489bdc1db3a4c97191aa4b75366673cb746de0dce5d7a749d5954681ba,tiff,https://download.osgeo.org/libtiff/tiff-4.7.1.tar.xz, 6ee152cfb083a378285a49c8e52294307458119147f795bfb7f460cb7ed1d659,tinyramfs,https://github.com/illiliti/tinyramfs/archive/refs/tags/0.2.0.tar.gz,tinyramfs-0.2.0.tar.gz cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff,tomli,https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz, -- 2.49.1 From 8bd73c53fceec182c8e9908ac64cf25a05ddf45d Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Tue, 11 Nov 2025 10:06:56 -0500 Subject: [PATCH 03/74] Started bootstrapping with treetap --- .gitattributes | 1 - .gitignore | 5 +- bootstrap.sh | 171 ++ build-bootstrap.sh | 192 -- build-chroot.sh | 1889 ------------ chroot-bootstrap.sh | 41 - config/linux.x86_64.config | 5411 ---------------------------------- configure-image.sh | 30 - fetch-sources.sh | 22 - patches/mesa-drm-maple.patch | 225 -- root/boot/limine.conf | 7 - root/etc/chrony.conf | 2 - root/etc/group | 2 - root/etc/hostname | 1 - root/etc/init.d/chronyd | 4 - root/etc/init.d/dhcpcd | 6 - root/etc/init.d/dropbear | 4 - root/etc/init.d/mdevd | 6 - root/etc/os-release | 5 - root/etc/pam.d/sshd | 5 - root/etc/pam.d/system-auth | 5 - root/etc/passwd | 2 - root/etc/resolv.conf | 2 - root/etc/shadow | 2 - root/etc/shells | 2 - sources.list | 147 - sources/busybox.spec | 4 + sources/linux.spec | 4 + sources/llvm.spec | 4 + sources/musl.spec | 28 + treetap | 195 ++ 31 files changed, 408 insertions(+), 8016 deletions(-) delete mode 100644 .gitattributes create mode 100755 bootstrap.sh delete mode 100755 build-bootstrap.sh delete mode 100755 build-chroot.sh delete mode 100755 chroot-bootstrap.sh delete mode 100644 config/linux.x86_64.config delete mode 100644 configure-image.sh delete mode 100755 fetch-sources.sh delete mode 100644 patches/mesa-drm-maple.patch delete mode 100644 root/boot/limine.conf delete mode 100644 root/etc/chrony.conf delete mode 100644 root/etc/group delete mode 100644 root/etc/hostname delete mode 100755 root/etc/init.d/chronyd delete mode 100755 root/etc/init.d/dhcpcd delete mode 100755 root/etc/init.d/dropbear delete mode 100755 root/etc/init.d/mdevd delete mode 100644 root/etc/os-release delete mode 100644 root/etc/pam.d/sshd delete mode 100644 root/etc/pam.d/system-auth delete mode 100644 root/etc/passwd delete mode 100644 root/etc/resolv.conf delete mode 100644 root/etc/shadow delete mode 100644 root/etc/shells delete mode 100644 sources.list create mode 100644 sources/busybox.spec create mode 100644 sources/linux.spec create mode 100644 sources/llvm.spec create mode 100644 sources/musl.spec create mode 100755 treetap diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1024bbd..0000000 --- a/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -*.patch text eol=lf \ No newline at end of file diff --git a/.gitignore b/.gitignore index d9c42d9..a106a30 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ -/build -/maple -/sources \ No newline at end of file +/.bootstrap +/.treetap diff --git a/bootstrap.sh b/bootstrap.sh new file mode 100755 index 0000000..36fc599 --- /dev/null +++ b/bootstrap.sh @@ -0,0 +1,171 @@ +#!/bin/zsh -e + +BOOTSTRAP=$(pwd)/.bootstrap +MICROARCH="skylake" +PROCS=$(nproc) +SOURCES=$(pwd)/.treetap/sources +TARGET=x86_64-maple-linux-musl + +# Fetch sources required for a bootstrap +./treetap fetch sources/busybox.spec +./treetap fetch sources/linux.spec +./treetap fetch sources/llvm.spec +./treetap fetch sources/musl.spec + +# Simplified filesystem heirarchy with symlinks for compatibility +mkdir -p $BOOTSTRAP/root/{bin,boot/EFI/BOOT,dev,etc,home,lib,proc,run,sys,tmp,usr/{include,share},var/{cache,lib,log,spool,tmp}} +ln -sf bin $BOOTSTRAP/root/sbin +ln -sf ../bin $BOOTSTRAP/root/usr/bin +ln -sf ../bin $BOOTSTRAP/root/usr/sbin +ln -sf ../lib $BOOTSTRAP/root/usr/lib +ln -sf ../lib $BOOTSTRAP/root/usr/libexec +ln -sf ../run/lock $BOOTSTRAP/root/var/lock +ln -sf ../run $BOOTSTRAP/root/var/run + +# Prepare for the build +ARCH=$(echo $TARGET | cut -d"-" -f1) +export AR=llvm-ar +export CC=clang +export CFLAGS="-fuse-ld=lld -O3 -march=$MICROARCH -pipe --sysroot=$BOOTSTRAP/root -Wno-unused-command-line-argument" +export CXX=clang++ +export CXXFLAGS=$CFLAGS +export RANLIB=llvm-ranlib +export LD=ld.lld +export TREETAP_SYSROOT=$BOOTSTRAP/root +export TREETAP_TARGET=$TARGET +mkdir -p $BOOTSTRAP/build +cd $BOOTSTRAP/build + +# Define the target for Maple Linux +cat << EOF > $BOOTSTRAP/$TARGET.cmake +set(CMAKE_ASM_COMPILER_TARGET $TARGET) +set(CMAKE_C_COMPILER $CC) +set(CMAKE_C_COMPILER_TARGET $TARGET) +set(CMAKE_C_FLAGS_INIT "$CFLAGS") +set(CMAKE_CXX_COMPILER $CXX) +set(CMAKE_CXX_COMPILER_TARGET $TARGET) +set(CMAKE_CXX_FLAGS_INIT "$CXXFLAGS") +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_LINKER_TYPE LLD) +set(CMAKE_SYSROOT "$BOOTSTRAP/root") +set(CMAKE_SYSTEM_NAME Linux) +EOF + +# Install headers for Linux +tar xf $SOURCES/linux/*/linux-*.tar* +cd linux-*/ +# NOTE: LLVM=1 is required here because GCC and other GNU tools are required in +# some places still. This allows us to use LLVM and bypass the parts that +# haven't become portable yet. ~ahill +LLVM=1 make -j $PROCS mrproper +# NOTE: We don't use the built-in headers_install target because it requires +# rsync for some reason. ~ahill +LLVM=1 make -j $PROCS headers ARCH=$ARCH +find usr/include -type f ! -name "*.h" -delete +cp -r usr/include $BOOTSTRAP/root/usr +cd .. + +# Install headers for musl +tar xf $SOURCES/musl/*/musl-*.tar* +cd musl-*/ +# NOTE: We are intentionally not passing --target here because musl follows the +# GNU approach when it comes to cross-compiling. This means the build +# script prefaces the name of every build tool with the target triple +# we're compiling for. This is unnecessary for LLVM, because we can simply +# pass -target to the compiler and have it generate machine code +# for that target. ~ahill +./configure \ + --bindir=/bin \ + --includedir=/usr/include \ + --libdir=/lib \ + --prefix=/ +make -O -j $PROCS +make -O -j $PROCS install-headers DESTDIR=$BOOTSTRAP/root +cd .. + +# Build and install compiler-rt builtins +tar xf $SOURCES/llvm/*/llvm-project-*.tar* +cd llvm-project-*/ +cmake -S compiler-rt/lib/builtins -B build-builtins \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=$BOOTSTRAP/root \ + -DCMAKE_TOOLCHAIN_FILE=$BOOTSTRAP/$TARGET.cmake \ + -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON +cmake --build build-builtins --parallel $PROCS +cmake --install build-builtins --parallel $PROCS +cd .. + +# Build musl for real this time +cd musl-*/ +# TODO: CVE-2025-26519 +make clean +# NOTE: LIBCC is required here because it will attempt to link with the build +# system's runtime if this is not specified. ~ahill +LIBCC="$BOOTSTRAP/root/lib/linux/libclang_rt.builtins-x86_64.a" \ +./configure \ + --bindir=/bin \ + --includedir=/usr/include \ + --libdir=/lib \ + --prefix=/ +make -O -j $PROCS +make -O -j $PROCS install DESTDIR=$BOOTSTRAP/root +cd .. + +# Include compiler-rt and musl in our environment +export CFLAGS="$CFLAGS -Qunused-arguments -rtlib=compiler-rt -Wl,--dynamic-linker=/lib/ld-musl-$ARCH.so.1" +export CXXFLAGS="$CXXFLAGS -Qunused-arguments -rtlib=compiler-rt -Wl,--dynamic-linker=/lib/ld-musl-$ARCH.so.1" + +# Build the LLVM runtimes +# NOTE: When CMake tests the C++ compiler, it attempts to link libstdc++/libc++ +# before it even exists, causing an error. We can bypass this by simply +# setting CMAKE_CXX_COMPILER_WORKS, therefore tricking CMake into +# performing a successful build. Yet another instance where the genie in +# the bottle does exactly what we asked, and not what we wanted. ~ahill +cd llvm-project-*/ +cmake -S runtimes -B build-runtimes \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CXX_COMPILER_WORKS=ON \ + -DCMAKE_INSTALL_INCLUDEDIR=$BOOTSTRAP/root/usr/include \ + -DCMAKE_INSTALL_PREFIX=$BOOTSTRAP/root \ + -DCMAKE_TOOLCHAIN_FILE=$BOOTSTRAP/$TARGET.cmake \ + -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON \ + -DLIBCXX_CXX_ABI=libcxxabi \ + -DLIBCXX_HAS_MUSL_LIBC=ON \ + -DLIBCXX_USE_COMPILER_RT=ON \ + -DLIBCXXABI_USE_COMPILER_RT=ON \ + -DLIBCXXABI_USE_LLVM_UNWINDER=ON \ + -DLIBUNWIND_USE_COMPILER_RT=ON \ + -DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx;libcxxabi;libunwind" +cmake --build build-runtimes --parallel $PROCS +cmake --install build-runtimes --parallel $PROCS +cd .. + +# Now we can introduce libc++ into the environment +# NOTE: clang++ attempts to build with headers from the build system rather than +# exclusively relying on the sysroot. Because of this, we must manually +# define the proper include path. ~ahill +export CXXFLAGS="$CXXFLAGS -isystem $BOOTSTRAP/root/usr/include/c++/v1 -nostdinc++ -stdlib=libc++" + +# Build LLVM itself +# NOTE: LLVM_ENABLE_ZSTD is disabled because we don't have zstd in the sysroot, +# and because I don't believe that a library created by Facebook should +# be required for an operating system to function. ~ahill +cd llvm-project-*/ +cmake -S llvm -B build-llvm \ + -DCLANG_DEFAULT_CXX_STDLIB=libc++ \ + -DCLANG_DEFAULT_RTLIB=compiler-rt \ + -DCLANG_DEFAULT_UNWINDLIB=libunwind \ + -DCLANG_VENDOR=Maple \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=$BOOTSTRAP/root \ + -DCMAKE_TOOLCHAIN_FILE=$BOOTSTRAP/$TARGET.cmake \ + -DLLVM_ENABLE_LIBCXX=ON \ + -DLLVM_ENABLE_PROJECTS="clang;lld;llvm" \ + -DLLVM_ENABLE_ZSTD=OFF \ + -DLLVM_HOST_TRIPLE=$TARGET +cmake --build build-llvm --parallel $PROCS +# ... +cd .. diff --git a/build-bootstrap.sh b/build-bootstrap.sh deleted file mode 100755 index f1a43f3..0000000 --- a/build-bootstrap.sh +++ /dev/null @@ -1,192 +0,0 @@ -#!/bin/zsh -e -export BUILD=$(clang -dumpmachine) -export MAPLE=$(pwd)/maple -export MICROARCH="skylake" -export TARGET=x86_64-maple-linux-musl - -export AR=llvm-ar -export CC=clang -export CFLAGS="-O3 -march=$MICROARCH -pipe" -export CXX=clang++ -export CXXFLAGS="$CFLAGS" -export LD=ld.lld -export RANLIB=llvm-ranlib -export THREADS=$(nproc) - -# A simplified version of the filesystem loosely based on FHS with symlinks for -# backwards compatibility. ~ahill -mkdir -p $MAPLE/{bin,boot/EFI/BOOT,dev,etc,home,lib,proc,run,sys,tmp,usr/{include,share},var/{cache,lib,log,spool,tmp}} -# TODO: Does it make sense to have this long-term? Anything that depends on -# libc++ fails to link without it, but this should be fixed via a -# configuration change in LLVM. ~ahill -ln -sf . $MAPLE/lib/$TARGET -ln -sf . $MAPLE/usr/include/$TARGET -# NOTE: Symlinks are for compatibility's sake. These shouldn't have to exist for -# the base system to function. ~ahill -ln -sf bin $MAPLE/sbin -ln -sf ../bin $MAPLE/usr/bin -ln -sf ../bin $MAPLE/usr/sbin -ln -sf ../lib $MAPLE/usr/lib -ln -sf ../lib $MAPLE/usr/libexec -ln -sf ../run/lock $MAPLE/var/lock -ln -sf ../run $MAPLE/var/run - -# NOTE: These are exclusively used for the bootstrapping process and can be -# removed later. ~ahill -mkdir -p $MAPLE/maple/{patches,sources} - -# Create the build directory and enter it so we can begin! ~ahill -mkdir build -cd build - -# Linux Headers -tar xf ../sources/linux-*.tar* -cd linux-*/ -LLVM=1 make -j $THREADS mrproper -# NOTE: We don't use the built-in headers_install here because it requires rsync -# for some reason. ~ahill -LLVM=1 make -j $THREADS headers -find usr/include -type f ! -name "*.h" -delete -cp -r usr/include $MAPLE/usr -cd .. - -# musl Build (Stage 1) -tar xf ../sources/musl-*.tar* -cd musl-*/ -./configure \ - --bindir=/bin \ - --build=$BUILD \ - --includedir=/usr/include \ - --libdir=/lib \ - --prefix=/ \ - --target=$TARGET -make -O -j $THREADS -make -O install-headers DESTDIR=$MAPLE -cd .. - -# LLVM Build -tar xf ../sources/llvm-project-*.tar* -cd llvm-project-*/ - -# Common flags used across all of the LLVM builds -COMMON_LLVM_CMAKE=( - "-DCMAKE_ASM_COMPILER_TARGET=$TARGET" - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON" - "-DCMAKE_C_COMPILER=$CC" - "-DCMAKE_C_COMPILER_TARGET=$TARGET" - "-DCMAKE_CXX_COMPILER=$CXX" - "-DCMAKE_CXX_COMPILER_TARGET=$TARGET" - "-DCMAKE_FIND_ROOT_PATH=$MAPLE" - "-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY" - "-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY" - "-DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY" - "-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER" - "-DCMAKE_INSTALL_DATAROOTDIR=usr/share" - "-DCMAKE_INSTALL_INCLUDEDIR=usr/include" - "-DCMAKE_INSTALL_LIBEXECDIR=lib" - "-DCMAKE_INSTALL_PREFIX=$MAPLE" - "-DCMAKE_INSTALL_RPATH=/lib" - "-DCMAKE_INSTALL_RUNSTATEDIR=run" - "-DCMAKE_INSTALL_SHAREDSTATEDIR=usr/com" - "-DCMAKE_SYSROOT=$MAPLE" - "-DCMAKE_SYSTEM_NAME=Linux" - "-DLLVM_HOST_TRIPLE=$TARGET" - "-DLLVM_USE_LINKER=lld" - "-DLLVM_TARGETS_TO_BUILD=X86" - "-DLLVM_ENABLE_ZSTD=OFF" -) - -# (LLVM) Builtins Build -# NOTE: For some reason, atomics are not built unless you... disable the thing -# that disables it? Why was it implemented this way? ~ahill -cmake -S compiler-rt/lib/builtins -B build-builtins \ - $COMMON_LLVM_CMAKE \ - -DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=OFF -cmake --build build-builtins -cmake --install build-builtins - -# musl Build (Stage 2) -# FIXME: CVE-2025-26519 -cd ../musl-*/ -make -O clean -CFLAGS="-fuse-ld=lld --sysroot=$MAPLE $CFLAGS" \ -LIBCC="$MAPLE/lib/linux/libclang_rt.builtins-x86_64.a" \ -./configure \ - --bindir=/bin \ - --build=$BUILD \ - --includedir=/usr/include \ - --libdir=/lib \ - --prefix=/ \ - --target=$TARGET -make -O -j $THREADS -make -O install DESTDIR=$MAPLE -# NOTE: musl provides static libraries for POSIX libraries such as libm, but -# fails to provide shared versions which will breaks builds later on. -# Granted, they are useless since libc.so contains all the functionality -# we need, but it is needed for compatibility. As of April 5th, 2025, zsh -# is known to be misconfigured as a result of missing libraries. ~ahill -for lib in $(grep "EMPTY_LIB_NAMES =" Makefile | sed "s/EMPTY_LIB_NAMES = //"); do - ln -sf libc.so $MAPLE/lib/lib$lib.so -done -# NOTE: musl has some witchcraft associated with it that allows it to function -# as an implementation of ldd. Honestly, the idea of a library with as an -# entry point is something I have never thought of before, but I'm -# interested in exploring the possibilities. ~ahill -ln -sf /lib/ld-musl-x86_64.so.1 $MAPLE/bin/ldd -cd ../llvm-project-*/ - -# (LLVM) Runtimes Build -# TODO: Is it possible to prevent CMake from building static libraries? ~ahill -# NOTE: We have to trick CMake because we don't have a copy of libunwind yet, so -# CMAKE_C_COMPILER_WORKS and CMAKE_CXX_COMPILER_WORKS are manually set to -# prevent it from trying to link with libunwind initially. ~ahill -cmake -S runtimes -B build-runtimes \ - $COMMON_LLVM_CMAKE \ - -DCMAKE_C_COMPILER_WORKS=ON \ - -DCMAKE_C_FLAGS="-fuse-ld=lld -Qunused-arguments -rtlib=compiler-rt -Wl,--dynamic-linker=/lib/ld-musl-x86_64.so.1" \ - -DCMAKE_CXX_COMPILER_WORKS=ON \ - -DCMAKE_CXX_FLAGS="-fuse-ld=lld -Qunused-arguments -rtlib=compiler-rt -Wl,--dynamic-linker=/lib/ld-musl-x86_64.so.1" \ - -DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=OFF \ - -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON \ - -DLIBCXX_CXX_ABI=libcxxabi \ - -DLIBCXX_HAS_MUSL_LIBC=ON \ - -DLIBCXX_USE_COMPILER_RT=ON \ - -DLIBCXXABI_HAS_CXA_THREAD_ATEXIT_IMPL=OFF \ - -DLIBCXXABI_USE_COMPILER_RT=ON \ - -DLIBCXXABI_USE_LLVM_UNWINDER=ON \ - -DLIBUNWIND_USE_COMPILER_RT=ON \ - -DLLVM_ENABLE_RUNTIMES="compiler-rt;libunwind;libcxxabi;libcxx" -cmake --build build-runtimes -cmake --install build-runtimes - -# (LLVM) LLVM Build -# NOTE: For some reason, atomics cannot be found in compiler-rt, so we have to -# help it by specifying HAVE_CXX_ATOMICS_WITHOUT_LIB and -# HAVE_CXX_ATOMICS64_WITHOUT_LIB. ~ahill -cmake -S llvm -B build-llvm \ - $COMMON_LLVM_CMAKE \ - -DCLANG_DEFAULT_CXX_STDLIB=libc++ \ - -DCLANG_DEFAULT_RTLIB=compiler-rt \ - -DCLANG_DEFAULT_UNWINDLIB=libunwind \ - -DCLANG_VENDOR=Maple \ - -DCMAKE_C_FLAGS="-fuse-ld=lld -Qunused-arguments -rtlib=compiler-rt -unwindlib=libunwind -Wl,--dynamic-linker=/lib/ld-musl-x86_64.so.1" \ - -DCMAKE_CXX_FLAGS="-fuse-ld=lld -Qunused-arguments -rtlib=compiler-rt -stdlib=libc++ -unwindlib=libunwind -Wl,--dynamic-linker=/lib/ld-musl-x86_64.so.1" \ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ - -DCXX_SUPPORTS_CUSTOM_LINKER=ON \ - -DHAVE_CXX_ATOMICS_WITHOUT_LIB=ON \ - -DHAVE_CXX_ATOMICS64_WITHOUT_LIB=ON \ - -DLLVM_BUILD_LLVM_DYLIB=ON \ - -DLLVM_ENABLE_LIBCXX=ON \ - -DLLVM_ENABLE_PROJECTS="clang;libclc;lld;lldb;llvm" \ - -DLLVM_ENABLE_RTTI=ON \ - -DLLVM_INSTALL_BINUTILS_SYMLINKS=ON \ - -DLLVM_INSTALL_UTILS=ON \ - -DLLVM_LINK_LLVM_DYLIB=ON -cmake --build build-llvm -# ... - -# Finally done with LLVM ~ahill -cd .. - -# ... \ No newline at end of file diff --git a/build-chroot.sh b/build-chroot.sh deleted file mode 100755 index f790331..0000000 --- a/build-chroot.sh +++ /dev/null @@ -1,1889 +0,0 @@ -#!/bin/sh -e -export CC=clang -export CXX=clang++ -export CFLAGS="-O3 -march=skylake -pipe" -export CXXFLAGS="$CFLAGS" -THREADS=$(nproc) - -mkdir -p build -cd build - -# Zlib Build -tar xf ../sources/zlib-*.tar* -cd zlib-*/ -# The configure script refuses to build a shared library because the linker -# script attempts to modify symbols that do not exist. Passing CFLAGS fixes the -# issue. ~ahill -CFLAGS="-Wl,--undefined-version" ./configure --prefix=/usr --shared -make -j $THREADS -make -j $THREADS install -cd .. - -# LibreSSL Build -tar xf ../sources/libressl-*.tar* -cd libressl-*/ -./configure \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -# NOTE: No need to hide what we're using. ~ahill -ln -s openssl /bin/libressl -cd .. - -# bzip2 Build -tar xf ../sources/bzip2-*.tar* -cd bzip2-*/ -make -O CC=clang -make -O install CC=clang PREFIX=/usr -cd .. - -# cpio Build -tar xf ../sources/cpio-*.tar* -cd cpio-*/ -./configure \ - --disable-nls \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# libarchive Build -tar xf ../sources/libarchive-*.tar* -cd libarchive-*/ -./configure \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# libexpat Build -tar xf ../sources/expat-*.tar* -cd expat-*/ -./configure \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# pkgconf Build -tar xf ../sources/pkgconf-*.tar* -cd pkgconf-*/ -./configure \ - --disable-static \ - --enable-year2038 \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -ln -s pkgconf /bin/pkg-config -cd .. - -# Perl Build -tar xf ../sources/perl-*.tar* -cd perl-*/ -# NOTE: d_eaccess is manually undefined because of undeclared function use in -# pp_sys.c ~ahill -./Configure -des \ - -Dprefix=/usr \ - -Dvendorprefix=/usr \ - -Duseshrplib \ - -Dusethreads \ - -Ud_eaccess -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# Autoconf Build -tar xf ../sources/autoconf-*.tar* -cd autoconf-*/ -./configure \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# Automake Build -tar xf ../sources/automake-*.tar* -cd automake-*/ -./configure \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# libtool Build -tar xf ../sources/libtool-*.tar* -cd libtool-*/ -./configure \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# cURL Build -tar xf ../sources/curl-*.tar* -cd curl-*/ -./configure \ - --disable-ntlm \ - --disable-static \ - --enable-ipv6 \ - --enable-optimize \ - --enable-unix-sockets \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc \ - --with-ca-bundle=/etc/ssl/cert.pem \ - --with-ca-path=/etc/ssl/certs \ - --with-openssl \ - --with-zlib \ - --with-zsh-functions-dir \ - --without-libpsl -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# CMake Build -tar xf ../sources/cmake-*.tar* -cd cmake-*/ -# TODO: CMake automatically installs scripts for emacs and vim, which we don't -# need by default on Maple Linux. ~ahill -./bootstrap \ - --datadir=usr/share/cmake-4.0 \ - --docdir=usr/share/doc/cmake-4.0 \ - --parallel=$THREADS \ - --prefix=/ \ - --system-bzip2 \ - --system-curl \ - --system-expat \ - --system-libarchive \ - --system-liblzma \ - --system-zlib \ - --xdgdatadir=usr/share -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# Samurai Build -tar xf ../sources/samurai-*.tar* -cd samurai-*/ -# NOTE: Unfortunately, there is no way to change the prefix without modifying -# the Makefile. ~ahill -sed -i "s/^PREFIX=.*/PREFIX=\/usr/" Makefile -# NOTE: CC is manually defined due to the use of the c99 command. ~ahill -make -O -j $THREADS CC=clang -make -O -j $THREADS install -cd .. - -# git Build -tar xf ../sources/git-*.tar* -cd git-*/ -# NOTE: musl doesn't support REG_STARTEND, which git requires. Therefore, we -# pass NO_REGEX=NeedsStartEnd so git will use its own implementation -# instead. ~ahill -# NOTE: Passing NO_TCLTK disables the GUI and passing NO_GETTEXT disables locale -# generation... unless it attempts to build the GUI, where it will attempt -# to generate the locales anyways. ~ahill -make -O -j $THREADS all prefix=/usr NO_GETTEXT=YesUnfortunately NO_REGEX=NeedsStartEnd NO_TCLTK=YesPlease -make -O -j $THREADS install prefix=/usr NO_GETTEXT=YesUnfortunately NO_REGEX=NeedsStartEnd NO_TCLTK=YesPlease -cd .. - -# muon Build -tar xf ../sources/muon-*.tar* -cd muon-*/ -# NOTE: Muon's bootstrap script requires the "c99" command, which doesn't exist -# on Maple Linux. Using sed to rewrite the command to clang -std=c99 -# instead. ~ahill -sed -i "s/c99/clang -std=c99/" bootstrap.sh -CFLAGS="-DBOOTSTRAP_NO_SAMU" ./bootstrap.sh build -./build/muon-bootstrap setup -Dprefix=/usr build -samu -C build -./build/muon-bootstrap -C build install -cd .. - -# ncurses Build -tar xf ../sources/ncurses-*.tar* -cd ncurses-*/ -./configure \ - --enable-ext-colors \ - --enable-widec \ - --exec-prefix="" \ - --libexecdir=/lib \ - --prefix=/usr \ - --with-shared \ - --with-cxx-binding \ - --with-cxx-shared \ - --without-ada \ - --without-manpages \ - --without-normal -make -O -j $THREADS -make -O -j $THREADS install -# NOTE: These symbolic links are for backwards compatibility. Specifically, for -# fixing "make menuconfig" for the Linux kernel, since it looks for the -# non-wide version of the library. ~ahill -ln -s libncursesw.so /lib/libncurses.so -ln -s libncurses++w.so /lib/libncurses++.so -cd .. - -# zsh Build -tar xf ../sources/zsh-*.tar* -cd zsh-*/ -# NOTE: The target triple is explicitly passed to the configure script since it -# believes the host system is based on glibc rather than musl. ~ahill -# NOTE: Most of Autoconf's tests do not specify a type for the main function, -# causing clang to get angry. Passing -Wno-implicit-int fixes this. ~ahill -CFLAGS="-Wno-implicit-int" ./configure \ - --build=$(clang -dumpmachine) \ - --disable-locale \ - --enable-libc-musl \ - --enable-multibyte \ - --exec-prefix="" \ - --libexecdir=/lib \ - --prefix=/usr -make -O -j $THREADS -make -O -j $THREADS install -# NOTE: While zsh isn't 100% compatible with bash, it can still be used as a -# reliable replacement in this case. ~ahill -ln -s zsh /bin/bash -cd .. - -# libcap Build -tar xf ../sources/libcap-*.tar* -cd libcap-*/ -# NOTE: Review additional prefix settings for correctness -make CC=clang prefix=/usr lib=lib -O -j $THREADS -make prefix=/usr lib=lib -O -j $THREADS install -cd .. - -# Linux PAM Build -tar xf ../sources/Linux-PAM-*.tar* -cd Linux-PAM-*/ -# FIXME: Muon has an issue with system dependencies that lack a pkgconfig file. -# We change the method we use for resolving dependencies as a workaround. -# ~ahill -sed -i "s/^libdl = dependency('dl')/libdl = dependency('dl', method : 'system')/" meson.build -# NOTE: The version script associated with PAM attempts to modify symbols that -# don't exist, so it fails to compile on LLVM. Passing -# -Wl,--undefined-version fixes the problem. ~ahill -LDFLAGS="-Wl,--undefined-version" muon setup build -# NOTE: We are using Samurai directly because we don't have the ability to reach -# the Internet to download meson's tests in our current state. ~ahill -samu -C build -muon -C build install -cd .. - -# OpenRC Build -tar xf ../sources/openrc-*.tar* -cd openrc-*/ -muon setup build -samu -C build -# NOTE: build/src/shared/version is never generated, which causes an error with -# the install process. Deleting the last line as a workaround. ~ahill -sed -i "/^install.*\/src\/shared\/version\".*/d" ./tools/meson_final.sh -# NOTE: One of the shell scripts OpenRC uses to install requires a DESTDIR, so -# we simply say the root is / in this case. ~ahill -DESTDIR=/ muon -C build install -# FIXME: Not sure why, but OpenRC doesn't take over /sbin/init like it should. -# As a workaround, let's create the symlinks manually. ~ahill -ln -s openrc-init /sbin/init -ln -s openrc-shutdown /sbin/shutdown -cd .. - -# nasm Build -tar xf ../sources/nasm-*.tar* -cd nasm-*/ -./configure \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# Limine Build -tar xf ../sources/limine-*.tar* -cd limine-*/ -./configure \ - --enable-uefi-x86-64 \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# dosfstools Build -tar xf ../sources/dosfstools-*.tar* -cd dosfstools-*/ -./configure \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# bison Build -tar xf ../sources/bison-*.tar* -cd bison-*/ -./configure \ - --disable-nls \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# flex Build -tar xf ../sources/flex-*.tar* -cd flex-*/ -./configure \ - --disable-nls \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# util-linux Build -tar xf ../sources/util-linux-*.tar* -cd util-linux-* -# lastlog2 depends on sqlite, which we don't have -# groups and chown are disabled as we don't have either at this point -# TODO: Do we care about bash completion when we're using zsh? ~ahill -./configure \ - --disable-liblastlog2 \ - --disable-makeinstall-chown \ - --disable-nls \ - --disable-pam-lastlog2 \ - --disable-static \ - --disable-use-tty-group \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc \ - --without-python \ - --without-systemd -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# libinih Build -tar xf ../sources/libinih-*.tar* -cd inih-*/ -muon setup \ - -Ddefault_library=shared \ - -Dprefix=/usr \ - build -muon samu -C build -muon -C build install -cd .. - -# liburcu Build -tar xf ../sources/userspace-rcu-*.tar* -cd userspace-rcu-*/ -./configure \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# xfsprogs Build -tar xf ../sources/xfsprogs-*.tar* -cd xfsprogs-*/ -# NOTE: libxfs redefined PAGE_SIZE from the standard C library (limits.h), so -# we simply undefine it to get it to play nice with musl. ~ahill -sed -i "/#define PAGE_SIZE/d" libxfs/libxfs_priv.h -# NOTE: io/stat.c relies on the internal STATX__RESERVED definition to function. -# musl doesn't have STATX__RESERVED, so we replace it with STATX_ALL since -# that's what we're actually trying to achieve here. ~ahill -sed -i "s/~STATX__RESERVED/STATX_ALL/" io/stat.c -# Overriding system statx fixes an issue with musl compatability. -# Gentoo bugzilla for reference: https://bugs.gentoo.org/948468 -CFLAGS=-DOVERRIDE_SYSTEM_STATX ./configure \ - --disable-static \ - --enable-gettext=no \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# bc Build -tar xf ../sources/bc-*.tar* -cd bc-*/ -./configure \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -# NOTE: Documentation is not properly built here, -# MAKEINFO=true replaces the makeinfo executable (which we don't have) -# with `/usr/bin/true`. This is fine for the bootstrap, but should -# not be done when properly packaged. ~nmcdaniel -make MAKEINFO=true -O -j $THREADS -make MAKEINFO=true -O -j $THREADS install -cd .. - -# libelf Build -tar xf ../sources/libelf-*.tar* -cd libelf-*/ -# NOTE: This distribution of libelf has been extracted from elfutils and lacks a -# proper configuration script. The best we can do is modify src/config.h -# to do what we need. Zstd does *not* belong in binaries. ~ahill -sed -i "/#define USE_ZSTD.*/d" src/config.h -# NOTE: Similarly, we need to modify the Makefile to prevent it from linking -# with zstd. At the very least, we can use the proper target to only build -# the shared library. ~ahill -sed -i "s/-lzstd//" Makefile -make -j $THREADS libelf.so -# NOTE: INCDIR is manually set here because it defaults to $(PREFIX)/include, -# which becomes /include. Setting this to /usr/include fixes installation. -# ~ahill -make -O -j $THREADS install-headers INCDIR=/usr/include -make -O -j $THREADS install-shared -cd .. - -# Linux Build -tar xf ../sources/linux-*.tar* -cd linux-*/ -# NOTE: LLVM=1 is required for the Linux kernel Makefile. Otherwise, things will -# not build properly. ~ahill -LLVM=1 make -j $THREADS mrproper -cp /maple/linux.$(uname -m).config .config -LLVM=1 make -j $THREADS -LLVM=1 make -j $THREADS install -LLVM=1 make -j $THREADS modules_install -cd .. - -# kmod Build -tar xf ../sources/kmod-*.tar* -cd kmod-*/ -# NOTE: kmod's meson script attempts to invoke sh via the add_install_script and -# confuses muon, so it starts searching for sh in the current directory. -# As a workaround, we will tweak the invocation to point directly to -# /bin/sh. ~ahill -sed -i "s/add_install_script('sh'/add_install_script('\/bin\/sh'/" meson.build -# NOTE: Might enable zstd later, but I want to make sure that the lack of -# Facebook's software doesn't negatively impact the open source world. -# ~ahill -# TODO: Is this the correct zsh directory to use? ~ahill -muon setup \ - -Dbashcompletiondir=no \ - -Dfishcompletiondir=no \ - -Dmanpages=false \ - -Dzstd=disabled \ - build -muon samu -C build -muon -C build install -cd .. - -# tinyramfs Build -tar xf ../sources/tinyramfs-*.tar* -cd tinyramfs-*/ -make install PREFIX=/usr -cd .. - -# procps-ng Build -tar xf ../sources/procps-ng-*.tar* -cd procps-ng-*/ -# FIXME: Why does this not detect the ncurses we just built? Do we need a -# pkgconf file for this? Why didn't ncurses build one? ~ahill -./configure \ - --disable-nls \ - --disable-static \ - --enable-year2038 \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc \ - --without-ncurses -make -O -j $THREADS -# FIXME: For some reason, a -e sneaks its way into local/capnames.h, which -# causes a syntax error to occur. This is an incredibly jank patch and I -# don't know what causes this yet. ~ahill -sed -i "s/^-e//" local/capnames.h -make -O -j $THREADS install -cd .. - -# kbd Build -tar xf ../sources/kbd-*.tar* -cd kbd-*/ -# NOTE: The tests require a software called autom4te to function. Ignoring the -# additional dependency for now. ~ahill -./configure \ - --disable-nls \ - --disable-static \ - --disable-tests \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# iproute2 Build -tar xf ../sources/iproute2-*.tar* -cd iproute2-*/ -./configure --color auto --include_dir /usr/include --libdir /lib -# NOTE: It seems that iproute2's configuration script isn't compatible with -# musl, which means we need to manually define HAVE_HANDLE_AT and -# HAVE_SETNS to make it work properly. ~ahill -CFLAGS="$(CFLAGS) -DHAVE_HANDLE_AT -DHAVE_SETNS" make -j $THREADS CC=clang -make -O -j $THREADS install -cd .. - -# libmd Build -tar xf ../sources/libmd-*.tar* -cd libmd-*/ -./configure \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# libbsd Build -tar xf ../sources/libbsd-*.tar* -cd libbsd-*/ -./configure \ - --disable-static \ - --enable-year2038 \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# Shadow Build -tar xf ../sources/shadow-*.tar* -cd shadow-*/ -./configure \ - --disable-nls \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# nano Build -tar xf ../sources/nano-*.tar* -cd nano-*/ -./configure \ - --disable-nls \ - --enable-utf8 \ - --enable-year2038 \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# dhcpcd Build -tar xf ../sources/dhcpcd-*.tar* -cd dhcpcd-*/ -./configure \ - --bindir=/bin \ - --libdir=/lib \ - --libexecdir=/lib \ - --prefix=/usr \ - --sbindir=/sbin \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# Chrony Build -tar xf ../sources/chrony-*.tar* -cd chrony-*/ -./configure --exec-prefix=/ --prefix=/usr -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# libmnl Build -tar xf ../sources/libmnl-*.tar* -cd libmnl-*/ -./configure \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# libnftnl Build -tar xf ../sources/libnftnl-*.tar* -cd libnftnl-*/ -./configure \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# libgmp Build -tar xf ../sources/gmp-*.tar* -cd gmp-*/ -./configure \ - --bindir=/bin \ - --disable-static \ - --enable-cxx \ - --exec-prefix=/ \ - --libdir=/lib \ - --libexecdir=/lib \ - --prefix=/usr \ - --sbindir=/bin \ - --sysconfdir=/etc \ - --localstatedir=/var -make -O -j $THREADS -make -O -j $THREADS install -# FIXME: For some reason, gmp.h keeps showing up under /include. This is a -# temporary workaround while I figure out what's going on. ~ahill -cp /include/* /usr/include/ -rm -rf /include -cd .. - -# nftables Build -tar xf ../sources/nftables-*.tar* -cd nftables-*/ -# NOTE: Building without the CLI will require fewer dependencies. -# (No libreadline, editline, and linenoise) ~ahill -./configure \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc \ - --without-cli -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# patch Build -tar xf ../sources/patch-*.tar* -cd patch-*/ -./configure \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# X.Org Utility Macros Build -tar xf ../sources/macros-util-macros-*.tar* -cd macros-util-macros-*/ -./autogen.sh \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -# NOTE: make claims that there's nothing to do for the build... so we just -# don't. ~ahill -make -O -j $THREADS install -cd .. - -# libxtrans Build -tar xf ../sources/libxtrans-xtrans-*.tar* -cd libxtrans-xtrans-*/ -./autogen.sh \ - --disable-docs \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -# NOTE: Once again, make does nothing. ~ahill -make -O -j $THREADS install -cd .. - -# xorgproto Build -tar xf ../sources/xorgproto-xorgproto-*.tar* -cd xorgproto-xorgproto-*/ -muon setup -Dprefix=/usr build -muon -C build install -cd .. - -# libffi Build -tar xf ../sources/libffi-*.tar* -cd libffi-*/ -./configure \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# Python Build -# NOTE: I don't like how we're using an old version of Python, but it'll have to -# do because it's the last version that supports LibreSSL. ~ahill -# See also: https://peps.python.org/pep-0644/ -# NOTE: Python will not build _ctypes if libffi is not present. ~ahill -tar xf ../sources/Python-*.tar* -cd Python-*/ -# FIXME: Python copies its headers to /include rather than /usr/include. ~ahill -# TODO: Review Python's configuration to make sure the paths are configured -# correctly. Setting exec-prefix to / instead of an empty string fixed -# the need for PYTHONHOME. ~ahill -./configure \ - --enable-optimizations \ - --exec-prefix=/ \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# xcbproto Build -tar xf ../sources/xcbproto-xcb-proto-*.tar* -cd xcbproto-xcb-proto-*/ -./autogen.sh \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# libXau Build -tar xf ../sources/libxau-libXau-*.tar* -cd libxau-libXau-*/ -muon setup -Dprefix=/usr build -muon samu -C build -muon -C build install -cd .. - -# libxcb Build -tar xf ../sources/libxcb-libxcb-*.tar* -cd libxcb-libxcb-*/ -./autogen.sh \ - --disable-static \ - --enable-year2038 \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# libX11 Build -tar xf ../sources/libx11-*.tar* -cd libx11-*/ -# NOTE: Disabling xsltproc and xmlto is the only way I've found to disable -# documentation. ~ahill -# NOTE: For some reason, autoconf attempts to pipe C code into the preprocessor -# without passing -, so setting ac_cv_path_RAWCPP fixes that. ~ahill -ac_cv_path_RAWCPP="clang -E -" ./autogen.sh \ - --disable-static \ - --enable-year2038 \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc \ - --without-xsltproc \ - --without-xmlto -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# Pixman Build -tar xf ../sources/pixman-*.tar* -cd pixman-*/ -# NOTE: Pixman builds as a static library by default, but appears to be missing -# the MMX, SSE2, and SSE3 symbols upon installation. Telling it to build a -# shared library fixes the problem, but the question is why this happens -# in the first place... ~ahill -muon setup \ - -Ddefault_library=shared \ - -Dprefix=/usr \ - build -muon samu -C build -muon -C build install -cd .. - -# libxkbfile Build -tar xf ../sources/libxkbfile-libxkbfile-*.tar* -cd libxkbfile-libxkbfile-*/ -muon setup \ - -Ddefault_library=shared \ - -Dprefix=/usr \ - build -muon samu -C build -muon -C build install -cd .. - -# FreeType Build -tar xf ../sources/freetype-*.tar* -cd freetype-*/ -muon setup -Dprefix=/usr build -muon samu -C build -muon -C build install -cd .. - -# font-util Build -tar xf ../sources/util-font-util-*.tar* -cd util-font-util-*/ -./autogen.sh \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# libfontenc Build -tar xf ../sources/libfontenc-libfontenc-*.tar* -cd libfontenc-libfontenc-*/ -./autogen.sh \ - --disable-static \ - --enable-year2038 \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# libXfont2 Build -tar xf ../sources/libxfont-libXfont2-*.tar* -cd libxfont-libXfont2-*/ -./autogen.sh \ - --disable-static \ - --enable-year2038 \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# libxcvt Build -tar xf ../sources/libxcvt-libxcvt-*.tar* -cd libxcvt-libxcvt-*/ -muon setup -Dprefix=/usr build -muon samu -C build -muon -C build install -cd .. - -# skalibs Build -# TODO: Should skalibs/mdevd/libudev-zero be moved to earlier in the script to -# benefit other software? ~ahill -tar xf ../sources/skalibs-*.tar* -cd skalibs-*/ -# NOTE: We prefer a static library over a shared library in this instance since -# this is only used by mdevd. ~ahill -./configure \ - --disable-shared \ - --enable-pkgconfig \ - --includedir=/usr/include \ - --prefix=/ -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# mdevd Build -tar xf ../sources/mdevd-*.tar* -cd mdevd-*/ -./configure \ - --disable-static \ - --enable-pkgconfig \ - --enable-shared \ - --includedir=/usr/include \ - --libexecdir=/lib \ - --prefix=/ -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# libudev-zero Build -tar xf ../sources/libudev-zero-*.tar* -cd libudev-zero-*/ -# FIXME: libudev-zero copies headers to /include instead of /usr/include. ~ahill -make -O -j $THREADS -make -O -j $THREADS install PREFIX=/ -cd .. - -# libXdmcp Build -tar xf ../sources/libxdmcp-libXdmcp-*.tar* -cd libxdmcp-libXdmcp-*/ -./autogen.sh \ - --disable-docs \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# Flit Core Build -# NOTE: Required to build Packaging -tar xf ../sources/flit_core-*.tar* -cd flit_core-*/ -python3 -m pip install --no-build-isolation --root-user-action=ignore . -cd .. - -# Packaging Build -# NOTE: Required by Build and MarkupSafe -# NOTE: Build isolation starts having problems here because pip isolates itself -# from its dependencies. ~ahill -# See also: https://pip.pypa.io/en/latest/reference/build-system/pyproject-toml/#disabling-build-isolation -tar xf ../sources/packaging-*.tar* -cd packaging-*/ -python3 -m pip install --no-build-isolation --root-user-action=ignore . -cd .. - -# Tomli Build -# NOTE: Required by Build -tar xf ../sources/tomli-*.tar* -cd tomli-*/ -python3 -m pip install --no-build-isolation --root-user-action=ignore . -cd .. - -# Pyproject Hooks Build -# NOTE: Required by Build -tar xf ../sources/pyproject_hooks-*.tar* -cd pyproject_hooks-*/ -python3 -m pip install --no-build-isolation --root-user-action=ignore . -cd .. - -# Wheel Build -# NOTE: Required by ImportLib Metadata -tar xf ../sources/wheel-*.tar* -cd wheel-*/ -python3 -m pip install --no-build-isolation --root-user-action=ignore . -cd .. - -# SetupTools Build -# NOTE: While not an explicit dependency of ImportLib Metadata, it produces an -# UNKNOWN egg if this isn't installed. ~ahill -tar xf ../sources/setuptools-*.tar* -cd setuptools-*/ -python3 -m pip install --no-build-isolation --root-user-action=ignore . -cd .. - -# Typing Extensions Build -# NOTE: Required by SetupTools SCM -tar xf ../sources/typing_extensions-*.tar* -cd typing_extensions-*/ -python3 -m pip install --no-build-isolation --root-user-action=ignore . -cd .. - -# Zipp Build -# NOTE: Required by ImportLib Metadata -tar xf ../sources/zipp-*.tar* -cd zipp-*/ -python3 -m pip install --no-build-isolation --root-user-action=ignore . -# NOTE: For some reason, Zipp, which is a dependency of ImportLib Metadata, -# requires SetupTools SCM to properly version the module. This doesn't -# sound too bad until you realize that ImportLib Metadata is a dependency -# of SetupTools SCM, which we can't install because Zipp is the dependency -# of that! In other words, we have encountered a circular dependency for -# this version of Python. The simple solution is to simply upgrade Python, -# but you wouldn't be reading this if that was possible. Instead, we will -# extract the version number from the name of the tarball, and inject that -# into the egg info for Zipp after installing. ~ahill -ZIPP_VERSION=$(pwd | cut -d"-" -f2) -ZIPP_PACKAGE=/lib/python3.9/site-packages/zipp-$ZIPP_VERSION.dist-info -mv /lib/python3.9/site-packages/zipp-0.0.0.dist-info $ZIPP_PACKAGE -sed -i "s/Version: 0.0.0/Version: $ZIPP_VERSION/" $ZIPP_PACKAGE/METADATA -sed -i "s/zipp-0.0.0/zipp-$ZIPP_VERSION/" $ZIPP_PACKAGE/RECORD -ZIPP_METADATA_HASH=$(cat $ZIPP_PACKAGE/METADATA | libressl sha256 -binary | base64 -w 0) -sed -i "s|METADATA,sha256=.*,|METADATA,sha256=$ZIPP_METADATA_HASH,|" $ZIPP_PACKAGE/RECORD -cd .. - -# ImportLib Metadata Build -# NOTE: Required by Build -tar xf ../sources/importlib_metadata-*.tar* -cd importlib_metadata-*/ -python3 -m pip install --no-build-isolation --root-user-action=ignore . -# NOTE: Applying the same hack from Zipp to ImportLib Metadata because both rely -# on SetupTools SCM, which we can't install due to a circular dependency. -IMPORTLIB_METADATA_VERSION=$(pwd | cut -d"-" -f2) -IMPORTLIB_METADATA_PACKAGE=/lib/python3.9/site-packages/importlib_metadata-$IMPORTLIB_METADATA_VERSION.dist-info -mv /lib/python3.9/site-packages/importlib_metadata-0.0.0.dist-info $IMPORTLIB_METADATA_PACKAGE -sed -i "s/Version: 0.0.0/Version: $IMPORTLIB_METADATA_VERSION/" $IMPORTLIB_METADATA_PACKAGE/METADATA -sed -i "s/importlib_metadata-0.0.0/importlib_metadata-$IMPORTLIB_METADATA_VERSION/" $IMPORTLIB_METADATA_PACKAGE/RECORD -# I refuse to call this IMPORTLIB_METADATA_METADATA_HASH. ~ahill -IMPORTLIB_METADATA_HASH=$(cat $IMPORTLIB_METADATA_PACKAGE/METADATA | libressl sha256 -binary | base64 -w 0) -sed -i "s|METADATA,sha256=.*,|METADATA,sha256=$IMPORTLIB_METADATA_HASH,|" $IMPORTLIB_METADATA_PACKAGE/RECORD -cd .. - -# SetupTools SCM Build -# NOTE: Technically required by Zipp and ImportLib Metadata, but not needed at -# this point. This is just here for future-proofing. ~ahill -tar xf ../sources/setuptools_scm-*.tar* -cd setuptools_scm-*/ -python3 -m pip install --no-build-isolation --root-user-action=ignore . -cd .. - -# "Build" Build -# NOTE: The above line makes me question my sanity. ~ahill -# NOTE: Required by MarkupSafe -tar xf ../sources/build-*.tar* -cd build-*/ -python3 -m pip install --no-build-isolation --root-user-action=ignore . -cd .. - -# MarkupSafe Build -# NOTE: Required by Mako -tar xf ../sources/markupsafe-*.tar* -cd markupsafe-*/ -python3 -m pip install --no-build-isolation --root-user-action=ignore . -cd .. - -# Babel Build -# NOTE: Required by Mako -tar xf ../sources/babel-*.tar* -cd babel-*/ -python3 -m pip install --no-build-isolation --root-user-action=ignore . -cd .. - -# Click Build -# NOTE: Required by Lingua -tar xf ../sources/click-*.tar* -cd click-*/ -python3 -m pip install --no-build-isolation --root-user-action=ignore . -cd .. - -# Polib Build -# NOTE: Required by Lingua -tar xf ../sources/polib-*.tar* -cd polib-*/ -python3 -m pip install --no-build-isolation --root-user-action=ignore . -cd .. - -# Lingua Build -# NOTE: Required by Mako -tar xf ../sources/lingua-*.tar* -cd lingua-*/ -python3 -m pip install --no-build-isolation --root-user-action=ignore . -cd .. - -# Mako Build -# NOTE: This is a Python library that is required to build Mesa. ~ahill -tar xf ../sources/mako-*.tar* -cd mako-*/ -python3 -m pip install --no-build-isolation --root-user-action=ignore . -cd .. - -# PyYAML Build -# NOTE: Another Python library for Mesa. ~ahill -tar xf ../sources/pyyaml-*.tar* -cd pyyaml-*/ -python3 -m pip install --no-build-isolation --root-user-action=ignore . -cd .. - -# libpciaccess Build -tar xf ../sources/libpciaccess-libpciaccess-*.tar* -cd libpciaccess-libpciaccess-*/ -muon setup \ - -Dprefix=/usr \ - -Dzlib=enabled \ - build -muon samu -C build -muon -C build install -cd .. - -# libdrm Build -tar xf ../sources/libdrm-*.tar* -cd libdrm-*/ -muon setup \ - -Dintel=enabled \ - -Dprefix=/usr \ - -Dudev=true \ - build -muon samu -C build -muon -C build install -cd .. - -# LLVM pkgconf hack -# NOTE: Not proud of this, but I guess LLVM doesn't support pkg-config at all. -# This is here to allow muon to detect LLVM when building Mesa. ~ahill -# See also: https://github.com/llvm/llvm-project/issues/9777#issuecomment-980893725 -echo "Name: LLVM" > /lib/pkgconfig/llvm.pc -echo "Description: Low-Level Virtual Machine" >> /lib/pkgconfig/llvm.pc -echo "Version: $(llvm-config --version)" >> /lib/pkgconfig/llvm.pc -echo "URL: https://www.llvm.org/" >> /lib/pkgconfig/llvm.pc -echo "Requires:" >> /lib/pkgconfig/llvm.pc -echo "Conflicts:" >> /lib/pkgconfig/llvm.pc -echo "Libs: -L$(llvm-config --libdir) -lLLVM" >> /lib/pkgconfig/llvm.pc -echo "Cflags: -I$(llvm-config --includedir)" >> /lib/pkgconfig/llvm.pc - -# LLVMConfig.cmake hack -# FIXME: I'm not sure why, but LLVMConfig.cmake *assumes* that the LLVM install -# prefix is exactly three directories up from itself. This means that it -# believes the install prefix is /lib rather than /, which results in it -# failing to locate the other CMake files. This hack forcefully sets the -# LLVM install prefix to the proper location. ~ahill -sed -i "/get_filename_component(LLVM_INSTALL_PREFIX \"\${CMAKE_CURRENT_LIST_FILE/a set(LLVM_INSTALL_PREFIX \"/\")" /lib/cmake/llvm/LLVMConfig.cmake -sed -i "/get_filename_component(LLVM_INSTALL_PREFIX/d" /lib/cmake/llvm/LLVMConfig.cmake - -# SPIR-V Tools Build -tar xf ../sources/spirv-tools-*.tar* -cd SPIRV-Tools-*/ -# NOTE: In an effort to avoid Python and access to the Internet for the duration -# of the build, "python3 utils/git-sync-deps" has been replaced with the -# SPIR-V headers we used earlier. ~ahill -cd external -tar xf ../../../sources/SPIRV-Headers-vulkan-sdk-1.4.309.0.tar* -mv SPIRV-Headers-*/ spirv-headers -cd .. -cmake -B build \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_LIBDIR=/lib \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DSPIRV_SKIP_TESTS=ON -# FIXME: Having "stable" releases that rely on very specific commits to function -# is terrible practice. If updates are going to be that unstable, make -# the headers, tools, and translator all part of a single source tree! -# ~ahill -# See also: https://github.com/KhronosGroup/SPIRV-Headers/issues/515 -# https://github.com/KhronosGroup/SPIRV-LLVM-Translator/issues/3048 -# https://bugs.gentoo.org/951062 -make -C build -j $THREADS -make -C build -j $THREADS install -cd .. - -# SPIR-V LLVM Translator Build -tar xf ../sources/spirv-llvm-translator-*.tar* -cd SPIRV-LLVM-Translator-*/ -# NOTE: CMAKE_INSTALL_LIBDIR explicitly defined due to /usr/lib64 usage that -# breaks pkgconf. ~ahill -# NOTE: SPIR-V headers need to be imported from the source. ~ahill -tar xf ../../sources/SPIRV-Headers-vulkan-sdk-1.4.321.0.tar* -mv SPIRV-Headers-*/ SPIRV-Headers/ -cmake -B build \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_LIBDIR=/lib \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DLLVM_DIR=/lib/cmake/llvm \ - -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=$(pwd)/SPIRV-Headers -make -C build -j $THREADS -make -C build -j $THREADS install -cd .. - -# Glslang Build -tar xf ../sources/glslang-*.tar* -cd glslang-*/ -cmake -B build \ - -DALLOW_EXTERNAL_SPIRV_TOOLS=true \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_LIBDIR=/lib \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DGLSLANG_TESTS=false -make -C build -j $THREADS -make -C build -j $THREADS install -cd .. - -# libXext Build -tar xf ../sources/libxext-libXext-*.tar* -cd libxext-libXext-*/ -./autogen.sh \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc \ - --without-fop \ - --without-xmlto \ - --without-xsltproc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# libXfixes Build -tar xf ../sources/libxfixes-libXfixes-*.tar* -cd libxfixes-libXfixes-*/ -./autogen.sh \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# libxshmfence Build -tar xf ../sources/libxshmfence-libxshmfence-*.tar* -cd libxshmfence-libxshmfence-*/ -./autogen.sh \ - --disable-static \ - --enable-year2038 \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# libXxf86vm Build -tar xf ../sources/libxxf86vm-libXxf86vm-*.tar* -cd libxxf86vm-libXxf86vm-*/ -./autogen.sh \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# libXrender Build -tar xf ../sources/libxrender-libXrender-*.tar* -cd libxrender-libXrender-*/ -./autogen.sh \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# libXrandr Build -tar xf ../sources/libxrandr-libXrandr-*.tar* -cd libxrandr-libXrandr-*/ -./autogen.sh \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# Mesa Build -tar xf ../sources/mesa-mesa-*.tar* -cd mesa-mesa-*/ -# NOTE: Mesa apparently contains Rust code now. To avoid the dependency, we make -# sure gallium-rusticl, with_nouveau_vk, and etnaviv are all disabled. -# gallium-rusticl is a feature, with_nouveau_vk is part of nouveau itself, -# and etnaviv is part of the tools included with Mesa. ~ahill -# NOTE: Despite not building Rust, rust_std and build.rust_std are included in -# the project definition. We'll patch these out with sed before -# proceeding. ~ahill -sed -i "/rust_std=.*/d" meson.build -# NOTE: muon doesn't support configtool, so we patch meson.build to use the -# llvm-config command instead. RTTI detection is necessary for ABI-level -# compatibility with LLVM. ~ahill -sed -i "s/_llvm_rtti = \[.*/_llvm_rtti = ['ON', 'YES'].contains(run_command('llvm-config', '--has-rtti').stdout().strip())/" meson.build -sed -i "s/llvm_libdir = dep_llvm.*/llvm_libdir = run_command('llvm-config', '--libdir').stdout().strip()/" meson.build -LLVM_HASRTTI=$(llvm-config --has-rtti) -if [ "$LLVM_HASRTTI" = "YES" ] || [ "$LLVM_HASRTTI" = "ON" ]; then - LLVM_HASRTTI=true -else - LLVM_HASRTTI=false -fi -# NOTE: egl-native-platform and platforms are manually defined so we don't build -# Wayland support, which reduces the number of dependencies even further. -# ~ahill -# TODO: Have Mesa use the system-built Lua library rather than pulling one in -# from the web to use with Mesa and Mesa alone. ~ahill -# NOTE: intel-ui is temporary disabled due to a lack of libepoxy, which we can't -# build due to a muon bug. ~ahill -# See also: https://todo.sr.ht/~lattis/muon/141 -# NOTE: Dropping intel tools for now because it conflicting definitions with -# musl. ~ahill -# NOTE: Mesa and musl do not seem to get along, so I have patched the shim out -# from the 64-bit syscall variants since they're just aliased in musl, -# preventing a re-definition error. ~ahill -sed -i "1i #define off64_t off_t" src/drm-shim/drm_shim.h -patch -p0 < /maple/patches/mesa-drm-maple.patch -muon setup \ - -Dcpp_rtti=$LLVM_HASRTTI \ - -Degl-native-platform=x11 \ - -Dgallium-rusticl=false \ - -Dllvm=true \ - -Dplatforms=x11 \ - -Dprefix=/usr \ - -Dtools=drm-shim,dlclose-skip,freedreno,glsl,lima,nir,nouveau,asahi,imagination \ - -Dvulkan-drivers=amd,intel,intel_hasvk,swrast \ - build -muon samu -C build -muon -C build install -cd .. - -# XCB Util Build -tar xf ../sources/libxcb-util-xcb-util-*.tar* -cd libxcb-util-xcb-util-*/ -# NOTE: For some reason, configure.ac attempts to use LIBTOOL without invoking -# LT_INIT anywhere. The following line adds the line to the file so it can -# build properly. ~ahill -sed -i "/AM_INIT_AUTOMAKE/a LT_INIT" configure.ac -# NOTE: Makefile.am can't be built because pkgconfig_DATA and xcbinclude_HEADERS -# are used without having pkgconfigdir or xcbincludedir defined. This -# patches the files. ~ahill -sed -i "/pkgconfig_DATA/i pkgconfigdir=/lib/pkgconfig" Makefile.am -sed -i "/xcbinclude_HEADERS/i xcbincludedir=/usr/include/xcb" src/Makefile.am -# NOTE: XCB Util requires XCB Util M4 to build, which is software without a -# release tag and is only ever referred to by the commit hash. It fails to -# configure if this isn't present. ~ahill -tar xf ../../sources/xcb-util-m4-*.tar* -rm -rf m4/ -mv xcb-util-m4-*/ m4 -./autogen.sh \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# XCB Util WM Build -tar xf ../sources/libxcb-wm-xcb-util-wm-*.tar* -cd libxcb-wm-xcb-util-wm-*/ -# NOTE: XCB Util WM requires XCB Util M4 to build. We went over this with XCB -# Util already, and thankfully, it uses the same commit hash. ~ahill -tar xf ../../sources/xcb-util-m4-*.tar* -rm -rf m4/ -mv xcb-util-m4-*/ m4 -./autogen.sh \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# Xlibre Build -tar xf ../sources/xlibre-xserver-*.tar* -cd xserver-xlibre-xserver-*/ -# NOTE: Once again, muon doesn't like a simple "sh" so we need to replace it -# with /bin/sh to make it happy. ~ahill -sed -i "s|'sh'|'/bin/sh'|" hw/xfree86/meson.build -muon setup \ - -Dglamor=false \ - -Dprefix=/usr \ - build -# FIXME: For some reason, "muon setup" defines HAVE_ARC4RANDOM_BUF in -# build/dix-config.h, despite musl not having the function available. To -# fix this, we simply undef the symbol in the configuration file that was -# just generated. ~ahill -sed -i "s/#define HAVE_ARC4RANDOM_BUF.*/#undef HAVE_ARC4RANDOM_BUF/" build/dix-config.h -muon samu -C build -muon -C build install -cd .. - -# XFree86 VESA Driver Build -tar xf ../sources/xlibre-xf86-video-vesa-*.tar* -cd xf86-video-vesa-xlibre-xf86-video-vesa-*/ -./autogen.sh \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# Dropbear Build -tar xf ../sources/dropbear-*.tar* -cd dropbear-*/ -./configure \ - --enable-pam \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -# NOTE: Creating an ssh alias here for convenience's sake. ~ahill -ln -s dbclient /bin/ssh -# NOTE: Dropbear won't make keys if the directory doesn't exist. ~ahill -mkdir -p /etc/dropbear -cd .. - -# mtdev Build -tar xf ../sources/mtdev-*.tar* -cd mtdev-*/ -# TODO: Should this be static or shared? As far as I know, libinput is the only -# thing that will need this dependency, but I'll withhold judgement until -# I have a fully functional copy of Maple Linux. ~ahill -./configure \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# evdev Build -tar xf ../sources/libevdev-*.tar* -cd libevdev-*/ -# TODO: Once again, unsure whether this is used for anything but libinput at -# this point. ~ahill -./autogen.sh \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# libinput Build -tar xf ../sources/libinput-*.tar* -cd libinput-*/ -# NOTE: We're not building libwacom here so we don't have to bootstrap another -# dependency. Once we have a self-sufficient version, this should probably -# be re-enabled. ~ahill -muon setup \ - -Ddebug-gui=false \ - -Dlibwacom=false \ - -Dprefix=/usr \ - build -muon samu -C build -muon -C build install -cd .. - -# XFree86 libinput Driver Build -tar xf ../sources/xlibre-xf86-input-libinput-*.tar* -cd xf86-input-libinput-*/ -./autogen.sh \ - --disable-static \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# Pytest Runner Build -tar xf ../sources/pytest-runner-*.tar* -cd pytest-runner-*/ -python3 -m pip install --no-build-isolation --root-user-action=ignore . -cd .. - -# StrEnum Build -tar xf ../sources/StrEnum-*.tar* -cd StrEnum-*/ -python3 -m pip install --no-build-isolation --root-user-action=ignore . -cd .. - -# XKeyboardConfig Build -tar xf ../sources/xkeyboard-config-*.tar* -cd xkeyboard-config-*/ -# TODO: The configuration portion requires Python to function, but unfortunately -# introspection via pymod in Muon appears to rely on the path Python is -# located under. Muon is likely finding /bin/python3 before it finds -# /usr/bin/python3, which makes it think / is the prefix and fails to -# locate the other Python directories. Modifying meson.build to point -# straight to /usr/bin/python3 does the trick. ~ahill -sed -i "s|'python3|'/usr/bin/python3|" rules/meson.build -muon setup -Dprefix=/usr build -muon samu -C build -muon -C build install -cd .. - -# xkbcomp Build -tar xf ../sources/xkbcomp-*.tar* -cd xkbcomp-*/ -./autogen.sh \ - --enable-year2038 \ - --exec-prefix="" \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# PCRE2 Build -tar xf ../sources/pcre2-*.tar* -cd pcre2-*/ -./configure \ - --bindir=/bin \ - --disable-static \ - --exec-prefix=/ \ - --libdir=/lib \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --runstatedir=/run \ - --sbindir=/bin \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# gettext Build -# NOTE: I didn't want to include this initially, since this is just supposed to -# be the bootstrap, but since I've already started working on X11, why -# not? This should probably be placed earlier in the bootstrap so more -# software can take advantage of NLS/i18n. ~ahill -tar xf ../sources/gettext-*.tar* -cd gettext-*/ -./configure \ - --bindir=/bin \ - --disable-d \ - --disable-java \ - --disable-modula2 \ - --disable-static \ - --enable-year2038 \ - --exec-prefix=/ \ - --libdir=/lib \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --runstatedir=/run \ - --sbindir=/bin \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# Glib Build -tar xf ../sources/glib-*.tar* -cd glib-*/ -# Another dependency that links directly to a git commit rather than a proper -# version number? Why isn't this just a part of Glib? ~ahill -cd subprojects -rm -rf gvdb/ -tar xf ../../../sources/gvdb-*.tar* -mv gvdb-*/ gvdb -# NOTE: If we don't delete the .wrap file, it attempts to clone from git, which -# fails, and causes the entire build to fail. ~ahill -rm -f gvdb.wrap -cd .. -muon setup \ - -Ddefault_library=shared \ - -Dprefix=/usr \ - build -muon samu -C build -muon -C build install -cd .. - -# libpng Build -tar xf ../sources/libpng-*.tar* -cd libpng-*/ -./configure \ - --bindir=/bin \ - --disable-static \ - --enable-intel-sse \ - --exec-prefix=/ \ - --libdir=/lib \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --runstatedir=/run \ - --sbindir=/bin \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# gperf Build -tar xf ../sources/gperf-*.tar* -cd gperf-*/ -./configure \ - --bindir=/bin \ - --exec-prefix=/ \ - --libdir=/lib \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --runstatedir=/run \ - --sbindir=/bin \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# fontconfig Build -tar xf ../sources/fontconfig-*.tar* -cd fontconfig-*/ -./configure \ - --bindir=/bin \ - --disable-docs \ - --disable-static \ - --enable-year2038 \ - --exec-prefix=/ \ - --libdir=/lib \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --runstatedir=/run \ - --sbindir=/bin \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# Cairo Build -tar xf ../sources/cairo-*.tar* -cd cairo-*/ -# NOTE: Despite libpng and fontconfig being listed as optional dependencies, the -# build fails without them. ~ahill -muon setup -Dprefix=/usr build -muon samu -C build -muon -C build install -cd .. - -# Fribidi Build -tar xf ../sources/fribidi-*.tar* -cd fribidi-*/ -./configure \ - --bindir=/bin \ - --disable-static \ - --exec-prefix=/ \ - --libdir=/lib \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --runstatedir=/run \ - --sbindir=/bin \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# HarfBuzz Build -tar xf ../sources/harfbuzz-*.tar* -cd harfbuzz-*/ -muon setup -Dprefix=/usr build -muon samu -C build -muon -C build install -cd .. - -# Pango Build -tar xf ../sources/pango-*.tar* -cd pango-*/ -muon setup -Dprefix=/usr build -muon samu -C build -muon -C build install -cd .. - -# libxml2 Build -tar xf ../sources/libxml2-*.tar* -cd libxml2-*/ -./autogen.sh \ - --bindir=/bin \ - --disable-static \ - --exec-prefix=/ \ - --libdir=/lib \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --runstatedir=/run \ - --sbindir=/bin \ - --sysconfdir=/etc \ - --without-python -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# Shared MIME Info Build -tar xf ../sources/shared-mime-info-*.tar* -cd shared-mime-info-*/ -muon setup -Dprefix=/usr build -muon samu -C build -muon -C build install -cd .. - -# GDK Pixbuf Build -tar xf ../sources/gdk-pixbuf-*.tar* -cd gdk-pixbuf-*/ -# NOTE: GNOME encourages the use of Glycin on Linux to improve security, however -# it relies on the Rust programming language, which we do not have a -# compiler for. ~ahill -# See also: https://blogs.gnome.org/sophieh/2025/06/13/making-gnomes-gdkpixbuf-image-loading-safer/ -# FIXME: The thumbnailer is currently disabled due to a failure to build. I need -# to investigate what kind of witchcraft is happening inside of -# build/thumbnailer/gdk-pixbuf-print-mime-types. ~ahill -muon setup \ - -Dglycin=disabled \ - -Dgtk_doc=false \ - -Dman=false \ - -Dprefix=/usr \ - -Dthumbnailer=disabled \ - build -muon samu -C build -muon -C build install -cd .. - -# Tiff Build -tar xf ../sources/tiff-*.tar* -cd tiff-*/ -./configure \ - --bindir=/bin \ - --disable-docs \ - --disable-static \ - --enable-cxx \ - --exec-prefix=/ \ - --libdir=/lib \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/usr \ - --runstatedir=/run \ - --sbindir=/bin \ - --sysconfdir=/etc -make -O -j $THREADS -make -O -j $THREADS install -cd .. - -# libjpeg-turbo Build -tar xf ../sources/libjpeg-turbo-*.tar* -cd libjpeg-turbo-*/ -cmake -B build . \ - -DCMAKE_INSTALL_BINDIR=/bin \ - -DCMAKE_INSTALL_LIBDIR=/lib \ - -DCMAKE_INSTALL_PREFIX=/usr -make -C build -j $THREADS -make -C build -j $THREADS install -cd .. - -# GTK Build -# FIXME: librsvg is required, but we don't have a Rust compiler to build it -# with! ~ahill -# FIXME: libepoxy has a known bug with this version of muon. See the Mesa build -# for more information. ~ahill - -# Finally, make the image bootable. -cp /usr/share/limine/BOOTX64.EFI /boot/EFI/BOOT/ -ln -s agetty /etc/init.d/agetty.tty1 -cp /etc/conf.d/agetty /etc/conf.d/agetty.tty1 -rc-update add agetty.tty1 default -rc-update add chronyd default -rc-update add dhcpcd default -# NOTE: Dropbear currently included for troubleshooting purposes. Should be -# disabled for desktop systems. ~ahill -rc-update add dropbear default -rc-update add mdevd sysinit - -cd .. diff --git a/chroot-bootstrap.sh b/chroot-bootstrap.sh deleted file mode 100755 index f23e0b2..0000000 --- a/chroot-bootstrap.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh -MAPLE=$(pwd)/maple - -run_chroot() { - SHELL=/bin/sh - if [ -e $MAPLE/bin/zsh ]; then - SHELL=/bin/zsh - fi - chroot $MAPLE $SHELL -} - -if mount --rbind /dev $MAPLE/dev && mount --make-rslave $MAPLE/dev; then - if mount -t proc /proc $MAPLE/proc; then - if mount --rbind /sys $MAPLE/sys && mount --make-rslave $MAPLE/sys; then - if mount --rbind /tmp $MAPLE/tmp; then - if mount --bind /run $MAPLE/run; then - if [ -d $MAPLE/maple/sources ]; then - if mount --bind ./sources $MAPLE/maple/sources; then - if [ -d $MAPLE/maple/patches ]; then - if mount --bind ./patches $MAPLE/maple/patches; then - run_chroot - umount $MAPLE/maple/patches - fi - else - run_chroot - fi - umount $MAPLE/maple/sources - fi - else - run_chroot - fi - umount $MAPLE/run - fi - umount $MAPLE/tmp - fi - umount -R $MAPLE/sys - fi - umount $MAPLE/proc - fi - umount -R $MAPLE/dev -fi \ No newline at end of file diff --git a/config/linux.x86_64.config b/config/linux.x86_64.config deleted file mode 100644 index 8307406..0000000 --- a/config/linux.x86_64.config +++ /dev/null @@ -1,5411 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Linux/x86 6.15.4 Kernel Configuration -# -CONFIG_CC_VERSION_TEXT="Maple clang version 20.1.7 (https://github.com/cbpudding/maplelinux-bootstrap cf61e69bcdd95f4a3b6e1a1c146f9f26d9a8dbd4)" -CONFIG_GCC_VERSION=0 -CONFIG_CC_IS_CLANG=y -CONFIG_CLANG_VERSION=200107 -CONFIG_AS_IS_LLVM=y -CONFIG_AS_VERSION=200107 -CONFIG_LD_VERSION=0 -CONFIG_LD_IS_LLD=y -CONFIG_LLD_VERSION=200107 -CONFIG_RUSTC_VERSION=0 -CONFIG_RUSTC_LLVM_VERSION=0 -CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y -CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y -CONFIG_TOOLS_SUPPORT_RELR=y -CONFIG_CC_HAS_ASM_INLINE=y -CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y -CONFIG_CC_HAS_COUNTED_BY=y -CONFIG_PAHOLE_VERSION=0 -CONFIG_IRQ_WORK=y -CONFIG_BUILDTIME_TABLE_SORT=y -CONFIG_THREAD_INFO_IN_TASK=y - -# -# General setup -# -CONFIG_INIT_ENV_ARG_LIMIT=32 -# CONFIG_COMPILE_TEST is not set -CONFIG_WERROR=y -CONFIG_LOCALVERSION="-maple" -CONFIG_LOCALVERSION_AUTO=y -CONFIG_BUILD_SALT="" -CONFIG_HAVE_KERNEL_GZIP=y -CONFIG_HAVE_KERNEL_BZIP2=y -CONFIG_HAVE_KERNEL_LZMA=y -CONFIG_HAVE_KERNEL_XZ=y -CONFIG_HAVE_KERNEL_LZO=y -CONFIG_HAVE_KERNEL_LZ4=y -CONFIG_HAVE_KERNEL_ZSTD=y -CONFIG_KERNEL_GZIP=y -# CONFIG_KERNEL_BZIP2 is not set -# CONFIG_KERNEL_LZMA is not set -# CONFIG_KERNEL_XZ is not set -# CONFIG_KERNEL_LZO is not set -# CONFIG_KERNEL_LZ4 is not set -# CONFIG_KERNEL_ZSTD is not set -CONFIG_DEFAULT_INIT="" -CONFIG_DEFAULT_HOSTNAME="(none)" -CONFIG_SYSVIPC=y -CONFIG_SYSVIPC_SYSCTL=y -CONFIG_SYSVIPC_COMPAT=y -CONFIG_POSIX_MQUEUE=y -CONFIG_POSIX_MQUEUE_SYSCTL=y -# CONFIG_WATCH_QUEUE is not set -CONFIG_CROSS_MEMORY_ATTACH=y -# CONFIG_USELIB is not set -CONFIG_AUDIT=y -CONFIG_HAVE_ARCH_AUDITSYSCALL=y -CONFIG_AUDITSYSCALL=y - -# -# IRQ subsystem -# -CONFIG_GENERIC_IRQ_PROBE=y -CONFIG_GENERIC_IRQ_SHOW=y -CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y -CONFIG_GENERIC_PENDING_IRQ=y -CONFIG_GENERIC_IRQ_MIGRATION=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_IRQ_DOMAIN=y -CONFIG_IRQ_DOMAIN_HIERARCHY=y -CONFIG_GENERIC_MSI_IRQ=y -CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y -CONFIG_GENERIC_IRQ_RESERVATION_MODE=y -CONFIG_IRQ_FORCED_THREADING=y -CONFIG_SPARSE_IRQ=y -# CONFIG_GENERIC_IRQ_DEBUGFS is not set -# end of IRQ subsystem - -CONFIG_CLOCKSOURCE_WATCHDOG=y -CONFIG_ARCH_CLOCKSOURCE_INIT=y -CONFIG_GENERIC_TIME_VSYSCALL=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y -CONFIG_GENERIC_CLOCKEVENTS_BROADCAST_IDLE=y -CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y -CONFIG_GENERIC_CMOS_UPDATE=y -CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y -CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y -CONFIG_CONTEXT_TRACKING=y -CONFIG_CONTEXT_TRACKING_IDLE=y - -# -# Timers subsystem -# -CONFIG_TICK_ONESHOT=y -CONFIG_NO_HZ_COMMON=y -# CONFIG_HZ_PERIODIC is not set -CONFIG_NO_HZ_IDLE=y -# CONFIG_NO_HZ_FULL is not set -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=125 -# end of Timers subsystem - -CONFIG_BPF=y -CONFIG_HAVE_EBPF_JIT=y -CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y - -# -# BPF subsystem -# -# CONFIG_BPF_SYSCALL is not set -# CONFIG_BPF_JIT is not set -# end of BPF subsystem - -CONFIG_PREEMPT_BUILD=y -CONFIG_ARCH_HAS_PREEMPT_LAZY=y -# CONFIG_PREEMPT_NONE is not set -CONFIG_PREEMPT_VOLUNTARY=y -# CONFIG_PREEMPT is not set -# CONFIG_PREEMPT_LAZY is not set -CONFIG_PREEMPT_COUNT=y -CONFIG_PREEMPTION=y -CONFIG_PREEMPT_DYNAMIC=y -# CONFIG_SCHED_CORE is not set - -# -# CPU/Task time and stats accounting -# -CONFIG_TICK_CPU_ACCOUNTING=y -# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set -# CONFIG_IRQ_TIME_ACCOUNTING is not set -CONFIG_BSD_PROCESS_ACCT=y -# CONFIG_BSD_PROCESS_ACCT_V3 is not set -CONFIG_TASKSTATS=y -CONFIG_TASK_DELAY_ACCT=y -CONFIG_TASK_XACCT=y -CONFIG_TASK_IO_ACCOUNTING=y -# CONFIG_PSI is not set -# end of CPU/Task time and stats accounting - -CONFIG_CPU_ISOLATION=y - -# -# RCU Subsystem -# -CONFIG_TREE_RCU=y -CONFIG_PREEMPT_RCU=y -# CONFIG_RCU_EXPERT is not set -CONFIG_TREE_SRCU=y -CONFIG_TASKS_RCU_GENERIC=y -CONFIG_NEED_TASKS_RCU=y -CONFIG_TASKS_RCU=y -CONFIG_TASKS_TRACE_RCU=y -CONFIG_RCU_STALL_COMMON=y -CONFIG_RCU_NEED_SEGCBLIST=y -# end of RCU Subsystem - -# CONFIG_IKCONFIG is not set -# CONFIG_IKHEADERS is not set -CONFIG_LOG_BUF_SHIFT=18 -CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 -# CONFIG_PRINTK_INDEX is not set -CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y - -# -# Scheduler features -# -# CONFIG_UCLAMP_TASK is not set -# end of Scheduler features - -CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y -CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y -CONFIG_CC_HAS_INT128=y -CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough" -CONFIG_GCC10_NO_ARRAY_BOUNDS=y -CONFIG_GCC_NO_STRINGOP_OVERFLOW=y -CONFIG_ARCH_SUPPORTS_INT128=y -# CONFIG_NUMA_BALANCING is not set -CONFIG_CGROUPS=y -CONFIG_PAGE_COUNTER=y -# CONFIG_CGROUP_FAVOR_DYNMODS is not set -# CONFIG_MEMCG is not set -CONFIG_BLK_CGROUP=y -CONFIG_CGROUP_SCHED=y -CONFIG_GROUP_SCHED_WEIGHT=y -CONFIG_FAIR_GROUP_SCHED=y -# CONFIG_CFS_BANDWIDTH is not set -# CONFIG_RT_GROUP_SCHED is not set -CONFIG_SCHED_MM_CID=y -CONFIG_CGROUP_PIDS=y -CONFIG_CGROUP_RDMA=y -# CONFIG_CGROUP_DMEM is not set -CONFIG_CGROUP_FREEZER=y -CONFIG_CGROUP_HUGETLB=y -CONFIG_CPUSETS=y -# CONFIG_CPUSETS_V1 is not set -CONFIG_CGROUP_DEVICE=y -CONFIG_CGROUP_CPUACCT=y -CONFIG_CGROUP_PERF=y -CONFIG_CGROUP_MISC=y -CONFIG_CGROUP_DEBUG=y -CONFIG_SOCK_CGROUP_DATA=y -CONFIG_NAMESPACES=y -CONFIG_UTS_NS=y -CONFIG_TIME_NS=y -CONFIG_IPC_NS=y -# CONFIG_USER_NS is not set -CONFIG_PID_NS=y -CONFIG_NET_NS=y -# CONFIG_CHECKPOINT_RESTORE is not set -# CONFIG_SCHED_AUTOGROUP is not set -CONFIG_RELAY=y -CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" -CONFIG_RD_GZIP=y -CONFIG_RD_BZIP2=y -CONFIG_RD_LZMA=y -CONFIG_RD_XZ=y -CONFIG_RD_LZO=y -CONFIG_RD_LZ4=y -CONFIG_RD_ZSTD=y -# CONFIG_BOOT_CONFIG is not set -CONFIG_INITRAMFS_PRESERVE_MTIME=y -CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y -# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set -CONFIG_LD_ORPHAN_WARN=y -CONFIG_LD_ORPHAN_WARN_LEVEL="error" -CONFIG_SYSCTL=y -CONFIG_HAVE_UID16=y -CONFIG_SYSCTL_EXCEPTION_TRACE=y -CONFIG_SYSFS_SYSCALL=y -CONFIG_HAVE_PCSPKR_PLATFORM=y -# CONFIG_EXPERT is not set -CONFIG_UID16=y -CONFIG_MULTIUSER=y -CONFIG_SGETMASK_SYSCALL=y -CONFIG_FHANDLE=y -CONFIG_POSIX_TIMERS=y -CONFIG_PRINTK=y -CONFIG_BUG=y -CONFIG_ELF_CORE=y -CONFIG_PCSPKR_PLATFORM=y -CONFIG_FUTEX=y -CONFIG_FUTEX_PI=y -CONFIG_EPOLL=y -CONFIG_SIGNALFD=y -CONFIG_TIMERFD=y -CONFIG_EVENTFD=y -CONFIG_SHMEM=y -CONFIG_AIO=y -CONFIG_IO_URING=y -CONFIG_ADVISE_SYSCALLS=y -CONFIG_MEMBARRIER=y -CONFIG_KCMP=y -CONFIG_RSEQ=y -CONFIG_CACHESTAT_SYSCALL=y -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_SELFTEST is not set -CONFIG_KALLSYMS_ALL=y -CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y -CONFIG_ARCH_SUPPORTS_MSEAL_SYSTEM_MAPPINGS=y -CONFIG_HAVE_PERF_EVENTS=y - -# -# Kernel Performance Events And Counters -# -CONFIG_PERF_EVENTS=y -# CONFIG_DEBUG_PERF_USE_VMALLOC is not set -# end of Kernel Performance Events And Counters - -CONFIG_SYSTEM_DATA_VERIFICATION=y -CONFIG_PROFILING=y -CONFIG_TRACEPOINTS=y - -# -# Kexec and crash features -# -CONFIG_CRASH_RESERVE=y -CONFIG_VMCORE_INFO=y -CONFIG_KEXEC_CORE=y -CONFIG_KEXEC=y -# CONFIG_KEXEC_FILE is not set -# CONFIG_KEXEC_JUMP is not set -CONFIG_CRASH_DUMP=y -CONFIG_CRASH_HOTPLUG=y -CONFIG_CRASH_MAX_MEMORY_RANGES=8192 -# end of Kexec and crash features -# end of General setup - -CONFIG_64BIT=y -CONFIG_X86_64=y -CONFIG_X86=y -CONFIG_INSTRUCTION_DECODER=y -CONFIG_OUTPUT_FORMAT="elf64-x86-64" -CONFIG_LOCKDEP_SUPPORT=y -CONFIG_STACKTRACE_SUPPORT=y -CONFIG_MMU=y -CONFIG_ARCH_MMAP_RND_BITS_MIN=28 -CONFIG_ARCH_MMAP_RND_BITS_MAX=32 -CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 -CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 -CONFIG_GENERIC_ISA_DMA=y -CONFIG_GENERIC_BUG=y -CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y -CONFIG_ARCH_MAY_HAVE_PC_FDC=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_ARCH_HAS_CPU_RELAX=y -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_AUDIT_ARCH=y -CONFIG_HAVE_INTEL_TXT=y -CONFIG_X86_64_SMP=y -CONFIG_ARCH_SUPPORTS_UPROBES=y -CONFIG_FIX_EARLYCON_MEM=y -CONFIG_PGTABLE_LEVELS=5 - -# -# Processor type and features -# -CONFIG_SMP=y -# CONFIG_X86_X2APIC is not set -CONFIG_X86_MPPARSE=y -# CONFIG_X86_CPU_RESCTRL is not set -# CONFIG_X86_FRED is not set -# CONFIG_X86_EXTENDED_PLATFORM is not set -# CONFIG_X86_INTEL_LPSS is not set -# CONFIG_X86_AMD_PLATFORM_DEVICE is not set -CONFIG_IOSF_MBI=y -# CONFIG_IOSF_MBI_DEBUG is not set -CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y -CONFIG_SCHED_OMIT_FRAME_POINTER=y -CONFIG_HYPERVISOR_GUEST=y -CONFIG_PARAVIRT=y -# CONFIG_PARAVIRT_DEBUG is not set -# CONFIG_PARAVIRT_SPINLOCKS is not set -CONFIG_X86_HV_CALLBACK_VECTOR=y -# CONFIG_XEN is not set -CONFIG_KVM_GUEST=y -CONFIG_ARCH_CPUIDLE_HALTPOLL=y -# CONFIG_PVH is not set -# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set -CONFIG_PARAVIRT_CLOCK=y -# CONFIG_JAILHOUSE_GUEST is not set -# CONFIG_ACRN_GUEST is not set -CONFIG_X86_INTERNODE_CACHE_SHIFT=6 -CONFIG_X86_L1_CACHE_SHIFT=6 -CONFIG_X86_TSC=y -CONFIG_X86_HAVE_PAE=y -CONFIG_X86_CX8=y -CONFIG_X86_CMOV=y -CONFIG_X86_MINIMUM_CPU_FAMILY=64 -CONFIG_X86_DEBUGCTLMSR=y -CONFIG_IA32_FEAT_CTL=y -CONFIG_X86_VMX_FEATURE_NAMES=y -CONFIG_BROADCAST_TLB_FLUSH=y -CONFIG_CPU_SUP_INTEL=y -CONFIG_CPU_SUP_AMD=y -CONFIG_CPU_SUP_HYGON=y -CONFIG_CPU_SUP_CENTAUR=y -CONFIG_CPU_SUP_ZHAOXIN=y -CONFIG_HPET_TIMER=y -CONFIG_HPET_EMULATE_RTC=y -CONFIG_DMI=y -# CONFIG_GART_IOMMU is not set -# CONFIG_MAXSMP is not set -CONFIG_NR_CPUS_RANGE_BEGIN=2 -CONFIG_NR_CPUS_RANGE_END=512 -CONFIG_NR_CPUS_DEFAULT=64 -CONFIG_NR_CPUS=64 -CONFIG_SCHED_CLUSTER=y -CONFIG_SCHED_SMT=y -CONFIG_SCHED_MC=y -CONFIG_SCHED_MC_PRIO=y -CONFIG_X86_LOCAL_APIC=y -CONFIG_ACPI_MADT_WAKEUP=y -CONFIG_X86_IO_APIC=y -CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y -CONFIG_X86_MCE=y -# CONFIG_X86_MCELOG_LEGACY is not set -CONFIG_X86_MCE_INTEL=y -CONFIG_X86_MCE_AMD=y -CONFIG_X86_MCE_THRESHOLD=y -# CONFIG_X86_MCE_INJECT is not set - -# -# Performance monitoring -# -CONFIG_PERF_EVENTS_INTEL_UNCORE=y -CONFIG_PERF_EVENTS_INTEL_RAPL=y -CONFIG_PERF_EVENTS_INTEL_CSTATE=y -# CONFIG_PERF_EVENTS_AMD_POWER is not set -CONFIG_PERF_EVENTS_AMD_UNCORE=y -# CONFIG_PERF_EVENTS_AMD_BRS is not set -# end of Performance monitoring - -CONFIG_X86_16BIT=y -CONFIG_X86_ESPFIX64=y -CONFIG_X86_VSYSCALL_EMULATION=y -CONFIG_X86_IOPL_IOPERM=y -CONFIG_MICROCODE=y -# CONFIG_MICROCODE_LATE_LOADING is not set -CONFIG_X86_MSR=y -CONFIG_X86_CPUID=y -CONFIG_X86_5LEVEL=y -CONFIG_X86_DIRECT_GBPAGES=y -# CONFIG_X86_CPA_STATISTICS is not set -# CONFIG_AMD_MEM_ENCRYPT is not set -CONFIG_NUMA=y -CONFIG_AMD_NUMA=y -CONFIG_X86_64_ACPI_NUMA=y -CONFIG_NODES_SHIFT=6 -CONFIG_ARCH_SPARSEMEM_ENABLE=y -CONFIG_ARCH_SPARSEMEM_DEFAULT=y -CONFIG_ARCH_PROC_KCORE_TEXT=y -CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 -# CONFIG_X86_PMEM_LEGACY is not set -CONFIG_X86_CHECK_BIOS_CORRUPTION=y -CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y -CONFIG_MTRR=y -# CONFIG_MTRR_SANITIZER is not set -CONFIG_X86_PAT=y -CONFIG_X86_UMIP=y -CONFIG_CC_HAS_IBT=y -CONFIG_X86_CET=y -CONFIG_X86_KERNEL_IBT=y -CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y -CONFIG_ARCH_PKEY_BITS=4 -CONFIG_X86_INTEL_TSX_MODE_OFF=y -# CONFIG_X86_INTEL_TSX_MODE_ON is not set -# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set -# CONFIG_X86_USER_SHADOW_STACK is not set -CONFIG_EFI=y -CONFIG_EFI_STUB=y -CONFIG_EFI_HANDOVER_PROTOCOL=y -CONFIG_EFI_MIXED=y -CONFIG_EFI_RUNTIME_MAP=y -# CONFIG_HZ_100 is not set -# CONFIG_HZ_250 is not set -# CONFIG_HZ_300 is not set -CONFIG_HZ_1000=y -CONFIG_HZ=1000 -CONFIG_SCHED_HRTICK=y -CONFIG_ARCH_SUPPORTS_KEXEC=y -CONFIG_ARCH_SUPPORTS_KEXEC_FILE=y -CONFIG_ARCH_SUPPORTS_KEXEC_PURGATORY=y -CONFIG_ARCH_SUPPORTS_KEXEC_SIG=y -CONFIG_ARCH_SUPPORTS_KEXEC_SIG_FORCE=y -CONFIG_ARCH_SUPPORTS_KEXEC_BZIMAGE_VERIFY_SIG=y -CONFIG_ARCH_SUPPORTS_KEXEC_JUMP=y -CONFIG_ARCH_SUPPORTS_CRASH_DUMP=y -CONFIG_ARCH_DEFAULT_CRASH_DUMP=y -CONFIG_ARCH_SUPPORTS_CRASH_HOTPLUG=y -CONFIG_ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION=y -CONFIG_PHYSICAL_START=0x1000000 -CONFIG_RELOCATABLE=y -CONFIG_RANDOMIZE_BASE=y -CONFIG_X86_NEED_RELOCS=y -CONFIG_PHYSICAL_ALIGN=0x200000 -CONFIG_DYNAMIC_MEMORY_LAYOUT=y -CONFIG_RANDOMIZE_MEMORY=y -CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0x0 -CONFIG_HOTPLUG_CPU=y -# CONFIG_COMPAT_VDSO is not set -CONFIG_LEGACY_VSYSCALL_XONLY=y -# CONFIG_LEGACY_VSYSCALL_NONE is not set -# CONFIG_CMDLINE_BOOL is not set -CONFIG_MODIFY_LDT_SYSCALL=y -# CONFIG_STRICT_SIGALTSTACK_SIZE is not set -CONFIG_HAVE_LIVEPATCH=y -CONFIG_X86_BUS_LOCK_DETECT=y -# end of Processor type and features - -CONFIG_CC_HAS_NAMED_AS_FIXED_SANITIZERS=y -CONFIG_CC_HAS_SLS=y -CONFIG_CC_HAS_RETURN_THUNK=y -CONFIG_CC_HAS_ENTRY_PADDING=y -CONFIG_FUNCTION_PADDING_CFI=11 -CONFIG_FUNCTION_PADDING_BYTES=16 -CONFIG_CALL_PADDING=y -CONFIG_HAVE_CALL_THUNKS=y -CONFIG_CALL_THUNKS=y -CONFIG_PREFIX_SYMBOLS=y -CONFIG_CPU_MITIGATIONS=y -CONFIG_MITIGATION_PAGE_TABLE_ISOLATION=y -CONFIG_MITIGATION_RETPOLINE=y -CONFIG_MITIGATION_RETHUNK=y -CONFIG_MITIGATION_UNRET_ENTRY=y -CONFIG_MITIGATION_CALL_DEPTH_TRACKING=y -# CONFIG_CALL_THUNKS_DEBUG is not set -CONFIG_MITIGATION_IBPB_ENTRY=y -CONFIG_MITIGATION_IBRS_ENTRY=y -CONFIG_MITIGATION_SRSO=y -# CONFIG_MITIGATION_SLS is not set -CONFIG_MITIGATION_GDS=y -CONFIG_MITIGATION_RFDS=y -CONFIG_MITIGATION_SPECTRE_BHI=y -CONFIG_MITIGATION_MDS=y -CONFIG_MITIGATION_TAA=y -CONFIG_MITIGATION_MMIO_STALE_DATA=y -CONFIG_MITIGATION_L1TF=y -CONFIG_MITIGATION_RETBLEED=y -CONFIG_MITIGATION_SPECTRE_V1=y -CONFIG_MITIGATION_SPECTRE_V2=y -CONFIG_MITIGATION_SRBDS=y -CONFIG_MITIGATION_SSB=y -CONFIG_MITIGATION_ITS=y -CONFIG_ARCH_HAS_ADD_PAGES=y - -# -# Power management and ACPI options -# -CONFIG_ARCH_HIBERNATION_HEADER=y -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y -CONFIG_HIBERNATE_CALLBACKS=y -CONFIG_HIBERNATION=y -CONFIG_HIBERNATION_SNAPSHOT_DEV=y -CONFIG_HIBERNATION_COMP_LZO=y -CONFIG_HIBERNATION_DEF_COMP="lzo" -CONFIG_PM_STD_PARTITION="" -CONFIG_PM_SLEEP=y -CONFIG_PM_SLEEP_SMP=y -# CONFIG_PM_AUTOSLEEP is not set -# CONFIG_PM_USERSPACE_AUTOSLEEP is not set -# CONFIG_PM_WAKELOCKS is not set -CONFIG_PM=y -CONFIG_PM_DEBUG=y -# CONFIG_PM_ADVANCED_DEBUG is not set -# CONFIG_PM_TEST_SUSPEND is not set -CONFIG_PM_SLEEP_DEBUG=y -CONFIG_PM_TRACE=y -CONFIG_PM_TRACE_RTC=y -# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set -# CONFIG_ENERGY_MODEL is not set -CONFIG_ARCH_SUPPORTS_ACPI=y -CONFIG_ACPI=y -CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y -CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y -CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y -CONFIG_ACPI_THERMAL_LIB=y -# CONFIG_ACPI_DEBUGGER is not set -CONFIG_ACPI_SPCR_TABLE=y -# CONFIG_ACPI_FPDT is not set -CONFIG_ACPI_LPIT=y -CONFIG_ACPI_SLEEP=y -CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y -CONFIG_ACPI_EC=y -# CONFIG_ACPI_EC_DEBUGFS is not set -CONFIG_ACPI_AC=y -CONFIG_ACPI_BATTERY=y -CONFIG_ACPI_BUTTON=y -CONFIG_ACPI_VIDEO=y -CONFIG_ACPI_FAN=y -# CONFIG_ACPI_TAD is not set -CONFIG_ACPI_DOCK=y -CONFIG_ACPI_CPU_FREQ_PSS=y -CONFIG_ACPI_PROCESSOR_CSTATE=y -CONFIG_ACPI_PROCESSOR_IDLE=y -CONFIG_ACPI_CPPC_LIB=y -CONFIG_ACPI_PROCESSOR=y -CONFIG_ACPI_HOTPLUG_CPU=y -# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set -CONFIG_ACPI_THERMAL=y -CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y -CONFIG_ACPI_TABLE_UPGRADE=y -# CONFIG_ACPI_DEBUG is not set -# CONFIG_ACPI_PCI_SLOT is not set -CONFIG_ACPI_CONTAINER=y -CONFIG_ACPI_HOTPLUG_IOAPIC=y -# CONFIG_ACPI_SBS is not set -# CONFIG_ACPI_HED is not set -CONFIG_ACPI_BGRT=y -CONFIG_ACPI_NHLT=y -# CONFIG_ACPI_NFIT is not set -CONFIG_ACPI_NUMA=y -# CONFIG_ACPI_HMAT is not set -CONFIG_HAVE_ACPI_APEI=y -CONFIG_HAVE_ACPI_APEI_NMI=y -# CONFIG_ACPI_APEI is not set -# CONFIG_ACPI_DPTF is not set -# CONFIG_ACPI_CONFIGFS is not set -# CONFIG_ACPI_PFRUT is not set -CONFIG_ACPI_PCC=y -# CONFIG_ACPI_FFH is not set -# CONFIG_PMIC_OPREGION is not set -CONFIG_ACPI_PRMT=y -CONFIG_X86_PM_TIMER=y - -# -# CPU Frequency scaling -# -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_GOV_ATTR_SET=y -CONFIG_CPU_FREQ_GOV_COMMON=y -# CONFIG_CPU_FREQ_STAT is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_CPU_FREQ_GOV_ONDEMAND=y -# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set -CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y - -# -# CPU frequency scaling drivers -# -CONFIG_X86_INTEL_PSTATE=y -# CONFIG_X86_PCC_CPUFREQ is not set -CONFIG_X86_AMD_PSTATE=y -CONFIG_X86_AMD_PSTATE_DEFAULT_MODE=3 -# CONFIG_X86_AMD_PSTATE_UT is not set -CONFIG_X86_ACPI_CPUFREQ=y -CONFIG_X86_ACPI_CPUFREQ_CPB=y -# CONFIG_X86_POWERNOW_K8 is not set -# CONFIG_X86_AMD_FREQ_SENSITIVITY is not set -# CONFIG_X86_SPEEDSTEP_CENTRINO is not set -# CONFIG_X86_P4_CLOCKMOD is not set - -# -# shared options -# -CONFIG_CPUFREQ_ARCH_CUR_FREQ=y -# end of CPU Frequency scaling - -# -# CPU Idle -# -CONFIG_CPU_IDLE=y -# CONFIG_CPU_IDLE_GOV_LADDER is not set -CONFIG_CPU_IDLE_GOV_MENU=y -# CONFIG_CPU_IDLE_GOV_TEO is not set -CONFIG_CPU_IDLE_GOV_HALTPOLL=y -CONFIG_HALTPOLL_CPUIDLE=y -# end of CPU Idle - -# CONFIG_INTEL_IDLE is not set -# end of Power management and ACPI options - -# -# Bus options (PCI etc.) -# -CONFIG_PCI_DIRECT=y -CONFIG_PCI_MMCONFIG=y -CONFIG_MMCONF_FAM10H=y -CONFIG_ISA_DMA_API=y -CONFIG_AMD_NB=y -CONFIG_AMD_NODE=y -# end of Bus options (PCI etc.) - -# -# Binary Emulations -# -CONFIG_IA32_EMULATION=y -# CONFIG_IA32_EMULATION_DEFAULT_DISABLED is not set -CONFIG_COMPAT_32=y -CONFIG_COMPAT=y -CONFIG_COMPAT_FOR_U64_ALIGNMENT=y -# end of Binary Emulations - -CONFIG_VIRTUALIZATION=y -# CONFIG_KVM is not set -CONFIG_X86_REQUIRED_FEATURE_ALWAYS=y -CONFIG_X86_REQUIRED_FEATURE_NOPL=y -CONFIG_X86_REQUIRED_FEATURE_CX8=y -CONFIG_X86_REQUIRED_FEATURE_CMOV=y -CONFIG_X86_REQUIRED_FEATURE_CPUID=y -CONFIG_X86_REQUIRED_FEATURE_FPU=y -CONFIG_X86_REQUIRED_FEATURE_PAE=y -CONFIG_X86_REQUIRED_FEATURE_PSE=y -CONFIG_X86_REQUIRED_FEATURE_PGE=y -CONFIG_X86_REQUIRED_FEATURE_MSR=y -CONFIG_X86_REQUIRED_FEATURE_FXSR=y -CONFIG_X86_REQUIRED_FEATURE_XMM=y -CONFIG_X86_REQUIRED_FEATURE_XMM2=y -CONFIG_X86_REQUIRED_FEATURE_LM=y -CONFIG_X86_DISABLED_FEATURE_VME=y -CONFIG_X86_DISABLED_FEATURE_K6_MTRR=y -CONFIG_X86_DISABLED_FEATURE_CYRIX_ARR=y -CONFIG_X86_DISABLED_FEATURE_CENTAUR_MCR=y -CONFIG_X86_DISABLED_FEATURE_LAM=y -CONFIG_X86_DISABLED_FEATURE_ENQCMD=y -CONFIG_X86_DISABLED_FEATURE_SGX=y -CONFIG_X86_DISABLED_FEATURE_XENPV=y -CONFIG_X86_DISABLED_FEATURE_TDX_GUEST=y -CONFIG_X86_DISABLED_FEATURE_USER_SHSTK=y -CONFIG_X86_DISABLED_FEATURE_FRED=y -CONFIG_X86_DISABLED_FEATURE_SEV_SNP=y -CONFIG_AS_AVX512=y -CONFIG_AS_SHA1_NI=y -CONFIG_AS_SHA256_NI=y -CONFIG_AS_TPAUSE=y -CONFIG_AS_GFNI=y -CONFIG_AS_VAES=y -CONFIG_AS_VPCLMULQDQ=y -CONFIG_AS_WRUSS=y -CONFIG_ARCH_CONFIGURES_CPU_MITIGATIONS=y - -# -# General architecture-dependent options -# -CONFIG_HOTPLUG_SMT=y -CONFIG_HOTPLUG_CORE_SYNC=y -CONFIG_HOTPLUG_CORE_SYNC_DEAD=y -CONFIG_HOTPLUG_CORE_SYNC_FULL=y -CONFIG_HOTPLUG_SPLIT_STARTUP=y -CONFIG_HOTPLUG_PARALLEL=y -CONFIG_GENERIC_ENTRY=y -CONFIG_KPROBES=y -CONFIG_JUMP_LABEL=y -# CONFIG_STATIC_KEYS_SELFTEST is not set -# CONFIG_STATIC_CALL_SELFTEST is not set -CONFIG_OPTPROBES=y -CONFIG_UPROBES=y -CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y -CONFIG_ARCH_USE_BUILTIN_BSWAP=y -CONFIG_KRETPROBES=y -CONFIG_KRETPROBE_ON_RETHOOK=y -CONFIG_HAVE_IOREMAP_PROT=y -CONFIG_HAVE_KPROBES=y -CONFIG_HAVE_KRETPROBES=y -CONFIG_HAVE_OPTPROBES=y -CONFIG_HAVE_KPROBES_ON_FTRACE=y -CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y -CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y -CONFIG_HAVE_NMI=y -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y -CONFIG_HAVE_ARCH_TRACEHOOK=y -CONFIG_HAVE_DMA_CONTIGUOUS=y -CONFIG_GENERIC_SMP_IDLE_THREAD=y -CONFIG_ARCH_HAS_FORTIFY_SOURCE=y -CONFIG_ARCH_HAS_SET_MEMORY=y -CONFIG_ARCH_HAS_SET_DIRECT_MAP=y -CONFIG_ARCH_HAS_CPU_FINALIZE_INIT=y -CONFIG_ARCH_HAS_CPU_PASID=y -CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y -CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y -CONFIG_ARCH_WANTS_NO_INSTR=y -CONFIG_HAVE_ASM_MODVERSIONS=y -CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y -CONFIG_HAVE_RSEQ=y -CONFIG_HAVE_RUST=y -CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y -CONFIG_HAVE_HW_BREAKPOINT=y -CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y -CONFIG_HAVE_USER_RETURN_NOTIFIER=y -CONFIG_HAVE_PERF_EVENTS_NMI=y -CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y -CONFIG_HAVE_PERF_REGS=y -CONFIG_HAVE_PERF_USER_STACK_DUMP=y -CONFIG_HAVE_ARCH_JUMP_LABEL=y -CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y -CONFIG_MMU_GATHER_TABLE_FREE=y -CONFIG_MMU_GATHER_RCU_TABLE_FREE=y -CONFIG_MMU_GATHER_MERGE_VMAS=y -CONFIG_MMU_LAZY_TLB_REFCOUNT=y -CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y -CONFIG_ARCH_HAVE_EXTRA_ELF_NOTES=y -CONFIG_ARCH_HAS_NMI_SAFE_THIS_CPU_OPS=y -CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y -CONFIG_HAVE_CMPXCHG_LOCAL=y -CONFIG_HAVE_CMPXCHG_DOUBLE=y -CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y -CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y -CONFIG_HAVE_ARCH_SECCOMP=y -CONFIG_HAVE_ARCH_SECCOMP_FILTER=y -CONFIG_SECCOMP=y -CONFIG_SECCOMP_FILTER=y -# CONFIG_SECCOMP_CACHE_DEBUG is not set -CONFIG_HAVE_ARCH_STACKLEAK=y -CONFIG_HAVE_STACKPROTECTOR=y -CONFIG_STACKPROTECTOR=y -CONFIG_STACKPROTECTOR_STRONG=y -CONFIG_ARCH_SUPPORTS_LTO_CLANG=y -CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y -CONFIG_HAS_LTO_CLANG=y -CONFIG_LTO_NONE=y -# CONFIG_LTO_CLANG_FULL is not set -# CONFIG_LTO_CLANG_THIN is not set -CONFIG_ARCH_SUPPORTS_AUTOFDO_CLANG=y -# CONFIG_AUTOFDO_CLANG is not set -CONFIG_ARCH_SUPPORTS_PROPELLER_CLANG=y -# CONFIG_PROPELLER_CLANG is not set -CONFIG_ARCH_SUPPORTS_CFI_CLANG=y -# CONFIG_CFI_CLANG is not set -CONFIG_HAVE_CFI_ICALL_NORMALIZE_INTEGERS_CLANG=y -CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y -CONFIG_HAVE_CONTEXT_TRACKING_USER=y -CONFIG_HAVE_CONTEXT_TRACKING_USER_OFFSTACK=y -CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y -CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y -CONFIG_HAVE_MOVE_PUD=y -CONFIG_HAVE_MOVE_PMD=y -CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y -CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y -CONFIG_HAVE_ARCH_HUGE_VMAP=y -CONFIG_HAVE_ARCH_HUGE_VMALLOC=y -CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y -CONFIG_HAVE_ARCH_SOFT_DIRTY=y -CONFIG_HAVE_MOD_ARCH_SPECIFIC=y -CONFIG_MODULES_USE_ELF_RELA=y -CONFIG_ARCH_HAS_EXECMEM_ROX=y -CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y -CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y -CONFIG_SOFTIRQ_ON_OWN_STACK=y -CONFIG_ARCH_HAS_ELF_RANDOMIZE=y -CONFIG_HAVE_ARCH_MMAP_RND_BITS=y -CONFIG_HAVE_EXIT_THREAD=y -CONFIG_ARCH_MMAP_RND_BITS=28 -CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y -CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8 -CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y -CONFIG_HAVE_PAGE_SIZE_4KB=y -CONFIG_PAGE_SIZE_4KB=y -CONFIG_PAGE_SIZE_LESS_THAN_64KB=y -CONFIG_PAGE_SIZE_LESS_THAN_256KB=y -CONFIG_PAGE_SHIFT=12 -CONFIG_HAVE_OBJTOOL=y -CONFIG_HAVE_JUMP_LABEL_HACK=y -CONFIG_HAVE_NOINSTR_HACK=y -CONFIG_HAVE_NOINSTR_VALIDATION=y -CONFIG_HAVE_UACCESS_VALIDATION=y -CONFIG_HAVE_STACK_VALIDATION=y -CONFIG_HAVE_RELIABLE_STACKTRACE=y -CONFIG_OLD_SIGSUSPEND3=y -CONFIG_COMPAT_OLD_SIGACTION=y -CONFIG_COMPAT_32BIT_TIME=y -CONFIG_ARCH_SUPPORTS_RT=y -CONFIG_HAVE_ARCH_VMAP_STACK=y -CONFIG_VMAP_STACK=y -CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y -CONFIG_RANDOMIZE_KSTACK_OFFSET=y -# CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT is not set -CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y -CONFIG_STRICT_KERNEL_RWX=y -CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y -CONFIG_STRICT_MODULE_RWX=y -CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y -CONFIG_ARCH_USE_MEMREMAP_PROT=y -# CONFIG_LOCK_EVENT_COUNTS is not set -CONFIG_ARCH_HAS_MEM_ENCRYPT=y -CONFIG_HAVE_STATIC_CALL=y -CONFIG_HAVE_STATIC_CALL_INLINE=y -CONFIG_HAVE_PREEMPT_DYNAMIC=y -CONFIG_HAVE_PREEMPT_DYNAMIC_CALL=y -CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y -CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y -CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y -CONFIG_ARCH_HAS_ELFCORE_COMPAT=y -CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y -CONFIG_DYNAMIC_SIGFRAME=y -CONFIG_ARCH_HAS_HW_PTE_YOUNG=y -CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG=y -CONFIG_ARCH_HAS_KERNEL_FPU_SUPPORT=y -CONFIG_ARCH_VMLINUX_NEEDS_RELOCS=y - -# -# GCOV-based kernel profiling -# -# CONFIG_GCOV_KERNEL is not set -CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y -# end of GCOV-based kernel profiling - -CONFIG_HAVE_GCC_PLUGINS=y -CONFIG_FUNCTION_ALIGNMENT_4B=y -CONFIG_FUNCTION_ALIGNMENT_16B=y -CONFIG_FUNCTION_ALIGNMENT=16 -CONFIG_CC_HAS_SANE_FUNCTION_ALIGNMENT=y -# end of General architecture-dependent options - -CONFIG_RT_MUTEXES=y -CONFIG_MODULES=y -# CONFIG_MODULE_DEBUG is not set -# CONFIG_MODULE_FORCE_LOAD is not set -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_MODULE_UNLOAD_TAINT_TRACKING is not set -# CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -# CONFIG_MODULE_SIG is not set -# CONFIG_MODULE_COMPRESS is not set -# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set -CONFIG_MODPROBE_PATH="/sbin/modprobe" -# CONFIG_TRIM_UNUSED_KSYMS is not set -CONFIG_MODULES_TREE_LOOKUP=y -CONFIG_BLOCK=y -CONFIG_BLOCK_LEGACY_AUTOLOAD=y -CONFIG_BLK_RQ_ALLOC_TIME=y -CONFIG_BLK_DEV_BSG_COMMON=y -# CONFIG_BLK_DEV_BSGLIB is not set -# CONFIG_BLK_DEV_INTEGRITY is not set -CONFIG_BLK_DEV_WRITE_MOUNTED=y -# CONFIG_BLK_DEV_ZONED is not set -# CONFIG_BLK_DEV_THROTTLING is not set -# CONFIG_BLK_WBT is not set -CONFIG_BLK_CGROUP_IOLATENCY=y -CONFIG_BLK_CGROUP_IOCOST=y -CONFIG_BLK_CGROUP_IOPRIO=y -CONFIG_BLK_DEBUG_FS=y -# CONFIG_BLK_SED_OPAL is not set -# CONFIG_BLK_INLINE_ENCRYPTION is not set - -# -# Partition Types -# -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -# CONFIG_AIX_PARTITION is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -# CONFIG_MAC_PARTITION is not set -CONFIG_MSDOS_PARTITION=y -# CONFIG_BSD_DISKLABEL is not set -# CONFIG_MINIX_SUBPARTITION is not set -# CONFIG_SOLARIS_X86_PARTITION is not set -# CONFIG_UNIXWARE_DISKLABEL is not set -# CONFIG_LDM_PARTITION is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_KARMA_PARTITION is not set -CONFIG_EFI_PARTITION=y -# CONFIG_SYSV68_PARTITION is not set -# CONFIG_CMDLINE_PARTITION is not set -# end of Partition Types - -CONFIG_BLK_MQ_PCI=y -CONFIG_BLK_MQ_VIRTIO=y -CONFIG_BLK_PM=y -CONFIG_BLOCK_HOLDER_DEPRECATED=y -CONFIG_BLK_MQ_STACKING=y - -# -# IO Schedulers -# -CONFIG_MQ_IOSCHED_DEADLINE=y -CONFIG_MQ_IOSCHED_KYBER=y -# CONFIG_IOSCHED_BFQ is not set -# end of IO Schedulers - -CONFIG_PADATA=y -CONFIG_ASN1=y -CONFIG_UNINLINE_SPIN_UNLOCK=y -CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y -CONFIG_MUTEX_SPIN_ON_OWNER=y -CONFIG_RWSEM_SPIN_ON_OWNER=y -CONFIG_LOCK_SPIN_ON_OWNER=y -CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y -CONFIG_QUEUED_SPINLOCKS=y -CONFIG_ARCH_USE_QUEUED_RWLOCKS=y -CONFIG_QUEUED_RWLOCKS=y -CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y -CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y -CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y -CONFIG_FREEZER=y - -# -# Executable file formats -# -CONFIG_BINFMT_ELF=y -CONFIG_COMPAT_BINFMT_ELF=y -CONFIG_ELFCORE=y -CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y -CONFIG_BINFMT_SCRIPT=y -CONFIG_BINFMT_MISC=y -CONFIG_COREDUMP=y -# end of Executable file formats - -# -# Memory Management options -# -CONFIG_SWAP=y -# CONFIG_ZSWAP is not set - -# -# Slab allocator options -# -CONFIG_SLUB=y -CONFIG_KVFREE_RCU_BATCHED=y -CONFIG_SLAB_MERGE_DEFAULT=y -# CONFIG_SLAB_FREELIST_RANDOM is not set -# CONFIG_SLAB_FREELIST_HARDENED is not set -# CONFIG_SLAB_BUCKETS is not set -# CONFIG_SLUB_STATS is not set -CONFIG_SLUB_CPU_PARTIAL=y -# CONFIG_RANDOM_KMALLOC_CACHES is not set -# end of Slab allocator options - -# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set -# CONFIG_COMPAT_BRK is not set -CONFIG_SPARSEMEM=y -CONFIG_SPARSEMEM_EXTREME=y -CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y -CONFIG_SPARSEMEM_VMEMMAP=y -CONFIG_SPARSEMEM_VMEMMAP_PREINIT=y -CONFIG_ARCH_WANT_OPTIMIZE_DAX_VMEMMAP=y -CONFIG_ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP=y -CONFIG_ARCH_WANT_HUGETLB_VMEMMAP_PREINIT=y -CONFIG_HAVE_GUP_FAST=y -CONFIG_EXCLUSIVE_SYSTEM_RAM=y -CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y -# CONFIG_MEMORY_HOTPLUG is not set -CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y -CONFIG_SPLIT_PTE_PTLOCKS=y -CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y -CONFIG_SPLIT_PMD_PTLOCKS=y -CONFIG_COMPACTION=y -CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1 -# CONFIG_PAGE_REPORTING is not set -CONFIG_MIGRATION=y -CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y -CONFIG_PCP_BATCH_SCALE_MAX=5 -CONFIG_PHYS_ADDR_T_64BIT=y -CONFIG_MMU_NOTIFIER=y -# CONFIG_KSM is not set -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y -# CONFIG_MEMORY_FAILURE is not set -CONFIG_ARCH_WANT_GENERAL_HUGETLB=y -CONFIG_ARCH_WANTS_THP_SWAP=y -# CONFIG_TRANSPARENT_HUGEPAGE is not set -CONFIG_PAGE_MAPCOUNT=y -CONFIG_PGTABLE_HAS_HUGE_LEAVES=y -CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y -CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y -CONFIG_USE_PERCPU_NUMA_NODE_ID=y -CONFIG_HAVE_SETUP_PER_CPU_AREA=y -# CONFIG_CMA is not set -CONFIG_GENERIC_EARLY_IOREMAP=y -# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set -# CONFIG_IDLE_PAGE_TRACKING is not set -CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y -CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y -CONFIG_ARCH_HAS_PTE_DEVMAP=y -CONFIG_ZONE_DMA=y -CONFIG_ZONE_DMA32=y -CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y -CONFIG_ARCH_HAS_PKEYS=y -CONFIG_ARCH_USES_PG_ARCH_2=y -CONFIG_VM_EVENT_COUNTERS=y -# CONFIG_PERCPU_STATS is not set -# CONFIG_GUP_TEST is not set -# CONFIG_DMAPOOL_TEST is not set -CONFIG_ARCH_HAS_PTE_SPECIAL=y -CONFIG_MEMFD_CREATE=y -CONFIG_SECRETMEM=y -# CONFIG_ANON_VMA_NAME is not set -# CONFIG_USERFAULTFD is not set -# CONFIG_LRU_GEN is not set -CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y -CONFIG_PER_VMA_LOCK=y -CONFIG_LOCK_MM_AND_FIND_VMA=y -CONFIG_IOMMU_MM_DATA=y -CONFIG_EXECMEM=y -CONFIG_NUMA_MEMBLKS=y -# CONFIG_NUMA_EMU is not set -CONFIG_ARCH_SUPPORTS_PT_RECLAIM=y -CONFIG_PT_RECLAIM=y - -# -# Data Access Monitoring -# -# CONFIG_DAMON is not set -# end of Data Access Monitoring -# end of Memory Management options - -CONFIG_NET=y -CONFIG_NET_INGRESS=y -CONFIG_NET_EGRESS=y -CONFIG_NET_XGRESS=y -CONFIG_SKB_EXTENSIONS=y - -# -# Networking options -# -CONFIG_PACKET=y -# CONFIG_PACKET_DIAG is not set -CONFIG_UNIX=y -CONFIG_AF_UNIX_OOB=y -# CONFIG_UNIX_DIAG is not set -# CONFIG_TLS is not set -CONFIG_XFRM=y -CONFIG_XFRM_ALGO=y -CONFIG_XFRM_USER=y -# CONFIG_XFRM_USER_COMPAT is not set -# CONFIG_XFRM_INTERFACE is not set -# CONFIG_XFRM_SUB_POLICY is not set -# CONFIG_XFRM_MIGRATE is not set -# CONFIG_XFRM_STATISTICS is not set -CONFIG_XFRM_AH=y -CONFIG_XFRM_ESP=y -# CONFIG_NET_KEY is not set -# CONFIG_XFRM_IPTFS is not set -CONFIG_NET_HANDSHAKE=y -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -# CONFIG_IP_FIB_TRIE_STATS is not set -CONFIG_IP_MULTIPLE_TABLES=y -CONFIG_IP_ROUTE_MULTIPATH=y -CONFIG_IP_ROUTE_VERBOSE=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_PNP_BOOTP=y -CONFIG_IP_PNP_RARP=y -# CONFIG_NET_IPIP is not set -# CONFIG_NET_IPGRE_DEMUX is not set -CONFIG_NET_IP_TUNNEL=y -CONFIG_IP_MROUTE_COMMON=y -CONFIG_IP_MROUTE=y -# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set -CONFIG_IP_PIMSM_V1=y -CONFIG_IP_PIMSM_V2=y -CONFIG_SYN_COOKIES=y -# CONFIG_NET_IPVTI is not set -# CONFIG_NET_FOU is not set -# CONFIG_NET_FOU_IP_TUNNELS is not set -# CONFIG_INET_AH is not set -# CONFIG_INET_ESP is not set -# CONFIG_INET_IPCOMP is not set -CONFIG_INET_TABLE_PERTURB_ORDER=16 -CONFIG_INET_TUNNEL=y -# CONFIG_INET_DIAG is not set -CONFIG_TCP_CONG_ADVANCED=y -# CONFIG_TCP_CONG_BIC is not set -CONFIG_TCP_CONG_CUBIC=y -# CONFIG_TCP_CONG_WESTWOOD is not set -# CONFIG_TCP_CONG_HTCP is not set -# CONFIG_TCP_CONG_HSTCP is not set -# CONFIG_TCP_CONG_HYBLA is not set -# CONFIG_TCP_CONG_VEGAS is not set -# CONFIG_TCP_CONG_NV is not set -# CONFIG_TCP_CONG_SCALABLE is not set -# CONFIG_TCP_CONG_LP is not set -# CONFIG_TCP_CONG_VENO is not set -# CONFIG_TCP_CONG_YEAH is not set -# CONFIG_TCP_CONG_ILLINOIS is not set -# CONFIG_TCP_CONG_DCTCP is not set -# CONFIG_TCP_CONG_CDG is not set -# CONFIG_TCP_CONG_BBR is not set -CONFIG_DEFAULT_CUBIC=y -# CONFIG_DEFAULT_RENO is not set -CONFIG_DEFAULT_TCP_CONG="cubic" -CONFIG_TCP_SIGPOOL=y -# CONFIG_TCP_AO is not set -CONFIG_TCP_MD5SIG=y -CONFIG_IPV6=y -# CONFIG_IPV6_ROUTER_PREF is not set -# CONFIG_IPV6_OPTIMISTIC_DAD is not set -CONFIG_INET6_AH=y -CONFIG_INET6_ESP=y -# CONFIG_INET6_ESP_OFFLOAD is not set -# CONFIG_INET6_ESPINTCP is not set -# CONFIG_INET6_IPCOMP is not set -# CONFIG_IPV6_MIP6 is not set -# CONFIG_IPV6_ILA is not set -# CONFIG_IPV6_VTI is not set -CONFIG_IPV6_SIT=y -# CONFIG_IPV6_SIT_6RD is not set -CONFIG_IPV6_NDISC_NODETYPE=y -# CONFIG_IPV6_TUNNEL is not set -# CONFIG_IPV6_MULTIPLE_TABLES is not set -# CONFIG_IPV6_MROUTE is not set -# CONFIG_IPV6_SEG6_LWTUNNEL is not set -# CONFIG_IPV6_SEG6_HMAC is not set -# CONFIG_IPV6_RPL_LWTUNNEL is not set -# CONFIG_IPV6_IOAM6_LWTUNNEL is not set -CONFIG_NETLABEL=y -# CONFIG_MPTCP is not set -CONFIG_NETWORK_SECMARK=y -CONFIG_NET_PTP_CLASSIFY=y -# CONFIG_NETWORK_PHY_TIMESTAMPING is not set -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_ADVANCED is not set - -# -# Core Netfilter Configuration -# -CONFIG_NETFILTER_INGRESS=y -CONFIG_NETFILTER_EGRESS=y -CONFIG_NETFILTER_SKIP_EGRESS=y -CONFIG_NETFILTER_NETLINK=y -CONFIG_NETFILTER_NETLINK_LOG=y -CONFIG_NF_CONNTRACK=y -CONFIG_NF_LOG_SYSLOG=m -CONFIG_NF_CONNTRACK_SECMARK=y -# CONFIG_NF_CONNTRACK_PROCFS is not set -# CONFIG_NF_CONNTRACK_LABELS is not set -CONFIG_NF_CONNTRACK_FTP=y -CONFIG_NF_CONNTRACK_IRC=y -# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set -CONFIG_NF_CONNTRACK_SIP=y -CONFIG_NF_CT_NETLINK=y -# CONFIG_NETFILTER_NETLINK_GLUE_CT is not set -CONFIG_NF_NAT=y -CONFIG_NF_NAT_FTP=y -CONFIG_NF_NAT_IRC=y -CONFIG_NF_NAT_SIP=y -CONFIG_NF_NAT_MASQUERADE=y -# CONFIG_NF_TABLES is not set -CONFIG_NETFILTER_XTABLES=y -# CONFIG_NETFILTER_XTABLES_COMPAT is not set - -# -# Xtables combined modules -# -CONFIG_NETFILTER_XT_MARK=m - -# -# Xtables targets -# -CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y -CONFIG_NETFILTER_XT_TARGET_LOG=m -CONFIG_NETFILTER_XT_NAT=m -# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set -CONFIG_NETFILTER_XT_TARGET_NFLOG=y -# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set -CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m -CONFIG_NETFILTER_XT_TARGET_SECMARK=y -CONFIG_NETFILTER_XT_TARGET_TCPMSS=y - -# -# Xtables matches -# -CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y -CONFIG_NETFILTER_XT_MATCH_POLICY=y -CONFIG_NETFILTER_XT_MATCH_STATE=y -# end of Core Netfilter Configuration - -# CONFIG_IP_SET is not set -# CONFIG_IP_VS is not set - -# -# IP: Netfilter Configuration -# -CONFIG_NF_DEFRAG_IPV4=y -CONFIG_IP_NF_IPTABLES_LEGACY=y -# CONFIG_NF_SOCKET_IPV4 is not set -# CONFIG_NF_TPROXY_IPV4 is not set -# CONFIG_NF_DUP_IPV4 is not set -CONFIG_NF_LOG_ARP=m -CONFIG_NF_LOG_IPV4=m -CONFIG_NF_REJECT_IPV4=y -CONFIG_IP_NF_IPTABLES=y -CONFIG_IP_NF_FILTER=y -CONFIG_IP_NF_TARGET_REJECT=y -CONFIG_IP_NF_NAT=m -CONFIG_IP_NF_TARGET_MASQUERADE=m -CONFIG_IP_NF_MANGLE=y -# CONFIG_IP_NF_RAW is not set -# CONFIG_IP_NF_ARPTABLES is not set -# CONFIG_IP_NF_ARPFILTER is not set -# end of IP: Netfilter Configuration - -# -# IPv6: Netfilter Configuration -# -CONFIG_IP6_NF_IPTABLES_LEGACY=y -# CONFIG_NF_SOCKET_IPV6 is not set -# CONFIG_NF_TPROXY_IPV6 is not set -# CONFIG_NF_DUP_IPV6 is not set -CONFIG_NF_REJECT_IPV6=y -CONFIG_NF_LOG_IPV6=m -CONFIG_IP6_NF_IPTABLES=y -CONFIG_IP6_NF_MATCH_IPV6HEADER=y -CONFIG_IP6_NF_FILTER=y -CONFIG_IP6_NF_TARGET_REJECT=y -CONFIG_IP6_NF_MANGLE=y -# CONFIG_IP6_NF_RAW is not set -# end of IPv6: Netfilter Configuration - -CONFIG_NF_DEFRAG_IPV6=y -# CONFIG_NF_CONNTRACK_BRIDGE is not set -# CONFIG_IP_DCCP is not set -# CONFIG_IP_SCTP is not set -# CONFIG_RDS is not set -# CONFIG_TIPC is not set -# CONFIG_ATM is not set -# CONFIG_L2TP is not set -# CONFIG_BRIDGE is not set -# CONFIG_NET_DSA is not set -# CONFIG_VLAN_8021Q is not set -# CONFIG_LLC2 is not set -# CONFIG_ATALK is not set -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_PHONET is not set -# CONFIG_6LOWPAN is not set -# CONFIG_IEEE802154 is not set -CONFIG_NET_SCHED=y - -# -# Queueing/Scheduling -# -# CONFIG_NET_SCH_HTB is not set -# CONFIG_NET_SCH_HFSC is not set -# CONFIG_NET_SCH_PRIO is not set -# CONFIG_NET_SCH_MULTIQ is not set -# CONFIG_NET_SCH_RED is not set -# CONFIG_NET_SCH_SFB is not set -# CONFIG_NET_SCH_SFQ is not set -# CONFIG_NET_SCH_TEQL is not set -# CONFIG_NET_SCH_TBF is not set -# CONFIG_NET_SCH_CBS is not set -# CONFIG_NET_SCH_ETF is not set -# CONFIG_NET_SCH_TAPRIO is not set -# CONFIG_NET_SCH_GRED is not set -# CONFIG_NET_SCH_NETEM is not set -# CONFIG_NET_SCH_DRR is not set -# CONFIG_NET_SCH_MQPRIO is not set -# CONFIG_NET_SCH_SKBPRIO is not set -# CONFIG_NET_SCH_CHOKE is not set -# CONFIG_NET_SCH_QFQ is not set -# CONFIG_NET_SCH_CODEL is not set -# CONFIG_NET_SCH_FQ_CODEL is not set -# CONFIG_NET_SCH_CAKE is not set -# CONFIG_NET_SCH_FQ is not set -# CONFIG_NET_SCH_HHF is not set -# CONFIG_NET_SCH_PIE is not set -# CONFIG_NET_SCH_INGRESS is not set -# CONFIG_NET_SCH_PLUG is not set -# CONFIG_NET_SCH_ETS is not set -# CONFIG_NET_SCH_DEFAULT is not set - -# -# Classification -# -CONFIG_NET_CLS=y -# CONFIG_NET_CLS_BASIC is not set -# CONFIG_NET_CLS_ROUTE4 is not set -# CONFIG_NET_CLS_FW is not set -# CONFIG_NET_CLS_U32 is not set -# CONFIG_NET_CLS_FLOW is not set -CONFIG_NET_CLS_CGROUP=y -# CONFIG_NET_CLS_BPF is not set -# CONFIG_NET_CLS_FLOWER is not set -# CONFIG_NET_CLS_MATCHALL is not set -CONFIG_NET_EMATCH=y -CONFIG_NET_EMATCH_STACK=32 -# CONFIG_NET_EMATCH_CMP is not set -# CONFIG_NET_EMATCH_NBYTE is not set -# CONFIG_NET_EMATCH_U32 is not set -# CONFIG_NET_EMATCH_META is not set -# CONFIG_NET_EMATCH_TEXT is not set -# CONFIG_NET_EMATCH_IPT is not set -CONFIG_NET_CLS_ACT=y -# CONFIG_NET_ACT_POLICE is not set -# CONFIG_NET_ACT_GACT is not set -# CONFIG_NET_ACT_MIRRED is not set -# CONFIG_NET_ACT_SAMPLE is not set -# CONFIG_NET_ACT_NAT is not set -# CONFIG_NET_ACT_PEDIT is not set -# CONFIG_NET_ACT_SIMP is not set -# CONFIG_NET_ACT_SKBEDIT is not set -# CONFIG_NET_ACT_CSUM is not set -# CONFIG_NET_ACT_MPLS is not set -# CONFIG_NET_ACT_VLAN is not set -# CONFIG_NET_ACT_BPF is not set -# CONFIG_NET_ACT_SKBMOD is not set -# CONFIG_NET_ACT_IFE is not set -# CONFIG_NET_ACT_TUNNEL_KEY is not set -# CONFIG_NET_ACT_GATE is not set -# CONFIG_NET_TC_SKB_EXT is not set -CONFIG_NET_SCH_FIFO=y -# CONFIG_DCB is not set -CONFIG_DNS_RESOLVER=y -# CONFIG_BATMAN_ADV is not set -# CONFIG_OPENVSWITCH is not set -# CONFIG_VSOCKETS is not set -# CONFIG_NETLINK_DIAG is not set -# CONFIG_MPLS is not set -# CONFIG_NET_NSH is not set -# CONFIG_HSR is not set -# CONFIG_NET_SWITCHDEV is not set -# CONFIG_NET_L3_MASTER_DEV is not set -# CONFIG_QRTR is not set -# CONFIG_NET_NCSI is not set -CONFIG_PCPU_DEV_REFCNT=y -CONFIG_MAX_SKB_FRAGS=17 -CONFIG_RPS=y -CONFIG_RFS_ACCEL=y -CONFIG_SOCK_RX_QUEUE_MAPPING=y -CONFIG_XPS=y -CONFIG_CGROUP_NET_PRIO=y -CONFIG_CGROUP_NET_CLASSID=y -CONFIG_NET_RX_BUSY_POLL=y -CONFIG_BQL=y -CONFIG_NET_FLOW_LIMIT=y - -# -# Network testing -# -# CONFIG_NET_PKTGEN is not set -# CONFIG_NET_DROP_MONITOR is not set -# end of Network testing -# end of Networking options - -# CONFIG_HAMRADIO is not set -# CONFIG_CAN is not set -# CONFIG_BT is not set -# CONFIG_AF_RXRPC is not set -# CONFIG_AF_KCM is not set -# CONFIG_MCTP is not set -CONFIG_FIB_RULES=y -CONFIG_WIRELESS=y -CONFIG_CFG80211=y -# CONFIG_NL80211_TESTMODE is not set -# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set -CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y -CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y -CONFIG_CFG80211_DEFAULT_PS=y -# CONFIG_CFG80211_DEBUGFS is not set -CONFIG_CFG80211_CRDA_SUPPORT=y -# CONFIG_CFG80211_WEXT is not set -CONFIG_MAC80211=y -CONFIG_MAC80211_HAS_RC=y -CONFIG_MAC80211_RC_MINSTREL=y -CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y -CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" -# CONFIG_MAC80211_MESH is not set -CONFIG_MAC80211_LEDS=y -# CONFIG_MAC80211_MESSAGE_TRACING is not set -# CONFIG_MAC80211_DEBUG_MENU is not set -CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 -CONFIG_RFKILL=y -CONFIG_RFKILL_LEDS=y -CONFIG_RFKILL_INPUT=y -CONFIG_NET_9P=y -CONFIG_NET_9P_FD=y -CONFIG_NET_9P_VIRTIO=y -# CONFIG_NET_9P_DEBUG is not set -# CONFIG_CAIF is not set -# CONFIG_CEPH_LIB is not set -# CONFIG_NFC is not set -# CONFIG_PSAMPLE is not set -# CONFIG_NET_IFE is not set -# CONFIG_LWTUNNEL is not set -CONFIG_DST_CACHE=y -CONFIG_GRO_CELLS=y -CONFIG_NET_SELFTESTS=y -CONFIG_FAILOVER=y -CONFIG_ETHTOOL_NETLINK=y - -# -# Device Drivers -# -CONFIG_HAVE_PCI=y -CONFIG_GENERIC_PCI_IOMAP=y -CONFIG_PCI=y -CONFIG_PCI_DOMAINS=y -CONFIG_PCIEPORTBUS=y -# CONFIG_HOTPLUG_PCI_PCIE is not set -# CONFIG_PCIEAER is not set -CONFIG_PCIEASPM=y -CONFIG_PCIEASPM_DEFAULT=y -# CONFIG_PCIEASPM_POWERSAVE is not set -# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set -# CONFIG_PCIEASPM_PERFORMANCE is not set -CONFIG_PCIE_PME=y -# CONFIG_PCIE_PTM is not set -CONFIG_PCI_MSI=y -CONFIG_PCI_QUIRKS=y -# CONFIG_PCI_DEBUG is not set -# CONFIG_PCI_STUB is not set -CONFIG_PCI_ATS=y -# CONFIG_PCI_DOE is not set -CONFIG_PCI_LOCKLESS_CONFIG=y -# CONFIG_PCI_IOV is not set -# CONFIG_PCI_NPEM is not set -CONFIG_PCI_PRI=y -CONFIG_PCI_PASID=y -# CONFIG_PCIE_TPH is not set -CONFIG_PCI_LABEL=y -CONFIG_VGA_ARB=y -CONFIG_VGA_ARB_MAX_GPUS=16 -CONFIG_HOTPLUG_PCI=y -# CONFIG_HOTPLUG_PCI_ACPI is not set -# CONFIG_HOTPLUG_PCI_CPCI is not set -# CONFIG_HOTPLUG_PCI_OCTEONEP is not set -# CONFIG_HOTPLUG_PCI_SHPC is not set - -# -# PCI controller drivers -# -# CONFIG_VMD is not set - -# -# Cadence-based PCIe controllers -# -# end of Cadence-based PCIe controllers - -# -# DesignWare-based PCIe controllers -# -# CONFIG_PCI_MESON is not set -# CONFIG_PCIE_DW_PLAT_HOST is not set -# end of DesignWare-based PCIe controllers - -# -# Mobiveil-based PCIe controllers -# -# end of Mobiveil-based PCIe controllers - -# -# PLDA-based PCIe controllers -# -# end of PLDA-based PCIe controllers -# end of PCI controller drivers - -# -# PCI Endpoint -# -# CONFIG_PCI_ENDPOINT is not set -# end of PCI Endpoint - -# -# PCI switch controller drivers -# -# CONFIG_PCI_SW_SWITCHTEC is not set -# end of PCI switch controller drivers - -CONFIG_PCI_PWRCTL=y -CONFIG_PCI_PWRCTL_SLOT=y -# CONFIG_CXL_BUS is not set -CONFIG_PCCARD=y -CONFIG_PCMCIA=y -CONFIG_PCMCIA_LOAD_CIS=y -CONFIG_CARDBUS=y - -# -# PC-card bridges -# -CONFIG_YENTA=y -CONFIG_YENTA_O2=y -CONFIG_YENTA_RICOH=y -CONFIG_YENTA_TI=y -CONFIG_YENTA_ENE_TUNE=y -CONFIG_YENTA_TOSHIBA=y -# CONFIG_PD6729 is not set -# CONFIG_I82092 is not set -CONFIG_PCCARD_NONSTATIC=y -# CONFIG_RAPIDIO is not set - -# -# Generic Driver Options -# -# CONFIG_UEVENT_HELPER is not set -CONFIG_DEVTMPFS=y -CONFIG_DEVTMPFS_MOUNT=y -# CONFIG_DEVTMPFS_SAFE is not set -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y - -# -# Firmware loader -# -CONFIG_FW_LOADER=y -CONFIG_EXTRA_FIRMWARE="" -# CONFIG_FW_LOADER_USER_HELPER is not set -# CONFIG_FW_LOADER_COMPRESS is not set -CONFIG_FW_CACHE=y -# CONFIG_FW_UPLOAD is not set -# end of Firmware loader - -CONFIG_ALLOW_DEV_COREDUMP=y -# CONFIG_DEBUG_DRIVER is not set -CONFIG_DEBUG_DEVRES=y -# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set -# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set -CONFIG_GENERIC_CPU_DEVICES=y -CONFIG_GENERIC_CPU_AUTOPROBE=y -CONFIG_GENERIC_CPU_VULNERABILITIES=y -CONFIG_REGMAP=y -CONFIG_DMA_SHARED_BUFFER=y -# CONFIG_DMA_FENCE_TRACE is not set -# CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set -# end of Generic Driver Options - -# -# Bus devices -# -# CONFIG_MHI_BUS is not set -# CONFIG_MHI_BUS_EP is not set -# end of Bus devices - -# -# Cache Drivers -# -# end of Cache Drivers - -CONFIG_CONNECTOR=y -CONFIG_PROC_EVENTS=y - -# -# Firmware Drivers -# - -# -# ARM System Control and Management Interface Protocol -# -# end of ARM System Control and Management Interface Protocol - -# CONFIG_EDD is not set -CONFIG_FIRMWARE_MEMMAP=y -CONFIG_DMIID=y -# CONFIG_DMI_SYSFS is not set -CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y -# CONFIG_ISCSI_IBFT is not set -# CONFIG_FW_CFG_SYSFS is not set -# CONFIG_SYSFB_SIMPLEFB is not set -# CONFIG_GOOGLE_FIRMWARE is not set - -# -# EFI (Extensible Firmware Interface) Support -# -CONFIG_EFI_ESRT=y -CONFIG_EFI_DXE_MEM_ATTRIBUTES=y -CONFIG_EFI_RUNTIME_WRAPPERS=y -# CONFIG_EFI_BOOTLOADER_CONTROL is not set -# CONFIG_EFI_CAPSULE_LOADER is not set -# CONFIG_EFI_TEST is not set -# CONFIG_APPLE_PROPERTIES is not set -# CONFIG_RESET_ATTACK_MITIGATION is not set -# CONFIG_EFI_RCI2_TABLE is not set -# CONFIG_EFI_DISABLE_PCI_DMA is not set -CONFIG_EFI_EARLYCON=y -CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y -# CONFIG_EFI_DISABLE_RUNTIME is not set -# CONFIG_EFI_COCO_SECRET is not set -# end of EFI (Extensible Firmware Interface) Support - -# -# Qualcomm firmware drivers -# -# end of Qualcomm firmware drivers - -# -# Tegra firmware driver -# -# end of Tegra firmware driver -# end of Firmware Drivers - -CONFIG_FWCTL=y -# CONFIG_GNSS is not set -# CONFIG_MTD is not set -# CONFIG_OF is not set -CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y -# CONFIG_PARPORT is not set -CONFIG_PNP=y -CONFIG_PNP_DEBUG_MESSAGES=y - -# -# Protocols -# -CONFIG_PNPACPI=y -CONFIG_BLK_DEV=y -# CONFIG_BLK_DEV_NULL_BLK is not set -# CONFIG_BLK_DEV_FD is not set -CONFIG_CDROM=y -# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set -# CONFIG_ZRAM is not set -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 -# CONFIG_BLK_DEV_DRBD is not set -# CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_RAM is not set -# CONFIG_CDROM_PKTCDVD is not set -# CONFIG_ATA_OVER_ETH is not set -CONFIG_VIRTIO_BLK=y -# CONFIG_BLK_DEV_RBD is not set -# CONFIG_BLK_DEV_UBLK is not set - -# -# NVME Support -# -CONFIG_NVME_CORE=y -CONFIG_BLK_DEV_NVME=y -CONFIG_NVME_MULTIPATH=y -# CONFIG_NVME_VERBOSE_ERRORS is not set -CONFIG_NVME_HWMON=y -# CONFIG_NVME_FC is not set -# CONFIG_NVME_TCP is not set -# CONFIG_NVME_HOST_AUTH is not set -# end of NVME Support - -# -# Misc devices -# -# CONFIG_AD525X_DPOT is not set -# CONFIG_DUMMY_IRQ is not set -# CONFIG_IBM_ASM is not set -# CONFIG_PHANTOM is not set -# CONFIG_TIFM_CORE is not set -# CONFIG_ICS932S401 is not set -# CONFIG_ENCLOSURE_SERVICES is not set -# CONFIG_HP_ILO is not set -# CONFIG_APDS9802ALS is not set -# CONFIG_ISL29003 is not set -# CONFIG_ISL29020 is not set -# CONFIG_SENSORS_TSL2550 is not set -# CONFIG_SENSORS_BH1770 is not set -# CONFIG_SENSORS_APDS990X is not set -# CONFIG_HMC6352 is not set -# CONFIG_DS1682 is not set -# CONFIG_SRAM is not set -# CONFIG_DW_XDATA_PCIE is not set -# CONFIG_PCI_ENDPOINT_TEST is not set -# CONFIG_XILINX_SDFEC is not set -# CONFIG_NTSYNC is not set -# CONFIG_NSM is not set -# CONFIG_C2PORT is not set - -# -# EEPROM support -# -# CONFIG_EEPROM_AT24 is not set -# CONFIG_EEPROM_MAX6875 is not set -CONFIG_EEPROM_93CX6=y -# CONFIG_EEPROM_IDT_89HPESX is not set -# CONFIG_EEPROM_EE1004 is not set -# end of EEPROM support - -# CONFIG_CB710_CORE is not set -# CONFIG_SENSORS_LIS3_I2C is not set -# CONFIG_ALTERA_STAPL is not set -CONFIG_INTEL_MEI=y -CONFIG_INTEL_MEI_ME=y -# CONFIG_INTEL_MEI_TXE is not set -# CONFIG_VMWARE_VMCI is not set -# CONFIG_GENWQE is not set -# CONFIG_ECHO is not set -# CONFIG_BCM_VK is not set -# CONFIG_MISC_ALCOR_PCI is not set -# CONFIG_MISC_RTSX_PCI is not set -# CONFIG_MISC_RTSX_USB is not set -# CONFIG_UACCE is not set -# CONFIG_PVPANIC is not set -# CONFIG_KEBA_CP500 is not set -# end of Misc devices - -# -# SCSI device support -# -CONFIG_SCSI_MOD=y -# CONFIG_RAID_ATTRS is not set -CONFIG_SCSI_COMMON=y -CONFIG_SCSI=y -CONFIG_SCSI_DMA=y -CONFIG_SCSI_PROC_FS=y - -# -# SCSI support type (disk, tape, CD-ROM) -# -CONFIG_BLK_DEV_SD=y -# CONFIG_CHR_DEV_ST is not set -CONFIG_BLK_DEV_SR=y -CONFIG_CHR_DEV_SG=y -CONFIG_BLK_DEV_BSG=y -# CONFIG_CHR_DEV_SCH is not set -CONFIG_SCSI_CONSTANTS=y -# CONFIG_SCSI_LOGGING is not set -# CONFIG_SCSI_SCAN_ASYNC is not set - -# -# SCSI Transports -# -CONFIG_SCSI_SPI_ATTRS=y -# CONFIG_SCSI_FC_ATTRS is not set -# CONFIG_SCSI_ISCSI_ATTRS is not set -# CONFIG_SCSI_SAS_ATTRS is not set -# CONFIG_SCSI_SAS_LIBSAS is not set -# CONFIG_SCSI_SRP_ATTRS is not set -# end of SCSI Transports - -CONFIG_SCSI_LOWLEVEL=y -# CONFIG_ISCSI_TCP is not set -# CONFIG_ISCSI_BOOT_SYSFS is not set -# CONFIG_SCSI_CXGB3_ISCSI is not set -# CONFIG_SCSI_CXGB4_ISCSI is not set -# CONFIG_SCSI_BNX2_ISCSI is not set -# CONFIG_BE2ISCSI is not set -# CONFIG_BLK_DEV_3W_XXXX_RAID is not set -# CONFIG_SCSI_HPSA is not set -# CONFIG_SCSI_3W_9XXX is not set -# CONFIG_SCSI_3W_SAS is not set -# CONFIG_SCSI_ACARD is not set -# CONFIG_SCSI_AACRAID is not set -# CONFIG_SCSI_AIC7XXX is not set -# CONFIG_SCSI_AIC79XX is not set -# CONFIG_SCSI_AIC94XX is not set -# CONFIG_SCSI_MVSAS is not set -# CONFIG_SCSI_MVUMI is not set -# CONFIG_SCSI_ADVANSYS is not set -# CONFIG_SCSI_ARCMSR is not set -# CONFIG_SCSI_ESAS2R is not set -# CONFIG_MEGARAID_NEWGEN is not set -# CONFIG_MEGARAID_LEGACY is not set -# CONFIG_MEGARAID_SAS is not set -# CONFIG_SCSI_MPT3SAS is not set -# CONFIG_SCSI_MPT2SAS is not set -# CONFIG_SCSI_MPI3MR is not set -# CONFIG_SCSI_SMARTPQI is not set -# CONFIG_SCSI_HPTIOP is not set -# CONFIG_SCSI_BUSLOGIC is not set -# CONFIG_SCSI_MYRB is not set -# CONFIG_SCSI_MYRS is not set -# CONFIG_VMWARE_PVSCSI is not set -# CONFIG_SCSI_SNIC is not set -# CONFIG_SCSI_DMX3191D is not set -# CONFIG_SCSI_FDOMAIN_PCI is not set -# CONFIG_SCSI_ISCI is not set -# CONFIG_SCSI_IPS is not set -# CONFIG_SCSI_INITIO is not set -# CONFIG_SCSI_INIA100 is not set -# CONFIG_SCSI_STEX is not set -# CONFIG_SCSI_SYM53C8XX_2 is not set -# CONFIG_SCSI_IPR is not set -# CONFIG_SCSI_QLOGIC_1280 is not set -# CONFIG_SCSI_QLA_ISCSI is not set -# CONFIG_SCSI_DC395x is not set -# CONFIG_SCSI_AM53C974 is not set -# CONFIG_SCSI_WD719X is not set -# CONFIG_SCSI_DEBUG is not set -# CONFIG_SCSI_PMCRAID is not set -# CONFIG_SCSI_PM8001 is not set -CONFIG_SCSI_VIRTIO=y -# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set -# CONFIG_SCSI_DH is not set -# end of SCSI device support - -CONFIG_ATA=y -CONFIG_SATA_HOST=y -CONFIG_PATA_TIMINGS=y -CONFIG_ATA_VERBOSE_ERROR=y -CONFIG_ATA_FORCE=y -CONFIG_ATA_ACPI=y -# CONFIG_SATA_ZPODD is not set -CONFIG_SATA_PMP=y - -# -# Controllers with non-SFF native interface -# -CONFIG_SATA_AHCI=y -CONFIG_SATA_MOBILE_LPM_POLICY=3 -# CONFIG_SATA_AHCI_PLATFORM is not set -# CONFIG_AHCI_DWC is not set -# CONFIG_SATA_INIC162X is not set -# CONFIG_SATA_ACARD_AHCI is not set -# CONFIG_SATA_SIL24 is not set -CONFIG_ATA_SFF=y - -# -# SFF controllers with custom DMA interface -# -# CONFIG_PDC_ADMA is not set -# CONFIG_SATA_QSTOR is not set -# CONFIG_SATA_SX4 is not set -CONFIG_ATA_BMDMA=y - -# -# SATA SFF controllers with BMDMA -# -CONFIG_ATA_PIIX=y -# CONFIG_SATA_DWC is not set -# CONFIG_SATA_MV is not set -# CONFIG_SATA_NV is not set -# CONFIG_SATA_PROMISE is not set -# CONFIG_SATA_SIL is not set -# CONFIG_SATA_SIS is not set -# CONFIG_SATA_SVW is not set -# CONFIG_SATA_ULI is not set -# CONFIG_SATA_VIA is not set -# CONFIG_SATA_VITESSE is not set - -# -# PATA SFF controllers with BMDMA -# -# CONFIG_PATA_ALI is not set -CONFIG_PATA_AMD=y -# CONFIG_PATA_ARTOP is not set -# CONFIG_PATA_ATIIXP is not set -# CONFIG_PATA_ATP867X is not set -# CONFIG_PATA_CMD64X is not set -# CONFIG_PATA_CYPRESS is not set -# CONFIG_PATA_EFAR is not set -# CONFIG_PATA_HPT366 is not set -# CONFIG_PATA_HPT37X is not set -# CONFIG_PATA_HPT3X2N is not set -# CONFIG_PATA_HPT3X3 is not set -# CONFIG_PATA_IT8213 is not set -# CONFIG_PATA_IT821X is not set -# CONFIG_PATA_JMICRON is not set -# CONFIG_PATA_MARVELL is not set -# CONFIG_PATA_NETCELL is not set -# CONFIG_PATA_NINJA32 is not set -# CONFIG_PATA_NS87415 is not set -CONFIG_PATA_OLDPIIX=y -# CONFIG_PATA_OPTIDMA is not set -# CONFIG_PATA_PDC2027X is not set -# CONFIG_PATA_PDC_OLD is not set -# CONFIG_PATA_RADISYS is not set -# CONFIG_PATA_RDC is not set -CONFIG_PATA_SCH=y -# CONFIG_PATA_SERVERWORKS is not set -# CONFIG_PATA_SIL680 is not set -# CONFIG_PATA_SIS is not set -# CONFIG_PATA_TOSHIBA is not set -# CONFIG_PATA_TRIFLEX is not set -# CONFIG_PATA_VIA is not set -# CONFIG_PATA_WINBOND is not set - -# -# PIO-only SFF controllers -# -# CONFIG_PATA_CMD640_PCI is not set -# CONFIG_PATA_MPIIX is not set -# CONFIG_PATA_NS87410 is not set -# CONFIG_PATA_OPTI is not set -# CONFIG_PATA_PCMCIA is not set -# CONFIG_PATA_RZ1000 is not set - -# -# Generic fallback / legacy drivers -# -# CONFIG_PATA_ACPI is not set -# CONFIG_ATA_GENERIC is not set -# CONFIG_PATA_LEGACY is not set -CONFIG_MD=y -CONFIG_BLK_DEV_MD=y -CONFIG_MD_AUTODETECT=y -CONFIG_MD_BITMAP_FILE=y -# CONFIG_MD_LINEAR is not set -# CONFIG_MD_RAID0 is not set -# CONFIG_MD_RAID1 is not set -# CONFIG_MD_RAID10 is not set -# CONFIG_MD_RAID456 is not set -# CONFIG_BCACHE is not set -CONFIG_BLK_DEV_DM_BUILTIN=y -CONFIG_BLK_DEV_DM=y -# CONFIG_DM_DEBUG is not set -# CONFIG_DM_UNSTRIPED is not set -# CONFIG_DM_CRYPT is not set -# CONFIG_DM_SNAPSHOT is not set -# CONFIG_DM_THIN_PROVISIONING is not set -# CONFIG_DM_CACHE is not set -# CONFIG_DM_WRITECACHE is not set -# CONFIG_DM_EBS is not set -# CONFIG_DM_ERA is not set -# CONFIG_DM_CLONE is not set -CONFIG_DM_MIRROR=y -# CONFIG_DM_LOG_USERSPACE is not set -# CONFIG_DM_RAID is not set -CONFIG_DM_ZERO=y -# CONFIG_DM_MULTIPATH is not set -# CONFIG_DM_DELAY is not set -# CONFIG_DM_DUST is not set -# CONFIG_DM_INIT is not set -# CONFIG_DM_UEVENT is not set -# CONFIG_DM_FLAKEY is not set -# CONFIG_DM_VERITY is not set -# CONFIG_DM_SWITCH is not set -# CONFIG_DM_LOG_WRITES is not set -# CONFIG_DM_INTEGRITY is not set -# CONFIG_DM_AUDIT is not set -# CONFIG_DM_VDO is not set -# CONFIG_TARGET_CORE is not set -# CONFIG_FUSION is not set - -# -# IEEE 1394 (FireWire) support -# -# CONFIG_FIREWIRE is not set -# CONFIG_FIREWIRE_NOSY is not set -# end of IEEE 1394 (FireWire) support - -# CONFIG_MACINTOSH_DRIVERS is not set -CONFIG_NETDEVICES=y -CONFIG_MII=y -CONFIG_NET_CORE=y -# CONFIG_BONDING is not set -# CONFIG_DUMMY is not set -# CONFIG_WIREGUARD is not set -# CONFIG_EQUALIZER is not set -# CONFIG_NET_FC is not set -# CONFIG_NET_TEAM is not set -# CONFIG_MACVLAN is not set -# CONFIG_IPVLAN is not set -# CONFIG_VXLAN is not set -# CONFIG_GENEVE is not set -# CONFIG_BAREUDP is not set -# CONFIG_GTP is not set -# CONFIG_PFCP is not set -# CONFIG_AMT is not set -# CONFIG_MACSEC is not set -CONFIG_NETCONSOLE=y -# CONFIG_NETCONSOLE_EXTENDED_LOG is not set -CONFIG_NETPOLL=y -CONFIG_NET_POLL_CONTROLLER=y -# CONFIG_TUN is not set -# CONFIG_TUN_VNET_CROSS_LE is not set -# CONFIG_VETH is not set -CONFIG_VIRTIO_NET=y -# CONFIG_NLMON is not set -# CONFIG_ARCNET is not set -CONFIG_ETHERNET=y -CONFIG_NET_VENDOR_3COM=y -# CONFIG_PCMCIA_3C574 is not set -# CONFIG_PCMCIA_3C589 is not set -# CONFIG_VORTEX is not set -# CONFIG_TYPHOON is not set -CONFIG_NET_VENDOR_ADAPTEC=y -# CONFIG_ADAPTEC_STARFIRE is not set -CONFIG_NET_VENDOR_AGERE=y -# CONFIG_ET131X is not set -CONFIG_NET_VENDOR_ALACRITECH=y -# CONFIG_SLICOSS is not set -CONFIG_NET_VENDOR_ALTEON=y -# CONFIG_ACENIC is not set -# CONFIG_ALTERA_TSE is not set -CONFIG_NET_VENDOR_AMAZON=y -# CONFIG_ENA_ETHERNET is not set -CONFIG_NET_VENDOR_AMD=y -# CONFIG_AMD8111_ETH is not set -# CONFIG_PCNET32 is not set -# CONFIG_PCMCIA_NMCLAN is not set -# CONFIG_AMD_XGBE is not set -# CONFIG_PDS_CORE is not set -CONFIG_NET_VENDOR_AQUANTIA=y -# CONFIG_AQTION is not set -CONFIG_NET_VENDOR_ARC=y -CONFIG_NET_VENDOR_ASIX=y -CONFIG_NET_VENDOR_ATHEROS=y -# CONFIG_ATL2 is not set -# CONFIG_ATL1 is not set -# CONFIG_ATL1E is not set -# CONFIG_ATL1C is not set -# CONFIG_ALX is not set -# CONFIG_CX_ECAT is not set -CONFIG_NET_VENDOR_BROADCOM=y -# CONFIG_B44 is not set -# CONFIG_BCMGENET is not set -# CONFIG_BNX2 is not set -# CONFIG_CNIC is not set -CONFIG_TIGON3=y -CONFIG_TIGON3_HWMON=y -# CONFIG_BNX2X is not set -# CONFIG_SYSTEMPORT is not set -# CONFIG_BNXT is not set -CONFIG_NET_VENDOR_CADENCE=y -CONFIG_NET_VENDOR_CAVIUM=y -# CONFIG_THUNDER_NIC_PF is not set -# CONFIG_THUNDER_NIC_VF is not set -# CONFIG_THUNDER_NIC_BGX is not set -# CONFIG_THUNDER_NIC_RGX is not set -# CONFIG_CAVIUM_PTP is not set -# CONFIG_LIQUIDIO is not set -# CONFIG_LIQUIDIO_VF is not set -CONFIG_NET_VENDOR_CHELSIO=y -# CONFIG_CHELSIO_T1 is not set -# CONFIG_CHELSIO_T3 is not set -# CONFIG_CHELSIO_T4 is not set -# CONFIG_CHELSIO_T4VF is not set -CONFIG_NET_VENDOR_CISCO=y -# CONFIG_ENIC is not set -CONFIG_NET_VENDOR_CORTINA=y -CONFIG_NET_VENDOR_DAVICOM=y -# CONFIG_DNET is not set -CONFIG_NET_VENDOR_DEC=y -CONFIG_NET_TULIP=y -# CONFIG_DE2104X is not set -# CONFIG_TULIP is not set -# CONFIG_WINBOND_840 is not set -# CONFIG_DM9102 is not set -# CONFIG_ULI526X is not set -# CONFIG_PCMCIA_XIRCOM is not set -CONFIG_NET_VENDOR_DLINK=y -# CONFIG_DL2K is not set -CONFIG_NET_VENDOR_EMULEX=y -# CONFIG_BE2NET is not set -CONFIG_NET_VENDOR_ENGLEDER=y -# CONFIG_TSNEP is not set -CONFIG_NET_VENDOR_EZCHIP=y -CONFIG_NET_VENDOR_FUJITSU=y -# CONFIG_PCMCIA_FMVJ18X is not set -CONFIG_NET_VENDOR_FUNGIBLE=y -# CONFIG_FUN_ETH is not set -CONFIG_NET_VENDOR_GOOGLE=y -# CONFIG_GVE is not set -CONFIG_NET_VENDOR_HISILICON=y -# CONFIG_HIBMCGE is not set -CONFIG_NET_VENDOR_HUAWEI=y -# CONFIG_HINIC is not set -CONFIG_NET_VENDOR_I825XX=y -CONFIG_NET_VENDOR_INTEL=y -CONFIG_E100=y -CONFIG_E1000=y -CONFIG_E1000E=y -CONFIG_E1000E_HWTS=y -# CONFIG_IGB is not set -# CONFIG_IGBVF is not set -# CONFIG_IXGBE is not set -# CONFIG_IXGBEVF is not set -# CONFIG_I40E is not set -# CONFIG_I40EVF is not set -# CONFIG_ICE is not set -# CONFIG_FM10K is not set -# CONFIG_IGC is not set -# CONFIG_IDPF is not set -# CONFIG_JME is not set -CONFIG_NET_VENDOR_LITEX=y -CONFIG_NET_VENDOR_MARVELL=y -# CONFIG_MVMDIO is not set -# CONFIG_SKGE is not set -CONFIG_SKY2=y -# CONFIG_SKY2_DEBUG is not set -# CONFIG_OCTEON_EP is not set -# CONFIG_OCTEON_EP_VF is not set -CONFIG_NET_VENDOR_MELLANOX=y -# CONFIG_MLX4_EN is not set -# CONFIG_MLX5_CORE is not set -# CONFIG_MLXSW_CORE is not set -# CONFIG_MLXFW is not set -CONFIG_NET_VENDOR_META=y -# CONFIG_FBNIC is not set -CONFIG_NET_VENDOR_MICREL=y -# CONFIG_KS8842 is not set -# CONFIG_KS8851_MLL is not set -# CONFIG_KSZ884X_PCI is not set -CONFIG_NET_VENDOR_MICROCHIP=y -# CONFIG_LAN743X is not set -# CONFIG_VCAP is not set -CONFIG_NET_VENDOR_MICROSEMI=y -CONFIG_NET_VENDOR_MICROSOFT=y -CONFIG_NET_VENDOR_MYRI=y -# CONFIG_MYRI10GE is not set -# CONFIG_FEALNX is not set -CONFIG_NET_VENDOR_NI=y -# CONFIG_NI_XGE_MANAGEMENT_ENET is not set -CONFIG_NET_VENDOR_NATSEMI=y -# CONFIG_NATSEMI is not set -# CONFIG_NS83820 is not set -CONFIG_NET_VENDOR_NETERION=y -# CONFIG_S2IO is not set -CONFIG_NET_VENDOR_NETRONOME=y -# CONFIG_NFP is not set -CONFIG_NET_VENDOR_8390=y -# CONFIG_PCMCIA_AXNET is not set -# CONFIG_NE2K_PCI is not set -# CONFIG_PCMCIA_PCNET is not set -CONFIG_NET_VENDOR_NVIDIA=y -CONFIG_FORCEDETH=y -CONFIG_NET_VENDOR_OKI=y -# CONFIG_ETHOC is not set -CONFIG_NET_VENDOR_PACKET_ENGINES=y -# CONFIG_HAMACHI is not set -# CONFIG_YELLOWFIN is not set -CONFIG_NET_VENDOR_PENSANDO=y -# CONFIG_IONIC is not set -CONFIG_NET_VENDOR_QLOGIC=y -# CONFIG_QLA3XXX is not set -# CONFIG_QLCNIC is not set -# CONFIG_NETXEN_NIC is not set -# CONFIG_QED is not set -CONFIG_NET_VENDOR_BROCADE=y -# CONFIG_BNA is not set -CONFIG_NET_VENDOR_QUALCOMM=y -# CONFIG_QCOM_EMAC is not set -# CONFIG_RMNET is not set -CONFIG_NET_VENDOR_RDC=y -# CONFIG_R6040 is not set -CONFIG_NET_VENDOR_REALTEK=y -# CONFIG_8139CP is not set -CONFIG_8139TOO=y -CONFIG_8139TOO_PIO=y -# CONFIG_8139TOO_TUNE_TWISTER is not set -# CONFIG_8139TOO_8129 is not set -# CONFIG_8139_OLD_RX_RESET is not set -CONFIG_R8169=y -# CONFIG_RTASE is not set -CONFIG_NET_VENDOR_RENESAS=y -CONFIG_NET_VENDOR_ROCKER=y -CONFIG_NET_VENDOR_SAMSUNG=y -# CONFIG_SXGBE_ETH is not set -CONFIG_NET_VENDOR_SEEQ=y -CONFIG_NET_VENDOR_SILAN=y -# CONFIG_SC92031 is not set -CONFIG_NET_VENDOR_SIS=y -# CONFIG_SIS900 is not set -# CONFIG_SIS190 is not set -CONFIG_NET_VENDOR_SOLARFLARE=y -# CONFIG_SFC is not set -# CONFIG_SFC_FALCON is not set -# CONFIG_SFC_SIENA is not set -CONFIG_NET_VENDOR_SMSC=y -# CONFIG_PCMCIA_SMC91C92 is not set -# CONFIG_EPIC100 is not set -# CONFIG_SMSC911X is not set -# CONFIG_SMSC9420 is not set -CONFIG_NET_VENDOR_SOCIONEXT=y -CONFIG_NET_VENDOR_STMICRO=y -# CONFIG_STMMAC_ETH is not set -CONFIG_NET_VENDOR_SUN=y -# CONFIG_HAPPYMEAL is not set -# CONFIG_SUNGEM is not set -# CONFIG_CASSINI is not set -# CONFIG_NIU is not set -CONFIG_NET_VENDOR_SYNOPSYS=y -# CONFIG_DWC_XLGMAC is not set -CONFIG_NET_VENDOR_TEHUTI=y -# CONFIG_TEHUTI is not set -# CONFIG_TEHUTI_TN40 is not set -CONFIG_NET_VENDOR_TI=y -# CONFIG_TI_CPSW_PHY_SEL is not set -# CONFIG_TLAN is not set -CONFIG_NET_VENDOR_VERTEXCOM=y -CONFIG_NET_VENDOR_VIA=y -# CONFIG_VIA_RHINE is not set -# CONFIG_VIA_VELOCITY is not set -CONFIG_NET_VENDOR_WANGXUN=y -# CONFIG_NGBE is not set -CONFIG_NET_VENDOR_WIZNET=y -# CONFIG_WIZNET_W5100 is not set -# CONFIG_WIZNET_W5300 is not set -CONFIG_NET_VENDOR_XILINX=y -# CONFIG_XILINX_EMACLITE is not set -# CONFIG_XILINX_LL_TEMAC is not set -CONFIG_NET_VENDOR_XIRCOM=y -# CONFIG_PCMCIA_XIRC2PS is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -CONFIG_PHYLIB=y -CONFIG_SWPHY=y -# CONFIG_LED_TRIGGER_PHY is not set -CONFIG_FIXED_PHY=y - -# -# MII PHY device drivers -# -# CONFIG_AIR_EN8811H_PHY is not set -# CONFIG_AMD_PHY is not set -# CONFIG_ADIN_PHY is not set -# CONFIG_ADIN1100_PHY is not set -# CONFIG_AQUANTIA_PHY is not set -# CONFIG_AX88796B_PHY is not set -# CONFIG_BROADCOM_PHY is not set -# CONFIG_BCM54140_PHY is not set -# CONFIG_BCM7XXX_PHY is not set -# CONFIG_BCM84881_PHY is not set -# CONFIG_BCM87XX_PHY is not set -# CONFIG_CICADA_PHY is not set -# CONFIG_CORTINA_PHY is not set -# CONFIG_DAVICOM_PHY is not set -# CONFIG_ICPLUS_PHY is not set -# CONFIG_LXT_PHY is not set -# CONFIG_INTEL_XWAY_PHY is not set -# CONFIG_LSI_ET1011C_PHY is not set -# CONFIG_MARVELL_PHY is not set -# CONFIG_MARVELL_10G_PHY is not set -# CONFIG_MARVELL_88Q2XXX_PHY is not set -# CONFIG_MARVELL_88X2222_PHY is not set -# CONFIG_MAXLINEAR_GPHY is not set -# CONFIG_MEDIATEK_GE_PHY is not set -# CONFIG_MICREL_PHY is not set -# CONFIG_MICROCHIP_T1S_PHY is not set -# CONFIG_MICROCHIP_PHY is not set -# CONFIG_MICROCHIP_T1_PHY is not set -# CONFIG_MICROSEMI_PHY is not set -# CONFIG_MOTORCOMM_PHY is not set -# CONFIG_NATIONAL_PHY is not set -# CONFIG_NXP_CBTX_PHY is not set -# CONFIG_NXP_C45_TJA11XX_PHY is not set -# CONFIG_NXP_TJA11XX_PHY is not set -# CONFIG_NCN26000_PHY is not set -# CONFIG_QCA83XX_PHY is not set -# CONFIG_QCA808X_PHY is not set -# CONFIG_QSEMI_PHY is not set -CONFIG_REALTEK_PHY=y -CONFIG_REALTEK_PHY_HWMON=y -# CONFIG_RENESAS_PHY is not set -# CONFIG_ROCKCHIP_PHY is not set -# CONFIG_SMSC_PHY is not set -# CONFIG_STE10XP is not set -# CONFIG_TERANETICS_PHY is not set -# CONFIG_DP83822_PHY is not set -# CONFIG_DP83TC811_PHY is not set -# CONFIG_DP83848_PHY is not set -# CONFIG_DP83867_PHY is not set -# CONFIG_DP83869_PHY is not set -# CONFIG_DP83TD510_PHY is not set -# CONFIG_DP83TG720_PHY is not set -# CONFIG_VITESSE_PHY is not set -# CONFIG_XILINX_GMII2RGMII is not set -CONFIG_MDIO_DEVICE=y -CONFIG_MDIO_BUS=y -CONFIG_FWNODE_MDIO=y -CONFIG_ACPI_MDIO=y -CONFIG_MDIO_DEVRES=y -# CONFIG_MDIO_BITBANG is not set -# CONFIG_MDIO_BCM_UNIMAC is not set -# CONFIG_MDIO_MVUSB is not set -# CONFIG_MDIO_THUNDER is not set - -# -# MDIO Multiplexers -# - -# -# PCS device drivers -# -# CONFIG_PCS_XPCS is not set -# end of PCS device drivers - -# CONFIG_PPP is not set -# CONFIG_SLIP is not set -CONFIG_USB_NET_DRIVERS=y -# CONFIG_USB_CATC is not set -# CONFIG_USB_KAWETH is not set -# CONFIG_USB_PEGASUS is not set -# CONFIG_USB_RTL8150 is not set -# CONFIG_USB_RTL8152 is not set -# CONFIG_USB_LAN78XX is not set -# CONFIG_USB_USBNET is not set -# CONFIG_USB_HSO is not set -# CONFIG_USB_IPHETH is not set -CONFIG_WLAN=y -CONFIG_WLAN_VENDOR_ADMTEK=y -# CONFIG_ADM8211 is not set -CONFIG_WLAN_VENDOR_ATH=y -# CONFIG_ATH_DEBUG is not set -# CONFIG_ATH5K is not set -# CONFIG_ATH5K_PCI is not set -# CONFIG_ATH9K is not set -# CONFIG_ATH9K_HTC is not set -# CONFIG_CARL9170 is not set -# CONFIG_ATH6KL is not set -# CONFIG_AR5523 is not set -# CONFIG_WIL6210 is not set -# CONFIG_ATH10K is not set -# CONFIG_WCN36XX is not set -# CONFIG_ATH11K is not set -# CONFIG_ATH12K is not set -CONFIG_WLAN_VENDOR_ATMEL=y -# CONFIG_AT76C50X_USB is not set -CONFIG_WLAN_VENDOR_BROADCOM=y -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_BRCMSMAC is not set -# CONFIG_BRCMFMAC is not set -CONFIG_WLAN_VENDOR_INTEL=y -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200 is not set -# CONFIG_IWL4965 is not set -# CONFIG_IWL3945 is not set -# CONFIG_IWLWIFI is not set -CONFIG_WLAN_VENDOR_INTERSIL=y -# CONFIG_P54_COMMON is not set -CONFIG_WLAN_VENDOR_MARVELL=y -# CONFIG_LIBERTAS is not set -# CONFIG_LIBERTAS_THINFIRM is not set -# CONFIG_MWIFIEX is not set -# CONFIG_MWL8K is not set -CONFIG_WLAN_VENDOR_MEDIATEK=y -# CONFIG_MT7601U is not set -# CONFIG_MT76x0U is not set -# CONFIG_MT76x0E is not set -# CONFIG_MT76x2E is not set -# CONFIG_MT76x2U is not set -# CONFIG_MT7603E is not set -# CONFIG_MT7615E is not set -# CONFIG_MT7663U is not set -# CONFIG_MT7915E is not set -# CONFIG_MT7921E is not set -# CONFIG_MT7921U is not set -# CONFIG_MT7996E is not set -# CONFIG_MT7925E is not set -# CONFIG_MT7925U is not set -CONFIG_WLAN_VENDOR_MICROCHIP=y -CONFIG_WLAN_VENDOR_PURELIFI=y -# CONFIG_PLFXLC is not set -CONFIG_WLAN_VENDOR_RALINK=y -# CONFIG_RT2X00 is not set -CONFIG_WLAN_VENDOR_REALTEK=y -# CONFIG_RTL8180 is not set -# CONFIG_RTL8187 is not set -CONFIG_RTL_CARDS=y -# CONFIG_RTL8192CE is not set -# CONFIG_RTL8192SE is not set -# CONFIG_RTL8192DE is not set -# CONFIG_RTL8723AE is not set -# CONFIG_RTL8723BE is not set -# CONFIG_RTL8188EE is not set -# CONFIG_RTL8192EE is not set -# CONFIG_RTL8821AE is not set -# CONFIG_RTL8192CU is not set -# CONFIG_RTL8192DU is not set -# CONFIG_RTL8XXXU is not set -# CONFIG_RTW88 is not set -# CONFIG_RTW89 is not set -CONFIG_WLAN_VENDOR_RSI=y -# CONFIG_RSI_91X is not set -CONFIG_WLAN_VENDOR_SILABS=y -CONFIG_WLAN_VENDOR_ST=y -# CONFIG_CW1200 is not set -CONFIG_WLAN_VENDOR_TI=y -# CONFIG_WL1251 is not set -# CONFIG_WL12XX is not set -# CONFIG_WL18XX is not set -# CONFIG_WLCORE is not set -CONFIG_WLAN_VENDOR_ZYDAS=y -# CONFIG_ZD1211RW is not set -CONFIG_WLAN_VENDOR_QUANTENNA=y -# CONFIG_QTNFMAC_PCIE is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_VIRT_WIFI is not set -# CONFIG_WAN is not set - -# -# Wireless WAN -# -# CONFIG_WWAN is not set -# end of Wireless WAN - -# CONFIG_VMXNET3 is not set -# CONFIG_FUJITSU_ES is not set -# CONFIG_NETDEVSIM is not set -CONFIG_NET_FAILOVER=y -# CONFIG_ISDN is not set - -# -# Input device support -# -CONFIG_INPUT=y -CONFIG_INPUT_LEDS=y -CONFIG_INPUT_FF_MEMLESS=y -CONFIG_INPUT_SPARSEKMAP=y -# CONFIG_INPUT_MATRIXKMAP is not set -CONFIG_INPUT_VIVALDIFMAP=y - -# -# Userland interfaces -# -# CONFIG_INPUT_MOUSEDEV is not set -# CONFIG_INPUT_JOYDEV is not set -CONFIG_INPUT_EVDEV=y - -# -# Input Device Drivers -# -CONFIG_INPUT_KEYBOARD=y -# CONFIG_KEYBOARD_ADP5588 is not set -# CONFIG_KEYBOARD_ADP5589 is not set -CONFIG_KEYBOARD_ATKBD=y -# CONFIG_KEYBOARD_QT1050 is not set -# CONFIG_KEYBOARD_QT1070 is not set -# CONFIG_KEYBOARD_QT2160 is not set -# CONFIG_KEYBOARD_DLINK_DIR685 is not set -# CONFIG_KEYBOARD_LKKBD is not set -# CONFIG_KEYBOARD_TCA6416 is not set -# CONFIG_KEYBOARD_TCA8418 is not set -# CONFIG_KEYBOARD_LM8323 is not set -# CONFIG_KEYBOARD_LM8333 is not set -# CONFIG_KEYBOARD_MAX7359 is not set -# CONFIG_KEYBOARD_MPR121 is not set -# CONFIG_KEYBOARD_NEWTON is not set -# CONFIG_KEYBOARD_OPENCORES is not set -# CONFIG_KEYBOARD_STOWAWAY is not set -# CONFIG_KEYBOARD_SUNKBD is not set -# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set -# CONFIG_KEYBOARD_XTKBD is not set -# CONFIG_KEYBOARD_CYPRESS_SF is not set -CONFIG_INPUT_MOUSE=y -CONFIG_MOUSE_PS2=y -CONFIG_MOUSE_PS2_ALPS=y -CONFIG_MOUSE_PS2_BYD=y -CONFIG_MOUSE_PS2_LOGIPS2PP=y -CONFIG_MOUSE_PS2_SYNAPTICS=y -CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y -CONFIG_MOUSE_PS2_CYPRESS=y -CONFIG_MOUSE_PS2_LIFEBOOK=y -CONFIG_MOUSE_PS2_TRACKPOINT=y -# CONFIG_MOUSE_PS2_ELANTECH is not set -# CONFIG_MOUSE_PS2_SENTELIC is not set -# CONFIG_MOUSE_PS2_TOUCHKIT is not set -CONFIG_MOUSE_PS2_FOCALTECH=y -CONFIG_MOUSE_PS2_VMMOUSE=y -CONFIG_MOUSE_PS2_SMBUS=y -# CONFIG_MOUSE_SERIAL is not set -# CONFIG_MOUSE_APPLETOUCH is not set -# CONFIG_MOUSE_BCM5974 is not set -# CONFIG_MOUSE_CYAPA is not set -# CONFIG_MOUSE_ELAN_I2C is not set -# CONFIG_MOUSE_VSXXXAA is not set -# CONFIG_MOUSE_SYNAPTICS_I2C is not set -# CONFIG_MOUSE_SYNAPTICS_USB is not set -CONFIG_INPUT_JOYSTICK=y -# CONFIG_JOYSTICK_ANALOG is not set -# CONFIG_JOYSTICK_A3D is not set -# CONFIG_JOYSTICK_ADI is not set -# CONFIG_JOYSTICK_COBRA is not set -# CONFIG_JOYSTICK_GF2K is not set -# CONFIG_JOYSTICK_GRIP is not set -# CONFIG_JOYSTICK_GRIP_MP is not set -# CONFIG_JOYSTICK_GUILLEMOT is not set -# CONFIG_JOYSTICK_INTERACT is not set -# CONFIG_JOYSTICK_SIDEWINDER is not set -# CONFIG_JOYSTICK_TMDC is not set -# CONFIG_JOYSTICK_IFORCE is not set -# CONFIG_JOYSTICK_WARRIOR is not set -# CONFIG_JOYSTICK_MAGELLAN is not set -# CONFIG_JOYSTICK_SPACEORB is not set -# CONFIG_JOYSTICK_SPACEBALL is not set -# CONFIG_JOYSTICK_STINGER is not set -# CONFIG_JOYSTICK_TWIDJOY is not set -# CONFIG_JOYSTICK_ZHENHUA is not set -# CONFIG_JOYSTICK_AS5011 is not set -# CONFIG_JOYSTICK_JOYDUMP is not set -# CONFIG_JOYSTICK_XPAD is not set -# CONFIG_JOYSTICK_PXRC is not set -# CONFIG_JOYSTICK_QWIIC is not set -# CONFIG_JOYSTICK_FSIA6B is not set -# CONFIG_JOYSTICK_SENSEHAT is not set -# CONFIG_JOYSTICK_SEESAW is not set -CONFIG_INPUT_TABLET=y -# CONFIG_TABLET_USB_ACECAD is not set -# CONFIG_TABLET_USB_AIPTEK is not set -# CONFIG_TABLET_USB_HANWANG is not set -# CONFIG_TABLET_USB_KBTAB is not set -# CONFIG_TABLET_USB_PEGASUS is not set -# CONFIG_TABLET_SERIAL_WACOM4 is not set -CONFIG_INPUT_TOUCHSCREEN=y -# CONFIG_TOUCHSCREEN_AD7879 is not set -# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set -# CONFIG_TOUCHSCREEN_BU21013 is not set -# CONFIG_TOUCHSCREEN_BU21029 is not set -# CONFIG_TOUCHSCREEN_CHIPONE_ICN8505 is not set -# CONFIG_TOUCHSCREEN_CY8CTMA140 is not set -# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set -# CONFIG_TOUCHSCREEN_CYTTSP5 is not set -# CONFIG_TOUCHSCREEN_DYNAPRO is not set -# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set -# CONFIG_TOUCHSCREEN_EETI is not set -# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set -# CONFIG_TOUCHSCREEN_EXC3000 is not set -# CONFIG_TOUCHSCREEN_FUJITSU is not set -# CONFIG_TOUCHSCREEN_GOODIX_BERLIN_I2C is not set -# CONFIG_TOUCHSCREEN_HIDEEP is not set -# CONFIG_TOUCHSCREEN_HYCON_HY46XX is not set -# CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX is not set -# CONFIG_TOUCHSCREEN_ILI210X is not set -# CONFIG_TOUCHSCREEN_ILITEK is not set -# CONFIG_TOUCHSCREEN_S6SY761 is not set -# CONFIG_TOUCHSCREEN_GUNZE is not set -# CONFIG_TOUCHSCREEN_EKTF2127 is not set -# CONFIG_TOUCHSCREEN_ELAN is not set -# CONFIG_TOUCHSCREEN_ELO is not set -# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set -# CONFIG_TOUCHSCREEN_WACOM_I2C is not set -# CONFIG_TOUCHSCREEN_MAX11801 is not set -# CONFIG_TOUCHSCREEN_MMS114 is not set -# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set -# CONFIG_TOUCHSCREEN_MTOUCH is not set -# CONFIG_TOUCHSCREEN_NOVATEK_NVT_TS is not set -# CONFIG_TOUCHSCREEN_IMAGIS is not set -# CONFIG_TOUCHSCREEN_INEXIO is not set -# CONFIG_TOUCHSCREEN_PENMOUNT is not set -# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set -# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set -# CONFIG_TOUCHSCREEN_TOUCHWIN is not set -# CONFIG_TOUCHSCREEN_PIXCIR is not set -# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set -# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set -# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set -# CONFIG_TOUCHSCREEN_TSC_SERIO is not set -# CONFIG_TOUCHSCREEN_TSC2004 is not set -# CONFIG_TOUCHSCREEN_TSC2007 is not set -# CONFIG_TOUCHSCREEN_SILEAD is not set -# CONFIG_TOUCHSCREEN_ST1232 is not set -# CONFIG_TOUCHSCREEN_STMFTS is not set -# CONFIG_TOUCHSCREEN_SX8654 is not set -# CONFIG_TOUCHSCREEN_TPS6507X is not set -# CONFIG_TOUCHSCREEN_ZET6223 is not set -# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set -# CONFIG_TOUCHSCREEN_IQS5XX is not set -# CONFIG_TOUCHSCREEN_IQS7211 is not set -# CONFIG_TOUCHSCREEN_ZINITIX is not set -# CONFIG_TOUCHSCREEN_HIMAX_HX83112B is not set -CONFIG_INPUT_MISC=y -# CONFIG_INPUT_AD714X is not set -# CONFIG_INPUT_BMA150 is not set -# CONFIG_INPUT_E3X0_BUTTON is not set -# CONFIG_INPUT_PCSPKR is not set -# CONFIG_INPUT_MMA8450 is not set -# CONFIG_INPUT_APANEL is not set -# CONFIG_INPUT_ATLAS_BTNS is not set -# CONFIG_INPUT_ATI_REMOTE2 is not set -# CONFIG_INPUT_KEYSPAN_REMOTE is not set -# CONFIG_INPUT_KXTJ9 is not set -# CONFIG_INPUT_POWERMATE is not set -# CONFIG_INPUT_YEALINK is not set -# CONFIG_INPUT_CM109 is not set -# CONFIG_INPUT_UINPUT is not set -# CONFIG_INPUT_PCF8574 is not set -# CONFIG_INPUT_DA7280_HAPTICS is not set -# CONFIG_INPUT_ADXL34X is not set -# CONFIG_INPUT_IMS_PCU is not set -# CONFIG_INPUT_IQS269A is not set -# CONFIG_INPUT_IQS626A is not set -# CONFIG_INPUT_IQS7222 is not set -# CONFIG_INPUT_CMA3000 is not set -# CONFIG_INPUT_IDEAPAD_SLIDEBAR is not set -# CONFIG_INPUT_DRV2665_HAPTICS is not set -# CONFIG_INPUT_DRV2667_HAPTICS is not set -# CONFIG_RMI4_CORE is not set - -# -# Hardware I/O ports -# -CONFIG_SERIO=y -CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y -CONFIG_SERIO_I8042=y -CONFIG_SERIO_SERPORT=y -# CONFIG_SERIO_CT82C710 is not set -# CONFIG_SERIO_PCIPS2 is not set -CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_RAW is not set -# CONFIG_SERIO_ALTERA_PS2 is not set -# CONFIG_SERIO_PS2MULT is not set -# CONFIG_SERIO_ARC_PS2 is not set -# CONFIG_USERIO is not set -# CONFIG_GAMEPORT is not set -# end of Hardware I/O ports -# end of Input device support - -# -# Character devices -# -CONFIG_TTY=y -CONFIG_VT=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_VT_CONSOLE=y -CONFIG_VT_CONSOLE_SLEEP=y -CONFIG_VT_HW_CONSOLE_BINDING=y -CONFIG_UNIX98_PTYS=y -# CONFIG_LEGACY_PTYS is not set -CONFIG_LEGACY_TIOCSTI=y -CONFIG_LDISC_AUTOLOAD=y - -# -# Serial drivers -# -CONFIG_SERIAL_EARLYCON=y -CONFIG_SERIAL_8250=y -CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y -CONFIG_SERIAL_8250_PNP=y -# CONFIG_SERIAL_8250_16550A_VARIANTS is not set -# CONFIG_SERIAL_8250_FINTEK is not set -CONFIG_SERIAL_8250_CONSOLE=y -CONFIG_SERIAL_8250_DMA=y -CONFIG_SERIAL_8250_PCILIB=y -CONFIG_SERIAL_8250_PCI=y -CONFIG_SERIAL_8250_EXAR=y -# CONFIG_SERIAL_8250_CS is not set -CONFIG_SERIAL_8250_NR_UARTS=32 -CONFIG_SERIAL_8250_RUNTIME_UARTS=4 -CONFIG_SERIAL_8250_EXTENDED=y -CONFIG_SERIAL_8250_MANY_PORTS=y -# CONFIG_SERIAL_8250_PCI1XXXX is not set -CONFIG_SERIAL_8250_SHARE_IRQ=y -CONFIG_SERIAL_8250_DETECT_IRQ=y -CONFIG_SERIAL_8250_RSA=y -CONFIG_SERIAL_8250_DWLIB=y -# CONFIG_SERIAL_8250_DW is not set -# CONFIG_SERIAL_8250_RT288X is not set -CONFIG_SERIAL_8250_LPSS=y -CONFIG_SERIAL_8250_MID=y -CONFIG_SERIAL_8250_PERICOM=y -# CONFIG_SERIAL_8250_NI is not set - -# -# Non-8250 serial port support -# -# CONFIG_SERIAL_UARTLITE is not set -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -# CONFIG_SERIAL_JSM is not set -# CONFIG_SERIAL_LANTIQ is not set -# CONFIG_SERIAL_SCCNXP is not set -# CONFIG_SERIAL_SC16IS7XX is not set -# CONFIG_SERIAL_ALTERA_JTAGUART is not set -# CONFIG_SERIAL_ALTERA_UART is not set -# CONFIG_SERIAL_ARC is not set -# CONFIG_SERIAL_RP2 is not set -# CONFIG_SERIAL_FSL_LPUART is not set -# CONFIG_SERIAL_FSL_LINFLEXUART is not set -# end of Serial drivers - -CONFIG_SERIAL_NONSTANDARD=y -# CONFIG_MOXA_INTELLIO is not set -# CONFIG_MOXA_SMARTIO is not set -# CONFIG_N_HDLC is not set -# CONFIG_IPWIRELESS is not set -# CONFIG_N_GSM is not set -# CONFIG_NOZOMI is not set -# CONFIG_NULL_TTY is not set -CONFIG_HVC_DRIVER=y -# CONFIG_SERIAL_DEV_BUS is not set -CONFIG_VIRTIO_CONSOLE=y -# CONFIG_IPMI_HANDLER is not set -CONFIG_HW_RANDOM=y -# CONFIG_HW_RANDOM_TIMERIOMEM is not set -# CONFIG_HW_RANDOM_INTEL is not set -# CONFIG_HW_RANDOM_AMD is not set -# CONFIG_HW_RANDOM_BA431 is not set -CONFIG_HW_RANDOM_VIA=y -# CONFIG_HW_RANDOM_VIRTIO is not set -# CONFIG_HW_RANDOM_XIPHERA is not set -# CONFIG_APPLICOM is not set -# CONFIG_MWAVE is not set -CONFIG_DEVMEM=y -CONFIG_NVRAM=y -CONFIG_DEVPORT=y -CONFIG_HPET=y -# CONFIG_HPET_MMAP is not set -# CONFIG_HANGCHECK_TIMER is not set -# CONFIG_TCG_TPM is not set -# CONFIG_TELCLOCK is not set -# CONFIG_XILLYBUS is not set -# CONFIG_XILLYUSB is not set -# end of Character devices - -# -# I2C support -# -CONFIG_I2C=y -CONFIG_ACPI_I2C_OPREGION=y -CONFIG_I2C_BOARDINFO=y -# CONFIG_I2C_CHARDEV is not set -# CONFIG_I2C_MUX is not set -CONFIG_I2C_HELPER_AUTO=y -CONFIG_I2C_SMBUS=y - -# -# I2C Hardware Bus support -# - -# -# PC SMBus host controller drivers -# -# CONFIG_I2C_ALI1535 is not set -# CONFIG_I2C_ALI1563 is not set -# CONFIG_I2C_ALI15X3 is not set -# CONFIG_I2C_AMD756 is not set -# CONFIG_I2C_AMD8111 is not set -# CONFIG_I2C_AMD_MP2 is not set -CONFIG_I2C_I801=y -# CONFIG_I2C_ISCH is not set -# CONFIG_I2C_ISMT is not set -# CONFIG_I2C_PIIX4 is not set -# CONFIG_I2C_NFORCE2 is not set -# CONFIG_I2C_NVIDIA_GPU is not set -# CONFIG_I2C_SIS5595 is not set -# CONFIG_I2C_SIS630 is not set -# CONFIG_I2C_SIS96X is not set -# CONFIG_I2C_VIA is not set -# CONFIG_I2C_VIAPRO is not set -# CONFIG_I2C_ZHAOXIN is not set - -# -# ACPI drivers -# -# CONFIG_I2C_SCMI is not set - -# -# I2C system bus drivers (mostly embedded / system-on-chip) -# -# CONFIG_I2C_DESIGNWARE_CORE is not set -# CONFIG_I2C_OCORES is not set -# CONFIG_I2C_PCA_PLATFORM is not set -# CONFIG_I2C_SIMTEC is not set -# CONFIG_I2C_XILINX is not set - -# -# External I2C/SMBus adapter drivers -# -# CONFIG_I2C_DIOLAN_U2C is not set -# CONFIG_I2C_CP2615 is not set -# CONFIG_I2C_PCI1XXXX is not set -# CONFIG_I2C_ROBOTFUZZ_OSIF is not set -# CONFIG_I2C_TAOS_EVM is not set -# CONFIG_I2C_TINY_USB is not set - -# -# Other I2C/SMBus bus drivers -# -# CONFIG_I2C_MLXCPLD is not set -# CONFIG_I2C_VIRTIO is not set -# end of I2C Hardware Bus support - -# CONFIG_I2C_STUB is not set -# CONFIG_I2C_SLAVE is not set -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# end of I2C support - -# CONFIG_I3C is not set -# CONFIG_SPI is not set -# CONFIG_SPMI is not set -# CONFIG_HSI is not set -CONFIG_PPS=y -# CONFIG_PPS_DEBUG is not set - -# -# PPS clients support -# -# CONFIG_PPS_CLIENT_KTIMER is not set -# CONFIG_PPS_CLIENT_LDISC is not set -# CONFIG_PPS_CLIENT_GPIO is not set -# CONFIG_PPS_GENERATOR is not set - -# -# PTP clock support -# -CONFIG_PTP_1588_CLOCK=y -CONFIG_PTP_1588_CLOCK_OPTIONAL=y - -# -# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. -# -CONFIG_PTP_1588_CLOCK_KVM=y -CONFIG_PTP_1588_CLOCK_VMCLOCK=y -# CONFIG_PTP_1588_CLOCK_IDT82P33 is not set -# CONFIG_PTP_1588_CLOCK_IDTCM is not set -# CONFIG_PTP_1588_CLOCK_FC3W is not set -# CONFIG_PTP_1588_CLOCK_MOCK is not set -# CONFIG_PTP_1588_CLOCK_VMW is not set -# end of PTP clock support - -# CONFIG_PINCTRL is not set -# CONFIG_GPIOLIB is not set -# CONFIG_W1 is not set -# CONFIG_POWER_RESET is not set -# CONFIG_POWER_SEQUENCING is not set -CONFIG_POWER_SUPPLY=y -# CONFIG_POWER_SUPPLY_DEBUG is not set -CONFIG_POWER_SUPPLY_HWMON=y -# CONFIG_IP5XXX_POWER is not set -# CONFIG_TEST_POWER is not set -# CONFIG_CHARGER_ADP5061 is not set -# CONFIG_BATTERY_CW2015 is not set -# CONFIG_BATTERY_DS2780 is not set -# CONFIG_BATTERY_DS2781 is not set -# CONFIG_BATTERY_DS2782 is not set -# CONFIG_BATTERY_SAMSUNG_SDI is not set -# CONFIG_BATTERY_SBS is not set -# CONFIG_CHARGER_SBS is not set -# CONFIG_BATTERY_BQ27XXX is not set -# CONFIG_BATTERY_MAX17042 is not set -# CONFIG_BATTERY_MAX1720X is not set -# CONFIG_CHARGER_MAX8903 is not set -# CONFIG_CHARGER_LP8727 is not set -# CONFIG_CHARGER_LTC4162L is not set -# CONFIG_CHARGER_MAX77976 is not set -# CONFIG_CHARGER_BQ2415X is not set -# CONFIG_BATTERY_GAUGE_LTC2941 is not set -# CONFIG_BATTERY_GOLDFISH is not set -# CONFIG_BATTERY_RT5033 is not set -# CONFIG_CHARGER_BD99954 is not set -# CONFIG_BATTERY_UG3105 is not set -# CONFIG_FUEL_GAUGE_MM8013 is not set -CONFIG_HWMON=y -# CONFIG_HWMON_DEBUG_CHIP is not set - -# -# Native drivers -# -# CONFIG_SENSORS_ABITUGURU is not set -# CONFIG_SENSORS_ABITUGURU3 is not set -# CONFIG_SENSORS_AD7414 is not set -# CONFIG_SENSORS_AD7418 is not set -# CONFIG_SENSORS_ADM1025 is not set -# CONFIG_SENSORS_ADM1026 is not set -# CONFIG_SENSORS_ADM1029 is not set -# CONFIG_SENSORS_ADM1031 is not set -# CONFIG_SENSORS_ADM1177 is not set -# CONFIG_SENSORS_ADM9240 is not set -# CONFIG_SENSORS_ADT7410 is not set -# CONFIG_SENSORS_ADT7411 is not set -# CONFIG_SENSORS_ADT7462 is not set -# CONFIG_SENSORS_ADT7470 is not set -# CONFIG_SENSORS_ADT7475 is not set -# CONFIG_SENSORS_AHT10 is not set -# CONFIG_SENSORS_AQUACOMPUTER_D5NEXT is not set -# CONFIG_SENSORS_AS370 is not set -# CONFIG_SENSORS_ASC7621 is not set -# CONFIG_SENSORS_ASUS_ROG_RYUJIN is not set -# CONFIG_SENSORS_AXI_FAN_CONTROL is not set -# CONFIG_SENSORS_K8TEMP is not set -# CONFIG_SENSORS_K10TEMP is not set -# CONFIG_SENSORS_FAM15H_POWER is not set -# CONFIG_SENSORS_APPLESMC is not set -# CONFIG_SENSORS_ASB100 is not set -# CONFIG_SENSORS_ATXP1 is not set -# CONFIG_SENSORS_CHIPCAP2 is not set -# CONFIG_SENSORS_CORSAIR_CPRO is not set -# CONFIG_SENSORS_CORSAIR_PSU is not set -# CONFIG_SENSORS_DRIVETEMP is not set -# CONFIG_SENSORS_DS620 is not set -# CONFIG_SENSORS_DS1621 is not set -# CONFIG_SENSORS_DELL_SMM is not set -# CONFIG_SENSORS_I5K_AMB is not set -# CONFIG_SENSORS_F71805F is not set -# CONFIG_SENSORS_F71882FG is not set -# CONFIG_SENSORS_F75375S is not set -# CONFIG_SENSORS_FSCHMD is not set -# CONFIG_SENSORS_FTSTEUTATES is not set -# CONFIG_SENSORS_GIGABYTE_WATERFORCE is not set -# CONFIG_SENSORS_GL518SM is not set -# CONFIG_SENSORS_GL520SM is not set -# CONFIG_SENSORS_G760A is not set -# CONFIG_SENSORS_G762 is not set -# CONFIG_SENSORS_HIH6130 is not set -# CONFIG_SENSORS_HS3001 is not set -# CONFIG_SENSORS_HTU31 is not set -# CONFIG_SENSORS_I5500 is not set -# CONFIG_SENSORS_CORETEMP is not set -# CONFIG_SENSORS_ISL28022 is not set -# CONFIG_SENSORS_IT87 is not set -# CONFIG_SENSORS_JC42 is not set -# CONFIG_SENSORS_POWERZ is not set -# CONFIG_SENSORS_POWR1220 is not set -# CONFIG_SENSORS_LENOVO_EC is not set -# CONFIG_SENSORS_LINEAGE is not set -# CONFIG_SENSORS_LTC2945 is not set -# CONFIG_SENSORS_LTC2947_I2C is not set -# CONFIG_SENSORS_LTC2990 is not set -# CONFIG_SENSORS_LTC2991 is not set -# CONFIG_SENSORS_LTC4151 is not set -# CONFIG_SENSORS_LTC4215 is not set -# CONFIG_SENSORS_LTC4222 is not set -# CONFIG_SENSORS_LTC4245 is not set -# CONFIG_SENSORS_LTC4260 is not set -# CONFIG_SENSORS_LTC4261 is not set -# CONFIG_SENSORS_LTC4282 is not set -# CONFIG_SENSORS_MAX127 is not set -# CONFIG_SENSORS_MAX16065 is not set -# CONFIG_SENSORS_MAX1619 is not set -# CONFIG_SENSORS_MAX1668 is not set -# CONFIG_SENSORS_MAX197 is not set -# CONFIG_SENSORS_MAX31730 is not set -# CONFIG_SENSORS_MAX31760 is not set -# CONFIG_MAX31827 is not set -# CONFIG_SENSORS_MAX6620 is not set -# CONFIG_SENSORS_MAX6621 is not set -# CONFIG_SENSORS_MAX6639 is not set -# CONFIG_SENSORS_MAX6650 is not set -# CONFIG_SENSORS_MAX6697 is not set -# CONFIG_SENSORS_MAX31790 is not set -# CONFIG_SENSORS_MC34VR500 is not set -# CONFIG_SENSORS_MCP3021 is not set -# CONFIG_SENSORS_TC654 is not set -# CONFIG_SENSORS_TPS23861 is not set -# CONFIG_SENSORS_MR75203 is not set -# CONFIG_SENSORS_LM63 is not set -# CONFIG_SENSORS_LM73 is not set -# CONFIG_SENSORS_LM75 is not set -# CONFIG_SENSORS_LM77 is not set -# CONFIG_SENSORS_LM78 is not set -# CONFIG_SENSORS_LM80 is not set -# CONFIG_SENSORS_LM83 is not set -# CONFIG_SENSORS_LM85 is not set -# CONFIG_SENSORS_LM87 is not set -# CONFIG_SENSORS_LM90 is not set -# CONFIG_SENSORS_LM92 is not set -# CONFIG_SENSORS_LM93 is not set -# CONFIG_SENSORS_LM95234 is not set -# CONFIG_SENSORS_LM95241 is not set -# CONFIG_SENSORS_LM95245 is not set -# CONFIG_SENSORS_PC87360 is not set -# CONFIG_SENSORS_PC87427 is not set -# CONFIG_SENSORS_NCT6683 is not set -# CONFIG_SENSORS_NCT6775 is not set -# CONFIG_SENSORS_NCT6775_I2C is not set -# CONFIG_SENSORS_NCT7363 is not set -# CONFIG_SENSORS_NCT7802 is not set -# CONFIG_SENSORS_NCT7904 is not set -# CONFIG_SENSORS_NPCM7XX is not set -# CONFIG_SENSORS_NZXT_KRAKEN2 is not set -# CONFIG_SENSORS_NZXT_KRAKEN3 is not set -# CONFIG_SENSORS_NZXT_SMART2 is not set -# CONFIG_SENSORS_OCC_P8_I2C is not set -# CONFIG_SENSORS_OXP is not set -# CONFIG_SENSORS_PCF8591 is not set -# CONFIG_PMBUS is not set -# CONFIG_SENSORS_PT5161L is not set -# CONFIG_SENSORS_SBTSI is not set -# CONFIG_SENSORS_SBRMI is not set -# CONFIG_SENSORS_SHT21 is not set -# CONFIG_SENSORS_SHT3x is not set -# CONFIG_SENSORS_SHT4x is not set -# CONFIG_SENSORS_SHTC1 is not set -# CONFIG_SENSORS_SIS5595 is not set -# CONFIG_SENSORS_DME1737 is not set -# CONFIG_SENSORS_EMC1403 is not set -# CONFIG_SENSORS_EMC2103 is not set -# CONFIG_SENSORS_EMC2305 is not set -# CONFIG_SENSORS_EMC6W201 is not set -# CONFIG_SENSORS_SMSC47M1 is not set -# CONFIG_SENSORS_SMSC47M192 is not set -# CONFIG_SENSORS_SMSC47B397 is not set -# CONFIG_SENSORS_SCH5627 is not set -# CONFIG_SENSORS_SCH5636 is not set -# CONFIG_SENSORS_STTS751 is not set -# CONFIG_SENSORS_ADC128D818 is not set -# CONFIG_SENSORS_ADS7828 is not set -# CONFIG_SENSORS_AMC6821 is not set -# CONFIG_SENSORS_INA209 is not set -# CONFIG_SENSORS_INA2XX is not set -# CONFIG_SENSORS_INA238 is not set -# CONFIG_SENSORS_INA3221 is not set -# CONFIG_SENSORS_SPD5118 is not set -# CONFIG_SENSORS_TC74 is not set -# CONFIG_SENSORS_THMC50 is not set -# CONFIG_SENSORS_TMP102 is not set -# CONFIG_SENSORS_TMP103 is not set -# CONFIG_SENSORS_TMP108 is not set -# CONFIG_SENSORS_TMP401 is not set -# CONFIG_SENSORS_TMP421 is not set -# CONFIG_SENSORS_TMP464 is not set -# CONFIG_SENSORS_TMP513 is not set -# CONFIG_SENSORS_VIA_CPUTEMP is not set -# CONFIG_SENSORS_VIA686A is not set -# CONFIG_SENSORS_VT1211 is not set -# CONFIG_SENSORS_VT8231 is not set -# CONFIG_SENSORS_W83773G is not set -# CONFIG_SENSORS_W83781D is not set -# CONFIG_SENSORS_W83791D is not set -# CONFIG_SENSORS_W83792D is not set -# CONFIG_SENSORS_W83793 is not set -# CONFIG_SENSORS_W83795 is not set -# CONFIG_SENSORS_W83L785TS is not set -# CONFIG_SENSORS_W83L786NG is not set -# CONFIG_SENSORS_W83627HF is not set -# CONFIG_SENSORS_W83627EHF is not set -# CONFIG_SENSORS_XGENE is not set - -# -# ACPI drivers -# -# CONFIG_SENSORS_ACPI_POWER is not set -# CONFIG_SENSORS_ATK0110 is not set -# CONFIG_SENSORS_ASUS_WMI is not set -# CONFIG_SENSORS_ASUS_EC is not set -# CONFIG_SENSORS_HP_WMI is not set -CONFIG_THERMAL=y -CONFIG_THERMAL_NETLINK=y -# CONFIG_THERMAL_STATISTICS is not set -# CONFIG_THERMAL_DEBUGFS is not set -# CONFIG_THERMAL_CORE_TESTING is not set -CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 -CONFIG_THERMAL_HWMON=y -CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y -# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set -# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set -# CONFIG_THERMAL_GOV_FAIR_SHARE is not set -CONFIG_THERMAL_GOV_STEP_WISE=y -# CONFIG_THERMAL_GOV_BANG_BANG is not set -# CONFIG_THERMAL_GOV_USER_SPACE is not set -# CONFIG_PCIE_THERMAL is not set -# CONFIG_THERMAL_EMULATION is not set - -# -# Intel thermal drivers -# -# CONFIG_INTEL_POWERCLAMP is not set -CONFIG_X86_THERMAL_VECTOR=y -CONFIG_INTEL_TCC=y -CONFIG_X86_PKG_TEMP_THERMAL=m -# CONFIG_INTEL_SOC_DTS_THERMAL is not set - -# -# ACPI INT340X thermal drivers -# -# CONFIG_INT340X_THERMAL is not set -# end of ACPI INT340X thermal drivers - -# CONFIG_INTEL_PCH_THERMAL is not set -# CONFIG_INTEL_TCC_COOLING is not set -# CONFIG_INTEL_HFI_THERMAL is not set -# end of Intel thermal drivers - -CONFIG_WATCHDOG=y -# CONFIG_WATCHDOG_CORE is not set -# CONFIG_WATCHDOG_NOWAYOUT is not set -CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y -CONFIG_WATCHDOG_OPEN_TIMEOUT=0 -# CONFIG_WATCHDOG_SYSFS is not set -# CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT is not set - -# -# Watchdog Pretimeout Governors -# - -# -# Watchdog Device Drivers -# -# CONFIG_SOFT_WATCHDOG is not set -# CONFIG_LENOVO_SE10_WDT is not set -# CONFIG_LENOVO_SE30_WDT is not set -# CONFIG_WDAT_WDT is not set -# CONFIG_XILINX_WATCHDOG is not set -# CONFIG_ZIIRAVE_WATCHDOG is not set -# CONFIG_CADENCE_WATCHDOG is not set -# CONFIG_DW_WATCHDOG is not set -# CONFIG_MAX63XX_WATCHDOG is not set -# CONFIG_ACQUIRE_WDT is not set -# CONFIG_ADVANTECH_WDT is not set -# CONFIG_ADVANTECH_EC_WDT is not set -# CONFIG_ALIM1535_WDT is not set -# CONFIG_ALIM7101_WDT is not set -# CONFIG_EBC_C384_WDT is not set -# CONFIG_EXAR_WDT is not set -# CONFIG_F71808E_WDT is not set -# CONFIG_SP5100_TCO is not set -# CONFIG_SBC_FITPC2_WATCHDOG is not set -# CONFIG_EUROTECH_WDT is not set -# CONFIG_IB700_WDT is not set -# CONFIG_IBMASR is not set -# CONFIG_WAFER_WDT is not set -# CONFIG_I6300ESB_WDT is not set -# CONFIG_IE6XX_WDT is not set -# CONFIG_ITCO_WDT is not set -# CONFIG_IT8712F_WDT is not set -# CONFIG_IT87_WDT is not set -# CONFIG_HP_WATCHDOG is not set -# CONFIG_SC1200_WDT is not set -# CONFIG_PC87413_WDT is not set -# CONFIG_NV_TCO is not set -# CONFIG_60XX_WDT is not set -# CONFIG_SMSC_SCH311X_WDT is not set -# CONFIG_SMSC37B787_WDT is not set -# CONFIG_TQMX86_WDT is not set -# CONFIG_VIA_WDT is not set -# CONFIG_W83627HF_WDT is not set -# CONFIG_W83877F_WDT is not set -# CONFIG_W83977F_WDT is not set -# CONFIG_MACHZ_WDT is not set -# CONFIG_SBC_EPX_C3_WATCHDOG is not set -# CONFIG_INTEL_MEI_WDT is not set -# CONFIG_NI903X_WDT is not set -# CONFIG_NIC7018_WDT is not set - -# -# PCI-based Watchdog Cards -# -# CONFIG_PCIPCWATCHDOG is not set -# CONFIG_WDTPCI is not set - -# -# USB-based Watchdog Cards -# -# CONFIG_USBPCWATCHDOG is not set -CONFIG_SSB_POSSIBLE=y -# CONFIG_SSB is not set -CONFIG_BCMA_POSSIBLE=y -# CONFIG_BCMA is not set - -# -# Multifunction device drivers -# -# CONFIG_MFD_AS3711 is not set -# CONFIG_MFD_SMPRO is not set -# CONFIG_PMIC_ADP5520 is not set -# CONFIG_MFD_BCM590XX is not set -# CONFIG_MFD_BD9571MWV is not set -# CONFIG_MFD_AXP20X_I2C is not set -# CONFIG_MFD_CGBC is not set -# CONFIG_MFD_CS42L43_I2C is not set -# CONFIG_MFD_MADERA is not set -# CONFIG_PMIC_DA903X is not set -# CONFIG_MFD_DA9052_I2C is not set -# CONFIG_MFD_DA9055 is not set -# CONFIG_MFD_DA9062 is not set -# CONFIG_MFD_DA9063 is not set -# CONFIG_MFD_DA9150 is not set -# CONFIG_MFD_DLN2 is not set -# CONFIG_MFD_MC13XXX_I2C is not set -# CONFIG_MFD_MP2629 is not set -# CONFIG_LPC_ICH is not set -# CONFIG_LPC_SCH is not set -# CONFIG_MFD_INTEL_LPSS_ACPI is not set -# CONFIG_MFD_INTEL_LPSS_PCI is not set -# CONFIG_MFD_INTEL_PMC_BXT is not set -# CONFIG_MFD_IQS62X is not set -# CONFIG_MFD_JANZ_CMODIO is not set -# CONFIG_MFD_KEMPLD is not set -# CONFIG_MFD_88PM800 is not set -# CONFIG_MFD_88PM805 is not set -# CONFIG_MFD_88PM860X is not set -# CONFIG_MFD_MAX14577 is not set -# CONFIG_MFD_MAX77541 is not set -# CONFIG_MFD_MAX77693 is not set -# CONFIG_MFD_MAX77705 is not set -# CONFIG_MFD_MAX77843 is not set -# CONFIG_MFD_MAX8907 is not set -# CONFIG_MFD_MAX8925 is not set -# CONFIG_MFD_MAX8997 is not set -# CONFIG_MFD_MAX8998 is not set -# CONFIG_MFD_MT6360 is not set -# CONFIG_MFD_MT6370 is not set -# CONFIG_MFD_MT6397 is not set -# CONFIG_MFD_MENF21BMC is not set -# CONFIG_MFD_VIPERBOARD is not set -# CONFIG_MFD_RETU is not set -# CONFIG_MFD_SY7636A is not set -# CONFIG_MFD_RDC321X is not set -# CONFIG_MFD_RT4831 is not set -# CONFIG_MFD_RT5033 is not set -# CONFIG_MFD_RT5120 is not set -# CONFIG_MFD_RC5T583 is not set -# CONFIG_MFD_SI476X_CORE is not set -# CONFIG_MFD_SM501 is not set -# CONFIG_MFD_SKY81452 is not set -# CONFIG_MFD_SYSCON is not set -# CONFIG_MFD_LP3943 is not set -# CONFIG_MFD_LP8788 is not set -# CONFIG_MFD_TI_LMU is not set -# CONFIG_MFD_PALMAS is not set -# CONFIG_TPS6105X is not set -# CONFIG_TPS6507X is not set -# CONFIG_MFD_TPS65086 is not set -# CONFIG_MFD_TPS65090 is not set -# CONFIG_MFD_TI_LP873X is not set -# CONFIG_MFD_TPS6586X is not set -# CONFIG_MFD_TPS65912_I2C is not set -# CONFIG_MFD_TPS6594_I2C is not set -# CONFIG_TWL4030_CORE is not set -# CONFIG_TWL6040_CORE is not set -# CONFIG_MFD_WL1273_CORE is not set -# CONFIG_MFD_LM3533 is not set -# CONFIG_MFD_TQMX86 is not set -# CONFIG_MFD_VX855 is not set -# CONFIG_MFD_ARIZONA_I2C is not set -# CONFIG_MFD_WM8400 is not set -# CONFIG_MFD_WM831X_I2C is not set -# CONFIG_MFD_WM8350_I2C is not set -# CONFIG_MFD_WM8994 is not set -# CONFIG_MFD_ATC260X_I2C is not set -# CONFIG_MFD_CS40L50_I2C is not set -# CONFIG_MFD_UPBOARD_FPGA is not set -# end of Multifunction device drivers - -# CONFIG_REGULATOR is not set -# CONFIG_RC_CORE is not set - -# -# CEC support -# -# CONFIG_MEDIA_CEC_SUPPORT is not set -# end of CEC support - -# CONFIG_MEDIA_SUPPORT is not set - -# -# Graphics support -# -CONFIG_APERTURE_HELPERS=y -CONFIG_VIDEO=y -# CONFIG_AUXDISPLAY is not set -# CONFIG_AGP is not set -CONFIG_DRM=y -# CONFIG_DRM_DEBUG_MM is not set -CONFIG_DRM_KMS_HELPER=y -# CONFIG_DRM_PANIC is not set -CONFIG_DRM_CLIENT=y -CONFIG_DRM_CLIENT_LIB=y -CONFIG_DRM_CLIENT_SELECTION=y -CONFIG_DRM_CLIENT_SETUP=y - -# -# Supported DRM clients -# -CONFIG_DRM_FBDEV_EMULATION=y -CONFIG_DRM_FBDEV_OVERALLOC=100 -# CONFIG_DRM_CLIENT_LOG is not set -CONFIG_DRM_CLIENT_DEFAULT_FBDEV=y -CONFIG_DRM_CLIENT_DEFAULT="fbdev" -# end of Supported DRM clients - -CONFIG_DRM_LOAD_EDID_FIRMWARE=y -CONFIG_DRM_TTM=y -CONFIG_DRM_EXEC=y -CONFIG_DRM_TTM_HELPER=y -CONFIG_DRM_GEM_SHMEM_HELPER=y - -# -# ARM devices -# -# end of ARM devices - -# CONFIG_DRM_RADEON is not set -# CONFIG_DRM_AMDGPU is not set -# CONFIG_DRM_NOUVEAU is not set -# CONFIG_DRM_I915 is not set -# CONFIG_DRM_XE is not set -# CONFIG_DRM_VGEM is not set -# CONFIG_DRM_VKMS is not set -# CONFIG_DRM_VMWGFX is not set -# CONFIG_DRM_GMA500 is not set -# CONFIG_DRM_UDL is not set -# CONFIG_DRM_AST is not set -# CONFIG_DRM_MGAG200 is not set -CONFIG_DRM_QXL=y -CONFIG_DRM_VIRTIO_GPU=y -CONFIG_DRM_VIRTIO_GPU_KMS=y -CONFIG_DRM_PANEL=y - -# -# Display Panels -# -# end of Display Panels - -CONFIG_DRM_BRIDGE=y -CONFIG_DRM_PANEL_BRIDGE=y - -# -# Display Interface Bridges -# -# CONFIG_DRM_I2C_NXP_TDA998X is not set -# CONFIG_DRM_ANALOGIX_ANX78XX is not set -# end of Display Interface Bridges - -# CONFIG_DRM_ETNAVIV is not set -# CONFIG_DRM_HISI_HIBMC is not set -# CONFIG_DRM_APPLETBDRM is not set -CONFIG_DRM_BOCHS=y -# CONFIG_DRM_CIRRUS_QEMU is not set -# CONFIG_DRM_GM12U320 is not set -# CONFIG_DRM_SIMPLEDRM is not set -# CONFIG_DRM_VBOXVIDEO is not set -# CONFIG_DRM_GUD is not set -# CONFIG_DRM_SSD130X is not set -CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y - -# -# Frame buffer Devices -# -# CONFIG_FB is not set -CONFIG_FB_CORE=y -# CONFIG_FB_DEVICE is not set -CONFIG_FB_SYS_FILLRECT=y -CONFIG_FB_SYS_COPYAREA=y -CONFIG_FB_SYS_IMAGEBLIT=y -CONFIG_FB_SYSMEM_FOPS=y -CONFIG_FB_DEFERRED_IO=y -CONFIG_FB_SYSMEM_HELPERS=y -CONFIG_FB_SYSMEM_HELPERS_DEFERRED=y -# end of Frame buffer Devices - -# -# Backlight & LCD device support -# -# CONFIG_LCD_CLASS_DEVICE is not set -CONFIG_BACKLIGHT_CLASS_DEVICE=y -# CONFIG_BACKLIGHT_KTD2801 is not set -# CONFIG_BACKLIGHT_KTZ8866 is not set -# CONFIG_BACKLIGHT_APPLE is not set -# CONFIG_BACKLIGHT_QCOM_WLED is not set -# CONFIG_BACKLIGHT_SAHARA is not set -# CONFIG_BACKLIGHT_ADP8860 is not set -# CONFIG_BACKLIGHT_ADP8870 is not set -# CONFIG_BACKLIGHT_LM3509 is not set -# CONFIG_BACKLIGHT_LM3639 is not set -# CONFIG_BACKLIGHT_LV5207LP is not set -# CONFIG_BACKLIGHT_BD6107 is not set -# CONFIG_BACKLIGHT_ARCXCNN is not set -# end of Backlight & LCD device support - -CONFIG_HDMI=y - -# -# Console display driver support -# -CONFIG_VGA_CONSOLE=y -CONFIG_DUMMY_CONSOLE=y -CONFIG_DUMMY_CONSOLE_COLUMNS=80 -CONFIG_DUMMY_CONSOLE_ROWS=25 -CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set -CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y -# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set -# end of Console display driver support - -# CONFIG_LOGO is not set -# end of Graphics support - -# CONFIG_DRM_ACCEL is not set -CONFIG_SOUND=y -CONFIG_SND=y -CONFIG_SND_TIMER=y -CONFIG_SND_PCM=y -CONFIG_SND_HWDEP=y -CONFIG_SND_SEQ_DEVICE=y -CONFIG_SND_JACK=y -CONFIG_SND_JACK_INPUT_DEV=y -# CONFIG_SND_OSSEMUL is not set -CONFIG_SND_PCM_TIMER=y -CONFIG_SND_HRTIMER=y -# CONFIG_SND_DYNAMIC_MINORS is not set -CONFIG_SND_SUPPORT_OLD_API=y -CONFIG_SND_PROC_FS=y -CONFIG_SND_VERBOSE_PROCFS=y -CONFIG_SND_CTL_FAST_LOOKUP=y -# CONFIG_SND_DEBUG is not set -# CONFIG_SND_CTL_INPUT_VALIDATION is not set -# CONFIG_SND_UTIMER is not set -CONFIG_SND_VMASTER=y -CONFIG_SND_DMA_SGBUF=y -CONFIG_SND_SEQUENCER=y -CONFIG_SND_SEQ_DUMMY=y -CONFIG_SND_SEQ_HRTIMER_DEFAULT=y -# CONFIG_SND_SEQ_UMP is not set -CONFIG_SND_DRIVERS=y -# CONFIG_SND_PCSP is not set -# CONFIG_SND_DUMMY is not set -# CONFIG_SND_ALOOP is not set -# CONFIG_SND_PCMTEST is not set -# CONFIG_SND_VIRMIDI is not set -# CONFIG_SND_MTPAV is not set -# CONFIG_SND_SERIAL_U16550 is not set -# CONFIG_SND_MPU401 is not set -CONFIG_SND_PCI=y -# CONFIG_SND_AD1889 is not set -# CONFIG_SND_ALS300 is not set -# CONFIG_SND_ALS4000 is not set -# CONFIG_SND_ALI5451 is not set -# CONFIG_SND_ASIHPI is not set -# CONFIG_SND_ATIIXP is not set -# CONFIG_SND_ATIIXP_MODEM is not set -# CONFIG_SND_AU8810 is not set -# CONFIG_SND_AU8820 is not set -# CONFIG_SND_AU8830 is not set -# CONFIG_SND_AW2 is not set -# CONFIG_SND_AZT3328 is not set -# CONFIG_SND_BT87X is not set -# CONFIG_SND_CA0106 is not set -# CONFIG_SND_CMIPCI is not set -# CONFIG_SND_OXYGEN is not set -# CONFIG_SND_CS4281 is not set -# CONFIG_SND_CS46XX is not set -# CONFIG_SND_CTXFI is not set -# CONFIG_SND_DARLA20 is not set -# CONFIG_SND_GINA20 is not set -# CONFIG_SND_LAYLA20 is not set -# CONFIG_SND_DARLA24 is not set -# CONFIG_SND_GINA24 is not set -# CONFIG_SND_LAYLA24 is not set -# CONFIG_SND_MONA is not set -# CONFIG_SND_MIA is not set -# CONFIG_SND_ECHO3G is not set -# CONFIG_SND_INDIGO is not set -# CONFIG_SND_INDIGOIO is not set -# CONFIG_SND_INDIGODJ is not set -# CONFIG_SND_INDIGOIOX is not set -# CONFIG_SND_INDIGODJX is not set -# CONFIG_SND_EMU10K1 is not set -# CONFIG_SND_EMU10K1X is not set -# CONFIG_SND_ENS1370 is not set -# CONFIG_SND_ENS1371 is not set -# CONFIG_SND_ES1938 is not set -# CONFIG_SND_ES1968 is not set -# CONFIG_SND_FM801 is not set -# CONFIG_SND_HDSP is not set -# CONFIG_SND_HDSPM is not set -# CONFIG_SND_ICE1712 is not set -# CONFIG_SND_ICE1724 is not set -# CONFIG_SND_INTEL8X0 is not set -# CONFIG_SND_INTEL8X0M is not set -# CONFIG_SND_KORG1212 is not set -# CONFIG_SND_LOLA is not set -# CONFIG_SND_LX6464ES is not set -# CONFIG_SND_MAESTRO3 is not set -# CONFIG_SND_MIXART is not set -# CONFIG_SND_NM256 is not set -# CONFIG_SND_PCXHR is not set -# CONFIG_SND_RIPTIDE is not set -# CONFIG_SND_RME32 is not set -# CONFIG_SND_RME96 is not set -# CONFIG_SND_RME9652 is not set -# CONFIG_SND_SE6X is not set -# CONFIG_SND_SONICVIBES is not set -# CONFIG_SND_TRIDENT is not set -# CONFIG_SND_VIA82XX is not set -# CONFIG_SND_VIA82XX_MODEM is not set -# CONFIG_SND_VIRTUOSO is not set -# CONFIG_SND_VX222 is not set -# CONFIG_SND_YMFPCI is not set - -# -# HD-Audio -# -CONFIG_SND_HDA=y -CONFIG_SND_HDA_INTEL=y -CONFIG_SND_HDA_HWDEP=y -# CONFIG_SND_HDA_RECONFIG is not set -# CONFIG_SND_HDA_INPUT_BEEP is not set -# CONFIG_SND_HDA_PATCH_LOADER is not set -# CONFIG_SND_HDA_CODEC_REALTEK is not set -# CONFIG_SND_HDA_CODEC_ANALOG is not set -# CONFIG_SND_HDA_CODEC_SIGMATEL is not set -# CONFIG_SND_HDA_CODEC_VIA is not set -# CONFIG_SND_HDA_CODEC_HDMI is not set -# CONFIG_SND_HDA_CODEC_CIRRUS is not set -# CONFIG_SND_HDA_CODEC_CS8409 is not set -# CONFIG_SND_HDA_CODEC_CONEXANT is not set -# CONFIG_SND_HDA_CODEC_SENARYTECH is not set -# CONFIG_SND_HDA_CODEC_CA0110 is not set -# CONFIG_SND_HDA_CODEC_CA0132 is not set -# CONFIG_SND_HDA_CODEC_CMEDIA is not set -# CONFIG_SND_HDA_CODEC_SI3054 is not set -# CONFIG_SND_HDA_GENERIC is not set -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 -# CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM is not set -# CONFIG_SND_HDA_CTL_DEV_ID is not set -# end of HD-Audio - -CONFIG_SND_HDA_CORE=y -CONFIG_SND_HDA_PREALLOC_SIZE=0 -CONFIG_SND_INTEL_NHLT=y -CONFIG_SND_INTEL_DSP_CONFIG=y -CONFIG_SND_INTEL_SOUNDWIRE_ACPI=y -CONFIG_SND_USB=y -# CONFIG_SND_USB_AUDIO is not set -# CONFIG_SND_USB_UA101 is not set -# CONFIG_SND_USB_USX2Y is not set -# CONFIG_SND_USB_CAIAQ is not set -# CONFIG_SND_USB_US122L is not set -# CONFIG_SND_USB_6FIRE is not set -# CONFIG_SND_USB_HIFACE is not set -# CONFIG_SND_BCD2000 is not set -# CONFIG_SND_USB_POD is not set -# CONFIG_SND_USB_PODHD is not set -# CONFIG_SND_USB_TONEPORT is not set -# CONFIG_SND_USB_VARIAX is not set -# CONFIG_SND_PCMCIA is not set -# CONFIG_SND_SOC is not set -CONFIG_SND_X86=y -CONFIG_SND_VIRTIO=y -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -# CONFIG_HID_BATTERY_STRENGTH is not set -CONFIG_HIDRAW=y -# CONFIG_UHID is not set -CONFIG_HID_GENERIC=y - -# -# Special HID drivers -# -CONFIG_HID_A4TECH=y -# CONFIG_HID_ACCUTOUCH is not set -# CONFIG_HID_ACRUX is not set -CONFIG_HID_APPLE=y -# CONFIG_HID_APPLEIR is not set -# CONFIG_HID_APPLETB_BL is not set -# CONFIG_HID_APPLETB_KBD is not set -# CONFIG_HID_ASUS is not set -# CONFIG_HID_AUREAL is not set -CONFIG_HID_BELKIN=y -# CONFIG_HID_BETOP_FF is not set -# CONFIG_HID_BIGBEN_FF is not set -CONFIG_HID_CHERRY=y -CONFIG_HID_CHICONY=y -# CONFIG_HID_CORSAIR is not set -# CONFIG_HID_COUGAR is not set -# CONFIG_HID_MACALLY is not set -# CONFIG_HID_PRODIKEYS is not set -# CONFIG_HID_CMEDIA is not set -# CONFIG_HID_CREATIVE_SB0540 is not set -CONFIG_HID_CYPRESS=y -# CONFIG_HID_DRAGONRISE is not set -# CONFIG_HID_EMS_FF is not set -# CONFIG_HID_ELAN is not set -# CONFIG_HID_ELECOM is not set -# CONFIG_HID_ELO is not set -# CONFIG_HID_EVISION is not set -CONFIG_HID_EZKEY=y -# CONFIG_HID_FT260 is not set -# CONFIG_HID_GEMBIRD is not set -# CONFIG_HID_GFRM is not set -# CONFIG_HID_GLORIOUS is not set -# CONFIG_HID_HOLTEK is not set -# CONFIG_HID_GOOGLE_STADIA_FF is not set -# CONFIG_HID_VIVALDI is not set -# CONFIG_HID_GT683R is not set -# CONFIG_HID_KEYTOUCH is not set -# CONFIG_HID_KYE is not set -# CONFIG_HID_KYSONA is not set -# CONFIG_HID_UCLOGIC is not set -# CONFIG_HID_WALTOP is not set -# CONFIG_HID_VIEWSONIC is not set -# CONFIG_HID_VRC2 is not set -# CONFIG_HID_XIAOMI is not set -CONFIG_HID_GYRATION=y -# CONFIG_HID_ICADE is not set -CONFIG_HID_ITE=y -# CONFIG_HID_JABRA is not set -# CONFIG_HID_TWINHAN is not set -CONFIG_HID_KENSINGTON=y -# CONFIG_HID_LCPOWER is not set -# CONFIG_HID_LED is not set -# CONFIG_HID_LENOVO is not set -# CONFIG_HID_LETSKETCH is not set -# CONFIG_HID_MAGICMOUSE is not set -# CONFIG_HID_MALTRON is not set -# CONFIG_HID_MAYFLASH is not set -# CONFIG_HID_MEGAWORLD_FF is not set -CONFIG_HID_REDRAGON=y -CONFIG_HID_MICROSOFT=y -CONFIG_HID_MONTEREY=y -# CONFIG_HID_MULTITOUCH is not set -# CONFIG_HID_NINTENDO is not set -# CONFIG_HID_NTI is not set -CONFIG_HID_NTRIG=y -# CONFIG_HID_ORTEK is not set -CONFIG_HID_PANTHERLORD=y -CONFIG_PANTHERLORD_FF=y -# CONFIG_HID_PENMOUNT is not set -CONFIG_HID_PETALYNX=y -# CONFIG_HID_PICOLCD is not set -# CONFIG_HID_PLANTRONICS is not set -# CONFIG_HID_PXRC is not set -# CONFIG_HID_RAZER is not set -# CONFIG_HID_PRIMAX is not set -# CONFIG_HID_RETRODE is not set -# CONFIG_HID_ROCCAT is not set -# CONFIG_HID_SAITEK is not set -CONFIG_HID_SAMSUNG=y -# CONFIG_HID_SEMITEK is not set -# CONFIG_HID_SIGMAMICRO is not set -CONFIG_HID_SONY=y -# CONFIG_SONY_FF is not set -# CONFIG_HID_SPEEDLINK is not set -# CONFIG_HID_STEAM is not set -# CONFIG_HID_STEELSERIES is not set -CONFIG_HID_SUNPLUS=y -# CONFIG_HID_RMI is not set -# CONFIG_HID_GREENASIA is not set -# CONFIG_HID_SMARTJOYPLUS is not set -# CONFIG_HID_TIVO is not set -CONFIG_HID_TOPSEED=y -# CONFIG_HID_TOPRE is not set -# CONFIG_HID_THINGM is not set -# CONFIG_HID_THRUSTMASTER is not set -# CONFIG_HID_UDRAW_PS3 is not set -# CONFIG_HID_U2FZERO is not set -# CONFIG_HID_UNIVERSAL_PIDFF is not set -# CONFIG_HID_WACOM is not set -# CONFIG_HID_WIIMOTE is not set -# CONFIG_HID_WINWING is not set -# CONFIG_HID_XINMO is not set -# CONFIG_HID_ZEROPLUS is not set -# CONFIG_HID_ZYDACRON is not set -# CONFIG_HID_SENSOR_HUB is not set -# CONFIG_HID_ALPS is not set -# CONFIG_HID_MCP2221 is not set -# end of Special HID drivers - -# -# HID-BPF support -# -# end of HID-BPF support - -CONFIG_I2C_HID=y -# CONFIG_I2C_HID_ACPI is not set -# CONFIG_I2C_HID_OF is not set - -# -# Intel ISH HID support -# -# CONFIG_INTEL_ISH_HID is not set -# end of Intel ISH HID support - -# -# AMD SFH HID Support -# -# CONFIG_AMD_SFH_HID is not set -# end of AMD SFH HID Support - -# -# Intel THC HID Support -# -# CONFIG_INTEL_THC_HID is not set -# end of Intel THC HID Support - -# -# USB HID support -# -CONFIG_USB_HID=y -CONFIG_HID_PID=y -CONFIG_USB_HIDDEV=y -# end of USB HID support - -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_SUPPORT=y -CONFIG_USB_COMMON=y -# CONFIG_USB_LED_TRIG is not set -# CONFIG_USB_ULPI_BUS is not set -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB=y -CONFIG_USB_PCI=y -CONFIG_USB_PCI_AMD=y -CONFIG_USB_ANNOUNCE_NEW_DEVICES=y - -# -# Miscellaneous USB options -# -CONFIG_USB_DEFAULT_PERSIST=y -# CONFIG_USB_FEW_INIT_RETRIES is not set -# CONFIG_USB_DYNAMIC_MINORS is not set -# CONFIG_USB_OTG is not set -# CONFIG_USB_OTG_PRODUCTLIST is not set -# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set -CONFIG_USB_AUTOSUSPEND_DELAY=2 -CONFIG_USB_DEFAULT_AUTHORIZATION_MODE=1 -CONFIG_USB_MON=y - -# -# USB Host Controller Drivers -# -# CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_XHCI_HCD=y -# CONFIG_USB_XHCI_DBGCAP is not set -CONFIG_USB_XHCI_PCI=y -# CONFIG_USB_XHCI_PCI_RENESAS is not set -# CONFIG_USB_XHCI_PLATFORM is not set -CONFIG_USB_EHCI_HCD=y -# CONFIG_USB_EHCI_ROOT_HUB_TT is not set -CONFIG_USB_EHCI_TT_NEWSCHED=y -CONFIG_USB_EHCI_PCI=y -# CONFIG_USB_EHCI_FSL is not set -# CONFIG_USB_EHCI_HCD_PLATFORM is not set -# CONFIG_USB_OXU210HP_HCD is not set -# CONFIG_USB_ISP116X_HCD is not set -CONFIG_USB_OHCI_HCD=y -CONFIG_USB_OHCI_HCD_PCI=y -# CONFIG_USB_OHCI_HCD_PLATFORM is not set -CONFIG_USB_UHCI_HCD=y -# CONFIG_USB_SL811_HCD is not set -# CONFIG_USB_R8A66597_HCD is not set -# CONFIG_USB_HCD_TEST_MODE is not set - -# -# USB Device Class drivers -# -# CONFIG_USB_ACM is not set -CONFIG_USB_PRINTER=y -# CONFIG_USB_WDM is not set -# CONFIG_USB_TMC is not set - -# -# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; see USB_STORAGE Help for more info -# -CONFIG_USB_STORAGE=y -# CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_REALTEK is not set -# CONFIG_USB_STORAGE_DATAFAB is not set -# CONFIG_USB_STORAGE_FREECOM is not set -# CONFIG_USB_STORAGE_ISD200 is not set -# CONFIG_USB_STORAGE_USBAT is not set -# CONFIG_USB_STORAGE_SDDR09 is not set -# CONFIG_USB_STORAGE_SDDR55 is not set -# CONFIG_USB_STORAGE_JUMPSHOT is not set -# CONFIG_USB_STORAGE_ALAUDA is not set -# CONFIG_USB_STORAGE_ONETOUCH is not set -# CONFIG_USB_STORAGE_KARMA is not set -# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set -# CONFIG_USB_STORAGE_ENE_UB6250 is not set -# CONFIG_USB_UAS is not set - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set -# CONFIG_USBIP_CORE is not set - -# -# USB dual-mode controller drivers -# -# CONFIG_USB_CDNS_SUPPORT is not set -# CONFIG_USB_MUSB_HDRC is not set -# CONFIG_USB_DWC3 is not set -# CONFIG_USB_DWC2 is not set -# CONFIG_USB_CHIPIDEA is not set -# CONFIG_USB_ISP1760 is not set - -# -# USB port drivers -# -# CONFIG_USB_SERIAL is not set - -# -# USB Miscellaneous drivers -# -# CONFIG_USB_EMI62 is not set -# CONFIG_USB_EMI26 is not set -# CONFIG_USB_ADUTUX is not set -# CONFIG_USB_SEVSEG is not set -# CONFIG_USB_LEGOTOWER is not set -# CONFIG_USB_LCD is not set -# CONFIG_USB_CYPRESS_CY7C63 is not set -# CONFIG_USB_CYTHERM is not set -# CONFIG_USB_IDMOUSE is not set -# CONFIG_USB_APPLEDISPLAY is not set -# CONFIG_APPLE_MFI_FASTCHARGE is not set -# CONFIG_USB_LJCA is not set -# CONFIG_USB_SISUSBVGA is not set -# CONFIG_USB_LD is not set -# CONFIG_USB_TRANCEVIBRATOR is not set -# CONFIG_USB_IOWARRIOR is not set -# CONFIG_USB_TEST is not set -# CONFIG_USB_EHSET_TEST_FIXTURE is not set -# CONFIG_USB_ISIGHTFW is not set -# CONFIG_USB_YUREX is not set -# CONFIG_USB_EZUSB_FX2 is not set -# CONFIG_USB_HUB_USB251XB is not set -# CONFIG_USB_HSIC_USB3503 is not set -# CONFIG_USB_HSIC_USB4604 is not set -# CONFIG_USB_LINK_LAYER_TEST is not set -# CONFIG_USB_CHAOSKEY is not set - -# -# USB Physical Layer drivers -# -# CONFIG_NOP_USB_XCEIV is not set -# CONFIG_USB_ISP1301 is not set -# end of USB Physical Layer drivers - -# CONFIG_USB_GADGET is not set -# CONFIG_TYPEC is not set -# CONFIG_USB_ROLE_SWITCH is not set -# CONFIG_MMC is not set -# CONFIG_SCSI_UFSHCD is not set -# CONFIG_MEMSTICK is not set -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -# CONFIG_LEDS_CLASS_FLASH is not set -# CONFIG_LEDS_CLASS_MULTICOLOR is not set -# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set - -# -# LED drivers -# -# CONFIG_LEDS_APU is not set -# CONFIG_LEDS_AW200XX is not set -# CONFIG_LEDS_LM3530 is not set -# CONFIG_LEDS_LM3532 is not set -# CONFIG_LEDS_LM3642 is not set -# CONFIG_LEDS_PCA9532 is not set -# CONFIG_LEDS_LP3944 is not set -# CONFIG_LEDS_PCA955X is not set -# CONFIG_LEDS_PCA963X is not set -# CONFIG_LEDS_PCA995X is not set -# CONFIG_LEDS_BD2606MVV is not set -# CONFIG_LEDS_BD2802 is not set -# CONFIG_LEDS_INTEL_SS4200 is not set -# CONFIG_LEDS_TCA6507 is not set -# CONFIG_LEDS_TLC591XX is not set -# CONFIG_LEDS_LM355x is not set -# CONFIG_LEDS_IS31FL319X is not set - -# -# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) -# -# CONFIG_LEDS_BLINKM is not set -# CONFIG_LEDS_MLXCPLD is not set -# CONFIG_LEDS_MLXREG is not set -# CONFIG_LEDS_USER is not set -# CONFIG_LEDS_NIC78BX is not set - -# -# Flash and Torch LED drivers -# - -# -# RGB LED drivers -# - -# -# LED Triggers -# -CONFIG_LEDS_TRIGGERS=y -# CONFIG_LEDS_TRIGGER_TIMER is not set -# CONFIG_LEDS_TRIGGER_ONESHOT is not set -# CONFIG_LEDS_TRIGGER_DISK is not set -# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set -# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set -# CONFIG_LEDS_TRIGGER_CPU is not set -# CONFIG_LEDS_TRIGGER_ACTIVITY is not set -# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set - -# -# iptables trigger is under Netfilter config (LED target) -# -# CONFIG_LEDS_TRIGGER_TRANSIENT is not set -# CONFIG_LEDS_TRIGGER_CAMERA is not set -# CONFIG_LEDS_TRIGGER_PANIC is not set -# CONFIG_LEDS_TRIGGER_NETDEV is not set -# CONFIG_LEDS_TRIGGER_PATTERN is not set -# CONFIG_LEDS_TRIGGER_TTY is not set -# CONFIG_LEDS_TRIGGER_INPUT_EVENTS is not set - -# -# Simatic LED drivers -# -# CONFIG_ACCESSIBILITY is not set -# CONFIG_INFINIBAND is not set -CONFIG_EDAC_ATOMIC_SCRUB=y -CONFIG_EDAC_SUPPORT=y -CONFIG_RTC_LIB=y -CONFIG_RTC_MC146818_LIB=y -CONFIG_RTC_CLASS=y -# CONFIG_RTC_HCTOSYS is not set -CONFIG_RTC_SYSTOHC=y -CONFIG_RTC_SYSTOHC_DEVICE="rtc0" -# CONFIG_RTC_DEBUG is not set -CONFIG_RTC_NVMEM=y - -# -# RTC interfaces -# -CONFIG_RTC_INTF_SYSFS=y -CONFIG_RTC_INTF_PROC=y -CONFIG_RTC_INTF_DEV=y -# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -# CONFIG_RTC_DRV_TEST is not set - -# -# I2C RTC drivers -# -# CONFIG_RTC_DRV_ABB5ZES3 is not set -# CONFIG_RTC_DRV_ABEOZ9 is not set -# CONFIG_RTC_DRV_ABX80X is not set -# CONFIG_RTC_DRV_DS1307 is not set -# CONFIG_RTC_DRV_DS1374 is not set -# CONFIG_RTC_DRV_DS1672 is not set -# CONFIG_RTC_DRV_MAX6900 is not set -# CONFIG_RTC_DRV_RS5C372 is not set -# CONFIG_RTC_DRV_ISL1208 is not set -# CONFIG_RTC_DRV_ISL12022 is not set -# CONFIG_RTC_DRV_X1205 is not set -# CONFIG_RTC_DRV_PCF8523 is not set -# CONFIG_RTC_DRV_PCF85063 is not set -# CONFIG_RTC_DRV_PCF85363 is not set -# CONFIG_RTC_DRV_PCF8563 is not set -# CONFIG_RTC_DRV_PCF8583 is not set -# CONFIG_RTC_DRV_M41T80 is not set -# CONFIG_RTC_DRV_BQ32K is not set -# CONFIG_RTC_DRV_S35390A is not set -# CONFIG_RTC_DRV_FM3130 is not set -# CONFIG_RTC_DRV_RX8010 is not set -# CONFIG_RTC_DRV_RX8111 is not set -# CONFIG_RTC_DRV_RX8581 is not set -# CONFIG_RTC_DRV_RX8025 is not set -# CONFIG_RTC_DRV_EM3027 is not set -# CONFIG_RTC_DRV_RV3028 is not set -# CONFIG_RTC_DRV_RV3032 is not set -# CONFIG_RTC_DRV_RV8803 is not set -# CONFIG_RTC_DRV_SD2405AL is not set -# CONFIG_RTC_DRV_SD3078 is not set - -# -# SPI RTC drivers -# -CONFIG_RTC_I2C_AND_SPI=y - -# -# SPI and I2C RTC drivers -# -# CONFIG_RTC_DRV_DS3232 is not set -# CONFIG_RTC_DRV_PCF2127 is not set -# CONFIG_RTC_DRV_RV3029C2 is not set -# CONFIG_RTC_DRV_RX6110 is not set - -# -# Platform RTC drivers -# -CONFIG_RTC_DRV_CMOS=y -# CONFIG_RTC_DRV_DS1286 is not set -# CONFIG_RTC_DRV_DS1511 is not set -# CONFIG_RTC_DRV_DS1553 is not set -# CONFIG_RTC_DRV_DS1685_FAMILY is not set -# CONFIG_RTC_DRV_DS1742 is not set -# CONFIG_RTC_DRV_DS2404 is not set -# CONFIG_RTC_DRV_STK17TA8 is not set -# CONFIG_RTC_DRV_M48T86 is not set -# CONFIG_RTC_DRV_M48T35 is not set -# CONFIG_RTC_DRV_M48T59 is not set -# CONFIG_RTC_DRV_MSM6242 is not set -# CONFIG_RTC_DRV_RP5C01 is not set - -# -# on-CPU RTC drivers -# -# CONFIG_RTC_DRV_FTRTC010 is not set - -# -# HID Sensor RTC drivers -# -# CONFIG_RTC_DRV_GOLDFISH is not set -CONFIG_DMADEVICES=y -# CONFIG_DMADEVICES_DEBUG is not set - -# -# DMA Devices -# -CONFIG_DMA_ENGINE=y -CONFIG_DMA_VIRTUAL_CHANNELS=y -CONFIG_DMA_ACPI=y -# CONFIG_ALTERA_MSGDMA is not set -# CONFIG_INTEL_IDMA64 is not set -# CONFIG_INTEL_IDXD is not set -# CONFIG_INTEL_IDXD_COMPAT is not set -# CONFIG_INTEL_IOATDMA is not set -# CONFIG_PLX_DMA is not set -# CONFIG_XILINX_DMA is not set -# CONFIG_XILINX_XDMA is not set -# CONFIG_AMD_PTDMA is not set -# CONFIG_AMD_QDMA is not set -# CONFIG_QCOM_HIDMA_MGMT is not set -# CONFIG_QCOM_HIDMA is not set -CONFIG_DW_DMAC_CORE=y -# CONFIG_DW_DMAC is not set -# CONFIG_DW_DMAC_PCI is not set -# CONFIG_DW_EDMA is not set -CONFIG_HSU_DMA=y -# CONFIG_SF_PDMA is not set -# CONFIG_INTEL_LDMA is not set - -# -# DMA Clients -# -# CONFIG_ASYNC_TX_DMA is not set -# CONFIG_DMATEST is not set - -# -# DMABUF options -# -CONFIG_SYNC_FILE=y -# CONFIG_SW_SYNC is not set -# CONFIG_UDMABUF is not set -# CONFIG_DMABUF_MOVE_NOTIFY is not set -# CONFIG_DMABUF_DEBUG is not set -# CONFIG_DMABUF_SELFTESTS is not set -# CONFIG_DMABUF_HEAPS is not set -# CONFIG_DMABUF_SYSFS_STATS is not set -# end of DMABUF options - -# CONFIG_UIO is not set -# CONFIG_VFIO is not set -# CONFIG_VIRT_DRIVERS is not set -CONFIG_VIRTIO_ANCHOR=y -CONFIG_VIRTIO=y -CONFIG_VIRTIO_PCI_LIB=y -CONFIG_VIRTIO_PCI_LIB_LEGACY=y -CONFIG_VIRTIO_MENU=y -CONFIG_VIRTIO_PCI=y -CONFIG_VIRTIO_PCI_ADMIN_LEGACY=y -CONFIG_VIRTIO_PCI_LEGACY=y -# CONFIG_VIRTIO_BALLOON is not set -CONFIG_VIRTIO_INPUT=y -# CONFIG_VIRTIO_MMIO is not set -CONFIG_VIRTIO_DMA_SHARED_BUFFER=y -# CONFIG_VIRTIO_DEBUG is not set -# CONFIG_VDPA is not set -CONFIG_VHOST_MENU=y -# CONFIG_VHOST_NET is not set -# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set - -# -# Microsoft Hyper-V guest support -# -# CONFIG_HYPERV is not set -# end of Microsoft Hyper-V guest support - -# CONFIG_GREYBUS is not set -# CONFIG_COMEDI is not set -# CONFIG_STAGING is not set -# CONFIG_GOLDFISH is not set -# CONFIG_CHROME_PLATFORMS is not set -# CONFIG_MELLANOX_PLATFORM is not set -# CONFIG_SURFACE_PLATFORMS is not set -CONFIG_X86_PLATFORM_DEVICES=y -CONFIG_ACPI_WMI=y -CONFIG_WMI_BMOF=y -# CONFIG_HUAWEI_WMI is not set -# CONFIG_MXM_WMI is not set -# CONFIG_NVIDIA_WMI_EC_BACKLIGHT is not set -# CONFIG_XIAOMI_WMI is not set -# CONFIG_GIGABYTE_WMI is not set -# CONFIG_YOGABOOK is not set -# CONFIG_ACERHDF is not set -# CONFIG_ACER_WIRELESS is not set -# CONFIG_ACER_WMI is not set - -# -# AMD HSMP Driver -# -# CONFIG_AMD_HSMP_ACPI is not set -# CONFIG_AMD_HSMP_PLAT is not set -# end of AMD HSMP Driver - -# CONFIG_AMD_PMC is not set -# CONFIG_AMD_3D_VCACHE is not set -# CONFIG_AMD_WBRF is not set -# CONFIG_ADV_SWBUTTON is not set -# CONFIG_APPLE_GMUX is not set -# CONFIG_ASUS_LAPTOP is not set -# CONFIG_ASUS_WIRELESS is not set -# CONFIG_ASUS_WMI is not set -CONFIG_EEEPC_LAPTOP=y -# CONFIG_X86_PLATFORM_DRIVERS_DELL is not set -# CONFIG_AMILO_RFKILL is not set -# CONFIG_FUJITSU_LAPTOP is not set -# CONFIG_FUJITSU_TABLET is not set -# CONFIG_GPD_POCKET_FAN is not set -# CONFIG_X86_PLATFORM_DRIVERS_HP is not set -# CONFIG_WIRELESS_HOTKEY is not set -# CONFIG_IBM_RTL is not set -# CONFIG_IDEAPAD_LAPTOP is not set -# CONFIG_LENOVO_WMI_HOTKEY_UTILITIES is not set -# CONFIG_SENSORS_HDAPS is not set -# CONFIG_THINKPAD_ACPI is not set -# CONFIG_THINKPAD_LMI is not set -# CONFIG_INTEL_ATOMISP2_PM is not set -# CONFIG_INTEL_IFS is not set -# CONFIG_INTEL_SAR_INT1092 is not set - -# -# Intel Speed Select Technology interface support -# -# CONFIG_INTEL_SPEED_SELECT_INTERFACE is not set -# end of Intel Speed Select Technology interface support - -# CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set -# CONFIG_INTEL_WMI_THUNDERBOLT is not set - -# -# Intel Uncore Frequency Control -# -# CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set -# end of Intel Uncore Frequency Control - -# CONFIG_INTEL_HID_EVENT is not set -# CONFIG_INTEL_VBTN is not set -# CONFIG_INTEL_OAKTRAIL is not set -# CONFIG_INTEL_PUNIT_IPC is not set -# CONFIG_INTEL_RST is not set -# CONFIG_INTEL_SMARTCONNECT is not set -# CONFIG_INTEL_TURBO_MAX_3 is not set -# CONFIG_INTEL_VSEC is not set -# CONFIG_ACPI_QUICKSTART is not set -# CONFIG_MSI_EC is not set -# CONFIG_MSI_LAPTOP is not set -# CONFIG_MSI_WMI is not set -# CONFIG_MSI_WMI_PLATFORM is not set -# CONFIG_SAMSUNG_GALAXYBOOK is not set -# CONFIG_SAMSUNG_LAPTOP is not set -# CONFIG_SAMSUNG_Q10 is not set -# CONFIG_TOSHIBA_BT_RFKILL is not set -# CONFIG_TOSHIBA_HAPS is not set -# CONFIG_TOSHIBA_WMI is not set -# CONFIG_ACPI_CMPC is not set -# CONFIG_COMPAL_LAPTOP is not set -# CONFIG_LG_LAPTOP is not set -# CONFIG_PANASONIC_LAPTOP is not set -# CONFIG_SONY_LAPTOP is not set -# CONFIG_SYSTEM76_ACPI is not set -# CONFIG_TOPSTAR_LAPTOP is not set -# CONFIG_SERIAL_MULTI_INSTANTIATE is not set -# CONFIG_INSPUR_PLATFORM_PROFILE is not set -# CONFIG_LENOVO_WMI_CAMERA is not set -# CONFIG_INTEL_IPS is not set -# CONFIG_INTEL_SCU_PCI is not set -# CONFIG_INTEL_SCU_PLATFORM is not set -# CONFIG_SIEMENS_SIMATIC_IPC is not set -# CONFIG_WINMATE_FM07_KEYS is not set -CONFIG_P2SB=y -# CONFIG_COMMON_CLK is not set -# CONFIG_HWSPINLOCK is not set - -# -# Clock Source drivers -# -CONFIG_CLKEVT_I8253=y -CONFIG_I8253_LOCK=y -CONFIG_CLKBLD_I8253=y -# end of Clock Source drivers - -CONFIG_MAILBOX=y -CONFIG_PCC=y -# CONFIG_ALTERA_MBOX is not set -CONFIG_IOMMU_IOVA=y -CONFIG_IOMMU_API=y -CONFIG_IOMMU_SUPPORT=y - -# -# Generic IOMMU Pagetable Support -# -CONFIG_IOMMU_IO_PGTABLE=y -# end of Generic IOMMU Pagetable Support - -# CONFIG_IOMMU_DEBUGFS is not set -# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set -CONFIG_IOMMU_DEFAULT_DMA_LAZY=y -# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set -CONFIG_IOMMU_DMA=y -CONFIG_IOMMU_SVA=y -CONFIG_IOMMU_IOPF=y -CONFIG_AMD_IOMMU=y -CONFIG_DMAR_TABLE=y -CONFIG_INTEL_IOMMU=y -# CONFIG_INTEL_IOMMU_SVM is not set -# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set -CONFIG_INTEL_IOMMU_FLOPPY_WA=y -CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON=y -CONFIG_INTEL_IOMMU_PERF_EVENTS=y -# CONFIG_IOMMUFD is not set -# CONFIG_IRQ_REMAP is not set -# CONFIG_VIRTIO_IOMMU is not set - -# -# Remoteproc drivers -# -# CONFIG_REMOTEPROC is not set -# end of Remoteproc drivers - -# -# Rpmsg drivers -# -# CONFIG_RPMSG_QCOM_GLINK_RPM is not set -# CONFIG_RPMSG_VIRTIO is not set -# end of Rpmsg drivers - -# -# SOC (System On Chip) specific Drivers -# - -# -# Amlogic SoC drivers -# -# end of Amlogic SoC drivers - -# -# Broadcom SoC drivers -# -# end of Broadcom SoC drivers - -# -# NXP/Freescale QorIQ SoC drivers -# -# end of NXP/Freescale QorIQ SoC drivers - -# -# fujitsu SoC drivers -# -# end of fujitsu SoC drivers - -# -# i.MX SoC drivers -# -# end of i.MX SoC drivers - -# -# Enable LiteX SoC Builder specific drivers -# -# end of Enable LiteX SoC Builder specific drivers - -# CONFIG_WPCM450_SOC is not set - -# -# Qualcomm SoC drivers -# -# end of Qualcomm SoC drivers - -# CONFIG_SOC_TI is not set - -# -# Xilinx SoC drivers -# -# end of Xilinx SoC drivers -# end of SOC (System On Chip) specific Drivers - -# -# PM Domains -# - -# -# Amlogic PM Domains -# -# end of Amlogic PM Domains - -# -# Broadcom PM Domains -# -# end of Broadcom PM Domains - -# -# i.MX PM Domains -# -# end of i.MX PM Domains - -# -# Qualcomm PM Domains -# -# end of Qualcomm PM Domains -# end of PM Domains - -# CONFIG_PM_DEVFREQ is not set -# CONFIG_EXTCON is not set -# CONFIG_MEMORY is not set -# CONFIG_IIO is not set -# CONFIG_NTB is not set -# CONFIG_PWM is not set - -# -# IRQ chip support -# -# end of IRQ chip support - -# CONFIG_IPACK_BUS is not set -# CONFIG_RESET_CONTROLLER is not set - -# -# PHY Subsystem -# -# CONFIG_GENERIC_PHY is not set -# CONFIG_USB_LGM_PHY is not set -# CONFIG_PHY_CAN_TRANSCEIVER is not set - -# -# PHY drivers for Broadcom platforms -# -# CONFIG_BCM_KONA_USB2_PHY is not set -# end of PHY drivers for Broadcom platforms - -# CONFIG_PHY_PXA_28NM_HSIC is not set -# CONFIG_PHY_PXA_28NM_USB2 is not set -# CONFIG_PHY_INTEL_LGM_EMMC is not set -# end of PHY Subsystem - -# CONFIG_POWERCAP is not set -# CONFIG_MCB is not set - -# -# Performance monitor support -# -# CONFIG_DWC_PCIE_PMU is not set -# end of Performance monitor support - -# CONFIG_RAS is not set -# CONFIG_USB4 is not set - -# -# Android -# -# CONFIG_ANDROID_BINDER_IPC is not set -# end of Android - -# CONFIG_LIBNVDIMM is not set -# CONFIG_DAX is not set -CONFIG_NVMEM=y -CONFIG_NVMEM_SYSFS=y -# CONFIG_NVMEM_LAYOUTS is not set -# CONFIG_NVMEM_RMEM is not set - -# -# HW tracing support -# -# CONFIG_STM is not set -# CONFIG_INTEL_TH is not set -# end of HW tracing support - -# CONFIG_FPGA is not set -# CONFIG_TEE is not set -# CONFIG_SIOX is not set -# CONFIG_SLIMBUS is not set -# CONFIG_INTERCONNECT is not set -# CONFIG_COUNTER is not set -# CONFIG_PECI is not set -# CONFIG_HTE is not set -# end of Device Drivers - -# -# File systems -# -CONFIG_DCACHE_WORD_ACCESS=y -# CONFIG_VALIDATE_FS_PARSER is not set -CONFIG_FS_IOMAP=y -CONFIG_BUFFER_HEAD=y -CONFIG_LEGACY_DIRECT_IO=y -# CONFIG_EXT2_FS is not set -# CONFIG_EXT3_FS is not set -CONFIG_EXT4_FS=y -CONFIG_EXT4_USE_FOR_EXT2=y -CONFIG_EXT4_FS_POSIX_ACL=y -CONFIG_EXT4_FS_SECURITY=y -# CONFIG_EXT4_DEBUG is not set -CONFIG_JBD2=y -# CONFIG_JBD2_DEBUG is not set -CONFIG_FS_MBCACHE=y -# CONFIG_JFS_FS is not set -CONFIG_XFS_FS=y -CONFIG_XFS_SUPPORT_V4=y -CONFIG_XFS_SUPPORT_ASCII_CI=y -# CONFIG_XFS_QUOTA is not set -# CONFIG_XFS_POSIX_ACL is not set -# CONFIG_XFS_RT is not set -# CONFIG_XFS_ONLINE_SCRUB is not set -# CONFIG_XFS_WARN is not set -# CONFIG_XFS_DEBUG is not set -# CONFIG_GFS2_FS is not set -# CONFIG_BTRFS_FS is not set -# CONFIG_NILFS2_FS is not set -# CONFIG_F2FS_FS is not set -# CONFIG_BCACHEFS_FS is not set -CONFIG_FS_POSIX_ACL=y -CONFIG_EXPORTFS=y -# CONFIG_EXPORTFS_BLOCK_OPS is not set -CONFIG_FILE_LOCKING=y -# CONFIG_FS_ENCRYPTION is not set -# CONFIG_FS_VERITY is not set -CONFIG_FSNOTIFY=y -CONFIG_DNOTIFY=y -CONFIG_INOTIFY_USER=y -# CONFIG_FANOTIFY is not set -CONFIG_QUOTA=y -CONFIG_QUOTA_NETLINK_INTERFACE=y -# CONFIG_QUOTA_DEBUG is not set -CONFIG_QUOTA_TREE=y -# CONFIG_QFMT_V1 is not set -CONFIG_QFMT_V2=y -CONFIG_QUOTACTL=y -CONFIG_AUTOFS_FS=y -# CONFIG_FUSE_FS is not set -# CONFIG_OVERLAY_FS is not set - -# -# Caches -# -CONFIG_NETFS_SUPPORT=y -# CONFIG_NETFS_STATS is not set -# CONFIG_NETFS_DEBUG is not set -# CONFIG_FSCACHE is not set -# end of Caches - -# -# CD-ROM/DVD Filesystems -# -CONFIG_ISO9660_FS=y -CONFIG_JOLIET=y -CONFIG_ZISOFS=y -# CONFIG_UDF_FS is not set -# end of CD-ROM/DVD Filesystems - -# -# DOS/FAT/EXFAT/NT Filesystems -# -CONFIG_FAT_FS=y -CONFIG_MSDOS_FS=y -CONFIG_VFAT_FS=y -CONFIG_FAT_DEFAULT_CODEPAGE=437 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -# CONFIG_FAT_DEFAULT_UTF8 is not set -# CONFIG_EXFAT_FS is not set -# CONFIG_NTFS3_FS is not set -# CONFIG_NTFS_FS is not set -# end of DOS/FAT/EXFAT/NT Filesystems - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -CONFIG_PROC_KCORE=y -CONFIG_PROC_VMCORE=y -# CONFIG_PROC_VMCORE_DEVICE_DUMP is not set -CONFIG_PROC_SYSCTL=y -CONFIG_PROC_PAGE_MONITOR=y -# CONFIG_PROC_CHILDREN is not set -CONFIG_PROC_PID_ARCH_STATUS=y -CONFIG_KERNFS=y -CONFIG_SYSFS=y -CONFIG_TMPFS=y -CONFIG_TMPFS_POSIX_ACL=y -CONFIG_TMPFS_XATTR=y -# CONFIG_TMPFS_INODE64 is not set -# CONFIG_TMPFS_QUOTA is not set -CONFIG_HUGETLBFS=y -# CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON is not set -CONFIG_HUGETLB_PAGE=y -CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y -CONFIG_HUGETLB_PMD_PAGE_TABLE_SHARING=y -CONFIG_ARCH_HAS_GIGANTIC_PAGE=y -# CONFIG_CONFIGFS_FS is not set -CONFIG_EFIVAR_FS=y -# end of Pseudo filesystems - -CONFIG_MISC_FILESYSTEMS=y -# CONFIG_ORANGEFS_FS is not set -# CONFIG_ADFS_FS is not set -# CONFIG_AFFS_FS is not set -# CONFIG_ECRYPT_FS is not set -# CONFIG_HFS_FS is not set -# CONFIG_HFSPLUS_FS is not set -# CONFIG_BEFS_FS is not set -# CONFIG_BFS_FS is not set -# CONFIG_EFS_FS is not set -# CONFIG_CRAMFS is not set -# CONFIG_SQUASHFS is not set -# CONFIG_VXFS_FS is not set -# CONFIG_MINIX_FS is not set -# CONFIG_OMFS_FS is not set -# CONFIG_HPFS_FS is not set -# CONFIG_QNX4FS_FS is not set -# CONFIG_QNX6FS_FS is not set -# CONFIG_ROMFS_FS is not set -# CONFIG_PSTORE is not set -# CONFIG_UFS_FS is not set -# CONFIG_EROFS_FS is not set -CONFIG_NETWORK_FILESYSTEMS=y -CONFIG_NFS_FS=y -# CONFIG_NFS_V2 is not set -CONFIG_NFS_V3=y -CONFIG_NFS_V3_ACL=y -CONFIG_NFS_V4=y -# CONFIG_NFS_SWAP is not set -# CONFIG_NFS_V4_1 is not set -CONFIG_ROOT_NFS=y -# CONFIG_NFS_FSCACHE is not set -# CONFIG_NFS_USE_LEGACY_DNS is not set -CONFIG_NFS_USE_KERNEL_DNS=y -CONFIG_NFS_DISABLE_UDP_SUPPORT=y -# CONFIG_NFSD is not set -CONFIG_GRACE_PERIOD=y -CONFIG_LOCKD=y -CONFIG_LOCKD_V4=y -CONFIG_NFS_ACL_SUPPORT=y -CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=y -CONFIG_SUNRPC_GSS=y -CONFIG_RPCSEC_GSS_KRB5=y -# CONFIG_SUNRPC_DEBUG is not set -# CONFIG_CEPH_FS is not set -# CONFIG_CIFS is not set -# CONFIG_SMB_SERVER is not set -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set -CONFIG_9P_FS=y -# CONFIG_9P_FS_POSIX_ACL is not set -# CONFIG_9P_FS_SECURITY is not set -CONFIG_NLS=y -CONFIG_NLS_DEFAULT="utf8" -CONFIG_NLS_CODEPAGE_437=y -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -# CONFIG_NLS_CODEPAGE_850 is not set -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -CONFIG_NLS_ASCII=y -CONFIG_NLS_ISO8859_1=y -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -# CONFIG_NLS_MAC_ROMAN is not set -# CONFIG_NLS_MAC_CELTIC is not set -# CONFIG_NLS_MAC_CENTEURO is not set -# CONFIG_NLS_MAC_CROATIAN is not set -# CONFIG_NLS_MAC_CYRILLIC is not set -# CONFIG_NLS_MAC_GAELIC is not set -# CONFIG_NLS_MAC_GREEK is not set -# CONFIG_NLS_MAC_ICELAND is not set -# CONFIG_NLS_MAC_INUIT is not set -# CONFIG_NLS_MAC_ROMANIAN is not set -# CONFIG_NLS_MAC_TURKISH is not set -CONFIG_NLS_UTF8=y -# CONFIG_UNICODE is not set -CONFIG_IO_WQ=y -# end of File systems - -# -# Security options -# -CONFIG_KEYS=y -# CONFIG_KEYS_REQUEST_CACHE is not set -# CONFIG_PERSISTENT_KEYRINGS is not set -# CONFIG_BIG_KEYS is not set -# CONFIG_TRUSTED_KEYS is not set -# CONFIG_ENCRYPTED_KEYS is not set -# CONFIG_KEY_DH_OPERATIONS is not set -# CONFIG_SECURITY_DMESG_RESTRICT is not set -CONFIG_PROC_MEM_ALWAYS_FORCE=y -# CONFIG_PROC_MEM_FORCE_PTRACE is not set -# CONFIG_PROC_MEM_NO_FORCE is not set -# CONFIG_MSEAL_SYSTEM_MAPPINGS is not set -CONFIG_SECURITY=y -CONFIG_HAS_SECURITY_AUDIT=y -# CONFIG_SECURITYFS is not set -CONFIG_SECURITY_NETWORK=y -# CONFIG_SECURITY_NETWORK_XFRM is not set -# CONFIG_SECURITY_PATH is not set -# CONFIG_INTEL_TXT is not set -CONFIG_LSM_MMAP_MIN_ADDR=65536 -# CONFIG_STATIC_USERMODEHELPER is not set -CONFIG_SECURITY_SELINUX=y -CONFIG_SECURITY_SELINUX_BOOTPARAM=y -CONFIG_SECURITY_SELINUX_DEVELOP=y -CONFIG_SECURITY_SELINUX_AVC_STATS=y -CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9 -CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 -# CONFIG_SECURITY_SELINUX_DEBUG is not set -# CONFIG_SECURITY_SMACK is not set -# CONFIG_SECURITY_TOMOYO is not set -# CONFIG_SECURITY_APPARMOR is not set -# CONFIG_SECURITY_LOADPIN is not set -# CONFIG_SECURITY_YAMA is not set -# CONFIG_SECURITY_SAFESETID is not set -# CONFIG_SECURITY_LOCKDOWN_LSM is not set -# CONFIG_SECURITY_LANDLOCK is not set -CONFIG_INTEGRITY=y -# CONFIG_INTEGRITY_SIGNATURE is not set -CONFIG_INTEGRITY_AUDIT=y -# CONFIG_IMA is not set -# CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set -# CONFIG_EVM is not set -CONFIG_DEFAULT_SECURITY_SELINUX=y -# CONFIG_DEFAULT_SECURITY_DAC is not set -CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,selinux,smack,tomoyo,apparmor,ipe,bpf" - -# -# Kernel hardening options -# - -# -# Memory initialization -# -CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y -CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y -CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y -# CONFIG_INIT_STACK_NONE is not set -# CONFIG_INIT_STACK_ALL_PATTERN is not set -CONFIG_INIT_STACK_ALL_ZERO=y -# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set -# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set -CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y -# CONFIG_ZERO_CALL_USED_REGS is not set -# end of Memory initialization - -# -# Bounds checking -# -# CONFIG_FORTIFY_SOURCE is not set -# CONFIG_HARDENED_USERCOPY is not set -# end of Bounds checking - -# -# Hardening of kernel data structures -# -# CONFIG_LIST_HARDENED is not set -# CONFIG_BUG_ON_DATA_CORRUPTION is not set -# end of Hardening of kernel data structures - -CONFIG_CC_HAS_RANDSTRUCT=y -CONFIG_RANDSTRUCT_NONE=y -# CONFIG_RANDSTRUCT_FULL is not set -# end of Kernel hardening options -# end of Security options - -CONFIG_CRYPTO=y - -# -# Crypto core or helper -# -CONFIG_CRYPTO_ALGAPI=y -CONFIG_CRYPTO_ALGAPI2=y -CONFIG_CRYPTO_AEAD=y -CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_SIG=y -CONFIG_CRYPTO_SIG2=y -CONFIG_CRYPTO_SKCIPHER=y -CONFIG_CRYPTO_SKCIPHER2=y -CONFIG_CRYPTO_HASH=y -CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_RNG=y -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_RNG_DEFAULT=y -CONFIG_CRYPTO_AKCIPHER2=y -CONFIG_CRYPTO_AKCIPHER=y -CONFIG_CRYPTO_KPP2=y -CONFIG_CRYPTO_ACOMP2=y -CONFIG_CRYPTO_MANAGER=y -CONFIG_CRYPTO_MANAGER2=y -# CONFIG_CRYPTO_USER is not set -CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y -CONFIG_CRYPTO_NULL=y -CONFIG_CRYPTO_NULL2=y -# CONFIG_CRYPTO_PCRYPT is not set -# CONFIG_CRYPTO_CRYPTD is not set -CONFIG_CRYPTO_AUTHENC=y -# CONFIG_CRYPTO_KRB5ENC is not set -# CONFIG_CRYPTO_TEST is not set -# end of Crypto core or helper - -# -# Public-key cryptography -# -CONFIG_CRYPTO_RSA=y -# CONFIG_CRYPTO_DH is not set -# CONFIG_CRYPTO_ECDH is not set -# CONFIG_CRYPTO_ECDSA is not set -# CONFIG_CRYPTO_ECRDSA is not set -# CONFIG_CRYPTO_CURVE25519 is not set -# end of Public-key cryptography - -# -# Block ciphers -# -CONFIG_CRYPTO_AES=y -# CONFIG_CRYPTO_AES_TI is not set -# CONFIG_CRYPTO_ARIA is not set -# CONFIG_CRYPTO_BLOWFISH is not set -# CONFIG_CRYPTO_CAMELLIA is not set -# CONFIG_CRYPTO_CAST5 is not set -# CONFIG_CRYPTO_CAST6 is not set -# CONFIG_CRYPTO_DES is not set -# CONFIG_CRYPTO_FCRYPT is not set -# CONFIG_CRYPTO_SERPENT is not set -# CONFIG_CRYPTO_SM4_GENERIC is not set -# CONFIG_CRYPTO_TWOFISH is not set -# end of Block ciphers - -# -# Length-preserving ciphers and modes -# -# CONFIG_CRYPTO_ADIANTUM is not set -# CONFIG_CRYPTO_CHACHA20 is not set -CONFIG_CRYPTO_CBC=y -CONFIG_CRYPTO_CTR=y -# CONFIG_CRYPTO_CTS is not set -CONFIG_CRYPTO_ECB=y -# CONFIG_CRYPTO_HCTR2 is not set -# CONFIG_CRYPTO_LRW is not set -# CONFIG_CRYPTO_PCBC is not set -# CONFIG_CRYPTO_XTS is not set -# end of Length-preserving ciphers and modes - -# -# AEAD (authenticated encryption with associated data) ciphers -# -# CONFIG_CRYPTO_AEGIS128 is not set -# CONFIG_CRYPTO_CHACHA20POLY1305 is not set -CONFIG_CRYPTO_CCM=y -CONFIG_CRYPTO_GCM=y -CONFIG_CRYPTO_GENIV=y -CONFIG_CRYPTO_SEQIV=y -CONFIG_CRYPTO_ECHAINIV=y -# CONFIG_CRYPTO_ESSIV is not set -# end of AEAD (authenticated encryption with associated data) ciphers - -# -# Hashes, digests, and MACs -# -# CONFIG_CRYPTO_BLAKE2B is not set -CONFIG_CRYPTO_CMAC=y -CONFIG_CRYPTO_GHASH=y -CONFIG_CRYPTO_HMAC=y -# CONFIG_CRYPTO_MD4 is not set -CONFIG_CRYPTO_MD5=y -# CONFIG_CRYPTO_MICHAEL_MIC is not set -# CONFIG_CRYPTO_POLY1305 is not set -# CONFIG_CRYPTO_RMD160 is not set -# CONFIG_CRYPTO_SHA1 is not set -CONFIG_CRYPTO_SHA256=y -CONFIG_CRYPTO_SHA512=y -CONFIG_CRYPTO_SHA3=y -# CONFIG_CRYPTO_SM3_GENERIC is not set -# CONFIG_CRYPTO_STREEBOG is not set -# CONFIG_CRYPTO_WP512 is not set -# CONFIG_CRYPTO_XCBC is not set -# CONFIG_CRYPTO_XXHASH is not set -# end of Hashes, digests, and MACs - -# -# CRCs (cyclic redundancy checks) -# -# CONFIG_CRYPTO_CRC32C is not set -# CONFIG_CRYPTO_CRC32 is not set -# end of CRCs (cyclic redundancy checks) - -# -# Compression -# -# CONFIG_CRYPTO_DEFLATE is not set -CONFIG_CRYPTO_LZO=y -# CONFIG_CRYPTO_842 is not set -# CONFIG_CRYPTO_LZ4 is not set -# CONFIG_CRYPTO_LZ4HC is not set -# CONFIG_CRYPTO_ZSTD is not set -# end of Compression - -# -# Random number generation -# -# CONFIG_CRYPTO_ANSI_CPRNG is not set -CONFIG_CRYPTO_DRBG_MENU=y -CONFIG_CRYPTO_DRBG_HMAC=y -# CONFIG_CRYPTO_DRBG_HASH is not set -# CONFIG_CRYPTO_DRBG_CTR is not set -CONFIG_CRYPTO_DRBG=y -CONFIG_CRYPTO_JITTERENTROPY=y -CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKS=64 -CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE=32 -CONFIG_CRYPTO_JITTERENTROPY_OSR=1 -# end of Random number generation - -# -# Userspace interface -# -# CONFIG_CRYPTO_USER_API_HASH is not set -# CONFIG_CRYPTO_USER_API_SKCIPHER is not set -# CONFIG_CRYPTO_USER_API_RNG is not set -# CONFIG_CRYPTO_USER_API_AEAD is not set -# end of Userspace interface - -CONFIG_CRYPTO_HASH_INFO=y - -# -# Accelerated Cryptographic Algorithms for CPU (x86) -# -# CONFIG_CRYPTO_AES_NI_INTEL is not set -# CONFIG_CRYPTO_BLOWFISH_X86_64 is not set -# CONFIG_CRYPTO_CAMELLIA_X86_64 is not set -# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 is not set -# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 is not set -# CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set -# CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set -# CONFIG_CRYPTO_DES3_EDE_X86_64 is not set -# CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set -# CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set -# CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set -# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set -# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set -# CONFIG_CRYPTO_TWOFISH_X86_64 is not set -# CONFIG_CRYPTO_TWOFISH_X86_64_3WAY is not set -# CONFIG_CRYPTO_TWOFISH_AVX_X86_64 is not set -# CONFIG_CRYPTO_ARIA_AESNI_AVX_X86_64 is not set -# CONFIG_CRYPTO_ARIA_AESNI_AVX2_X86_64 is not set -# CONFIG_CRYPTO_ARIA_GFNI_AVX512_X86_64 is not set -# CONFIG_CRYPTO_AEGIS128_AESNI_SSE2 is not set -# CONFIG_CRYPTO_NHPOLY1305_SSE2 is not set -# CONFIG_CRYPTO_NHPOLY1305_AVX2 is not set -# CONFIG_CRYPTO_BLAKE2S_X86 is not set -# CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set -# CONFIG_CRYPTO_SHA1_SSSE3 is not set -# CONFIG_CRYPTO_SHA256_SSSE3 is not set -# CONFIG_CRYPTO_SHA512_SSSE3 is not set -# CONFIG_CRYPTO_SM3_AVX_X86_64 is not set -# CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set -# end of Accelerated Cryptographic Algorithms for CPU (x86) - -CONFIG_CRYPTO_HW=y -# CONFIG_CRYPTO_DEV_PADLOCK is not set -# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set -# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set -# CONFIG_CRYPTO_DEV_CCP is not set -# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set -# CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set -# CONFIG_CRYPTO_DEV_QAT_C3XXX is not set -# CONFIG_CRYPTO_DEV_QAT_C62X is not set -# CONFIG_CRYPTO_DEV_QAT_4XXX is not set -# CONFIG_CRYPTO_DEV_QAT_420XX is not set -# CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set -# CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set -# CONFIG_CRYPTO_DEV_QAT_C62XVF is not set -# CONFIG_CRYPTO_DEV_VIRTIO is not set -# CONFIG_CRYPTO_DEV_SAFEXCEL is not set -# CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set -CONFIG_ASYMMETRIC_KEY_TYPE=y -CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y -CONFIG_X509_CERTIFICATE_PARSER=y -# CONFIG_PKCS8_PRIVATE_KEY_PARSER is not set -CONFIG_PKCS7_MESSAGE_PARSER=y -# CONFIG_PKCS7_TEST_KEY is not set -# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set -# CONFIG_FIPS_SIGNATURE_SELFTEST is not set - -# -# Certificates for signature checking -# -CONFIG_SYSTEM_TRUSTED_KEYRING=y -CONFIG_SYSTEM_TRUSTED_KEYS="" -# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set -# CONFIG_SECONDARY_TRUSTED_KEYRING is not set -# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set -# end of Certificates for signature checking - -# CONFIG_CRYPTO_KRB5 is not set -CONFIG_BINARY_PRINTF=y - -# -# Library routines -# -# CONFIG_PACKING is not set -CONFIG_BITREVERSE=y -CONFIG_GENERIC_STRNCPY_FROM_USER=y -CONFIG_GENERIC_STRNLEN_USER=y -CONFIG_GENERIC_NET_UTILS=y -# CONFIG_CORDIC is not set -# CONFIG_PRIME_NUMBERS is not set -CONFIG_RATIONAL=y -CONFIG_GENERIC_IOMAP=y -CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y -CONFIG_ARCH_HAS_FAST_MULTIPLIER=y -CONFIG_ARCH_USE_SYM_ANNOTATIONS=y - -# -# Crypto library routines -# -CONFIG_CRYPTO_LIB_UTILS=y -CONFIG_CRYPTO_LIB_AES=y -CONFIG_CRYPTO_LIB_ARC4=y -CONFIG_CRYPTO_LIB_GF128MUL=y -CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y -CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11 -CONFIG_CRYPTO_LIB_SHA1=y -CONFIG_CRYPTO_LIB_SHA256=y -# end of Crypto library routines - -CONFIG_CRC_CCITT=y -CONFIG_CRC16=y -CONFIG_ARCH_HAS_CRC_T10DIF=y -CONFIG_CRC32=y -CONFIG_ARCH_HAS_CRC32=y -CONFIG_CRC32_ARCH=y -CONFIG_ARCH_HAS_CRC64=y -CONFIG_CRC_OPTIMIZATIONS=y -CONFIG_XXHASH=y -# CONFIG_RANDOM32_SELFTEST is not set -CONFIG_ZLIB_INFLATE=y -CONFIG_LZO_COMPRESS=y -CONFIG_LZO_DECOMPRESS=y -CONFIG_LZ4_DECOMPRESS=y -CONFIG_ZSTD_COMMON=y -CONFIG_ZSTD_DECOMPRESS=y -CONFIG_XZ_DEC=y -CONFIG_XZ_DEC_X86=y -CONFIG_XZ_DEC_POWERPC=y -CONFIG_XZ_DEC_ARM=y -CONFIG_XZ_DEC_ARMTHUMB=y -CONFIG_XZ_DEC_ARM64=y -CONFIG_XZ_DEC_SPARC=y -CONFIG_XZ_DEC_RISCV=y -# CONFIG_XZ_DEC_MICROLZMA is not set -CONFIG_XZ_DEC_BCJ=y -# CONFIG_XZ_DEC_TEST is not set -CONFIG_DECOMPRESS_GZIP=y -CONFIG_DECOMPRESS_BZIP2=y -CONFIG_DECOMPRESS_LZMA=y -CONFIG_DECOMPRESS_XZ=y -CONFIG_DECOMPRESS_LZO=y -CONFIG_DECOMPRESS_LZ4=y -CONFIG_DECOMPRESS_ZSTD=y -CONFIG_GENERIC_ALLOCATOR=y -CONFIG_INTERVAL_TREE=y -CONFIG_XARRAY_MULTI=y -CONFIG_ASSOCIATIVE_ARRAY=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT=y -CONFIG_HAS_IOPORT_MAP=y -CONFIG_HAS_DMA=y -CONFIG_DMA_OPS_HELPERS=y -CONFIG_NEED_SG_DMA_FLAGS=y -CONFIG_NEED_SG_DMA_LENGTH=y -CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_ARCH_DMA_ADDR_T_64BIT=y -CONFIG_SWIOTLB=y -# CONFIG_SWIOTLB_DYNAMIC is not set -CONFIG_DMA_NEED_SYNC=y -# CONFIG_DMA_API_DEBUG is not set -# CONFIG_DMA_MAP_BENCHMARK is not set -CONFIG_SGL_ALLOC=y -CONFIG_CHECK_SIGNATURE=y -CONFIG_CPU_RMAP=y -CONFIG_DQL=y -CONFIG_GLOB=y -# CONFIG_GLOB_SELFTEST is not set -CONFIG_NLATTR=y -CONFIG_CLZ_TAB=y -# CONFIG_IRQ_POLL is not set -CONFIG_MPILIB=y -CONFIG_DIMLIB=y -CONFIG_OID_REGISTRY=y -CONFIG_UCS2_STRING=y -CONFIG_HAVE_GENERIC_VDSO=y -CONFIG_GENERIC_GETTIMEOFDAY=y -CONFIG_GENERIC_VDSO_TIME_NS=y -CONFIG_GENERIC_VDSO_OVERFLOW_PROTECT=y -CONFIG_VDSO_GETRANDOM=y -CONFIG_GENERIC_VDSO_DATA_STORE=y -CONFIG_FONT_SUPPORT=y -# CONFIG_FONTS is not set -CONFIG_FONT_8x8=y -CONFIG_FONT_8x16=y -CONFIG_SG_POOL=y -CONFIG_ARCH_HAS_PMEM_API=y -CONFIG_ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION=y -CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y -CONFIG_ARCH_HAS_COPY_MC=y -CONFIG_ARCH_STACKWALK=y -CONFIG_STACKDEPOT=y -CONFIG_STACKDEPOT_MAX_FRAMES=64 -CONFIG_SBITMAP=y -# CONFIG_LWQ_TEST is not set -# end of Library routines - -CONFIG_FIRMWARE_TABLE=y -CONFIG_UNION_FIND=y - -# -# Kernel hacking -# - -# -# printk and dmesg options -# -CONFIG_PRINTK_TIME=y -# CONFIG_PRINTK_CALLER is not set -# CONFIG_STACKTRACE_BUILD_ID is not set -CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 -CONFIG_CONSOLE_LOGLEVEL_QUIET=4 -CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 -# CONFIG_BOOT_PRINTK_DELAY is not set -# CONFIG_DYNAMIC_DEBUG is not set -# CONFIG_DYNAMIC_DEBUG_CORE is not set -CONFIG_SYMBOLIC_ERRNAME=y -CONFIG_DEBUG_BUGVERBOSE=y -# end of printk and dmesg options - -CONFIG_DEBUG_KERNEL=y -CONFIG_DEBUG_MISC=y - -# -# Compile-time checks and compiler options -# -CONFIG_AS_HAS_NON_CONST_ULEB128=y -CONFIG_DEBUG_INFO_NONE=y -# CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is not set -# CONFIG_DEBUG_INFO_DWARF4 is not set -# CONFIG_DEBUG_INFO_DWARF5 is not set -CONFIG_FRAME_WARN=2048 -# CONFIG_STRIP_ASM_SYMS is not set -# CONFIG_HEADERS_INSTALL is not set -CONFIG_SECTION_MISMATCH_WARN_ONLY=y -CONFIG_OBJTOOL=y -# CONFIG_OBJTOOL_WERROR is not set -CONFIG_NOINSTR_VALIDATION=y -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set -# end of Compile-time checks and compiler options - -# -# Generic Kernel Debugging Instruments -# -CONFIG_MAGIC_SYSRQ=y -CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 -CONFIG_MAGIC_SYSRQ_SERIAL=y -CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" -CONFIG_DEBUG_FS=y -CONFIG_DEBUG_FS_ALLOW_ALL=y -# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set -# CONFIG_DEBUG_FS_ALLOW_NONE is not set -CONFIG_HAVE_ARCH_KGDB=y -# CONFIG_KGDB is not set -CONFIG_ARCH_HAS_UBSAN=y -# CONFIG_UBSAN is not set -CONFIG_HAVE_ARCH_KCSAN=y -CONFIG_HAVE_KCSAN_COMPILER=y -# CONFIG_KCSAN is not set -# end of Generic Kernel Debugging Instruments - -# -# Networking Debugging -# -# CONFIG_NET_DEV_REFCNT_TRACKER is not set -# CONFIG_NET_NS_REFCNT_TRACKER is not set -# CONFIG_DEBUG_NET is not set -# CONFIG_DEBUG_NET_SMALL_RTNL is not set -# end of Networking Debugging - -# -# Memory Debugging -# -# CONFIG_PAGE_EXTENSION is not set -# CONFIG_DEBUG_PAGEALLOC is not set -CONFIG_SLUB_DEBUG=y -# CONFIG_SLUB_DEBUG_ON is not set -# CONFIG_PAGE_OWNER is not set -# CONFIG_PAGE_TABLE_CHECK is not set -# CONFIG_PAGE_POISONING is not set -# CONFIG_DEBUG_PAGE_REF is not set -# CONFIG_DEBUG_RODATA_TEST is not set -CONFIG_ARCH_HAS_DEBUG_WX=y -CONFIG_DEBUG_WX=y -CONFIG_ARCH_HAS_PTDUMP=y -CONFIG_PTDUMP=y -# CONFIG_PTDUMP_DEBUGFS is not set -CONFIG_HAVE_DEBUG_KMEMLEAK=y -# CONFIG_DEBUG_KMEMLEAK is not set -# CONFIG_PER_VMA_LOCK_STATS is not set -# CONFIG_DEBUG_OBJECTS is not set -# CONFIG_SHRINKER_DEBUG is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_SCHED_STACK_END_CHECK is not set -CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y -# CONFIG_DEBUG_VFS is not set -# CONFIG_DEBUG_VM is not set -# CONFIG_DEBUG_VM_PGTABLE is not set -CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y -# CONFIG_DEBUG_VIRTUAL is not set -CONFIG_DEBUG_MEMORY_INIT=y -# CONFIG_DEBUG_PER_CPU_MAPS is not set -CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y -# CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set -# CONFIG_MEM_ALLOC_PROFILING is not set -CONFIG_HAVE_ARCH_KASAN=y -CONFIG_HAVE_ARCH_KASAN_VMALLOC=y -CONFIG_CC_HAS_KASAN_GENERIC=y -CONFIG_CC_HAS_KASAN_SW_TAGS=y -CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y -# CONFIG_KASAN is not set -CONFIG_HAVE_ARCH_KFENCE=y -# CONFIG_KFENCE is not set -CONFIG_HAVE_ARCH_KMSAN=y -CONFIG_HAVE_KMSAN_COMPILER=y -# CONFIG_KMSAN is not set -# end of Memory Debugging - -# CONFIG_DEBUG_SHIRQ is not set - -# -# Debug Oops, Lockups and Hangs -# -# CONFIG_PANIC_ON_OOPS is not set -CONFIG_PANIC_ON_OOPS_VALUE=0 -CONFIG_PANIC_TIMEOUT=0 -# CONFIG_SOFTLOCKUP_DETECTOR is not set -CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y -# CONFIG_HARDLOCKUP_DETECTOR is not set -CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y -# CONFIG_DETECT_HUNG_TASK is not set -# CONFIG_WQ_WATCHDOG is not set -# CONFIG_WQ_CPU_INTENSIVE_REPORT is not set -# CONFIG_TEST_LOCKUP is not set -# end of Debug Oops, Lockups and Hangs - -# -# Scheduler Debugging -# -CONFIG_SCHED_INFO=y -CONFIG_SCHEDSTATS=y -# end of Scheduler Debugging - -# CONFIG_DEBUG_PREEMPT is not set - -# -# Lock Debugging (spinlocks, mutexes, etc...) -# -CONFIG_LOCK_DEBUGGING_SUPPORT=y -# CONFIG_PROVE_LOCKING is not set -# CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set -# CONFIG_DEBUG_RWSEMS is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_DEBUG_ATOMIC_SLEEP is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_LOCK_TORTURE_TEST is not set -# CONFIG_WW_MUTEX_SELFTEST is not set -# CONFIG_SCF_TORTURE_TEST is not set -# CONFIG_CSD_LOCK_WAIT_DEBUG is not set -# end of Lock Debugging (spinlocks, mutexes, etc...) - -# CONFIG_NMI_CHECK_CPU is not set -# CONFIG_DEBUG_IRQFLAGS is not set -CONFIG_STACKTRACE=y -# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set -# CONFIG_DEBUG_KOBJECT is not set - -# -# Debug kernel data structures -# -# CONFIG_DEBUG_LIST is not set -# CONFIG_DEBUG_PLIST is not set -# CONFIG_DEBUG_SG is not set -# CONFIG_DEBUG_NOTIFIERS is not set -# CONFIG_DEBUG_MAPLE_TREE is not set -# end of Debug kernel data structures - -# -# RCU Debugging -# -# CONFIG_RCU_SCALE_TEST is not set -# CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_RCU_REF_SCALE_TEST is not set -CONFIG_RCU_CPU_STALL_TIMEOUT=21 -CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 -# CONFIG_RCU_CPU_STALL_CPUTIME is not set -CONFIG_RCU_TRACE=y -# CONFIG_RCU_EQS_DEBUG is not set -# end of RCU Debugging - -# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set -# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set -# CONFIG_LATENCYTOP is not set -# CONFIG_DEBUG_CGROUP_REF is not set -CONFIG_USER_STACKTRACE_SUPPORT=y -CONFIG_NOP_TRACER=y -CONFIG_HAVE_RETHOOK=y -CONFIG_RETHOOK=y -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y -CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y -CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y -CONFIG_HAVE_FTRACE_REGS_HAVING_PT_REGS=y -CONFIG_HAVE_DYNAMIC_FTRACE_NO_PATCHABLE=y -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_HAVE_SYSCALL_TRACEPOINTS=y -CONFIG_HAVE_FENTRY=y -CONFIG_HAVE_OBJTOOL_MCOUNT=y -CONFIG_HAVE_OBJTOOL_NOP_MCOUNT=y -CONFIG_HAVE_C_RECORDMCOUNT=y -CONFIG_HAVE_BUILDTIME_MCOUNT_SORT=y -CONFIG_TRACE_CLOCK=y -CONFIG_RING_BUFFER=y -CONFIG_EVENT_TRACING=y -CONFIG_CONTEXT_SWITCH_TRACER=y -CONFIG_TRACING=y -CONFIG_GENERIC_TRACER=y -CONFIG_TRACING_SUPPORT=y -CONFIG_FTRACE=y -# CONFIG_BOOTTIME_TRACING is not set -# CONFIG_FUNCTION_TRACER is not set -# CONFIG_STACK_TRACER is not set -# CONFIG_IRQSOFF_TRACER is not set -# CONFIG_PREEMPT_TRACER is not set -# CONFIG_SCHED_TRACER is not set -# CONFIG_HWLAT_TRACER is not set -# CONFIG_OSNOISE_TRACER is not set -# CONFIG_TIMERLAT_TRACER is not set -# CONFIG_MMIOTRACE is not set -# CONFIG_FTRACE_SYSCALLS is not set -# CONFIG_TRACER_SNAPSHOT is not set -CONFIG_BRANCH_PROFILE_NONE=y -# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set -# CONFIG_PROFILE_ALL_BRANCHES is not set -CONFIG_BLK_DEV_IO_TRACE=y -CONFIG_KPROBE_EVENTS=y -CONFIG_UPROBE_EVENTS=y -CONFIG_DYNAMIC_EVENTS=y -CONFIG_PROBE_EVENTS=y -# CONFIG_SYNTH_EVENTS is not set -# CONFIG_USER_EVENTS is not set -# CONFIG_HIST_TRIGGERS is not set -# CONFIG_TRACE_EVENT_INJECT is not set -# CONFIG_TRACEPOINT_BENCHMARK is not set -# CONFIG_RING_BUFFER_BENCHMARK is not set -# CONFIG_TRACE_EVAL_MAP_FILE is not set -# CONFIG_FTRACE_STARTUP_TEST is not set -# CONFIG_RING_BUFFER_STARTUP_TEST is not set -# CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set -# CONFIG_PREEMPTIRQ_DELAY_TEST is not set -# CONFIG_KPROBE_EVENT_GEN_TEST is not set -# CONFIG_RV is not set -CONFIG_PROVIDE_OHCI1394_DMA_INIT=y -# CONFIG_SAMPLES is not set -CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y -CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y -CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y -CONFIG_STRICT_DEVMEM=y -# CONFIG_IO_STRICT_DEVMEM is not set - -# -# x86 Debugging -# -CONFIG_EARLY_PRINTK_USB=y -CONFIG_X86_VERBOSE_BOOTUP=y -CONFIG_EARLY_PRINTK=y -CONFIG_EARLY_PRINTK_DBGP=y -# CONFIG_EARLY_PRINTK_USB_XDBC is not set -# CONFIG_EFI_PGT_DUMP is not set -# CONFIG_DEBUG_TLBFLUSH is not set -CONFIG_HAVE_MMIOTRACE_SUPPORT=y -# CONFIG_X86_DECODER_SELFTEST is not set -CONFIG_IO_DELAY_0X80=y -# CONFIG_IO_DELAY_0XED is not set -# CONFIG_IO_DELAY_UDELAY is not set -# CONFIG_IO_DELAY_NONE is not set -CONFIG_DEBUG_BOOT_PARAMS=y -# CONFIG_CPA_DEBUG is not set -CONFIG_DEBUG_ENTRY=y -# CONFIG_DEBUG_NMI_SELFTEST is not set -CONFIG_X86_DEBUG_FPU=y -# CONFIG_PUNIT_ATOM_DEBUG is not set -CONFIG_UNWINDER_ORC=y -# CONFIG_UNWINDER_FRAME_POINTER is not set -# end of x86 Debugging - -# -# Kernel Testing and Coverage -# -# CONFIG_KUNIT is not set -# CONFIG_NOTIFIER_ERROR_INJECTION is not set -# CONFIG_FUNCTION_ERROR_INJECTION is not set -# CONFIG_FAULT_INJECTION is not set -CONFIG_ARCH_HAS_KCOV=y -CONFIG_CC_HAS_SANCOV_TRACE_PC=y -# CONFIG_KCOV is not set -CONFIG_RUNTIME_TESTING_MENU=y -# CONFIG_TEST_DHRY is not set -# CONFIG_LKDTM is not set -# CONFIG_TEST_MIN_HEAP is not set -# CONFIG_TEST_DIV64 is not set -# CONFIG_TEST_MULDIV64 is not set -# CONFIG_BACKTRACE_SELF_TEST is not set -# CONFIG_TEST_REF_TRACKER is not set -# CONFIG_RBTREE_TEST is not set -# CONFIG_REED_SOLOMON_TEST is not set -# CONFIG_INTERVAL_TREE_TEST is not set -# CONFIG_PERCPU_TEST is not set -# CONFIG_ATOMIC64_SELFTEST is not set -# CONFIG_TEST_HEXDUMP is not set -# CONFIG_TEST_KSTRTOX is not set -# CONFIG_TEST_BITMAP is not set -# CONFIG_TEST_UUID is not set -# CONFIG_TEST_XARRAY is not set -# CONFIG_TEST_MAPLE_TREE is not set -# CONFIG_TEST_RHASHTABLE is not set -# CONFIG_TEST_IDA is not set -# CONFIG_TEST_LKM is not set -# CONFIG_TEST_BITOPS is not set -# CONFIG_TEST_VMALLOC is not set -# CONFIG_TEST_BPF is not set -# CONFIG_FIND_BIT_BENCHMARK is not set -# CONFIG_TEST_FIRMWARE is not set -# CONFIG_TEST_SYSCTL is not set -# CONFIG_TEST_UDELAY is not set -# CONFIG_TEST_STATIC_KEYS is not set -# CONFIG_TEST_KMOD is not set -# CONFIG_TEST_KALLSYMS is not set -# CONFIG_TEST_MEMCAT_P is not set -# CONFIG_TEST_MEMINIT is not set -# CONFIG_TEST_FREE_PAGES is not set -# CONFIG_TEST_FPU is not set -# CONFIG_TEST_CLOCKSOURCE_WATCHDOG is not set -# CONFIG_TEST_OBJPOOL is not set -CONFIG_ARCH_USE_MEMTEST=y -# CONFIG_MEMTEST is not set -# end of Kernel Testing and Coverage - -# -# Rust hacking -# -# end of Rust hacking -# end of Kernel hacking diff --git a/configure-image.sh b/configure-image.sh deleted file mode 100644 index 7d89dbb..0000000 --- a/configure-image.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -e - -# fstab Generation -# TODO: Is the dump column still used today? ~ahill -# NOTE: /dev is not here because CONFIG_DEVTMPFS_MOUNT is enabled in the Linux -# kernel configuration. ~ahill -echo "/dev/vda2 / xfs defaults 1 1" > /etc/fstab -echo "/dev/vda1 /boot vfat defaults 0 2" >> /etc/fstab -echo "proc /proc proc nosuid,noexec,nodev 0 0" >> /etc/fstab -echo "sysfs /sys sysfs nosuid,noexec,nodev 0 0" >> /etc/fstab -echo "devpts /dev/pts devpts defaults 0 0" >> /etc/fstab -echo "tmpfs /run tmpfs defaults 0 0" >> /etc/fstab -echo "tmpfs /dev/shm tmpfs nosuid,nodev 0 0" >> /etc/fstab -echo "cgroup2 /sys/fs/cgroup cgroup2 nosuid,noexec,nodev 0 0" >> /etc/fstab - -# initramfs Generation -mkdir -p /etc/tinyramfs -echo "root=/dev/vda2" > /etc/tinyramfs/config -echo "root_type=xfs" >> /etc/tinyramfs/config -# FIXME: Setting monolith to true is a workaround since tinyramfs searches for -# /sbin/kmod, which doesn't work since kmod is installed under /bin. -# While kmod *should* be moved under /sbin, tinyramfs also shouldn't -# hard-code paths like that, so we need a way to patch this going -# forward. Without a proper patch, kernel modules cannot be added to the -# initramfs, which will cause issues with drivers later on. ~ahill -echo "monolith=true" >> /etc/tinyramfs/config -# TODO: This is a terrible way to detect the kernel version, since anything -# else under /lib/modules will cause this to break, such as having -# multiple kernel versions present. ~ahill -tinyramfs -k $(ls /lib/modules) /boot/initramfs \ No newline at end of file diff --git a/fetch-sources.sh b/fetch-sources.sh deleted file mode 100755 index 8d7e409..0000000 --- a/fetch-sources.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -e -mkdir -p sources -cd sources -cat ../sources.list | while read line; do - # This ignores lines starting with # so comments can be added. ~ahill - if case $line in \#*) false;; *) true;; esac; then - HASH=$(echo $line | cut -d"," -f1) - # Comments (-f2) are ignored by the script ~ahill - URL=$(echo $line | cut -d"," -f3) - CANONICAL=$(echo $line | cut -d"," -f4) - if [ -z "$CANONICAL" ]; then - OUTPUT=$(basename $URL) - else - OUTPUT=$CANONICAL - fi - if [ ! -f "$OUTPUT" ]; then - echo $OUTPUT - curl -L $URL -o $OUTPUT - fi - echo "$HASH $OUTPUT" | sha256sum -c - - fi -done diff --git a/patches/mesa-drm-maple.patch b/patches/mesa-drm-maple.patch deleted file mode 100644 index 8b3079a..0000000 --- a/patches/mesa-drm-maple.patch +++ /dev/null @@ -1,225 +0,0 @@ ---- src/drm-shim/drm_shim.c 2025-07-14 02:47:27.834000000 +0000 -+++ src/drm-shim/drm_shim.c 2025-07-14 02:58:33.373000000 +0000 -@@ -324,8 +324,6 @@ - - return real_fopen(path, mode); - } --PUBLIC FILE *fopen64(const char *path, const char *mode) -- __attribute__((alias("fopen"))); - - /* Intercepts access(render_node_path) to trick drmGetMinorType */ - PUBLIC int access(const char *path, int mode) -@@ -371,7 +369,6 @@ - - return fd; - } --PUBLIC int open64(const char*, int, ...) __attribute__((alias("open"))); - - /* __open64_2 isn't declared unless _FORTIFY_SOURCE is defined. */ - PUBLIC int __open64_2(const char *path, int flags); -@@ -429,45 +426,6 @@ - return 0; - } - --/* Fakes stat to return character device stuff for our fake render node. */ --PUBLIC int __xstat64(int ver, const char *path, struct stat64 *st) --{ -- init_shim(); -- -- /* Note: call real stat if we're in the process of probing for a free -- * render node! -- */ -- if (render_node_minor == -1) -- return real___xstat64(ver, path, st); -- -- if (hide_drm_device_path(path)) { -- errno = ENOENT; -- return -1; -- } -- -- /* Fool libdrm's probe of whether the /sys dir for this char dev is -- * there. -- */ -- char *sys_dev_drm_dir; -- nfasprintf(&sys_dev_drm_dir, -- "/sys/dev/char/%d:%d/device/drm", -- DRM_MAJOR, render_node_minor); -- if (strcmp(path, sys_dev_drm_dir) == 0) { -- free(sys_dev_drm_dir); -- return 0; -- } -- free(sys_dev_drm_dir); -- -- if (strcmp(path, render_node_path) != 0) -- return real___xstat64(ver, path, st); -- -- memset(st, 0, sizeof(*st)); -- st->st_rdev = makedev(DRM_MAJOR, render_node_minor); -- st->st_mode = S_IFCHR; -- -- return 0; --} -- - /* Fakes fstat to return character device stuff for our fake render node. */ - PUBLIC int __fxstat(int ver, int fd, struct stat *st) - { -@@ -485,22 +443,6 @@ - return 0; - } - --PUBLIC int __fxstat64(int ver, int fd, struct stat64 *st) --{ -- init_shim(); -- -- struct shim_fd *shim_fd = drm_shim_fd_lookup(fd); -- -- if (!shim_fd) -- return real___fxstat64(ver, fd, st); -- -- memset(st, 0, sizeof(*st)); -- st->st_rdev = makedev(DRM_MAJOR, render_node_minor); -- st->st_mode = S_IFCHR; -- -- return 0; --} -- - #else - - PUBLIC int stat(const char* path, struct stat* stat_buf) -@@ -541,44 +483,6 @@ - return 0; - } - --PUBLIC int stat64(const char* path, struct stat64* stat_buf) --{ -- init_shim(); -- -- /* Note: call real stat if we're in the process of probing for a free -- * render node! -- */ -- if (render_node_minor == -1) -- return real_stat64(path, stat_buf); -- -- if (hide_drm_device_path(path)) { -- errno = ENOENT; -- return -1; -- } -- -- /* Fool libdrm's probe of whether the /sys dir for this char dev is -- * there. -- */ -- char *sys_dev_drm_dir; -- nfasprintf(&sys_dev_drm_dir, -- "/sys/dev/char/%d:%d/device/drm", -- DRM_MAJOR, render_node_minor); -- if (strcmp(path, sys_dev_drm_dir) == 0) { -- free(sys_dev_drm_dir); -- return 0; -- } -- free(sys_dev_drm_dir); -- -- if (strcmp(path, render_node_path) != 0) -- return real_stat64(path, stat_buf); -- -- memset(stat_buf, 0, sizeof(*stat_buf)); -- stat_buf->st_rdev = makedev(DRM_MAJOR, render_node_minor); -- stat_buf->st_mode = S_IFCHR; -- -- return 0; --} -- - PUBLIC int fstat(int fd, struct stat* stat_buf) - { - init_shim(); -@@ -594,22 +498,6 @@ - - return 0; - } -- --PUBLIC int fstat64(int fd, struct stat64* stat_buf) --{ -- init_shim(); -- -- struct shim_fd *shim_fd = drm_shim_fd_lookup(fd); -- -- if (!shim_fd) -- return real_fstat64(fd, stat_buf); -- -- memset(stat_buf, 0, sizeof(*stat_buf)); -- stat_buf->st_rdev = makedev(DRM_MAJOR, render_node_minor); -- stat_buf->st_mode = S_IFCHR; -- -- return 0; --} - #endif - - /* Tracks if the opendir was on /dev/dri. */ -@@ -664,34 +552,6 @@ - return ent; - } - --/* If we're looking at /dev/dri, add our render node to the list -- * before the real entries in the directory. -- */ --PUBLIC struct dirent64 * --readdir64(DIR *dir) --{ -- init_shim(); -- -- struct dirent64 *ent = NULL; -- -- static struct dirent64 render_node_dirent = { 0 }; -- -- simple_mtx_lock(&shim_lock); -- if (_mesa_set_search(opendir_set, dir)) { -- strcpy(render_node_dirent.d_name, -- render_node_dirent_name); -- render_node_dirent.d_type = DT_CHR; -- ent = &render_node_dirent; -- _mesa_set_remove_key(opendir_set, dir); -- } -- simple_mtx_unlock(&shim_lock); -- -- if (!ent && dir != fake_dev_dri) -- ent = real_readdir64(dir); -- -- return ent; --} -- - /* Cleans up tracking of opendir("/dev/dri") */ - PUBLIC int - closedir(DIR *dir) -@@ -774,7 +634,7 @@ - * our DRM fd to drm_shim_ioctl(). - */ - PUBLIC int --ioctl(int fd, unsigned long request, ...) -+ioctl(int fd, int request, ...) - { - init_shim(); - -@@ -810,8 +670,6 @@ - - return ret; - } --PUBLIC int fcntl64(int, int, ...) -- __attribute__((alias("fcntl"))); - - /* I wrote this when trying to fix gallium screen creation, leaving it around - * since it's probably good to have. -@@ -841,15 +699,3 @@ - - return real_mmap(addr, length, prot, flags, fd, offset); - } -- --PUBLIC void * --mmap64(void* addr, size_t length, int prot, int flags, int fd, off64_t offset) --{ -- init_shim(); -- -- struct shim_fd *shim_fd = drm_shim_fd_lookup(fd); -- if (shim_fd) -- return drm_shim_mmap(shim_fd, length, prot, flags, fd, offset); -- -- return real_mmap64(addr, length, prot, flags, fd, offset); --} diff --git a/root/boot/limine.conf b/root/boot/limine.conf deleted file mode 100644 index 11570f5..0000000 --- a/root/boot/limine.conf +++ /dev/null @@ -1,7 +0,0 @@ -timeout: 3 - -/Maple Linux -protocol: linux -kernel_path: boot():/vmlinuz -kernel_cmdline: root=/dev/vda2 -module_path: boot():/initramfs \ No newline at end of file diff --git a/root/etc/chrony.conf b/root/etc/chrony.conf deleted file mode 100644 index 53f8bdd..0000000 --- a/root/etc/chrony.conf +++ /dev/null @@ -1,2 +0,0 @@ -cmdport 0 -pool pool.ntp.org iburst maxsources 3 diff --git a/root/etc/group b/root/etc/group deleted file mode 100644 index c553363..0000000 --- a/root/etc/group +++ /dev/null @@ -1,2 +0,0 @@ -root:x:0:root -nobody:x:65534:nobody diff --git a/root/etc/hostname b/root/etc/hostname deleted file mode 100644 index 06fbeeb..0000000 --- a/root/etc/hostname +++ /dev/null @@ -1 +0,0 @@ -maple diff --git a/root/etc/init.d/chronyd b/root/etc/init.d/chronyd deleted file mode 100755 index ebe513b..0000000 --- a/root/etc/init.d/chronyd +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/openrc-run -description="Network Time Protocol Daemon" -command="/bin/chronyd" -pidfile="/run/chrony/chronyd.pid" diff --git a/root/etc/init.d/dhcpcd b/root/etc/init.d/dhcpcd deleted file mode 100755 index 419556b..0000000 --- a/root/etc/init.d/dhcpcd +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/openrc-run -description="DHCP Client Daemon" -command="/bin/dhcpcd" -command_args="-M" -command_args_background="-b" -pidfile="/run/dhcpcd/pid" diff --git a/root/etc/init.d/dropbear b/root/etc/init.d/dropbear deleted file mode 100755 index 405bd03..0000000 --- a/root/etc/init.d/dropbear +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/openrc-run -command="/bin/dropbear" -command_args="-R" -pidfile="/run/dropbear.pid" diff --git a/root/etc/init.d/mdevd b/root/etc/init.d/mdevd deleted file mode 100755 index f8c7e4f..0000000 --- a/root/etc/init.d/mdevd +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/openrc-run -description="Mini Device Mapper Daemon" -command="/bin/mdevd" -command_args="-O4" -command_background="yes" -pidfile="/run/mdevd.pid" diff --git a/root/etc/os-release b/root/etc/os-release deleted file mode 100644 index 00785b6..0000000 --- a/root/etc/os-release +++ /dev/null @@ -1,5 +0,0 @@ -NAME=Maple Linux -VERSION=2025 -ID=maple -VERSION_ID=2025 -PRETTY_NAME="Maple Linux" diff --git a/root/etc/pam.d/sshd b/root/etc/pam.d/sshd deleted file mode 100644 index 6d1ea17..0000000 --- a/root/etc/pam.d/sshd +++ /dev/null @@ -1,5 +0,0 @@ -#%PAM-1.0 -auth include system-auth -account include system-auth -password include system-auth -session include system-auth diff --git a/root/etc/pam.d/system-auth b/root/etc/pam.d/system-auth deleted file mode 100644 index f0804c3..0000000 --- a/root/etc/pam.d/system-auth +++ /dev/null @@ -1,5 +0,0 @@ -#%PAM-1.0 -auth required pam_unix.so nullok -account required pam_unix.so -password required pam_unix.so nullok shadow -session required pam_unix.so diff --git a/root/etc/passwd b/root/etc/passwd deleted file mode 100644 index 27d66ce..0000000 --- a/root/etc/passwd +++ /dev/null @@ -1,2 +0,0 @@ -root:x:0:0::/:/bin/zsh -nobody:x:65534:65534::/:/bin/nologin diff --git a/root/etc/resolv.conf b/root/etc/resolv.conf deleted file mode 100644 index 0b030bf..0000000 --- a/root/etc/resolv.conf +++ /dev/null @@ -1,2 +0,0 @@ -nameserver 1.1.1.1 -nameserver 1.0.0.1 diff --git a/root/etc/shadow b/root/etc/shadow deleted file mode 100644 index 3b0fe76..0000000 --- a/root/etc/shadow +++ /dev/null @@ -1,2 +0,0 @@ -root::20295:::::: -nobody::20374:::::: diff --git a/root/etc/shells b/root/etc/shells deleted file mode 100644 index a67a8da..0000000 --- a/root/etc/shells +++ /dev/null @@ -1,2 +0,0 @@ -/bin/sh -/bin/zsh diff --git a/sources.list b/sources.list deleted file mode 100644 index f9ebdaf..0000000 --- a/sources.list +++ /dev/null @@ -1,147 +0,0 @@ -#sha256sum,comment,url,filename(optional) -ba885c1319578d6c94d46e9b0dceb4014caafe2490e437a0dbca3f270a223f5a,autoconf,https://ftp.gnu.org/gnu/autoconf/autoconf-2.72.tar.xz, -168aa363278351b89af56684448f525a5bce5079d0b6842bd910fdd3f1646887,automake,https://ftp.gnu.org/gnu/automake/automake-1.18.1.tar.xz, -0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d,babel,https://files.pythonhosted.org/packages/7d/6b/d52e42361e1aa00709585ecc30b3f9684b3ab62530771402248b1b1d6240/babel-2.17.0.tar.gz, -ae470fec429775653e042015edc928d07c8c3b2fc59765172a330d3d87785f86,bc,https://ftp.gnu.org/gnu/bc/bc-1.08.2.tar.gz, -9bba0214ccf7f1079c5d59210045227bcf619519840ebfa80cd3849cff5a5bf2,bison,https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz, -698edd0ea270bde950f53aed21f3a0135672206f3911e0176261a31e0e07b397,build,https://files.pythonhosted.org/packages/25/1c/23e33405a7c9eac261dff640926b8b5adaed6a6eb3e1767d441ed611d0c0/build-1.3.0.tar.gz, -ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269,bzip2,https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz, -445ed8208a6e4823de1226a74ca319d3600e83f6369f99b14265006599c32ccb,cairo,https://cairographics.org/releases/cairo-1.18.4.tar.xz, -33ea8eb2a4daeaa506e8fcafd5d6d89027ed6f2f0609645c6f149b560d301706,chrony,https://chrony-project.org/releases/chrony-4.8.tar.gz, -ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a,click,https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz, -643f04182b7ba323ab31f526f785134fb79cba3188a852206ef0473fee282a15,cmake,https://github.com/Kitware/CMake/releases/download/v4.1.2/cmake-4.1.2.tar.gz, -e6d4fd2d852c9141a1c2a18a13d146a0cd7e45195f72293a4e4c044ec6ccca15,coreutils,https://ftp.gnu.org/gnu/coreutils/coreutils-9.8.tar.xz, -937610b97c329a1ec9268553fb780037bcfff0dcffe9725ebc4fd9c1aa9075db,cpio,https://ftp.gnu.org/gnu/cpio/cpio-2.15.tar.bz2, -40c8cddbcb6cc6251c03dea423a472a6cea4037be654ba5cf5dec6eb2d22ff1d,curl,https://curl.se/download/curl-8.16.0.tar.xz, -845fd61702ae5e53e09664faa450da82805958924b109b8c5b4777bd8551af00,dash,https://salsa.debian.org/debian/dash/-/archive/debian/0.5.12-12/dash-debian-0.5.12-12.tar.gz, -6721e606609226dbf4d864a78802a9e96beec0ee034a1bd84138b3e037bba7d9,dhcpcd,https://github.com/NetworkConfiguration/dhcpcd/releases/download/v10.2.4/dhcpcd-10.2.4.tar.xz, -7c8b7f9fc8609141fdea9cece85249d308624391ff61dedaf528fcb337727dfd,diffutils,https://ftp.gnu.org/gnu/diffutils/diffutils-3.12.tar.xz, -64926eebf90092dca21b14259a5301b7b98e7b1943e8a201c7d726084809b527,dosfstools,https://github.com/dosfstools/dosfstools/releases/download/v4.2/dosfstools-4.2.tar.gz, -93ebe1294ee3203d3bf548c78d51bde9494d3f24de64eaec380a2620f0431f20,dropbear,https://github.com/mkj/dropbear/archive/refs/tags/DROPBEAR_2025.88.tar.gz,dropbear-2025.88.tar.gz -71df8f40706a7bb0a80a5367079ea75d91da4f8c65c58ec59bcdfbf7decdab9f,expat,https://github.com/libexpat/libexpat/releases/download/R_2_7_3/expat-2.7.3.tar.xz, -1387e0b67ff247d2abde998f90dfbf70c1491391a59ddfecb8ae698789f0a4f5,findutils,https://ftp.gnu.org/gnu/findutils/findutils-4.10.0.tar.xz, -1b1cde5b235d40479e91be2f0e88a309e3214c8ab470ec8a2744d82a5a9ea05c,fribidi,https://github.com/fribidi/fribidi/releases/download/v1.0.16/fribidi-1.0.16.tar.xz, -2b47e8f2d90d35d29339ed78e1a6eabb36eefa9cfa5a5ca3b0d1f27502c43675,flatpak,https://github.com/flatpak/flatpak/releases/download/1.16.1/flatpak-1.16.1.tar.xz, -e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995,flex,https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz, -18f63100d6f94385c6ed57a72073443e1a71a4acb4339491615d0f16d6ff01b2,flit_core,https://files.pythonhosted.org/packages/69/59/b6fc2188dfc7ea4f936cd12b49d707f66a1cb7a1d2c16172963534db741b/flit_core-3.12.0.tar.gz, -f0129159515c13ebe53ba2a6a94755e98c266470e844ee0aacc6196fd62b44f0,font-util,https://gitlab.freedesktop.org/xorg/font/util/-/archive/font-util-1.4.1/util-font-util-1.4.1.tar.gz, -82e73b26adad651b236e5f5d4b3074daf8ff0910188808496326bd3449e5261d,fontconfig,https://gitlab.freedesktop.org/fontconfig/fontconfig/-/archive/2.17.1/fontconfig-2.17.1.tar.gz, -32427e8c471ac095853212a37aef816c60b42052d4d9e48230bab3bdf2936ccc,freetype,https://download.savannah.gnu.org/releases/freetype/freetype-2.14.1.tar.xz, -f8c3486509de705192138b00ef2c00bbbdd0e84c30d5c07d23fc73a9dc4cc9cc,gawk,https://ftp.gnu.org/gnu/gawk/gawk-5.3.2.tar.xz, -cc591e3949a95e2f7b50173c9373df8846648b15aa596d9e7ec7258381bfac0d,gdk-pixbuf,https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/archive/2.44.3/gdk-pixbuf-2.44.3.tar.gz, -d1fb86e260cfe7da6031f94d2e44c0da55903dbae0a2fa0fae78c91ae1b56f00,gettext,https://ftp.gnu.org/pub/gnu/gettext/gettext-0.26.tar.xz, -3524fc5fd81f16f80e1696a8281bd8ad831048b67848015d7b7382bf365ae685,git,https://github.com/git/git/archive/refs/tags/v2.51.0.tar.gz,git-2.51.0.tar.gz -56aef5791f402fff73a2de0664e573c5d00ef8cb71405eb76b388f44c6d78927,glib,https://gitlab.gnome.org/GNOME/glib/-/archive/2.86.0/glib-2.86.0.tar.gz, -b16c78e7604b9be9f546ee35ad8b6db6f39bbbbfb19e8d038b6fe2ea5bba4ff4,glslang,https://github.com/KhronosGroup/glslang/archive/refs/tags/15.4.0.tar.gz,glslang-15.4.0.tar.gz -a3c2b80201b89e68616f4ad30bc66aee4927c3ce50e33929ca819d5c43538898,gmp,https://gmplib.org/download/gmp/gmp-6.3.0.tar.xz, -fd87e0aba7e43ae054837afd6cd4db03a3f2693deb3619085e6ed9d8d9604ad8,gperf,https://ftp.gnu.org/pub/gnu/gperf/gperf-3.3.tar.gz, -2649b27c0e90e632eadcd757be06c6e9a4f48d941de51e7c0f83ff76408a07b9,grep,https://ftp.gnu.org/gnu/grep/grep-3.12.tar.xz, -069a00aa1fc893f18423602f4e095583be5a220429f6e8a58d70511490b4b019,gvdb,https://gitlab.gnome.org/GNOME/gvdb/-/archive/2b42fc75f09dbe1cd1057580b5782b08f2dcb400/gvdb-2b42fc75f09dbe1cd1057580b5782b08f2dcb400.tar.gz, -01a7b881bd220bfdf615f97b8718f80bdfd3f6add385b993dcf6efd14e8c0ac6,gzip,https://ftp.gnu.org/gnu/gzip/gzip-1.14.tar.xz, -e5c81b7f6e0b102dfb000cfa424538b8e896ab78a2f4b8a5ec8cae62ab43369e,harfbuzz,https://github.com/harfbuzz/harfbuzz/releases/download/12.1.0/harfbuzz-12.1.0.tar.xz, -d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000,importlib_metadata,https://files.pythonhosted.org/packages/76/66/650a33bd90f786193e4de4b3ad86ea60b53c89b669a5c7be931fac31cdb0/importlib_metadata-8.7.0.tar.gz, -9781e59410ab7dea8e9f79bb10ff1488e63d10fcbb70503b94426ba27a8e2dec,iproute2,https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-6.17.0.tar.xz, -fb3197f17a99eb44d22a3a1a71f755f9622dd963e66acfdea1a45120951b02ed,kbd,https://www.kernel.org/pub/linux/utils/kbd/kbd-2.9.0.tar.xz, -5a5d5073070cc7e0c7a7a3c6ec2a0e1780850c8b47b3e3892226b93ffcb9cb54,kmod,https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-34.2.tar.xz, -19f917d42d530f98815ac824d90c7eaf648e9d9a50e4f309c812457ffa5496b5,libarchive,https://libarchive.org/downloads/libarchive-3.8.1.tar.xz, -b88cc9163d0c652aaf39a99991d974ddba1c3a9711db8f1b5838af2a14731014,libbsd,https://libbsd.freedesktop.org/releases/libbsd-0.12.2.tar.xz, -629da4ab29900d0f7fcc36227073743119925fd711c99a1689bbf5c9b40c8e6f,libcap2,https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.76.tar.xz, -6cab16d4d259b6abc9f485233863454114a3c307eca806679aad3edbe967bf42,libdrm,https://dri.freedesktop.org/libdrm/libdrm-2.4.126.tar.xz, -6253395679c2bb2156d926b3d8b7e3b2bbeb40a56d2bea29e1c73e40ed9de4ba,libelf,https://github.com/arachsys/libelf/archive/refs/tags/v0.193.tar.gz,libelf-0.193.tar.gz -0cfa48d1dddac26988ae9ce16282eff97683f1adcd3f5d4312f86d714565d890,libevdev,https://gitlab.freedesktop.org/libevdev/libevdev/-/archive/libevdev-1.13.4/libevdev-libevdev-1.13.4.tar.gz, -31dc201284fb5d2bec60b2ceee3126b5cf633c3de74151be44817890e8e7c581,libfontenc,https://gitlab.freedesktop.org/xorg/lib/libfontenc/-/archive/libfontenc-1.1.8/libfontenc-libfontenc-1.1.8.tar.gz, -f3a3082a23b37c293a4fcd1053147b371f2ff91fa7ea1b2a52e335676bac82dc,libffi,https://github.com/libffi/libffi/releases/download/v3.5.2/libffi-3.5.2.tar.gz, -9c15fa751bb8093d042dae1b9f125eb45198c32c6704cd5481ccde460d4f8151,libinih,https://github.com/benhoyt/inih/archive/refs/tags/r62.tar.gz,libinih-r62.tar.gz -98bb615d98ddc4607bddb13a7b7550d129eb8cd16f86cd5ca090207bc46b488b,libinput,https://gitlab.freedesktop.org/libinput/libinput/-/archive/1.29.1/libinput-1.29.1.tar.gz, -8f0012234b464ce50890c490f18194f913a7b1f4e6a03d6644179fa0f867d0cf,libjpeg-turbo,https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/3.1.2/libjpeg-turbo-3.1.2.tar.gz, -1bd6aa42275313af3141c7cf2e5b964e8b1fd488025caf2f971f43b00776b332,libmd,https://libbsd.freedesktop.org/releases/libmd-1.1.0.tar.xz, -274b9b919ef3152bfb3da3a13c950dd60d6e2bcd54230ffeca298d03b40d0525,libmnl,https://www.netfilter.org/pub/libmnl/libmnl-1.0.5.tar.bz2, -0f4be47a8bb8b77a350ee58cbd4b5fae6260ad486a527706ab15cfe1dd55a3c4,libnftnl,https://www.netfilter.org/pub/libnftnl/libnftnl-1.3.0.tar.xz, -a395317730e0e8d5e71419d4d1256a89e32c2fa793607b63c4d0fb497ae34602,libpciaccess,https://gitlab.freedesktop.org/xorg/lib/libpciaccess/-/archive/libpciaccess-0.18.1/libpciaccess-libpciaccess-0.18.1.tar.gz, -4df396518620a7aa3651443e87d1b2862e4e88cad135a8b93423e01706232307,libpng,https://download.sourceforge.net/libpng/libpng-1.6.50.tar.xz, -c7ff7a7d675d5f57730940e5ccff1dbe2dcd5b7405b5397e0f7ffd66a5ed5679,libressl,https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-4.1.1.tar.gz, -f81f5860666b0bc7d84baddefa60d1cb9fa6fceb2398cc3baca6afaa60266675,libtool,https://ftp.gnu.org/gnu/libtool/libtool-2.5.4.tar.xz, -0bd89b657d62d019598e6c7ed726ff8fed80e8ba092a83b484d66afb80b77da5,libudev-zero,https://github.com/illiliti/libudev-zero/archive/refs/tags/1.0.3.tar.gz,libudev-zero-1.0.3.tar.gz -ea97bead1e8721d9002055970e8ad64ef79ee9dcee8595a3dae2cf5c2192a47f,libX11,https://gitlab.freedesktop.org/xorg/lib/libx11/-/archive/libX11-1.8.12/libx11-libX11-1.8.12.tar.gz, -af261cc1b3b349cfe7a7899a48b4e4aa257b4d11bf2ea084fb3191df7d15fbe9,libXau,https://gitlab.freedesktop.org/xorg/lib/libxau/-/archive/libXau-1.0.12/libxau-libXau-1.0.12.tar.gz, -113a6f8f614e037ff03cad218cdcbfe307dfc9d909a842b17276a694476ed639,libxcb,https://gitlab.freedesktop.org/xorg/lib/libxcb/-/archive/libxcb-1.17.0/libxcb-libxcb-1.17.0.tar.gz, -5edaa65f5abd94ae12030b52fda66828eb8a41396aa9c02fd2c6210445fff61e,libxcvt,https://gitlab.freedesktop.org/xorg/lib/libxcvt/-/archive/libxcvt-0.1.3/libxcvt-libxcvt-0.1.3.tar.gz, -f5e93a7191e4ea2f43482e9c8470c5320e1bb7ee0070b72f97ad2d1141833cd4,libXdmcp,https://gitlab.freedesktop.org/xorg/lib/libxdmcp/-/archive/libXdmcp-1.1.5/libxdmcp-libXdmcp-1.1.5.tar.gz, -4e48ea271b5f53c3386018a6e0263454fe582a413fce0273ade601fbfe9e0c72,libXext,https://gitlab.freedesktop.org/xorg/lib/libxext/-/archive/libXext-1.3.6/libxext-libXext-1.3.6.tar.gz, -1e7dfe2dd0eb2528fc21c2b1db64443b0f41e2ac623809939be6b4008c42ef5a,libXfixes,https://gitlab.freedesktop.org/xorg/lib/libxfixes/-/archive/libXfixes-6.0.2/libxfixes-libXfixes-6.0.2.tar.gz, -fb0fab7745c4670cd3c49b0cd3965494a6bee3778f36a0385a3265e803fe4d70,libXfont2,https://gitlab.freedesktop.org/xorg/lib/libxfont/-/archive/libXfont2-2.0.7/libxfont-libXfont2-2.0.7.tar.gz, -f033ea2b78d2b8f6c6fc4028aeace48f8d1b59d881d602a1d9418da69cc50200,libxkbfile,https://gitlab.freedesktop.org/xorg/lib/libxkbfile/-/archive/libxkbfile-1.1.3/libxkbfile-libxkbfile-1.1.3.tar.gz, -027e302d24e0d136393a24e02938046cda72281a3e3620d56cbc0995524658bc,libxml2,https://gitlab.gnome.org/GNOME/libxml2/-/archive/v2.15.0/libxml2-v2.15.0.tar.gz, -a1909cbe9ded94187b6420ae8c347153f8278955265cb80a64cdae5501433396,libXrandr,https://gitlab.freedesktop.org/xorg/lib/libxrandr/-/archive/libXrandr-1.5.4/libxrandr-libXrandr-1.5.4.tar.gz, -470559df9e0e4dbc81d5855d3d364a17e12263600a08217232f8b1f6ef3cddbf,libxrender,https://gitlab.freedesktop.org/xorg/lib/libxrender/-/archive/libXrender-0.9.12/libxrender-libXrender-0.9.12.tar.gz, -61b90057e1cb1ec4688b2fd223f5008d637ab5a5e476ef3727543bb449c87697,libxshmfence,https://gitlab.freedesktop.org/xorg/lib/libxshmfence/-/archive/libxshmfence-1.3.3/libxshmfence-libxshmfence-1.3.3.tar.gz, -6def23c86de6ff72030b9971ed6ddec24ba9b47344237ab7b5abeb2f044c3332,libxtrans,https://gitlab.freedesktop.org/xorg/lib/libxtrans/-/archive/xtrans-1.6.0/libxtrans-xtrans-1.6.0.tar.gz, -a23745e7865f4aa2ee2610f289ed8081140580cbe577b46aa1a7fb28ab7192cf,libXxf86vm,https://gitlab.freedesktop.org/xorg/lib/libxxf86vm/-/archive/libXxf86vm-1.1.6/libxxf86vm-libXxf86vm-1.1.6.tar.gz, -29d52f0584cd0d9aa108e303e48551707f537f74c34a16479abb0497d8145a58,Limine,https://codeberg.org/Limine/Limine/releases/download/v10.1.0/limine-10.1.0.tar.xz, -0e1a946741db288a40361ad04ff38fe04bf0819834b8abb84c4b535fed9ba4ef,lingua,https://files.pythonhosted.org/packages/ba/85/50f030e20ca64562ac8fd36b65338c4da626739afd49200936f3d99a6047/lingua-4.15.0.tar.gz, -fdebcb065065f5c1b8dc68a6fb59cda50cdddbf9103d207c2196d55ea764f57f,Linux,https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.17.2.tar.xz, -21dbcec6e01dd578f14789eac9024a18941e6f2702a05cf91b28c232eeb26ab0,Linux PAM,https://github.com/linux-pam/linux-pam/releases/download/v1.7.1/Linux-PAM-1.7.1.tar.xz, -9c9db50d8046f668156d83f6b594631b4ca79a0d96e4f19bed9dc019b022e58f,LLVM,https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.3/llvm-project-21.1.3.src.tar.xz, -e236ea3a1ccf5f6c270b1c4bb60726f371fa49459a8eaaebc90b216b328daf2b,m4,https://ftp.gnu.org/gnu/m4/m4-1.4.20.tar.xz, -dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3,make,https://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz, -99579a6f39583fa7e5630a28c3c1f440e4e97a414b80372649c0ce338da2ea28,mako,https://files.pythonhosted.org/packages/9e/38/bd5b78a920a64d708fe6bc8e0a2c075e1389d53bef8413725c63ba041535/mako-1.3.10.tar.gz, -ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0,markupsafe,https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz, -ec966eec39879f33c785343373021c44f887c836a08fcaf1d63412e3bdbfca32,mdevd,https://skarnet.org/software/mdevd/mdevd-0.1.7.0.tar.gz, -276490281e37add4ebc935a106af33daa70d3cbca4305afc8746ea66981d2f71,mesa,https://gitlab.freedesktop.org/mesa/mesa/-/archive/mesa-25.2.4/mesa-mesa-25.2.4.tar.gz, -a55bd02a9af4dd266c0042ec608744fff3a017577614c057da09f1f4566ea32c,mtdev,https://bitmath.se/org/code/mtdev/mtdev-1.1.7.tar.gz, -565c1b6e1e58f7e90d8813fda0e2102df69fb493ddab4cf6a84ce3647466bee5,muon,https://git.sr.ht/~lattis/muon/archive/0.5.0.tar.gz,muon-0.5.0.tar.gz -a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4,musl,https://musl.libc.org/releases/musl-1.2.5.tar.gz, -f7abfbf0eed5f573ab51bd77a458f32d82f9859c55e9689f819d96fe1437a619,nano,https://nano-editor.org/dist/v8/nano-8.6.tar.xz, -b7324cbe86e767b65f26f467ed8b12ad80e124e3ccb89076855c98e43a9eddd4,nasm,https://www.nasm.us/pub/nasm/releasebuilds/3.01/nasm-3.01.tar.xz, -97fc51ac2b085d4cde31ef4d2c3122c21abc217e9090a43a30fc5ec21684e059,ncurses,https://invisible-island.net/datafiles/release/ncurses.tar.gz,ncurses-6.3.tar.gz -1daf10f322e14fd90a017538aaf2c034d7cc1eb1cc418ded47445d714ea168d4,nftables,https://www.netfilter.org/pub/nftables/nftables-1.1.5.tar.xz, -1b661016bd8cd4189be83b441dd7062c967b641fdc00f741e359e22d06857df8,openrc,https://github.com/OpenRC/openrc/archive/refs/tags/0.63.tar.gz,openrc-0.63.tar.gz -d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f,packaging,https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz, -1b2e2f683dfb5adec3faf17087ade8c648f10a5d3d0e17e421e0ac1a39e6740e,pango,https://gitlab.gnome.org/GNOME/pango/-/archive/1.57.0/pango-1.57.0.tar.gz, -f87cee69eec2b4fcbf60a396b030ad6aa3415f192aa5f7ee84cad5e11f7f5ae3,patch,https://ftp.gnu.org/gnu/patch/patch-2.8.tar.xz, -8d28d7f2c3b970c3a4bf3776bcbb5adfc923183ce74bc8df1ebaad8c1985bd07,pcre2,https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.46/pcre2-10.46.tar.gz, -e093ef184d7f9a1b9797e2465296f55510adb6dab8842b0c3ed53329663096dc,perl,https://www.cpan.org/src/5.0/perl-5.42.0.tar.gz, -a098c33924754ad43f981b740f6d576c70f9ed1006e12221b1845431ebce1239,pixman,https://cairographics.org/releases/pixman-0.46.4.tar.xz, -cd05c9589b9f86ecf044c10a2269822bc9eb001eced2582cfffd658b0a50c243,pkgconf,https://distfiles.ariadne.space/pkgconf/pkgconf-2.5.1.tar.xz, -f3ef94aefed6e183e342a8a269ae1fc4742ba193186ad76f175938621dbfc26b,polib,https://files.pythonhosted.org/packages/10/9a/79b1067d27e38ddf84fe7da6ec516f1743f31f752c6122193e7bce38bdbf/polib-1.2.0.tar.gz, -c2e6d193cc78f84cd6ddb72aaf6d5c6a9162f0470e5992092057f5ff518562fa,procps-ng,https://gigenet.dl.sourceforge.net/project/procps-ng/Production/procps-ng-4.0.5.tar.xz, -1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8,pyproject_hooks,https://files.pythonhosted.org/packages/e7/82/28175b2414effca1cdac8dc99f76d660e7a4fb0ceefa4b4ab8f5f6742925/pyproject_hooks-1.2.0.tar.gz, -61a42919e13d539f7673cf11d1c404380e28e540510860b9d242196e165709c9,Python,https://www.python.org/ftp/python/3.9.23/Python-3.9.23.tar.xz, -70d4739585a7008f37bf4933c013fdb327b8878a5a69fcbb3316c88882f0f49b,pytest-runner,https://files.pythonhosted.org/packages/d7/7d/60976d532519c3a0b41e06a59ad60949e2be1af937cf02738fec91bfd808/pytest-runner-6.0.1.tar.gz, -d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e,pyyaml,https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz, -6bfeaddd90ffda2f063492b092bfed925c4b8c701579baf4b1316e021470daac,rustc,https://static.rust-lang.org/dist/rustc-1.90.0-src.tar.xz, -3b8cf51548dfc49b7efe035e191ff5e1963ebc4fe8f6064a5eefc5343eaf78a5,samurai,https://github.com/michaelforney/samurai/releases/download/1.2/samurai-1.2.tar.gz, -6e226b732e1cd739464ad6862bd1a1aba42d7982922da7a53519631d24975181,sed,https://ftp.gnu.org/gnu/sed/sed-4.9.tar.xz, -f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c,setuptools,https://files.pythonhosted.org/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz, -6662c9b9497b6c9bf13bead9d7a9084756f68238302c5ed089fb4dbd29d102d7,setuptools_scm,https://files.pythonhosted.org/packages/8f/8d/ffdcace33d0480d591057a30285b7c33f8dc431fed3fff7dbadf5f9f128f/setuptools_scm-9.2.0.tar.gz, -add4604d3bc410344433122a819ee4154b79dd8316a56298c60417e637c07608,shadow,https://github.com/shadow-maint/shadow/releases/download/4.18.0/shadow-4.18.0.tar.xz, -531291d0387eb94e16e775d7e73788d06d2b2fdd8cd2ac6b6b15287593b6a2de,shared-mime-info,https://gitlab.freedesktop.org/xdg/shared-mime-info/-/archive/2.4/shared-mime-info-2.4.tar.gz, -0e626261848cc920738f92fd50a24c14b21e30306dfed97b8435369f4bae00a5,skalibs,https://skarnet.org/software/skalibs/skalibs-2.14.4.0.tar.gz, -878fb5ab705442070e4dd1929bb5e2249511c0bcf2b0eeacf3bcd80875c82eff,StrEnum,https://files.pythonhosted.org/packages/85/ad/430fb60d90e1d112a62ff57bdd1f286ec73a2a0331272febfddd21f330e1/StrEnum-0.4.15.tar.gz, -5bbea925663d4cd2bab23efad53874f2718248a73dcaf9dd21dff8cb48e602fc,SPIRV-Headers,https://github.com/KhronosGroup/SPIRV-Headers/archive/refs/tags/vulkan-sdk-1.4.321.0.tar.gz,SPIRV-Headers-vulkan-sdk-1.4.321.0.tar.gz -4f7019a06c731daebbc18080db338964002493ead4cfb440fef95d120c50a170,SPIRV-LLVM-Translator,https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v21.1.0.tar.gz,spirv-llvm-translator-21.1.0.tar.gz -6a9313fa68e061d463f616357cd24cdf1c3a27d906ea791d7ba67dd1b6666a40,SPIRV-Tools,https://github.com/KhronosGroup/SPIRV-Tools/archive/refs/tags/v2025.1.tar.gz,spirv-tools-2025.1.tar.gz -4d62ff37342ec7aed748535323930c7cf94acf71c3591882b26a7ea50f3edc16,tar,https://ftp.gnu.org/gnu/tar/tar-1.35.tar.xz, -b92017489bdc1db3a4c97191aa4b75366673cb746de0dce5d7a749d5954681ba,tiff,https://download.osgeo.org/libtiff/tiff-4.7.1.tar.xz, -6ee152cfb083a378285a49c8e52294307458119147f795bfb7f460cb7ed1d659,tinyramfs,https://github.com/illiliti/tinyramfs/archive/refs/tags/0.2.0.tar.gz,tinyramfs-0.2.0.tar.gz -cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff,tomli,https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz, -0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466,typing_extensions,https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz, -26687ec84e3e114759454c884a08abeaf79dec09b041895ddf4c45ec150acb6d,liburcu,https://lttng.org/files/urcu/userspace-rcu-0.15.3.tar.bz2, -6062a1d89b571a61932e6fc0211f36060c4183568b81ee866cf363bce9f6583e,util-linux,https://www.kernel.org/pub/linux/utils/util-linux/v2.41/util-linux-2.41.2.tar.xz, -beac7e00e5996bd0c9d9bd8cf62704583b22dbe8613bd768626b95fcac955744,util-macros,https://gitlab.freedesktop.org/xorg/util/macros/-/archive/util-macros-1.20.2/macros-util-macros-1.20.2.tar.gz, -661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729,wheel,https://files.pythonhosted.org/packages/8a/98/2d9906746cdc6a6ef809ae6338005b3f21bb568bea3165cfc6a243fdc25c/wheel-0.45.1.tar.gz, -7b56592b339d47809cbefb9f46721705c662de1a001bc773d335975cd2eba34f,xcb-util,https://gitlab.freedesktop.org/xorg/lib/libxcb-util/-/archive/xcb-util-0.4.1/libxcb-util-xcb-util-0.4.1.tar.gz, -6389dae32d7d772245fed7c76d3f83cb7ffa88eb447dbb4db8400c2220e42c2a,xcb-util-m4,https://gitlab.freedesktop.org/xorg/util/xcb-util-m4/-/archive/c617eee22ae5c285e79e81ec39ce96862fd3262f/xcb-util-m4-c617eee22ae5c285e79e81ec39ce96862fd3262f.tar.gz, -c1b792306874c36b535413a33edc71a0ac46e78adcf6ddb1a34090a07393d717,xcb-util-wm,https://gitlab.freedesktop.org/xorg/lib/libxcb-wm/-/archive/xcb-util-wm-0.4.2/libxcb-wm-xcb-util-wm-0.4.2.tar.gz, -479447448281cfb6585ad780f23bd75311af20daf344fb9209c8a87ea77e296a,xcbproto,https://gitlab.freedesktop.org/xorg/proto/xcbproto/-/archive/xcb-proto-1.17.0/xcbproto-xcb-proto-1.17.0.tar.gz, -fa7ba8c35cb988e7d65b7e7630fe9d0e17e8d79799d3b98db7e19f2b9b150506,xfsprogs,https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/xfsprogs-6.16.0.tar.xz, -dd18aece9b4e99e6b3d4d9d436cf0645ea31d11e142da193e8b01c23a8b097b2,xkbcomp,https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/archive/xkbcomp-1.4.7/xkbcomp-xkbcomp-1.4.7.tar.gz, -81107e12f71087b3f1d7dea43c186805d46abaffead0cafca9bdd24b94c2007e,xkeyboard-config,https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/archive/xkeyboard-config-2.46/xkeyboard-config-xkeyboard-config-2.46.tar.gz, -f1be5a443af78307af18103a6bb614021fe163380b0eb43dec820a2389fbd6c8,xlibre-xf86-input-libinput,https://github.com/X11Libre/xf86-input-libinput/archive/refs/tags/xlibre-xf86-input-libinput-1.5.1.0.tar.gz, -7137c2bdd9e290aff83565d77b842a209b138776785c745cf7c0d10c9f25fe8f,xlibre-xf86-video-vesa,https://codeload.github.com/X11Libre/xf86-video-vesa/tar.gz/refs/tags/xlibre-xf86-video-vesa-2.6.0.3,xlibre-xf86-video-vesa-2.6.0.3.tar.gz -32c5760681cbfbc3b8a605a18588c9c5dd721aecf40acc140fbe8b4f765c4e13,xlibre-xserver,https://github.com/X11Libre/xserver/archive/refs/tags/xlibre-xserver-25.0.0.12.tar.gz, -c92466091663b68d93997eab4f329d0be511cb448a61b61fe74a738f2698b77c,xorgproto,https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/archive/xorgproto-2024.1/xorgproto-xorgproto-2024.1.tar.gz, -0b54f79df85912504de0b14aec7971e3f964491af1812d83447005807513cd9e,xz,https://github.com/tukaani-project/xz/releases/download/v5.8.1/xz-5.8.1.tar.xz, -a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166,zipp,https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz, -9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23,zlib,https://www.zlib.net/zlib-1.3.1.tar.gz, -9b8d1ecedd5b5e81fbf1918e876752a7dd948e05c1a0dba10ab863842d45acd5,zsh,https://www.zsh.org/pub/zsh-5.9.tar.xz, diff --git a/sources/busybox.spec b/sources/busybox.spec new file mode 100644 index 0000000..b2fd1aa --- /dev/null +++ b/sources/busybox.spec @@ -0,0 +1,4 @@ +SRC_HASH="b8cc24c9574d809e7279c3be349795c5d5ceb6fdf19ca709f80cde50e47de314" +SRC_NAME="busybox" +SRC_URL="https://busybox.net/downloads/busybox-1.36.1.tar.bz2" +SRC_VERSION="1.36.1" diff --git a/sources/linux.spec b/sources/linux.spec new file mode 100644 index 0000000..7b8566f --- /dev/null +++ b/sources/linux.spec @@ -0,0 +1,4 @@ +SRC_HASH="ddf2ea0d4439e1d57136be3623102af9458f601f5b1cb77e83246e88aea09d0e" +SRC_NAME="linux" +SRC_URL="https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.17.7.tar.xz" +SRC_VERSION="6.17.7" diff --git a/sources/llvm.spec b/sources/llvm.spec new file mode 100644 index 0000000..d1f076e --- /dev/null +++ b/sources/llvm.spec @@ -0,0 +1,4 @@ +SRC_HASH="1794be4bf974e99a3fe1da4b2b9b1456c02ae9479c942f365441d8d207bd650c" +SRC_NAME="llvm" +SRC_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.5/llvm-project-21.1.5.src.tar.xz" +SRC_VERSION="21.1.5" diff --git a/sources/musl.spec b/sources/musl.spec new file mode 100644 index 0000000..5811461 --- /dev/null +++ b/sources/musl.spec @@ -0,0 +1,28 @@ +SRC_HASH="a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4" +SRC_NAME="musl" +SRC_URL="https://musl.libc.org/releases/musl-1.2.5.tar.gz" +SRC_VERSION="1.2.5" + +# TODO: CVE-2025-26519 + +build() { + tar xf ../musl-*.tar* + cd musl-*/ + ./configure \ + --bindir=$TREETAP_BINDIR \ + --build=$TREETAP_BUILD \ + --includedir=$TREETAP_INCLUDEDIR \ + --libdir=$TREETAP_LIBDIR \ + --prefix=$TREETAP_PREFIX \ + --target=$TREETAP_TARGET + make -j $TREETAP_PROCS +} + +clean() { + rm -rf musl-*/ +} + +package() { + cd musl-*/ + DESTDIR=$TREETAP_INSTALLDIR make install +} diff --git a/treetap b/treetap new file mode 100755 index 0000000..d8287e5 --- /dev/null +++ b/treetap @@ -0,0 +1,195 @@ +#!/bin/sh -e + +# Copyright (c) 2025 Alexander Hill + +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. + +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +# PERFORMANCE OF THIS SOFTWARE. + +#################### +# Global Variables # +#################### + +[ -z "$TREETAP_DIR" ] && TREETAP_DIR="$(pwd)/.treetap" +[ -z "$TREETAP_PKGDIR" ] && TREETAP_PKGDIR="$TREETAP_DIR/packages" +[ -z "$TREETAP_SYSROOT" ] && TREETAP_SYSROOT=/ +TREETAP_VERSION="1.0.0" + +##################### +# Utility Functions # +##################### + +# Displays the usage information for treetap +help_message() { + echo "treetap $TREETAP_VERSION" + echo + echo "Package Commands:" + echo " $0 install [sysroot]" + echo " $0 uninstall [sysroot]" + echo + echo "Source Commands:" + echo " $0 build " + echo " $0 clean " + echo " $0 fetch " + echo " $0 package " + echo " $0 purge " + exit 1 +} + +# Confirms that the given strings are valid package and sysroot paths +package_check() { + [ -z "$1" ] && (echo "package_check: Missing package file"; exit 1) + [ -z "$2" ] && (echo "package_check: Missing sysroot"; exit 1) + [ ! -f "$1" ] && (echo "package_check: Package file \"$1\" not found"; exit 1) + [ ! -d "$2" ] && (echo "package_check: Sysroot \"$2\" not found"; exit 1) + true +} + +# Reads the source specification and ensures it includes the required data +source_spec() { + # Sanity Check + [ -z "$1" ] && (echo "source_spec: Missing specification file"; exit 1) + [ ! -f "$1" ] && (echo "source_spec: Specification file \"$1\" not found"; exit 1) + + # Zhu Li, do the thing! + source $1 + + # Required Fields + [ -z "$SRC_HASH" ] && (echo "source_spec: SRC_HASH is required but not defined"; exit 1) + [ -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) + + # Optional Fields + [ -z "$SRC_FILENAME" ] && SRC_FILENAME=$(basename $SRC_URL) + + # Environmental Variables + [ -z "$TREETAP_BINDIR" ] && TREETAP_BINDIR=/bin + TREETAP_BUILD=$(clang -dumpmachine) + [ -z "$TREETAP_TARGET" ] && TREETAP_TARGET=$TREETAP_BUILD + TREETAP_BUILDDIR="$TREETAP_DIR/sources/$SRC_NAME/$SRC_VERSION/$TREETAP_TARGET" + [ -z "$TREETAP_INCLUDEDIR" ] && TREETAP_INCLUDEDIR=/usr/include + TREETAP_INSTALLDIR="$TREETAP_BUILDDIR/install" + [ -z "$TREETAP_LIBDIR" ] && TREETAP_LIBDIR=/lib + [ -z "$TREETAP_PREFIX" ] && TREETAP_PREFIX=/ + [ -z "$TREETAP_PROCS" ] && TREETAP_PROCS=$(nproc) + + true +} + +############### +# Subcommands # +############### + +# Installs a package to the sysroot +package_install() { + [ ! -z "$2" ] && TREETAP_SYSROOT=$2 + package_check $1 $TREETAP_SYSROOT + echo "Installing $(basename $1)" + FULLPATH=$(pwd)/$1 + pushd $TREETAP_SYSROOT > /dev/null + xz -cd $FULLPATH | cpio -idmu --quiet + popd > /dev/null + exit 0 +} + +# Uninstalls a package from the sysroot +package_uninstall() { + [ ! -z "$2" ] && TREETAP_SYSROOT=$2 + package_check $1 $TREETAP_SYSROOT + echo "Uninstalling $(basename $1)" + FULLPATH=$(pwd)/$1 + pushd $TREETAP_SYSROOT > /dev/null + xz -cd $FULLPATH | cpio -it --quiet | tail -n +2 | sort -r | while read path; do + if [ -d $path ]; then + rmdir --ignore-fail-on-non-empty $path + else + rm -f $path + fi + done + popd > /dev/null + exit 0 +} + +# Builds the source from the previously fetched tarball +source_build() { + source_spec $1 + mkdir -p $TREETAP_BUILDDIR + pushd $TREETAP_BUILDDIR > /dev/null + echo "Building $SRC_NAME $SRC_VERSION" + build > build-$(date +%Y%m%d%H%M%S).log 2>&1 + popd > /dev/null + exit 0 +} + +# Cleans the source from the previous build +source_clean() { + source_spec $1 + mkdir -p $TREETAP_BUILDDIR + pushd $TREETAP_BUILDDIR > /dev/null + echo "Cleaning $SRC_NAME $SRC_VERSION" + clean + rm -rf $TREETAP_INSTALLDIR + popd > /dev/null + exit 0 +} + +# Fetches and verifies the integrity of the source tarball +source_fetch() { + source_spec $1 + mkdir -p $TREETAP_BUILDDIR + pushd $TREETAP_BUILDDIR/.. > /dev/null + echo "Fetching $SRC_FILENAME" + curl -L -sS $SRC_URL -o $SRC_FILENAME + echo "Verifying $SRC_FILENAME" + echo "$SRC_HASH $SRC_FILENAME" | sha256sum -c - > /dev/null + popd > /dev/null + exit 0 +} + +# Packages the built artifacts for distribution +source_package() { + source_spec $1 + mkdir -p $TREETAP_BUILDDIR + mkdir -p $TREETAP_INSTALLDIR + mkdir -p $TREETAP_PKGDIR + pushd $TREETAP_BUILDDIR > /dev/null + echo "Moving artifacts for $SRC_NAME $SRC_VERSION" + package > package-$(date +%Y%m%d%H%M%S).log + echo "Archiving $SRC_NAME $SRC_VERSION" + cd $TREETAP_INSTALLDIR + find | cpio -o --quiet | xz -cz > "$TREETAP_PKGDIR/$SRC_NAME-$SRC_VERSION.cpio.xz" + rm -rf $TREETAP_INSTALLDIR + popd > /dev/null + exit 0 +} + +# Purges the entire build directory for a source +source_purge() { + source_spec $1 + rm -rf $TREETAP_BUILDDIR + exit 0 +} + +############### +# Entry Point # +############### + +case "$1" in +"build") source_build $2 ;; +"clean") source_clean $2 ;; +"fetch") source_fetch $2 ;; +"install") package_install $2 $3 ;; +"package") source_package $2 ;; +"purge") source_purge $2 ;; +"uninstall") package_uninstall $2 $3 ;; +*) help_message ;; +esac -- 2.49.1 From 09f2e062cad929f867bb96c97ed581aa79df7c71 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Wed, 12 Nov 2025 21:41:26 -0500 Subject: [PATCH 04/74] Successfully bootstrapped with LLVM 21! This took a LOT longer than I would have liked, but I'm so happy that it's working again! --- bootstrap.sh | 77 +++++++++++++++++++++++++++++++++----------- sources/busybox.spec | 0 sources/linux.spec | 0 sources/llvm.spec | 0 sources/musl.spec | 0 treetap | 44 +++++++++++++++++-------- 6 files changed, 88 insertions(+), 33 deletions(-) mode change 100644 => 100755 sources/busybox.spec mode change 100644 => 100755 sources/linux.spec mode change 100644 => 100755 sources/llvm.spec mode change 100644 => 100755 sources/musl.spec diff --git a/bootstrap.sh b/bootstrap.sh index 36fc599..5db4386 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -1,10 +1,22 @@ #!/bin/zsh -e -BOOTSTRAP=$(pwd)/.bootstrap MICROARCH="skylake" +TARGET=x86_64-maple-linux-musl + +# Set the environment up +ARCH=$(echo $TARGET | cut -d"-" -f1) +BOOTSTRAP=$(pwd)/.bootstrap PROCS=$(nproc) SOURCES=$(pwd)/.treetap/sources -TARGET=x86_64-maple-linux-musl +export AR=llvm-ar +export CC=clang +export CFLAGS="-fuse-ld=lld -O3 -march=$MICROARCH -pipe --sysroot=$BOOTSTRAP/root -Wno-unused-command-line-argument" +export CXX=clang++ +export CXXFLAGS=$CFLAGS +export RANLIB=llvm-ranlib +export LD=ld.lld +export TREETAP_SYSROOT=$BOOTSTRAP/root +export TREETAP_TARGET=$TARGET # Fetch sources required for a bootstrap ./treetap fetch sources/busybox.spec @@ -23,16 +35,6 @@ ln -sf ../run/lock $BOOTSTRAP/root/var/lock ln -sf ../run $BOOTSTRAP/root/var/run # Prepare for the build -ARCH=$(echo $TARGET | cut -d"-" -f1) -export AR=llvm-ar -export CC=clang -export CFLAGS="-fuse-ld=lld -O3 -march=$MICROARCH -pipe --sysroot=$BOOTSTRAP/root -Wno-unused-command-line-argument" -export CXX=clang++ -export CXXFLAGS=$CFLAGS -export RANLIB=llvm-ranlib -export LD=ld.lld -export TREETAP_SYSROOT=$BOOTSTRAP/root -export TREETAP_TARGET=$TARGET mkdir -p $BOOTSTRAP/build cd $BOOTSTRAP/build @@ -82,7 +84,8 @@ cd musl-*/ --includedir=/usr/include \ --libdir=/lib \ --prefix=/ -make -O -j $PROCS +# NOTE: The build is skipped here because we only care about the header files at +# this point. ~ahill make -O -j $PROCS install-headers DESTDIR=$BOOTSTRAP/root cd .. @@ -100,7 +103,7 @@ cd .. # Build musl for real this time cd musl-*/ -# TODO: CVE-2025-26519 +# FIXME: Patch CVE-2025-26519 ~ahill make clean # NOTE: LIBCC is required here because it will attempt to link with the build # system's runtime if this is not specified. ~ahill @@ -124,9 +127,13 @@ export CXXFLAGS="$CXXFLAGS -Qunused-arguments -rtlib=compiler-rt -Wl,--dynamic-l # setting CMAKE_CXX_COMPILER_WORKS, therefore tricking CMake into # performing a successful build. Yet another instance where the genie in # the bottle does exactly what we asked, and not what we wanted. ~ahill +# NOTE: Not sure why this didn't show up before, but CMAKE_C_COMPILER_WORKS is +# is manually set because the C compiler attempts to link with libgcc_s or +# libunwind, even though it doesn't exist yet. ~ahill cd llvm-project-*/ cmake -S runtimes -B build-runtimes \ -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_COMPILER_WORKS=ON \ -DCMAKE_CXX_COMPILER_WORKS=ON \ -DCMAKE_INSTALL_INCLUDEDIR=$BOOTSTRAP/root/usr/include \ -DCMAKE_INSTALL_PREFIX=$BOOTSTRAP/root \ @@ -143,21 +150,28 @@ cmake --build build-runtimes --parallel $PROCS cmake --install build-runtimes --parallel $PROCS cd .. -# Now we can introduce libc++ into the environment +# Now we can introduce libunwind and libc++ into the environment # NOTE: clang++ attempts to build with headers from the build system rather than # exclusively relying on the sysroot. Because of this, we must manually # define the proper include path. ~ahill -export CXXFLAGS="$CXXFLAGS -isystem $BOOTSTRAP/root/usr/include/c++/v1 -nostdinc++ -stdlib=libc++" +export CFLAGS="$CFLAGS -unwindlib=libunwind" +export CXXFLAGS="$CXXFLAGS -isystem $BOOTSTRAP/root/usr/include/c++/v1 -nostdinc++ -stdlib=libc++ -unwindlib=libunwind" -# Build LLVM itself +# Build clang/LLVM # NOTE: LLVM_ENABLE_ZSTD is disabled because we don't have zstd in the sysroot, # and because I don't believe that a library created by Facebook should # be required for an operating system to function. ~ahill +# NOTE: If we don't do this, LLVM attempts to build its own copy of tblgen, +# which will cause the build to fail since we're cross-compiling and can't +# run programs built for another platform. LLVM_NATIVE_TOOL_DIR, +# LLVM_TABLEGEN, and CLANG_TABLEGEN are set based on this variable. ~ahill +NATIVE_TOOL_DIR=$(dirname $(which llvm-tblgen)) cd llvm-project-*/ cmake -S llvm -B build-llvm \ -DCLANG_DEFAULT_CXX_STDLIB=libc++ \ -DCLANG_DEFAULT_RTLIB=compiler-rt \ -DCLANG_DEFAULT_UNWINDLIB=libunwind \ + -DCLANG_TABLEGEN=$NATIVE_TOOL_DIR/clang-tblgen \ -DCLANG_VENDOR=Maple \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=$BOOTSTRAP/root \ @@ -165,7 +179,32 @@ cmake -S llvm -B build-llvm \ -DLLVM_ENABLE_LIBCXX=ON \ -DLLVM_ENABLE_PROJECTS="clang;lld;llvm" \ -DLLVM_ENABLE_ZSTD=OFF \ - -DLLVM_HOST_TRIPLE=$TARGET + -DLLVM_HOST_TRIPLE=$TARGET \ + -DLLVM_NATIVE_TOOL_DIR=$NATIVE_TOOL_DIR \ + -DLLVM_TABLEGEN=$NATIVE_TOOL_DIR/llvm-tblgen cmake --build build-llvm --parallel $PROCS -# ... +cmake --install build-llvm --parallel $PROCS cd .. + +# Build Busybox +tar xf $SOURCES/busybox/*/busybox-*.tar* +cd busybox-*/ +# 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. With that said, +# Busybox uses Kbuild, which hard-codes variables like CC to GNU-based +# tools, which is not what we want. The following sed hack should do the +# trick, but I wonder if there's a better solution. ~ahill +sed -i "s/?*= \$(CROSS_COMPILE)/?= /" Makefile +make -O -j $PROCS defconfig +# NOTE: tc causes a LOT of issues due to undefined things. We don't really need +# "traffic control" at this time, and when we eventually do, we will +# likely use something else. ~ahill +sed -i "s/CONFIG_TC=.*/CONFIG_TC=n/" .config +make -O -j $PROCS +# NOTE: Busybox doesn't appear to have a proper DESTDIR, so we just set +# CONFIG_PREFIX during the install step to work around this. ~ahill +make -O -j $PROCS install CONFIG_PREFIX=$BOOTSTRAP/root +cd .. + +# Install Treetap +cp $BOOTSTRAP/../treetap $BOOTSTRAP/root/bin/ \ No newline at end of file diff --git a/sources/busybox.spec b/sources/busybox.spec old mode 100644 new mode 100755 diff --git a/sources/linux.spec b/sources/linux.spec old mode 100644 new mode 100755 diff --git a/sources/llvm.spec b/sources/llvm.spec old mode 100644 new mode 100755 diff --git a/sources/musl.spec b/sources/musl.spec old mode 100644 new mode 100755 diff --git a/treetap b/treetap index d8287e5..1c83a3a 100755 --- a/treetap +++ b/treetap @@ -14,6 +14,16 @@ # OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. +############# +# Changelog # +############# + +# November 11, 2025 (1.0.1) +# - Removed bashisms to become POSIX compliant + +# November 9, 2025 (1.0.0) +# * Initial release + #################### # Global Variables # #################### @@ -21,7 +31,7 @@ [ -z "$TREETAP_DIR" ] && TREETAP_DIR="$(pwd)/.treetap" [ -z "$TREETAP_PKGDIR" ] && TREETAP_PKGDIR="$TREETAP_DIR/packages" [ -z "$TREETAP_SYSROOT" ] && TREETAP_SYSROOT=/ -TREETAP_VERSION="1.0.0" +TREETAP_VERSION="1.0.1" ##################### # Utility Functions # @@ -60,7 +70,7 @@ source_spec() { [ ! -f "$1" ] && (echo "source_spec: Specification file \"$1\" not found"; exit 1) # Zhu Li, do the thing! - source $1 + . $1 # Required Fields [ -z "$SRC_HASH" ] && (echo "source_spec: SRC_HASH is required but not defined"; exit 1) @@ -95,9 +105,10 @@ package_install() { package_check $1 $TREETAP_SYSROOT echo "Installing $(basename $1)" FULLPATH=$(pwd)/$1 - pushd $TREETAP_SYSROOT > /dev/null + PUSHD=$(pwd) + cd $TREETAP_SYSROOT xz -cd $FULLPATH | cpio -idmu --quiet - popd > /dev/null + cd $PUSHD exit 0 } @@ -107,7 +118,8 @@ package_uninstall() { package_check $1 $TREETAP_SYSROOT echo "Uninstalling $(basename $1)" FULLPATH=$(pwd)/$1 - pushd $TREETAP_SYSROOT > /dev/null + PUSHD=$(pwd) + cd $TREETAP_SYSROOT xz -cd $FULLPATH | cpio -it --quiet | tail -n +2 | sort -r | while read path; do if [ -d $path ]; then rmdir --ignore-fail-on-non-empty $path @@ -115,7 +127,7 @@ package_uninstall() { rm -f $path fi done - popd > /dev/null + cd $PUSHD exit 0 } @@ -123,10 +135,11 @@ package_uninstall() { source_build() { source_spec $1 mkdir -p $TREETAP_BUILDDIR - pushd $TREETAP_BUILDDIR > /dev/null + PUSHD=$(pwd) + cd $TREETAP_BUILDDIR echo "Building $SRC_NAME $SRC_VERSION" build > build-$(date +%Y%m%d%H%M%S).log 2>&1 - popd > /dev/null + cd $PUSHD exit 0 } @@ -134,11 +147,12 @@ source_build() { source_clean() { source_spec $1 mkdir -p $TREETAP_BUILDDIR - pushd $TREETAP_BUILDDIR > /dev/null + PUSHD=$(pwd) + cd $TREETAP_BUILDDIR echo "Cleaning $SRC_NAME $SRC_VERSION" clean rm -rf $TREETAP_INSTALLDIR - popd > /dev/null + cd $PUSHD exit 0 } @@ -146,12 +160,13 @@ source_clean() { source_fetch() { source_spec $1 mkdir -p $TREETAP_BUILDDIR - pushd $TREETAP_BUILDDIR/.. > /dev/null + PUSHD=$(pwd) + cd $TREETAP_BUILDDIR/.. echo "Fetching $SRC_FILENAME" curl -L -sS $SRC_URL -o $SRC_FILENAME echo "Verifying $SRC_FILENAME" echo "$SRC_HASH $SRC_FILENAME" | sha256sum -c - > /dev/null - popd > /dev/null + cd $PUSHD exit 0 } @@ -161,14 +176,15 @@ source_package() { mkdir -p $TREETAP_BUILDDIR mkdir -p $TREETAP_INSTALLDIR mkdir -p $TREETAP_PKGDIR - pushd $TREETAP_BUILDDIR > /dev/null + PUSHD=$(pwd) + cd $TREETAP_BUILDDIR echo "Moving artifacts for $SRC_NAME $SRC_VERSION" package > package-$(date +%Y%m%d%H%M%S).log echo "Archiving $SRC_NAME $SRC_VERSION" cd $TREETAP_INSTALLDIR find | cpio -o --quiet | xz -cz > "$TREETAP_PKGDIR/$SRC_NAME-$SRC_VERSION.cpio.xz" rm -rf $TREETAP_INSTALLDIR - popd > /dev/null + cd $PUSHD exit 0 } -- 2.49.1 From 6f8194193d95d43dc0ff8bd896d3c636a23a259a Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Thu, 13 Nov 2025 20:27:26 -0500 Subject: [PATCH 05/74] Updated to Linux 6.17.8 --- sources/linux.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sources/linux.spec b/sources/linux.spec index 7b8566f..1e9cb16 100755 --- a/sources/linux.spec +++ b/sources/linux.spec @@ -1,4 +1,4 @@ -SRC_HASH="ddf2ea0d4439e1d57136be3623102af9458f601f5b1cb77e83246e88aea09d0e" +SRC_HASH="5a8de64a75fca706c01c6c0a77cf75a74618439db195e25f1f0268af6b2fb1da" SRC_NAME="linux" -SRC_URL="https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.17.7.tar.xz" -SRC_VERSION="6.17.7" +SRC_URL="https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.17.8.tar.xz" +SRC_VERSION="6.17.8" -- 2.49.1 From f8787a89115503dcd1b4ad05d6309e75d4727fa7 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Fri, 14 Nov 2025 18:27:49 -0500 Subject: [PATCH 06/74] Fixed the bootstrap and updated treetap Bootstrap build survived overnight. TGIF --- bootstrap.sh | 18 ++++++---- sources/musl.spec | 16 ++++----- treetap | 83 +++++++++++++++++++++++++++-------------------- 3 files changed, 68 insertions(+), 49 deletions(-) diff --git a/bootstrap.sh b/bootstrap.sh index 5db4386..532da62 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -8,6 +8,7 @@ ARCH=$(echo $TARGET | cut -d"-" -f1) BOOTSTRAP=$(pwd)/.bootstrap PROCS=$(nproc) SOURCES=$(pwd)/.treetap/sources +SPEC=$(pwd)/sources export AR=llvm-ar export CC=clang export CFLAGS="-fuse-ld=lld -O3 -march=$MICROARCH -pipe --sysroot=$BOOTSTRAP/root -Wno-unused-command-line-argument" @@ -15,8 +16,9 @@ export CXX=clang++ export CXXFLAGS=$CFLAGS export RANLIB=llvm-ranlib export LD=ld.lld -export TREETAP_SYSROOT=$BOOTSTRAP/root -export TREETAP_TARGET=$TARGET +export LDFLAGS="--sysroot=$BOOTSTRAP/root" +export TT_SYSROOT=$BOOTSTRAP/root +export TT_TARGET=$TARGET # Fetch sources required for a bootstrap ./treetap fetch sources/busybox.spec @@ -57,7 +59,8 @@ set(CMAKE_SYSTEM_NAME Linux) EOF # Install headers for Linux -tar xf $SOURCES/linux/*/linux-*.tar* +LINUX_VERSION=$(sed -En "s/SRC_VERSION=\"?(.+)\"/\1/p" $SPEC/linux.spec) +tar xf $SOURCES/linux/$LINUX_VERSION/linux-*.tar* cd linux-*/ # NOTE: LLVM=1 is required here because GCC and other GNU tools are required in # some places still. This allows us to use LLVM and bypass the parts that @@ -71,7 +74,8 @@ cp -r usr/include $BOOTSTRAP/root/usr cd .. # Install headers for musl -tar xf $SOURCES/musl/*/musl-*.tar* +MUSL_VERSION=$(sed -En "s/SRC_VERSION=\"?(.+)\"/\1/p" $SPEC/musl.spec) +tar xf $SOURCES/musl/$MUSL_VERSION/musl-*.tar* cd musl-*/ # NOTE: We are intentionally not passing --target here because musl follows the # GNU approach when it comes to cross-compiling. This means the build @@ -90,7 +94,8 @@ make -O -j $PROCS install-headers DESTDIR=$BOOTSTRAP/root cd .. # Build and install compiler-rt builtins -tar xf $SOURCES/llvm/*/llvm-project-*.tar* +LLVM_VERSION=$(sed -En "s/SRC_VERSION=\"?(.+)\"/\1/p" $SPEC/llvm.spec) +tar xf $SOURCES/llvm/$LLVM_VERSION/llvm-project-*.tar* cd llvm-project-*/ cmake -S compiler-rt/lib/builtins -B build-builtins \ -DCMAKE_BUILD_TYPE=Release \ @@ -187,7 +192,8 @@ cmake --install build-llvm --parallel $PROCS cd .. # Build Busybox -tar xf $SOURCES/busybox/*/busybox-*.tar* +BUSYBOX_VERSION=$(sed -En "s/SRC_VERSION=\"?(.+)\"/\1/p" $SPEC/busybox.spec) +tar xf $SOURCES/busybox/$BUSYBOX_VERSION/busybox-*.tar* cd busybox-*/ # 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. With that said, diff --git a/sources/musl.spec b/sources/musl.spec index 5811461..a5a904f 100755 --- a/sources/musl.spec +++ b/sources/musl.spec @@ -9,13 +9,13 @@ build() { tar xf ../musl-*.tar* cd musl-*/ ./configure \ - --bindir=$TREETAP_BINDIR \ - --build=$TREETAP_BUILD \ - --includedir=$TREETAP_INCLUDEDIR \ - --libdir=$TREETAP_LIBDIR \ - --prefix=$TREETAP_PREFIX \ - --target=$TREETAP_TARGET - make -j $TREETAP_PROCS + --bindir=$TT_BINDIR \ + --build=$TT_BUILD \ + --includedir=$TT_INCLUDEDIR \ + --libdir=$TT_LIBDIR \ + --prefix=$TT_PREFIX \ + --target=$TT_TARGET + make -O -j $TT_PROCS } clean() { @@ -24,5 +24,5 @@ clean() { package() { cd musl-*/ - DESTDIR=$TREETAP_INSTALLDIR make install + DESTDIR=$TT_INSTALLDIR make install } diff --git a/treetap b/treetap index 1c83a3a..19a5a03 100755 --- a/treetap +++ b/treetap @@ -18,6 +18,11 @@ # Changelog # ############# +# November 13, 2025 (1.0.2) +# + Added the target triple to the package path +# * Prevented fetch from re-downloading packages given a valid hash +# * Renamed all TREETAP_* variables to TT_* + # November 11, 2025 (1.0.1) # - Removed bashisms to become POSIX compliant @@ -28,10 +33,10 @@ # Global Variables # #################### -[ -z "$TREETAP_DIR" ] && TREETAP_DIR="$(pwd)/.treetap" -[ -z "$TREETAP_PKGDIR" ] && TREETAP_PKGDIR="$TREETAP_DIR/packages" -[ -z "$TREETAP_SYSROOT" ] && TREETAP_SYSROOT=/ -TREETAP_VERSION="1.0.1" +[ -z "$TT_DIR" ] && TT_DIR="$(pwd)/.treetap" +[ -z "$TT_PKGDIR" ] && TT_PKGDIR="$TT_DIR/packages" +[ -z "$TT_SYSROOT" ] && TT_SYSROOT=/ +TT_VERSION="1.0.2" ##################### # Utility Functions # @@ -39,7 +44,7 @@ TREETAP_VERSION="1.0.1" # Displays the usage information for treetap help_message() { - echo "treetap $TREETAP_VERSION" + echo "treetap $TT_VERSION" echo echo "Package Commands:" echo " $0 install [sysroot]" @@ -82,15 +87,15 @@ source_spec() { [ -z "$SRC_FILENAME" ] && SRC_FILENAME=$(basename $SRC_URL) # Environmental Variables - [ -z "$TREETAP_BINDIR" ] && TREETAP_BINDIR=/bin - TREETAP_BUILD=$(clang -dumpmachine) - [ -z "$TREETAP_TARGET" ] && TREETAP_TARGET=$TREETAP_BUILD - TREETAP_BUILDDIR="$TREETAP_DIR/sources/$SRC_NAME/$SRC_VERSION/$TREETAP_TARGET" - [ -z "$TREETAP_INCLUDEDIR" ] && TREETAP_INCLUDEDIR=/usr/include - TREETAP_INSTALLDIR="$TREETAP_BUILDDIR/install" - [ -z "$TREETAP_LIBDIR" ] && TREETAP_LIBDIR=/lib - [ -z "$TREETAP_PREFIX" ] && TREETAP_PREFIX=/ - [ -z "$TREETAP_PROCS" ] && TREETAP_PROCS=$(nproc) + [ -z "$TT_BINDIR" ] && TT_BINDIR=/bin + TT_BUILD=$(clang -dumpmachine) + [ -z "$TT_TARGET" ] && TT_TARGET=$TT_BUILD + TT_BUILDDIR="$TT_DIR/sources/$SRC_NAME/$SRC_VERSION/$TT_TARGET" + [ -z "$TT_INCLUDEDIR" ] && TT_INCLUDEDIR=/usr/include + TT_INSTALLDIR="$TT_BUILDDIR/install" + [ -z "$TT_LIBDIR" ] && TT_LIBDIR=/lib + [ -z "$TT_PREFIX" ] && TT_PREFIX=/ + [ -z "$TT_PROCS" ] && TT_PROCS=$(nproc) true } @@ -101,12 +106,12 @@ source_spec() { # Installs a package to the sysroot package_install() { - [ ! -z "$2" ] && TREETAP_SYSROOT=$2 - package_check $1 $TREETAP_SYSROOT + [ ! -z "$2" ] && TT_SYSROOT=$2 + package_check $1 $TT_SYSROOT echo "Installing $(basename $1)" FULLPATH=$(pwd)/$1 PUSHD=$(pwd) - cd $TREETAP_SYSROOT + cd $TT_SYSROOT xz -cd $FULLPATH | cpio -idmu --quiet cd $PUSHD exit 0 @@ -114,12 +119,12 @@ package_install() { # Uninstalls a package from the sysroot package_uninstall() { - [ ! -z "$2" ] && TREETAP_SYSROOT=$2 - package_check $1 $TREETAP_SYSROOT + [ ! -z "$2" ] && TT_SYSROOT=$2 + package_check $1 $TT_SYSROOT echo "Uninstalling $(basename $1)" FULLPATH=$(pwd)/$1 PUSHD=$(pwd) - cd $TREETAP_SYSROOT + cd $TT_SYSROOT xz -cd $FULLPATH | cpio -it --quiet | tail -n +2 | sort -r | while read path; do if [ -d $path ]; then rmdir --ignore-fail-on-non-empty $path @@ -134,9 +139,9 @@ package_uninstall() { # Builds the source from the previously fetched tarball source_build() { source_spec $1 - mkdir -p $TREETAP_BUILDDIR + mkdir -p $TT_BUILDDIR PUSHD=$(pwd) - cd $TREETAP_BUILDDIR + cd $TT_BUILDDIR echo "Building $SRC_NAME $SRC_VERSION" build > build-$(date +%Y%m%d%H%M%S).log 2>&1 cd $PUSHD @@ -146,12 +151,12 @@ source_build() { # Cleans the source from the previous build source_clean() { source_spec $1 - mkdir -p $TREETAP_BUILDDIR + mkdir -p $TT_BUILDDIR PUSHD=$(pwd) - cd $TREETAP_BUILDDIR + cd $TT_BUILDDIR echo "Cleaning $SRC_NAME $SRC_VERSION" clean - rm -rf $TREETAP_INSTALLDIR + rm -rf $TT_INSTALLDIR cd $PUSHD exit 0 } @@ -159,9 +164,17 @@ source_clean() { # Fetches and verifies the integrity of the source tarball source_fetch() { source_spec $1 - mkdir -p $TREETAP_BUILDDIR + mkdir -p $TT_BUILDDIR PUSHD=$(pwd) - cd $TREETAP_BUILDDIR/.. + cd $TT_BUILDDIR/.. + if [ -f $SRC_FILENAME ]; then + if (echo "$SRC_HASH $SRC_FILENAME" | sha256sum -c - > /dev/null); then + echo "Skipping $SRC_FILENAME" + exit 0 + else + rm -f $SRC_FILENAME + fi + fi echo "Fetching $SRC_FILENAME" curl -L -sS $SRC_URL -o $SRC_FILENAME echo "Verifying $SRC_FILENAME" @@ -173,17 +186,17 @@ source_fetch() { # Packages the built artifacts for distribution source_package() { source_spec $1 - mkdir -p $TREETAP_BUILDDIR - mkdir -p $TREETAP_INSTALLDIR - mkdir -p $TREETAP_PKGDIR + mkdir -p $TT_BUILDDIR + mkdir -p $TT_INSTALLDIR + mkdir -p $TT_PKGDIR/$TT_TARGET PUSHD=$(pwd) - cd $TREETAP_BUILDDIR + cd $TT_BUILDDIR echo "Moving artifacts for $SRC_NAME $SRC_VERSION" package > package-$(date +%Y%m%d%H%M%S).log echo "Archiving $SRC_NAME $SRC_VERSION" - cd $TREETAP_INSTALLDIR - find | cpio -o --quiet | xz -cz > "$TREETAP_PKGDIR/$SRC_NAME-$SRC_VERSION.cpio.xz" - rm -rf $TREETAP_INSTALLDIR + cd $TT_INSTALLDIR + find | cpio -o --quiet | xz -cz > "$TT_PKGDIR/$TT_TARGET/$SRC_NAME-$SRC_VERSION.cpio.xz" + rm -rf $TT_INSTALLDIR cd $PUSHD exit 0 } @@ -191,7 +204,7 @@ source_package() { # Purges the entire build directory for a source source_purge() { source_spec $1 - rm -rf $TREETAP_BUILDDIR + rm -rf $TT_BUILDDIR exit 0 } -- 2.49.1 From ae63c7e1d661bd5e434862b7e297841d5da39dbc Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Fri, 14 Nov 2025 22:47:02 -0500 Subject: [PATCH 07/74] Updated treetap and patched musl --- bootstrap.sh | 8 ++-- sources/busybox.spec | 4 -- sources/busybox/busybox.spec | 28 ++++++++++++ sources/{ => linux}/linux.spec | 1 + sources/{ => llvm}/llvm.spec | 1 + sources/musl/CVE-2025-26519.patch | 74 +++++++++++++++++++++++++++++++ sources/{ => musl}/musl.spec | 15 +++++-- treetap | 30 ++++++++++--- 8 files changed, 142 insertions(+), 19 deletions(-) delete mode 100755 sources/busybox.spec create mode 100755 sources/busybox/busybox.spec rename sources/{ => linux}/linux.spec (77%) rename sources/{ => llvm}/llvm.spec (80%) create mode 100644 sources/musl/CVE-2025-26519.patch rename sources/{ => musl}/musl.spec (51%) diff --git a/bootstrap.sh b/bootstrap.sh index 532da62..9503a8c 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -21,10 +21,10 @@ export TT_SYSROOT=$BOOTSTRAP/root export TT_TARGET=$TARGET # Fetch sources required for a bootstrap -./treetap fetch sources/busybox.spec -./treetap fetch sources/linux.spec -./treetap fetch sources/llvm.spec -./treetap fetch sources/musl.spec +./treetap fetch sources/busybox/busybox.spec +./treetap fetch sources/linux/linux.spec +./treetap fetch sources/llvm/llvm.spec +./treetap fetch sources/musl/musl.spec # Simplified filesystem heirarchy with symlinks for compatibility mkdir -p $BOOTSTRAP/root/{bin,boot/EFI/BOOT,dev,etc,home,lib,proc,run,sys,tmp,usr/{include,share},var/{cache,lib,log,spool,tmp}} diff --git a/sources/busybox.spec b/sources/busybox.spec deleted file mode 100755 index b2fd1aa..0000000 --- a/sources/busybox.spec +++ /dev/null @@ -1,4 +0,0 @@ -SRC_HASH="b8cc24c9574d809e7279c3be349795c5d5ceb6fdf19ca709f80cde50e47de314" -SRC_NAME="busybox" -SRC_URL="https://busybox.net/downloads/busybox-1.36.1.tar.bz2" -SRC_VERSION="1.36.1" diff --git a/sources/busybox/busybox.spec b/sources/busybox/busybox.spec new file mode 100755 index 0000000..dfabfe2 --- /dev/null +++ b/sources/busybox/busybox.spec @@ -0,0 +1,28 @@ +# Maintainer: Alexander Hill +SRC_HASH="b8cc24c9574d809e7279c3be349795c5d5ceb6fdf19ca709f80cde50e47de314" +SRC_NAME="busybox" +SRC_URL="https://busybox.net/downloads/busybox-1.36.1.tar.bz2" +SRC_VERSION="1.36.1" + +build() { + tar xf ../$SRC_FILENAME + cd busybox-*/ + # NOTE: For some reason, Busybox hard-codes GNU tools in the Makefile. This + # simple hack allows the environment to override the Makefile. ~ahill + sed -i "s/?*= \$(CROSS_COMPILE)/?= /" Makefile + make -O -j $TT_PROCS defconfig + # FIXME: tc complains about undefined values, causing the compilation to + # fail. What causes this? ~ahill + sed -i "s/CONFIG_TC=.*/CONFIG_TC=n/" .config + make -O -j $TT_PROCS +} + +clean() { + rm -rf busybox-*/ +} + +package() { + # 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 diff --git a/sources/linux.spec b/sources/linux/linux.spec similarity index 77% rename from sources/linux.spec rename to sources/linux/linux.spec index 1e9cb16..09c61dc 100755 --- a/sources/linux.spec +++ b/sources/linux/linux.spec @@ -1,3 +1,4 @@ +# Maintainer: Alexander Hill SRC_HASH="5a8de64a75fca706c01c6c0a77cf75a74618439db195e25f1f0268af6b2fb1da" SRC_NAME="linux" SRC_URL="https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.17.8.tar.xz" diff --git a/sources/llvm.spec b/sources/llvm/llvm.spec similarity index 80% rename from sources/llvm.spec rename to sources/llvm/llvm.spec index d1f076e..53080cb 100755 --- a/sources/llvm.spec +++ b/sources/llvm/llvm.spec @@ -1,3 +1,4 @@ +# Maintainer: Alexander Hill SRC_HASH="1794be4bf974e99a3fe1da4b2b9b1456c02ae9479c942f365441d8d207bd650c" SRC_NAME="llvm" SRC_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.5/llvm-project-21.1.5.src.tar.xz" diff --git a/sources/musl/CVE-2025-26519.patch b/sources/musl/CVE-2025-26519.patch new file mode 100644 index 0000000..6eef531 --- /dev/null +++ b/sources/musl/CVE-2025-26519.patch @@ -0,0 +1,74 @@ +>From e5adcd97b5196e29991b524237381a0202a60659 Mon Sep 17 00:00:00 2001 +From: Rich Felker +Date: Sun, 9 Feb 2025 10:07:19 -0500 +Subject: [PATCH] iconv: fix erroneous input validation in EUC-KR decoder + +as a result of incorrect bounds checking on the lead byte being +decoded, certain invalid inputs which should produce an encoding +error, such as "\xc8\x41", instead produced out-of-bounds loads from +the ksc table. + +in a worst case, the loaded value may not be a valid unicode scalar +value, in which case, if the output encoding was UTF-8, wctomb would +return (size_t)-1, causing an overflow in the output pointer and +remaining buffer size which could clobber memory outside of the output +buffer. + +bug report was submitted in private by Nick Wellnhofer on account of +potential security implications. +--- + src/locale/iconv.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/locale/iconv.c b/src/locale/iconv.c +index 9605c8e9..008c93f0 100644 +--- a/src/locale/iconv.c ++++ b/src/locale/iconv.c +@@ -502,7 +502,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri + if (c >= 93 || d >= 94) { + c += (0xa1-0x81); + d += 0xa1; +- if (c >= 93 || c>=0xc6-0x81 && d>0x52) ++ if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52) + goto ilseq; + if (d-'A'<26) d = d-'A'; + else if (d-'a'<26) d = d-'a'+26; +-- +2.21.0 + +>From c47ad25ea3b484e10326f933e927c0bc8cded3da Mon Sep 17 00:00:00 2001 +From: Rich Felker +Date: Wed, 12 Feb 2025 17:06:30 -0500 +Subject: [PATCH] iconv: harden UTF-8 output code path against input decoder + bugs + +the UTF-8 output code was written assuming an invariant that iconv's +decoders only emit valid Unicode Scalar Values which wctomb can encode +successfully, thereby always returning a value between 1 and 4. + +if this invariant is not satisfied, wctomb returns (size_t)-1, and the +subsequent adjustments to the output buffer pointer and remaining +output byte count overflow, moving the output position backwards, +potentially past the beginning of the buffer, without storing any +bytes. +--- + src/locale/iconv.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/locale/iconv.c b/src/locale/iconv.c +index 008c93f0..52178950 100644 +--- a/src/locale/iconv.c ++++ b/src/locale/iconv.c +@@ -545,6 +545,10 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri + if (*outb < k) goto toobig; + memcpy(*out, tmp, k); + } else k = wctomb_utf8(*out, c); ++ /* This failure condition should be unreachable, but ++ * is included to prevent decoder bugs from translating ++ * into advancement outside the output buffer range. */ ++ if (k>4) goto ilseq; + *out += k; + *outb -= k; + break; +-- +2.21.0 diff --git a/sources/musl.spec b/sources/musl/musl.spec similarity index 51% rename from sources/musl.spec rename to sources/musl/musl.spec index a5a904f..8527fd4 100755 --- a/sources/musl.spec +++ b/sources/musl/musl.spec @@ -1,13 +1,20 @@ +# Maintainer: Alexander Hill SRC_HASH="a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4" SRC_NAME="musl" +SRC_PATCHES=" +c0ffd0493dcde91850e39428a31577892aad20e83bc4bf4a5c37350649ce7932 CVE-2025-26519.patch +" SRC_URL="https://musl.libc.org/releases/musl-1.2.5.tar.gz" -SRC_VERSION="1.2.5" - -# TODO: CVE-2025-26519 +SRC_VERSION="1.2.5r1" build() { - tar xf ../musl-*.tar* + tar xf ../$SRC_FILENAME cd musl-*/ + # NOTE: CVE-2025-26519 patches are temporary and shouldn't be needed once + # 1.2.6 or 1.3.0 is released. ~ahill + # https://www.openwall.com/lists/musl/2025/02/13/1/1 + # https://www.openwall.com/lists/musl/2025/02/13/1/2 + patch -p1 < ../CVE-2025-26519.patch ./configure \ --bindir=$TT_BINDIR \ --build=$TT_BUILD \ diff --git a/treetap b/treetap index 19a5a03..bd7e530 100755 --- a/treetap +++ b/treetap @@ -18,16 +18,19 @@ # Changelog # ############# +# November 14, 2025 (1.1.0) +# + Added the ability to incorporate patches into the build [ahill] + # November 13, 2025 (1.0.2) -# + Added the target triple to the package path -# * Prevented fetch from re-downloading packages given a valid hash -# * Renamed all TREETAP_* variables to TT_* +# + Added the target triple to the package path [ahill] +# * Prevented fetch from re-downloading packages given a valid hash [ahill] +# * Renamed all TREETAP_* variables to TT_* [ahill] # November 11, 2025 (1.0.1) -# - Removed bashisms to become POSIX compliant +# - Removed bashisms to become POSIX compliant [ahill] # November 9, 2025 (1.0.0) -# * Initial release +# * Initial release [ahill] #################### # Global Variables # @@ -36,7 +39,7 @@ [ -z "$TT_DIR" ] && TT_DIR="$(pwd)/.treetap" [ -z "$TT_PKGDIR" ] && TT_PKGDIR="$TT_DIR/packages" [ -z "$TT_SYSROOT" ] && TT_SYSROOT=/ -TT_VERSION="1.0.2" +TT_VERSION="1.1.0" ##################### # Utility Functions # @@ -140,9 +143,22 @@ package_uninstall() { source_build() { source_spec $1 mkdir -p $TT_BUILDDIR + if [ ! -z "$SRC_PATCHES" ]; then + echo "Validating patches for $SRC_NAME $SRC_VERSION" + 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" + exit 1 + fi + echo $SRC_PATCHES | while read line; do + cp $(echo $line | cut -d" " -f2) $TT_BUILDDIR/ + done + fi + echo "Building $SRC_NAME $SRC_VERSION" PUSHD=$(pwd) cd $TT_BUILDDIR - echo "Building $SRC_NAME $SRC_VERSION" build > build-$(date +%Y%m%d%H%M%S).log 2>&1 cd $PUSHD exit 0 -- 2.49.1 From 9772d7f49dbef2178379ac912ee31e6cf9684f1f Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sun, 16 Nov 2025 19:00:29 -0500 Subject: [PATCH 08/74] Fixed clang and updated treetap --- bootstrap.sh | 45 ++++++++++++++++++++++++++++-------------- sources/make/make.spec | 5 +++++ treetap | 7 +++++-- 3 files changed, 40 insertions(+), 17 deletions(-) create mode 100644 sources/make/make.spec diff --git a/bootstrap.sh b/bootstrap.sh index 9503a8c..9210ddd 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -24,8 +24,15 @@ export TT_TARGET=$TARGET ./treetap fetch sources/busybox/busybox.spec ./treetap fetch sources/linux/linux.spec ./treetap fetch sources/llvm/llvm.spec +./treetap fetch sources/make/make.spec ./treetap fetch sources/musl/musl.spec +# Make sure both clang-tblgen and llvm-tblgen are in the PATH. ~ahill +which clang-tblgen > /dev/null +[ ! "$?" = "0" ] && (echo "Unable to find clang-tblgen"; exit 1) +which llvm-tblgen > /dev/null +[ ! "$?" = "0" ] && (echo "Unable to find llvm-tblgen"; exit 1) + # Simplified filesystem heirarchy with symlinks for compatibility mkdir -p $BOOTSTRAP/root/{bin,boot/EFI/BOOT,dev,etc,home,lib,proc,run,sys,tmp,usr/{include,share},var/{cache,lib,log,spool,tmp}} ln -sf bin $BOOTSTRAP/root/sbin @@ -59,7 +66,7 @@ set(CMAKE_SYSTEM_NAME Linux) EOF # Install headers for Linux -LINUX_VERSION=$(sed -En "s/SRC_VERSION=\"?(.+)\"/\1/p" $SPEC/linux.spec) +LINUX_VERSION=$(sed -En "s/SRC_VERSION=\"?(.+)\"/\1/p" $SPEC/linux/linux.spec) tar xf $SOURCES/linux/$LINUX_VERSION/linux-*.tar* cd linux-*/ # NOTE: LLVM=1 is required here because GCC and other GNU tools are required in @@ -74,9 +81,12 @@ cp -r usr/include $BOOTSTRAP/root/usr cd .. # Install headers for musl -MUSL_VERSION=$(sed -En "s/SRC_VERSION=\"?(.+)\"/\1/p" $SPEC/musl.spec) +MUSL_VERSION=$(sed -En "s/SRC_VERSION=\"?(.+)\"/\1/p" $SPEC/musl/musl.spec) tar xf $SOURCES/musl/$MUSL_VERSION/musl-*.tar* cd musl-*/ +# NOTE: Patch for musl 1.2.5 to prevent a character encoding vulnerability. This +# should be safe to remove after the next release. ~ahill +patch -p1 < $BOOTSTRAP/../sources/musl/CVE-2025-26519.patch # NOTE: We are intentionally not passing --target here because musl follows the # GNU approach when it comes to cross-compiling. This means the build # script prefaces the name of every build tool with the target triple @@ -94,12 +104,13 @@ make -O -j $PROCS install-headers DESTDIR=$BOOTSTRAP/root cd .. # Build and install compiler-rt builtins -LLVM_VERSION=$(sed -En "s/SRC_VERSION=\"?(.+)\"/\1/p" $SPEC/llvm.spec) +LLVM_VERSION=$(sed -En "s/SRC_VERSION=\"?(.+)\"/\1/p" $SPEC/llvm/llvm.spec) +LLVM_MAJOR_VERSION=$(echo $LLVM_VERSION | cut -d"." -f1) tar xf $SOURCES/llvm/$LLVM_VERSION/llvm-project-*.tar* cd llvm-project-*/ cmake -S compiler-rt/lib/builtins -B build-builtins \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=$BOOTSTRAP/root \ + -DCMAKE_INSTALL_PREFIX=$BOOTSTRAP/root/lib/clang/$LLVM_MAJOR_VERSION \ -DCMAKE_TOOLCHAIN_FILE=$BOOTSTRAP/$TARGET.cmake \ -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON cmake --build build-builtins --parallel $PROCS @@ -108,11 +119,10 @@ cd .. # Build musl for real this time cd musl-*/ -# FIXME: Patch CVE-2025-26519 ~ahill make clean # NOTE: LIBCC is required here because it will attempt to link with the build # system's runtime if this is not specified. ~ahill -LIBCC="$BOOTSTRAP/root/lib/linux/libclang_rt.builtins-x86_64.a" \ +LIBCC="$BOOTSTRAP/root/lib/clang/$LLVM_MAJOR_VERSION/lib/linux/libclang_rt.builtins-x86_64.a" \ ./configure \ --bindir=/bin \ --includedir=/usr/include \ @@ -143,14 +153,13 @@ cmake -S runtimes -B build-runtimes \ -DCMAKE_INSTALL_INCLUDEDIR=$BOOTSTRAP/root/usr/include \ -DCMAKE_INSTALL_PREFIX=$BOOTSTRAP/root \ -DCMAKE_TOOLCHAIN_FILE=$BOOTSTRAP/$TARGET.cmake \ - -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON \ -DLIBCXX_CXX_ABI=libcxxabi \ -DLIBCXX_HAS_MUSL_LIBC=ON \ -DLIBCXX_USE_COMPILER_RT=ON \ -DLIBCXXABI_USE_COMPILER_RT=ON \ -DLIBCXXABI_USE_LLVM_UNWINDER=ON \ -DLIBUNWIND_USE_COMPILER_RT=ON \ - -DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx;libcxxabi;libunwind" + -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind" cmake --build build-runtimes --parallel $PROCS cmake --install build-runtimes --parallel $PROCS cd .. @@ -166,14 +175,20 @@ export CXXFLAGS="$CXXFLAGS -isystem $BOOTSTRAP/root/usr/include/c++/v1 -nostdinc # NOTE: LLVM_ENABLE_ZSTD is disabled because we don't have zstd in the sysroot, # and because I don't believe that a library created by Facebook should # be required for an operating system to function. ~ahill -# NOTE: If we don't do this, LLVM attempts to build its own copy of tblgen, -# which will cause the build to fail since we're cross-compiling and can't -# run programs built for another platform. LLVM_NATIVE_TOOL_DIR, -# LLVM_TABLEGEN, and CLANG_TABLEGEN are set based on this variable. ~ahill -NATIVE_TOOL_DIR=$(dirname $(which llvm-tblgen)) +# NOTE: LLVM attempts to build its own copy of tblgen, which will cause the +# build to fail since we're cross-compiling and can't run programs built +# for another platform. LLVM_NATIVE_TOOL_DIR, LLVM_TABLEGEN, and +# CLANG_TABLEGEN are set to remedy this issue. ~ahill +# NOTE: Without CLANG_DEFAULT_LINKER, clang attempts to invoke "ld" to link +# programs, which doesn't exist on Maple Linux (at least not yet). ~ahill +# NOTE: We're using sed to remove newlines instead of dirname's own -z switch +# because -z adds a null byte, which messes with the files generated by +# LLVM's build process. ~ahill +NATIVE_TOOL_DIR=$(dirname $(which llvm-tblgen) | sed -z "s/\n//g") cd llvm-project-*/ cmake -S llvm -B build-llvm \ -DCLANG_DEFAULT_CXX_STDLIB=libc++ \ + -DCLANG_DEFAULT_LINKER=lld \ -DCLANG_DEFAULT_RTLIB=compiler-rt \ -DCLANG_DEFAULT_UNWINDLIB=libunwind \ -DCLANG_TABLEGEN=$NATIVE_TOOL_DIR/clang-tblgen \ @@ -187,12 +202,12 @@ cmake -S llvm -B build-llvm \ -DLLVM_HOST_TRIPLE=$TARGET \ -DLLVM_NATIVE_TOOL_DIR=$NATIVE_TOOL_DIR \ -DLLVM_TABLEGEN=$NATIVE_TOOL_DIR/llvm-tblgen -cmake --build build-llvm --parallel $PROCS +cmake --build build-llvm cmake --install build-llvm --parallel $PROCS cd .. # Build Busybox -BUSYBOX_VERSION=$(sed -En "s/SRC_VERSION=\"?(.+)\"/\1/p" $SPEC/busybox.spec) +BUSYBOX_VERSION=$(sed -En "s/SRC_VERSION=\"?(.+)\"/\1/p" $SPEC/busybox/busybox.spec) tar xf $SOURCES/busybox/$BUSYBOX_VERSION/busybox-*.tar* cd busybox-*/ # NOTE: Like we did with musl before, we don't set CROSS_COMPILE because LLVM is diff --git a/sources/make/make.spec b/sources/make/make.spec new file mode 100644 index 0000000..b8ac35c --- /dev/null +++ b/sources/make/make.spec @@ -0,0 +1,5 @@ +# Maintainer: Alexander Hill +SRC_HASH="dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3" +SRC_NAME="make" +SRC_URL="https://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz" +SRC_VERSION="4.4.1" \ No newline at end of file diff --git a/treetap b/treetap index bd7e530..e79f077 100755 --- a/treetap +++ b/treetap @@ -18,8 +18,10 @@ # Changelog # ############# -# November 14, 2025 (1.1.0) +# November 15, 2025 (1.1.0) # + Added the ability to incorporate patches into the build [ahill] +# + Added TT_CONFDIR [ahill] +# * Replaced curl with wget to rely purely on Busybox [ahill] # November 13, 2025 (1.0.2) # + Added the target triple to the package path [ahill] @@ -94,6 +96,7 @@ source_spec() { TT_BUILD=$(clang -dumpmachine) [ -z "$TT_TARGET" ] && TT_TARGET=$TT_BUILD TT_BUILDDIR="$TT_DIR/sources/$SRC_NAME/$SRC_VERSION/$TT_TARGET" + [ -z "$TT_CONFDIR" ] && TT_CONFDIR=/etc [ -z "$TT_INCLUDEDIR" ] && TT_INCLUDEDIR=/usr/include TT_INSTALLDIR="$TT_BUILDDIR/install" [ -z "$TT_LIBDIR" ] && TT_LIBDIR=/lib @@ -192,7 +195,7 @@ source_fetch() { fi fi echo "Fetching $SRC_FILENAME" - curl -L -sS $SRC_URL -o $SRC_FILENAME + wget -O $SRC_FILENAME $SRC_URL echo "Verifying $SRC_FILENAME" echo "$SRC_HASH $SRC_FILENAME" | sha256sum -c - > /dev/null cd $PUSHD -- 2.49.1 From a4c9aa19c75bcc57be72cf82df9978cadaee5051 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sun, 16 Nov 2025 20:08:27 -0500 Subject: [PATCH 09/74] Bootstrapped GNU Make and added LibreSSL --- bootstrap.sh | 27 +++++++++++++++++++++++++ sources/libressl/libressl.spec | 37 ++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 sources/libressl/libressl.spec diff --git a/bootstrap.sh b/bootstrap.sh index 9210ddd..8011690 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -184,6 +184,10 @@ export CXXFLAGS="$CXXFLAGS -isystem $BOOTSTRAP/root/usr/include/c++/v1 -nostdinc # NOTE: We're using sed to remove newlines instead of dirname's own -z switch # because -z adds a null byte, which messes with the files generated by # LLVM's build process. ~ahill +# NOTE: Many build scripts still rely on the old Unix names for tools such as +# cc and ld to function. Because of this, we enable +# LLVM_INSTALL_BINUTILS_SYMLINKS and LLVM_INSTALL_CCTOOLS_SYMLINKS for +# compatibility's sake. ~ahill NATIVE_TOOL_DIR=$(dirname $(which llvm-tblgen) | sed -z "s/\n//g") cd llvm-project-*/ cmake -S llvm -B build-llvm \ @@ -200,6 +204,8 @@ cmake -S llvm -B build-llvm \ -DLLVM_ENABLE_PROJECTS="clang;lld;llvm" \ -DLLVM_ENABLE_ZSTD=OFF \ -DLLVM_HOST_TRIPLE=$TARGET \ + -DLLVM_INSTALL_BINUTILS_SYMLINKS=ON \ + -DLLVM_INSTALL_CCTOOLS_SYMLINKS=ON \ -DLLVM_NATIVE_TOOL_DIR=$NATIVE_TOOL_DIR \ -DLLVM_TABLEGEN=$NATIVE_TOOL_DIR/llvm-tblgen cmake --build build-llvm @@ -227,5 +233,26 @@ make -O -j $PROCS make -O -j $PROCS install CONFIG_PREFIX=$BOOTSTRAP/root cd .. +# Build Make +MAKE_VERSION=$(sed -En "s/SRC_VERSION=\"?(.+)\"/\1/p" $SPEC/make/make.spec) +tar xf $SOURCES/make/$MAKE_VERSION/make-*.tar* +cd make-*/ +./configure \ + --bindir=/bin \ + --datarootdir=/usr/share \ + --enable-year2038 \ + --host=$TARGET \ + --includedir=/usr/include \ + --libdir=/lib \ + --libexecdir=/lib \ + --localstatedir=/var \ + --prefix=/ \ + --runstatedir=/run \ + --sbindir=/bin \ + --sysconfdir=/etc +make -O -j $PROCS +make -O -j $PROCS install DESTDIR=$BOOTSTRAP/root +cd .. + # Install Treetap cp $BOOTSTRAP/../treetap $BOOTSTRAP/root/bin/ \ No newline at end of file diff --git a/sources/libressl/libressl.spec b/sources/libressl/libressl.spec new file mode 100644 index 0000000..790ce1b --- /dev/null +++ b/sources/libressl/libressl.spec @@ -0,0 +1,37 @@ +# Maintainer: Alexander Hill +SRC_HASH="6d5c2f58583588ea791f4c8645004071d00dfa554a5bf788a006ca1eb5abd70b" +SRC_NAME="libressl" +SRC_URL="https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-4.2.1.tar.gz" +SRC_VERSION="4.2.1" + +build() { + tar xf ../$SRC_FILENAME + cd libressl-*/ + # TODO: What even is sharedstatedir and what should Maple Linux do with it? + # ~ahill + ./configure \ + --bindir=$TT_BINDIR \ + --build=$TT_BUILD \ + --datarootdir=/usr/share \ + --disable-static \ + --host=$TT_TARGET \ + --includedir=$TT_INCLUDEDIR \ + --libdir=$TT_LIBDIR \ + --libexecdir=$TT_LIBDIR \ + --localstatedir=/var \ + --prefix=$TT_PREFIX \ + --runstatedir=/run \ + --sbindir=$TT_BINDIR \ + --sysconfdir=$TT_CONFDIR \ + --with-sysroot=$TT_SYSROOT + make -j $TT_PROCS +} + +clean() { + rm -rf libressl-*/ +} + +package() { + cd libressl-*/ + make -j $TT_PROCS install DESTDIR=$TT_SYSROOT +} \ No newline at end of file -- 2.49.1 From bac2b53339df1631cc2ad437af5b870bb48d6f08 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Mon, 17 Nov 2025 20:30:39 -0500 Subject: [PATCH 10/74] Offloaded make bootstrap to treetap --- bootstrap.sh | 26 ++++++-------------------- sources/make/make.spec | 30 +++++++++++++++++++++++++++++- treetap | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+), 21 deletions(-) diff --git a/bootstrap.sh b/bootstrap.sh index 8011690..9543c82 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -17,6 +17,8 @@ export CXXFLAGS=$CFLAGS export RANLIB=llvm-ranlib export LD=ld.lld export LDFLAGS="--sysroot=$BOOTSTRAP/root" +export TREETAP=$(pwd)/treetap +export TT_DIR=$(pwd)/.treetap export TT_SYSROOT=$BOOTSTRAP/root export TT_TARGET=$TARGET @@ -24,7 +26,6 @@ export TT_TARGET=$TARGET ./treetap fetch sources/busybox/busybox.spec ./treetap fetch sources/linux/linux.spec ./treetap fetch sources/llvm/llvm.spec -./treetap fetch sources/make/make.spec ./treetap fetch sources/musl/musl.spec # Make sure both clang-tblgen and llvm-tblgen are in the PATH. ~ahill @@ -234,25 +235,10 @@ make -O -j $PROCS install CONFIG_PREFIX=$BOOTSTRAP/root cd .. # Build Make -MAKE_VERSION=$(sed -En "s/SRC_VERSION=\"?(.+)\"/\1/p" $SPEC/make/make.spec) -tar xf $SOURCES/make/$MAKE_VERSION/make-*.tar* -cd make-*/ -./configure \ - --bindir=/bin \ - --datarootdir=/usr/share \ - --enable-year2038 \ - --host=$TARGET \ - --includedir=/usr/include \ - --libdir=/lib \ - --libexecdir=/lib \ - --localstatedir=/var \ - --prefix=/ \ - --runstatedir=/run \ - --sbindir=/bin \ - --sysconfdir=/etc -make -O -j $PROCS -make -O -j $PROCS install DESTDIR=$BOOTSTRAP/root -cd .. +$TREETAP fetch $SPEC/make/make.spec +$TREETAP build $SPEC/make/make.spec +$TREETAP package $SPEC/make/make.spec +$TREETAP install .treetap/packages/$TARGET/make-*.cpio.xz $BOOTSTRAP/root # Install Treetap cp $BOOTSTRAP/../treetap $BOOTSTRAP/root/bin/ \ No newline at end of file diff --git a/sources/make/make.spec b/sources/make/make.spec index b8ac35c..99a0d08 100644 --- a/sources/make/make.spec +++ b/sources/make/make.spec @@ -2,4 +2,32 @@ SRC_HASH="dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3" SRC_NAME="make" SRC_URL="https://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz" -SRC_VERSION="4.4.1" \ No newline at end of file +SRC_VERSION="4.4.1" + +build() { + tar xf ../$SRC_FILENAME + cd make-*/ + ./configure \ + --bindir=$TT_BINDIR \ + --build=$TT_BUILD \ + --datarootdir=/usr/share \ + --enable-year2038 \ + --host=$TT_TARGET \ + --includedir=$TT_INCLUDEDIR \ + --libdir=$TT_LIBDIR \ + --libexecdir=$TT_LIBDIR \ + --localstatedir=/var \ + --prefix=$TT_PREFIX \ + --runstatedir=/run \ + --sbindir=$TT_BINDIR \ + --sysconfdir=$TT_CONFDIR + make -O -j $TT_PROCS +} + +clean() { + rm -rf make-*/ +} + +package() { + make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/treetap b/treetap index e79f077..429831e 100755 --- a/treetap +++ b/treetap @@ -34,6 +34,41 @@ # November 9, 2025 (1.0.0) # * Initial release [ahill] +######################## +# .spec File Reference # +######################## + +# For everyone trying to build .spec files (including myself), this is the list +# of useful variables to take advantage of. ~ahill + +# Specification Functions: +# build - Builds the package +# clean - Cleans $TT_BUILDDIR for the next build +# 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_URL - The URL of the tarball to be downloaded (required) +# SRC_VERSION - The version of the package being built (required) + +# Treetap Variables: +# TT_BINDIR - The desired path for binaries [scope: source] [default: /bin] +# TT_BUILD - The target triple of the build system [scope: source] +# TT_BUILDDIR - The path to the build directory [scope: source] +# TT_CONFDIR - The desired path for configuration files [scope: source] [default: /etc] +# TT_DIR - The path to the treetap directory [scope: global] +# TT_INCLUDEDIR - The desired path for header files [scope: source] [default: /usr/include] +# TT_INSTALLDIR - The path to the install directory [scope: source] +# TT_LIBDIR - The desired path for libraries [scope: source] [default: /lib] +# TT_PKGDIR - The path to the package directory [scope: global] +# TT_PREFIX - The desired prefix for the package [scope: source] [default: /] +# TT_PROCS - The number of processors on the build system [scope: source] +# TT_SYSROOT - The sysroot of the target system [scope: global] +# TT_TARGET - The target triple of the target system [scope: source] +# TT_VERSION - The version of treetap being used [scope: global] + #################### # Global Variables # #################### -- 2.49.1 From 320a2dbb2eba45ea57681c8cfb3d5dc245748c45 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Fri, 21 Nov 2025 21:25:41 -0500 Subject: [PATCH 11/74] Integrated treetap into the bootstrap --- bootstrap.sh | 41 +- sources/busybox/.config | 1231 ++++++++++++++++++++++++++++++++++ sources/busybox/busybox.spec | 21 +- treetap | 2 + 4 files changed, 1262 insertions(+), 33 deletions(-) create mode 100644 sources/busybox/.config diff --git a/bootstrap.sh b/bootstrap.sh index 9543c82..8d4be5e 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -23,7 +23,6 @@ export TT_SYSROOT=$BOOTSTRAP/root export TT_TARGET=$TARGET # Fetch sources required for a bootstrap -./treetap fetch sources/busybox/busybox.spec ./treetap fetch sources/linux/linux.spec ./treetap fetch sources/llvm/llvm.spec ./treetap fetch sources/musl/musl.spec @@ -84,6 +83,7 @@ cd .. # Install headers for musl MUSL_VERSION=$(sed -En "s/SRC_VERSION=\"?(.+)\"/\1/p" $SPEC/musl/musl.spec) tar xf $SOURCES/musl/$MUSL_VERSION/musl-*.tar* +./treetap fetch sources/busybox/busybox.spec cd musl-*/ # NOTE: Patch for musl 1.2.5 to prevent a character encoding vulnerability. This # should be safe to remove after the next release. ~ahill @@ -211,34 +211,21 @@ cmake -S llvm -B build-llvm \ -DLLVM_TABLEGEN=$NATIVE_TOOL_DIR/llvm-tblgen cmake --build build-llvm cmake --install build-llvm --parallel $PROCS +# NOTE: LLVM doesn't add symlinks for clang/ld, so we'll make them ourselves. +# ~ahill +ln -s clang $BOOTSTRAP/root/bin/cc +ln -s clang++ $BOOTSTRAP/root/bin/c++ +ln -s ld.lld $BOOTSTRAP/root/bin/ld cd .. -# Build Busybox -BUSYBOX_VERSION=$(sed -En "s/SRC_VERSION=\"?(.+)\"/\1/p" $SPEC/busybox/busybox.spec) -tar xf $SOURCES/busybox/$BUSYBOX_VERSION/busybox-*.tar* -cd busybox-*/ -# 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. With that said, -# Busybox uses Kbuild, which hard-codes variables like CC to GNU-based -# tools, which is not what we want. The following sed hack should do the -# trick, but I wonder if there's a better solution. ~ahill -sed -i "s/?*= \$(CROSS_COMPILE)/?= /" Makefile -make -O -j $PROCS defconfig -# NOTE: tc causes a LOT of issues due to undefined things. We don't really need -# "traffic control" at this time, and when we eventually do, we will -# likely use something else. ~ahill -sed -i "s/CONFIG_TC=.*/CONFIG_TC=n/" .config -make -O -j $PROCS -# NOTE: Busybox doesn't appear to have a proper DESTDIR, so we just set -# CONFIG_PREFIX during the install step to work around this. ~ahill -make -O -j $PROCS install CONFIG_PREFIX=$BOOTSTRAP/root -cd .. - -# Build Make -$TREETAP fetch $SPEC/make/make.spec -$TREETAP build $SPEC/make/make.spec -$TREETAP package $SPEC/make/make.spec -$TREETAP install .treetap/packages/$TARGET/make-*.cpio.xz $BOOTSTRAP/root +# Build remaining software with treetap +SOURCES=(busybox make) +for name in $SOURCES; do + $TREETAP fetch $SPEC/$name/$name.spec + $TREETAP build $SPEC/$name/$name.spec + $TREETAP package $SPEC/$name/$name.spec + $TREETAP install .treetap/packages/$TARGET/$name-*.cpio.xz $BOOTSTRAP/root +done # Install Treetap cp $BOOTSTRAP/../treetap $BOOTSTRAP/root/bin/ \ No newline at end of file diff --git a/sources/busybox/.config b/sources/busybox/.config new file mode 100644 index 0000000..3135568 --- /dev/null +++ b/sources/busybox/.config @@ -0,0 +1,1231 @@ +# +# Automatically generated make config: don't edit +# Busybox version: 1.36.1 +# Tue Nov 18 20:33:45 2025 +# +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=y +CONFIG_FEATURE_SUID=y +CONFIG_FEATURE_SUID_CONFIG=y +CONFIG_FEATURE_SUID_CONFIG_QUIET=y +# CONFIG_FEATURE_PREFER_APPLETS is not set +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=y +CONFIG_FGCONSOLE=y +CONFIG_KBD_MODE=y +CONFIG_LOADFONT=y +CONFIG_SETFONT=y +CONFIG_FEATURE_SETFONT_TEXTUAL_MAP=y +CONFIG_DEFAULT_SETFONT_DIR="" + +# +# Common options for loadfont and setfont +# +CONFIG_FEATURE_LOADFONT_PSF2=y +CONFIG_FEATURE_LOADFONT_RAW=y +CONFIG_LOADKMAP=y +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=y +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=y +CONFIG_DEPMOD=y +CONFIG_INSMOD=y +CONFIG_LSMOD=y +# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set +CONFIG_MODINFO=y +CONFIG_MODPROBE=y +# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set +CONFIG_RMMOD=y + +# +# Options common to multiple modutils +# +CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS=y +CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y +# 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="/lib/modules" +CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" + +# +# Linux System Utilities +# +CONFIG_ACPID=y +CONFIG_FEATURE_ACPID_COMPAT=y +CONFIG_BLKDISCARD=y +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=y +CONFIG_FEATURE_EJECT_SCSI=y +CONFIG_FALLOCATE=y +CONFIG_FATATTR=y +CONFIG_FBSET=y +CONFIG_FEATURE_FBSET_FANCY=y +CONFIG_FEATURE_FBSET_READMODE=y +CONFIG_FDFORMAT=y +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=y +CONFIG_FREERAMDISK=y +CONFIG_FSCK_MINIX=y +CONFIG_FSFREEZE=y +CONFIG_FSTRIM=y +CONFIG_GETOPT=y +CONFIG_FEATURE_GETOPT_LONG=y +CONFIG_HEXDUMP=y +CONFIG_HD=y +CONFIG_XXD=y +CONFIG_HWCLOCK=y +# 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=y +CONFIG_LSPCI=y +CONFIG_LSUSB=y +CONFIG_MDEV=y +CONFIG_FEATURE_MDEV_CONF=y +CONFIG_FEATURE_MDEV_RENAME=y +CONFIG_FEATURE_MDEV_RENAME_REGEXP=y +CONFIG_FEATURE_MDEV_EXEC=y +CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y +CONFIG_FEATURE_MDEV_DAEMON=y +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=y +CONFIG_FEATURE_MKSWAP_UUID=y +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=y +CONFIG_PIVOT_ROOT=y +CONFIG_RDATE=y +CONFIG_RDEV=y +CONFIG_READPROFILE=y +CONFIG_RENICE=y +CONFIG_REV=y +CONFIG_RTCWAKE=y +CONFIG_SCRIPT=y +CONFIG_SCRIPTREPLAY=y +CONFIG_SETARCH=y +CONFIG_LINUX32=y +CONFIG_LINUX64=y +CONFIG_SETPRIV=y +CONFIG_FEATURE_SETPRIV_DUMP=y +CONFIG_FEATURE_SETPRIV_CAPABILITIES=y +CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES=y +CONFIG_SETSID=y +CONFIG_SWAPON=y +CONFIG_FEATURE_SWAPON_DISCARD=y +CONFIG_FEATURE_SWAPON_PRI=y +CONFIG_SWAPOFF=y +CONFIG_FEATURE_SWAPONOFF_LABEL=y +CONFIG_SWITCH_ROOT=y +CONFIG_TASKSET=y +CONFIG_FEATURE_TASKSET_FANCY=y +CONFIG_FEATURE_TASKSET_CPULIST=y +CONFIG_UEVENT=y +CONFIG_UMOUNT=y +CONFIG_FEATURE_UMOUNT_ALL=y +CONFIG_UNSHARE=y +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=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_FEATURE_DC_LIBM 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 +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=y +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=y +CONFIG_FBSPLASH=y +# 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=y +CONFIG_I2CSET=y +CONFIG_I2CDUMP=y +CONFIG_I2CDETECT=y +CONFIG_I2CTRANSFER=y +# 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=y +CONFIG_NANDDUMP=y +CONFIG_PARTPROBE=y +CONFIG_RAIDAUTORUN=y +CONFIG_READAHEAD=y +# CONFIG_RFKILL is not set +CONFIG_RUNLEVEL=y +CONFIG_RX=y +CONFIG_SEEDRNG=y +CONFIG_SETFATTR=y +CONFIG_SETSERIAL=y +CONFIG_STRINGS=y +CONFIG_TIME=y +CONFIG_TREE=y +CONFIG_TS=y +CONFIG_TTYSIZE=y +CONFIG_UBIATTACH=y +CONFIG_UBIDETACH=y +CONFIG_UBIMKVOL=y +CONFIG_UBIRMVOL=y +CONFIG_UBIRSVOL=y +CONFIG_UBIUPDATEVOL=y +CONFIG_UBIRENAME=y +CONFIG_VOLNAME=y +CONFIG_WATCHDOG=y +# 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=y +CONFIG_BRCTL=y +CONFIG_FEATURE_BRCTL_FANCY=y +CONFIG_FEATURE_BRCTL_SHOW=y +CONFIG_DNSD=y +CONFIG_ETHER_WAKE=y +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=y +CONFIG_IFPLUGD=y +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=y +CONFIG_IPADDR=y +CONFIG_IPLINK=y +CONFIG_IPROUTE=y +CONFIG_IPTUNNEL=y +CONFIG_IPRULE=y +CONFIG_IPNEIGH=y +CONFIG_FEATURE_IP_ADDRESS=y +CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_ROUTE=y +CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2" +CONFIG_FEATURE_IP_TUNNEL=y +CONFIG_FEATURE_IP_RULE=y +CONFIG_FEATURE_IP_NEIGH=y +# 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=y +CONFIG_FEATURE_NAMEIF_EXTENDED=y +CONFIG_NBDCLIENT=y +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=y +CONFIG_FEATURE_TUNCTL_UG=y +CONFIG_VCONFIG=y +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=y +CONFIG_UDHCPD=y +# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set +CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY=y +CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases" +CONFIG_DUMPLEASES=y +CONFIG_DHCPRELAY=y +CONFIG_UDHCPC=y +CONFIG_FEATURE_UDHCPC_ARPING=y +CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y +CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" +CONFIG_UDHCPC6_DEFAULT_SCRIPT="/usr/share/udhcpc/default6.script" +CONFIG_UDHCPC6=y +CONFIG_FEATURE_UDHCPC6_RFC3646=y +CONFIG_FEATURE_UDHCPC6_RFC4704=y +CONFIG_FEATURE_UDHCPC6_RFC4833=y +CONFIG_FEATURE_UDHCPC6_RFC5970=y + +# +# Common options for DHCP applets +# +CONFIG_UDHCPC_DEFAULT_INTERFACE="eth0" +# CONFIG_FEATURE_UDHCP_PORT is not set +CONFIG_UDHCP_DEBUG=2 +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 +CONFIG_FEATURE_UDHCP_RFC3397=y +CONFIG_FEATURE_UDHCP_8021Q=y +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 diff --git a/sources/busybox/busybox.spec b/sources/busybox/busybox.spec index dfabfe2..be3c2b8 100755 --- a/sources/busybox/busybox.spec +++ b/sources/busybox/busybox.spec @@ -1,19 +1,28 @@ # Maintainer: Alexander Hill SRC_HASH="b8cc24c9574d809e7279c3be349795c5d5ceb6fdf19ca709f80cde50e47de314" SRC_NAME="busybox" +SRC_PATCHES=" +6b362ba1231e55cbff68ae9c9fdaa5749d459deed22cac5402cb83f0d8794a89 .config +" SRC_URL="https://busybox.net/downloads/busybox-1.36.1.tar.bz2" SRC_VERSION="1.36.1" build() { tar xf ../$SRC_FILENAME cd busybox-*/ - # NOTE: For some reason, Busybox hard-codes GNU tools in the Makefile. This - # simple hack allows the environment to override the Makefile. ~ahill + # 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. + # With that said, Busybox uses Kbuild, which hard-codes variables like + # CC to GNU-based tools, which is not what we want. The following sed + # hack should do the trick, but I wonder if there's a better solution. + # ~ahill sed -i "s/?*= \$(CROSS_COMPILE)/?= /" Makefile - make -O -j $TT_PROCS defconfig - # FIXME: tc complains about undefined values, causing the compilation to - # fail. What causes this? ~ahill - sed -i "s/CONFIG_TC=.*/CONFIG_TC=n/" .config + # NOTE: Apparently, Busybox fails to properly check for ncurses since the + # test compiles a main function without a return value type, causing + # the compilation to fail. This patch fixes the issue by making the + # 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 } diff --git a/treetap b/treetap index 429831e..5c681f4 100755 --- a/treetap +++ b/treetap @@ -50,6 +50,8 @@ # 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 +# 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) -- 2.49.1 From bca382ed7149fac158403a5fb4e64c79f7e5cc6e Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 22 Nov 2025 20:35:27 -0500 Subject: [PATCH 12/74] Updated treetap, fixed the bootstrap, and replaced ld.lld with mold --- bootstrap.sh | 67 ++++++++------- sources/busybox/busybox.spec | 2 + sources/libressl/libressl.spec | 16 +--- sources/llvm/llvm.spec | 6 +- sources/make/make.spec | 16 +--- sources/mold/mold.spec | 24 ++++++ sources/musl/musl.spec | 8 +- treetap | 147 ++++++++++++++++++++++++++------- 8 files changed, 189 insertions(+), 97 deletions(-) create mode 100644 sources/mold/mold.spec diff --git a/bootstrap.sh b/bootstrap.sh index 8d4be5e..1d8f2cc 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -1,6 +1,6 @@ #!/bin/zsh -e -MICROARCH="skylake" +MICROARCH=skylake TARGET=x86_64-maple-linux-musl # Set the environment up @@ -10,22 +10,29 @@ PROCS=$(nproc) SOURCES=$(pwd)/.treetap/sources SPEC=$(pwd)/sources export AR=llvm-ar -export CC=clang -export CFLAGS="-fuse-ld=lld -O3 -march=$MICROARCH -pipe --sysroot=$BOOTSTRAP/root -Wno-unused-command-line-argument" -export CXX=clang++ +export AS=llvm-as +if [ ! -z "$CCACHE" ]; then + export CC="$CCACHE clang" + export CXX="$CCACHE clang++" +else + export CC=clang + export CXX=clang++ +fi +export CFLAGS="-fuse-ld=mold -O3 -march=$MICROARCH -pipe --sysroot=$BOOTSTRAP/root -Wno-unused-command-line-argument" export CXXFLAGS=$CFLAGS export RANLIB=llvm-ranlib -export LD=ld.lld +export LD=mold export LDFLAGS="--sysroot=$BOOTSTRAP/root" export TREETAP=$(pwd)/treetap export TT_DIR=$(pwd)/.treetap +export TT_MICROARCH=$MICROARCH export TT_SYSROOT=$BOOTSTRAP/root export TT_TARGET=$TARGET # Fetch sources required for a bootstrap -./treetap fetch sources/linux/linux.spec -./treetap fetch sources/llvm/llvm.spec -./treetap fetch sources/musl/musl.spec +$TREETAP fetch sources/linux/linux.spec +$TREETAP fetch sources/llvm/llvm.spec +$TREETAP fetch sources/musl/musl.spec # Make sure both clang-tblgen and llvm-tblgen are in the PATH. ~ahill which clang-tblgen > /dev/null @@ -48,22 +55,31 @@ mkdir -p $BOOTSTRAP/build cd $BOOTSTRAP/build # Define the target for Maple Linux +# NOTE: We run cut on CC and CXX just in case ccache is in use. ~ahill cat << EOF > $BOOTSTRAP/$TARGET.cmake set(CMAKE_ASM_COMPILER_TARGET $TARGET) -set(CMAKE_C_COMPILER $CC) +set(CMAKE_C_COMPILER $(echo $CC | cut -d" " -f2)) set(CMAKE_C_COMPILER_TARGET $TARGET) set(CMAKE_C_FLAGS_INIT "$CFLAGS") -set(CMAKE_CXX_COMPILER $CXX) +set(CMAKE_CXX_COMPILER $(echo $CXX | cut -d" " -f2)) set(CMAKE_CXX_COMPILER_TARGET $TARGET) set(CMAKE_CXX_FLAGS_INIT "$CXXFLAGS") set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) -set(CMAKE_LINKER_TYPE LLD) +set(CMAKE_LINKER_TYPE MOLD) set(CMAKE_SYSROOT "$BOOTSTRAP/root") set(CMAKE_SYSTEM_NAME Linux) EOF +# NOTE: CMake doesn't like dealing with ccache inside of CC/CXX, so we do this +# instead. ~ahill +if [ ! -z "$CCACHE" ]; then +cat << EOF >> $BOOTSTRAP/$TARGET.cmake +set(CMAKE_C_COMPILER_LAUNCHER $CCACHE) +set(CMAKE_CXX_COMPILER_LAUNCHER $CCACHE) +EOF +fi # Install headers for Linux LINUX_VERSION=$(sed -En "s/SRC_VERSION=\"?(.+)\"/\1/p" $SPEC/linux/linux.spec) @@ -83,7 +99,6 @@ cd .. # Install headers for musl MUSL_VERSION=$(sed -En "s/SRC_VERSION=\"?(.+)\"/\1/p" $SPEC/musl/musl.spec) tar xf $SOURCES/musl/$MUSL_VERSION/musl-*.tar* -./treetap fetch sources/busybox/busybox.spec cd musl-*/ # NOTE: Patch for musl 1.2.5 to prevent a character encoding vulnerability. This # should be safe to remove after the next release. ~ahill @@ -119,19 +134,12 @@ cmake --install build-builtins --parallel $PROCS cd .. # Build musl for real this time -cd musl-*/ -make clean # NOTE: LIBCC is required here because it will attempt to link with the build # system's runtime if this is not specified. ~ahill LIBCC="$BOOTSTRAP/root/lib/clang/$LLVM_MAJOR_VERSION/lib/linux/libclang_rt.builtins-x86_64.a" \ -./configure \ - --bindir=/bin \ - --includedir=/usr/include \ - --libdir=/lib \ - --prefix=/ -make -O -j $PROCS -make -O -j $PROCS install DESTDIR=$BOOTSTRAP/root -cd .. +$TREETAP build $SPEC/musl/musl.spec +$TREETAP package $SPEC/musl/musl.spec +$TREETAP install $TT_DIR/packages/$MICROARCH/musl-*.cpio.xz $BOOTSTRAP/root # Include compiler-rt and musl in our environment export CFLAGS="$CFLAGS -Qunused-arguments -rtlib=compiler-rt -Wl,--dynamic-linker=/lib/ld-musl-$ARCH.so.1" @@ -193,7 +201,7 @@ NATIVE_TOOL_DIR=$(dirname $(which llvm-tblgen) | sed -z "s/\n//g") cd llvm-project-*/ cmake -S llvm -B build-llvm \ -DCLANG_DEFAULT_CXX_STDLIB=libc++ \ - -DCLANG_DEFAULT_LINKER=lld \ + -DCLANG_DEFAULT_LINKER=mold \ -DCLANG_DEFAULT_RTLIB=compiler-rt \ -DCLANG_DEFAULT_UNWINDLIB=libunwind \ -DCLANG_TABLEGEN=$NATIVE_TOOL_DIR/clang-tblgen \ @@ -202,30 +210,29 @@ 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;lld;llvm" \ + -DLLVM_ENABLE_PROJECTS="clang;llvm" \ -DLLVM_ENABLE_ZSTD=OFF \ -DLLVM_HOST_TRIPLE=$TARGET \ -DLLVM_INSTALL_BINUTILS_SYMLINKS=ON \ -DLLVM_INSTALL_CCTOOLS_SYMLINKS=ON \ -DLLVM_NATIVE_TOOL_DIR=$NATIVE_TOOL_DIR \ -DLLVM_TABLEGEN=$NATIVE_TOOL_DIR/llvm-tblgen -cmake --build build-llvm +cmake --build build-llvm --parallel $PROCS cmake --install build-llvm --parallel $PROCS -# NOTE: LLVM doesn't add symlinks for clang/ld, so we'll make them ourselves. +# NOTE: LLVM doesn't add symlinks for clang, so we'll make them ourselves. # ~ahill ln -s clang $BOOTSTRAP/root/bin/cc ln -s clang++ $BOOTSTRAP/root/bin/c++ -ln -s ld.lld $BOOTSTRAP/root/bin/ld cd .. # Build remaining software with treetap -SOURCES=(busybox make) +SOURCES=(busybox make mold) for name in $SOURCES; do $TREETAP fetch $SPEC/$name/$name.spec $TREETAP build $SPEC/$name/$name.spec $TREETAP package $SPEC/$name/$name.spec - $TREETAP install .treetap/packages/$TARGET/$name-*.cpio.xz $BOOTSTRAP/root + $TREETAP install $TT_DIR/packages/$MICROARCH/$name-*.cpio.xz $BOOTSTRAP/root done # Install Treetap -cp $BOOTSTRAP/../treetap $BOOTSTRAP/root/bin/ \ No newline at end of file +cp $TREETAP $BOOTSTRAP/root/bin/ \ No newline at end of file diff --git a/sources/busybox/busybox.spec b/sources/busybox/busybox.spec index be3c2b8..1c52d8a 100755 --- a/sources/busybox/busybox.spec +++ b/sources/busybox/busybox.spec @@ -10,6 +10,7 @@ SRC_VERSION="1.36.1" build() { tar xf ../$SRC_FILENAME cd busybox-*/ + 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. # With that said, Busybox uses Kbuild, which hard-codes variables like @@ -31,6 +32,7 @@ clean() { } package() { + cd busybox-*/ # 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 diff --git a/sources/libressl/libressl.spec b/sources/libressl/libressl.spec index 790ce1b..744eaaf 100644 --- a/sources/libressl/libressl.spec +++ b/sources/libressl/libressl.spec @@ -9,21 +9,7 @@ build() { cd libressl-*/ # TODO: What even is sharedstatedir and what should Maple Linux do with it? # ~ahill - ./configure \ - --bindir=$TT_BINDIR \ - --build=$TT_BUILD \ - --datarootdir=/usr/share \ - --disable-static \ - --host=$TT_TARGET \ - --includedir=$TT_INCLUDEDIR \ - --libdir=$TT_LIBDIR \ - --libexecdir=$TT_LIBDIR \ - --localstatedir=/var \ - --prefix=$TT_PREFIX \ - --runstatedir=/run \ - --sbindir=$TT_BINDIR \ - --sysconfdir=$TT_CONFDIR \ - --with-sysroot=$TT_SYSROOT + ./configure $TT_AUTOCONF_COMMON --disable-static make -j $TT_PROCS } diff --git a/sources/llvm/llvm.spec b/sources/llvm/llvm.spec index 53080cb..a2ca350 100755 --- a/sources/llvm/llvm.spec +++ b/sources/llvm/llvm.spec @@ -1,5 +1,5 @@ # Maintainer: Alexander Hill -SRC_HASH="1794be4bf974e99a3fe1da4b2b9b1456c02ae9479c942f365441d8d207bd650c" +SRC_HASH="ae67086eb04bed7ca11ab880349b5f1ab6f50e1b88cda376eaf8a845b935762b" SRC_NAME="llvm" -SRC_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.5/llvm-project-21.1.5.src.tar.xz" -SRC_VERSION="21.1.5" +SRC_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.6/llvm-project-21.1.6.src.tar.xz" +SRC_VERSION="21.1.6" \ No newline at end of file diff --git a/sources/make/make.spec b/sources/make/make.spec index 99a0d08..0b6f226 100644 --- a/sources/make/make.spec +++ b/sources/make/make.spec @@ -7,20 +7,7 @@ SRC_VERSION="4.4.1" build() { tar xf ../$SRC_FILENAME cd make-*/ - ./configure \ - --bindir=$TT_BINDIR \ - --build=$TT_BUILD \ - --datarootdir=/usr/share \ - --enable-year2038 \ - --host=$TT_TARGET \ - --includedir=$TT_INCLUDEDIR \ - --libdir=$TT_LIBDIR \ - --libexecdir=$TT_LIBDIR \ - --localstatedir=/var \ - --prefix=$TT_PREFIX \ - --runstatedir=/run \ - --sbindir=$TT_BINDIR \ - --sysconfdir=$TT_CONFDIR + ./configure $TT_AUTOCONF_COMMON --enable-year2038 make -O -j $TT_PROCS } @@ -29,5 +16,6 @@ clean() { } package() { + cd make-*/ make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR } \ No newline at end of file diff --git a/sources/mold/mold.spec b/sources/mold/mold.spec new file mode 100644 index 0000000..3db1764 --- /dev/null +++ b/sources/mold/mold.spec @@ -0,0 +1,24 @@ +# Maintainer: Alexander Hill +SRC_FILENAME="mold-2.40.4.tar.gz" +SRC_HASH="69414c702ec1084e1fa8ca16da24f167f549e5e11e9ecd5d70a8dcda6f08c249" +SRC_NAME="mold" +SRC_URL="https://github.com/rui314/mold/archive/refs/tags/v2.40.4.tar.gz" +SRC_VERSION="2.40.4" + +build() { + echo "DEBUG: $TT_CMAKE_COMMON" + tar xf ../$SRC_FILENAME + cd mold-*/ + cmake -B build $TT_CMAKE_COMMON + cmake --build build --parallel $TT_PROCS +} + +clean() { + rm -rf mold-*/ +} + +package() { + cd mold-*/ + cmake --install build --parallel $TT_PROCS + ln -sf mold $TT_INSTALLDIR/bin/ld +} \ No newline at end of file diff --git a/sources/musl/musl.spec b/sources/musl/musl.spec index 8527fd4..7a3580d 100755 --- a/sources/musl/musl.spec +++ b/sources/musl/musl.spec @@ -15,13 +15,7 @@ build() { # https://www.openwall.com/lists/musl/2025/02/13/1/1 # https://www.openwall.com/lists/musl/2025/02/13/1/2 patch -p1 < ../CVE-2025-26519.patch - ./configure \ - --bindir=$TT_BINDIR \ - --build=$TT_BUILD \ - --includedir=$TT_INCLUDEDIR \ - --libdir=$TT_LIBDIR \ - --prefix=$TT_PREFIX \ - --target=$TT_TARGET + ./configure $TT_AUTOCONF_COMMON make -O -j $TT_PROCS } diff --git a/treetap b/treetap index 5c681f4..8407870 100755 --- a/treetap +++ b/treetap @@ -18,6 +18,18 @@ # Changelog # ############# +# November 22, 2025 (1.2.0) +# + Added support for the CCACHE environment variable [ahill] +# + Added TT_ARCH [ahill] +# + Added TT_AUTOCONF_COMMON for easy autoconf integration [ahill] +# + Added TT_CMAKE_COMMON for easy CMake integration [ahill] +# + Added TT_MICROARCH for micro-optimization support [ahill] +# * Changed the build path to use TT_MICROARCH instead of TT_TARGET [ahill] +# * Fixed "missing package" error when passing absolute paths to the install +# subcommand [ahill] +# * Prevented xz from deleting package files [ahill] +# + Started printing the version number in the build logs [ahill] + # November 15, 2025 (1.1.0) # + Added the ability to incorporate patches into the build [ahill] # + Added TT_CONFDIR [ahill] @@ -56,20 +68,42 @@ # SRC_VERSION - The version of the package being built (required) # Treetap Variables: -# TT_BINDIR - The desired path for binaries [scope: source] [default: /bin] -# TT_BUILD - The target triple of the build system [scope: source] -# TT_BUILDDIR - The path to the build directory [scope: source] -# TT_CONFDIR - The desired path for configuration files [scope: source] [default: /etc] -# TT_DIR - The path to the treetap directory [scope: global] -# TT_INCLUDEDIR - The desired path for header files [scope: source] [default: /usr/include] -# TT_INSTALLDIR - The path to the install directory [scope: source] -# TT_LIBDIR - The desired path for libraries [scope: source] [default: /lib] -# TT_PKGDIR - The path to the package directory [scope: global] -# TT_PREFIX - The desired prefix for the package [scope: source] [default: /] -# TT_PROCS - The number of processors on the build system [scope: source] -# TT_SYSROOT - The sysroot of the target system [scope: global] -# TT_TARGET - The target triple of the target system [scope: source] -# TT_VERSION - The version of treetap being used [scope: global] +# TT_ARCH - The architecture portion of TT_TARGET +# [scope: source] +# TT_AUTOCONF_COMMON - The default autoconf arguments based on the environment +# [scope: source] +# TT_BINDIR - The desired path for binaries +# [scope: source] [default: /bin] +# TT_BUILD - The target triple of the build system +# [scope: source] +# TT_BUILDDIR - The path to the build directory +# [scope: source] +# TT_CMAKE_COMMON - The default CMake arguments based on the environment +# [scope: source] +# TT_CONFDIR - The desired path for configuration files +# [scope: source] [default: /etc] +# TT_DIR - The path to the treetap directory +# [scope: global] +# TT_INCLUDEDIR - The desired path for header files +# [scope: source] [default: /usr/include] +# TT_INSTALLDIR - The path to the install directory +# [scope: source] +# TT_LIBDIR - The desired path for libraries +# [scope: source] [default: /lib] +# TT_MICROARCH - The microarchitecture to optimize for +# [scope: source] +# TT_PKGDIR - The path to the package directory +# [scope: global] +# TT_PREFIX - The desired prefix for the package +# [scope: source] [default: /] +# TT_PROCS - The number of processors on the build system +# [scope: source] +# TT_SYSROOT - The sysroot of the target system +# [scope: global] +# TT_TARGET - The target triple of the target system +# [scope: source] +# TT_VERSION - The version of treetap being used +# [scope: global] #################### # Global Variables # @@ -78,7 +112,7 @@ [ -z "$TT_DIR" ] && TT_DIR="$(pwd)/.treetap" [ -z "$TT_PKGDIR" ] && TT_PKGDIR="$TT_DIR/packages" [ -z "$TT_SYSROOT" ] && TT_SYSROOT=/ -TT_VERSION="1.1.0" +TT_VERSION="1.2.0" ##################### # Utility Functions # @@ -107,6 +141,10 @@ package_check() { [ -z "$2" ] && (echo "package_check: Missing sysroot"; exit 1) [ ! -f "$1" ] && (echo "package_check: Package file \"$1\" not found"; exit 1) [ ! -d "$2" ] && (echo "package_check: Sysroot \"$2\" not found"; exit 1) + case "$1" in + "/"*) PKG_FULLPATH=$1 ;; + *) PKG_FULLPATH=$(pwd)/$1 ;; + esac true } @@ -132,14 +170,65 @@ source_spec() { [ -z "$TT_BINDIR" ] && TT_BINDIR=/bin TT_BUILD=$(clang -dumpmachine) [ -z "$TT_TARGET" ] && TT_TARGET=$TT_BUILD - TT_BUILDDIR="$TT_DIR/sources/$SRC_NAME/$SRC_VERSION/$TT_TARGET" [ -z "$TT_CONFDIR" ] && TT_CONFDIR=/etc [ -z "$TT_INCLUDEDIR" ] && TT_INCLUDEDIR=/usr/include - TT_INSTALLDIR="$TT_BUILDDIR/install" [ -z "$TT_LIBDIR" ] && TT_LIBDIR=/lib [ -z "$TT_PREFIX" ] && TT_PREFIX=/ [ -z "$TT_PROCS" ] && TT_PROCS=$(nproc) + # Attempt to guess TT_MICROARCH if it isn't defined + TT_ARCH=$(echo $TT_TARGET | cut -d"-" -f1) + if [ -z "$TT_MICROARCH" ]; then + case "$TT_ARCH" in + "x86_64") TT_MICROARCH="skylake";; + *) + echo "TT_MICROARCH not defined for $TT_ARCH" + exit 1 + ;; + esac + fi + + # Apply TT_MICROARCH to CFLAGS/CXXFLAGS + CFLAGS="-march=$TT_MICROARCH $CFLAGS" + CXXFLAGS="-march=$TT_MICROARCH $CXXFLAGS" + + # Last, but certainly not least, let's define where we want the build to + # occur and where to put the artifacts. ~ahill + TT_BUILDDIR="$TT_DIR/sources/$SRC_NAME/$SRC_VERSION/$TT_MICROARCH"\ + TT_INSTALLDIR="$TT_BUILDDIR/install" + + # Create convenience variables + TT_AUTOCONF_COMMON=$(echo "--bindir=$TT_BINDIR \ + --build=$TT_BUILD \ + --datarootdir=/usr/share \ + --host=$TT_TARGET \ + --includedir=$TT_INCLUDEDIR \ + --libdir=$TT_LIBDIR \ + --libexecdir=$TT_LIBDIR \ + --localstatedir=/var \ + --prefix=$TT_PREFIX \ + --runstatedir=/run \ + --sbindir=$TT_BINDIR \ + --sysconfdir=$TT_CONFDIR \ + --target=$TT_TARGET \ + --with-sysroot=$TT_SYSROOT" | xargs) + + TT_CMAKE_COMMON=$(echo "-DCMAKE_ASM_COMPILER_TARGET=$TT_TARGET \ + -DCMAKE_C_COMPILER_TARGET=$TT_TARGET \ + -DCMAKE_CXX_COMPILER_TARGET=$TT_TARGET \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=$TT_INSTALLDIR" | xargs) + + # NOTE: CMake doesn't like having a space in CC and CXX, so we manually + # define a few things if CCACHE is set. ~ahill + if [ ! -z "$CCACHE" ]; then + TT_CMAKE_COMMON=$(echo "$TT_CMAKE_COMMON \ + -DCMAKE_C_COMPILER=$(echo $CC | cut -d" " -f2) \ + -DCMAKE_C_COMPILER_LAUNCHER=$CCACHE \ + -DCMAKE_CXX_COMPILER=$(echo $CXX | cut -d" " -f2) + -DCMAKE_CXX_COMPILER_LAUNCHER=$CCACHE" | xargs) + fi + true } @@ -152,10 +241,9 @@ package_install() { [ ! -z "$2" ] && TT_SYSROOT=$2 package_check $1 $TT_SYSROOT echo "Installing $(basename $1)" - FULLPATH=$(pwd)/$1 PUSHD=$(pwd) cd $TT_SYSROOT - xz -cd $FULLPATH | cpio -idmu --quiet + xz -cdk $PKG_FULLPATH | cpio -idmu --quiet cd $PUSHD exit 0 } @@ -165,10 +253,9 @@ package_uninstall() { [ ! -z "$2" ] && TT_SYSROOT=$2 package_check $1 $TT_SYSROOT echo "Uninstalling $(basename $1)" - FULLPATH=$(pwd)/$1 PUSHD=$(pwd) cd $TT_SYSROOT - xz -cd $FULLPATH | cpio -it --quiet | tail -n +2 | sort -r | while read path; do + xz -cdk $PKG_FULLPATH | cpio -it --quiet | tail -n +2 | sort -r | while read path; do if [ -d $path ]; then rmdir --ignore-fail-on-non-empty $path else @@ -189,17 +276,22 @@ source_build() { 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" + echo "Failed to validate patches for $SRC_NAME $SRC_VERSION for $TT_MICROARCH ($TT_TARGET)" exit 1 fi echo $SRC_PATCHES | while read line; do cp $(echo $line | cut -d" " -f2) $TT_BUILDDIR/ done fi - echo "Building $SRC_NAME $SRC_VERSION" + echo "Building $SRC_NAME $SRC_VERSION for $TT_MICROARCH" PUSHD=$(pwd) cd $TT_BUILDDIR - build > build-$(date +%Y%m%d%H%M%S).log 2>&1 + # Please don't use this in your build script. This is meant for + # troubleshooting purposes. ~ahill + TT_BUILD_LOG=build-$(date +%Y%m%d%H%M%S).log + echo "Build started with treetap $TT_VERSION at $(date)" > $TT_BUILD_LOG + build >> $TT_BUILD_LOG 2>&1 + echo "Build finished at $(date)" >> $TT_BUILD_LOG cd $PUSHD exit 0 } @@ -244,14 +336,13 @@ source_package() { source_spec $1 mkdir -p $TT_BUILDDIR mkdir -p $TT_INSTALLDIR - mkdir -p $TT_PKGDIR/$TT_TARGET + mkdir -p $TT_PKGDIR/$TT_MICROARCH PUSHD=$(pwd) cd $TT_BUILDDIR - echo "Moving artifacts for $SRC_NAME $SRC_VERSION" + echo "Archiving $SRC_NAME $SRC_VERSION for $TT_MICROARCH" package > package-$(date +%Y%m%d%H%M%S).log - echo "Archiving $SRC_NAME $SRC_VERSION" cd $TT_INSTALLDIR - find | cpio -o --quiet | xz -cz > "$TT_PKGDIR/$TT_TARGET/$SRC_NAME-$SRC_VERSION.cpio.xz" + find | cpio -o --quiet | xz -cz > "$TT_PKGDIR/$TT_MICROARCH/$SRC_NAME-$SRC_VERSION-$TT_MICROARCH.cpio.xz" rm -rf $TT_INSTALLDIR cd $PUSHD exit 0 -- 2.49.1 From d096584753c17c66504a27bb31180a93987f3e17 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sun, 23 Nov 2025 00:10:08 -0500 Subject: [PATCH 13/74] Built libarchive --- STATUS.md | 12 ++++++++++++ sources/busybox/.config | 28 ++++++++++++++-------------- sources/busybox/busybox.spec | 4 ++-- sources/libarchive/libarchive.spec | 26 ++++++++++++++++++++++++++ sources/musl/musl.spec | 3 +++ 5 files changed, 57 insertions(+), 16 deletions(-) create mode 100644 STATUS.md create mode 100644 sources/libarchive/libarchive.spec diff --git a/STATUS.md b/STATUS.md new file mode 100644 index 0000000..de0c1b6 --- /dev/null +++ b/STATUS.md @@ -0,0 +1,12 @@ +This document tracks which packages can be built and packaged within the chroot. + +| Package | Can Build? | Can Package? | +| ------------ | ---------- | ------------ | +| `busybox` | No | No | +| `libarchive` | Yes | No | +| `libressl` | Yes | No | +| `linux` | No | No | +| `llvm` | No | No | +| `make` | Yes | No | +| `mold` | No | No | +| `musl` | Yes | No | \ No newline at end of file diff --git a/sources/busybox/.config b/sources/busybox/.config index 3135568..2450848 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 -# Tue Nov 18 20:33:45 2025 +# Sat Nov 22 23:45:26 2025 # CONFIG_HAVE_DOT_CONFIG=y @@ -22,7 +22,7 @@ CONFIG_FEATURE_DEVPTS=y CONFIG_FEATURE_UTMP=y CONFIG_FEATURE_WTMP=y CONFIG_FEATURE_PIDFILE=y -CONFIG_PID_FILE_PATH="/var/run" +CONFIG_PID_FILE_PATH="/run" CONFIG_BUSYBOX=y CONFIG_FEATURE_SHOW_SCRIPT=y CONFIG_FEATURE_INSTALLER=y @@ -160,13 +160,13 @@ 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_CPIO is not set +# CONFIG_FEATURE_CPIO_O is not set +# CONFIG_FEATURE_CPIO_P is not set +# CONFIG_FEATURE_CPIO_IGNORE_DEVNO is not set +# CONFIG_FEATURE_CPIO_RENUMBER_INODES is not set +# CONFIG_DPKG is not set +# CONFIG_DPKG_DEB is not set CONFIG_GZIP=y CONFIG_FEATURE_GZIP_LONG_OPTIONS=y CONFIG_GZIP_FAST=0 @@ -190,11 +190,11 @@ 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_UNZIP is not set +# CONFIG_FEATURE_UNZIP_CDF is not set +# CONFIG_FEATURE_UNZIP_BZIP2 is not set +# CONFIG_FEATURE_UNZIP_LZMA is not set +# CONFIG_FEATURE_UNZIP_XZ is not set # CONFIG_FEATURE_LZMA_FAST is not set # diff --git a/sources/busybox/busybox.spec b/sources/busybox/busybox.spec index 1c52d8a..8522255 100755 --- a/sources/busybox/busybox.spec +++ b/sources/busybox/busybox.spec @@ -2,10 +2,10 @@ SRC_HASH="b8cc24c9574d809e7279c3be349795c5d5ceb6fdf19ca709f80cde50e47de314" SRC_NAME="busybox" SRC_PATCHES=" -6b362ba1231e55cbff68ae9c9fdaa5749d459deed22cac5402cb83f0d8794a89 .config +0aabaf4254dc544a2e91aea2de91d0d4da95bfa54dfbc54852a21fe8eff3d30f .config " SRC_URL="https://busybox.net/downloads/busybox-1.36.1.tar.bz2" -SRC_VERSION="1.36.1" +SRC_VERSION="1.36.1r1" build() { tar xf ../$SRC_FILENAME diff --git a/sources/libarchive/libarchive.spec b/sources/libarchive/libarchive.spec new file mode 100644 index 0000000..edcd0b5 --- /dev/null +++ b/sources/libarchive/libarchive.spec @@ -0,0 +1,26 @@ +# Maintainer: Alexander Hill +SRC_HASH="90e21f2b89f19391ce7b90f6e48ed9fde5394d23ad30ae256fb8236b38b99788" +SRC_NAME="libarchive" +SRC_URL="https://www.libarchive.org/downloads/libarchive-3.8.3.tar.xz" +SRC_VERSION="3.8.3" + +build() { + tar xf ../$SRC_FILENAME + cd libarchive-*/ + # NOTE: bsdtar is disabled here because Busybox's implementation is complete + # enough to be useful and bootstrapping libarchive is a pain. ~ahill + ./configure $TT_AUTOCONF_COMMON \ + --disable-bsdtar \ + --disable-static \ + --enable-year2038 + make -j $TT_PROCS +} + +clean() { + rm -rf libarchive-*/ +} + +package() { + cd libarchive-*/ + make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/musl/musl.spec b/sources/musl/musl.spec index 7a3580d..754c452 100755 --- a/sources/musl/musl.spec +++ b/sources/musl/musl.spec @@ -26,4 +26,7 @@ clean() { package() { cd musl-*/ DESTDIR=$TT_INSTALLDIR make install + # NOTE: Apparently, the linker library has an entry point that we can use as + # ldd. What kind of black magic is this? ~ahill + ln -sf /lib/ld-musl-$TT_ARCH.so.1 $TT_INSTALLDIR/bin/ldd } -- 2.49.1 From edaecac8bf47c8b0d76602aed1e44026446a0f49 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sun, 23 Nov 2025 09:46:25 -0500 Subject: [PATCH 14/74] Added xz --- STATUS.md | 7 ++++--- sources/busybox/.config | 18 +++++++++--------- sources/busybox/busybox.spec | 4 ++-- sources/xz/xz.spec | 21 +++++++++++++++++++++ 4 files changed, 36 insertions(+), 14 deletions(-) create mode 100644 sources/xz/xz.spec diff --git a/STATUS.md b/STATUS.md index de0c1b6..91b84a0 100644 --- a/STATUS.md +++ b/STATUS.md @@ -3,10 +3,11 @@ This document tracks which packages can be built and packaged within the chroot. | Package | Can Build? | Can Package? | | ------------ | ---------- | ------------ | | `busybox` | No | No | -| `libarchive` | Yes | No | +| `libarchive` | Yes | Yes | | `libressl` | Yes | No | | `linux` | No | No | | `llvm` | No | No | -| `make` | Yes | No | +| `make` | Yes | Yes | | `mold` | No | No | -| `musl` | Yes | No | \ No newline at end of file +| `musl` | Yes | Yes | +| `xz` | Yes | Yes | \ No newline at end of file diff --git a/sources/busybox/.config b/sources/busybox/.config index 2450848..b61b046 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 -# Sat Nov 22 23:45:26 2025 +# Sun Nov 23 09:24:20 2025 # CONFIG_HAVE_DOT_CONFIG=y @@ -151,12 +151,12 @@ 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_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 @@ -176,8 +176,8 @@ 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_RPM is not set +# CONFIG_RPM2CPIO is not set CONFIG_TAR=y CONFIG_FEATURE_TAR_LONG_OPTIONS=y CONFIG_FEATURE_TAR_CREATE=y diff --git a/sources/busybox/busybox.spec b/sources/busybox/busybox.spec index 8522255..da3a454 100755 --- a/sources/busybox/busybox.spec +++ b/sources/busybox/busybox.spec @@ -2,10 +2,10 @@ SRC_HASH="b8cc24c9574d809e7279c3be349795c5d5ceb6fdf19ca709f80cde50e47de314" SRC_NAME="busybox" SRC_PATCHES=" -0aabaf4254dc544a2e91aea2de91d0d4da95bfa54dfbc54852a21fe8eff3d30f .config +63478e21fdb8a1aa13d5f98c6a599e6ed040deb79707677f6186083c826a2824 .config " SRC_URL="https://busybox.net/downloads/busybox-1.36.1.tar.bz2" -SRC_VERSION="1.36.1r1" +SRC_VERSION="1.36.1r2" build() { tar xf ../$SRC_FILENAME diff --git a/sources/xz/xz.spec b/sources/xz/xz.spec new file mode 100644 index 0000000..804cb41 --- /dev/null +++ b/sources/xz/xz.spec @@ -0,0 +1,21 @@ +# Maintainer: Alexander Hill +SRC_HASH="0b54f79df85912504de0b14aec7971e3f964491af1812d83447005807513cd9e" +SRC_NAME="xz" +SRC_URL="https://github.com/tukaani-project/xz/releases/download/v5.8.1/xz-5.8.1.tar.xz" +SRC_VERSION="5.8.1" + +build() { + tar xf ../$SRC_FILENAME + cd xz-*/ + ./configure $TT_AUTOCONF_COMMON --disable-static --enable-year2038 + make -O -j $TT_PROCS +} + +clean() { + rm -rf xz-*/ +} + +package() { + cd xz-*/ + make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file -- 2.49.1 From bb0d0c543355b26804e81da284401c59dd453693 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sun, 23 Nov 2025 20:05:48 -0500 Subject: [PATCH 15/74] Fixed LibreSSL and built bzip2, Zlib, and CMake --- STATUS.md | 7 +++++-- bootstrap.sh | 12 +++++++++++- rootbuild.sh | 28 ++++++++++++++++++++++++++++ sources/bzip2/bzip2.spec | 32 ++++++++++++++++++++++++++++++++ sources/cmake/cmake.spec | 30 ++++++++++++++++++++++++++++++ sources/libressl/libressl.spec | 2 +- sources/zlib/zlib.spec | 28 ++++++++++++++++++++++++++++ 7 files changed, 135 insertions(+), 4 deletions(-) create mode 100755 rootbuild.sh create mode 100644 sources/bzip2/bzip2.spec create mode 100644 sources/cmake/cmake.spec create mode 100644 sources/zlib/zlib.spec diff --git a/STATUS.md b/STATUS.md index 91b84a0..468648a 100644 --- a/STATUS.md +++ b/STATUS.md @@ -3,11 +3,14 @@ This document tracks which packages can be built and packaged within the chroot. | Package | Can Build? | Can Package? | | ------------ | ---------- | ------------ | | `busybox` | No | No | +| `bzip2` | Yes | Yes | +| `cmake` | Yes | No | | `libarchive` | Yes | Yes | -| `libressl` | Yes | No | +| `libressl` | Yes | Yes | | `linux` | No | No | | `llvm` | No | No | | `make` | Yes | Yes | | `mold` | No | No | | `musl` | Yes | Yes | -| `xz` | Yes | Yes | \ No newline at end of file +| `xz` | Yes | Yes | +| `zlib` | Yes | Yes | \ No newline at end of file diff --git a/bootstrap.sh b/bootstrap.sh index 1d8f2cc..9db1e37 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -235,4 +235,14 @@ for name in $SOURCES; do done # Install Treetap -cp $TREETAP $BOOTSTRAP/root/bin/ \ No newline at end of file +cp $TREETAP $BOOTSTRAP/root/bin/ + +# Prepare for chroot build +mkdir -p $BOOTSTRAP/root/maple/ +cp rootbuild.sh $BOOTSTRAP/root/maple/ +export TT_DIR=$BOOTSTRAP/root/maple/.treetap +SOURCES=(libarchive libressl xz) +for name in $SOURCES; do + $TREETAP fetch $SPEC/$name/$name.spec +done +cp -r $SPEC $BOOTSTRAP/root/maple/ \ No newline at end of file diff --git a/rootbuild.sh b/rootbuild.sh new file mode 100755 index 0000000..0aeedfa --- /dev/null +++ b/rootbuild.sh @@ -0,0 +1,28 @@ +#!/bin/sh -e +export CFLAGS="-O3 -pipe" +export CXXFLAGS=$CFLAGS + +# xz Build +cd /maple +treetap build sources/xz/xz.spec +cd .treetap/sources/xz/*/*/xz-*/ +make -j $(nproc) install DESTDIR=/ + +# libarchive Build +cd /maple +treetap build sources/libarchive/libarchive.spec +cd .treetap/sources/libarchive/*/*/libarchive-*/ +make -j $(nproc) install DESTDIR=/ + +# Now we can build stuff exclusively with treetap +# 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 that. ~ahill +PACKAGES="bzip2 libressl make musl xz zlib libarchive cmake" +for pkg in $PACKAGES; do + treetap fetch sources/$pkg/$pkg.spec + treetap build sources/$pkg/$pkg.spec + treetap package sources/$pkg/$pkg.spec + treetap install .treetap/packages/*/$pkg-*.cpio.xz +done \ No newline at end of file diff --git a/sources/bzip2/bzip2.spec b/sources/bzip2/bzip2.spec new file mode 100644 index 0000000..21757c3 --- /dev/null +++ b/sources/bzip2/bzip2.spec @@ -0,0 +1,32 @@ +# Maintainer: Alexander Hill +SRC_HASH="ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269" +SRC_NAME="bzip2" +SRC_URL="https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz" +SRC_VERSION="1.0.8" + +build() { + tar xf ../$SRC_FILENAME + cd bzip2-*/ + # NOTE: bzip2 likes to hard-code CC, which won't work because gcc doesn't + # exist here. ~ahill + # NOTE: -D_FILE_OFFSET_BITS is present because it's present in the Makefile + # and we're completely overriding its defaults. I don't actually know + # if this will cause any issues if it's missing. ~ahill + make -O -j $TT_PROCS CC=$CC CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64" PREFIX=/ + # NOTE: I'm not sure if it's possible to build bzip2 without building a + # static library, since the executable links with the static library + # and the shared library is isolated in a separate Makefile. ~ahill + make -O -f Makefile-libbz2_so -j $TT_PROCS CC=$CC CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64" PREFIX=/ +} + +clean() { + rm -rf bzip2-*/ +} + +package() { + cd bzip2-*/ + make -O -j $TT_PROCS install PREFIX=$TT_INSTALLDIR + # NOTE: The second Makefile doesn't have an "install" target, so we just + # toss the shared object into /lib and call it a day! ~ahill + cp libbz2.so* $TT_INSTALLDIR/lib/ +} \ No newline at end of file diff --git a/sources/cmake/cmake.spec b/sources/cmake/cmake.spec new file mode 100644 index 0000000..0e80903 --- /dev/null +++ b/sources/cmake/cmake.spec @@ -0,0 +1,30 @@ +# Maintainer: Alexander Hill +SRC_HASH="4104e94657d247c811cb29985405a360b78130b5d51e7f6daceb2447830bd579" +SRC_NAME="cmake" +SRC_URL="https://github.com/Kitware/CMake/releases/download/v4.2.0/cmake-4.2.0.tar.gz" +SRC_VERSION="4.2.0" + +build() { + tar xf ../$SRC_FILENAME + cd cmake-*/ + # NOTE: CMake's bootstrap script is strange because *everything* is located + # under the prefix, whether you like it or not. We're making use of + # /usr/bin this way, which is something I would like to avoid. ~ahill + ./bootstrap \ + --parallel=$TT_PROCS \ + --prefix=/usr \ + --system-bzip2 \ + --system-libarchive \ + --system-liblzma \ + --system-zlib + make -O -j $TT_PROCS +} + +clean() { + rm -rf cmake-*/ +} + +package() { + cd cmake-*/ + make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/libressl/libressl.spec b/sources/libressl/libressl.spec index 744eaaf..1f727ec 100644 --- a/sources/libressl/libressl.spec +++ b/sources/libressl/libressl.spec @@ -19,5 +19,5 @@ clean() { package() { cd libressl-*/ - make -j $TT_PROCS install DESTDIR=$TT_SYSROOT + make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR } \ No newline at end of file diff --git a/sources/zlib/zlib.spec b/sources/zlib/zlib.spec new file mode 100644 index 0000000..497775a --- /dev/null +++ b/sources/zlib/zlib.spec @@ -0,0 +1,28 @@ +# Maintainer: Alexander Hill +SRC_HASH="38ef96b8dfe510d42707d9c781877914792541133e1870841463bfa73f883e32" +SRC_NAME="zlib" +SRC_URL="https://www.zlib.net/zlib-1.3.1.tar.xz" +SRC_VERSION="1.3.1" + +build() { + tar xf ../$SRC_FILENAME + cd zlib-*/ + # NOTE: The prefix is set to /usr because man pages are stored under the + # prefix whether you like it or not. ~ahill + ./configure \ + --eprefix=$TT_PREFIX \ + --includedir=$TT_INCLUDEDIR \ + --libdir=$TT_LIBDIR \ + --prefix=/usr \ + --shared + make -O -j $TT_PROCS +} + +clean() { + rm -rf zlib-*/ +} + +package() { + cd zlib-*/ + make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file -- 2.49.1 From 0a5a1839bcb657702db24dc69e5860fa14ee3164 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sun, 23 Nov 2025 21:14:36 -0500 Subject: [PATCH 16/74] Built mold --- STATUS.md | 4 ++-- rootbuild.sh | 3 ++- sources/mold/mold.spec | 1 - 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/STATUS.md b/STATUS.md index 468648a..4c64bcb 100644 --- a/STATUS.md +++ b/STATUS.md @@ -4,13 +4,13 @@ This document tracks which packages can be built and packaged within the chroot. | ------------ | ---------- | ------------ | | `busybox` | No | No | | `bzip2` | Yes | Yes | -| `cmake` | Yes | No | +| `cmake` | Yes | Yes | | `libarchive` | Yes | Yes | | `libressl` | Yes | Yes | | `linux` | No | No | | `llvm` | No | No | | `make` | Yes | Yes | -| `mold` | No | No | +| `mold` | Yes | Yes | | `musl` | Yes | Yes | | `xz` | Yes | Yes | | `zlib` | Yes | Yes | \ No newline at end of file diff --git a/rootbuild.sh b/rootbuild.sh index 0aeedfa..aa8f530 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -19,7 +19,8 @@ make -j $(nproc) install DESTDIR=/ # missing functionality! ~ahill # NOTE: CMake requires LibreSSL and libarchive to function properly so it is # built after that. ~ahill -PACKAGES="bzip2 libressl make musl xz zlib libarchive cmake" +# NOTE: mold requires CMake to build. ~ahill +PACKAGES="bzip2 libressl make musl xz zlib libarchive cmake mold" for pkg in $PACKAGES; do treetap fetch sources/$pkg/$pkg.spec treetap build sources/$pkg/$pkg.spec diff --git a/sources/mold/mold.spec b/sources/mold/mold.spec index 3db1764..b445320 100644 --- a/sources/mold/mold.spec +++ b/sources/mold/mold.spec @@ -6,7 +6,6 @@ SRC_URL="https://github.com/rui314/mold/archive/refs/tags/v2.40.4.tar.gz" SRC_VERSION="2.40.4" build() { - echo "DEBUG: $TT_CMAKE_COMMON" tar xf ../$SRC_FILENAME cd mold-*/ cmake -B build $TT_CMAKE_COMMON -- 2.49.1 From 38329ef5fd8096b8b41859a802c491df6db9748c Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Mon, 24 Nov 2025 10:36:57 -0500 Subject: [PATCH 17/74] Added byacc, editline, flex, m4, muon, and ncurses ...and updated treetap --- STATUS.md | 6 ++++ bootstrap.sh | 2 +- rootbuild.sh | 10 ++++-- sources/byacc/byacc.spec | 29 +++++++++++++++++ sources/editline/editline.spec | 24 ++++++++++++++ sources/flex/flex.spec | 21 +++++++++++++ sources/m4/m4.spec | 20 ++++++++++++ sources/muon/muon.spec | 24 ++++++++++++++ sources/ncurses/ncurses.spec | 30 ++++++++++++++++++ treetap | 57 ++++++++++++++++++++++++++++------ 10 files changed, 211 insertions(+), 12 deletions(-) create mode 100644 sources/byacc/byacc.spec create mode 100644 sources/editline/editline.spec create mode 100644 sources/flex/flex.spec create mode 100644 sources/m4/m4.spec create mode 100644 sources/muon/muon.spec create mode 100644 sources/ncurses/ncurses.spec diff --git a/STATUS.md b/STATUS.md index 4c64bcb..2108466 100644 --- a/STATUS.md +++ b/STATUS.md @@ -3,14 +3,20 @@ This document tracks which packages can be built and packaged within the chroot. | Package | Can Build? | Can Package? | | ------------ | ---------- | ------------ | | `busybox` | No | No | +| `byacc` | Yes | Yes | | `bzip2` | Yes | Yes | | `cmake` | Yes | Yes | +| `editline` | Yes | Yes | +| `flex` | Yes | Yes | | `libarchive` | Yes | Yes | | `libressl` | Yes | Yes | | `linux` | No | No | | `llvm` | No | No | +| `m4` | Yes | Yes | | `make` | Yes | Yes | | `mold` | Yes | Yes | +| `muon` | Yes | Yes | | `musl` | Yes | Yes | +| `ncurses` | Yes | Yes | | `xz` | Yes | Yes | | `zlib` | Yes | Yes | \ No newline at end of file diff --git a/bootstrap.sh b/bootstrap.sh index 9db1e37..41feb22 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -241,7 +241,7 @@ cp $TREETAP $BOOTSTRAP/root/bin/ mkdir -p $BOOTSTRAP/root/maple/ cp rootbuild.sh $BOOTSTRAP/root/maple/ export TT_DIR=$BOOTSTRAP/root/maple/.treetap -SOURCES=(libarchive libressl xz) +SOURCES=(busybox byacc bzip2 cmake editline flex libarchive libressl linux llvm m4 make mold muon musl ncurses xz zlib) for name in $SOURCES; do $TREETAP fetch $SPEC/$name/$name.spec done diff --git a/rootbuild.sh b/rootbuild.sh index aa8f530..32a4cec 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -3,12 +3,15 @@ export CFLAGS="-O3 -pipe" export CXXFLAGS=$CFLAGS # xz Build +# NOTE: xz is needed to run "treetap package", so we manually install. ~ahill cd /maple treetap build sources/xz/xz.spec cd .treetap/sources/xz/*/*/xz-*/ make -j $(nproc) install DESTDIR=/ # libarchive Build +# NOTE: bsdcpio is needed to run "treetap package", so we manually install. +# ~ahill cd /maple treetap build sources/libarchive/libarchive.spec cd .treetap/sources/libarchive/*/*/libarchive-*/ @@ -18,9 +21,12 @@ make -j $(nproc) install DESTDIR=/ # 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 that. ~ahill +# built after them. ~ahill # NOTE: mold requires CMake to build. ~ahill -PACKAGES="bzip2 libressl make musl xz zlib libarchive cmake mold" +# NOTE: flex requires byacc and m4 to build. ~ahill +# NOTE: editline requires ncurses to build. ~ahill +cd /maple +PACKAGES="byacc bzip2 libressl m4 make muon musl ncurses xz zlib editline flex libarchive cmake mold" for pkg in $PACKAGES; do treetap fetch sources/$pkg/$pkg.spec treetap build sources/$pkg/$pkg.spec diff --git a/sources/byacc/byacc.spec b/sources/byacc/byacc.spec new file mode 100644 index 0000000..e859572 --- /dev/null +++ b/sources/byacc/byacc.spec @@ -0,0 +1,29 @@ +# Maintainer: Alexander Hill +SRC_HASH="192c2fae048d4e7f514ba451627f9c4e612765099f819c19191f9fde3e609673" +SRC_NAME="byacc" +SRC_URL="https://invisible-mirror.net/archives/byacc/byacc-20241231.tgz" +SRC_VERSION="20241231" + +build() { + tar xf ../$SRC_FILENAME + cd byacc-*/ + ./configure $TT_AUTOCONF_COMMON + make -O -j $TT_PROCS +} + +clean() { + rm -rf byacc-*/ +} + +package() { + cd byacc-*/ + # NOTE: byacc's "make install" calls diff -c, which is unsupported by + # Busybox. Unfortunately, our other implementation of diff requires + # byacc to build, meaning we'll need to do a manual install to prevent + # a circular dependency. ~ahill + mkdir -p $TT_INSTALLDIR/bin + cp yacc $TT_INSTALLDIR/bin/ + ln -s yacc $TT_INSTALLDIR/bin/byacc + mkdir -p $TT_INSTALLDIR/usr/share/man/man1 + cp yacc.1 $TT_INSTALLDIR/usr/share/man/man1/ +} \ No newline at end of file diff --git a/sources/editline/editline.spec b/sources/editline/editline.spec new file mode 100644 index 0000000..bbca7dd --- /dev/null +++ b/sources/editline/editline.spec @@ -0,0 +1,24 @@ +# Maintainer: Alexander Hill +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/flex/flex.spec b/sources/flex/flex.spec new file mode 100644 index 0000000..dbf0ee6 --- /dev/null +++ b/sources/flex/flex.spec @@ -0,0 +1,21 @@ +# Maintainer: Alexander Hill +SRC_HASH="e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995" +SRC_NAME="flex" +SRC_URL="https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz" +SRC_VERSION="2.6.4" + +build() { + tar xf ../$SRC_FILENAME + cd flex-*/ + ./configure $TT_AUTOCONF_COMMON --disable-static + make -O -j $TT_PROCS +} + +clean() { + rm -rf flex-*/ +} + +package() { + cd flex-*/ + make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/m4/m4.spec b/sources/m4/m4.spec new file mode 100644 index 0000000..8894ded --- /dev/null +++ b/sources/m4/m4.spec @@ -0,0 +1,20 @@ +# Maintainer: Alexander Hill +SRC_HASH="e4315fef49b08912b1d1db3774dd98f971397b2751c648512b6c8d852590dc50" +SRC_NAME="m4" +SRC_URL="http://haddonthethird.net/m4/m4-2.tar.bz2" +SRC_VERSION="2" + +build() { + tar xf ../$SRC_FILENAME + cd m4-*/ + make -O -j $TT_PROCS +} + +clean() { + rm -rf m4-*/ +} + +package() { + cd m4-*/ + make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/muon/muon.spec b/sources/muon/muon.spec new file mode 100644 index 0000000..158eaf5 --- /dev/null +++ b/sources/muon/muon.spec @@ -0,0 +1,24 @@ +# Maintainer: Alexander Hill +SRC_FILENAME="muon-0.5.0.tar.gz" +SRC_HASH="565c1b6e1e58f7e90d8813fda0e2102df69fb493ddab4cf6a84ce3647466bee5" +SRC_NAME="muon" +SRC_URL="https://git.sr.ht/~lattis/muon/archive/0.5.0.tar.gz" +SRC_VERSION="0.5.0" + +build() { + tar xf ../$SRC_FILENAME + cd muon-*/ + ./bootstrap.sh build + ./build/muon-bootstrap setup build + ./build/muon-bootstrap -C build samu + ./build/muon -C build test -R +} + +clean() { + rm -rf muon-*/ +} + +package() { + cd muon-*/ + DESTDIR=$TT_INSTALLDIR ./build/muon -C build install +} \ No newline at end of file diff --git a/sources/ncurses/ncurses.spec b/sources/ncurses/ncurses.spec new file mode 100644 index 0000000..c5918ca --- /dev/null +++ b/sources/ncurses/ncurses.spec @@ -0,0 +1,30 @@ +# Maintainer: Alexander Hill +SRC_HASH="136d91bc269a9a5785e5f9e980bc76ab57428f604ce3e5a5a90cebc767971cc6" +SRC_NAME="ncurses" +SRC_URL="https://invisible-island.net/archives/ncurses/ncurses-6.5.tar.gz" +SRC_VERSION="6.5" + +build() { + tar xf ../$SRC_FILENAME + cd ncurses-*/ + ./configure $TT_AUTOCONF_COMMON \ + --with-cxx-shared \ + --with-shared \ + --without-ada \ + --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 +} \ No newline at end of file diff --git a/treetap b/treetap index 8407870..9b1902b 100755 --- a/treetap +++ b/treetap @@ -18,6 +18,15 @@ # Changelog # ############# +# November 24, 2025 (1.3.0) +# + Added TT_DATADIR [ahill] +# + Added TT_MESON_COMMON for easy Meson integration [ahill] +# + Added TT_RUNDIR [ahill] +# + Added TT_STATEDIR [ahill] +# * Fixed a bug where applying TT_AUTOCONF_COMMON with some versions of autoconf +# cause it to think we're cross-compiling when we're not. [ahill] +# * Switched from GNU cpio to bsdcpio to function on Maple Linux [ahill] + # November 22, 2025 (1.2.0) # + Added support for the CCACHE environment variable [ahill] # + Added TT_ARCH [ahill] @@ -82,6 +91,8 @@ # [scope: source] # TT_CONFDIR - The desired path for configuration files # [scope: source] [default: /etc] +# TT_DATADIR - The desired path for data files +# [scope: source] [default: /usr/share] # TT_DIR - The path to the treetap directory # [scope: global] # TT_INCLUDEDIR - The desired path for header files @@ -90,6 +101,8 @@ # [scope: source] # TT_LIBDIR - The desired path for libraries # [scope: source] [default: /lib] +# TT_MESON_COMMON - The default meson arguments based on the environment +# [scope: source] # TT_MICROARCH - The microarchitecture to optimize for # [scope: source] # TT_PKGDIR - The path to the package directory @@ -98,6 +111,10 @@ # [scope: source] [default: /] # TT_PROCS - The number of processors on the build system # [scope: source] +# TT_RUNDIR - The desired path for temporary runtime information +# [scope: source] [default: /run] +# TT_STATEDIR - The desired path for persistent runtime information +# [scope: source] [default: /var] # TT_SYSROOT - The sysroot of the target system # [scope: global] # TT_TARGET - The target triple of the target system @@ -112,7 +129,7 @@ [ -z "$TT_DIR" ] && TT_DIR="$(pwd)/.treetap" [ -z "$TT_PKGDIR" ] && TT_PKGDIR="$TT_DIR/packages" [ -z "$TT_SYSROOT" ] && TT_SYSROOT=/ -TT_VERSION="1.2.0" +TT_VERSION="1.3.0" ##################### # Utility Functions # @@ -171,10 +188,13 @@ source_spec() { TT_BUILD=$(clang -dumpmachine) [ -z "$TT_TARGET" ] && TT_TARGET=$TT_BUILD [ -z "$TT_CONFDIR" ] && TT_CONFDIR=/etc + [ -z "$TT_DATADIR" ] && TT_DATADIR=/usr/share [ -z "$TT_INCLUDEDIR" ] && TT_INCLUDEDIR=/usr/include [ -z "$TT_LIBDIR" ] && TT_LIBDIR=/lib [ -z "$TT_PREFIX" ] && TT_PREFIX=/ [ -z "$TT_PROCS" ] && TT_PROCS=$(nproc) + [ -z "$TT_RUNDIR" ] && TT_RUNDIR=/run + [ -z "$TT_STATEDIR" ] && TT_STATEDIR=/var # Attempt to guess TT_MICROARCH if it isn't defined TT_ARCH=$(echo $TT_TARGET | cut -d"-" -f1) @@ -200,19 +220,25 @@ source_spec() { # Create convenience variables TT_AUTOCONF_COMMON=$(echo "--bindir=$TT_BINDIR \ --build=$TT_BUILD \ - --datarootdir=/usr/share \ - --host=$TT_TARGET \ + --datarootdir=$TT_DATADIR \ --includedir=$TT_INCLUDEDIR \ --libdir=$TT_LIBDIR \ --libexecdir=$TT_LIBDIR \ - --localstatedir=/var \ + --localstatedir=$TT_STATEDIR \ --prefix=$TT_PREFIX \ - --runstatedir=/run \ + --runstatedir=$TT_RUNDIR \ --sbindir=$TT_BINDIR \ --sysconfdir=$TT_CONFDIR \ - --target=$TT_TARGET \ --with-sysroot=$TT_SYSROOT" | xargs) + # NOTE: Some versions of autoconf does not like having host/target set + # unless we're actually cross-compiling. + if [ ! "$TT_BUILD" = "$TT_TARGET" ]; then + TT_AUTOCONF_COMMON=$(echo "$TT_AUTOCONF_COMMON \ + --host=$TT_TARGET \ + --target=$TT_TARGET" | xargs) + fi + TT_CMAKE_COMMON=$(echo "-DCMAKE_ASM_COMPILER_TARGET=$TT_TARGET \ -DCMAKE_C_COMPILER_TARGET=$TT_TARGET \ -DCMAKE_CXX_COMPILER_TARGET=$TT_TARGET \ @@ -229,6 +255,19 @@ source_spec() { -DCMAKE_CXX_COMPILER_LAUNCHER=$CCACHE" | xargs) fi + TT_MESON_COMMON=$(echo "-Dbindir=$TT_BINDIR \ + -Ddatadir=$TT_DATADIR \ + -Dincludedir=$TT_INCLUDEDIR \ + -Dinfodir=$TT_DATADIR/info \ + -Dlibdir=$TT_LIBDIR \ + -Dlibexecdir=$TT_LIBDIR \ + -Dlocaledir=$TT_DATADIR/locale \ + -Dlocalstatedir=$TT_STATEDIR \ + -Dmandir=$TT_DATADIR/man \ + -Dprefix=$TT_PREFIX \ + -Dsbindir=$TT_BINDIR \ + -Dsysconfdir=$TT_CONFDIR" | xargs) + true } @@ -243,7 +282,7 @@ package_install() { echo "Installing $(basename $1)" PUSHD=$(pwd) cd $TT_SYSROOT - xz -cdk $PKG_FULLPATH | cpio -idmu --quiet + bsdcpio -iJ < $PKG_FULLPATH cd $PUSHD exit 0 } @@ -255,7 +294,7 @@ package_uninstall() { echo "Uninstalling $(basename $1)" PUSHD=$(pwd) cd $TT_SYSROOT - xz -cdk $PKG_FULLPATH | cpio -it --quiet | tail -n +2 | sort -r | while read path; do + bsdcpio -iJt < $PKG_FULLPATH | tail -n +2 | sort -r | while read path; do if [ -d $path ]; then rmdir --ignore-fail-on-non-empty $path else @@ -342,7 +381,7 @@ source_package() { echo "Archiving $SRC_NAME $SRC_VERSION for $TT_MICROARCH" package > package-$(date +%Y%m%d%H%M%S).log cd $TT_INSTALLDIR - find | cpio -o --quiet | xz -cz > "$TT_PKGDIR/$TT_MICROARCH/$SRC_NAME-$SRC_VERSION-$TT_MICROARCH.cpio.xz" + find | bsdcpio -Jo > "$TT_PKGDIR/$TT_MICROARCH/$SRC_NAME-$SRC_VERSION-$TT_MICROARCH.cpio.xz" rm -rf $TT_INSTALLDIR cd $PUSHD exit 0 -- 2.49.1 From 679f263c2ffaf2891abd03d29a9af511c620e852 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Thu, 27 Nov 2025 18:46:03 -0500 Subject: [PATCH 18/74] Added autoconf, automake, bsdutils, libtool, musl-fts, perl, and pkgconf, and replaced m4 --- STATUS.md | 6 ++ bootstrap.sh | 28 +++++++- maple-chroot | 25 +++++++ rootbuild.sh | 5 +- sources/autoconf/autoconf.spec | 21 ++++++ sources/automake/automake.spec | 21 ++++++ sources/bsdutils/bsdutils.spec | 121 +++++++++++++++++++++++++++++++++ sources/libtool/libtool.spec | 27 ++++++++ sources/m4/m4.spec | 11 +-- sources/musl-fts/musl-fts.spec | 24 +++++++ sources/perl/perl.spec | 21 ++++++ sources/pkgconf/pkgconf.spec | 24 +++++++ 12 files changed, 327 insertions(+), 7 deletions(-) create mode 100755 maple-chroot create mode 100644 sources/autoconf/autoconf.spec create mode 100644 sources/automake/automake.spec create mode 100644 sources/bsdutils/bsdutils.spec create mode 100644 sources/libtool/libtool.spec create mode 100644 sources/musl-fts/musl-fts.spec create mode 100644 sources/perl/perl.spec create mode 100644 sources/pkgconf/pkgconf.spec diff --git a/STATUS.md b/STATUS.md index 2108466..fc11319 100644 --- a/STATUS.md +++ b/STATUS.md @@ -2,6 +2,9 @@ This document tracks which packages can be built and packaged within the chroot. | Package | Can Build? | Can Package? | | ------------ | ---------- | ------------ | +| `autoconf` | Yes | Yes | +| `automake` | Yes | Yes | +| `bsdutils` | Yes | Yes | | `busybox` | No | No | | `byacc` | Yes | Yes | | `bzip2` | Yes | Yes | @@ -17,6 +20,9 @@ This document tracks which packages can be built and packaged within the chroot. | `mold` | Yes | Yes | | `muon` | Yes | Yes | | `musl` | Yes | Yes | +| `musl-fts` | Yes | Yes | | `ncurses` | Yes | Yes | +| `perl` | Yes | Yes | +| `pkgconf` | Yes | Yes | | `xz` | Yes | Yes | | `zlib` | Yes | Yes | \ No newline at end of file diff --git a/bootstrap.sh b/bootstrap.sh index 41feb22..868f3c4 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -241,7 +241,33 @@ cp $TREETAP $BOOTSTRAP/root/bin/ mkdir -p $BOOTSTRAP/root/maple/ cp rootbuild.sh $BOOTSTRAP/root/maple/ export TT_DIR=$BOOTSTRAP/root/maple/.treetap -SOURCES=(busybox byacc bzip2 cmake editline flex libarchive libressl linux llvm m4 make mold muon musl ncurses xz zlib) +SOURCES=( + autoconf + automake + bsdutils + busybox + byacc + bzip2 + cmake + editline + flex + libarchive + libressl + libtool + linux + llvm + m4 + make + mold + muon + musl + musl-fts + ncurses + perl + pkgconf + xz + zlib +) for name in $SOURCES; do $TREETAP fetch $SPEC/$name/$name.spec done diff --git a/maple-chroot b/maple-chroot new file mode 100755 index 0000000..5d7d52d --- /dev/null +++ b/maple-chroot @@ -0,0 +1,25 @@ +#!/bin/sh + +if [ -z "$1" ] && [ ! -d "$1" ]; then + echo "Usage: $0 " + exit 1 +fi + +if mount --rbind /dev $1/dev && mount --make-rslave $1/dev; then + if mount -t proc /proc $1/proc; then + if mount --bind /run $1/run; then + if mount --rbind /sys $1/sys && mount --make-rslave $1/sys; then + if mount --rbind /tmp $1/tmp; then + SHELL=$2 + [ -z "$SHELL" ] && SHELL=/bin/sh + chroot $1 $SHELL + umount -R $1/tmp + fi + umount -R $1/sys + fi + umount -R $1/run + fi + umount -R $1/proc + fi + umount -R $1/dev +fi \ No newline at end of file diff --git a/rootbuild.sh b/rootbuild.sh index 32a4cec..d76f486 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -25,8 +25,11 @@ make -j $(nproc) install DESTDIR=/ # 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 cd /maple -PACKAGES="byacc bzip2 libressl m4 make muon musl ncurses xz zlib editline flex libarchive cmake mold" +PACKAGES="byacc bzip2 libressl m4 make muon musl ncurses perl pkgconf xz zlib autoconf automake editline flex libarchive libtool musl-fts cmake mold" for pkg in $PACKAGES; do treetap fetch sources/$pkg/$pkg.spec treetap build sources/$pkg/$pkg.spec diff --git a/sources/autoconf/autoconf.spec b/sources/autoconf/autoconf.spec new file mode 100644 index 0000000..317d458 --- /dev/null +++ b/sources/autoconf/autoconf.spec @@ -0,0 +1,21 @@ +# Maintainer: Alexander Hill +SRC_HASH="ba885c1319578d6c94d46e9b0dceb4014caafe2490e437a0dbca3f270a223f5a" +SRC_NAME="autoconf" +SRC_URL="https://ftp.gnu.org/gnu/autoconf/autoconf-2.72.tar.xz" +SRC_VERSION="2.72" + +build() { + tar xf ../$SRC_FILENAME + cd autoconf-*/ + ./configure $TT_AUTOCONF_COMMON + make -O -j $TT_PROCS +} + +clean() { + rm -rf autoconf-*/ +} + +package() { + cd autoconf-*/ + make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/automake/automake.spec b/sources/automake/automake.spec new file mode 100644 index 0000000..5ba1f74 --- /dev/null +++ b/sources/automake/automake.spec @@ -0,0 +1,21 @@ +# Maintainer: Alexander Hill +SRC_HASH="168aa363278351b89af56684448f525a5bce5079d0b6842bd910fdd3f1646887" +SRC_NAME="automake" +SRC_URL="https://ftp.gnu.org/gnu/automake/automake-1.18.1.tar.xz" +SRC_VERSION="1.18.1" + +build() { + tar xf ../$SRC_FILENAME + cd automake-*/ + ./configure $TT_AUTOCONF_COMMON + make -j $TT_PROCS +} + +clean() { + rm -rf automake-*/ +} + +package() { + cd automake-*/ + make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/bsdutils/bsdutils.spec b/sources/bsdutils/bsdutils.spec new file mode 100644 index 0000000..487558d --- /dev/null +++ b/sources/bsdutils/bsdutils.spec @@ -0,0 +1,121 @@ +# Maintainer: Alexander Hill +SRC_FILENAME="bsdutils-13.2.tar.gz" +SRC_HASH="4547990309afe686c6f36c2a4f7ac5806e0064b182dd1f93f52dda7661979a3c" +SRC_NAME="bsdutils" +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 + +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. Busybox takes priority unless the bsdutils version has more + # functionality. ~ahill + # ... + muon setup $TT_MESON_COMMON build + muon samu -C build +} + +clean() { + rm -rf bsdutils/ +} + +package() { + cd bsdutils/ + muon -C build install -d $TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/libtool/libtool.spec b/sources/libtool/libtool.spec new file mode 100644 index 0000000..a5eb3b3 --- /dev/null +++ b/sources/libtool/libtool.spec @@ -0,0 +1,27 @@ +# Maintainer: Alexander Hill +SRC_HASH="f81f5860666b0bc7d84baddefa60d1cb9fa6fceb2398cc3baca6afaa60266675" +SRC_NAME="libtool" +SRC_URL="https://ftp.gnu.org/gnu/libtool/libtool-2.5.4.tar.xz" +SRC_VERSION="2.5.4" + +build() { + tar xf ../$SRC_FILENAME + cd libtool-*/ + ./configure $TT_AUTOCONF_COMMON --disable-static + make -j $TT_PROCS + # NOTE: For some reason, libtoolize uses the env command to locate sh, but + # we don't have the env command yet, because env is part of bsdutils, + # which requires musl-fts to function, which we can't build without + # libtoolize. Strangely enough, libtool is hard-coded to /bin/sh, so + # I don't know why libtoolize uses /usr/bin/env. ~ahill + sed -i "s|/usr/bin/env sh|/bin/sh" libtoolize +} + +clean() { + rm -rf libtool-*/ +} + +package() { + cd libtool-*/ + make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/m4/m4.spec b/sources/m4/m4.spec index 8894ded..0697fec 100644 --- a/sources/m4/m4.spec +++ b/sources/m4/m4.spec @@ -1,13 +1,14 @@ # Maintainer: Alexander Hill -SRC_HASH="e4315fef49b08912b1d1db3774dd98f971397b2751c648512b6c8d852590dc50" +SRC_HASH="e236ea3a1ccf5f6c270b1c4bb60726f371fa49459a8eaaebc90b216b328daf2b" SRC_NAME="m4" -SRC_URL="http://haddonthethird.net/m4/m4-2.tar.bz2" -SRC_VERSION="2" +SRC_URL="https://ftp.gnu.org/gnu/m4/m4-1.4.20.tar.xz" +SRC_VERSION="1.4.20" build() { tar xf ../$SRC_FILENAME cd m4-*/ - make -O -j $TT_PROCS + ./configure $TT_AUTOCONF_COMMON --enable-year2038 + make -j $TT_PROCS } clean() { @@ -16,5 +17,5 @@ clean() { package() { cd m4-*/ - make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR + make -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 new file mode 100644 index 0000000..35f9df7 --- /dev/null +++ b/sources/musl-fts/musl-fts.spec @@ -0,0 +1,24 @@ +# Maintainer: Alexander Hill +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/perl/perl.spec b/sources/perl/perl.spec new file mode 100644 index 0000000..4a5fa8a --- /dev/null +++ b/sources/perl/perl.spec @@ -0,0 +1,21 @@ +# Maintainer: Alexander Hill +SRC_HASH="e093ef184d7f9a1b9797e2465296f55510adb6dab8842b0c3ed53329663096dc" +SRC_NAME="perl" +SRC_URL="https://www.cpan.org/src/5.0/perl-5.42.0.tar.gz" +SRC_VERSION="5.42.0" + +build() { + tar xf ../$SRC_FILENAME + cd perl-*/ + ./Configure -des + make -O -j $TT_PROCS +} + +clean() { + rm -rf perl-*/ +} + +package() { + cd perl-*/ + make -O -j $TT_PROCS DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/pkgconf/pkgconf.spec b/sources/pkgconf/pkgconf.spec new file mode 100644 index 0000000..470921e --- /dev/null +++ b/sources/pkgconf/pkgconf.spec @@ -0,0 +1,24 @@ +# Maintainer: Alexander Hill +SRC_HASH="cd05c9589b9f86ecf044c10a2269822bc9eb001eced2582cfffd658b0a50c243" +SRC_NAME="pkgconf" +SRC_URL="https://distfiles.dereferenced.org/pkgconf/pkgconf-2.5.1.tar.xz" +SRC_VERSION="2.5.1" + +build() { + tar xf ../$SRC_FILENAME + cd pkgconf-*/ + ./configure $TT_AUTOCONF_COMMON --disable-static --enable-year2038 + make -j $TT_PROCS +} + +clean() { + rm -rf pkgconf-*/ +} + +package() { + cd pkgconf-*/ + make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR + # NOTE: Symlink for compatibility's sake. Currently being used by Muon. + # ~ahill + ln -sf pkgconf $TT_INSTALLDIR/bin/pkg-config +} \ No newline at end of file -- 2.49.1 From 25bd0eb0b44d9635f3194a4e231900c1ec2f17bf Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Fri, 28 Nov 2025 10:53:37 -0500 Subject: [PATCH 19/74] Fixed libtool, musl, and perl for rootbuild --- rootbuild.sh | 18 +++++++++++------- sources/libtool/libtool.spec | 4 ++-- sources/musl/musl.spec | 1 + sources/perl/perl.spec | 18 ++++++++++++++---- 4 files changed, 28 insertions(+), 13 deletions(-) diff --git a/rootbuild.sh b/rootbuild.sh index d76f486..363d91b 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -1,5 +1,7 @@ #!/bin/sh -e +export CC=clang export CFLAGS="-O3 -pipe" +export CXX=clang++ export CXXFLAGS=$CFLAGS # xz Build @@ -7,7 +9,8 @@ export CXXFLAGS=$CFLAGS cd /maple treetap build sources/xz/xz.spec cd .treetap/sources/xz/*/*/xz-*/ -make -j $(nproc) install DESTDIR=/ +echo "Bootstrapping xz" +make -j $(nproc) install DESTDIR=/ > /dev/null 2>&1 # libarchive Build # NOTE: bsdcpio is needed to run "treetap package", so we manually install. @@ -15,7 +18,8 @@ make -j $(nproc) install DESTDIR=/ cd /maple treetap build sources/libarchive/libarchive.spec cd .treetap/sources/libarchive/*/*/libarchive-*/ -make -j $(nproc) install DESTDIR=/ +echo "Bootstrapping libarchive" +make -j $(nproc) install DESTDIR=/ > /dev/null 2>&1 # Now we can build stuff exclusively with treetap # NOTE: bzip2, xz, and zlib need to be built before libarchive or we will be @@ -31,8 +35,8 @@ make -j $(nproc) install DESTDIR=/ 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" for pkg in $PACKAGES; do - treetap fetch sources/$pkg/$pkg.spec - treetap build sources/$pkg/$pkg.spec - treetap package sources/$pkg/$pkg.spec - treetap install .treetap/packages/*/$pkg-*.cpio.xz -done \ No newline at end of file + treetap fetch /maple/sources/$pkg/$pkg.spec + treetap build /maple/sources/$pkg/$pkg.spec + treetap package /maple/sources/$pkg/$pkg.spec + treetap install /maple/.treetap/packages/*/$pkg-*.cpio.xz +done diff --git a/sources/libtool/libtool.spec b/sources/libtool/libtool.spec index a5eb3b3..ad794dd 100644 --- a/sources/libtool/libtool.spec +++ b/sources/libtool/libtool.spec @@ -14,7 +14,7 @@ build() { # which requires musl-fts to function, which we can't build without # libtoolize. Strangely enough, libtool is hard-coded to /bin/sh, so # I don't know why libtoolize uses /usr/bin/env. ~ahill - sed -i "s|/usr/bin/env sh|/bin/sh" libtoolize + sed -i "s|/usr/bin/env sh|/bin/sh|" libtoolize } clean() { @@ -24,4 +24,4 @@ clean() { package() { cd libtool-*/ make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR -} \ No newline at end of file +} diff --git a/sources/musl/musl.spec b/sources/musl/musl.spec index 754c452..a4fb38a 100755 --- a/sources/musl/musl.spec +++ b/sources/musl/musl.spec @@ -28,5 +28,6 @@ package() { DESTDIR=$TT_INSTALLDIR make install # NOTE: Apparently, the linker library has an entry point that we can use as # ldd. What kind of black magic is this? ~ahill + mkdir -p $TT_INSTALLDIR/bin ln -sf /lib/ld-musl-$TT_ARCH.so.1 $TT_INSTALLDIR/bin/ldd } diff --git a/sources/perl/perl.spec b/sources/perl/perl.spec index 4a5fa8a..bc737a1 100644 --- a/sources/perl/perl.spec +++ b/sources/perl/perl.spec @@ -2,12 +2,22 @@ SRC_HASH="e093ef184d7f9a1b9797e2465296f55510adb6dab8842b0c3ed53329663096dc" SRC_NAME="perl" SRC_URL="https://www.cpan.org/src/5.0/perl-5.42.0.tar.gz" -SRC_VERSION="5.42.0" +SRC_VERSION="5.42.0r1" build() { tar xf ../$SRC_FILENAME cd perl-*/ - ./Configure -des + # NOTE: Not a Perl user, so I hope I don't screw this up. ~ahill + ./Configure -des \ + -D bin=$TT_BINDIR \ + -D installstyle=lib/perl5 \ + -D prefix=$TT_PREFIX \ + -D scriptdir=$TT_BINDIR \ + -D sysroot=$TT_SYSROOT \ + -D useshrplib \ + -D usethreads \ + -D usrinc=$TT_INCLUDEDIR \ + -D vendorprefix=$TT_PREFIX make -O -j $TT_PROCS } @@ -17,5 +27,5 @@ clean() { package() { cd perl-*/ - make -O -j $TT_PROCS DESTDIR=$TT_INSTALLDIR -} \ No newline at end of file + make -O -j $TT_PROCS install.perl DESTDIR=$TT_INSTALLDIR +} -- 2.49.1 From 2a2d872d09c90bea6e105ad5ef41bab094086e84 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Fri, 28 Nov 2025 11:26:13 -0500 Subject: [PATCH 20/74] Reviewed packages and found that several were not packaged correctly --- STATUS.md | 19 ++++++++++++------- sources/bzip2/bzip2.spec | 5 ++++- sources/cmake/cmake.spec | 5 ++++- sources/libressl/libressl.spec | 6 +++++- sources/mold/mold.spec | 5 ++++- sources/muon/muon.spec | 4 +++- sources/ncurses/ncurses.spec | 4 +++- 7 files changed, 35 insertions(+), 13 deletions(-) diff --git a/STATUS.md b/STATUS.md index fc11319..bcc8f73 100644 --- a/STATUS.md +++ b/STATUS.md @@ -1,28 +1,33 @@ This document tracks which packages can be built and packaged within the chroot. +Definitions: + Can Build - The software can be both compiled via treetap on Maple Linux and run on Maple Linux + Can Package - The software can be packaged by treetap under Maple Linux, while using none of the deprecated paths (/usr/bin, /usr/lib, /usr/libexec, /sbin, etc.) and without conflicting with another package + | Package | Can Build? | Can Package? | | ------------ | ---------- | ------------ | | `autoconf` | Yes | Yes | | `automake` | Yes | Yes | -| `bsdutils` | Yes | Yes | +| `bsdutils` | Yes | No | | `busybox` | No | No | | `byacc` | Yes | Yes | -| `bzip2` | Yes | Yes | -| `cmake` | Yes | Yes | +| `bzip2` | Yes | No | +| `cmake` | Yes | No | | `editline` | Yes | Yes | | `flex` | Yes | Yes | | `libarchive` | Yes | Yes | | `libressl` | Yes | Yes | +| `libtool` | Yes | Yes | | `linux` | No | No | | `llvm` | No | No | | `m4` | Yes | Yes | | `make` | Yes | Yes | -| `mold` | Yes | Yes | -| `muon` | Yes | Yes | +| `mold` | Yes | No | +| `muon` | Yes | No | | `musl` | Yes | Yes | | `musl-fts` | Yes | Yes | -| `ncurses` | Yes | Yes | +| `ncurses` | Yes | No | | `perl` | Yes | Yes | | `pkgconf` | Yes | Yes | | `xz` | Yes | Yes | -| `zlib` | Yes | Yes | \ No newline at end of file +| `zlib` | Yes | Yes | diff --git a/sources/bzip2/bzip2.spec b/sources/bzip2/bzip2.spec index 21757c3..f7c3ab2 100644 --- a/sources/bzip2/bzip2.spec +++ b/sources/bzip2/bzip2.spec @@ -4,6 +4,9 @@ SRC_NAME="bzip2" SRC_URL="https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz" SRC_VERSION="1.0.8" +# TODO: Move bzlib.h to $TT_INCLUDEDIR ~ahill +# TODO: Prevent the static library from being installed ~ahill + build() { tar xf ../$SRC_FILENAME cd bzip2-*/ @@ -29,4 +32,4 @@ package() { # NOTE: The second Makefile doesn't have an "install" target, so we just # toss the shared object into /lib and call it a day! ~ahill cp libbz2.so* $TT_INSTALLDIR/lib/ -} \ No newline at end of file +} diff --git a/sources/cmake/cmake.spec b/sources/cmake/cmake.spec index 0e80903..106bb91 100644 --- a/sources/cmake/cmake.spec +++ b/sources/cmake/cmake.spec @@ -4,6 +4,9 @@ SRC_NAME="cmake" SRC_URL="https://github.com/Kitware/CMake/releases/download/v4.2.0/cmake-4.2.0.tar.gz" SRC_VERSION="4.2.0" +# TODO: Move executables from /usr/bin to $TT_BINDIR ~ahill +# TODO: Place all documentation under $TT_DATADIR/doc ~ahill + build() { tar xf ../$SRC_FILENAME cd cmake-*/ @@ -27,4 +30,4 @@ clean() { package() { cd cmake-*/ make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR -} \ No newline at end of file +} diff --git a/sources/libressl/libressl.spec b/sources/libressl/libressl.spec index 1f727ec..dc3783d 100644 --- a/sources/libressl/libressl.spec +++ b/sources/libressl/libressl.spec @@ -4,6 +4,10 @@ SRC_NAME="libressl" SRC_URL="https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-4.2.1.tar.gz" SRC_VERSION="4.2.1" +# TODO: Should the openssl command be a symlink? For the sake of transparency, +# it may make sense to rename the command to "libressl" and make "openssl" +# a symlink for compatibility's sake. ~ahill + build() { tar xf ../$SRC_FILENAME cd libressl-*/ @@ -20,4 +24,4 @@ clean() { package() { cd libressl-*/ make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR -} \ No newline at end of file +} diff --git a/sources/mold/mold.spec b/sources/mold/mold.spec index b445320..c3f0a78 100644 --- a/sources/mold/mold.spec +++ b/sources/mold/mold.spec @@ -5,6 +5,9 @@ SRC_NAME="mold" SRC_URL="https://github.com/rui314/mold/archive/refs/tags/v2.40.4.tar.gz" SRC_VERSION="2.40.4" +# TODO: Merge the contents from /lib64 and /libexec into $TT_LIBDIR ~ahill +# TODO: Move /share to $TT_DATADIR ~ahill + build() { tar xf ../$SRC_FILENAME cd mold-*/ @@ -20,4 +23,4 @@ package() { cd mold-*/ cmake --install build --parallel $TT_PROCS ln -sf mold $TT_INSTALLDIR/bin/ld -} \ No newline at end of file +} diff --git a/sources/muon/muon.spec b/sources/muon/muon.spec index 158eaf5..1df7903 100644 --- a/sources/muon/muon.spec +++ b/sources/muon/muon.spec @@ -5,6 +5,8 @@ SRC_NAME="muon" SRC_URL="https://git.sr.ht/~lattis/muon/archive/0.5.0.tar.gz" SRC_VERSION="0.5.0" +# TODO: Make sure the muon command is installed to $TT_BINDIR ~ahill + build() { tar xf ../$SRC_FILENAME cd muon-*/ @@ -21,4 +23,4 @@ clean() { package() { cd muon-*/ DESTDIR=$TT_INSTALLDIR ./build/muon -C build install -} \ No newline at end of file +} diff --git a/sources/ncurses/ncurses.spec b/sources/ncurses/ncurses.spec index c5918ca..942c894 100644 --- a/sources/ncurses/ncurses.spec +++ b/sources/ncurses/ncurses.spec @@ -4,6 +4,8 @@ SRC_NAME="ncurses" 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-*/ @@ -27,4 +29,4 @@ package() { # 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 -} \ No newline at end of file +} -- 2.49.1 From d4dd608a1fca5fd499480398cc11335fb5908746 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Fri, 28 Nov 2025 11:29:28 -0500 Subject: [PATCH 21/74] Fixed formatting --- STATUS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/STATUS.md b/STATUS.md index bcc8f73..6fcde36 100644 --- a/STATUS.md +++ b/STATUS.md @@ -1,8 +1,8 @@ This document tracks which packages can be built and packaged within the chroot. Definitions: - Can Build - The software can be both compiled via treetap on Maple Linux and run on Maple Linux - Can Package - The software can be packaged by treetap under Maple Linux, while using none of the deprecated paths (/usr/bin, /usr/lib, /usr/libexec, /sbin, etc.) and without conflicting with another package +- Can Build - The software can be both compiled via treetap on Maple Linux and run on Maple Linux +- Can Package - The software can be packaged by treetap under Maple Linux, while using none of the deprecated paths (/usr/bin, /usr/lib, /usr/libexec, /sbin, etc.) and without conflicting with another package | Package | Can Build? | Can Package? | | ------------ | ---------- | ------------ | -- 2.49.1 From c1a0e67c304c8c756bede7e3b3821e25b540c937 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 29 Nov 2025 16:52:24 -0500 Subject: [PATCH 22/74] Fixed bzip2 (excluding man pages) --- STATUS.md | 2 +- sources/bzip2/bzip2.spec | 39 +++++++++++++++++++++++++++------------ 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/STATUS.md b/STATUS.md index 6fcde36..3debb8c 100644 --- a/STATUS.md +++ b/STATUS.md @@ -11,7 +11,7 @@ Definitions: | `bsdutils` | Yes | No | | `busybox` | No | No | | `byacc` | Yes | Yes | -| `bzip2` | Yes | No | +| `bzip2` | Yes | Yes | | `cmake` | Yes | No | | `editline` | Yes | Yes | | `flex` | Yes | Yes | diff --git a/sources/bzip2/bzip2.spec b/sources/bzip2/bzip2.spec index f7c3ab2..616986d 100644 --- a/sources/bzip2/bzip2.spec +++ b/sources/bzip2/bzip2.spec @@ -2,10 +2,9 @@ SRC_HASH="ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269" SRC_NAME="bzip2" SRC_URL="https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz" -SRC_VERSION="1.0.8" +SRC_VERSION="1.0.8r1" -# TODO: Move bzlib.h to $TT_INCLUDEDIR ~ahill -# TODO: Prevent the static library from being installed ~ahill +# TODO: Install the man pages ~ahill build() { tar xf ../$SRC_FILENAME @@ -15,11 +14,10 @@ build() { # NOTE: -D_FILE_OFFSET_BITS is present because it's present in the Makefile # and we're completely overriding its defaults. I don't actually know # if this will cause any issues if it's missing. ~ahill - make -O -j $TT_PROCS CC=$CC CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64" PREFIX=/ - # NOTE: I'm not sure if it's possible to build bzip2 without building a - # static library, since the executable links with the static library - # and the shared library is isolated in a separate Makefile. ~ahill - make -O -f Makefile-libbz2_so -j $TT_PROCS CC=$CC CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64" PREFIX=/ + make -O -f Makefile-libbz2_so -j $TT_PROCS CC=$CC CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64" + # NOTE: bzip2recover is part of the first Makefile, so we need to invoke + # that to build the command. ~ahill + make -O -j $TT_PROCS bzip2recover CC=$CC CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64" } clean() { @@ -28,8 +26,25 @@ clean() { package() { cd bzip2-*/ - make -O -j $TT_PROCS install PREFIX=$TT_INSTALLDIR - # NOTE: The second Makefile doesn't have an "install" target, so we just - # toss the shared object into /lib and call it a day! ~ahill - cp libbz2.so* $TT_INSTALLDIR/lib/ + # NOTE: The shared Makefile doesn't have an "install" target, so we just + # copy the files over ourselves. ~ahill + mkdir -p $TT_INSTALLDIR$TT_BINDIR + cp bzdiff $TT_INSTALLDIR$TT_BINDIR/ + chmod +x $TT_INSTALLDIR$TT_BINDIR/bzdiff + ln -sf bzdiff $TT_INSTALLDIR$TT_BINDIR/bzcmp + cp bzgrep $TT_INSTALLDIR$TT_BINDIR/ + chmod +x $TT_INSTALLDIR$TT_BINDIR/bzgrep + ln -sf bzgrep $TT_INSTALLDIR$TT_BINDIR/bzegrep + ln -sf bzgrep $TT_INSTALLDIR$TT_BINDIR/bzfgrep + cp bzip2recover $TT_INSTALLDIR$TT_BINDIR/ + cp bzmore $TT_INSTALLDIR$TT_BINDIR/ + chmod +x $TT_INSTALLDIR$TT_BINDIR/bzmore + ln -sf bzmore $TT_INSTALLDIR$TT_BINDIR/bzless + cp bzip2-shared $TT_INSTALLDIR$TT_BINDIR/bzip2 + ln -sf bzip2 $TT_INSTALLDIR$TT_BINDIR/bunzip2 + ln -sf bzip2 $TT_INSTALLDIR$TT_BINDIR/bzcat + mkdir -p $TT_INSTALLDIR$TT_LIBDIR + cp libbz2.so* $TT_INSTALLDIR$TT_LIBDIR/ + mkdir -p $TT_INSTALLDIR$TT_INCLUDEDIR + cp bzlib.h $TT_INSTALLDIR$TT_INCLUDEDIR/ } -- 2.49.1 From a423a22133ba0e3fa5327ce3a7cda0a49ad9073f Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 29 Nov 2025 17:15:35 -0500 Subject: [PATCH 23/74] Fixed ncurses --- STATUS.md | 2 +- sources/ncurses/ncurses.spec | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/STATUS.md b/STATUS.md index 3debb8c..10911b5 100644 --- a/STATUS.md +++ b/STATUS.md @@ -26,7 +26,7 @@ Definitions: | `muon` | Yes | No | | `musl` | Yes | Yes | | `musl-fts` | Yes | Yes | -| `ncurses` | Yes | No | +| `ncurses` | Yes | Yes | | `perl` | Yes | Yes | | `pkgconf` | Yes | Yes | | `xz` | Yes | Yes | diff --git a/sources/ncurses/ncurses.spec b/sources/ncurses/ncurses.spec index 942c894..14165c6 100644 --- a/sources/ncurses/ncurses.spec +++ b/sources/ncurses/ncurses.spec @@ -2,7 +2,7 @@ SRC_HASH="136d91bc269a9a5785e5f9e980bc76ab57428f604ce3e5a5a90cebc767971cc6" SRC_NAME="ncurses" SRC_URL="https://invisible-island.net/archives/ncurses/ncurses-6.5.tar.gz" -SRC_VERSION="6.5" +SRC_VERSION="6.5r1" # TODO: Remove the target triple prefix from all of ncurses' executables ~ahill @@ -10,9 +10,13 @@ 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 -- 2.49.1 From 711917c8724d726881b525d3a185227a341fe0d8 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 29 Nov 2025 20:35:57 -0500 Subject: [PATCH 24/74] Added nano --- STATUS.md | 1 + sources/nano/nano.spec | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 sources/nano/nano.spec diff --git a/STATUS.md b/STATUS.md index 10911b5..be7044e 100644 --- a/STATUS.md +++ b/STATUS.md @@ -26,6 +26,7 @@ Definitions: | `muon` | Yes | No | | `musl` | Yes | Yes | | `musl-fts` | Yes | Yes | +| `nano` | Yes | Yes | | `ncurses` | Yes | Yes | | `perl` | Yes | Yes | | `pkgconf` | Yes | Yes | diff --git a/sources/nano/nano.spec b/sources/nano/nano.spec new file mode 100644 index 0000000..50bbd2e --- /dev/null +++ b/sources/nano/nano.spec @@ -0,0 +1,21 @@ +# Maintainer: Alexander Hill +SRC_HASH="afd287aa672c48b8e1a93fdb6c6588453d527510d966822b687f2835f0d986e9" +SRC_NAME="nano" +SRC_URL="https://nano-editor.org/dist/v8/nano-8.7.tar.xz" +SRC_VERSION="8.7" + +build() { + tar xf ../$SRC_FILENAME + cd nano-*/ + ./configure $TT_AUTOCONF_COMMON --enable-utf8 --enable-year2038 + make -O -j $TT_PROCS +} + +clean() { + rm -rf nano-*/ +} + +package() { + cd nano-*/ + make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} -- 2.49.1 From 093143d33c16df07e8b459f2bfcd3c39c5dc2619 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 29 Nov 2025 21:25:59 -0500 Subject: [PATCH 25/74] Fixed libbz2 --- sources/bzip2/bzip2.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sources/bzip2/bzip2.spec b/sources/bzip2/bzip2.spec index 616986d..956ce0d 100644 --- a/sources/bzip2/bzip2.spec +++ b/sources/bzip2/bzip2.spec @@ -2,7 +2,7 @@ SRC_HASH="ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269" SRC_NAME="bzip2" SRC_URL="https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz" -SRC_VERSION="1.0.8r1" +SRC_VERSION="1.0.8r2" # TODO: Install the man pages ~ahill @@ -44,7 +44,11 @@ package() { ln -sf bzip2 $TT_INSTALLDIR$TT_BINDIR/bunzip2 ln -sf bzip2 $TT_INSTALLDIR$TT_BINDIR/bzcat mkdir -p $TT_INSTALLDIR$TT_LIBDIR - cp libbz2.so* $TT_INSTALLDIR$TT_LIBDIR/ + SO_NAME=libbz2.so.$(echo $SRC_VERSION | cut -d"r" -f1) + cp $SO_NAME $TT_INSTALLDIR$TT_LIBDIR/ + ln -sf $SO_NAME $TT_INSTALLDIR$TT_LIBDIR/libbz2.so.$(echo $SRC_VERSION | cut -d"." -f1,2) + ln -sf $SO_NAME $TT_INSTALLDIR$TT_LIBDIR/libbz2.so.$(echo $SRC_VERSION | cut -d"." -f1) + ln -sf $SO_NAME $TT_INSTALLDIR$TT_LIBDIR/libbz2.so mkdir -p $TT_INSTALLDIR$TT_INCLUDEDIR cp bzlib.h $TT_INSTALLDIR$TT_INCLUDEDIR/ } -- 2.49.1 From d85376908b39ca9fd771c11d1d9f2295506f9bcd Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 29 Nov 2025 22:35:34 -0500 Subject: [PATCH 26/74] Fixed mold and updated treetap --- STATUS.md | 2 +- sources/mold/mold.spec | 10 +++++---- treetap | 46 ++++++++++++++++++++++++++++++++---------- 3 files changed, 42 insertions(+), 16 deletions(-) diff --git a/STATUS.md b/STATUS.md index be7044e..855955a 100644 --- a/STATUS.md +++ b/STATUS.md @@ -22,7 +22,7 @@ Definitions: | `llvm` | No | No | | `m4` | Yes | Yes | | `make` | Yes | Yes | -| `mold` | Yes | No | +| `mold` | Yes | Yes | | `muon` | Yes | No | | `musl` | Yes | Yes | | `musl-fts` | Yes | Yes | diff --git a/sources/mold/mold.spec b/sources/mold/mold.spec index c3f0a78..ea3bd48 100644 --- a/sources/mold/mold.spec +++ b/sources/mold/mold.spec @@ -5,9 +5,6 @@ SRC_NAME="mold" SRC_URL="https://github.com/rui314/mold/archive/refs/tags/v2.40.4.tar.gz" SRC_VERSION="2.40.4" -# TODO: Merge the contents from /lib64 and /libexec into $TT_LIBDIR ~ahill -# TODO: Move /share to $TT_DATADIR ~ahill - build() { tar xf ../$SRC_FILENAME cd mold-*/ @@ -21,6 +18,11 @@ clean() { package() { cd mold-*/ + # NOTE: Setting --prefix here is ineffective because GNUInstallDirs are used + # in install functions despite CMake's documentation warning against + # such a thing for this exact reason. ~ahill + # See also: https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html cmake --install build --parallel $TT_PROCS - ln -sf mold $TT_INSTALLDIR/bin/ld + mkdir -p $TT_INSTALLDIR$TT_BINDIR + ln -sf mold $TT_INSTALLDIR$TT_BINDIR/ld } diff --git a/treetap b/treetap index 9b1902b..7cce3d6 100755 --- a/treetap +++ b/treetap @@ -18,6 +18,11 @@ # Changelog # ############# +# 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 +# unexpectedly [ahill] + # November 24, 2025 (1.3.0) # + Added TT_DATADIR [ahill] # + Added TT_MESON_COMMON for easy Meson integration [ahill] @@ -129,7 +134,7 @@ [ -z "$TT_DIR" ] && TT_DIR="$(pwd)/.treetap" [ -z "$TT_PKGDIR" ] && TT_PKGDIR="$TT_DIR/packages" [ -z "$TT_SYSROOT" ] && TT_SYSROOT=/ -TT_VERSION="1.3.0" +TT_VERSION="1.3.1" ##################### # Utility Functions # @@ -214,7 +219,7 @@ source_spec() { # Last, but certainly not least, let's define where we want the build to # occur and where to put the artifacts. ~ahill - TT_BUILDDIR="$TT_DIR/sources/$SRC_NAME/$SRC_VERSION/$TT_MICROARCH"\ + TT_BUILDDIR="$TT_DIR/sources/$SRC_NAME/$SRC_VERSION/$TT_MICROARCH" TT_INSTALLDIR="$TT_BUILDDIR/install" # Create convenience variables @@ -239,11 +244,25 @@ source_spec() { --target=$TT_TARGET" | xargs) fi + # TODO: What should CMAKE_INSTALL_SHAREDSTATEDIR be? ~ahill + # NOTE: TT_INSTALLDIR is used here because CMake treats / as a special case + # and sets the prefix to /usr anyways, completely defeating the point + # of setting it to / to begin with. ~ahill + # See also: https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html#special-cases TT_CMAKE_COMMON=$(echo "-DCMAKE_ASM_COMPILER_TARGET=$TT_TARGET \ -DCMAKE_C_COMPILER_TARGET=$TT_TARGET \ -DCMAKE_CXX_COMPILER_TARGET=$TT_TARGET \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=$TT_INSTALLDIR" | xargs) + -DCMAKE_INSTALL_BINDIR=$TT_INSTALLDIR$TT_BINDIR \ + -DCMAKE_INSTALL_DATAROOTDIR=$TT_INSTALLDIR$TT_DATADIR \ + -DCMAKE_INSTALL_INCLUDEDIR=$TT_INSTALLDIR$TT_INCLUDEDIR \ + -DCMAKE_INSTALL_LIBDIR=$TT_INSTALLDIR$TT_LIBDIR \ + -DCMAKE_INSTALL_LIBEXECDIR=$TT_INSTALLDIR$TT_LIBDIR \ + -DCMAKE_INSTALL_LOCALSTATEDIR=$TT_INSTALLDIR$TT_STATEDIR \ + -DCMAKE_INSTALL_PREFIX=$TT_INSTALLDIR$TT_PREFIX \ + -DCMAKE_INSTALL_RUNSTATEDIR=$TT_INSTALLDIR$TT_RUNDIR \ + -DCMAKE_INSTALL_SBINDIR=$TT_INSTALLDIR$TT_BINDIR \ + -DCMAKE_INSTALL_SYSCONFDIR=$TT_INSTALLDIR$TT_CONFDIR" | xargs) # NOTE: CMake doesn't like having a space in CC and CXX, so we manually # define a few things if CCACHE is set. ~ahill @@ -279,7 +298,7 @@ source_spec() { package_install() { [ ! -z "$2" ] && TT_SYSROOT=$2 package_check $1 $TT_SYSROOT - echo "Installing $(basename $1)" + echo -n "Installing $(basename $1)... " PUSHD=$(pwd) cd $TT_SYSROOT bsdcpio -iJ < $PKG_FULLPATH @@ -291,7 +310,7 @@ package_install() { package_uninstall() { [ ! -z "$2" ] && TT_SYSROOT=$2 package_check $1 $TT_SYSROOT - echo "Uninstalling $(basename $1)" + echo -n "Uninstalling $(basename $1)... " PUSHD=$(pwd) cd $TT_SYSROOT bsdcpio -iJt < $PKG_FULLPATH | tail -n +2 | sort -r | while read path; do @@ -310,7 +329,7 @@ source_build() { source_spec $1 mkdir -p $TT_BUILDDIR if [ ! -z "$SRC_PATCHES" ]; then - echo "Validating patches for $SRC_NAME $SRC_VERSION" + echo -n "Validating patches for $SRC_NAME $SRC_VERSION... " cd $(dirname $1) echo $SRC_PATCHES | sha256sum -c - > /dev/null # Is this even the right way to check a return value? ~ahill @@ -321,8 +340,9 @@ source_build() { echo $SRC_PATCHES | while read line; do cp $(echo $line | cut -d" " -f2) $TT_BUILDDIR/ done + echo "Done!" fi - echo "Building $SRC_NAME $SRC_VERSION for $TT_MICROARCH" + echo -n "Building $SRC_NAME $SRC_VERSION for $TT_MICROARCH... " PUSHD=$(pwd) cd $TT_BUILDDIR # Please don't use this in your build script. This is meant for @@ -332,6 +352,7 @@ source_build() { build >> $TT_BUILD_LOG 2>&1 echo "Build finished at $(date)" >> $TT_BUILD_LOG cd $PUSHD + echo "Done!" exit 0 } @@ -341,10 +362,11 @@ source_clean() { mkdir -p $TT_BUILDDIR PUSHD=$(pwd) cd $TT_BUILDDIR - echo "Cleaning $SRC_NAME $SRC_VERSION" + echo -n "Cleaning $SRC_NAME $SRC_VERSION for $TT_MICROARCH... " clean rm -rf $TT_INSTALLDIR cd $PUSHD + echo "Done!" exit 0 } @@ -362,11 +384,13 @@ source_fetch() { rm -f $SRC_FILENAME fi fi - echo "Fetching $SRC_FILENAME" + echo -n "Fetching $SRC_FILENAME... " wget -O $SRC_FILENAME $SRC_URL - echo "Verifying $SRC_FILENAME" + echo "Done!" + echo -n "Verifying $SRC_FILENAME... " echo "$SRC_HASH $SRC_FILENAME" | sha256sum -c - > /dev/null cd $PUSHD + echo "Done!" exit 0 } @@ -378,7 +402,7 @@ source_package() { mkdir -p $TT_PKGDIR/$TT_MICROARCH PUSHD=$(pwd) cd $TT_BUILDDIR - echo "Archiving $SRC_NAME $SRC_VERSION for $TT_MICROARCH" + echo -n "Archiving $SRC_NAME $SRC_VERSION 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" -- 2.49.1 From f207c2151b5d3b27cc6839a2602ca09a074118b0 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 29 Nov 2025 22:48:40 -0500 Subject: [PATCH 27/74] Started splitting LLVM into its subprojects --- STATUS.md | 61 +++++++++++++++------------- sources/clang/clang.spec | 5 +++ sources/compiler-rt/compiler-rt.spec | 5 +++ sources/libcxx/libcxx.spec | 5 +++ sources/libcxxabi/libcxxabi.spec | 5 +++ sources/libunwind/libunwind.spec | 5 +++ 6 files changed, 58 insertions(+), 28 deletions(-) create mode 100644 sources/clang/clang.spec create mode 100644 sources/compiler-rt/compiler-rt.spec create mode 100644 sources/libcxx/libcxx.spec create mode 100644 sources/libcxxabi/libcxxabi.spec create mode 100644 sources/libunwind/libunwind.spec diff --git a/STATUS.md b/STATUS.md index 855955a..69be58d 100644 --- a/STATUS.md +++ b/STATUS.md @@ -4,31 +4,36 @@ Definitions: - Can Build - The software can be both compiled via treetap on Maple Linux and run on Maple Linux - Can Package - The software can be packaged by treetap under Maple Linux, while using none of the deprecated paths (/usr/bin, /usr/lib, /usr/libexec, /sbin, etc.) and without conflicting with another package -| Package | Can Build? | Can Package? | -| ------------ | ---------- | ------------ | -| `autoconf` | Yes | Yes | -| `automake` | Yes | Yes | -| `bsdutils` | Yes | No | -| `busybox` | No | No | -| `byacc` | Yes | Yes | -| `bzip2` | Yes | Yes | -| `cmake` | Yes | No | -| `editline` | Yes | Yes | -| `flex` | Yes | Yes | -| `libarchive` | Yes | Yes | -| `libressl` | Yes | Yes | -| `libtool` | Yes | Yes | -| `linux` | No | No | -| `llvm` | No | No | -| `m4` | Yes | Yes | -| `make` | Yes | Yes | -| `mold` | Yes | Yes | -| `muon` | Yes | No | -| `musl` | Yes | Yes | -| `musl-fts` | Yes | Yes | -| `nano` | Yes | Yes | -| `ncurses` | Yes | Yes | -| `perl` | Yes | Yes | -| `pkgconf` | Yes | Yes | -| `xz` | Yes | Yes | -| `zlib` | Yes | Yes | +| Package | Can Build? | Can Package? | +| ------------- | ---------- | ------------ | +| `autoconf` | Yes | Yes | +| `automake` | Yes | Yes | +| `bsdutils` | Yes | No | +| `busybox` | No | No | +| `byacc` | Yes | Yes | +| `bzip2` | Yes | Yes | +| `clang` | No | No | +| `cmake` | Yes | No | +| `compiler-rt` | No | No | +| `editline` | Yes | Yes | +| `flex` | Yes | Yes | +| `libarchive` | Yes | Yes | +| `libcxx` | No | No | +| `libcxxabi` | No | No | +| `libressl` | Yes | Yes | +| `libtool` | Yes | Yes | +| `libunwind` | No | No | +| `linux` | No | No | +| `llvm` | No | No | +| `m4` | Yes | Yes | +| `make` | Yes | Yes | +| `mold` | Yes | Yes | +| `muon` | Yes | No | +| `musl` | Yes | Yes | +| `musl-fts` | Yes | Yes | +| `nano` | Yes | Yes | +| `ncurses` | Yes | Yes | +| `perl` | Yes | Yes | +| `pkgconf` | Yes | Yes | +| `xz` | Yes | Yes | +| `zlib` | Yes | Yes | diff --git a/sources/clang/clang.spec b/sources/clang/clang.spec new file mode 100644 index 0000000..7702590 --- /dev/null +++ b/sources/clang/clang.spec @@ -0,0 +1,5 @@ +# Maintainer: Alexander Hill +SRC_HASH="348ace5d715c4caa6fb89b4c6fe07c21650e10b2fac37d8b0db75c0b11be9011" +SRC_NAME="clang" +SRC_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.6/clang-21.1.6.src.tar.xz" +SRC_VERSION="21.1.6" diff --git a/sources/compiler-rt/compiler-rt.spec b/sources/compiler-rt/compiler-rt.spec new file mode 100644 index 0000000..a4f1100 --- /dev/null +++ b/sources/compiler-rt/compiler-rt.spec @@ -0,0 +1,5 @@ +# Maintainer: Alexander Hill +SRC_HASH="bdd904f3aac9f4c4424f3440aff498cc04d66f243e37156b6d167ffb7b599f89" +SRC_NAME="compiler-rt" +SRC_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.6/compiler-rt-21.1.6.src.tar.xz" +SRC_VERSION="21.1.6" diff --git a/sources/libcxx/libcxx.spec b/sources/libcxx/libcxx.spec new file mode 100644 index 0000000..a45dd31 --- /dev/null +++ b/sources/libcxx/libcxx.spec @@ -0,0 +1,5 @@ +# Maintainer: Alexander Hill +SRC_HASH="500b13d4ddc24733549b55a2584143274c7004966dcd6f5f98e5a22f7bfe9fd5" +SRC_NAME="libcxx" +SRC_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.6/libcxx-21.1.6.src.tar.xz" +SRC_VERSION="21.1.6" diff --git a/sources/libcxxabi/libcxxabi.spec b/sources/libcxxabi/libcxxabi.spec new file mode 100644 index 0000000..d9f648a --- /dev/null +++ b/sources/libcxxabi/libcxxabi.spec @@ -0,0 +1,5 @@ +# Maintainer: Alexander Hill +SRC_HASH="984dfc757fed1e4e9f668240bc0d4a6c60ca9406269d045462c0afe9ce0e85d9" +SRC_NAME="libcxxabi" +SRC_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.6/libcxxabi-21.1.6.src.tar.xz" +SRC_VERSION="21.1.6" diff --git a/sources/libunwind/libunwind.spec b/sources/libunwind/libunwind.spec new file mode 100644 index 0000000..cdcd6f2 --- /dev/null +++ b/sources/libunwind/libunwind.spec @@ -0,0 +1,5 @@ +# Maintainer: Alexander Hill +SRC_HASH="25d8bf5bd0d95641c738ea690b18564f5fc9fb7e7bbab17329b391988e71ae8c" +SRC_NAME="libunwind" +SRC_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.6/libunwind-21.1.6.src.tar.xz" +SRC_VERSION="21.1.6" -- 2.49.1 From e9623a7886c95af66a9999ef695efa5f57722f05 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sun, 30 Nov 2025 15:40:15 -0500 Subject: [PATCH 28/74] Fixed cmake --- STATUS.md | 2 +- sources/cmake/cmake.spec | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/STATUS.md b/STATUS.md index 69be58d..aa280ed 100644 --- a/STATUS.md +++ b/STATUS.md @@ -13,7 +13,7 @@ Definitions: | `byacc` | Yes | Yes | | `bzip2` | Yes | Yes | | `clang` | No | No | -| `cmake` | Yes | No | +| `cmake` | Yes | Yes | | `compiler-rt` | No | No | | `editline` | Yes | Yes | | `flex` | Yes | Yes | diff --git a/sources/cmake/cmake.spec b/sources/cmake/cmake.spec index 106bb91..5687bba 100644 --- a/sources/cmake/cmake.spec +++ b/sources/cmake/cmake.spec @@ -2,24 +2,25 @@ SRC_HASH="4104e94657d247c811cb29985405a360b78130b5d51e7f6daceb2447830bd579" SRC_NAME="cmake" SRC_URL="https://github.com/Kitware/CMake/releases/download/v4.2.0/cmake-4.2.0.tar.gz" -SRC_VERSION="4.2.0" - -# TODO: Move executables from /usr/bin to $TT_BINDIR ~ahill -# TODO: Place all documentation under $TT_DATADIR/doc ~ahill +SRC_VERSION="4.2.0r1" build() { tar xf ../$SRC_FILENAME cd cmake-*/ - # NOTE: CMake's bootstrap script is strange because *everything* is located - # under the prefix, whether you like it or not. We're making use of - # /usr/bin this way, which is something I would like to avoid. ~ahill + # NOTE: CMake's bootstrap script is autoconf-like, but we shouldn't use + # TT_AUTOCONF_COMMON here because it would be incompatible. ~ahill ./bootstrap \ + --bindir=$TT_BINDIR \ + --datadir=$TT_DATADIR/cmake-$(echo $SRC_VERSION | cut -d"." -f1,2) \ + --docdir=$TT_DATADIR/doc/cmake-$(echo $SRC_VERSION | cut -d"." -f1,2) \ + --mandir=$TT_DATADIR/man \ --parallel=$TT_PROCS \ - --prefix=/usr \ + --prefix=$TT_PREFIX \ --system-bzip2 \ --system-libarchive \ --system-liblzma \ - --system-zlib + --system-zlib \ + --xdgdatadir=$TT_DATADIR make -O -j $TT_PROCS } -- 2.49.1 From 07fe604fb4b19b7622b54908d9deebf00dc73846 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sun, 30 Nov 2025 15:53:18 -0500 Subject: [PATCH 29/74] Fixed muon --- STATUS.md | 2 +- sources/muon/muon.spec | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/STATUS.md b/STATUS.md index aa280ed..cd4c211 100644 --- a/STATUS.md +++ b/STATUS.md @@ -28,7 +28,7 @@ Definitions: | `m4` | Yes | Yes | | `make` | Yes | Yes | | `mold` | Yes | Yes | -| `muon` | Yes | No | +| `muon` | Yes | Yes | | `musl` | Yes | Yes | | `musl-fts` | Yes | Yes | | `nano` | Yes | Yes | diff --git a/sources/muon/muon.spec b/sources/muon/muon.spec index 1df7903..0828618 100644 --- a/sources/muon/muon.spec +++ b/sources/muon/muon.spec @@ -3,17 +3,16 @@ SRC_FILENAME="muon-0.5.0.tar.gz" SRC_HASH="565c1b6e1e58f7e90d8813fda0e2102df69fb493ddab4cf6a84ce3647466bee5" SRC_NAME="muon" SRC_URL="https://git.sr.ht/~lattis/muon/archive/0.5.0.tar.gz" -SRC_VERSION="0.5.0" - -# TODO: Make sure the muon command is installed to $TT_BINDIR ~ahill +SRC_VERSION="0.5.0r1" build() { tar xf ../$SRC_FILENAME cd muon-*/ - ./bootstrap.sh build - ./build/muon-bootstrap setup build + # NOTE: bootstrap.sh attempts to call "c99", which isn't a command. We'll + # use CC here to define a suitable replacement. ~ahill + CC="clang -std=c99" ./bootstrap.sh build + ./build/muon-bootstrap setup $TT_MESON_COMMON build ./build/muon-bootstrap -C build samu - ./build/muon -C build test -R } clean() { -- 2.49.1 From e2c0b29e13e20c30c863da4f2c1d39eabec6c683 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sun, 30 Nov 2025 16:03:15 -0500 Subject: [PATCH 30/74] Removed individual LLVM components due to a lack of modularity --- STATUS.md | 5 ----- sources/clang/clang.spec | 5 ----- sources/compiler-rt/compiler-rt.spec | 5 ----- sources/libcxx/libcxx.spec | 5 ----- sources/libcxxabi/libcxxabi.spec | 5 ----- sources/libunwind/libunwind.spec | 5 ----- 6 files changed, 30 deletions(-) delete mode 100644 sources/clang/clang.spec delete mode 100644 sources/compiler-rt/compiler-rt.spec delete mode 100644 sources/libcxx/libcxx.spec delete mode 100644 sources/libcxxabi/libcxxabi.spec delete mode 100644 sources/libunwind/libunwind.spec diff --git a/STATUS.md b/STATUS.md index cd4c211..2384f68 100644 --- a/STATUS.md +++ b/STATUS.md @@ -12,17 +12,12 @@ Definitions: | `busybox` | No | No | | `byacc` | Yes | Yes | | `bzip2` | Yes | Yes | -| `clang` | No | No | | `cmake` | Yes | Yes | -| `compiler-rt` | No | No | | `editline` | Yes | Yes | | `flex` | Yes | Yes | | `libarchive` | Yes | Yes | -| `libcxx` | No | No | -| `libcxxabi` | No | No | | `libressl` | Yes | Yes | | `libtool` | Yes | Yes | -| `libunwind` | No | No | | `linux` | No | No | | `llvm` | No | No | | `m4` | Yes | Yes | diff --git a/sources/clang/clang.spec b/sources/clang/clang.spec deleted file mode 100644 index 7702590..0000000 --- a/sources/clang/clang.spec +++ /dev/null @@ -1,5 +0,0 @@ -# Maintainer: Alexander Hill -SRC_HASH="348ace5d715c4caa6fb89b4c6fe07c21650e10b2fac37d8b0db75c0b11be9011" -SRC_NAME="clang" -SRC_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.6/clang-21.1.6.src.tar.xz" -SRC_VERSION="21.1.6" diff --git a/sources/compiler-rt/compiler-rt.spec b/sources/compiler-rt/compiler-rt.spec deleted file mode 100644 index a4f1100..0000000 --- a/sources/compiler-rt/compiler-rt.spec +++ /dev/null @@ -1,5 +0,0 @@ -# Maintainer: Alexander Hill -SRC_HASH="bdd904f3aac9f4c4424f3440aff498cc04d66f243e37156b6d167ffb7b599f89" -SRC_NAME="compiler-rt" -SRC_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.6/compiler-rt-21.1.6.src.tar.xz" -SRC_VERSION="21.1.6" diff --git a/sources/libcxx/libcxx.spec b/sources/libcxx/libcxx.spec deleted file mode 100644 index a45dd31..0000000 --- a/sources/libcxx/libcxx.spec +++ /dev/null @@ -1,5 +0,0 @@ -# Maintainer: Alexander Hill -SRC_HASH="500b13d4ddc24733549b55a2584143274c7004966dcd6f5f98e5a22f7bfe9fd5" -SRC_NAME="libcxx" -SRC_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.6/libcxx-21.1.6.src.tar.xz" -SRC_VERSION="21.1.6" diff --git a/sources/libcxxabi/libcxxabi.spec b/sources/libcxxabi/libcxxabi.spec deleted file mode 100644 index d9f648a..0000000 --- a/sources/libcxxabi/libcxxabi.spec +++ /dev/null @@ -1,5 +0,0 @@ -# Maintainer: Alexander Hill -SRC_HASH="984dfc757fed1e4e9f668240bc0d4a6c60ca9406269d045462c0afe9ce0e85d9" -SRC_NAME="libcxxabi" -SRC_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.6/libcxxabi-21.1.6.src.tar.xz" -SRC_VERSION="21.1.6" diff --git a/sources/libunwind/libunwind.spec b/sources/libunwind/libunwind.spec deleted file mode 100644 index cdcd6f2..0000000 --- a/sources/libunwind/libunwind.spec +++ /dev/null @@ -1,5 +0,0 @@ -# Maintainer: Alexander Hill -SRC_HASH="25d8bf5bd0d95641c738ea690b18564f5fc9fb7e7bbab17329b391988e71ae8c" -SRC_NAME="libunwind" -SRC_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.6/libunwind-21.1.6.src.tar.xz" -SRC_VERSION="21.1.6" -- 2.49.1 From fbd7d68db484292c3cf386967103101c83276057 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sun, 30 Nov 2025 17:12:51 -0500 Subject: [PATCH 31/74] Added libyaml and ruby --- STATUS.md | 2 ++ sources/libyaml/libyaml.spec | 21 +++++++++++++++++++++ sources/ruby/ruby.spec | 27 +++++++++++++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 sources/libyaml/libyaml.spec create mode 100644 sources/ruby/ruby.spec diff --git a/STATUS.md b/STATUS.md index 2384f68..c7453c1 100644 --- a/STATUS.md +++ b/STATUS.md @@ -18,6 +18,7 @@ Definitions: | `libarchive` | Yes | Yes | | `libressl` | Yes | Yes | | `libtool` | Yes | Yes | +| `libyaml` | Yes | Yes | | `linux` | No | No | | `llvm` | No | No | | `m4` | Yes | Yes | @@ -30,5 +31,6 @@ Definitions: | `ncurses` | Yes | Yes | | `perl` | Yes | Yes | | `pkgconf` | Yes | Yes | +| `ruby` | Yes | Yes | | `xz` | Yes | Yes | | `zlib` | Yes | Yes | diff --git a/sources/libyaml/libyaml.spec b/sources/libyaml/libyaml.spec new file mode 100644 index 0000000..204685c --- /dev/null +++ b/sources/libyaml/libyaml.spec @@ -0,0 +1,21 @@ +# Maintainer: Alexander Hill +SRC_HASH="c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4" +SRC_NAME="libyaml" +SRC_URL="http://pyyaml.org/download/libyaml/yaml-0.2.5.tar.gz" +SRC_VERSION="0.2.5" + +build() { + tar xf ../$SRC_FILENAME + cd yaml-*/ + ./configure $TT_AUTOCONF_COMMON --disable-static + make -O -j $TT_PROCS +} + +clean() { + rm -rf yaml-*/ +} + +package() { + cd yaml-*/ + make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} diff --git a/sources/ruby/ruby.spec b/sources/ruby/ruby.spec new file mode 100644 index 0000000..7866fe5 --- /dev/null +++ b/sources/ruby/ruby.spec @@ -0,0 +1,27 @@ +# Maintainer: Alexander Hill +SRC_HASH="23815a6d095696f7919090fdc3e2f9459b2c83d57224b2e446ce1f5f7333ef36" +SRC_NAME="ruby" +SRC_URL="https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.7.tar.gz" +SRC_VERSION="3.4.7" + +build() { + tar xf ../$SRC_FILENAME + cd ruby-*/ + ./autogen.sh + ./configure $TT_AUTOCONF_COMMON \ + --disable-install-static-library \ + --enable-shared \ + --enable-year2038 \ + --with-destdir=$TT_INSTALLDIR \ + --without-gcc + make -O -j $TT_PROCS +} + +clean() { + rm -rf ruby-*/ +} + +package() { + cd ruby-*/ + make -O -j $TT_PROCS install +} -- 2.49.1 From 7bf842eaea93e381735d58165b5e380e7b88edac Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 6 Dec 2025 13:11:31 -0500 Subject: [PATCH 32/74] Added groff --- sources/groff/groff.spec | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 sources/groff/groff.spec diff --git a/sources/groff/groff.spec b/sources/groff/groff.spec new file mode 100644 index 0000000..22cc353 --- /dev/null +++ b/sources/groff/groff.spec @@ -0,0 +1,21 @@ +# Maintainer: Alexander Hill +SRC_HASH="6b9757f592b7518b4902eb6af7e54570bdccba37a871fddb2d30ae3863511c13" +SRC_NAME="groff" +SRC_URL="https://ftp.gnu.org/gnu/groff/groff-1.23.0.tar.gz" +SRC_VERSION="1.23.0" + +build() { + tar xf ../$SRC_FILENAME + cd groff-*/ + ./configure $TT_AUTOCONF_COMMON + make -j $TT_PROCS +} + +clean() { + rm -rf groff-*/ +} + +package() { + cd groff-*/ + make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} -- 2.49.1 From cdbbc7ce28104d17a80851b64c16849b70e0322b Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 6 Dec 2025 21:30:08 -0500 Subject: [PATCH 33/74] Added nasm --- STATUS.md | 4 +++- sources/nasm/nasm.spec | 26 ++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 sources/nasm/nasm.spec diff --git a/STATUS.md b/STATUS.md index c7453c1..8f703bc 100644 --- a/STATUS.md +++ b/STATUS.md @@ -8,13 +8,14 @@ Definitions: | ------------- | ---------- | ------------ | | `autoconf` | Yes | Yes | | `automake` | Yes | Yes | -| `bsdutils` | Yes | No | +| `bsdutils` | Yes | Yes | | `busybox` | No | No | | `byacc` | Yes | Yes | | `bzip2` | Yes | Yes | | `cmake` | Yes | Yes | | `editline` | Yes | Yes | | `flex` | Yes | Yes | +| `groff` | Yes | Yes | | `libarchive` | Yes | Yes | | `libressl` | Yes | Yes | | `libtool` | Yes | Yes | @@ -28,6 +29,7 @@ Definitions: | `musl` | Yes | Yes | | `musl-fts` | Yes | Yes | | `nano` | Yes | Yes | +| `nasm` | Yes | Yes | | `ncurses` | Yes | Yes | | `perl` | Yes | Yes | | `pkgconf` | Yes | Yes | diff --git a/sources/nasm/nasm.spec b/sources/nasm/nasm.spec new file mode 100644 index 0000000..b5be466 --- /dev/null +++ b/sources/nasm/nasm.spec @@ -0,0 +1,26 @@ +# Maintainer: Alexander Hill +SRC_HASH="b7324cbe86e767b65f26f467ed8b12ad80e124e3ccb89076855c98e43a9eddd4" +SRC_NAME="nasm" +SRC_URL="https://www.nasm.us/pub/nasm/releasebuilds/3.01/nasm-3.01.tar.xz" +SRC_VERSION="3.01" + +build() { + tar xf ../$SRC_FILENAME + cd nasm-$SRC_VERSION/ + ./autogen.sh + ./configure $TT_AUTOCONF_COMMON --enable-suggestions --enable-year2038 + # NOTE: nasm redefines bool since they want it to be a typedef instead of a + # macro. Unfortunately, this seems to break clang because it is + # attempting to redefine a C++ keyword in include/compiler.h. + sed -i "/# ifdef bool/,/# endif/d" include/compiler.h + make -O -j $TT_PROCS +} + +clean() { + rm -rf nasm-$SRC_VERSION/ +} + +package() { + cd nasm-$SRC_VERSION/ + make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} -- 2.49.1 From 70055d5bc825b3020ce7d86bf1380048561e23b9 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 6 Dec 2025 21:48:33 -0500 Subject: [PATCH 34/74] Merged bsdutils/Busybox and updated treetap --- STATUS.md | 2 +- bootstrap.sh | 2 +- rootbuild.sh | 3 +- sources/bsdutils/bsdutils.spec | 137 ++++++++++++--------------------- sources/busybox/.config | 126 +++++++++++++++--------------- sources/busybox/busybox.spec | 20 +++-- sources/bzip2/bzip2.spec | 3 +- sources/cmake/cmake.spec | 3 +- sources/muon/muon.spec | 3 +- sources/musl/musl.spec | 3 +- sources/ncurses/ncurses.spec | 3 +- sources/perl/perl.spec | 3 +- treetap | 64 +++++++++++---- 13 files changed, 188 insertions(+), 184 deletions(-) diff --git a/STATUS.md b/STATUS.md index 8f703bc..0cca612 100644 --- a/STATUS.md +++ b/STATUS.md @@ -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 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 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 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 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 diff --git a/treetap b/treetap index 7cce3d6..4fc2657 100755 --- a/treetap +++ b/treetap @@ -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 -- 2.49.1 From 83f0d023427ae138da7ef1e518782b32bf5a57cd Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 13 Dec 2025 18:16:59 -0500 Subject: [PATCH 35/74] Updated CMake, libarchive, Linux, and LLVM --- sources/cmake/cmake.spec | 7 +++---- sources/libarchive/libarchive.spec | 13 +++++-------- sources/linux/linux.spec | 6 +++--- sources/llvm/llvm.spec | 6 +++--- 4 files changed, 14 insertions(+), 18 deletions(-) diff --git a/sources/cmake/cmake.spec b/sources/cmake/cmake.spec index b82a8d1..f2d87c1 100644 --- a/sources/cmake/cmake.spec +++ b/sources/cmake/cmake.spec @@ -1,9 +1,8 @@ # Maintainer: Alexander Hill -SRC_HASH="4104e94657d247c811cb29985405a360b78130b5d51e7f6daceb2447830bd579" +SRC_HASH="414aacfac54ba0e78e64a018720b64ed6bfca14b587047b8b3489f407a14a070" 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.0" +SRC_URL="https://github.com/Kitware/CMake/releases/download/v4.2.1/cmake-4.2.1.tar.gz" +SRC_VERSION="4.2.1" build() { tar xf ../$SRC_FILENAME diff --git a/sources/libarchive/libarchive.spec b/sources/libarchive/libarchive.spec index edcd0b5..05db5f0 100644 --- a/sources/libarchive/libarchive.spec +++ b/sources/libarchive/libarchive.spec @@ -1,18 +1,15 @@ # Maintainer: Alexander Hill -SRC_HASH="90e21f2b89f19391ce7b90f6e48ed9fde5394d23ad30ae256fb8236b38b99788" +SRC_HASH="c7b847b57feacf5e182f4d14dd6cae545ac6843d55cb725f58e107cdf1c9ad73" SRC_NAME="libarchive" -SRC_URL="https://www.libarchive.org/downloads/libarchive-3.8.3.tar.xz" -SRC_VERSION="3.8.3" +SRC_URL="https://libarchive.org/downloads/libarchive-3.8.4.tar.xz" +SRC_VERSION="3.8.4" build() { tar xf ../$SRC_FILENAME cd libarchive-*/ # NOTE: bsdtar is disabled here because Busybox's implementation is complete # enough to be useful and bootstrapping libarchive is a pain. ~ahill - ./configure $TT_AUTOCONF_COMMON \ - --disable-bsdtar \ - --disable-static \ - --enable-year2038 + ./configure $TT_AUTOCONF_COMMON --disable-static --enable-year2038 make -j $TT_PROCS } @@ -23,4 +20,4 @@ clean() { package() { cd libarchive-*/ make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR -} \ No newline at end of file +} diff --git a/sources/linux/linux.spec b/sources/linux/linux.spec index 09c61dc..dd0b5a3 100755 --- a/sources/linux/linux.spec +++ b/sources/linux/linux.spec @@ -1,5 +1,5 @@ # Maintainer: Alexander Hill -SRC_HASH="5a8de64a75fca706c01c6c0a77cf75a74618439db195e25f1f0268af6b2fb1da" +SRC_HASH="d0a78bf3f0d12aaa10af3b5adcaed5bc767b5b78705e5ef885d5e930b72e25d5" SRC_NAME="linux" -SRC_URL="https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.17.8.tar.xz" -SRC_VERSION="6.17.8" +SRC_URL="https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.18.1.tar.xz" +SRC_VERSION="6.18.1" diff --git a/sources/llvm/llvm.spec b/sources/llvm/llvm.spec index a2ca350..7d22da3 100755 --- a/sources/llvm/llvm.spec +++ b/sources/llvm/llvm.spec @@ -1,5 +1,5 @@ # Maintainer: Alexander Hill -SRC_HASH="ae67086eb04bed7ca11ab880349b5f1ab6f50e1b88cda376eaf8a845b935762b" +SRC_HASH="e5b65fd79c95c343bb584127114cb2d252306c1ada1e057899b6aacdd445899e" SRC_NAME="llvm" -SRC_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.6/llvm-project-21.1.6.src.tar.xz" -SRC_VERSION="21.1.6" \ No newline at end of file +SRC_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.7/llvm-project-21.1.7.src.tar.xz" +SRC_VERSION="21.1.7" -- 2.49.1 From 7c52f81b903d61ba8749a679525e9d4be8884d81 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 20 Dec 2025 21:41:41 -0500 Subject: [PATCH 36/74] Removed bsdutils and its dependencies to fix rootbuild --- STATUS.md | 4 -- bootstrap.sh | 6 +- rootbuild.sh | 14 +++-- sources/bsdutils/bsdutils.spec | 82 ------------------------ sources/busybox/.config | 112 ++++++++++++++++----------------- sources/busybox/busybox.spec | 4 +- sources/editline/editline.spec | 24 ------- sources/musl-fts/musl-fts.spec | 24 ------- sources/ncurses/ncurses.spec | 37 ----------- 9 files changed, 67 insertions(+), 240 deletions(-) delete mode 100644 sources/bsdutils/bsdutils.spec delete mode 100644 sources/editline/editline.spec delete mode 100644 sources/musl-fts/musl-fts.spec delete mode 100644 sources/ncurses/ncurses.spec 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 -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 -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 -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 -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 -} -- 2.49.1 From d640c01cb14377d8a95dec1a1c5c53d83f46c334 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 20 Dec 2025 23:17:09 -0500 Subject: [PATCH 37/74] Added libelf --- STATUS.md | 1 + rootbuild.sh | 2 +- sources/libelf/libelf.spec | 31 +++++++++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 sources/libelf/libelf.spec diff --git a/STATUS.md b/STATUS.md index e43b6e2..6b23ede 100644 --- a/STATUS.md +++ b/STATUS.md @@ -15,6 +15,7 @@ Definitions: | `flex` | Yes | Yes | | `groff` | Yes | Yes | | `libarchive` | Yes | Yes | +| `libelf` | Yes | Yes | | `libressl` | Yes | Yes | | `libtool` | Yes | Yes | | `libyaml` | Yes | Yes | diff --git a/rootbuild.sh b/rootbuild.sh index 1fbc33b..ee8aa1c 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -36,7 +36,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 libressl m4 make muon musl perl pkgconf xz zlib autoconf automake flex groff libarchive libtool nasm cmake mold" +PACKAGES="bzip2 busybox byacc libelf 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/libelf/libelf.spec b/sources/libelf/libelf.spec new file mode 100644 index 0000000..876cc90 --- /dev/null +++ b/sources/libelf/libelf.spec @@ -0,0 +1,31 @@ +# Maintainer: Alexander Hill +SRC_FILENAME="libelf-0.193.tar.gz" +SRC_HASH="6253395679c2bb2156d926b3d8b7e3b2bbeb40a56d2bea29e1c73e40ed9de4ba" +SRC_NAME="libelf" +SRC_URL="https://github.com/arachsys/libelf/archive/refs/tags/v0.193.tar.gz" +SRC_VERSION="0.193" + +build() { + tar xf ../$SRC_FILENAME + cd libelf-$SRC_VERSION/ + # NOTE: This version of libelf was extracted from elfutils, which means a + # good chunk of the project is missing. We use this version instead of + # elfutils since the original relies on libargp. Since Maple Linux is + # a musl-based system and it lacks an implementation of libargp, I + # chose this version. As a result, the source we are compiling is + # pre-configured and lacks a proper configuration script. Since our + # current configuration relies on libzstd, we need to manually modify + # the configuration to remove it as a dependency. ~ahill + sed -i "s/-lzstd//" Makefile + sed -i "/#define USE_ZSTD/d" src/config.h + make -O -j $TT_PROCS +} + +clean() { + rm -rf libelf-$SRC_VERSION/ +} + +package() { + cd libelf-$SRC_VERSION/ + make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR INCDIR=/usr/include +} -- 2.49.1 From e93c2168f531e65352352afe9ba590339014f5f6 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 20 Dec 2025 23:58:05 -0500 Subject: [PATCH 38/74] Made progress on building the kernel --- sources/linux/linux-mold.patch | 28 ++++++++++++++++++++++++++++ sources/linux/linux.spec | 26 ++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 sources/linux/linux-mold.patch diff --git a/sources/linux/linux-mold.patch b/sources/linux/linux-mold.patch new file mode 100644 index 0000000..84b5de9 --- /dev/null +++ b/sources/linux/linux-mold.patch @@ -0,0 +1,28 @@ +diff -ruN vanilla/ld-version.sh maple/ld-version.sh +--- vanilla/scripts/ld-version.sh 2025-12-20 22:21:33.612821362 -0500 ++++ maple/scripts/ld-version.sh 2025-12-20 22:26:22.501951110 -0500 +@@ -41,6 +41,11 @@ + elif [ "$1" = GNU -a "$2" = gold ]; then + echo "gold linker is not supported as it is not capable of linking the kernel proper." >&2 + exit 1 ++elif [ "$1" = mold ]; then ++ version=$2 ++ min_version=$($min_tool_version mold) ++ name=mold ++ disp_name=mold + else + while [ $# -gt 1 -a "$1" != "LLD" ]; do + shift +diff -ruN vanilla/min-tool-version.sh maple/min-tool-version.sh +--- vanilla/scripts/min-tool-version.sh 2025-12-20 22:21:43.939683406 -0500 ++++ maple/scripts/min-tool-version.sh 2025-12-20 22:22:08.348357201 -0500 +@@ -36,6 +36,9 @@ + bindgen) + echo 0.65.1 + ;; ++mold) ++ echo 2.40.4 ++ ;; + *) + echo "$1: unknown tool" >&2 + exit 1 diff --git a/sources/linux/linux.spec b/sources/linux/linux.spec index dd0b5a3..2032537 100755 --- a/sources/linux/linux.spec +++ b/sources/linux/linux.spec @@ -1,5 +1,31 @@ # Maintainer: Alexander Hill SRC_HASH="d0a78bf3f0d12aaa10af3b5adcaed5bc767b5b78705e5ef885d5e930b72e25d5" SRC_NAME="linux" +SRC_PATCHES=" +5a0616535b4c04d99a3db3e8ea528e6e658fd12b11161f9dcf56f5c21a3b0e62 linux-mold.patch +" +SRC_REVISION=1 SRC_URL="https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.18.1.tar.xz" SRC_VERSION="6.18.1" + +build() { + tar xf ../$SRC_FILENAME + cd linux-$SRC_VERSION/ + # NOTE: Linux doesn't officially support mold, so we have to patch a couple + # of scripts to allow the kernel to build. ~ahill + patch -p1 < ../linux-mold.patch + # NOTE: LLVM=1 is required for ALL invocations of the kernel's Makefile. GNU + # tools are still used by default in a lot of places and this will + # override them with LLVM tools wherever possible. ~ahill + LLVM=1 make mrproper + # NOTE: YACC defaults to bison, which doesn't exist here, so we tell it + # where to find the parser generator manually. ~ahill + # NOTE: Similarly, since we aren't using LLVM's linker, we tell it to use + # mold manually. ~ahill + LLVM=1 make -j $TT_PROCS defconfig LD=mold YACC=byacc + LLVM=1 make -j $TT_PROCS HOSTLD=mold LD=mold YACC=byacc +} + +clean() { + rm -rf libelf-$SRC_VERSION/ +} -- 2.49.1 From a6920abf746e05b66bc66ca74d47e19e9a0bc62c Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sun, 21 Dec 2025 19:50:14 -0500 Subject: [PATCH 39/74] Replaced busybox with toybox --- bootstrap.sh | 6 +- rootbuild.sh | 3 +- sources/toybox/.config | 392 +++++++++++++++++++++++++++++++++++++ sources/toybox/toybox.spec | 28 +++ 4 files changed, 424 insertions(+), 5 deletions(-) create mode 100644 sources/toybox/.config create mode 100644 sources/toybox/toybox.spec 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 +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 -- 2.49.1 From cb149dd14ed7c2df2d8ac671adbb5772520f18f3 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Wed, 31 Dec 2025 21:28:54 -0500 Subject: [PATCH 40/74] Removed unused sources and updated Linux, LLVM, and XZ --- sources/libyaml/libyaml.spec | 21 --------------------- sources/linux/linux-mold.patch | 28 ---------------------------- sources/linux/linux.spec | 19 +++++-------------- sources/llvm/llvm.spec | 6 +++--- sources/nano/nano.spec | 21 --------------------- sources/ruby/ruby.spec | 27 --------------------------- sources/xz/xz.spec | 6 +++--- 7 files changed, 11 insertions(+), 117 deletions(-) delete mode 100644 sources/libyaml/libyaml.spec delete mode 100644 sources/linux/linux-mold.patch delete mode 100644 sources/nano/nano.spec delete mode 100644 sources/ruby/ruby.spec diff --git a/sources/libyaml/libyaml.spec b/sources/libyaml/libyaml.spec deleted file mode 100644 index 204685c..0000000 --- a/sources/libyaml/libyaml.spec +++ /dev/null @@ -1,21 +0,0 @@ -# Maintainer: Alexander Hill -SRC_HASH="c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4" -SRC_NAME="libyaml" -SRC_URL="http://pyyaml.org/download/libyaml/yaml-0.2.5.tar.gz" -SRC_VERSION="0.2.5" - -build() { - tar xf ../$SRC_FILENAME - cd yaml-*/ - ./configure $TT_AUTOCONF_COMMON --disable-static - make -O -j $TT_PROCS -} - -clean() { - rm -rf yaml-*/ -} - -package() { - cd yaml-*/ - make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR -} diff --git a/sources/linux/linux-mold.patch b/sources/linux/linux-mold.patch deleted file mode 100644 index 84b5de9..0000000 --- a/sources/linux/linux-mold.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff -ruN vanilla/ld-version.sh maple/ld-version.sh ---- vanilla/scripts/ld-version.sh 2025-12-20 22:21:33.612821362 -0500 -+++ maple/scripts/ld-version.sh 2025-12-20 22:26:22.501951110 -0500 -@@ -41,6 +41,11 @@ - elif [ "$1" = GNU -a "$2" = gold ]; then - echo "gold linker is not supported as it is not capable of linking the kernel proper." >&2 - exit 1 -+elif [ "$1" = mold ]; then -+ version=$2 -+ min_version=$($min_tool_version mold) -+ name=mold -+ disp_name=mold - else - while [ $# -gt 1 -a "$1" != "LLD" ]; do - shift -diff -ruN vanilla/min-tool-version.sh maple/min-tool-version.sh ---- vanilla/scripts/min-tool-version.sh 2025-12-20 22:21:43.939683406 -0500 -+++ maple/scripts/min-tool-version.sh 2025-12-20 22:22:08.348357201 -0500 -@@ -36,6 +36,9 @@ - bindgen) - echo 0.65.1 - ;; -+mold) -+ echo 2.40.4 -+ ;; - *) - echo "$1: unknown tool" >&2 - exit 1 diff --git a/sources/linux/linux.spec b/sources/linux/linux.spec index 2032537..e4276b4 100755 --- a/sources/linux/linux.spec +++ b/sources/linux/linux.spec @@ -1,29 +1,20 @@ # Maintainer: Alexander Hill -SRC_HASH="d0a78bf3f0d12aaa10af3b5adcaed5bc767b5b78705e5ef885d5e930b72e25d5" +SRC_HASH="558c6bbab749492b34f99827fe807b0039a744693c21d3a7e03b3a48edaab96a" SRC_NAME="linux" -SRC_PATCHES=" -5a0616535b4c04d99a3db3e8ea528e6e658fd12b11161f9dcf56f5c21a3b0e62 linux-mold.patch -" -SRC_REVISION=1 -SRC_URL="https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.18.1.tar.xz" -SRC_VERSION="6.18.1" +SRC_URL="https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.18.2.tar.xz" +SRC_VERSION="6.18.2" build() { tar xf ../$SRC_FILENAME cd linux-$SRC_VERSION/ - # NOTE: Linux doesn't officially support mold, so we have to patch a couple - # of scripts to allow the kernel to build. ~ahill - patch -p1 < ../linux-mold.patch # NOTE: LLVM=1 is required for ALL invocations of the kernel's Makefile. GNU # tools are still used by default in a lot of places and this will # override them with LLVM tools wherever possible. ~ahill LLVM=1 make mrproper # NOTE: YACC defaults to bison, which doesn't exist here, so we tell it # where to find the parser generator manually. ~ahill - # NOTE: Similarly, since we aren't using LLVM's linker, we tell it to use - # mold manually. ~ahill - LLVM=1 make -j $TT_PROCS defconfig LD=mold YACC=byacc - LLVM=1 make -j $TT_PROCS HOSTLD=mold LD=mold YACC=byacc + LLVM=1 make -j $TT_PROCS defconfig YACC=byacc + LLVM=1 make -j $TT_PROCS YACC=byacc } clean() { diff --git a/sources/llvm/llvm.spec b/sources/llvm/llvm.spec index 7d22da3..f8f7c11 100755 --- a/sources/llvm/llvm.spec +++ b/sources/llvm/llvm.spec @@ -1,5 +1,5 @@ # Maintainer: Alexander Hill -SRC_HASH="e5b65fd79c95c343bb584127114cb2d252306c1ada1e057899b6aacdd445899e" +SRC_HASH="4633a23617fa31a3ea51242586ea7fb1da7140e426bd62fc164261fe036aa142" SRC_NAME="llvm" -SRC_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.7/llvm-project-21.1.7.src.tar.xz" -SRC_VERSION="21.1.7" +SRC_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.8/llvm-project-21.1.8.src.tar.xz" +SRC_VERSION="21.1.8" diff --git a/sources/nano/nano.spec b/sources/nano/nano.spec deleted file mode 100644 index 50bbd2e..0000000 --- a/sources/nano/nano.spec +++ /dev/null @@ -1,21 +0,0 @@ -# Maintainer: Alexander Hill -SRC_HASH="afd287aa672c48b8e1a93fdb6c6588453d527510d966822b687f2835f0d986e9" -SRC_NAME="nano" -SRC_URL="https://nano-editor.org/dist/v8/nano-8.7.tar.xz" -SRC_VERSION="8.7" - -build() { - tar xf ../$SRC_FILENAME - cd nano-*/ - ./configure $TT_AUTOCONF_COMMON --enable-utf8 --enable-year2038 - make -O -j $TT_PROCS -} - -clean() { - rm -rf nano-*/ -} - -package() { - cd nano-*/ - make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR -} diff --git a/sources/ruby/ruby.spec b/sources/ruby/ruby.spec deleted file mode 100644 index 7866fe5..0000000 --- a/sources/ruby/ruby.spec +++ /dev/null @@ -1,27 +0,0 @@ -# Maintainer: Alexander Hill -SRC_HASH="23815a6d095696f7919090fdc3e2f9459b2c83d57224b2e446ce1f5f7333ef36" -SRC_NAME="ruby" -SRC_URL="https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.7.tar.gz" -SRC_VERSION="3.4.7" - -build() { - tar xf ../$SRC_FILENAME - cd ruby-*/ - ./autogen.sh - ./configure $TT_AUTOCONF_COMMON \ - --disable-install-static-library \ - --enable-shared \ - --enable-year2038 \ - --with-destdir=$TT_INSTALLDIR \ - --without-gcc - make -O -j $TT_PROCS -} - -clean() { - rm -rf ruby-*/ -} - -package() { - cd ruby-*/ - make -O -j $TT_PROCS install -} diff --git a/sources/xz/xz.spec b/sources/xz/xz.spec index 804cb41..268449a 100644 --- a/sources/xz/xz.spec +++ b/sources/xz/xz.spec @@ -1,8 +1,8 @@ # Maintainer: Alexander Hill SRC_HASH="0b54f79df85912504de0b14aec7971e3f964491af1812d83447005807513cd9e" SRC_NAME="xz" -SRC_URL="https://github.com/tukaani-project/xz/releases/download/v5.8.1/xz-5.8.1.tar.xz" -SRC_VERSION="5.8.1" +SRC_URL="https://github.com/tukaani-project/xz/releases/download/v5.8.2/xz-5.8.2.tar.xz" +SRC_VERSION="5.8.2" build() { tar xf ../$SRC_FILENAME @@ -18,4 +18,4 @@ clean() { package() { cd xz-*/ make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR -} \ No newline at end of file +} -- 2.49.1 From 843336d44f70222d9d22cb9fc6c3ddfce7287d6a Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 3 Jan 2026 14:58:30 -0500 Subject: [PATCH 41/74] Removed busybox, mold, and toybox. Starting to refactor the system for 2026. The direction previous development was heading did not make sense short term. Let's focus on making a functional system over making optimized choices. --- STATUS.md | 32 +- bootstrap.sh | 12 +- rootbuild.sh | 3 +- sources/busybox/.config | 1231 ---------------------------------- sources/busybox/busybox.spec | 43 -- sources/mold/mold.spec | 28 - sources/toybox/.config | 392 ----------- sources/toybox/toybox.spec | 28 - 8 files changed, 33 insertions(+), 1736 deletions(-) delete mode 100644 sources/busybox/.config delete mode 100755 sources/busybox/busybox.spec delete mode 100644 sources/mold/mold.spec delete mode 100644 sources/toybox/.config delete mode 100644 sources/toybox/toybox.spec diff --git a/STATUS.md b/STATUS.md index 6b23ede..3bfaee9 100644 --- a/STATUS.md +++ b/STATUS.md @@ -8,28 +8,50 @@ Definitions: | ------------- | ---------- | ------------ | | `autoconf` | Yes | Yes | | `automake` | Yes | Yes | -| `busybox` | Yes | Yes | +| `bc` | | `byacc` | Yes | Yes | | `bzip2` | Yes | Yes | +| `chrony` | | `cmake` | Yes | Yes | +| `coreutils` | +| `dhcpcd` | +| `diffutils` | +| `findutils` | | `flex` | Yes | Yes | +| `gettext` | +| `grep` | | `groff` | Yes | Yes | +| `gzip` | +| `iproute2` | +| `kbd` | +| `kmod` | +| `less` | | `libarchive` | Yes | Yes | +| `libcap2` | | `libelf` | Yes | Yes | +| `libmnl` | +| `libnftnl` | | `libressl` | Yes | Yes | | `libtool` | Yes | Yes | -| `libyaml` | Yes | Yes | +| `limine` | | `linux` | No | No | | `llvm` | No | No | | `m4` | Yes | Yes | | `make` | Yes | Yes | -| `mold` | Yes | Yes | +| `mawk` | | `muon` | Yes | Yes | | `musl` | Yes | Yes | -| `nano` | Yes | Yes | +| `nano` | | `nasm` | Yes | Yes | +| `ncurses` | +| `nftables` | +| `openrc` | +| `patch` | | `perl` | Yes | Yes | | `pkgconf` | Yes | Yes | -| `ruby` | Yes | Yes | +| `sed` | +| `shadow` | +| `tar` | | `xz` | Yes | Yes | | `zlib` | Yes | Yes | +| `zsh` | \ No newline at end of file diff --git a/bootstrap.sh b/bootstrap.sh index b16ebaf..97ca85c 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -18,10 +18,10 @@ else export CC=clang export CXX=clang++ fi -export CFLAGS="-fuse-ld=mold -O3 -march=$MICROARCH -pipe --sysroot=$BOOTSTRAP/root -Wno-unused-command-line-argument" +export CFLAGS="-fuse-ld=lld -O3 -march=$MICROARCH -pipe --sysroot=$BOOTSTRAP/root -Wno-unused-command-line-argument" export CXXFLAGS=$CFLAGS export RANLIB=llvm-ranlib -export LD=mold +export LD=ld.lld export LDFLAGS="--sysroot=$BOOTSTRAP/root" export TREETAP=$(pwd)/treetap export TT_DIR=$(pwd)/.treetap @@ -68,7 +68,7 @@ set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) -set(CMAKE_LINKER_TYPE MOLD) +set(CMAKE_LINKER_TYPE LLD) set(CMAKE_SYSROOT "$BOOTSTRAP/root") set(CMAKE_SYSTEM_NAME Linux) EOF @@ -201,7 +201,7 @@ NATIVE_TOOL_DIR=$(dirname $(which llvm-tblgen) | sed -z "s/\n//g") cd llvm-project-*/ cmake -S llvm -B build-llvm \ -DCLANG_DEFAULT_CXX_STDLIB=libc++ \ - -DCLANG_DEFAULT_LINKER=mold \ + -DCLANG_DEFAULT_LINKER=lld \ -DCLANG_DEFAULT_RTLIB=compiler-rt \ -DCLANG_DEFAULT_UNWINDLIB=libunwind \ -DCLANG_TABLEGEN=$NATIVE_TOOL_DIR/clang-tblgen \ @@ -226,7 +226,7 @@ ln -s clang++ $BOOTSTRAP/root/bin/c++ cd .. # Build remaining software with treetap -SOURCES=(make mold toybox) +SOURCES=(make) for name in $SOURCES; do $TREETAP fetch $SPEC/$name/$name.spec $TREETAP build $SPEC/$name/$name.spec @@ -255,12 +255,10 @@ SOURCES=( llvm m4 make - mold muon musl perl pkgconf - toybox xz zlib ) diff --git a/rootbuild.sh b/rootbuild.sh index 10edde2..77a4436 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -28,14 +28,13 @@ echo "Done!" # 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: autoconf requires GNU m4 and perl to build. ~ahill # NOTE: automake requires m4 to build. ~ahill # NOTE: groff requires Perl to build. ~ahill # NOTE: nasm requires autoconf and automake to build. ~ahill cd /maple -PACKAGES="byacc bzip2 libelf libressl m4 make muon musl perl pkgconf toybox xz zlib autoconf automake flex groff libarchive libtool nasm cmake mold" +PACKAGES="byacc bzip2 libelf libressl m4 make muon musl perl pkgconf xz zlib autoconf automake flex groff libarchive libtool nasm cmake" for pkg in $PACKAGES; do treetap fetch /maple/sources/$pkg/$pkg.spec treetap build /maple/sources/$pkg/$pkg.spec diff --git a/sources/busybox/.config b/sources/busybox/.config deleted file mode 100644 index 1d41ead..0000000 --- a/sources/busybox/.config +++ /dev/null @@ -1,1231 +0,0 @@ -# -# Automatically generated make config: don't edit -# Busybox version: 1.36.1 -# Sat Dec 20 20:41:36 2025 -# -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="/run" -CONFIG_BUSYBOX=y -CONFIG_FEATURE_SHOW_SCRIPT=y -CONFIG_FEATURE_INSTALLER=y -CONFIG_INSTALL_NO_USR=y -CONFIG_FEATURE_SUID=y -CONFIG_FEATURE_SUID_CONFIG=y -CONFIG_FEATURE_SUID_CONFIG_QUIET=y -# CONFIG_FEATURE_PREFER_APPLETS is not set -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 is not set - -# -# 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 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 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 -# CONFIG_FEATURE_CPIO_IGNORE_DEVNO is not set -# CONFIG_FEATURE_CPIO_RENUMBER_INODES is not set -# CONFIG_DPKG is not set -# CONFIG_DPKG_DEB is not set -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 is not set -# CONFIG_RPM2CPIO is not set -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 is not set -# CONFIG_FEATURE_UNZIP_CDF is not set -# CONFIG_FEATURE_UNZIP_BZIP2 is not set -# CONFIG_FEATURE_UNZIP_LZMA is not set -# CONFIG_FEATURE_UNZIP_XZ is not set -# 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=y -CONFIG_FGCONSOLE=y -CONFIG_KBD_MODE=y -CONFIG_LOADFONT=y -CONFIG_SETFONT=y -CONFIG_FEATURE_SETFONT_TEXTUAL_MAP=y -CONFIG_DEFAULT_SETFONT_DIR="" - -# -# Common options for loadfont and setfont -# -CONFIG_FEATURE_LOADFONT_PSF2=y -CONFIG_FEATURE_LOADFONT_RAW=y -CONFIG_LOADKMAP=y -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=y -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 is not set -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=y -CONFIG_DEPMOD=y -CONFIG_INSMOD=y -CONFIG_LSMOD=y -# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set -CONFIG_MODINFO=y -CONFIG_MODPROBE=y -# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set -CONFIG_RMMOD=y - -# -# Options common to multiple modutils -# -CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS=y -CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y -# 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="/lib/modules" -CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" - -# -# Linux System Utilities -# -CONFIG_ACPID=y -CONFIG_FEATURE_ACPID_COMPAT=y -CONFIG_BLKDISCARD=y -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=y -CONFIG_FEATURE_EJECT_SCSI=y -CONFIG_FALLOCATE=y -CONFIG_FATATTR=y -CONFIG_FBSET=y -CONFIG_FEATURE_FBSET_FANCY=y -CONFIG_FEATURE_FBSET_READMODE=y -CONFIG_FDFORMAT=y -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=y -CONFIG_FREERAMDISK=y -CONFIG_FSCK_MINIX=y -CONFIG_FSFREEZE=y -CONFIG_FSTRIM=y -CONFIG_GETOPT=y -CONFIG_FEATURE_GETOPT_LONG=y -CONFIG_HEXDUMP=y -CONFIG_HD=y -CONFIG_XXD=y -CONFIG_HWCLOCK=y -# 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=y -CONFIG_LSPCI=y -CONFIG_LSUSB=y -CONFIG_MDEV=y -CONFIG_FEATURE_MDEV_CONF=y -CONFIG_FEATURE_MDEV_RENAME=y -CONFIG_FEATURE_MDEV_RENAME_REGEXP=y -CONFIG_FEATURE_MDEV_EXEC=y -CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y -CONFIG_FEATURE_MDEV_DAEMON=y -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=y -CONFIG_FEATURE_MKSWAP_UUID=y -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=y -CONFIG_PIVOT_ROOT=y -CONFIG_RDATE=y -CONFIG_RDEV=y -CONFIG_READPROFILE=y -CONFIG_RENICE=y -CONFIG_REV=y -CONFIG_RTCWAKE=y -CONFIG_SCRIPT=y -CONFIG_SCRIPTREPLAY=y -CONFIG_SETARCH=y -CONFIG_LINUX32=y -CONFIG_LINUX64=y -CONFIG_SETPRIV=y -CONFIG_FEATURE_SETPRIV_DUMP=y -CONFIG_FEATURE_SETPRIV_CAPABILITIES=y -CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES=y -CONFIG_SETSID=y -CONFIG_SWAPON=y -CONFIG_FEATURE_SWAPON_DISCARD=y -CONFIG_FEATURE_SWAPON_PRI=y -CONFIG_SWAPOFF=y -CONFIG_FEATURE_SWAPONOFF_LABEL=y -CONFIG_SWITCH_ROOT=y -CONFIG_TASKSET=y -CONFIG_FEATURE_TASKSET_FANCY=y -CONFIG_FEATURE_TASKSET_CPULIST=y -CONFIG_UEVENT=y -CONFIG_UMOUNT=y -CONFIG_FEATURE_UMOUNT_ALL=y -CONFIG_UNSHARE=y -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=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_FEATURE_DC_LIBM 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 -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=y -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=y -CONFIG_FBSPLASH=y -# 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=y -CONFIG_I2CSET=y -CONFIG_I2CDUMP=y -CONFIG_I2CDETECT=y -CONFIG_I2CTRANSFER=y -# 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=y -CONFIG_NANDDUMP=y -CONFIG_PARTPROBE=y -CONFIG_RAIDAUTORUN=y -CONFIG_READAHEAD=y -# CONFIG_RFKILL is not set -CONFIG_RUNLEVEL=y -CONFIG_RX=y -CONFIG_SEEDRNG=y -CONFIG_SETFATTR=y -CONFIG_SETSERIAL=y -CONFIG_STRINGS=y -CONFIG_TIME=y -CONFIG_TREE=y -CONFIG_TS=y -CONFIG_TTYSIZE=y -CONFIG_UBIATTACH=y -CONFIG_UBIDETACH=y -CONFIG_UBIMKVOL=y -CONFIG_UBIRMVOL=y -CONFIG_UBIRSVOL=y -CONFIG_UBIUPDATEVOL=y -CONFIG_UBIRENAME=y -CONFIG_VOLNAME=y -CONFIG_WATCHDOG=y -# 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=y -CONFIG_BRCTL=y -CONFIG_FEATURE_BRCTL_FANCY=y -CONFIG_FEATURE_BRCTL_SHOW=y -CONFIG_DNSD=y -CONFIG_ETHER_WAKE=y -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=y -CONFIG_IFPLUGD=y -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=y -CONFIG_IPADDR=y -CONFIG_IPLINK=y -CONFIG_IPROUTE=y -CONFIG_IPTUNNEL=y -CONFIG_IPRULE=y -CONFIG_IPNEIGH=y -CONFIG_FEATURE_IP_ADDRESS=y -CONFIG_FEATURE_IP_LINK=y -CONFIG_FEATURE_IP_ROUTE=y -CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2" -CONFIG_FEATURE_IP_TUNNEL=y -CONFIG_FEATURE_IP_RULE=y -CONFIG_FEATURE_IP_NEIGH=y -# 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=y -CONFIG_FEATURE_NAMEIF_EXTENDED=y -CONFIG_NBDCLIENT=y -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=y -CONFIG_FEATURE_TUNCTL_UG=y -CONFIG_VCONFIG=y -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=y -CONFIG_UDHCPD=y -# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set -CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY=y -CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases" -CONFIG_DUMPLEASES=y -CONFIG_DHCPRELAY=y -CONFIG_UDHCPC=y -CONFIG_FEATURE_UDHCPC_ARPING=y -CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y -CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" -CONFIG_UDHCPC6_DEFAULT_SCRIPT="/usr/share/udhcpc/default6.script" -CONFIG_UDHCPC6=y -CONFIG_FEATURE_UDHCPC6_RFC3646=y -CONFIG_FEATURE_UDHCPC6_RFC4704=y -CONFIG_FEATURE_UDHCPC6_RFC4833=y -CONFIG_FEATURE_UDHCPC6_RFC5970=y - -# -# Common options for DHCP applets -# -CONFIG_UDHCPC_DEFAULT_INTERFACE="eth0" -# CONFIG_FEATURE_UDHCP_PORT is not set -CONFIG_UDHCP_DEBUG=2 -CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 -CONFIG_FEATURE_UDHCP_RFC3397=y -CONFIG_FEATURE_UDHCP_8021Q=y -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 diff --git a/sources/busybox/busybox.spec b/sources/busybox/busybox.spec deleted file mode 100755 index c261557..0000000 --- a/sources/busybox/busybox.spec +++ /dev/null @@ -1,43 +0,0 @@ -# Maintainer: Alexander Hill -SRC_HASH="b8cc24c9574d809e7279c3be349795c5d5ceb6fdf19ca709f80cde50e47de314" -SRC_NAME="busybox" -SRC_PATCHES=" -a35fa3d6687d7cbcaa2d8675208392086d56df0c8719ddbde9f46373b189d0d4 .config -" -SRC_REVISION=4 -SRC_URL="https://busybox.net/downloads/busybox-1.36.1.tar.bz2" -SRC_VERSION="1.36.1" - -build() { - tar xf ../$SRC_FILENAME - 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. - # With that said, Busybox uses Kbuild, which hard-codes variables like - # CC to GNU-based tools, which is not what we want. The following sed - # hack should do the trick, but I wonder if there's a better solution. - # ~ahill - sed -i "s/?*= \$(CROSS_COMPILE)/?= /" Makefile - # NOTE: Apparently, Busybox fails to properly check for ncurses since the - # test compiles a main function without a return value type, causing - # the compilation to fail. This patch fixes the issue by making the - # 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 - # 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-$SRC_VERSION/ -} - -package() { - 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 - # 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/mold/mold.spec b/sources/mold/mold.spec deleted file mode 100644 index ea3bd48..0000000 --- a/sources/mold/mold.spec +++ /dev/null @@ -1,28 +0,0 @@ -# Maintainer: Alexander Hill -SRC_FILENAME="mold-2.40.4.tar.gz" -SRC_HASH="69414c702ec1084e1fa8ca16da24f167f549e5e11e9ecd5d70a8dcda6f08c249" -SRC_NAME="mold" -SRC_URL="https://github.com/rui314/mold/archive/refs/tags/v2.40.4.tar.gz" -SRC_VERSION="2.40.4" - -build() { - tar xf ../$SRC_FILENAME - cd mold-*/ - cmake -B build $TT_CMAKE_COMMON - cmake --build build --parallel $TT_PROCS -} - -clean() { - rm -rf mold-*/ -} - -package() { - cd mold-*/ - # NOTE: Setting --prefix here is ineffective because GNUInstallDirs are used - # in install functions despite CMake's documentation warning against - # such a thing for this exact reason. ~ahill - # See also: https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html - cmake --install build --parallel $TT_PROCS - mkdir -p $TT_INSTALLDIR$TT_BINDIR - ln -sf mold $TT_INSTALLDIR$TT_BINDIR/ld -} diff --git a/sources/toybox/.config b/sources/toybox/.config deleted file mode 100644 index 6e9f0f3..0000000 --- a/sources/toybox/.config +++ /dev/null @@ -1,392 +0,0 @@ -# -# 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 deleted file mode 100644 index efe46e3..0000000 --- a/sources/toybox/toybox.spec +++ /dev/null @@ -1,28 +0,0 @@ -# Maintainer: Alexander Hill -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 -- 2.49.1 From 389fdcc5ec21d225fc6685925e773e7b1c742f71 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sun, 4 Jan 2026 18:37:23 -0500 Subject: [PATCH 42/74] Built initramfs-tools for Maple Linux --- STATUS.md | 103 ++++++++++--------- sources/initramfs-tools/initramfs-tools.spec | 55 ++++++++++ 2 files changed, 107 insertions(+), 51 deletions(-) create mode 100644 sources/initramfs-tools/initramfs-tools.spec diff --git a/STATUS.md b/STATUS.md index 3bfaee9..ebf326b 100644 --- a/STATUS.md +++ b/STATUS.md @@ -4,54 +4,55 @@ Definitions: - Can Build - The software can be both compiled via treetap on Maple Linux and run on Maple Linux - Can Package - The software can be packaged by treetap under Maple Linux, while using none of the deprecated paths (/usr/bin, /usr/lib, /usr/libexec, /sbin, etc.) and without conflicting with another package -| Package | Can Build? | Can Package? | -| ------------- | ---------- | ------------ | -| `autoconf` | Yes | Yes | -| `automake` | Yes | Yes | -| `bc` | -| `byacc` | Yes | Yes | -| `bzip2` | Yes | Yes | -| `chrony` | -| `cmake` | Yes | Yes | -| `coreutils` | -| `dhcpcd` | -| `diffutils` | -| `findutils` | -| `flex` | Yes | Yes | -| `gettext` | -| `grep` | -| `groff` | Yes | Yes | -| `gzip` | -| `iproute2` | -| `kbd` | -| `kmod` | -| `less` | -| `libarchive` | Yes | Yes | -| `libcap2` | -| `libelf` | Yes | Yes | -| `libmnl` | -| `libnftnl` | -| `libressl` | Yes | Yes | -| `libtool` | Yes | Yes | -| `limine` | -| `linux` | No | No | -| `llvm` | No | No | -| `m4` | Yes | Yes | -| `make` | Yes | Yes | -| `mawk` | -| `muon` | Yes | Yes | -| `musl` | Yes | Yes | -| `nano` | -| `nasm` | Yes | Yes | -| `ncurses` | -| `nftables` | -| `openrc` | -| `patch` | -| `perl` | Yes | Yes | -| `pkgconf` | Yes | Yes | -| `sed` | -| `shadow` | -| `tar` | -| `xz` | Yes | Yes | -| `zlib` | Yes | Yes | -| `zsh` | \ No newline at end of file +| Package | Can Build? | Can Package? | +| ----------------- | ---------- | ------------ | +| `autoconf` | Yes | Yes | +| `automake` | Yes | Yes | +| `bc` | +| `byacc` | Yes | Yes | +| `bzip2` | Yes | Yes | +| `chrony` | +| `cmake` | Yes | Yes | +| `coreutils` | +| `dhcpcd` | +| `diffutils` | +| `findutils` | +| `flex` | Yes | Yes | +| `gettext` | +| `grep` | +| `groff` | Yes | Yes | +| `gzip` | +| `initramfs-tools` | Yes | Yes | +| `iproute2` | +| `kbd` | +| `kmod` | +| `less` | +| `libarchive` | Yes | Yes | +| `libcap2` | +| `libelf` | Yes | Yes | +| `libmnl` | +| `libnftnl` | +| `libressl` | Yes | Yes | +| `libtool` | Yes | Yes | +| `limine` | +| `linux` | No | No | +| `llvm` | No | No | +| `m4` | Yes | Yes | +| `make` | Yes | Yes | +| `mawk` | +| `muon` | Yes | Yes | +| `musl` | Yes | Yes | +| `nano` | +| `nasm` | Yes | Yes | +| `ncurses` | +| `nftables` | +| `openrc` | +| `patch` | +| `perl` | Yes | Yes | +| `pkgconf` | Yes | Yes | +| `sed` | +| `shadow` | +| `tar` | +| `xz` | Yes | Yes | +| `zlib` | Yes | Yes | +| `zsh` | \ No newline at end of file diff --git a/sources/initramfs-tools/initramfs-tools.spec b/sources/initramfs-tools/initramfs-tools.spec new file mode 100644 index 0000000..c38d512 --- /dev/null +++ b/sources/initramfs-tools/initramfs-tools.spec @@ -0,0 +1,55 @@ +# Maintainer: Alexander Hill +SRC_FILENAME="initramfs-tools-0.150.tar.gz" +SRC_HASH="d2578bed875b65962dfb51fae3bea8af11765ae76d1d66708fffef1fd3512a0c" +SRC_NAME="initramfs-tools" +SRC_URL="https://salsa.debian.org/kernel-team/initramfs-tools/-/archive/v0.150/initramfs-tools-v0.150.tar.gz" +SRC_VERSION="0.150" + +build() { + tar xf ../$SRC_FILENAME + cd initramfs-tools-*/ + # NOTE: Since this is for a single file, we don't pass TT_PROC. ~ahill + make +} + +clean() { + rm -rf initramfs-tools-*/ +} + +package() { + cd initramfs-tools-*/ + + # NOTE: There's no make install! ~ahill + mkdir -p $TT_INSTALLDIR/bin + cp lsinitramfs $TT_INSTALLDIR/bin/ + cp mkinitramfs $TT_INSTALLDIR/bin/ + cp unmkinitramfs $TT_INSTALLDIR/bin/ + cp update-initramfs $TT_INSTALLDIR/bin/ + + mkdir -p $TT_INSTALLDIR/etc/initramfs-tools + cp conf/initramfs.conf $TT_INSTALLDIR/etc/initramfs-tools/ + cp conf/update-initramfs.conf $TT_INSTALLDIR/etc/initramfs-tools/ + + mkdir -p $TT_INSTALLDIR/usr/share/bash-completion/completions + cp bash_completion.d/update-initramfs $TT_INSTALLDIR/usr/share/bash-completion/completions/ + + mkdir -p $TT_INSTALLDIR/usr/share/initramfs-tools + cp hook-functions $TT_INSTALLDIR/usr/share/initramfs-tools/ + cp -r hooks $TT_INSTALLDIR/usr/share/initramfs-tools/ + cp init $TT_INSTALLDIR/usr/share/initramfs-tools/ + cp conf/modules $TT_INSTALLDIR/usr/share/initramfs-tools/ + cp -r scripts $TT_INSTALLDIR/usr/share/initramfs-tools/ + + mkdir -p $TT_INSTALLDIR/usr/share/man/man5 + cp initramfs.conf.5 $TT_INSTALLDIR/usr/share/man/man5/ + cp update-initramfs.conf.5 $TT_INSTALLDIR/usr/share/man/man5/ + + mkdir -p $TT_INSTALLDIR/usr/share/man/man7 + cp initramfs-tools.7 $TT_INSTALLDIR/usr/share/man/man7/ + + mkdir -p $TT_INSTALLDIR/usr/share/man/man8 + cp lsinitramfs.8 $TT_INSTALLDIR/usr/share/man/man8/ + cp mkinitramfs.8 $TT_INSTALLDIR/usr/share/man/man8/ + cp unmkinitramfs.8 $TT_INSTALLDIR/usr/share/man/man8/ + cp update-initramfs.8 $TT_INSTALLDIR/usr/share/man/man8/ +} \ No newline at end of file -- 2.49.1 From c496159c2693c5470624d61f42986d05b21b1b59 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sun, 4 Jan 2026 23:20:23 -0500 Subject: [PATCH 43/74] Started shifting to a GNU userspace --- LICENSE | 2 +- STATUS.md | 4 ++++ bootstrap.sh | 19 +++++++++++++----- rootbuild.sh | 2 +- sources/coreutils/coreutils.spec | 21 ++++++++++++++++++++ sources/dash/dash.spec | 23 +++++++++++++++++++++ sources/findutils/findutils.spec | 21 ++++++++++++++++++++ sources/grep/grep.spec | 17 ++++++++++++++++ sources/gzip/gzip.spec | 17 ++++++++++++++++ sources/libarchive/libarchive.spec | 2 -- sources/linux/linux.spec | 6 +++--- sources/mawk/mawk.spec | 17 ++++++++++++++++ sources/sed/sed.spec | 17 ++++++++++++++++ sources/tar/tar.spec | 17 ++++++++++++++++ sources/xz/xz.spec | 8 ++++++-- treetap | 32 ++++++++++-------------------- 16 files changed, 190 insertions(+), 35 deletions(-) create mode 100644 sources/coreutils/coreutils.spec create mode 100644 sources/dash/dash.spec create mode 100644 sources/findutils/findutils.spec create mode 100644 sources/grep/grep.spec create mode 100644 sources/gzip/gzip.spec create mode 100644 sources/mawk/mawk.spec create mode 100644 sources/sed/sed.spec create mode 100644 sources/tar/tar.spec diff --git a/LICENSE b/LICENSE index fe784d2..49eea0d 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ ISC License -Copyright (c) 2024-2025 Alexander Hill, Nicholas McDaniel, and Maple Linux Contributors +Copyright (c) 2024-2026 Alexander Hill, Nicholas McDaniel, and Maple Linux Contributors Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above diff --git a/STATUS.md b/STATUS.md index ebf326b..a9aac9a 100644 --- a/STATUS.md +++ b/STATUS.md @@ -14,10 +14,12 @@ Definitions: | `chrony` | | `cmake` | Yes | Yes | | `coreutils` | +| `dash` | | `dhcpcd` | | `diffutils` | | `findutils` | | `flex` | Yes | Yes | +| `fortune-mod` | | `gettext` | | `grep` | | `groff` | Yes | Yes | @@ -53,6 +55,8 @@ Definitions: | `sed` | | `shadow` | | `tar` | +| `texinfo` | +| `xlibre-xserver` | | `xz` | Yes | Yes | | `zlib` | Yes | Yes | | `zsh` | \ No newline at end of file diff --git a/bootstrap.sh b/bootstrap.sh index 97ca85c..3c98326 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -35,10 +35,8 @@ $TREETAP fetch sources/llvm/llvm.spec $TREETAP fetch sources/musl/musl.spec # Make sure both clang-tblgen and llvm-tblgen are in the PATH. ~ahill -which clang-tblgen > /dev/null -[ ! "$?" = "0" ] && (echo "Unable to find clang-tblgen"; exit 1) -which llvm-tblgen > /dev/null -[ ! "$?" = "0" ] && (echo "Unable to find llvm-tblgen"; exit 1) +[ -z "$(which clang-tblgen)" ] && (echo "Unable to find clang-tblgen"; exit 1) +[ -z "$(which llvm-tblgen)" ] && (echo "Unable to find llvm-tblgen"; exit 1) # Simplified filesystem heirarchy with symlinks for compatibility mkdir -p $BOOTSTRAP/root/{bin,boot/EFI/BOOT,dev,etc,home,lib,proc,run,sys,tmp,usr/{include,share},var/{cache,lib,log,spool,tmp}} @@ -226,7 +224,7 @@ ln -s clang++ $BOOTSTRAP/root/bin/c++ cd .. # Build remaining software with treetap -SOURCES=(make) +SOURCES=(coreutils dash grep findutils gzip make mawk sed tar xz) for name in $SOURCES; do $TREETAP fetch $SPEC/$name/$name.spec $TREETAP build $SPEC/$name/$name.spec @@ -247,18 +245,29 @@ SOURCES=( byacc bzip2 cmake + coreutils + dash + findutils flex + grep + groff + gzip libarchive + libelf libressl libtool linux llvm m4 make + mawk muon musl + nasm perl pkgconf + sed + tar xz zlib ) diff --git a/rootbuild.sh b/rootbuild.sh index 77a4436..6bf40a0 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -34,7 +34,7 @@ echo "Done!" # NOTE: groff requires Perl to build. ~ahill # NOTE: nasm requires autoconf and automake to build. ~ahill cd /maple -PACKAGES="byacc bzip2 libelf libressl m4 make muon musl perl pkgconf xz zlib autoconf automake flex groff libarchive libtool nasm cmake" +PACKAGES="byacc bzip2 coreutils dash findutils grep gzip libelf libressl m4 make mawk muon musl perl pkgconf sed tar xz zlib autoconf automake flex groff libarchive libtool nasm cmake" for pkg in $PACKAGES; do treetap fetch /maple/sources/$pkg/$pkg.spec treetap build /maple/sources/$pkg/$pkg.spec diff --git a/sources/coreutils/coreutils.spec b/sources/coreutils/coreutils.spec new file mode 100644 index 0000000..b597a62 --- /dev/null +++ b/sources/coreutils/coreutils.spec @@ -0,0 +1,21 @@ +# Maintainer: Alexander Hill +SRC_HASH="19bcb6ca867183c57d77155eae946c5eced88183143b45ca51ad7d26c628ca75" +SRC_NAME="coreutils" +SRC_URL="https://ftp.gnu.org/gnu/coreutils/coreutils-9.9.tar.xz" +SRC_VERSION="9.9" + +build() { + tar xf ../$SRC_FILENAME + cd coreutils-*/ + ./configure $TT_AUTOCONF_COMMON --disable-year2038 + make -j $TT_PROCS +} + +clean() { + rm -rf coreutils-*/ +} + +package() { + cd coreutils-*/ + make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/dash/dash.spec b/sources/dash/dash.spec new file mode 100644 index 0000000..02b57f5 --- /dev/null +++ b/sources/dash/dash.spec @@ -0,0 +1,23 @@ +# Maintainer: Alexander Hill +SRC_FILENAME="dash-0.5.12-12.tar.gz" +SRC_HASH="845fd61702ae5e53e09664faa450da82805958924b109b8c5b4777bd8551af00" +SRC_NAME="dash" +SRC_URL="https://salsa.debian.org/debian/dash/-/archive/debian/0.5.12-12/dash-debian-0.5.12-12.tar.gz" +SRC_VERSION="0.5.12-12" + +build() { + tar xf ../$SRC_FILENAME + cd dash-*/ + ./configure $TT_AUTOCONF_COMMON + make -j $TT_PROCS +} + +clean() { + rm -rf dash-*/ +} + +package() { + cd dash-*/ + make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR + ln -s dash $TT_INSTALLDIR/bin/sh +} \ No newline at end of file diff --git a/sources/findutils/findutils.spec b/sources/findutils/findutils.spec new file mode 100644 index 0000000..0bde17e --- /dev/null +++ b/sources/findutils/findutils.spec @@ -0,0 +1,21 @@ +# Maintainer: Alexander Hill +SRC_HASH="1387e0b67ff247d2abde998f90dfbf70c1491391a59ddfecb8ae698789f0a4f5" +SRC_NAME="findutils" +SRC_URL="https://ftp.gnu.org/gnu/findutils/findutils-4.10.0.tar.xz" +SRC_VERSION="4.10.0" + +build() { + tar xf ../$SRC_FILENAME + cd findutils-*/ + ./configure $TT_AUTOCONF_COMMON + make -j $TT_PROCS +} + +clean() { + rm -rf findutils-*/ +} + +package() { + cd findutils-*/ + make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/grep/grep.spec b/sources/grep/grep.spec new file mode 100644 index 0000000..62ace69 --- /dev/null +++ b/sources/grep/grep.spec @@ -0,0 +1,17 @@ +# Maintainer: Alexander Hill +SRC_HASH="2649b27c0e90e632eadcd757be06c6e9a4f48d941de51e7c0f83ff76408a07b9" +SRC_NAME="grep" +SRC_URL="https://ftp.gnu.org/gnu/grep/grep-3.12.tar.xz" +SRC_VERSION="3.12" + +build() { + tar xf ../$SRC_FILENAME + cd grep-$SRC_VERSION/ + ./configure $TT_AUTOCONF_COMMON + make -j $TT_PROCS +} + +package() { + cd grep-$SRC_VERSION/ + make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/gzip/gzip.spec b/sources/gzip/gzip.spec new file mode 100644 index 0000000..0b95edc --- /dev/null +++ b/sources/gzip/gzip.spec @@ -0,0 +1,17 @@ +# Maintainer: Alexander Hill +SRC_HASH="01a7b881bd220bfdf615f97b8718f80bdfd3f6add385b993dcf6efd14e8c0ac6" +SRC_NAME="gzip" +SRC_URL="https://ftp.gnu.org/gnu/gzip/gzip-1.14.tar.xz" +SRC_VERSION="1.14" + +build() { + tar xf ../$SRC_FILENAME + cd gzip-$SRC_VERSION/ + ./configure $TT_AUTOCONF_COMMON + make -j $TT_PROCS +} + +package() { + cd gzip-$SRC_VERSION/ + make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/libarchive/libarchive.spec b/sources/libarchive/libarchive.spec index 05db5f0..9711617 100644 --- a/sources/libarchive/libarchive.spec +++ b/sources/libarchive/libarchive.spec @@ -7,8 +7,6 @@ SRC_VERSION="3.8.4" build() { tar xf ../$SRC_FILENAME cd libarchive-*/ - # NOTE: bsdtar is disabled here because Busybox's implementation is complete - # enough to be useful and bootstrapping libarchive is a pain. ~ahill ./configure $TT_AUTOCONF_COMMON --disable-static --enable-year2038 make -j $TT_PROCS } diff --git a/sources/linux/linux.spec b/sources/linux/linux.spec index e4276b4..d6ac1bd 100755 --- a/sources/linux/linux.spec +++ b/sources/linux/linux.spec @@ -1,8 +1,8 @@ # Maintainer: Alexander Hill -SRC_HASH="558c6bbab749492b34f99827fe807b0039a744693c21d3a7e03b3a48edaab96a" +SRC_HASH="7a8879167b89c4bae077d6f39c4f2130769f05dbdad2aad914adab9afb7d7f9a" SRC_NAME="linux" -SRC_URL="https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.18.2.tar.xz" -SRC_VERSION="6.18.2" +SRC_URL="https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.18.3.tar.xz" +SRC_VERSION="6.18.3" build() { tar xf ../$SRC_FILENAME diff --git a/sources/mawk/mawk.spec b/sources/mawk/mawk.spec new file mode 100644 index 0000000..ae0ab09 --- /dev/null +++ b/sources/mawk/mawk.spec @@ -0,0 +1,17 @@ +# Maintainer: Alexander Hill +SRC_HASH="51bcb82d577b141d896d9d9c3077d7aaa209490132e9f2b9573ba8511b3835be" +SRC_NAME="mawk" +SRC_URL="https://invisible-island.net/archives/mawk/mawk-1.3.4-20250131.tgz" +SRC_VERSION="1.3.4-20250131" + +build() { + tar xf ../$SRC_FILENAME + cd mawk-$SRC_VERSION/ + ./configure $TT_AUTOCONF_COMMON + make -O -j $TT_PROCS +} + +package() { + cd mawk-$SRC_VERSION/ + make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/sed/sed.spec b/sources/sed/sed.spec new file mode 100644 index 0000000..5f417a9 --- /dev/null +++ b/sources/sed/sed.spec @@ -0,0 +1,17 @@ +# Maintainer: Alexander Hill +SRC_HASH="6e226b732e1cd739464ad6862bd1a1aba42d7982922da7a53519631d24975181" +SRC_NAME="sed" +SRC_URL="https://ftp.gnu.org/gnu/sed/sed-4.9.tar.xz" +SRC_VERSION="4.9" + +build() { + tar xf ../$SRC_FILENAME + cd sed-$SRC_VERSION/ + ./configure $TT_AUTOCONF_COMMON + make -j $TT_PROCS +} + +package() { + cd sed-$SRC_VERSION/ + make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/tar/tar.spec b/sources/tar/tar.spec new file mode 100644 index 0000000..4ff8017 --- /dev/null +++ b/sources/tar/tar.spec @@ -0,0 +1,17 @@ +# Maintainer: Alexander Hill +SRC_HASH="4d62ff37342ec7aed748535323930c7cf94acf71c3591882b26a7ea50f3edc16" +SRC_NAME="tar" +SRC_URL="https://ftp.gnu.org/gnu/tar/tar-1.35.tar.xz" +SRC_VERSION="1.35" + +build() { + tar xf ../$SRC_FILENAME + cd tar-$SRC_VERSION/ + ./configure $TT_AUTOCONF_COMMON + make -j $TT_PROCS +} + +package() { + cd tar-$SRC_VERSION/ + make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/xz/xz.spec b/sources/xz/xz.spec index 268449a..05a10f6 100644 --- a/sources/xz/xz.spec +++ b/sources/xz/xz.spec @@ -1,9 +1,13 @@ # Maintainer: Alexander Hill -SRC_HASH="0b54f79df85912504de0b14aec7971e3f964491af1812d83447005807513cd9e" +SRC_HASH="ce09c50a5962786b83e5da389c90dd2c15ecd0980a258dd01f70f9e7ce58a8f1" SRC_NAME="xz" -SRC_URL="https://github.com/tukaani-project/xz/releases/download/v5.8.2/xz-5.8.2.tar.xz" +SRC_URL="https://github.com/tukaani-project/xz/releases/download/v5.8.2/xz-5.8.2.tar.gz" SRC_VERSION="5.8.2" +# NOTE: It is important that the source tarball should remain gzip-compressed +# rather than xz-compressed, because we are unable to extract +# xz-compressed archives until this software is built. ~ahill + build() { tar xf ../$SRC_FILENAME cd xz-*/ diff --git a/treetap b/treetap index 4fc2657..6c76371 100755 --- a/treetap +++ b/treetap @@ -1,6 +1,6 @@ #!/bin/sh -e -# Copyright (c) 2025 Alexander Hill +# Copyright (c) 2025-2026 Alexander Hill # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above @@ -18,6 +18,11 @@ # Changelog # ############# +# January 4, 2026 (1.4.1) +# * Set LD to ld.lld after mold was removed from Maple Linux. [ahill] +# - Replaced clean with purge, since the current implementation of clean isn't +# effective. [ahill] + # 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 @@ -75,7 +80,6 @@ # Specification Functions: # build - Builds the package -# clean - Cleans $TT_BUILDDIR for the next build # package - Installs the package contents to $TT_INSTALLDIR # Specification Variables: @@ -87,9 +91,9 @@ # (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) +# copied to the build directory (optional) # SRC_REVISION - The package revision number to denote changes specifically -# made for Maple Linux (optional) +# 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) @@ -146,7 +150,7 @@ [ -z "$TT_DIR" ] && TT_DIR="$(pwd)/.treetap" [ -z "$TT_PKGDIR" ] && TT_PKGDIR="$TT_DIR/packages" [ -z "$TT_SYSROOT" ] && TT_SYSROOT=/ -TT_VERSION="1.4.0" +TT_VERSION="1.4.1" ######################### # Environment Variables # @@ -156,7 +160,7 @@ TT_VERSION="1.4.0" [ -z "$AS" ] && export AS=nasm [ -z "$CC" ] && export CC=clang [ -z "$CXX" ] && export CXX=clang++ -[ -z "$LD" ] && export LD=mold +[ -z "$LD" ] && export LD=ld.lld [ -z "$NM" ] && export NM=nm [ -z "$OBJCOPY" ] && export OBJCOPY=objcopy [ -z "$OBJDUMP" ] && export OBJDUMP=objdump @@ -388,20 +392,6 @@ source_build() { exit 0 } -# Cleans the source from the previous build -source_clean() { - source_spec $1 - mkdir -p $TT_BUILDDIR - PUSHD=$(pwd) - cd $TT_BUILDDIR - echo -n "Cleaning $SRC_NAME $SRC_FULLVERSION for $TT_MICROARCH... " - clean - rm -rf $TT_INSTALLDIR - cd $PUSHD - echo "Done!" - exit 0 -} - # Fetches and verifies the integrity of the source tarball source_fetch() { source_spec $1 @@ -456,7 +446,7 @@ source_purge() { case "$1" in "build") source_build $2 ;; -"clean") source_clean $2 ;; +"clean") source_purge $2 ;; "fetch") source_fetch $2 ;; "install") package_install $2 $3 ;; "package") source_package $2 ;; -- 2.49.1 From 788a62091e9c1bd4d24fcd4b282a0df58849585c Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sun, 11 Jan 2026 15:48:51 -0500 Subject: [PATCH 44/74] Successfully bootstrapped with the GNU userspace --- README.md | 123 +------------------------------ STATUS.md | 20 ++--- bootstrap.sh | 26 ++++--- rescue.sh | 36 +++++++++ rootbuild.sh | 7 +- sources/diffutils/diffutils.spec | 23 ++++++ sources/linux/linux.spec | 6 +- sources/mawk/mawk.spec | 2 + sources/patch/patch.spec | 17 +++++ sources/zlib/zlib.spec | 16 ++-- 10 files changed, 122 insertions(+), 154 deletions(-) create mode 100755 rescue.sh create mode 100644 sources/diffutils/diffutils.spec create mode 100644 sources/patch/patch.spec diff --git a/README.md b/README.md index 7b74e54..ecd708a 100644 --- a/README.md +++ b/README.md @@ -1,127 +1,6 @@ # Maple Linux Bootstrap Scripts -This repository contains the scripts used to build Maple Linux from the source code. Most users will want to download a tarball from [here](https://maple.camp/linux/) to install Maple Linux. For everyone else, contributions are welcome! - -## System Requirements - -- Intel Core i3-6100 or greater -- At least 1 GB of storage space - -## Installing Maple Linux (For Most Users) - -Once you have a tarball downloaded from the repository above, you can begin installing Maple Linux. - -### Building the System Image - -First, you will need to start with a storage device that is around 4 GB in size (although, you can probably get away with less if you're brave). The first 512 MB should be an EFI System Partition (FAT32), and the remainder of the disk should be formatted as XFS. The following is an example of formatting the disk with `parted`, where `/dev/sdX` is the disk of your choice: - -``` -# parted /dev/sdX -GNU Parted 3.6 -Using /dev/sdX -Welcome to GNU Parted! Type 'help' to view a list of commands. -(parted) mklabel gpt -(parted) mkpart fat32 0% 512M -(parted) mkpart xfs 512M 100% -(parted) set 1 esp on -(parted) quit -``` - -That doesn't actually format the partitions, so we'll need to do that next: - -``` -# mkfs.fat -F32 /dev/sdX1 -mkfs.fat 4.2 (2021-01-31) -# mkfs.xfs /dev/sdX2 -meta-data=/dev/sdX2 isize=512 agcount=4, agsize=1017280 blks - = sectsz=512 attr=2, projid32bit=1 - = crc=1 finobt=1, sparse=1, rmapbt=1 - = reflink=1 bigtime=1 inobtcount=1 nrext64=1 - = exchange=0 metadir=0 -data = bsize=4096 blocks=4069120, imaxpct=25 - = sunit=0 swidth=0 blks -naming =version 2 bsize=4096 ascii-ci=0, ftype=1, parent=0 -log =internal log bsize=4096 blocks=19237, version=2 - = sectsz=512 sunit=0 blks, lazy-count=1 -realtime =none extsz=4096 blocks=0, rtextents=0 - = rgcount=0 rgsize=0 extents - = zoned=0 start=0 reserved=0 -Discarding blocks...Done. -``` - -Now that our image has been formatted correctly, we can extract the contents of Maple Linux to the disk. We'll start by creating a mount point for the root partition before mounting it and the boot partition. - -``` -# mkdir maple -# mount /dev/sdX2 maple -# mkdir maple/boot -# mount /dev/sdX1 maple/boot -``` - -Now that the image has been formatted properly, we can extract the contents of the tarball onto the system image: - -``` -# cd maple -# tar xf ../maplelinux-202507201645.tar.xz -``` - -### Configuring Limine - -To configure Limine, simply open `maple/boot/limine` in your text editor of choice. The only thing you *may* need to change is the value of `kernel_cmdline`. By default, it points to `/dev/vda2`, which is the default for a VirtIO disk on KVM. Of course, you can do [much more to customize your system](https://github.com/limine-bootloader/limine/blob/v9.x/CONFIG.md), but it is not required to boot. - -### Writing /etc/fstab - -Once again, you can change the fstab by opening `maple/etc/fstab` in your favorite text editor. The only two lines I would recommend changing are the first two unless you know what you're doing. The first line references the root partition and the second line references the boot partition. They are set to `/dev/vda2` and `/dev/vda1` respectively, as those are what KVM defaults to with a single VirtIO disk configured. This is what fstab should look like by default: - -``` -/dev/vda2 / xfs defaults 1 1 -/dev/vda1 /boot vfat defaults 0 2 -proc /proc proc nosuid,noexec,nodev 0 0 -sysfs /sys sysfs nosuid,noexec,nodev 0 0 -devpts /dev/pts devpts defaults 0 0 -tmpfs /run tmpfs defaults 0 0 -devtmpfs /dev devtmpfs mode=0755,nosuid 0 0 -tmpfs /dev/shm tmpfs nosuid,nodev 0 0 -cgroup2 /sys/fs/cgroup cgroup2 nosuid,noexec,nodev 0 0 -``` - -### Building initramfs - -Last, but certainly not least, is the initramfs. We'll start by creating the `maple/etc/tinyramfs` folder, which we'll use to store `maple/etc/tinyramfs/config`. Once again, `root` should be set to the root partition on your system. - -``` -root=/dev/vda2 -root_type=xfs -monolith=true -``` - -Once the initramfs builder has been configured, we can `chroot` into the image one final time, check the installed kernel version by listing the contents of `/lib/modules` (there should only be one subfolder), and invoking `tinyramfs` to build the initramfs for boot. - -``` -# chroot maple zsh -hostname# ls /lib/modules -6.15.4-maple -hostname# tinyramfs -k 6.15.4-maple /boot/initramfs ->> creating ramfs structure ->> generating initramfs image -+> done: /boot/initramfs -hostname# exit -``` - -With that, we can umount the image and boot into Maple Linux! - -## Building Maple Linux - -Building Maple Linux is mostly an automated process at this point. Here is a summary of the scripts provided in this repository, in order of execution (assuming nothing goes wrong): - -- `./fetch-sources.sh` - Downloads the sources and verifies their hashes against what is in `sources.list` -- `./build-bootstrap.sh` - Extracts and builds the bare minimum to build the remainder of the image in a `chroot` -- `./chroot-bootstrap.sh` - `chroot`s into the image with all the appropriate mounts -- `./build-chroot.sh` - Extracts and builds the system image from inside of the `chroot` - -This process has been known to take *hours*, so it's best not to do this unless you're sure you want to do it this way. Once you have a working bootstrap, it is recommended to back that up before proceeding with the chroot build so you can easily restore your progress without waiting for hours to get a new bootstrap. Of course, if you need to change LLVM for any reason, you will need to bootstrap the system again... - -Once you have a working image, you can follow the steps above to install the image normally. If you have any suggestions to improve the system or its build process, please make a pull request or issue! +This repository contains the scripts used to build Maple Linux from the source code. ## Maple Linux Philosophy diff --git a/STATUS.md b/STATUS.md index a9aac9a..d4df5bb 100644 --- a/STATUS.md +++ b/STATUS.md @@ -13,17 +13,17 @@ Definitions: | `bzip2` | Yes | Yes | | `chrony` | | `cmake` | Yes | Yes | -| `coreutils` | -| `dash` | +| `coreutils` | Yes | +| `dash` | Yes | | `dhcpcd` | -| `diffutils` | -| `findutils` | +| `diffutils` | Yes | +| `findutils` | Yes | | `flex` | Yes | Yes | | `fortune-mod` | | `gettext` | -| `grep` | +| `grep` | Yes | | `groff` | Yes | Yes | -| `gzip` | +| `gzip` | Yes | | `initramfs-tools` | Yes | Yes | | `iproute2` | | `kbd` | @@ -41,7 +41,7 @@ Definitions: | `llvm` | No | No | | `m4` | Yes | Yes | | `make` | Yes | Yes | -| `mawk` | +| `mawk` | Yes | | `muon` | Yes | Yes | | `musl` | Yes | Yes | | `nano` | @@ -49,12 +49,12 @@ Definitions: | `ncurses` | | `nftables` | | `openrc` | -| `patch` | +| `patch` | Yes | | `perl` | Yes | Yes | | `pkgconf` | Yes | Yes | -| `sed` | +| `sed` | Yes | | `shadow` | -| `tar` | +| `tar` | Yes | | `texinfo` | | `xlibre-xserver` | | `xz` | Yes | Yes | diff --git a/bootstrap.sh b/bootstrap.sh index 3c98326..50fdfcf 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -1,14 +1,14 @@ #!/bin/zsh -e -MICROARCH=skylake -TARGET=x86_64-maple-linux-musl +export MICROARCH=skylake +export TARGET=x86_64-maple-linux-musl # Set the environment up -ARCH=$(echo $TARGET | cut -d"-" -f1) -BOOTSTRAP=$(pwd)/.bootstrap -PROCS=$(nproc) -SOURCES=$(pwd)/.treetap/sources -SPEC=$(pwd)/sources +export ARCH=$(echo $TARGET | cut -d"-" -f1) +export BOOTSTRAP=$(pwd)/.bootstrap +export PROCS=$(nproc) +export SOURCES=$(pwd)/.treetap/sources +export SPEC=$(pwd)/sources export AR=llvm-ar export AS=llvm-as if [ ! -z "$CCACHE" ]; then @@ -35,8 +35,8 @@ $TREETAP fetch sources/llvm/llvm.spec $TREETAP fetch sources/musl/musl.spec # Make sure both clang-tblgen and llvm-tblgen are in the PATH. ~ahill -[ -z "$(which clang-tblgen)" ] && (echo "Unable to find clang-tblgen"; exit 1) -[ -z "$(which llvm-tblgen)" ] && (echo "Unable to find llvm-tblgen"; exit 1) +! which clang-tblgen && exit 1 +! which llvm-tblgen && exit 1 # Simplified filesystem heirarchy with symlinks for compatibility mkdir -p $BOOTSTRAP/root/{bin,boot/EFI/BOOT,dev,etc,home,lib,proc,run,sys,tmp,usr/{include,share},var/{cache,lib,log,spool,tmp}} @@ -219,12 +219,12 @@ cmake --build build-llvm --parallel $PROCS cmake --install build-llvm --parallel $PROCS # NOTE: LLVM doesn't add symlinks for clang, so we'll make them ourselves. # ~ahill -ln -s clang $BOOTSTRAP/root/bin/cc -ln -s clang++ $BOOTSTRAP/root/bin/c++ +ln -sf clang $BOOTSTRAP/root/bin/cc +ln -sf clang++ $BOOTSTRAP/root/bin/c++ cd .. # Build remaining software with treetap -SOURCES=(coreutils dash grep findutils gzip make mawk sed tar xz) +SOURCES=(coreutils dash diffutils findutils grep gzip make mawk patch sed tar) for name in $SOURCES; do $TREETAP fetch $SPEC/$name/$name.spec $TREETAP build $SPEC/$name/$name.spec @@ -247,6 +247,7 @@ SOURCES=( cmake coreutils dash + diffutils findutils flex grep @@ -264,6 +265,7 @@ SOURCES=( muon musl nasm + patch perl pkgconf sed diff --git a/rescue.sh b/rescue.sh new file mode 100755 index 0000000..1649d40 --- /dev/null +++ b/rescue.sh @@ -0,0 +1,36 @@ +#!/bin/sh +# This file is made with lines from bootstrap.sh to create a shell in case the +# bootstrap fails to build for whatever reason. Building a sysroot, especially +# with LLVM, takes a stupid amount of time and it makes it unreasonable to +# rebuild after something like diffutils fails to build. ~ahill + +# The following script was created with: +# sh -c "grep export bootstrap.sh | sed /CCACHE/d; echo zsh" >> rescue.sh + +export MICROARCH=skylake +export TARGET=x86_64-maple-linux-musl +export ARCH=$(echo $TARGET | cut -d"-" -f1) +export BOOTSTRAP=$(pwd)/.bootstrap +export PROCS=$(nproc) +export SOURCES=$(pwd)/.treetap/sources +export SPEC=$(pwd)/sources +export AR=llvm-ar +export AS=llvm-as + export CC=clang + export CXX=clang++ +export CFLAGS="-fuse-ld=lld -O3 -march=$MICROARCH -pipe --sysroot=$BOOTSTRAP/root -Wno-unused-command-line-argument" +export CXXFLAGS=$CFLAGS +export RANLIB=llvm-ranlib +export LD=ld.lld +export LDFLAGS="--sysroot=$BOOTSTRAP/root" +export TREETAP=$(pwd)/treetap +export TT_DIR=$(pwd)/.treetap +export TT_MICROARCH=$MICROARCH +export TT_SYSROOT=$BOOTSTRAP/root +export TT_TARGET=$TARGET +export CFLAGS="$CFLAGS -Qunused-arguments -rtlib=compiler-rt -Wl,--dynamic-linker=/lib/ld-musl-$ARCH.so.1" +export CXXFLAGS="$CXXFLAGS -Qunused-arguments -rtlib=compiler-rt -Wl,--dynamic-linker=/lib/ld-musl-$ARCH.so.1" +export CFLAGS="$CFLAGS -unwindlib=libunwind" +export CXXFLAGS="$CXXFLAGS -isystem $BOOTSTRAP/root/usr/include/c++/v1 -nostdinc++ -stdlib=libc++ -unwindlib=libunwind" +export TT_DIR=$BOOTSTRAP/root/maple/.treetap +zsh diff --git a/rootbuild.sh b/rootbuild.sh index 6bf40a0..3143403 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -33,8 +33,13 @@ echo "Done!" # NOTE: automake requires m4 to build. ~ahill # NOTE: groff requires Perl to build. ~ahill # NOTE: nasm requires autoconf and automake to build. ~ahill +# NOTE: dash requires flex and mawk to build. ~ahill +# NOTE: libelf requires zlib to build. ~ahill cd /maple -PACKAGES="byacc bzip2 coreutils dash findutils grep gzip libelf libressl m4 make mawk muon musl perl pkgconf sed tar xz zlib autoconf automake flex groff libarchive libtool nasm cmake" +LAYER0="byacc bzip2 coreutils diffutils findutils grep gzip libressl m4 make mawk muon musl patch perl pkgconf sed tar xz zlib" +LAYER1="autoconf automake flex groff libarchive libelf libtool" +LAYER2="dash nasm cmake" +PACKAGES="$LAYER0 $LAYER1 $LAYER2" for pkg in $PACKAGES; do treetap fetch /maple/sources/$pkg/$pkg.spec treetap build /maple/sources/$pkg/$pkg.spec diff --git a/sources/diffutils/diffutils.spec b/sources/diffutils/diffutils.spec new file mode 100644 index 0000000..28eb121 --- /dev/null +++ b/sources/diffutils/diffutils.spec @@ -0,0 +1,23 @@ +# Maintainer: Alexander Hill +SRC_HASH="7c8b7f9fc8609141fdea9cece85249d308624391ff61dedaf528fcb337727dfd" +SRC_NAME="diffutils" +SRC_URL="https://ftp.gnu.org/gnu/diffutils/diffutils-3.12.tar.xz" +SRC_VERSION="3.12" + +build() { + tar xf ../$SRC_FILENAME + cd diffutils-$SRC_VERSION/ + # NOTE: GNU Diffutils 3.12 has a bug when cross-compiling, stating that it + # can't run a test because it is cross-compiling. Rather than ignore + # the issue, the configure script simply dies, preventing the build + # from proceeding. Adding gl_cv_func_strcasecmp_works fixes the issue + # without the need for a patch. ~ahill + # See also: https://lists.gnu.org/archive/html/bug-gnulib/2025-04/msg00056.html + ./configure $TT_AUTOCONF_COMMON gl_cv_func_strcasecmp_works=y + make -j $TT_PROCS +} + +package() { + cd diffutils-$SRC_VERSION/ + make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/linux/linux.spec b/sources/linux/linux.spec index d6ac1bd..27887bd 100755 --- a/sources/linux/linux.spec +++ b/sources/linux/linux.spec @@ -1,8 +1,8 @@ # Maintainer: Alexander Hill -SRC_HASH="7a8879167b89c4bae077d6f39c4f2130769f05dbdad2aad914adab9afb7d7f9a" +SRC_HASH="f850139ca5f79c1bf6bb8b32f92e212aadca97bdaef8a83a7cf4ac4d6a525fab" SRC_NAME="linux" -SRC_URL="https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.18.3.tar.xz" -SRC_VERSION="6.18.3" +SRC_URL="https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.18.4.tar.xz" +SRC_VERSION="6.18.4" build() { tar xf ../$SRC_FILENAME diff --git a/sources/mawk/mawk.spec b/sources/mawk/mawk.spec index ae0ab09..043512b 100644 --- a/sources/mawk/mawk.spec +++ b/sources/mawk/mawk.spec @@ -1,6 +1,7 @@ # Maintainer: Alexander Hill SRC_HASH="51bcb82d577b141d896d9d9c3077d7aaa209490132e9f2b9573ba8511b3835be" SRC_NAME="mawk" +SRC_REVISION=1 SRC_URL="https://invisible-island.net/archives/mawk/mawk-1.3.4-20250131.tgz" SRC_VERSION="1.3.4-20250131" @@ -14,4 +15,5 @@ build() { package() { cd mawk-$SRC_VERSION/ make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR + ln -s mawk $TT_INSTALLDIR/bin/awk } \ No newline at end of file diff --git a/sources/patch/patch.spec b/sources/patch/patch.spec new file mode 100644 index 0000000..aac3192 --- /dev/null +++ b/sources/patch/patch.spec @@ -0,0 +1,17 @@ +# Maintainer: Alexander Hill +SRC_HASH="f87cee69eec2b4fcbf60a396b030ad6aa3415f192aa5f7ee84cad5e11f7f5ae3" +SRC_NAME="patch" +SRC_URL="https://ftp.gnu.org/gnu/patch/patch-2.8.tar.xz" +SRC_VERSION="2.8" + +build() { + tar xf ../$SRC_FILENAME + cd patch-$SRC_VERSION/ + ./configure $TT_AUTOCONF_COMMON + make -j $TT_PROCS +} + +package() { + cd patch-$SRC_VERSION/ + make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/zlib/zlib.spec b/sources/zlib/zlib.spec index 497775a..0a06773 100644 --- a/sources/zlib/zlib.spec +++ b/sources/zlib/zlib.spec @@ -1,14 +1,22 @@ # Maintainer: Alexander Hill SRC_HASH="38ef96b8dfe510d42707d9c781877914792541133e1870841463bfa73f883e32" SRC_NAME="zlib" +SRC_REVISION=1 SRC_URL="https://www.zlib.net/zlib-1.3.1.tar.xz" SRC_VERSION="1.3.1" build() { tar xf ../$SRC_FILENAME - cd zlib-*/ + cd zlib-$SRC_VERSION/ # NOTE: The prefix is set to /usr because man pages are stored under the # prefix whether you like it or not. ~ahill + # NOTE: Zlib refuses to build a shared library if it can't pass the test. + # Rather than stopping the build, it simply proceeds to build a static + # library, which causes issues when building libarchive. The test is + # failing due to it relying on undefined symbols that are referenced + # in the linker script, which LLVM doesn't like at all. To tell LLVM + # to ignore it, we pass --undefined-version to the linker. ~ahill + CFLAGS="-Wl,--undefined-version $CFLAGS" \ ./configure \ --eprefix=$TT_PREFIX \ --includedir=$TT_INCLUDEDIR \ @@ -18,11 +26,7 @@ build() { make -O -j $TT_PROCS } -clean() { - rm -rf zlib-*/ -} - package() { - cd zlib-*/ + cd zlib-$SRC_VERSION/ make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR } \ No newline at end of file -- 2.49.1 From d4643cc677cc8b47a5f77f38b9dd9b5342d62c46 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sun, 11 Jan 2026 16:23:56 -0500 Subject: [PATCH 45/74] Confirmed correct packaging after rootbuild --- STATUS.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/STATUS.md b/STATUS.md index d4df5bb..b2198ef 100644 --- a/STATUS.md +++ b/STATUS.md @@ -13,17 +13,17 @@ Definitions: | `bzip2` | Yes | Yes | | `chrony` | | `cmake` | Yes | Yes | -| `coreutils` | Yes | -| `dash` | Yes | +| `coreutils` | Yes | Yes | +| `dash` | Yes | Yes | | `dhcpcd` | -| `diffutils` | Yes | -| `findutils` | Yes | +| `diffutils` | Yes | Yes | +| `findutils` | Yes | Yes | | `flex` | Yes | Yes | | `fortune-mod` | | `gettext` | -| `grep` | Yes | +| `grep` | Yes | Yes | | `groff` | Yes | Yes | -| `gzip` | Yes | +| `gzip` | Yes | Yes | | `initramfs-tools` | Yes | Yes | | `iproute2` | | `kbd` | @@ -41,7 +41,7 @@ Definitions: | `llvm` | No | No | | `m4` | Yes | Yes | | `make` | Yes | Yes | -| `mawk` | Yes | +| `mawk` | Yes | Yes | | `muon` | Yes | Yes | | `musl` | Yes | Yes | | `nano` | @@ -49,14 +49,14 @@ Definitions: | `ncurses` | | `nftables` | | `openrc` | -| `patch` | Yes | +| `patch` | Yes | Yes | | `perl` | Yes | Yes | | `pkgconf` | Yes | Yes | -| `sed` | Yes | +| `sed` | Yes | Yes | | `shadow` | -| `tar` | Yes | +| `tar` | Yes | Yes | | `texinfo` | | `xlibre-xserver` | | `xz` | Yes | Yes | | `zlib` | Yes | Yes | -| `zsh` | \ No newline at end of file +| `zsh` | -- 2.49.1 From fe29305d05673f08cd61eca6f1513fb6d9014f39 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sun, 11 Jan 2026 18:31:57 -0500 Subject: [PATCH 46/74] Added fortune --- STATUS.md | 2 +- rootbuild.sh | 3 ++- sources/fortune-mod/fortune-mod.spec | 38 ++++++++++++++++++++++++++++ sources/fortune-mod/maple | 10 ++++++++ 4 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 sources/fortune-mod/fortune-mod.spec create mode 100644 sources/fortune-mod/maple diff --git a/STATUS.md b/STATUS.md index b2198ef..aa8c89b 100644 --- a/STATUS.md +++ b/STATUS.md @@ -19,7 +19,7 @@ Definitions: | `diffutils` | Yes | Yes | | `findutils` | Yes | Yes | | `flex` | Yes | Yes | -| `fortune-mod` | +| `fortune-mod` | Yes | Yes | | `gettext` | | `grep` | Yes | Yes | | `groff` | Yes | Yes | diff --git a/rootbuild.sh b/rootbuild.sh index 3143403..fbc6ab0 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -35,10 +35,11 @@ echo "Done!" # NOTE: nasm requires autoconf and automake to build. ~ahill # NOTE: dash requires flex and mawk to build. ~ahill # NOTE: libelf requires zlib to build. ~ahill +# NOTE: fortune-mod requires cmake to build. ~ahill cd /maple LAYER0="byacc bzip2 coreutils diffutils findutils grep gzip libressl m4 make mawk muon musl patch perl pkgconf sed tar xz zlib" LAYER1="autoconf automake flex groff libarchive libelf libtool" -LAYER2="dash nasm cmake" +LAYER2="dash nasm cmake fortune-mod" PACKAGES="$LAYER0 $LAYER1 $LAYER2" for pkg in $PACKAGES; do treetap fetch /maple/sources/$pkg/$pkg.spec diff --git a/sources/fortune-mod/fortune-mod.spec b/sources/fortune-mod/fortune-mod.spec new file mode 100644 index 0000000..dd82d62 --- /dev/null +++ b/sources/fortune-mod/fortune-mod.spec @@ -0,0 +1,38 @@ +# Maintainer: Alexander Hill +SRC_HASH="1f387877254e95eab61f937257b42609f29b994ef0571531655bbfc3a2ac74ac" +SRC_NAME="fortune-mod" +SRC_URL="https://github.com/shlomif/fortune-mod/releases/download/fortune-mod-3.24.0/fortune-mod-3.24.0.tar.xz" +SRC_VERSION="3.24.0" + +build() { + tar xf ../$SRC_FILENAME + # NOTE: There is no other way to prevent fortune from installing itself + # under /games, so we have to modify the CMakeLists in this case. + # ~ahill + sed -i "/fortune\/fortune.c/{n; s/games/bin/}" fortune-mod-$SRC_VERSION/CMakeLists.txt + # NOTE: Similarly, the same thing happens for man pages. ~ahill + sed -i "s|share/man/man|usr/share/man/man|" fortune-mod-$SRC_VERSION/cmake/Shlomif_Common.cmake + cat fortune-mod-3.24.0/cmake/Shlomif_Common.cmake + # NOTE: I don't agree with the offensive jokes included in this distribution + # but they are hidden behind the -o flag, and I want them to be seen + # as "unfunny" before the next generation thinks they're funny. ~ahill + cmake \ + -B build-$SRC_VERSION \ + -S fortune-mod-$SRC_VERSION \ + -DCMAKE_INSTALL_PREFIX=$TT_INSTALLDIR \ + -DCOOKIEDIR=$TT_INSTALLDIR/usr/share/games/fortunes \ + -DNO_OFFENSIVE=OFF + cmake --build build-$SRC_VERSION --parallel $TT_PROCS + # Finally, we add our custom fortunefile into the mix. ~ahill + cp ../maple . + # NOTE: Is there a better way to do this? This probably won't survive + # cross-compilation. ~ahill + ./build-$SRC_VERSION/strfile maple +} + +package() { + cmake --install build-$SRC_VERSION --parallel $TT_PROCS + cp maple $TT_INSTALLDIR/usr/share/games/fortunes/ + cp maple.dat $TT_INSTALLDIR/usr/share/games/fortunes/ + ln -sf maple $TT_INSTALLDIR/usr/share/games/fortunes/maple.u8 +} diff --git a/sources/fortune-mod/maple b/sources/fortune-mod/maple new file mode 100644 index 0000000..86abb9a --- /dev/null +++ b/sources/fortune-mod/maple @@ -0,0 +1,10 @@ +I am the power user and the daemons are my friend! + -- Alex +% +On a scale from telegraph to Pony Express, the carrier pigeons are freezing +mid-transit in this storm. + -- Alex +% +I'm just raw dogging it with the text editor. + -- Alex +% -- 2.49.1 From ae121bdfc1925e76826f5307a577a9c30d61b4e5 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Mon, 12 Jan 2026 20:01:17 -0500 Subject: [PATCH 47/74] Built bc --- STATUS.md | 3 +-- bootstrap.sh | 2 ++ rootbuild.sh | 2 +- sources/bc/bc.spec | 21 +++++++++++++++++++++ 4 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 sources/bc/bc.spec diff --git a/STATUS.md b/STATUS.md index aa8c89b..9bd3947 100644 --- a/STATUS.md +++ b/STATUS.md @@ -8,7 +8,7 @@ Definitions: | ----------------- | ---------- | ------------ | | `autoconf` | Yes | Yes | | `automake` | Yes | Yes | -| `bc` | +| `bc` | Yes | Yes | | `byacc` | Yes | Yes | | `bzip2` | Yes | Yes | | `chrony` | @@ -55,7 +55,6 @@ Definitions: | `sed` | Yes | Yes | | `shadow` | | `tar` | Yes | Yes | -| `texinfo` | | `xlibre-xserver` | | `xz` | Yes | Yes | | `zlib` | Yes | Yes | diff --git a/bootstrap.sh b/bootstrap.sh index 50fdfcf..1f52ec9 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -242,6 +242,7 @@ export TT_DIR=$BOOTSTRAP/root/maple/.treetap SOURCES=( autoconf automake + bc byacc bzip2 cmake @@ -250,6 +251,7 @@ SOURCES=( diffutils findutils flex + fortune-mod grep groff gzip diff --git a/rootbuild.sh b/rootbuild.sh index fbc6ab0..6035ba4 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -37,7 +37,7 @@ echo "Done!" # NOTE: libelf requires zlib to build. ~ahill # NOTE: fortune-mod requires cmake to build. ~ahill cd /maple -LAYER0="byacc bzip2 coreutils diffutils findutils grep gzip libressl m4 make mawk muon musl patch perl pkgconf sed tar xz zlib" +LAYER0="bc byacc bzip2 coreutils diffutils findutils grep gzip libressl m4 make mawk muon musl patch perl pkgconf sed tar xz zlib" LAYER1="autoconf automake flex groff libarchive libelf libtool" LAYER2="dash nasm cmake fortune-mod" PACKAGES="$LAYER0 $LAYER1 $LAYER2" diff --git a/sources/bc/bc.spec b/sources/bc/bc.spec new file mode 100644 index 0000000..c1b5fb2 --- /dev/null +++ b/sources/bc/bc.spec @@ -0,0 +1,21 @@ +# Maintainer: Alexander Hill +SRC_HASH="ae470fec429775653e042015edc928d07c8c3b2fc59765172a330d3d87785f86" +SRC_NAME="bc" +SRC_URL="https://ftp.gnu.org/gnu/bc/bc-1.08.2.tar.gz" +SRC_VERSION="1.08.2" + +build() { + tar xf ../$SRC_FILENAME + cd bc-$SRC_VERSION/ + ./configure $TT_AUTOCONF_COMMON + # NOTE: We are setting MAKEINFO to true here because it is impossible to + # build bc without Texinfo otherwise. Texinfo is not used by any other + # package on Maple Linux, so it doesn't make sense to include it for + # the sole purpose of building bc. ~ahill + make -O -j $TT_PROCS MAKEINFO=true +} + +package() { + cd bc-$SRC_VERSION/ + make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR MAKEINFO=true +} -- 2.49.1 From c34e63ba5e26b862222a20532169c5756ed11fcd Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Mon, 12 Jan 2026 20:43:09 -0500 Subject: [PATCH 48/74] Finally built Linux! --- STATUS.md | 2 +- rootbuild.sh | 2 +- sources/linux/linux.spec | 7 +++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/STATUS.md b/STATUS.md index 9bd3947..9db8b3c 100644 --- a/STATUS.md +++ b/STATUS.md @@ -37,7 +37,7 @@ Definitions: | `libressl` | Yes | Yes | | `libtool` | Yes | Yes | | `limine` | -| `linux` | No | No | +| `linux` | Yes | Yes | | `llvm` | No | No | | `m4` | Yes | Yes | | `make` | Yes | Yes | diff --git a/rootbuild.sh b/rootbuild.sh index 6035ba4..68494e5 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -38,7 +38,7 @@ echo "Done!" # NOTE: fortune-mod requires cmake to build. ~ahill cd /maple LAYER0="bc byacc bzip2 coreutils diffutils findutils grep gzip libressl m4 make mawk muon musl patch perl pkgconf sed tar xz zlib" -LAYER1="autoconf automake flex groff libarchive libelf libtool" +LAYER1="autoconf automake flex groff libarchive libelf libtool linux" LAYER2="dash nasm cmake fortune-mod" PACKAGES="$LAYER0 $LAYER1 $LAYER2" for pkg in $PACKAGES; do diff --git a/sources/linux/linux.spec b/sources/linux/linux.spec index 27887bd..c00d911 100755 --- a/sources/linux/linux.spec +++ b/sources/linux/linux.spec @@ -17,6 +17,9 @@ build() { LLVM=1 make -j $TT_PROCS YACC=byacc } -clean() { - rm -rf libelf-$SRC_VERSION/ +package() { + cd linux-$SRC_VERSION/ + make -j $TT_PROCS install INSTALL_PATH=$TT_INSTALLDIR/boot + make -j $TT_PROCS modules_install INSTALL_MOD_PATH=$TT_INSTALLDIR + # TODO: Run dtbs_install on non-x86 systems ~ahill } -- 2.49.1 From 091e2124791ebd91f345e45f17fbaac856df9d4c Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Mon, 12 Jan 2026 21:04:04 -0500 Subject: [PATCH 49/74] Built kmod --- STATUS.md | 2 +- bootstrap.sh | 1 + rootbuild.sh | 2 +- sources/kmod/kmod.spec | 22 ++++++++++++++++++++++ 4 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 sources/kmod/kmod.spec diff --git a/STATUS.md b/STATUS.md index 9db8b3c..c545509 100644 --- a/STATUS.md +++ b/STATUS.md @@ -27,7 +27,7 @@ Definitions: | `initramfs-tools` | Yes | Yes | | `iproute2` | | `kbd` | -| `kmod` | +| `kmod` | Yes | Yes | | `less` | | `libarchive` | Yes | Yes | | `libcap2` | diff --git a/bootstrap.sh b/bootstrap.sh index 1f52ec9..6cf6345 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -255,6 +255,7 @@ SOURCES=( grep groff gzip + kmod libarchive libelf libressl diff --git a/rootbuild.sh b/rootbuild.sh index 68494e5..a10cffa 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -37,7 +37,7 @@ echo "Done!" # NOTE: libelf requires zlib to build. ~ahill # NOTE: fortune-mod requires cmake to build. ~ahill cd /maple -LAYER0="bc byacc bzip2 coreutils diffutils findutils grep gzip libressl m4 make mawk muon musl patch perl pkgconf sed tar xz zlib" +LAYER0="bc byacc bzip2 coreutils diffutils findutils grep gzip kmod libressl m4 make mawk muon musl patch perl pkgconf sed tar xz zlib" LAYER1="autoconf automake flex groff libarchive libelf libtool linux" LAYER2="dash nasm cmake fortune-mod" PACKAGES="$LAYER0 $LAYER1 $LAYER2" diff --git a/sources/kmod/kmod.spec b/sources/kmod/kmod.spec new file mode 100644 index 0000000..ebbd947 --- /dev/null +++ b/sources/kmod/kmod.spec @@ -0,0 +1,22 @@ +# Maintainer: Alexander Hill +SRC_FILENAME="kmod-34.tar.gz" +SRC_HASH="cb47be49366b596e4554eeeb7595b128feb261619c7675603e004b07c5ebbd5b" +SRC_NAME="kmod" +SRC_URL="https://github.com/kmod-project/kmod/archive/refs/tags/v34.tar.gz" +SRC_VERSION="34" + +build() { + tar xf ../$SRC_FILENAME + cd kmod-$SRC_VERSION/ + ./autogen.sh + # NOTE: Building man pages requires scdoc. In an attempt to reduce the total + # number of dependencies, documentation is temporarily disabled. + # ~ahill + ./configure $TT_AUTOCONF_COMMON --disable-manpages --enable-year2038 + make -j $TT_PROCS +} + +package() { + cd kmod-$SRC_VERSION/ + make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} -- 2.49.1 From f0e2fcfc5342fa3b8094d23f19fa2da6f5d57e21 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Mon, 12 Jan 2026 21:20:20 -0500 Subject: [PATCH 50/74] Built ncurses --- STATUS.md | 2 +- bootstrap.sh | 1 + rootbuild.sh | 2 +- sources/ncurses/ncurses.spec | 21 +++++++++++++++++++++ 4 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 sources/ncurses/ncurses.spec diff --git a/STATUS.md b/STATUS.md index c545509..442347d 100644 --- a/STATUS.md +++ b/STATUS.md @@ -46,7 +46,7 @@ Definitions: | `musl` | Yes | Yes | | `nano` | | `nasm` | Yes | Yes | -| `ncurses` | +| `ncurses` | Yes | Yes | | `nftables` | | `openrc` | | `patch` | Yes | Yes | diff --git a/bootstrap.sh b/bootstrap.sh index 6cf6345..af77a3b 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -268,6 +268,7 @@ SOURCES=( muon musl nasm + ncurses patch perl pkgconf diff --git a/rootbuild.sh b/rootbuild.sh index a10cffa..9fd01e1 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -37,7 +37,7 @@ echo "Done!" # NOTE: libelf requires zlib to build. ~ahill # NOTE: fortune-mod requires cmake to build. ~ahill cd /maple -LAYER0="bc byacc bzip2 coreutils diffutils findutils grep gzip kmod libressl m4 make mawk muon musl patch perl pkgconf sed tar xz zlib" +LAYER0="bc byacc bzip2 coreutils diffutils findutils grep gzip kmod libressl m4 make mawk muon musl ncurses patch perl pkgconf sed tar xz zlib" LAYER1="autoconf automake flex groff libarchive libelf libtool linux" LAYER2="dash nasm cmake fortune-mod" PACKAGES="$LAYER0 $LAYER1 $LAYER2" diff --git a/sources/ncurses/ncurses.spec b/sources/ncurses/ncurses.spec new file mode 100644 index 0000000..117823c --- /dev/null +++ b/sources/ncurses/ncurses.spec @@ -0,0 +1,21 @@ +# Maintainer: Alexander Hill +SRC_HASH="65681cb0d0f80ed95780e79cf03f93672d1c14e41e767efdcc826901ea214420" +SRC_NAME="ncurses" +SRC_URL="https://invisible-island.net/archives/ncurses/current/ncurses-6.6-20260103.tgz" +SRC_VERSION="6.6-20260103" + +build() { + tar xf ../$SRC_FILENAME + cd ncurses-$SRC_VERSION/ + ./configure $TT_AUTOCONF_COMMON \ + --with-cxx-shared \ + --without-debug \ + --without-normal \ + --with-shared + make -O -j $TT_PROCS +} + +package() { + cd ncurses-$SRC_VERSION/ + make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} -- 2.49.1 From 774b47ad53a5de021d145c7741a1b7f7021b838f Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Mon, 12 Jan 2026 21:30:32 -0500 Subject: [PATCH 51/74] Built nano --- STATUS.md | 2 +- bootstrap.sh | 1 + rootbuild.sh | 3 ++- sources/nano/nano.spec | 17 +++++++++++++++++ 4 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 sources/nano/nano.spec diff --git a/STATUS.md b/STATUS.md index 442347d..6f68b55 100644 --- a/STATUS.md +++ b/STATUS.md @@ -44,7 +44,7 @@ Definitions: | `mawk` | Yes | Yes | | `muon` | Yes | Yes | | `musl` | Yes | Yes | -| `nano` | +| `nano` | Yes | Yes | | `nasm` | Yes | Yes | | `ncurses` | Yes | Yes | | `nftables` | diff --git a/bootstrap.sh b/bootstrap.sh index af77a3b..4318d57 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -267,6 +267,7 @@ SOURCES=( mawk muon musl + nano nasm ncurses patch diff --git a/rootbuild.sh b/rootbuild.sh index 9fd01e1..91145a5 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -36,9 +36,10 @@ echo "Done!" # NOTE: dash requires flex and mawk to build. ~ahill # NOTE: libelf requires zlib to build. ~ahill # NOTE: fortune-mod requires cmake to build. ~ahill +# NOTE: nano requires ncurses to build. ~ahill cd /maple LAYER0="bc byacc bzip2 coreutils diffutils findutils grep gzip kmod libressl m4 make mawk muon musl ncurses patch perl pkgconf sed tar xz zlib" -LAYER1="autoconf automake flex groff libarchive libelf libtool linux" +LAYER1="autoconf automake flex groff libarchive libelf libtool linux nano" LAYER2="dash nasm cmake fortune-mod" PACKAGES="$LAYER0 $LAYER1 $LAYER2" for pkg in $PACKAGES; do diff --git a/sources/nano/nano.spec b/sources/nano/nano.spec new file mode 100644 index 0000000..eaed708 --- /dev/null +++ b/sources/nano/nano.spec @@ -0,0 +1,17 @@ +# Maintainer: Alexander Hill +SRC_HASH="afd287aa672c48b8e1a93fdb6c6588453d527510d966822b687f2835f0d986e9" +SRC_NAME="nano" +SRC_URL="https://www.nano-editor.org/dist/v8/nano-8.7.tar.xz" +SRC_VERSION="8.7" + +build() { + tar xf ../$SRC_FILENAME + cd nano-$SRC_VERSION/ + ./configure $TT_AUTOCONF_COMMON --enable-utf8 --enable-year2038 + make -O -j $TT_PROCS +} + +package() { + cd nano-$SRC_VERSION/ + make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} -- 2.49.1 From 790af5635d1f431819384b3b8f0df912674c3962 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Tue, 13 Jan 2026 20:50:47 -0500 Subject: [PATCH 52/74] Fixed fortune and rootbuild --- rootbuild.sh | 8 +++++--- sources/fortune-mod/fortune-mod.spec | 3 +++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/rootbuild.sh b/rootbuild.sh index 91145a5..abdd047 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -37,10 +37,12 @@ echo "Done!" # NOTE: libelf requires zlib to build. ~ahill # NOTE: fortune-mod requires cmake to build. ~ahill # NOTE: nano requires ncurses to build. ~ahill +# NOTE: kmod requires autoconf, automake, libtool to build. ~ahill +# NOTE: Linux requires bc, byacc, flex, kmod, ... ~ahill cd /maple -LAYER0="bc byacc bzip2 coreutils diffutils findutils grep gzip kmod libressl m4 make mawk muon musl ncurses patch perl pkgconf sed tar xz zlib" -LAYER1="autoconf automake flex groff libarchive libelf libtool linux nano" -LAYER2="dash nasm cmake fortune-mod" +LAYER0="bc byacc bzip2 coreutils diffutils findutils grep gzip libressl m4 make mawk muon musl ncurses patch perl pkgconf sed tar xz zlib" +LAYER1="autoconf automake flex groff libarchive libelf libtool nano" +LAYER2="dash nasm cmake fortune-mod kmod linux" PACKAGES="$LAYER0 $LAYER1 $LAYER2" for pkg in $PACKAGES; do treetap fetch /maple/sources/$pkg/$pkg.spec diff --git a/sources/fortune-mod/fortune-mod.spec b/sources/fortune-mod/fortune-mod.spec index dd82d62..d68ed8f 100644 --- a/sources/fortune-mod/fortune-mod.spec +++ b/sources/fortune-mod/fortune-mod.spec @@ -1,6 +1,9 @@ # Maintainer: Alexander Hill SRC_HASH="1f387877254e95eab61f937257b42609f29b994ef0571531655bbfc3a2ac74ac" SRC_NAME="fortune-mod" +SRC_PATCHES=" +1dde7a66dcf9033227a4747b5e892cc1845a77f025d6c5d3c6f49c15dee7c239 maple +" SRC_URL="https://github.com/shlomif/fortune-mod/releases/download/fortune-mod-3.24.0/fortune-mod-3.24.0.tar.xz" SRC_VERSION="3.24.0" -- 2.49.1 From 0be39e0a35d2e5420e838ec50434a79e60f87158 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Wed, 14 Jan 2026 20:15:59 -0500 Subject: [PATCH 53/74] Fixed fortune-mod --- rootbuild.sh | 3 +++ sources/fortune-mod/fortune-mod.spec | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/rootbuild.sh b/rootbuild.sh index abdd047..eecd9e0 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -4,6 +4,9 @@ export CFLAGS="-O3 -pipe" export CXX=clang++ export CXXFLAGS=$CFLAGS +# Temporary workaround since root is the only user. ~ahill +export FORCE_UNSAFE_CONFIGURE=1 + # xz Build # NOTE: xz is needed to run "treetap package", so we manually install. ~ahill cd /maple diff --git a/sources/fortune-mod/fortune-mod.spec b/sources/fortune-mod/fortune-mod.spec index d68ed8f..246e426 100644 --- a/sources/fortune-mod/fortune-mod.spec +++ b/sources/fortune-mod/fortune-mod.spec @@ -27,7 +27,6 @@ build() { -DNO_OFFENSIVE=OFF cmake --build build-$SRC_VERSION --parallel $TT_PROCS # Finally, we add our custom fortunefile into the mix. ~ahill - cp ../maple . # NOTE: Is there a better way to do this? This probably won't survive # cross-compilation. ~ahill ./build-$SRC_VERSION/strfile maple -- 2.49.1 From 4bbf8d9566d859c21a7a8c9e64731c55de0334c7 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Wed, 14 Jan 2026 20:43:02 -0500 Subject: [PATCH 54/74] Added zsh --- STATUS.md | 2 +- bootstrap.sh | 1 + rootbuild.sh | 2 +- sources/zsh/zsh.spec | 18 ++++++++++++++++++ 4 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 sources/zsh/zsh.spec diff --git a/STATUS.md b/STATUS.md index 6f68b55..05ec5b1 100644 --- a/STATUS.md +++ b/STATUS.md @@ -58,4 +58,4 @@ Definitions: | `xlibre-xserver` | | `xz` | Yes | Yes | | `zlib` | Yes | Yes | -| `zsh` | +| `zsh` | Yes | Yes | diff --git a/bootstrap.sh b/bootstrap.sh index 4318d57..f7ddc62 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -277,6 +277,7 @@ SOURCES=( tar xz zlib + zsh ) for name in $SOURCES; do $TREETAP fetch $SPEC/$name/$name.spec diff --git a/rootbuild.sh b/rootbuild.sh index eecd9e0..72888bb 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -43,7 +43,7 @@ echo "Done!" # NOTE: kmod requires autoconf, automake, libtool to build. ~ahill # NOTE: Linux requires bc, byacc, flex, kmod, ... ~ahill cd /maple -LAYER0="bc byacc bzip2 coreutils diffutils findutils grep gzip libressl m4 make mawk muon musl ncurses patch perl pkgconf sed tar xz zlib" +LAYER0="bc byacc bzip2 coreutils diffutils findutils grep gzip libressl m4 make mawk muon musl ncurses patch perl pkgconf sed tar xz zlib zsh" LAYER1="autoconf automake flex groff libarchive libelf libtool nano" LAYER2="dash nasm cmake fortune-mod kmod linux" PACKAGES="$LAYER0 $LAYER1 $LAYER2" diff --git a/sources/zsh/zsh.spec b/sources/zsh/zsh.spec new file mode 100644 index 0000000..a33c8ac --- /dev/null +++ b/sources/zsh/zsh.spec @@ -0,0 +1,18 @@ +# Maintainer: Alexander Hill +SRC_HASH="9b8d1ecedd5b5e81fbf1918e876752a7dd948e05c1a0dba10ab863842d45acd5" +SRC_NAME="zsh" +SRC_URL="https://www.zsh.org/pub/zsh-5.9.tar.xz" +SRC_VERSION="5.9" + +build() { + tar xf ../$SRC_FILENAME + cd zsh-$SRC_VERSION/ + ./configure $TT_AUTOCONF_COMMON --enable-multibyte --enable-libc-musl + make -O -j $TT_PROCS +} + +package() { + cd zsh-$SRC_VERSION/ + make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR + ln -sf zsh $TT_INSTALLDIR/bin/bash +} -- 2.49.1 From 6eedd35707fc162022b440084b9fde42091db6e1 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Wed, 14 Jan 2026 21:28:29 -0500 Subject: [PATCH 55/74] Fixed configuration of zsh --- sources/zsh/zsh.spec | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/sources/zsh/zsh.spec b/sources/zsh/zsh.spec index a33c8ac..db4db80 100644 --- a/sources/zsh/zsh.spec +++ b/sources/zsh/zsh.spec @@ -1,13 +1,23 @@ # Maintainer: Alexander Hill SRC_HASH="9b8d1ecedd5b5e81fbf1918e876752a7dd948e05c1a0dba10ab863842d45acd5" SRC_NAME="zsh" +SRC_REVISION=1 SRC_URL="https://www.zsh.org/pub/zsh-5.9.tar.xz" SRC_VERSION="5.9" build() { tar xf ../$SRC_FILENAME cd zsh-$SRC_VERSION/ - ./configure $TT_AUTOCONF_COMMON --enable-multibyte --enable-libc-musl + # NOTE: Zsh uses a lot of tests made of main functions that are missing a + # return type. Because of this, clang throws an error, causing the + # test to fail. The result is a binary where command substitution + # locks the shell up. To fix this, we pass -Wno-implicit-int to the + # configure script. ~ahill + CFLAGS="$CFLAGS -Wno-implicit-int" \ + ./configure \ + $TT_AUTOCONF_COMMON \ + --enable-multibyte \ + --enable-libc-musl make -O -j $TT_PROCS } -- 2.49.1 From 576f1fc8412b2e22ac8ccb408f07357fabce3316 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Wed, 14 Jan 2026 21:50:50 -0500 Subject: [PATCH 56/74] Built libcap2 --- STATUS.md | 3 ++- sources/libcap2/libcap2.spec | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 sources/libcap2/libcap2.spec diff --git a/STATUS.md b/STATUS.md index 05ec5b1..748d0a5 100644 --- a/STATUS.md +++ b/STATUS.md @@ -30,7 +30,7 @@ Definitions: | `kmod` | Yes | Yes | | `less` | | `libarchive` | Yes | Yes | -| `libcap2` | +| `libcap2` | Yes | Yes | | `libelf` | Yes | Yes | | `libmnl` | | `libnftnl` | @@ -52,6 +52,7 @@ Definitions: | `patch` | Yes | Yes | | `perl` | Yes | Yes | | `pkgconf` | Yes | Yes | +| `pipewire` | | `sed` | Yes | Yes | | `shadow` | | `tar` | Yes | Yes | diff --git a/sources/libcap2/libcap2.spec b/sources/libcap2/libcap2.spec new file mode 100644 index 0000000..40e6861 --- /dev/null +++ b/sources/libcap2/libcap2.spec @@ -0,0 +1,33 @@ +# Maintainer: Alexander Hill +SRC_HASH="5e339f5ab434bf5b7979f65437ca24942ddcd6e6a3e57347370cd791bc0ea51c" +SRC_NAME="libcap2" +SRC_URL="https://git.kernel.org/pub/scm/libs/libcap/libcap.git/snapshot/libcap-2.77.tar.gz" +SRC_VERSION="2.77" + +build() { + tar xf ../$SRC_FILENAME + cd libcap-$SRC_VERSION/ + # NOTE: This Makefile assumes that GCC exists, which it doesn't here, so we + # need to tell it to respect the CC environment variable to prevent + # any issues. ~ahill + make -O \ + -j $TT_PROCS \ + CC=$CC \ + LIBDIR=$TT_LIBDIR \ + INCDIR=$TT_INCLUDEDIR \ + exec_prefix=$TT_PREFIX \ + prefix=$TT_PREFIX +} + +package() { + cd libcap-$SRC_VERSION/ + make -O \ + -C libcap \ + -j $TT_PROCS \ + install-shared \ + FAKEROOT=$TT_INSTALLDIR \ + LIBDIR=$TT_LIBDIR \ + INCDIR=$TT_INCLUDEDIR \ + exec_prefix=$TT_PREFIX \ + prefix=$TT_PREFIX +} -- 2.49.1 From 1f99927f272f9ac829a7cc8fedcceaeb5038a8c9 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Wed, 14 Jan 2026 22:11:22 -0500 Subject: [PATCH 57/74] Built OpenRC --- STATUS.md | 2 +- sources/openrc/openrc.spec | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 sources/openrc/openrc.spec diff --git a/STATUS.md b/STATUS.md index 748d0a5..9e1ed58 100644 --- a/STATUS.md +++ b/STATUS.md @@ -48,7 +48,7 @@ Definitions: | `nasm` | Yes | Yes | | `ncurses` | Yes | Yes | | `nftables` | -| `openrc` | +| `openrc` | Yes | Yes | | `patch` | Yes | Yes | | `perl` | Yes | Yes | | `pkgconf` | Yes | Yes | diff --git a/sources/openrc/openrc.spec b/sources/openrc/openrc.spec new file mode 100644 index 0000000..2eb5521 --- /dev/null +++ b/sources/openrc/openrc.spec @@ -0,0 +1,22 @@ +# Maintainer: Alexander Hill +SRC_FILENAME="openrc-0.63.tar.gz" +SRC_HASH="1b661016bd8cd4189be83b441dd7062c967b641fdc00f741e359e22d06857df8" +SRC_NAME="openrc" +SRC_URL="https://github.com/OpenRC/openrc/archive/refs/tags/0.63.tar.gz" +SRC_VERSION="0.63" + +build() { + tar xf ../$SRC_FILENAME + cd openrc-$SRC_VERSION/ + # TODO: Remove bash completions + muon setup $TT_MESON_COMMON \ + -Dpam=false \ + -Dzsh-completions=true \ + build + muon samu -C build +} + +package() { + cd openrc-$SRC_VERSION/ + muon -C build install -d $TT_INSTALLDIR +} -- 2.49.1 From 6b94b54ae89b0eebf6911c3474a1df849ad7e153 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Fri, 16 Jan 2026 18:57:55 -0500 Subject: [PATCH 58/74] Built Limine --- STATUS.md | 3 ++- sources/limine/limine.spec | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 sources/limine/limine.spec diff --git a/STATUS.md b/STATUS.md index 9e1ed58..2ba24dd 100644 --- a/STATUS.md +++ b/STATUS.md @@ -18,6 +18,7 @@ Definitions: | `dhcpcd` | | `diffutils` | Yes | Yes | | `findutils` | Yes | Yes | +| `flatpak` | | `flex` | Yes | Yes | | `fortune-mod` | Yes | Yes | | `gettext` | @@ -36,7 +37,7 @@ Definitions: | `libnftnl` | | `libressl` | Yes | Yes | | `libtool` | Yes | Yes | -| `limine` | +| `limine` | Yes | Yes | | `linux` | Yes | Yes | | `llvm` | No | No | | `m4` | Yes | Yes | diff --git a/sources/limine/limine.spec b/sources/limine/limine.spec new file mode 100644 index 0000000..2a292c0 --- /dev/null +++ b/sources/limine/limine.spec @@ -0,0 +1,18 @@ +# Maintainer: Alexander Hill +SRC_HASH="baf5bcbe7b04042d84fb47035aaf3312800c6d36a65fc411a3f74aba1c48c3c6" +SRC_NAME="limine" +SRC_URL="https://github.com/limine-bootloader/limine/releases/download/v10.6.3/limine-10.6.3.tar.xz" +SRC_VERSION="10.6.3" + +build() { + tar xf ../$SRC_FILENAME + cd limine-$SRC_VERSION/ + # TODO: How should other architectures be handled? ~ahill + ./configure $TT_AUTOCONF_COMMON --enable-uefi-x86-64 + make -O -j $TT_PROCS +} + +package() { + cd limine-$SRC_VERSION/ + make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} -- 2.49.1 From 7493b86f41abca4224865f841cdc17f164f433aa Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Fri, 16 Jan 2026 21:59:51 -0500 Subject: [PATCH 59/74] Merged build and package in treetap --- bootstrap.sh | 12 ++-- rootbuild.sh | 3 +- sources/autoconf/autoconf.spec | 8 --- sources/automake/automake.spec | 8 --- sources/bc/bc.spec | 6 +- sources/byacc/byacc.spec | 8 --- sources/bzip2/bzip2.spec | 10 +--- sources/cmake/cmake.spec | 10 +--- sources/coreutils/coreutils.spec | 8 --- sources/dash/dash.spec | 8 --- sources/diffutils/diffutils.spec | 4 -- sources/findutils/findutils.spec | 8 --- sources/flex/flex.spec | 8 --- sources/fortune-mod/fortune-mod.spec | 5 +- sources/grep/grep.spec | 4 -- sources/groff/groff.spec | 10 +--- sources/gzip/gzip.spec | 4 -- sources/initramfs-tools/initramfs-tools.spec | 8 --- sources/kmod/kmod.spec | 6 +- sources/libarchive/libarchive.spec | 10 +--- sources/libcap2/libcap2.spec | 6 +- sources/libelf/libelf.spec | 12 +--- sources/libressl/libressl.spec | 10 +--- sources/libtool/libtool.spec | 10 +--- sources/limine/limine.spec | 6 +- sources/linux/linux.spec | 6 +- sources/m4/m4.spec | 8 --- sources/make/make.spec | 8 --- sources/mawk/mawk.spec | 4 -- sources/muon/muon.spec | 10 +--- sources/musl/musl.spec | 10 +--- sources/nano/nano.spec | 6 +- sources/nasm/nasm.spec | 10 +--- sources/ncurses/ncurses.spec | 6 +- sources/openrc/openrc.spec | 6 +- sources/patch/patch.spec | 4 -- sources/perl/perl.spec | 10 +--- sources/pkgconf/pkgconf.spec | 8 --- sources/sed/sed.spec | 4 -- sources/tar/tar.spec | 4 -- sources/xz/xz.spec | 10 +--- sources/zlib/zlib.spec | 4 -- sources/zsh/zsh.spec | 6 +- treetap | 62 ++++++++++++-------- 44 files changed, 65 insertions(+), 313 deletions(-) diff --git a/bootstrap.sh b/bootstrap.sh index f7ddc62..2d52b9b 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -80,7 +80,7 @@ EOF fi # Install headers for Linux -LINUX_VERSION=$(sed -En "s/SRC_VERSION=\"?(.+)\"/\1/p" $SPEC/linux/linux.spec) +LINUX_VERSION=$($TREETAP variable $SPEC/linux/linux.spec SRC_VERSION) tar xf $SOURCES/linux/$LINUX_VERSION/linux-*.tar* cd linux-*/ # NOTE: LLVM=1 is required here because GCC and other GNU tools are required in @@ -95,7 +95,7 @@ cp -r usr/include $BOOTSTRAP/root/usr cd .. # Install headers for musl -MUSL_VERSION=$(sed -En "s/SRC_VERSION=\"?(.+)\"/\1/p" $SPEC/musl/musl.spec) +MUSL_VERSION=$($TREETAP variable $SPEC/musl/musl.spec SRC_VERSION) tar xf $SOURCES/musl/$MUSL_VERSION/musl-*.tar* cd musl-*/ # NOTE: Patch for musl 1.2.5 to prevent a character encoding vulnerability. This @@ -118,7 +118,7 @@ make -O -j $PROCS install-headers DESTDIR=$BOOTSTRAP/root cd .. # Build and install compiler-rt builtins -LLVM_VERSION=$(sed -En "s/SRC_VERSION=\"?(.+)\"/\1/p" $SPEC/llvm/llvm.spec) +LLVM_VERSION=$($TREETAP variable $SPEC/llvm/llvm.spec SRC_VERSION) LLVM_MAJOR_VERSION=$(echo $LLVM_VERSION | cut -d"." -f1) tar xf $SOURCES/llvm/$LLVM_VERSION/llvm-project-*.tar* cd llvm-project-*/ @@ -136,8 +136,7 @@ cd .. # system's runtime if this is not specified. ~ahill LIBCC="$BOOTSTRAP/root/lib/clang/$LLVM_MAJOR_VERSION/lib/linux/libclang_rt.builtins-x86_64.a" \ $TREETAP build $SPEC/musl/musl.spec -$TREETAP package $SPEC/musl/musl.spec -$TREETAP install $TT_DIR/packages/$MICROARCH/musl-*.cpio.xz $BOOTSTRAP/root +$TREETAP install $($TREETAP variable $SPEC/musl/musl.spec TT_PACKAGE) $BOOTSTRAP/root # Include compiler-rt and musl in our environment export CFLAGS="$CFLAGS -Qunused-arguments -rtlib=compiler-rt -Wl,--dynamic-linker=/lib/ld-musl-$ARCH.so.1" @@ -228,8 +227,7 @@ SOURCES=(coreutils dash diffutils findutils grep gzip make mawk patch sed tar) for name in $SOURCES; do $TREETAP fetch $SPEC/$name/$name.spec $TREETAP build $SPEC/$name/$name.spec - $TREETAP package $SPEC/$name/$name.spec - $TREETAP install $TT_DIR/packages/$MICROARCH/$name-*.cpio.xz $BOOTSTRAP/root + $TREETAP install $($TREETAP variable $SPEC/$name/$name.spec TT_PACKAGE) $BOOTSTRAP/root done # Install Treetap diff --git a/rootbuild.sh b/rootbuild.sh index 72888bb..2bd733c 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -50,6 +50,5 @@ PACKAGES="$LAYER0 $LAYER1 $LAYER2" for pkg in $PACKAGES; do treetap fetch /maple/sources/$pkg/$pkg.spec treetap build /maple/sources/$pkg/$pkg.spec - treetap package /maple/sources/$pkg/$pkg.spec - treetap install /maple/.treetap/packages/*/$pkg-*.cpio.xz + treetap install $(treetap variable /maple/sources/$pkg/$pkg.spec TT_PACKAGE) done diff --git a/sources/autoconf/autoconf.spec b/sources/autoconf/autoconf.spec index 317d458..141044e 100644 --- a/sources/autoconf/autoconf.spec +++ b/sources/autoconf/autoconf.spec @@ -9,13 +9,5 @@ build() { cd autoconf-*/ ./configure $TT_AUTOCONF_COMMON make -O -j $TT_PROCS -} - -clean() { - rm -rf autoconf-*/ -} - -package() { - cd autoconf-*/ make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR } \ No newline at end of file diff --git a/sources/automake/automake.spec b/sources/automake/automake.spec index 5ba1f74..caff8f1 100644 --- a/sources/automake/automake.spec +++ b/sources/automake/automake.spec @@ -9,13 +9,5 @@ build() { cd automake-*/ ./configure $TT_AUTOCONF_COMMON make -j $TT_PROCS -} - -clean() { - rm -rf automake-*/ -} - -package() { - cd automake-*/ make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR } \ No newline at end of file diff --git a/sources/bc/bc.spec b/sources/bc/bc.spec index c1b5fb2..04b0783 100644 --- a/sources/bc/bc.spec +++ b/sources/bc/bc.spec @@ -13,9 +13,5 @@ build() { # package on Maple Linux, so it doesn't make sense to include it for # the sole purpose of building bc. ~ahill make -O -j $TT_PROCS MAKEINFO=true -} - -package() { - cd bc-$SRC_VERSION/ make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR MAKEINFO=true -} +} \ No newline at end of file diff --git a/sources/byacc/byacc.spec b/sources/byacc/byacc.spec index e859572..fa43bc7 100644 --- a/sources/byacc/byacc.spec +++ b/sources/byacc/byacc.spec @@ -9,14 +9,6 @@ build() { cd byacc-*/ ./configure $TT_AUTOCONF_COMMON make -O -j $TT_PROCS -} - -clean() { - rm -rf byacc-*/ -} - -package() { - cd byacc-*/ # NOTE: byacc's "make install" calls diff -c, which is unsupported by # Busybox. Unfortunately, our other implementation of diff requires # byacc to build, meaning we'll need to do a manual install to prevent diff --git a/sources/bzip2/bzip2.spec b/sources/bzip2/bzip2.spec index 55a9a0f..e0ef636 100644 --- a/sources/bzip2/bzip2.spec +++ b/sources/bzip2/bzip2.spec @@ -19,14 +19,6 @@ build() { # NOTE: bzip2recover is part of the first Makefile, so we need to invoke # that to build the command. ~ahill make -O -j $TT_PROCS bzip2recover CC=$CC CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64" -} - -clean() { - rm -rf bzip2-*/ -} - -package() { - cd bzip2-*/ # NOTE: The shared Makefile doesn't have an "install" target, so we just # copy the files over ourselves. ~ahill mkdir -p $TT_INSTALLDIR$TT_BINDIR @@ -52,4 +44,4 @@ package() { ln -sf $SO_NAME $TT_INSTALLDIR$TT_LIBDIR/libbz2.so mkdir -p $TT_INSTALLDIR$TT_INCLUDEDIR cp bzlib.h $TT_INSTALLDIR$TT_INCLUDEDIR/ -} +} \ No newline at end of file diff --git a/sources/cmake/cmake.spec b/sources/cmake/cmake.spec index f2d87c1..c539bfa 100644 --- a/sources/cmake/cmake.spec +++ b/sources/cmake/cmake.spec @@ -22,13 +22,5 @@ build() { --system-zlib \ --xdgdatadir=$TT_DATADIR make -O -j $TT_PROCS -} - -clean() { - rm -rf cmake-*/ -} - -package() { - cd cmake-*/ make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR -} +} \ No newline at end of file diff --git a/sources/coreutils/coreutils.spec b/sources/coreutils/coreutils.spec index b597a62..471e7bd 100644 --- a/sources/coreutils/coreutils.spec +++ b/sources/coreutils/coreutils.spec @@ -9,13 +9,5 @@ build() { cd coreutils-*/ ./configure $TT_AUTOCONF_COMMON --disable-year2038 make -j $TT_PROCS -} - -clean() { - rm -rf coreutils-*/ -} - -package() { - cd coreutils-*/ make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR } \ No newline at end of file diff --git a/sources/dash/dash.spec b/sources/dash/dash.spec index 02b57f5..deb1446 100644 --- a/sources/dash/dash.spec +++ b/sources/dash/dash.spec @@ -10,14 +10,6 @@ build() { cd dash-*/ ./configure $TT_AUTOCONF_COMMON make -j $TT_PROCS -} - -clean() { - rm -rf dash-*/ -} - -package() { - cd dash-*/ make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR ln -s dash $TT_INSTALLDIR/bin/sh } \ No newline at end of file diff --git a/sources/diffutils/diffutils.spec b/sources/diffutils/diffutils.spec index 28eb121..19f4284 100644 --- a/sources/diffutils/diffutils.spec +++ b/sources/diffutils/diffutils.spec @@ -15,9 +15,5 @@ build() { # See also: https://lists.gnu.org/archive/html/bug-gnulib/2025-04/msg00056.html ./configure $TT_AUTOCONF_COMMON gl_cv_func_strcasecmp_works=y make -j $TT_PROCS -} - -package() { - cd diffutils-$SRC_VERSION/ make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR } \ No newline at end of file diff --git a/sources/findutils/findutils.spec b/sources/findutils/findutils.spec index 0bde17e..3241708 100644 --- a/sources/findutils/findutils.spec +++ b/sources/findutils/findutils.spec @@ -9,13 +9,5 @@ build() { cd findutils-*/ ./configure $TT_AUTOCONF_COMMON make -j $TT_PROCS -} - -clean() { - rm -rf findutils-*/ -} - -package() { - cd findutils-*/ make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR } \ No newline at end of file diff --git a/sources/flex/flex.spec b/sources/flex/flex.spec index dbf0ee6..c259d6f 100644 --- a/sources/flex/flex.spec +++ b/sources/flex/flex.spec @@ -9,13 +9,5 @@ build() { cd flex-*/ ./configure $TT_AUTOCONF_COMMON --disable-static make -O -j $TT_PROCS -} - -clean() { - rm -rf flex-*/ -} - -package() { - cd flex-*/ make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR } \ No newline at end of file diff --git a/sources/fortune-mod/fortune-mod.spec b/sources/fortune-mod/fortune-mod.spec index 246e426..5d0290b 100644 --- a/sources/fortune-mod/fortune-mod.spec +++ b/sources/fortune-mod/fortune-mod.spec @@ -30,11 +30,8 @@ build() { # NOTE: Is there a better way to do this? This probably won't survive # cross-compilation. ~ahill ./build-$SRC_VERSION/strfile maple -} - -package() { cmake --install build-$SRC_VERSION --parallel $TT_PROCS cp maple $TT_INSTALLDIR/usr/share/games/fortunes/ cp maple.dat $TT_INSTALLDIR/usr/share/games/fortunes/ ln -sf maple $TT_INSTALLDIR/usr/share/games/fortunes/maple.u8 -} +} \ No newline at end of file diff --git a/sources/grep/grep.spec b/sources/grep/grep.spec index 62ace69..1d9fc86 100644 --- a/sources/grep/grep.spec +++ b/sources/grep/grep.spec @@ -9,9 +9,5 @@ build() { cd grep-$SRC_VERSION/ ./configure $TT_AUTOCONF_COMMON make -j $TT_PROCS -} - -package() { - cd grep-$SRC_VERSION/ make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR } \ No newline at end of file diff --git a/sources/groff/groff.spec b/sources/groff/groff.spec index 22cc353..1df8ef3 100644 --- a/sources/groff/groff.spec +++ b/sources/groff/groff.spec @@ -9,13 +9,5 @@ build() { cd groff-*/ ./configure $TT_AUTOCONF_COMMON make -j $TT_PROCS -} - -clean() { - rm -rf groff-*/ -} - -package() { - cd groff-*/ make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR -} +} \ No newline at end of file diff --git a/sources/gzip/gzip.spec b/sources/gzip/gzip.spec index 0b95edc..c421d86 100644 --- a/sources/gzip/gzip.spec +++ b/sources/gzip/gzip.spec @@ -9,9 +9,5 @@ build() { cd gzip-$SRC_VERSION/ ./configure $TT_AUTOCONF_COMMON make -j $TT_PROCS -} - -package() { - cd gzip-$SRC_VERSION/ make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR } \ No newline at end of file diff --git a/sources/initramfs-tools/initramfs-tools.spec b/sources/initramfs-tools/initramfs-tools.spec index c38d512..fa51232 100644 --- a/sources/initramfs-tools/initramfs-tools.spec +++ b/sources/initramfs-tools/initramfs-tools.spec @@ -10,14 +10,6 @@ build() { cd initramfs-tools-*/ # NOTE: Since this is for a single file, we don't pass TT_PROC. ~ahill make -} - -clean() { - rm -rf initramfs-tools-*/ -} - -package() { - cd initramfs-tools-*/ # NOTE: There's no make install! ~ahill mkdir -p $TT_INSTALLDIR/bin diff --git a/sources/kmod/kmod.spec b/sources/kmod/kmod.spec index ebbd947..8c5f0bb 100644 --- a/sources/kmod/kmod.spec +++ b/sources/kmod/kmod.spec @@ -14,9 +14,5 @@ build() { # ~ahill ./configure $TT_AUTOCONF_COMMON --disable-manpages --enable-year2038 make -j $TT_PROCS -} - -package() { - cd kmod-$SRC_VERSION/ make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR -} +} \ No newline at end of file diff --git a/sources/libarchive/libarchive.spec b/sources/libarchive/libarchive.spec index 9711617..d4e8c2c 100644 --- a/sources/libarchive/libarchive.spec +++ b/sources/libarchive/libarchive.spec @@ -9,13 +9,5 @@ build() { cd libarchive-*/ ./configure $TT_AUTOCONF_COMMON --disable-static --enable-year2038 make -j $TT_PROCS -} - -clean() { - rm -rf libarchive-*/ -} - -package() { - cd libarchive-*/ make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR -} +} \ No newline at end of file diff --git a/sources/libcap2/libcap2.spec b/sources/libcap2/libcap2.spec index 40e6861..ff21098 100644 --- a/sources/libcap2/libcap2.spec +++ b/sources/libcap2/libcap2.spec @@ -17,10 +17,6 @@ build() { INCDIR=$TT_INCLUDEDIR \ exec_prefix=$TT_PREFIX \ prefix=$TT_PREFIX -} - -package() { - cd libcap-$SRC_VERSION/ make -O \ -C libcap \ -j $TT_PROCS \ @@ -30,4 +26,4 @@ package() { INCDIR=$TT_INCLUDEDIR \ exec_prefix=$TT_PREFIX \ prefix=$TT_PREFIX -} +} \ No newline at end of file diff --git a/sources/libelf/libelf.spec b/sources/libelf/libelf.spec index 876cc90..db60e79 100644 --- a/sources/libelf/libelf.spec +++ b/sources/libelf/libelf.spec @@ -19,13 +19,5 @@ build() { sed -i "s/-lzstd//" Makefile sed -i "/#define USE_ZSTD/d" src/config.h make -O -j $TT_PROCS -} - -clean() { - rm -rf libelf-$SRC_VERSION/ -} - -package() { - cd libelf-$SRC_VERSION/ - make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR INCDIR=/usr/include -} + make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR INCDIR=$TT_INCLUDEDIR +} \ No newline at end of file diff --git a/sources/libressl/libressl.spec b/sources/libressl/libressl.spec index dc3783d..c47318d 100644 --- a/sources/libressl/libressl.spec +++ b/sources/libressl/libressl.spec @@ -15,13 +15,5 @@ build() { # ~ahill ./configure $TT_AUTOCONF_COMMON --disable-static make -j $TT_PROCS -} - -clean() { - rm -rf libressl-*/ -} - -package() { - cd libressl-*/ make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR -} +} \ No newline at end of file diff --git a/sources/libtool/libtool.spec b/sources/libtool/libtool.spec index ad794dd..e9e2c49 100644 --- a/sources/libtool/libtool.spec +++ b/sources/libtool/libtool.spec @@ -15,13 +15,5 @@ build() { # libtoolize. Strangely enough, libtool is hard-coded to /bin/sh, so # I don't know why libtoolize uses /usr/bin/env. ~ahill sed -i "s|/usr/bin/env sh|/bin/sh|" libtoolize -} - -clean() { - rm -rf libtool-*/ -} - -package() { - cd libtool-*/ make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR -} +} \ No newline at end of file diff --git a/sources/limine/limine.spec b/sources/limine/limine.spec index 2a292c0..2b64995 100644 --- a/sources/limine/limine.spec +++ b/sources/limine/limine.spec @@ -10,9 +10,5 @@ build() { # TODO: How should other architectures be handled? ~ahill ./configure $TT_AUTOCONF_COMMON --enable-uefi-x86-64 make -O -j $TT_PROCS -} - -package() { - cd limine-$SRC_VERSION/ make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR -} +} \ No newline at end of file diff --git a/sources/linux/linux.spec b/sources/linux/linux.spec index c00d911..397773a 100755 --- a/sources/linux/linux.spec +++ b/sources/linux/linux.spec @@ -15,11 +15,7 @@ build() { # where to find the parser generator manually. ~ahill LLVM=1 make -j $TT_PROCS defconfig YACC=byacc LLVM=1 make -j $TT_PROCS YACC=byacc -} - -package() { - cd linux-$SRC_VERSION/ make -j $TT_PROCS install INSTALL_PATH=$TT_INSTALLDIR/boot make -j $TT_PROCS modules_install INSTALL_MOD_PATH=$TT_INSTALLDIR # TODO: Run dtbs_install on non-x86 systems ~ahill -} +} \ No newline at end of file diff --git a/sources/m4/m4.spec b/sources/m4/m4.spec index 0697fec..cca90d7 100644 --- a/sources/m4/m4.spec +++ b/sources/m4/m4.spec @@ -9,13 +9,5 @@ build() { cd m4-*/ ./configure $TT_AUTOCONF_COMMON --enable-year2038 make -j $TT_PROCS -} - -clean() { - rm -rf m4-*/ -} - -package() { - cd m4-*/ make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR } \ No newline at end of file diff --git a/sources/make/make.spec b/sources/make/make.spec index 0b6f226..ac1f89d 100644 --- a/sources/make/make.spec +++ b/sources/make/make.spec @@ -9,13 +9,5 @@ build() { cd make-*/ ./configure $TT_AUTOCONF_COMMON --enable-year2038 make -O -j $TT_PROCS -} - -clean() { - rm -rf make-*/ -} - -package() { - cd make-*/ make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR } \ No newline at end of file diff --git a/sources/mawk/mawk.spec b/sources/mawk/mawk.spec index 043512b..044b433 100644 --- a/sources/mawk/mawk.spec +++ b/sources/mawk/mawk.spec @@ -10,10 +10,6 @@ build() { cd mawk-$SRC_VERSION/ ./configure $TT_AUTOCONF_COMMON make -O -j $TT_PROCS -} - -package() { - cd mawk-$SRC_VERSION/ make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR ln -s mawk $TT_INSTALLDIR/bin/awk } \ No newline at end of file diff --git a/sources/muon/muon.spec b/sources/muon/muon.spec index 0de3bdd..17edc39 100644 --- a/sources/muon/muon.spec +++ b/sources/muon/muon.spec @@ -14,13 +14,5 @@ build() { CC="clang -std=c99" ./bootstrap.sh build ./build/muon-bootstrap setup $TT_MESON_COMMON build ./build/muon-bootstrap -C build samu -} - -clean() { - rm -rf muon-*/ -} - -package() { - cd muon-*/ DESTDIR=$TT_INSTALLDIR ./build/muon -C build install -} +} \ No newline at end of file diff --git a/sources/musl/musl.spec b/sources/musl/musl.spec index 455bb7f..688e1de 100755 --- a/sources/musl/musl.spec +++ b/sources/musl/musl.spec @@ -18,17 +18,9 @@ build() { patch -p1 < ../CVE-2025-26519.patch ./configure $TT_AUTOCONF_COMMON make -O -j $TT_PROCS -} - -clean() { - rm -rf musl-*/ -} - -package() { - cd musl-*/ DESTDIR=$TT_INSTALLDIR make install # NOTE: Apparently, the linker library has an entry point that we can use as # ldd. What kind of black magic is this? ~ahill mkdir -p $TT_INSTALLDIR/bin ln -sf /lib/ld-musl-$TT_ARCH.so.1 $TT_INSTALLDIR/bin/ldd -} +} \ No newline at end of file diff --git a/sources/nano/nano.spec b/sources/nano/nano.spec index eaed708..45e3c13 100644 --- a/sources/nano/nano.spec +++ b/sources/nano/nano.spec @@ -9,9 +9,5 @@ build() { cd nano-$SRC_VERSION/ ./configure $TT_AUTOCONF_COMMON --enable-utf8 --enable-year2038 make -O -j $TT_PROCS -} - -package() { - cd nano-$SRC_VERSION/ make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR -} +} \ No newline at end of file diff --git a/sources/nasm/nasm.spec b/sources/nasm/nasm.spec index b5be466..8653f8f 100644 --- a/sources/nasm/nasm.spec +++ b/sources/nasm/nasm.spec @@ -14,13 +14,5 @@ build() { # attempting to redefine a C++ keyword in include/compiler.h. sed -i "/# ifdef bool/,/# endif/d" include/compiler.h make -O -j $TT_PROCS -} - -clean() { - rm -rf nasm-$SRC_VERSION/ -} - -package() { - cd nasm-$SRC_VERSION/ make -O -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 index 117823c..23273f2 100644 --- a/sources/ncurses/ncurses.spec +++ b/sources/ncurses/ncurses.spec @@ -13,9 +13,5 @@ build() { --without-normal \ --with-shared make -O -j $TT_PROCS -} - -package() { - cd ncurses-$SRC_VERSION/ make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR -} +} \ No newline at end of file diff --git a/sources/openrc/openrc.spec b/sources/openrc/openrc.spec index 2eb5521..036143e 100644 --- a/sources/openrc/openrc.spec +++ b/sources/openrc/openrc.spec @@ -14,9 +14,5 @@ build() { -Dzsh-completions=true \ build muon samu -C build -} - -package() { - cd openrc-$SRC_VERSION/ muon -C build install -d $TT_INSTALLDIR -} +} \ No newline at end of file diff --git a/sources/patch/patch.spec b/sources/patch/patch.spec index aac3192..43ff880 100644 --- a/sources/patch/patch.spec +++ b/sources/patch/patch.spec @@ -9,9 +9,5 @@ build() { cd patch-$SRC_VERSION/ ./configure $TT_AUTOCONF_COMMON make -j $TT_PROCS -} - -package() { - cd patch-$SRC_VERSION/ make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR } \ No newline at end of file diff --git a/sources/perl/perl.spec b/sources/perl/perl.spec index 310694c..5293653 100644 --- a/sources/perl/perl.spec +++ b/sources/perl/perl.spec @@ -20,13 +20,5 @@ build() { -D usrinc=$TT_INCLUDEDIR \ -D vendorprefix=$TT_PREFIX make -O -j $TT_PROCS -} - -clean() { - rm -rf perl-*/ -} - -package() { - cd perl-*/ make -O -j $TT_PROCS install.perl DESTDIR=$TT_INSTALLDIR -} +} \ No newline at end of file diff --git a/sources/pkgconf/pkgconf.spec b/sources/pkgconf/pkgconf.spec index 470921e..b6a470d 100644 --- a/sources/pkgconf/pkgconf.spec +++ b/sources/pkgconf/pkgconf.spec @@ -9,14 +9,6 @@ build() { cd pkgconf-*/ ./configure $TT_AUTOCONF_COMMON --disable-static --enable-year2038 make -j $TT_PROCS -} - -clean() { - rm -rf pkgconf-*/ -} - -package() { - cd pkgconf-*/ make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR # NOTE: Symlink for compatibility's sake. Currently being used by Muon. # ~ahill diff --git a/sources/sed/sed.spec b/sources/sed/sed.spec index 5f417a9..11b0b6e 100644 --- a/sources/sed/sed.spec +++ b/sources/sed/sed.spec @@ -9,9 +9,5 @@ build() { cd sed-$SRC_VERSION/ ./configure $TT_AUTOCONF_COMMON make -j $TT_PROCS -} - -package() { - cd sed-$SRC_VERSION/ make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR } \ No newline at end of file diff --git a/sources/tar/tar.spec b/sources/tar/tar.spec index 4ff8017..a625f20 100644 --- a/sources/tar/tar.spec +++ b/sources/tar/tar.spec @@ -9,9 +9,5 @@ build() { cd tar-$SRC_VERSION/ ./configure $TT_AUTOCONF_COMMON make -j $TT_PROCS -} - -package() { - cd tar-$SRC_VERSION/ make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR } \ No newline at end of file diff --git a/sources/xz/xz.spec b/sources/xz/xz.spec index 05a10f6..4c405b0 100644 --- a/sources/xz/xz.spec +++ b/sources/xz/xz.spec @@ -13,13 +13,5 @@ build() { cd xz-*/ ./configure $TT_AUTOCONF_COMMON --disable-static --enable-year2038 make -O -j $TT_PROCS -} - -clean() { - rm -rf xz-*/ -} - -package() { - cd xz-*/ make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR -} +} \ No newline at end of file diff --git a/sources/zlib/zlib.spec b/sources/zlib/zlib.spec index 0a06773..b816008 100644 --- a/sources/zlib/zlib.spec +++ b/sources/zlib/zlib.spec @@ -24,9 +24,5 @@ build() { --prefix=/usr \ --shared make -O -j $TT_PROCS -} - -package() { - cd zlib-$SRC_VERSION/ make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR } \ No newline at end of file diff --git a/sources/zsh/zsh.spec b/sources/zsh/zsh.spec index db4db80..8dc2e37 100644 --- a/sources/zsh/zsh.spec +++ b/sources/zsh/zsh.spec @@ -19,10 +19,6 @@ build() { --enable-multibyte \ --enable-libc-musl make -O -j $TT_PROCS -} - -package() { - cd zsh-$SRC_VERSION/ make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR ln -sf zsh $TT_INSTALLDIR/bin/bash -} +} \ No newline at end of file diff --git a/treetap b/treetap index 6c76371..476404b 100755 --- a/treetap +++ b/treetap @@ -18,6 +18,14 @@ # Changelog # ############# +# January 16, 2026 (1.5.0) +# + Added TT_PACKAGE [ahill] +# + Added variable subcommand [ahill] +# * Converted the build log path to an absolute path [ahill] +# * Merged the functionality of the package verb into the build command [ahill] +# * Packages are no longer built if the package file exists already [ahill] +# - Removed the purge subcommand in favor of clean [ahill] + # January 4, 2026 (1.4.1) # * Set LD to ld.lld after mold was removed from Maple Linux. [ahill] # - Replaced clean with purge, since the current implementation of clean isn't @@ -79,8 +87,7 @@ # of useful variables to take advantage of. ~ahill # Specification Functions: -# build - Builds the package -# package - Installs the package contents to $TT_INSTALLDIR +# build - Builds the package and installs it to $TT_INSTALLDIR # Specification Variables: # SRC_FILENAME - The name of the tarball to extract (optional) @@ -126,6 +133,8 @@ # [scope: source] # TT_MICROARCH - The microarchitecture to optimize for # [scope: source] +# TT_PACKAGE - The path to the package being built +# [scope: source] # TT_PKGDIR - The path to the package directory # [scope: global] # TT_PREFIX - The desired prefix for the package @@ -150,7 +159,7 @@ [ -z "$TT_DIR" ] && TT_DIR="$(pwd)/.treetap" [ -z "$TT_PKGDIR" ] && TT_PKGDIR="$TT_DIR/packages" [ -z "$TT_SYSROOT" ] && TT_SYSROOT=/ -TT_VERSION="1.4.1" +TT_VERSION="1.5.0" ######################### # Environment Variables # @@ -183,8 +192,7 @@ help_message() { echo " $0 build " echo " $0 clean " echo " $0 fetch " - echo " $0 package " - echo " $0 purge " + echo " $0 variable " exit 1 } @@ -257,6 +265,7 @@ source_spec() { # occur and where to put the artifacts. ~ahill TT_BUILDDIR="$TT_DIR/sources/$SRC_NAME/$SRC_VERSION/$TT_MICROARCH" TT_INSTALLDIR="$TT_BUILDDIR/install" + TT_PACKAGE="$TT_PKGDIR/$TT_MICROARCH/$SRC_NAME-$SRC_FULLVERSION-$TT_MICROARCH.cpio.xz" # Create convenience variables TT_AUTOCONF_COMMON=$(echo "--bindir=$TT_BINDIR \ @@ -363,7 +372,12 @@ package_uninstall() { # Builds the source from the previously fetched tarball source_build() { source_spec $1 + if [ -f "$TT_PACKAGE" ]; then + echo "Skipping build for $SRC_NAME $SRC_FULLVERSION" + exit 0 + fi mkdir -p $TT_BUILDDIR + mkdir -p $TT_INSTALLDIR if [ ! -z "$SRC_PATCHES" ]; then echo -n "Validating patches for $SRC_NAME $SRC_FULLVERSION... " cd $(dirname $1) @@ -383,12 +397,18 @@ source_build() { cd $TT_BUILDDIR # Please don't use this in your build script. This is meant for # troubleshooting purposes. ~ahill - TT_BUILD_LOG=build-$(date +%Y%m%d%H%M%S).log + TT_BUILD_LOG=$TT_BUILDDIR/build-$(date +%Y%m%d%H%M%S).log echo "Build started with treetap $TT_VERSION at $(date)" > $TT_BUILD_LOG build >> $TT_BUILD_LOG 2>&1 echo "Build finished at $(date)" >> $TT_BUILD_LOG - cd $PUSHD echo "Done!" + cd $TT_INSTALLDIR + echo -n "Archiving $SRC_NAME $SRC_FULLVERSION for $TT_MICROARCH... " + mkdir -p $TT_PKGDIR/$TT_MICROARCH + find | bsdcpio -Jo > $TT_PACKAGE + rm -rf $TT_INSTALLDIR + echo "Done!" + cd $PUSHD exit 0 } @@ -416,27 +436,18 @@ source_fetch() { exit 0 } -# Packages the built artifacts for distribution -source_package() { +# Purges the entire build directory for a source +source_clean() { source_spec $1 - mkdir -p $TT_BUILDDIR - mkdir -p $TT_INSTALLDIR - mkdir -p $TT_PKGDIR/$TT_MICROARCH - PUSHD=$(pwd) - cd $TT_BUILDDIR - 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_FULLVERSION-$TT_MICROARCH.cpio.xz" - rm -rf $TT_INSTALLDIR - cd $PUSHD + rm -rf $TT_BUILDDIR exit 0 } -# Purges the entire build directory for a source -source_purge() { +# Prints a variable defined by treetap +source_variable() { source_spec $1 - rm -rf $TT_BUILDDIR + [ -z "$2" ] && (echo "source_variable: Variable name not given"; exit 1) + eval "echo \${$2}" exit 0 } @@ -446,11 +457,10 @@ source_purge() { case "$1" in "build") source_build $2 ;; -"clean") source_purge $2 ;; +"clean") source_clean $2 ;; "fetch") source_fetch $2 ;; "install") package_install $2 $3 ;; -"package") source_package $2 ;; -"purge") source_purge $2 ;; "uninstall") package_uninstall $2 $3 ;; +"variable") source_variable $2 $3 ;; *) help_message ;; esac -- 2.49.1 From ab8ca1e539aa28c64af09df5fa9d288714eb0d20 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 17 Jan 2026 08:17:29 -0500 Subject: [PATCH 60/74] Added missing packages to bootstrap --- bootstrap.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bootstrap.sh b/bootstrap.sh index 2d52b9b..94e43d7 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -253,11 +253,14 @@ SOURCES=( grep groff gzip + initramfs-tools kmod libarchive + libcap2 libelf libressl libtool + limine linux llvm m4 @@ -268,6 +271,7 @@ SOURCES=( nano nasm ncurses + openrc patch perl pkgconf -- 2.49.1 From cb3257ca55926826762388a3d2c6754cab645f6e Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 17 Jan 2026 09:05:49 -0500 Subject: [PATCH 61/74] Successful rootbuild with all components! --- rootbuild.sh | 42 ++++++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/rootbuild.sh b/rootbuild.sh index 2bd733c..279789b 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -3,27 +3,41 @@ export CC=clang export CFLAGS="-O3 -pipe" export CXX=clang++ export CXXFLAGS=$CFLAGS +export LD=ld.lld +export TT_MICROARCH=skylake # Temporary workaround since root is the only user. ~ahill export FORCE_UNSAFE_CONFIGURE=1 # xz Build -# NOTE: xz is needed to run "treetap package", so we manually install. ~ahill +# NOTE: xz is needed to run "treetap build", so we manually build. ~ahill cd /maple -treetap build sources/xz/xz.spec -cd .treetap/sources/xz/*/*/xz-*/ +XZ_VERSION=$(treetap variable /maple/sources/xz/xz.spec SRC_VERSION) echo -n "Bootstrapping xz... " -make -j $(nproc) install DESTDIR=/ > /dev/null 2>&1 +cd .treetap/sources/xz/$XZ_VERSION +mkdir -p $TT_MICROARCH +cd $TT_MICROARCH +tar xf ../xz-*.tar* +cd xz-*/ +./configure $(treetap variable /maple/sources/xz/xz.spec TT_AUTOCONF_COMMON) --disable-static --enable-year2038 > /maple/xz.log 2>&1 +make -j $(nproc) >> /maple/xz.log 2>&1 +make -j $(nproc) install DESTDIR=/ > /maple/xz.log 2>&1 echo "Done!" # libarchive Build -# NOTE: bsdcpio is needed to run "treetap package", so we manually install. +# NOTE: bsdcpio is needed to run "treetap build", so we manually build. # ~ahill cd /maple -treetap build sources/libarchive/libarchive.spec -cd .treetap/sources/libarchive/*/*/libarchive-*/ +LIBARCHIVE_VERSION=$(treetap variable /maple/sources/libarchive/libarchive.spec SRC_VERSION) echo -n "Bootstrapping libarchive... " -make -j $(nproc) install DESTDIR=/ > /dev/null 2>&1 +cd .treetap/sources/libarchive/$LIBARCHIVE_VERSION +mkdir -p $TT_MICROARCH +cd $TT_MICROARCH +tar xf ../libarchive-*.tar* +cd libarchive-*/ +./configure $(treetap variable /maple/sources/libarchive/libarchive.spec TT_AUTOCONF_COMMON) --disable-static --enable-year2038 > /maple/libarchive.log 2>&1 +make -j $(nproc) > /maple/libarchive.log 2>&1 +make -j $(nproc) install DESTDIR=/ > /maple/libarchive.log 2>&1 echo "Done!" # Now we can build stuff exclusively with treetap @@ -41,12 +55,16 @@ echo "Done!" # NOTE: fortune-mod requires cmake to build. ~ahill # NOTE: nano requires ncurses to build. ~ahill # NOTE: kmod requires autoconf, automake, libtool to build. ~ahill +# NOTE: libcap2 requires zsh to build. ~ahill # NOTE: Linux requires bc, byacc, flex, kmod, ... ~ahill +# NOTE: Limine requires nasm to build. ~ahill +# NOTE: OpenRC requires libcap2 and muon to build. ~ahill cd /maple -LAYER0="bc byacc bzip2 coreutils diffutils findutils grep gzip libressl m4 make mawk muon musl ncurses patch perl pkgconf sed tar xz zlib zsh" -LAYER1="autoconf automake flex groff libarchive libelf libtool nano" -LAYER2="dash nasm cmake fortune-mod kmod linux" -PACKAGES="$LAYER0 $LAYER1 $LAYER2" +LAYER0="bc byacc bzip2 coreutils diffutils findutils grep gzip initramfs-tools libressl m4 make mawk muon musl ncurses patch perl pkgconf sed tar xz zlib zsh" +LAYER1="autoconf automake flex groff libarchive libcap2 libelf libtool nano openrc" +LAYER2="cmake dash fortune-mod kmod nasm" +LAYER3="limine linux" +PACKAGES="$LAYER0 $LAYER1 $LAYER2 $LAYER3" for pkg in $PACKAGES; do treetap fetch /maple/sources/$pkg/$pkg.spec treetap build /maple/sources/$pkg/$pkg.spec -- 2.49.1 From 378e4d31d89601f7041e4b7f358ff7e7719434ed Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 17 Jan 2026 13:42:37 -0500 Subject: [PATCH 62/74] Added a licensing section --- README.md | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ecd708a..0b248c1 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,58 @@ While it may sound too good to be true, that's because it is. Maple Linux does n - By taking advantage of newer hardware, we are making the system incompatible with older machines. This isn't to say that Maple Linux *shouldn't* be run on older machines, but rather that it is out of scope for this project. If you want to make this run on your own hardware, then by all means, go right ahead. That's the beauty of open source. - In order to achieve the "unified" experience, the software you are given has been pre-determined so we can focus on optimizing Maple Linux as a whole. This makes it far less generic and customizable, but offers a much more coherent and focused system overall. In addition, this makes it much more maintainable for a single developer such as myself. +### Licensing + +Maple Linux is built upon software created by various developers, and is distributed under various licenses as a result. While it isn't one of the main goals of the system, especially since Linux itself is copyleft, I aim to create an operating system that's as free as I can reasonably make it. + +| Software | Copyright Holder | License | Alignment | +| ----------------------------- | --------------------------------------------------- | -------------------------------------------------------------------------------------- | ------------------ | +| Autoconf | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| Automake | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| GNU bc | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| Berkeley Yacc | Public Domain | Public Domain | Free | +| bzip2 | Julian R. Seward | Modified Zlib license | Free | +| CMake | Kitware, Inc. and Contributors | BSD 3-Clause license | Free | +| Coreutils | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| Debian Almquist Shell | Various | Modified BSD 3-Clause license(?) *and* GNU General Public License version 3 | Slightly Copyleft | +| GNU Diffutils | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| GNU Find Utilities | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| Flex | Various | BSD 2-Clause license | Free | +| fortune-mod | Various | BSD 4-Clause license | Free | +| GNU Grep | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| GNU roff | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| GNU Gzip | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| initramfs-tools | Various | GNU General Public License version 2 | Copyleft | +| kmod | Various | GNU Lesser General Public License version 2.1 | Copyleft | +| libarchive | Tim Kientzle | Mostly BSD 2-Clause license | Free | +| libcap | Andrew G. Morgan | BSD 3-Clause license *or* GNU General Public License version 2 | Slightly Copyleft | +| libelf | Various | GNU General Public License version 2 *and* GNU Lesser General Public License version 3 | Copyleft | +| LibreSSL | Various | Various | Free | +| The GNU Portable Library Tool | Free Software Foundation, Inc. | GNU General Public License version 2 | Copyleft | +| Limine | Mintsuki and Contributors | BSD 2-Clause license | Free | +| Linux | Linus Torvalds and Contributors | Mostly GNU General Public License version 2 with Linux Syscall Note | Copyleft | +| LLVM | Various | Mostly Apache License version 2.0 with LLVM exceptions | Free | +| GNU m4 | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| GNU Make | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| Maple Linux Bootstrap Scripts | Alexander Hill, Nicholas McDaniel, and Contributors | ISC License | Free | +| Mawk | Various | GNU General Public License version 2 | Copyleft | +| muon | Stone Tickle and Contributors | GNU General Public License version 3 | Copyleft | +| musl | Rich Felker and Contributors | Mostly MIT License | Slightly Copyright | +| GNU nano | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| The Netwide Assembler | "The NASM Authors" | BSD 2-Clause license | Free | +| New Curses | Thomas E. Dickey and Free Software Foundation, Inc. | Modified MIT License | Free | +| OpenRC | Roy Marples and the OpenRC authors | BSD 2-Clause license | Free | +| GNU patch | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| Perl | Larry Wall and others | GNU General Public License version 1 | Copyleft | +| pkgconf | Various | ISC License | Free | +| GNU sed | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| GNU tar | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| xz | Various | Mostly BSD 0-Clause license | Slightly Copyleft | +| Zlib | Jean-loup Gailly and Mark Adler | Zlib License | Free | +| Zsh | The Zsh development group | Mostly MIT License (Modern Variant) | Slightly Copyleft | + +If any of the information listed above is inaccurate, please submit a patch to correct the README. ~ahill + ### Filesystem Hierarchy Maple Linux uses a slightly different filesystem hierarchy compared to most Linux systems, but it shouldn't be enough to become incompatible with existing software. The following are the notable changes: @@ -24,4 +76,4 @@ Maple Linux uses a slightly different filesystem hierarchy compared to most Linu - `/boot` - This is the mount point for the EFI System Partition - `/lib` - This is the canonical location for all system-level libraries. Paths such as `/usr/lib` and `/usr/libexec` should be considered legacy. -Many of alternative paths are symlinked for compatibility's sake. \ No newline at end of file +Many of alternative paths are symlinked for compatibility's sake. -- 2.49.1 From dc84a744bf65b3a37747aefeece3794cb8bf5bf6 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 17 Jan 2026 15:08:56 -0500 Subject: [PATCH 63/74] Adding a visual presentation of licensing --- README.md | 2 ++ licensebar.sh | 29 +++++++++++++++++++++++++++++ licensebar.svg | 9 +++++++++ 3 files changed, 40 insertions(+) create mode 100755 licensebar.sh create mode 100644 licensebar.svg diff --git a/README.md b/README.md index 0b248c1..c9ee01f 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,8 @@ While it may sound too good to be true, that's because it is. Maple Linux does n Maple Linux is built upon software created by various developers, and is distributed under various licenses as a result. While it isn't one of the main goals of the system, especially since Linux itself is copyleft, I aim to create an operating system that's as free as I can reasonably make it. +![Licensing Summary](licensebar.svg) + | Software | Copyright Holder | License | Alignment | | ----------------------------- | --------------------------------------------------- | -------------------------------------------------------------------------------------- | ------------------ | | Autoconf | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | diff --git a/licensebar.sh b/licensebar.sh new file mode 100755 index 0000000..3932527 --- /dev/null +++ b/licensebar.sh @@ -0,0 +1,29 @@ +#!/bin/sh -e +# Usage: ./licensebar.sh +# Yes, this is cursed, but it was the simplest way I could think of automating this. ~ahill +BAR_BORDER=3 +BAR_HEIGHT=16 +BAR_TOTAL=$(expr $1 + $2 + $3 + $4 + $5 + $6) +BAR_WIDTH=1024 + +BAR_END=$(expr $BAR_WIDTH - $BAR_BORDER) +BAR_INNER=$(expr $BAR_WIDTH - \( 2 \* $BAR_BORDER \)) +BAR_OFFSET=$BAR_BORDER + +render_segment() { + size=$(printf %.0f $(echo "($BAR_INNER / $BAR_TOTAL) * $2" | bc -l)) + echo "" + BAR_OFFSET=$(expr $BAR_OFFSET + $size) +} + +echo "" +echo "" + +render_segment blue $1 +render_segment cornflowerblue $2 +render_segment white $3 +render_segment mediumpurple $4 +render_segment indianred $5 +render_segment crimson $6 + +echo "" diff --git a/licensebar.svg b/licensebar.svg new file mode 100644 index 0000000..6a84617 --- /dev/null +++ b/licensebar.svg @@ -0,0 +1,9 @@ + + + + + + + + + -- 2.49.1 From d6e538f62e2e009f8981a8bfe892811ce2bb4f82 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sun, 18 Jan 2026 15:55:55 -0500 Subject: [PATCH 64/74] Built curl, expat, and gettext, and added git --- README.md | 4 ++++ STATUS.md | 5 ++++- licensebar.sh | 23 +++++++++++++++-------- licensebar.svg | 12 ++++++------ rootbuild.sh | 7 +++++-- sources/curl/curl.spec | 18 ++++++++++++++++++ sources/expat/expat.spec | 13 +++++++++++++ sources/gettext/gettext.spec | 13 +++++++++++++ sources/git/git.spec | 14 ++++++++++++++ 9 files changed, 92 insertions(+), 17 deletions(-) create mode 100644 sources/curl/curl.spec create mode 100644 sources/expat/expat.spec create mode 100644 sources/gettext/gettext.spec create mode 100644 sources/git/git.spec diff --git a/README.md b/README.md index c9ee01f..760c75f 100644 --- a/README.md +++ b/README.md @@ -31,11 +31,15 @@ Maple Linux is built upon software created by various developers, and is distrib | bzip2 | Julian R. Seward | Modified Zlib license | Free | | CMake | Kitware, Inc. and Contributors | BSD 3-Clause license | Free | | Coreutils | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| curl | Daniel Stenberg and many contributors | The curl license | Free | | Debian Almquist Shell | Various | Modified BSD 3-Clause license(?) *and* GNU General Public License version 3 | Slightly Copyleft | | GNU Diffutils | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| Expat | Various | MIT License | Free | | GNU Find Utilities | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | | Flex | Various | BSD 2-Clause license | Free | | fortune-mod | Various | BSD 4-Clause license | Free | +| gettext | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| git | Linus Torvalds and Contributors | GNU General Public License version 2 | Copyleft | | GNU Grep | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | | GNU roff | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | | GNU Gzip | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | diff --git a/STATUS.md b/STATUS.md index 2ba24dd..3243aad 100644 --- a/STATUS.md +++ b/STATUS.md @@ -14,14 +14,17 @@ Definitions: | `chrony` | | `cmake` | Yes | Yes | | `coreutils` | Yes | Yes | +| `curl` | Yes | Yes | | `dash` | Yes | Yes | | `dhcpcd` | | `diffutils` | Yes | Yes | +| `expat` | Yes | Yes | | `findutils` | Yes | Yes | | `flatpak` | | `flex` | Yes | Yes | | `fortune-mod` | Yes | Yes | -| `gettext` | +| `gettext` | Yes | Yes | +| `git` | Yes | | `grep` | Yes | Yes | | `groff` | Yes | Yes | | `gzip` | Yes | Yes | diff --git a/licensebar.sh b/licensebar.sh index 3932527..8068213 100755 --- a/licensebar.sh +++ b/licensebar.sh @@ -1,9 +1,16 @@ #!/bin/sh -e -# Usage: ./licensebar.sh +# Usage: ./licensebar.sh # Yes, this is cursed, but it was the simplest way I could think of automating this. ~ahill +COPYLEFT_COUNT=$(grep "| Copyleft " README.md | wc -l) +SLIGHTLY_COPYLEFT_COUNT=$(grep "| Slightly Copyleft " README.md | wc -l) +FREE_COUNT=$(grep "| Free " README.md | wc -l) +MIXED_COUNT=$(grep "| Mixed " README.md | wc -l) +SLIGHTLY_COPYRIGHT_COUNT=$(grep "| Slightly Copyright |" README.md | wc -l) +COPYRIGHT_COUNT=$(grep "| Copyright " README.md | wc -l) + BAR_BORDER=3 BAR_HEIGHT=16 -BAR_TOTAL=$(expr $1 + $2 + $3 + $4 + $5 + $6) +BAR_TOTAL=$(expr $COPYLEFT_COUNT + $SLIGHTLY_COPYLEFT_COUNT + $FREE_COUNT + $MIXED_COUNT + $SLIGHTLY_COPYRIGHT_COUNT + $COPYRIGHT_COUNT) BAR_WIDTH=1024 BAR_END=$(expr $BAR_WIDTH - $BAR_BORDER) @@ -19,11 +26,11 @@ render_segment() { echo "" echo "" -render_segment blue $1 -render_segment cornflowerblue $2 -render_segment white $3 -render_segment mediumpurple $4 -render_segment indianred $5 -render_segment crimson $6 +render_segment blue $COPYLEFT_COUNT +render_segment cornflowerblue $SLIGHTLY_COPYLEFT_COUNT +render_segment white $FREE_COUNT +render_segment mediumpurple $MIXED_COUNT +render_segment indianred $SLIGHTLY_COPYRIGHT_COUNT +render_segment crimson $COPYRIGHT_COUNT echo "" diff --git a/licensebar.svg b/licensebar.svg index 6a84617..46d4f01 100644 --- a/licensebar.svg +++ b/licensebar.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/rootbuild.sh b/rootbuild.sh index 279789b..fca3bdf 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -59,9 +59,12 @@ echo "Done!" # NOTE: Linux requires bc, byacc, flex, kmod, ... ~ahill # NOTE: Limine requires nasm to build. ~ahill # NOTE: OpenRC requires libcap2 and muon to build. ~ahill +# NOTE: curl requires LibreSSL and zlib to build. ~ahill +# NOTE: gettext requires ncurses to build. ~ahill +# NOTE: git requires curl, expat, and gettext to build. ~ahill cd /maple -LAYER0="bc byacc bzip2 coreutils diffutils findutils grep gzip initramfs-tools libressl m4 make mawk muon musl ncurses patch perl pkgconf sed tar xz zlib zsh" -LAYER1="autoconf automake flex groff libarchive libcap2 libelf libtool nano openrc" +LAYER0="bc byacc bzip2 coreutils diffutils expat findutils grep gzip initramfs-tools libressl m4 make mawk muon musl ncurses patch perl pkgconf sed tar xz zlib zsh" +LAYER1="autoconf automake curl flex gettext groff libarchive libcap2 libelf libtool nano openrc" LAYER2="cmake dash fortune-mod kmod nasm" LAYER3="limine linux" PACKAGES="$LAYER0 $LAYER1 $LAYER2 $LAYER3" diff --git a/sources/curl/curl.spec b/sources/curl/curl.spec new file mode 100644 index 0000000..a3889bc --- /dev/null +++ b/sources/curl/curl.spec @@ -0,0 +1,18 @@ +# Maintainer: Alexander Hill +SRC_HASH="40df79166e74aa20149365e11ee4c798a46ad57c34e4f68fd13100e2c9a91946" +SRC_NAME="curl" +SRC_URL="https://curl.se/download/curl-8.18.0.tar.xz" +SRC_VERSION="8.18.0" + +build() { + tar xf ../$SRC_FILENAME + cd curl-$SRC_VERSION/ + ./configure $TT_AUTOCONF_COMMON \ + --disable-libgcc \ + --disable-static \ + --enable-optimize \ + --with-openssl \ + --without-libpsl + make -j $TT_PROCS + make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/expat/expat.spec b/sources/expat/expat.spec new file mode 100644 index 0000000..ca924a9 --- /dev/null +++ b/sources/expat/expat.spec @@ -0,0 +1,13 @@ +# Maintainer: Alexander Hill +SRC_HASH="71df8f40706a7bb0a80a5367079ea75d91da4f8c65c58ec59bcdfbf7decdab9f" +SRC_NAME="expat" +SRC_URL="https://github.com/libexpat/libexpat/releases/download/R_2_7_3/expat-2.7.3.tar.xz" +SRC_VERSION="2.7.3" + +build() { + tar xf ../$SRC_FILENAME + cd expat-$SRC_VERSION/ + ./configure $TT_AUTOCONF_COMMON --disable-static + make -O -j $TT_PROCS + make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/gettext/gettext.spec b/sources/gettext/gettext.spec new file mode 100644 index 0000000..9a37931 --- /dev/null +++ b/sources/gettext/gettext.spec @@ -0,0 +1,13 @@ +# Maintainer: Alexander Hill +SRC_HASH="39acf4b0371e9b110b60005562aace5b3631fed9b1bb9ecccfc7f56e58bb1d7f" +SRC_NAME="gettext" +SRC_URL="https://ftp.gnu.org/pub/gnu/gettext/gettext-0.26.tar.gz" +SRC_VERSION="0.26" + +build() { + tar xf ../$SRC_FILENAME + cd gettext-$SRC_VERSION/ + ./configure $TT_AUTOCONF_COMMON --disable-static --enable-year2038 + make -O -j $TT_PROCS + make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/git/git.spec b/sources/git/git.spec new file mode 100644 index 0000000..377d814 --- /dev/null +++ b/sources/git/git.spec @@ -0,0 +1,14 @@ +# Maintainer: Alexander Hill +SRC_HASH="3cd8fee86f69a949cb610fee8cd9264e6873d07fa58411f6060b3d62729ed7c5" +SRC_NAME="git" +SRC_URL="https://www.kernel.org/pub/software/scm/git/git-2.52.0.tar.xz" +SRC_VERSION="2.52.0" + +build() { + tar xf ../$SRC_FILENAME + cd git-$SRC_VERSION/ + # TODO: What breaks if I pass NO_CURL or NO_EXPAT? ~ahill + make -j $TT_PROCS NO_REGEX=NeedsStartEnd NO_TCLTK=1 + # TODO: How do we tell git where to install components? ~ahill + make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR NO_REGEX=NeedsStartEnd NO_TCLTK=1 +} \ No newline at end of file -- 2.49.1 From 3ca3b096818f32b52f2f2d7782f72f642e1ee521 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sun, 18 Jan 2026 20:29:28 -0500 Subject: [PATCH 65/74] Built Python --- README.md | 1 + STATUS.md | 1 + licensebar.svg | 10 +++++----- sources/python/python.spec | 24 ++++++++++++++++++++++++ 4 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 sources/python/python.spec diff --git a/README.md b/README.md index 760c75f..f96c9cb 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,7 @@ Maple Linux is built upon software created by various developers, and is distrib | GNU patch | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | | Perl | Larry Wall and others | GNU General Public License version 1 | Copyleft | | pkgconf | Various | ISC License | Free | +| Python | Python Software Foundation, BeOpen, and CWI | Python Software Foundation License Version 2 | Copyleft | | GNU sed | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | | GNU tar | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | | xz | Various | Mostly BSD 0-Clause license | Slightly Copyleft | diff --git a/STATUS.md b/STATUS.md index 3243aad..387f5c4 100644 --- a/STATUS.md +++ b/STATUS.md @@ -57,6 +57,7 @@ Definitions: | `perl` | Yes | Yes | | `pkgconf` | Yes | Yes | | `pipewire` | +| `python` | Yes | Yes | | `sed` | Yes | Yes | | `shadow` | | `tar` | Yes | Yes | diff --git a/licensebar.svg b/licensebar.svg index 46d4f01..98c5e5e 100644 --- a/licensebar.svg +++ b/licensebar.svg @@ -1,9 +1,9 @@ - - - - - + + + + + diff --git a/sources/python/python.spec b/sources/python/python.spec new file mode 100644 index 0000000..6be6ff0 --- /dev/null +++ b/sources/python/python.spec @@ -0,0 +1,24 @@ +# Maintainer: Alexander Hill +SRC_HASH="00e07d7c0f2f0cc002432d1ee84d2a40dae404a99303e3f97701c10966c91834" +SRC_NAME="python" +SRC_URL="https://www.python.org/ftp/python/3.9.25/Python-3.9.25.tar.xz" +SRC_VERSION="3.9.25" + +# NOTE: Yes, this is end-of-life, but it's the last version of Python that +# supports LibreSSL, so we're stuck with it for now. ~ahill +# See also: https://peps.python.org/pep-0644/ + +build() { + tar xf ../$SRC_FILENAME + cd Python-$SRC_VERSION/ + # NOTE: Python must do some clang-specific checks because it attempts to + # find and link with libclang_rt.profile.a, which unfortunately does + # not exist at the moment. Since it only attempts to link when + # CC=clang, we just override CC for the configuration portion. ~ahill + CC=cc ./configure $TT_AUTOCONF_COMMON --enable-optimizations + make -O -j $TT_PROCS + make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR + # Bad Python! Bad! ~ahill + mv $TT_INSTALLDIR/include/python3.9/* $TT_INSTALLDIR/usr/include/python3.9/ + rm -rf $TT_INSTALLDIR/include +} \ No newline at end of file -- 2.49.1 From 6aa48ac35858662d120d80da4569f6456fd287a6 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sun, 18 Jan 2026 21:21:07 -0500 Subject: [PATCH 66/74] Built git --- STATUS.md | 2 +- sources/git/git.spec | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/STATUS.md b/STATUS.md index 387f5c4..f15111a 100644 --- a/STATUS.md +++ b/STATUS.md @@ -24,7 +24,7 @@ Definitions: | `flex` | Yes | Yes | | `fortune-mod` | Yes | Yes | | `gettext` | Yes | Yes | -| `git` | Yes | +| `git` | Yes | Yes | | `grep` | Yes | Yes | | `groff` | Yes | Yes | | `gzip` | Yes | Yes | diff --git a/sources/git/git.spec b/sources/git/git.spec index 377d814..9f16b8f 100644 --- a/sources/git/git.spec +++ b/sources/git/git.spec @@ -7,8 +7,10 @@ SRC_VERSION="2.52.0" build() { tar xf ../$SRC_FILENAME cd git-$SRC_VERSION/ - # TODO: What breaks if I pass NO_CURL or NO_EXPAT? ~ahill - make -j $TT_PROCS NO_REGEX=NeedsStartEnd NO_TCLTK=1 - # TODO: How do we tell git where to install components? ~ahill - make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR NO_REGEX=NeedsStartEnd NO_TCLTK=1 + ./configure $TT_AUTOCONF_COMMON --without-tcltk + make -j $TT_PROCS NO_GITWEB=YesPlease NO_PERL=YesPlease NO_REGEX=NeedsStartEnd + make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR NO_GITWEB=YesPlease NO_PERL=YesPlease NO_REGEX=NeedsStartEnd + # Another package ignoring proper paths? Unacceptable! ~ahill + mv $TT_INSTALLDIR/share/* $TT_INSTALLDIR/usr/share/ + rm -rf $TT_INSTALLDIR/share } \ No newline at end of file -- 2.49.1 From fc1728da0c556ef64f29449c02d781799b70cc90 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Mon, 19 Jan 2026 21:27:26 -0500 Subject: [PATCH 67/74] Successfully built LLVM! --- STATUS.md | 2 +- bootstrap.sh | 5 ++++ rootbuild.sh | 6 ++-- sources/llvm/llvm.spec | 51 +++++++++++++++++++++++++++++++++ sources/llvm/rtsan-127764.patch | 22 ++++++++++++++ 5 files changed, 83 insertions(+), 3 deletions(-) create mode 100644 sources/llvm/rtsan-127764.patch diff --git a/STATUS.md b/STATUS.md index f15111a..0e72ad4 100644 --- a/STATUS.md +++ b/STATUS.md @@ -42,7 +42,7 @@ Definitions: | `libtool` | Yes | Yes | | `limine` | Yes | Yes | | `linux` | Yes | Yes | -| `llvm` | No | No | +| `llvm` | Yes | No | | `m4` | Yes | Yes | | `make` | Yes | Yes | | `mawk` | Yes | Yes | diff --git a/bootstrap.sh b/bootstrap.sh index 94e43d7..baf1267 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -245,11 +245,15 @@ SOURCES=( bzip2 cmake coreutils + curl dash diffutils + expat findutils flex fortune-mod + gettext + git grep groff gzip @@ -275,6 +279,7 @@ SOURCES=( patch perl pkgconf + python sed tar xz diff --git a/rootbuild.sh b/rootbuild.sh index fca3bdf..dbbee95 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -62,10 +62,12 @@ echo "Done!" # NOTE: curl requires LibreSSL and zlib to build. ~ahill # NOTE: gettext requires ncurses to build. ~ahill # NOTE: git requires curl, expat, and gettext to build. ~ahill +# NOTE: Python requires bzip2, expat, LibreSSL, ncurses, xz, and zlib to build. ~ahill +# NOTE: LLVM requires CMake and Python to build. ~ahill cd /maple LAYER0="bc byacc bzip2 coreutils diffutils expat findutils grep gzip initramfs-tools libressl m4 make mawk muon musl ncurses patch perl pkgconf sed tar xz zlib zsh" -LAYER1="autoconf automake curl flex gettext groff libarchive libcap2 libelf libtool nano openrc" -LAYER2="cmake dash fortune-mod kmod nasm" +LAYER1="autoconf automake curl flex gettext groff libarchive libcap2 libelf libtool nano openrc python" +LAYER2="cmake dash fortune-mod git kmod llvm nasm" LAYER3="limine linux" PACKAGES="$LAYER0 $LAYER1 $LAYER2 $LAYER3" for pkg in $PACKAGES; do diff --git a/sources/llvm/llvm.spec b/sources/llvm/llvm.spec index f8f7c11..267297f 100755 --- a/sources/llvm/llvm.spec +++ b/sources/llvm/llvm.spec @@ -1,5 +1,56 @@ # Maintainer: Alexander Hill SRC_HASH="4633a23617fa31a3ea51242586ea7fb1da7140e426bd62fc164261fe036aa142" SRC_NAME="llvm" +SRC_PATCHES=" +1e52d86c422498ed5d926ad90e0787e79b8a02cb33cc916b1897c2a6ebfef9fc rtsan-127764.patch +" SRC_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.8/llvm-project-21.1.8.src.tar.xz" SRC_VERSION="21.1.8" + +build() { + tar xf ../$SRC_FILENAME + cd llvm-project-$SRC_VERSION.src/ + # NOTE: This version of LLVM has an issue where compiler-rt attempts to use + # a header before it is has been built. This patch fixes it. ~ahill + # See also: https://github.com/llvm/llvm-project/issues/127764 + patch -p1 < ../rtsan-127764.patch + # NOTE: compiler-rt fails to build on musl because execinfo.h is missing. + # Disabling COMPILER_RT_BUILD_GWP_ASAN works. ~ahill + # NOTE: LLVM_ENABLE_ZSTD is disabled because we don't have zstd in the + # sysroot, and because I don't believe that a library created by + # Facebook should be required for an operating system to function. + # ~ahill + # NOTE: Many build scripts still rely on the old Unix names for tools such + # as cc and ld to function. Because of this, we enable + # LLVM_INSTALL_BINUTILS_SYMLINKS and LLVM_INSTALL_CCTOOLS_SYMLINKS for + # compatibility's sake. ~ahill + cmake -B build -S llvm \ + -DCLANG_DEFAULT_CXX_STDLIB=libc++ \ + -DCLANG_DEFAULT_LINKER=lld \ + -DCLANG_DEFAULT_RTLIB=compiler-rt \ + -DCLANG_DEFAULT_UNWINDLIB=libunwind \ + -DCLANG_VENDOR=Maple \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=$TT_INSTALLDIR \ + -DCOMPILER_RT_BUILD_GWP_ASAN=OFF \ + -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON \ + -DLIBCXX_CXX_ABI=libcxxabi \ + -DLIBCXX_HAS_MUSL_LIBC=ON \ + -DLIBCXX_USE_COMPILER_RT=ON \ + -DLIBCXXABI_USE_COMPILER_RT=ON \ + -DLIBCXXABI_USE_LLVM_UNWINDER=ON \ + -DLIBUNWIND_USE_COMPILER_RT=ON \ + -DLLVM_ENABLE_PROJECTS="clang;lld;llvm" \ + -DLLVM_ENABLE_RUNTIMES="compiler-rt;libclc;libcxx;libcxxabi;libunwind" \ + -DLLVM_ENABLE_ZSTD=OFF \ + -DLLVM_HOST_TRIPLE=$TT_TARGET \ + -DLLVM_INSTALL_BINUTILS_SYMLINKS=ON \ + -DLLVM_INSTALL_CCTOOLS_SYMLINKS=ON + cmake --build build --parallel $TT_PROCS + cmake --install build --parallel $TT_PROCS + # NOTE: LLVM doesn't add symlinks for clang or ld.lld, so I'll make them + # myself. ~ahill + ln -sf clang $TT_INSTALLDIR/bin/cc + ln -sf clang++ $TT_INSTALLDIR/bin/c++ + ln -sf ld.lld $TT_INSTALLDIR/bin/ld +} \ No newline at end of file diff --git a/sources/llvm/rtsan-127764.patch b/sources/llvm/rtsan-127764.patch new file mode 100644 index 0000000..7ea316e --- /dev/null +++ b/sources/llvm/rtsan-127764.patch @@ -0,0 +1,22 @@ +--- + compiler-rt/lib/rtsan/CMakeLists.txt | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/compiler-rt/lib/rtsan/CMakeLists.txt b/compiler-rt/lib/rtsan/CMakeLists.txt +index a4413d9992b6..40bcf7facad7 100644 +--- a/compiler-rt/lib/rtsan/CMakeLists.txt ++++ b/compiler-rt/lib/rtsan/CMakeLists.txt +@@ -37,6 +37,11 @@ set(RTSAN_DYNAMIC_LIBS + ${SANITIZER_CXX_ABI_LIBRARIES} + ${SANITIZER_COMMON_LINK_LIBS}) + ++if(TARGET cxx-headers OR HAVE_LIBCXX) ++ # Rtsan uses C++ standard library headers. ++ set(RTSAN_DEPS cxx-headers) ++endif() ++ + append_rtti_flag(OFF RTSAN_CFLAGS) + + if(APPLE) +-- +2.43.0 -- 2.49.1 From d81eed71852c2bba51ad01db9d25c9a834ce5b60 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Thu, 22 Jan 2026 21:41:52 -0500 Subject: [PATCH 68/74] Added a low-level roadmap for booting --- STATUS.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/STATUS.md b/STATUS.md index 0e72ad4..3c71b01 100644 --- a/STATUS.md +++ b/STATUS.md @@ -18,6 +18,8 @@ Definitions: | `dash` | Yes | Yes | | `dhcpcd` | | `diffutils` | Yes | Yes | +| `dosfstools` | +| `efibootmgr` | | `expat` | Yes | Yes | | `findutils` | Yes | Yes | | `flatpak` | @@ -40,8 +42,10 @@ Definitions: | `libnftnl` | | `libressl` | Yes | Yes | | `libtool` | Yes | Yes | +| `libyaml` | | `limine` | Yes | Yes | | `linux` | Yes | Yes | +| `liquid` | | `llvm` | Yes | No | | `m4` | Yes | Yes | | `make` | Yes | Yes | @@ -52,12 +56,14 @@ Definitions: | `nasm` | Yes | Yes | | `ncurses` | Yes | Yes | | `nftables` | +| `nilfs-utils` | | `openrc` | Yes | Yes | | `patch` | Yes | Yes | | `perl` | Yes | Yes | | `pkgconf` | Yes | Yes | | `pipewire` | | `python` | Yes | Yes | +| `ruby` | | `sed` | Yes | Yes | | `shadow` | | `tar` | Yes | Yes | -- 2.49.1 From a9f255e5f53d56276d31bf5177df9d028ad39f81 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 24 Jan 2026 13:03:55 -0500 Subject: [PATCH 69/74] Built libffi, libyaml, liquid, and Ruby --- README.md | 53 +--------------------------------- SOFTWARE.md | 56 ++++++++++++++++++++++++++++++++++++ STATUS.md | 7 +++-- licensebar.sh | 14 ++++----- licensebar.svg | 12 ++++---- sources/libffi/libffi.spec | 13 +++++++++ sources/libyaml/libyaml.spec | 13 +++++++++ sources/liquid/liquid.spec | 19 ++++++++++++ sources/ruby/ruby.spec | 16 +++++++++++ 9 files changed, 135 insertions(+), 68 deletions(-) create mode 100644 SOFTWARE.md create mode 100644 sources/libffi/libffi.spec create mode 100644 sources/libyaml/libyaml.spec create mode 100644 sources/liquid/liquid.spec create mode 100644 sources/ruby/ruby.spec diff --git a/README.md b/README.md index f96c9cb..b757b05 100644 --- a/README.md +++ b/README.md @@ -22,58 +22,7 @@ Maple Linux is built upon software created by various developers, and is distrib ![Licensing Summary](licensebar.svg) -| Software | Copyright Holder | License | Alignment | -| ----------------------------- | --------------------------------------------------- | -------------------------------------------------------------------------------------- | ------------------ | -| Autoconf | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | -| Automake | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | -| GNU bc | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | -| Berkeley Yacc | Public Domain | Public Domain | Free | -| bzip2 | Julian R. Seward | Modified Zlib license | Free | -| CMake | Kitware, Inc. and Contributors | BSD 3-Clause license | Free | -| Coreutils | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | -| curl | Daniel Stenberg and many contributors | The curl license | Free | -| Debian Almquist Shell | Various | Modified BSD 3-Clause license(?) *and* GNU General Public License version 3 | Slightly Copyleft | -| GNU Diffutils | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | -| Expat | Various | MIT License | Free | -| GNU Find Utilities | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | -| Flex | Various | BSD 2-Clause license | Free | -| fortune-mod | Various | BSD 4-Clause license | Free | -| gettext | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | -| git | Linus Torvalds and Contributors | GNU General Public License version 2 | Copyleft | -| GNU Grep | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | -| GNU roff | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | -| GNU Gzip | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | -| initramfs-tools | Various | GNU General Public License version 2 | Copyleft | -| kmod | Various | GNU Lesser General Public License version 2.1 | Copyleft | -| libarchive | Tim Kientzle | Mostly BSD 2-Clause license | Free | -| libcap | Andrew G. Morgan | BSD 3-Clause license *or* GNU General Public License version 2 | Slightly Copyleft | -| libelf | Various | GNU General Public License version 2 *and* GNU Lesser General Public License version 3 | Copyleft | -| LibreSSL | Various | Various | Free | -| The GNU Portable Library Tool | Free Software Foundation, Inc. | GNU General Public License version 2 | Copyleft | -| Limine | Mintsuki and Contributors | BSD 2-Clause license | Free | -| Linux | Linus Torvalds and Contributors | Mostly GNU General Public License version 2 with Linux Syscall Note | Copyleft | -| LLVM | Various | Mostly Apache License version 2.0 with LLVM exceptions | Free | -| GNU m4 | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | -| GNU Make | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | -| Maple Linux Bootstrap Scripts | Alexander Hill, Nicholas McDaniel, and Contributors | ISC License | Free | -| Mawk | Various | GNU General Public License version 2 | Copyleft | -| muon | Stone Tickle and Contributors | GNU General Public License version 3 | Copyleft | -| musl | Rich Felker and Contributors | Mostly MIT License | Slightly Copyright | -| GNU nano | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | -| The Netwide Assembler | "The NASM Authors" | BSD 2-Clause license | Free | -| New Curses | Thomas E. Dickey and Free Software Foundation, Inc. | Modified MIT License | Free | -| OpenRC | Roy Marples and the OpenRC authors | BSD 2-Clause license | Free | -| GNU patch | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | -| Perl | Larry Wall and others | GNU General Public License version 1 | Copyleft | -| pkgconf | Various | ISC License | Free | -| Python | Python Software Foundation, BeOpen, and CWI | Python Software Foundation License Version 2 | Copyleft | -| GNU sed | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | -| GNU tar | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | -| xz | Various | Mostly BSD 0-Clause license | Slightly Copyleft | -| Zlib | Jean-loup Gailly and Mark Adler | Zlib License | Free | -| Zsh | The Zsh development group | Mostly MIT License (Modern Variant) | Slightly Copyleft | - -If any of the information listed above is inaccurate, please submit a patch to correct the README. ~ahill +For more information about the software included in this project and its licensing, see [SOFTWARE.md](./SOFTWARE.md). ### Filesystem Hierarchy diff --git a/SOFTWARE.md b/SOFTWARE.md new file mode 100644 index 0000000..779e325 --- /dev/null +++ b/SOFTWARE.md @@ -0,0 +1,56 @@ +| Software | Copyright Holder | License | Alignment | +| ----------------------------- | --------------------------------------------------- | -------------------------------------------------------------------------------------- | ------------------ | +| Autoconf | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| Automake | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| GNU bc | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| Berkeley Yacc | Public Domain | Public Domain | Free | +| bzip2 | Julian R. Seward | Modified Zlib license | Free | +| CMake | Kitware, Inc. and Contributors | BSD 3-Clause license | Free | +| Coreutils | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| curl | Daniel Stenberg and many contributors | The curl license | Free | +| Debian Almquist Shell | Various | Modified BSD 3-Clause license(?) *and* GNU General Public License version 3 | Slightly Copyleft | +| GNU Diffutils | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| Expat | Various | MIT License | Free | +| GNU Find Utilities | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| Flex | Various | BSD 2-Clause license | Free | +| fortune-mod | Various | BSD 4-Clause license | Free | +| gettext | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| git | Linus Torvalds and Contributors | GNU General Public License version 2 | Copyleft | +| GNU Grep | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| GNU roff | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| GNU Gzip | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| initramfs-tools | Various | GNU General Public License version 2 | Copyleft | +| kmod | Various | GNU Lesser General Public License version 2.1 | Copyleft | +| libarchive | Tim Kientzle | Mostly BSD 2-Clause license | Free | +| libcap | Andrew G. Morgan | BSD 3-Clause license *or* GNU General Public License version 2 | Slightly Copyleft | +| libelf | Various | GNU General Public License version 2 *and* GNU Lesser General Public License version 3 | Copyleft | +| libffi | Anthony Green, Red Hat, Inc and others | MIT License | Free | +| LibreSSL | Various | Various | Free | +| libyaml | Ingy döt Net and Kirill Simonov | MIT License | Free | +| The GNU Portable Library Tool | Free Software Foundation, Inc. | GNU General Public License version 2 | Copyleft | +| Limine | Mintsuki and Contributors | BSD 2-Clause license | Free | +| Linux | Linus Torvalds and Contributors | Mostly GNU General Public License version 2 with Linux Syscall Note | Copyleft | +| Liquid template engine | Tobias Luetke | MIT License | Free | +| LLVM | Various | Mostly Apache License version 2.0 with LLVM exceptions | Free | +| GNU m4 | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| GNU Make | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| Maple Linux Bootstrap Scripts | Alexander Hill, Nicholas McDaniel, and Contributors | ISC License | Free | +| Mawk | Various | GNU General Public License version 2 | Copyleft | +| muon | Stone Tickle and Contributors | GNU General Public License version 3 | Copyleft | +| musl | Rich Felker and Contributors | Mostly MIT License | Slightly Copyright | +| GNU nano | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| The Netwide Assembler | "The NASM Authors" | BSD 2-Clause license | Free | +| New Curses | Thomas E. Dickey and Free Software Foundation, Inc. | Modified MIT License | Free | +| OpenRC | Roy Marples and the OpenRC authors | BSD 2-Clause license | Free | +| GNU patch | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| Perl | Larry Wall and others | GNU General Public License version 1 | Copyleft | +| pkgconf | Various | ISC License | Free | +| Python | Python Software Foundation, BeOpen, and CWI | Python Software Foundation License Version 2 | Copyleft | +| Ruby | Various | Various | Mixed | +| GNU sed | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| GNU tar | Free Software Foundation, Inc. | GNU General Public License version 3 | Copyleft | +| xz | Various | Mostly BSD 0-Clause license | Slightly Copyleft | +| Zlib | Jean-loup Gailly and Mark Adler | Zlib License | Free | +| Zsh | The Zsh development group | Mostly MIT License (Modern Variant) | Slightly Copyleft | + +If any of the information listed above is inaccurate, please send me an e-mail or submit a patch and it will be corrected. ~ahill \ No newline at end of file diff --git a/STATUS.md b/STATUS.md index 3c71b01..ad648db 100644 --- a/STATUS.md +++ b/STATUS.md @@ -38,14 +38,15 @@ Definitions: | `libarchive` | Yes | Yes | | `libcap2` | Yes | Yes | | `libelf` | Yes | Yes | +| `libffi` | Yes | Yes | | `libmnl` | | `libnftnl` | | `libressl` | Yes | Yes | | `libtool` | Yes | Yes | -| `libyaml` | +| `libyaml` | Yes | Yes | | `limine` | Yes | Yes | | `linux` | Yes | Yes | -| `liquid` | +| `liquid` | Yes | Yes | | `llvm` | Yes | No | | `m4` | Yes | Yes | | `make` | Yes | Yes | @@ -63,7 +64,7 @@ Definitions: | `pkgconf` | Yes | Yes | | `pipewire` | | `python` | Yes | Yes | -| `ruby` | +| `ruby` | Yes | Yes | | `sed` | Yes | Yes | | `shadow` | | `tar` | Yes | Yes | diff --git a/licensebar.sh b/licensebar.sh index 8068213..f258078 100755 --- a/licensebar.sh +++ b/licensebar.sh @@ -1,12 +1,12 @@ #!/bin/sh -e -# Usage: ./licensebar.sh +# Usage: ./licensebar.sh > licensebar.svg # Yes, this is cursed, but it was the simplest way I could think of automating this. ~ahill -COPYLEFT_COUNT=$(grep "| Copyleft " README.md | wc -l) -SLIGHTLY_COPYLEFT_COUNT=$(grep "| Slightly Copyleft " README.md | wc -l) -FREE_COUNT=$(grep "| Free " README.md | wc -l) -MIXED_COUNT=$(grep "| Mixed " README.md | wc -l) -SLIGHTLY_COPYRIGHT_COUNT=$(grep "| Slightly Copyright |" README.md | wc -l) -COPYRIGHT_COUNT=$(grep "| Copyright " README.md | wc -l) +COPYLEFT_COUNT=$(grep "| Copyleft " SOFTWARE.md | wc -l) +SLIGHTLY_COPYLEFT_COUNT=$(grep "| Slightly Copyleft " SOFTWARE.md | wc -l) +FREE_COUNT=$(grep "| Free " SOFTWARE.md | wc -l) +MIXED_COUNT=$(grep "| Mixed " SOFTWARE.md | wc -l) +SLIGHTLY_COPYRIGHT_COUNT=$(grep "| Slightly Copyright |" SOFTWARE.md | wc -l) +COPYRIGHT_COUNT=$(grep "| Copyright " SOFTWARE.md | wc -l) BAR_BORDER=3 BAR_HEIGHT=16 diff --git a/licensebar.svg b/licensebar.svg index 98c5e5e..5aea0f6 100644 --- a/licensebar.svg +++ b/licensebar.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/sources/libffi/libffi.spec b/sources/libffi/libffi.spec new file mode 100644 index 0000000..43a129b --- /dev/null +++ b/sources/libffi/libffi.spec @@ -0,0 +1,13 @@ +# Maintainer: Alexander Hill +SRC_HASH="f3a3082a23b37c293a4fcd1053147b371f2ff91fa7ea1b2a52e335676bac82dc" +SRC_NAME="libffi" +SRC_URL="https://github.com/libffi/libffi/releases/download/v3.5.2/libffi-3.5.2.tar.gz" +SRC_VERSION="3.5.2" + +build() { + tar xf ../$SRC_FILENAME + cd libffi-$SRC_VERSION/ + ./configure $TT_AUTOCONF_COMMON --disable-static + make -O -j $TT_PROCS + make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/libyaml/libyaml.spec b/sources/libyaml/libyaml.spec new file mode 100644 index 0000000..28ded2b --- /dev/null +++ b/sources/libyaml/libyaml.spec @@ -0,0 +1,13 @@ +# Maintainer: Alexander Hill +SRC_HASH="c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4" +SRC_NAME="libyaml" +SRC_URL="https://github.com/yaml/libyaml/releases/download/0.2.5/yaml-0.2.5.tar.gz" +SRC_VERSION="0.2.5" + +build() { + tar xf ../$SRC_FILENAME + cd yaml-$SRC_VERSION/ + ./configure $TT_AUTOCONF_COMMON --disable-static + make -O -j $TT_PROCS + make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file diff --git a/sources/liquid/liquid.spec b/sources/liquid/liquid.spec new file mode 100644 index 0000000..27eef11 --- /dev/null +++ b/sources/liquid/liquid.spec @@ -0,0 +1,19 @@ +# Maintainer: Alexander Hill +SRC_HASH="f3314240c846140d7be742e405882302f01dbecc51b8dd44d97cdad62d978f03" +SRC_NAME="liquid" +SRC_URL="https://github.com/Shopify/liquid/archive/refs/tags/v5.11.0.tar.gz" +SRC_VERSION="5.11.0" + +SRC_FILENAME="$SRC_NAME-$SRC_VERSION.tar.gz" + +build() { + tar xf ../$SRC_FILENAME + cd liquid-$SRC_VERSION/ + gem build liquid.gemspec + gem install \ + --install-dir $TT_INSTALLDIR/lib/ruby/gems/4.0.0 \ + --local \ + --ignore-dependencies \ + --verbose \ + ./liquid-$SRC_VERSION.gem +} \ No newline at end of file diff --git a/sources/ruby/ruby.spec b/sources/ruby/ruby.spec new file mode 100644 index 0000000..bdef6e7 --- /dev/null +++ b/sources/ruby/ruby.spec @@ -0,0 +1,16 @@ +# Maintainer: Alexander Hill +SRC_HASH="3924be2d05db30f4e35f859bf028be85f4b7dd01714142fd823e4af5de2faf9d" +SRC_NAME="ruby" +SRC_URL="https://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.1.tar.gz" +SRC_VERSION="4.0.1" + +build() { + tar xf ../$SRC_FILENAME + cd ruby-$SRC_VERSION/ + # NOTE: Yes, Ruby has a configuration script already, but it lacks the + # --enable-year2038 option, so we rebuild it. ~ahill + ./autogen.sh + ./configure $TT_AUTOCONF_COMMON --enable-year2038 --without-gcc + make -O -j $TT_PROCS + make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR +} \ No newline at end of file -- 2.49.1 From 021c1f2cb5dc845507b58b4999af3d20d981f442 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 24 Jan 2026 13:37:56 -0500 Subject: [PATCH 70/74] Reverted LLVM's status due to build issues --- STATUS.md | 2 +- rootbuild.sh | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/STATUS.md b/STATUS.md index ad648db..293000b 100644 --- a/STATUS.md +++ b/STATUS.md @@ -47,7 +47,7 @@ Definitions: | `limine` | Yes | Yes | | `linux` | Yes | Yes | | `liquid` | Yes | Yes | -| `llvm` | Yes | No | +| `llvm` | No | No | | `m4` | Yes | Yes | | `make` | Yes | Yes | | `mawk` | Yes | Yes | diff --git a/rootbuild.sh b/rootbuild.sh index dbbee95..ddc9b79 100755 --- a/rootbuild.sh +++ b/rootbuild.sh @@ -64,10 +64,12 @@ echo "Done!" # NOTE: git requires curl, expat, and gettext to build. ~ahill # NOTE: Python requires bzip2, expat, LibreSSL, ncurses, xz, and zlib to build. ~ahill # NOTE: LLVM requires CMake and Python to build. ~ahill +# NOTE: Ruby requires autoconf, libffi, and libyaml to build. ~ahill +# NOTE: Liquid requires Ruby to build. ~ahill cd /maple LAYER0="bc byacc bzip2 coreutils diffutils expat findutils grep gzip initramfs-tools libressl m4 make mawk muon musl ncurses patch perl pkgconf sed tar xz zlib zsh" LAYER1="autoconf automake curl flex gettext groff libarchive libcap2 libelf libtool nano openrc python" -LAYER2="cmake dash fortune-mod git kmod llvm nasm" +LAYER2="cmake dash fortune-mod git kmod nasm" LAYER3="limine linux" PACKAGES="$LAYER0 $LAYER1 $LAYER2 $LAYER3" for pkg in $PACKAGES; do -- 2.49.1 From 14e50055c0b8f27570641534294a240b59e081c2 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 24 Jan 2026 15:10:18 -0500 Subject: [PATCH 71/74] Cleaned the branch up --- README.md | 4 ++-- SOFTWARE.md => docs/SOFTWARE.md | 0 STATUS.md => docs/STATUS.md | 0 licensebar.svg => docs/licensebar.svg | 0 bootstrap.sh => scripts/bootstrap.sh | 6 ++++-- licensebar.sh => scripts/licensebar.sh | 14 +++++++------- maple-chroot => scripts/maple-chroot | 0 rescue.sh => scripts/rescue.sh | 4 ++-- rootbuild.sh => scripts/rootbuild.sh | 0 treetap => scripts/treetap | 0 10 files changed, 15 insertions(+), 13 deletions(-) rename SOFTWARE.md => docs/SOFTWARE.md (100%) rename STATUS.md => docs/STATUS.md (100%) rename licensebar.svg => docs/licensebar.svg (100%) rename bootstrap.sh => scripts/bootstrap.sh (98%) rename licensebar.sh => scripts/licensebar.sh (73%) rename maple-chroot => scripts/maple-chroot (100%) rename rescue.sh => scripts/rescue.sh (91%) rename rootbuild.sh => scripts/rootbuild.sh (100%) rename treetap => scripts/treetap (100%) diff --git a/README.md b/README.md index b757b05..ce349d8 100644 --- a/README.md +++ b/README.md @@ -20,9 +20,9 @@ While it may sound too good to be true, that's because it is. Maple Linux does n Maple Linux is built upon software created by various developers, and is distributed under various licenses as a result. While it isn't one of the main goals of the system, especially since Linux itself is copyleft, I aim to create an operating system that's as free as I can reasonably make it. -![Licensing Summary](licensebar.svg) +![Licensing Summary](docs/licensebar.svg) -For more information about the software included in this project and its licensing, see [SOFTWARE.md](./SOFTWARE.md). +For more information about the software included in this project and its licensing, see [SOFTWARE.md](docs/SOFTWARE.md). ### Filesystem Hierarchy diff --git a/SOFTWARE.md b/docs/SOFTWARE.md similarity index 100% rename from SOFTWARE.md rename to docs/SOFTWARE.md diff --git a/STATUS.md b/docs/STATUS.md similarity index 100% rename from STATUS.md rename to docs/STATUS.md diff --git a/licensebar.svg b/docs/licensebar.svg similarity index 100% rename from licensebar.svg rename to docs/licensebar.svg diff --git a/bootstrap.sh b/scripts/bootstrap.sh similarity index 98% rename from bootstrap.sh rename to scripts/bootstrap.sh index baf1267..51e660b 100755 --- a/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -23,7 +23,7 @@ export CXXFLAGS=$CFLAGS export RANLIB=llvm-ranlib export LD=ld.lld export LDFLAGS="--sysroot=$BOOTSTRAP/root" -export TREETAP=$(pwd)/treetap +export TREETAP=$(pwd)/scripts/treetap export TT_DIR=$(pwd)/.treetap export TT_MICROARCH=$MICROARCH export TT_SYSROOT=$BOOTSTRAP/root @@ -35,8 +35,10 @@ $TREETAP fetch sources/llvm/llvm.spec $TREETAP fetch sources/musl/musl.spec # Make sure both clang-tblgen and llvm-tblgen are in the PATH. ~ahill +echo -n "Verifying that clang-tblgen and llvm-tblgen are in the PATH... " ! which clang-tblgen && exit 1 ! which llvm-tblgen && exit 1 +echo "Done!" # Simplified filesystem heirarchy with symlinks for compatibility mkdir -p $BOOTSTRAP/root/{bin,boot/EFI/BOOT,dev,etc,home,lib,proc,run,sys,tmp,usr/{include,share},var/{cache,lib,log,spool,tmp}} @@ -235,7 +237,7 @@ cp $TREETAP $BOOTSTRAP/root/bin/ # Prepare for chroot build mkdir -p $BOOTSTRAP/root/maple/ -cp $BOOTSTRAP/../rootbuild.sh $BOOTSTRAP/root/maple/ +cp $BOOTSTRAP/../scripts/rootbuild.sh $BOOTSTRAP/root/maple/ export TT_DIR=$BOOTSTRAP/root/maple/.treetap SOURCES=( autoconf diff --git a/licensebar.sh b/scripts/licensebar.sh similarity index 73% rename from licensebar.sh rename to scripts/licensebar.sh index f258078..901bf35 100755 --- a/licensebar.sh +++ b/scripts/licensebar.sh @@ -1,12 +1,12 @@ #!/bin/sh -e -# Usage: ./licensebar.sh > licensebar.svg +# Usage: ./licensebar.sh docs/SOFTWARE.md > licensebar.svg # Yes, this is cursed, but it was the simplest way I could think of automating this. ~ahill -COPYLEFT_COUNT=$(grep "| Copyleft " SOFTWARE.md | wc -l) -SLIGHTLY_COPYLEFT_COUNT=$(grep "| Slightly Copyleft " SOFTWARE.md | wc -l) -FREE_COUNT=$(grep "| Free " SOFTWARE.md | wc -l) -MIXED_COUNT=$(grep "| Mixed " SOFTWARE.md | wc -l) -SLIGHTLY_COPYRIGHT_COUNT=$(grep "| Slightly Copyright |" SOFTWARE.md | wc -l) -COPYRIGHT_COUNT=$(grep "| Copyright " SOFTWARE.md | wc -l) +COPYLEFT_COUNT=$(grep "| Copyleft " $1 | wc -l) +SLIGHTLY_COPYLEFT_COUNT=$(grep "| Slightly Copyleft " $1 | wc -l) +FREE_COUNT=$(grep "| Free " $1 | wc -l) +MIXED_COUNT=$(grep "| Mixed " $1 | wc -l) +SLIGHTLY_COPYRIGHT_COUNT=$(grep "| Slightly Copyright |" $1 | wc -l) +COPYRIGHT_COUNT=$(grep "| Copyright " $1 | wc -l) BAR_BORDER=3 BAR_HEIGHT=16 diff --git a/maple-chroot b/scripts/maple-chroot similarity index 100% rename from maple-chroot rename to scripts/maple-chroot diff --git a/rescue.sh b/scripts/rescue.sh similarity index 91% rename from rescue.sh rename to scripts/rescue.sh index 1649d40..d98ab46 100755 --- a/rescue.sh +++ b/scripts/rescue.sh @@ -5,7 +5,7 @@ # rebuild after something like diffutils fails to build. ~ahill # The following script was created with: -# sh -c "grep export bootstrap.sh | sed /CCACHE/d; echo zsh" >> rescue.sh +# sh -c "grep export scripts/bootstrap.sh | sed /CCACHE/d; echo zsh" >> scripts/rescue.sh export MICROARCH=skylake export TARGET=x86_64-maple-linux-musl @@ -23,7 +23,7 @@ export CXXFLAGS=$CFLAGS export RANLIB=llvm-ranlib export LD=ld.lld export LDFLAGS="--sysroot=$BOOTSTRAP/root" -export TREETAP=$(pwd)/treetap +export TREETAP=$(pwd)/scripts/treetap export TT_DIR=$(pwd)/.treetap export TT_MICROARCH=$MICROARCH export TT_SYSROOT=$BOOTSTRAP/root diff --git a/rootbuild.sh b/scripts/rootbuild.sh similarity index 100% rename from rootbuild.sh rename to scripts/rootbuild.sh diff --git a/treetap b/scripts/treetap similarity index 100% rename from treetap rename to scripts/treetap -- 2.49.1 From e7ba6c4eee3fa0859f1ccdc874e460efe7b566fc Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 24 Jan 2026 17:47:33 -0500 Subject: [PATCH 72/74] Created mapleconf --- scripts/mapleconf | 48 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100755 scripts/mapleconf diff --git a/scripts/mapleconf b/scripts/mapleconf new file mode 100755 index 0000000..68f6843 --- /dev/null +++ b/scripts/mapleconf @@ -0,0 +1,48 @@ +#!/bin/ruby + +# Copyright (c) 2026 Alexander Hill + +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. + +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +# PERFORMANCE OF THIS SOFTWARE. + +require "liquid" +require "psych" + +# TODO: Tie these variables to command line arguments. ~ahill +$config = Psych.safe_load_file "/etc/maple.yml" +$sysroot = "/" +$templates = "/usr/share/mapleconf" + +def render_directory(stack) + path = stack.empty? ? "/" : "/#{stack.join "/"}/" + + Dir.foreach $templates + path do |entry| + next if entry =~ /^\.+$/ + fullpath = path + entry + + if File.directory? $templates + fullpath + Dir.mkdir $sysroot + fullpath unless File.exist? $sysroot + fullpath + render_directory stack + [entry] + + elsif File.file? $templates + fullpath + puts fullpath + template = Liquid::Template.parse(File.read $templates + fullpath) + File.write $sysroot + fullpath, template.render($config) + + else + puts "What even is #{fullpath}? If you know, yell at Alex." + + end + end +end + +render_directory [] -- 2.49.1 From 7926a72de775952464b6cd812320321df014bb28 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sat, 24 Jan 2026 23:39:06 -0500 Subject: [PATCH 73/74] Successfully built LLVM --- docs/STATUS.md | 2 +- sources/llvm/llvm.spec | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/STATUS.md b/docs/STATUS.md index 293000b..ad648db 100644 --- a/docs/STATUS.md +++ b/docs/STATUS.md @@ -47,7 +47,7 @@ Definitions: | `limine` | Yes | Yes | | `linux` | Yes | Yes | | `liquid` | Yes | Yes | -| `llvm` | No | No | +| `llvm` | Yes | No | | `m4` | Yes | Yes | | `make` | Yes | Yes | | `mawk` | Yes | Yes | diff --git a/sources/llvm/llvm.spec b/sources/llvm/llvm.spec index 267297f..e330c60 100755 --- a/sources/llvm/llvm.spec +++ b/sources/llvm/llvm.spec @@ -13,7 +13,7 @@ build() { # NOTE: This version of LLVM has an issue where compiler-rt attempts to use # a header before it is has been built. This patch fixes it. ~ahill # See also: https://github.com/llvm/llvm-project/issues/127764 - patch -p1 < ../rtsan-127764.patch + patch -p1 < ../rtsan-127764.patch # NOTE: compiler-rt fails to build on musl because execinfo.h is missing. # Disabling COMPILER_RT_BUILD_GWP_ASAN works. ~ahill # NOTE: LLVM_ENABLE_ZSTD is disabled because we don't have zstd in the @@ -31,6 +31,10 @@ build() { -DCLANG_DEFAULT_UNWINDLIB=libunwind \ -DCLANG_VENDOR=Maple \ -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_DOCDIR=usr/share/doc \ + -DCMAKE_INSTALL_INCLUDEDIR=$(echo $TT_INCLUDEDIR | cut -c 2-) \ + -DCMAKE_INSTALL_LIBEXECDIR=$(echo $TT_LIBDIR | cut -c 2-) \ + -DCMAKE_INSTALL_MANDIR=usr/share/man \ -DCMAKE_INSTALL_PREFIX=$TT_INSTALLDIR \ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF \ -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON \ @@ -41,6 +45,7 @@ build() { -DLIBCXXABI_USE_LLVM_UNWINDER=ON \ -DLIBUNWIND_USE_COMPILER_RT=ON \ -DLLVM_ENABLE_PROJECTS="clang;lld;llvm" \ + -DLLVM_ENABLE_RTTI=ON \ -DLLVM_ENABLE_RUNTIMES="compiler-rt;libclc;libcxx;libcxxabi;libunwind" \ -DLLVM_ENABLE_ZSTD=OFF \ -DLLVM_HOST_TRIPLE=$TT_TARGET \ @@ -53,4 +58,4 @@ build() { ln -sf clang $TT_INSTALLDIR/bin/cc ln -sf clang++ $TT_INSTALLDIR/bin/c++ ln -sf ld.lld $TT_INSTALLDIR/bin/ld -} \ No newline at end of file +} -- 2.49.1 From 50710f364f83610b631ab08e79e4a642a9bd3267 Mon Sep 17 00:00:00 2001 From: Alexander Hill Date: Sun, 25 Jan 2026 15:10:48 -0500 Subject: [PATCH 74/74] Successfully packaged LLVM! --- docs/STATUS.md | 2 +- scripts/rootbuild.sh | 2 +- sources/kmod/kmod.spec | 4 +++- sources/llvm/llvm.spec | 24 ++++++++++++++++++++++-- 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/docs/STATUS.md b/docs/STATUS.md index ad648db..eea05a5 100644 --- a/docs/STATUS.md +++ b/docs/STATUS.md @@ -47,7 +47,7 @@ Definitions: | `limine` | Yes | Yes | | `linux` | Yes | Yes | | `liquid` | Yes | Yes | -| `llvm` | Yes | No | +| `llvm` | Yes | Yes | | `m4` | Yes | Yes | | `make` | Yes | Yes | | `mawk` | Yes | Yes | diff --git a/scripts/rootbuild.sh b/scripts/rootbuild.sh index ddc9b79..3233a66 100755 --- a/scripts/rootbuild.sh +++ b/scripts/rootbuild.sh @@ -69,7 +69,7 @@ echo "Done!" cd /maple LAYER0="bc byacc bzip2 coreutils diffutils expat findutils grep gzip initramfs-tools libressl m4 make mawk muon musl ncurses patch perl pkgconf sed tar xz zlib zsh" LAYER1="autoconf automake curl flex gettext groff libarchive libcap2 libelf libtool nano openrc python" -LAYER2="cmake dash fortune-mod git kmod nasm" +LAYER2="cmake dash fortune-mod git kmod llvm nasm" LAYER3="limine linux" PACKAGES="$LAYER0 $LAYER1 $LAYER2 $LAYER3" for pkg in $PACKAGES; do diff --git a/sources/kmod/kmod.spec b/sources/kmod/kmod.spec index 8c5f0bb..dbcef02 100644 --- a/sources/kmod/kmod.spec +++ b/sources/kmod/kmod.spec @@ -5,6 +5,8 @@ SRC_NAME="kmod" SRC_URL="https://github.com/kmod-project/kmod/archive/refs/tags/v34.tar.gz" SRC_VERSION="34" +# TODO: Fix pkgconfig directory (/usr/share/pkgconfig -> /lib/pkgconfig) + build() { tar xf ../$SRC_FILENAME cd kmod-$SRC_VERSION/ @@ -15,4 +17,4 @@ build() { ./configure $TT_AUTOCONF_COMMON --disable-manpages --enable-year2038 make -j $TT_PROCS make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR -} \ No newline at end of file +} diff --git a/sources/llvm/llvm.spec b/sources/llvm/llvm.spec index e330c60..d22d3a0 100755 --- a/sources/llvm/llvm.spec +++ b/sources/llvm/llvm.spec @@ -7,6 +7,15 @@ SRC_PATCHES=" SRC_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.8/llvm-project-21.1.8.src.tar.xz" SRC_VERSION="21.1.8" +# TODO: Figure out why libunwind installs headers at /include +# TODO: Figure out why libc++ installs headers at /include +# TODO: Fix data directory for libclc (/share/clc -> /usr/share/clc) +# TODO: Fix pkgconfig directory for libclc (/share/pkgconfig -> /lib/pkgconfig) +# TODO: Fix data directory for libc++ (/share/libc++ -> /usr/share/libc++) +# TODO: Should /lib/cmake be moved to /usr/share? +# TODO: Should /lib/$TT_TARGET simply be a symlink to /lib? +# TODO: Should /usr/include/$TT_TARGET simply be a symlink to /usr/include? + build() { tar xf ../$SRC_FILENAME cd llvm-project-$SRC_VERSION.src/ @@ -24,6 +33,9 @@ build() { # as cc and ld to function. Because of this, we enable # LLVM_INSTALL_BINUTILS_SYMLINKS and LLVM_INSTALL_CCTOOLS_SYMLINKS for # compatibility's sake. ~ahill + # NOTE: LLVM uses the GNUInstallDirs module to determine where to write + # files. ~ahill + # See also: https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html cmake -B build -S llvm \ -DCLANG_DEFAULT_CXX_STDLIB=libc++ \ -DCLANG_DEFAULT_LINKER=lld \ @@ -31,11 +43,12 @@ build() { -DCLANG_DEFAULT_UNWINDLIB=libunwind \ -DCLANG_VENDOR=Maple \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_DOCDIR=usr/share/doc \ + -DCMAKE_INSTALL_DATAROOTDIR=$(echo $TT_DATADIR | cut -c 2-) \ -DCMAKE_INSTALL_INCLUDEDIR=$(echo $TT_INCLUDEDIR | cut -c 2-) \ -DCMAKE_INSTALL_LIBEXECDIR=$(echo $TT_LIBDIR | cut -c 2-) \ - -DCMAKE_INSTALL_MANDIR=usr/share/man \ -DCMAKE_INSTALL_PREFIX=$TT_INSTALLDIR \ + -DCMAKE_INSTALL_RUNSTATEDIR=$(echo $TT_RUNDIR | cut -c 2-) \ + -DCMAKE_INSTALL_SBINDIR=$(echo $TT_BINDIR | cut -c 2-) \ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF \ -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON \ -DLIBCXX_CXX_ABI=libcxxabi \ @@ -58,4 +71,11 @@ build() { ln -sf clang $TT_INSTALLDIR/bin/cc ln -sf clang++ $TT_INSTALLDIR/bin/c++ ln -sf ld.lld $TT_INSTALLDIR/bin/ld + # NOTE: Finally, LLVM really doesn't play nice with its own rules. If I tell + # it to install in a certain directory, it *might* listen to me. This + # takes care of all the stuff it didn't install correctly. ~ahill + mv $TT_INSTALLDIR/include/* $TT_INSTALLDIR/usr/include/ + rm -rf $TT_INSTALLDIR/include + mv $TT_INSTALLDIR/share/* $TT_INSTALLDIR/usr/share/ + rm -rf $TT_INSTALLDIR/share } -- 2.49.1