IPKG script gesucht

  • hab ich im DMM board doch gepostet inklusive ar binary amit man auch auf 7025 selber kits machen kann (script geht aber auch am PC) :winking_face:


    Und das Spider Fan Plugin kann auch ipk Gefängnisse machen ....


    Hier ist der Beitrag & script:


    Anbei also ein kleines ipkg-build.tar.bz2 das sowohl die voll funktionsfähige ar als auch das entsprechend angepasste ipkg-build enthält.


    Beide files werden auf /usr/local/bin abgelegt damit wenn das in Eurem Pfad inkludiert ist auch von überall ausgeführt werden kann.


    Für die syntax einfach ipk-build eingeben nachdem Ihr den kit auf /tmp FTPd und ausgepackt habt:


    cd /
    bunzip2 /tmp/ipkg-build.tar.bz2
    tar -xvf /tmp/ipkg-build.tar


    ipkg-build


    Damit sollte dann vom erstellen der directory struktur und des CONTROl directories abgesehen (das ist in Reichi's Wiki eh schön erklärt) ipkg machen selbst auf der Dream (fast) so einfach sein wie andere Archives erstellen.


    PS: wenn Ihr wollt kann ich auch daraus noch ein kleines ipk file machen :)


    PPS: Und aufpassen das ar ist 2.7 MB gross, das verbraucht also ziemlich viel Speicher - evt nach dem auspacken woanders hin moven:


    mkdir /media/hdd/ar
    mv /usr/local/bin/ar /media/hdd/ar
    ln -sfn /media/hdd/ar/ar /usr/local/bin


    oder gleich den link der busybox loswerden und mit /usr/bin arbeiten:


    rm /usr/bin/ar
    ln -sfn /media/hdd/ar/ar /usr/bin


    LG
    gutemine

  • Kann man ein *.ipk file auch entpacken ohne zu installieren?
    Damit man nachsehen kann wie das ganze aufgebaut ist, wäre leichter zu verstehen...

    Dreambox:.......DM7025SC (+OLED-Kit)
    Festplatte:.......2,5" 120GB Samsung
    CF-Karte:.........1024MB Kingston Elite
    Satelliten:........Astra 19,2°, Hotbird 13°, Kabel
    Images:...........OoZzon, Gemini2 4.6 [AKTIV]

  • ar -tvf *.ipk zum anschauen (ja, ar und nicht tar !)


    ar -xvf zum extrahieren gibt 3 pakete die man mit tar -tvf anschauen und mit tar -xvf extrahieren kann.


    In data sind die files und in contrl das contrl file und die scripte.


    Steht alles in Reichis Wiki zum ipk bauen :)

    Einmal editiert, zuletzt von gutemine ()

  • Zitat

    Original von leondriver
    Warum fertiges script wenn das selber machen mehr Spass macht .. HIER


    Und was glaubst du was das ipkg-build script ist das dort verwendet wird ?

  • Habe heute zum ersten mal ein ipk Paket erstellt.


    Eine Frage bleibt noch.


    -Wo müssen die


    preinst
    postinst
    prerm
    postrm


    Scripte hin und müssen sie mit sh enden ?


    MfG

  • Die müssen ins CONTROL directory zum control file dazu und Nein die müssen so heissen ohne .sh sonst werden sie nicht beim installieren aufgerufen.

  • thx gutemine


    funktioniert !
    sieht so eine saubere deinstalltion mit wiederherstellung aus ?
    und wieso finde ich unter Plugins entfernen mein plugin nicht ?


    das preinst script wird ausgeführt und sieht so aus


    cd /usr/lib/enigma2/python/Components/Converter/
    mv ServiceInfo.py ServiceInfo_org.py


    cd /usr/lib/enigma2/python/Screens/
    mv ChannelSelection.py ChannelSelection_org.py


    cd /usr/lib/enigma2/python/Components/
    mv AVSwitch.py AVSwitch_org.py


    cd /usr/share/enigma2/
    mv setup.xml setup_org.xml


    die _org dateien werden angelegt



    postrm sieht so aus


    cd /usr/lib/enigma2/python/Components/Converter/
    mv ServiceInfo_org.py ServiceInfo.py


    cd /usr/lib/enigma2/python/Screens/
    mv ChannelSelection_org.py ChannelSelection.py


    cd /usr/lib/enigma2/python/Components/
    mv AVSwitch_org.py AVSwitch.py


    cd /usr/share/enigma2/
    mv setup_org.xml setup.xml

  • wenn du originaldateien die auch von anderem enigma2 paket kommen überschreibst wird es so einfach nicht funktionieren (du kriegst files provided by other packege fehler und müsstest mit force-overwrite installieren), du musst deine neuen/gepatchten als .patch oder ähnlich in deinen kit packen und im postinst nach dem auspacken dann über die originalen mit cp drüber kopieren (mv ist nicht so gut wenn die quelle schon existiert). Und damit das ipkg remove ohne fehler funktionier sollten die .patch erhalten bleiben, schon damit du den unterschied nachsehen kannst.


    Vor allem musst du bedenken das file vom enigma2 durch die software update funktion auch wieder überschrieben werden können nahcdem du sie ersetzt hast !

    Einmal editiert, zuletzt von gutemine ()

  • hmm, das wird wieder kompliziert.


    im mom siehts ja so aus


    - die dateien werden durch preinst in *_org "umbenannt".
    - durch das eigentliche ipkg install werden die dateien nun wieder mit den änderungen darin erstellt
    - bei einem ipkg remove werden die geänderten dateien gelöscht
    - durch postrm werden die *_org wieder in ihre originale dateinamen "umbenannt"



    funktionieren tut das ganze so.


    ist die .patch für das Anzeigen unter erweiterungen verantwortlich ?
    zu der .patch habe ich im Wiki nix gefunden werd hier im forum mal bissl suchen...

  • nein du kannst die dateien auch nennen wie du willt, ich benutze halt .ori und .patch, aber das ist geschmacksache :)


    wenn das ipkg install funktioniert was solls, originaldateien austauschen ist immer schwer.


    Flash ein OoZoon (oder pack es auf CF aus mit BA), installieren dein ipk und mach dann ein softwareupdate im image und schau was dann mit deinen files passiert, dann verstehst du wo weitere Probleme warten.

    Einmal editiert, zuletzt von gutemine ()

  • die von mir gepatchten Dateien werden wohl durch ein Update überschrieben, das macht ja auch irgendwie Sinn, da es sich ja um originale Dateien handeln.


    Ändert sich der Inhalt der originale Dateien so sehr, dass enigma2 nicht mehr bootfähig ist wäre das mies.


    Sollte man nun nach einem Softwareupdate trotzdem das ipkg neu installieren, werden die _org dateien durch die NEUEN originalen ersetzt. Sollte nun der Supergau eintreten dass enigma2 nicht mehr bootet, kann man das ganze via ipkg remove wiederherstellen.


    so hab ichs verstanden, korrigier mich bitte wenns nicht stimmt.


    MfG

  • Was stimmt denn nicht wenn die Fehlermeldung kommt "CONTROL/postinst is not executable" & "CONTROL/postrmis not executable" !


    Hab ein bestehendes IPKG zerlegt, um mir die Verzeichnisstruktur anzusehen.. ich hab nur die *.png´s die drin sind ersetzt, um das ganze mal auszuprobieren... aber er macht mir einfach kein IPKG daraus.

  • Hallo,


    gibt es eine Lösung, ein ipk zu erstellen, welches einen Pfad größer als 100 Zeichen hat ?


    Ich erhalte immer :


    Code
    tar: Names longer than 100 chars not supported.
    tar: Names longer than 100 chars not supported.
    tar: Names longer than 100 chars not supported.
    tar: Names longer than 100 chars not supported.
    tar: Names longer than 100 chars not supported.
    tar: Names longer than 100 chars not supported.
    tar: Names longer than 100 chars not supported.
    tar: Names longer than 100 chars not supported.


    Dementsprechend fehlen natürlich im erstellten *.ipk einige Files.
    Die Strucktur kann ich leider nicht kleiner halten. Die Files solle ja schließlich an richtiger Stelle landen beim installieren (usr/lib/enigma2......................)


    Gruß cHrIsZ

  • das Problem ist das tar command der busybox


    Schau mal ins /media/ba/bin directory vom barry Allen, dort liegt ein volles tar binary das diese limitierung nicht hat - aber ob das ipk dann auspacken geht wenn nur das busybox tar da ist ist eine andere geschichte


    Einfach rm /bin/tar machen und dann statt dem link zu busybox das tar binary von dort hinkopierne oder verlinken.


    ACHTUNG, nicht einfach über das vorhandene tar der Dreambox drüber kopieren, du ersetzt sonst das busybox und darfst neuflashen


    LG
    gutemine

    Einmal editiert, zuletzt von gutemine ()

  • Hallo Gutemine,


    ich werde das mit einem Link implementieren. Zwar keine saubere Lösung, aber es erfüllt sein Zweck. Das Problem wird dann ja auch beim entpacken entstehen. Ich möchte heute noch release'n :winking_face:


    Eine einigermaßen saubere Lösung werde ich mit postins, postrm vornehmen.


    Danke...


    Gruß cHrIsZ

  • normal packe ich so lange sachen in ein directory weiter oben und verlinke es dann in das lange directory, so geht dann trotzdem nachher der lange pfad und es lässt sich problemlos packen und installieren