Willkommen! Melden Sie sich an oder registrieren Sie sich.

Um schreiben oder kommentieren zu können, benötigen Sie ein Benutzerkonto.

Anmelden - oder - Benutzerkonto erstellen

enigma2-plugins git auf der Dreambox auschecken

  • Viele enigma2 Plugins sind mittlerweile auf github.com gehostet. Insbesondere alle Plugins, die standardmäßig in jedem Image nachinstallierbar sind. Wer hier schnell die letzten Änderungen testen will (ohne auf offizielle Updates auf dem Feed zu warten), kann sich entweder das gesamte enigma2-plugins.git herunterladen oder einfach eine lokale Kopie des Repositories vorhalten. Das geht mit ein paar Handgriffen auch direkt auf der Box. Das funktioniert natürlich auch mit GIT Repositories anderer Plugins (z.B. SeriesPlugin oder diverse e2open Plugins) oder Skins.
    Im Folgenden erkläre ich den Prozess aber anhand des opendreambox enigma2-Plugin Repositories.


    Zunächst benötigt man git auf der Box. Das sollte in jedem Image nachinstallierbar sein (getestet aber nur mit Merlin4):


    OE 2.0: opkg update && opkg install git
    OE 2.2: apt update && apt install git



    Jetzt könnte man eigentlich einfach mit git clone das Repository auf die Box kopieren. Es scheint aber Probleme mit der SSL-Überprüfung zu geben, weshalb wir diese einfach ausschalten (Achtung! Das ist eine Sicherheitslücke! Wer das Risiko nicht eingehen will muss die Zertifikate selber installieren oder ssh einsetzen). Das geht wie folgt:

    Code
    1. cd /media/hdd/env GIT_SSL_NO_VERIFY=true git clone [url]https://github.com/opendreambox/enigma2-plugins.git[/url]



    Jetzt hat man einen Ordner /media/hdd/enigma2-plugins/ angelegt. Ich habe hier die Festplatte gewählt, da das Repository mehrere hundert MB belegen kann. Man kann natürlich auch die Data-Partition, einen USB-Stick oder ein NAS verwenden.



    Die letzten Änderungen erhält man jetzt immer mit:

    Code
    1. env GIT_SSL_NO_VERIFY=true git pull



    Will man die Versionen für OE 2.0 muss man den "Branch" wechseln:
    git checkout 4.0


    Die Versionen für OE 2.2 / DreamOS erhält man dann wieder mit:
    git checkout master


    Die geänderten Plugin-Dateien kann man dann ins passende Verzeichnis kopieren. Hierbei müssen natürlich eventuelle Abhängigkeiten berücksichtigt werden. Daher auf eigene Gefahr!
    Beispiel AutoTimer:

    Code
    1. cd /media/hdd/enigma2-plugins/autotimer/
    2. cp -rf src/* /usr/lib/enigma2/python/Plugins/Extensions/AutoTimer/


    Dies überschreibt die regulär installierte Version!


    Im Vergleich zum Download des kompletten Repositories von github.com (zip Datei am PC oder mit wget) können bei dieser Vorgehensweise die Änderungen immer ressourcenschonend heruntergeladen werden. Ist man aber nur an einem Plugin interessiert, werden allerdings dennoch viele überflüssige Daten heruntergeladen.
    Wie man nur einen Teil des Repositories auschecken kann, findet sich daher im nächsten Beitrag.
    In Post #3 und #4 werde ich Anleitungen für den sicheren Checkout schreiben.

  • Das Repository der enigma2-Plugins enthält eine Vielzahl an Plugins. Ist man nur an den Änderungen eines Plugin interessiert, so kann man die git Funktion "sparseCheckout" nutzen. Wie das genau funktioniert, erkläre ich hier am Beispiel AutoTimer. git muss installiert sein (siehe Post #1), ansonsten fängt die Anleitung bei 0 an (insbesondere muss man vorher nicht das gesamte enigma2-plugin.git auschecken).


    Zunächst legt man selber einen Ordner an, in dem die git Inhalte abgelegt werden. Hier /media/hdd/e2-plugins-partial/. Dort wird dann manuell ein lokales git angelegt, dass mit enigma2-plugins.git verbunden wird. Danach wird die Auswahl auf einzelne Ordner (hier den Ordner mit dem AutoTimer Quellcode) beschränkt und der aktuelle Code auf die Box kopiert.

    Code
    1. mkdir /media/hdd/e2-plugins-partial/
    2. cd /media/hdd/e2-plugins-partial/
    3. git init
    4. git remote add origin https://github.com/opendreambox/enigma2-plugins.git
    5. git config core.sparseCheckout true
    6. echo "autotimer/src" >> .git/info/sparse-checkout
    7. env GIT_SSL_NO_VERIFY=true git pull


    Jetzt muss man noch festlegen, welchen Branch man haben möchte:
    OE 2.0: git checkout 4.0
    OE 2.2: git checkout master


    Man kann auch einfach weitere Plugins hinzufügen, indem man diese der sparse-checkout Info hinzufügt.
    z.B.: echo "epgrefresh/src" >> .git/info/sparse-checkout
    Danach erhält man dann beim nächsten pull auch den aktuellen EPGrefresh Quellcode.

  • #4 reserviert für SSH Zugriff auf github.
    Zuerst SSH-Keygen. Dann git ssh Client auf Dropbear anpassen:

    Code
    1. mkdir .ssh
    2. dropbearkey -t rsa -f .ssh/id_rsa
    3. echo "export GIT_SSH=$HOME/.gitssh.sh" >> /etc/profile
    4. echo "#!/bin/sh" > ~/.gitssh.sh
    5. echo "dbclient -y -i ~/.ssh/id_rsa $*" >> ~/.gitssh.sh
  • Ich meine, dass ich das früher auch auf OE 2.0 gemacht habe, aber ich finde gerade kein git Paket mehr dafür. Du kannst ja mal bei den diversen Images gucken, ob es das da gibt oder ob du es aus dem Debian nehmen kannst.
    Habe aber keine OE 2.0 Box mit der ich das testen könnte. Da müsst ihr euch dann selbst helfen oder git auf nem PC nutzen ?(

  • Ich habe jetzt etliche Anleitungen gelesen, um Zertifikate selber zu installieren oder ssh einzusetzen. Irgendwie führt das bei mir alles nicht so sehr zum Erfolg.


    Gibt es nicht irgendwo eine Anleitung explizit für die Dreambox?


    Habe ein GP3-Plugin gefunden, um Zertifikate zu erstellen, ich will mir aber GP nicht installieren.

  • Das GP3 plugin ist glaube ich für OpenVPN. Das sind andere Zertifikate.


    Wenn du die Box als SSH Client nutzen willst (z.B. für git) musst du nur die ersten zwei Befehle aus Post #4 ausführen und dann beim jeweiligen SSH Server den pub Key eintragen.
    Den erhältst du mit:

    Code
    1. dropbearkey -f .ssh/id_rsa -y


    Die letzten drei Zeilen aus Post #4 brauchst du nur als Workaround um git über ssh zu nutzen.

  • Habe ja schon alles so gemacht wie in Beitrag #4 beschrieben, es kommt dann


    Code
    1. git pull username@host.com:name/repisitory.gitdbclient: Connection to username@host.com:22 exited: No auth methods could be used.fatal: Could not read from remote repository.Please make sure you have the correct access rightsand the repository exists.


    Nach dem No auth methods could be used gegooglet, die Lösungen helfen aber nichts.


    Deswegen nach einer Lösung mit Zertifikaten gesucht, um doch https nutzen zu können.


    Edith meint: Fehler gefunden. Man muss es so machen:

    Code
    1. git clone git@github.com:name/repisitory.git
  • Ne. Nicht automatisch. Man kann sich halt manuell die aktuelle Version direkt aus dem git holen. Der Plugin-Feed wird genau aus dem git gebaut. Nur eben nicht regelmäßig, sondern (bei Merlin) nur bei größeren Updates.


    Von daher ist da nix "nicht offiziell". DMM gibt ja auch keinen "offiziellen" Stand der Plugins raus (außer früher bei den Release-Images), sondern es sind halt einfach die Plugin-Versionen in nem experimental verfügbar, von dem Zeitpunkt, wo ein e2 Update kommt. Das ist dann eher Zufall, was da gerade drin ist.


    Alternativ baut NN2 ja jeden Tag fertige deb und ipk Pakete genau aus derselben Quelle.