In the following of last IRC meeting, here is a draft of a FAQ with what was said. Comments are welcome.
Regards, José Fonseca Binary compatibility ==================== 1. What does binary compatibility means? It means that that driver binaries made on previous releases should work with newer versions. 2. Why is it so important? To avoid potential havoc. For example: - If a user installs that latest version of XFree86 -- they don't always know they need a new kernel module too -- and end up running with the older ones. - A vendor has intelectual property they don't want to release. Binary only components can be released, but they will need to support many different flavors of release. - For sake of our driver suite binary releases. 3. Binary compatibility in practice. 3.1 Of the DRM... We have to maintain one direction of compatability in order to stay in the Linux kernel release. This can be acomplished by: - semantic change should create a new IOCTL and leave support for the old semantics in the DRM module as well - bumping the minor revision number to give a mechanism to know if the new semantics were available NOTE: Check for different versions and fail gracefully is not a viable scenario acording to Linus. NOTE: Even when we ignore this and break compatability completely -- we have to use versioning properly or we don't even get warnings and disabling. We get CRASHES!!! 3.2 In the SAREA... Removing a field is generally a "no, no" as it will readily break backward compatability. 3.2 Between the DDX and the GL driver... These are less likely to get out of sync as the DRM module -- but it's still possible. Again, having good revision checking can save a lot of headaches later. If the versioning isn't accounted for we get hangs and crashes with mismatches. We need to account for older versions, but not necessarily fully support -- we could fail gracefully --, although a driver suite supporter could decide to support older versions of one module or the other -- at their options. For example, let's say a hardware vendor released a binary DDX module for a special video out mode, then it would be nice if the 3D open source component worked with that module for as many versions as the initial interface allowed. So, even though we did many updates and releases, the old closed-source binary still worked. _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel