File: maint-guide.fr.sgml

package info (click to toggle)
maint-guide 1.0.2
  • links: PTS
  • area: main
  • in suites: woody
  • size: 652 kB
  • ctags: 12
  • sloc: makefile: 104; sh: 8
file content (1560 lines) | stat: -rw-r--r-- 70,815 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
<!doctype debiandoc system>

<debiandoc>

 <book>

  <titlepag>

   <title>Guide du nouveau responsable Debian</title>

   <author>Josip Rodin <email/jrodin@jagor.srce.hr/
   </author>
   <author>Traducteur : Fr�d�ric Dumont <email/frederic.dumont@freeworld.be/
   </author>

   <version>version 1.0.2, 10 juin 2001.</version>

   <copyright>
   <copyrightsummary>Copyright &copy; 1998-2001 Josip Rodin.</copyrightsummary>

   <p>Ce document peut �tre utilis� selon les termes de la Licence publique
   g�n�rale de GNU version 2 ou suivante. 

   <p>Ce document a �t� cr�� avec ces deux documents comme exemple :

   <p>Making a Debian Package (the Debmake Manual), copyright &copy;
   1997 Jaldhar Vyas <email/jaldhar@debian.org/.

   <p>The New-Maintainer's Debian Packaging Howto, copyright &copy; 1997
   Will Lowe <email/lowe@debian.org/.
   </copyright>

  </titlepag>

  <toc sect>

  <chapt id="start">Commencer � de la bonne mani�re �

  <p>Ce document va essayer de d�crire � l'utilisateur Debian courant (et au
  d�veloppeur en devenir) la construction d'un paquet Debian GNU/Linux dans un
  langage courant, et compl�t� avec des exemples. Il y a un vieux proverbe
  romain, <em>Longum iter est per preaecepta, breve et efficax per
  exempla!</em> (C'est long par la r�gle, court et efficace par l'exemple!).

  <p>Une des choses qui font de Debian une distribution de si haut niveau est
  son syst�me de paquets. Bien qu'il existe une grande quantit� de logiciels
  dans le format Debian, parfois vous devrez installer un logiciel qui ne
  l'est pas. Vous pouvez vous demander comment faire vos propres paquets et
  peut-�tre pensez vous que c'est une t�che tr�s difficile. Eh bien, si vous
  �tes vraiment un d�butant sous Linux, c'est dur, mais si vous �tiez un
  d�butant, vous ne seriez pas en train de lire ce document maintenant. :-)
  Vous devez en savoir un peu sur la programmation Unix, mais vous n'avez
  certainement pas besoin d'�tre un magicien.

  <p>Les nouvelles versions de ce document devraient toujours �tre disponible
  'online' sur <url name="http://www.debian.org/doc/maint-guide"
  id="http://www.debian.org/doc/maint-guide/"> et dans le paquet
  'maint-guide'.

  <sect id="needprogs">Programmes n�cessaires au d�veloppement.

  <p>Avant de commencer quoi que ce soit, vous devriez vous assurer que vous
  avez correctement install� certains paquets suppl�mentaires n�cessaires pour
  le d�veloppement. Notez que la liste ne contient aucun paquet marqu�
  'essentiel' ou 'requis' - nous supposons que vous avez d�j� install�
  ceux-ci.
  
  <p>Ce document a �t� �crit alors que la distribution
  2.1 'slink' �tait la version stable officielle de Debian, et la 2.2
  'potato' �tait en cours de cr�ation, donc les paquets nomm�s ici sont
  principalement ceux de 'potato'.

  <p>Les paquets suivants sont fournis dans l'installation standard de Debian
  2.1, de sorte que vous les avez probablement d�j� (ainsi que les paquets
  suppl�mentaires dont ils d�pendent). N�anmoins, vous devriez le v�rifier avec
  `dpkg -s paquet`.

  <list>
  <item><em>binutils</em> - ces programmes sont utilis�s pour assembler et
  lier des fichiers objets - les blocs dont sont faits les programmes. (voir
  'info binutils')

  <item><em>cpp</em> - le pr�processeur C. (voir <manref name="cpp"
  section="1">)

  <item><em>cpio</em> - c'est un archiveur comme tar ou zip. (voir <manref
  name="cpio" section="1">) 

  <item><em>dpkg-dev</em> - ce paquet contient les outils n�cessaires pour
  d�paqueter, construire et t�l�charger les paquets sources Debian.  (voir
  <manref name="dpkg-source" section="1">)
  
  <item><em>file</em> - ce programme bien pratique peut d�terminer la nature
  d'un fichier. (voir <manref name="file" section="1">)
  
  <item><em>gcc</em> - Le compilateur C de GNU. La plupart des programmes
  Linux sont �crits en C. Cependant, si votre programme est �crit dans un
  autre langage de programmation, comme en C++, Fortran ou Pascal, vous
  devriez installer g++, g77 ou gpc, respectivement. (voir <manref name="gcc"
  section="1">, <manref name="g++" section="1">, <manref name="g77"
  section="1">, <manref name="gpc" section="1">)
  
  <item><em>libc6-dev</em> - Les biblioth�ques et fichiers d'en-t�te C dont gcc a
  besoin pour les lier aux fichiers objets cr��s. Bien que certains programmes
  recommandent ou utilisent encore libc5, on vous recommande d'utiliser la
  nouvelle version (libc6). (voir `info libc`)
  
  <item><em>make</em> - d'ordinaire, la cr�ation d'un programme prend plusieurs
  �tapes. Plut�t que d'avoir � taper les m�mes commandes encore et encore,
  vous pouvez utiliser ce programme pour automatiser le processus, en
  cr�ant des fichiers � Makefile �. Certains programmes utilisent
  aussi imake et
  xmkmf, des programmes utilis�s pour g�n�rer les fichiers Makefile � partir
  d'un ensemble de fonctions macros. Beaucoup de logiciels r�cents utilisent
  des scripts de configurations et des fichiers Makefile cr��s � l'aide
  d'autoconf et automake, donc vous pourriez avoir besoin de ceux-ci aussi.
  (voir `info make`, <manref name="imake" section="1">, <manref name="xmkmf"
  section="1">, <manref name="autoconf" section="1">, <manref name="automake"
  section="1">)

  <item><em>patch</em> - ce programme tr�s utile prend un fichier contenant
  une liste de diff�rences (produite par le programme diff) et l'applique au
  fichier original, produisant une version mise � jour. (voir <manref
  name="patch" section="1">)

  <item><em>perl5</em> - Perl est un des langages de script les plus
  utilis�s sur les syst�mes un*x modernes, souvent qualifi� de � tron�onneuse
  suisse d'Unix �. (voir <manref name="perl" section="1">)
  </list>

  <p>Vous devrez probablement installer vous-m�me les programmes suivants de la
  section � devel � de la distribution :

  <list>
  <item><em>dh-make</em> et <em>debhelper</em> - dh-make est n�cessaire pour
  cr�er le squelette de notre exemple de paquet et il utilise certains outils
  de debhelper pour cr�er les paquets. Ils ne sont pas indispensables pour la
  cr�ation des paquets, mais ils sont <strong>fortement</strong> recommand�s
  pour les nouveaux responsables. Ils rendent le processus complet bien plus
  facile � d�marrer, et � contr�ler par apr�s. (voir <manref name="dh_make"
  section="1">, <manref name="debhelper" section="1">,
  /usr/share/doc/debhelper/README)

  <item><em>devscripts</em> - ce paquet contient certains scripts utiles qui
  peuvent aider les responsables, mais ils ne sont pas indispensables pour la
  cr�ation de paquets. (voir /usr/share/doc/devscripts/README.debian.gz)

  <item><em>fakeroot</em> - cet utilitaire vous laisse pr�tendre �tre root, ce
  qui est n�cessaire pour certaines parties du processus de construction. (voir
  <manref name="fakeroot" section="1">)

  <item><em>lintian</em> - c'est le v�rificateur de paquet Debian, qui peut
  vous indiquer de nombreuses erreurs courantes apr�s que vous ayez construit
  le paquet et expliquer les erreurs trouv�es. (voir <manref name="lintian"
  section="1">, <manref name="diffstat" section="1">,
  /usr/share/doc/lintian/lintian.html/index.html) </list>

  <p>Enfin, ces paquets <em>tr�s importants</em> sont dans la section doc de
  la distribution :

  <list>
  <item><em>debian-policy</em> - inclut la structure et le contenu de
  l'archive, plusieurs consid�rations sur l'architecture
  du syst�me d'exploitation,
  la Norme de hi�rarchie des fichiers, et le plus important (pour vous)
  est qu'il d�crit les crit�res que chaque paquet doit v�rifier pour �tre
  inclus dans la distribution. (voir
  /usr/share/doc/debian-policy/policy.html/index.html)

  <item><em>developers-reference</em> - concerne tout ce qui n'est pas
  sp�cifique aux d�tails techniques de la cr�ation de paquets, comme la
  structure des archives, comment renommer, rendre orphelin, choisir un
  paquet, faire un NMU (une version du paquet non responsable),
  comment g�rer les bogues, o� et quand t�l�charger, etc. (voir
  /usr/share/doc/developers-reference/developers-reference.html/index.html)
  </list>

  <p>Vous avez aussi besoin du paquet de cryptographie, soit PGP (les paquets
  pgp-*) ou GPG (le paquet gnupg), pour <em>signer</em> num�riquement votre
  paquet.  Ceci est sp�cialement important si vous voulez distribuer votre
  paquet � d'autres personnes (et vous le ferez si votre paquet est inclus
  dans la distribution Debian). Cependant, � cause d'une loi d'exportation
  am�ricaine plut�t stupide, vous ne pouvez pas simplement le t�l�charger de
  votre site FTP Debian le plus proche. Cependant, Debian fournit ces paquets
  via un site qui n'est pas physiquement situ�s aux USA, nomm�
  non-US.debian.org (ftp://non-us.debian.org/debian-non-US/). Votre site FTP
  va avoir un fichier nomm� README.non-us, qui vous dira comment trouver un
  miroir plus proche de ce site. 

  <p>Les courtes descriptions qui sont donn�es ci-dessus ne servent que
  d'introduction � ce que fait chaque paquet. Avant de continuer, veuillez lire
  attentivement la documentation de chaque programme, au moins l'usage
  standard. Cela peut vous sembler fastidieux maintenant, mais plus tard vous
  serez <em>tr�s</em> content de l'avoir fait.
  
  Remarque: <em>debmake</em> est un paquet qui contient certains programmes
  qui fonctionnent d'une mani�re similaire � dh-make, mais son usage
  sp�cifique n'est <strong>pas</strong> couvert dans ce document.
  Veuillez lire <url name="the Debmake manual"
  id="http://www.debian.org/~jaldhar/"> pour plus d'information.

  <sect id="otherinfo">Plus d'information

  <p>Vous pouvez faire deux types de paquets : source et binaire.  Un paquet
  source contient le code que vous pouvez compiler en un programme.  Un paquet
  binaire contient juste le programme fini. Ne m�langez pas les termes comme
  source du programme et le paquet source du programme ! Veuillez lire les
  autres manuels si vous avez besoin de plus de d�tails sur la terminologie.

  <p>Debian utilise le terme � responsable � pour la personne qui fait des
  paquets, � auteur � pour la personne qui a fait le programme, et
  � responsable amont � pour la personne qui maintient le programme
  actuellement. D'ordinaire
  l'auteur et le responsable amont sont une seule et m�me personne. Si vous
  avez �crit un programme, et que vous voulez qu'il soit dans Debian, vous
  pouvez remplir une demande pour devenir un responsable.

  <p>Apr�s que vous avez construit votre paquet (ou pendant la cr�ation), vous
  devrez devenir responsable Debian officiel si vous souhaitez que votre
  programme soit dans la prochaine distribution (si le programme est utile,
  pourquoi pas ?) Ce processus est expliqu� dans la R�f�rence du d�veloppeur.
  Veuillez le lire.

  <chapt id="first">Premiers pas

  <p>Puisque la documentation au <url name="Coin des d�veloppeurs"
  id="http://www.debian.org/devel/"> n'est pas tr�s claire sur o� et comment
  les nouveaux responsables devraient commencer leur travail, ce document va
  expliquer chacune des petites �tapes (qui peuvent a priori sembler
  insignifiantes), et vous aider � cr�er ce premier paquet, ainsi qu'� gagner
  de l'exp�rience pour construire les versions suivantes de ce paquet ou
  d'autres plus tard.

  <sect id="choose">Choisir votre programme

  <p>Vous avez probablement d�j� choisi le paquet que vous voulez construire,
  mais voici quelques �l�ments pour les non-initi�s :

  <list>
  <item>v�rifiez si le paquet est d�j� dans la distribution. Si vous utilisez
  la distribution � stable �, peut-�tre que le mieux est d'aller sur <url
  name="la page de recherche"
  id="http://www.debian.ord/distrib/packages.html">.
  Si vous utilisez une distribution � unstable � <strong>courante</strong>,
  v�rifiez le avec ces commandes :
  <example>
  dpkg -s programme
  dpkg -l '*programme*'
  </example>
  </item>

  <item>
  consultez la <url name="page WNPP" id="http://www.debian.org/devel/wnpp">
  (Travail n�cessaire et paquets futurs) et la liste de discussion
  debian-devel pour voir si quelqu'un d'autre construit ce paquet. Si c'est le
  cas, contactez le responsable actuel si vous le voulez vraiment. Sinon,
  trouvez un autre paquet int�ressant que personne ne maintient.
  </item>

  <item>
  le programme <strong>doit</strong> avoir une licence, si possible
  libre conform�ment aux <url name="R�gles de Logiciel Libre Debian"
  id="http://www.debian.org/social_contract.html#guidelines">.
  S'il n'est pas conforme � l'une de ces r�gles, il peut malgr� tout �tre
  inclus dans les sections � contrib � ou � non-free � de Debian. Si vous n'�tes
  pas s�r, demandez sur <email/debian-legal@lists.debian.org/.
  </item>

  <item>le programme ne devrait <strong>pas</strong> �tre setuid root, ou
  encore mieux, il ne devrait pas �tre quoique ce soit setuid ou setgid.
  </item>

  <item>le programme ne devrait pas �tre un d�mon, ou quelque chose qui va
  dans les r�pertoires */sbin.
  </item>

  <item>le programme devrait �tre sous forme de binaire ex�cutable. N'essayez
  pas encore les biblioth�ques.
  </item>

  <item>il devrait �tre bien document�, ou au moins compr�hensible (par tous).
  </item>

  <item>vous devriez contacter le(s) auteur(s) du programme pour v�rifier
  qu'ils sont d'accord pour la cr�ation du paquet. Il est important d'�tre �
  m�me de consulter le(s) auteur(s) � propos du programme en cas de probl�mes
  sp�cifiques au programme, aussi n'essayez pas de cr�er un paquet � partir de
  programmes non maintenus.
  </item>

  <item>enfin, vous devez �tre s�r qu'il fonctionne, et l'avoir test� pendant
  quelques temps.
  </item>
  </list>

  <p>Bien s�r, toutes ces remarques ne sont que des mesures de s�curit�, et
  ont pour but de vous sauver d'utilisateurs fous de rage si vous faites
  une erreur dans un d�mon setuid... Quand vous aurez plus d'exp�rience
  dans la cr�ation des paquets, vous serez capable de faire de tels paquets,
  mais m�me les d�veloppeurs les plus exp�riment�s consultent la liste de
  discussion debian-devel en cas de doute. Et l� les gens seront contents de
  vous aider.

  <p>Pour plus d'informations � ce sujet, consultez la R�f�rence du
  D�veloppeur.

  <sect id="getit">Obtenir le programme et l'essayer.

  <p>La premi�re chose � faire est de trouver et de t�l�charger le paquet
  original. Je suppose que vous avez d�j� le fichier source que vous avez pris
  sur la page web de l'auteur. Les sources pour les logiciels Linux libres
  sont d'habitude au format tar/gzip avec l'extension .tar.gz, et contiennent
  normalement un sous-r�pertoire nomm� programme-version avec toutes les
  sources dedans. Si la source de votre programme est disponible dans une
  autre sorte d'archive (par exemple, le programme se termine par '.Z' ou
  '.zip'), d�compressez-le avec les outils ad�quats ou demandez sur
  debian-mentors si vous n'�tes pas s�r quant � la fa�on de le
  d�compresser
  correctement (indice: utilisez � file archive.extension �).

  <p>Comme exemple, je vais utiliser un programme nomm� � gentoo �, un
  gestionnaire de fichiers pour X11 utilisant GTK+.  Sachez qu'il y a
  d�j� un paquet pour ce programme, et qu'il a chang�
  substantiellement depuis que ce texte a �t� �crit la
  premi�re fois.

  <p>Cr�ez un sous-r�pertoire sous votre r�pertoire racine nomm�
  � debian � ou � deb � ou quoi que ce soit d'ad�quat (ou le nom du programme,
  ~/gentoo, ferait l'affaire dans notre cas). Placez l'archive
  t�l�charg�e dedans, et d�compressez la avec � tar
  -xzf gentoo-0.9.12.tar.gz �.  Assurez-vous qu'il n'y a pas d'erreurs, m�me
  � sans importance �, parce qu'alors il y aura des probl�mes pour d�compresser
  sur les syst�mes d'autres personnes, dont les outils de d�compressions
  pourraient ne pas supporter ces erreurs.

  <p>Maintenant vous avez un autre sous-r�pertoire, nomm� � gentoo-0.9.12 �.
  Allez dans ce r�pertoire et lisez <strong>attentivement</strong> la
  documentation fournie. Il s'agit d'habitude de fichiers nomm�s
  README*, INSTALL*, *.lsm ou *.html. Dedans, vous devez trouver les
  instructions pour compiler et installer correctement le programme
  (tr�s probablement elles supposent que vous voulez installer dans le
  r�pertoire /usr/local/bin; ce n'est pas le cas, mais on reviendra sur
  ce point plus tard dans <ref id="destdir">).

  <p>La m�thode varie d'un programme � l'autre, mais de nombreux programmes
  modernes viennent avec un script � configure � qui configure les
  sources selon
  votre syst�me et s'assure que votre syst�me est � m�me de les compiler.
  Apr�s la configuration (avec `./configure`), les programmes sont compil�s
  avec � make �.  Certains d'entre eux supportent � make check �, pour
  se tester
  eux-m�mes.  L'installation dans les r�pertoires de destination est
  g�n�ralement obtenue avec � make install �.
  
  <p>Maintenant, essayez de compiler et d'ex�cuter votre programme, pour vous
  assurer qu'il fonctionne correctement et ne casse rien d'autre quand il est
  install� ou qu'il tourne.

  <p>Sachez aussi que vous pouvez g�n�ralement entrer � make uninstall � pour
  retirer tous les fichiers install�s, et � make clean � (ou mieux, � make
  distclean �) pour nettoyer le r�pertoire de compilation.

  <sect id="namever">Les choses � faire avant � dh_make �

  <p>Vous devriez commencer la cr�ation du paquet avec un r�pertoire source
  compl�tement propre (originel), ou plus simplement avec les sources
  fra�chement d�compress�es.

  <p>Pour que le paquet soit correctement construit, vous devez changer le nom
  du programme en minuscule (si ce n'est d�j� fait), et vous devriez changer
  le r�pertoire source en &lt;nompaquet&gt;-&lt;version&gt;.

  <p>Si le nom du programme consiste en plus d'un mot, r�duisez-le � un mot,
  ou faites une abr�viation.  Par exemple, le paquet du programme � John's
  little editor for X � serait nomm� johnledx, ou jle4x, ou quoi que vous
  vouliez, aussi longtemps qu'il reste sous une limite raisonnable, en g�n�ral
  20 caract�res.

  <p>V�rifiez aussi la version exacte du programme (qui sera inclus
  dans la version du paquet). Si ce logiciel n'est pas num�rot�
  avec un num�ro de version comme X.Y.Z, mais avec une date de
  distribution, vous pouvez utiliser cette date comme num�ro de version, avec
  comme pr�fixe '0.0.' (juste au cas o� les responsables amont d�cident de
  distribuer une jolie version comme 1.0).  Donc, si la date est le 19
  d�cembre 1998, vous pouvez utilisez 0.0.19981219 comme cha�ne pour la
  version. Certains ne seront pas num�rot�s du tout, auquel cas
  vous devriez contacter le responsable amont pour voir s'il a une autre
  m�thode de gestion des r�visions.

  <sect id="dh_make">Lancer � dh_make �

  <p>V�rifiez que vous �tes dans le r�pertoire du code source du programme, et
  lancez ceci :

  <p><example>
  dh_make -e votre.adresse@de.responsable -f gentoo-0.9.12.tar.gz
  </example>

  <p>Bien s�r, remplacez la cha�ne � votre.adresse@de.responsable � avec votre
  adresse m�l pour l'inclure dans l'entr�e changelog et dans d'autres
  fichiers, et le nom du fichier par le nom de la source d'archive originale.
  Voyez <manref name="dh_make" section="1"> pour plus de d�tails.
   
  <p>Des informations sont affich�es. Il vous demande quelle sorte de
  paquet vous voulez cr�er. Gentoo est un paquet binaire simple - il ne
  cr�e qu'un ex�cutable, et donc un seul fichier .deb - donc
  nous s�lectionnons la premi�re option, avec la touche � s �,
  v�rifions l'information sur l'�cran et confirmons en pressant
  &lt;enter&gt;. En tant que nouveau responsable, vous ne devriez pas
  cr�er des paquets compos�s, ou des biblioth�ques, comme
  expliqu� plus haut.  Ce n'est pas si difficile, mais cela requiert un peu
  plus de connaissances, et nous n'entrerons pas dans les d�tails ici.

  <p>Notez que vous ne pouvez ex�cuter dh_make <strong>qu'une fois</strong>,
  et qu'il ne se comportera par correctement si vous l'ex�cutez encore dans le
  m�me r�pertoire d�j� debianis�. Cela signifie aussi que vous devrez utiliser
  une autre m�thode pour distribuer une nouvelle r�vision ou une nouvelle
  version de votre paquet dans le futur. Lisez plus � ce sujet dans ce texte
  dans <ref id="update">

  <chapt id="modify">Modifier les sources

  <p>Normalement, les programmes s'installent d'eux-m�mes dans les
  sous-r�pertoires /usr/local. Mais les paquets Debian ne doivent pas utiliser
  ce r�pertoire, car il est r�serv� � l'usage priv� de l'administrateur
  syst�me (ou de l'utilisateur). Cela signifie que vous devez examinez le
  syst�me de cr�ation de votre programme, en g�n�ral en commen�ant par le
  Makefile. C'est le script que <manref name="make" section="1"> utilisera
  pour automatiser la cr�ation du programme. Pour plus de d�tails sur les
  Makefile, regardez <ref id="rules">.

  <p>Notez que si votre programme utilise GNU <manref name="automake"
  section="1"> et/ou <manref name="autoconf" section="1">, ce qui signifie que
  les sources incluent des fichiers Makefile.am et/ou Makefile.in,
  respectivement, vous devrez modifier ces fichiers, parce que chaque appel
  d'automake va �craser les Makefile.in avec des informations g�n�r�es �
  partir des Makefile.am, et que chaque appel de ./configure fera de m�me avec
  les fichiers Makefile, avec des donn�es des Makefile.in.  �diter les fichiers
  Makefile.am requiert des connaissances sur automake, que vous pouvez
  apprendre dans la section automake d'info, alors qu'�diter les fichiers
  Makefile.in est globalement identique � l'�dition de fichiers Makefile, si
  ce n'est qu'il faut faire attention � toutes les variables, � savoir toute
  cha�ne entour�e de � @ �, comme par exemple @CFLAGS@ ou @LN_S@, qui sont
  remplac�es par des valeurs r�elles � chaque appel d'autoconf.
  
  <p>Notez qu'il n'y a pas la place ici pour entrer dans <em>tous</em> les
  d�tails sur les modifications, mais voici quelques-uns des probl�mes qui
  reviennent souvent.

  <sect id="destdir">Installer dans un sous-r�pertoire

  <p>La plupart des programmes ont une certaine mani�re de s'installer
  dans la structure de r�pertoire de votre syst�me, de sorte que
  leurs ex�cutables sont inclus dans votre $PATH, et que vous trouvez leurs
  documentation et pages de manuel aux places habituelles.  Vous devez vous
  assurer qu'ils le font correctement, mais vous devez les forcer �
  s'installer dans un sous-r�pertoire temporaire qui sera cr�� sous votre
  r�pertoire debian/, normalement nomm� <tt>debian/tmp</tt>, � partir duquel
  les outils du responsable vont construire un paquet .deb fonctionnel.  Tout
  ce qui est contenu dans ce r�pertoire sera install� sur le syst�me de
  l'utilisateur quand il installe votre paquet, la seule diff�rence est que
  dpkg installera les fichiers dans le r�pertoire racine. 

  <p>Fondamentalement, vous devez faire en sorte que le programme s'installe
  dans debian/tmp, mais se comporte correctement quand il est plac� dans le
  r�pertoire racine, i.e. quand il est install� depuis le paquet .deb.  Avec
  des programmes utilisant GNU autoconf, ceci est relativement facile, parce
  que dh_make va mettre en place des commandes pour le faire automatiquement,
  et vous pouvez tout aussi bien passer � la section suivante.  Mais avec
  d'autres programmes, vous devrez plus que probablement examiner et �diter
  les Makefiles.

  <p>Voici les parties concern�es du Makefile de gentoo :

  <p><example>
  # Where to put binary on 'make install'?
  BIN     = /usr/local/bin
  # Where to put icons on 'make install'? Note: if you change this,
  # gentoo will not find the icons as it starts up. You're going to
  # have to alter gentoo's icon path (in the config window, "Paths"
  # tab) to get it work.
  ICONS   = /usr/local/lib/gentoo/
  </example>

  <p>Avant tout, vous devriez ins�rer deux nouvelles lignes qui disent :

  <p><example>
  # Edited for Debian GNU/Linux.
  DESTDIR =
  </example>
  parce que le processus de cr�ation en a besoin (ce sera expliqu� plus loin,
  dans <ref id="rules">).

  <p>Ensuite le Makefile mentionne l'emplacement final de l'ex�cutable. Changez-le en ceci :
  <p><example>
  # Where to put binary on 'make install'?
  BIN     = $(DESTDIR)/usr/X11R6/bin
  </example>

  <p>Mais pourquoi dans ce r�pertoire, et pas dans un autre ? Parce que Debian
  a d�fini quelques r�gles indiquant o� les programmes doivent �tre install�s.
  Ceci est sp�cifi� dans le Standard de la Hi�rarchie de Fichiers
  (/usr/share/doc/debian-policy/fhs). Ainsi, nous devons installer
  l'ex�cutable dans /usr/X11R6/bin, � la place de /usr/local/bin, et la page
  de manuel (qui n'existe pas dans notre cas, mais presque tous les programmes
  en ont une, aussi nous en ferons une plus tard) dans /usr/share/man/man1 �
  la place de /usr/local/man/man1.

  <p>Apr�s cela nous avons une situation un peu plus difficile. Si vous
  changez une ligne en :

  <p><example>
  ICONS   = $(DESTDIR)/usr/share/gentoo/
  </example>
  pour �tre conforme aux r�gles, vous devrez �diter quelques sources C. Mais
  o� et que chercher ? Vous pouvez trouver o� en lan�ant :
  <p><example>
  grep -n usr/local/lib *.[ch]
  </example>
  (dans chaque sous-r�pertoire qui contient des fichiers .c et .h). Grep vous
  dira le nom du fichier et le num�ro de ligne o� il trouve une occurrence.
  Maintenant �ditez ces fichiers et aux lignes indiqu�es, remplacez
  usr/local/lib par usr/share - et voil�. Remplacez juste usr/local/lib avec
  votre r�pertoire, et faites attention de ne pas casser le reste du code, si
  vous ne vous y connaissez pas trop en programmation C :-)

  <p>Apr�s quoi vous devez trouver la cible d'installation (cherchez une ligne
  qui commence avec � install: �) et renommez toutes les r�f�rences aux
  r�pertoires autres que ceux d�finis au d�but du Makefile. Dans notre cas,
  c'est d�j� fait et cela simplifie un peu les choses. Auparavant, la cible
  d'installation de gentoo disait :

  <p><example>
  # ----------------------------------------- Installation

  # You're going to have to be root to do this!
  install:        gentoo
                  install ./gentoo $(BIN)
                  install icons $(ICONS)
                  install gentoorc-example $(HOME)/.gentoorc
  </example>

  <p>Apr�s votre modification elle dit :
  <example>
  # ----------------------------------------- Installation

  # You're going to have to be root to do this!
  install:        gentoo-target
                  install -d $(BIN) $(ICONS) $(DESTDIR)/etc
                  install ./gentoo $(BIN)
                  install -m644 icons/* $(ICONS)
                  install -m644 gentoorc-example $(DESTDIR)/etc/gentoorc
                  install -d $(DESTDIR)/usr/share/doc/gentoo/html
                  cp -a docs/* $(DESTDIR)/usr/share/doc/gentoo/html
  </example>

  <p>Le lecteur attentif notera que j'ai chang� � gentoo � en � gentoo-target �
  dans la ligne � install: �. C'est ce qu'on appelle une correction de
  bogue :-)

  <p>Chaque fois que vous faites des modifications qui ne sont pas
  sp�cifiquement li� � Debian, envoyez les au responsable amont pour qu'elles
  puissent �tre inclue dans la version suivante du programme.  Remarquez que
  vous ne devez pas envoyer les fichiers debian/* en amont, mais vous devriez
  le faire pour toute autre modification.  Et essayez d'�tre gentil avec le
  responsable amont, en �vitant de faire des corrections sp�cifiques � Debian
  ou Linux (ou m�me Unix).

  <sect id="difflibs">Biblioth�ques diff�rentes

  <p>Il y a souvent un probl�me commun : des biblioth�ques sont souvent
  diff�rentes d'une plate-forme � l'autre. Par exemple, Makefile peut contenir
  une r�f�rence � une biblioth�que qui n'existe pas dans Debian. Dans ce cas,
  nous devons la changer en une biblioth�que qui existe dans Debian, et qui sert
  � la m�me chose.  La meilleure m�thode est de commenter ces lignes parce
  qu'elles peuvent fournir des indices � d'autres qui ont le m�me probl�me.

  <p>Ainsi, s'il y a une ligne dans le Makefile (ou Makefile.in) de votre
  programme qui dit quelque chose comme ceci (et votre programme ne compile
  pas) :

  <p><example>
  LIBS = -lcurses -lquelquechose -lautrechose
  </example>

  <p>Changez la en ceci, et cela marchera probablement :
  <p><example>
  LIBS = -lncurses -lquelquechose -lautrechose
  #LIBS = -lcurses -lquelquechose -lautrechose
  </example>

  <chapt id="dreq">Ce qui est requis sous debian/

  <p>Il y a un nouveau sous-r�pertoire sous le r�pertoire principal du
  programme ('gentoo-0.9.12'), nomm� � debian �. Il
  y a un certain nombre de fichiers dans ce r�pertoire. Nous allons �diter
  ceux-ci pour configurer le comportement du paquet. Les plus importants
  d'entre eux sont � control �, � changelog �, � copyright � et �
  rules �, qui sont requis pour tous les paquets.

      <sect id="control">fichier � control �

  <p>Ce fichier contient plusieurs valeurs que dpkg et dselect vont utiliser
  pour g�rer le paquet. Voici le fichier � control � que dh_make cr�e pour
  nous.

  <p><example>
  1  Source: gentoo
  2  Section: unknown
  3  Priority: optional
  4  Maintainer: Josip Rodin &lt;jrodin@jagor.srce.hr&gt;
  5  Standards-Version: 3.0.1
  6
  7  Package: gentoo
  8  Architecture: any
  9  Depends: ${shlibs:Depends}
  10 Description: &lt;insert up to 60 chars description&gt;
  11  &lt;insert long description, indented with spaces&gt;
  </example>
  (J'ai ajout� les num�ros de ligne.)

  <p>Les lignes de 1 � 5 sont les informations de contr�le pour le paquet
  source. La ligne 1 est le nom du paquet source.

  <p>La ligne 2 est la section de la distribution dans laquelle ce paquet
  va. Comme vous l'avez constat�, Debian est divis�e en sections: main
  (logiciels libres), non-free (logiciels pas vraiment libres), et contrib
  (logiciels libres qui d�pendent de logiciels non libres). Sous celles-ci, il
  y a des sous-sections logiques qui d�crivent de mani�re concise les paquets
  qui s'y trouvent. Ainsi nous avons � admin � pour les programmes r�serv�s �
  l'administrateur, � base � pour les outils de base, � devel � pour les outils de
  programmation, � doc � pour la documentation, � libs � pour les biblioth�ques
  � mail � pour les lecteurs et les d�mons de courriel, � net � pour les
  applications et d�mons r�seaux, � x11 � pour les programmes sp�cifiques � X11
  et bien d'autres.

  <p>Changeons donc la section en x11.

  <p>La ligne 3 d�crit l'importance pour l'utilisateur d'installer ce paquet.
  Les sections et les priorit�s ne sont utilis�s que par dselect quand il trie
  les paquets et s�lectionne les d�fauts, et elles peuvent (et seront
  probablement) modifi�es par nos responsables FTP. Lisez le manuel des normes
  pour des informations sur ces valeurs.

  <p>Comme c'est un paquet de priorit� normale, nous le laissons � � optional �.

  <p>La ligne 4 est le nom et l'adresse m�l du responsable.

  <p>La ligne 5 est la version du standard de R�gles Debian que ce paquet
  respecte (deux versions majeures du paquet debian-policy install�).

  <p>Si un compilateur non-standard ou d'autres outils sont n�cessaires pour
  construire votre paquet, vous devriez ajouter ici une ligne � Build-depends �
  et y mettre les paquets requis.  Pour plus d'information, lisez le Manuel de
  Paquetage (section 8.7) et la documentation du paquet � build-essential �.

  <p>La ligne 7 est le nom du paquet binaire.

  <p>La ligne 8 d�crit l'architecture CPU pour laquelle le paquet binaire peut
  �tre compil�. Vous pouvez le laisser � � any � car <manref
  name="dpkg-gencontrol" section="1"> trouvera la valeur appropri�e pour toute
  machine sur laquelle ce paquet sera compil� (voir la R�f�rence du
  D�veloppeur pour une explication sur ce qu'est le portage de paquet).  Si
  votre paquet est ind�pendant d'une architecture (par exemple, un script
  shell ou Perl, ou un document), changez cette entr�e en 'all' et lisez plus
  tard dans <ref id="rules"> comment utiliser la r�gle � binary-indep � au lieu
  de � binary-arch � pour construire le paquet.

  <p>La ligne 9 montre une des caract�ristiques les plus puissantes du syst�me de
  paquet Debian. Les paquets peuvent �tre li�s entre eux de plusieurs
  fa�ons. � part � Depends: � les autres champs d�crivant ces relations sont � Recommends: �, � Suggests: �,
  � Pre-Depends: �, � Conflicts: �, � Provides: �, et � Replaces: �.

  <p>Les outils de gestion de paquets comme dpkg, dselect ou APT (et ses
  interfaces) se comportent d'ordinaire de la m�me mani�re quand ils g�rent
  ces relations; sinon, ce sera expliqu�.
  (voir <manref name="dpkg" section="8">, <manref name="dselect" section="8">,
  <manref name="apt" section="8">, <manref name="console-apt" section="8">,
  <manref name="gnome-apt" section="8">)

  <p>Voici ce que ces champs veulent dire normalement :

  <p><list>
  <item>Depends:
  <p>Le paquet ne sera pas install� � moins que les paquets dont il d�pend ne
  soient install�s. Utilisez-le si votre programme ne s'ex�cute absolument
  pas (ou cause des d�g�ts s�rieux) tant qu'un paquet particulier n'est pas
  pr�sent.</item>

  <item>Recommends:
  <p>dselect n'installera pas votre programme � moins que les paquets qu'il
  recommande ne soient install�s. Dpkg et APT vous le laisseront faire
  cependant. Utilisez le pour les paquets qui ne sont pas vraiment
  indispensables mais qui sont typiquement utilis�s avec votre
  programme.</item>

  <item>Suggests:
  <p>Quand un utilisateur installe votre programme dselect lui demandera s'il
  faut installer les programmes qu'il sugg�re.  Dpkg et APT ne s'en soucient
  pas beaucoup.  Utilisez le pour les paquets qui marchent bien avec votre
  programme mais qui ne sont pas n�cessaires.</item>

  <item>Pre-Depends:
  <p>Ceci est plus fort que Depends. Le paquet ne sera pas install� � moins
  que les paquets dont il pr�-d�pend ne soient install�s <em>et correctement
  configur�s</em>. Utilisez le <strong>tr�s</strong> rarement et seulement
  apr�s en avoir discut� sur la liste de discussion debian-devel.  Traduisez:
  ne l'utilisez pas du tout. :-)</item>

  <item>Conflicts:
  <p>Le paquet se sera pas install� avant que les paquets
  avec lesquels il est en conflit n'aient �t� retir�s.
  Utilisez ceci si votre programme ne peut absolument pas fonctionner (ou s'il cause d'�normes probl�mes) quand un paquet particulier est pr�sent.</item>

  <item>Provides:
  <p>Quand il y a plusieurs alternatives pour certains types de paquets, des
  noms virtuels ont �t� d�finis. La liste compl�te se trouve dans
  /usr/share/doc/debian-policy/virtual-package-name-list.text.gz. Utilisez
  ceci si votre programme fournit une fonction d'un paquet virtuel
  existant.</item>

  <item>Replaces:
  <p>Utilisez ceci quand votre programme remplace des fichiers d'un autre
  paquet, ou remplace compl�tement un autre paquet (utilis� en conjonction
  avec Conflicts:). Les fichiers du paquet nomm� seront retir�s avant
  d'installer le v�tre.
  </item>
  </list>

  <p>Tous ces champs ont une syntaxe uniforme. Il s'agit d'une liste de
  paquets s�par�s par des virgules. Ces noms de paquets peuvent aussi �tre une
  liste d'alternatives, s�par�s par des symboles barre verticale <tt>|</tt>
  (symbole tube). Les champs peuvent �tre restreints � des versions
  particuli�res de chaque paquet nomm�.  Ces versions sont list�es entre
  parenth�ses apr�s chaque nom de paquet individuel, et doivent contenir une
  relation de la liste suivante suivie par un num�ro de version. Les relations
  autoris�es sont <tt>&lt;&lt;</tt>, <tt>&lt;=</tt>, <tt>=</tt>,
  <tt>&gt;=</tt> et <tt>&gt;&gt</tt> pour strictement plus petit, plus petit
  ou �gal, exactement �gal, plus grand ou �gal et strictement plus grand,
  respectivement.

  <p>La derni�re caract�ristique que vous devez conna�tre est
  � $(shlibs:Depends) �. Ceci sera automatiquement g�n�r� par <manref
  name="dh_shlibdeps" section="1"> et rempli par <manref name="dh_gencontrol"
  section="1"> avec les noms de toutes les biblioth�ques partag�es, comme
  libc6 ou xlib6g, que votre programme utilise, de sorte que vous ne devez pas
  le sp�cifier vous-m�me.  Ceci �tant dit, nous pouvons
  laisser la ligne 9 exactement comme elle est.

  <p>La ligne 10 est celle o� la liste de suggestions va. Ici on ne met que
  � file �, parce que gentoo peut utiliser certaines capacit�s de ce
  programme/paquet.

  <p>La ligne 11 est la description courte. L'�cran de la plupart de gens est
  large de 80 colonnes, aussi cela ne devrait pas d�passer les 60 caract�res.
  Je le change en � A fully GUI configurable GTK+ file manager �.

  <p>� la ligne 12 commence la description longue. Celle-ci devrait �tre un
  paragraphe qui donne plus de d�tails sur le paquet. La premi�re colonne de
  chaque ligne doit �tre vide. Il ne peut y avoir de ligne vide, mais vous
  pouvez  mettre un . (point) dans la colonne 2 pour simuler une ligne vide.
  De plus, il ne peut pas y avoir plus d'une ligne vide apr�s la description
  longue.

  <p>Voici le fichier control mis � jour:

  <p><example>
  1  Source: gentoo
  2  Section: x11
  3  Priority: optional
  4  Maintainer: Josip Rodin &lt;jrodin@jagor.srce.hr&gt;
  5  Standards-Version: 3.0.1
  6
  7  Package: gentoo
  8  Architecture: any
  9  Depends: ${shlibs:Depends}
  10 Suggests: file
  11 Description: A fully GUI configurable GTK+ file manager
  12  gentoo is a file manager for Linux written from scratch in pure C. It
  13  uses the GTK+ toolkit for all of its interface needs. gentoo provides
  14  100% GUI configurability; no need to edit config files by hand and re-
  15  start the program. gentoo supports identifying the type of various
  16  files (using extension, regular expressions, or the 'file' command),
  17  and can display files of different types with different colors and icons.
  18  .
  19  gentoo borrows some of its look and feel from the classic Amiga file
  20  manager "Directory OPUS" (written by Jonathan Potter).
  </example>
  (J'ai ajout� les num�ros de ligne.)

  <sect id="copyright">fichier 'copyright'

  <p>Ce fichier contient les informations sur les ressources amonts, le
  copyright et la licence du paquet.  Le format n'est pas dict� par les Normes,
  mais son contenu l'est (section 6.5).  Dh_make en cr�e un par d�faut, qui
  ressemble � ceci :

  <p><example>
  1  This package was debianized by Josip Rodin &lt;jrodin@jagor.srce.hr&gt; on
  2  Wed, 11 Nov 1998 21:02:14 +0100.
  3
  4  It was downloaded from &lt;fill in ftp site&gt;
  5
  6  Upstream Author(s): &lt;put author(s) name and email here&gt;
  7
  8  Copyright:
  9
  10 &lt;Must follow here&gt;
  </example>
  (J'ai ajout� les num�ros de ligne.)

  <p>Les choses importantes � ajouter � ce fichier sont l'endroit o� vous avez
  trouv� ce paquet, ainsi que le copyright et la licence d'exploitation r�elle
  (incluez-la en entier).  Si la licence est une des licences de logiciel
  libre populaires comme GNU GPL ou LGPL, BSD ou Artistic, vous pouvez juste
  faire r�f�rence au fichier appropri� dans le r�pertoire
  /usr/share/common-licenses/, qui existe sur chaque syst�me Debian. Gentoo
  est disponible sous la Licence Publique G�n�rale de GNU (GPL), donc nous
  changeons le fichier en :

  <p><example>
  1  This package was debianized by Josip Rodin &lt;jrodin@jagor.srce.hr&gt; on
  2  Wed, 11 Nov 1998 21:02:14 +0100.
  3
  4  It was downloaded from: ftp://ftp.obsession.se/gentoo/
  5
  6  Upstream Author: Emil Brink &lt;emil@obsession.se&gt;
  7
  8  This software is copyright (c) 1998-99 by Emil Brink, Obsession
  9  Development.
  10
  11 You are free to distribute this software under the terms of
  12 the GNU General Public License.
  13 On Debian systems, the complete text of the GNU General Public
  14 License can be found in /usr/share/doc/common-licenses/GPL file.
  </example>
  (J'ai ajout� les num�ros de ligne.)

  <sect id="changelog">changelog

  <p>C'est un fichier requis, qui a un format sp�cial d�crit dans le Manuel de
  Cr�ation de Paquets (section 3.2.3). Ce format est utilis� par dpkg et
  d'autres programmes pour obtenir le num�ro de version, de r�vision, de
  distribution et l'urgence de votre paquet.

  <p>Pour vous, il est aussi important, puisqu'il est bon de documenter toutes
  les modifications que vous avez faites. Cela aidera les gens qui
  t�l�chargent votre paquet si il y a des probl�mes non r�solus � propos
  desquels ils doivent �tre imm�diatement mis au courant. Ce sera sauv� sous
  � /usr/share/doc/gentoo/changelog.Debian.gz � dans le paquet binaire.

  <p>Dh_make en cr�e un par d�faut, voici � quoi il ressemble :

  <p><example>
  1  gentoo (0.9.12-1) unstable; urgency=low
  2
  3   * Initial Release.
  4
  5  -- Josip Rodin &lt;jrodin@jagor.srce.hr&gt; Wed, 11 Nov 1998 21:02:14 +0100
  6
  7  Local variables:
  8  mode: debian-changelog
  9  End:
  </example>
  (J'ai ajout� les num�ros de ligne.)

  <p>La ligne 1 est le nom du paquet, la version, la distribution et
  l'urgence. Le nom doit correspondre au nom du paquet source, la distribution
  devrait �tre � unstable � ou � experimental � (pour l'instant), et l'urgence ne
  devrait pas �tre chang�e en quoique ce soit de plus haut que � low �. :-)

  <p>Les lignes 3 � 5 sont l'entr�e d'audit, o� vous documentez les
  modifications faites dans la r�vision du paquet (pas les modifications
  amont - il y a un fichier sp�cial pour cela, cr�� par les auteurs en amont,
  install� comme /usr/share/doc/gentoo/changelog.gz). Les nouvelles lignes
  doivent �tre ajout�es juste avant la premi�re ligne qui commence avec une
  ast�risque (� * �). Vous pouvez le faire avec <manref name="dch" section="1">
  <manref name="emacs" section="1"> (les lignes 7 � 9 sont les informations de
  mode pour l'�diteur Emacs), ou tout autre �diteur de texte. Vous aurez
  quelque chose comme :

  <p><example>
  1  gentoo (0.9.12-1) unstable; urgency=low
  2
  3   * Initial Release.
  4   * This is my first Debian package.
  5   * Adjusted the Makefile to fix $DESTDIR problems.
  6
  7  -- Josip Rodin &lt;jrodin@jagor.srce.hr&gt; Wed, 11 Nov 1998 21:02:14 +0100
  8
  9  Local variables:
  10  mode: debian-changelog
  </example>
  (J'ai ajout� les num�ros de ligne.)

  <p>Quand vous distribuez une nouvelle r�vision, vous devez incr�menter le
  num�ro de version. Vous pouvez le faire avec � dch -i � ou explicitement avec
  � dch -v &lt;version&gt;-&lt;r�vision&gt; � et ins�rer ensuite les
  commentaires avec votre �diteur pr�f�r�. Astuce : comment ajouter facilement
  la date dans ce format ? Utilisez � 822-date � ou � date -R �.
  
  <p>Les nouvelles informations de version sont ajout�es au sommet du fichier
  changelog.  Voici ce � quoi ressemble changelog apr�s :

  <p><example>
  1  gentoo (0.9.12-2) unstable; urgency=low
  2
  3   * Fixed a glitch in the menu file.
  4
  5  -- Josip Rodin &lt;jrodin@jagor.srce.hr&gt; Wed, 11 Nov 1998 22:15:39 +0100
  6
  7  gentoo (0.9.12-1) unstable; urgency=low
  8
  9   * Initial Release.
  10  * This is my first Debian package.
  11  * Adjusted the Makefile to fix $DESTDIR problems.
  12
  13 -- Josip Rodin &lt;jrodin@jagor.srce.hr&gt; Wed, 11 Nov 1998 21:02:14 +0100
  14
  15 Local variables:
  16 mode: debian-changelog
  </example>
  (J'ai ajout� les num�ros de ligne.)

  <p>Vous pouvez en apprendre plus sur les nouvelles versions/r�visions du
  paquet plus loin dans <ref id="update">.

  <sect id="rules">fichier � rules �

  <p>Maintenant nous devons examiner les r�gles que <manref
  name="dpkg-buildpackage" section="1"> va utiliser pour cr�er vraiment le
  paquet. Ce fichier est en fait un autre Makefile, puisqu'il est ex�cut� avec
  � make -f �, mais diff�rent de celui des sources amont.

  <p>Chaque fichier � rules �, comme tout autre Makefile, consiste en plusieurs
  r�gles indiquant comment construire les sources. Les r�gles sont des cibles,
  noms de fichiers ou d'actions � ex�cuter (par exemple, � build: � ou
  � install: �). Les r�gles que vous voulez ex�cuter doivent �tre donn�es comme
  argument � la ligne de commande (par exemple, 'rules build' ou 'rules
  install'). Apr�s le nom de cible, vous pouvez nommer les d�pendances,
  programme ou fichier dont la cible d�pend. Apr�s cela il peut y avoir un
  nombre quelconque de commandes (qui commencent par &lt;tab&gt;!), jusqu'� ce
  qu'une ligne vide soit trouv�e. � ce moment, une autre r�gle intervient. Les
  lignes vides ainsi que celles qui commencent par un � # � (di�se) sont 
  consid�r�es comme des commentaires et ignor�es.
  
  <p>Tout ceci vous semble probablement confus pour l'instant, mais cela va devenir clair
  � l'examen du fichier � rules � que dh_make nous donne par d�faut. Vous
  devriez avoir lu l'entr�e � make � dans info pour plus d'information.

  <p>Ce qu'il faut savoir � propos du fichier rules cr�� par dh_make, est
  qu'il s'agit juste d'une suggestion.  Il fonctionnera pour des paquets
  simples, mais pour ceux qui sont plus compliqu�s, vous ne devez pas craindre
  de le modifier pour le faire correspondre � vos besoins.
  Les seules choses que vous ne pouvez pas changer sont les noms des r�gles,
  car tous les outils utilisent ces noms comme requis par le manuel du
  paquetage.


  <p><example>
  1  #!/usr/bin/make -f
  2  # Made with the aid of dh_make, by Craig Small
  3  # Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
  4  # Some lines taken from debmake, by Christoph Lameter.
  5
  6  # Uncomment this to turn on verbose mode.
  7  #export DH_VERBOSE=1
  8
  9  # This is the debhelper compatability version to use.
  10 export DH_COMPAT=1
  11
  12 build: build-stamp
  13 build-stamp:
  14    dh_testdir
  15
  16    # Add here commands to compile the package.
  17    $(MAKE)
  18
  19    touch build-stamp
  20
  21 clean:
  22    dh_testdir
  23    dh_testroot
  24    rm -f build-stamp
  25
  26    # Add here commands to clean up after the build process.
  27    -$(MAKE) clean
  28
  29    dh_clean
  30
  31 install: build-stamp
  32    dh_testdir
  33    dh_testroot
  34    dh_clean -k
  35    dh_installdirs
  36
  37    # Add here commands to install the package into debian/tmp.
  38    $(MAKE) install DESTDIR=`pwd`/debian/tmp
  39
  40 # Build architecture-independent files here.
  41 binary-indep: build install
  42 # We have nothing to do by default.
  43
  44 # Build architecture-dependent files here.
  45 binary-arch: build install
  46 #  dh_testversion
  47    dh_testdir
  48    dh_testroot
  49 #  dh_installdebconf
  50    dh_installdocs
  51    dh_installexamples
  52    dh_installmenu
  53 #  dh_installemacsen
  54 #  dh_installpam
  55 #  dh_installinit
  56    dh_installcron
  57    dh_installmanpages
  58    dh_installinfo
  59 #  dh_undocumented
  60    dh_installchangelogs
  61    dh_link
  62    dh_strip
  63    dh_compress
  64    dh_fixperms
  65    # You may want to make some executables suid here.
  66    dh_suidregister
  67 #  dh_makeshlibs
  68    dh_installdeb
  69 #  dh_perl
  70    dh_shlibdeps
  71    dh_gencontrol
  72    dh_md5sums
  73    dh_builddeb
  74
  75 binary: binary-indep binary-arch
  76 .PHONY: build clean binary-indep binary-arch binary install
  </example>
  (J'ai ajout� les num�ros de ligne).

  <p>Vous avez probablement l'habitude de la ligne 1 avec les scripts shell et
  perl. Cela signifie que ce fichier doit �tre ex�cut� par /usr/bin/make.

  <p>Les lignes 12 � 19 d�crivent la r�gle � build � (et sa fille build-stamp)
  qui ex�cute le fichier Makefile de l'application pour compiler le
  programme.

  <p>La r�gle � clean �, sp�cifi�e aux lignes 21-29, efface tous les binaires
  inutiles et les trucs g�n�r�s automatiquement, laiss�s l� par une
  construction du paquet.  Cette r�gle doit �tre op�rationnelle tout le temps
  (m�me si les r�pertoires sources <em>sont</em> nettoy�s.!), donc vous
  devriez utiliser les options pour forcer (p.e. pour rm, c'est � -f �) ou
  pour ignorer la valeur de retour (avec un � - � devant le nom de la commande).

  <p>Le processus d'installation, la r�gle � install �, commence � la ligne 31.
  Fondamentalement, elle ex�cute la r�ge install du fichier Makefile du
  programme, mais installe dans le r�pertoire `pwd`/debian/tmp - c'est pour
  cette raison que nous avons sp�cifi� $(DESTDIR) comme racine de
  l'installation dans le Makefile de gentoo.
  
  <p>Comme le commentaire le sugg�re, la r�gle � binary-indep � aux lignes 41
  est utilis�e pour construire les paquets ind�pendants de l'architecture.
  Comme nous n'en avons pas, rien ne sera fait ici.  Si votre paquet est
  � Architecture: all �, vous devez inclure dans cette r�gle toutes les
  commandes pour construire le paquet, et laisser la r�gle suivante
  (� binary-arch �) vide � la place.

  <p>Ensuite on trouve la r�gle � binary-arch �, des lignes 45 � 73, pour
  laquelle nous ex�cutons plusieurs petits utilitaires du paquet debhelper qui
  font quelques op�rations sur votre paquet pour le rendre conforme aux Normes
  Debian.

  <p>Les noms commencent par dh_ et la suite indique ce que chaque petit
  utilitaire fait vraiment.  Tout cela est plut�t explicite, mais voici
  quelques explications suppl�mentaires :

  <list>
  <item><manref name="dh_testdir" section="1"> v�rifie que vous �tes dans le
  bon r�pertoire (i.e. le r�pertoire racine des sources),
  <item><manref name="dh_testroot" section="1"> v�rifie que vous avez les
  permissions root, n�cessaire pour les cibles binaires, et pour le nettoyage,
  <item><manref name="dh_installmanpages" section="1"> copie les pages de
  manuel qu'il peut trouver dans les r�pertoires sources (attention, ce n'est
  pas un programme intelligent),
  <item><manref name="dh_strip" section="1"> retire les ent�tes de d�bogage
  des fichiers ex�cutables pour les rendre plus petits,
  <item><manref name="dh_compress" section="1"> gzipe les pages de manuel et
  la documentation plus large que 4 kb,
  <item><manref name="dh_installdeb" section="1"> copie les fichiers relatifs
  au paquet (p.e. les scripts du responsable) sous le r�pertoire
  debian/tmp/DEBIAN,
  <item><manref name="dh_shlibdeps" section="1"> calcule les d�pendances
  des biblioth�ques et des ex�cutables,
  <item><manref name="dh_gencontrol" section="1"> g�n�re et installe
  le fichier control,
  <item><manref name="dh_md5sums" section="1"> g�n�re les sommes de contr�le 
  MD5 pour tous les fichiers dans le paquet.
  </list>

  <p>Pour une information plus compl�te sur ce que font tous ces scripts dh_*,
  et ce que sont leurs options, lisez les pages de manuel.  Il y en a
  d'autres, potentiellement tr�s utiles, qui ne sont pas mentionn�s ici.  Si
  vous en avez besoin, lisez la documentation de debhelper.

  <p>La section binary-arch est celle o� vous devriez vraiment commenter les
  lignes dont vous n'avez pas besoin.  Pour gentoo, je commente les lignes
  concernant testversion, emacsen, pam, init, cron, manpages, info,
  undocumented, suidregister, makeshlibs, et perl, simplement parce que gentoo
  n'en a pas besoin.  De plus, � la ligne 60, je dois ajouter � FIXES �, parce
  que c'est le nom du fichier des modifications amont.

  <p>Les deux derni�res lignes (avec toutes celles qui ne sont pas expliqu�es
  ici) sont juste des choses plus ou moins n�cessaires, � propos desquelles
  vous pouvez lire dans le manuel de make, et dans le manuel de paquetage.
  Pour l'instant il n'est pas important d'en savoir plus.


  <chapt id="dother">Autres fichiers dans le r�pertoire debian/

  <p>Vous verrez qu'il y a plusieurs autres fichiers dans le sous-r�pertoire
  debian, la plupart d'entre eux avec le suffixe � .ex �, ce qui signifie
  qu'ils sont des exemples.  Si vous souhaitez ou devez utiliser une de ces
  options, examinez-les avec la documentation associ�e (astuce : le manuel des
  normes), renommez-les pour enlever le suffixe `.ex', et modifiez-les ainsi
  que le fichier � rules � si n�cessaire.  Certains de ces fichiers, les plus
  utilis�s, sont d�crits dans les sections suivantes.

  <sect id="readdeb">README.Debian

  <p>Tous les d�tails ou diff�rences entre le paquet original et votre
  version debianis�e devraient �tre inclus ici. Voici ce que dh_make cr�e par
  d�faut :

  <example>
  gentoo for Debian
  ----------------------

  &lt;possible notes regarding this package - if none, delete this file&gt;

  Josip Rodin &lt;jrodin@jagor.srce.hr&gt;, Wed, 11 Nov 1998 21:02:14 +0100
  </example>

  <p>Nous n'avons rien en particulier � mettre ici - il est permis d'effacer
  le fichier.

  <sect id="conffiles">conffiles

  <p>L'une des choses les plus irritantes � propos des logiciels est de 
  consacrer beaucoup de temps et d'efforts pour configurer un programme et de
  voir
  une seule mise � jour d�truire tous vos changements. Debian r�sout ce probl�me en
  marquant les fichiers de configuration de sorte que quand vous mettez � jour
  un paquet, il vous sera demand� si vous voulez gardez votre vieille
  configuration ou pas. Vous faites ceci en entrant le chemin complet de
  chaque fichier de configuration (en g�n�ral sous /etc), un par ligne dans un
  fichier nomm� conffiles.
  
  <p>Gentoo a un fichier de configuration, /etc/gentoorc, et nous le mettons
  dans � conffiles �. Il n'est pas n�cessaire d'avoir ce fichier si
  votre programme n'a pas de fichier de configuration.

  <sect id="dirs">dirs

  <p>Ce fichier sp�cifie les r�pertoires dont nous avons besoin mais que la
  proc�dure d'installation normale (make install) ne cr�e pas.
  
  <p>Par d�faut, il ressemble � ceci :

  <p><example>
  usr/bin
  usr/sbin
  </example>

  <p>Remarquez que le pr�fixe slash n'est pas inclus. Nous devrions normalement
  le changer comme ceci :

  <p><example>
  usr/X11R6/bin
  usr/X11R6/man/man1
  </example>

  mais ces r�pertoires sont d�j� cr��s dans Makefile, donc nous n'avons pas
  besoin de ce fichier, et pouvons l'effacer.

  <sect id="manpage">manpage.1.ex

  <p>Les fichiers finissant en *.ex sont des exemples pour savoir comment
  ajouter ce genre de support dans le paquet. Pour utiliser l'un d'entre
  eux, �ditez le et retirez l'extension .ex.  Si vous ne voulez pas
  l'utiliser, effacez-le.

  <p>Votre programme devrait avoir une page de manuel. S'il n'en a pas, ceci
  est un squelette que vous pouvez remplir. Lisez la page de manuel de <manref
  name="man" section="7"> pour une br�ve description de la cr�ation d'une page
  de manuel. Faites attention de donner � ce fichier le nom du programme et
  l'extension de la section dans laquelle il doit aller. Voici une courte
  liste :

  <p><example>
  Section |     Description      |     Notes
     1     Commandes utilisateur   Commandes ou scripts ex�cutables.
     2     Appel syst�me           Fonctions fournies par le noyau.
     3     Appel biblioth�que      Fonctions des biblioth�ques syst�me.
     4     Fichiers sp�ciaux       D'ordinaire trouv�s dans /dev.
     5     Formats de fichiers     Par ex. le format /etc/password.
     6     Jeux                    Ou d'autres programmes frivoles.
     7     Paquets de macros       Comme les macros de man.
     8     Administration syst�me  Des programmes d'habitude ex�cut�es par root.
     9     Routines noyau          Appels non standards et routines internes.
  </example>

  <p>Donc, la page de manuel de gentoo devrait �tre appel�e gentoo.1, ou
  gentoo.1x parce que c'est un programme X11. Il n'y avait pas de page de
  manuel gentoo.1 dans les sources original, donc j'en ai �crit un � partir de
  l'exemple et de la documentation amont.

  <sect id="menu">menu.ex

  <p>Les utilisateurs de X Window ont un gestionnaire de fen�tres avec un
  menu qui peut �tre configur�. S'ils ont install�s le paquet 'menu' de Debian,
  un ensemble de menu pour chaque programme sur le syst�me sera cr��
  pour eux. Ceci n'est pas requis pas le r�glement Debian, mais les
  utilisateurs appr�cieront certainement. Nous pouvons ajouter Gentoo aux
  menus en �ditant ce fichier. Voici le d�faut que dh_make cr�e :

  <p><example>
  ?package(gentoo):needs=X11|text|vc|wm section=Apps/see-menu-manual\
    title="gentoo" command="/usr/bin/gentoo"
  </example>

  <p>Le premier champ sp�cifie le genre d'interface dont le programme a
  besoin (i.e. text ou X11). Le suivant est le menu et le sous-menu dans
  lesquels l'entr�e devrait appara�tre. La liste courante des sections se
  trouve dans /usr/share/doc/debian-policy/menu-policy.html/ch2.html#s2.1. Le
  troisi�me est le nom du programme. Le quatri�me est l'ic�ne pour le
  programme ou rien s'il n'en a pas. Le cinqui�me est le texte r�el qui
  appara�tra dans le menu. Le sixi�me est la commande qui lance le programme.

  <p>Maintenant nous changeons l'entr�e menu en ceci :

  <p><example>
  ?package(gentoo):needs=X11 section=Apps/Misc \
    title="Gentoo" command="/usr/X11R6/bin/gentoo"
  </example>

  <p>Voir <manref name="menufile" section="5">, <manref name="update-menus" section="1">
  et /usr/share/doc/debian-policy/menu-policy.html/ pour plus d'information.


  <sect id="watch">watch.ex

  <p>Vous pouvez utiliser ce fichier en plus des programmes <manref name="uscan"
  section="1"> et de <manref name="uupdate" section="1"> (dans le paquet
  devscripts) pour surveiller le site sur lequel vous avez obtenu les sources.
  Voici ce que j'y ai mis :

  <p><example>
  # watch control file for uscan
  # Site                  Directory       Pattern                Version Script
  ftp.obsession.se        /gentoo         gentoo-(.*)\.tar\.gz   debian  uupdate
  </example>

  <p>Astuce: connectez-vous � Internet, et essayez d'ex�cuter 'uscan' dans le
  r�pertoire du programme une fois que vous avez cr�er ce fichier.  Et lisez
  les pages de manuel.

  <sect id="doc-base">ex.doc-base

  <p>Si votre paquet a de la documentation sous format HTML ou autre (�
  l'exclusion des pages de manuel et des documents info), vous devriez
  utiliser le fichier `doc-base' pour l'enregistrer, de sorte que
  l'utilisateur puisse le trouver avec par exemple <manref name="dhelp"
  section="1"> ou <manref name="dwww" section="1">.

  <p>Voici ce � quoi le fichier doc-base de gentoo ressemble :

  <p><example>
  Document: gentoo
  Title: Gentoo Manual
  Author: Emil Brink
  Abstract: This manual describes what Gentoo is, and how it can be used.
  Section: Apps/Tools

  Format: HTML
  Index: /usr/share/doc/gentoo/html/index.html
  Files: /usr/share/doc/gentoo/html/*.html
  </example>

  <p>Pour plus d'information sur le format de ce fichier, voir <manref
  name="install-docs" section="1"> et le manuel de doc-base, dans
  /usr/doc/doc-base/doc-base.html/index.html.

  <sect id="maintscripts">postinst.ex, preinst.ex, postrm.ex, prerm.ex

  <p>Ces fichiers sont nomm�s scripts de responsable.  Ils sont plac�s dans la
  zone de contr�le du paquet et sont ex�cut�s par dpkg lorsque votre paquet
  est install�, mis � jour ou supprim�.
  
  <p>Pour l'instant, vous devriez �viter les scripts de responsable si vous le
  pouvez parce qu'ils ont tendance � �tre complexes.  Pour plus d'information
  regardez dans le Manuel de Cr�ation de Paquets, et examinez les fichiers
  d'exemples fournis par dh_make.

  <p>Nous sommes maintenant pr�t pour construire le paquet.

  <chapt id="final">�tapes finales

  <sect id="build">Construire le paquet

  <p>Allez dans le r�pertoire principal du programme et lancez ceci :

  <p><example>
  dpkg-buildpackage -rfakeroot
  </example>

  <p>Ceci fera tout pour vous, vous avez juste � entrer votre cl� secr�te
  PGP, deux fois. Une fois que c'est fait, vous verrez quatre fichiers dans le
  r�pertoire ~/debian :

  <p><list>
  <item><em>gentoo_0.9.12-1_i386.deb</em>
  <p>Ceci est le paquet binaire compl�t�. Vous pouvez utiliser dpkg ou dselect
  pour l'installer ou le retirer juste comme tout autre paquet.

  <item><em>gentoo_0.9.12.orig.tar.gz</em>
  <p>Ceci est le code source original rassembl� de sorte que si quelqu'un
  d'autre veut recr�er votre paquet depuis le d�but, il le peut. Ou s'il
  n'utilise pas le syst�me de paquet Debian, mais a besoin de t�l�charger
  le code source et de le compiler.

  <item><em>gentoo_0.9.12-1.dsc</em>
  <p>Ceci est un r�sum� du contenu du code source. Ce fichier est g�n�r� �
  partir du fichier gentoo-0.9.12/debian/control, et est utilis� pour
  d�compresser les sources avec <manref name="dpkg-source" section="1">. Ceci
  est un fichier sign� avec PGP, de sorte que les gens peuvent �tre s�rs
  qu'il s'agit bien du v�tre.

  <item><em>gentoo_0.9.12-1.diff.gz</em>
  <p>Ce fichier compress� contient chacune des additions que vous avez faites
  au code source original, sous une forme connue comme � diff�rence unifi�e �.
  Il est cr�e et utilis� par <manref name="dpkg-source" section="1">.

  <item><em>gentoo_0.9.12-1_i386.changes</em>
  <p>Ce fichier contient toutes les modifications faites dans la r�vision
  courante du paquet, et est utilis� par les programmes de maintenance des
  archives FTP Debian pour y installer les paquets binaires et sources.  Il
  est partiellement g�n�r� � partir du fichier gentoo-0.9.12/debian/changelog
  et du fichier .dsc.

  <p>Au fur et � mesure que vous travaillez sur le paquet, son comportement va
  changer et de nouvelles capacit�s seront ajout�es. Les gens qui t�l�chargent
  votre paquet peuvent lire ce fichier et voir ce qui a chang�.  Les longues
  cha�nes de chiffres sont des sommes MD5 pour les fichiers mentionn�s. Les
  personnes t�l�chargeant vos fichiers peuvent les tester avec <manref
  name="md5sum" section="1"> et si les fichiers ne correspondent pas, ils
  sauront que le fichier a �t� corrompu ou qu'il a �t� pirat�. Ce fichier est
  sign� avec PGP, de sorte que les gens peuvent �tre encore plus s�rs qu'il
  s'agit bien du votre.
  </list>

  <p>Avec un paquet imposant, vous ne voudrez sans doute pas reconstruire depuis
  le d�but chaque fois que vous faites une petite modification.  Pour tester,
  vous pouvez faire un fichier .deb sans reconstruire les sources amont comme
  ceci :

  <p><example>
  fakeroot debian/rules binary
  </example>

  <p>Assurez-vous juste que votre r�gle � install � n'a *pas* de fille
  � install-stamp � (c'est en standard aujourd'hui), pour garantir que � dh_clean -k � est ex�cut� chaque fois. Et une fois que vous en avez fini avec vos
  r�glages, n'oubliez pas de reconstruire en suivant la proc�dure correcte,
  pour pouvoir t�l�charger correctement.

  <sect id="checkit">Contr�ler les erreurs du paquet

  <p>Lancez <manref name="lintian" section="1"> sur votre fichier .changes; ce
  programme va examiner un grand nombre d'erreurs de paquetage courantes. La
  commande est :

  <p><example>
  lintian -i gentoo_0.9.12-1_i386.changes
  </example>

  <p>Bien s�r, remplacez le nom de fichier par celui du fichier de changements
  g�n�r� pour votre paquet.  S'il s'av�re qu'il y a des erreurs (les lignes
  commen�ant avec E:), lisez l'explication (les lignes N:), corrigez les
  erreurs, et reconstruisez comme d�crit dans <ref id="build">. S'il y a des
  lignes qui commencent avec W:, il s'agit de mises en garde, donc vous pouvez
  �tre s�r que votre paquet est bon (mais il n�cessite certainement des
  modifications mineures).

  <p>Remarquez que vous pouvez reconstruire le paquet avec dpkg-buildpackage
  et lancer lintian en une seule commande <manref name="debuild" section="1">.

  <p>Regardez dans votre paquet en utilisant un gestionnaire de fichiers comme
  <manref name="mc" section="1"> ou d�compressez-le dans une place temporaire
  en utilisant <manref name="dpkg-deb" section="1">.  Cherchez avant tout les
  fichiers inutiles � la fois dans les paquets binaire et source, au cas o�
  les choses se seraient mal pass�es et que des crasses n'auraient pas �t�
  nettoy�es.  Astuce: `zgrep ^+++ ../gentoo_0.9.12-1.diff.gz` vous donnera la
  liste de vos modifications/additions au fichiers sources, et `dpkg-deb -c
  gentoo_0.9.12-1_i386.deb` la liste des fichiers dans le paquet.

  <p>Installez le paquet pour le tester vous-m�me, par exemple en utilisant
  <manref name="debi" section="1"> en tant que root.  Essayez de l'installer
  sur d'autres machines que la votre et v�rifier attentivement chaque
  avertissement ou erreur � l'installation ou en ex�cutant le programme.

  <p>Plus tard, quand vous construisez une nouvelle version, vous devriez
  faire les choses suivantes pour assurer une mise � jour de base de votre
  paquet :

  <list>
  <item>mettez � jour � partir de la version pr�c�dente (et � partir de la
  version de la derni�re distribution Debian),
  <item>revenez � la version pr�c�dente.
  <item>installez le paquet comme un nouveau paquet (i.e., sans version
  pr�c�dente d'install�e),
  <item>retirez le, r�installez le � nouveau, et puis purgez le.
  </list>

  <sect id="upload">Envoyer votre paquet

  <p>Maintenant que vous avez test� votre nouveau paquet en d�tail, vous
  devez t�l�charger ces fichiers � master.debian.org, en utilisant <manref
  name="dupload" section="1">. D'abord vous devez cr�er le fichier de
  configuration d'upload, ~/.dupload.conf.  Mettez-y quelque chose comme ceci :

  <p><example>
  package config;
  $default_host = "master";
  
  $cfg{master}{"method"} = "scpb";
  $cfg{master}{"login"} = "joy";
  $cfg{master}{"visibleuser"} = "jrodin";
  $cfg{master}{"visiblename"} = "jagor.srce.hr";
  $cfg{master}{"fullname"} = "Josip Rodin";
  
  $cfg{non-us}{"method"} = "scpb";
  $cfg{non-us}{"login"} = "joy";
  $cfg{non-us}{"visibleuser"} = "jrodin";
  $cfg{non-us}{"visiblename"} = "jagor.srce.hr";
  $cfg{non-us}{"fullname"} = "Josip Rodin";
  
  1;
  </example>

  <p>Bien s�r, remplacez mes informations personnelles par les v�tres, et lisez
  la page de manuel <manref name="dupload.conf" section="5"> pour comprendre
  ce que chacune de ces options signifie.

  <p>Puis connectez-vous � votre fournisseur Internet et lancez cette
  commande :

  <p><example>
  dupload --to master gentoo_0.9.12-1_i386.changes
  </example>

  <p>Dupload v�rifie que les sommes md5 des fichiers sont identiques � celles
  du fichier .changes, pour qu'il puisse vous avertir de reconstruire comme
  d�crit dans <ref id="build"> et qu'il charge le fichier correctement.

  <p>Dupload vous demandera votre mot de passe sur master.debian.org,
  t�l�chargera vos paquets, et donnera une annonce courte de votre
  t�l�chargement sur <email/debian-devel-changes@lists.debian.org/ si
  n�cessaire.

  <p>Si vous vivez en Europe, vous pouvez utiliser d'autres queues de
  t�l�chargement � la place de master. Pour des d�tails lisez <manref
  name="dupload.conf" section="5"> et la R�f�rence du D�veloppeur.

  <sect id="update">Mettre � jour le paquet

  <p>Disons qu'un rapport de bogue a �t� rempli pour votre paquet, #54321, et
  qu'il d�crit un probl�me que vous pouvez r�soudre.  Pour cr�er une nouvelle
  r�vision du paquet, vous devez:

  <list>
  <item>Corriger le probl�me dans le paquet source, bien s�r.
  
  <item>Ajouter une nouvelle r�vision dans le fichier changelog Debian, avec
  � dch -i �, et inclure une courte description du bogue et de la solution,
  suivie par ceci : � Closes: #54321 �.  De cette mani�re, le rapport de bogue
  sera automatiquement ferm� par le logiciel de maintenance des archives au
  moment o� votre paquet sera accept� dans l'archive Debian.

  <item>Recommencez ce que vous aviez fait dans <ref id="build">, <ref
  id="checkit">, et <ref id="upload">.  La diff�rence est que cette fois,
  l'archive des sources originales ne sera pas inclue, car elle n'a pas �t�
  chang�e et est d�j� dans l'archive Debian.
  </list>

  <p>Consid�rons maintenant une autre situation, l�g�rement plus compliqu�e -
  une nouvelle version amont est disponible, et bien s�r vous voulez en faire
  un paquet.  Vous devez donc :

  <list>
  <item>t�l�charger les sources et mettre l'archive source (par exemple nomm�e
  `gentoo-0.9.13.tar.gz') dans le r�pertoire au dessus des anciennes sources
  (par exemple ~/debian/).

  <item>Entrez dans le r�pertoire source ancien, et lancez:

  <example>
  uupdate -u gentoo-0.9.13.tar.gz
  </example>

  Bien s�r, remplacez le nom de fichier par celui de l'archive source de votre
  programme.  <manref name="uupdate" section="1"> va correctement renommer
  cette archive, essayer d'appliquer les modifications de votre pr�c�dent
  fichier .diff.gz, et mettre � jour le nouveau fichier debian/changelog.

  <item>Allez dans le r�pertoire `../gentoo-0.9.13', l'arbre des sources du
  nouveau paquet, et recommencez ce que vous aviez fait dans <ref id="build">,
  <ref id="checkit"> et <ref id="upload">.
  </list>

  <p>Remarquez que si vous configurez `debian/watch' comme indiqu� dans <ref
  id="watch">, vous pouvez lancer <manref name="uscan" section="1"> pour
  automagiquement chercher les nouvelles sources, les t�l�charger et ex�cuter
  uupdate dessus.

  <sect id="whereishelp">O� demander de l'aide

  <p>Avant de vous d�cider � poser une question dans un lieu public, s.v.p.
  RTFM. Ceci inclut la documentation sous /usr/share/doc/dpkg,
  /usr/share/doc/debian, /usr/share/doc/debhelper et les pages de
  manuel/d'info pour tous les programmes mentionn�s dans cet article. Quand
  vous recevez un rapport de bogue (oui, un rapport de bogue r�el!) vous
  saurez qu'il est temps de plonger dans le <url name="Syst�me de Suivi de Bogues
  Debian" id="http://www.debian.org/Bugs/"> et lisez la documentation, pour
  �tre � m�me de g�rer les rapports efficacement.

  <p>En joignant la liste de discussion Debian Mentors �
  <email/debian-mentors@lists.debian.org/ vous pouvez joindre des d�veloppeurs
  Debian exp�riment�s qui vous aideront avec les questions que vous pouvez
  avoir.  Vous pouvez vous y inscrire en envoyant un courriel �
  <email/debian-mentors-request@lists.debian.org/ avec le mot 'subscribe' dans
  le sujet du message.

  <p>Si vous avez encore des questions, posez-les sur la liste de discussion
  Debian Developers � <email/debian-devel@lists.debian.org/. Vous pouvez vous y
  inscrire en envoyant un courriel �
  <email/debian-devel-request@lists.debian.org/ avec le mot � subscribe � dans
  le sujet du message. Si vous �tes d�j� un d�veloppeur Debian, vous devriez y
  �tre inscrit de toute mani�re.

  <p>M�me si tout marche bien, il est temps de commencer � prier. Pourquoi ?
  Parce que dans quelques heures (ou jours) les utilisateurs du monde entier
  vont commencer � utiliser votre paquet, et si vous avec fait des erreurs
  critiques vous serez bombard� par les courriels d'utilisateurs Debian
  furieux... Je plaisante. :-)

  <p>Relaxez-vous et soyez pr�t pour les rapports de bogues, parce qu'il y aura
  beaucoup plus de travail � faire avant qu'il soit parfaitement conforme
  aux r�gles Debian (une fois encore, lisez la <em>documentation r�elle</em>
  pour les d�tails). Bonne chance !
 </book>

</debiandoc>