Suche HowTo zum Debianisieren neuer Plugins

  • Hallo,


    die Anleitung zum Debianisieren von Plugins bei e-tobi.net ist durchaus umfangreich und und kurzweilig zu lesen. Doch für mein erstes Plugin habe ich Stunden gebraucht, da nicht jeder Einzelschritt mit der genauen Befehlsfolge beschrieben war. Außerdem hat Tobi als Beispiel ein Plugin gewählt, dass keine Konfigurationsdateien hat, was für mich dann ebenfalls noch eine (kleine) Hürde darstellte.


    Ich würde mir daher im Wiki ein HowTo mit Schritt-für-Schritt-Anleitung wünschen, die auch Kompilier-Newbies umsetzen können. Als Beispielplugin böte sich an, eines zu nehmen, dass aufgrund diverser Restriktionen derzeit nicht ins Repository kommen würde, wie z.B. das mp3ng-Plugin.


    VOR ALLEM aber wünsche ich mir ein HowTo zum Übersetzen von Plugins für vdrdevel! Da habe ich mir jetzt schon zwei komplette Nächte um die Ohren geschlagen, ohne dass dies von Erfolg gekrönt gewesen wäre.


    debianize-vdrdevelplugin war ja noch OK. In der Ausgabe dieses Befehls stand dann was vom Setzen einer Umgebungsvariable:


    Code
    SPECIAL_VDR_SUFFIX=devel fakeroot dpkg-buildpackage -us -uc -tc

    Das hat mich vor ziemliche Probleme gestellt. Denn so am Prompt eingegeben führte das zu einer Fehlemeldung. Dann die Zuweisung in Anführungszeichen gesetzt. Übersetzen lief dann trotzdem schief.


    Zumal ich auch nirgends gefunden habe mit welchem Befehl ich dann kompiliere. Normalerweise mache ich das für vdr mit


    Code
    dpkg-buildpakage -rfakeroot -us -uc -sa

    Da das aber in obiger Umgebungsvariable schon drin steht ist das vermutlich falsch.


    /EDIT 2008-07-11: Typo im letzten Befehl entfernt fakreoot > fakeroot (Sorry für die Verwirrungen)

    Debian Squeeze Bullseye mit vdr 1.7.18 2.6.0-1~etobi1 e-tobi/multipatch, AMD Phenom-CPU, 4 GB RAM, Technotrend S2-6400, Digital Devices Cine S2 V6, 2 TByte HDD für Videodaten.

    Einmal editiert, zuletzt von HolgerAusB ()

  • So ne feste Beschreibung ist sehr schwer möglich, ist ja jedes Plugin individuell.


    Also versuchen wir mal ein paar Punkte anzuführen:
    Build Umgebung aufbauen:

    Code
    apt-get install build-essential # mal grundlegende Tool installieren
    apt-get build-dep vdr # build Tools für vdr installieren (ev nicht unnötig)
    apt-get install vdr-dev


    Sourcen des Plugins holen und auspacken.


    In das Verzeichnis wechseln und debianize-vdrplugin ausführen.


    README des Plugins lesen.
    Eventuell notwendige Abhängigkeiten installieren (zum bauen auch die -dev Pakete).
    Die dev Pakete auch in debian/control unter Build-Depends: eintragen.


    Schauen ob zusätzliche Dateien neben dem libvdr-PLUGINNAME.so.VDRVERSION für das Plugin notwendig sind.
    Falls ja diese in debian/install eintragen.


    Falls du Optionen mit übergeben musst beim Start ne Datei debian/plugin.PLUGINNAME.conf anlegen und mit den Optionen füllen.
    Auch diese in debian/install Eintragen.


    Beispiel debian/install (inkl Kommentare) für live cvs:

    Code
    libvdr-live.so.*           usr/lib/vdr/plugins/                 # das Plugin selber
    debian/plugin.live.conf    etc/vdr/plugins/                     # die Parameter übergabe Datei
    css/siteprefs.css          var/lib/vdr/plugins/live/css/        # im Plugindir benötigt
    themes/*                   var/lib/vdr/plugins/live/themes/     # im Plugindir benötigt


    Patches für das Plugin:
    dpatch-edit-patch PATCHNAME
    Patch auf die Sourcen anwenden
    exit, und Patch wird in debian/patches erstellt.
    Dort noch ne 00list anlegen.


    Falls der vdr nen Patch braucht musst den vorher dort einbauen und ne eigene vdr-dev verwenden.


    Restlichen Dateien in debian/ anpassen (nur erforderlich wenn es veröffentlicht werden soll)


    Kompilieren mit dpkg-buildpackage -rfakreoot -us -uc -sa


    Für vdrdevel sollte es eigentlich genauso laufen, nur das du beim Kompilieren SPECIAL_VDR_SUFFIX=devel dpkg-buildpackage -rfakreoot -us -uc -sa aufrufen musst.


    Mehr Beschreibung zu spezial vdr in /usr/share/vdr-dev/make-special-vdr.sh


    Sicher ned vollständig, aber mal n Anfang.


  • Das Setzen der Umgebungsvariable ist nur der 1. Teil:
    SPECIAL_VDR_SUFFIX=devel
    Diese Umgebungsvariable gilt dann nur für den Befehl, der dahinter steht:
    fakeroot dpkg-buildpackage -us -uc -tc
    was dasselbe ist wie
    dpkg-buildpackage -rfakreoot -us -uc -tc


    Ich würde dir raten, die Debianisierung erst für vdr-1.4.7 zu machen, um mögliche vdrdevel-spezifische Probleme auszuschließen. Wenn das vdr-Plugin läuft, kannst du aus denselben Sourcen das vdrdevel-Plugin erstellen. Der Unterschied im Aufruf der Übersetzung ist nur die gesetzte Umgebungsvariable SPECIAL_VDR_SUFFIX.


    http://www.toms-cafe.de/vdr/vdrdevel.de.html ist wirklich veraltet. Wichtig ist die Beschreibung von Tobi: http://www.e-tobi.net/blog/art…bian-vdr-plug-in-paketes,
    die natürlich nicht sämtliche Besonderheiten beim Packen von Debianpaketen enthält. Dafür gibt es ausführliche Beschreibungen auf http://debian.org.


    Tom

  • Versuch's mal damit:


    http://ubuntuforums.org/showthread.php?t=51003


    Vielleicht hilft dir das


    Gruß

    LinVDR 0.7 | Mahlzeit 4.0 Beta 2 | VDR 1.4.7-tt-ext30 | Dr.Selsam kernel 2.6.21.3
    PVR350, Asus A7V333, Athlon XP 2000+, 256MB RAM, 160GB pATA Samsung, Trust 511 5.1. Sound Expert Surround (modul: snd_cmipci, SPDIF an)
    pvr350 (2007-06-09), pvrinput (1.0.0_20070523), osdteletext (0.5.1) [funktioniert], etc.
    dvd-plugin noch nicht getestet, wird aber geladen

  • Danke für die vielen Infos. Beschämenderweise muss ich zugeben, dass es bei mir auch deshalb nicht funktuionierte, weil ich in der Befehlszeile "SPECIAL_VDR_SUFFIX=devel fakeroot dpkg-buildpackage -us -uc -tc" vermutlich ständig einen Tippfehler eingebaut hatte. Jetzt geht's.


    BTW: Kann es sein, dass debianze-vdrdevelplugin bei Verwendung von SPECIAL_VDR_SUFFIX überflüssig respektive kontraproduktiv ist? Wenn ich beides nehme kommt am Schluss ein vdrdeveldevel-plugin-foobar raus.


    Sollte man vielleicht auch noch irgendwo erwähnen, wenn dem so ist.

    Debian Squeeze Bullseye mit vdr 1.7.18 2.6.0-1~etobi1 e-tobi/multipatch, AMD Phenom-CPU, 4 GB RAM, Technotrend S2-6400, Digital Devices Cine S2 V6, 2 TByte HDD für Videodaten.

    Einmal editiert, zuletzt von HolgerAusB ()

  • Sorry, wenn ich das Thema noch mal aufrolle...
    Es geht um das leidige Thema vdr-plugin-music.


    Dachte ich probiere das obrige HowTo mal, um das Plugin zu debianisieren... hänge aber fest.


    Wenn ich einen Extrathread öffnen sollte, sagt es ruhig:


    Meine Vorgehensweise:
    1. Download des Plugins
    2. Entpacken in /usr/src/music
    3. wechsel in das Verzeichnis mit cd /usr/src/music
    4. Eingabe von: debianize-vdrplugin
    5. fakeroot ./debian/rules update


    Diesen Schritt hat Wilderigel zwar nicht erwähnt, aber er scheint mir logisch...
    Es kommt die Fehlermeldung: "keine Regel für Fakeroot"


    6. dpkg-buildpackage -rfakreoot -us -uc -sa
    wird dann logischerweise abgebrochen "fakreoot: command not found"



    Gebe ich stattdessen ein:


    5. fakeroot dpkg-buildpackage -us -uc -tc


    entstehen zumindest drei Dateien:
    vdr-plugin-music_0.4.0-b3-1.diff.gz
    vdr-plugin-music_0.4.0-b3-1.dsc
    vdr-plugin-music_0.4.0-b3.orig.tar.gz


    Aber keine vdr-plugin-music_0.4.0-b3.deb


    Wo liegt der Fehler?



    Danke für alle Hilfen,
    VG

  • 6: falsch geschrieben?


    5.1: update von was?
    vom plugin gibts wohl nicht und sonstiges nicht ueber deisen weg.


    5.2: naja, dann bricht bauen ab.
    zeig mal fehlermeldung (mit viel rundherum).

  • Tja, leider schweigt sich die README des Plugins zu den Abhängigkeiten aus. Zurückgehend von den Fehlern habe ich folgendes nachinstalliert:


    Code
    apt-get install vdr-dev libsndfile1-dev libmad0-dev libid3tag0-dev libogg-dev libvorbis-dev libmagick++9-dev

    Dann noch debian/install anpassen:


    Code
    libvdr-music.so.*    usr/lib/vdr/plugins/
    music/*              usr/share/vdr-plugin-music/music

    die letzte orginale Zeile "debian/tmp/usr/share/locale" musste ich leider entfernen, da sie einen Fehler verursachte, auch wenn ich ein Ziel eingebe. Dadurch ist das Plugin dann aber Englisch. Das muss sich ein Profi nochmal ansehen.


    Dann noch debian/links erstellen und wie folgt befüllen:


    Code
    usr/share/vdr-plugin-music/music          var/lib/vdr/plugins/music
    var/lib/plugins/music/musicsources.conf   etc/vdr/plugins/musicsources.conf

    dann klappts auch mit dem:


    dpkg-buildpackage -rfakeroot -us -uc -sa


    nach dem Installieren noch in etc/vdr/plugins/musicsources.conf die lokalen Pfade mit den Sound-Quellen anpassen.


    Falls es zu weiteren Problemen kommt, sollte man das doch besser in einen eigenen Thread auslagern.

    Debian Squeeze Bullseye mit vdr 1.7.18 2.6.0-1~etobi1 e-tobi/multipatch, AMD Phenom-CPU, 4 GB RAM, Technotrend S2-6400, Digital Devices Cine S2 V6, 2 TByte HDD für Videodaten.

    3 Mal editiert, zuletzt von HolgerAusB ()


  • Hi,


    versuche das auch gerade nachzustellen, verstehe aber den oberen Teil nicht. Was genau soll man da machen?


    Gruß, Heinzelrumpel

  • heinzelrumpel:


    Du erstellst eine neue Datei debian/links mit o.g. Inhalt.


    Verstehst du nicht, wie du diese Datei anlegst/änderst oder wozu diese Datei gut ist? Falls letzteres: sie legt beim Installieren Symlinks an.

    Debian Squeeze Bullseye mit vdr 1.7.18 2.6.0-1~etobi1 e-tobi/multipatch, AMD Phenom-CPU, 4 GB RAM, Technotrend S2-6400, Digital Devices Cine S2 V6, 2 TByte HDD für Videodaten.

  • Jetzt kommt dann diese Fehlermeldung.


  • Hast du vorher schon mal ein Plugin selbst gebaut? Falls nicht sollte ein


    Code
    apt-get install build-essential fakeroot wget

    weiterhelfen.

    Debian Squeeze Bullseye mit vdr 1.7.18 2.6.0-1~etobi1 e-tobi/multipatch, AMD Phenom-CPU, 4 GB RAM, Technotrend S2-6400, Digital Devices Cine S2 V6, 2 TByte HDD für Videodaten.

  • Hi,


    Code
    dpkg-buildpackage -rfakreoot -us -uc -sa
    dpkg-buildpackage: Warnung: verwende ein root-werde-Befehl obwohl bereits root
    [...]
    fakreoot debian/rules clean
    Can't exec "fakreoot": No such file or directory at /usr/bin/dpkg-buildpackage line 475.
    dpkg-buildpackage: Fehlschlag: fakreoot debian/rules clean schlug mit unbekanntem Exit-Code -1 fehl


    1. gibt es "fakreoot" nicht, es heißt fakeroot
    2. brauchst Du "fakeroot" nicht, wenn Du bereits root biste fakeroot="tue so als ob Du root bist"
    3. Man sollte plugins wirlich als normalen user bauen, dafür ist eigentlich fakeroot auch gedacht ;)


    MfG
    Kris

    Intel DN2800MT 4GB RAM; 32GB mSata, Ubuntu 15.04, TVHeadend 4.1, Digibit R1 SatIP

    Einmal editiert, zuletzt von kris ()

  • Doch leider auch so einige Fehlermeldungen


  • Mir scheint, du hast immer noch nicht alle Abhängikeiten, wie oben beschrieben, nachgeladen:


    Code
    apt-get install vdr-dev libsndfile1-dev libmad0-dev libid3tag0-dev libogg-dev libvorbis-dev libmagick++9-dev

    Der Fehler bemängelt das Fehlen von libmad0-dev

    Debian Squeeze Bullseye mit vdr 1.7.18 2.6.0-1~etobi1 e-tobi/multipatch, AMD Phenom-CPU, 4 GB RAM, Technotrend S2-6400, Digital Devices Cine S2 V6, 2 TByte HDD für Videodaten.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!