patch vdr2.3.5
Produktive Problem- und Pluginlösungen für VDR 2.3.2 und höher
-
-
text2skin hatte ich upstream/master bereits korrigiert:
- https://projects.vdr-developer…vdr-plugin-text2skin.git/
Regards
fnu -
patch vdr 2.3.5
-
Gibt es eigentlich eine Möglichkeit, wie man erkennen man, ob ein Plugin einen "min_max Patch" benötigt?
-
Gibt es auch schon einen Patch für tvguideng ?
Steigt bei mir aus mit.
usr/local/src/vdr-2.3.5/PLUGINS/lib/libvdr-tvguideng.so.2.3.5: undefined symbol: Timers
Gruß
speed -
keiner das gleiche Problem ??
-
keiner das gleiche Problem ??
Doch, aber ich warte auf einen Patch von Dir ...
-
patch vdr 2.3.5
-
Gibt es eigentlich eine Möglichkeit, wie man erkennen man, ob ein Plugin einen "min_max Patch" benötigt?
Die zuverlässigste Methode ist vermutlich es bauen zu lassen und auf die Fehlermeldung des Compilers zu reagieren...
Soweit ich das verstanden habe (ich lasse mich da von einem C++ Programmierer gerne korrigieren), konnte ein Plugin bislang die STL-Funktionen min, max, sgn und swap ohne Namespace-Änderung nutzen, wenn __STL_CONFIG_H vor dem Import der tools.h des VDR definiert war (z.B. wenn im Makefile -D__STL_CONFIG_H gesetzt wird, wie bei https://projects.vdr-developer…ice.git/tree/Makefile#n53 oder es im Quelltext definiert wird (wie bei https://github.com/horchi/scra…b/master/lib/common.h#L48 ), weil der Präprozessor dann die Inline-Definition der Funktionen aus dem Header-File rauswirft.
Mit dem VDR 2.3.5 wurde __STL_CONFIG_H aufgesplittet:
Diff
Alles anzeigendiff -ruN vdr-2.3.4/tools.h vdr-2.3.5/tools.h --- vdr-2.3.4/tools.h 2017-03-16 17:04:43.000000000 +0100 +++ vdr-2.3.5/tools.h 2017-05-22 13:07:04.000000000 +0200 @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: tools.h 4.6 2017/03/16 16:04:43 kls Exp $ + * $Id: tools.h 4.10 2017/05/22 11:07:04 kls Exp $ */ #ifndef __TOOLS_H @@ -51,10 +51,14 @@ #define CHECK(s) { if ((s) < 0) LOG_ERROR; } // used for 'ioctl()' calls #define FATALERRNO (errno && errno != EAGAIN && errno != EINTR) -#ifndef __STL_CONFIG_H // in case some plugin needs to use the STL +#ifndef _STL_ALGOBASE_H // in case some plugin needs to use the STL template<class T> inline T min(T a, T b) { return a <= b ? a : b; } template<class T> inline T max(T a, T b) { return a >= b ? a : b; } +#endif +#ifndef __STL_CONFIG_H // in case some plugin needs to use the STL template<class T> inline int sgn(T a) { return a < 0 ? -1 : a > 0 ? 1 : 0; } +#endif +#ifndef _MOVE_H // in case some plugin needs to use the STL template<class T> inline void swap(T &a, T &b) { T t = a; a = b; b = t; } #endif [...]
Jetzt müsste also _STL_ALGOBASE_H definiert sein, um die min() und max()-Funktion aus der STL ohne Namespacewechsel zu nutzen (bei einer doppelten Deklaration weiß der Compiler nicht, was er verwenden soll und wirft Warnungen oder Fehler) oder man gibt wie in den ganzen hier geposteten Patches den std:: Namespace für die Funktionen aus der STL an. (Was mich zu der Frage bringt, warum die Implementierungsdateien des VDR auf .c enden, wenn es eigentlich C++ Code ist - ist das historisch gewachsener Eigensinn da nicht .cpp zu verwenden?). -
(Was mich zu der Frage bringt, warum die Implementierungsdateien des VDR auf .c enden, wenn es eigentlich C++ Code ist - ist das historisch gewachsener Eigensinn da nicht .cpp zu verwenden?)
Ja ;-).
.cpp ist mir einfach zu viel Tipperei. Ausserdem mache ich gerne so Sachen wie 'grep xyz *.[ch]'.Klaus
-
Hallo,
auch wenn fnu mich steinigt, frage ist trotzdem noch mal
Gibt es schon einen Patch für tvguideng. und VDR-2.3.5 ?
Gruß
speed -
Nein, gibt es nach meinem Wissensstand nicht, wäre vmtl. auch hier gepostet worden.
Der Fehlermeldung nach übersteigt das meine Fähigkeiten einen Patch zu erstellen ...
Regards
fnu -
-
Patch für vdr-plugin-rpihddevice gegen VDR 2.3.5
-
Patch für vdr-plugin-seduatmo gegen VDR 2.3.5
-
Patch für vdr-plugin-vompserver gegen VDR 2.3.5
-
vdr-plugin-tvguideng
Patch für vdr-plugin-tvguideng gegen VDR 2.3.5
-
-
.vertippt
-
Vielen Dank rfehr & megax.
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!