live-bootstrap/steps-guix/improve/bootstrap-artifacts-i686-linux.sh

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