(address . guix-patches@gnu.org)(name . Adrien 'neox' Bourmault)(address . neox@gnu.org)
Hi.
While attempting to use a Canon LiDE 30 scanner, which is supported by SANE in
its current version, I noticed a malfunction with the plustek backend. No
application seemed capable of detecting the scanner, even though the
`sane-find-scanner` command indicated its presence, and the device IDs matched
those in the plustek backend configuration.
I investigated further using the following command:
SANE_DEBUG_SANEI_USB=128 SANE_DEBUG_PLUSTEK=255 strace -fye open,openat scanimage -L
Here is a summary of the output:
[23:00:21.688008] [plustek] usbDev_open(auto,) - 0x1c1e5630
[pid 1209-20241] openat(AT_FDCWD</home/neox>, "/gnu/store/gzc1m4n79d1fgby8l58dsaq7nrzyhc14-sane-backend>
[23:00:21.688089] [plustek] sanei_access_lock failed: 11
[23:00:21.688131] [plustek] open failed: -1
It seems that the issue is the attempt to open a lock file in the store, which
is not possible due to the read-only nature of the file system.
To address this, there were two possible approaches: either move the lock file
to another location or disable the locking mechanism altogether.
After some research, I found that this bug has been resolved in both Debian [1]
and nixOS [2], and it has also been reported to the upstream project [3]. Debian
opted to disable the locking mechanism, while nixOS moved the lock file to a
runtime-generated location using systemd (by patching the install phase to
prevent the creation of the lock directory). However, since the locking
mechanism allows the use of multiple devices simultaneously[4], which can be
useful, nixOS's solution appears to be the better approach. I followed this
method, proposing to create the lock directory during the activation of the
sane service.
I tested these patch with my Canon LiDE 30 and have been able to (finally)
scan with it.
I realized I forgot to add my copyright notice in the files I
modified. This v2 fixes this.
[1] Debian bug report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=973490
[2] nixOS bug report: https://github.com/NixOS/nixpkgs/issues/273280
[3] Upstream issue: https://gitlab.com/sane-project/backends/-/issues/363
Adrien 'neox' Bourmault (2):
gnu: sane-backends-minimal: fix lock path for plustek backend
services: sane-service-type: create lock path for plustek backend
gnu/packages/scanner.scm | 10 +++++++++-
gnu/services/desktop.scm | 14 ++++++++++++++
2 files changed, 23 insertions(+), 1 deletion(-)
base-commit: 1b6ce1796abdf497f61f426d61339318f4f4f23d
--
2.46.0