Files
2014-12-05 02:29:15 -08:00

115 lines
3.7 KiB
Bash
Executable File

#!/usr/bin/env bash
#
# This script is a fork from:
# https://github.com/jprjr/docker-misc/blob/s6-builder/dockerfiles/arch-s6-builder/build.sh
#
# Official build instructions are available at:
# http://www.skarnet.org/software/s6/install.html
set -e
set -x
musl_version=1.0.4
skalibs_version=1.6.0.0
execline_version=1.3.1.1
s6_version=1.1.3.2
function build_skarnet_package {
echo musl-gcc > conf-compile/conf-cc
echo musl-gcc -static > conf-compile/conf-ld
echo musl-gcc > conf-compile/conf-dynld
echo /usr/bin > conf-compile/conf-install-command
rm -f conf-compile/flag-slashpackage
touch conf-compile/flag-allstatic
package/compile
rm -f package/library.so.exported
}
function install_skarnet_package {
for i in package/*.exported
do
case $(basename $i) in
library.so.exported) d=/lib ;;
include.exported) d=/usr/include/skalibs ;;
sysdeps.exported) d=/usr/lib/skalibs/sysdeps;;
library.exported) d=/usr/lib/skalibs ;;
command.exported) d=/usr/bin ;;
esac
f=$(basename $i|sed 's/.exported//')
mkdir -p $1$d
install -D `sed s,^,$f/, $i` "$1$d"
done
}
mkdir /package
mkdir -p /build && cd /build
# install musl
curl -R -L -O http://www.musl-libc.org/releases/musl-${musl_version}.tar.gz
tar xf musl-${musl_version}.tar.gz
cd musl-${musl_version}
CFLAGS="-fno-toplevel-reorder -fno-stack-protector" ./configure --prefix=/usr/musl --exec-prefix=/usr --disable-shared
make
make install
# install skalibs
cd /build
curl -R -L -O http://skarnet.org/software/skalibs/skalibs-${skalibs_version}.tar.gz
tar xf skalibs-${skalibs_version}.tar.gz
cd prog/skalibs-${skalibs_version}
# configure skalibs-specific items
echo /usr/lib/skalibs > conf-compile/conf-install-library
echo /usr/include/skalibs > conf-compile/conf-install-include
echo /usr/lib/skalibs/sysdeps > conf-compile/conf-install-sysdeps
build_skarnet_package
install_skarnet_package
install -D -m644 etc/leapsecs.dat /etc/leapsecs.dat
#install execline
cd /build
curl -R -L -O http://skarnet.org/software/execline/execline-${execline_version}.tar.gz
tar xf execline-${execline_version}.tar.gz
cd admin/execline-${execline_version}
# configure execline-specific items
echo /usr/lib/skalibs/sysdeps > conf-compile/import
echo /usr/libexec/execline > conf-compile/conf-install-command
echo /usr/lib/execline > conf-compile/conf-install-library
echo /usr/include/execline > conf-compile/conf-install-include
echo /usr/include/skalibs > conf-compile/path-include
echo /usr/lib/skalibs > conf-compile/path-library
build_skarnet_package
install_skarnet_package
install_skarnet_package /package
rm -rf /package/usr/lib
rm -rf /package/usr/include
XZ_OPT=-9 tar -Jcf /dist/execline-${execline_version}-musl-static.tar -C /package .
rm -rf /package/*
# install s6
cd /build
curl -R -L -O http://www.skarnet.org/software/s6/s6-${s6_version}.tar.gz
tar xf s6-${s6_version}.tar.gz
cd admin/s6-${s6_version}
echo /usr/lib > conf-compile/conf-install-library
echo /usr/include > conf-compile/conf-install-include
echo /usr/lib/skalibs/sysdeps > conf-compile/import
echo /usr/include/skalibs > conf-compile/path-include
echo /usr/include/execline >>conf-compile/path-include
echo /usr/lib/skalibs > conf-compile/path-library
echo /usr/lib/execline >>conf-compile/path-library
build_skarnet_package
install_skarnet_package /package
install -D -m644 /etc/leapsecs.dat /package/etc/leapsecs.dat
rm -rf /package/usr/lib
rm -rf /package/usr/include
XZ_OPT=-9 tar -Jcf /dist/s6-${s6_version}-musl-static.tar.xz -C /package .