File: maint-guide.fr.sgml

package info (click to toggle)
maint-guide 1.0
  • links: PTS
  • area: main
  • in suites: potato
  • size: 428 kB
  • ctags: 8
  • sloc: makefile: 89; sh: 8
file content (1567 lines) | stat: -rw-r--r-- 70,869 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
1561
1562
1563
1564
1565
1566
1567
<!doctype debiandoc system>

<debiandoc>

 <book>

  <titlepag>

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

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

   <version>version 1.0, 25 janvier 2000.</version>

   <copyright>
   <copyrightsummary>
	  Copyright &copy; 1998, 1999, 2000 Josip Rodin.
   </copyrightsummary>

   <p>Ce document peut tre utilis selon les termes de la Licence publique
   gnrale 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 manire 

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

  <p>Une des choses qui font de Debian une distribution de si haut niveau est
  son systme 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 tche trs difficile. Eh bien, si vous
  tes vraiment un dbutant sous Linux, c'est dur, mais si vous tiez un
  dbutant, 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 ncessaires au dveloppement.

  <p>Avant de commencer quoi que ce soit, vous devriez vous assurer que vous
  avez correctement install certains paquets supplmentaires ncessaires pour
  le dveloppement. Notez que la liste ne contient aucun paquet marqu
  'essentiel' ou 'requis' - nous supposons que vous avez dj 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 cration, donc les paquets nomms 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 dj (ainsi que les paquets
  supplmentaires dont ils dpendent). Nanmoins, vous devriez le vrifier avec
  `dpkg -s paquet`.

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

  <item><em>cpp</em> - le prprocesseur 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 ncessaires pour
  dpaqueter, construire et tlcharger les paquets sources Debian.  (voir
  <manref name="dpkg-source" section="1">)
  
  <item><em>file</em> - ce programme bien pratique peut dterminer 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 bibliothques et fichiers d'entte C dont gcc a
  besoin pour les lier aux fichiers objets crs. 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 cration d'un programme prend plusieurs
  tapes. Plutt que d'avoir  taper les mmes commandes encore et encore,
  vous pouvez utiliser ce programme pour automatiser le processus, en
  crant des fichiers  Makefile . Certains programmes utilisent
  aussi imake et
  xmkmf, des programmes utiliss pour gnrer les fichiers Makefile  partir
  d'un ensemble de fonctions macros. Beaucoup de logiciels rcents utilisent
  des scripts de configurations et des fichiers Makefile crs  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 trs utile prend un fichier contenant
  une liste de diffrences (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
  utiliss sur les systmes un*x modernes, souvent qualifi de  trononneuse
  suisse d'Unix . (voir <manref name="perl" section="1">)
  </list>

  <p>Vous devrez probablement installer vous-mme les programmes suivant de la
  section `devel' de la distribution :

  <list>
  <item><em>dh-make</em> et <em>debhelper</em> - dh-make est ncessaire pour
  crer le squelette de notre exemple de paquet et il utilise certains outils
  de debhelper pour crer les paquets. Ils ne sont pas indispensables pour la
  cration des paquets, mais ils sont <strong>fortement</strong> recommands
  pour les nouveaux responsables. Ils rendent le processus complet bien plus
  facile  dmarrer, et  contrler par aprs. (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
  cration de paquets. (voir /usr/share/doc/devscripts/README.debian.gz)

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

  <item><em>lintian</em> - c'est le vrificateur de paquet Debian, qui peut
  vous indiquer de nombreuses erreurs courantes aprs que vous ayez construit
  le paquet et expliquer les erreurs trouves. (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>trs 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 considrations sur l'architecture
  du systme d'exploitation,
  la Norme de hirarchie des fichiers, et le plus important (pour vous)
  est qu'il dcrit les critres que chaque paquet doit vrifier 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
  spcifique aux dtails techniques de la cration de paquets, comme la
  structure des archives, comment renommer, rendre orphelin, choisir un
  paquet, faire un NMU (une version du paquet non responsable),
  comment grer les bogues, o et quand tlcharger, etc. (voir
  /usr/share/doc/developers-reference/developers-reference.html/index.html)

  <item><em>packaging-manual</em> - dcrit les aspects techniques de la
  cration des paquets binaires et sources Debian. (voir
  /usr/share/doc/packaging-manual/packaging.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> numriquement votre
  paquet.  Ceci est spcialement 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
  amricaine plutt stupide, vous ne pouvez pas simplement le tlcharger de
  votre site FTP Debian le plus proche. Cependant, Debian fournit ces paquets
  via un site qui n'est pas physiquement situs 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 donnes 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>trs</em> content de l'avoir fait.
  
  Remarque: <em>debmake</em> est un paquet qui contient certains programmes
  qui fonctionnent d'une manire similaire  dh-make, mais son usage
  spcifique 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 mlangez 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 dtails 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 mme 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>Aprs que vous ayez construit votre paquet (ou pendant la cration), 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 Rfrence du dveloppeur.
  Veuillez le lire.

  <chapt id="first">Premiers pas

  <p>Puisque la documentation au <url name="Coin des dveloppeurs"
  id="http://www.debian.org/devel/"> n'est pas trs 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
  insignifiante), et vous aider  crer ce premier paquet, ainsi qu' gagner
  de l'exprience pour construire les versions suivantes de ce paquet ou
  d'autres plus tard.

  <sect id="choose">Choisir votre programme

  <p>Vous avez probablement dj choisi le paquet que vous voulez construire,
  mais voici quelques lments pour les non-initis :

  <list>
  <item>vrifiez si le paquet est dj 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>,
  vrifiez 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/doc/prospective-packages.html"> (Travail
  ncessaire 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 intressant que personne ne maintient.
  </item>

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

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

  <item>le programme ne devrait pas tre un dmon, ou quelque chose qui va
  dans les rpertoires */sbin.
  </item>

  <item>le programme devrait tre sous forme de binaire excutable. N'essayez
  pas encore les bibliothques.
  </item>

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

  <item>vous devriez contacter le(s) auteur(s) du programme pour vrifier
  qu'ils sont d'accord pour la cration du paquet. Il est important d'tre 
  mme de consulter le(s) auteur(s)  propos du programme en cas de problmes
  spcifiques au programme, aussi n'essayez pas de crer un paquet  partir de
  programmes non maintenus.
  </item>

  <item>enfin, vous devriez savoir qu'il fonctionne, et l'avoir test pendant
  quelques temps.
  </item>
  </list>

  <p>Bien sr, toutes ces remarques ne sont que des mesures de scurit, et
  ont pour but de vous sauver d'utilisateurs fous de rage si vous faites
  une erreur dans un dmon setuid... Quand vous aurez plus d'exprience
  dans la cration des paquets, vous serez capable de faire de tels paquets,
  mais mme les dveloppeurs les plus expriments consultent la liste de
  discussion debian-devel en cas de doute. Et l les gens seront contents de
  les aider.

  <p>Pour plus d'informations  ce sujet, consultez la Rfrence du
  Dveloppeur.

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

  <p>La premire chose  faire est de trouver et de tlcharger le paquet
  original. Je suppose que vous avez dj 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-rpertoire nomm programme-version avec toutes les
  sources dedans. Si la source de votre programme est disponible dans une
  autre sort d'archive (par exemple, le programme se termine par '.Z' ou
  '.zip'), dcompressez-le avec les outils adquats ou demandez sur
  debian-mentors si vous n'tes pas sr quant  la faon de le
  dcompresser
  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
  dj un paquet pour ce programme, et qu'il a chang
  substantiellement depuis que ce texte a t crit la
  premire fois.

  <p>Crez un sous-rpertoire sous votre rpertoire racine nomm
   debian  ou  deb  ou quoi que ce soit d'adquat (ou le nom du programme,
  ~/gentoo, ferait l'affaire dans notre cas). Placez l'archive
  tlcharge dedans, et dcompressez la avec  tar
  -xzf gentoo-0.9.12.tar.gz .  Assurez-vous qu'il n'y a pas d'erreurs, mme
   sans importance , parce qu'alors il y aura des problmes pour dcompresser
  sur les systmes d'autres personnes, dont les outils de dcompressions
  pourraient ne pas supporter ces erreurs.

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

  <p>La mthode varie d'un programme  l'autre, mais de nombreux programmes
  modernes viennent avec un script  configure  qui configure les
  sources selon
  votre systme et s'assure que votre systme est  mme de les compiler.
  Aprs la configuration (avec `./configure`), les programmes sont compils
  avec  make .  Certains d'entre-eux supportent  make check , pour
  se tester
  eux-mmes.  L'installation dans les rpertoires de destination est
  gnralement obtenue avec  make install .
  
  <p>Maintenant, essayez de compiler et d'excuter 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 gnralement entrer  make uninstall  pour
  retirer tous les fichiers installs, et  make clean  (ou mieux,  make
  distclean ) pour nettoyer le rpertoire de compilation.

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

  <p>Vous devriez commencer la cration du paquet avec un rpertoire source
  compltement propre (originel), ou plus simplement avec les sources
  frachement dcompresses.

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

  <p>Si le nom du programme consiste en plus d'un mot, rduisez le  un mot,
  ou faites une abrviation.  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 gnral
  20 caractres.

  <p>Vrifiez aussi la version exacte du programme (qui sera inclus
  dans la version du paquet). Si ce logiciel n'est pas numrot
  avec un numro de version comme X.Y.Z, mais avec une date de
  distribution, vous pouvez utiliser cette date comme numro de version, avec
  comme prfixe '0.0.' (juste au cas o les responsables amonts dcident de
  distribuer une jolie version comme 1.0).  Donc, si la date est le 19
  dcembre 1998, vous pouvez utilisez 0.0.19981219 comme chane pour la
  version. Certains ne seront pas numrots du tout, auquel cas
  vous devriez contacter le responsable amont pour voir si il a une autre
  mthode de gestion des rvisions.

  <sect id="dh_make">Lancer  dh_make 

  <p>Vrifiez que vous tes dans le rpertoire 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 sur, remplacez la chane  votre.adresse@de.responsable  avec votre
  adresse ml pour l'inclure dans l'entre 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 dtails.
   
  <p>Des informations sont affiches. Il vous demande quelle sorte de
  paquet vous voulez crer. Gentoo est un paquet binaire simple - il ne
  cre qu'un excutable, et donc un seul fichier .deb - donc
  nous slectionnons la premire option, avec la touche  s ,
  vrifions l'information sur l'cran et confirmons en pressant
  &lt;enter&gt;. En tant que nouveau responsable, vous ne devriez pas
  crer des paquets composs, ou des bibliothques, comme
  expliqu plus haut.  Ce n'est pas si difficile, mais cela requiert un peu
  plus de connaissances, donc nous n'en dtaillerons pas tout ici.

  <p>Notez que vous ne pouvez excuter dh_make <strong>qu'une fois</strong>,
  et qu'il ne se comportera par correctement si vous l'excutez encore dans le
  mme rpertoire dj debianis. Cela signifie aussi que vous devrez utiliser
  une autre mthode pour distribuer une nouvelle rvision 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-mmes dans les
  sous-rpertoires /usr/local. Mais les paquets Debian ne doivent pas utiliser
  ce rpertoire, car il est rserv  l'usage priv de l'administrateur
  systme (ou de l'utilisateur). Cela signifie que vous devez examinez le
  systme de cration de votre programme, en gnral en commenant par le
  Makefile. C'est le script que <manref name="make" section="1"> utilisera
  pour automatiser la cration du programme. Pour plus de dtails 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 gnres 
  partir des Makefile.am, et que chaque appel de ./configure fera de mme avec
  les fichiers Makefile, avec des donnes 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
  chane entoure de  @ , comme par exemple @CFLAGS@ ou @LN_S@, qui sont
  remplaces par des valeurs relles  chaque appel d'autoconf.
  
  <p>Notez qu'il n'y a pas la place ici pour entrer dans <em>tout</em> les
  dtails sur les modifications, mais voici quelques-uns des problmes qui
  reviennent souvent.

  <sect id="destdir">Installer dans un sous-rpertoire

  <p>La plupart des programmes ont une certaine manire de s'installer
  dans la structure de rpertoire de votre systme, de sorte que
  leurs excutables 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-rpertoire temporaire qui sera cr sous votre
  rpertoire 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 rpertoire sera install sur le systme de
  l'utilisateur quand il installe votre paquet, la seule diffrence est que
  dpkg installera les fichiers dans le rpertoire 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
  rpertoire 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 concernes 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 insrer deux nouvelles lignes qui disent :

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

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

  <p>Mais pourquoi dans ce rpertoire, et pas dans un autre ? Parce que Debian
  a dfini quelques rgles indiquant o les programmes doivent tre installs.
  Ceci est spcifi dans le Standard de la Hirarchie de Fichiers
  (/usr/share/doc/debian-policy/fhs). Ainsi, nous devons installer
  l'excutable 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>Aprs 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 rgles, vous devrez diter quelques sources C. Mais
  o et que chercher ? Vous pouvez trouver o en lanant :
  <p><example>
  grep -n usr/local/lib *.[ch]
  </example>
  (dans chaque sous-rpertoire qui contient des fichiers .c et .h). Grep vous
  dira le nom du fichier et le numro de ligne o il trouve une occurrence.
  Maintenant ditez ces fichiers et aux lignes indiques, remplacez
  usr/local/lib par usr/share - et voil. Remplacez juste usr/local/lib avec
  votre rpertoire, et faites attention de ne pas casser le reste du code, si
  vous ne vous y connaissez pas trop en programmation C :-)

  <p>Aprs quoi vous devez trouver la cible d'installation (cherchez une ligne
  qui commence avec  install: ) et renommez toutes les rfrences aux
  rpertoires autres que ceux dfinis au dbut du Makefile. Dans notre cas,
  c'est dj fait et 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>Aprs 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 fates des modifications qui ne sont pas
  spcifiquement 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 tous autre modification.  En essayez d'tre gentil avec le
  responsable amont, en vitant de faire des corrections spcifiques  Debian
  ou Linux (ou mme Unix).

  <sect id="difflibs">Bibliothques diffrentes

  <p>Il y a souvent un problme commun : des bibliothques sont souvent
  diffrentes d'une plate-forme  l'autre. Par exemple, Makefile peut contenir
  une rfrence  une bibliothque qui n'existe pas dans Debian. Dans ce cas,
  nous devons la changer en une bibliothque qui existe dans Debian, et qui sert
   la mme chose.  La meilleure mthode est de commenter ces lignes parce
  qu'elles peuvent fournir des indices  d'autres qui ont le mme problme.

  <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-rpertoire sous le rpertoire principal du
  programme ('gentoo-0.9.12'), nomm  debian . Il
  y a un certain nombre de fichiers dans ce rpertoire. 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 grer le paquet. Voici le fichier  control  que dh_make cre 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 numros de ligne.)

  <p>Les lignes de 1  5 sont les informations de contrle 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 divise en sections: main
  (logiciels libres), non-free (logiciels pas vraiment libres), et contrib
  (logiciels libres qui dpendent de logiciels non libres). Sous celles-ci, il
  y a des sous-sections logiques qui dcrivent de manire concise les paquets
  qui s'y trouvent. Ainsi nous avons `admin' pour les programmes rservs 
  l'administrateur, `base' pour les outils de base, `devel' pour les outils de
  programmation, `doc' pour la documentation, `libs' pour les bibliothques,
  `mail' pour les lecteurs et les dmons de courriel, `net' pour les
  applications et dmons rseaux, `x11' pour les programmes spcifiques  X11,
  et bien d'autres.

  <p>Changeons donc la section en x11.

  <p>La ligne 3 dcrit l'importance pour l'utilisateur d'installer ce paquet.
  Les sections et les priorits ne sont utiliss que par dselect quand il trie
  les paquets et slectionne les dfauts, et elles peuvent (et seront
  probablement) modifies 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 ml du responsable.

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

  <p>Si un compilateur non-standard ou d'autres outils sont ncessaires 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 dcrit 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 approprie pour toute
  machine sur laquelle ce paquet sera compil (voir la Rfrence du
  Dveloppeur pour une explication sur ce qu'est le portage de paquet).  Si
  votre paquet est indpendant d'une architecture (par exemple, un script
  shell ou Perl, ou un document), changez cette entre en 'all' et lisez plus
  tard dans <ref id="rules"> comment utiliser la rgle `binary-indep' au lieu
  de `binary-arch' pour construire le paquet.

  <p>La ligne 9 montre une des capacits les plus puissantes de systme de
  paquet Debian. Les paquets peuvent tre lis entre eux de plusieurs
  mthodes. A part Depends les autres 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 mme manire quand ils grent
  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 qu'elles veulent dire normalement :

  <p><list>
  <item>Depends:
  <p>Le paquet ne sera pas install  moins que les paquets dont il dpend ne
  soient installs. Utilisez le si votre programme ne s'excutera absolument
  pas (ou causera des dgts srieux)  mois qu'un paquet particulier ne soit
  prsent.</item>

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

  <item>Suggests:
  <p>Quand un utilisateur installe votre programme dselect lui demandera s'il
  faut installer les programmes qu'il suggre.  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 ncessaires.</item>

  <item>Pre-Depends:
  <p>Ceci est plus fort que Depends. Le paquet ne sera pas install  moins
  que les paquets dont il pr-dpend ne soient installs <em>et correctement
  configurs</em>. Utilisez le <strong>trs</strong> rarement et seulement
  aprs 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 retirs.
  Utilisez ceci si votre programme ne peut absolument pas tre excut (ou si
  il causera d'normes problmes) si un paquet particulier est prsent.</item>

  <item>Provides:
  <p>Quand il y a plusieurs alternatives pour certains types de paquets, des
  noms virtuels ont t dfinis. La liste complte 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 compltement un autre paquet (utilis en conjonction
  avec Conflicts:). Les fichiers du paquet nomm seront retirs avant
  d'installer le votre.
  </item>
  </list>

  <p>Tous ces champs ont une syntaxe uniforme. Il s'agit d'une liste de
  paquets spars par des virgules. Ces noms de paquets peuvent aussi tre une
  liste d'alternatives, spars par des symboles barre verticale <tt>|</tt>
  (symbole tuyau). Les champs peuvent tre restreints a des versions
  particulires de chaque paquet nomm.  Ces versions sont listes entre
  parenthses aprs chaque nom de paquet individuel, et doivent contenir une
  relation de la liste suivante suivie par un numro de version. Les relations
  autorises 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 dernire capacit que vous devez connatre est
  $(shlibs:Depends). Ceci sera automatiquement gnr par <manref
  name="dh_shlibdeps" section="1"> et rempli par <manref name="dh_gencontrol"
  section="1"> avec les noms de toutes les bibliothques partages, comme
  libc6 ou xlib6g, que votre programme utilise, de sorte que vous ne devez pas
  le spcifier vous-mme.  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 capacits 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 dpasser les 60 caractres.
  Je le change en  A fully GUI configurable GTK+ file manager .

  <p>La ligne 12 est l o la description va. Celle-ci devrait tre un
  paragraphe qui donne plus de dtails sur le paquet. La premire 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 aprs 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 numros 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 cre un par dfaut, 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 numros de ligne.)

  <p>Les choses importantes  ajouter  ce fichier est l'endroit o vous avez
  trouv ce paquet, ainsi que le copyright et la licence d'exploitation relle
  (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 rfrence au fichier appropri dans le rpertoire
  /usr/share/common-licenses/, qui existe sur chaque systme Debian. Gentoo
  est disponible sous la Licence Publique Gnrale 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 numros de ligne.)

  <sect id="changelog">changelog

  <p>C'est un fichier requis, qui a un format spcial dcrit dans le Manuel de
  Cration de Paquets (section 3.2.3). Ce format est utilis par dpkg et
  d'autres programmes pour obtenir le numro de version, de rvision, 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
  tlchargent votre paquet si il y a des problmes non rsolus a propos
  desquels ils doivent tre immdiatement mis au courant. Ce sera sauv sous
  `/usr/share/doc/gentoo/changelog.Debian.gz' dans le paquet binaire.

  <p>Dh_make en cre un par dfaut, 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 numros 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 change  quoique ce soit de plus haut que  low . :-)

  <p>Les lignes 3  5 sont l'entre d'audit, o vous documentez les
  modifications faites dans la rvision du paquet (pas les modifications
  amonts - il y a un fichier spcial pour cela, cr par les auteurs amonts,
  install comme /usr/share/doc/gentoo/changelog.gz). Les nouvelles lignes
  doivent tre ajoutes juste avant la premire ligne qui commence avec une
  astrisque ('*'). 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 numros de ligne.)

  <p>Quand vous distribuez une nouvelle rversion, vous devriez incrmenter le
  numro de version. Vous pouvez le faire avec `dch -i' ou explicitement avec
  `dch -v &lt;version&gt;-&lt;rvision&gt;` et insrer ensuite les
  commentaires avec votre diteur prfr. Astuce : comment ajouter facilement
  la date dans ce format ? Utilisez `822-date` ou `date -R`.
  
  <p>Les nouvelles informations de version sont ajoutes au sommet du fichier
  changelog.  Voici ce  quoi ressemble changelog aprs :

  <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 numros de ligne.)

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

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

  <p>Maintenant nous devons examiner les rgles que <manref
  name="dpkg-buildpackage" section="1"> va utiliser pour crer vraiment le
  paquet. Ce fichier est en fait un autre Makefile, puisqu'il est excut avec
   make -f , mais diffrent de celui des sources amont.

  <p>Chaque fichier 'rules', comme tout autre Makefile, consiste en plusieurs
  rgles indiquant comment construire les sources. Les rgles sont des cibles,
  noms de fichiers ou d'actions  excuter (par exemple, 'build:' ou
  'install:'). Les rgles que vous voulez excuter doivent tre donnes comme
  argument  la ligne de commande (par exemple, 'rules build' ou 'rules
  install'). Aprs le nom de cible, vous pouvez nommer les dpendances,
  programme ou fichier dont la cible dpend. Aprs cela il peut y avoir un
  nombre quelconque de commandes (qui commencent par &lt;tab&gt;!), jusqu' ce
  qu'une ligne vide soit trouve.  ce moment, une autre rgle intervient. Les
  lignes vides ainsi que celles qui commencent par un  #  (dise) sont 
  considres comme des commentaires et ignores.
  
  <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 dfaut. Vous
  devriez avoir lu l'entre  make  dans info pour plus d'information.

  <p>Ce qu'il faut savoir  propos du fichier rules cr par df_make, est
  qu'il s'agit juste d'une suggestion.  Il fonctionnera pour des paquets
  simples, mais pour ceux qui sont plus compliqus, vous ne devez pas craindre
  d'y ajouter ou d'en soustraire pour le faire correspondre  vos besoins.
  Les seules choses que vous ne pouvez pas changer sont les noms des rgles,
  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 numros 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 excut par /usr/bin/make.

  <p>Les lignes 12  19 dcrivent la rgle 'build' (et sa fille build-stamp)
  qui excutent le fichier Makefile de l'application pour compiler le
  programme.

  <p>La rgle 'clean', spcifie aux lignes 21-29, efface tous les binaires
  inutiles et les trucs gnrs automatiquement, laisss l par une
  construction du paquet.  Cette rgle doit tre oprationnelle tout le temps
  (mme si la les rpertoires sources <em>sont</em> nettoys.!), 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 rgle 'install', commence  la ligne 31.
  Fondamentalement, elle excute la rge install du fichier Makefile du
  programme, mais installe dans le rpertoire `pwd`/debian/tmp - c'est pour
  cette raison que nous avons spcifi $(DESTDIR) comme racine de
  l'installation dans le Makefile de gentoo.
  
  <p>Comme le commentaire le suggre, la rgle 'binary-indep' aux lignes 41
  est utilis pour construire les paquets indpendants 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 rgle toutes les
  commandes pour construire le paquet, et laisser la rgle suivante
  (`binary-arch') vide  la place.

  <p>Ensuite on trouve la rgle 'binary-arch', des lignes 45  73, pour
  laquelle nous excutons plusieurs petits utilitaires du paquet debhelper qui
  font quelques oprations 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 plutt explicite, mais voici
  quelques explications supplmentaires :

  <list>
  <item><manref name="dh_testdir" section="1"> vrifie que vous tes dans le
  bon rpertoire (i.e. le rpertoire racine des sources),
  <item><manref name="dh_testroot" section="1"> vrifie que vous avez les
  permissions root, ncessaire 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 rpertoires sources (attention, ce n'est
  pas un programme intelligent),
  <item><manref name="dh_strip" section="1"> retire les enttes de dboguage
  des fichiers excutables 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 rpertoire
  debian/tmp/DEBIAN,
  <item><manref name="dh_shlibdeps" section="1"> calcule les dpendances
  des bibliothques et des excutables,
  <item><manref name="dh_gencontrol" section="1"> gnre et installe
  le fichier control,
  <item><manref name="dh_md5sums" section="1"> gnre les sommes de contrle 
  MD5 pour tous les fichiers dans le paquet.
  </list>

  <p>Pour une information plus complte 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 trs utiles, qui ne sont pas mentionns 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 dernires lignes (avec toutes celles qui ne sont pas expliques
  ici) sont juste des choses plus ou moins ncessaires, a 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 rpertoire debian/

  <p>Vous verrez qu'il y a plusieurs autres fichiers dans le sous-rpertoire
  debian, la plupart d'entres-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 associe (astuce : le manuel des
  normes), renommez-les pour enlever le suffixe `.ex', et modifiez-les ainsi
  que le fichier rules si ncessaire.  Certains de ces fichiers, les plus
  utiliss, sont dcrits dans les sections suivantes.

  <sect id="readdeb">README.Debian

  <p>D'autres dtails ou diffrences entre le paquet original et votre
  version debianise devraient tre inclus ici. Voici ce que dh_make cre par
  dfaut :

  <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 a propos des logiciels est que vous
  passez beaucoup de temps et d'efforts pour configurer un programme pour voir
  une mise  jour dtruire tous vos changements. Debian rsout ce problme 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 gnral 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 ncessaire d'avoir ce fichier si
  votre programme n'a pas de fichier de configuration.

  <sect id="dirs">dirs

  <p>Ce fichier spcifie les rpertoires dont nous avons besoin mais que la
  procdure d'installation normale (make install) ne cre pas.
  
  <p>Par dfaut, il ressemble  ceci :

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

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

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

  mais ces rpertoires sont dj crs 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 brve description de la cration 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 excutables.
     2     Appel systme           Fonctions fournies par le noyau.
     3     Appel bibliothque      Fonctions des bibliothques systme.
     4     Fichiers spciaux       D'ordinaire trouvs 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 systme  Des programmes d'habitude excutes par root.
     9     Routines noyau          Appels non standards et routines internes.
  </example>

  <p>Donc, la page de manuel de gentoo devrait tre appele 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 fentres avec un
  menu qui peut tre configur. S'ils ont installs le paquet 'menu' de Debian,
  un ensemble de menu pour chaque programme sur le systme sera cr
  pour eux. Ceci n'est pas requis pas le rglement Debian, mais les
  utilisateurs apprcieront certainement. Nous pouvons ajouter Gentoo aux
  menus en ditant ce fichier. Voici le dfaut que dh_make cre :

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

  <p>Le premier champs spcifie 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'entre devrait apparatre. La liste courante des sections se
  trouve dans /usr/share/doc/debian-policy/menu-policy.html/ch2.html#s2.1. Le
  troisime est le nom du programme. Le quatrime est l'icne pour le
  programme ou rien s'il n'en n'a pas. Le cinquime est le texte relle qui
  apparatra dans le menu. Le sixime est la commande qui lance le programme.

  <p>Maintenant nous changeons l'entre 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 duquel 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'excuter 'uscan' dans le
  rpertoire du programme une fois que vous avez crer 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 manual 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 nomms scripts de responsable.  Ils sont placs dans la
  zone de contrle du paquet et sont excuts 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 Cration de Paquets, et examinez les fichiers
  d'exemples fournis par dh_make.

  <p>Nous sommes maintenant prt pour construire le paquet.

  <chapt id="final">tapes finales

  <sect id="build">Construire le paquet

  <p>Allez dans le rpertoire principal du programme et lancez ceci :

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

  <p>Ceci fera tout pour vous, vous avez juste  entrer votre cl secrte
  PGP, deux fois. Une fois que c'est fait, vous verrez cinq fichiers dans le
  rpertoire ~/debian :

  <p><list>
  <item><em>gentoo_0.9.12-1_i386.deb</em>
  <p>Ceci est le paquet binaire complt. 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 recrer votre paquet depuis le dbut, il le peut. Ou si il
  n'utilise pas le systme de paquet Debian, mais a besoin de tlcharger
  le code source et de le compiler.

  <item><em>gentoo_0.9.12-1.dsc</em>
  <p>Ceci est un rsum du contenu du code source. Ce fichier est gnr 
  partir du fichier gentoo-0.9.12/debian/control, et est utilis pour
  dcompresser les sources avec <manref name="dpkg-source" section="1">. Ceci
  est un fichier sign avec PGP, de sorte que les gens peuvent tre srs
  qu'il s'agit bien du votre.

  <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  diffrence unifie .
  Il est cre 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 rvision
  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 gnr  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 capacits seront ajoutes. Les gens qui tlchargent
  votre paquet peuvent lire ce fichier et voir ce qui a chang.  Les longues
  chanes de chiffres sont des sommes MD5 pour les fichiers mentionns. Les
  personnes tlchargeant 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 srs qu'il
  s'agit bien du votre.
  </list>

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

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

  <p>Assurez-vous juste que votre rgle `install' n'a *pas* de fille
  `install-stamp' (c'est en standard aujourd'hui), pour garantir que `dh_clean
  -k' est excut chaque fois.  Et une fois que vous en avez fini avec vos
  rglages, n'oubliez pas de reconstruire en suivant la procdure correcte,
  pour pouvoir tlcharger correctement.

  <sect id="checkit">Contrler 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-sr, remplacez le nom de fichier par celui du fichier de changements
  gnr pour votre paquet.  S'il s'avre qu'il y a des erreurs (les lignes
  commenant avec E:), lisez l'explication (les lignes N:), corrigez les
  erreurs, et reconstruisez comme dcrit 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 sr que votre paquet est bon (mais il ncessite 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 dcompressez-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 passes et que des crasses n'auraient pas t
  nettoyes.  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-mme, 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 vrifier attentivement chaque
  avertissement ou erreur  l'installation ou en excutant 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 prcdente (et  partir de la
  version de la dernire distribution Debian),
  <item>revenez  la version prcdente.
  <item>installez le paquet comme un nouveau paquet (i.e., sans version
  prcdente d'installe),
  <item>retirez le, rinstallez le  nouveau, et puis purgez le.
  </list>

  <sect id="upload">Envoyer votre paquet

  <p>Maintenant que vous avez test votre nouveau paquet en dtail, vous
  devez tlcharger ces fichiers  master.debian.org, en utilisant <manref
  name="dupload" section="1">. D'abord vous devez crer 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-sr, remplacez mes informations personnelles par les votre, 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 vrifie que les sommes md5 des fichiers sont identiques  celles
  du fichier .changes, pour qu'il puisse vous avertir de reconstruire comme
  dcrit dans <ref id="build"> et qu'il charge le fichier correctement.

  <p>Dupload vous demandera pour votre mot de passe sur master.debian.org,
  tlchargera vos paquets, et donnera une annonce courte de votre
  tlchargement sur <email/debian-devel-changes@lists.debian.org/ si
  ncessaire.

  <p>Si vous vivez en Europe, vous pouvez utiliser d'autres queues de
  tlchargement  la place de master. Pour des dtails lisez <manref
  name="dupload.conf" section="5"> et la Rfrence du Dveloppeur.

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

  <p>Disons qu'un rapport de bogue a t rempli pour votre paquet, #54321, et
  qu'il dcrit un problme que vous pouvez rsoudre.  Pour crer une nouvelle
  rvision du paquet, vous devez:

  <list>
  <item>Corriger le problme dans le paquet source, bien sr.
  
  <item>Ajouter une nouvelle rvision dans le fichier changelog Debian, avec
  `dch -i', et inclure une courte description du bug et de la solution,
  suivie par ceci : 'Closes: #54321'.  De cette manire, le rapport de bogue
  sera automatiquement ferm par le logiciel de maintenance des archives au
  moment ou 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 diffrence est que cette fois,
  l'archive des sources originales ne sera pas inclue, car elle n'a pas t
  change et est dj dans l'archive Debian.
  </list>

  <p>Considrons maintenant une autre situation, lgrement plus complique -
  une nouvelle version amont est disponible, et bien-sr vous voulez en faire
  un paquet.  Vous devez donc :

  <list>
  <item>tlcharger les sources et mettre l'archive source (par exemple nomme
  `gentoo-0.9.13.tar.gz') dans le rpertoire au dessus des anciennes sources
  (par exemple ~/debian/).

  <item>Entrez dans le rpertoire source ancien, et lancez:

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

  Bien-sr, 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 prcdent
  fichier .diff.gz, et mettre  jour le nouveau fichier debian/changelog.

  <item>Allez dans le rpertoire `../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 tlcharger et excuter
  uupdate dessus.

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

  <p>Avant de vous dcider  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 mentionns dans cet article. Quand
  vous recevez un rapport de bogue (oui, un rapport de bogue rel!) vous
  saurez qu'il est temps de plonger dans <url name="Systme de Suivi de Bogues
  Debian" id="http://www.debian.org/Bugs/"> et lisez la documentation l, pour
  tre  mme de grer les rapports efficacement.

  <p>En joignant la liste de discussion Debian Mentors 
  <email/debian-mentors@lists.debian.org/ vous pouvez joindre des dveloppeurs
  Debian expriments 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 dj un dveloppeur Debian, vous devriez y
  tre inscrit de toute manire.

  <p>Mme 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 prt pour les rapports de bogues, parce qu'il y aura
  beaucoup plus de travail  faire avant qu'il soit parfaitement conforme
  aux rgles Debian (une fois encore, lisez la <em>documentation relle</em>
  pour les dtails). Bonne chance !
 </book>

</debiandoc>