mbakke pushed a commit to branch master
in repository guix.

commit 71e0f1e9adbce4a6476a70bddabf13f6d7af2d40
Author: Marius Bakke <[email protected]>
AuthorDate: Wed Jan 8 19:56:54 2020 +0100

    gnu: util-linux: Add variant with udev support.
    
    * gnu/packages/linux.scm (util-linux)[properties]: New field.
    (util-linux+udev): New public variable.
---
 gnu/packages/linux.scm | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 501a010..3c720f3 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -15,7 +15,7 @@
 ;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <[email protected]>
 ;;; Copyright © 2016 David Craven <[email protected]>
 ;;; Copyright © 2016 John Darrington <[email protected]>
-;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke <[email protected]>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Marius Bakke <[email protected]>
 ;;; Copyright © 2016, 2018 Rene Saavedra <[email protected]>
 ;;; Copyright © 2016 Carlos Sánchez de La Lama <[email protected]>
 ;;; Copyright © 2016, 2017 ng0 <[email protected]>
@@ -1182,12 +1182,26 @@ providing the system administrator with some help in 
common tasks.")
 utilities.  It provides dmesg and includes tools for working with file systems,
 block devices, UUIDs, TTYs, and many other tools.")
 
+    ;; Hide the package so that end users get the udev-enabled variant below.
+    (properties '((hidden? . #t)))
+
     ;; Note that util-linux doesn't use the same license for all the
     ;; code.  GPLv2+ is the default license for a code without an
     ;; explicitly defined license.
     (license (list license:gpl3+ license:gpl2+ license:gpl2 license:lgpl2.0+
                    license:bsd-4 license:public-domain))))
 
+;; util-linux optionally supports udev, which allows lsblk to read file system
+;; metadata without special privileges.  Add it as a separate package to avoid
+;; a circular dependency, and to keep the size small.
+(define-public util-linux+udev
+  (package/inherit
+   util-linux
+   (inputs
+    `(("udev" ,eudev)
+      ,@(package-inputs util-linux)))
+   (properties (alist-delete 'hidden? (package-properties util-linux)))))
+
 (define-public ddate
   (package
     (name "ddate")

Reply via email to