Subversion (SVN) für die Dreambox

  • Hallo,


    ich war auf der Suche nach einem SVN Server für die Dreambox, habe aber nur die Variante mit BA gefunden und nur für SVN wollte ich mir kein BA einrichten. Deshalb hab ich mir ein Paket gebastelt, welches auch ganz gut zu funktionieren scheint. Allerdings ist das mein erstes Paket für die Dreambox, deshalb wäre ich sehr dankbar über Feedback von erfahrenen Paketbauern.


    Hier eine beispielhafte Installation mit kurzer Funktionsdemonstration:


    Hinweis: Wenn das Installations-Skript keine Festplatte findet wird im root-Verzeichnis ein Ordner "svn" angelegt, wenn dieser Fall eintreten sollte, diesen bitte mit einem SymLink auf einen externen Datenträger ersetzen. Sonst wird der Dreambox schnell der Platz ausgehen :winking_face:


    lg chris

  • Hupsi... wieso ich auf die Idee komme hier auf Englisch zu posten :)


    Ich habe noch nen altes Gemini Image 4.x, weil ich nicht komplett alles neu flashen und einrichten möchte. Ein Upgrade weiss ich immer nicht wie es funktioniert...


    Das Skript bricht ab mit dem Fehler "Unknown operand":


    Installing enigma2-plugin-extensions-subversion (1.6.12) to root...
    [: ==: unknown operand
    Configuring enigma2-plugin-extensions-subversion
    Starting svnserve
    /usr/bin/svnserve: error while loading shared libraries: libuuid.so.1: cannot open shared object file: No such file or directory



    Gruß,
    Holger

  • Das ist in diesem Fall etwas mehr Aufwand, weil die vorherigen geminis auf Openembedded 1.5 aufgebaut sind. Um das Problem bei mir nachvollziehen zu können müsste ich


    1. meine Box auf ein 4.x er image flashen
    2. eine devshell für 1.5 bauen
    3. das Paket neu kompilieren


    und da hab ich nicht wirklich Lust zu :winking_face:


    Aber weil du meinst, dass du nicht alle Einstellungen verlieren möchtest. Das sollte eigentlich kein Problem sein, einfach vor dem flashen ein Backup machen (Einstellungen => Software Manager => Einstellungen sichern), dann sollte auf der Festplatte ein Ordner mit dem Namen "backup" liegen und darin eine Datei "enigma2settingsbackup.tar.gz".


    Nach dem flashen wirst du vom Installationsassistenten gefragt, ob du deine Einstellungen wiederherstellen möchtest. Einfach auf "ja" und fertig.
    Natürlich musst du dann noch alle zuvor installierten Plugins installieren, aber die Einstellungen bleiben erhalten (bei mir dauert das mittlerweile nicht mal mehr 10min, flashen + alles wieder einrichten)


    lg

  • Der Server läuft perfekt. Nun muss ich mir nur anschauen, wie ich per Kommandozeile Bentzer anlege. Bisher hatte ich den Luxus von einer Windows-Variante mit GUI...

  • Ich kann leider die svnserve.conf nicht finden. Weiterhin akzeptiert der Server meine Änderungen der .conf i Repository selbst nicht. Ich kann von Windows aus nicht auschecken, weil mein Login und Passwort nicht akzeptiert werden.


    Kannst Du mir evtl. sagen wo die entsprechenden Dateien durch den Installer abgelegt werden und wie Du den Server startest bzw. restartest?


    Danke!

  • Hi,


    das Paket ist derzeit für ssh-Zugriffe konfiguriert, um hier mehrere Benutzer anzulegen muss man eigentlich nur auf der Dreambox einen neuen Benutzer erstellen. Neu starten lässt sich der Daemon mit /etc/init.d/svnserve restart


    Um den svnserver so zu konfigurieren wie du es vermutlich gerne hättest, muss folgendes getan werden:


    Zuerst den Autostart vom Daemon entfehrnen, da er nicht mehr benötigt wird:


    Code
    root@dm800:~# rm /etc/rcS.d/S99svnserve


    Als nächstes dem inet Daemon beibringen was er mit dem svn Protokol anstellen soll, dazu müssen in dieser Datei:


    Code
    root@dm800:~# vi /etc/inetd.conf


    folgende Zeilen ganz am Schluss eingefügt werden:


    Code
    svn           3690/tcp   # Subversion                                           
    svn           3690/udp   # Subversion                                           
    svn stream tcp nowait root /usr/bin/svnserve svnserve -i


    mit "i" kann man im vi schreiben, wenn man fertig ist "ESC" drücken, dann ":wq" nun, sollten diese Zeilen in der Datei gespeichert sein.
    Jetzt noch neustarten und das erste Problem sollte behoben sein.


    Code
    root@dm800:~# /etc/init.d/inetd restart


    Nun das Repo konfigurieren:


    Code
    root@dm800:~# cd /svn
    root@dm800:/media/hdd/svn# svnadmin create test
    root@dm800:/media/hdd/svn# cd test/conf/
    root@dm800:/media/hdd/svn/test/conf# vi svnserve.conf 
    root@dm800:/media/hdd/svn/test/conf# vi passwd 
    root@dm800:/media/hdd/svn/test/conf# vi authz


    svnserve.conf muss so konfiguriert werden:



    nun nur noch in passwd alle Benutzer eintragen, welche Zugriff bekommen sollen:


    Code
    [users]
    chris = test
    # harry = harryssecret
    # sally = sallyssecret


    in authz kann bestimmt werden welche Benutzer welche Rechte haben


    Code
    [/]                             
    chris = rw    //chris darf lesen und schreiben                          
    * = r         //alle anderen dürfen nur lesen


    So das sollte nun eigentlich funktionieren...


    Benutzen lässt sich dies dann so:



    hth chris

  • Danke für die super-ausführliche Antwort! Das sind alle Infos, die ich brauche...


    Klappt hervorragend zusammen mit Tortoise aus Windows heraus :)


    Nochmals vielen Dank. Die passwd usw. das habe ich in der Doku gefunden, aber eben halt nicht die inetd-Änderungen, um den Port freizugeben.

  • I'm happy to announce Apache Subversion 1.6.15. This release contains
    several bug fixes, including two which can cause client-initiated
    crashes on the server. We encourage users to upgrade as soon as
    reasonable. Please note that Subversion 1.6.15 is the next release
    after Subversion 1.6.13. The 1.6.14 release was not published
    publicly, due to issues found during testing.



    You can find the list of changes between 1.6.15 and earlier versions at:


    http://svn.apache.org/repos/as…rsion/tags/1.6.15/CHANGES

  • Kleines Update.


    Dieses Paket funktioniert jetzt auch mit dem originalen DMM Image, und natürlich auch in Verbindung mit dem neuen GP3 Plugin :]

  • Subversion 1.6.16, the latest stable version of Subversion, has been released. In addition to the normal collection of bug fixes, and stability enhancements, this release also addresses CVE-2011-0715, a remotely-triggerable DoS for httpd-based Subversion servers. For more information about the release, see the release announcement or the change log.

  • Für alle die es (noch) interessiert habe ich mal ein Plugin aus dem neuen
    Subversion-Zweig 1.7 erstellt. Es handelt sich um die derzeitig aktuelle Version 1.7.1


    Falls genug interesse besteht, würde ich kommende Versionen dann auch als IPK-Datei bereitstellen.


    Getestet habe ich es auf meiner Dreambox DM800


    Es basiert auf den hier bereits geposteten Paketen. Skripte usw. habe ich drin gelassen und nur die ausführbaren Dateien und Bibliotheken aktualisiert.


    Neu ist auch, dass diese Version die SQLite-Bibliothek 3.0 braucht. Falls sie nicht schon installiert ist, holt das Installationsprogramm dies automatisch nach.

  • Hallo,


    beim Versuch das Paket mit dem Kommando zu installieren, wird folgende Meldung angezeigt:

    Code
    root@dm7020hd:/tmp# ipkg install enigma2-plugin-extensions-subversion_1.6.17_mipsel.ipk
    Multiple packages (enigma2-plugin-extensions-subversion and enigma2-plugin-extensions-subversion) providing same name marked HOLD or PREFER.  Using latest.
    Installing enigma2-plugin-extensions-subversion (1.6.17) to root...
    ln: /svn/svn: File exists
    Collected errors:
     * Package enigma2-plugin-extensions-subversion wants to install file /usr/lib/libsqlite3.so.0
            But that file is already provided by package  * libsqlite3-0
     * Cannot find package enigma2-plugin-extensions-subversion.


    Auch mit den ipkg-Optionen "--nodeps" oder " --force-depends" wird das Paket nicht installiert.


    Ich benutze iene Dreambox 7020HD mit "OoZooN-Image-Dreambox 7020hd-3.2.2". Liegt es an der 7020HD?

  • Wow, das ging schnell.


    Das Paket war bereits installiert:

    Code
    root@dm7020hd:/tmp# ipkg list-installed | grep -i libsqlite
    libsqlite3-0 - 3.6.23.1-r0


    Ich habe es trotzdem nochmal drüberinstalliert: ohne Erfolg.


    Der Fehlertext lautet ja auch:

    Code
    * Package enigma2-plugin-extensions-subversion wants to install file /usr/lib/libsqlite3.so.0
            But that file is already provided by package  * libsqlite3-0


    Irgendwie erkennt der Installer das vorhandene File, bricht dann aber trotzdem ab...

  • Leider zu früh gefreut...


    Es läuft nun ein SVN-Server mit den Standardeinstellungen auf meiner Dreambox. Das SVN-Repos-Verzeichnis ist:
    /media/hdd/svn
    Ein Link von /svn nach /media/hdd/svn besteht ebenfalls.
    Ich habe erfolgreich mit svnadmin ein Repository erstellt (test) und die User-Konfiguration angepasst.
    Das Auschecken von meinem PC funktioniert auch noch.
    Das Hinzufügen einer Datei und der anschließende Commit erzeugt allerdings immer ein Fehlermeldung:

    Code
    hansdampf@jayce-server ~/svn_test/test $ echo "test" > 1
    hansdampf@jayce-server ~/svn_test/test $ svn add 1
    A         1
    hansdampf@jayce-server ~/svn_test/test $ svn commit -m "test"
    Adding         1
    Transmitting file data .svn: Commit failed (details follow):
    svn: Corrupt node-revision '0.0.t0-0'
    svn: While reading representation offsets for node-revision '0.0.t0-0':
    svn: Malformed text representation offset line in node-rev


    Das gleiche passiert in Windows (nur in bunt).


    Hat Jemand eine Idee?

  • Gibt es zu dem Problem über meinem Beitrag eine Lösung?
    Habe gerade eben den gleichen Fehler bekommen.


    [Main Instruction]
    Subversion reported an error:
    [Content]
    Corrupt node-revision '0.0.t0-1'
    While reading representation offsets for node-revision '0.0.t0-1':
    Malformed text representation offset line in node-rev



    Bitte um Mithilfe.


    Danke !