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.

    Viele Grüße

    Sebastian

  • 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.

    Viele Grüße

    Sebastian

  • uuid und uuid-dev per apt nachinstallieren.


    Gruß
    tec

    My VDRs

    SERVER: Chenbro 19" 4HE | GA-H77-D3H | i5-3470| 4GB DDR3 | Intel PRO/1000 PT DP Server
    DD Cine S2 V6.5 + TT-C1501 | Intel SSD 530 120GB + 3x 4TB WD Red + 2TB Samsung F4
    DOM0: xen 4.4 | ubuntu 14.04 | linux 3.14.12 - VDR-DOMU: ubuntu 14.04 | linux 3.14.12 | yavdr-ppa

    CLIENT #1: Lian-Li PC-C37B | beQuiet Straight Power 400W | Asrock H81M-DGS | i3 4130 | 4GB DDR3
    Sandisk 60GB SSD | MSI GTX 1050 Ti 4GB LP | IR Atric rev5 | Kubuntu 18.04 | yavdr/CKone ppa

    CLIENT #2: MINI M8S II S905X | CoreELEC

  • 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!

    Viele Grüße

    Sebastian

  • Da du sonst Debian Pakete verwendest würd ich den Weg über debianize-vdrplugin gehen.
    Dann kommt auch der Fehler im anderen Thread vermutlich nicht.

    2003 - 2011 - R.I.P.

  • 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

    Viele Grüße

    Sebastian

  • Wenn du vdr von Tobi hast brauchst auch vdr-dev von Tobi.

    Wenn du den VDR selber kompilierst (nach Debian Anleitung) dann brauchst deine eigene vdr-dev.

    2003 - 2011 - R.I.P.

  • 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

    Viele Grüße

    Sebastian

  • 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/manuals/ma…e.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".

    Viele Grüße

    Sebastian

  • 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

Participate now!

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