NVIDIA dkms srpms

Richard Hughes hughsient at gmail.com
Tue Oct 3 20:46:36 UTC 2006


My home media server uses a NVIDIA geforce 4 video card. Usually, using
the 2D driver is good enough, but sometimes I need to do something
graphical and 3D - and so require the NVIDIA closed source driver. I've
got pretty sick installing the NVIDIA-Linux-x86-1.0-xxxx-pkg1.run file
every time I upgrade my kernel, and watching it copy "stuff" all over my
filesystem and muck up my rpmdb.

I *know* closed source drivers are bad, and illegal if they link to the
kernel. That's not in debate. I understand why Fedora doesn't ship them,
and I can also understand why the people who run the repo beginning with
l have stopped updating the kmod's. I can really understand the kernel
guys flatly refusing to debug any tainted kernel. But then I need my 3D
openGL application to run at more than 2 fps.

So, I began to think. And then I read the LICENCE file for the NVIDIA
linux drivers a couple of times. Now, IANAL, but I think it boils down
to:

* We can't legally ship compiled nvidia code (so no kmods)
* We can't legally ship a broken apart xxxx-pkgx.run file
* We probably shouldn't be shipping the .run file as part of an SRPM

So, my brain got thinking. I've used DKMS in the past, and it's been
very stable and well thought out. So, I've had a play and created a
7.4kb SRPM that does the following:

* displays a warning that closed source drivers are bad and makes the
user acknowledge.
* downloads the correct .run file from ftp.nvidia.com
* displays the nvidia LICENCE and makes user acknowledge
* installs the x11 bits and bobs in standard places (I've taken most of
this from the l.org package) so that it does not conflict with mesa etc.
* installs the useful nvidia helper tools
* installs the kernel stuff (manually) as a dkms package so that the
kernel part gets rebuilt every time you change your kernel.

And the best bit: you don't muck up your rpmdb *and* you can install the
resulting build rpm's on all your *home* PC's automatically (without
prompts). Single time pain.

Now, I'm aware I've broken two big packaging rules, that SRPMs shouldn't
download files, and that SRPMs shouldn't be interactive. I seem to
remember jpackage doing something similar with java a few years ago,
where there was only a SRPM available and you had to download a large
tar.gz file.

So, advice required from you guys: is this legal (assuming the binary
rpm's are never distributed, only the SRPM) and is this sane? I can
upload the SRPM to my private webspace (as long as I'm not doing
anything illegal in doing so) if people want.

Richard.

p.s. I am an engineer, not a lawyer.




More information about the fedora-devel-list mailing list