summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-05-19 11:58:36 +0200
committerLudovic Courtès <ludo@gnu.org>2019-05-19 11:58:36 +0200
commitd68de958b60426798ed62797ff7c96c327a672ac (patch)
treeabb7723d188e1333e15fc84b0814c85c1ac96ef5
parentbaab87ac49e3f0f873e17eb16db9781189b1f2d1 (diff)
downloadguix-d68de958b60426798ed62797ff7c96c327a672ac.tar.gz
installer: Fix Guile-Parted crash on i686. v1.0.1
Fixes <https://bugs.gnu.org/35783>.
This is a followup to 7d567af46b4e10ffafb1d0f76b524f5781460598.

* gnu/installer/parted.scm (auto-partition!): Append ESP-PARTITION, when
it is true, to the result of 'create-adjacent-partitions!'.
* gnu/installer/newt/partition.scm (run-partioning-page): Remove
'initial-partitions' variable, and remove call to
'create-special-user-partitions'.

Co-authored-by: Mathieu Othacehe <m.othacehe@gmail.com>
-rw-r--r--gnu/installer/newt/partition.scm6
-rw-r--r--gnu/installer/parted.scm16
2 files changed, 12 insertions, 10 deletions
diff --git a/gnu/installer/newt/partition.scm b/gnu/installer/newt/partition.scm
index abc8bdcc03..cd9d46316a 100644
--- a/gnu/installer/newt/partition.scm
+++ b/gnu/installer/newt/partition.scm
@@ -751,12 +751,8 @@ by pressing the Exit button.~%~%")))
                                  (disk (mklabel device label)))
                             (disk-commit disk)
                             disk)))
-                (initial-partitions (disk-partitions disk))
                 (scheme (symbol-append method '- (run-scheme-page)))
-                (user-partitions (append
-                                  (auto-partition! disk #:scheme scheme)
-                                  (create-special-user-partitions
-                                   initial-partitions))))
+                (user-partitions (auto-partition! disk #:scheme scheme)))
            (run-disk-page (list disk) user-partitions
                           #:guided? #t)))
        ((eq? method 'manual)
diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm
index 4ccc0b1f51..bd2640d1ad 100644
--- a/gnu/installer/parted.scm
+++ b/gnu/installer/parted.scm
@@ -895,7 +895,10 @@ partitions (except the ESP on a GPT disk, if present) are wiped. SCHEME is the
 desired partitioning scheme. It can be 'entire-root or
 'entire-root-home. 'entire-root will create a swap partition and a root
 partition occupying all the remaining space. 'entire-root-home will create a
-swap partition, a root partition and a home partition."
+swap partition, a root partition and a home partition.
+
+Return the complete list of partitions on DISK, including the ESP when it
+exists."
   (let* ((device (disk-device disk))
          (disk-type (disk-disk-type disk))
          (has-extended? (disk-type-check-feature
@@ -1001,10 +1004,13 @@ swap partition, a root partition and a home partition."
                     (mount-point "/home")))))))
            (new-partitions* (force-user-partitions-formatting
                              new-partitions)))
-      (create-adjacent-partitions! disk
-                                   new-partitions*
-                                   #:last-partition-end
-                                   (or end-esp-partition 0)))))
+      (append (if esp-partition
+                  (list (partition->user-partition esp-partition))
+                  '())
+              (create-adjacent-partitions! disk
+                                           new-partitions*
+                                           #:last-partition-end
+                                           (or end-esp-partition 0))))))
 
 
 ;;