File: maint-guide.pt_BR.sgml

package info (click to toggle)
maint-guide 1.0.2
  • links: PTS
  • area: main
  • in suites: woody
  • size: 652 kB
  • ctags: 12
  • sloc: makefile: 104; sh: 8
file content (1490 lines) | stat: -rw-r--r-- 66,937 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
<!doctype debiandoc system>

<debiandoc>

 <book>

  <titlepag>

   <title>Guia dos Novos Mantenedores Debian</title>

   <author>Josip Rodin <email/jrodin@jagor.srce.hr/
   </author>

   <author>Traduzido por: Gustavo Noronha Silva (KoV) <email/dockov@zaz.com.br/
   </author>
   <author> Revisado por: Cristian S. Privat (HellBlade) <email/hellblade@linuxbr.com.br/
   </author>

   <version>vers�o 1.0.2, 10 de junho de 2001.</version>

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

   <p>Esse documento pode ser usado sob os termos da Licen�a P�blica Geral da GNU, 
   vers�o 2 ou maior.

   <p>Esse documento foi feito usando os seguintes documentos como exemplos:

   <p>Fazendo um Pacote Debian (AKA o Manual do DebMake), copyright &copy;
   1997 Jaldhar Vyas <email/jaldhar@debian.org/.

   <p>O "HowTo" de Empacotamento Debian para Novos Mantenedores, copyright &copy; 1997
   Will Lowe <email/lowe@debian.org/.
   </copyright>

  </titlepag>

  <toc sect>

  <chapt id="start">Come�ando: "O Jeito Certo"

  <p>Esse documento tentar� descrever como construir um pacote Debian GNU/Linux
  ao usu�rio comum do Debian (e aspirante a desenvolvedor) em linguagem f�cil, e
  bem coberto com exemplos que funcionam. H� um velho ditado Romano, <em>Longum
  iter est per preaecepta, breve et efficax per exempla!</em> (� um longo caminho
  pelas regras, mas curto e eficiente com exemplos!).

  <p>Uma das coisas que fazem o Debian uma Distribui��o Linux de topo de linha
  � seu sistema de empacotamento. Enquanto h� uma vasta quantidade de pacotes j�
  no formato Debian, algumas vezes voc� precisa instalar programas que n�o est�o.
  Voc� pode estar pensando como voc� pode fazer seus pr�prios pacotes e talvez pense
  que � uma tarefa dif�cil. Bem, se voc� � um novato completo no Linux, 
  � dif�cil, mas se voc� fosse um novato n�o estaria lendo esse documento agora =).
  Voc� precisa saber um pouco sobre programa��o Linux mas certamente n�o
  precisa ser um mago.

  <p>Novas vers�es desse documento devem sempre estar dispon�veis na rede em:
  <url name="http://www.debian.org/doc/maint-guide" id="http://www.debian.org/doc/maint-guide">
  e no pacote `maint-guide' para a vers�o em ingl�s e em
  <url name="http://www.linuxsolutions.com.br/debian-br" id="http://www.linuxsolutions.com.br/debian-br">
  para a vers�o em portugu�s, o pacote est� sendo planejado para o futuro.

  <sect id="needprogs">Programas que voc� precisa para desenvolver

  <p>Antes de come�ar qualquer coisa, voc� deve estar certo de ter propriamente
  instalados alguns pacotes adicionais necess�rios ao desenvolvimento. Note que
  a lista n�o cont�m nenhum pacote marcado `essential' (essencial) ou
  `required' (requerido) - n�s esperamos que voc� j� os tenha corretamente 
  instalados.

  <p>Esse documento foi escrito enquanto a vers�o 2.1 (slink) era
  a oficialmente est�vel do Debian e a 2.2 (potato) estava sendo criada,
  Assim os pacotes est�o nomeados aqui como aqueles da 2.2.

  <p>Os pacotes a seguir v�m com a instala��o padr�o do Debian 2.1,
  ent�o voc� provavelmente j� os tem (e os pacotes dos quais eles dependem).
  Ainda assim, voc� deve checar com `dpkg -S &lt;pacote&gt;`.

  <list>
  <item><em>binutils</em> - esses programas s�o usados para reunir e ligar
  arquivos objeto - as coisas que comp�e um programa (veja `info binutils`)

  <item><em>cpp</em> - O preprocessador C. (veja <manref name="cpp" section="1">)

  <item><em>cpio</em> - esse � um arquivador como tar ou zip. (veja
  <manref name="cpio" section="1">)

  <item><em>dpkg-dev</em> - esse pacote cont�m as ferramentas necess�rias para
  desenpacotar, construir e fazer "upload" (enviar para algum servidor da rede) de pacotes
  de c�digo fonte do Debian. (veja
  <manref name="dpkg-source" section="1">)

  <item><em>file</em> - esse programa �til pode determinar o tipo de um arquivo.
  (veja <manref name="file" section="1">)

  <item><em>gcc</em> - O compilador C do GNU. A maioria dos programas do Linux s�o
  escritos em C. No entanto, se seu programa � escrito em alguma outra linguagem de
  programa��o, como C++, Fortran, Pascal, voc� deve pegar g++, g77 ou gpc, respectivamente.
  (veja <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> - as bibliotecas e arquivos cabe�alho do C
  que o gcc precisa para "linkar" e criar arquivos objeto. Apesar de alguns
  programas ainda recomendarem e/ou usarem libc5, voc� � encorajado a
  usar a nova vers�o (libc6) (veja `info libc`)

  <item><em>make</em> - usualmente a cria��o de um programa tem muitos
  passos. Ao inv�s de ter de digitar os mesmos comandos de novo e de novo, voc�
  pode usar esse programa para automatizar o processo, criando `Makefile's
  de conjuntos de fun��es macro. Muitos programas novos usam scripts `configure'
  e Makefile's com a ajuda de programas como autoconf e automake, ent�o voc�
  deve precisar desses tamb�m. (veja `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> - esse utilit�rio muito �til vai pegar um arquivo contendo
  uma listagem de diferen�as (produzido pelo programa diff) e aplic�-las ao arquivo
  original, produzinho uma vers�o "patcheada" (algo como consertada, aprimorada).
  (veja <manref name="patch" section="1">)

  <item><em>perl5</em> - Perl � uma das linguagens de interpreta��o de scripts
  usadas nos sistemas unix atuais, muitas vezes referidas como "Canivete do Ex�rcito
  Su��o dos usu�rios de Unix). (see <manref name="perl" section="1">)
  </list>

  <p>Da se��o `devel' da distribui��o voc� ir� precisar provavelmente de instalar esses
  por si mesmo:

  <list>
  <item><em>dh-make</em> e <em>debhelper</em> - dh-make � necess�rio para
  criar o esqueleto de nosso pacote de exemplo, e ir� usar algumas das
  ferramentas do debhelper para criar pacotes. Eles n�o s�o essenciais para
  a cria��o de pacotes, mas � <strong>altamente</strong> recomendado para
  novos mantenedores. Isso faz o processo muito mais f�cil de come�ar, e
  controlar mais tarde. (veja <manref name="dh_make" section="1">,
  <manref name="debhelper" section="1">, /usr/share/doc/debhelper/README)

  <item><em>devscripts</em> - esse pacote cont�m alguns scripts bons e �teis
  que podem ser de grande ajuda para os mantenedores, mas eles n�o s�o necess�rios
  para construir os pacotes, tamb�m. (veja /usr/share/doc/devscripts/README.gz)

  <item><em>fakeroot</em> - esse utilit�rio deixa que voc� simule que � root,
  o que � necess�rio para algumas partes do processo de constru��o. (veja
  <manref name="fakeroot" section="1">)

  <item><em>lintian</em> - esse � um pacote Debian que permite que voc� saiba
  de alguns erros comuns depois de construir seu pacote, e explica os erros encontrados.
  (veja <manref name="lintian" section="1">,
  /usr/share/doc/lintian/lintian.html/index.html)
  </list>

  <p>Finalmente, esses pacotes <em>muito importantes</em> est�o na se��o doc
  da distribui��o:

  <list>
  <item><em>debian-policy</em> - inclui a estrutura e o conte�do do arquivo,
  muitos assuntos de design de SOs, o padr�o de hierarquia de sistema de
  arquivos e a coisa mais importante (para voc�) � que ele descreve os
  requerimentos que cada pacote deve satisfazer para ser inclu�do na distribui��o.
  (veja /usr/share/doc/debian-policy/policy.html/index.html)

  <item><em>developers-reference</em> - para todos os assuntos que n�o
  s�o espec�ficos de detalhes t�cnicos de empacotamento, como a estrutura
  do arquivo, como renomear, deix�-lo �rf�o, pegar pacotes, como fazer
  NMUs, como lidar com bugs, onde e quando transferir o pacote, etc.
  (veja /usr/share/doc/developers-reference/developers-reference.html/index.html)
  </list>

  <p>Voc� ir� tamb�m precisar do pacote de encripta��o, ou PGP (os pacotes
  pgp-*) ou GPG (o pacote gnupg), para <em>assinar</em> digitalmente seu
  pacote. Esse � especialmente importante se voc� quer distribu�-lo a outras
  pessoas (e certamente o estar� fazendo quando seu trabalho for inclu�do
  na distribui��o Debian). No entanto, por causa das leis de exporta��o
  dos E.U.A., voc� n�o pode simplesmente fazer o download deles do servidor
  FTP do Debian mais pr�ximo de voc�. Mas o Debian disponibiliza esses pacotes
  de um servidor n�o localizado fisicamente nos E.U.A, chamado non-US.debian.org
  (ftp://non-us.debian.org/debian-non-US/). Seu site de FTP ter� um arquivo
  chamado README.non-US, que ir� explicar como encontrar um mirror pr�ximo
  de onde voc� se localiza.

  <p>As descri��es pequenas que s�o dadas acima apenas servem para introduzi-lo
  ao que cada pacote faz. Antes de continuar por favor, leia a documenta��o
  de cada programa, ao menos o uso padr�o. Pode parecer estressante agora
  mas depois voc� estar� <em>muito</em> feliz por ter lido.

  Nota: <em>debmake</em> � um pacote que cont�m alguns programas que
  funcionam de modo similar ao dh-make, mas seu uso espec�fico <strong>n�o</strong>
  � coberto por esse documento. Visite <url name="O manual Debmake"
  id="http://www.debian.org/~jaldhar/"> para maiores informa��es.

  <sect id="otherinfo">Outras informa��es

  <p>H� dois tipos de pacotes que voc� pode fazer, c�digo fonte e bin�rio.
  Um pacote de c�digo fonte, cont�m o c�digo que voc� compila em um programa.
  Um pacote bin�rio cont�m apenas o programa finalizado. N�o misture
  termos como o c�digo fonte do programa e o pacote fonte do programa!
  Por favor leia os outros manuais se voc� precisa de terminologia mais
  detalhada.

  <p>No Debian, o termo `mantenedor' (mantainer) � usado pela pessoa que
  faz os pacotes, `autor externo (upstream)' pela pessoa que faz o programa, e
  `mantenedor externo (upstream)' pela pessoa que mant�m o programa fora do Debian.
  Normalmente autor e mantenedor upstream s�o a mesma pessoa - e algumas
  vezes o mantenedor � a mesma pessoa. Se voc� fez um programa e quer
  que ele entre no Debian, sinta-se livre para envi�-lo para se tornar um
  mantenedor.

  <p>Depois de construir seu pacote (ou enquanto o faz), voc� ir� ter de se
  tornar um mantenedor oficial do Debian se voc� deseja que seu programa
  entre na pr�xima distribui��o (se o programa � �til, por qu� n�o?).
  Esse processo � explicado no "Refer�ncia dos Desenvolvedores
  (Developer's Reference). Por favor, leia-o.

  <chapt id="first">Primeiros passos

  <p>Enquanto a documenta��o no <url name="Canto dos Desenvolvedores" id="http://www.debian.org/devel/">
  n�o � t�o clara sobre quando, onde e como os novos mantenedores devem come�ar
  seu trabalho, esse documento ir� explicar cada pequeno (de in�cio, talvez,
  irrelevante) passo e ir� ajud�-lo a criar seu primeiro pacote e ganhar
  experi�ncia em construir as pr�ximas vers�es e talvez outros pacotes
  mais tarde.

  <sect id="choose">Escolha seu programa

  <p>Voc� j�, provavelmente escolheu o pacote que quer construir, mas aqui
  est�o algumas notas para voc� iniciar:

  <list>
  <item>cheque se o pacote j� est� na distribui��o. Se voc� usa a distribui��o
  `stable' (est�vel), talvez seja melhor ir at� a
  <url name="p�gina de procura de pacotes" id="http://www.debian.org/distrib/packages.html">.
  Se voc� usa a <strong>atual</strong> distribui��o `unstable' (inst�vel), cheque isso com esses comandos:
  <example>
  dpkg -s programa
  dpkg -l "*programa*"
  </example>

  <item>consulte a <url name="p�gina do WNPP" id="http://www.debian.org/devel/wnpp/">
  e os arquivos da lista de e-mails debian-devel para ver se algu�m est�
  produzindo o mesmo pacote. Se sim, contate o atual mantenedor se voc� sentir
  que precisa. Se n�o - encontre algum outro programa interessante que
  ningu�m mantenha.
  </item>

  <item>o programa <strong>deve</strong> ter uma licen�a, se poss�vel livre
  de acordo com as <url name="Regras de Software Livre do Debian (Debian Free Software Guidelines)" id="http://www.debian.org/social_contract.html#guidelines">.
  Se ele n�o entra em conformidade com essas regras, ele ainda pode ser inclu�do
  nas se��es `contrib' ou `non-free' do Debian. Se voc� tem d�vidas sobre para
  onde o pacote deve ir, pergunte em: <email/debian-legal@lists.debian.org/.
  </item>

  <item>o programa certamente <strong>n�o</strong> deve rodar em
  setuid root, ou melhor ainda - n�o deve precisar ser setuid ou setgid
  para nada.</item>

  <item>o programa n�o deve ser um servidor ou algo que v� nos diret�rios
   */sbin.</item>

  <item>o programa deve ser um bin�rio execut�vel, n�o tente as bibliotecas
  ainda.</item>

  <item>ele deve ser bem documentado, ou pelo menos de entendimento (a qualquer
  um).</item>

  <item>voc� deve contatar o(s) autor(es) do programa para checar se eles
  concordam com o empacotamento. Isso � importante ter a possibilidade de
  consultar o(s) autor(es) sobre o programa em caso de algum problema espec�fico
  do programa, ent�o n�o tente empacotar programas n�o documentados.</item>

  <item>e por �ltimo mas n�o menos importante, voc� deve saber que ele funciona,
  e j� deve t�-lo testado por algum tempo.</item>
  </list>

  <p>Claro que essas coisas s�o apenas assuntos de seguran�a, e tem por inten��o
  salvar voc� de atrapalhar usu�rios se voc� fizer alguma coisa errado em algum
  servidor setuid... Quando voc� ganhar mais experi�ncia em empacotar, voc�
  estar� apto a construir tais pacotes, mas mesmo os mais experientes desenvolvedores
  consultam a lista de e-mail debian-devel quando t�m d�vidas. E as pessoas ir�o
  ajudar com prazer.

  <p>Para mais ajuda sobre isso, cheque na Refer�ncia do Desenvolvedor.

  <sect id="getit">Pegue o programa e experimente

  <p>Ent�o a primeira coisa a fazer � encontrar e fazer o download do pacote
  original. Eu presumo que voc� j� tenha o c�digo fonte que pegou na p�gina
  do autor. C�digo fonte para programas livres para Linux normalmente v�m
  no formato tar/gzip, com extens�o tar.gz e normalmente cont�m o subdiret�rio
  chamado programa-vers�o e todos os arquivos fonte nele. Se os fontes do
  seu programa v�m em outro tipo de arquivo (por exemplo, o arquivo termina
  em ".Z" ou ".zip"), descompacte-o com as ferramentas apropriadas ou pergunte
  em debian-mentor (mentores do Debian) se voc� n�o tem certeza como
  descompact�-lo corretamente (dica: tente `file arquivo.extens�o`).

  <p>Como exemplo, irei usar um programa chamado `gentoo', um gerenciador
  de arquivos feito em GTK+ para X11. Note que o programa j� est�
  empacotado, e tem mudado substancialmente de vers�o desde que esse
  texto foi escrito pela primeira vez.

  <p>Crie um subdiret�rio no seu diret�rio "home" chamado `debian' ou
  `deb' ou alguma coisa que voc� ache apropriado (ex. apenas ~/gentoo/
  seria o suficiente nesse caso). Ponha o arquivo que voc� pegou l� e o
  descompacte (com `tar zxpvf gentoo-0.9.12.tar.gz`). Tenha certeza de
  que n�o houve erros, mesmo alguns erros "irrelevantes", porque haver�
  certamente problemas com a descompacta��o em sistemas alheios, nos
  quais as ferramentas de descompacta��o podem ou n�o ignorar essas
  anomalias.

  <p>Agora voc� tem um outro subdiret�rio chamado `gentoo-0.9.12'. Entre
  nesse diret�rio e <strong>atentamente</strong> leia a documenta��o
  dispon�vel. Normalmente h� arquivos chamados README*, INSTALL*,
  *.lsm ou *.html. Voc� deve encontrar instru��es sobre como compilar
  corretamente e instalar o programa (provavelmente eles ir�o assumir
  que voc� quer instalar no diret�rio /usr/local/bin; voc� n�o far� isso,
  veremos mais detalhes mais a frente em <ref id="destdir">).

  <p>O processo varia de programa para programa, mas muitos dos programas
  atuais v�m com um script `configure' que configura o c�digo sob seu sistema
  e checa se seu sistema tem condi��es de compilar. Depois de configurar
  (com `./configure`), os programas s�o normalmente compilados com `make`.
  Alguns deles suportam `make check`, para executar auto checagens inclusas.
  A instala��o nos diret�rios destino � feita normalmente com `make install`.
  
  <p>Agora tente compilar e rodar seu programa, para ter certeza que ele
  funciona bem e n�o atrapalha nada enquanto est� sendo instalado ou executado.

  <p>Tamb�m, voc� pode normalmente digitar `make uninstall` para remover
  todos os arquivos instalados, e `make clean` (ou melhor `make distclean`) para
  limpar o diret�rio de constru��o.

  <sect id="namever">Antes de `dh_make'

  <p>Voc� deve come�ar a empacotar com um diret�rio completamente limpo
  ou simplesmente com os c�digos rec�m descompactados.
  
  <p>Para que o pacote seja constru�do corretamente, voc� deve tornar o
  nome original do programa todo min�sculo (se j� n�o for), e deve mover o
  diret�rio fonte para &lt;nomedopacote&gt;-&lt;vers�o&gt;.
  
  <p>Se o nome do programa consiste em mais de uma palavra, junte-as
  em apenas uma palavra, ou fa�a uma abrevia��o. Por exemplo: o programa
  "Pequeno editor para X do Jo�o" seria renomeado para pexjoao ou pexj, ou
  o que voc� decidir, desde que esteja abaixo de um certo limite, ex: 20
  caracteres.

  <p>Tamb�m cheque a vers�o exata do programa (a ser inclu�do na vers�o
  do pacote). Se o programa n�o est� numerado com vers�es como X.Y.Z, mas
  com algum tipo de data, sinta-se livre para usar a data como um n�mero de
  vers�o, come�ado por um "0.0" (apenas para o caso de outras pessoas
  resolverem um dia decidirem criar uma vers�o melhor como 1.0). Ent�o, se
  o lan�amento ou dia de apresenta��o foi 19 de Dezembro de 1998, voc� pode
  usar 0.0.19981219. Alguns programas n�o estar�o numerados, nesse caso
  voc� deve contactar o mantenedor externo e ver se ele tem algum modo
  de controle de revis�o.

  <sect id="dh_make">Rodando o `dh_make'

  <p>Esteja certo de que voc� est� no diret�rio do c�digo fonte do programa
  e digite isso:

  <p><example>
  dh_make -e seu.endereco@de.mantenedor -f ../gentoo-0.9.12.tar.gz
  </example>

  <p>Claro, troque "seu.endereco@de.mantenedor" pelo seu e-mail, para
  inclus�o nas entradas do changelog e outros arquivos, e o nome do arquivo
  com o nome do seu arquivo compactado original. Veja
  <manref name="dh_make" section="1"> para detalhes.
 
  <p>Aparecer�o informa��es. Ele vai perguntar que tipo de pacote voc�
  quer criar. Gentoo � um pacote de apenas um bin�rio - ele cria apenas
  um bin�rio, e assim, um arquivo .deb - ent�o n�s vamos selecionar a
  primeira op��o, com a tecla `s', cheque as informa��es na tela e confirme
  pressionando &lt;enter&gt;. Como um novo mantenedor voc� n�o � aconselhado
  a criar pacotes com m�ltiplos bin�rios, ou bibliotecas, como ser� explicado
  mais tarde. N�o � dif�cil, mas requer um pouco mais de conhecimento,
  ent�o n�o o descreveremos agora.

  <p>Note que voc� deve rodar o dh_make <strong>apenas uma vez</strong>,
  e que ele n�o agir� corretamente se voc� o fizer pela segunda vez no
  mesmo diret�rio "debianizado". Isso tamb�m significa que voc� ir� usar
  um m�todo diferente para lan�ar uma nova revis�o ou nova vers�o de seu
  pacote no futuro. Leia mais sobre isso depois em <ref id="update">

  <chapt id="modify">Modificando o c�digo

  <p>Normalmente, os programas se instalam nos subdiret�rios de /usr/local/.
  Mas os pacotes Debian n�o devem usar esse diret�rio, j� que ele � reservado
  ao uso privado dos administradores de sistema (ou usu�rios). Isso significa que
  voc� tem que dar uma olhada no sistema de constru��o do programa, normalmente
  come�ando pelo Makefile. Esse script � o que � usado pelo  <manref name="make" section="1">
  para automatizar a constru��o do programa. Para mais detalhes sobre Makefiles,
  olhe em <ref id="rules">.

  <p>Note que se seu programa usa o <manref name="automake" section="1">
  e/ou <manref name="autoconf" section="1"> do GNU, significa que os
  fontes incluem os arquivos Makefile.am e/ou Makefile.in, respectivamente,
  voc� ir� precisar de modificar esses arquivos, porque cada chamada ao
  automake ir� rescrever o Makefile.in com informa��o gerada do Makefile.am
  e cada chamada ao ./configure ir� fazer o mesmo com os Makefile's, com dados
  do Makefile.in. Editar arquivos Makefile.am requer um pouco de conhecimento
  sobre o automake, sobre o qual voc� pode ler na entrada info do automake,
  como escrever arquivos Makefile.in � quase a mesma coisa que escrever arquivos
  Makefile, apenas preste aten��o �s vari�veis, por exemplo, qualquer string
  rodeada de `@'s, por exemplo @CFLAGS@ ou @LN_S@, que s�o trocadas
  com coisas atuais em cada chamada a ./configure.

  <p>Note tamb�m que aqui n�o h� espa�o para nos aprofundarmos em <em>todos</em>
  os detalhes de consertos mas aqui v�o alguns poucos problemas encontrados
  freq�entemente pelas pessoas.

  <sect id="destdir">Instalando em um subdiret�rio

  <p>A maioria dos programas t�m algum jeito de instalar a si mesmo na
  estrutura de diret�rios existente, fazendo com que seus bin�rios
  estejam inclu�dos no seu $PATH, e que voc� encontre sua documenta��o
  e p�ginas de manual (man pages) nos lugares comuns. Voc� deve ter
  certeza de que eles o fazem corretamente, mas voc� tem de instal�-los
  num subdiret�rio tempor�rio que vai ser criado dentro do seu diret�rio
  debian/, usualmente chamado <tt>debian/tmp</tt>, do qual as ferramentas
  do mantenedor ir�o construir um pacote .deb que funciona. Tudo que est�
  contido nesse diret�rio ser� instalado no sistema do usu�rio quando ele
  instala o pacote, a �nica diferen�a � que o dpkg vai instalar os arquivos
  no diret�rio raiz.

  <p>Basicamente, voc� precisa fazer o programa se instalar em debian/tmp,
  mas tem de faz�-lo se comportar corretamente quando colocado no diret�rio
  raiz, exemplo: quando instalado do pacote .deb. Com programas que usam o
  autoconf do GNU, isso ser� muito f�cil, porque o dh_make ir� configurar
  comandos para faz�-lo automaticamente, ent�o voc� pode saltar essa se��o.
  Mas com outros programas, voc� ir� mais provavelmente ter de examinar e
  editar os Makefiles.

  <p>Aqui est� a parte relevante do Makefile do 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>Antes disso voc� deve inserir duas novas linhas dizendo:

  <p><example>
  # Edited for Debian GNU/Linux.
  DESTDIR =
  </example>
  porque o processo de constru��o requer isso (ser� explicado mais tarde, em
  <ref id="rules">).

  <p>Ent�o o Makefile menciona a localiza��o do bin�rio final. Apenas mude
  para isso:

  <p><example>
  # Where to put binary on 'make install'?
  BIN     = $(DESTDIR)/usr/X11R6/bin
  </example>

  <p>Mas por que nesse diret�rio e n�o em outro? Porque o Debian definiu
  algumas regras sobre onde colocar os programas a serem instalados. Isso
  est� especificado no Filesystem Hierarchy Standard (Padr�o de Hierarquia
  no Sistema de Arquivos) (veja /usr/share/doc/debian-policy/fhs/). Ent�o,
  n�s devemos instalar o bin�rio em /usr/X11R6/bin ao inv�s de /usr/local/bin,
  e a p�gina de manual (n�o existe aqui, mas quase todo programa tem uma,
  ent�o faremos uma mais tarde) no /usr/share/man/man1 ao inv�s de
  /usr/local/man/man1.

  <p>Depois disso temos uma situa��o um pouco mais complicada. Se voc� mudar
  uma linha para:

  <p><example>
  ICONS   = $(DESTDIR)/usr/share/gentoo/
  </example>
  que entra em conformidade com a pol�tica do Debian, voc� precisar� de editar
  alguns c�digos fonte reais em C. Mas onde e o qu� procurar? Voc� pode procurar
  por isso digitando:
  <p><example>
  grep -n usr/local/lib *.[ch]
  </example>
  (em cada subdiret�rio que cont�m arquivos .c e .h). O grep ir� dizer o nome do
  arquivos e a linha nele, quando ele achar uma ocorr�ncia. Agora edite aqueles
  arquivos e troque usr/local/lib com usr/share - e � isso. Apenas troque
  o usr/local/lib pela sua localiza��o, e fique atento para n�o atrapalhar o
  resto do c�digo, se voc� n�o sabe muito de programa��o em C. =)

  <p>Depois disso voc� deve achar o alvo de instala��o (procure pela linha que
  come�a com `install:') e renomeie todas as refer�ncias a diret�rios diferentes
  dos definidos no Makefile principal. Anteriormente, o alvo de instala��o do gentoo
  era:

  <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>Depois das modifica��es:
  <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>Um leitor cuidadoso notar� que eu mudei `gentoo' para `gentoo-target'
  na linha `install:'. Isso se chama conserto de erro =)

  <p>Sempre que voc� fizer mudan�as que n�o s�o espec�ficas do pacote Debian,
  esteja certo de mand�-las ao mantenedor externo para que elas possam ser
  inclu�das na pr�xima revis�o do programa. Note que voc� n�o tem que mandar
  os arquivos debian/*, mas deve fazer isso com qualquer outro conserto.
  E tente ser legal ao enviar consertos externos, n�o os fazendo espec�ficos
  para o Debian ou para Linux (ou mesmo Unix) antes de envi�-los.

  <sect id="difflibs">Diferenciando Bibliotecas

  <p>H� um outro problema comum: bibliotecas s�o freq�entemente diferentes
  de plataforma para plataforma. Por exemplo, Makefile pode conter uma refer�ncia
  a uma biblioteca que n�o existe no Debian, ou mesmo no Linux. Nesse caso, n�s
  temos de mudar isso para uma biblioteca que existe no Debian, e serve ao mesmo
  prop�sito. O melhor jeito � comentar as linhas porque podem haver outros que ir�o
  tentar compilar em plataformas diferentes, assim, eles ter�o algumas dicas de qual
  pode ser o problema.

  <p>Ent�o, se h� uma linha no Makefile do seu programa (ou no Makefile.in) que
  diz algo como isso (e seu programa n�o compila):

  <p><example>
  LIBS = -lcurses -lalgumacoisa -lalgumaoutracoisa
  </example>

  <p>Mude-as para isso, e provavelmente ir� funcionar:
  <p><example>
  LIBS = -lncurses -lalgumacoisa -lalgumaoutracoisa
  #LIBS = -lcurses -lalgumacoisa -lalgumaoutracoisa
  </example>

  <chapt id="dreq">Coisas requeridas sob o debian/

  <p>H� um novo subdiret�rio sob o diret�rio principal do programa
  (`gentoo-0.9.12'), ele � chamado `debian'. H� alguns arquivos nesse
  diret�rio. N�s iremos editar esses arquivos para customizar o
  comportamento do pacote. Os mais importantes s�o `control',
  `changelog', `copyright' e `rules', que s�o requeridos para todos
  os pacotes.

  <sect id="control">arquivo `control'

  <p>Esse arquivo cont�m v�rios valores que dpkg e dselect usaram para
  lidar com o pacote. Aqui est� o arquivo control que o dh_make criou para
  n�s.

  <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>
  (Inclu� o n�mero nas linhas.)

  <p>As linhas 1 a 5 s�o informa��es de controle para o pacote de c�digo
  fonte. Linha 1 � o nome do pacote fonte.

  <p>Linha 2 � a se��o da distribui��o na qual o pacote vai. Como voc�
  pode ter notado, o Debian � dividido nas se��es: main (principal - o
  software livre), non-free (n�o livre - os pacotes n�o totalmente
  livres) e contrib (software livre que depende de software n�o livre).
  Sob essas, h� subse��es l�gicas que descrevem resumidamente que
  pacotes est�o dentro. Temos a `admin' para programas de administra��o,
  `base' para as ferramentas b�sicas, `devel' para ferramentas de
  programadores, `doc' para documenta��o, `libs' para bibliotecas,
  `mail' para leitores e servidores de email, `net' para aplicativos e
  servidores de rede, `x11' para programas espec�ficos do X11, e muito
  mais.

  <p>Vamos mud�-lo ent�o para x11.

  <p>Linha 3 descreve qu�o importante � que o usu�rio instale esse pacote.
  Se��o e prioridade s�o atualmente usadas apenas pelo dselect quando
  ele ordena os pacotes e seleciona padr�es, e ele podem (e muito
  provavelmente ser�o) mudados pelos nossos mantenedores de FTP.
  Veja o manual de Pol�tica para um guia sobre o que configurar nos campos.
  
  <p>Como esse � um pacote de prioridade normal, vamos deix�-lo como
  opcional.

  <p>Linha 4 � o nome e o endere�o de e-mail do mantenedor.

  <p>Linha 5 � a vers�o dos padr�es de Pol�tica Debian que esse pacote segue
  (as duas maiores vers�es do pacote debian-policy instalado).

  <p>Se algum compilador n�o padr�o ou outra ferramenta � necess�ria para
  se construir o pacote, voc� deve adicionar uma linha `Build-Depends' e listar
  os pacotes requeridos. Para maiores informa��es nisso, leia o Manual de
  Empacotamento (se��o 8.7) e a documenta��o do pacote `build-essential'.

  <p>Linha 7 � o nome do pacote bin�rio.

  <p>Linha 8 descreve as arquiteturas de CPU para as quais o pacote bin�rio
  pode ser compilado. Podemos deixar como "any" porque <manref name="dpkg-gencontrol"
  section="1"> ir� preencher o valor apropriado para cada m�quina em que esse
  pacote se compile (veja a Refer�ncia do Desenvolvedor para uma explica��o
  sobre o que � portar pacotes). Se seu pacote � independente de arquitetura
  (por exemplo, um shell ou script Perl, ou documento), mude isso para "all",
  e leia depois em <ref id="rules"> sobre usar a regra `binary-indep' ao inv�s da
  `binary-arch' para construir o pacote.

  <p>A linha 9 mostra um dos mais poderosos recursos do sistema de
  empacotamento Debian. Pacotes podem relatar outros em v�rios modos.
  Al�m de Depend�ncias (Depends:), outras rela��es s�o: Recomenda
  (Recommends:), Sugere (Suggests:), Pr�-Depende (Pre-Depends:), Conflita
  (Conflicts:), Prov� (Provides:) e Substitui (Replaces:).

  <p>As ferramentas de manejo de pacotes como dpkg, dselect ou APT (e seus
  front-ends) normalmente se comportam da mesma maneira quando lidando com
  essas rela��es; se n�o, isso ser� explicado.
  (veja <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>Isso � o que elas normalmente significam:

  <p><list>
  <item>Depends:
  <p>O pacote n�o ir� ser instalado a menos que o pacote do qual ele depende
  esteja instalado. Use isso se seu programa absolutamente n�o ir� rodar (ou
  ir� causar paradas cr�ticas) a menos que um pacote em particular esteja
  presente.</item>

  <item>Recommends:
  <p>Dselect n�o instalar� seu pacote a menos que o pacote que ele recomenda
  esteja instalado. Dpkg e APT podem deixar que voc� fa�a isso, no entanto. Use
  isso para pacotes que n�o s�o estritamente necess�rios mas que s�o tipicamente
  usados com seu programa.</item>

  <item>Suggests:
  <p>Quando um usu�rio instalar seu programa, o dselect ir� pedir para instalar
  os pacotes que ele sugere. Dpkg e APT n�o v�o ligar muito. Use isso para pacotes
  que ir�o rodar bem com seu programa mas n�o s�o realmente necess�rios.</item>

  <item>Pre-Depends:
  <p>Esse � mais forte que Depends:. O pacote n�o ir� ser instalado a menos
  que o pacote do qual ele pr� depende esteja instalado <em>e corretamente
  configurado</em>. Use isso <strong>com muita</strong> modera��o e s�
  depois de discutir isso na lista de e-mail debian-devel. Leia: n�o use isso de
  qualquer modo. =)</item>

  <item>Conflicts:
  <p>O pacote n�o ser� instalado at� que o pacote que est� em conflito com
  ele tenha sido removido. Use isso se seu programa n�o ir� rodar absolutamente
  (ou causar� quebras severas) se um pacote em particular est� presente.</item>

  <item>Provides:
  <p>Para alguns tipos de pacote onde h� muitas alternativas, nomes virtuais
  foram definidos. Voc� pode pegar a lista completa no arquivo
   /usr/share/doc/debian-policy/virtual-package-names-list.text.gz.
   Use isso se seu programa proporciona uma fun��o de um pacote virtual.</item>

  <item>Replaces:
  <p>Use isso quando seu programa rep�e arquivos de outro pacote, ou completamente
  substitui o outro pacote (usado em conjunto com Conflicts:). Arquivos do pacote
  nomeado ser�o removidos antes de instalar os do seu.
  </item>
  </list>

  <p>Todos esses campos tem sintaxe uniforme. Eles s�o uma lista de pacotes
  separados por v�rgulas. Esses nomes de pacotes podem tamb�m ser listas
  de pacotes alternativos, separados pela barra vertical <tt>|</tt> (s�mbolo
  de pipe(cano)). Os campos podem restringir sua aplicabilidade para vers�es
  particulares de cada pacote nomeado. Esses vers�o s�o listadas em par�nteses
  depois de cada nome de pacote individual, e eles devem conter uma rela��o
  da lista abaixo seguido do n�mero de vers�o. As rela��es permitidas s�o:
  <tt>&lt;&lt;</tt>, <tt>&lt;=</tt>, <tt>=</tt>, <tt>&gt;=</tt> e
  <tt>&gt;&gt;</tt> para estritamente menor, menor ou igual, exatamente
  igual, maior ou igual e estritamente maior, respectivamente.
  
  <p>O �ltimo recurso que voc� precisa saber � $(shlibs:Depends). Ele vai
  ser automaticamente gerado pelo <manref name="dh_shlibdeps" section="1">
  e preenchido pelo <manref name="dh_gencontrol" section="1"> com os nomes
  de qualquer biblioteca compartilhada que o programa use, como libc6 ou xlib6g,
  ent�o voc� n�o precisa especific�-las voc� mesmo. Dito isso, podemos deixar
  a linha 9 do jeitinho que est�.

  <p>A linha 10 � onde vai a lista de. Aqui � apenas `file'  porque o gentoo
  pode usar alguns recursos desse programa/pacote.

  <p>Linha 11 � a breve descri��o. A maioria das telas das pessoas tem
  80 colunas ent�o ela n�o deve ser maior que 60 caracteres. Vou colocar:
  "A fully GUI configurable GTK+ file manager" (Um gerenciador de arquivos
  feito em GTK+ totalmente configur�vel graficamente).

  <p>Linha 12 � onde vai a descri��o longa. Ela deve ter um par�grafo que
  d� mais detalhes sobre o pacote. Coluna 1 de cada linha deve estar vazia.
  N�o deve haver linhas em branco, mas voc� pode por um . (ponto) numa coluna
  para simular isso. Tamb�m, deve haver n�o mais que uma linha em branco
  depois da descri��o longa..

  <p>Aqui est� o arquivo control atualizado:

  <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>
  (Adicionei os n�meros de linha.)

  <sect id="copyright">`copyright' file

  <p>Esse arquivo cont�m a informa��o sobre os recursos externos do pacote,
  copyright e informa��es de licen�a. Seu formato n�o � ditado pela Pol�tica,
  mas o conte�do � (se��o 6.5). Dh_make cria um padr�o, ele � assim:

  <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>
  (Adicionei os n�meros de linha.)

  <p>As coisas importantes a serem adicionadas a esse arquivo s�o o lugar
  de onde voc� pegou o pacote e a licen�a e nota de copyright atuais. Voc�
  deve incluir a licen�a completa a menos que seja uma das licen�as comuns
  de software livre como a GNU GPL ou LGPL, BSD ou a Artistic license,
  quando voc� pode apenas referir ao arquivo apropriado no diret�rio
  /usr/share/common-licenses/ que existe em todo sistema Debian. O
  Gentoo est� licenciado sob a Licen�a P�blica Geral GNU (GNU GPL -
  General Public License), ent�o n�s poderemos modificar o arquivo assim:

  <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/common-licenses/GPL file.
  </example>
  (Adicionei os n�meros de linha.)

  <sect id="changelog">arquivo `changelog'

  <p>Esse � um arquivo requerido, que tem um formato especial descrito
  no Manual de Empacotamento (se��o 3.2.3). Esse formato � usado pelo
  dpkg e pelos outros programas para obter o n�mero de vers�o, revis�o,
  distribui��o e urg�ncia de seu pacote.

  <p>Para voc�, tamb�m � importante, j� que � bom ter documentadas todas
  as mudan�as feitas. Ele ir� ajudar as pessoas que pegarem seu pacote
  a ver se h� qualquer problema n�o resolvido com o pacote sobre o qual
  eles devem saber instantaneamente. Ele ir� ser salvo como
  `/usr/share/doc/gentoo/changelog.Debian.gz' no pacote bin�rio.

  <p>Dh_make cria um arquivo padr�o que � assim:

  <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>
  (Eu adicionei os n�meros �s linhas.)

  <p>Linha 1 � o nome do pacote, vers�o, distribui��o e urg�ncia. O nome
  deve ser o mesmo do nome do pacote fonte, distribui��o deve ser
  ou `unstable' (inst�vel) ou `experimental' (por agora), e urg�ncia
  n�o deve ser mudada para nada maior que `low' (baixa). =)
  
  <p>Linhas 3 a 5 s�o as entradas do log, onde voc� documenta as mudan�as
  feitas nessa revis�o do pacote (n�o as mudan�as externas - h� um arquivo
  especial para esse prop�sito, criado pelos autores externos, instalado como
  /usr/share/doc/gentoo/changelog.gz). Novas linhas devem ser inseridas apenas
  antes da linha mais acima que come�a com um asterisco (`*'). Voc� pode faz�-lo
  com  <manref name="dch" section="1">, <manref name="emacs" section="1">
  (linhas 7-9 cont�m informa��es de modo para o editor Emacs), ou qualquer outro
  editor de texto. Voc� ter� algo assim:

  <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
  11 End:
  </example>
  (Adicionei os n�meros de linha.)

  <p>Quando voc� lan�a uma nova revis�o, voc� precisa aumentar o n�mero de
  vers�o. Voc� pode faz�-lo com `dch -i' ou explicitamente `dch -v 
  &lt;vers�o&gt;-&lt;revis�o&gt;` e ent�o inserir os coment�rios usando
  seu editor preferido. Dica: como colocar a data no formato requerido facilmente?
  Use `822-date' ou `date -R'.

  <p>A informa��o de nova vers�o � adicionada no topo do changelog. O changelog
  fica assim depois:
  
  <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
  17 End:
  </example>
  (Adicionei os n�meros de linha.)

  <p>Voc� pode ler mais sobre novas vers�es/revis�es de pacote mais tarde em
  <ref id="update">.

  <sect id="rules">o arquivo `rules'

  <p>Agora precisamos dar uma olhada nas regras exatas que o 
  <manref name="dpkg-buildpackage" section="1"> ir� usar para criar o 
  pacote. Esse arquivo � atualmente outro Makefile, j� que � executado com
  `make -f', mas diferente do que est� no c�digo externo.

  <p>Cada arquivo `rules', como qualquer outro Makefile, consiste em 
  v�rias regras especificando como manipular o c�digo. Cada regra consiste
  de alvos, nomes de arquivos ou a��es que devem ser carregadas (ex: `build:'
  ou `install:'). Regras que voc� quer executar s�o chamadas como argumentos
  na linha de comando (por exemplo, `./debian/rules build` ou `make -f rules
  install`). Depois do nome do alvo, voc� pode nomear a depend�ncia, 
  programa ou arquivo do qual essa regra depende. Depois disso, pode
  haver qualquer n�mero de comandos (indentados com &lt;tab&gt;!), at� que uma
  linha vazia � encontrada. A� come�a uma nova regra. M�ltiplas linhas vazias,
  e linhas iniciadas com `#' (hash) s�o tratadas como coment�rios ou ignoradas.

  <p>Voc� est� provavelmente confuso agora, mas isso estar� mais claro depois
  de examinarmos o arquivo `rules' que o dh_make nos d� como padr�o. Voc� deve
  tamb�m ler a entrada `make' no info (`info make`) para mais informa��es.

  <p>A parte importante sobre o arquivo rules criado pelo dh_make, � que ele
  � apenas uma sugest�o. Ele funcionar� para programas simples mas n�o para
  programas mais complicados, n�o tenha medo de retirar ou adicionar linhas
  dele para suprir suas necessidades. A �nica coisa que voc� n�o deve mudar
  s�o os nomes das regras, porque todas as ferramentas usam esses nomes, 
  como � descrito no Manual de Empacotamento.

  <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>
  (Eu adicionei os n�meros de linha.)

  <p>Voc� � provavelmente familiarizado com as linhas como a 1 de scripts
  shell ou Perl. Ela diz ao sistema operacional que esse arquivo � para ser 
  processado com /usr/bin/make.

  <p>Linhas 12 a 19 descrevem a regra `build' (e seu filho `build-stamp'),
  que roda o Makefile da pr�pria aplica��o para compilar o programa.

  <p>A regra `clean', especificada nas linhas 21 a 29, limpam qualquer
  bin�rio desnecess�rio ou coisas auto geradas, deixadas da constru��o
  do pacote. Essa regra precisa estar funcionando todo o tempo (mesmo 
  quando a �rvore de c�digo <em/�/ limpa!), ent�o por favor use 
  as op��es de for�a (ex: para rm, a op��o `-f'), ou ignore valores 
  de retorno (com um `-' na frente de cada comando).

  <p>O processo de instala��o, a regra `install', come�a na linha 31.
  Ela basicamente roda a regra `install' do Makefile do pr�prio
  programa, mas instala no diret�rio `pwd`/debian/tmp - que � o 
  porque de n�s especificarmos $(DESTDIR) como o diret�rio 
  de instala��o root no Makefile do gentoo.

  <p>Como o comando sugere, a regra `binary-indep', na linha 41, � usada para
  construir pacotes independentes de arquitetura. Como n�o temos nenhum,
  nada ser� feito aqui. Se seu pacote � `Architecture: all', voc� precisa
  incluir todos os comandos para construir o pacote sob essa regra, e deixar
  a pr�xima regra (`binary-arch') vazia.

  <p>Na pr�xima regra - `binary-arch', nas linhas 45 at� 73, nas quais n�s 
  rodamos v�rios pequenos utilit�rios do pacote debhelper que fazem v�rias
  opera��es nos arquivos do seu pacote para fazer o pacote conformar com
  a Pol�tica.
  
  <p>Os nomes come�am com dh_, e o resto � a descri��o de o que aquele
  utilit�rio em particular faz realmente. Ele � bastante auto-explicativo, 
  mas aqui est�o algumas explica��es adicionais:

  <list>
  <item><manref name="dh_testdir" section="1"> checa se voc� est� no
  diret�rio correto (ex: o diret�rio principal do fonte).
  <item><manref name="dh_testroot" section="1"> checa se voc� tem 
  permiss�es de root que s�o necess�rias para alvos binary*, e clean.
  <item><manref name="dh_installmanpages" section="1"> copia todas
  as p�ginas de manual que pode encontrar na �rvore de diret�rios do fonte
  do pacote (tome cuidado, ele � WIM).
  <item><manref name="dh_strip" section="1"> tira os cabe�alhos de debugging
  dos arquivos execut�veis e bibliotecas, para faz�-los menores.
  <item><manref name="dh_compress" section="1"> gzipa as p�ginas de manual
  e documenta��o com tamanho acima de 4 kB.
  <item><manref name="dh_installdeb" section="1"> copia arquivos relacionados
  com o pacote (ex: os scripts do mantenedor) sob o diret�rio debian/tmp/DEBIAN.
  <item><manref name="dh_shlibdeps" section="1"> calcula as depend�ncias de 
  bibliotecas compartilhadas das bibliotecas e execut�veis.
  <item><manref name="dh_gencontrol" section="1"> adiciona coisas ao arquivo
  control e o instala.
  <item><manref name="dh_md5sums" section="1"> gera checksums MD5 para todos
  os arquivos do pacote.
  </list>

  <p>Para informa��es mais completas sobre o que cada um desses
  scripts dh_* faz, e quais suas op��es, leia suas respectivas p�ginas
  de manual. H� alguns outros, possivelmente muitos e �teis scripts
  dh_*, que n�o foram mencionados aqui. Se voc� precisar deles, leia 
  a documenta��o do debhelper.

  <p>A se��o binary-arch � onde voc� deve realmente comentar algumas
  linhas que chamam recursos que voc� n�o precisa. Para gentoo, eu irei
  comentar linhas sobre testversion, emacsen, pam, init, cron, manpages,
  info, undocumented, suidregister, makeshlibs e perl, simplesmente porque
  o gentoo n�o precisa delas. Tamb�m, na linha 60, irei precisar adicionar 
  `FIXES', porque esse � o nome do changelog externo.

  <p>As �ltimas duas linhas (junto com quaisquer outras linhas n�o explicadas
  s�o apenas algumas coisas mais ou menos necess�rias, considerando as
  que voc� pode ler no manual do make, e no Manual de Empacotamento.
  Por agora, elas n�o s�o importantes para se saber.

  <chapt id="dother">Outros arquivos no debian/

  <p>Voc� ver� que existem v�rios outros arquivos dentro do subdiret�rio
  debian/, a maioria deles com o sufixo `.ex', significando que eles s�o
  exemplos. Se voc� deseja ou precisa usar qualquer desses recursos, 
  examine-os e sua documenta��o relacionada (dica: o Manual de Pol�tica), 
  renomeie-os para remover o sufixo `.ex', e modifique-os e o arquivo
  rules se necess�rio. Alguns desses arquivos, aqueles comumente usados,
  s�o explicados nas se��es seguintes.

  <sect id="readme">README.Debian

  <p>Qualquer detalhe extra ou discrep�ncias entre o pacote original
  e sua vers�o 'debianizada' devem ser documentadas aqui. DH_make cria
  um padr�o, ele � assim:

  <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>J� que n�o temos nada para colocar aqui - � permitida a dele��o desse
  arquivo.


  <sect id="conffiles">conffiles

  <p>Uma das coisas mais chatas dos softwares � quando voc� gasta um
  grande tempo e esfor�o customizando um programa apenas para vir uma
  atualiza��o e perder suas mudan�as. O Debian resolve esse problema
  marcando os arquivos de configura��o para que quando voc� atualize
  um pacote ele pergunte se voc� quer manter sua velha configura��o ou
  n�o. Voc� faz isso entrando o caminho completo de cada arquivo de
  configura��o (eles est�o normalmente no /etc) um por linha, num arquivo
  chamado conffiles.

  <p>Gentoo tem um conffile, /etc/gentoorc, e n�s iremos coloc�-lo no
  arquivo `conffiles'. N�o � necess�rio atualmente ter aquele arquivo,
  se seu programa n�o tem arquivos de configura��o.

  <sect id="dirs">dirs

  <p>Esse arquivo especifica os diret�rios que n�s precisamos mas que
  a instala��o normal, por alguma raz�o, n�o cria.

  Por padr�o, ele � assim:
  <p><example>
  usr/bin
  usr/sbin
  </example>

  <p>Note que a barra inicial n�o � inclu�da. N�s normalmente o ter�amos 
  modificado para ficar assim:
  
  <p><example>
  usr/X11R6/bin
  usr/X11R6/man/man1
  </example>
  
  mas esses diret�rios j� s�o criados no Makefile, ent�o n�s n�o precisamos
  desses arquivos, podemos delet�-los.

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

  <p>Os arquivos que terminam com *.ex s�o exemplos de como adicionar
  um tipo de suporte no pacote. Para usar um deles, edite e remova a
  extens�o .ex dele. Se voc� n�o quer us�-lo, apenas delete.

  <p>Seu programa deve ter uma p�gina de manual. Se n�o, esse � o esqueleto
  que voc� pode preencher. Veja as p�ginas de manual do 
  <manref name="man" section="7"> para uma breve descri��o do nome
  do programa de como criar uma p�gina de manual. Esteja certo de
  renomear esse arquivo para o nome do programa e fazer a extens�o
  dele a se��o do manual para que ele deve ir. Aqui uma pequena lista:

  <p><example>
  Section |     Description     |     Notes
     1      Comandos do usu�rio          Comandos execut�veis ou scripts.
     2     Chamadas de sistema          Fun��es providas pelo kernel.
     3     Chamadas de biblioteca      Fun��es dentro de bibliotecas de sistema.
     4     Arquivos especiais             Normalmente encontrados no /dev.
     5     Formatos de arquivos          Ex: o formato do /etc/passwd
     6     Jogos                                    Ou outros programas do g�nero
     7     Pacotes de macro                 Como macros man.
     8     Administra��o do Sistema  Programas tipicamente rodados pelo root.
     9     Rotinas de Kernel                 Chamadas n�o-padr�o.
  </example>
  
  <p>Ent�o a p�gina de manual do gentoo deve ser chamada gentoo.1, ou gentoo.1x
  porque ele � um programa de X. N�o havia a p�gina de manual gentoo.1 ent�o eu
  a escrevi usando informa��es do exemplo e de documentos externos.

  <sect id="menu">menu.ex

  <p>Usu�rios de X normalmente t�m um gerenciador de janelas com um menu
  que pode ser customizado para executar programas. Se eles instalaram 
  o pacote "menu" do Debian, um conjunto de menus para cada programa
  ser� criado para eles. Isso n�o � requerido pela Pol�tica Debian, mas os 
  usu�rios v�o certamente gostar. N�s podemos adicionar o Gentoo aos menus
  editando esse arquivo. Aqui est� o padr�o que o dh_make cria:
  
  <p><example>
  ?package(gentoo):needs=X11|text|vc|wm section=Apps/see-menu-manual\
    title="gentoo" command="/usr/bin/gentoo"
  </example>

  <p>O primeiro campo especifica que tipo de interface o programa precisa
  (ex: texto ou X11). O pr�ximo � a entrada de menu e submenu que ele deve
  entrar. A lista atual de se��es est� em: 
  /usr/share/doc/debian-policy/menu-policy.html/ch2.html#s2.1
  O terceiro campo � o nome do programa. O quarto � o �cone para o programa ou
  nada se n�o h� um. O quinto � o texto que aparecer� no menu. Finalmente,
  o sexto � o comando que roda o programa.

  <p>Vamos mudar a entrada de menu para:
  <p><example>
  ?package(gentoo):needs=X11 section=Apps/Misc \
    title="Gentoo" command="/usr/X11R6/bin/gentoo"
  </example>

  <p>Veja <manref name="menufile" section="5">, <manref name="update-menus" section="1">
  e /usr/share/doc/debian-policy/menu-policy.html/ para maiores informa��es.

  <sect id="watch">watch.ex

  <p>Voc� pode usar esse arquivo em adi��o aos programas <manref name="uscan" section="1">
  e <manref name="uupdate" section="1"> (no pacote devscripts)
  para scanear o site de onde voc� pegou o c�digo original do programa. Aqui est� o que eu
  pus:

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

  <p>Dica: conecte � Internet e tente rodar "uscan" no diret�rio do programa depois
  de criar esse arquivo. E leia a p�gina de manual.
  
  <sect id="doc-base">ex.doc-base

  <p>Se seu pacote tem documenta��o em HTML ou outro tipo (exceto p�ginas de manual
  e documentos de info), voc� deve usar o arquivo `doc-base' para registr�-lo,
  ent�o o usu�rio poder� encontr�-lo com ex: <manref name="dhelp" section="1"> ou
  <manref name="dwww" section="1">.

  <p>� assim que o arquivo doc-base do gentoo fica:

  <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>Para informa��o sobre formato do arquivo, veja <manref name="install-docs" section="8">
  e o manual do doc-base, em /usr/doc/doc-base/doc-base.html/index.html.

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

  <p>Esses arquivos s�o chamados scripts do mantenedor, scripts que s�o colocados 
  na �rea de controle do pacote e executadas pelo dpkg quando seu pacote �
  instalado, atualizado ou removido.

  <p>Por agora, voc� deve tentar evitar editar manualmente scripts de mantenedor
  se voc� puder porque eles tendem a se tornar complexos. Para mais informa��es
  olhe no Manual de Empacotamento, se��o 6, e olhe esses arquivos de exemplo 
  providos pelo dh_make.

  <p>N�s devemos agora estar prontos para construir o pacote.

  <chapt id="final">Passos finais

  <sect id="build">Construindo o pacote

  <p>Entre no diret�rio principal do programa e ent�o execute o seguinte comando:

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

  <p>Isso ir� fazer tudo por voc�, voc� ter� apenas que digitar sua senha PGP secreta
  duas vezes. Depois disso, voc� ver� quatro novos arquivos no diret�rio acima
  (~/debian/):

  <p><list>
  <item><em>gentoo_0.9.12-1_i386.deb</em>
  <p>Esse � o pacote bin�rio completado. Voc� pode usar dpkg ou dselect para instalar
  e remov�-lo como qualquer outro pacote.

  <item><em>gentoo_0.9.12.orig.tar.gz</em>
  <p>Esse � o c�digo fonte original feito para que, se algu�m quiser recriar seu pacote
  do come�o, eles poder�o. Ou se eles n�o est�o usando o sistema de empacotamento Debian,
  mas precisam fazer o download manual do c�digo e compilar.

  <item><em>gentoo_0.9.12-1.dsc</em>
  <p>Esse � um sum�rio do conte�do do c�digo fonte. O arquivo � gerado do arquivo
  gentoo-0.9.12/debian/control, e � usado quando se desempacota o c�digo com 
  <manref name="dpkg-source" section="1">. Esse arquivo � assinado com PGP, 
  para que as pessoas possam ter certeza que ele � realmente seu.

  <item><em>gentoo_0.9.12-1.diff.gz</em>
  <p>Esse arquivo comprimido cont�m cada e toda adi��o que voc� fez ao c�digo fonte
  original, na forma conhecida como "unified diff". Isso � feito e usado pelo 
  <manref name="dpkg-source" section="1">.

  <item><em>gentoo_0.9.12-1_i386.changes</em>
  <p>Esse arquivo descreve todas as mudan�as feitas na revis�o atual do  pacote e 
  � usado pelos programas de manuten��o do arquivo de FTP Debian para instalar
  � os pacotes bin�rios e fonte em si. � parcialmente gerado do arquivo
  � gentoo-0.9.12/debian/changelog e do arquivo .dsc.

  <p>Enquanto voc� trabalha no pacote, comportamentos ir�o mudar e novos
  recursos ser�o adicionados. Pessoas que fizerem o download do seu pacote
  podem olhar nesse arquivo e ver rapidamente o que mudou. Os grandes n�meros
  s�o checksums MD5 para os arquivos mencionados. Pessoas que fizerem o
  download dos seus arquivos podem test�-los com 
  <manref name="md5sum" section="1"> e se os n�meros n�o forem iguais, eles
  saber�o que o arquivo est� corrompido ou foi hackeado. Esse arquivo � assinado
  com PGP, para que as pessoas possam ter maior certeza de que � realmente seu.
  </list>

  <p>Com um pacote grande, voc� pode n�o querer reconstruir do in�cio tudo de novo
  a cada vez que voc� arruma um detalhe no debian/rules. Para prop�sito de teste, 
  voc� pode fazer um arquivo .deb sem reconstruir os c�digos externos assim:

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

  <p>Tenha certeza que sua regra `install' <strong/n�o/ tem
  a `install-stamp' (� o padr�o dos dias atuais), para ter certeza de que
  o `dh_clean -k` � executado a cada vez. E uma vez terminadas as limpezas,
  lembre-se de reconstruir seguindo o procedimento correto, para estar
  apto a envi�-lo corretamente.

  <sect id="checkit">Checando o pacote para erros

  <p>Rode <manref name="lintian" section="1"> no seu arquivo .changes; esse programa
  ir� checar por muitos erros de empacotamento. O comando �:
  
  <p><example>
  lintian -i gentoo_0.9.12-1_i386.changes
  </example>
  
  <p>Claro que voc� deve trocar o nome do arquivo com o nome do arquivo
  .changes gerado para seu pacote. Se parecer haver alguns erros (linhas
  iniciando com E:), leia a explica��o (as linhas N:), corrija os erros e
  reconstrua como descrito em <ref id="build">. Se h� linhas que comecem
  com W:, esses s�o apenas avisos, ent�o voc� pode ter certeza que seu pacote
  est� ok (mas provavelmente precisa de algum pequeno conserto).

  <p>Note que voc� pode construir o pacote com dpkg-buildpackage e rodar
  lintian em apenas um comando com <manref name="debuild" section="1">.

  <p>Olhe dentro do pacote usando um gerenciador de arquivos como 
  <manref name="mc" section="1">, ou descompacte-o num lugar tempor�rio 
  usando <manref name="dpkg-deb" section="1">. Olhe sempre alerta para 
  arquivos n�o necess�rios tanto no pacote bin�rio como no fonte, em caso
  de alguma coisa dar errado e alguma coisa n�o ser limpada. Dicas: 
  `zgrep ^+++ ./gentoo_0.9.12-1.diff.gz` dar� a voc� uma lista de suas 
  mudan�as/adi��es nos arquivos fonte, e `dpkg-deb -c gentoo_0.9.12-1_i386.deb`
  listar� os arquivos no pacote.

  <p>Instale o pacote para testar voc� mesmo, ex: usando o comando
  <manref name="debi" section="1"> como root. Tente instalar e rod�-lo
  em m�quinas diferentes e olhar atentamente pelos avisos ou erros na 
  instala��o ou execu��o do programa.

  <p>Depois, quando voc� construir uma nova vers�o, voc� deve fazer o seguinte
  para assegurar a possibilidade de atualiza��o do pacote:

  <list>
  <item>atualize da vers�o anterior (e da vers�o na �ltima vers�o do Debian),
  <item>desatualize de novo,
  <item>instale o pacote como um novo pacote (ex.: sem nenhuma vers�o instalada antes).
  <item>desinstale, reinstale de novo, e ent�o expurgue ele.
  </list>

  <sect id="upload">Enviando o pacote

  <p>Agora que voc� testou seu novo pacote minuciosamente, voc� precisa enviar os
  arquivos para master.debian.org, usando <manref name="dupload" section="1">.
  Primeiro voc� tem de configurar o arquivo de configura��o do dupload, ~/.dupload.conf . 
  Ponha algo assim nele:

  <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>� claro, mude minhas configura��es pessoais pelas suas, e leia a p�gina
  de manual do <manref name="dupload.conf" section="5"> para entender o
  que cada uma dessas op��es significa.

  <p>Ent�o conecte-se � Internet e digite esse comando:
  
  <p><example>
  dupload --to master gentoo_0.9.12-1_i386.changes
  </example>

  <p>Dupload ir� checar se os checksums md5 dos arquivos batem com
  os do arquivo .changes, ent�o ir� avisar a voc� para reconstruir o pacote
  como descrito em <ref id="build"> para poder propriamente enviar.

  <p>Dupload ir� perguntar sua senha no master.debian.ogr, enviar os
  pacotes, dar um pequeno an�ncio sobre seu envio em
  <email/debian-devel-changes@lists.debian.org/ se necess�rio.

  <p>Se voc� mora na Europa, voc� pode usar alguns outros servidores
  de envio ao inv�s do master. Para detalhes olhe em 
  <manref name="dupload" section="1">,
  <manref name="dupload.conf" section="5"> e na Refer�ncia do 
  Desenvolvedor.

  <sect id="update">Atualizando o pacote

  <p>Vamos dizer que um relat�rio de erro tenha sido preenchido sobre 
  seu pacote, #54321 e ele descreve um problema que voc� pode resolver. 
  Para criar uma nova revis�o do pacote Debian, voc� precisa de:

  <list>
  <item>Corrigir o problema no fonte do pacote, claro.

  <item>Adicionar uma nova revis�o no arquivo changelog do Debian, 
  com `dch -i` e incluir uma pequena descri��o do problema e sua
  solu��o, seguido disse: "Closes: #54321". Desse modo, o relat�rio
  de erro ser� automaticamente fechado pelo software do manuten��o
  de arquivamento no momento que seu pacote for aceito no arquivo
  do Debian.

  <item>Repita o que voc� fez em <ref id="build">, <ref id="checkit">,
  e <ref id="upload">. A diferen�a � que dessa vez o fonte original
  n�o ser� inclu�do, por ele n�o ter mudado e j� existir no arquivo do
  Debian.
  </list>

  <p>Agora vamos considerar uma situa��o diferente, um pouco mais 
  complicada - uma nova vers�o externa foi lan�ada, e claro, voc� quer
  empacot�-la. Voc� precisa fazer o seguinte:

  <list>
  <item>Fazer o download do c�digo fonte e colocar o tarball (e.g. chamado
  `gentoo-0.9.13.tar.gz') no diret�rio acima da velha �rvore de c�digo (ex:
  ~/debian/).

  <item>Entre no velho diret�rio fonte e execute:
  <example>
  uupdate -u gentoo-0.9.13.tar.gz
  </example>

  Claro, troque esse nome de arquivo pelo nome do arquivo de fonte do seu 
  programa. <manref name="uupdate" section="1"> ir� propriamente 
  renomear seu .diff.gz anterior, e atualizar� o novo debian/changelog.

  <item>V� ao diret�rio `../gentoo-0.9.13', a nova �rvore fonte do pacote,
  e repita o que voc� fez em <ref id="build">, <ref id="checkit">, e
  <ref id="upload">.
  </list>

  <p>Note que se voc� configurou `debian/watch' como descrito em
  <ref id="watch">, voc� pode rodar <manref name="uscan" section="1"> 
  para automaticamente olhar por fontes revisados, fa�a download deles,
  e rode uupdate.

  <sect id="helpme">Onde pedir por ajuda

  <p>Antes de decidir perguntar em algum lugar p�blico, por favor apenas
  RTFM. Isso inclui documenta��o em /usr/share/doc/dpkg,
  /usr/share/doc/debian, /usr/share/doc/package/* e as p�ginas de manual
  e de info de todos os programas mencionados nesse artigo. Quando
  voc� receber um relat�rio de erros (sim, relat�rios atuais de erros!), 
  voc� saber� que � hora de cavar no 
  <url name="Debian Bug Tracking System (Sistema de Procura de Erros" id="http://www.debian.org/Bugs/">
  e ler a documenta��o de l�, para estar apto a lidar com esses relat�rios
  eficientemente.

  <p>Entrando na lista de Mentores do Debian em <email/debian-mentors@lists.debian.org/
  voc� pode se relacionar com desenvolvedores experientes que ir�o ajud�-lo
  com d�vidas que voc� possa ter. Voc� pode se inscrever enviando um
  e-mail para <email/debian-mentors-request@lists.debian.org/ com a palavra
  `subscribe' no assunto da mensagem.

  <p>Se voc� ainda tem d�vidas, pergunte na lista dos Desenvolvedores Debian
  em <email/debian-devel@lists.debian.org/. Voc� pode se inscrever nela
  enviando um e-mail para <email/debian-devel-request@lists.debian.org/ 
  com a palavra `subscribe' no assunto da mensagem. Se voc� � um 
  desenvolvedor Debian, voc� deve ser inscrito de qualquer modo.

  <p>Mesmo se tudo foi bem, � hora de come�ar a jogar. Por qu�? Porque
  em poucas horas (ou dias) os usu�rios de todo o mundo ir�o come�ar
  a usar seu pacote, e se voc� fez erros cr�ticos voc� receber� e-mails
  bomba de numerosos usu�rios do Debian nervosos... T� brincando. =)

  <p>Relaxe e esteja pronto para relat�rios de erro, porque h� muito trabalho
  a ser feito antes de estar totalmente endireitado com as pol�ticas do Debian
  (mais uma vez leia a <em>documenta��o real</em> para detalhes. Boa Sorte!

 </book>

</debiandoc>