[linux-dvb] backwards compatability -was- actual cvs broken?
mkrufky at linuxtv.org
Wed Nov 2 22:56:18 CET 2005
Klaus Schmidinger wrote:
> Philip Prindeville wrote:
>> Without wishing to polemic... am I the only person that wishes that
>> DVB development wasn't tied to having a bleeding-edge kernel?
>> Given that the kernel *is* modular, why shouldn't the latest
>> module sources for DVB build against a 2.6.12 kernel?
>> Is that not a reasonable expectation?
>> Seems we'd have a broader base of testers to pool with...
> This is what has kept me from switching to dvb-kernel for
> quite a while. Whenever I had installed a new version of Linux
> on my VDR, the latest, greatest DVB driver required an even
> newer kernel :-(
> I wonder when they will require a kernel from the future... -)
I agree with the both of you completely, although it is difficult to
implement backwards compatibility from now looking backwards. This type
of thing is much easier to implement AS breakages occur, rather than
Another roadblock is that the rules of dvb-kernel cvs indicate that we
should not use #IFDEF's, at least not for this purpose ...
#IFDEF's are the easiest way to keep backwards compatability, but they
create a huge mess of the code... I don't blame Johannes for wanting
none of it, as it could create a maintenance nightmare.
On the other hand, I have created a compat.h (located inside the
build-2.6 directory) ... Currently the only function this file serves is
maintaining compatability with some changes that we made to the bttv
code in v4l-kernel cvs.
Not only must dvb-kernel stay compatable with the latest dev kernel, it
also must retain compatability with v4l-kernel cvs. I have made it a
point to maintain these inter-tree dependencies myself, and this is why
For users of "hybrid" devices, that rely on code from both v4l-kernel
and dvb-kernel cvs, you can use the "make merge-trees" command from
within v4l-kernel cvs, and it will import the applicable frontend
modules from dvb-kernel cvs into v4l-kernel cvs. So far, this has been
working quite well, and v4l-kernel cvs *is* backwards compatable with
older kernels, although the tree-merge will only work against kernels
2.6.12 and later.
SO, back to the original point. Backwards compatability for older
kernels... We have compat.h to play with. Take a look at how compat.h
works inside v4l-kernel cvs. Some of the magic there can also be used
here. If anyone can find a way to increase compatability throught the
use of compat.h, feel free to send in patches. Of course, compat.h can
and is FULL of #IFDEF's ... and this is fine.
This is a very difficult task, and it will be even more difficult to
find the time to get things like this done, but it isn't impossible, at
least I dont think so.
Please keep in mind... Johannes has requested that any compat.h magic
shall be handled in separate commits from normal patches. This
simplifies the upstream patching process, and allows for the compat.h
changes to be prevented from upstream merging.
With that said, now you know that an effort is being made for such
compatibility, although this effort is a passive one. Patches are
welcome, but I cannot guaruntee inclusion of backwards compatibility
patches..... Current development is the real reason why cvs is here...
Backwards compatability is nice for user testing, but I must say, it
More information about the linux-dvb