deb-Pakete mit distutils?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Hoi,

gibt es eine Möglichkeit debian-Pakete mit distutils (setup.py) zu erstellen? Habe heute lange gesucht und nichts gefunden. Aber vielleicht gibt es etwas freies / "handgeschriebenes" hierzu?

Gruß,
Christian
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

bdist_deb und easy-deb. Aber von beiden wird eher abgeraten, da gerade der Grund warum DEBs sich ins Systm anpassen dar ist, dass der Entwickler sich auch die Zeit genommen hat, das Paket vernünftig zu paketieren.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

Ist zwar vermutlich nach leonidas hinweis auch von abzuraten, aber ich hab mir mit einem kleinen eigenen Projekt beholfen http://www.flyingelephantsoftware.de/pr ... hebox.html
Aber von beiden wird eher abgeraten, da gerade der Grund warum DEBs sich ins Systm anpassen dar ist, dass der Entwickler sich auch die Zeit genommen hat, das Paket vernünftig zu paketieren.
Ich verstehe das nicht ganz. Könntest du das etwas ausführen?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

keppla hat geschrieben:
Aber von beiden wird eher abgeraten, da gerade der Grund warum DEBs sich ins Systm anpassen dar ist, dass der Entwickler sich auch die Zeit genommen hat, das Paket vernünftig zu paketieren.
Ich verstehe das nicht ganz. Könntest du das etwas ausführen?
Naja, ein Debian-Paket ist nicht einfach ein ar-Archiv mit zwei Tarballs. Wenn man sich den Maint-Guide ansieht, dass das System zum Bauen von DEBs eine recht komplexe infrastruktur bietet, um Pakete so gut wie möglich ins System zu integrieren. Ich glaube nicht, dass automatisch erstellte DEBs so gut an die Debian Policy halten, wie das ein von einem Menschen erstelltes Debian Paket kann, welches von jemandem erstellt ist der Ahnung hat und der es auch regelmäßig pflegt.

Nehmen wir etwa Pakete, die andere Libs mitgeliefert haben, die in Debian paketiert sind. Ein menschlicher Maintainer würde jetzt die zusätzlichen Libs gerauspatchen, um die in Debian gelieferten zu verwenden, dazu noch de Dependencies entsprechend setzen. So exotisch ist das gar nicht, lunar hat das vor gar nicht so langer Zeit mit Gentoo Ebuilds gemacht.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Hm, bdist_dpkg scheint es auch zu geben: http://svn.python.org/projects/sandbox/ ... st_dpkg.py
Allerdings konnte ich nicht herausfinden, welchen Status es geniesst.
bdist_deb und easy-deb kenne ich beides nicht. Bei meinem System habe ich es auch nicht finden können (Ubuntu 7.10, python 2.5.1) - habe ich irgendwelche Pakete übersehen?

Vielen Dank für die Info und den Link!

Christian
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

Leonidas hat geschrieben:Naja, ein Debian-Paket ist nicht einfach ein ar-Archiv mit zwei Tarballs. Wenn man sich den Maint-Guide ansieht, dass das System zum Bauen von DEBs eine recht komplexe infrastruktur bietet, um Pakete so gut wie möglich ins System zu integrieren.
Nachdem ich jetzt schon etwas länger versuche, meine Pakete halbwegs gemäß dieser Policy zu verpacken, hab ich das Gefühl, dass diese komplexe Infrastruktur etwas zu komplex ist, nämlich, dass es für das gleiche Problem mindestens 3 Arten gibt, wie man es lösen kann.
Vielleicht stelle ich mich auch etwas dumm an, aber ich habe immer noch keine vernünftige Anleitung gefunden, wie ich mein Pure-Python-Projekt packagen soll. Von dh_python, dh_pysupport, py_central, über "guck dir die sourcen von X an" zu "nutze CDBS" hab ich da alles gefunden.
Ich glaube nicht, dass automatisch erstellte DEBs so gut an die Debian Policy halten, wie das ein von einem Menschen erstelltes Debian Paket kann, welches von jemandem erstellt ist der Ahnung hat und der es auch regelmäßig pflegt.
Ich dachte auch nicht, dass es vollautomatisch erstellt werden sollte, sondern eher, dass man dem Pythonprogrammierer da ein paar einfache Schalter für die setup.py anbietet.
Und es ist natürlich schön, wenn sich jemand findet, der ordentlich und regelmäßig die Drecksarbeit macht, aber irgendwie kann ich darauf für meine unbekannten Projekte kaum bauen, und habe schon genug mit dem Projekt selber zu tun, als dass mir ein zweites Projekt (das debianizen) da so günstig erscheint.
Ich meine, es gibt schon jetzt mehr Distributionen als ich kenne, und ich würde auch gerne irgendwann mal RedHat, Suse oder Gentoopakete anbieten, ohne dass das ein Vollzeitjob wird.
Und dass Debian nicht gerade den Ruf der schnellen Truppe hat, bestätigt mich irgendwie etwas in meiner Theorie
Nehmen wir etwa Pakete, die andere Libs mitgeliefert haben, die in Debian paketiert sind. Ein menschlicher Maintainer würde jetzt die zusätzlichen Libs gerauspatchen, um die in Debian gelieferten zu verwenden, dazu noch de Dependencies entsprechend setzen.
Das ist doch etwas, was man (pure python angenommen) mit einem auslesen der setuptools-dependencies und einem mapping von debian-name nach python-name vollautomatisieren könnte, und keinen wertvollen Gehirnschmalz für opfern müsste.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

keppla hat geschrieben:Ich dachte auch nicht, dass es vollautomatisch erstellt werden sollte, sondern eher, dass man dem Pythonprogrammierer da ein paar einfache Schalter für die setup.py anbietet.
Genau deshalb habe ich gefragt und ich finde es gut, daß Du zumindest einen Versuch unternimmst und den Code zur Verfügung stellst.

Doch auch eine weitere Suche im Netz scheint mir nicht zufriedenstellend zu sein. Jetzt muß ich mal überlegen, wie ich das für mein Projekt machen will.

Gruß,
Christian
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

Mir ist aufgefallen, dass ich noch erwähnen sollte, dass man sich mit

Code: Alles auswählen

python setup.py bdist_pysupport --help
alle schalter anzeigen kann, die bisher implementiert sind, interessant dürften hauptsächlich --debian-depends und --debian-section sein.
(Alle Angaben für den svn-trunk)
Doch auch eine weitere Suche im Netz scheint mir nicht zufriedenstellend zu sein. Jetzt muß ich mal überlegen, wie ich das für mein Projekt machen will.
wenn du was hast, bitte sag Bescheid, ich versage bei diesem Thema sehr lange, ein Erfolgserlebnis wäre da echt schön ;)
lunar

Wenn einem an Paketierung für viele System gelegen ist, dann wäre es ratsam, sich nach einem öffentlichen Build-Service umzusehen. Das Open-Suse Projekt hat da einen am Laufen, in wie weit der zugänglich ist, weiß ich allerdings nicht.

Gentoo Ebuilds fallen da allerdings ebenso wie Arch Builds aus der Reihe. Das sind keine Pakete, sondern Beschreibungen zum Kompilieren der Software. Für Standard-Pakete, die sich an die Distutils halten, ist sowas schnell erstellt, unter Gentoo sind das nicht mehr als ein dutzend Zeilen.
Antworten