Fixed LibreSSL and built bzip2, Zlib, and CMake
This commit is contained in:
parent
edaecac8bf
commit
bb0d0c5433
@ -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 |
|
||||
| `zlib` | Yes | Yes |
|
||||
10
bootstrap.sh
10
bootstrap.sh
@ -236,3 +236,13 @@ done
|
||||
|
||||
# Install Treetap
|
||||
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/
|
||||
28
rootbuild.sh
Executable file
28
rootbuild.sh
Executable file
@ -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
|
||||
32
sources/bzip2/bzip2.spec
Normal file
32
sources/bzip2/bzip2.spec
Normal file
@ -0,0 +1,32 @@
|
||||
# Maintainer: Alexander Hill <ahill@breadpudding.dev>
|
||||
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/
|
||||
}
|
||||
30
sources/cmake/cmake.spec
Normal file
30
sources/cmake/cmake.spec
Normal file
@ -0,0 +1,30 @@
|
||||
# Maintainer: Alexander Hill <ahill@breadpudding.dev>
|
||||
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
|
||||
}
|
||||
@ -19,5 +19,5 @@ clean() {
|
||||
|
||||
package() {
|
||||
cd libressl-*/
|
||||
make -j $TT_PROCS install DESTDIR=$TT_SYSROOT
|
||||
make -j $TT_PROCS install DESTDIR=$TT_INSTALLDIR
|
||||
}
|
||||
28
sources/zlib/zlib.spec
Normal file
28
sources/zlib/zlib.spec
Normal file
@ -0,0 +1,28 @@
|
||||
# Maintainer: Alexander Hill <ahill@breadpudding.dev>
|
||||
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
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user