[sane-devel] As instructed by /etc/udev/rules.d/libsane.rules

Johannes Meixner jsmeix at suse.de
Tue Nov 17 10:31:12 UTC 2009


Hello,

On Nov 16 08:53 Alesh Slovak wrote (shortened):
> ... distro policy ... udev rules ...
...
> We can't use a static rules file because each distro
> uses slightly different syntax.
...
> ... changes distros themselves keep making to their udev rules ...
...
> ... breakage nearly every time ...

As far as I understand udev (and HAL and how all this stuff is
called nowadays) it seems you are wrong when you think it is
the distros which introduce all this never ending mess
of incompatible changes.

Compare what I wrote about "we all urgently need a ... reliable
working standard regarding device management." at

https://lists.linux-foundation.org/pipermail/lsb-discuss/2009-February/005821.html


As far as I understand it, it is the design of udev and HAL
which is broken to the core which is the root cause because
it exposes intentionally unstable kernel internal structures
so that the content of HAL and udev files depend on
intentionally unstable kernel internal structures.

See for example the therefore required madness in
/etc/udev/rules.d/55-libsane.rules
-------------------------------------------------------
# Kernel >= 2.6.22 jumps here
...
# Kernel < 2.6.22 jumps here
...
-------------------------------------------------------
What the heck has udev libsane.rules to do
with a particular kernel minor version number?

An intersting evil side effect of this broken design is
that the bare syntax of HAL and udev files does not change
but what changes is the values (e.g. how which particular
kernel internal event is currently called).

Therefore the maintainers of HAL and udev cannot notice
when there are incompatible changes because it is only
the kernel maintainers who would know about such changes
but the kernel maintainers will of course not inform
the SANE or IScan or HPLIP maintainers because those
are correctly out of scope for kernel maintainers.

In the following URLs the issue is about HAL but as far
as I understand it, it is the same for udev.

Have a look at
https://bugzilla.novell.com/show_bug.cgi?id=438867#c48
and
https://bugzilla.novell.com/show_bug.cgi?id=438867#c55
or as a short summary
https://bugzilla.novell.com/show_bug.cgi?id=438867#c51

If you like see a list of incompatible changes in HAL
which only hit me in the past see
https://bugzilla.novell.com/show_bug.cgi?id=438867#c44
and for openSUSE 11.2 it is of course agian broken
because of one more backward-incompatible change:
https://bugzilla.novell.com/show_bug.cgi?id=542473#c14

Currently the only feasible way out of the mess for a
normal user (i.e. one who is not a udev/HAL expert)
is to run the saned plus the net meta-backend on localhost
to simply access his scanner via saned which runs as root.


Kind Regards
Johannes Meixner
-- 
SUSE LINUX Products GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany
AG Nuernberg, HRB 16746, GF: Markus Rex



More information about the sane-devel mailing list