summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-12-28 22:55:00 -0500
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-12-28 23:09:41 -0500
commit72875031a44673e7867ac7b1e8f17feab8d6fa45 (patch)
tree3fa6728498baaf8ad5d67f04e733ad5e39373658 /gnu
parentd6ea9f8b38df7de1194d8106488a8c33cce64fd1 (diff)
downloadguix-72875031a44673e7867ac7b1e8f17feab8d6fa45.tar.gz
gnu: ddcutil: Install udev rules at their expected location.
* gnu/packages/hardware.scm (ddcutil) [arguments]: New field.
[description]: Document how the included udev rules can be used.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/hardware.scm28
1 files changed, 24 insertions, 4 deletions
diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index f73896460b..81f38d069b 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -491,6 +491,22 @@ RGB animations.")
        (sha256
         (base32 "0hm0cm4m4hk1jjy7kddg613mynvwlii3kp8al0j9v3c6mcx3p4mx"))))
     (build-system gnu-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'install 'install-udev-rules
+            (lambda* (#:key outputs #:allow-other-keys)
+              ;; Move the udev rules to their expected location in Guix
+              ;; System, so they can be more easily used.
+              (let ((rules.d (string-append #$output "/lib/udev/rules.d")))
+                (mkdir-p (dirname rules.d))
+                (rename-file (string-append #$output "/share/ddcutil/data")
+                             rules.d)
+                ;; Patch a reference to the ddcutil command.
+                (substitute* (string-append rules.d "/45-ddcutil-usb.rules")
+                  (("/usr/bin/ddcutil")
+                   (search-input-file outputs "bin/ddcutil")))))))))
     (native-inputs
      (list pkg-config))
     (inputs
@@ -498,9 +514,9 @@ RGB animations.")
            glib
            kmod
            i2c-tools
-           libdrm ; enhanced diagnostics
-           libusb ; support USB monitors
-           libx11 ; enhanced diagnostics
+           libdrm                       ;enhanced diagnostics
+           libusb                       ;support USB monitors
+           libx11                       ;enhanced diagnostics
            libxrandr
            zlib))
     (home-page "https://www.ddcutil.com/")
@@ -519,7 +535,11 @@ communicate over USB as per the USB Monitor Control Class Specification.
 One particular use case is in colour profile management.  Monitor calibration
 is relative to the monitor colour settings currently in effect, e.g. red gain.
 ddcutil allows colour-related settings to be saved at the time a monitor is
-calibrated, and restored when the calibration is applied.")
+calibrated, and restored when the calibration is applied.
+
+This package includes udev rules that can be used by adding this package to
+the @code{rules} field of the @code{udev-configuration} record.  It gives
+read/write access to i2c devices to users in the @samp{i2c} group.")
     (license (list license:bsd-3        ; FindDDCUtil.cmake
                    license:gpl2+))))    ; everything else