Page 1 sur 1
[création] Créer un package venant de github
Publié : mer. 07 août 2013, 17:18
par djipey
Bonjour,
Cela fait un moment que je développe un petit soft pour trier des vidéos de toute sorte. Après environ un an de développement, je pense qu'il est suffisament stable pour que je me préoccupe de le packager, mais je n'ai jamais fait ça. Je ne sais pas vraiment par où commencer.
Le code est dispo sur github à cette adresse :
https://github.com/rififi/triator
C'est du python, avec quelques dépendances. Certaines dans les dépôts extra/community, d'autres des modules python installables grâce à pip.
Est-ce que vous pourriez m'indiquer la marche à suivre et me donner quelques conseils ?
Bien à vous.
Re: [création] Créer un package venant de github
Publié : mer. 07 août 2013, 17:48
par FoolEcho
Salut,
Si tu as une version stable, il te suffit de te baser sur le PKGBUILD-python.proto fourni par le paquet abs.
Si c'est la version de développement que tu souhaites partager, tu couples le PKGBUILD pour python avec celui pour git, sachant qu'il y a un certain nombre de commodités qui figurent sur le wiki et pas encore dans abs:
https://wiki.archlinux.org/index.php/Ar ... guidelines
Plus les standards à respecter, etc..
Standard_paquetage
N'hésite pas à nous montrer ton PKGBUILD, bien sûr.

Re: [création] Créer un package venant de github
Publié : jeu. 08 août 2013, 11:21
par djipey
Merci pour ta réponse. C'est excessivement compliqué j'ai l'impression..
Déjà il va falloir que je modifie un peu mon code. Est-ce qu'il y a des "standards" à respecter pour les données utilisateurs d'un programme ? Par exemple, mon script crée des miniatures et des mosaïques pour les vidéos qu'il trie. Où dois-je mettre ces images ? dans /home/user/.monProgramme ?
Et ensuite, j'avoue ne pas bien comprendre. Les modules que j'utilise dans mon code, où est-ce que je les mets ? Je ne parle pas des miens, juste ceux qui ne sont pas dans les libs standards, je parle de ceux que l'on peut installer avec pip. Est-ce que je dois joindre ces fichiers dans mon paquet ?
Re: [création] Créer un package venant de github
Publié : jeu. 08 août 2013, 11:27
par benjarobin
Pour le stockage de donnée, ceci doit clairement être fait dans le home de l'utilisateur.
- Tout ce qui est temporaire, tu peux le caser dans .cache/tonprogramme/
- Les données généré non temporaire, tu peux le mettre dans .local/share
- La configuration dans .config/...
djipey a écrit : Les modules que j'utilise dans mon code, où est-ce que je les mets
S'il n'existe pas de paquet sur AUR alors il suffit d'en créer pour chaque module.
Re: [création] Créer un package venant de github
Publié : jeu. 08 août 2013, 11:31
par FoolEcho
djipey a écrit :Déjà il va falloir que je modifie un peu mon code. Est-ce qu'il y a des "standards" à respecter pour les données utilisateurs d'un programme ? Par exemple, mon script crée des miniatures et des mosaïques pour les vidéos qu'il trie. Où dois-je mettre ces images ? dans /home/user/.monProgramme ?
Il faut effectivement que ton programme s'installe proprement et gère ce genre de choses.
Je n'en ai pas vu dans ton lien, mais un script d'installation python me semble pertinent (ça je sais pas faire par contre, python 'connais pas ^^).
Après faire le PKGBUILD est quasi-trivial.
Re: [création] Créer un package venant de github
Publié : jeu. 08 août 2013, 11:52
par djipey
S'il n'existe pas de paquet sur AUR alors il suffit d'en créer pour chaque module.
@benjarobin, tu veux dire qu'il faut que je crée un paquet AUR pour chaque module que j'utilise ?
Et en ce qui concerne les données utilisateurs, je ne peux pas les mettre dans /home/user/.monProg ? Certains programmes le font (est-ce que c'est bien ?) et j'avoue que j'aime bien. Ça évite d'avoir 5000 fichiers à trouver quand on désinstalle complètement.
Re: [création] Créer un package venant de github
Publié : jeu. 08 août 2013, 11:56
par benjarobin
djipey a écrit :@benjarobin, tu veux dire qu'il faut que je crée un paquet AUR pour chaque module que j'utilise ?
Oui, si ces modules n'existe pas déjà sur AUR.
Mais apparemment ton programme ne requière aucun module qui n'est pas présent dans les dépôts officiels
Pour informations j'ai ceci comme paquets python2 d'installés (Une grosse partie est surement inutile pour ton programme)
Code : Tout sélectionner
pyqt4-common
python-dbus-common
python2
python2-cairo
python2-cheetah
python2-dateutil
python2-dbus
python2-distribute
python2-feedparser
python2-gobject2
python2-markdown
python2-pygments
python2-pyopenssl
python2-pyqt4
python2-sip
python2-six
python2-unidecode
python2-urwid
python2-yenc
djipey a écrit :Ça évite d'avoir 5000 fichiers à trouver quand on désinstalle complètement
Pour éviter toute confusion :
- Pacman ne touche à aucun fichier dans le home, donc une désinstallation ne fera rien à ces fichiers.
- Après je t'avoue que c'est plus pratique de tout mettre dans .monprog, mais tu peux mettre au moins les fichiers temporaire dans .cache
Personnellement j'arrive à lancer le programme, en patchant les lignes avant 122 car sinon j'ai
Code : Tout sélectionner
Démarrage du programme
Traceback (most recent call last):
File "gui.py", line 1786, in <module>
main()
File "gui.py", line 1782, in main
ex = Fenetre()
File "gui.py", line 57, in __init__
self.restoreSettings()
File "gui.py", line 122, in restoreSettings
self.waiting_list = [ int(each_vid) for each_vid in self.waiting_list ]
TypeError: 'QVariant' object is not iterable
De plus il y a un gros souci avec les accents...
Re: [création] Créer un package venant de github
Publié : jeu. 08 août 2013, 12:35
par djipey
Ok, je mettrai les fichiers dans .cache.
Comme modules j'ai besoin de:
Code : Tout sélectionner
functools
PyQt4
sqlite3
datetime
random
logging
unidecode
dateutil
fnmatch
json
subprocess
collections
Et en plus de imagemagick, un paquet du dépot extra. Je vais vérifier que tous ces modules sont bien dans AUR. C'est du python 3.
Ensuite pour le bug c'est bien possible, je crois que j'avais ça aussi. Il est normalement résolu dans la branche unstable. Par contre, que veux-tu dire pour les accents ?
Et pour finir, je dois donc faire un script d'install en python ?
Re: [création] Créer un package venant de github
Publié : jeu. 08 août 2013, 13:07
par FoolEcho
djipey a écrit :t pour finir, je dois donc faire un script d'install en python ?
Ou en tous cas, placer tes scripts correctement dans l'arborescence du système: usr/bin , usr/share, lib/python (voir wiki) si besoin, etc.. Plus simple avec un installateur.
Re: [création] Créer un package venant de github
Publié : jeu. 08 août 2013, 13:33
par benjarobin
Intéressant, en effet c'est du python3. Cela fonctionne un peu mieux en tout cas

Donc pas besoin de créer de paquet, tout existe déjà (Tous les paquets viennent des dépôts officiels, sauf python-unidecode qui vient de AUR), coté python3 j'ai donc ceci
Code : Tout sélectionner
mysql-python
pygtk
pyqt4-common
python
python-dateutil
python-dbus
python-dbus-common
python-pyqt4
python-sip
python-six
python-unidecode
python-xdg
wxpython
Re: [création] Créer un package venant de github
Publié : jeu. 08 août 2013, 15:46
par djipey
Ok. Pour l'installateur en python, est-ce que vous auriez un point de départ ?
J'ai trouvé ça :
http://sametmax.com/creer-un-setup-py-e ... -sur-pypi/, c'est un blog que j'aime beaucoup et qui m'aide. Est-ce que c'est adaptable au cas présent, ce qu'ils font pour le setup.py ?
Re: [création] Créer un package venant de github
Publié : dim. 11 août 2013, 10:12
par djipey
Coucou ?
Re: [création] Créer un package venant de github
Publié : dim. 11 août 2013, 10:48
par FoolEcho
Je t'ai dit, python je n'y connais rien.
Donc ton tuto convient certainement.
Tu as la doc officielle aussi:
http://docs.python.org/3/distutils/setupscript.html
Et probablement que le plus facile est de passer par un environnement de développement (Eclipse ou autre, je ne sais pas ce qui se fait avec python), tu auras des assistants.
Je t'ai parlé de ça pour que tu aies un logiciel facilement «packageable» et propre, peu importe la distribution, hein... Mais tu peux faire autrement.