issues in 1.00
Mon Dec 8 21:27:00 2003
A quick self-intro: I'm a sysadmin at Caltech. I want to package the NVIDIA
graphics drivers as an rpm such that we can change the NVIDIA driver rpm or
the kernel rpm at any time, and automatically get the module recompiled for
the new kernel. (I also want to catch newly-installed XFree86 rpms, but
that'll happen via non-dkms specfile magic, I hope.) dkms seems perfect for
this application, and I'm very pleased to see it judged sufficiently mature
to have been named version 1.00 just a week ago. I look forward to doing
little bits to help it develop further.
I have a couple of quick critiques on 1.00.
1) I downloaded and installed the dkms 1.00 rpm. It sets the permissions on
/usr/share/doc/dkms-1.00/ to 644. It should be 755 so we can do an 'ls' on
it. :) There may be other permission issues as well; I haven't fully vetted
2) I would argue that dkms should put its state files in /var/lib/dkms/, not
in /var/dkms. See: http://www.pathname.com/fhs/2.2/fhs-5.1.html where it
Applications must generally not add directories to the top level of /var.
Such directories should only be added if they have some system-wide
implication, and in consultation with the FHS mailing list.
Then in http://www.pathname.com/fhs/2.2/fhs-5.8.html we read about /var/lib:
This hierarchy holds state information pertaining to an application or the
system. State information is data that programs modify while they run, and
that pertains to one specific host. Users must never need to modify files in
/var/lib to configure a package's operation.
State information is generally used to preserve the condition of an
application (or a group of inter-related applications) between invocations
and between different instances of the same application. State information
should generally remain valid after a reboot, should not be logging output,
and should not be spooled data.
An application (or a group of inter-related applications) must use a
subdirectory of /var/lib for its data.
Seems fairly clear to me, although I'm not an expert. Unfortunately, if you
do agree that we should use /var/lib/dkms/, users of older versions of dkms
will have to migrate /var/dkms.
That's it for now. I have a partial spec file for the nvidia drivers; my next
step will be to look over your example spec file for dkms-ready packages, and
try to fill in the pieces for the nvidia drivers. If I encounter any more
issues, I'll certainly speak up.