On Wed, Jan 30, 2002 at 02:05:42PM -0500, Vladimir Dergachev wrote:
> Regardless of the way it is merged the driver major version will need to
> be bumped. GATOS drivers does this but only minor - as I did not want to
> upload a mesa radeon driver just because of the version change.

I'm afraid I haven't been following this discussion closely enough, but
I found this statement sort of odd, so I thought I'd comment.

Version numbers for kernel interfaces are rather different than those
for normal software packages. In normal software packages they are more
of a vanity thing. A minor version number bump means small things
changed, and a major one means hey we did big things. In kernel drivers
they are really important as they describe the API between the kernel
and the user space application. There are very strict rules about which
version numbers are changed when.

The major version of a driver should be incremented if and only if there
are incompatible changes to the driver that prevent older versions from
working. You obviously want to minimize these sorts of changes, so that
you don't break compatability. For example, lets say we found a big
security hole in an IOCTL. The first thing we'd try to do is rewrite the
function so avoid the hole. Maybe even in a way that's really slow. As
long as the interface remains the same that's fine. We might add a new
interface that's fast again, but keep the old one around for backward
compatability. If that's completely impossible then we remove the IOCTL
and bump the major version number.

If you add or change functionality, but the old drivers still work, then
a minor version number should be bumped. Drivers will check for a
matching major number and minor number that is greater than or equal to
the one they need. So, again if we go back to that security problem. If
we rewrote the old IOCTL to be slow but secure and added a new one that
is safe and fast, the minor number would be bumped.

If you just fix a bug or make some really small change that doesn't
impact the interface, then you bump the third digit. Third digits are
ignored by the software and are really just documentation.

(These paragraphs might be good for a FAQ/Doc somewhere)

So, the thing that struck me as odd, is that you said you only bumped
the minor version because you didn't want to break Mesa. If your changes
do work with Mesa, than bumping the minor version is the right thing to
do. We're trying REALLY hard not to change the kernel interfaces. Linus
kicked our asses pretty severely about not being careful with kernel
version numbers. (Rightfully so) Weve been told in no uncertain terms
that if we didn't get this stuff under control it would be removed from
the kernel tree. So we should be very careful about how this Gatos
functionality is added. It sounds like it should be possible to do it
without breaking the API if we put our thinking caps on.

                                                     - |Daryll


_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to