blob: cc8e238beee3dc7d4a5ecc4eef8a916e3f6bf32e (
plain) (
tree)
|
|
#!/bin/sh -e
##
# This script is to be called from 'bootstrap.sh', not sourced.
# PATH is fully contained. We install to 'MCMTOOLS/abuild/'.
#
export PATH="${MCMTOOLS}/sys/bin:${MCMTOOLS}/host/bin";
HERE="$(dirname $(readlink -f ${0}))";
DEST="${MCMTOOLS}/abuild";
mkdir -p "${DEST}";
cd "${DEST}";
##
# OpenSSL
#
nssl=openssl;
vssl=1.1.1l;
test ! -f ._${nssl}-${vssl} && \
(
test ! -d ${nssl}-${vssl} \
&& curl -s https://www.openssl.org/source/${nssl}-${vssl}.tar.gz \
| tar -xzf - \
;
cd ${nssl}-${vssl};
rm -fr x; mkdir x; cd x;
../Configure cc \
--prefix="${DEST}" \
--openssldir="${DEST}" \
no-shared \
;
make -j$(nproc);
make install_sw install_ssldirs;
)
touch ._${nssl}-${vssl};
rm -fr ${nssl}-${vssl};
##
# abuild
#
nbld=abuild;
vbld=ff913b49072352604ce081378f015af1714e1bd2;
test ! -f ._${nbld}-${vbld} && \
(
test ! -d ${nbld}-${vbld} \
&& git clone https://git.alpinelinux.org/${nbld} ${nbld}-${vbld} \
;
cd abuild-${vbld};
patch -p1 --forward < "${HERE}/patches/0001-allow-untrusted.diff" || true; # FIXME
patch -p1 --forward < "${HERE}/patches/0001-etc-apk-keys.diff" || true; # FIXME
patch -p1 --forward < "${HERE}/patches/0001-extra-lib-paths.diff" || true; # FIXME
rm -fr x; mkdir x; cd x;
export SSL_CFLAGS="-I${DEST}/include -I${MCMTOOLS}/sys/include";
export SSL_LDFLAGS="-L${DEST}/lib -L${MCMTOOLS}/sys/lib";
export SSL_LIBS="-lssl -lcrypto"; # not in mcmtools
export ZLIB_LIBS="-lz"; # from mcmtools
export CFLAGS="-DABUILD_GROUP=\\\"$(id -gn)\\\""; # default 'abuild' if undefined
sed -i "${DEST}/abuild-${vbld}/abuild-sudo.c" \
-e "s@/sbin/apk@${DEST}/bin/apk@" \
; # hardcoded
make -j$(nproc) -C .. install \
prefix="${DEST}" \
sysconfdir="${DEST}" \
;
sed -i "${DEST}/bin/abuild" \
-e 's@/bin/ash -e@/usr/bin/env bash@' \
; # hardcoded
)
touch ._${nbld}-${vbld};
#rm -fr ${nbld}-${vbld};
##
# util-linux (for 'getopt' used by 'abuild-keygen')
#
nutl=util-linux;
vutl=2.37.2;
test ! -f ._${nutl}-${vutl} && \
(
test ! -d ${nutl}-${vutl} \
&& mkdir ${nutl}-${vutl} \
&& curl -sL https://github.com/karelzak/${nutl}/archive/refs/tags/v${vutl}.tar.gz \
| tar -C ${nutl}-${vutl} --strip-components=1 -xzf - \
;
cd ${nutl}-${vutl};
test -f configure || ./autogen.sh;
rm -fr x; mkdir x; cd x;
../configure \
--prefix="${DEST}" \
--enable-static \
--disable-shared \
;
sed -i Makefile \
-e 's/chgrp/-chgrp/g' \
-e 's/chmod/-chmod/g' \
-e 's/chown/-chown/g' \
; # allow non-root installation
make -j$(nproc) install;
)
touch ._${nutl}-${vutl};
rm -fr ${nutl}-${vutl};
##
# apk-tools
#
natl=apk-tools;
vatl=9f07a3447ea1e8fb67cdbd5c30b2ea144e826490;
test ! -f ._${natl}-${vatl} && \
(
test ! -d ${natl}-${vatl} \
&& git clone https://git.alpinelinux.org/${natl} ${natl}-${vatl} \
;
cd ${natl}-${vatl};
sed -i Make.rules \
-e '/targets += $(__shlibs) $(shobjs)/d' \
; # disable shared libs
sed -i src/Makefile \
-e 's/$(install-libapk_so)//g' -e 's/$(libapk_so)//g' \
; # disable shared libs
sed -i src/context.c \
-e "s@var/log@${DEST}/${1}/var/log@" \
; # hardcoded
export LUA=no; # documentation requires lua
make clean;
make \
INSTALLDIR="${DEST}" \
CFLAGS="-I${DEST}/include -I${MCMTOOLS}/sys/include" \
LDFLAGS="-L${DEST}/lib -L${MCMTOOLS}/sys/lib -L${DEST}/${natl}-${vatl}/libfetch" \
LIBS="-lapk -lfetch -lssl -lcrypto -lz" \
;
cp src/apk "${DEST}/bin";
)
touch ._${natl}-${vatl};
rm -fr ${natl}-${vatl};
##
# pax-utils
#
npax=pax-utils;
vpax=1.3.3;
test ! -f ._${npax}-${vpax} && \
(
test ! -d ${npax}-${vpax} \
&& curl -s https://gitweb.gentoo.org/proj/${npax}.git/snapshot/${npax}-${vpax}.tar.gz \
| tar -xzf - \
;
cd ${npax}-${vpax};
sed -i Makefile \
-e '/$(MPAGES)/d' \
;
rm -fr x; mkdir x; cd x;
make -j$(nproc) -C .. install \
PREFIX="${DEST}" \
MANDIR="${DEST}/man" \
USE_PYTHON=no \
;
)
touch ._${npax}-${vpax};
rm -fr ${npax}-${vpax};
##
# fakeroot
#
nfrt=fakeroot;
vfrt=20210907T092512Z:1.26; # look on snapshot.d.o for this
test ! -f ._${nfrt}-${vfrt#*:} && \
(
test ! -d ${nfrt}-${vfrt#*:} \
&& curl -s https://snapshot.debian.org/archive/debian/${vfrt%:*}/pool/main/f/${nfrt}/${nfrt}_${vfrt#*:}.orig.tar.gz \
| tar -xzf - \
;
cd ${nfrt}-${vfrt#*:};
f=$(mktemp);
echo > ${f} "#include <linux/capability.h>";
cat libfakeroot.c >> ${f};
mv ${f} libfakeroot.c;
rm -fr x; mkdir x; cd x;
../configure --prefix="${DEST}";
make -j$(nproc) install;
)
touch ._${nfrt}-${vfrt#*:};
rm -fr ${nfrt}-${vfrt#*:};
|