Subject: [bug#66099] [PATCH gnome-team v8 1/6] gnu: eudev: Update to 3.2.14.

From: Liliana Marie Prikler <[email-masked]>
Date: Fri, 06 Oct 2023 20:35:42 +0200

Am Dienstag, dem 19.09.2023 um 13:23 +0200 schrieb Vivien Kraus:
> Everything that eudev searches in "sysconf" is actually searched
> under /gnu/store/.../etc/udev, as autoconf defines sysconfdir under
> $prefix by default. The udev-service-type however prepares every file
> in /etc/udev, without a prefix. To use /etc/udev as the sysconfdir,
> we must set it as a configure flag.
This comment remains more confusing than helpful.  I get what you're
trying to express (or at least I hope I do), but I could easily read it
the wrong way.  Basically, what you're trying to express is that we set
sysconfdir to /etc/udev so that eudev uses the hwdb from udev-service-
type rather than the one in its own package.  This is fine – although
there are better ways to do so, see below – but the way it's
communicated here, is… strange.

> Eudev has a hardware database that installs descriptions of hardware
> in /etc, but they can also be installed in <prefix>/lib instead. The
> manual page recommends to install all hardware description files into
> <prefix of eudev>/lib/udev/hwdb.d, but this directory will be read-
> only when installing another hardware-providing package.
This should be "Eudev now has a hardware database /etc made up of
descriptions installed in /lib/udev/hwdb.d, and more generally,
UDEV_HWDB_PATH."  We should probably also patch our own manuals to not
make that recommendation.  Perhaps close off with mentioning hwdb --
update.

> The build system tries, but fails, to install hardware files into
> /etc. A fix makes it install the hardware files into <prefix>/lib
> instead. Another file, an empty /etc/udev.conf, is expected to be
> installed in /etc/udev, but it is not needed in guix.
Gratuitous information that's more confusing than helpful.

> The hwdb.bin file used to be generated in <prefix>/etc/udev/hwdb.bin,
> but since the sysconf dir is now directly /etc, the hwdb.bin index
> will not be found under <prefix>/etc/udev/hwdb.bin.
While we choose to do this via sysconfdir, the proper fix would be to
read the path to the hwdb file from /etc/udev/udev.conf and fall back
to $prefix/etc/udev/hwdb.bin if it's undefined.  That saves us some
hacks.

> * gnu/packages/linux.scm (eudev): Update to 3.2.14.
> [modules]: Import (guix build utils).
> [#:phases] <allow-eudev-hwdb>: New phase.
> <install-in-lib>: New phase.
> <build-hwdb>: Remove phase.
> [#:configure-flags]: Set sysconfdir to avoid a prefix.
> [native-search-paths]: Add UDEV_HWDB_PATH.
> * gnu/packages/patches/eudev-rules-directory.patch: Rebase it.
> ---
Cheers