mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00: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-ghc9.2.patch \
|
||||||
%D%/packages/patches/elm-offline-package-registry.patch \
|
%D%/packages/patches/elm-offline-package-registry.patch \
|
||||||
%D%/packages/patches/elm-reactor-static-files.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-all-the-icons-remove-duplicate-rs.patch \
|
||||||
%D%/packages/patches/emacs-bash-completion-preserve-exit-code.patch \
|
%D%/packages/patches/emacs-bash-completion-preserve-exit-code.patch \
|
||||||
%D%/packages/patches/emacs-bash-completion-preserve-ps1.patch \
|
%D%/packages/patches/emacs-bash-completion-preserve-ps1.patch \
|
||||||
|
|
|
@ -4923,6 +4923,7 @@ to the in-kernel OOM killer.")
|
||||||
(package
|
(package
|
||||||
(name "eudev")
|
(name "eudev")
|
||||||
(version "3.2.14")
|
(version "3.2.14")
|
||||||
|
(replacement eudev-fixed)
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference (url "https://github.com/eudev-project/eudev")
|
(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.")
|
time.")
|
||||||
(license license:gpl2+)))
|
(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
|
(define-public python-evdev
|
||||||
(package
|
(package
|
||||||
(name "python-evdev")
|
(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