In some cases it is preferable to ship system images with a pre-generated binary hwdb database, to avoid having to build it at runtime, avoid shipping the source hwdb files, or avoid storing large binary files in /etc.
So if hwdb.bin does not exist in /etc/udev/, fall back to looking for it in UDEVLIBEXECDIR. This keeps the possibility to add files to /etc/udev/hwdb.d/ and re-generating the database which trumps the one in /usr/lib.
Add a new --usr flag to "udevadm hwdb --update" which puts the database into UDEVLIBEXECDIR.
Adjust systemd-udev-hwdb-update.service to not generate the file in /etc if we already have it in /usr.
33488f1 udev hwdb: Support shipping pre-compiled database in system images
man/udev.xml | 4 ++-
man/udevadm.xml | 9 +++++++
src/libudev/libudev-hwdb.c | 42 ++++++++++++++++++++++++-----
src/udev/udevadm-hwdb.c | 13 ++++++++-
units/systemd-udev-hwdb-update.service.in | 3 +++
5 files changed, 63 insertions(+), 8 deletions(-)
Upstream: github.com