guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

04/04: guix-install.sh: Add unique requirement for sysv init system


From: guix-commits
Subject: 04/04: guix-install.sh: Add unique requirement for sysv init system
Date: Tue, 4 Jun 2024 06:10:06 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 40c6f708393885a2d28f847350e8f47beb11e745
Author: Richard Sent <richard@freakingpenguin.com>
AuthorDate: Tue May 28 20:36:06 2024 -0400

    guix-install.sh: Add unique requirement for sysv init system
    
    This improves the installer's ability to detect that all requirements are
    present regardless of init system. It also avoids performing the requirement
    check twice (printing excessively to the console) and provides a framework 
for
    adding new init system specific requirements if it's needed in the future.
    
    * etc/guix-install.sh (add_init_sys_require): Create.
    (SYSV_INIT_REQUIRE): Create.
    (main_install): Reorder installer steps so all requirements are checked in 
one
    pass.
    
    Change-Id: Ic541c1b90499d504642b7ab4ae595501b1a37b0d
    Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
 etc/guix-install.sh | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/etc/guix-install.sh b/etc/guix-install.sh
index d61e36ef9b..9d9c294d75 100755
--- a/etc/guix-install.sh
+++ b/etc/guix-install.sh
@@ -15,6 +15,7 @@
 # Copyright © 2020 David A. Redick <david.a.redick@gmail.com>
 # Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
 # Copyright © 2024 Tomas Volf <~@wolfsden.cz>
+# Copyright © 2024 Richard Sent <richard@freakingpenguin.com>
 #
 # This file is part of GNU Guix.
 #
@@ -81,6 +82,12 @@ REQUIRE=(
     "xz"
 )
 
+# Add variables using form FOO_INIT_REQUIRE when init system FOO dependencies
+# should be checked.
+SYSV_INIT_REQUIRE=(
+    "daemonize"
+)
+
 PAS=$'[ \033[32;1mPASS\033[0m ] '
 ERR=$'[ \033[31;1mFAIL\033[0m ] '
 WAR=$'[ \033[33;1mWARN\033[0m ] '
@@ -148,6 +155,18 @@ chk_require()
     _msg "${PAS}verification of required commands completed"
 }
 
+add_init_sys_require()
+{ # Add the elements of FOO_INIT_SYS to REQUIRE
+    local init_require="${INIT_SYS}_REQUIRE[@]"
+    if [[ ! -z "$init_require" ]]; then
+        # Have to add piecemeal because ${!foo[@]} performs direct array key
+        # expansion, not indirect plain array expansion.
+        for r in "${!init_require}"; do
+            REQUIRE+=("$r")
+        done
+    fi
+}
+
 chk_gpg_keyring()
 { # Check whether the Guix release signing public key is present.
     _debug "--- [ ${FUNCNAME[0]} ] ---"
@@ -794,9 +813,10 @@ main_install()
     _msg "Starting installation ($(date))"
 
     chk_term
+    chk_init_sys
+    add_init_sys_require
     chk_require "${REQUIRE[@]}"
     chk_gpg_keyring
-    chk_init_sys
     chk_sys_arch
     chk_sys_nscd
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]