From 24a4a635fd76a91463c75cfe615929ec482cc2f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 7 Mar 2020 21:57:03 +0100 Subject: gnu: eudev: Add variant with corrected Btrfs rules. Discussed at . * gnu/packages/linux.scm (eudev/btrfs-fix): New variable. * gnu/services/base.scm ()[udev]: Default to it. (udev-service): Likewise for #:udev. --- gnu/packages/linux.scm | 22 +++++++++++++++++++++- gnu/services/base.scm | 6 +++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 32b34a3194..a8b74bda22 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès ;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge ;;; Copyright © 2012 Nikita Karetnikov ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Mark H Weaver @@ -2870,6 +2870,26 @@ device nodes from /dev/, handles hotplug events and loads drivers at boot time.") (license license:gpl2+))) +;; TODO: Merge with eudev on the next rebuild cycle. +(define-public eudev/btrfs-fix + (package/inherit + eudev + (version (string-append (package-version eudev) "-1")) + (arguments + (substitute-keyword-arguments (package-arguments eudev) + ((#:phases phases '%standard-phases) + `(modify-phases ,phases + (add-before 'configure 'patch-bindir-in-btrfs-rules + (lambda* (#:key outputs #:allow-other-keys) + ;; The "@bindir@" substitution incorrectly expands to a literal + ;; "${exec_prefix}" (see ). Work + ;; around it. + (let ((out (assoc-ref outputs "out"))) + (substitute* "rules/64-btrfs.rules.in" + (("@bindir@") + (string-append out "/bin"))) + #t))))))))) + (define-public eudev-with-hwdb (deprecated-package "eudev-with-hwdb" eudev)) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 706b3ae7ec..669a03b041 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès ;;; Copyright © 2015, 2016 Alex Kost ;;; Copyright © 2015, 2016 Mark H Weaver ;;; Copyright © 2015 Sou Bunnbu @@ -1918,7 +1918,7 @@ archive}). If that is not the case, the service will fail to start." udev-configuration make-udev-configuration udev-configuration? (udev udev-configuration-udev ; - (default eudev)) + (default eudev/btrfs-fix)) (rules udev-configuration-rules ;list of (default '()))) @@ -2116,7 +2116,7 @@ the udev rules in use.") directory dynamically. Get extra rules from the packages listed in the @code{rules} field of its value, @code{udev-configuration} object."))) -(define* (udev-service #:key (udev eudev) (rules '())) +(define* (udev-service #:key (udev eudev/btrfs-fix) (rules '())) "Run @var{udev}, which populates the @file{/dev} directory dynamically. Get extra rules from the packages listed in @var{rules}." (service udev-service-type -- cgit v1.2.3