/srv/irclogs.ubuntu.com/2011/08/19/#ubuntu-tn-classroom.txt

=== MosquitoOo is now known as MaWaLe
=== MosquitoOo is now known as MaWaLe
ekkobonsoir à tous20:14
sarhanbonsoir ekko 20:17
sarhanpout les classroom il faudra utiliser le canal #ubuntu-tn-classroom-chat pour discuter20:17
Miro19yeddkom20:36
Malekbsr20:56
k3nz0Malek cc20:58
Malekbsr20:59
Malekmerci Neo31 pour votre aide21:00
=== ChanServ changed the topic of #ubuntu-tn-classroom to: Salon classroom IRC de la LoCo Team approuvée ubuntu-tn : https://wiki.ubuntu.com/TunisianTeam | | Historique du Canal : http://logs.ubuntu-eu.org/freenode/ | |*** Prochain cours "Initiation au Packaging le 19/08/2011 à 23h00 (GMT+1) ***|| SEULEMENT L'ANIMATEUR DU CLASSROOM A DROIT DE PARLER SUR CE CHANNEL, merci de rejoindre #ubuntu-tn-classrrom-chat et de télécharger la présen
=== ChanServ changed the topic of #ubuntu-tn-classroom to: Salon classroom IRC de la LoCo Team approuvée ubuntu-tn : https://wiki.ubuntu.com/TunisianTeam | | Historique du Canal : http://logs.ubuntu-eu.org/freenode/ | |*** "Initiation au paquetage à 23h00 (GMT+1) ***|| SEUL L'ANIMATEUR DU CLASSROOM A DROIT DE PARLER SUR CE CHANNEL, merci de rejoindre #ubuntu-tn-classrrom-chat et de télécharger la présentation http://bit.ly/o8OX9Q
=== ChanServ changed the topic of #ubuntu-tn-classroom to: Salon classroom IRC de la LoCo Team approuvée ubuntu-tn : https://wiki.ubuntu.com/TunisianTeam | | Historique du Canal : http://logs.ubuntu-eu.org/freenode/ | |*** "Initiation au paquetage à 23h00 (GMT+1) ***|| SEUL L'ANIMATEUR DU CLASSROOM A DROIT DE PARLER SUR CE CHANNEL, merci de rejoindre #ubuntu-tn-classroom-chat et de télécharger la présentation http://bit.ly/o8OX9Q
=== ChanServ changed the topic of #ubuntu-tn-classroom to: SEUL L'ANIMATEUR DU CLASSROOM A DROIT DE PARLER SUR CE CHANNEL, merci de rejoindre #ubuntu-tn-classroom-chat et de télécharger la présentation http://bit.ly/o8OX9Q || Salon classroom IRC de la LoCo Team approuvée ubuntu-tn : https://wiki.ubuntu.com/TunisianTeam | | Historique du Canal : http://logs.ubuntu-eu.org/freenode/ | |*** "Initiation au paquetage à 23h00 (GMT+1) ***||
Neo31test21:36
adntest21:37
adnbonsoir à toutes22:02
adnbonsoir à tous22:02
adnmerci d'avoir répondu présents à l'invitation de la Team Ubuntu Tunisie22:02
adnUbuntu Team qui a eu la gentillesse de me proposer d'animer un classroom sur le packaging22:03
adnalors que je suis développeur Debian et que je n'utilise pas Ubuntu22:03
adnmais après tout, Debian et Ubuntu sont de la même famille ;-)22:03
adnet le système de packaging pour les deux fonctionne exactement de la même manière22:03
adnc'est d'ailleurs ce qui fait la force de ces deux distributions !22:04
nizaruson te remercie aussi d'avoir accepter d'animer ce classroom malgré que tu es en vacances 22:04
adnle plaisir est pour moi22:04
adnet j'espère que la présentation sera utile et intéressera les participants, qu'ils soient Tunisiens ou non22:04
adnet que cela leur donnera l'envie de contribuer à Debian et Ubuntu22:04
=== asma is now known as Guest70845
adnen corrigeant des bugs, en ajoutant des nouveaux packages !22:05
adnen somme, en participant à ces formidables projets de logiciels libres22:05
adnles infos utiles relatives à cette présentation sont dans le topic22:05
adnvous pouvez poser toutes les questions que vous voulez sur #ubuntu-tn-classroom-chat22:05
adnarrêtez-moi si je vais trop vite22:05
adnou si quelque chose n'est pas clair22:06
adnpour vous aider à suivre, la présentation que préparée se trouve sur http://bit.ly/o8OX9Q22:06
adnpour faire disparaître les messages de join/part/quit, http://i.clintecker.com/disable-irc-msgs.html22:07
adnou encore http://wiki.xkcd.com/irc/Hide_join_part_messages (pour les utilisateurs de pidgin)22:08
nizarusadn, concentre toi sur le classroom on s'occupe du reste :)22:08
adnok22:09
adnfaites-moi signe sur l'autre chan que vous avez la présentation22:09
adnet on passe à la :22:09
adn#### DIAPO n° 2 ####22:09
adnpour pouvoir tirer le meilleur de cette présentation, il vaut mieux avoir une distribution Debian, Ubuntu ou dérivée22:11
adnqui fonctionne avec des packages .deb :-)22:11
adnsinon, c'est pas grave, mais vous devrez vous contenter de la théorie22:11
adnpour ceux qui ont une distribution Debian, je vous recommande de suivre pas à pas les commandes que je vous proposerai22:11
adnce sont des instructions de ligne de commande ("shell") basique22:12
adns22:12
adna priori, on ne va pas utiliser beaucoup plus que les commandes :22:12
adnls (lister le contenu d'un dossier, comme "dir" dans MS-DOS)22:13
adncd (aller dans un dossier)22:13
adnet quelques programmes spécifiques faits pour créer un package22:13
adntrès rapidement, une distribution Debian, c'est une série de logiciels libres qui ont été packagés d'une manière standardisée pour que l'utilisateur l'utilise le plus facilement possible22:14
adnsous windows, quand on veut un programme, il faut aller sur google, chercher le programme, aller sur le site de son créateur, télécharger, installer22:14
adnparfois il faut installer un autre programme avant pour que ça fonctionne (par exemple Java, .net, etc.)22:15
adnune distribution offre une commande qui installe le programme qu'on veut en s'occupant du reste22:15
adnpar exemple, je veux installer xchat22:15
adnsous Debian, on utilise la commande apt-get (APT = Advanced Packaging Tool) et on dit :22:16
adnapt-get install xchat22:16
adnil se débrouille pour trouver la dernière version xchat disponible, la télécharger, l'installer, la configurer22:16
nizarussous ubuntu il faut la précéder avec sudo 22:16
=== Guest55777 is now known as killman88
adnet comme par miracle, l'icône apparaît22:16
adnsous Ubuntu, en effet, soit on utilise directement "sudo apt-get install xchat", soit on utilise un programme comme Synaptic qui fait tout en arrière-plan de manière transparente22:17
adn#### DES QUESTIONS ?22:17
nizarus[QUESTION]Lequel des deux est meilleur apt ou aptitude et pourquoi?22:18
adnen fait, les deux systèmes ont le même rôle, la même utilité : gérer l'installation, la configuration, la désinstallation des packages22:18
adnselon les époques, l'un ou l'autre était à la mode, en fonction de plusieurs critères22:18
adn - la facilité d'utilisation (aptitude proposait une forme d'interface graphique)22:19
adnpropose, je veux dire, pas proposait (aptitude existe toujours)22:19
adn - la gestion des dépendances des programmes (aptitude permet d'installer des programmes complémentaires même si pas indispensables ; il permet égalemnt de supprimer facilement les packages inutiles)22:20
adn - la rapidité d'exécution (apt-get était plus rapide)22:20
adn - la robustesse des mises à jour et la résolution des conflits entre packages installés22:21
adnpour lenny, aptitude était recommandé22:21
adn(Debian Lenny, je veux dire)22:21
adndepuis Debian Squeeze (la version sortie en février 2011), on recommence à recommander apt-get22:21
adnen fait, c'est un débat vieux comme le monde, un peu comme ViM vs Emacs22:22
adnune question de mode22:22
adnune question d'habitude22:22
adnune question de communauté qui développe de nouvelles fonctionnalités22:22
adnmais les deux sont utilisables et utilisés22:23
adnfaites votre choix en fonction de ce que vous préférez22:23
adnune autre question ?22:23
nizarusno22:23
adnok22:24
adn#### DIAPO n° 3 ####22:24
adnje vais aller vite sur celle-là :-)22:24
adnen gros, quand j'étais petit (16 ou 17 ans), l'été, y avait pas le climatiseur à la maison à La Mornaguia22:24
adnje m'ennuyais en juillet et août, et j'ai voulu tester d'installer Linux22:25
adnpuis j'ai eu peur de perdre des données, donc j'ai laissé tomber22:25
adn(c'était en 1999, je pense)22:25
adnmais quand je suis entré en école d'ingénieur, en 2002, je me suis impliqué dans l'association qui gérait le réseau de la résidence des élèves22:25
adndans cette association, tous les serveurs étaient sous Linux et plus précisément sous Debian22:26
adnça a été pour moi l'occasion de découvrir Linux, de l'installer, de l'utiliser22:26
adnpendant l'été 2004, en stage, je m'ennuyais un peu (normal, en stage...)22:26
adnalors j'ai commencé à me renseigner sur la manière dont fonctionne un package Debian22:27
adnje me suis arrêté très vite - ça m'avait l'air compliqué !22:27
adnet je me suis mis à la traduction ;-)22:27
* Neo31 rappel au participants qu'ils peuvent rejoindre le channel #ubuntu-tn-classroom-chat pour poser leurs questions22:27
adnde fil en aiguille, pour traduire, on a besoin de comprendre de plus en plus de trucs techniqués22:28
adndonc quelques mois plus tard, j'ai packagé p7zip pour Debian22:28
adnpour le reste, c'est sur la diapo, on en discutera après, si certains veulent :-)22:28
adnà part "c'est bon, il a fini de raconter sa vie ?", est-ce qu'il y a des questions ? ;-)22:29
nizarusno22:29
adn#### DIAPO n° 4 ####22:30
adnsupposons qu'on ait trouvé un programme sympa22:30
adnavant de le packager, y a plusieurs choses à se demander22:30
adn1) est-ce qu'il est libre ? s'il ne l'est pas, y a probablement un logiciel libre qui fait la même voire mieux22:31
adn=> trouver ce logiciel libre et l'utiliser à la place !22:31
adn2) est-ce qu'il y a une communauté d'utilisateurs et de développeurs derrière ce programme ? si ce n'est pas le cas, essayez de comprendre pourquoi (peut-être que le logiciel est mort) et éventuellement s'impliquer pour réveiller le projet22:32
adn3) est-ce qu'un package existe déjà ? s'il y a déjà un package, ça ne sert à rien de refaire le travail une deuxième fois !22:33
adn4) est-ce que quelqu'un a déjà prévu de créer le package ? (cf. http://bugs.debian.org/wnpp) si c'est le cas, on peut proposer de donner un coup de main22:33
adnce soir (et après on va accélérer un peu), je vous propose de travailler sur un programme innovant : un genre d'Hello World à la Tunisienne22:34
adnQuestions ?22:34
nizarus[Question]Si le package existe déjà mais il n'est pas à jour, est ce que c'est possible de le mettre à jour ou il faut recommencer le travail à 0?!22:34
adnde deux choses l'une :22:35
adn1) il n'est pas à jour mais il n'a pas de maintainer officiel : dans ce cas-là, n'hésitez pas, lancez-vous ! Essayez de le mettre à jour. S'il est trop vieux, il est parfois nécessaire de reprendre depuis 022:36
adn2) s'il n'est pas à jour, contactez le maintainer officiel et proposez-lui de l'aider22:36
adnpar exemple avec des patches de mise à jour de son package22:36
adnou avec un package mis à jour par vos soins22:37
adnest-ce que la réponse est satisfaisante ?22:37
adnsi oui, question ou diapo suivante22:37
nizarusadn, go22:37
adnok, je me rends compte que j'ai commenté la diapo 5 et non la 422:38
adnpour la 4, c'est clair, tout est dedans22:38
adnon rentre donc dans le vif du sujet22:38
adn#### DIAPO n° 6 ####22:38
adnalors, un package, en fait, ça peut faire référence à plusieurs choses22:39
adnsoit le package binaire (binary package), c'est le fichier .deb22:39
adnsoit le package source (source package), dont on parlera à la diapo suivante22:40
adnle fichier .deb contient plusieurs choses22:40
adn1) les fichiers à installer22:40
adnpour faire fonctionner le programme (fichiers de configuration, images, sons, programmes)22:41
adn2) des informations complémentaires mais néanmoins nécessaires22:41
adnpar exemple la liste des dépendances, c'est-à-dire les packages qu'il faut obligatoirement installer pour que ça fonctionne22:41
adnpar exemple, quand j'installe xchat ou pidgin, je suis obligé d'avoir une interface graphique22:42
adndonc je dois avoir au préalable installé X.org22:42
adnvoire Gnome, KDE, XFCE ou autre...22:43
adnje vous propose de télécharger le fichier suivant :22:43
adnhttp://adn.diwi.org/debian/classroom/package/result/democratie_0.1-1_amd64.deb22:44
adnenregistrez-le quelque part22:44
adnlancez le terminal22:44
nizarus[QUESTION] un paquet existe en version 1.1.1 dans toutes les versions d'ubuntu, et toutes les versions stables de debian. Une version 2 a été packagé sur une version instable debian. Comment en profiter sur ubuntu?22:44
adnet lancez la commande "ar x democratie_0.1-1_amd64.deb"22:44
adn(je répondrai à la question juste après la manip)22:44
adnsi vous faites "ls" ensuite, vous devez voir quelque chose comme ce qui suit :22:45
adn0:45 adn@wahe /tmp/DebPackaging% wget http://adn.diwi.org/debian/classroom/package/result/democratie_0.1-1_amd64.deb22:45
adn--2011-08-20 00:45:17--  http://adn.diwi.org/debian/classroom/package/result/democratie_0.1-1_amd64.deb22:45
adn2011-08-20 00:45:17 (369 MB/s) - «democratie_0.1-1_amd64.deb» sauvegardé [4808/4808]22:45
adn0:45 adn@wahe /tmp/DebPackaging% ar x democratie_0.1-1_amd64.deb 22:45
adn0:45 adn@wahe /tmp/DebPackaging% ls22:46
adncontrol.tar.gz  data.tar.gz  debian-binary  democratie_0.1-1_amd64.deb22:46
adntapez ensuite la commande "tar tvzf data.tar.gz"22:46
adnvous verrez comment c'est organisé22:46
adnl'archive data.tar.gz contient en effet les fichiers à installer, selon l'arborescence de destination prévue22:47
adndrwxr-xr-x root/root         0 2011-08-12 21:54 ./22:47
adndrwxr-xr-x root/root         0 2011-08-12 21:54 ./usr/22:47
adn-rwxr-xr-x root/root      4904 2011-08-12 21:54 ./usr/bin/democratie22:47
adn-rw-r--r-- root/root       161 2011-08-12 21:49 ./usr/share/doc/democratie/changelog.Debian.gz22:47
adnetc.22:47
adnvous pouvez lancer la commande "tar tvzf control.tar.gz"22:48
adnvous verrez qu'il contient des informations sur le package22:48
adn0:48 adn@wahe /tmp/DebPackaging% tar tvzf control.tar.gz22:49
adndrwxr-xr-x root/root         0 2011-08-12 21:54 ./22:49
adn-rw-r--r-- root/root       357 2011-08-12 21:54 ./control22:49
adn-rw-r--r-- root/root       270 2011-08-12 21:54 ./md5sums22:49
adnpar exemple, le fichier control contient les éléments suivants22:49
adnPackage: democratie22:49
adnVersion: 0.1-122:49
adnArchitecture: amd6422:49
adnMaintainer: Mohammed Adnene Trojette <adn+deb@diwi.org>22:49
adn[QUESTION] un paquet existe en version 1.1.1 dans toutes les versions d'ubuntu, et toutes les versions stables de debian. Une version 2 a été packagé sur une version instable debian. Comment en profiter sur ubuntu?22:49
adnen fait, y a deux catégories de packages, sous Ubuntu22:50
adn1) les packages maintenus séparément par les développeurs Ubuntu et par les dév Debian22:51
adn2) les packages simplement synchronisés par Ubuntu avec Debian instable22:51
adnpour la catégorie 2), il faut attendre que la synchronisation soit lancée22:51
adnce qui est systématiquement peu avant les releases Ubuntu22:52
adnpour la catégorie 1), il faut attendre que le dév Ubuntu se bouge les fesses ;-)22:52
adn(pour info, j'ai fait wget depuis la machine où se trouve le fichier, d'où le débit, qui est limité surtout par la vitesse du disque dur)22:52
adnsi la réponse est suffisamment claire, question ou diapo suivante ?22:53
nizarus[QUESTION] Un patch de mise à jour, c'est un script Shell qui intervient sur le fichier ou bien autre chose ?22:53
adnle patch de mise à jour, c'est un fichier texte qu'on passe à la commande "patch"22:53
adnqui se trouve dans le package du même nom22:54
adnc'est le résultat de l'exécution de la commande "diff" entre deux fichiers ou deux répertoires22:54
adnpar exemple, je vais créer deux fichiers : fichier-A et fichier-B22:55
adnfichier-A contient "A" et fichier-B contient "B"22:55
adn0:54 adn@wahe /tmp/DebPackaging% echo A > fichier-A && echo B > fichier-B22:55
adn0:55 adn@wahe /tmp/DebPackaging% diff -u fichier-A fichier-B22:55
adn--- fichier-A   2011-08-20 00:55:23.000000000 +020022:55
adn+++ fichier-B   2011-08-20 00:55:23.000000000 +020022:55
adn@@ -1 +1 @@22:55
adn-A22:55
adn+B22:55
adnle patch, c'est le fichier texte qui contient les 5 dernières lignes22:56
adnqui dit "entre le fichier-A et le fichier-B, à la ligne 1, on enlève A et on rajoute B"22:56
adnon applique ce patch avec la commande /usr/bin/patch22:57
adn0:57 adn@wahe /tmp/DebPackaging% diff -u fichier-A fichier-B > fichier-patch22:57
adnzsh: exit 1     diff -u fichier-A fichier-B > fichier-patch22:57
adn0:57 adn@wahe /tmp/DebPackaging% cat fichier-patch|patch22:58
adnpatching file fichier-A22:58
adnB22:58
adn0:57 adn@wahe /tmp/DebPackaging% cat fichier-A 22:58
adnla suite ?22:58
nizarusadn, quand tu termine la réponse tape "next"22:58
adnok :-)22:58
nizarus[QUESTION] On peut essayer de créer une version x86 du package22:58
adnnext (comme dans l'émission du même nom)22:58
adnen fait, vous verrez à la fin de la présentation22:58
adnceux qui ont une machine x86 auront créé une version x8622:59
adnet ceux qui ont une machine amd64 auront créé une version amd6422:59
adncela dépend de votre architecture22:59
adnnext22:59
nizarus[QUESTION] pourquoi le paquet est en arch amd64 (ou any) au lieu de all?22:59
adnparce qu'il contient des fichiers qui ne peuvent être exécutés que sous une machine amd6423:00
adndans le fichier control du paquet binaire, comme c'est un package amd64, c'est indiqué Architecture: amd6423:00
adnmais dans le package source, on dira Architecture: any23:01
adnet c'est les serveurs de compilation automatique (autobuilders) qui, selon leur architecture, créeront les packages correspondants23:01
adnavec le champ Architecture qui va bien23:01
adnsi mon package n'avait contenu que des fichiers dont le fonctionnement ne dépend pas de l'architecture (un son, une image, un PDF), j'aurais mis Architecture: all23:02
adnet non any23:02
adnnext23:02
nizarus[QUESTION] n'est il pas plus pratique de créer des packages ALL pour éviter la dépendace de l'architecture?23:02
adnen fait, il suffit qu'un seul fichier du package dépende de l'architecture pour justifier un package "Architecture: any"23:02
adnimaginons que mon programme en C, compilé avec un compilateur pour un processeur amd64, se retrouve dans un package "Architecture: all"23:03
adnalors un utilisateur sous x86 va le télécharger23:03
adnet, au moment de lancer la commande, il va y avoir une erreur23:03
adnparce que son processeur x86 ne peut exécuter des programmes compilés pour amd6423:04
adnnext23:04
nizarusno23:04
adnok, diapo suivante alors ?23:04
adn#### DIAPO n° 7 ####23:04
nizarusgo ahead adn (and faster)23:04
adnle package source est constitué de trois fichiers23:05
adn1) le code source du programme original23:05
adn(fichier .orig.tar.bz2 ou orig.tar.gz...)23:05
adn2) l'ensemble des patches à appliquer à ce code source pour en faire un package Debian23:05
adn(fichier .debian.tar.gz ou .diff.gz dans les anciennes versions)23:06
adn3) le fichier de description du package23:06
adn(fichier .dsc)23:06
adnquestions ?23:06
nizarus[QUESTION] Que veut dire le terme description signée?23:06
adnpour authentifier un package, on demande aux développeurs de signer le fichier description avec leur clé GPG23:07
adnce fichier .dsc contient en particulier les identifiants des fichiers qui constituent le package source23:07
adnà savoir la somme md5 ou SHA du fichier .orig.tar.bz2 et du fichier .debian.tar.gz23:08
adnsi on regarde dans le fichier dispo sur http://adn.diwi.org/debian/classroom/package/result/democratie_0.1-1.dsc23:08
adn0:57 adn@wahe /tmp/DebPackaging% wget http://adn.diwi.org/debian/classroom/package/result/democratie_0.1-1.dsc      23:08
adn--2011-08-20 01:08:12--  http://adn.diwi.org/debian/classroom/package/result/democratie_0.1-1.dsc23:08
adn2011-08-20 01:08:12 (202 MB/s) - «democratie_0.1-1.dsc» sauvegardé [810/810]23:08
adn1:08 adn@wahe /tmp/DebPackaging% cat *dsc23:08
adnSource: democratie23:08
adnBinary: democratie23:08
adnArchitecture: any23:08
adnVersion: 0.1-123:08
adnMaintainer: Mohammed Adnene Trojette <adn+deb@diwi.org>23:08
adnChecksums-Sha256:  d8eb834371c367f2bcdb5282359f0d8b2fb1417011b79c4ad9229d9e8e642abf 58239 democratie_0.1.orig.tar.bz2 b166468099ceec9891ea08c6c72b0265676003c33596107842be0b2195f4799d 2522 democratie_0.1-1.debian.tar.gz23:09
adnnext23:09
nizarusno23:09
adn#### DIAPO n° 8 ####23:09
adnje vous propose d'installer les packages indiqués23:10
adnsudo apt-get install dpkg-dev dh-make devscripts build-essentials autotools-dev23:10
adnquestions ?23:10
nizarusnext23:10
adn#### DIAPO n° 9 ####23:10
adncréez un dossier de travail (par exemple dans votre home)23:11
adnallez dedans23:11
Neo31correction :23:11
Neo31sudo apt-get install dpkg-dev dh-make devscripts build-essential autotools-dev23:11
adnoui, merci !23:11
Neo31build-essential << sans S a la fin23:11
adnet téléchargez le code source original de notre super programme http://adn.diwi.org/debian/classroom/package/upstream/democratie-0.1.tar.bz223:11
adnque l'on souhaite packager23:12
Neo31un ecran avec le titre "Postfix configuration va appraitre"23:12
Neo31on garde le choix par defaut23:12
Neo31Internet site 23:12
Neo31pour cela on appui sur la touche "fleche droit" pour selectionner le bouton OK23:13
Neo31puis on appui sur la touche entree23:13
adn(merci)23:13
Neo31encore on appuis sur entree sur l'ecran suivant23:13
Neo31installation en cours23:13
adn(dis-moi quand je peux continuer)23:14
nizarusgo ahead adn 23:14
adnon décompresse l'archive contenant le code source 23:14
adn1:12 adn@wahe /tmp/DebPackaging% tar xvjf democratie-0.1.tar.bz2 23:15
adndemocratie-0.1/23:15
adndemocratie-0.1/Makefile.am23:15
adndemocratie-0.1/install-sh23:15
adndemocratie-0.1/configure23:15
adn(etc.)23:15
Neo31installation done23:15
adnon va dans le dossier democratie-0.1/23:15
adnet on lance la commande dh_make pour créer le dossier debian/23:15
nizarusType of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch?23:16
nizarus [s/i/m/l/k/n] 23:16
adn1:15 adn@wahe /tmp/DebPackaging/democratie-0.1% dh_make -f ../democratie-0.1.tar.bz223:16
adnType of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch or cdbs? [s/i/m/l/k/n/b] s23:16
adnon choisit s, pour "single binary"23:16
adnMaintainer name : Mohammed Adnène Trojette23:16
adnEmail-Address   : adn+deb@diwi.org 23:16
adnDate                            : Sat, 20 Aug 2011 01:16:02 +020023:16
adnPackage Name     : democratie23:16
adnVersion                 : 0.123:16
adnLicense                 : blank23:16
adnUsing dpatch     : no23:16
adnType of Package : Single23:16
adnHit <enter> to confirm: 23:16
adnet on valide avec la touche entrée23:16
adnsi on fait "ls"23:17
adnon voit qu'un nouveau dossier debian/ est apparu23:17
adn1:17 adn@wahe /tmp/DebPackaging/democratie-0.1% ls23:17
adnaclocal.m4  config.h.in  configure*  configure.ac  debian/  depcomp*  install-sh*  Makefile.am  Makefile.in  missing*  src/23:17
adnquestions ?23:17
nizarus [QUESTION] si un paquet est construit correctement, cela signifie t-il que l'on a toutes les dépendances de cette liste sur la machine?23:17
adnen fait, la question est posée à l'envers23:18
adnpour constuire correctement le paquet, on a besoin de build-essential23:18
adnqui est un package qui dépend en particulier du package "make", dont on a besoin23:18
adn1:17 adn@wahe /tmp/DebPackaging/democratie-0.1% apt-cache show build-essential23:19
adnDepends: libc6-dev | libc-dev, gcc (>= 4:4.4.3), g++ (>= 4:4.4.3), make, dpkg-dev (>= 1.13.5)23:19
adnil dépend également de gcc23:19
adndont on a également besoin23:19
adndpkg-dev contient des outils également nécessaires23:19
adndh-make, on vient de l'utiliser ;-)23:19
adndevscripts contient plein de programmes utiles23:20
adn(j'ai mis entre parenthèses, sur la diapo 8, les programmes qui rendent nécessaire l'installation de ces dépendances)23:20
adnest-ce que la réponse est claire ?23:20
nizarus[QUESTION] Peux-tu expliciter la différence entre le "paquet .deb" produit par la commande "make checkinstall" et .deb classique ?23:20
adnla commande make checkinstall dépend probablement du code source du programme23:21
adnil faudrait lire le fichier Makefile pour savoir ce qu'elle fait23:21
adntechniquement, ce sont deux packages Debian dont il ne devrait pas y avoir de différence23:22
adnen pratique, rien ne garantit que l'auteur du Makefile ait respecté les standards des packages Debian23:22
adnnext23:22
nizarus[QUESTION] La différence entre les [s/i/m/l/k/n] nous éclairer la chose ?23:22
adnsingle package : on crée un unique package .deb23:22
adnc'est le "s"23:22
adnm = multiple package : parfois, on veut plusieurs packages23:23
adnun avec la documentation23:23
adnun avec la musique23:23
adnun avec les programmes23:23
adnun spécifique à Gnome23:24
adnun autre spécifique à KDE23:24
adnà partir du même code source23:24
adnl = library : par exemple le package de libxml23:24
adnk = kernel module23:24
adnen fait, dh_make propose des modèles de dossiers debian/ adaptés au type de package souhaité23:25
adnpour cette formation, on fait un package tout simple23:25
adnnext23:25
nizarusnext23:25
adn#### DIAPO n° 10 ####23:26
adnpour la formation, on va supprimer plusieurs fichiers inutiles23:26
adnje vous recommande, si vous retravaillez cette formation plus tard, de lire le contenu de ces fichiers pour comprendre ce à quoi ils servent23:27
adnon saute cette lecture, pour gagner du temps23:27
adnrm -f debian/{democratie.cron.d.ex,democratie.default.ex,democratie.doc- base.EX,docs,emacsen-install.ex,emacsen-remove.ex,emacsen- startup.ex,init.d.ex,manpage.1.ex,manpage.sgml.ex,manpage.xml.ex,menu.ex,postins t.ex,postrm.ex,preinst.ex,prerm.ex,README.Debian,README.source,watch.ex}23:27
adnpour gagner du temps également, j'ai préparé une page de manuel pour le programme23:28
adndisponible sur http://adn.diwi.org/debian/classroom/package/upstream/democratie.123:28
adnil faut la mettre dans le dossier debian/23:28
adnpar exemple avec la commande "wget -O debian/democratie.123:28
adnhttp://adn.diwi.org/debian/classroom/package/upstream/democratie.1"23:28
adnsur la même ligne, pardon23:28
adn1:28 adn@wahe /tmp/DebPackaging/democratie-0.1% wget -O debian/democratie.1 http://adn.diwi.org/debian/classroom/package/upstream/democratie.123:28
adnon a également besoin d'indiquer pour plus tard la liste des pages de manuel disponibles dans le fichier debian/democratie.manpages23:29
adnje l'ai préparé en avance : récupérez-le sur http://adn.diwi.org/debian/classroom/package/upstream/democratie.manpages23:30
adn1:28 adn@wahe /tmp/DebPackaging/democratie-0.1% wget -O debian/democratie.manpages http://adn.diwi.org/debian/classroom/package/upstream/democratie.manpages23:30
adnquestions ? problèmes ?23:30
nizarusadn, le fichier debian/democratie.manpages n'existe pas il faut le créer ?23:31
adntu peux le télécharger directement23:31
adnou sinon tu le crées, comme tu veux23:31
adn1:30 adn@wahe /tmp/DebPackaging/democratie-0.1% cat debian/democratie.manpages 23:31
adndebian/democratie.123:31
nizarusil y a des personnes qui n'ont pas pu avoir le dossier debian quelles sont les sources d'erreurs possibles ?23:32
adnpeut-être qu'ils n'ont pas mis "s" quand dh_make a demandé23:32
adnType of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch or cdbs?23:33
adn[s/i/m/l/k/n/b] s23:33
nizaruscomment on peut rattraper ça ?23:33
adnlancer à nouveau la commande "dh_make -f ../democratie-0.1.tar.bz2"23:34
adnmais avant, s'assurer qu'on est bien dans le dossier democratie-0.1/23:34
adnpour vérifier, on lance la comme "pwd"23:34
adnet ça doit se terminer par "democratie-0.1/"23:34
nizarus[QUESTION] Les man pages doivent avoir un format particulier ?23:34
adnpar "/democratie-0.1", je veux dire (pas "/" à la fin)23:34
adnpar exemple, chez moi :23:35
adn1:33 adn@wahe /tmp/DebPackaging/democratie-0.1% pwd23:35
adn/tmp/DebPackaging/democratie-0.123:35
adnoui, les man pages ont un format particulier23:35
adnle format des fichiers .roff23:35
adnnext23:36
nizarusnext23:36
adn(pour compléter la réponse précédente, ouvrez le fichier debian/democratie.1 et vous verrez le format)23:37
Neo31adn on pe revenir a la commande rm ?23:37
Neo31ca n'as pas marcher voila une commande alternative23:37
Neo31cd debian; rm -f democratie.cron.d.ex democratie.default.ex democratie.doc-base.EX docs emacsen-install.ex emacsen-remove.ex emacsen-startup.ex init.d.ex manpage.1.ex manpage.sgml.ex manpage.xml.ex menu.ex postinst.ex postrm.ex preinst.ex prerm.ex README.Debian README.source watch.ex ; cd ..23:37
adnNeo31: oui, ma commande est une commande bash et tu dois avoir dash d'installer23:37
adnNeo31: que renvoie la commande "echo $SHELL" ?23:38
Neo31bash23:38
adnbon, étrange alors :-)23:38
Neo31ca n'as pas marcher chez sarhan aussi23:38
adnalors utilisez la commande de Neo31 23:38
adnNeo31: je vois le problème, y a des espaces qui se sont rajoutées dans ma commande23:39
Neo31ca a marcher avec Ubuntu 10.0423:39
Neo31les version plus recentes peuvent utiliser la commande alternative que j'ai donner23:40
adnbref, à la fin, il ne reste plus grand chose dans le dossier debian/23:40
adn1:40 adn@wahe /tmp/DebPackaging/democratie-0.1% ls debian 23:40
adnchangelog  compat  control  copyright  democratie.1  democratie.manpages  rules*  source/23:40
adn#### DIAPO n° 11 ####23:41
adnlà, c'est un peu descriptif23:41
Neo31adn plusieurs membres on rater la commande, tu peut ralentir un peu pour qu'il ratrappes?23:41
adnoui, bien sûr !23:41
adndites-moi quand vous êtes prêts23:42
nizarusgo adn 23:44
adnok23:44
adn#### DIAPO n° 11 ####23:44
adnje ne vais pas décrire tous les fichiers du dossier debian/23:44
adnje vais me concentrer sur deux : debian/control et debian/changelog23:44
adnle reste, vous avez une description dans la présentation ou alors c'est pas indispensable pour la formation23:44
adn1) le fichier debian/control23:45
adncf. http://paste.debian.net/126796/23:45
adnon voit qu'il est constitué de plus champs de la forme "Champ: valeur"23:46
adnet qu'il y a deux blocs de texte23:46
adna) le premier bloc concerne le package source23:46
adnSource: democratie <-- c'est le nom du package source23:47
adnMaintainer: <-- il y a votre nom et votre adresse e-mail23:47
adnBuild-Depends: <-- c'est la liste des packages qu'il est nécessaire d'installer pour construire le package23:47
adnb) le deuxième bloc concerne le package binaire23:48
adnPackage: <-- c'est le nom du package binaire23:48
adnArchitecture: <-- c'est le type d'architecture, ici "any" (au moment de construire le .deb, ce sera remplace par l'architecture de votre processeur)23:48
adnDepends: <-- c'est la liste des packages qu'il est nécessaire d'installer pour que votre package s'installe et fonctionne correctement23:49
adnle reste, c'est de la description23:49
nizarus[QUESTION] quels sont les fichier utiliser pour générer le fichier control23:49
adnsoit on l'écrit soi-même, si on connaît la liste des champs à mentionner23:49
adnsoit, comme dans notre cas, on part d'un modèle (celui de dh_make par exemple)23:49
adnet dans tous les cas, on complète soi-même23:50
adnpour gagner du temps ce soir, on va laisser les fichiers tels quels23:50
adnnext23:50
nizarusnext23:50
adn#### DIAPO n° 12 ####23:50
adn2) le fichier debian/changelog23:51
adnvoir http://paste.debian.net/126797/23:52
adnon met les changements apportés par le package23:53
adndans notre cas, "Initial release" et le bug que ça ferme, identifié par son numéro23:53
adnqiestions ?23:53
nizarusno23:53
adnok, pour gagner du temps, on ne touche pas aux différents fichiers23:54
adntu veux poser la question ?23:54
nizarus[QUESTION] Concernant l'architecture, ça change quoi le fait de suivre la voie du CrossCompiling ?23:54
adnla question est très large23:54
adnon pourra en reparler dans le classroom pour utilisateurs avancés23:55
adnparce qu'il faut installer les programmes nécessaires à la compilation pour d'autres architectures23:55
adnnext ?23:55
nizarusno23:55
adn#### DIAPO n° 13 ####23:56
adnle moment tant attendu23:56
adnon lance la commande "dpkg-buildpackage -uc -us"23:56
adnet on laisse se faire la construction du package23:56
adnça se termine avec l'affichage suivant :23:57
adn   dh_builddeb23:57
adndpkg-deb : construction du paquet « democratie » dans « ../democratie_0.1-1_amd64.deb ».23:57
adn dpkg-genchanges  >../democratie_0.1-1_amd64.changes23:57
adndpkg-genchanges: inclusion du code source original dans l'envoi (« upload »)23:57
adn dpkg-source --after-build democratie-0.123:57
adndpkg-buildpackage: envoi complet (inclusion du code source d'origine)23:57
adnet le dossier parent contient ce qui suit :23:57
adn1:57 adn@wahe /tmp/DebPackaging/democratie-0.1% ls ..23:57
adndemocratie-0.1/                 democratie_0.1-1_amd64.deb      democratie_0.1-1.dsc         democratie-0.1.tar.bz223:57
adndemocratie_0.1-1_amd64.changes  democratie_0.1-1.debian.tar.gz  democratie_0.1.orig.tar.bz223:57
adnquestions ? dépannage ?23:57
adnpour les dépendances manquantes, c'est que vous n'avez pas installé autotools-dev et dpkg-dev23:58
adncomme indiqué précédemment23:58
adnsudo apt-get install autotools-dev dpkg-dev23:59

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!