c't vdr vs debian vdr (Patchlevel)

Thomas Günther pkg-vdr-dvb-devel@lists.alioth.debian.org
Wed, 23 Jun 2004 16:42:30 +0200


Hallo!

Tobias Grimm wrote:
> Eine andere Variante wäre, auch in c't vdr ganz auf die 
> Patchlevel-Prüfung zu verzichten. Wenn jemand dann mit einem
> gepatchten vdr ein nicht binär-kompatibles Plugin laden will, hat er
> halt Pech gehabt.

Wenn ich bei mir lokal neue Patches einbaue, dann versuche ich immer,
den Patchlevel nicht zu ändern, um nicht alle Plug-ins neu übersetzen zu
müssen. Das funktioniert auch sehr gut, solange die Schnittstelle zu den
Plug-ins nicht verändert wird. Neu Funktionen o.ä. dürfen wohl
hinzukommen, aber vorhandene dürfen ihre Signatur nicht ändern.

Ich habe ein paar Patches als Beispiel angehängt. Die meisten sind
unkritisch, da sie nur in *.c-Dateien ändern. fix-black-square und
recordings-0.0.2 habe ich so angepasst, dass die Schnittstelle erhalten
bleibt.

Das ist teilweise ganz schön abenteuerlich. Deswegen habe ich mir eine
andere Lösung überlegt. Man könnte die Patches so gestalten, dass der
Teil, der die Schnittstelle zu den Plug-ins betrifft, immer reingepatcht
wird, aber die Implementierung nur optional.

Zu den Schnittstellen gehören alle Änderungen in den *.h-Dateien mit
dazugehöriger Initialisierung in den *.c-Dateien. Um die Implementierung
optional zu machen, könnte man den Patch in zwei Teile teilen oder die
Implementierung durch ifdefs abschaltbar einbauen.

Ich denke, das könnte so funktionieren, habe es aber noch nicht an
solchen Patch-Monstern wie AutoPID oder Elchi/ImprovedOsd ausprobiert.
Vielleicht sollte man bei diesen auch besser bei dem Patchlevel-System
bleiben, wobei als offizielles Paket nur eine Variante angeboten wird.

Bei kleineren Patches könnte ich mir aber sehr gut vorstellen, ohne
Patchlevel auszukommen. Was meint ihr zu dem Vorschlag?

Thomas

PS: Tobias, wenn du den einen oder anderen Patch im VDR-Paket
integrieren willst, nur zu. Ich hatte mich damit bisher nur nicht
gemeldet, da ich weiß was die Aufnahme neuer Patches, d.h. die Änderung
des Patchlevels nach sich zieht.
Den cap-Patch hatte ich mal eingebaut, weil ich den VDR nicht mehr als
root-Prozeß laufen lassen wollte (auch ein wichtiger Punkt für die
weitere Entwicklung!), ohne auf das Stellen der Systemzeit zu
verzichten. Hat aber nicht geklappt. Ich vermute, dazu muss ich den
Kernel anpassen. Weiß jemand mehr?