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 © 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 ©
1997 Jaldhar Vyas <email/jaldhar@debian.org/.
<p>The New-Maintainer's Debian Packaging Howto, copyright © 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 <numpaquete>-<version>.
<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
<enter>. 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 <jrodin@jagor.srce.hr>
5 Standards-Version: 3.0.1
6
7 Package: gentoo
8 Architecture: any
9 Depends: ${shlibs:Depends}
10 Description: <insert up to 60 chars description>
11 <insert long description, indented with spaces>
</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><<</tt>, <tt><=</tt>, <tt>=</tt>,
<tt>>=</tt> et <tt>>></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 <jrodin@jagor.srce.hr>
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 <jrodin@jagor.srce.hr> on
2 Wed, 11 Nov 1998 21:02:14 +0100.
3
4 It was downloaded from <fill in ftp site>
5
6 Upstream Author(s): <put author(s) name and email here>
7
8 Copyright:
9
10 <Must follow here>
</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 <jrodin@jagor.srce.hr> 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 <emil@obsession.se>
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 <jrodin@jagor.srce.hr> 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 <jrodin@jagor.srce.hr> 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 <version>-<rvision>` 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 <jrodin@jagor.srce.hr> 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 <jrodin@jagor.srce.hr> 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 <tab>!), 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
----------------------
<possible notes regarding this package - if none, delete this file>
Josip Rodin <jrodin@jagor.srce.hr>, 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>
|