Version 0.5.0: Skin Installer

  • Moin,


    wie vor einiger Zeit diskutiert habe ich im Skindesigner einen "Skin Installer" implementiert. Im Skindesigner Setup Menü besteht nun die Möglichkeit, Skins nachzuinstallieren und bereits installierte Skins aus dem Git zu aktualisieren.


    Die vom Skindesigner installierten Skins werden in einem separaten Verzeichnis installiert, in dem der User, unter dem der VDR läuft, Schreibrechte haben muss. Neben dem bereits existierenden Startparameter "-s <SKINPATH>, --skinpath=<SKINPATH> Set directory where xml skins are stored by Package Manager" gibt es einen neuen Startparameter "-i <INSTALLERPATH>, --installerpath=<INSTALLERPATH> Set directory where xml skins are stored by Installer". Ist dieser Parameter nicht gesetzt, wird <ConfigDirectory>/installerskins benutzt.


    Im Skindesigner wird jetzt nur noch metrixHD als "Referenzskin" mit ausgeliefert. Alle weiteren Skins, die man nachinstallieren kann, sind in einem XML File hinterlegt. Ich habe mal alle Skins, die mir jetzt so bekannt sind, aufgenommen. Sollte etwas fehlen oder der jeweilige Autor sich die Vorschau etwas anders wünschen, einfach bescheid geben, dann kann ich das anpassen.


    Das beste ist es, das bestehende skins Verzeichnis komplett zu löschen und (für Selbstbauer) per "make install" neu und "sauber" zu installieren. Die Paketbauer müssten mal schauen, wie man das am besten macht, aus meiner Sicht wäre es am sinnvollsten, wenn nur der Skindesigner ausgeliefert wird und die Skins dann über den Skindesigner installiert werden. Es funktioniert natürlich auch weiterhin, Skins in den "skinpath" zu installieren.


    Jo...dann testet mal fleissig. Da sind sicherlich noch ein paar Bugs versteckt ;)


    Achtung: bitte wie im README beschrieben manuell einen Symlink auf das "dtd" Verzeichnis anlegen in dem Verzeichnis, in dem auch die vom skindesigner installieren Skins liegen. Wenn also z.B. das dtd Verzeichnis unter /etc/vdr/plugins/skindesigner/dtd liegt und die Skins nach /bla/fasel/ installiert werden, dann den Symlink "ln -s /etc/vdr/plugins/skindesigner/dtd /bla/fasel/dtd" anlegen.


    Ciao Louis

  • PS: was ich vergessen habe: es gibt ein neues Template plug-setup-skinpreview.xml, die für das Skin Preview genutzt wird. Ist dieses Template in einem Skin nicht vorhanden, werden keine Screenshots im Preview angezeigt, es wird nur ein Standard Text ausgegeben.


    Also sollten die Skinautoren dieses Template möglichst erstellen... ;)


    PPS: was ich auch noch vergessen habe: die libskindesignerapi Version hat sich auf 0.0.2 erhöht, da ich eine kleine Änderung einbauen musste, damit ich die Schnittstelle für die Ausgabe des SKin Previews nutzen konnte. Also sollten mit dem Update vom Skindesigner auch alle die API nutzenden Plugins gegen die neue API gebaut werden.


    Ciao Louis

  • Ja coole Sache. Muss ich mal testen. BTW: Bei den Screenshot sehe ich auch das ich den Font DS-Digital noch rauswerfen muss. Den gibt's in glasslike nicht ;)
    Danke fürs Update
    Gruß Patrick

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • Hallo Louis,


    da hast du mal wieder den Zauberstab geschwungen ;) feine Sache :tup



    Zwei Kleinigkeiten sind mir aufgefallen.


    Bei der Installation mit 'make install':


    Code
    cd /usr/local/lib ; if [ ! -e libskindesignerapi.so ] ; then ln -s libskindesignerapi.so.0.0.2 libskindesignerapi.so; fi


    Wenn man hier vorher nicht händisch den alten link (und lib) gelöscht hat, sieht das dann so aus:


    Code
    libskindesignerapi.so -> libskindesignerapi.so.0.0.1
    libskindesignerapi.so.0 -> libskindesignerapi.so.0.0.2
    ibskindesignerapi.so.0.0.1
    libskindesignerapi.so.0.0.2


    Keine Ahnung, ob du das ändern willst oder denkst, wer händisch installiert, sollte auch wissen, wie er das selbst hinbiegt...


    Beim Herunterladen der Screenshots sollte man evtl einen timeout oder.... einbauen. Beim Testen war die shady-Seite vorübergehend nicht erreichbar, in so einem Fall bleibt das OSD 'hängen' bzw ist nicht mehr bedienbar.




    Ich bekomme immer nur "Skin NICHT installiert"
    Das sagt mega viel aus

    'Nix für Ungut' .... vielleicht so 'mega viel' wie dein Post? Ich verstehe zumindest nur Bahnhof ;)


    Wenn du das Installieren und Aktualisieren übers OSD meinst, das ist hier kein Problem....z.B.:



    Gruß,
    Tomas

  • louis
    Ein erster Bug ist im README dort fehlt bei den Requirements libcurl . :D

    Gruß
    Frodo

  • Copperhead
    Also ich bekomme auch die "nicht installiert" Meldung. Nach einem Restart des VDR ist der Skin dann allerdings da und auswählbar.


    louis
    Kann man die Skins auch wieder übers OSD löschen?


    Gruß Patrick

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • Moin,

    Ich bin mir sicher, louis weiß worauf ich hinaus will.


    da überschätzt du mich aber ;) Ich habe jetzt mal ein bisschen Debug Output beim Installieren eines Skins im aktuellen Git eingebaut, also bitte nochmal neu ziehen und bauen. Es wird aber auch pro Aktion ein Logfile in /tmp/ geschrieben, das auch entsprechend benamst ist. Da findet man dann die Ursache, falls ein Fehler aufgetreten ist.


    Wenn es das Repository z.B. schon gibt, dann gibt es auch einen Fehler...müssen wir mal schauen was da bei euch schief läuft.


    Ciao Louis

  • Beim Herunterladen der Screenshots sollte man evtl einen timeout oder.... einbauen. Beim Testen war die shady-Seite vorübergehend nicht erreichbar, in so einem Fall bleibt das OSD 'hängen' bzw ist nicht mehr bedienbar.


    Stimmt, ich hab mal nen Timeout von 5s pro Bild eingebaut.


    Ciao Louis

  • louis
    Kann man die Skins auch wieder übers OSD löschen?


    Nein das ist nicht vorgesehen...finde ich auch unnötig irgendwie, die paar MB die ein Skin hat tun doch nicht weh ;)


    Ciao Louis

  • Wenn ein Skin installiert wurde, dann ist es nicht mehr möglich den Preview zu sehen.


    Ich finde den Preview jedoch sehr hilfreich um zu sehen, welche Fonts verwendet werden. Wäre daher gut, wenn die Funktion auch bei installieren Skin erhalten bliebe.
    Dann sollte die Bedienung aber einheitlich sein und der Preview z.B. auf Taste Blau und nicht auf OK, da bei installiertem Skin hier die Einstellungen vorgenommen werden.


    Gruß und herzlichen Dank für die tolle Arbeit
    eurofinder

    Hardware: Linux4Meida cine S2 DVB-S2 * M3N78-VM *Athlon64 X2 4850e AM2 * 2 GB Ram* WD10EADS Caviar Green 1TB
    Software : gen2vdr

  • Moin,

    Was hat sich an der libskindesignerapi geändert? Neue tolle Sachen die man brauchen kann?


    das habe ich ganz übersehen...es sind eigentlich keine neuen Features dazugekommen, ich habe nur eine Erweiterung eingebaut, dass die Lib auch damit zurechtkommt, wenn das Menü bei der Anzeige erst mal geschlossen und dann wieder geöffnet wird, da das im Setup Menü ganz gerne mal passiert ;)


    Ciao Louis

  • Moin,


    Sehe ich das richtig, dass du bei der libskindesignerapi eine vorhandene Klasse mitten drin erweitert hast?
    http://projects.vdr-developer.…78b2b3247e340aa21bb64e06e


    Dann reicht es nicht, nur hinten die minor-version hochzuzählen. Sowas ist ein Grund, um die major-version hochzuzählen, weil das ABI nicht mehr kompatibel ist. Wenn du z.B. eine neue Klasse hinzufügst, die nichts an den alten ändert, dann reicht es, die minor-version hochzusetzen.
    Und es spielt keine Rolle, dass es im private-Bereich ist, das Layout des Objekts ändert sich trotzdem.


    Ich bin jetzt aber nich nicht am PC, muss das noch genauer untersuchen.


    Lars.

  • @ louis


    Wenn ich mir die Skins z.B. nach

    Code
    --installerpath=/media/sda5/vdr-share/skindesigner/skins

    installiere klappt das nicht immer. Ziehe ich glasslike oder vectra schmiert nach kurzer Zeit der VDR ab, die Verzeichnisse sind dort erstellt mit dem Ordner ".git". Installiere ich blackhole zeigt er mir an dass dieser Skin "kein Setup" hat.

    Gruß utiltiy



    VDR Projekte VDR Projects

  • @utility: hm, seltsam...poste doch bitte mal das log beim Start (auf "skindesigner" greppen) und wenn du versuchst einen Skin zu installieren...


    Ciao Louis

  • Sehe ich das richtig, dass du bei der libskindesignerapi eine vorhandene Klasse mitten drin erweitert hast?


    Jo, was muss das muss ;) Hm, ich dachte nur bei nicht kkompatiblen Änderungen muss die Major Version hochgezählt werden...


    Ciao Louis

  • Die Änderung ist ja inkompatibel, weil mitten drin Felder hinzugefügt wurden. Damit ändert sich das binäre Layout des Objekts.


    Lars

  • Änderungen sind ja auch kein Problem, das darf man. Es ist dann nur eine neue lib. :)
    Wenn man sowas nicht richtig beachtet, kann es hier und da knallen.


    Shared libs sind nicht einfach und es gibt leider auch viel zu viele große Projekte, die das immer mal wieder falsch machen. Deshalb versuche ich auch immer pauschal alle Plugins neuzubauen, wenn eine Basis-lib sich ändert. Sicher ist sicher...


    Lars

Jetzt mitmachen!

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