mirror of
https://https.git.savannah.gnu.org/git/guix.git/
synced 2025-07-14 02:50:45 +02:00
gnu: eudev: Fix optical discs detection/auto-mounting.
* gnu/packages/patches/eudev-removable-devices-polling.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/linux.scm (eudev-fixed): New fixed package. (eudev) [replacement]: Use it. Fixes: <https://issues.guix.gnu.org/35584> Change-Id: I26045c99506eda1b748011825b2049057cd5394f
This commit is contained in:
parent
455805beda
commit
670724edcf
3 changed files with 52 additions and 0 deletions
|
@ -1215,6 +1215,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/elm-ghc9.2.patch \
|
||||
%D%/packages/patches/elm-offline-package-registry.patch \
|
||||
%D%/packages/patches/elm-reactor-static-files.patch \
|
||||
%D%/packages/patches/eudev-removable-devices-polling.patch \
|
||||
%D%/packages/patches/emacs-all-the-icons-remove-duplicate-rs.patch \
|
||||
%D%/packages/patches/emacs-bash-completion-preserve-exit-code.patch \
|
||||
%D%/packages/patches/emacs-bash-completion-preserve-ps1.patch \
|
||||
|
|
|
@ -4923,6 +4923,7 @@ to the in-kernel OOM killer.")
|
|||
(package
|
||||
(name "eudev")
|
||||
(version "3.2.14")
|
||||
(replacement eudev-fixed)
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference (url "https://github.com/eudev-project/eudev")
|
||||
|
@ -5032,6 +5033,17 @@ device nodes from /dev/, handles hotplug events and loads drivers at boot
|
|||
time.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define eudev-fixed
|
||||
(package
|
||||
(inherit eudev)
|
||||
(source
|
||||
(let ((base-source (package-source eudev)))
|
||||
(origin
|
||||
(inherit base-source)
|
||||
(patches
|
||||
(append (search-patches "eudev-removable-devices-polling.patch")
|
||||
(origin-patches base-source))))))))
|
||||
|
||||
(define-public python-evdev
|
||||
(package
|
||||
(name "python-evdev")
|
||||
|
|
39
gnu/packages/patches/eudev-removable-devices-polling.patch
Normal file
39
gnu/packages/patches/eudev-removable-devices-polling.patch
Normal file
|
@ -0,0 +1,39 @@
|
|||
Upstream-status: https://github.com/systemd/systemd/pull/37336
|
||||
Upstream-status: https://github.com/eudev-project/eudev/pull/294
|
||||
|
||||
The existing rule would only be effective when the block drivers are compiled
|
||||
as modules as opposed to being builtin. On some systems such as Guix System,
|
||||
the 'sr_mod' driver for optical discs is builtin the kernel instead of a
|
||||
module, and the absence of polling means there are no uevents emitted for
|
||||
udisks to act on.
|
||||
|
||||
This change was originally contributed to Debian by Martin Pitt to fix
|
||||
<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=713877>, later removed as it
|
||||
was deemed no longer needed. It appears still useful on eudev and elogind
|
||||
systems like Guix System and others.
|
||||
|
||||
* rules.d/60-block.rules: Apply kernel polling to all removable devices instead
|
||||
of just those of the block category handled by a kernel module.
|
||||
---
|
||||
rules.d/60-block.rules | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/rules.d/60-block.rules b/rules.d/60-block.rules
|
||||
index c3bf32eb83..cc1eb7055e 100644
|
||||
--- a/rules/60-block.rules
|
||||
+++ b/rules/60-block.rules
|
||||
@@ -1,8 +1,7 @@
|
||||
# do not edit this file, it will be overwritten on update
|
||||
|
||||
# enable in-kernel media-presence polling
|
||||
-ACTION=="add", SUBSYSTEM=="module", KERNEL=="block", ATTR{parameters/events_dfl_poll_msecs}=="0", \
|
||||
- ATTR{parameters/events_dfl_poll_msecs}="2000"
|
||||
+ACTION=="add", ATTR{removable}=="1", ATTR{events_poll_msecs}=="-1", ATTR{events_poll_msecs}="2000"
|
||||
|
||||
# forward scsi device event to corresponding block device
|
||||
ACTION=="change", SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST=="block", ATTR{block/*/uevent}="change"
|
||||
|
||||
base-commit: 0e0d3ed93a4e816f8ca5efb3760ceb640fea11bc
|
||||
--
|
||||
2.49.0
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue