[ANNOUNCE] VDR version 2.6.4 freigegeben

  • Vorschlag:

    Es gibt eine API Version, die deutlich sichtbar von der VDR Version abweicht.

    Alternative: Konfigurierbar über Makefile wird die API Version auf die VDR Version gesetzt (default), kann aber auch den eigenen Wert behalten.

    Wer die Plugins nicht neu übersetzen will, kann das dann mit einer make Option erreichen.

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • Wie schon versucht es irgendwie klar zu machen: Die Versionsnummern können nicht "weg". Auch wenn das definitiv meine liebste Alternative wäre. Ein stabiles API für Plugins das sich möglichst lange nicht mehr ändert und dann auch weg mit dem ständigen Plugin-Neukompilieren. Würde mir so verdammt viel Aufwand sparen beim VDR updaten... Aber auch klar: Der VDR ändert sich stetig (was ja auch gut so ist) und um alle internen Änderungen auch mit Plugins nutzen zu können ist direkter Zugriff auf VDR-Interne Strukturen sehr vorteilhaft.


    Ich kann nur immer wieder betonen: Ich habe mich wahnsinnig gefreut bei diesem VDR-Update ausnahmsweise mal nicht stundenlang kompilieren zu müssen. Von mir aus gerne öfter Releases bei denen Plugins nicht neu gebaut werden müssen. Ärgerlich das hier über eine wirkliche Annehmlichkeit dann gemeckert wird. Ich weiß nicht wie viele Plugins speed kompilieren muss, aber ich habe bei jedem VDR-Update so irgendwas um die 80 Plugins zu bauen. Und nutze davon selber vielleicht 3 oder 4.


    Vermutlich wäre eine von der VDR version unabhängige Nummerierung tatsächlich das optimale. Wegen mir einfach eine hochlaufende Zahl und gar keine Versionsnummer mehr. Das würde auch ein anderes Problem fixen das sich ergeben hat. Als es noch Entwickler-Versionen (die "ungeraden Versionsnummern") gegeben hat, dann wurden Plugins zu Entwickler-Versionen automatisch inkompatibel wenn eine neue Entwickler-Version mit API-Änderung gekommen ist. Das ist, wenn man regelmäßig vom GIT baut, nun nicht mehr so. Der Entwicklungsstand könnte schon inkompatible Änderungen drauf haben, aber die APIVERSION wurde nicht angepasst weil ja eben nur Entwicklungsstand. Mit einer hochlaufenden Nummer könnte Klaus theoretisch bei jeder für die API inkompatiblen Änderung diese Nummer einfach einmal hochzählen. Auch beim Bauen vom GIT werden dann inkompatible Plugins nicht mehr geladen.


    Wenn die APIVERSION letztlich wirklich hart auf die VDRVERSION gemappt wird, dann würde ich mir zumindest einen Hinweis wünschen ob sich eine API-Änderung ergeben hat. Ich würde dann nämlich für Arch gerne hart zurück patchen um mir die ganze Kompiliererei zu sparen. Dafür das ich es selber kaum noch nutze ist mir der ganze VDR-Kram nämlich langsam echt zu viel Aufwand.

  • Nur durch diese Diskussion kommt es nun Worst Case dazu das es gar keine separate APIVERSION mehr gibt und man wirklich ohne Not ständig neu bauen muss. Dann hätte ich lieber den aktuellen Stand behalten und eben besser dokumentiert das die APIVERSION eben nicht zwingend der VDRVERSION entsprechen muss.


    Aber stimmt schon. Letztlich entscheidet Klaus. Ich würde mich auf jeden Fall freuen wenigstens noch einen Hinweis in Changelogs zu sehen wenn kein Neubauen zu Version X nötig ist. Ich würde, wenn keine bessere Lösung kommt, dann lieber die APIVERSION auf diese im Changelog genannte Version zurück patchen statt unnötig neu zu bauen.

  • Welchen Vorteil es bringen soll, statt der an die VDRVERSION angelehnten APIVERSION eine andere laufende Nummer zu nehmen, erschließt sich mir nicht. Ich hatte vergessen, in der Freigabenotiz darauf hinzuweisen, dass Plugins nicht neu übersetzt werden müssen. Das werde ich künftig automatisieren. Vorerst lasse ich es mal so, wie es ist.

  • > Welchen Vorteil es bringen soll, statt der an die VDRVERSION angelehnten APIVERSION eine andere laufende Nummer zu nehmen, erschließt sich mir nicht

    Na ja, wenn ich vdr 2.6.4 habe, und die Namen der Plugins enden mit 2.6.3, dann gibt es Menschen, die vermuten, dass etwas nicht stimmt.

    Wenn ich vdr 2.6.4 habe, und die Namen der Plugins enden mit 73, dann ist allen klar, dass diese Nummern nichts miteinander zu tun haben.


    > Vorerst lasse ich es mal so, wie es ist.

    Finde ich gut. Ich habe 3 Kinder, und einer pienst immer ...

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • Ich habe 3 Kinder, und einer pienst immer ... :thumbup:

  • Finde ich gut. Ich habe 3 Kinder, und einer pienst immer ...

    Cool, wenn du trotzdem noch ein wenig Zeit für deine Projekte abknapsen kannst.

  • Nach reiflicher Überlegung ... verstehe ich immer noch nicht was da passiert ist.


    Beim Schneiden auf der zweiten SSD lief diese voll, so dass das Schneiden abgebrochen wurde. Dann hing der VDR mit offenem Recording Display bis ich ihn beendet habe.


    Ich sehe aber in den beiden Backtraces keine zweite Mutex, die zu einem Deadlock führen könnte.

    Kann es sein, dass der Compiler da die Mutexe verwechselt weil sowohl das statische cMutex cControl::mutex in cControl::Shutdown() als auch private cMutex mutex in cRecordingsHandler::Finished() nur als &mutex angesprochen werden?


    kls : Kannst Du Dir das bitte mal ansehen?

  • FireFly Ich kann auch nicht erkennen, warum diese zwei Mutexe sich blockieren sollten. Es handelt sich ja offensichtlich um zwei verschiedene,

    (this=0x61bde0 <RecordingsHandler+96>) und

    (this=0x61bc00 <cControl::mutex>).

    Die Gleichheit der Namen dürfte eigentlich auch keine Rolle spielen, denn sie sind ja in völlig verschiedenen Klassen. Um das auszuschließen könntest du ja mal einen der beiden umbenennen und das Ganze nochmal nachstellen.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!