diff mbox series

[bug#37497] installer: Update to Guile-Parted 0.0.2 release.

Message ID 20190924122603.25583-1-m.othacehe@gmail.com
State Accepted
Headers show
Series [bug#37497] installer: Update to Guile-Parted 0.0.2 release. | expand

Commit Message

Mathieu Othacehe Sept. 24, 2019, 12:26 p.m. UTC
* gnu/installer/parted.scm (data-partition?, metadata-partition?,
freespace-partition?, normal-partition?, extended-partition?,
logical-partition?): Remove, as now provided by Guile-Parted.
* gnu/installer/newt/partition.scm (run-disk-page): Remove disk-destroy calls,
replace disk-delete-all by disk-remove-all-partitions and
disk-delete-partition by disk-remove-partition*.
---
 gnu/installer/newt/partition.scm |  9 ++----
 gnu/installer/parted.scm         | 48 +++-----------------------------
 2 files changed, 7 insertions(+), 50 deletions(-)

Comments

Mathieu Othacehe Sept. 24, 2019, 12:28 p.m. UTC | #1
Hello,

Here's a patch to update the installer to the new Guile-Parted release.  It
gets rid of the "delete" functions, that are now taken care of by pointer
finalizers.

I tested it on an x64 VM without seeing any regression, but sadly its hard to
cover all cases. I'll update the Guile-Parted when this gets pushed.

Thanks,

Mathieu
Ludovic Courtès Sept. 25, 2019, 12:54 p.m. UTC | #2
Hi Mathieu,

Mathieu Othacehe <m.othacehe@gmail.com> skribis:

> Here's a patch to update the installer to the new Guile-Parted release.  It
> gets rid of the "delete" functions, that are now taken care of by pointer
> finalizers.

>  gnu/installer/newt/partition.scm |  9 ++----
>  gnu/installer/parted.scm         | 48 +++-----------------------------
> 2 files changed, 7 insertions(+), 50 deletions(-)

Nice, LGTM!

> I tested it on an x64 VM without seeing any regression, but sadly its hard to
> cover all cases. I'll update the Guile-Parted when this gets pushed.

I guess you’ll have to push the ‘guile-parted’ package update right
before this patch, right?

Thanks,
Ludo’.
Mathieu Othacehe Sept. 25, 2019, 2:04 p.m. UTC | #3
Hey,

> I guess you’ll have to push the ‘guile-parted’ package update right
> before this patch, right?

Yes, done as a3246602a2 and 70c7b7c799. Thanks for the review.

Mathieu
Ricardo Wurmus Sept. 27, 2019, 5:54 a.m. UTC | #4
Mathieu Othacehe <m.othacehe@gmail.com> writes:

>> I guess you’ll have to push the ‘guile-parted’ package update right
>> before this patch, right?
>
> Yes, done as a3246602a2 and 70c7b7c799. Thanks for the review.

Thanks.  Closing.
diff mbox series

Patch

diff --git a/gnu/installer/newt/partition.scm b/gnu/installer/newt/partition.scm
index 7a9f11a15e..74e9473171 100644
--- a/gnu/installer/newt/partition.scm
+++ b/gnu/installer/newt/partition.scm
@@ -587,7 +587,6 @@  edit it."
                                           disks))
                      (new-user-partitions
                       (remove-user-partition-by-disk user-partitions item)))
-                (disk-destroy item)
                 `((disks . ,(cons new-disk other-disks))
                   (user-partitions . ,new-user-partitions)))
               `((disks . ,disks)
@@ -625,7 +624,7 @@  edit it."
                                       info-text)))
           (case result
             ((1)
-             (disk-delete-all item)
+             (disk-remove-all-partitions item)
              `((disks . ,disks)
                (user-partitions
                 . ,(remove-user-partition-by-disk user-partitions item))))
@@ -649,7 +648,7 @@  edit it."
                  (let ((new-user-partitions
                         (remove-user-partition-by-partition user-partitions
                                                             item)))
-                   (disk-delete-partition disk item)
+                   (disk-remove-partition* disk item)
                    `((disks . ,disks)
                      (user-partitions . ,new-user-partitions))))
                 (else
@@ -696,9 +695,7 @@  by pressing the Exit button.~%~%")))
                        #f))
                  (check-user-partitions user-partitions))))
           (if user-partitions-ok?
-              (begin
-                (for-each (cut disk-destroy <>) disks)
-                user-partitions)
+              user-partitions
               (run-disk-page disks user-partitions
                              #:guided? guided?)))
         (let* ((result-disks (assoc-ref result 'disks))
diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm
index 682e233d9f..3439f211e2 100644
--- a/gnu/installer/parted.scm
+++ b/gnu/installer/parted.scm
@@ -64,13 +64,7 @@ 
             user-partition-parted-object
 
             find-esp-partition
-            data-partition?
-            metadata-partition?
-            freespace-partition?
             small-freespace-partition?
-            normal-partition?
-            extended-partition?
-            logical-partition?
             esp-partition?
             boot-partition?
             default-esp-mount-point
@@ -172,24 +166,6 @@ 
   "Find and return the ESP partition among PARTITIONS."
   (find esp-partition? partitions))
 
-(define (data-partition? partition)
-  "Return #t if PARTITION is a partition dedicated to data (by opposition to
-freespace, metadata and protected partition types), return #f otherwise."
-  (let ((type (partition-type partition)))
-    (not (any (lambda (flag)
-                (member flag type))
-              '(free-space metadata protected)))))
-
-(define (metadata-partition? partition)
-  "Return #t if PARTITION is a metadata partition, #f otherwise."
-  (let ((type (partition-type partition)))
-    (member 'metadata type)))
-
-(define (freespace-partition? partition)
-  "Return #t if PARTITION is a free-space partition, #f otherwise."
-  (let ((type (partition-type partition)))
-    (member 'free-space type)))
-
 (define* (small-freespace-partition? device
                                      partition
                                      #:key (max-size MEBIBYTE-SIZE))
@@ -200,21 +176,6 @@  inferior to MAX-SIZE, #f otherwise."
                             (device-sector-size device))))
     (< size max-sector-size)))
 
-(define (normal-partition? partition)
-  "return #t if partition is a normal partition, #f otherwise."
-  (let ((type (partition-type partition)))
-    (member 'normal type)))
-
-(define (extended-partition? partition)
-  "return #t if partition is an extended partition, #f otherwise."
-  (let ((type (partition-type partition)))
-    (member 'extended type)))
-
-(define (logical-partition? partition)
-  "Return #t if PARTITION is a logical partition, #f otherwise."
-  (let ((type (partition-type partition)))
-    (member 'logical type)))
-
 (define (partition-user-type partition)
   "Return the type of PARTITION, to be stored in the TYPE field of
 <user-partition> record. It can be 'normal, 'extended or 'logical."
@@ -813,7 +774,7 @@  cause them to cross."
 (define (rmpart disk number)
   "Remove the partition with the given NUMBER on DISK."
   (let ((partition (disk-get-partition disk number)))
-    (disk-remove-partition disk partition)))
+    (disk-remove-partition* disk partition)))
 
 
 ;;
@@ -928,12 +889,12 @@  exists."
 
     (if has-extended?
         ;; msdos - remove everything.
-        (disk-delete-all disk)
+        (disk-remove-all-partitions disk)
         ;; gpt - remove everything but esp if it exists.
         (for-each
          (lambda (partition)
            (and (data-partition? partition)
-                (disk-remove-partition disk partition)))
+                (disk-remove-partition* disk partition)))
          non-boot-partitions))
 
     (let* ((start-partition
@@ -1348,7 +1309,7 @@  USER-PARTITIONS, or return nothing."
 
 (define (init-parted)
   "Initialize libparted support."
-  (probe-all-devices)
+  (probe-all-devices!)
   (exception-set-handler (lambda (exception)
                            EXCEPTION-OPTION-UNHANDLED)))
 
@@ -1364,7 +1325,6 @@  the devices not to be used before returning."
   ;; https://mail.gnome.org/archives/commits-list/2013-March/msg18423.html.
   (let ((device-file-names (map device-path devices)))
     (for-each force-device-sync devices)
-    (free-all-devices)
     (for-each (lambda (file-name)
                 (let ((in-use? (with-delay-device-in-use? file-name)))
                   (and in-use?