summary refs log tree commit diff
path: root/gnu/installer
diff options
context:
space:
mode:
authorMathieu Othacehe <othacehe@gnu.org>2022-08-05 08:50:51 +0200
committerMathieu Othacehe <othacehe@gnu.org>2022-08-05 08:57:20 +0200
commit3c381af76a144a4dc3d0f9269f43ee2ec501b538 (patch)
treedfd21da54a5d81385be4cd205c88bc91f191e495 /gnu/installer
parenteb0277e7e391319a5377084dd2d18c7114ec9a8a (diff)
downloadguix-3c381af76a144a4dc3d0f9269f43ee2ec501b538.tar.gz
installer: parted: Call set-system before set-flags.
Parted 3.5 introduces the following regression:

- partition-set-flag sets the BIOS_GRUB flag. The partition type is set to
PARTITION_BIOS_GRUB_GUID.

- partition-set-system resets the partition type to PARTITION_LINUX_DATA_GUID
undoing what's done by partition-set-flag.

To prevent it, reverse the call order.

Fixes: <https://issues.guix.gnu.org/55549>.

* gnu/installer/parted.scm (mkpart): Call partition-set-system before
partition-set-flag.
Diffstat (limited to 'gnu/installer')
-rw-r--r--gnu/installer/parted.scm11
1 files changed, 7 insertions, 4 deletions
diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm
index 6c823e77eb..ba0a38fff8 100644
--- a/gnu/installer/parted.scm
+++ b/gnu/installer/parted.scm
@@ -845,15 +845,18 @@ cause them to cross."
          (when (and partition-ok? has-name? name)
            (partition-set-name partition name))
 
-         ;; Set flags is required.
+         ;; Both partition-set-system and partition-set-flag calls can affect
+         ;; the partition type.  Their order is important, see:
+         ;; https://issues.guix.gnu.org/55549.
+         (partition-set-system partition filesystem-type)
+
+         ;; Set flags if required.
          (for-each (lambda (flag)
                      (and (partition-is-flag-available? partition flag)
                           (partition-set-flag partition flag 1)))
                    flags)
 
-         (and partition-ok?
-              (partition-set-system partition filesystem-type)
-              partition))))))
+         (and partition-ok? partition))))))
 
 
 ;;