mirror of
https://github.com/fosslinux/live-bootstrap.git
synced 2026-04-16 16:32:17 +02:00
119 lines
3.2 KiB
Bash
119 lines
3.2 KiB
Bash
#!/bin/sh
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
set -e
|
|
|
|
dist="${DISTFILES:-/external/distfiles}"
|
|
work="/tmp/guix-bootstrap-artifacts-i686-linux"
|
|
|
|
require_exec() {
|
|
local path="$1"
|
|
if [ ! -x "${path}" ]; then
|
|
echo "Missing required bootstrap seed executable: ${path}" >&2
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
require_dir() {
|
|
local path="$1"
|
|
if [ ! -d "${path}" ]; then
|
|
echo "Missing required bootstrap seed directory: ${path}" >&2
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
export_exec() {
|
|
local src="$1"
|
|
local dst="$2"
|
|
|
|
require_exec "${src}"
|
|
install -D -m 0755 "${src}" "${dist}/${dst}"
|
|
}
|
|
|
|
build_static_binaries_seed() {
|
|
local stage
|
|
stage="${work}/static-binaries-0-i686-linux"
|
|
|
|
rm -rf "${stage}"
|
|
mkdir -p "${stage}/bin"
|
|
|
|
require_dir /bootstrap-seeds/coreutils-8.30/bin
|
|
cp -a /bootstrap-seeds/coreutils-8.30/bin/. "${stage}/bin/"
|
|
for src in \
|
|
/bootstrap-seeds/gawk-4.2.1/bin/gawk \
|
|
/bootstrap-seeds/grep-3.1/bin/grep \
|
|
/bootstrap-seeds/grep-3.1/bin/egrep \
|
|
/bootstrap-seeds/grep-3.1/bin/fgrep \
|
|
/bootstrap-seeds/sed-4.5/bin/sed \
|
|
/bootstrap-seeds/tar-1.30/bin/tar \
|
|
/bootstrap-seeds/xz-5.2.4/bin/xz \
|
|
/bootstrap-seeds/gzip-1.9/bin/gzip \
|
|
/bootstrap-seeds/bzip2-1.0.6/bin/bzip2 \
|
|
/bootstrap-seeds/patch-2.7.6/bin/patch \
|
|
/bootstrap-seeds/bash-5.3-1/bin/bash
|
|
do
|
|
require_exec "${src}"
|
|
install -m 0755 "${src}" "${stage}/bin/"
|
|
done
|
|
|
|
ln -sf bash "${stage}/bin/sh"
|
|
ln -sf gawk "${stage}/bin/awk"
|
|
|
|
seed_make_repro_tar_xz "${stage}" "${dist}/static-binaries-0-i686-linux.tar.xz"
|
|
}
|
|
|
|
build_guile_seed() {
|
|
require_dir /bootstrap-seeds/guile-2.0.9
|
|
seed_make_repro_tar_xz \
|
|
/bootstrap-seeds/guile-2.0.9 \
|
|
"${dist}/guile-static-stripped-2.0.9-i686-linux.tar.xz"
|
|
}
|
|
|
|
build_mes_minimal_seed() {
|
|
local stage
|
|
stage="${work}/mes-minimal-stripped-0.19-i686-linux"
|
|
|
|
rm -rf "${stage}"
|
|
mkdir -p "${stage}/bin"
|
|
|
|
require_exec /usr/bin/mes-m2
|
|
install -m 0755 /usr/bin/mes-m2 "${stage}/bin/mes"
|
|
|
|
seed_make_repro_tar_xz "${stage}" "${dist}/mes-minimal-stripped-0.19-i686-linux.tar.xz"
|
|
}
|
|
|
|
build_mescc_tools_seed() {
|
|
local stage copied
|
|
stage="${work}/mescc-tools-static-stripped-0.5.2-i686-linux"
|
|
copied=0
|
|
|
|
rm -rf "${stage}"
|
|
mkdir -p "${stage}/bin"
|
|
|
|
for f in M1 hex2 blood-elf kaem M2-Planet M2-Mesoplanet get_machine; do
|
|
if [ -x "/usr/bin/${f}" ]; then
|
|
install -m 0755 "/usr/bin/${f}" "${stage}/bin/${f}"
|
|
copied=1
|
|
fi
|
|
done
|
|
|
|
if [ "${copied}" -ne 1 ]; then
|
|
echo "No mescc-tools binaries were found under /usr/bin." >&2
|
|
exit 1
|
|
fi
|
|
|
|
seed_make_repro_tar_xz "${stage}" "${dist}/mescc-tools-static-stripped-0.5.2-i686-linux.tar.xz"
|
|
}
|
|
|
|
rm -rf "${work}"
|
|
mkdir -p "${work}"
|
|
|
|
build_static_binaries_seed
|
|
build_guile_seed
|
|
build_mes_minimal_seed
|
|
build_mescc_tools_seed
|
|
|
|
export_exec /bootstrap-seeds/bash-5.3-1/bin/bash bootstrap-exec-bash-i686-linux
|
|
export_exec /bootstrap-seeds/coreutils-8.30/bin/mkdir bootstrap-exec-mkdir-i686-linux
|
|
export_exec /bootstrap-seeds/tar-1.30/bin/tar bootstrap-exec-tar-i686-linux
|
|
export_exec /bootstrap-seeds/xz-5.0.6/bin/xz bootstrap-exec-xz-i686-linux
|