Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#101 Le 27/05/2008, à 10:49

aleph

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

> bismut

> D'ailleurs, me demande quand même pourquoi ils préfèrent perdre du temps à faire les .deb alors que je pourrais le leur donner direct mais bon.

Bonne question.

C'est assez amusant de voir que ce sont bien souvent les défenseurs bien intentionnés du logiciel libre qui vont emprisonnés leurs oeuvres dans un paquet inutilisable pour 99% des utilisateurs potentiels.

Je peux te certifié que dans bien des cas, ce sont des tiers et non les créateurs des applications qui créent ces paquets. Les maniaques du sudo apt-get inutile. Une des fâcheuses conséquence étant tout simplement que des dépôts ne contiennent pas la version correcte.

Je ne compte le nombre de paquets deb que j'ai déballés pour simplement récupérer un simple script Python qui tient dans un seul fichier et ai balancé la myriade de fichiers inutiles.

#102 Le 27/05/2008, à 11:29

manatlan

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

Bismut a écrit :

Enfin bref, ma question c'est donc : est-ce que les .tar.gz fabriqués par py2deb sont "valides" et donc bon pour passer sur un PPA ?

réponse simple : aucune idée
réponse moins simple : je n'y connais pas grand chose, mais le paquet "source" (simple tar.gz) généré par py2deb ... est, je pense, un bon paquet source, dans le sens où il contient tout ce qui va bien (repertoire debian et ses fichiers bien golés), où normalement il y a juste à lancer le le dpkg build package qui va bien pour créer le deb en fonction des sources ... Donc, dans l'absolue, ça devrait marcher ... maintenant sans avoir pu tester/constater : difficile de dire que ça doit être possible ... d'autant plus que je ne sais absolument pas comment fonctionne ppa ;-)

Sinon, toujours dans l'absolue, faire un repository de deb est d'une facilitée déconcertante ... j'ai pas de pointeurs sous la main ... mais c vraiment simple


"Oui, oui."
                -- Shakespeare (Richard III, Acte I, Scène IV)

Hors ligne

#103 Le 27/05/2008, à 11:53

manatlan

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

@aleph ...

Tu te fais l'avocat du diable ... toi tu es capable d'aller chercher l'appli au fond du deb, moi aussi ; mais en dernier recours, je privilégie le deb avant tout
Mais faut se mettre au niveau utilisateur ... Pour 99.9% des personnes utilisant ubuntu (pro et newbies), je pense qu'il est plus simple d'installer un deb ... qu'un tar.gz et des lignes de configure/make/install ... ou d'extraire les fichiers qui vont bien ...

avec des gdebi, ou le protocole apt:// ... c'est vraiment donné à tout le monde. (je prefere de loin un repository ... pour que ça rentre dans la mécanique d'update)

Maintenant aussi, je crois pouvoir garantir à 95% (des progs empactés avec py2deb) que le rpm généré (par alienation du deb) par py2deb est compatible avec les distrib rpm, pour peu que le packageur respecte les normes freedesktop ou les répertoires classiques "gnu/linux", et les conventions de nommages de paquets dépendants. Et que la distribution cible respecte ces normes. Etant donné que le "deb"(/rpm) fabriqué par py2deb est quand même ultra simple (simple copie de fichiers, pas de scripting post/pre). Donc ça couvre quand même pas mal de distribs.

Maintenant il est vrai aussi qu'un "package source" d'une appli python (ruby/perl/php ...) n'a pas tellement de sens (pas autant qu'une appli C). Mais le dev/packageur doit alors créer son deb source dans ces cas précis.

Le packaging sous linux est un vaste problème. Et c'est sure qu'un tar.gz devrait suffir : mais pas pour les utilisateurs de base. Le système de paquets est largement au-dessus et plus simple.


"Oui, oui."
                -- Shakespeare (Richard III, Acte I, Scène IV)

Hors ligne

#104 Le 27/05/2008, à 13:13

aleph

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

> manatlan

Soyons clairs. Que les gens distribuent leurs scripts sous fome de deb, zip, tar, exe ou dmg m'est égal.

Le seul point sur lequel j'attire l'attention et l'ai toujours fait, est:

On écrit ses applications pour un environnement Python et ne fait pas adapter l'environnement Python à ses scripts.

Je réitère mes excuses pour la confusion py2deb / GDebi (de mémoire).

#105 Le 27/05/2008, à 15:13

manatlan

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

> On écrit ses applications pour un environnement Python et ne
> fait pas adapter l'environnement Python à ses scripts.

on est d'accord ...
cependant, même dans le monde python, actuellement le packaging python est en pleine discorde : entre la méthode "pycentral" et l'autre (que je ne me rappelle plus : "python-support", non ?), le traditionnel site-packages ... l'egg qui a du mal à s'imposer (et son easy_install qui vient faire double emploi avec les apt-get et autres) ... et les "normes *nix" (/usr/share /usr/lib /usr/bin )
On ne sait plus trop où coller nos applis dans le fs ...

ce problème risque de perdurer encore un moment ...


"Oui, oui."
                -- Shakespeare (Richard III, Acte I, Scène IV)

Hors ligne

#106 Le 28/05/2008, à 13:26

aleph

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

> cependant, même dans le monde python, actuellement le packaging python ...

Ceci concerne principalement les développeurs qui écrivent *le code de l'environnement Python** et ne touche pas l'utilisateur et/ou le développeur de scripts Python.

> On ne sait plus trop où coller nos applis dans le fs ...

La question ne se pose même pas. C'est essayer de résoudre un problème qui n'en est pas un. Si tu choisis de distribuer tes scripts sous la forme d'un paquet deb ou autre, à toi d'assumer les conséquences des tes choix. Ce n'est en aucun cas un problème lié à Python. Ceux qui distribuent leurs scripts sous forme de Python scripts n'ont pas à résoudre ce genre de problème quelle que soit la plateforme, le version du système d'exploitation, la version de Python ou même les "moteurs" Python -Jython, IronPython, (C)Python ou même python*.dll ...- .

> ce problème risque de perdurer encore un moment ...

Ce mode de fonctionnement donne satisfaction à la majorité des utilisateurs / développeurs de Python et sera préservé dans Python 3.

Si tu penses proposer ou faire mieux, la liste PEP, http://www.python.org/dev/peps/ , est toujours ouverte et Python 3 n'en est qu'à sa version alpha 5.

#107 Le 28/05/2008, à 14:05

manatlan

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

@aleph

J'ai l'impression qu'on a déjà eu ce genre de discussion ;-)

Même mon module py2deb, qui est donc vraiment un module, ne pourrait pas être dans un egg ...

C'est vraiment l'exemple typique, c'est un simple script python (un module) ... qui pourrait être distribué en tant que fichier py, voire en egg. Car en plus, il n'utilise que les libs de base de python.
Le hic, c'est qu'il a besoin des outils de packaging debian. Et qu'il ne fonctionnera pas sans ... Du coup impossible de le distribuer comme un simple egg (à moins de demander à l'utilisateur d'installer toutes les dépendances à la mano ;-)
La seule façon, c'est de le distribuer en deb, histoire de pouvoir installer les dépendances qui vont bien automatiquement.

Ce que je veux dire par là ... C'est que ça dépends vraiment du programme/du script ... Si ça n'utilise que du python pure (et rien d'autres), oui, mieux vaut faire son setuptools et/ou un egg.
Mais dans une grosse majorité des cas : il n'y a pas d'autres choix que de livrer via un système de paquet pour assurer la gestion des dépendances des produits non python ... (plein d'exemples : gajim, exaile, listen, paprass ...)

> Ceux qui distribuent leurs scripts sous forme de Python scripts
> n'ont pas à résoudre ce genre de problème quelle que soit la
> plateforme ...

Sur le fond, on est evidemment d'accord ...
mais si tu veux que ton logiciel/script/module (bref ta création) soit distribué/utilisé ... alors tu va gentillement attendre que de gentils bénévoles viennent te packager ton appli pour les différentes distribs.
De plus : il faudra qu'ils maintiennent tout ça aussi ... sinon tu aura des gros problèmes de distribution de ta création ...

Je suis d'accord, dans le meilleur des mondes, c'est la communauté qui va venir t'aider à faire les paquets et à distribuer ...
Dans la réalité vraie : bah, faut attendre, trouver des gens sérieux (qui maintiennent également) ... et seulement après, ta création pourra être utiliser ...

Je n'ai malheureusement aucune idée de comment améliorer la chose, donc je n'ai pas de PEP à proposer. Et en attendant, si il y a des dépendances non pythonesque : il n'y a rien de mieux que le système de package natif de la distrib (deb/rpm/...) ...


"Oui, oui."
                -- Shakespeare (Richard III, Acte I, Scène IV)

Hors ligne

#108 Le 30/05/2008, à 20:41

Sleeper

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

@ manatlan

Je me suis amusé avec Py2Deb, création de meta paquets + fichiers de config pour l'installation d'une Ubuntu light.

Simple et rapide voir :

http://forum.ubuntu-fr.org/viewtopic.php?id=224347


Intel Core i5 750 : 4Go DDR : HD 2To : ATI HD4850 1Go DDR3 : SyncMaster 226bw
Pourquoi choisir GNU/Linux ? : Les commandes de base
Openbox : sur Ubuntu ou Debian, le tout en un script.

Hors ligne

#109 Le 01/06/2008, à 15:40

SeTtHe

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

@ bipède :
je me suis basé sur ton fichier paprass.desktop pour faire le mien, mais après création du paquet deb, je n'arrive toujours pas à créer une entrée dans le menu... sad

voici mon fichier desktop si tu veux y jeter un p'tit coup d'oeil...

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=Coban
Type=Application
Categories=Office;
GenericName=coban
Comment=calculs électriques
TryExec=/usr/lib/coban/coban.sh
Exec=coban
Icon=/usr/share/pixmaps/coban_26.png
GenericName[fr_FR]=coban

Par contre mon paquet s'installe sans souci ....
tongue

Hors ligne

#110 Le 02/11/2008, à 20:44

antistress

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

très interessant fil mais audessus de mes (nulles) compétences malgré py2deb et son front-end (je suis déjà fan de fricorder alors je me suis précipité pour essayer).
j'aime bien un programme en python qui s'appelle takenote et j'avais noté les dépendances nécessaires (python 2.4 minimum, python-gtk2, python-glade2, libgtk2.0-dev) et optionnelles (python-gnome2-extras et imagemagick) pour aider le dév (qui est sous windows) et lui proposer un zoli deb mais je me rends compte que les bases me manquent (que mettre dans usr/lib, usr/share etc.).
tant pis.
je glisse nénamoins ce post ici quelquefois qu'un autre forumeur devienne également fan de takenote (j'en parle sur mon blogue) et ait les compétences requise spour proposer un deb...

Dernière modification par antistress (Le 02/11/2008, à 20:45)

Hors ligne

#111 Le 30/12/2008, à 13:51

sigo

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

avec le frontend ca marche pas:/ voila ce que py2deb-gtk me renvoie :"Can't generate package !buildpackage failed (see output) "
et pour la console:

simon@simon-laptop:~$ py2deb 
dpkg-buildpackage : définir CFLAGS à la valeur par défaut : -g -O2
dpkg-buildpackage : définir CPPFLAGS à la valeur par défaut : 
dpkg-buildpackage : définir LDFLAGS à la valeur par défaut : -Wl,-Bsymbolic-functions
dpkg-buildpackage : définir FFLAGS à la valeur par défaut : -g -O2
dpkg-buildpackage : définir CXXFLAGS à la valeur par défaut : -g -O2
parsechangelog/debian: avertissement:     debian/changelog(l5): ligne de fin mal formée
LINE:  -- simon claessens <gagalago@gmail.com>  mar, 30 déc 2008 13:28:44 +0000
parsechangelog/debian: avertissement:     debian/changelog(l5): fin de fichier trouvée, more change data or trailer attendu
Use of uninitialized value $v in pattern match (m//) at /usr/share/perl5/Dpkg/Fields.pm line 229, <STDIN> line 5.
Use of uninitialized value $v in pattern match (m//) at /usr/share/perl5/Dpkg/Fields.pm line 229, <STDIN> line 5.
dpkg-buildpackage: paquet source listing
dpkg-buildpackage: version source 0.2beta
dpkg-buildpackage: erreur: impossible de déterminer source changé en
simon@simon-laptop:~$

est-ce que j'utilise cet utilitaire correctement? c'est a dire remplir les cases du premier et dernier onglet et choisir les fichiers à intégré au paquet avec leur emplacement une fois installé.
le problème ne viendrait il pas de ma console trop "francisée"?

voici le script python équivalent qui lui fonctionne:

from py2deb import Py2deb
version="0.2alpha"

p=Py2deb("listing")
p.author="Simon Claessens"
p.mail="gagalago@gmail.com"
p.description="""Programme permettant la maintenace de base de donnees scout."""
p.depends="python-gtk2, python-glade2, python"
p.license="gpl"
p.section="utils"
p.arch="all"

p["/usr/share/listing"]=["bdd.csv","listing.glade"]
p["/usr/bin"]=["listing.py|listing"]

p.generate(version,rpm=False,src=False)

pour un si petit programme je sais qu'il n'est pas nécessaire d'utiliser l'interface graphique. mais je me suis dit qu'un petit retour ne ferait pas de tort. je suis à l'écoute de manip pour expliquer et résoudre cet inconvénient.

Merci encore Manatlan pour ce petit utilitaire.

pour les licences ne faut-il pas écrire nom et prénom? j'avais souvenir d'avoir lu ca sur le site du zerohttp://www.siteduzero.com/tutoriel-3-50 … oriel.html

voila un lien plutôt intéressant de notre chere doc http://doc.ubuntu-fr.org/projets/ecole/ … rticuliers(regarder aussi les prérequis)
j'avoue que j'ai pas tout compris mais ca avait l'air plutot bien détaillé. et comme au début de ce post vous cherchiez comment faire (oui je sais ca date) je me suis dit que ca pouvait etre utile d'avoir un tuto en fr sur les paquets deb.

Dernière modification par sigo (Le 30/12/2008, à 16:41)


Pour réussir, il ne suffit pas de prévoir. Il faut aussi savoir improviser. Extrait de « Fondation » de Isaac Asimov

Dell XPS1530

Hors ligne

#112 Le 03/08/2009, à 09:36

Sorbus

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

@sigo

Je réponds très tardivement à ton message du 30/12/2008... au cas où tu sois encore à l'écoute. J'ai eu le même message d'erreur que toi en utilisant py2deb aujourd'hui. Je n'avais eu aucun problème en juillet pour faire la même chose.

J'ai remarqué ces lignes du message d'erreur :

parsechangelog/debian: avertissement:     debian/changelog(l5): ligne de fin mal formée
LINE:  -- simon claessens <gagalago@gmail.com>  mar, 30 déc 2008 13:28:44 +0000

chez moi, c'était ça :

parsechangelog/debian: avertissement:     debian/changelog(l5): ligne de fin mal formée
LINE:  -- Sorbus <monadresse@truc.fr>  lun, 03 aoû 2009 08:34:46 +0000

Ces lignes sont "mal formées" car elles contiennent des accents : "déc" pour décembre pour toi... "aoû" pour août pour moi.

Comme tu l'avais deviné, ce sont nos systèmes trop francisés qui bloquent la création des paquets par py2deb certains mois, puisque le script doit aller chercher l'abréviation du mois indiqué par le système (francisé chez nous) pour créer le fichier changelog (et notamment sa dernière ligne). Sur un système en anglais, pas d'accent dans les dates, donc pas de problème.

Pour le vérifier, j'ai modifié la date de mon système dans le bios pour passer au 31 juillet...
Après avoir redémarré, j'ai créé mes paquets sans problème avec py2deb. (et pour ne pas oublier et ne pas avoir de problème, je suis vite revenu au 3 août par le bios).

Donc, avec la version actuelle de py2deb, sur un système francisé, on peut créer des paquets en janvier, mars, avril, mai, juin, juillet, septembre, octobre et novembre...
... et ça doit bloquer en février, août et décembre...

J'en profite pour adresser moi aussi un grand merci à Manatlan pour son utilitaire que j'ai découvert il y a un mois.

Hors ligne

#113 Le 11/08/2009, à 12:37

sigo

Re : [Python & .DEB] Créer un paquet DEB d'un programme en Python

merci de cette explication.


Pour réussir, il ne suffit pas de prévoir. Il faut aussi savoir improviser. Extrait de « Fondation » de Isaac Asimov

Dell XPS1530

Hors ligne