Integrated Treetap into Maple Linux #1
@ -2,6 +2,9 @@ This document tracks which packages can be built and packaged within the chroot.
|
|||||||
|
|
||||||
| Package | Can Build? | Can Package? |
|
| Package | Can Build? | Can Package? |
|
||||||
| ------------ | ---------- | ------------ |
|
| ------------ | ---------- | ------------ |
|
||||||
|
| `autoconf` | Yes | Yes |
|
||||||
|
| `automake` | Yes | Yes |
|
||||||
|
| `bsdutils` | Yes | Yes |
|
||||||
| `busybox` | No | No |
|
| `busybox` | No | No |
|
||||||
| `byacc` | Yes | Yes |
|
| `byacc` | Yes | Yes |
|
||||||
| `bzip2` | 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 |
|
| `mold` | Yes | Yes |
|
||||||
| `muon` | Yes | Yes |
|
| `muon` | Yes | Yes |
|
||||||
| `musl` | Yes | Yes |
|
| `musl` | Yes | Yes |
|
||||||
|
| `musl-fts` | Yes | Yes |
|
||||||
| `ncurses` | Yes | Yes |
|
| `ncurses` | Yes | Yes |
|
||||||
|
| `perl` | Yes | Yes |
|
||||||
|
| `pkgconf` | Yes | Yes |
|
||||||
| `xz` | Yes | Yes |
|
| `xz` | Yes | Yes |
|
||||||
| `zlib` | Yes | Yes |
|
| `zlib` | Yes | Yes |
|
||||||
28
bootstrap.sh
28
bootstrap.sh
@ -241,7 +241,33 @@ cp $TREETAP $BOOTSTRAP/root/bin/
|
|||||||
mkdir -p $BOOTSTRAP/root/maple/
|
mkdir -p $BOOTSTRAP/root/maple/
|
||||||
cp rootbuild.sh $BOOTSTRAP/root/maple/
|
cp rootbuild.sh $BOOTSTRAP/root/maple/
|
||||||
export TT_DIR=$BOOTSTRAP/root/maple/.treetap
|
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
|
for name in $SOURCES; do
|
||||||
$TREETAP fetch $SPEC/$name/$name.spec
|
$TREETAP fetch $SPEC/$name/$name.spec
|
||||||
done
|
done
|
||||||
|
|||||||
25
maple-chroot
Executable file
25
maple-chroot
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if [ -z "$1" ] && [ ! -d "$1" ]; then
|
||||||
|
echo "Usage: $0 <root>"
|
||||||
|
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
|
||||||
@ -25,8 +25,11 @@ make -j $(nproc) install DESTDIR=/
|
|||||||
# NOTE: mold requires CMake to build. ~ahill
|
# NOTE: mold requires CMake to build. ~ahill
|
||||||
# NOTE: flex requires byacc and m4 to build. ~ahill
|
# NOTE: flex requires byacc and m4 to build. ~ahill
|
||||||
# NOTE: editline requires ncurses 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
|
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
|
for pkg in $PACKAGES; do
|
||||||
treetap fetch sources/$pkg/$pkg.spec
|
treetap fetch sources/$pkg/$pkg.spec
|
||||||
treetap build sources/$pkg/$pkg.spec
|
treetap build sources/$pkg/$pkg.spec
|
||||||
|
|||||||
21
sources/autoconf/autoconf.spec
Normal file
21
sources/autoconf/autoconf.spec
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Maintainer: Alexander Hill <ahill@breadpudding.dev>
|
||||||
|
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
|
||||||
|
}
|
||||||
21
sources/automake/automake.spec
Normal file
21
sources/automake/automake.spec
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Maintainer: Alexander Hill <ahill@breadpudding.dev>
|
||||||
|
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
|
||||||
|
}
|
||||||
121
sources/bsdutils/bsdutils.spec
Normal file
121
sources/bsdutils/bsdutils.spec
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
# Maintainer: Alexander Hill <ahill@breadpudding.dev>
|
||||||
|
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
|
||||||
|
}
|
||||||
27
sources/libtool/libtool.spec
Normal file
27
sources/libtool/libtool.spec
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# Maintainer: Alexander Hill <ahill@breadpudding.dev>
|
||||||
|
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
|
||||||
|
}
|
||||||
@ -1,13 +1,14 @@
|
|||||||
# Maintainer: Alexander Hill <ahill@breadpudding.dev>
|
# Maintainer: Alexander Hill <ahill@breadpudding.dev>
|
||||||
SRC_HASH="e4315fef49b08912b1d1db3774dd98f971397b2751c648512b6c8d852590dc50"
|
SRC_HASH="e236ea3a1ccf5f6c270b1c4bb60726f371fa49459a8eaaebc90b216b328daf2b"
|
||||||
SRC_NAME="m4"
|
SRC_NAME="m4"
|
||||||
SRC_URL="http://haddonthethird.net/m4/m4-2.tar.bz2"
|
SRC_URL="https://ftp.gnu.org/gnu/m4/m4-1.4.20.tar.xz"
|
||||||
SRC_VERSION="2"
|
SRC_VERSION="1.4.20"
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
tar xf ../$SRC_FILENAME
|
tar xf ../$SRC_FILENAME
|
||||||
cd m4-*/
|
cd m4-*/
|
||||||
make -O -j $TT_PROCS
|
./configure $TT_AUTOCONF_COMMON --enable-year2038
|
||||||
|
make -j $TT_PROCS
|
||||||
}
|
}
|
||||||
|
|
||||||
clean() {
|
clean() {
|
||||||
@ -16,5 +17,5 @@ clean() {
|
|||||||
|
|
||||||
package() {
|
package() {
|
||||||
cd m4-*/
|
cd m4-*/
|
||||||
make -O -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR
|
make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR
|
||||||
}
|
}
|
||||||
24
sources/musl-fts/musl-fts.spec
Normal file
24
sources/musl-fts/musl-fts.spec
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# Maintainer: Alexander Hill <ahill@breadpudding.dev>
|
||||||
|
SRC_FILENAME="musl_fts-1.2.7.tar.gz"
|
||||||
|
SRC_HASH="49ae567a96dbab22823d045ffebe0d6b14b9b799925e9ca9274d47d26ff482a6"
|
||||||
|
SRC_NAME="musl-fts"
|
||||||
|
SRC_URL="https://github.com/void-linux/musl-fts/archive/refs/tags/v1.2.7.tar.gz"
|
||||||
|
SRC_VERSION="1.2.7"
|
||||||
|
|
||||||
|
build() {
|
||||||
|
tar xf ../$SRC_FILENAME
|
||||||
|
cd musl-fts-*/
|
||||||
|
# TODO: Can we rewrite this to not rely on libtool going forward? ~ahill
|
||||||
|
./bootstrap.sh
|
||||||
|
./configure $TT_AUTOCONF_COMMON --disable-static
|
||||||
|
make -j $TT_PROCS
|
||||||
|
}
|
||||||
|
|
||||||
|
clean() {
|
||||||
|
rm -rf musl-fts-*/
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd musl-fts-*/
|
||||||
|
make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR
|
||||||
|
}
|
||||||
21
sources/perl/perl.spec
Normal file
21
sources/perl/perl.spec
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Maintainer: Alexander Hill <ahill@breadpudding.dev>
|
||||||
|
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
|
||||||
|
}
|
||||||
24
sources/pkgconf/pkgconf.spec
Normal file
24
sources/pkgconf/pkgconf.spec
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# Maintainer: Alexander Hill <ahill@breadpudding.dev>
|
||||||
|
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
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user