Plugin selber compilieren

  • Holla,


    irgendwo gibt es das sicher zum Nachlesen, doch leider habe ich bislang noch nichts passendes gefunden.


    Ich möchte auf meinem Debian Lenny/Sid System das lastfm Plugin instalieren. Lastfm gibt es bislang scheinbar nicht als Debian Paket (irgendwo habe ich gelesen, das es in Arbeit ist). Also muss ich es selber compilieren.


    Howtos die ich bisher gefunden habe, gehen davon aus, das ich die Sourcen eines Paketes schon debianisiert über apt-get source ... laden kann. Doch das ist bei lastfm nicht der Fall.


    Bisher habe ich:


    # cd /usr/src/programme
    # mkdir vdr && cd vdr
    # apt-get source vdr
    # apt-get build-deps vdr
    # cd /usr/src/programme
    # mkdir vdr-plugins && cd vdr-plugins


    die Sourcen, welche ich direkt von der Source Forge Seite habe, dort hin kopiert und entpackt.


    Nun habe ich in einigen Threads gelesen, das ich das Plugin verlinken muss, wo und wie? Weiterhin habe ich irgendwo gelesen, das man make plugins aufrufen muss, wann?


    Und da hört es schon ganz auf. Gibt es irgendwo ein howto was so etwas beschreibt? Ich konte es leider noch nicht finden. :(


    Die Debian Pakete an sich habe ich von e-tobi. Falls das eine Rolle spielt. ;)


    Danke für Tipps und Hilfen.

  • Guten Abend,


    danke für die beiden Links, das geht doch schon in die richtige richtung. Ich hab auch irgendwie im Kopf, das ich schon mal auf den Seiten war, aber vermutlich hatte ich da was anderes gesucht.


    Erst mal habe ich die Anleitung befolgt, welche hinter dem ersten Link zu finden war.


    Ich habe das Paket unter /usr/src/programme/vdr/Plugins/src entpackt, einen Link von lastfm-version auf lastfm erstellt und ein paar Ebenen tiefer auch make plugins aufgerufen. Alle Plugins werden ordnungsgemäß erstellt, auser lastfm:


    failed plugins: lastfm


    Kann man am Ende lesen. Wo setzt man hier an, um das Problem zu lösen? In der README stand noch etwas von zwei Optionen, die ich aber erst mal weggelassen habe. Auch stand dort etwas von einer Datei Make-lastfm.config, die ich aber niergns finden konnte. Muss ich diese erstellen und mit den Optionen füttern?


    Beim Kompilieren habe ich noch folgende Meldungen gefunden:


    make[2]: Entering directory `/usr/src/programme/vdr/vdr-1.4.7/PLUGINS/src/lastfm
    -0.1.3/ext/Sockets-2.1'
    g++ -Wall -g -I. -MD -D_VERSION='"2.1"' -O2 -c -o Uid.o Uid.cpp
    Uid.cpp:48:23: error: uuid/uuid.h: Datei oder Verzeichnis nicht gefunden
    Uid.cpp: In constructor 'Uid::Uid()':
    Uid.cpp:79: error: 'uuid_t' was not declared in this scope
    Uid.cpp:79: error: expected `;' before 'uid'
    Uid.cpp:80: error: 'uid' was not declared in this scope
    Uid.cpp:80: error: 'uuid_generate' was not declared in this scope
    make[2]: *** [Uid.o] Fehler 1
    make[2]: Leaving directory `/usr/src/programme/vdr/vdr-1.4.7/PLUGINS/src/lastfm-
    0.1.3/ext/Sockets-2.1'
    make[1]: *** [Sockets] Fehler 2
    make[1]: Leaving directory `/usr/src/programme/vdr/vdr-1.4.7/PLUGINS/src/lastfm-


    Wie geht man bei solchen "Problemchen" am Besten vor?


    Danke und gute Nacht.

  • uuid und uuid-dev per apt nachinstallieren.



    Gruß
    tec

  • Hi,


    vielen Dank, die uuid Pakete haben gefehlt. Nun konte ich das Plugin fehlerfrei kompilieren.


    Ich habe zwar nun den nächsten Fehler, der gehört aber vermutlich eher in die Rubrik vdr-plugins, also werde ich ihn dort einstellen.


    Vielen Dank!

  • Holla,


    danke für den Tipp.


    kann es sein, das eine Mischung aus - über apt-get/aptitude und dpkg -i (selber kompiliert) nicht ohne Anpassung geht?


    Ich hatte ja von e-tobi den VDR 1.4.7 mit einigen Plugins installiert. Nun wollte ich das lastfm Plugin installieren und ging dabei wie oben beschrieben vor. Doch wenn ich den VDR über das init Script gestartet hatte, dann brachte er die Meldung, das das lastfm Plugin inkompatibel sei.


    Nun vermute ich, das lastfm und der über aptitude installierte VDR unterschiedliche Patchlevel haben.


    Jetzt ist die Frage, wie man das patchleve anpasst, bzw. wie bekomme ich raus, welche Patches alle bei e-tobi über aptitude installiert/eingebunden werden?


    Wenn ich beim selber kompilieren das selbe Patchlevel wie die e-tobi Quellen nutze, dann dürfte der Fehler mit der Inkompatibilität ja IMHO verschwinden. Zumindestens habe ich das aus den diversen Quellen und durch selber denken *g* rausbekommen. :)


    Bevor ich das mit debianize las, hatte ich bereits testweise meinen VDR runtergeschmissen und aus den e-tobi Quellen selber kompiliert. Nun geht auch an sich das lastfm Plugin.


    Daher wurde mir das mit dem patchlevel erst ein wenig klarer. :)


    Nun habe ich also den vdrdevel mit skincurses, softdevice und lastfm. Der VDR selber läuft auch erst mal, nur scheint das Skin anderst zu sein, denn ...


    aber das gehört vermutlich nicht hier her. *g*


    Gibt es hier im Forum eine Ecke, bei der ich mich mit Skin Fragen melden kann? Mir geht es hier nur um Anpassungen/Veränderungen, was Attribute angeht. Denn irgendwie ist bei den selbstkompilierten Versionen irgend etwas optisch anderst, so das ich mit SBL (suse-blinux) nicht weiterkomme. :(


    Danke und

  • Hoppa,


    ich versuche es wie folgt:


    # aptitude install vdrdevel
    # apt-get source vdrdevel
    # apt-get build-dep vdrdevel
    # cd /usr/src/programme/vdr*/PLUGINS/src
    # tar xfvz lastfm*
    # cd lastfm*
    # debianize...
    # cd ../../
    # make plugins
    # cp ./PLUGINS/libs/vdr-lastfm* /usr/lib/vdrdevel/plugins/vdrdevel-lastfm*


    Nun starte ich VDR mit den nötigen Optionen und der folgende Fehler kommt:


    vdrdevel: /usr/lib/vdrdevel/plugins/libvdrdevel-lastfm.so.1.5.5: undefined symbol: _ZN12cOsdProvider6NewOsdEii


    Wo liegt mein Fehler? Liegt es nun am Patchlevel oder an etwas anderem?


    Wenn ich nicht aptitude vdrdevel sondern das vdrdevel aus den Sourcen installiere, dann geht das Plugin.


    Was kann ich hier tun?


    Danke und

  • Hallo,


    Da ich endlich, durch die Hilfe von diesem Forum und auch der CT vdrdevel das ganze ein wenig mehr durchschaue, habe ich ein kleines howto geschrieben, welches vielleicht dem einen oder der anderen nützlich ist.


    Für Änderungen und Anmerkungen, einfach melden. ;)


    Erstellung neuer VDR Plugins unter Debian


    Die Erstellung neuer vdr Plugins ist unter Debian letztendlich recht einfach, sofern man den Weg kennt. Da ich viel experimentiert und andere vdr User befragt habe, bis ich den - hoffentlich - einfachsten und schnellsten Weg kannte, will ich das Vorgehen kurz aufzeigen.


    Bei meinen Experimenten habe ich die verschiedensten Konstelationen probiert und dabei bin ich über zwei Fragen gestolpert.


    1. Kann ich den vdr über aptitude/apt-get installieren, und fehlende Plugins aus den Sourcen selber kompilieren? Oder muss ich den vdr aus den Quellen installieren, um funktionstüchtige Plugins zu erhalten?
    2. Welches *-dev ist das richtige?


    Die Antworten dazu sind erschreckend einfach, letztendlich aber sehr beruhigend.


    1. Es ist möglich, den vdr über aptitude/apt-get zu installieren und weitere, nnoch nicht als .deb erhältliche Pakete, aus den Sourcen selber zu bauen. So werden alle Pakete, welche über aptitude/apt-get installiert sind, schön einfach auf dem neusten Stand gehalten und es ist trotzdem möglich, ohne großen aufwand, neue Plugins zu installieren.
    2. Es *muss* immer das *-dev genutzt werden, welches zu dem jeweiligen vdr passt. D. h. wenn der vdr über aptitude/apt-get installiert wurde, muss auch vdr-dev von der selben Quelle installiert werden. Wird hingegen der vdr aus den Sourcen selber gebaut, so *muss* auch das vdr-dev installiert werden, welches beim Erstellen des Debian Paketes erzeugt wird. Dies hängt u. a. mit dem sog. Patchlevel zusammen, welcher eine wichtige rolle beim VDR spielt. Ist der Patchlevel des Plugins und der des VDR's nicht identisch, so funktioniert das Plugin schlicht weg nicht.


    Und nun eine kleine Schritt für Schritt Anleitung an Hand des lastfm Plugins, bei der ich von einem vdr ausgehe, welcher über aptitude/apt-get installiert wurde.


    Hinweis: Der Benutzer, unter dessen Namen das Paket gebaut werden soll, muss zum einen in der Gruppe src sein und zum anderen die Möglichkeit haben, aptitude zu nutzen. Folgende Schritte sollten daher vor dem Bau angewand werden:


    1. Den Benutzer in die Gruppe SRC einfügen:


    # sudo adduser benutzername src


    2. Die Inhalte der Variablen für den Paketbau setzen. Diese werden dann beim Bau des Paketes verwendet:


    # export DEBFULLNAME="Vorname Nachname"
    # export DEBEMAIL="name@domain.tld"


    Und nun kann der Bau des lastfm Plugins beginnen:


    1. Alle nötigen Werkzeuge zum Bau von Debian Paketen installieren:


    # sudo apt-get build-essential fakeroot


    2. Das nötige vdr-dev installieren, welches auch zum bereits installierten vdr passt:


    # sudo aptitude install vdr-dev


    3. Archiv der vdr-lastfm Sourcen unter:


    http://sourceforge.net/projects/vdr-lastfm


    laden und am Besten in:


    /usr/src/


    abspeichern.


    4. In das gewünschte Arbeitsverzeichnis wechseln und Archiv auspacken:


    # cd /usr/src/
    # tar xfv vdr-lastfm*.tar


    5. In das nun erstellte Verzeichhnis wechseln:


    # cd lastfm-*/


    6. README Datei lesen und evtl. dort aufgeführte Abhängigkeiten und Anweisungen beachten. In unserem Fall sollten folgende Pakete installiert werden:


    # sudo aptitude install uuid uuid-dev libmad0 libmad0-dev


    7. Nun können wir das speziell für den VDR erstellte Script ausführen, welches das Paket ein wenig Debian spezifischer gestaltet:


    # debianize-vdrplugin


    8. Wer es genau machen möchte, weil das Paket z. B. veröffentlicht werden soll, der wäre gut beraten, wenn er sich nun an die Debian eigenen Dateien macht. Im Verzeichnis "debian" befinden sich verschiedene Dateien, die angepasst werden müssen. Für ein funktionierendes Plugin ist das jedoch nicht nötig. Korrekt wäre es jedoch, diese Dateien anzupassen, mehr dazu unter:


    http://www.debian.org/doc/manu…de/index.de.html#contents


    9. Nun können wir, sofern bisher keine Fehler aufgetaucht sind, das Debian Paket an sich erstellen:


    # dpkg-buildpackage -rfakeroot -tc -uc -us


    10. Ist dieser Prozess fehlerfrei durchgelaufen, so muss nur noch das neue Debian Paket selbst installiert werden:


    # cd ..
    # sudo dpkg -i vdr-plugin-lastfm-*.deb


    So, nun dürfte, wenn nichts schief gelaufen ist, das lastfm Plugin installiert sein.


    Die hier gemachten Angaben können auch auf den vdrdevel übertragen werden. Jedoch muss beim Erstellen neuer vdrdevel Pakete noch eine Umgebungsvariable gesetzt werden. Weitere Informationen dazu im Kopf der Datei "/usr/share/vdr-dev/make-special-vdr.sh".

  • Hallo,


    ich habe gerade versucht nach der Anleitung das atmo-Plugin für vdrdevel zu installieren.


    Ich habe dazu in eine neues Verzeichnis per

    Code
    apt-get source vdrdevel

    die Source von Tobi runtergeladen.
    Hier der Teil meiner sources.list:

    Code
    deb      http://e-tobi.net/vdrdevel-testing      sarge  vdr-multipatch
    deb-src  http://e-tobi.net/vdrdevel-testing      sarge  vdr


    Dann habe ich unter /usr/include einen Link " vdrdevel -> /usr/local/src/vdr1.5.2_neu/vdr-1.5.2/" angelegt.


    Dann in PLUGINS/src die Source vom Plugin entpackt und

    Code
    debianize-vdrplugin

    ausgeführt.
    Dann wollte ich das Paket per

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

    bauen und es kam folgender Fehler:

    Code
    sh /usr/share/vdrdevel-dev/patchlevel.sh subst
    cat: /usr/include/vdrdevel/patchlevel: Datei oder Verzeichnis nicht gefunden
    make: *** [binary-arch] Fehler 1


    Die Datei patchlevel ist auch nicht vorhanden. Wo bekomme ich sie her bzw. was muss da drin stehen?


    Kann mir jemand helfen
    Heiko

Jetzt mitmachen!

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