From 8fec416cec6ffa5e2f1647eda8090fef1b0f71ac Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 3 Jan 2020 19:26:54 +0100 Subject: installer: Add JFS support. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/installer/newt/partition.scm (run-fs-type-page): Add ‘jfs’ to the list box. * gnu/installer/parted.scm (user-fs-type-name, user-fs-type->mount-type) (partition-filesystem-user-type): Add ‘jfs’ mapping (create-jfs-file-system): New procedure. (format-user-partitions): Use it. * gnu/installer.scm (set-installer-path): Add jfsutils. --- gnu/installer.scm | 6 ++++-- gnu/installer/newt/partition.scm | 3 ++- gnu/installer/parted.scm | 15 ++++++++++++++- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/gnu/installer.scm b/gnu/installer.scm index 167653263f..1676a91801 100644 --- a/gnu/installer.scm +++ b/gnu/installer.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Mathieu Othacehe ;;; Copyright © 2019 Ludovic Courtès -;;; Copyright © 2019 Tobias Geerinckx-Rice +;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,6 +32,7 @@ #:use-module (gnu packages connman) #:use-module (gnu packages cryptsetup) #:use-module (gnu packages disk) + #:use-module (gnu packages file-systems) #:use-module (gnu packages guile) #:use-module (gnu packages guile-xyz) #:autoload (gnu packages gnupg) (guile-gcrypt) @@ -295,7 +296,8 @@ selected keymap." cryptsetup dosfstools ;mkfs.fat e2fsprogs ;mkfs.ext4 - btrfs-progs + btrfs-progs ;mkfs.btrfs + jfsutils ;jfs_mkfs kbd ;chvt guix ;guix system init call util-linux ;mkwap diff --git a/gnu/installer/newt/partition.scm b/gnu/installer/newt/partition.scm index 74e9473171..3cba7f77dd 100644 --- a/gnu/installer/newt/partition.scm +++ b/gnu/installer/newt/partition.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018, 2019 Mathieu Othacehe ;;; Copyright © 2019 Ludovic Courtès +;;; Copyright © 2020 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -120,7 +121,7 @@ Be careful, all data on the disk will be lost.") (run-listbox-selection-page #:info-text (G_ "Please select the file-system type for this partition.") #:title (G_ "File-system type") - #:listbox-items '(ext4 btrfs fat16 fat32 swap) + #:listbox-items '(ext4 btrfs fat16 fat32 jfs swap) #:listbox-item->text user-fs-type-name #:sort-listbox-items? #f #:button-text (G_ "Exit") diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm index 519996ff12..c2b02c9281 100644 --- a/gnu/installer/parted.scm +++ b/gnu/installer/parted.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018, 2019 Mathieu Othacehe ;;; Copyright © 2019 Ludovic Courtès +;;; Copyright © 2020 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -221,6 +222,7 @@ inferior to MAX-SIZE, #f otherwise." ((btrfs) "btrfs") ((fat16) "fat16") ((fat32) "fat32") + ((jfs) "jfs") ((swap) "linux-swap"))) (define (user-fs-type->mount-type fs-type) @@ -229,7 +231,8 @@ inferior to MAX-SIZE, #f otherwise." ((ext4) "ext4") ((btrfs) "btrfs") ((fat16) "fat") - ((fat32) "vfat"))) + ((fat32) "vfat") + ((jfs) "jfs"))) (define (partition-filesystem-user-type partition) "Return the filesystem type of PARTITION, to be stored in the FS-TYPE field @@ -242,6 +245,7 @@ of record." ((string=? name "btrfs") 'btrfs) ((string=? name "fat16") 'fat16) ((string=? name "fat32") 'fat32) + ((string=? name "jfs") 'jfs) ((or (string=? name "swsusp") (string=? name "linux-swap(v0)") (string=? name "linux-swap(v1)")) @@ -1031,6 +1035,11 @@ bit bucket." (with-null-output-ports (invoke "mkfs.fat" "-F32" partition))) +(define (create-jfs-file-system partition) + "Create a JFS file-system for PARTITION file-name." + (with-null-output-ports + (invoke "jfs_mkfs" "-f" partition))) + (define (create-swap-partition partition) "Set up swap area on PARTITION file-name." (with-null-output-ports @@ -1101,6 +1110,10 @@ NEED-FORMATING? field set to #t." (and need-formatting? (not (eq? type 'extended)) (create-fat32-file-system file-name))) + ((jfs) + (and need-formatting? + (not (eq? type 'extended)) + (create-jfs-file-system file-name))) ((swap) (create-swap-partition file-name)) (else -- cgit v1.2.3