issues in 1.00

David Kewley kewley@cns.caltech.edu
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 
it yet.

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 
says:

  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.

David