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

<debiandoc>

 <book>

  <titlepag>

   <title>Gu�a del Nuevo Desarrollador de Debian</title>

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

   <author>Traducido por: 
   Javier Fern�ndez-Sanguino Pe�a <email/jfs@computer.org/
   </author>

   <author>Traducido por: 
   David Martinez <email/david.martinez@rediris.es/
   </author>

   <version>versi�n 1.0 (translation 1.0), 10 de junio 2001.</version>

   <copyright>
   <copyrightsummary>Copyright &copy; 1998-2001 Josip Rodin.
   Translation Copyright &copy; 1999, 2000, 2001 Javier Fern�ndez-Sanguino Pe�a.</copyrightsummary>

   <p>Este documento puede ser usado en los t�rminos descritos en 
   la Licencia P�blica GNU versi�n 2 o posterior.

   <p>Este documento se ha hecho usando estos dos documentos como
   ejemplo:

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

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

  </titlepag>

  <toc sect>

  <chapt id="start">Empezando "de la Forma Correcta".

  <p>Este documento tratar� de describir c�mo se construye un paquete
  Debian GNU/Linux para el usuario com�n de Debian (y futuros
  desarrolladores) en un lenguaje informal, y con multitud de
  ejemplos. Hay un antiguo dicho romano que dice, <em>�Longum iter est
  per preaecepta, breve et efficax per exempla!</em> (�Es un largo
  camino con las reglas, pero corto y eficiente con ejemplos!)

  <p>Una de las cosas que hace a Debian una de las distribuciones m�s
  importantes del mercado es su sistema de paquetes. Aunque hay una
  gran cantidad de programas disponibles en forma de paquetes de
  Debian, algunas veces necesitar�s instalar programas que no est�n
  disponible en este formato. Puedes que te preguntes c�mo har�s
  tus propios paquetes y que pienses que 
  quiz�s �sta sea una tarea demasiada dif�cil. Bueno, si eres un
  principiante en Linux, s� es duro, pero si eres un novato, no
  deber�as estar leyendo esto ahora mismo. :-) Necesitas saber algo
  sobre programaci�n en Unix, pero desde luego no tienes que ser un
  maestro.

  <p>Se pueden obtener versiones nuevas de este documento en l�nea
  en <url name="http://www.debian.org/doc/maint-guide"
  id="http://www.debian.org/doc/maint-guide"> y en el paquete
  'maint-guide-es'.

  <sect id="needprogs">Programas que necesitas para el desarrollo.

  <p>Antes de empezar nada, deber�as asegurarte que tienes instalados
  algunos paquetes adicionales necesarios para el desarrollo. Observa
  que en la lista no est�n incluidos paquetes cuyas prioridades son `esencial' o
  `requerido' que se suponen ya instalados.

  <p>Este documento fue escrito cuando la distribuci�n `slink' 2.1 era
  la distribuci�n estable oficial de Debian, y `potato' 2.2 estaba en
  fase de desarrollo. Por ello, los paquetes que se indicar�n aqu� son
  principalmente aquellos de `potato'.

  <p>Los siguientes paquetes vienen en una instalaci�n est�ndar de
  Debian 2.1, as� que probablemente ya los tengas (junto con los
  paquetes de los que dependen). A�n as�, deber�as comprobarlo con
  `dpkg -s &lt;paquete&gt;`.

  <list>
  <item><em>binutils</em> - estos programas se usan para ensamblar y
  enlazar ficheros objeto - aquellos que componen los programas (vease
  `info binutils`)

  <item><em>cpp</em> - el preprocesador de C. (vease <manref
  name="cpp" section="1">)

  <item><em>cpio</em> - este es un programa archivador como tar o zip.
  (vease <manref name="cpio" section="1">)

  <item><em>dpkg-dev</em> - este paquete contiene las herramientas
  necesarias para desempaquetar, construir y enviar paquetes fuente de
  Debian. (vease <manref name="dpkg-source" section="1">)

  <item><em>file</em> - este �til programa puede determinar de qu�
  tipo es un fichero. (vease <manref name="file" section="1">)

  <item><em>gcc</em> - el compilador de C de  GNU. La mayor parte de
  los programas de Linux est�n escritos en C. Si tu programa est�
  escrito en alg�n otro lenguaje de programaci�n como C++, Fortran o
  Pascal, deber�as instalar g++, g77, o gpc, respectivamente.
  (lee <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> - las librer�as y archivos de cabeceras de C
  que gcc necesita para enlazar y crear ficheros objeto. Aunque
  algunos programas recomiendan y/o usan libc5, te sugiero que
  utilices la nueva versi�n (libc6). (revisa `info libc`)

  <item><em>make</em> - habitualmente la creaci�n de un programa consta de
  varios pasos. En lugar de ejecutar los mismos comandos una y otra
  vez, puedes utilizar este programa para automatizar el proceso,
  creando `Makefile's. Algunos programas tambi�n usan imake y xmkmf
  para generar Makefiles a partir de un conjunto de funciones
  macro. Algunos programas m�s nuevos usan guiones de configuraci�n y
  Makefiles con la ayuda de programas como autoconf y automake, as�
  que puedes necesitarlos tambi�n. (vease `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> - esta utilidad es muy pr�ctica, ya que permite
  tomar un fichero que contiene un listado de diferencias (producido
  por el programa diff) y aplic�rselas al fichero original,
  produciendo una versi�n "parcheada". (vease <manref name="patch"
  section="1">)

  <item><em>perl5</em> - Perl es uno de los lenguajes interpretados
  para hacer guiones m�s usados en los sistemas Un*x de hoy,
  com�nmente referido como la "Navaja Suiza de Unix". (vease
  <manref name="perl" section="1">)
  </list>

  <p>De la secci�n `devel' de la distribuci�n posiblemente necesites
  instalar esto t� mismo:

  <list> 
  <item><em>dh-make</em> y <em>debhelper</em> - dh-make es necesario
  para crear el esqueleto de nuestro paquete ejemplo, y se usar�n
  algunas de las herramientas de debhelper para crear paquetes. No son
  imprescindibles para la creaci�n de paquetes, pero se recomienda
  <strong>encarecidamente</strong> para nuevos desarrolladores. Hace
  el proceso mucho m�s f�cil al principio, y m�s f�cil de controlar
  tambi�n m�s adelante. (vease <manref name="dh_make" section="1">,
  <manref name="debhelper" section="1">,
  /usr/share/doc/debhelper/README)
  
  <item><em>devscripts</em> - este paquete contiene algunos guiones
  �tiles para los desarrolladores, pero no son necesarios para crear
  paquetes. (vease /usr/share/doc/devscripts/README.gz)
    
  <item><em>fakeroot</em> - esta utilidad te permite emular ser root
  (superusuario, n. del t.) lo cual es necesario para ciertas partes
  del proceso de construcci�n. (vease <manref name="fakeroot"
  section="1">)

  <item><em>lintian</em> - este es el comprobador de paquetes de Debian,
  que te indica muchos de los errores comunes despu�s de construir un
  paquete, y explica los errores. Hace falta tener instalado diffstat
  tambi�n, una peque�a utilidad que crea histogramas a partir de la
  salida de diff. (vease <manref name="lintian" section="1">, <manref
  name="diffstat" section="1">,
  /usr/share/doc/lintian/lintian.html/index.html)
  </list>

  <p>Por �ltimo, estos paquetes de <em>gran importancia</em> est�n en
  la secci�n 'doc' de la distribuci�n:

  <list>
  <item><em>debian-policy</em> - incluye la estructura y contenidos
  del archivo, ciertas notas sobre dise�o del SO, el Est�ndar de la
  Jerarqu�a del Sistema de Ficheros (Filesystem Hierarchy Standard,
  n. del t.), y, lo m�s importante (para ti) es que describe los
  requisitos que debe satisfacer cada paquete para ser incluido en la
  distribuci�n. (mira
  /usr/share/doc/debian-policy/policy.html/index.html)

  <item><em>developers-reference</em> - para todos los temas no
  espec�ficamente relacionados con los detalles t�cnicos de c�mo
  empaquetar, como la estructura del archivo, c�mo renombrar,
  abandonar, coger paquetes, c�mo hacer NMUs (Non-Maintainer Uploads,
  o env�os por personas distintas del desarrollador, n. del t.), como
  gestionar los errores que los usuarios env�en, y c�mo y cuando
  enviar los paquetes, etc.
<!-- traduzco upload por "enviar" pero no me gusta mucho - jfs -->
  (lee
  /usr/share/doc/developers-reference/developers-reference.html/index.html)
  </list>

  <p>Tambi�n necesitar�s un paquete criptogr�fico, o bien PGP (los
  paquetes pgp-*) o GPG (el paquete gnupg), para <em>firmar</em>
  digitalmente tu paquete. Esto es especialmente importante si quieres
  distribuir tu paquete a otras personas (y har�s precisamente esto
  si tu paquete se incluye en la distribuci�n de Debian). Sin embargo,
  debido a una est�pida ley de exportaci�n de los EEUU, no puedes
  simplemente obtenerlo de tu servidor FTP de Debian m�s cercano. Pero
  Debian ofrece estos paquetes a trav�s de un servidor que no est�
  f�sicamente en EEUU, llamado non-US.debian.org
  (ftp://non-us.debian.org/debian-non-US/). Tu servidor FTP tendr� un
  fichero llamado README.non-us, que te indicar� d�nde est� la r�plica
  m�s cercana de este servidor.

  <p>Las breves descripciones dadas anteriormente s�lo sirven para
  introducirte a lo que hace cada paquete. Antes de continuar, por
  favor, lee la documentaci�n de cada programa, al menos para su uso
  normal. Puede parecerte algo duro ahora, pero m�s adelante estar�s
  <em>muy</em> contento de haberla le�do.

  Nota: <em>debmake</em> es una paquete que incluye otros programas
  con funciones similares a dh-make, pero su uso espec�fico
  <strong>no</strong> est� cubierto en este documento. Lee el <url
  name="manual de Debmake" id="http://www.debian.org/~jaldhar/"> para
  m�s informaci�n.
  
  <sect id="otherinfo">M�s informaci�n.

  <p>Puedes construir dos tipos de paquetes, fuentes y binarios. Un
  paquete fuente contiene el c�digo que puede compilar en un programa.
  Un paquete binario contiene s�lo el programa terminado. �No mezcles
  los t�rminos como 'fuentes de un programa' y el 'paquete fuente de
  un programa'! Por favor, lee los otros manuales si necesitas m�s
  detalles sobre terminolog�a.

  <p>Debian usa el t�rmino `desarrollador' para la persona que hace
  paquetes, `autor fuente' (`upstream author, n. del t.) para la
  persona que hizo el programa, y `desarrollador fuente' (`upstream
  maintainer', n. del t.) para la persona que actualmente mantiene el
  programa fuera de Debian. Generalmente el autor y el desarrollador
  fuente son la misma persona - y algunas veces incluso el
  desarrollador es el mismo. Si t� haces un programa, y quieres
  incluirlo en Debian, tienes total libertad para solicitar
  convertirte en desarrollador.

  <p>Despu�s de construir tu paquete (o mientras lo haces), deber�s
  convertirte en un desarrollador oficial de Debian si deseas que tu
  programa entre en la pr�xima distribuci�n (si el programa es �til,
  �por qu� no?). Este proceso se explica en la Referencia del
  Desarrollador, por favor, l�ela.

  <chapt id="first">Primeros pasos.

  <p>Mientras que la documentaci�n en el <url name="Rinc�n del
  Desarrollador" id="http://www.debian.org/devel/"> no est� muy clara
  sobre d�nde y c�mo deber�a empezar un nuevo desarrollador su
  trabajo, este documento te explicar� cada peque�o (y algunas veces
  incluso irrelevante) detalle, para ayudarte crear ese primer
  paquete, y ganar alguna experiencia en la construcci�n de nuevas
  versiones de �ste y quiz�s otros paquetes m�s adelante.


  <sect id="choose">Elige tu programa.

  <p>Probablemente hayas escogido ya el paquete que deseas construir,
  pero aqu� hay algunos punteros para los novatos:

  <list>
  <item>comprueba si el paquete ya est� en la distribuci�n. Si usas la
  distribuci�n `estable', quiz�s sea mejor que vayas a la <url
  name="p�gina de b�squeda de paquetes"
  id="http://www.debian.org/distrib/packages.html">. Si usas la
  distribuci�n `inestable' <strong>actualmente</strong>, comprueba
  esto con los comandos:
  <example>
  dpkg -s programa
  dpkg -l '*programa*'
  </example>

  <item>consulta la <url name="p�gina WNPP (paquetes en Perspectiva o
  que Necesitan Ayuda)" id="http://www.debian.org/devel/wnpp/"> y los
  archivos de la lista de correo debian-devel para ver si alguna otra
  persona est� construyendo ese mismo programa. Si es as�, contacta
  con el desarrollador actual si lo crees conveniente. Si
  no, intenta buscar otro programa interesante que nadie
  mantenga.</item>

  <item>el programa <strong>debe</strong> tener una licencia, si es
  posible, libre en el sentido marcado por las
  <url name="Directrices de Debian para el software libre"
  id="http://www.debian.org/social_contract.html#guidelines">.
  Si no sigue una de estas reglas, a�n puede incluirse en las
  secciones `contrib' o `non-free' de Debian. Si no est�s seguro sobre
  en qu� lugar deber�a ir, pregunta en
  <email/debian-legal@lists.debian.org/.
  </item>

  <item>el programa <strong>no</strong> deber�a ejecutarse con setuid
  root, o a�n mejor: no deber�a tener ning�n programa 'setuid' ni
  'setgid'.</item>

  <item>el programa no deber�a ser un demonio, o algo que vaya en los
  directorios */sbin.</item>

  <item>el programa deber�a estar compuesto por binarios ejecutables,
  no lo intentes a�n con librer�as.</item>

  <item>deber�a tener una buena documentaci�n, o al menos legible
  (para cualquiera).
  </item>

  <item>deber�as contactar con el/los autor/es del programa para
  comprobar si est�n de acuerdo con que se empaquete. Esto es
  importante para consultar al/los autor/es sobre el programa en caso
  de que haya problemas espec�ficos, as� que no intentes empaquetar
  programas que no est�n mantenidos.</item>

  <item>y por �ltimo pero no menos importante, deber�as saber c�mo
  funciona, y haberlo utilizado durante alg�n tiempo.</item>
  </list>

  <p>Por supuesto, esta lista es para tomar medidas de seguridad, y
  con la intenci�n de salvarte de usuarios enfurecidos si haces algo
  mal con alg�n demonio setuid... Pero cuando tengas m�s experiencia
  en empaquetar cosas, podr�s hacer este tipo de paquetes, pero
  incluso los desarrolladores m�s experimentados preguntan en la
  lista de distribuci�n de debian-devel cuando tienen dudas. La
  gente all� te ayudar� gustosamente.

  <p>Para m�s ayuda sobre esto, lee la Referencia del Desarrollador.

  <sect id="getit">Obt�n el programa, y pru�balo.

  <p>La primera cosa a hacer es encontrar y descargar el paquete
  original. Supongo que ya tienes el c�digo fuente que obtuviste de la
  p�gina del autor. Las fuentes de los programas gratuitos de Linux
  generalmente vienen en formato tar/gzip, con extensi�n .tar.gz, y
  generalmente contienen un subdirectorio llamado programa-versi�n
  con todas las fuentes en �l. Si tu programa viene en otro tipo de
  archivo (por ejemplo, el fichero termina en ".Z" o ".zip"),
  descompr�melo con las herramientas adecuadas, o pregunta en
  debian-mentors si no est�s seguro de c�mo se puede desempaquetar
  correctamente (pista: prueba `file archivo.extensi�n`).

  <p>Como ejemplo, usar� el programa conocido como `gentoo', un gestor
  de ficheros de X11 en GTK+. Observa que el programa ya ha sido
  empaquetado previamente pero ha cambiado sustancialmente de versi�n
  desde que este texto se escribi�.

  <p>Crea un subdirectorio bajo tu directorio personal llamado
  'debian' o 'deb' o lo que creas apropiado (por ejemplo ~/gentoo/
  estar�a bien en este caso) Y mueve a �l el archivo que has
  descargado, y descompr�melo de la siguiente forma: `tar xzf
  gentoo-0.9.12.tar.gz`. Aseg�rate de que no hay errores, incluso
  errores "irrelevantes", porque es muy probable que haya problemas
  desempaquetando en sistemas de otras personas, cuyas herramientas de
  desempaquetado puede que no ignoren estas anomal�as.

  <p>Ahora tienes otro subdirectorio, llamado 'gentoo-0.9.12'.
  Mu�vete a ese directorio y lee <strong>en profundidad</strong> la
  documentaci�n que encuentres. Est� generalmente en ficheros que se
  llaman README*, INSTALL*, *.lsm o *.html. All� encontrar�s
  instrucciones de c�mo compilar e instalar el programa (muy
  probablemente asumir�n que lo quieres instalar en el directorio
  /usr/local/bin: no har�s esto, pero eso lo veremos m�s adelante en
  <ref id="destdir">).

  <p>El proceso var�a de programas a programas, pero gran parte de los
  programas modernos vienen con un gui�n 'configure' que configura
  las fuentes para tu sistema y se asegura de que tu sistema est� en
  condiciones de compilarlo. Despu�s de configurarlo (con
  `./configure`), los programas generalmente se compilan con `make`.
  Algunos de ellos soportan `make check` para ejecutarse incluyendo
  comprobaciones autom�ticas. Generalmente se instalar�n en sus
  directorios de destino ejecutando `make install`.
  
  <p>Ahora intenta compilar, y ejecutar el programa, para asegurarte
  de que funciona bien y que no rompe nada m�s mientras est�
  instal�ndose o ejecut�ndose.

  <P>Tambi�n, generalmente, puedes escribir `make uninstall` para
  eliminar todos los programas instalados, y `make clean` (o mejor
  `make distclean`) para limpiar el directorio donde se genera el
  programa.

  <sect id="namever">Cosas antes de `dh_make'.

  <P>Deber�as empezar a construir tu paquete en un directorio de
  fuentes completamente limpio, o simplemente con las fuentes reci�n
  desempaquetadas.

  <p>Para construir correctamente el paquete, debes cambiar el nombre
  original del programa en letras min�sculas (si no lo est� ya), y
  deber�as renombrar el directorio de fuentes a
  &lt;nombre_de_paquete&gt;-&lt;versi�n&gt;.

  <P> Si el nombre del programa son varias palabras, contr�elas a una
  palabra o haz una abreviatura. Por ejemplo, el paquete del programa
  "el editor para X de Javi" se podr�a llamar javiedx o jle4x, o lo
  que decidas, siempre y cuando no se exceda de unos l�mites
  razonables, como 20 caracteres.

  <p>Comprueba tambi�n la versi�n exacta del programa (la que se
  incluye en la versi�n del paquete). Si el programa no est� numerado
  con versiones del estilo de X.Y.Z, pero con fecha de lanzamiento,
  eres libre de utilizar la fecha como n�mero de versi�n, precedida
  por "0.0" (s�lo por si los desarrolladores originales deciden sacar
  una versi�n nueva como 1.0). As�, si la fecha de las fuentes es el
  19 de diciembre de 1998, puedes utilizar la abreviatura
  norteamericana 0.0.19981219 como n�mero de versi�n. A�n as� habr�
  algunos que ni siquiera est�n numerados, en cuyo caso deber�s
  contactar con el 'desarrollador fuente' para ver si tienen alg�n
  otro sistema de seguimiento de revisiones.

  <sect id="dh_make">Ejecutando `dh_make'.
  <p>Aseg�rate que est�s en el directorio donde est�n las fuentes del
  programa, y ejecuta lo siguiente:

  <p><example>
  dh_make -e tu.direcci�n@de.desarrollador -f ../gentoo-0.9.12.tar.gz
  </example>

  <p>Por supuesto, cambia la cadena
  "tu.direcci�n@de.desarrollador" por tu direcci�n de correo
  electr�nico para que se incluya en la entrada del fichero de cambios
  as� como en otros ficheros, y el nombre de fichero de tu archivo
  fuente original. Lee <manref name="dh_make" section="1"> para m�s
  detalles.

  <p>Saldr� alguna informaci�n. Te preguntar� qu� tipo de paquete
  deseas crear. Gentoo es un s�lo paquete de binarios - crea s�lo un
  binario, y, por tanto, s�lo un fichero .deb - as� que
  seleccionaremos la primera opci�n, con la tecla `s'. Comprueba la
  informaci�n que aparece en la pantalla y confirma pulsando la tecla
  &lt;intro&gt;. Como nuevo desarrollador, est� desaconsejado crear
  paquetes multibinarios, o librer�as, como se explic� antes. No es
  extremadamente dif�cil, pero s� necesita algunos conocimientos m�s,
  as� que aqu� no describiremos el proceso.

  <p>Ten en cuenta que deber�as ejecutar dh_make <strong>s�lo una
  vez</strong>, y que no se comportar� correctamente si lo haces otra
  vez en el mismo directorio, ya "debianizado". Esto tambi�n significa
  que usar�s un m�todo distinto para crear una nueva revisi�n o una
  nueva versi�n de tu paquete en el futuro. Lee m�s sobre esto m�s
  adelante en <ref id="update">.

  <chapt id="modify">Modificando las fuentes.

  <p>Normalmente, los programas se instalan a s� mismos en el
  subdirectorio /usr/local. Pero los paquetes Debian no pueden
  utilizar este directorio ya que est� reservado para el uso privado
  del administrador (o de los usuarios). Esto significa que tienes que
  mirar el sistema de construcci�n de tu programa, generalmente
  empezando por el Makefile. �ste es el gui�n que <manref name="make"
  section="1"> usar� para automatizar la creaci�n de este programa.
  Para m�s detalles sobre Makefiles, mira en <ref id="rules">.

  <p>Date cuenta que si tu programa usa GNU <manref name="automake"
  section="1"> y/o <manref name="autoconf" section="1">, lo que quiere
  decir que las fuentes incluyen ficheros Makefile.am y Makefile.in,
  respectivamente, necesitar�s modificar esos ficheros, porque cada
  invocaci�n de automake reescribir� los Makefile.in's con informaci�n
  generada a partir de los Makefile.am's, y cada llamada a ./configure
  har� lo mismo con los Makefile's, con informaci�n de los
  Makefile.in's. Editar los ficheros Makefile.am requiere algunos
  conocimientos de automake, sobre lo que puedes leer en la entrada
  de info para automake, mientras que editar Makefile.in's es casi
  lo mismo que editar ficheros Makefile, simplemente basta con poner
  atenci�n en las variables, es decir, cualquier cadena que empiece y
  acabe por `@'s, como por ejemplo @CFLAGS@ o @LN_S@, que se rellenan
  con cada vez que se ejecute ./configure.

  <p>Ten en cuenta que no hay espacio aqu� para entrar en
  <em>todos</em> los detalles respecto a los arreglos, pero aqu� hay
  algunos de los problemas frecuentes a los que se enfrenta uno.

  <sect id="destdir">Instalaci�n en un subdirectorio.

  <p>La mayor parte de los programas tienen alguna manera de
  instalarse en la estructura de directorios existente en tu sistema,
  para que los binarios sean incluidos en tu $PATH, y para que
  encuentre la documentaci�n y p�ginas de manual en los lugares
  habituales. Tienes que asegurarte que esto se realice de forma
  correcta, pero tienes que hacer que se instale en un directorio
  temporal que se crear� bajo tu directorio debian/, generalmente con
  el nombre <tt>debian/tmp</tt>, desde el que las herramientas de
  desarrollo construir�n un paquete .deb que se pueda instalar. Todo
  lo que se incluye en este directorio ser� instalado en el sistema
  del usuario cuando instale su paquete, la �nica diferencia es que
  dpkg instalar� los ficheros en el directorio ra�z.

  <p>B�sicamente, debes hacer que el programa se instale en debian/tmp,
  pero se comporte correctamente cuando se instale en el directorio
  ra�z, esto es, cuando se instale desde el paquete .deb. Con
  programas que utilicen la herramienta GNU autoconf, �sto ser� bien
  sencillo, porque dh_make pondr� las opciones necesarias para hacer
  esto autom�ticamente, as� que podr�as dejar de leer esta secci�n.
  Pero con otros programas, puede ser necesario que examines y edites
  los Makefiles.

  <p>Esta es la parte importante del Makefile de gentoo:

  <p><example>
  # �D�nde poner el binario en 'make install'?
  BIN     = /usr/local/bin
  # �D�nde poner los iconos en 'make install'? Nota: si cambias esto,
  # gentoo no encontrar� los iconos cuando arranque. Deber�s cambiar 
  # el path de iconos de gentoo (en la ventana de configuraci�n:
  # "Paths") para que funcione.
  ICONS   = /usr/local/lib/gentoo/
  </example>


  <p>Antes de esto deber�as insertar dos nuevas l�neas que digan:

  <p><example>
  # Edited for Debian GNU/Linux.
  DESTDIR =
  </example>
  porque el proceso de construcci�n lo necesita (explicado m�s tarde,
  en <ref id="rules">).

  <p>Despu�s el Makefile menciona la localizaci�n del binario final.
  S�lo necesita cambiar esto:
  <p><example>
  # �D�nde poner el binario en 'make install'?
  BIN     = $(DESTDIR)/usr/X11R6/bin
  </example>

  <p>�Pero por qu� en este directorio y no en otro? Porque Debian
  tiene unas reglas definidas de d�nde deber�an estar instalados los
  programas. Est�n especificadas en el Est�ndar de la Jerarqu�a del
  Sistema de Ficheros (Filesystem Hierarchy Standard, n. del t.)
  (/usr/share/doc/debian-policy/fhs). As�, deber�amos instalar el
  binario en /usr/X11R6/bin en lugar de /usr/local/bin, y la p�gina de
  manual (no existe aqu�, pero casi todos los programas tienen una,
  as� que haremos una despu�s) en /usr/share/man/man1 en lugar de
  /usr/local/man/man1.

  <p>Despu�s de esto tendremos un situaci�n un poco m�s complicada. Si
  dejas alguna l�nea como:

  <p><example>
  ICONS   = $(DESTDIR)/usr/share/gentoo/
  </example>
  que se ajusta a la pol�tica de Debian, deber�s editar algunos
  ficheros de fuentes reales de C. Pero, �d�nde buscar? Puedes probar
  a encontrarlos usando:
  <p><example>
  grep -n usr/local/lib *.[ch]
  </example>
  (en cada subdirectorio que contenga ficheros .c y .h). Grep dir� el
  nombre del fichero y la l�nea, cuando encuentra una ocurrencia.
  Ahora edita esos ficheros y cambia en esas l�neas usr/local/lib con
  usr/share - y ya est�. Simplemente reemplaza usr/local/lib por tu
  localizaci�n, y s� muy cuidadoso para no tocar el resto del c�digo,
  si no sabes mucho sobre c�mo programar en C. :-)

  <p>Despu�s de esto deber�as encontrar el objetivo 'install' (busca
  una l�nea que comience por 'install:') y renombra todas las
  referencias a directorios distintos de los definidos al comienzo del
  Makefile. Anteriormente el objetivo 'install' dec�a:

  <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>Despu�s del cambio dice:
  <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>Un lector atento se dar� cuenta de que he cambiado `gentoo' a
  `gentoo-target' en la l�nea `install:'. A eso se le llama arreglar
  un fallo en el programa. :-)

  <p>Siempre que hagas cambios que no est�n espec�ficamente
  relacionados con el paquete Debian, aseg�rese de que los env�as al
  desarrollador original para que �ste los incluya en la pr�xima
  revisi�n del programa. Observa que no tienes que enviar ninguno
  de los ficheros debian/* al desarrollador original, pero deber�as
  hacerlo con cualquier otro parche. Y s� amable haciendo que tus
  cambios no sean espec�ficos a Debian o Linux (�ni siquiera a Unix!)
  antes de enviarlos.

  <sect id="difflibs">Librer�as diferentes.

  <p>Hay otro problema com�n: las librer�as son generalmente diferentes
  de plataforma a plataforma. Por ejemplo, un Makefile puede contener
  una referencia a una librer�a que no exista en Debian o ni siquiera
  en Linux. En este caso, se necesita cambiarla a una librer�a que s�
  exista en Debian y sirva para el mismo prop�sito. La mejor forma es
  comentar esas l�neas porque puede haber otras personas que intenten
  compilar en diferentes plataformas, y �stas les pueden dar algunas
  pistas de d�nde puede estar el problema.

  <p>As�, si hay una l�nea en el Makefile (o Makefile.in) de tu
  programa que dice algo como lo siguiente (y tu programa no compila):

  <p><example>
  LIBS = -lcurses -lcosas -lm�scosas
  </example>

  <p>Entonces c�mbiala a lo siguiente, y funcionar� casi con
  seguridad:
  <p><example>
  LIBS = -lncurses -lcosas -lm�scosas
  #LIBS = -lcurses -lcosas -lm�scosas
  </example>

  <chapt id="dreq">Las cosas necesarias bajo debian/.

  <p>Ahora hay un nuevo subdirectorio bajo el directorio principal del
  programa (`gentoo-0.9.12'), que se llama `debian'. Hay bastantes
  ficheros en este directorio. Empezaremos editando �stos para adaptar
  el comportamiento del paquete. La parte m�s importante es modificar
  los ficheros `control', `rules' (reglas, n. del t.), `changelog', y
  `copyright' que son necesarios en todos los paquetes.

  <sect id="control">El fichero `control'.

  <p>Este fichero contiene varios valores que dpkg y dselect usar�n
  para gestionar el paquete. Aqu� est� el fichero de control que
  dh_make crea para nosotros.

  <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;insertar unos 60 caracteres de descripci�n&gt;
  11  &lt;inserta una descripci�n corta, indentada con espacios&gt;
  </example>
  (He a�adido los n�meros de l�nea).

  <p>Las l�neas 1-5 son la informaci�n de control para el paquete
  fuente. La l�nea 1 es el nombre del paquete fuente.

  <p>La l�nea 2 es la secci�n de la distribuci�n dentro de la que
  estar� este paquete. Como puedes haber notado, Debian est� dividida
  en secciones: main (principal, n. del t.) (el software libre),
  non-free (no libre, n. del t.) (el software que realmente no es
  libre) y contrib (software libre que depende de software no libre).
  Bajo ellas, hay subdivisiones l�gicas que describen en una palabra
  qu� paquetes hay dentro. As� que tenemos `admin' para programas que
  s�lo usa un administrador, `base' para las herramientas b�sicas,
  `devel' para las herramientas de programaci�n, `doc' para la
  documentaci�n, `libs' para las bibliotecas o librer�as, `mail' para
  lectores y demonios de correo-e, `net' para aplicaciones y demonios
  de red, `x11' para programas espec�ficos de X11, y muchos m�s.

  <p>Vamos a cambiarla para que ponga x11.

  <p>La l�nea 3 describe c�mo de importante es para el usuario la
  instalaci�n de este paquete. La secci�n y prioridad actualmente las
  usa s�lo dselect cuando ordena paquetes y selecciona valores por
  defecto, y pueden ser modificadas (y generalmente lo ser�n) por
  nuestros administradores del FTP. Lee el manual de Pol�tica de
  Debian para una gu�a de qu� valor deben tener estos campos.
  
  <p>Como es un paquete de prioridad normal, lo dejaremos con
  prioridad `optional' (opcional, n. del t.).

  <p>La l�nea 4 es el nombre y correo electr�nico del desarrollador.

  <p>La l�nea 5 es la versi�n de los est�ndares de la Pol�tica de
  Debian que sigue este paquete (al menos, los dos primeros n�meros de
  la versi�n del paquete debian-policy actual).

  <p>Si se necesita un compilador no est�ndar o alguna otra
  herramienta para construir el paquete, deber�as a�adir aqu� una
  l�nea 'Build-Depends' y listar los paquetes necesarios. Para m�s
  informaci�n sobre �sto, lee el Manual de Empaquetamiento (secci�n
  8.7) y la documentaci�n en el paquete 'build-essential'.

  <p>La l�nea 7 es el nombre del paquete binario.

  <p>La l�nea 8 describe la arquitectura de CPU para la que se compil�
  el paquete. Podemos dejar �sta como 'any' (cualquiera, n. del t),
  ya que <manref name="dpkg-gencontrol" section="1"> la rellenar� con
  el valor apropiado cuando se compile este paquete (lea la Referencia
  del Desarrollador para una explicaci�n de qu� es portar paquetes).
  Si tu paquete es independiente de la arquitectura (por ejemplo, un
  documento, un programa de shell o un gui�n en Perl), cambia esto a
  "all", y lee m�s adelante  <ref id="rules"> sobre c�mo usar la regla
  'binary-indep' en lugar de 'binary-arch' para construir el paquete.

  <p>La l�nea 9 muestra una de las m�s poderosas posibilidades del
  sistema de paquetes de Debian. Los paquetes se pueden relacionar
  unos con otros de diversas formas. Aparte de 'Depends:' (depende de,
  n. del t.) otros campos de relaci�n son 'Recommends:' (recomienda,
  n. del t.), 'Suggests:' (sugiere, n. del t.), 'Pre-Depends:'
  (predepende de, n. del t.), 'Conflicts:' (entra en conflicto con,
  n. del t.), 'Provides:' (provee, n. del t.), 'Replaces:' (reemplaza
  a, n. del t.).

  <p>Las herramientas de gesti�n de paquetes como dpkg, dselect o apt
  (y sus respectivos front-ends) normalmente se comportan de la misma
  forma cuando tratan con esas relaciones entre paquetes; si no es
  as�, se explicar� en cada caso. (ve <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>Esto es lo que generalmente significan:

  <list>
  <item>Depends:
  <p>No se instalar� el programa a menos que los paquetes de los que
  depende est�n instalados. Usa esto si tu programa no funcionar� de
  ninguna forma (o causar� da�os) a menos que est� instalado un
  paquete determinado.</item>

  <item>Recommends:
  <p>Dselect no te permitir� instalar el paquete a menos que los
  paquetes que recomienda est�n instalados. Dpkg y apt, sin embargo,
  s� te dejar�n. Usa esto para paquetes que no son estrictamente
  necesarios pero generalmente son usados con tu programa.</item>

  <item>Suggests:
  <p>Cuando un usuario instale el programa, dselect le sugerir�
  instalar cualquier paquete que �ste sugiera. Dpkg y apt no le hacen
  caso a esto. Utiliza esto para paquetes que funcionar�n bien con tu
  programa pero no son necesarios en absoluto.</item>

  <item>Pre-Depends:
  <p>Esto es m�s fuerte que 'Depends'. Dpkg y dselect no instalar�n el
  paquete a menos que el paquete del que pre-dependa est� instalado
  <em>y correctamente configurado</em>. Utiliza esto
  <strong>muy</strong> poco y s�lo despu�s de haberlo discutido en la
  lista de distribuci�n de debian-devel. En resumidas cuentas: no lo
  utilices en absoluto. :-) </item>


  <item>Conflicts:
  <p>El paquete no ser� instalado hasta que todos los paquetes con los
  que entra en conflicto hayan sido eliminados. Utiliza esto si tu
  programa no funcionar� en absoluto (o causar� da�os) si un paquete
  en particular est� presente.
  </item>


  <item>Provides:
  <p>Para algunos tipos determinados de paquetes donde hay m�ltiples
  alternativas se han definido nombres virtuales. Puedes obtener la
  lista completa en el fichero
  /usr/share/doc/debian-policy/virtual-package-names-list.text.gz.
  Usa esto si tu programa ofrece las funciones de un paquete virtual
  existente.</item>

  <item>Replaces:
  <p>Usa esto si tu programa reemplaza ficheros de otro paquete, o
  reemplaza totalmente otro paquete (generalmente se usa conjuntamente
  con 'Conflicts':). Se eliminar�n los ficheros de los paquetes
  indicados antes de instalar el tuyo.</item>
  </list>

  <p>Todos estos campos tienen una sintaxis uniforme. Son una lista
  de nombres de paquetes separados por comas. Estos nombres de
  paquetes tambi�n puede ser listas de paquetes alternativos,
  separados por los s�mbolos de barra vertical <tt>|</tt> (s�mbolos
  tuber�a). Los campos pueden restringir su aplicaci�n a versiones
  determinadas de cada paquete nombrado. Esto se hace listando despu�s
  de cada nombre de paquete individual las versiones entre par�ntesis,
  e indicando antes del n�mero de versi�n una relaci�n de la siguiente
  lista. Las relaciones permitidas son: <tt>&lt;&lt;</tt>,
  <tt>&lt;=</tt>, <tt>=</tt>, <tt>&gt;=</tt> y <tt>&gt;&gt;</tt>
  para estrictamente anterior, anterior o igual, exactamente igual,
  posterior o igual o estrictamente posterior, respectivamente.
  
  <p>La �ltima funcionalidad que necesitas conocer es
  $(shlibs:Depends). �sta se generar� autom�ticamente gracias a
  <manref name="dh_shlibdeps" section="1"> y ser� rellenada por
  <manref name="dh_gencontrol" section="1"> con los nombres de
  cualquier librer�a compartida, como libc6 o xlib6g, que use tu
  programa, as� que no necesitas especificar esto usted mismo.
  Habiendo dicho todo esto, puedes dejar la l�nea 9 exactamente como
  est� ahora.

  <p>La l�nea 10 es donde va la lista de sugerencias. Aqu� s�lo
  es `file', porque gentoo utiliza algunas funciones de este
  paquete/programa.

  <p>La l�nea 11 es una descripci�n corta. La mayor parte de los
  monitores de la gente son de 80 columnas de ancho, as� que no
  deber�a tener m�s de 60 caracteres. Cambiar� esto a "A fully GUI
  configurable GTK+ file manager" ("Un gestor de ficheros GTK+
  completamente configurable por GUI").

  <p>La l�nea 12 es donde va la descripci�n larga del paquete. Deber�a
  ser al menos un p�rrafo que d� m�s detalles del paquete. La Columna
  1 de cada l�nea deber�a estar vac�a. No puede haber l�neas en
  blanco, pero puede poner un . (punto) en una columna para simularlo.
  Tampoco debe haber m�s de una l�nea en blanco despu�s de la
  descripci�n completa.


  <p>Aqu� est� el fichero de control actualizado:

  <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>
  (He a�adido los n�meros de l�nea).

  <sect id="copyright">El fichero `copyright'.

  <p>Este fichero contiene la informaci�n sobre la licencia y copyright
  de las fuentes originales del paquete. El formato no est� definido en
  la Pol�tica, pero s� sus contenidos (secci�n 6.5). dh_make crea un
  fichero por defecto que es as�:

  <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>
  (He a�adido los n�meros de l�nea).

  <p>Las cosas importantes que se deben a�adir a este fichero son el
  lugar de donde obtuviste el paquete y la nota de copyright y
  licencia originales. Debes incluir la licencia completa, a menos que
  sea una licencia com�n en el mundo del software libre como GNU GPL o
  LGPL, BSD o la 'Artistic license', donde basta referirse al fichero
  apropiado en el directorio /usr/share/common-licenses/ que existe en
  todo sistema Debian. Gentoo est� gobernado bajo la Licencia P�blica
  General GNU, as� que cambiaremos el fichero a esto:

  <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>
  (He a�adido los n�meros de l�nea).

  <p>(Nota del T.: la pol�tica de Debian actual indica que los
  documentos aqu� citados est�n escritos en ingl�s, al ser el idioma
  oficial del proyecto, por lo que no se traducen en este documento).

  <sect id="changelog">El fichero `changelog'.

  <p>Este es un fichero requerido, que tiene un formato especial
  descrito en el Manual de Empaquetamiento (secci�n 3.2.3). Este es el
  formato que usan dpkg y otros programas para obtener el n�mero de
  versi�n, revisi�n, distribuci�n y urgencia de tu paquete.

  <p>Para ti es tambi�n importante, ya que es bueno tener documentados
  todos los cambios que hayas hecho. Le ayudar� a las personas que se
  descarguen tu paquete para ver si hay temas pendientes en el paquete
  que deber�an conocer de forma inmediata. Se salvar� como
  `/usr/share/doc/gentoo/changelog.Debian.gz' en el paquete binario.

  <p>dh_make crea uno por defecto, que es algo as�:

  <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>
  (He a�adido los n�meros de l�nea).
  
  <p>La l�nea 1 es el nombre del paquete, versi�n, distribuci�n y
  urgencia. El nombre debe coincidir con el nombre del paquete fuente,
  la distribuci�n deber�a ser, por ahora, `unstable' o `experimental',
  y la urgencia no deber�a cambiarse a algo mayor que `low'. :-)
  
  <p>Las l�nea 3-5 son una entrada de registro, donde se documentan
  los cambios hechos en esta revisi�n del paquete (no los cambios en
  las fuentes originales - hay un fichero especial para este
  prop�sito, creado por los autores originales e instalado como
  /usr/share/doc/gentoo/changelog.gz). Las nuevas l�neas deben
  insertarse justo antes de la l�nea que hay m�s arriba que comienza
  por un asterisco (`*'). Puede hacerlo con <manref name="dch"
  section="1">, <manref name="emacs" section="1"> (las l�neas 7 a la
  9 contienen informaci�n de modo para el editor Emacs), o cualquier
  otro editor de texto. Terminar�s con algo as�:
  
  <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>
  (He a�adido los n�meros de l�nea).

  <p>Cuando distribuya una nueva revisi�n, s�lo debe incrementar el
  n�mero de versi�n. Puede hacer esto s�lo con `dch -i` o
  expl�citamente con `dch -v &lt;versi�n&gt;-&lt;revisi�n&gt;` y
  despu�s insertar los comentarios usando su editor preferido. Pista:
  �c�mo obtener r�pidamente la fecha en el formato necesario? Use
  `822-date`, o `date -R`.

  <p>La nueva informaci�n sobre la versi�n se a�ade al principio del
  fichero de cambios. Esto es como el fichero de cambios quedar�
  despu�s:

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

  <p>Puede leer m�s sobre nuevas versiones/revisiones de paquetes m�s
  adelante en <ref id="update">.

  <sect id="rules">El fichero `rules'.

  <p>Ahora necesitamos mirar las reglas exactas que <manref
  name="dpkg-buildpackage" section="1"> utilizar� para crear el
  paquete. Este fichero es en realidad otro Makefile, ya que se
  ejecuta con `make -f', pero diferente al que viene en las fuentes
  originales.

  <p>Cada fichero `rules' (de reglas, n. del t.), como muchos otros
  Makefiles, se compone de varias reglas que especifican c�mo tratar
  las fuentes. Cada regla se compone de objetivos, ficheros o nombres
  de acciones que se deben llevar a cabo (por ejemplo, `build:' o
  `install:'). Las reglas que quieras ejecutar deber�an llamarse como
  argumentos de la l�nea de �rdenes (por ejemplo, `./debian/rules
  build' o `make -f rules install'). Despu�s del nombre del objetivo,
  puedes nombrar las dependencias, programas o ficheros de los que la
  regla dependa. Despu�s de esto, hay un n�mero cualquiera de
  instrucciones (�indentado con &lt;tab&gt;!), hasta que se llega a
  una l�nea en blanco. Ah� empieza otra regla. Las l�neas m�ltiples en
  blanco, y las l�neas que empiezan por almohadillas ('#') se tratan
  como comentarios y se ignoran.

  <p>Probablemente ya te hayas perdido, pero todo quedar� m�s claro
  despu�s de ver un fichero `rules' que dh_make pone por defecto.
  Deber�as tambi�n leer la entrada de `make' en info para m�s
  informaci�n.

  <p>La parte importante que debes conocer sobre el fichero de reglas
  creado por dh_make, es que s�lo es una sugerencia. Funcionar� para
  paquetes simples pero para m�s complicados, no te asustes y a�ade o
  quita cosas de �ste para ajustarlo a tus necesidades. Una cosa que
  no debes cambiar son los nombres de las reglas, porque todas las
  herramientas utilizan estos nombres, como se indica en el Manual de
  Empaquetamiento.

  <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 build: build-stamp
  12 build-stamp:
  13	dh_testdir
  14
  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-stamp: 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>
  (He a�adido los n�meros de l�nea).

  <p>(N. del T.: se traduce el fichero de reglas, dh_make s�lo lo
  ofrece en ingl�s)

  <p><example>
  1  #!/usr/bin/make -f
  2  # Creado con la ayuda de dh_make, por Craig Small 
  3  # Fichero de ejemplo debian/rules que usa debhelper. Copyright GNU 1997 por Joey Hess.
  4  # Algunas l�neas son de debmake, por Christoph Lameter.
  5
  6  # Qu�tele el comentario para activar el modo expl�cito.
  7  #export DH_VERBOSE=1
  8
  9  # Esta es la versi�n de compatibilidad con debhelper que usaremos.
  10 export DH_COMPAT=1
  11 build: build-stamp
  12 build-stamp:
  13	dh_testdir
  14
  15	
  16	# A�ada aqu� los comandos para compilar el paquete.
  17	$(MAKE)
  18
  19	touch build-stamp
  20
  21 clean:
  22	dh_testdir
  23	dh_testroot
  24	rm -f build-stamp 
  25
  26	# A�ada aqu� los comandos para limpiar despu�s del proceso de creaci�n.
  27	-$(MAKE) clean
  28
  29	dh_clean
  30
  31 install-stamp: build-stamp
  32	dh_testdir
  33	dh_testroot
  34	dh_clean -k
  35	dh_installdirs
  36
  37	# A�ada aqu� los comandos para instalar el paquete en debian/tmp.
  38	$(MAKE) install DESTDIR=`pwd`/debian/tmp
  39
  40 # Construir los ficheros independientes de arquitectura aqu�.
  41 binary-indep: build install
  42 # Por defecto no se hace nada.
  43
  44 # Construir los ficheros dependientes de arquitectura aqu�.
  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	# Puede hacer algunos ejecutables suid aqu�.
  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>

  <p>Probablemente est�s familiarizado con l�neas como la 1 de guiones
  hechos en shell o Perl. Esto significa que el fichero debe
  ejecutarse con /usr/bin/make. 
  
  <p>Las l�neas 12 a la 19 describen la regla `build' (construcci�n,
  n. del t.), que ejecuta el Makefile del propio programa para
  compilarlo.

  <p>La regla `clean' (limpiar, n. del t.), como se especifica en las
  l�neas 21-29, limpia cualquier binario innecesario o cosas
  autom�ticamente generadas, dejadas despu�s de la construcci�n del
  paquete. Esta regla debe funcionar en todo momento (incluso cuando
  el �rbol de fuentes <em>est�</em> limpio!), as� que, por favor, usa
  las opciones que fuercen a hacer cosas (por ejemplo para rm, ser�a
  `-f'), o ignora los valores devueltos (con un `-' al principio de la
  orden).

  <p>El proceso de instalaci�n, la regla `install', comienza en la
  l�nea 31. B�sicamente ejecuta la regla `install' del Makefile del
  programa, pero lo instala en el directorio `pwd`/debian/tmp -
  esto es por lo que especificamos $(DESTDIR) como el directorio
  ra�z de instalaci�n del Makefile de gentoo.

  <p>Como sugiere el comentario, la regla 'binary-indep', en la l�nea
  41, se usa para construir paquetes independientes de arquitectura.
  Como no tenemos ninguno aqu� no se har� nada. Si tu paquete es del
  tipo `Architecture: all' necesitar�s incluir todas las �rdenes para
  crear el paquete bajo esta regla, y dejar la siguiente regla
  (`binary-arch') vac�a en su lugar.

  <p>Lo siguiente es la regla 'binary-arch', en las l�neas 45 a 73, en
  la que ejecutamos varias peque�as utilidades del paquete debhelper
  que nos permiten hacer diversas operaciones en nuestro paquete para
  que cumpla la pol�tica de Debian.
  
  <p>Los nombres comienzan con dh_ y el resto es la descripci�n de lo
  que la utilidad en particular realmente hace. Es todo m�s o menos
  auto-explicativo, pero a continuaci�n se indica lo que realmente
  hace cada peque�a utilidad:

  <list>
  <item><manref name="dh_testdir" section="1"> comprueba que est�s en
        el directorio correcto (esto es, el directorio ra�z de la
        distribuci�n de las fuentes),
  <item><manref name="dh_testroot" section="1"> comprueba que tienes
        permisos de superusuario que son necesarios para las reglas
        binary* y clean,
  <item><manref name="dh_installmanpages" section="1"> copia todas las
        p�ginas de manual que puede encontrar en el paquete fuente en
        el paquete (cuidado, esto hace lo dice: *todas* las p�ginas),
<!-- �qu� es DWIM? jfs -->
<!-- Do What I Mean. Quiere decir que buscar� TODAS las p�ginas de
manual que encuentre en el �rbol original. ender -->
  <item><manref name="dh_strip" section="1"> elimina las cabeceras de
        depuraci�n de los ficheros ejecutables para hacerlos m�s
        peque�os,
  <item><manref name="dh_compress" section="1"> comprime con gzip las
        p�ginas de manual y los ficheros de documentaci�n que sean m�s
        grandes de 4 kB,
  <item><manref name="dh_installdeb" section="1"> copia los ficheros
        relativos al paquete (es decir, los guiones del mantenedor)
	bajo el directorio debian/tmp/DEBIAN,
  <item><manref name="dh_shlibdeps" section="1"> calcula las
        dependencias de los ejecutables y librer�as con las librer�as
        compartidas,
  <item><manref name="dh_gencontrol" section="1"> genera e instala el
        fichero de control,
  <item><manref name="dh_md5sums" section="1"> genera las sumas de
        chequeo MD5 para todos los ficheros del paquete.
  </list>

  <p>Para informaci�n m�s completa de lo que hacen cada uno de estos
  guiones dh_* , y qu� otras opciones tienen, por favor lee sus
  p�ginas de manual respectivas. Hay otros guiones con la misma
  nomenclatura (dh_*) que no se han mencionado aqu�, pero pueden serte 
  �tiles. Si los necesitas, lee la documentaci�n de debhelper.

  <p>Las l�neas 70 a la 74 son s�lo algunas necesidades sobre las que
  puede leer en el manual de make. Por ahora, no es importante
  conocerlas.

  <p>La secci�n binary-arch es donde deber�as comentar las
  l�neas que llamen a funciones que no necesites. En este caso he
  comentado las l�neas sobre testversion, emacsen, pam, init, cron,
  manpages, info, undocumented, suidregister, makeshlibs, y perl, 
  simplemente porque gentoo no las necesita. S�lo he a�adido en la
  l�nea 60, `FIXES', porque este es el nombre del fichero de cambios
  de las fuentes.

  <p>Las �ltimas dos l�neas (junto con otras que no se explican) son
  cosas m�s o menos necesarias, sobre las que puedes leer en el manual
  de make, y en el Manual de Empaquetamiento. Por ahora no necesitas
  saberlas.

  <chapt id="dother">Otros ficheros en el directorio debian/.

  <p>Ver�s que existen otros ficheros en el subdirectorio debian/,
  muchas de los cuales tendr�n el sufijo `.ex', que indica que son
  ejemplos. Si quieres o deseas usar cualquiera de �stos, lee la
  informaci�n relativa (pista: Manual de Pol�tica), ren�mbralo para
  eliminar el sufijo `.ex' , y modif�calo junto con el fichero de
  reglas si fuera necesario. Algunos de estos ficheros, los m�s
  usados, se explican en las siguientes secciones.

  <sect id="readme">README.debian. (L�EME.debian, n. del t.)

  <p>Cualquier detalle extra o discrepancias entre el programa
  original y su versi�n debianizada deber�a documentarse aqu�. dh_make
  crea una por defecto, y �ste es su aspecto:

  <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>Dado que no tenemos que poner nada aqu� - est� permitido
  borrarlo.


  <sect id="conffiles">conffiles.

  <p>Una de las cosas m�s molestas de los programas es cuando pasas
  mucho tiempo y esfuerzo adaptando un programa y una actualizaci�n
  destroza todos tus cambios. Debian resuelve este problema marcando
  los ficheros de configuraci�n de forma que cuando actualizas un
  paquete no se te pregunta si deseas mantener la nueva
  configuraci�n o no. Se consigue poniendo la ruta completa a cada
  fichero de configuraci�n (se encuentran generalmente en /etc), una
  por l�nea, en un fichero llamado `conffiles'.


  <p>Gentoo tiene un fichero de configuraci�n, /etc/gentoorc, y
  meteremos �ste en el fichero 'conffiles'. No es necesario tener este
  �ltimo fichero si tu programa no tiene ning�n fichero de
  configuraci�n.

  <sect id="dirs">dirs.

  <p>Este fichero especifica los directorios que se necesitan pero que
  por alguna raz�n no se crean en un proceso de instalaci�n normal
  (make install).

  Por defecto, tiene este aspecto:
  <p><example>
  1 usr/bin
  2 usr/sbin
  </example>

  <p>Observa que la barra precedente no est� incluida. Normalmente lo
  cambiar�amos para gentools a algo as�:
  <p><example>
  1 usr/X11R6/bin
  2 usr/X11R6/man/man1
  </example>

  pero estos directorios ya se crean en el Makefile, as� que no
  necesitaremos este fichero y lo podremos borrar.
  <sect id="manpage">manpage.1.ex.

  <p>Los ficheros que terminan en *.ex son ejemplos de c�mo a�adir ese
  tipo de soporte en el paquete. Si usas uno de ellos, ed�talo y
  elimina la extensi�n .ex. Si no lo quieres usar, simplemente
  b�rralo.

  <p>Tu programa deber�a tener una p�gina de manual. Si no la tiene,
  este es un esqueleto que puedes rellenar. Lee las p�ginas de manual
  para <manref name="man" section="7"> para una breve descripci�n de
  c�mo crear una p�gina de manual. Aseg�rate de renombrar este fichero
  al nombre del programa y modificar la extensi�n para indicar la
  secci�n en la que deber�a ir. Aqu� hay una corta lista:


  <p><example>
  Secci�n |     Descripci�n        |     Notas
     1     Comandos de Usuario       Programas o guiones ejecutables.
     2     Llamadas al Sistema       Funciones que ofrece el n�cleo.
     3     Llamadas a Librer�as      Funciones dadas por las librer�as del sistema.
     4     Ficheros Especiales       Generalmente se encuentran en /dev.
     5     Formatos de Fichero       Por ejemplo, el formato del /etc/passwd.
     6     Juegos                    U otros programas fr�volos.
     7     Paquetes de Macros        Como las macros de man.
     8     Administraci�n del Sist.  Programas que s�lo suele ejecutar el superusuario.
     9     Rutinas del N�cleo        Llamadas al sistema no est�ndar.
  </example>
  
  <p>As� que la p�gina de manual de gentoo deber�a llamarse gentoo.1,
  o gentoo.1x porque es un programa de X11. Como no hab�a p�gina de
  manual en las fuentes originales la escrib� a partir del ejemplo.

  <sect id="menu">menu.ex.

  <p>Los usuarios de X Windows tendr�n un gestor de ventanas con men�s
  que pueden adaptarse para lanzar programas. Si tienen instalado el
  paquete "menu" de Debian, se crear� un conjunto de men�s para cada
  programa del sistema para ellos. No se exige en la pol�tica de
  Debian, pero los usuarios seguramente lo apreciar�n. Podemos a�adir
  Gentoo a los men�s editando este fichero. Aqu� est� el fichero que
  dh_make crea por defecto:
  
  <p><example>
  ?package(gentoo):needs=X11|text|vc|wm section=Apps/see-menu-manual\
    title="gentoo" command="/usr/bin/gentoo"
  </example>

  <p>El primer campo especifica qu� tipo de interfaz necesita el
  programa (esto es, texto o X11). La siguiente es el men� y submen�
  d�nde deber�a aparecer. La lista actual de secciones est� en 
 /usr/share/doc/debian-policy/menu-policy.html/ch2.html#s2.1
  El tercero es el nombre del programa. El cuarto es el icono para el
  programa o "none" si no hay ninguno. El quinto es el texto que
  aparecer� en el menu. Finalmente, el sexto es la orden que ejecuta 
  el programa.

  <p>Ahora cambiaremos la entrada de men� a �sta:
  <p><example>
  ?package(gentoo):needs=X11 section=Apps/Misc \
    title="gentoo" command="/usr/X11R6/bin/gentoo"
  </example>

  <P>Revisa <manref name="menufile" section="5">, <manref
  name="update-menus" section="1"> y
  /usr/share/doc/debian-policy/menu-policy.html/ para m�s informaci�n.

  <sect id="watch">watch.ex.

  <p>Puedes usar este fichero, junto con los programas <manref
  name="uscan" section="1"> y <manref name="uupdate" section="1"> (en
  el paquete devscripts) para vigilar el servidor de donde obtuviste
  las fuentes originales.

  <p>Esto es lo que he puesto yo:

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

  <p>Pista: con�ctate a Internet, e intenta ejecutar el programa
  "uscan" en el directorio donde has creado el fichero. Ve la p�gina
  de manual para m�s detalles.

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

  <p>Si tu paquete tiene documentaci�n en HTML o de otro tipo (excepto
  p�ginas de manual y documentos info), deber�as usar el fichero
  `doc-base' para registrarlo, para que el usuario pueda encontrarlo
  con, por ejemplo, <manref name="dhelp" section="1"> o <manref
  name="dwww" section="1">.

  <p>Este es el aspecto del fichero doc-base:
  <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 informaci�n sobre el formato del fichero, revisa <manref
  name="install-docs" section="8"> y el manual de doc-base en
  /usr/share/doc/doc-base/doc-base.html/index.html.


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

  <p>Estos ficheros se llaman guiones del desarrollador (maintainer
  scripts, n. del t.), y son guiones que se colocan en el �rea de
  control del paquete y que dpkg ejecuta cuando tu paquete se instala,
  se actualiza o se quita.

  <p>Por ahora, deber�as intentar evitar editar manualmente estos
  guiones si puedes porque suelen hacerse muy complejos. Para m�s
  informaci�n lee el Manual de Empaquetamiento (secci�n 6) y echa un
  vistazo a los ejemplos dados por dh_make.

  <p>Ahora estamos preparados para construir el paquete.

  <chapt id="final">Pasos Finales

  <sect id="build">Construir el paquete.

  <p>Entra en el directorio principal del programa y ejecuta el
  siguiente comando:

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

  <p>Esto har� todo por ti, s�lo tendr�s que dar tu clave secreta PGP
  dos veces. Una vez hayas hecho esto, ver�s cuatro nuevos ficheros
  en el directorio anterior (~/debian/):

  <p><list>
  <item><em>gentoo_0.9.12-1_i386.deb</em>
  <p>Este es el paquete binario completo. Puedes usar dpkg o dselect
  para instalar o eliminar tanto este como cualquier otro paquete.

  <item><em>gentoo_0.9.12.orig.tar.gz</em>
  <p>Este es el c�digo fuente original empaquetado de forma que si
  alguien quiere recrear su paquete desde cero puede hacerlo. O si
  no est� usando el sistema de paquetes de Debian, pero necesita
  descargarse las fuentes y compilarlo manualmente.

  <item><em>gentoo_0.9.12-1.dsc</em>
  <p>Este es un sumario de los contenidos del c�digo fuente. Este
  fichero se genera a partir del fichero gentoo-0.9.12/debian/control
  y se usa cuando se descomprimen las fuentes con <manref
  name="dpkg-source" section="1">. Este fichero est� firmado con PGP
  de forma que cualquiera puede estar seguro de que es realmente suyo.

  <item><em>gentoo_0.9.12-1.diff.gz</em>
  <p>Este fichero comprimido contiene todos y cada uno de los cambios
  que hizo al c�digo fuente original, en un formato conocido como "diff
  unificado". El que lo hace y lo usa es <manref name="dpkg-source"
  section="1">.

  <item><em>gentoo_0.9.12-1_i386.changes</em>
  <p>Este fichero describe todos los cambios hechos en la revisi�n
  actual del paquete, y se usa por los programas de gesti�n del
  archivo FTP para instalar los paquetes binarios y fuentes en �l. Se
  genera parcialmente a partir del fichero
  gentoo-0.9.12/debian/changelog y el fichero .dsc.

  <p>Mientras sigues trabajando en el paquete, cambiar� su
  comportamiento y se le a�adir�n nuevas funciones. Las personas que
  descarguen tu paquete pueden mirar este fichero y ver qu� ha
  cambiado. Las largas listas de n�meros son las sumas MD5 para los
  ficheros. Las personas que descarguen estos ficheros pueden
  comprobarlos con <manref name="md5sum" section="1"> y si los n�meros
  no coinciden, sabr�n que el fichero est� corrupto o ha sido
  modificado. Este fichero est� firmado con PGP de forma que
  cualquiera puede estar a�n m�s seguro de que es realmente tuyo.
  </list>

  <p>Con un paquete grande, puede que no quieras recompilar desde cero
  cada vez que tocas un detalle en el fichero debian/rules. Para
  prop�sitos de prueba, puedes hacer un fichero .deb sin necesidad de
  recompilar las fuentes originales de esta forma:

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

  <p>S�lo aseg�rate de que tu regla `install' <strong/no/ tiene un
  hijo `install-stamp' (�ste es el valor por defecto actualmente),
  para asegurarse de que se ejecuta `dh_clean -k' cada vez. Y una vez
  que hayas terminado con los cambios, no te olvides de reconstruir el
  paquete siguiendo el procedimiento habitual, para poder enviarlo de
  la forma correcta.
  
  <sect id="checkit">Comprobar tu paquete para encontrar errores.

  <p>Ejecuta <manref name="lintian" section="1"> sobre tu fichero de
  cambios .changes; este programa comprobar� muchos errores comunes al
  empaquetar. El comando es:
  
  <p><example>
  lintian -i gentoo_0.9.12-1_i386.changes
  </example>
  
  <p>Por supuesto, cambia el nombre de fichero con el nombre del
  fichero de cambios generado por tu paquete. Si parece que hay
  algunos errores (l�neas que comienzan por E:), lee la explicaci�n
  (l�neas N:), corrige errores, y reconstruye como se describe en <ref
  id="build">. Si hay l�neas que comienzan con W:, son s�lo avisos
  (warnings, n. del t.), as� que puedes estar seguro de que tu
  paquete est� bien (pero seguramente necesita alg�n ajuste fino).

  <p>Observa que puedes construir el paquete con dpkg-buildpackage y
  ejecutar lintian todo de una sola vez con <manref name="debuild"
  section="1">.

  <p>Mira dentro del paquete usando un gestor de ficheros como <manref
  name="mc" section="1">, o descompr�melo en alg�n punto temporal
  usando <manref name="dpkg-deb" section="1">. Est�te atento a
  ficheros innecesarios extra y algunas otras cosas que no se
  limpiaron. Pista: `zgrep ^+++ ../gentoo_0.9.12-1.diff.gz` te dar�
  una lista de tus cambios/contribuciones a las fuentes, y `dpkg-deb
  -c gentoo_0.9.12-1_i386.deb` listar� los ficheros en el paquete.

  <p>Instala el paquete para probarlo t� mismo, p. ej. usando la
  orden <manref name="debi" section="1"> como superusuario. Intenta
  instalarlo y ejecutarlo en otras m�quinas distintas de la tuya y
  est�te atento para detectar errores o avisos tanto en la instalaci�n
  como en la ejecuci�n del programa.

  <p>M�s tarde, cuando construyas una nueva versi�n, deber�as hacer lo
  siguiente para asegurar la actualizaci�n b�sica del paquete:

  <list>
  <item>actual�zate a partir de la versi�n previa (y de la versi�n en
  la �ltima versi�n de Debian),
  <item>vuelve a la versi�n anterior de nuevo,
  <item>instala el paquete como uno nuevo (esto es, sin ninguna
  versi�n instalada previamente),
  <item>desinst�lalo, reinst�lalo y luego p�rgalo.
  </list>

  <sect id="upload">Enviando el paquete.

  <p>Ahora que has probado tu nuevo paquete en profundidad,
  necesitar�s enviar estos ficheros a master.debian.org, usando
  <manref name="dupload" section="1">. Primero debes editar el fichero
  de configuraci�n de dupload, ~/.dupload.conf. Puedes poner algo as�:

  <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>Por supuesto, cambia mis valores personales a los tuyos, y lee
  la p�gina de manual <manref name="dupload.conf" section="5"> para
  comprender qu� significa cada una de estas opciones.

  <p>Entonces conecta con tu proveedor de Internet, y ejecuta la
  orden:
  
  <p><example>
  dupload --to master gentoo_0.9.12-1_i386.changes
  </example>

  <p>Dupload comprueba que las sumas md5 coinciden con aquellas en el
  fichero .changes, y te avisar� de rehacer el paquete como se
  describe en <ref id="build"> para poder enviarlo correctamente.

  <p>Dupload te preguntar� tu contrase�a en master.debian.org, enviar�
  tus paquetes, y har� un peque�o anuncio sobre su env�o en 
  <email/debian-devel-changes@lists.debian.org/ si es necesario.

  <p>Si vives en Europa, puedes usar otras colas de env�o en lugar de
  master. Para m�s detalles lea <manref name="dupload" section="1">,
  <manref name="dupload" section="5"> y la Referencia del
  Desarrollador.

  <sect id="update">Actualizar tu paquete.

  <p>Supongamos que se ha creado un informe de un fallo en tu paquete,
  de n�mero #54321, y que describe un problema que puedes solucionar.
  Para crear una nueva revisi�n del paquete, necesitas:

  <list>
  <item>Corregir, por supuesto, el problema en las fuentes del
  paquete.

  <item>A�adir una nueva revisi�n en el fichero de cambios (changelog,
  n. del t.) de Debian, con `dch -i`, e incluir una breve descripci�n
  del error y su soluci�n, seguido por: "Closes: #54321". De esta
  forma, el informe del error ser� autom�gicamente cerrado por los
  programas de gesti�n del archivo en el momento en que tu paquete se
  acepte en el archivo de Debian.

  <item>Repite lo que hiciste en <ref id="build">, <ref id="checkit">,
  y <ref id="upload">. La diferencia es que esta vez, las fuentes
  originales del archivo no se incluir�n, dado que no han cambiado y
  ya existen en el archivo de Debian.
  </list>

  <p>Ahora consideremos una situaci�n diferente, algo m�s complicada:
  ha salido una versi�n nueva de las fuentes originales, y, por
  supuesto, deseas empaquetarla. Debes hacer lo siguiente:

  <list>
  <item>Descarga las nuevas fuentes y pon el archivo tar (pongamos que
  se llama `gentoo-0.9.13.tar.gz') un directorio por encima del
  antiguo �rbol de fuentes (por ejemplo ~/debian/).

  <item>Entra en el antiguo directorio y ejecuta:

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

  Por supuesto, reemplaza este nombre de fichero con el nombre de las
  fuentes de tu programa. <manref name="uupdate" section="1">
  renombrar� apropiadamente este fichero tar, intentar� aplicar los
  cambios de tu fichero .diff.gz previo y actualizar� el nuevo fichero
  debian/changelog.

  <item>Cambia al directorio `../gentoo-0.9.13', el nuevo directorio
  fuente del paquete, y repite la operaci�n que hiciste en <ref
  id="build">, <ref id="checkit">, y <ref id="upload">.
  </list>

  <p>Observa que si has puesto el fichero `debian/watch' como se
  describe en <ref id="watch">, puedes ejecutar <manref name="uscan"
  section="1"> para buscar autom�gicamente fuentes revisadas,
  descargarlas, y ejecutar uupdate.

  <sect id="whereishelp">D�nde pedir ayuda.

  <p>Antes de que te decidas a preguntar en lugares p�blicos, por
  favor, simplemente RTFM ("Lee El Jodido Manual", n. del t.). Esto
  incluye la documentaci�n en /usr/share/doc/dpkg,
  /usr/share/doc/debian, /usr/share/doc/package/* y las p�ginas de
  man/info para todos los programas mencionados en este art�culo.
  Cuando recibas un aviso de fallo (bug report, n. del t.) (s�,
  avisos de fallos �de verdad!) sabr�s que es el momento de indagar en
  el <url name="Sistema de Seguimiento de Fallos de Debian"
  id="http://www.debian.org/Bugs/"> y leer la documentaci�n de all�,
  para poder tratar los informes de forma eficiente.

  <p>Si te unes a la lista de distribuci�n de Mentores de Debian en
  <email/debian-mentors@lists.debian.org/ podr�s tener a
  desarrolladores de Debian con experiencia que te ayudar�n con las
  preguntas que pueda tener. Puedes subscribirte a ella enviando un
  correo electr�nico a
  <email/debian-mentors-request@lists.debian.org/ con la palabra
  `subscribe' en el tema del mensaje.

  <p>Si a�n tiene preguntas, h�zlas en la lista de distribuci�n de
  Desarrolladores de Debian en <email/debian-devel@lists.debian.org/.
  Puedes subscribirte a ella enviando un correo electr�nico a
  <email/debian-devel-request@lists.debian.org/ con la palabra
  `subscribe' en el tema del mensaje. Si ya eres un desarrollador de
  Debian deber�as estar suscrito a ella de todas formas.

  <p>Aunque todo funcionara bien, es el momento de empezar a
  rezar. �Por qu�? Por que en s�lo unas horas (o d�as) usuarios de
  todo el mundo empezar�n a usar tu paquete, y si cometiste alg�n
  error cr�tico ser�s bombardeado por correos de centenares de
  usuarios furiosos de Debian... S�lo bromeaba :-)

  <p>Rel�jate y prep�rate para recibir reportes de fallos, porque hay
  mucho m�s trabajo que hacer antes de seguir completamente las
  pol�ticas de Debian (una vez m�s lee la <em>documentaci�n real</em>
  para m�s detalles). �Buena suerte!

 </book>

</debiandoc>