Compare commits

..

2 Commits

Author SHA1 Message Date
Hilton Chain
5d336ad0cf
services: iwd: Unset default values for most fields.
* modules/rosenthal/services/networking.scm (maybe-boolean?)
(maybe-randomization-method?, maybe-randomization-range?)
(maybe-signal-strength?, maybe-seconds?, maybe-protection-mode?)
(maybe-integer?, maybe-number?, maybe-list-of-cidr4?): New procedures.
(iwd-configuration)[use-default-interface?, address-randomization]
[address-randomization-range, roam-threshold, roam-threshold-5g]
[roam-retry-interval, management-frame-protection]
[control-port-over-nl80211?, disable-anqp?, disable-ocv?, enable-ipv6?]
[route-priority-offset, initial-timeout, multiplier, maximum-timeout]
[band-modifier-5ghz, band-modifier-6ghz, disable-periodic-scan?]
[initial-periodic-scan-interval, maximum-periodic-scan-interval]
[disable-roaming-scan?, ap-address-pool]: Unset default value.
2025-05-15 20:08:23 +08:00
Hilton Chain
cf5fc0ef73
rosenthal: rosenthal-cargo-inputs: Move to (rosenthal utils cargo).
* modules/rosenthal/packages/rust-crates.scm (rosenthal-cargo-inputs): Move
to...
* modules/rosenthal/utils/cargo.scm (rosenthal-cargo-inputs): ...here.
* modules/rosenthal/packages/rust-apps.scm: Adjust module import.
* modules/rosenthal/packages/wm.scm: Likewise.
* modules/rosenthal/packages/xorg.scm: Likewise.

Fixes: https://codeberg.org/hako/Rosenthal/issues/12
2025-05-15 19:47:20 +08:00
6 changed files with 63 additions and 40 deletions

View File

@ -8,7 +8,7 @@
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system cargo) #:use-module (guix build-system cargo)
#:use-module (rosenthal packages rust-crates)) #:use-module (rosenthal utils cargo))
(define-public atuin (define-public atuin
(package (package

View File

@ -3,16 +3,13 @@
;;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal packages rust-crates) (define-module (rosenthal packages rust-crates)
#:use-module (guix diagnostics)
#:use-module (guix i18n)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system cargo) #:use-module (guix build-system cargo)
#:use-module (rosenthal packages wm) #:use-module (rosenthal packages wm)
#:export (lookup-cargo-inputs #:export (lookup-cargo-inputs))
rosenthal-cargo-inputs))
;;; ;;;
;;; This file is managed by guix import. DO NOT add definitions manually. ;;; This file is managed by guix import. DO NOT add definitions manually.
@ -49,15 +46,6 @@
"Return the inputs for NAME." "Return the inputs for NAME."
(hashq-ref table name)))))))) (hashq-ref table name))))))))
(define* (rosenthal-cargo-inputs name #:key (module '(rosenthal packages rust-crates)))
"Lookup Cargo inputs for NAME defined in MODULE, return an empty list if
unavailable."
(let ((lookup (module-ref (resolve-interface module) 'lookup-cargo-inputs)))
(or (lookup name)
(begin
(warning (G_ "no Cargo inputs available for '~a'~%") name)
'()))))
;;; ;;;
;;; Rust dependencies fetched from crates.io and non-workspace development ;;; Rust dependencies fetched from crates.io and non-workspace development
;;; snapshots. ;;; snapshots.

View File

@ -8,6 +8,7 @@
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system cargo) #:use-module (guix build-system cargo)
#:use-module (rosenthal utils cargo)
#:use-module (gnu packages admin) #:use-module (gnu packages admin)
#:use-module (gnu packages freedesktop) #:use-module (gnu packages freedesktop)
#:use-module (gnu packages gl) #:use-module (gnu packages gl)
@ -17,8 +18,7 @@
#:use-module (gnu packages llvm) #:use-module (gnu packages llvm)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages wm) #:use-module (gnu packages wm)
#:use-module (gnu packages xdisorg) #:use-module (gnu packages xdisorg))
#:use-module (rosenthal packages rust-crates))
(define-public rust-pipewire (define-public rust-pipewire
(let ((commit "fd3d8f7861a29c2eeaa4c393402e013578bb36d9") (let ((commit "fd3d8f7861a29c2eeaa4c393402e013578bb36d9")

View File

@ -8,10 +8,10 @@
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system cargo) #:use-module (guix build-system cargo)
#:use-module (rosenthal utils cargo)
#:use-module (gnu packages llvm) #:use-module (gnu packages llvm)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg))
#:use-module (rosenthal packages rust-crates))
(define-public xwayland-satellite (define-public xwayland-satellite
(package (package

View File

@ -88,6 +88,8 @@
(define (serialize-boolean field-name val) (define (serialize-boolean field-name val)
(serialize-field field-name (if val "true" "false"))) (serialize-field field-name (if val "true" "false")))
(define-maybe boolean)
(define cidr4? (@@ (gnu services vpn) cidr4?)) (define cidr4? (@@ (gnu services vpn) cidr4?))
(define serialize-cidr4 serialize-field) (define serialize-cidr4 serialize-field)
@ -100,11 +102,15 @@
(define (serialize-randomization-method field-name val) (define (serialize-randomization-method field-name val)
(serialize-field field-name (or val 'disabled))) (serialize-field field-name (or val 'disabled)))
(define-maybe randomization-method)
(define (randomization-range? val) (define (randomization-range? val)
(memv val '(full nic))) (memv val '(full nic)))
(define serialize-randomization-range serialize-field) (define serialize-randomization-range serialize-field)
(define-maybe randomization-range)
(define (signal-strength? val) (define (signal-strength? val)
(and (number? val) (and (number? val)
(>= val -100) (>= val -100)
@ -112,17 +118,23 @@
(define serialize-signal-strength serialize-field) (define serialize-signal-strength serialize-field)
(define-maybe signal-strength)
(define (seconds? val) (define (seconds? val)
(and (integer? val) (and (integer? val)
(not (negative? val)))) (not (negative? val))))
(define serialize-seconds serialize-field) (define serialize-seconds serialize-field)
(define-maybe seconds)
(define (protection-mode? val) (define (protection-mode? val)
(memv val '(0 1 2))) (memv val '(0 1 2)))
(define serialize-protection-mode serialize-field) (define serialize-protection-mode serialize-field)
(define-maybe protection-mode)
(define (resolution-method? val) (define (resolution-method? val)
(memv val '(#f resolvconf))) (memv val '(#f resolvconf)))
@ -131,8 +143,12 @@
(define serialize-integer serialize-field) (define serialize-integer serialize-field)
(define-maybe integer)
(define serialize-number serialize-field) (define serialize-number serialize-field)
(define-maybe number)
(define (serialize-list-of-strings field-name val) (define (serialize-list-of-strings field-name val)
(serialize-field field-name (string-join val ","))) (serialize-field field-name (string-join val ",")))
@ -142,6 +158,8 @@
(define serialize-list-of-cidr4 serialize-list-of-strings) (define serialize-list-of-cidr4 serialize-list-of-strings)
(define-maybe list-of-cidr4)
(define-configuration iwd-configuration (define-configuration iwd-configuration
(iwd (iwd
(file-like iwd) (file-like iwd)
@ -157,12 +175,12 @@
"Enable network configuration.") "Enable network configuration.")
(use-default-interface? (use-default-interface?
(boolean #f) maybe-boolean
"Do not allow iwd to destroy / recreate wireless interfaces at startup, "Do not allow iwd to destroy / recreate wireless interfaces at startup,
including default interfaces.") including default interfaces.")
(address-randomization (address-randomization
(randomization-method #f) maybe-randomization-method
"Available values are @code{#f}, @code{once} and @code{network}. @code{#f} "Available values are @code{#f}, @code{once} and @code{network}. @code{#f}
for default kernel behavior, @code{once} to randomize the MAC address when iwd for default kernel behavior, @code{once} to randomize the MAC address when iwd
starts or the hardware is detected for the first time, @code{network} to starts or the hardware is detected for the first time, @code{network} to
@ -170,43 +188,43 @@ randomize the MAC address on each connection to a network (the MAC address is
generated based on the SSID and permanent address of the adapter).") generated based on the SSID and permanent address of the adapter).")
(address-randomization-range (address-randomization-range
(randomization-range 'full) maybe-randomization-range
"Available values are @code{nic} and @code{full}. @code{nic} to only "Available values are @code{nic} and @code{full}. @code{nic} to only
randomize the NIC specific octets (last 3 ones), @code{full} to randomize all randomize the NIC specific octets (last 3 ones), @code{full} to randomize all
6 octets of the address.") 6 octets of the address.")
(roam-threshold (roam-threshold
(signal-strength -70) maybe-signal-strength
"Value in dBm, control how aggressively iwd roams when connected to a 2.4Ghz "Value in dBm, control how aggressively iwd roams when connected to a 2.4Ghz
access point.") access point.")
(roam-threshold-5g (roam-threshold-5g
(signal-strength -76) maybe-signal-strength
"Value in dBm, control how aggressively iwd roams when connected to a 5Ghz "Value in dBm, control how aggressively iwd roams when connected to a 5Ghz
access point.") access point.")
(roam-retry-interval (roam-retry-interval
(seconds 60) maybe-seconds
"How long to wait before attempting to roam again if the last roam attempt "How long to wait before attempting to roam again if the last roam attempt
failed, or if the signal of the newly connected BSS is still considered weak.") failed, or if the signal of the newly connected BSS is still considered weak.")
(management-frame-protection (management-frame-protection
(protection-mode 1) maybe-protection-mode
"Available values are @code{0}, @code{1} and @code{2}. @code{0} to "Available values are @code{0}, @code{1} and @code{2}. @code{0} to
completely turn off MFP (even if the hardware is capable), @code{1} to enable completely turn off MFP (even if the hardware is capable), @code{1} to enable
MFP if the local hardware and remote AP both support it, @code{2} to always MFP if the local hardware and remote AP both support it, @code{2} to always
require MFP.") require MFP.")
(control-port-over-nl80211? (control-port-over-nl80211?
(boolean #t) maybe-boolean
"Enable sending EAPoL packets over NL80211.") "Enable sending EAPoL packets over NL80211.")
(disable-anqp? (disable-anqp?
(boolean #t) maybe-boolean
"Disable ANQP queries.") "Disable ANQP queries.")
(disable-ocv? (disable-ocv?
(boolean #f) maybe-boolean
"Disable Operating Channel Validation.") "Disable Operating Channel Validation.")
(country (country
@ -215,7 +233,7 @@ require MFP.")
;; Network ;; Network
(enable-ipv6? (enable-ipv6?
(boolean #t) maybe-boolean
"Configure IPv6 addresses and routes.") "Configure IPv6 addresses and routes.")
(name-resolving-service (name-resolving-service
@ -226,57 +244,57 @@ resolution method used by the system and must be used in conjunction with
information.") information.")
(route-priority-offset (route-priority-offset
(integer 300) maybe-integer
"Configure a route priority offset used by the system to prioritize the "Configure a route priority offset used by the system to prioritize the
default routes. The route with lower priority offset is preferred.") default routes. The route with lower priority offset is preferred.")
;; Blacklist ;; Blacklist
(initial-timeout (initial-timeout
(seconds 60) maybe-seconds
"The initial time that a BSS spends on the blacklist.") "The initial time that a BSS spends on the blacklist.")
(multiplier (multiplier
(integer 30) maybe-integer
"If the BSS was blacklisted previously and another connection attempt has "If the BSS was blacklisted previously and another connection attempt has
failed after the initial timeout has expired, then the BSS blacklist time will failed after the initial timeout has expired, then the BSS blacklist time will
be extended by a multiple of @code{multiplier} for each unsuccessful attempt up be extended by a multiple of @code{multiplier} for each unsuccessful attempt up
to @code{maximum-timeout} time.") to @code{maximum-timeout} time.")
(maximum-timeout (maximum-timeout
(seconds 86400) maybe-seconds
"Maximum time that a BSS is blacklisted.") "Maximum time that a BSS is blacklisted.")
;; Rank ;; Rank
(band-modifier-5ghz (band-modifier-5ghz
(number 1.0) maybe-number
"Increase or decrease the preference for 5GHz access points by increasing or "Increase or decrease the preference for 5GHz access points by increasing or
decreasing the value of this modifier.") decreasing the value of this modifier.")
(band-modifier-6ghz (band-modifier-6ghz
(number 1.0) maybe-number
"Increase or decrease the preference for 6GHz access points by increasing or "Increase or decrease the preference for 6GHz access points by increasing or
decreasing the value of this modifier.") decreasing the value of this modifier.")
;; Scan ;; Scan
(disable-periodic-scan? (disable-periodic-scan?
(boolean #f) maybe-boolean
"Disable periodic scan.") "Disable periodic scan.")
(initial-periodic-scan-interval (initial-periodic-scan-interval
(seconds 10) maybe-seconds
"The initial periodic scan interval upon disconnect.") "The initial periodic scan interval upon disconnect.")
(maximum-periodic-scan-interval (maximum-periodic-scan-interval
(seconds 300) maybe-seconds
"The maximum periodic scan interval.") "The maximum periodic scan interval.")
(disable-roaming-scan? (disable-roaming-scan?
(boolean #f) maybe-boolean
"Disable roaming scan.") "Disable roaming scan.")
;; IPv4 ;; IPv4
(ap-address-pool (ap-address-pool
(list-of-cidr4 '("192.168.0.0/16")) maybe-list-of-cidr4
"Define the space of IPs used for the AP mode subnet addresses and the DHCP "Define the space of IPs used for the AP mode subnet addresses and the DHCP
server.") server.")

View File

@ -0,0 +1,17 @@
;;; SPDX-FileCopyrightText: 2025 Hilton Chain <hako@ultrarare.space>
;;;
;;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal utils cargo)
#:use-module (guix diagnostics)
#:use-module (guix i18n)
#:export (rosenthal-cargo-inputs))
(define* (rosenthal-cargo-inputs name #:key (module '(rosenthal packages rust-crates)))
"Lookup Cargo inputs for NAME defined in MODULE, return an empty list if
unavailable."
(let ((lookup (module-ref (resolve-interface module) 'lookup-cargo-inputs)))
(or (lookup name)
(begin
(warning (G_ "no Cargo inputs available for '~a'~%") name)
'()))))