fix(bootstrap): fix guile-gnutls static libtool target and make init fail-safe without panic

This commit is contained in:
vxtls 2026-02-26 09:40:35 -05:00
parent ee0f48186e
commit ef7127bb83
5 changed files with 39 additions and 26 deletions

View file

@ -1,5 +1,5 @@
--- guile-gnutls-v5.0.1/configure.ac 2025-07-13 09:01:47 --- guile-gnutls-v5.0.1/configure.ac 2025-07-13 09:01:47
+++ guile-gnutls-v5.0.1/configure.ac 2026-02-25 20:59:39 +++ guile-gnutls-v5.0.1/configure.ac 2026-02-26 09:33:42
@@ -37,7 +37,7 @@ @@ -37,7 +37,7 @@
AC_PROG_CC AC_PROG_CC
AC_PROG_CPP AC_PROG_CPP
@ -26,7 +26,7 @@
AM_CONDITIONAL([CROSS_COMPILING], [test "x$cross_compiling" = "xyes"]) AM_CONDITIONAL([CROSS_COMPILING], [test "x$cross_compiling" = "xyes"])
AM_CONDITIONAL(HAVE_GCC_GNU89_INLINE_OPTION, test "$gnu89_inline" = "yes"]) AM_CONDITIONAL(HAVE_GCC_GNU89_INLINE_OPTION, test "$gnu89_inline" = "yes"])
--- guile-gnutls-v5.0.1/guile/Makefile.am 2025-07-13 09:01:47 --- guile-gnutls-v5.0.1/guile/Makefile.am 2025-07-13 09:01:47
+++ guile-gnutls-v5.0.1/guile/Makefile.am 2026-02-25 20:59:39 +++ guile-gnutls-v5.0.1/guile/Makefile.am 2026-02-26 09:33:42
@@ -46,6 +46,7 @@ @@ -46,6 +46,7 @@
.in.scm: .in.scm:
$(AM_V_GEN)$(MKDIR_P) "`dirname "$@"`" ; cat "$^" | \ $(AM_V_GEN)$(MKDIR_P) "`dirname "$@"`" ; cat "$^" | \
@ -49,7 +49,7 @@
# Make sure 'gnutls.scm' is built first. # Make sure 'gnutls.scm' is built first.
# Unset 'GUILE_LOAD_COMPILED_PATH' so we can be sure that any .go file that we # Unset 'GUILE_LOAD_COMPILED_PATH' so we can be sure that any .go file that we
--- guile-gnutls-v5.0.1/guile/modules/gnutls.in 2025-07-13 09:01:47 --- guile-gnutls-v5.0.1/guile/modules/gnutls.in 2025-07-13 09:01:47
+++ guile-gnutls-v5.0.1/guile/modules/gnutls.in 2026-02-25 20:59:39 +++ guile-gnutls-v5.0.1/guile/modules/gnutls.in 2026-02-26 09:33:43
@@ -817,7 +817,8 @@ @@ -817,7 +817,8 @@
;; save 'extensiondir' only if it's different from what Guile expects. ;; save 'extensiondir' only if it's different from what Guile expects.
@maybe_guileextensiondir@)) @maybe_guileextensiondir@))
@ -71,20 +71,14 @@
(set! protocol/ssl-3 protocol/ssl3) (set! protocol/ssl-3 protocol/ssl3)
(set! protocol/tls-1.0 protocol/tls1-0) (set! protocol/tls-1.0 protocol/tls1-0)
--- guile-gnutls-v5.0.1/guile/src/Makefile.am 2025-07-13 09:01:47 --- guile-gnutls-v5.0.1/guile/src/Makefile.am 2025-07-13 09:01:47
+++ guile-gnutls-v5.0.1/guile/src/Makefile.am 2026-02-25 20:59:39 +++ guile-gnutls-v5.0.1/guile/src/Makefile.am 2026-02-26 09:33:43
@@ -35,12 +35,17 @@ @@ -40,7 +40,11 @@
CLEANFILES = $(BUILT_SOURCES)
+if BUILD_SHARED
guileextension_LTLIBRARIES = guile-gnutls-v-2.la
# Use '-module' to build a "dlopenable module", in Libtool terms. # Use '-module' to build a "dlopenable module", in Libtool terms.
# Use '-undefined' to placate Libtool on Windows; see # Use '-undefined' to placate Libtool on Windows; see
# <https://lists.gnutls.org/pipermail/gnutls-devel/2014-December/007294.html>. # <https://lists.gnutls.org/pipermail/gnutls-devel/2014-December/007294.html>.
+if BUILD_SHARED
guile_gnutls_v_2_la_LDFLAGS = -module -no-undefined guile_gnutls_v_2_la_LDFLAGS = -module -no-undefined
+else +else
+noinst_LTLIBRARIES = guile-gnutls-v-2.la
+guile_gnutls_v_2_la_LDFLAGS = -all-static -no-undefined +guile_gnutls_v_2_la_LDFLAGS = -all-static -no-undefined
+endif +endif

View file

@ -21,7 +21,10 @@ build: cmake-4.2.3
build: libgit2-1.9.2 build: libgit2-1.9.2
build: nettle-3.10.2 build: nettle-3.10.2
build: libtasn1-v4.21.0 build: libtasn1-v4.21.0
build: gnutls-3.8.0 build: gnutls-3.8.12
build: guile-gnutls-v5.0.1 build: guile-gnutls-v5.0.1
# build: unzip-6.0
# build: sqlite-3510200
# build: guile-sqlite3-0.1.3
improve: after improve: after

View file

@ -38,7 +38,28 @@ cd /steps
. ./bootstrap.cfg . ./bootstrap.cfg
. ./env . ./env
. ./helpers.sh . ./helpers.sh
trap 'env PATH=${PREFIX}/bin PS1="[TRAP] \w # " bash -i' ERR
shutdown_system() {
status="${1:-0}"
echo "init: shutting down (status=${status})" >&2
# ignore errors due to fstab or swapfile not existing
swapoff -a &> /dev/null || true
sync
# sysrq to avoid device busy; then mount to wait for it to finish
echo u > /proc/sysrq-trigger
mount -o remount,ro / || true
echo o > /proc/sysrq-trigger # power off
while true; do sleep 1; done
}
on_error() {
status=$?
trap - ERR
echo "init: error detected, aborting bootstrap path." >&2
shutdown_system "${status}"
}
trap 'on_error' ERR
setup_kernel_devices() { setup_kernel_devices() {
mount | grep ' on /dev ' &> /dev/null || (mkdir -p /dev; mount -t devtmpfs devtmpfs /dev) mount | grep ' on /dev ' &> /dev/null || (mkdir -p /dev; mount -t devtmpfs devtmpfs /dev)
@ -77,7 +98,7 @@ verify_kernel_devices() {
setup_kernel_devices setup_kernel_devices
verify_kernel_devices || { verify_kernel_devices || {
echo "Kernel device setup verification failed." >&2 echo "Kernel device setup verification failed." >&2
exit 1 shutdown_system 1
} }
if test -f /swapfile; then if test -f /swapfile; then
@ -97,7 +118,7 @@ run_steps_guix_if_requested() {
fi fi
if [ ! -f /steps-guix/manifest ]; then if [ ! -f /steps-guix/manifest ]; then
echo "BUILD_GUIX_ALSO is True but /steps-guix/manifest is missing." >&2 echo "BUILD_GUIX_ALSO is True but /steps-guix/manifest is missing." >&2
exit 1 return 1
fi fi
sed -i '/^BUILD_GUIX_ALSO=/d' /steps/bootstrap.cfg sed -i '/^BUILD_GUIX_ALSO=/d' /steps/bootstrap.cfg
@ -105,10 +126,12 @@ run_steps_guix_if_requested() {
/script-generator /steps-guix/manifest /steps /script-generator /steps-guix/manifest /steps
bash /steps-guix/0.sh bash /steps-guix/0.sh
return 0 return $?
} }
run_steps_guix_if_requested || true if [ "${BUILD_GUIX_ALSO}" = True ]; then
run_steps_guix_if_requested || shutdown_system $?
fi
EOF EOF
fi fi
@ -123,14 +146,7 @@ else
env - PATH=${PREFIX}/bin PS1="\w # " setsid openvt -fec1 -- bash -i env - PATH=${PREFIX}/bin PS1="\w # " setsid openvt -fec1 -- bash -i
fi fi
# ignore errors due to fstab or swapfile not existing shutdown_system 0
swapoff -a &> /dev/null || true
sync
# sysrq to avoid device busy; then mount to wait for it to finish
echo u > /proc/sysrq-trigger
mount -o remount,ro /
echo o > /proc/sysrq-trigger # power off
while true; do sleep 1; done
EOF EOF
chmod +x /init chmod +x /init