GNU bug report logs - #76082
[PATCH 0/9] Improve profile initialization on foreign distros plus misc improvements

Previous Next

Package: guix-patches;

Reported by: Liam Hupfer <liam <at> hpfr.net>

Date: Thu, 6 Feb 2025 04:09:02 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #32 received at 76082 <at> debbugs.gnu.org (full text, mbox):

From: Liam Hupfer <liam <at> hpfr.net>
To: 76082 <at> debbugs.gnu.org
Cc: Liam Hupfer <liam <at> hpfr.net>
Subject: [PATCH 9/9] guix-install.sh: Check for existing installation before
 downloading.
Date: Wed,  5 Feb 2025 22:25:05 -0600
Previously, the check came after guix_get_bin.  There’s no need to fetch
the rather large release archive if there’s an existing installation, so
check first.  Refactor the check into a function similar to other
preflight checks.

* etc/guix-install.sh: Check for existing installation before
downloading.

Change-Id: I5506fb1cacdc88bd6355e8dfa1f690acf7886c1f
---
 etc/guix-install.sh | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

diff --git a/etc/guix-install.sh b/etc/guix-install.sh
index 7a731962b3..297a726ad6 100755
--- a/etc/guix-install.sh
+++ b/etc/guix-install.sh
@@ -315,6 +315,19 @@ chk_sys_nscd()
     fi
 }
 
+chk_existing()
+{ # Avoid clobbering existing installations.
+    _debug "--- [ ${FUNCNAME[0]} ] ---"
+
+    if [[ -e /var/guix && -e /gnu ]]; then
+        if [ -n "$GUIX_ALLOW_OVERWRITE" ]; then
+            _msg_warn "Overwriting existing installation!"
+        else
+            die "A previous Guix installation was found.  Refusing to overwrite."
+        fi
+    fi
+}
+
 # Configure substitute discovery according to user's preferences.
 # $1 is the installed service file to edit.
 configure_substitute_discovery() {
@@ -393,16 +406,6 @@ sys_create_store()
     local pkg="$1"
     local tmp_path="$2"
 
-    _debug "--- [ ${FUNCNAME[0]} ] ---"
-
-    if [[ -e /var/guix && -e /gnu ]]; then
-        if [ -n "$GUIX_ALLOW_OVERWRITE" ]; then
-            _msg_warn "Overwriting existing installation!"
-        else
-            die "A previous Guix installation was found.  Refusing to overwrite."
-        fi
-    fi
-
     cd "$tmp_path"
     _msg_info "Installing /var/guix and /gnu..."
     # Strip (skip) the leading ‘.’ component, which fails on read-only ‘/’.
@@ -875,6 +878,7 @@ main_install()
     chk_gpg_keyring
     chk_sys_arch
     chk_sys_nscd
+    chk_existing
 
     _msg_info "system is ${ARCH_OS}"
 
-- 
2.47.1





This bug report was last modified 85 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.