Compare commits

..

No commits in common. "0168423b50fc047e186cc35780bd20bb9f0721ff" and "128c21d11adb015793a7bc895cbe15ef7aef39c7" have entirely different histories.

4 changed files with 96 additions and 37 deletions

View File

@ -2,12 +2,23 @@
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space> ;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
(define-module (rosenthal bootloader grub) (define-module (rosenthal bootloader grub)
;; Utilities
#:use-module (guix deprecation)
;; Guix System - bootloaders ;; Guix System - bootloaders
#:use-module (gnu bootloader)
#:use-module (gnu bootloader grub) #:use-module (gnu bootloader grub)
;; Guix packages
#:use-module (rosenthal packages bootloaders)
#:export (grub-efi-luks2-bootloader #:export (grub-efi-luks2-bootloader
grub-efi-luks2-removable-bootloader)) grub-efi-luks2-removable-bootloader))
(define-deprecated/alias grub-efi-luks2-bootloader grub-efi-bootloader) (define grub-efi-luks2-bootloader
(define-deprecated/alias grub-efi-luks2-removable-bootloader grub-efi-removable-bootloader) (bootloader
(inherit grub-efi-bootloader)
;; NOTE: Don't change the name. Generation switching code only knows
;; bootloaders defined in (gnu bootloader grub).
(name 'grub-efi)
(package grub-efi-luks2)))
(define grub-efi-luks2-removable-bootloader
(bootloader
(inherit grub-efi-removable-bootloader)
(package grub-efi-luks2)))

View File

@ -5,7 +5,6 @@
(define-module (rosenthal packages bootloaders) (define-module (rosenthal packages bootloaders)
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
;; Utilities ;; Utilities
#:use-module (guix deprecation)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
@ -34,7 +33,46 @@
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:export (systemd-stub-name)) #:export (systemd-stub-name))
(define-deprecated-package grub-efi-luks2 grub-efi) ;; Patches obtained from:
;; <https://leo3418.github.io/collections/gentoo-config-luks2-grub-systemd/packages.html>
(define grub-luks2-argon2-support-patch
(origin
(method url-fetch)
(uri (string-append "https://leo3418.github.io/"
"res/collections/gentoo-config-luks2-grub-systemd/"
"grub-2.12-luks2-argon2-v4.patch"))
(sha256
(base32
"02y15k6rd5vj2shfijyhq2nr2775vpa55ijfy6bb8irpnh8i2272"))))
(define-public grub-efi-luks2
(let ((base grub-efi))
(package
(inherit base)
(name "grub-efi-luks2")
(source
(let ((base (package-source base)))
(origin
(inherit base)
(patches
(append (origin-patches base)
(list grub-luks2-argon2-support-patch))))))
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:configure-flags flags ''())
#~(append #$flags '("--disable-werror")))
((#:phases phases '%standard-phases)
#~(modify-phases #$phases
(add-after 'unpack 'delete-configure-script
(lambda _
(delete-file "configure")))))))
(native-inputs
(modify-inputs (package-native-inputs base)
(append autoconf automake python-minimal-wrapper)))
(properties
`(,@(package-properties base)
(disable-updater? . #t))))))
(define-public limine (define-public limine
(package (package

View File

@ -1,48 +1,55 @@
From 1067857a13a015602c9bc8c5cf0aa81e7869739c Mon Sep 17 00:00:00 2001 From ab4aa6e7bb41fe0f2c64cfb587562b19a7cb44ff Mon Sep 17 00:00:00 2001
Message-ID: <1067857a13a015602c9bc8c5cf0aa81e7869739c.1773748638.git.hako@ultrarare.space> Message-ID: <ab4aa6e7bb41fe0f2c64cfb587562b19a7cb44ff.1757826291.git.hako@ultrarare.space>
From: Hilton Chain <hako@ultrarare.space> From: Hilton Chain <hako@ultrarare.space>
Date: Sun, 7 Sep 2025 13:52:57 +0800 Date: Sun, 7 Sep 2025 13:52:57 +0800
Subject: [PATCH] WIP: ZFS boot support. Subject: [PATCH] WIP: ZFS boot support.
Change-Id: I6579a36d66fcd0a487fe262c9a7c36e51532cb70 Change-Id: I6579a36d66fcd0a487fe262c9a7c36e51532cb70
--- ---
gnu/build/file-systems.scm | 14 ++++++++++---- gnu/build/file-systems.scm | 21 ++++++++++++++-------
gnu/build/linux-boot.scm | 1 + gnu/build/linux-boot.scm | 1 +
gnu/system/file-systems.scm | 30 +++++++++++++++++++++--------- gnu/system/file-systems.scm | 30 +++++++++++++++++++++---------
gnu/system/linux-initrd.scm | 25 ++++++++++++++++++++----- gnu/system/linux-initrd.scm | 25 ++++++++++++++++++++-----
guix/scripts/system.scm | 3 ++- guix/scripts/system.scm | 3 ++-
5 files changed, 54 insertions(+), 19 deletions(-) 5 files changed, 58 insertions(+), 22 deletions(-)
diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
index 33b035aa967..7a863afd1ea 100644 index c506a4911ff..05d0cb819ae 100644
--- a/gnu/build/file-systems.scm --- a/gnu/build/file-systems.scm
+++ b/gnu/build/file-systems.scm +++ b/gnu/build/file-systems.scm
@@ -1226,10 +1226,16 @@ (define (canonicalize-device-spec spec) @@ -1173,13 +1173,20 @@ (define (canonicalize-device-spec spec)
(match spec (match spec
((? string?) ((? string?)
- (if (string-prefix? "/dev/" spec) - (if (or (string-contains spec ":/") ;nfs
- (and (>= (string-length spec) 2)
- (equal? (string-take spec 2) "//")) ;cifs
- (string=? spec "none"))
- spec ; do not resolve NFS / CIFS / tmpfs devices
- ;; Nothing to do, but wait until SPEC shows up. - ;; Nothing to do, but wait until SPEC shows up.
- (resolve device-exists? spec identity) - (resolve identity spec identity)))
- spec)) ; do not resolve NFS / CIFS / tmpfs devices
+ (cond + (cond
+ ((string-prefix? "/dev/" spec) + ((or (string-contains spec ":/") ;nfs
+ ;; Nothing to do, but wait until SPEC shows up. + (and (>= (string-length spec) 2)
+ (resolve device-exists? spec identity)) + (equal? (string-take spec 2) "//")) ;cifs
+ ((string-prefix? "zfs:" spec) + (string=? spec "none"))
+ ;; Do not resolve NFS / CIFS / tmpfs devices.
+ spec)
+ ((and (>= (string-length spec) 4)
+ (string=? (string-take spec 4) "zfs:"))
+ ;; "zfs:zpool/dataset" => "zpool/dataset" + ;; "zfs:zpool/dataset" => "zpool/dataset"
+ (string-drop spec 4)) + (string-drop spec 4))
+ (else + (else
+ ;; Do not resolve NFS / CIFS / tmpfs devices + ;; Nothing to do, but wait until SPEC shows up.
+ spec))) + (resolve identity spec identity))))
((? file-system-label?) ((? file-system-label?)
;; Resolve the label. ;; Resolve the label.
(resolve find-partition-by-label (resolve find-partition-by-label
diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm
index e0743eae55a..f0085f74962 100644 index 548e28a1c97..2b577483832 100644
--- a/gnu/build/linux-boot.scm --- a/gnu/build/linux-boot.scm
+++ b/gnu/build/linux-boot.scm +++ b/gnu/build/linux-boot.scm
@@ -542,6 +542,7 @@ (define* (boot-system #:key @@ -523,6 +523,7 @@ (define* (boot-system #:key
;; So check for all four. ;; So check for all four.
(cond ((string-prefix? "/" device-string) device-string) (cond ((string-prefix? "/" device-string) device-string)
((string-contains device-string ":/") device-string) ; nfs-root ((string-contains device-string ":/") device-string) ; nfs-root
@ -51,7 +58,7 @@ index e0743eae55a..f0085f74962 100644
(else (file-system-label device-string)))) (else (file-system-label device-string))))
diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm
index f83b67c4770..00c611eaa97 100644 index 4ea8237c70d..c6cf828db21 100644
--- a/gnu/system/file-systems.scm --- a/gnu/system/file-systems.scm
+++ b/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm
@@ -372,7 +372,9 @@ (define %pseudo-file-system-types @@ -372,7 +372,9 @@ (define %pseudo-file-system-types
@ -65,7 +72,7 @@ index f83b67c4770..00c611eaa97 100644
(define %fuse-control-file-system (define %fuse-control-file-system
;; Control file system for Linux' file systems in user-space (FUSE). ;; Control file system for Linux' file systems in user-space (FUSE).
@@ -628,18 +630,21 @@ (define (file-system-mount-point-predicate mount-point) @@ -627,18 +629,21 @@ (define (file-system-mount-point-predicate mount-point)
;;; ;;;
@ -95,7 +102,7 @@ index f83b67c4770..00c611eaa97 100644
(define (btrfs-store-subvolume-file-name file-systems) (define (btrfs-store-subvolume-file-name file-systems)
"Return the subvolume file name within the Btrfs top level onto which the "Return the subvolume file name within the Btrfs top level onto which the
@@ -665,6 +670,13 @@ (define (btrfs-store-subvolume-file-name file-systems) @@ -664,6 +669,13 @@ (define (btrfs-store-subvolume-file-name file-systems)
;; XXX: Deriving the subvolume name based from a subvolume ID is not ;; XXX: Deriving the subvolume name based from a subvolume ID is not
;; supported, as we'd need to query the actual file system. ;; supported, as we'd need to query the actual file system.
(or (and=> (assoc-ref options "subvol") prepend-slash/maybe) (or (and=> (assoc-ref options "subvol") prepend-slash/maybe)
@ -110,7 +117,7 @@ index f83b67c4770..00c611eaa97 100644
(&message (&message
(message "The store is on a Btrfs subvolume, but the \ (message "The store is on a Btrfs subvolume, but the \
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index a9dabde7a32..3f0d8fc9f30 100644 index 978084062b2..8bd4a4a7850 100644
--- a/gnu/system/linux-initrd.scm --- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm
@@ -249,11 +249,25 @@ (define* (raw-initrd file-systems @@ -249,11 +249,25 @@ (define* (raw-initrd file-systems
@ -146,7 +153,7 @@ index a9dabde7a32..3f0d8fc9f30 100644
(flat-linux-module-directory (cons linux linux-extra-module-directories) (flat-linux-module-directory (cons linux linux-extra-module-directories)
@@ -364,6 +378,7 @@ (define file-system-type-modules @@ -364,6 +378,7 @@ (define file-system-type-modules
("jfs" => '("jfs")) ("jfs" => '("jfs"))
("f2fs" => '("f2fs" "crc32_cryptoapi")) ("f2fs" => '("f2fs" "crc32_generic"))
("xfs" => '("xfs")) ("xfs" => '("xfs"))
+ ("zfs" => '("zfs")) + ("zfs" => '("zfs"))
(else '()))) (else '())))
@ -167,9 +174,11 @@ index 8a56f1cc63d..75a5bb1d5f1 100644
(define uuid (define uuid
base-commit: aeeb8be0e27b4109eb2be27efe6bb7b2aa50e003 base-commit: 6174b135ffa3328fd7ad404b15b1586fc64e5666
prerequisite-patch-id: 0362b1fd022cc44cfa7181eda3d5dfea669519a3 prerequisite-patch-id: f71061d735b69d75799eb03df6215bbcb20d53b2
prerequisite-patch-id: 813f6928b0d005ee2b7a441c93b1a6f9472a3483 prerequisite-patch-id: 88337e68e714f3b1fe0d8e6588a1a4f423251610
prerequisite-patch-id: 466ade9e99cc152f8e9a33c742a4954ade466c25
prerequisite-patch-id: d66207367fc491f6569100503cd9df98b6888560
-- --
2.52.0 2.51.0

View File

@ -40,7 +40,7 @@
(define-public noctalia-shell (define-public noctalia-shell
(package (package
(name "noctalia-shell") (name "noctalia-shell")
(version "4.7.0") (version "4.6.6")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -49,7 +49,7 @@
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0qylp37xrb71c3a5fr55a5zr7ibb4nd87jkdw01l54ij15jrdqxd")))) "132jkz4pfs7wkx26qvdshhxl0vd3bfpxnyd2qaf8gr84b1ma9jxd"))))
(build-system copy-build-system) (build-system copy-build-system)
(arguments (arguments
(list (list
@ -91,6 +91,7 @@ exec ~a --config ~a/etc/xdg/quickshell/noctalia-shell \"$@\"~%"
(cut search-input-file inputs <>)) (cut search-input-file inputs <>))
'("bin/bluetoothctl" '("bin/bluetoothctl"
"bin/brightnessctl" "bin/brightnessctl"
"bin/cava"
"bin/cliphist" "bin/cliphist"
"bin/convert" "bin/convert"
"bin/ddcutil" "bin/ddcutil"
@ -120,6 +121,7 @@ exec ~a --config ~a/etc/xdg/quickshell/noctalia-shell \"$@\"~%"
(list bash-minimal (list bash-minimal
bluez bluez
brightnessctl brightnessctl
cava
cliphist cliphist
coreutils-minimal coreutils-minimal
ddcutil ddcutil
@ -137,7 +139,6 @@ exec ~a --config ~a/etc/xdg/quickshell/noctalia-shell \"$@\"~%"
noctalia-qs noctalia-qs
python-minimal python-minimal
qtbase qtbase
qtmultimedia
qtwayland qtwayland
which which
wl-clipboard wl-clipboard
@ -156,7 +157,7 @@ supporting various Wayland compositors like @code{niri}, @code{hyprland}, and
(package (package
(inherit quickshell) (inherit quickshell)
(name "noctalia-qs") (name "noctalia-qs")
(version "0.0.8") (version "0.0.4")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -165,7 +166,7 @@ supporting various Wayland compositors like @code{niri}, @code{hyprland}, and
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "0pyakmaq2bwdhnnqnrsqm9g1mjf5spij6hsvmlw058kxj8xkbbd4")))) (base32 "0gyk951pk946dib3rdsgk7nzxwxvghjvp26rs5f32x6a8g8ww1fm"))))
(inputs (inputs
(modify-inputs (package-inputs quickshell) (modify-inputs (package-inputs quickshell)
(prepend glib polkit))) (prepend glib polkit)))