[PATCH] installer: Update to Guile-Parted 0.0.2 release.

  • Done
  • quality assurance status badge
Details
3 participants
  • Ludovic Courtès
  • Mathieu Othacehe
  • Ricardo Wurmus
Owner
unassigned
Submitted by
Mathieu Othacehe
Severity
normal
M
M
Mathieu Othacehe wrote on 24 Sep 2019 14:26
(address . guix-patches@gnu.org)(name . Mathieu Othacehe)(address . m.othacehe@gmail.com)
20190924122603.25583-1-m.othacehe@gmail.com
* 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(-)

Toggle diff (149 lines)
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?
--
2.23.0
M
M
Mathieu Othacehe wrote on 24 Sep 2019 14:28
installer: Update to Guile-Parted 0.0.2 release.
(address . 37497@debbugs.gnu.org)
87y2ydq3n8.fsf@gmail.com
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
L
L
Ludovic Courtès wrote on 25 Sep 2019 14:54
(name . Mathieu Othacehe)(address . m.othacehe@gmail.com)(address . 37497@debbugs.gnu.org)
87k19wmt87.fsf@gnu.org
Hi Mathieu,

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

Toggle quote (8 lines)
> 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!

Toggle quote (3 lines)
> 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’.
M
M
Mathieu Othacehe wrote on 25 Sep 2019 16:04
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 37497@debbugs.gnu.org)
87v9tgpj3w.fsf@gmail.com
Hey,

Toggle quote (3 lines)
> 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
R
R
Ricardo Wurmus wrote on 27 Sep 2019 07:54
(address . 37497-done@debbugs.gnu.org)
87ef02gu85.fsf@elephly.net
Mathieu Othacehe <m.othacehe@gmail.com> writes:

Toggle quote (5 lines)
>> 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.

--
Ricardo
Closed
?