[systemd-devel] [PATCH] udev hwdb: Store binary database in libdir, not in /etc

Tom Gundersen teg at jklm.no
Fri Jun 14 05:43:59 PDT 2013


Hi Martin,

On Fri, Jun 14, 2013 at 2:15 PM, Martin Pitt <martin.pitt at ubuntu.com> wrote:
> I tought about using /var/cache/ first as well, but /var might be on a
> different partition. Hence I was using /lib/udev (i. e. udevlibdir) as
> this guaranteed to be on the same partition as all the other udev
> helpers.

Yeah, I agree it is not a viable solution either.

> Why is it a problem if a file in /lib is not under control of the
> package manager?

I'm working under the assumption that we want /usr one day to only
contain static files generated at build-time (and hence under the
control of the package manager), or at the very least any files in
/usr not under the control of the package manager should be generated
at install-time and be shareable between hosts using the same /usr.
(Substitute "/usr" with "/usr, /lib, /bin and /sbin" if you didn't
merge these dirs). You might of course disagree with this goal though
:)

> There are other files in /lib which are not, e. g.
> /lib/modules/<kernel>/modules.dep{,.bin}.

Yeah, that is another problematic example, though not as bad as at
least these files are generated only based on stuff in /usr.

> Also, if you share
> /lib/udev/hwdb.d/, you can also share /lb/udev/hwdb.bin? How would
> sharing be any different whether the cache file is in /etc or /lib?

hwdb.bin is generated both from /etc/udev/hwdb.d/ (local) and
/lib/udev/hwdb.d/ (potentially shared) so hwdb.bin can not itself be
shared.


I'm afraid I don't see an elegant solution to the problem of caches
needed during early boot, short of doing something invasive as moving
/var/cache to /cache and mount it in the initramfs (as was done with
/run) or requiring /var itself to be mounted by the initramfs (as was
done with /usr). I can imagine strong opposition to both though...

-t


More information about the systemd-devel mailing list