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? |
|
| Package | Can Build? | Can Package? |
|
||||||
| ------------ | ---------- | ------------ |
|
| ------------ | ---------- | ------------ |
|
||||||
| `busybox` | No | No |
|
| `busybox` | No | No |
|
||||||
|
| `bzip2` | Yes | Yes |
|
||||||
|
| `cmake` | Yes | No |
|
||||||
| `libarchive` | Yes | Yes |
|
| `libarchive` | Yes | Yes |
|
||||||
| `libressl` | Yes | No |
|
| `libressl` | Yes | Yes |
|
||||||
| `linux` | No | No |
|
| `linux` | No | No |
|
||||||
| `llvm` | No | No |
|
| `llvm` | No | No |
|
||||||
| `make` | Yes | Yes |
|
| `make` | Yes | Yes |
|
||||||
| `mold` | No | No |
|
| `mold` | No | No |
|
||||||
| `musl` | Yes | Yes |
|
| `musl` | Yes | Yes |
|
||||||
| `xz` | Yes | Yes |
|
| `xz` | Yes | Yes |
|
||||||
|
| `zlib` | Yes | Yes |
|
||||||
10
bootstrap.sh
10
bootstrap.sh
@ -236,3 +236,13 @@ done
|
|||||||
|
|
||||||
# Install Treetap
|
# Install Treetap
|
||||||
cp $TREETAP $BOOTSTRAP/root/bin/
|
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() {
|
package() {
|
||||||
cd libressl-*/
|
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