#26 Le 14/05/2011, à 22:02
- darkevolution
Re : Ajouter mon projet à un dépôt
Ok ok, bon ce soir j'ai pas eu le temps, mais demain matin je regarde ça
Si ça marche avec le ./config c'est ok (attention, c'est la Makefile tout court qu'il lance le make, pas le .am)
Au pire un ./config vide fera l'affaire pour commencer, si tu donnes les Makefile (tout court) directement, ce qui n'est pas la voie normal, mais pour commencer, si ça fonctionne comme ça ce sera déjà pas mal
Schedio: Logiciel de gestion modulable de scripts (dont Gestion/Lancement/Restriction planifiée de logiciels).
http://forum.ubuntu-fr.org/viewtopic.php?id=383356
Apportez vos idées à la version 3 !
Hors ligne
#27 Le 15/05/2011, à 01:28
- skit
Re : Ajouter mon projet à un dépôt
pbuilder ne construit pas ce qu'il faut en ne lançant pas le Makefile.am. Le .deb, ouvert comme archive, a une archive data.tar.gz qui ne reprend que changelog et copyright dans /./usr/share/doc/polythello qui, lui, est bien copié.
Hors ligne
#28 Le 15/05/2011, à 11:07
- darkevolution
Re : Ajouter mon projet à un dépôt
Tu lis pas ce que j'écris ?
Juste au dessus j'ai écrit que ce qui est lancé par make n'est pas le makefile.am, mais le Makefile tout court ! ^^
Pas du tout pareil ! Le makefile est obtenu à partir du makefile.am en faisant les autotool (automake ici) et le ./configure ! ^^
Schedio: Logiciel de gestion modulable de scripts (dont Gestion/Lancement/Restriction planifiée de logiciels).
http://forum.ubuntu-fr.org/viewtopic.php?id=383356
Apportez vos idées à la version 3 !
Hors ligne
#29 Le 15/05/2011, à 12:23
- skit
Re : Ajouter mon projet à un dépôt
Je l'ai lu mais je pensais avoir mal compris.
Si je lance le ./configure et les autotools, je ne risque pas qu'il ne sache compiler que pour mes configurations?
Hors ligne
#30 Le 15/05/2011, à 12:46
- darkevolution
Re : Ajouter mon projet à un dépôt
Il ne faut pas envoyer avec le configure de fait, mais les autotools c'est obligatoire, c'est ce qui fait le configure et les makefile.in, utilisés pour faire les makefile.
Bon, si tu veux avoir ton dépôt, on peut faire la méthode à l'ancienne si on arrive pas à faire compiler tes sources (ce qui est quand même bien bizarre, mais Qt est plus compliqué pour ça que gtk)
Tu compiles toi même tes sources (donc ton dépôt ne fonctionnera que pour ta propre architecture 32/64 bits)
Tu mets tes binaires direct dans datas, un seul makefile, celui qui installe, et il fait une simple copie de ce qui est data dans debian. (avec le nom polythello).
Tout en étant dans le dossier principal (au dessus de debian donc), tu lance dh_make -f ../<paquet-version>.tar.gz (il faut donc avant cette commande, archiver le dossier de travail en tar.gz et le placer à côté du dossier)
Puis, lance "debuild -S -sa".
Devraient alors se créer: orig.tar.gz, .dsc, source.changes etc...
Si tu veux tu peux essayer avec pbuilder, mais attention, il met tout par terre, donc pour l'envoyer sur launchpad, faudra supprimer les .dsc, source.changes etc.. et recommencer.
Pour envoyer sur launchpad: sudo dput ppa:<nomduppa> <fichier source.changes>
Schedio: Logiciel de gestion modulable de scripts (dont Gestion/Lancement/Restriction planifiée de logiciels).
http://forum.ubuntu-fr.org/viewtopic.php?id=383356
Apportez vos idées à la version 3 !
Hors ligne
#31 Le 15/05/2011, à 12:55
- darkevolution
Re : Ajouter mon projet à un dépôt
Je viens de faire une avancée pour la compilation... la principale différence, c'est que c'est du C++ ! ^^
Faut remplacer AM_CFLAGS par AM_CXXFLAGS ^^
Manque des include dans ton code
vais essayer de corriger ça
[Edit] Il en manquait qu'un, le makefile de qmake fonctionne maintenant, le mien a encore un bug, au pire on laissera celui de qmake
[Edit 2] Ah bah non, visiblement, on peut pas garder celui de qmake ^^
[Edit 3] On y est presque... reste que quelques problème de déclaration multiples
[Edit 4] J'avais mis 2 fois le même fichier source dans le makefile LOL
Dernière modification par darkevolution (Le 15/05/2011, à 13:38)
Schedio: Logiciel de gestion modulable de scripts (dont Gestion/Lancement/Restriction planifiée de logiciels).
http://forum.ubuntu-fr.org/viewtopic.php?id=383356
Apportez vos idées à la version 3 !
Hors ligne
#32 Le 15/05/2011, à 13:57
- darkevolution
Re : Ajouter mon projet à un dépôt
Bon, voila !
J'ai uploadé là: http://fdelayen.legtux.org/polythello-0.1.4.tar.gz
Ce qu'il reste à faire:
-Mettre ça dans un dossier
- Décompresser (sans supprimer le tar.gz après)
- En terminal se placer dans le décompressé
- Exécuter : dh_make -f ../polythello-0.1.4.tar.gz
- Puis: debuild -S -sa
Ensuite pareil, tu sauvegarde bien ça, et tu test avec pbuilder, qui te dira si y'a des problèmes de dépendances
Pour les résoudre, c'est le debian/control
(Je vais tester pour vérifier, je post après)
Schedio: Logiciel de gestion modulable de scripts (dont Gestion/Lancement/Restriction planifiée de logiciels).
http://forum.ubuntu-fr.org/viewtopic.php?id=383356
Apportez vos idées à la version 3 !
Hors ligne
#33 Le 15/05/2011, à 14:06
- darkevolution
Re : Ajouter mon projet à un dépôt
Je confirme, ça fonctionne, j'ai le paquet amd64 de buildé chez moi, et il a tout ce qu'il faut dedans
Pas besoin de tester avec pbuilder, une fois ça fait tu peux direct envoyer sur launchpad
Schedio: Logiciel de gestion modulable de scripts (dont Gestion/Lancement/Restriction planifiée de logiciels).
http://forum.ubuntu-fr.org/viewtopic.php?id=383356
Apportez vos idées à la version 3 !
Hors ligne
#34 Le 15/05/2011, à 14:30
- skit
Re : Ajouter mon projet à un dépôt
Merci énormément
A vrai dire, il n'y a qu'un problème à déceler; si la commande "polythello" lance bien le programme. J'ai du me tromper pour l'installation dans applications. Les fichiers sont bien installés aux bons endroits mais Applications>Jeux ne l'affichent pas.
Pour la peine, je suis entrain d'écrire un tutorial (après tout, ce n'est pas simple et mal documenté). Sais-tu me dire, dans le cas où j'aurai besoin d'autres fichiers en plus de l'exécutable, comment je dois procéder pour, par exemple, le dossier /usr/bin qui ne contient que l'exécutable? Je dois les mettre dans un dossier précis comme share où il ira directement les rechercher ou bien je dois recoder pour qu'il aille dedans rechercher ce dont il a besoin pour son exécution?
Merci beaucoup, en tout cas. Je n'y serai jamais parvenu sans toi ^_^
Hors ligne
#35 Le 15/05/2011, à 19:39
- darkevolution
Re : Ajouter mon projet à un dépôt
Pas de problème, si je me suis cassé les dents dessus pendant très longtemps c'est pas pour laisser les autre faire pareil ^^
Pour les fichiers, s'ils ne nécessitent pas de compilation, tu peux les mettre dans ton dossier "data" directement (d'ailleurs, j'ai modifié un peu ton script Makefile.am pour l'installation, il y avait une petite erreur )
Tout ce qui concerne les données "statiques" comme images, etc..., peu importe l'endroit où tu dois les mettre, tu crées juste les dossier qu'il faut dans le data. Pas besoin de toucher à un quelconque makefile (c'est l'intérêt du "cp -p -r" dans le premier makefile, il copie de façon récursive, ça évide de s'embêter trop, méthode de flemmard )
Pour les exécutable, ils faut qu'ils soient compilés et donc à chaque fois modifier/ajouter les makefiles.
Pour le .desktop tu peux regarder dans mon paquet, il y en a un aussi, même s'il va placer dans accessoires
Bon courage pour la suite, et si t'as encore des soucis avec ça, hésite pas
Schedio: Logiciel de gestion modulable de scripts (dont Gestion/Lancement/Restriction planifiée de logiciels).
http://forum.ubuntu-fr.org/viewtopic.php?id=383356
Apportez vos idées à la version 3 !
Hors ligne
#36 Le 16/05/2011, à 03:39
- skit
Re : Ajouter mon projet à un dépôt
Voila, tout est fonctionnel
deb http://ppa.launchpad.net/younessgog/polythello/ubuntu lucid main
deb-src http://ppa.launchpad.net/younessgog/polythello/ubuntu lucid main
Et télécharger le programme "polythello"
J'ai fini le tutorial; je l'ai fait sur le site du zéro et je suis en bêta-test avant de lancer la validation.
A présent, je peux créer une page sur le wiki d'ubuntu-fr au sujet de ce programme?
Ca me fera pas mal de choses intéressantes à dire lors de la présentation devant le jury cet après-midi
Hors ligne
#37 Le 16/05/2011, à 09:58
- darkevolution
Re : Ajouter mon projet à un dépôt
Cool
Je testerai ton programme au passage ^^
Pour la page sur le wiki, tu peux oui, y'a des aides pour dire comment faire et des exemples
(Un lien vers le site du zero ? )
Schedio: Logiciel de gestion modulable de scripts (dont Gestion/Lancement/Restriction planifiée de logiciels).
http://forum.ubuntu-fr.org/viewtopic.php?id=383356
Apportez vos idées à la version 3 !
Hors ligne
#38 Le 16/05/2011, à 11:17
- skit
Re : Ajouter mon projet à un dépôt
Voici: http://www.siteduzero.com/tutoriel-3-47 … art_474253
Il faut un compte sur le site du zéro pour regarder un tutorial en bêta-test, d'après ce qu'ils disent. Je t'ai évidemment remercié dans la conclusion
Pour la page wiki, je vais donc m'en charger
A la base, mon projet était un othello en 2D ou 3D si possible avec glut, openGL et C++. Si avec une telle arme de guerre, je ne décroche pas ma première bonne côte de l'année, je n'y comprends rien (oui, je suis une feignasse face à mes cours mais j'en fais toujours de trop en projets)
Hors ligne
#39 Le 16/05/2011, à 12:09
- darkevolution
Re : Ajouter mon projet à un dépôt
J'ai lu ton tuto
Il est pas mal du tout
Bon, il y a bien quelques approximation, et quelques erreurs qu'il faudrait modifier, pour ne pas induire les autres en erreur aussi. Puis, peut être détailler un peu plus certaines partie, mais disons que l'architecture du tutoriel et une bonne partie de son contenu sont sympa ^^
Tu sais pas si d'autres personnes que l'auteur peuvent le modifier ? J'aurais bien complété... dans le pire des cas je pourrais te donner un peu plus d'indications, ce week end c'était un peu dans l'urgence ^^
Comme ça on pourrait faire quelque chose de simple et de suffisamment complet pour qu'il soit facilement réutilisable sur d'autres projets
Schedio: Logiciel de gestion modulable de scripts (dont Gestion/Lancement/Restriction planifiée de logiciels).
http://forum.ubuntu-fr.org/viewtopic.php?id=383356
Apportez vos idées à la version 3 !
Hors ligne
#40 Le 17/05/2011, à 05:09
- skit
Re : Ajouter mon projet à un dépôt
Merci
Je ne pense pas qu'on puisse faire des tutos contributifs mais tu peux, sans problème, me donner des suggestions que je ne manquerai pas de rajouter et/ou modifier.
Je ne maîtrise pas encore la matière correctement mais au moins, à présent, il existe un tutorial step-by-step sur le sujet.
On pourra bien sûr y regarder ce w-e si tu le souhaites
Hors ligne
#41 Le 17/05/2011, à 11:27
- darkevolution
Re : Ajouter mon projet à un dépôt
Ça marche
Je vais le relire et préparer deux trois notes histoire de rien oublier.
Schedio: Logiciel de gestion modulable de scripts (dont Gestion/Lancement/Restriction planifiée de logiciels).
http://forum.ubuntu-fr.org/viewtopic.php?id=383356
Apportez vos idées à la version 3 !
Hors ligne
#42 Le 23/05/2011, à 01:18
- skit
Re : Ajouter mon projet à un dépôt
J'attends toujours tes quelques notes avant de proposer officiellement le tuto
Hors ligne
#43 Le 23/05/2011, à 19:31
- darkevolution
Re : Ajouter mon projet à un dépôt
Oui, désolé, ce week end était chargé, je vois ça d'ici demain soir
Schedio: Logiciel de gestion modulable de scripts (dont Gestion/Lancement/Restriction planifiée de logiciels).
http://forum.ubuntu-fr.org/viewtopic.php?id=383356
Apportez vos idées à la version 3 !
Hors ligne
#44 Le 25/05/2011, à 19:45
- darkevolution
Re : Ajouter mon projet à un dépôt
Bonsoir,
C'est parti... petite review du tutoriel
On regarder partie par partie
I) OK, tout est bon il me semble, juste ajouter que pour déchiffrer le mail, des logiciels comme thunderbird détectent qu'il est chiffré et demandent directement la clé
II) Changer le titre en "Debian dans Ubuntu" ?
[Edit]D'ailleurs, faudrait dire au gens que l'objectif de tout ça est de créer un paquet source [/Edit]
Petite approximation, ou erreur de voc
"Evidemment, Ubuntu est une distribution de Debian comme Debian est une distribution de Linux." se dirait plutôt "Evidemment, Ubuntu est une dérivée de Debian comme Debian est une distribution de Linux."
Plus généralement, ça fonctionne pour toutes les dérivées de Debian et d'ubuntu.
Pour la création de dossiers, à cette étape, le dossier debian n'est pas nécessaire
Et chaque binaire à compiler aura son dossier avec ses sources dedans, tout ce qui est source non compilable, genre fichier python, va aussi dans datas
"Rien de bien magique à tout cela, le secret se cache dans le dossier bin." Il en est de même pour /bin /usr/bin /usr/local/bin /sbin /usr/sbin et /usr/local/sbin par défaut et plus généralement, c'est dans la variable d’environnement PATH (voir le résultat de la commande "printenv | grep PATH")
Concernant les nom de catégories pour le .desktop, on peut trouver tout dans les standarts de la freedesktop (http://standards.freedesktop.org/menu-s … t/apa.html)
III) Murmurer à l'oreille des debs.
En fait, c'est pas fait dans le bon sens
Ça, c'est la dernière chose à faire !
D'abord, Makefile !
Donc, plutôt faire le IV avant le III.
Plutôt "Compilation automatique" qu’installation non ?
IV)
Là, faut chambouler tout ça !
Il y a quelques erreurs.
La vraie façon de faire tout ça:
Après avoir bien mis ces sources dans le II), on peut essayer de s'adapter aux outils de bases, de puissance redoutable, de GNU/Linux : Les autotools.
Le but est de pouvoir compiler nos sources en faisant "./configure" "make" "make install" : C'est exactement ce qui est fait par launchpad (indirectement, via pbuilder)
On ne crée donc quasi aucun fichier à la main !
De façon organisée, l'image de wikipédia résume très bien la situation, elle m'a aidé à trouver. (http://fr.wikipedia.org/wiki/Automake)
Première étape:
En se plaçant dans le dossier de notre source :
"autoscan"
Il va nous créer un configure.scan à adapter et à renommer en configure.ac. Ce fichier s'adapte et cherche toutes les source C et C++ (Je ne sais pas si d'autres langages sont gérés, le Vala par exemple ne l'est pas).
En principe, il faut juste faire attention qu'en haut il y a bien:
AC_PREREQ([2.67])
AC_INIT([nomdupaquet], [version], [adressmail])
AM_INIT_AUTOMAKE([readme-alpha])
AC_CONFIG_SRCDIR([config.h.in])
AC_CONFIG_HEADERS([config.h])
Et que le AC_CONFIG_FILES contient bien tous les dossiers sources, avec /Makefile au bout
Exemple :
AC_CONFIG_FILES([Makefile
src/Default_scheduler/Makefile
src/calendar_launch/Makefile
src/childvisu/Makefile
src/extinct_su/Makefile
src/extinction/Makefile
src/program_launch/Makefile
src/reminder-pre/Makefile
src/reminder/Makefile
src/restriction_config/Makefile
src/restriction_su/Makefile
src/schedio/Makefile
src/schedio_conflicts/Makefile
src/schedio_launch_period/Makefile
src/schedio_restriction/Makefile
src/window_maker/Makefile
src/window_maker_ncy/Makefile])
Quand y'en a plein
Ensuite (quand le configure.ac est prêt), on lance :
"aclocal"
"autoheader"
(pas source de problème généralement)
Avant d'aller plus loin que ça, il faut créer ses makefiles:
Un fichier Makefile.am par dossier source, plus un fichier Makefile que tu as bien expliqué il me semble, pour l'installation, dans le dossier parent.
Donc "Pour ceux que ça étonnera, je ne passe en effet pas par un Makefile.am pour chaque binaire mais un seul Makefile.am pour tout le projet." --> C'est faux
Revoir ton install.sh, il n'existe plus comme tu l'avais fait dans ton projet, regarde ce que tu as envoyé sur launchpad, je l'avais modifié
Exemple:
bin_PROGRAMS = schedio
schedio_SOURCES = about.c add.c file.c main.c schedio.c visual.c about.h add.h file.h plugin.c schedio.h visual.h plugin.h
AM_CFLAGS = `pkg-config gtk+-2.0 --cflags` // Liste des dossiers ou trouver les headers dont on a besoin, pour gtk c'est facile l'application pkg-config les connait. Sinon /usr/include /usr/share/gtk/include/ etc... etc... autant que nécéssaire pour compiler
LIBS = -lappindicator -lpthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lm -lcairo -lpng12 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0
LDLIBS = -lappindicator -lpthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lm -lcairo -lpng12 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0
LIBS et LDLIBS contiennent la même chose : Toutes les librairies auquelles on se lie.
Pas besoin d'utilisation de qmake pour qt ! Regarde le makefile.am que j'ai fait dans tes sources
Un fois que c'est fait (Tous les makefiles) :
"automake --gnu --copy --add-missing"
Commande qui plante si les makefiles sont trop mauvais, et encore c'est pas dit, et pourtant c'est elle qui peut faire rater la compilation du paquet C'est l'endroit sensible ! Si ça fonctionne pas, revoir les makefile !
"autoconf"
Ne doit pas rater si le configure.ac est pas trop foireux
FIN !
Le développeur ne fait rien de plus ! (création du dossier debian à des fins de TEST)
"III)" Le packaging en lui même
Une fois que vous savez que votre applications se compile et se place où il faut via les trois commandes magiques, on passe au deb.
Là aussi, on crée rien à la main, on fait un .tar.gz à côté de son dossier et on lance dans le dossier :
"dh_make -f ../nompaquet-version.tar.gz"
Cela créer le dossier debian pré rempli. Le reste de tes explications semblent correctes, à savoir :
Quand c'est prêt (en gros, le fichier control est bon, et le ChangeLog l'est aussi, bonne version etc...)
debuild -S -sa (lintian pourquoi pas, même si pas obligatoire)
Le paquet est prêt, pour tester il faut sauvegarder le paquet, je crois que pbuilder a tendance à modifier les .dsc etc... ce qui fait merdouiller launchpad ! Bref, prudence et sauvegarde !
V) Empaquetage --> Vu ci dessus. Les premières commandes que tu donnes ne font pas un paquet, elles préparent à la compilation
Le paquet, plutôt que faire dpkg, peut être installé plus facilement via la logithèque ou autre interface (même si ça fonctionne c'est vrai).
dput blablabla pour envoyer c'est ok.
Simplement les machines virtuelles de launchpad compilent vite, seulement il faut attendre qu'elles soient dispo, ça peut prendre une demi heure si y'a beaucoup d'occupation, généralement, ça va assez vite, et en une dizaine de minute le paquet est publié et prêt à être installé.
Tu peux poser des questions sur ce qui n'est pas clair pour toi, c'est compliqué et j'explique sans doute pas trop bien, désolé
Dernière modification par darkevolution (Le 25/05/2011, à 20:35)
Schedio: Logiciel de gestion modulable de scripts (dont Gestion/Lancement/Restriction planifiée de logiciels).
http://forum.ubuntu-fr.org/viewtopic.php?id=383356
Apportez vos idées à la version 3 !
Hors ligne