File: maint-guide.pl.sgml

package info (click to toggle)
maint-guide 1.2.14
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 1,256 kB
  • ctags: 27
  • sloc: makefile: 186; sh: 39
file content (2440 lines) | stat: -rw-r--r-- 109,914 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
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
<!DOCTYPE debiandoc PUBLIC "-//DebianDoc//DTD DebianDoc//EN" [

        <!-- textual data entities -->
        <!-- first definition wins in SGML -->
<!ENTITY % default  SYSTEM "default.ent">  %default;

]>
<!-- CVS revision of this document "$Revision: 1.22 $"  -->
<!-- CVS revision of original english document "1.115"  -->

<debiandoc>

 <book>

  <titlepag>

   <title>Podr�cznik dla nowych opiekun�w pakiet�w Debiana</title>

   <author>Josip Rodin <email/joy-mg@debian.org/
   </author>
   <author>polskie t�umaczenie: Pawe� T�cza <email/ptecza@debianusers.pl/
   </author>
   <author>korekta t�umaczenia: Marcin Owsiany <email/porridge@debian.org/
   </author>
   <author>wznowienie t�umaczenia: Wojciech Zar�ba <email/wojtekz@comp.waw.pl/
   </author>

   <version>wersja orygina�u: 1.2.11, 12-01-2007, wersja t�umaczenia: 1.2.5,
   27-09-2007</version>

   <copyright>
   <copyrightsummary>Copyright &copy; 1998-2002 Josip Rodin.</copyrightsummary>
   <copyrightsummary>Copyright &copy; 2005-2007 Osamu Aoki.</copyrightsummary>
   <copyrightsummary>Copyright &copy; polskiego t�umaczenia 2002-2004
   Pawe� T�cza, Marcin Owsiany.</copyrightsummary>
   <copyrightsummary>Copyright &copy; polskiego t�umaczenia 2007
   Wojciech Zar�ba.</copyrightsummary>

   <p>Ten dokument mo�e by� u�ywany zgodnie z zasadami licencji GNU GPL (General
   Public License) w wersji 2 lub wy�szej.

   <p>Do stworzenia tego dokumentu wykorzystano, jako przyk�ady, nast�puj�ce
   dokumenty:

   <p>Making a Debian Package (znany jako Debmake Manual), copyright &copy; 1997
   Jaldhar Vyas.

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

  </titlepag>

  <toc sect>

  <!-- -------------------------------------------------------------------------->

  <chapt id="start">Rozpocz�cie, jak si� nale�y

  <p>Ten dokument pr�buje opisa� proces budowania pakiet�w systemu Debian.
  Jest on przeznaczony dla zwyk�ych u�ytkownik�w Debiana i tych, kt�rzy chc�
  zosta� deweloperami. U�ywa zwyk�ego j�zyka i daje du�o dzia�aj�cych przyk�ad�w.
  Stare rzymskie przys�owie m�wi <em>Longum iter est per preaecepta,
  breve et efficax per exempla</em> (D�uga jest droga przez nakazy,
  kr�tka i skuteczna przez przyk�ady).
  
  <p>Jedn� z rzeczy sprawiaj�cych, �e Debian jest wyj�tkow� dystrybucj� Linuksa,
  jest jego system pakiet�w. Mimo �e istnieje ogromna ilo�� oprogramowania ju�
  spakowanego do formatu Debiana, to czasami zachodzi konieczno��
  zainstalowania programu, kt�ry nie posiada swojej paczki. Pewnie si� dziwisz,
  �e mo�esz sam zbudowa� w�asne pakiety i my�lisz, �e to bardzo trudne zadanie.
  No c�, je�li jeste� zupe�nym nowicjuszem w Linuksie, to rzeczywi�cie b�dziesz
  mia� k�opoty, ale czy gdyby� by� ��todziobem, to czyta�by� teraz ten
  dokument? :-) Musisz troch� wiedzie� na temat programowania pod Unix'em,
  ale nie musisz od razu by� ekspertem.

  <p>Jedna rzecz jest pewna: aby odpowiednio tworzy� i zarz�dza� pakietami
  Debiana konieczne s� osobogodziny. Staraj si� nie pope�nia� b��d�w,
  gdy� nasz system, aby dzia�a�, wymaga od opiekun�w zar�wno kompetencji
  technicznych jak i rzetelno�ci.
  
  <p>Ten dokument wyja�ni wszystkie kroki potrzebne do zbudowania pakietu
  (cho� niekt�re z nich mog� na pocz�tku wyda� si� nieistotne) i pomo�e Ci
  stworzy� Tw�j pierwszy pakiet. Dzi�ki niemu nabierzesz troch� do�wiadczenia,
  kt�re przyda Ci si� w trakcie budowania nast�pnych wyda� pakietu, a p�niej mo�e
  r�wnie� do tworzenia innych paczek.

  <p>Najnowsza wersja tego dokumentu powinna by� zawsze dost�pna bezpo�rednio
  na stronie <url name="http://www.debian.org/doc/maint-guide/"
  id="http://www.debian.org/doc/maint-guide"> oraz w pakiecie
  `<package>maint-guide</package>'. Polskie t�umaczenie jest r�wnie� dost�pne
  w pakiecie `<package>maint-guide-pl</package>'.

  <sect id="needprogs">Programy, kt�rych potrzebujesz do dewelopmentu

  <p>Zanim zaczniesz cokolwiek robi�, powiniene� upewni� si�, �e masz
  zainstalowanych kilka dodatkowych pakiet�w niezb�dnych do dewelopmentu.
  Zwr�� uwag�, �e na poni�szej li�cie nie ma �adnych pakiet�w oznaczonych
  jako `niezb�dne' (essential) lub `wymagane' (required). Po prostu
  zak�adamy, �e masz ju� je zainstalowane.
  
  <p>Ta wersja podr�cznika zosta�a uaktualniona z my�l� o pakietach
  wchodz�cych w sk�ad Debiana 2.2 (`potato') oraz 3.0 (`woody').
  
  <p>Nast�puj�ce pakiety wchodz� w sk�ad standardowej instalacji Debiana,
  wi�c prawdopodobnie masz je (i dodatkowe pakiety, od kt�rych one zale��)
  ju� zainstalowane. Mimo to powiniene� sprawdzi� ich status za pomoc�
  polecenia `dpkg -s &lt;pakiet&gt;`.

  <list>
  
  <item><package>dpkg-dev</package> - pakiet zawieraj�cy narz�dzia niezb�dne do
  rozpakowywania, budowania i wysy�ania pakiet�w �r�d�owych Debiana
  (wi�cej informacji znajdziesz na stronie podr�cznika <manref name="dpkg-source"
  section="1">).

  <item><package>file</package> - przydatny program do okre�lania typu pliku
  (zobacz <manref name="file" section="1">).
	  
  <item><package>gcc</package> - kompilator GNU j�zyka C, niezb�dny gdy Tw�j
  program, tak jak wi�kszo�� program�w, zosta� napisany w j�zyku C
  (zobacz <manref name="gcc" section="1">).
  Pakiet ten jest powi�zany z kilkoma innymi pakietami, takimi jak
  <package>binutils</package>, kt�ry zawiera zestaw program�w s�u��cych
  do asemblacji i konsolidacji plik�w wynikowych (zobacz
  `info binutils` w pakiecie <package>binutils-doc</package>) i
  <package>cpp</package>, zawieraj�cy preprocesor j�zyka C (zobacz
  <manref name="cpp" section="1">).

  <item><package>g++</package> - kompilator GNU j�zyka C++, niezb�dny gdy Tw�j program
  zosta� napisany w j�zyku C++ (zobacz <manref name="g++" section="1">).

  <item><package>libc6-dev</package> - biblioteki j�zyka C i pliki nag��wkowe
  kompilatora gcc niezb�dne do konsolidacji plik�w wynikowych
  (zobacz `info libc` w pakiecie <package>glibc-doc</package>).

  <item><package>make</package> - na og� proces tworzenia programu sk�ada si� z
  szeregu krok�w. Zamiast ci�g�ego powtarzania w k�ko tych samych komend,
  mo�esz pos�u�y� si� programem, kt�ry automatyzuje ca�y proces. Jedyne co
  musisz zrobi�, to stworzy� plik(i) `Makefile' (zobacz `info make`).

  <item><package>patch</package> - bardzo u�yteczne narz�dzie s�u��ce do
  tworzenia �at, czyli utworzonych przez program diff plik�w z r�nicami
  pomi�dzy plikami �r�d�owymi, i tworzenia w ten spos�b "za�atanych" (poprawionych)
  wersji program�w (zobacz <manref name="patch" section="1">).

  <item><package>perl</package> - Perl jest jednym z najcz�ciej stosowanych
  interpretowanych j�zyk�w skryptowych w systemach kompatybilnych z systemem
  Unix. Cz�sto okre�lany jest jako "Uniksowy scyzoryk z pi�� �a�cuchow�"
  (po angielsku znacznie zabawniej: Unix's Swiss Army Chainsaw) - zobacz
  <manref name="perl" section="1">.
  </list>

  <p>Najprawdopodobniej przydadz� si� r�wnie� nast�puj�ce pakiety:

  <list>
  
  <item><package>autoconf</package> i <package>automake</package> - wiele
  nowszych program�w u�ywa skrypt�w konfiguracyjnych i plik�w Makefile
  przetworzonych za pomoc� takich narz�dzi (zobacz `info autoconf`
  i `info automake`).

  <item><package>dh-make</package> i <package>debhelper</package> - pakiet
  dh-make jest niezb�dny do stworzenia szablonu naszego przyk�adowego pakietu.
  U�ywa on do tworzenia pakiet�w niekt�rych narz�dzi z pakietu debhelper.
  Pakiety te nie s� niezb�dne do budowania paczek, ale s� <strong>bardzo</strong>
  zalecane, szczeg�lnie nowym opiekunom. Dzi�ki nim o wiele �atwiej rozpocz��
  proces budowania pakietu i kontrolowa� go p�niej (zobacz <manref name="dh_make"
  section="1">, <manref name="debhelper" section="1"> i plik
  /usr/share/doc/debhelper/README).

  <item><package>devscripts</package> - pakiet zawieraj�cy par� u�ytecznych
  i pomocnych dla opiekuna skrypt�w, kt�re nie s� jednak�e niezb�dne do budowania
  pakiet�w (wi�cej informacji znajdziesz w pliku /usr/share/doc/devscripts/README.gz).

  <item><package>fakeroot</package> - narz�dzie, kt�re pozwala "udawa�" bycie
  administratorem systemu (rootem). Uprawnienia administratora s� niezb�dne
  w niekt�rych etapach procesu budowania pakietu (zobacz <manref name="fakeroot"
  section="1">).

  <item><package>gnupg</package> - narz�dzie umo�liwiaj�ce cyfrowe
  <em>podpisanie</em> pakiet�w. Jest to szczeg�lnie wa�ne, gdy zamierzasz
  rozpowszechnia� sw�j pakiet, a na pewno b�dziesz musia� to zrobi�, gdyby Tw�j
  pakiet mia� by� w��czony do dystrybucji Debiana (zobacz <manref name="gpg"
  section="1">).

  <item><package>g77</package> - kompilator GNU j�zyka Fortran 77,
  niezb�dny gdy Tw�j program zosta� napisany w j�zyku Fortran (zobacz
  <manref name="g77" section="1">).

  <item><package>gpc</package> - kompilator GNU j�zyka Pascal, niezb�dny gdy Tw�j
  program zosta� napisany w j�zyku Pascal. Warty odnotowania w tym miejscu
  jest r�wnie� pakiet <package>fp-compiler</package> (Free Pascal Compiler),
  kt�ry tak�e nadaje si� do tego celu (zobacz <manref name="gpc" section="1">
  i <manref name="ppc386" section="1">).

  <item><package>xutils</package> - niekt�re programy, g��wnie dla X11,
  u�ywaj� tych narz�dzi do wygenerowania plik�w Makefile z zestawu
  makro-funkcji (zobacz <manref name="imake" section="1">
  i <manref name="xmkmf" section="1">).

  <item><package>lintian</package> - program s�u��cy do sprawdzania poprawno�ci
  pakiet�w Debiana. Poinformuje Ci�, gdy w zbudowanej paczce znajdzie 
  b��dy i wyja�ni ich przyczyn� (zobacz <manref name="lintian" section="1">
  oraz /usr/share/doc/lintian/lintian.html/index.html).
  
  <item><package>pbuilder</package> - ten pakiet zawiera programy, kt�re
  s� u�ywane do tworzenia i zarz�dzania �rodowiskiem chroot. Budowanie
  pakiet�w Debiana w tym �rodowisku weryfikuje poprawno�� zale�no�ci
  i zapobiega powstawaniu b��d�w FTBFS (zobacz <manref name="pbuilder"
  section="8"> i <manref name="pdebuild" section="1">).
  
  </list>

  <p>Poni�ej wymieniamy <em>bardzo wa�n�</em> dokumentacj�,
  kt�ra powinna by� przeczytana razem z tym podr�cznikiem:

  <list>
  
  <item><package>debian-policy</package> - Polityka Debiana opisuje struktur�
  i zawarto�� archiwum Debiana, sprawy dotycz�ce sposobu projektowania systemu
  operacyjnego, FHS (Standard Hierarchii Systemu Plik�w - Filesystem Hierarchy
  Standard), kt�ry m�wi, gdzie powinny si� znajdowa� pliki i katalogi itd.
  Dla Ciebie najwa�niejszy jest opis wymaga�, kt�re musi spe�ni� ka�dy pakiet,
  aby m�g� by� w��czony do dystrybucji (zobacz &debian-policy;).

  <item><package>developers-reference</package> - opisuje wszystkie zagadnienia
  nie zwi�zane z technicznymi szczeg�ami procesu tworzenia pakiet�w,
  a wi�c struktur� archiwum, spos�b zmian nazw pakiet�w, procedur� ich
  osierocania i adopcji, umieszczania pakiet�w w archiwum Debiana, r�wnie�
  nie b�d�c opiekunem danego pakietu (Non-Maintainer Upload - NMU),
  jak zarz�dza� b��dami, najlepsze praktyki dotycz�ce pakowania,
  kiedy i gdzie umieszcza� pakiet itd. (zobacz &developers-reference;).
  </list>

  <p>Powy�sze kr�tkie opisy s�u�� jedynie jako wprowadzenie do opisu
  ka�dego z pakiet�w. Zanim przejdziesz dalej, prosimy gruntownie zapozna�
  si� z dokumentacj� do ka�dego z program�w, a przynajmniej z ich standardowym
  u�yciem. By� mo�e wydaje Ci si� to teraz trudne, ale p�niej b�dziesz
  <em>bardzo</em> zadowolony z przeczytania tej dokumentacji.
  
  <p>Uwaga: pakiet <package>debmake</package> zawiera niekt�re programy 
  zbli�one funkcjonalnie do dh-make, ale ten dokument <strong>nie</strong>
  omawia jego u�ycia, poniewa� jest on <em>przestarza�y</em>.
  
  <sect id="debiandeveloper">Oficjalny Deweloper Debiana

  <p>Po zbudowaniu swojego pierwszego pakietu (albo w czasie budowania)
  by� mo�e zechcesz zosta� oficjalnym Deweloperem Debiana, aby wprowadzi�
  sw�j pakiet do kolejnej dystrybucji (je�li program jest u�yteczny, to
  czemu nie?).
  
  <p>Nie mo�esz zosta� oficjalnym Deweloperem Debiana w ci�gu jednej
  nocy, gdy� do tego potrzebne jest co� wi�cej, ni� umiej�tno�ci
  techniczne. Niech Ci� to jednak nie zniech�ca. Mo�esz wys�a� sw�j
  pakiet, je�li jest u�yteczny dla innych, jako opiekun sponsorowany
  przez zapisanie si� na
  <url name="stronie Nowych Opiekun�w" id="&nm-home;">.
  Sponsor jest oficjalnym Deweloperem Debiana, kt�ry pomaga opiekunom
  w��cza� pakiety do archiwum Debiana. Wi�cej o procedurze przyjmowania
  nowych opiekun�w jest na stronie
  <url id="&mentors-faq;" name="debian-mentors FAQ">.

  <p>Zwracamy uwag�, �e nie ma potrzeby tworzenia nowego pakietu, aby
  sta� si� oficjalnym Deweloperem Debiana. Rozw�j istniej�cych pakiet�w
  jest r�wnie� drog� mog�c� prowadzi� do zostania oficjalnym Deweloperem.

  <sect id="otherinfo">Inne informacje

  <p>Istniej� dwa rodzaje pakiet�w, jakie mo�esz stworzy�: �r�d�owe i binarne.
  Pakiet �r�d�owy zawiera kod, kt�ry mo�esz skompilowa�, aby otrzyma� binarn�
  posta� programu. Pakiet binarny zawiera natomiast ju� gotowy do u�ycia
  program. Prosimy nie myli� takich poj��, jak �r�d�o programu i pakiet �r�d�owy!
  Wi�cej szczeg��w na temat terminologii jest w innych podr�cznikach.

  <p>W Debianie termin `opiekun' (maintainer) oznacza osob�, kt�ra tworzy
  pakiety (pakuje programy), `autor' (upstream author) - osob�, kt�ra tworzy program,
  a `zewn�trzny opiekun' (upstream maintainer) - osob�, kt�ra aktualnie opiekuje
  si� programem, pozostaj�c poza projektem Debian. Zwykle autor i zewn�trzny
  opiekun s� t� sam� osob� - czasem nawet t� sam� osob� jest opiekun.
  Je�li napisa�e� jaki� program i chcesz, �eby wszed� w sk�ad Debiana,
  przy�lij swoje zg�oszenie i zosta� opiekunem.
  
  <!-- -------------------------------------------------------------------------->

  <chapt id="first">Pierwsze kroki

  <sect id="choose">Wybierz sw�j program

  <p>Prawdopodobnie wybra�e� ju� pakiet, kt�ry chcesz zbudowa�. Pierwsz� rzecz�,
  kt�r� powiniene� zrobi�, to sprawdzi�, czy pakiet znajduje si� ju�
  w dystrybucji, przy pomocy programu <prgn>aptitude</prgn>.
  Je�li u�ywasz dystrybucji 'stabilnej', zapewne najlepiej przej�� do
  <url name="strony wyszukiwania pakiet�w" id="http://www.debian.org/distrib/packages">.

  <p>Je�li pakiet ju� istnieje, to c�, zainstaluj go! :-) Je�li przypadkiem
  jest on osierocony (jego opiekunem jest "Debian QA Group"), to by� mo�e
  mo�esz si� nim zaopiekowa�.

  <p>Sprawd� na stronie
  <url name="Pakiet�w Rokuj�cych i Wymagaj�cych Pracy" id="http://www.debian.org/devel/wnpp/">
  i stronach powi�zanych ostatni status adopcji/osierocenia pakietu.

  <p>Je�li mo�esz zaadoptowa� pakiet, pobierz jego �r�d�a (poleceniem
  <tt>apt-get source nazwa_pakietu</tt>) i przetestuj go. Niestety ten
  dokument nie zawiera informacji na temat adopcji pakiet�w. Za to
  nie musisz m�czy� si�, rozpracowuj�c dzia�anie danego pakietu, gdy�
  kto� ju� wcze�niej dokona� wst�pnych ustawie�. Ale czytaj dalej, bo
  poni�sze porady b�d� z pewno�ci� warto�ciowe r�wnie� dla Ciebie.

  <p>Je�li pakiet jest nowy i chcia�by�, �eby zosta� w��czony do dystrybucji
  Debiana, wykonaj poni�sze instrukcje:

  <list>
  <item>sprawd� na stronie <url name="lista pakiet�w w opracowaniu"
  id="http://www.de.debian.org/devel/wnpp/being_packaged">, czy kto� ju� nie
  pracuje nad tym pakietem. Je�li kto� ju� to robi, to mo�esz si� z nim
  skontaktowa�, je�li s�dzisz, �e m�g�by� mu pom�c. Je�li nie - znajd�
  jaki� inny interesuj�cy Ci� program, kt�ry nie ma jeszcze swojego opiekuna.
  </item>

  <item>program <strong>musi</strong> mie� licencj� i, je�li to mo�liwe,
  najlepiej zgodn� z <url name="Wytycznymi Debiana dotycz�cymi Wolnego
  Oprogramowania" id="http://www.debian.org/social_contract.html#guidelines">
  oraz <strong>nie mo�e</strong> wymaga� pakiet�w spoza sekcji main
  do kompilacji lub wykonania, bo jest to niezgodne z Polityk� Debiana.
  Je�li nie zgadza si� to z kt�r�� z powy�szych zasad, program mo�e by�
  w��czony do sekcji `contrib' lub `non-free', zale�nie od sytauacji.
  Gdy nie jeste� pewny, do kt�rej sekcji mo�na w��czy� program, wy�lij tekst
  licencji na list� <email>debian-legal@lists.debian.org</email>
  i popro� o porad�.
  </item>

  <item>program z pewno�ci� <strong>nie</strong> powinien by� uruchamiany
  z ustanowionym identyfikatorem administratora systemu (setuid root), a
  jeszcze lepiej - nie powinien potrzebowa� ustanowionego �adnego
  identyfikatora u�ytkownika lub grupy.</item>

  <item>program nie powinien by� demonem ani innym programem umieszczanym
  w katalogu */sbin, ani nie powinien otwiera� portu jako administrator
  systemu.</item>

  <item>program powinien mie� binarn�, wykonywaln� form�, biblioteki s�
  trudniejsze w utrzymaniu.</item>

  <item>program powinien by� dobrze udokumentowany, a kod 
  zrozumia�y (np. nie zagmatwany).</item>

  <item>powiniene� skontaktowa� si� z autorem(ami) programu, aby sprawdzi�
  czy zgadzaj� si� na jego zapakowanie. Wa�n� rzecz� jest mo�liwo��
  konsultacji z autorem w razie wyst�pienia jakich� specyficznych problem�w.
  Nie pr�buj pakowa� oprogramowania, kt�rym si� nikt nie zajmuje.</item>

  <item>i na ko�cu, cho� wcale nie jest to najmniej wa�ne, musisz wiedzie� jak
  program dzia�a i wypr�bowa� go przez pewien czas.</item>
  </list>

  <p>Oczywi�cie powy�sze zalecenia to po prostu zabezpieczenia, kt�re maj�
  na celu uchroni� Ci� przed gniewem u�ytkownik�w, gdy zrobisz co� �le w
  jakim� demonie z ustanowionym identyfikatorem u�ytkownika...
  Gdy nabierzesz ju� wi�cej do�wiadczenia, b�dziesz m�g� pakowa�
  nawet takie programy, ale nawet najbardziej do�wiadczeni deweloperzy
  konsultuj� si� na li�cie dyskusyjnej Mentor�w Debiana, gdy maj�
  jakie� w�tpliwo�ci. Ludzie stamt�d z pewno�ci� ch�tnie pomog�.

  <p>Wi�cej informacji na te tematy znajdziesz w dokumencie Developer's
  Reference.

  <sect id="getit">We� program i wypr�buj go

  <p>Pierwsz� rzecz�, kt�r� powiniene� zrobi�, to odnalezienie i pobranie
  oryginalnego pakietu. Zak�adam, �e ju� masz plik �r�d�owy, kt�ry pobra�e�
  ze strony domowej jego autora. �r�d�a z wolnym oprogramowaniem dla Uniksa
  s� zwykle rozprowadzane w formacie tar/gzip, z rozszerzeniem
  .tar.gz. Pliki te na og� zawieraj� podkatalog o nazwie program-wersja,
  w kt�rym znajduj� si� wszystkie pliki �r�d�owe. Je�li �r�d�a wybranego przez
  Ciebie programu s� rozprowadzane w innego rodzaju archiwum (na przyk�ad pliki
  ko�cz�ce si� na ".Z" lub ".zip"), to wypakuj je przy pomocy odpowiedniego
  narz�dzia. Gdy nie jeste� pewien, jak zrobi� to poprawnie, zapytaj
  (po angielsku) na li�cie dyskusyjnej Mentor�w Debiana (wskaz�wka:
  temat `file archive.extension`).

  <p>Jako przyk�adu b�dziemy u�ywa� programu o nazwie `gentoo' - menad�era
  plik�w dla systemu X Windows, kt�ry wykorzystuje bibliotek� GTK+. Zwr��
  uwag�, �e program ten jest ju� zapakowany i znacznie si� zmieni� od czasu,
  gdy pisany by� ten tekst.

  <p>W swoim katalogu domowym utw�rz podkatalog o nazwie 'debian', 'deb' lub
  jakkolwiek uwa�asz za w�a�ciwe (np. po prostu <file>~/gentoo/</file>
  jest w tym przypadku dobrym rozwi�zaniem). Umie�� w nim pobrane archiwum
  i rozpakuj je (za pomoc� `tar xzf gentoo-0.9.12.tar.gz`). Upewnij si�, �e nie
  ma �adnych b��d�w, nawet jakich� nieistotnych, poniewa� najprawdopodobniej
  pojawi� si� problemy w czasie rozpakowywania w systemach innych u�ytkownik�w,
  kt�rych narz�dzia do wypakowywania mog�, ale nie musz�, ignorowa� takie
  nieprawid�owo�ci.

  <p>Teraz w katalogu tym powiniene� mie� podkatalog o nazwie
  `gentoo-0.9.12'. Wejd� do niego i <strong>dok�adnie</strong> przeczytaj
  znajduj�c� si� tam dokumentacj�. Zwykle powinny tam by� pliki o nazwach
  README*, INSTALL*, *.lsm lub *.html. Odszukaj w dokumentacji instrukcji,
  jak poprawnie skompilowa� i zainstalowa� program (najprawdopodobniej b�d�
  one zak�ada�, �e chcesz zainstalowa� program do katalogu /usr/local/bin;
  ale Ty nie r�b tak, wi�cej o tym w rozdziale <ref id="destdir">).

  <p>Proces instalacji r�ni si� w zale�no�ci od programu, ale wiele
  nowoczesnych program�w jest dostarczanych ze skryptem `configure',
  kt�ry konfiguruje �r�d�a pod Twoim systemem i sprawdza, czy spe�niaj� one
  warunki niezb�dne do poprawnej kompilacji. Po zako�czeniu konfiguracji
  wykonywanej za pomoc� polecenia `./configure`, programy s� na og�
  kompilowane przy u�yciu komendy `make`. Niekt�re z nich pozwalaj� tak�e
  na u�ycie `make check`, kt�ry uruchamia procedur� samosprawdzaj�c�.
  Instalacja w katalogu przeznaczenia nast�puje zwykle po wydaniu polecenia
  `make install`.

  <p>Teraz spr�buj skompilowa� i uruchomi� program, aby upewni� si� czy dzia�a
  on prawid�owo i nic si� nie psuje w czasie instalacji lub wykonywania.

  <p>Mo�esz te� zazwyczaj u�y� polecenia `make clean` (lub lepiej `make
  distclean`), aby posprz�ta� w katalogu, w kt�rym kompilowa�e�. Czasem
  mo�na nawet pos�u�y� si� poleceniem `make uninstall`, kt�re usunie wszystkie
  zainstalowane pliki.

  <sect id="namever">Nazwa pakietu i jego wersja

  <p>Powiniene� rozpocz�� pakowanie z zupe�nie wyczyszczonym
  (ang. pristine - pierwotnym) katalogiem �r�d�owym, ewentualnie ze �wie�o
  rozpakowanymi �r�d�ami.

  <p>Aby prawid�owo zbudowa� pakiet, musisz tak zmieni� nazw� oryginalnego
  programu, �eby wyst�powa�y w niej tylko ma�e litery (o ile wyst�puj� tam
  jakie� wielkie litery). Powiniene� tak�e przenie�� katalog ze �r�d�ami do
  katalogu &lt;nazwa_pakietu&gt;-&lt;wersja&gt;.

  <p>Je�li nazwa programu sk�ada si� z wi�cej ni� jednego wyrazu, to skr��
  j� do jednego wyrazu albo utw�rz skr�t. Na przyk�ad program
  "John's little editor for X" powinien si� nazywa� johnledx, jle4x lub
  jako� tak. Pami�taj jednak, aby jego d�ugo�� nie przekracza�a jakiej�
  rozs�dnej warto�ci, np. 20 znak�w.

  <p>Sprawd� tak�e dok�adnie wersj� programu (b�dzie ona w��czona do nazwy
  pakietu). Je�li do oznaczenia jego wersji autor nie u�y� konwencji X.Y.Z,
  ale pos�u�y� si� dat�, to Ty r�wnie� mo�esz jej u�y� do okre�lenia wersji
  pakietu, poprzedzaj�c j� ci�giem "0.0." (na wypadek gdyby autor
  programu zdecydowa� si� kiedy� wyda� wersj� o mi�o brzmi�cym numerze 1.0).
  Zatem, je�li dat� wydania danej wersji programu by�o 19 grudnia 1998 r.,
  to powiniene� oznaczy� jego wersj� jako 0.0.19981219.

  <p>Niekt�re programy nie s� jednak w �aden spos�b numerowane. W takich
  przypadkach powiniene� skontaktowa� si� z zewn�trznym opiekunem, aby
  dowiedzie� si�, czy u�ywa on jakiej� innej metody do oznaczania kolejnych
  poprawek programu.

  <sect id="dh_make">Wst�pna "debianizacja"

  <p>Upewnij si�, �e jeste� w katalogu ze �r�d�ami programu i wydaj nast�puj�ce
  polecenie:

  <p><example>
  dh_make -e tw�j.adres@opiekuna.pl -f ../gentoo-0.9.12.tar.gz
  </example>

  <p>Oczywi�cie musisz zast�pi� ci�g "tw�j.adres@opiekuna.pl" adresem Twojej
  skrzynki pocztowej, gdy� zostanie on wpisany do pliku ze zmianami
  (changelog) i innych plik�w, oraz zast�pi� nazw� pliku
  nazw� Twojego archiwum �r�d�owego. Wi�cej szczeg��w znajdziesz
  na stronie podr�cznika <manref name="dh_make" section="1">.

  <p>Trzeba te� wprowadzi� kilka dodatkowych informacji. Zostaniesz poproszony
  o podanie typu pakietu, kt�ry tworzysz. Gentoo to pojedynczy pakiet binarny
  - tworzy on tylko plik binarny, a zatem jeden plik .deb. W takim wypadku
  zaznaczamy pierwsz� opcj� za pomoc� klawisza `s'. Nast�pnie sprawdzamy
  informacje na ekranie i, je�li wszystko si� zgadza, potwierdzamy je
  naciskaj�c &lt;enter&gt;.
  
  <p>Po wykonaniu <prgn>dh_make</prgn> jest tworzona kopia autorskiego
  archiwum jako <file>gentoo_0.9.12.orig.tar.gz</file>, w katalogu
  nadrz�dnym, w celu dostosowania, jako niedebianowego pakietu
  pakietu �r�d�owego, do <file>diff.gz</file>.
  Nazwa tego pliku ma 2 zasadnicze w�a�ciwo�ci:
  
  <list compact>
  <item>Nazwa pakietu i wersja s� rozdzielone przez "<tt>_</tt>" .
  <item>Zosta� dodany sufiks "<tt>orig.</tt>" przed "<tt>tar.gz</tt>" .
  </list>
  
  <p>Powt�rzmy: poniewa� jeste� jeszcze nowym opiekunem, odradzamy
  Ci tworzenie skomplikowanych pakiet�w, takich jak:
  <list compact>
  <item>wielokrotne pakiety binarne
  <item>pakiety bibliotek
  <item>z plik�w �r�d�owych innych ni� <tt>tar.gz.</tt> lub <tt>tar.bz2</tt>, czy te�
  <item>z archiw�w, kt�rych zawarto�� nie mo�e by� dystrybuowana.
  </list>

  <p>Prosimy zauwa�y�, �e powinno si� uruchomi� program <prgn>dh_make</prgn>
  <strong>tylko jeden raz</strong>, gdy� nie zachowa si� on poprawnie, gdy
  uruchomisz go ponownie w tym samym ju� "zdebianizowanym" katalogu. Oznacza
  to r�wnie�, �e b�dziesz musia� u�y� innej metody, aby wprowadzi�
  w przysz�o�ci now� poprawk� lub now� wersj� pakietu. Wi�cej informacji
  na ten temat znajdziesz dalej w rozdziale <ref id="update">.

  <!-- -------------------------------------------------------------------------->

  <chapt id="modify">Modyfikacja �r�d�a

  <p>Normalnie programy instaluj� si� w podkatalogach katalogu /usr/local.
  Pakiety Debiana nie mog� jednak u�ywa� tego katalogu, gdy� jest on
  zarezerwowany do prywatnego u�ycia przez administratora (lub u�ytkownik�w)
  systemu. Oznacza to, �e musisz si� przyjrze�, jak budowany jest Tw�j program,
  zwykle za pomoc� pliku Makefile. Jest to skrypt programu <manref name="make"
  section="1"> u�ywanego do automatycznego budowania programu. Wi�cej szczeg��w
  na temat plik�w Makefile znajdziesz w rozdziale <ref id="rules">.

  <p>Zwr�� te� uwag� na to, czy Tw�j program u�ywa program�w GNU
  <manref name="automake" section="1"> i/lub <manref name="autoconf"
  section="1">, czyli czy �r�d�a programu zawieraj� plik Makefile.am i/lub
  Makefile.in, to je b�dziesz musia� wtedy modyfikowa�. Dzieje si� tak,
  poniewa� ka�de wywo�anie programu automake powoduje ponowne utworzenie pliku
  Makefile.in z informacjami wygenerowanymi z pliku Makefile.am. Tak�e ka�de
  wywo�anie skryptu ./configure zrobi to samo z plikiem Makefile, na podstawie
  pliku Makefile.in. Edycja plik�w Makefile.am wymaga pewnej wiedzy
  na temat programu automake, mo�esz o nim poczyta� za pomoc� komendy `info
  automake'. Edytowanie plik�w Makefile.in odbywa si� niemal tak samo, jak
  w przypadku plik�w Makefile, po prostu trzeba zwraca� uwag� na zmienne,
  tzn. wszystkie �a�cuchy otoczone przez znaki `@', dla przyk�adu zmienna
  @CFLAGS@ lub @LN_S@ b�dzie zast�powana odpowiedni� warto�ci� przy ka�dym
  wywo�aniu skryptu ./configure. Przeczytaj dokumentacj�
  <file>&autotools-dev;</file>, zanim zaczniesz modyfikacje.

  <p>Zauwa� r�wnie�, �e nie ma tu wystarczaj�cego miejsca, aby opisa�
  <em>wszystkie</em> szczeg�y na temat poprawiania zewn�trznych �r�de�.
  Przedstawiam tu jedynie kilka problem�w, z kt�rymi cz�sto mo�na si�
  spotka�.

  <sect id="destdir">Instalacja w podkatalogu

  <p>Wiekszo�� program�w posiada sw�j w�asny spos�b instalowania si�
  w istniej�cej strukturze katalog�w systemu. Binaria trafiaj� do katalog�w
  okre�lonych zmienn� �rodowiskow� $PATH, za� dokumentacja i strony podr�cznika
  s� umieszczane w zwykle stosowanych miejscach. Jednak�e, je�li pozwolisz
  na takie dzia�anie, program mo�e si� zainstalowa� w ka�dym miejscu systemu.
  Mo�e sprawi� to problemy narz�dziom do obs�ugi pakiet�w, gdy� nie b�d� one
  wiedzia�y, kt�re pliki nale�� do Twojej paczki, a kt�re nie.

  <p>Zatem musisz zrobi� co� innego: zainstalowa� sw�j program w tymczasowym
  katalogu, z kt�rego narz�dzia opiekuna zbuduj� dzia�aj�cy pakiet .deb.
  Wszystko co zawiera ten katalog, zostanie zainstalowane w systemie
  u�ytkownik�w, gdy zdecyduj� si� oni zainstalowa� Tw�j pakiet, z t� tylko
  r�nic�, �e program dpkg zainstaluje pliki wzgl�dem katalogu g��wnego
  systemu.

  <p>Ten tymczasowy katalog jest zazwyczaj tworzony wewn�trz Twojego
  katalogu debian/ w rozpakowanym drzewie ze �r�d�ami. Na og� ma on nazw�
  <file>debian/nazwa_pakietu</file>.

  <p>Pami�taj, �e nie wystarczy, �eby program zachowywa� si� poprawnie,
  gdy zostanie on zainstalowany si� w katalogu debian/nazwa_pakietu. Musi on
  zachowywa� si� w�a�ciwie tak�e, gdy zostanie umieszczony w g��wnym katalogu
  systemu. Zatem nie wolno pozwoli�, �eby w plikach pakietu zosta�y "zaszyte"
  pe�ne �cie�ki, np. <tt>/home/ja/deb/gentoo-0.9.12/usr/share/gentoo</tt>.

  <p>Sprawa jest prosta, gdy programy u�ywaj� narz�dzia GNU autoconf.
  Wi�kszo�� z nich posiada pliki Makefile, kt�re domy�lnie s� ustawione w taki
  spos�b, aby zezwala� na instalacj� w dowolnym podkatalogu zak�adaj�c,
  �e katalog /usr (dla przyk�adu) jest kanonicznym prefiksem. Gdy zostanie
  wykryte, �e Tw�j program u�ywa autoconfa, to dh_make ustawi
  odpowiednie polecenia tak, �eby wszystko zosta�o zrobione automatycznie.
  W takich przypadkach mo�esz nawet omin�� dalsze czytanie tej sekcji.
  Jednak z innymi programami b�dziesz mia� wi�cej pracy i prawdopodobnie
  b�dziesz musia� przejrze� i wyedytowa� pliki Makefile.

  <p>Poni�ej znajduje si� odpowiednia cz�� pliku Makefile programu gentoo:

  <p><example>
  # Katalog binari�w dla 'make install'
  BIN     = /usr/local/bin

  # Katalog ikon dla 'make install'
  ICONS   = /usr/local/share/gentoo
  </example>

  <p>Widzimy, �e pliki te zostan� zainstalowane w katalogu
  <file>/usr/local</file>. Zmie�my zatem �cie�ki na nast�puj�ce:

  <p><example>
  # Katalog binari�w dla 'make install'
  BIN     = $(DESTDIR)/usr/bin

  # Katalog ikon dla 'make install'
  ICONS   = $(DESTDIR)/usr/share/gentoo
  </example>

  <p>Ale dlaczego w�a�nie w tym katalogu, a nie w jakim� innym? Poniewa� pakiety
  Debiana nigdy nie instaluj� plik�w w katalogu <file>/usr/local</file>.
  Ten katalog jest zarezerwowany na potrzeby administratora systemu. W systemie
  Debian za� takie pliki trafiaj� do katalogu <file>/usr</file>.

  <p>Dok�adniejsze informacje na temat po�o�enia binari�w, ikon, dokumentacji
  itd. s� opisane w dokumencie Filesystem Hierarchy Standard (zobacz
  w katalogu /usr/share/doc/debian-policy/fhs/). Polecamy Ci przejrzenie tego
  dokumentu i przeczytanie tych sekcji, kt�re mog� dotyczy� Twojego pakietu.

  <p>Zatem powinni�my instalowa� pliki binarne w katalogu /usr/bin, a nie
  w /usr/local/bin, strony podr�cznika w katalogu /usr/share/man/man1, a nie
  w /usr/local/man/man1 itd. Zauwa�, �e w pliku Makefile programu gentoo nie
  wspomniano o jego stronie podr�cznika, ale poniewa� Polityka Debiana wymaga,
  �eby ka�dy program posiada� tak� stron�, to stworzymy j� p�niej
  i zainstalujemy w katalogu /usr/share/man/man1.

  <p>Niekt�re programy nie u�ywaj� zmiennych w plikach Makefile do definiowania
  �cie�ek, takich jak te powy�ej. Oznacza to, �e b�dziesz musia� wyedytowa�
  niekt�re �r�d�a napisane w j�zyku C i tak je poprawi�, aby u�ywa�y w�a�ciwych
  katalog�w. Ale gdzie i czego w�a�ciwie szuka�? Mo�esz to odnale�� wydaj�c
  polecenie:

  <p><example>
  grep -nr -e 'usr/local/lib' --include='*.[c|h]' .
  </example>

  <p>Program grep przeszuka rekursywnie ca�e drzewo ze �r�d�ami i wypisze
  nazwy plik�w i numery linii, gdy odnajdzie szukany wzorzec.

  <p>Wyedytuj te pliki i w odnalezionych liniach zast�p ci�g /usr/local/*
  ci�giem usr/* &mdash; i to ju� wszystko. Zr�b to uwa�nie, aby nie zepsu�
  pozosta�ej cz�ci kodu! :-)

  <p>Nast�pnie powiniene� odnale�� w pliku Makefile cel `install'
  (szukaj linii rozpoczynaj�cej si� od ci�gu "install:') i zmieni� wszystkie
  odniesienia do katalog�w innych, ni� te zdefiniowane na pocz�tku
  pliku Makefile. Przed zmian�, cel `install' programu gentoo by� nast�puj�cy:

  <p><example>
  install:        gentoo
                  install ./gentoo $(BIN)
                  install icons/* $(ICONS)
                  install gentoorc-example $(HOME)/.gentoorc
  </example>

  <p>Po wykonaniu zmian wygl�da on nast�puj�co:

  <example>
  install:        gentoo-target
                  install -d $(BIN) $(ICONS) $(DESTDIR)/etc
                  install ./gentoo $(BIN)
                  install -m644 icons/* $(ICONS)
                  install -m644 gentoorc-example $(DESTDIR)/etc/gentoorc
  </example>

  <p>Na pewno zauwa�y�e�, �e teraz przed pozosta�ymi poleceniami w tej
  regule b�dzie wykonywana komenda <tt>install -d</tt>. Oryginalny plik
  Makefile nie mia� jej, gdy� zwykle katalog /usr/local/bin i inne katalogi
  istniej� ju� w systemie, zanim wyda si� polecenie `make install`.
  Jednak�e, gdy instalujemy program do w�asnego, pustego (lub nawet
  nie istniej�cego) katalogu, to b�dziemy musieli utworzy� ka�dy z tych
  katalog�w.

  <p>Mo�emy r�wnie� doda� inne rzeczy na ko�cu tej regu�y, na przyk�ad
  instalacj� dodatkowej dokumentacji, kt�r� autor programu czasem pomija:

  <p><example>
                  install -d $(DESTDIR)/usr/share/doc/gentoo/html
                  cp -a docs/* $(DESTDIR)/usr/share/doc/gentoo/html
  </example>

  <p>Uwa�ny czytelnik zauwa�y, �e zmienili�my `gentoo' na `gentoo-target' w linii
  rozpoczynaj�cej si� od ci�gu `install:'. To jest tzw. poprawka niedotycz�ca
  (unrelated bug fix) :-)

  <p>Ilekro� dokonasz zmian, kt�re nie s� �ci�le zwi�zane z pakietem Debiana,
  poinformuj o nich opiekuna zewn�trznego, aby m�g� on je w��czy� do nast�pnej
  wersji programu i by r�wnie� kto� inny m�g� z nich skorzysta�.
  Pami�taj tak�e, �eby tworzy� poprawki nie specyficzne dla Debiana,
  Linuksa (lub nawet Uniksa!) przed ich wys�aniem &mdash; niech b�d� one
  przeno�ne. Dzi�ki temu Twoje �aty b�dzie �atwiej na�o�y�.

  <p>Zauwa�, �e nie musisz wysy�a� autorowi programu plik�w debian/*.

  <sect id="difflibs">Nie zgadzaj�ce si� biblioteki

  <p>Tutaj mamy pewien do�� powszechny problem: biblioteki cz�sto r�ni� si�
  pomi�dzy platformami. Dla przyk�adu, plik Makefile mo�e zawiera� odwo�ania
  do biblioteki, kt�rej nie ma Debianie. W takim przypadku musimy zamieni� j�
  na bibliotek�, kt�ra jest dost�pna w Debianie i s�u�y tym samym celom.

  <p>Je�li zatem w pliku Makefile (lub Makefile.in) Twojego programu istnieje
  linia podobna do tej poni�ej (i Tw�j program nie chce si� skompilowa�):

  <p><example>
  LIBS = -lcurses -lco� -lco�_innego
  </example>
  
  <p>to zmie� j� w pokazany spos�b i to powinno pom�c:

  <p><example>
  LIBS = -lncurses -lco� -lco�_innego
  </example>

  <p>(Autor zdaje sobie spraw�, �e to nie jest najlepszy przyk�ad,
  zwa�ywszy na to, �e pakiet libncurses jest teraz dostarczany wraz z
  dowi�zaniem symbolicznym do biblioteki libcurses.so, ale nie m�g� wymy�li�
  niczego lepszego. Sugestie b�d� bardzo mile widziane :-)

  <!-- -------------------------------------------------------------------------->

  <chapt id="dreq">Rzeczy wymagane w katalogu debian/

  <p>W katalogu ze �r�d�ami Twojego programu powsta� nowy podkatalog,
  kt�ry nazywa si� `debian'. Zawiera on kilka plik�w, kt�re powinni�my
  wyedytowa�, aby umo�liwi� dzia�anie pakietu. Najwa�niejszymi z nich s� pliki
  `control', `changelog', `copyright' i 'rules', kt�re s� wymagane
  w ka�dym pakiecie.

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

  <p>Ten plik zawiera r�ne informacje, kt�rych u�ywaja programy <prgn/dpkg/,
  <prgn/dselect/ oraz inne narz�dzia s�u��ce do zarz�dzania pakietem.

  <p>Poni�ej przedstawiono plik control utworzony przez program dh_make:

  <p><example>
  1  Source: gentoo
  2  Section: unknown
  3  Priority: optional
  4  Maintainer: Josip Rodin &lt;joy-mg@debian.org&gt;
  5  Build-Depends: debhelper (>> 3.0.0)
  6  Standards-Version: 3.6.2
  7
  8  Package: gentoo
  9  Architecture: any
  10 Depends: ${shlibs:Depends}
  11 Description: &lt;insert up to 60 chars description&gt;
  12  &lt;insert long description, indented with spaces&gt;
  </example>
  (doda�em numery linii)

  <p>Linie 1-6 zawieraj� informacje kontrolne dla pakietu �r�d�owego.
	
  <p>Linia 1. zawiera nazw� pakietu �r�d�owego.

  <p>Linia 2. oznacza sekcj� dystrybucji, do kt�rej nale�y pakiet �r�d�owy.
	
  <p>By� mo�e zauwa�y�e�, �e Debian jest podzielony na nast�puj�ce sekcje:
  `main' (zawiera wolne oprogramowanie), `non-free' (zawiera oprogramowanie,
  kt�re nie jest wolne) i `contrib' (zawiera wolne oprogramowanie, kt�re
  zale�y od oprogramowania, kt�re nie jest wolne). Dodatkowo ka�da z sekcji
  dzieli si� na logiczne podsekcje, kt�re skr�towo opisuj�, do czego s�u�y
  dany pakiet. Mamy zatem sekcj� `admin', kt�ra zawiera programy przeznaczone
  tylko dla administratora systemu, `base' z podstawowymi narz�dziami, `devel'
  z narz�dziami programist�w, `doc' z dokumentacj�, `libs' z bibliotekami,
  `mail' z programami do obs�ugi poczty elektronicznej, `net' z aplikacjami
  sieciowymi i demonami us�ug sieciowych, `x11' z programami dla system�w X11,
  kt�re nie pasuj� nigdzie indziej i wiele innych.

  <p>Zmie�my j� zatem na x11. Prefiks "main/" jest przyjmowany domy�lnie,
  wi�c mo�emy go pomin��.

  <p>Linia 3. opisuje, jak wa�ne jest to, aby u�ytkownik zainstalowa� dany
  pakiet. Wi�cej informacji na temat warto�ci, jakie mo�e przyjmowa� to pole
  znajdziesz w podr�czniku Polityki Debiana. Dla nowych pakiet�w zazwyczaj mo�e
  ono przyjmowa� warto�� "optional".

  <p>Sekcja (Section) i priorytet (Priority) s� u�ywane przez nak�adki,
  jak program <prgn/dselect/, kt�re u�ywaj� ich do sortowania pakiet�w i wyboru
  domy�lnego zestawu pakiet�w do zainstalowania. Gdy b�dziesz umieszcza� sw�j
  pakiet w archiwum Debiana, warto�� tych dw�ch p�l mo�e by� zmieniona przez
  opiekun�w archiwum. W takich przypadkach zostaniesz o tym powiadomiony
  e-mailem.

  <p>Poniewa� jest to pakiet o normalnym priorytecie i nie jest w konflikcie
  z innym pakietem, to pozostawiamy tam warto�� "optional".

  <p>Linia 4. zawiera imi� i nazwisko oraz adres e-mail opiekuna pakietu.
  Upewnij si�, �e pole to zawiera warto�� odpowiedni� dla nag��wka "To: "
  wiadomo�ci pocztowej, gdy� po umieszczeniu pakietu w archiwum system
  �ledzenia b��d�w u�yje tego pola do wysy�ania Ci e-maili ze zg�oszeniami
  b��d�w. Nie stosuj przecink�w, ampersand�w (`&amp;') i nawias�w.

  <p>Linia 5. zawiera list� pakiet�w wymaganych do zbudowania Twojego
  pakietu. Niekt�re pakiety, na przyk�ad gcc czy make, s� za�o�one z g�ry,
  wi�cej szczeg��w na temat znajdziesz w pakiecie <package/build-essential/.
  Je�li do zbudowania Twojego pakietu jest potrzebny jaki� niestandardowy
  kompilator lub inne narz�dzie, to powiniene� doda� tutaj lini�
  `Build-Depends'. Wpisy s� oddzielane od siebie za pomoc� przecink�w;
  przeczytaj obja�nienia na temat zale�no�ci binari�w, aby dowiedzie� si�
  wi�cej na temat sk�adni tego pola.

  <p>Mo�esz tak�e u�y� w tym miejscu takich p�l jak Build-Depends-Indep,
  Build-Conflicts i innych. Dane te s� u�ywane przez oprogramowanie do
  automatycznego budowania pakiet�w Debiana w celu stworzenia pakiet�w
  binarnych przeznaczonych dla innych platform komputerowych. Wi�cej
  informacji na temat zale�no�ci budowania pakiet�w znajdziesz w podr�czniku
  Polityki. Dokument Developers' Reference zawiera szczeg�y na temat innych
  platform (architektur) oraz adaptowania (ang. porting) do nich
  oprogramowania.

  <p>Poni�ej pokazano sztuczk�, dzi�ki kt�rej odszukasz pakiety,
  kt�rych potrzebuje do zbudowania Tw�j pakiet:

  <example>
  strace -f -o /tmp/log ./configure
  # or make instead of ./configure, if the package doesn't use autoconf
  for x in `dpkg -S $(grep open /tmp/log|\
                      perl -pe 's!.* open\(\"([^\"]*).*!$1!' |\
                      grep "^/"| sort | uniq|\
                      grep -v "^\(/tmp\|/dev\|/proc\)" ) 2>/dev/null|\
                      cut -f1 -d":"| sort | uniq`; \
        do \
          echo -n "$x (>=" `dpkg -s $x|grep ^Version|cut -f2 -d":"` "), "; \
        done
  </example>

  <p>Aby r�cznie znale�� kompletny zestaw zale�no�ci dla programu
  <prgn><var>/usr/bin/foo</var></prgn>, wykonaj
  <example>
  objdump -p <var>/usr/bin/foo</var> | grep NEEDED
  </example>
  a dla ka�dej znalezionej biblioteki, np. <prgn>libfoo.so.6</prgn>, wykonaj
  <example>
  dpkg -S libfoo.so.6 
  </example>
  Potem tylko we� wersj� -dev ka�dej z nich jako pozycj� w `Build-deps'.
  Je�li u�ywasz do tego celu <prgn>ldd</prgn>, pokazuje on
  r�wnie� zale�no�ci niebezpo�rednie, co skutkuje zbyt du�� liczb�
  wykazywanych zale�no�ci.

  <p>Tak wi�c program gentoo wymaga do zbudowania pakiet�w <package/xlibs-dev/,
  <package/libgtk1.2-dev/ i <package/libglib1.2-dev/, wi�c dodajmy je
  za pakietem <package/debhelper/.

  <p>Linia 6. jest wersj� standard�w polityki Debiana, kt�r� dany pakiet
  spe�nia, wersj� podr�cznika Polityki, kt�ry czytasz w trakcie tworzenia
  Twojego pakietu.

  <p>Linia 8. to nazwa pakietu binarnego. Zwykle jest ona taka sama jak nazwa
  pakietu �r�d�owego, ale nie musi to by� regu��.

  <p>Linia 9. opisuje architektur� procesora, dla kt�rego mo�e by�
  skompilowany pakiet. Pozostawimy w niej "any", gdy� pakiet
  <manref name="dpkg-gencontrol" section="1"> sam wstawi w tym miejscu
  odpowiedni� warto�� dla ka�dego typu maszyny, na kt�rej kompilowany jest
  pakiet.

  <p>Je�li Tw�j pakiet jest niezale�ny od architektury procesora (dla przyk�adu
  skrypt pow�oki lub Perla, albo jaki� dokument), wpisz tutaj "all"
  i poczytaj p�niej w sekcji <ref id="rules"> na temat u�ywania regu�y
  `binary-indep' zamiast `binary-arch' do budowania pakietu.

  <p>Linia 10. pokazuje jedn� z najpot�niejszych cech systemu pakiet�w
  Debiana. Pakiety mog� znajdowa� si� w r�nych relacjach z innymi pakietami.
  Opr�cz pola Depends: mog� te� wyst�powa� pola opisuj�ce inne zwi�zki:
  Recommends:, Suggests:, Pre-Depends:, Conflicts:, Provides: i Replaces:.

  <p>Narz�dzia do zarz�dzania pakietami zwykle zachowuj� si� w ten sam spos�b
  w czasie ustalania relacji mi�dzy pakietami. Je�li tak nie jest,
  zostanie to wkr�tce wyja�nione (zobacz <manref name="dpkg" section="8">,
  <manref name="dselect" section="8">, <manref name="apt" section="8">,
  <manref name="aptitude" section="1">, itd.).

  <p>Pola te oznaczaj�:

  <p><list>
  <item>Depends: (Wymaga)
  <p>Pakiet nie zostanie zainstalowany o ile pakiety, kt�rych on wymaga nie
  s� ju� zainstalowane w systemie. U�yj tego pola, gdy Tw�j program absolutnie
  nie mo�e by� uruchomiony (lub z du�ymi trudno�ciami), je�li kt�ry� z tych
  pakiet�w nie jest obecny w systemie.</item>

  <item>Recommends: (Zaleca)
  <p>Nak�adki takie jak dselect czy aptitude zach�c� Ci� do zainstalowania
  zalecanych pakiet�w wraz z Twoim pakietem; dselect b�dzie nawet na to
  nalega�. Programy dpkg i apt-get jednak zignoruj� te pole. U�yj go
  dla pakiet�w, kt�re nie s� niezb�dne, ale s� zwykle u�ywane razem z Twoim
  programem.</item>

  <item>Suggests: (Poleca)
  <p>Gdy u�ytkownik instaluje Tw�j program, wszystkie nak�adki zach�c� go tak�e
  do zainstalowania pakiet�w, kt�re on poleca. Programy dpkg i apt-get nie
  b�d� si� o to troszczy�. U�yj tego pola dla pakiet�w, kt�re lepiej dzia�aj�
  z Twoim programem, ale nie s� dla niego niezb�dne.</item>

  <item>Pre-Depends: (Przed-Wymaga)
  <p>Jest to silniejsza relacja ni� Depends:. Pakiet nie zostanie zainstalowany
  o ile pakiety, od kt�rych jest on przed-zale�ny nie s� zainstalowane
  w systemie i <em>poprawnie skonfigurowane</em>. U�ywaj tego pola
  <strong>bardzo</strong> oszcz�dnie i jedynie po przedyskutowaniu tego na
  li�cie debian-devel. Czytaj: nie u�ywaj go nigdy. :-)</item>

  <item>Conflicts: (PowodujeKonflikt)
  <p>Pakiet nie zostanie zainstalowany, dop�ki wszystkie pakiety, kt�re powoduj�
  konflikt nie zostan� wcze�niej usuni�te z systemu. U�yj tego pola, gdy Tw�j
  program absolutnie nie mo�e by� uruchomiony lub spowoduje jakie� problemy,
  je�li jaki� inny pakiet jest obecny w systemie.</item>

  <item>Provides: (Dostarcza)
  <p>Dla niekt�rych rodzaj�w pakiet�w zosta�o zdefiniowanych wiele
  alternatywnych nazw wirtualnych. Pe�n� list� tych pakiet�w znajdziesz w pliku
  /usr/share/doc/debian-policy/virtual-package-names-list.txt.gz. U�yj tego
  pola, je�li Tw�j program dostarcza funkcjonalno�ci istniej�cego ju� pakietu
  wirtualnego.</item>

  <item>Replaces: (Zast�puje)
  <p>U�yj tego pola, gdy Tw�j program zast�puje pliki jakiego� innego pakietu
  lub zupe�nie zast�puje jaki� pakiet (u�ywane ��cznie z polem Conflicts:).
  Pliki z wymienionych pakiet�w zostan� nadpisane przez pliki z Twojego
  pakietu.
  </item>
  </list>

  <p>Wszystkie te pola maj� jednolit� sk�adni�. Jest to lista nazw pakiet�w
  oddzielonych za pomoc� przecinka. Nazwy pakiet�w mog� r�wnie� by� listami
  alternatywnych nazw pakiet�w oddzielonych przy pomocy symbolu <tt>|</tt>
  (symbol potoku).

  <p>Pola mog� ogranicza� swoje zastosowanie tylko do szczeg�lnych wersji
  ka�dego wymienionego pakietu. Wersje te s� umieszczone w nawiasach po ka�dej
  nazwie pakietu i powinny zawiera� relacje mi�dzy numerami wersji pakiet�w.
  Dozwolonymi relacjami s�: <tt>&lt;&lt;</tt>, <tt>&lt;=</tt>, <tt>=</tt>,
  <tt>&gt;=</tt> i <tt>&gt;&gt;</tt>, odpowiednio: wcze�niejszy, wcze�niejszy
  lub r�wny, dok�adnie r�wny, p�niejszy lub r�wny i p�niejszy. Dla przyk�adu:

  <p><example>
  Depends: foo (>= 1.2), libbar1 (= 1.3.4)
  Conflicts: baz
  Recommends: libbaz4 (>> 4.0.7)
  Suggests: quux
  Replaces: quux (<< 5), quux-foo (<= 7.6)
  </example>

  <p>Ostatni� cech�, o kt�rej powiniene� wiedzie�, jest ${shlibs:Depends}.
  Gdy Tw�j pakiet zostanie zbudowany i zainstalowany w tymczasowym katalogu,
  program <manref name="dh_shlibdeps" section="1"> "prze�wietli" go
  w poszukiwaniu binari�w i bibliotek, okre�li jakich
  bibliotek wsp�dzielonych wymaga i wykryje, w kt�rych pakietach si�
  one znajduj�, na przyk�ad libc6 lub xlib6g. Nast�pnie program
  <manref name="dh_gencontrol" section="1"> umie�ci ich nazwy we w�a�ciwym
  miejscu, wi�c nie musisz si� o to martwi�.

  <p>Skoro ju� wszystko to zosta�o powiedziane, mo�emy pozostawi� lini� 10.
  w takiej postaci jak teraz i wstawi� po niej <tt>Suggests: file</tt>,
  poniewa� gentoo mo�e u�y� niekt�rych funkcjonalno�ci dostarczanych przez
  ten program/pakiet.

  <p>Linia 11. jest kr�tkim opisem pakietu. Wi�kszo�� ekran�w tekstowych ma
  szeroko�� 80 kolumn, wi�c nie powinna ona zawiera� wi�cej ni� 60 znak�w.
  Ja wpisa�em w niej "fully GUI configurable X file manager using GTK+"
  (w pe�ni konfigurowalny okienkowy manager plik�w u�ywaj�cy GTK+).

  <p>Od linii 12. zaczyna si� d�u�szy opis pakietu. Powinien to by� akapit
  z wi�ksz� liczb� szczeg��w na temat pakietu. Pierwsza kolumna ka�dej linii
  d�ugiego opisu powinna by� pusta. Poniewa� opis ten nie mo�e zawiera� pustych
  linii, wsz�dzie tam gdzie chcia�by� je wstawi�, musisz umie�ci� znak .
  (kropka) w kolumnie nr 2. Tak�e na ko�cu d�ugiego opisu nie mo�e si� pojawi�
  wi�cej ni� jedna pusta linia.

  <p>A oto ko�cowa posta� uaktualnionego pliku `control':

  <p><example>
  1  Source: gentoo
  2  Section: x11
  3  Priority: optional
  4  Maintainer: Josip Rodin &lt;joy-mg@debian.org&gt;
  5  Build-Depends: debhelper (>> 3.0.0), xlibs-dev, libgtk1.2-dev, libglib1.2-dev
  6  Standards-Version: 3.5.2
  7
  8  Package: gentoo
  9  Architecture: any
  10 Depends: ${shlibs:Depends}
  11 Suggests: file
  12 Description: fully GUI configurable X file manager using GTK+
  13  gentoo is a file manager for Linux written from scratch in pure C. It
  14  uses the GTK+ toolkit for all of its interface needs. gentoo provides
  15  100% GUI configurability; no need to edit config files by hand and re-
  16  start the program. gentoo supports identifying the type of various
  17  files (using extension, regular expressions, or the 'file' command),
  18  and can display files of different types with different colors and icons.
  19  .
  20  gentoo borrows some of its look and feel from the classic Amiga file
  21  manager "Directory OPUS" (written by Jonathan Potter).
  </example>
  (numery linii zosta�y dodane przeze mnie)

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

  <p>Plik ten zawiera informacje o zewn�trznych (ang. upstream) zasobach pakietu,
  prawach autorskich i licencji. Jego format nie jest narzucony przez Polityk�
  Debiana, ale jego zawarto�� ju� tak (zobacz sekcj� 12.6 "Informacje o prawach
  autorskich").

  <p>Program dh_make stworzy� ju� domy�lny plik, kt�rego zawarto�� jest
  podobna do tej poni�ej:

  <p><example>
  1  This package was debianized by Josip Rodin &lt;joy-mg@debian.org&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>
  (numery linii zosta�y dodane przeze mnie)

  <p>Wa�nymi rzeczami, kt�re powiniene� doda� do tego pliku, jest miejsce,
  z kt�rego pobra�e� pakiet ze �r�d�ami oraz informacje o prawach autorskich
  i licencji. Musisz do��czy� kompletn� tre�� licencji, chyba �e jest to jedna
  z popularnych licencji wolnego oprogramowania, takich jak GNU GPL czy LGPL,
  BSD lub licencja Artystyczna. W takiej sytuacji mo�esz po prostu odes�a� do
  odpowiedniego pliku w katalogu /usr/share/common-licenses/, kt�ry wyst�puje
  w ka�dym systemie Debian.

  <p>Poni�ej pokazano w skr�cie, jak powinien wygl�da� plik `copyright' dla
  programu gentoo:

  <p><example>
  1  This package was debianized by Josip Rodin &lt;joy-mg@debian.org&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  either version 2 of the License,
  13 or (at your option) any later version.
  14 On Debian systems, the complete text of the GNU General Public
  15 License can be found in the file `/usr/share/common-licenses/GPL-2'.
  </example>
  (numery linii zosta�y dodane przeze mnie)

  <p>Prosimy post�powa� zgodnie z plikiem HOWTO z listy debian-devel-announce:
  <url id="&copyright-howto;">.

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

  <p>Jest plikiem wymaganym, kt�rego format opisano w Polityce
  Debiana (sekcja 4.4 "debian/changelog"). Format ten jest wykorzystywany przez
  dpkg i inne programy do uzyskiwania informacji o numerze wersji, numerze rewizji
  (poprawki), dystrybucji i pilno�ci Twojego pakietu.

  <p>Jest on tak�e wa�ny dla Ciebie, poniewa� dobrze jest mie� udokumentowane
  wszystkie zmiany, kt�rych dokona�e�. Pomaga to ludziom pobieraj�cym Tw�j pakiet
  zorientowa� si�, czy nie zrobi�e� z pakietem czego�, o czym powinni oni
  wiedzie�. Zmiany te zostan� zapisane do pliku
  `/usr/share/doc/gentoo/changelog.Debian.gz' w pakiecie binarnym.

  <p>Program dh_make r�wnie� tworzy ten plik, kt�rego zawarto�� wygl�da mniej
  wi�cej tak:

  <p><example>
  1  gentoo (0.9.12-1) unstable; urgency=low
  2
  3   * Initial Release.
  4
  5  -- Josip Rodin &lt;joy-mg@debian.org&gt;  Wed, 11 Nov 1998 21:02:14 +0100
  6
  </example>
  (numery linii zosta�y dodane przeze mnie)

  <p>Linia 1. zawiera nazw� pakietu, wersj�, dystrybucj� i pilno��.
  Nazwa musi si� zgadza� z nazw� pakietu �r�d�owego, dystrybucja powinna mie�
  warto�� albo `unstable' (albo nawet `experimental'), za� pilno�ci nie
  powiniene� zmienia� na warto�� wi�ksz� ni� `low' (niska). :-)

  <p>Linie 3-5 to wpisy dziennika, w kt�rym dokumentujesz zmiany dokonane w
  ka�dej z poprawek pakietu (ale nie zmiany zewn�trzne - do tego celu s�u�y
  specjalny plik stworzony przez autor�w programu, kt�ry p�niej zainstalujesz
  jako /usr/share/doc/gentoo/changelog.gz). Nowe linie musz� by� umieszczone
  przed znajduj�c� si� na g�rze lini�, kt�ra rozpoczyna si� od gwiazdki (`*').
  Mo�esz to zrobi� przy pomocy <manref name="dch" section="1"> lub u�ywaj�c
  jakiego� edytora tekstu.

  <p>Poprawiony b�dzie wygl�da� jako� tak:

  <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;joy-mg@debian.org&gt; Wed, 11 Nov 1998 21:02:14 +0100
  8
  </example>
  (numery linii zosta�y dodane przeze mnie)

  <p>Wi�cej na temat pliku `changelog' bedziesz m�g� przeczyta� dalej
  w rozdziale <ref id="update">.

  <sect id="rules">Plik `rules'

  <p>Teraz musimy si� przyjrze� regu�om (ang. rules), kt�rych u�yje program
  <manref name="dpkg-buildpackage" section="1"> do zbudowania naszego pakietu.
  Plik ten jest w�a�ciwie odmian� pliku Makefile, lecz r�ni si� od tego/tych
  z programu �r�d�owego. Inaczej ni� pozosta�e pliki znajduj�ce si�
  w katalogu debian/, ma on ustawiony atrybut wykonywalno�ci.

  <p>Ka�dy plik `rules', tak samo jak inne pliki Makefile, zawiera r�ne regu�y,
  kt�re okre�laj�, jak post�powa� ze �r�d�em. Ka�da regu�a z kolei zawiera
  cele (targets), czyli nazwy plik�w b�d� akcji, kt�re powinny by� stworzone
  lub wykonane (na przyk�ad `build:' lub `install:'). Regu�y, kt�re chcesz
  wykona� s� wywo�ywane z linii komend jako argumenty polece� (dla przyk�adu
  `./debian/rules build` albo `make -f rules install`). Po nazwie celu mo�esz
  wymieni� zale�no��, program lub plik, kt�ry od tej regu�y zale�y. W kolejnych
  liniach mo�na wymieni� dowoln� liczb� komend, rozpoczynaj�c je od znaku
  &lt;tab&gt;. Nowa regu�a zaczyna si� od deklaracji w pierwszej kolumnie.
  Puste linie i linie rozpoczynaj�ce si� od znaku `#' (hash) s� traktowane
  jako komentarz i ignorowane.

  <p>Pewnie jeste� teraz nieco zagubiony, ale wszystko stanie si� jasne w
  czasie przegl�dania pliku `rules', kt�ry domy�lnie jest tworzony przez
  program dh_make. Powiniene� te� przeczyta� o programie `make' (poprzez
  `info make'), aby uzyska� wi�cej informacji na jego temat.

  <p>Wa�ne jest, aby pami�ta�, �e plik `rules' tworzony przez dh_make jest
  tylko propozycj�. Dzia�a on z prostymi pakietami, ale w przypadku
  bardziej skomplikowanych nie obawiaj si� go modyfikowa�, zale�nie od
  potrzeb. Jedyn� rzecz�, kt�rej nie mo�esz zmienia� to nazwy regu�, gdy�
  u�ywaj� ich wszystkie narz�dzia, zgodnie z wytycznymi zawartymi
  w Polityce Debiana.

  <p>Poni�ej pokazano przyk�adowy domy�lny plik debian/rules, kt�ry zosta�
  wygenerowany przez program dh_make:

  <p><example>
&makefile;
  </example>
  (numery linii zosta�y dodane przeze mnie; w rzeczywistym pliku
  <file>debian/rules</file> wiod�ce bia�e znaki s� tabulatorami)

  <p>Z liniami takimi jak linia nr 1 prawdopodobnie spotka�e� si� ju�
  w skryptach pow�oki albo Perla. M�wi ona systemowi operacyjnemu, �e plik
  ten ma by� przetwarzany przez program `/usr/bin/make'.

  <p>Znaczenie zmiennych DH_*, kt�rych u�yto w liniach 8. i 9. powinno by�
  zrozumia�e dzi�ki kr�tkiemu opisowi. Wi�cej informacji na temat zmiennej
  DH_COMPAT znajdziesz w sekcji "Debhelper compatibility levels" na stronie
  podr�cznika programu <manref name="debhelper" section="1">.

  <p>Linie 11-16 to szablon obs�uguj�cy parametry DEB_BUILD_OPTIONS,
  kt�re opisano w Polityce Debiana (sekcja 10.1 "Binaries"). Po prostu m�wi�
  one, czy w binaria maj� by� wbudowane symbole s�u��ce do odpluskwiania
  (ang. debugging) i czy powinny one by� usuni�te przy instalacji. I zn�w:
  to jest tylko szablon, wskaz�wka, kt�r� powinine� uwzgl�dni�. Powiniene�
  sprawdzi�, w jaki spos�b autor programu obs�uguje w��czanie symboli
  odpluskwiaj�cych oraz usuwanie ich po instalacji i zaimplementowa� to samemu.

  <p>Zwykle mo�esz nakaza� kompilatorowi gcc u�ycie opcji "-g" przy pomocy
  zmiennej CFLAGS. Je�li tak jest w przypadku Twojego pakietu, przeka� warto��
  tej zmiennej przez <em>dodanie</em> �a�cucha <tt>CFLAGS="$(CFLAGS)"</tt> do
  wywo�ania $(MAKE) w regule `build' (zobacz poni�ej). Je�li za� Tw�j pakiet
  u�ywa skryptu konfiguracyjnego autoconfa, to mo�esz zmodyfikowa� konfiguracj�
  przez <em>poprzedzenie</em> powy�szym �a�cuchem wywo�ania skryptu ./configure
  w regule `build'.

  <p>Je�li chodzi o pozbywanie si� symboli odpluskwiaj�cych, to programy s�
  na og� tak skonfigurowane, �e instaluj� si� z nimi i cz�sto nie maj� opcji
  umo�liwiaj�cej zmian� tego stanu. Na szcz�cie mamy program
  <manref name="dh_strip" section="1">, kt�ry wykryje, gdy ustawiona jest
  opcja DEB_BUILD_OPTIONS=nostrip i zako�czy swe dzia�anie.

  <p>Linie 18-26 opisuj� regu�� `build' (i jej regu�� potomn� `build-stamp'),
  kt�ra uruchamia program make na oryginalnym pliku Makefile aplikacji,
  aby skompilowa� program. Je�li pakiet u�ywa narz�dzi konfiguruj�cych
  GNU do zbudowania binari�w, koniecznie przeczytaj <file>&autotools-dev;</file>.
  O zakomentowanym przyk�adzie docbook-to-man opowiemy dalej w
  rozdziale <ref id="manpage">.

  <p>Regu�a `clean' zawarta w liniach 28-36 czy�ci wszystkie
  niepotrzebne pliki binarne i automatycznie wygenerowane rzeczy,
  kt�re zosta�y po zbudowaniu pakietu. Regu�a ta musi dzia�a� przez ca�y czas
  (nawet, gdy drzewo ze �r�d�ami <em>jest</em> wyczyszczone!), zatem prosimy
  u�ywa� opcji wymuszaj�cej (na przyk�ad dla polecenia rm jest ni� opcja `-f')
  lub ignoruj�cej zwracane warto�ci (b��dy) poprzez zastosowanie `-' przed
  poleceniem.

  <p>Regu�a `install', kt�ra odpowiada za proces instalacji, rozpoczyna si�
  w linii nr 38. Uruchamia ona po prostu regu�� `install' z pliku Makefile
  programu i instaluje go w katalogu <tt>$(CURDIR)/debian/gentoo</tt> -
  oto dlaczego okre�lili�my zmienn� $(DESTDIR) jako katalog bazowy
  instalacji w pliku Makefile programu gentoo.

  <p>Jak t�umaczy komentarz, regu�a `binary-indep', kt�ra znajduje si�
  w linii 48., jest u�ywana do budowania pakiet�w niezale�nych od architektury
  procesora. Je�li nie mamy takiego pakietu, �adna akcja nie zostanie
  przedsi�wzi�ta.

  <p>Nast�pn� regu�� jest `binary-arch' znajduj�ca si� w liniach 52-79.
  Uruchamia ona kilka ma�ych program�w narz�dziowych z pakietu debhelper,
  kt�re wykonuj� r�ne operacje z plikami pakietu, aby uczyni� go
  zgodnym z Polityk� Debiana.

  <p>Gdy okre�li�e� architektur� Twojego pakietu jako `Architecture: all',
  b�dziesz musia� umie�ci� w tej regule wszystkie komendy do budowania
  pakietu i pozostawi� pust� regu�� `binary-arch'.

  <p>Nazwy program�w wchodz�cych w sk�ad pakietu debhelper rozpoczynaj� si�
  od dh_. Reszta jest opisem tego, co dane narz�dzie robi. Mimo, �e do�� dobrze
  same si� one obja�niaj�, poni�ej zamieszczono dodatkowe opisy:

  <list>

  <item><manref name="dh_testdir" section="1"> sprawdza, czy jeste� we w�a�ciwym
      katalogu (tzn. na samej g�rze katalogu ze �r�d�ami)
  <item><manref name="dh_testroot" section="1"> sprawdza, czy masz uprawnienia
      administratora systemu, kt�rych wymagaj� cele `binary-arch',
      `binary-indep' i `clean'
  <item><manref name="dh_installman" section="1"> kopiuje strony podr�cznika
      systemowego we w�a�ciwe miejsce w katalogu przeznaczenia. Musisz tylko
      powiedzie�, gdzie one si� znajduj�, wzgl�dem g��wnego katalagu ze
      �r�d�ami
  <item><manref name="dh_strip" section="1"> usuwa z plik�w wykonywalnych
      i bibliotek nag��wki s�u��ce do odpluskwiania, aby uczyni� je
      mniejszymi
  <item><manref name="dh_compress" section="1"> pakuje programem
      <manref name="gzip" section="1"> strony podr�cznika i dokumentacj�
      wi�ksz� ni� 4 kB
  <item><manref name="dh_installdeb" section="1"> kopiuje pliki zwi�zane
      z pakietem (na przyk�ad skrypty opiekuna) do katalogu
      <file>debian/gentoo/DEBIAN</file>
  <item><manref name="dh_shlibdeps" section="1"> wylicza zale�no�ci bibliotek
      i plik�w wykonywalnych od bibliotek wsp�dzielonych
  <item><manref name="dh_gencontrol" section="1"> instaluje finaln� wersj�
      pliku `control' w katalogu <file>debian/gentoo/DEBIAN</file>
  <item><manref name="dh_md5sums" section="1"> generuje sumy kontrolne MD5 dla
      ka�dego pliku zawartego w pakiecie
  </list>

  <p>Pe�niejsze informacje na temat dzia�ania ka�dego ze skrypt�w dh_* i ich
  parametr�w wywo�ania znajdziesz na odpowiednich stronach podr�cznika.
  Opr�cz powy�szych istniej� r�wnie� inne u�yteczne skrypty dh_*,
  kt�re nie zosta�y tu wspomniane. Je�li s� potrzebne, czytaj dokumentacj�
  do pakietu debhelper.

  <p>W sekcji `binary-arch' powiniene� wykomentowa� lub usun�� linie z tymi
  skryptami dh_*, kt�rych nie chcesz wywo�ywa�. Dla pakietu gentoo
  wykomentowa�em wywo�anie skrypt�w examples, cron, init, man i info, gdy�
  gentoo ich po prostu nie u�ywa. W linii 68. zamieni�em `ChangeLog'
  na `FIXES', poniewa� jest to rzeczywista nazwa autorskiego pliku z
  dziennikiem zmian.

  <p>Dwie ostatnie linie (i pozosta�e nie opisane tutaj) s� mniej lub
  bardziej niezb�dne. Na ich temat mo�esz poczyta� na stronie podr�cznika do
  programu make oraz w Polityce Debiana. W tym momencie s� na tyle
  ma�o wa�ne, �e nie b�dziemy ich opisywa�.

  <!-- -------------------------------------------------------------------------->

  <chapt id="dother">Inne pliki z katalogu debian/

  <p>Jak zobaczysz, w katalogu debian/ znajduj� si� jeszcze r�ne inne pliki,
  wi�kszo�� z nich ko�czy si� przyrostkiem `.ex', oznaczaj�cym, �e s� to
  przyk�ady. Przyjrzyj si� im wszystkim. Je�li chcesz lub musisz u�y�
  kt�rej� z ich funkcjonalno�ci, to:

  <list>
    <item>zajrzyj do odpowiedniej dokumentacji (wskaz�wka: podr�cznik Polityki
      Debiana)
    <item>je�li to konieczne, zmodyfikuj zawarto�� plik�w wed�ug potrzeb
    <item>usu� z ich nazwy przyrostek `.ex', je�li taki posiadaj�
    <item>usu� z ich nazwy przedrostek `ex.', je�li taki posiadaj�
    <item>zmodyfikuj plik `rules' wed�ug potrzeb
  </list>

  <p>Niekt�re z tych plik�w, najcz�ciej u�ywane, s� obja�nione w poni�szych
  sekcjach.

  <sect id="readme">Plik `README.Debian'

  <p>W tym pliku powinny by� udokumentowane dodatkowe szczeg�y lub
  rozbie�no�ci pomi�dzy oryginalnym pakietem i Twoj� "zdebianizowan�" wersj�.

  <p>Program dh_make tworzy domy�lny plik README.Debian, kt�ry wygl�da jako� tak:

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

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

   -- Josip Rodin &lt;joy-mg@debian.org&gt;, Wed, 11 Nov 1998 21:02:14 +0100
  </example>

  <p>Poniewa� nie musimy niczego umieszcza� w tym pliku, mo�emy go skasowa�.

  <sect id="conffiles">Plik `conffiles.ex'

  <p>Jedn� z najbardziej irytuj�cych rzeczy zwi�zanych z oprogramowaniem jest
  to, �e po po�wi�ceniu du�ej ilo�ci czasu i wysi�ku na dostosowanie programu,
  jego aktualizacja wszystko "zadeptuje". Debian rozwi�za� ten problem przez
  znakowanie plik�w konfiguracyjnych. Zatem je�li uaktualniasz program do
  nowszej wersji, to zostaniesz zapytany o to, czy chcesz zachowa� swoj� star�
  konfiguracj�, czy nie.

  <p>Aby to uzyska�, musisz wprowadzi� pe�n� �cie�k� do ka�dego pliku
  konfiguracyjnego (zwykle znajduj� si� w katalogu /etc), jednego w
  ka�dej linii, w pliku nazwanym <tt/conffiles/. Program gentoo ma jeden
  plik konfiguracyjny, /etc/gentoorc, zatem podamy �cie�k� do
  niego w pliku <tt/conffiles/.

  <p>Je�li Tw�j program u�ywa plik�w konfiguracyjnych, ale sam zmienia ich
  zawarto��, to najlepiej b�dzie nie umieszcza� ich w pliku <tt/conffiles/,
  poniewa� program dpkg b�dzie za ka�dym razem prosi� u�ytkownik�w o
  weryfikacj� zmian.

  <p>Je�li program, kt�ry pakujesz, wymaga od ka�dego u�ytkownika
  modyfikacji pliku konfiguracyjnego, aby w og�le zadzia�a�, to r�wnie�
  powiniene� zrezygnowa� z umieszczania go w pliku <tt>conffiles</tt>.

  <p>Przyk�adowe pliki konfiguracyjne mo�esz znale�� w `skryptach opiekuna
  pakietu'. Wi�cej szczeg��w na ich temat zamieszczono w sekcji
  <ref id="maintscripts">.

  <p>Je�li Tw�j program nie posiada plik�w konfiguracyjnych, to mo�esz
  bez obaw wykasowa� plik <tt/conffiles/ z katalogu debian/.

  <sect id="crond">Plik `cron.d.ex'

  <p>Je�li Tw�j pakiet do prawid�owego dzia�ania wymaga regularnie wykonywanych
  zada�, to mo�esz do tego celu wykorzysta� w�a�nie plik <tt/cron.d/.

  <p>Zwr�� uwag�, �e to nie obejmuje zagadnie� zwi�zanych z rotacj� plik�w
  log�w. Wi�cej informacji na ten temat znajdziesz na stronach podr�cznika
  <manref name="dh_installlogrotate" section="1"> i <manref name="logrotate"
  section="8">.

  <p>Je�li nie potrzebujesz tego pliku, usu� go.

  <sect id="dirs">Plik `dirs'

  <p>Plik ten okre�la katalogi, kt�re s� potrzebne, ale kt�rych normalna
  procedura instalacyjna (make install) nie tworzy.

  <p>Domy�lnie plik ten wygl�da nast�puj�co:

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

  <p>Zwr�� uwag�, i� przed nazwami katalog�w nie wyst�puj� znaki uko�nik�w
  (`/'). Normalnie zmieniliby�my go w nast�puj�cy spos�b:

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

  <p>ale poniewa� katalogi te s� tworzone przez Makefile, to nie
  potrzebujemy pliku `dirs' i mo�emy go usun��.

  <sect id="docs">Plik `docs'

  <p>Ten plik okre�la nazwy plik�w z dokumentacj�, kt�r� program dh_installdocs
  zainstaluje w tymczasowym katalogu.

  <p>Domy�lnie obejmuje to tak�e pliki istniej�ce ju� w katalogu g��wnym ze �r�d�ami
  programu, takie jak "BUGS", "README*", "TODO" itp.

  <p>Dla programu gentoo do��czy�em r�wnie� inne pliki:

  <p><example>
  BUGS
  CONFIG-CHANGES
  CREDITS
  ONEWS
  README
  README.gtkrc
  TODO
  </example>

  <p>Mo�emy te� usun�� ten plik i, zamiast podawa� list� plik�w, u�y�
  ich nazw jako argument�w wej�ciowych dla programu <tt/dh_installdocs/
  wywo�ywanego w pliku <tt/rules/:

  <p><example>
        dh_installdocs BUGS CONFIG-CHANGES CREDITS ONEWS README \
                       README.gtkrc TODO
  </example>

  <p>Mo�e si� tak zdarzy�, �e nie b�dziesz mie� �adnego z tych plik�w w �r�d�ach
  Twojego pakietu. W takim przypadku mo�esz bezpiecznie usun�� plik <tt/docs/.
  Nie usuwaj jednak wywo�ania programu <tt/dh_installdocs/ z pliku <tt/rules/,
  poniewa� jest on u�ywany r�wnie� do instalacji pliku <tt/copyright/ i
  innych rzeczy.

  <sect id="emacsen">Plik `emacsen-*.ex'

  <p>Je�li Tw�j pakiet zawiera pliki Emacsa, kt�re mog� by� skompilowane do
  kodu bajtowego w czasie instalacji, to mo�esz u�y� tych plik�w w�a�nie w tym
  celu.

  <p>Pliki te s� instalowane w katalogu tymczasowym przez program
  <manref name="dh_installemacsen" section="1">, zatem je�li chcesz go wywo�a�,
  nie zapomnij odkomentowa� odpowiedniej linii w pliku <tt/rules/.

  <p>Je�li za� nie potrzebujesz tych plik�w, mo�esz je usun��.

  <sect id="initd">Plik `init.d.ex'

  <p>Je�li Tw�j pakiet jest demonem, kt�ry musi by� uruchamiany w czasie startu
  systemu, to znaczy, �e nie pos�ucha�e� moich zalece� we wst�pie do tego
  podr�cznika, nieprawda�? :-)

  <p>Plik ten jest prostym szablonem skryptu umieszczanego w katalogu
  <file>/etc/init.d/</file>, zatem b�dziesz musia� znacznie go przerobi�.
  Zostanie on zainstalowany w katalogu tymczasowym przez program
  <manref name="dh_installinit" section="1">.

  <p>Je�li nie potrzebujesz tego pliku, usu� go.

  <sect id="manpage">Pliki `manpage.1.ex', `manpage.sgml.ex'

  <p>Tw�j program(y) powinien mie� stron� podr�cznika systemowego.
  Je�li jeszcze jej nie ma, to mo�esz u�y� tych plik�w jako szablon�w.

  <p>Strony podr�cznika s� zwykle napisane w formacie <manref name="nroff"
  section="1">. W formacie tym napisano w�a�nie przyk�adowy plik
  <tt/manpage.1.ex/. Zobacz stron� podr�cznika programu <manref name="man"
  section="7">, jest tam kr�tki opis, jak poprawia� tego typu pliki.

  <p>Je�li zamiast formatu nroff wolisz pisa� dokumenty w formacie SGML,
  to mo�esz wykorzysta� szablon <tt/manpage.sgml.ex/. W takim przypadku
  musisz:

  <list>
    <item>zainstalowa� pakiet <package/docbook-to-man/
    <item>dopisa� <tt/docbook-to-man/ do linii <tt/Build-Depends/ w pliku
          <tt/control/
    <item>usun�� znak komentarza przed wywo�aniem programu docbook-to-man
      w regule `build' pliku <tt/rules/
  </list>

  <p>Pami�taj o zmianie nazwy pliku na co� w stylu <tt/gentoo.sgml/!

  <p>Docelowa nazwa pliku ze stron� podr�cznika systemowego powinna zawiera� nazw�
  programu, kt�ry opisuje, zatem zmie� j� z "manpage" na "gentoo".
  Nazwa tego pliku zawiera tak�e przyrostek ".1", kt�ry m�wi, �e jest to
  strona z sekcji polece� u�ytkownika. Upewnij si�, do kt�rej sekcji powinna
  nale�e� strona Twojego pakietu. Poni�ej zamieszczono kr�tk� list� sekcji
  podr�cznika:

  <p><example>
  Sekcja |        Opis          |          Uwagi
     1    Polecenia u�ytkownika   Wykonywalne komendy lub skrypty.
     2    Wywo�ania systemowe     Funkcje j�dra systemu.
     3    Wywo�ania biblioteczne  Funkcje bibliotek systemowych.
     4    Pliki specjalne         Zwykle umieszczone w katalogu /dev.
     5    Formaty plik�w          Na przyk�ad format pliku /etc/passwd.
     6    Gry                     Lub inne programy rozrywkowe.
     7    Pakiety makr            Takie jak makra programu man.
     8    Administracja systemem  Programy zwykle uruchamiane tylko przez administratora.
     9    Procedury j�dra         Niestandardowe wywo�ania i procedury wewn�trzne.
  </example>

  <p>Zatem podr�cznik programu gentoo powinien nazywa� si� <tt/gentoo.1/.
  Poniewa� w oryginalnych �r�d�ach nie by�o
  strony podr�cznika `gentoo.1', napisa�em j� sam, u�ywaj�c informacji
  znalezionych w przyk�adach i dokumentacji do��czonej do �r�de�.

  <sect id="menu">Plik `menu.ex'

  <p>U�ytkownicy systemu X Window zwykle pos�uguj� si� menad�erami okien,
  umo�liwiaj�cymi uruchamianie program�w poprzez rozwijalne menu, kt�re mo�na
  dostosowywa� do w�asnych potrzeb. Je�li zainstalowali oni pakiet
  <package/menu/, to zostanie utworzony zestaw menu s�u��cy do
  uruchamiania program�w w systemie.

  <p>Poni�ej pokazano plik <tt/menu.ex/, domy�lnie utworzony przez program
  dh_make:

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

  <p>Pierwszym polem po znaku dwukropka jest pole "needs", kt�re okre�la,
  jakiego rodzaju interfejsu wymaga program. Zmie� je na jedn� z wymienionych
  mo�liwo�ci, na przyk�ad "text" lub "X11".

  <p>Nast�pnym polem jest "section", kt�re m�wi, w jakim menu i podmenu powinien
  znale�� si� wpis z programem gentoo. Aktualn� list� sekcji mo�na znale�� na
  stronie <file>/usr/share/doc/debian-policy/menu-policy.html/ch2.html#s2.1</file>.

  <p>Pole "title" to nazwa programu. Je�li chcesz, mo�esz rozpocz��
  j� od wielkiej litery. Powinna by� kr�tka.

  <p>Wreszcie pole "command" to nazwa polecenia, kt�re uruchamia program.

  <p>Po zmianach wpis do menu wygl�da nast�puj�co:

  <p><example>
  ?package(gentoo): needs="X11" section="Apps/Tools" title="Gentoo" command="gentoo"
  </example>

  <p>Mo�esz r�wnie� doda� inne pola, na przyk�ad "longtitle", "icon",
  "hints" itd. Wi�cej informacji mo�esz znale�� na stronach podr�cznika
  <manref name="menufile" section="5">, <manref name="update-menus"
  section="1"> i w katalogu /usr/share/doc/debian-policy/menu-policy.html/.

  <sect id="watch">Plik `watch.ex'

  <p>Plik ten jest u�ywany do konfigurowania program�w <manref name="uscan"
  section="1"> i <manref name="uupdate" section="1"> (zawartych w pakiecie
  <package/devscripts/). S� one u�ywane do sprawdzania strony internetowej,
  z kt�rej pobra�e� �r�d�a dla swojego pakietu.

  <p>W tym pliku umie�ci�em:

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

  <p>Wskaz�wka: po��cz si� z internetem i spr�buj uruchomi� program "uscan"
  w katalogu, w kt�rym stworzy�e� plik `watch'. I czytaj strony
  podr�cznik�w! :)

  <sect id="doc-base">Plik `ex.package.doc-base'

  <p>Je�li Tw�j pakiet ma dokumentacj� w postaci innej ni� strony podr�cznika
  i dokumentacja przegl�dana za pomoc� programu "info", to powiniene� u�y�
  pliku `<package/doc-base/', aby j� zarejestrowa�. U�ytkownik b�dzie
  m�g� j� wtedy znale��, na przyk�ad za pomoc� <manref name="dhelp" section="1">,
  <manref name="dwww" section="1"> lub <manref name="doccentral" section="1">.

  <p>Na og� obejmuje to pliki HTML, PS i PDF umieszczone w katalogu
  <file>/usr/share/doc/nazwa_pakietu/</file>.

  <p>Plik <tt>gentoo.doc-base</tt> dla programu gentoo wygl�da nast�puj�co:

  <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>Informacje na temat formatu tego pliku znajdziesz na stronie podr�cznika
  <manref name="install-docs" section="8"> oraz w podr�czniku <package/doc-base/
  (katalog <file>/usr/share/doc/doc-base/doc-base.html/</file>).

  <p>Wi�cej szczeg��w nt. instalowania dokumentacji w sekcji <ref id="destdir">.

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

  <p>Pliki te s� nazywane skryptami opiekuna. Umieszczone s� one w obszarze
  kontrolnym pakietu i uruchamiane przez program <prgn/dpkg/, gdy Tw�j pakiet
  jest instalowany, uaktualniany do nowszej wersji lub usuwany.

  <p>Na razie powiniene� unika� r�cznych modyfikacji tych skrypt�w,
  poniewa� cz�sto s� one skomplikowane. Wi�cej informacji znajdziesz
  w podr�czniku Polityki Debiana, w rozdziale 6. Zerknij tak�e na przyk�adowe
  pliki wygenerowane przez program dh_make.

  <!-- -------------------------------------------------------------------------->

  <chapt id="build">Budowanie pakietu

  <p>Teraz ju� powinni�my by� gotowi do zbudowania pakietu.

  <sect id="completebuild">Ca�kowita przebudowa

  <p>Wejd� do katalogu g��wnego programu i wydaj w nim polecenie:

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

  <p>Wykona ono wszystko, to znaczy:
  <list>
    <item>wyczy�ci drzewo �r�de� programu (debian/rules clean) u�ywaj�c programu <prgn/fakeroot/
    <item>zbuduje pakiet �r�d�owy (dpkg-source -b)
    <item>zbuduje program (debian/rules build)
    <item>zbuduje pakiet binarny (debian/rules binary), u�ywaj�c programu
      <prgn/fakeroot/
    <item>podpisze �r�d�owy plik <tt/.dsc/, u�ywaj�c programu <prgn/gnupg/
    <item>utworzy i podpisze umieszczany w archiwum Debiana plik <tt/.changes/
      przy pomocy program�w <prgn/dpkg-genchanges/ i <prgn/gnupg/
  </list>

  <p>B�dziesz musia� tylko dwukrotnie wprowadzi� has�o do Twojego prywatnego
  klucza GPG.

  <p>Po zako�czeniu procesu zobaczysz nast�puj�ce pliki w katalogu nadrz�dnym
  (<tt>~/gentoo/</tt>):

  <p><list>
  <item><em>gentoo_0.9.12.orig.tar.gz</em>

  <p>To archiwum z oryginalnym kodem �r�d�owym programu. Jego nazwa zosta�a
  zmieniona w powy�szy spos�b, aby zachowa� standard Debiana. Zwr�� uwag�,
  �e plik ten zosta� utworzony przy u�yciu opcji `-f' przez program
  <prgn/dh_make/, gdy na pocz�tku go uruchomili�my.

  <item><em>gentoo_0.9.12-1.dsc</em>

  <p>To jest streszczenie zawarto�ci kodu �r�d�owego. Plik ten jest
  generowany na podstawie pliku `control' i u�ywany w czasie rozpakowywania
  �r�d�a przez program <manref name="dpkg-source" section="1">. Jest on
  podpisany cyfrowo, aby inni mogli by� pewni, �e jest naprawd� Tw�j.

  <item><em>gentoo_0.9.12-1.diff.gz</em>

  <p>Ten plik jest skompresowany i zawiera wszystkie zmiany, kt�rych dokona�e�
  w oryginalnym kodzie �r�d�owym. Zmiany te s� zapisane w formacie znanym jako
  "unified diff". Plik jest utworzony i u�ywany przez program
  <manref name="dpkg-source" section="1">. Uwaga: je�li nie nazwa�e�
  oryginalnego archiwum ze �r�d�ami programu w spos�b: nazwapakietu_wersja.orig.tar.gz,
  to program <prgn/dpkg-source/ nie wygeneruje poprawnego pliku .diff.gz!

  <p>Gdyby kto� jeszcze chcia� ponownie utworzy� Tw�j pakiet zaczynaj�c
  procedur� od pocz�tku, to mo�e �atwo to zrobi� u�ywaj�c trzech
  powy�szych plik�w. Procedura post�powania w takich przypadkach jest wr�cz
  banalna: po prostu nale�y gdzie� skopiowa� te trzy pliki i wyda� komend�
  <tt>dpkg-source -x gentoo_0.9.12-1.dsc</tt>.

  <item><em>gentoo_0.9.12-1_i386.deb</em>

  <p>To kompletny pakiet binarny. Mo�esz u�y� programu <prgn/dpkg/, aby
  zainstalowa� go lub usun�� w taki sam spos�b, jak ka�dy inny pakiet.

  <item><em>gentoo_0.9.12-1_i386.changes</em>

  <p>Plik ten opisuje wszystkie zmiany dokonane w obecnej poprawce pakietu.
  U�ywaj� go programy obs�ugi archiw�w FTP Debiana do zainstalowania
  pakiet�w binarnych i �r�d�owych. Jest on cz�ciowo generowany z plik�w
  `changelog' i .dsc. Plik ten jest podpisany cyfrowo, aby inni
  mogli by� pewni, �e jest naprawd� Tw�j.

  <p>W czasie, gdy b�dziesz si� zajmowa� pakietem, zmieni si� pewnie jego
  dzia�anie i dodane zostan� nowe funkcjonalno�ci. Ludzie pobieraj�cy Tw�j
  pakiet mog� w tym pliku szybko zobaczy�, co si� zmieni�o.
  Programy zarz�dzaj�ce archiwum Debiana wy�l� r�wnie� zawarto�� tego pliku
  na list� dyskusyjn� debian-devel-changes.
  </list>

  <p>D�ugie �a�cuchy liczb w plikach .dsc i .changes to sumy kontrolne MD5
  wspomnianych plik�w. Osoby pobieraj�ce Twoje pliki mog� sprawdzi� je
  u�ywaj�c programu <manref name="md5sum" section="1"> i je�li sumy nie b�d�
  si� zgadza�, b�d� wiedzie�, �e plik jest uszkodzony lub zosta� przez kogo�
  zmieniony.

  <sect id="quickrebuild">Szybka przebudowa

  <p>Gdy masz du�y pakiet, to mo�esz nie chcie� budowa� go od nowa za ka�dym
  razem, gdy zmienisz jaki� szczeg� w pliku <file>debian/rules</file>.
  Dla cel�w testowych mo�esz stworzy� plik .deb bez przebudowywania
  �r�de� programu:

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

  <p>Gdy ju� zako�czy�e� szlifowanie Twojego pakietu, pami�taj o
  przebudowaniu go zgodnie z powy�sz�, pe�n� procedur�. Mo�e Ci si� nie uda�
  umie�ci� go w archiwum Debiana, gdy pr�bujesz zamie�ci� tam pliki .deb
  zbudowane w skr�cony spos�b.

  <sect id="debuild">Polecenie <prgn>debuild</prgn>

  <p>Mo�esz zautomatyzowa� proces budowania pakietu za pomoc� polecenia
  <prgn>debuild</prgn>. Zobacz <manref name="debuild" section="1">.

  <p>Mo�na skonfigurowa� dzia�anie programu debuild poprzez pliki
  <file>/etc/devscripts.conf</file> lub <file>~/.devscripts</file>.
  Chcia�bym zasugerowa� co najmniej:

  <p><example>
  DEBSIGN_KEYID="Your_GPG_keyID"
  DEBUILD_DPKG_BUILDPACKAGE_OPTS="-i -ICVS -I.svn"
  </example>
  W ten spos�b mo�esz budowa� pakiet zawsze ze swoim kluczem GPG i bez
  niepotrzebnych komponenet�w (zw�asza pomocne przy sponsoringu). Przyk�adowo
  czyszczenie �r�de� i przebudowa pakietu z konta u�ytkownika jest tak
  proste:

  <p><example>
  debuild clean
  debuild
  </example>

  <sect id="dpatch">Systemy <prgn>dpatch</prgn> i <prgn>quilt</prgn>

  <p>Proste u�ycie <prgn>dh_make</prgn> i <prgn>dpkg-buildpackage</prgn>
  spowoduje utworzenie pojedynczego du�ego pliku <file>diff.gz</file>,
  zawieraj�cego pliki obs�uguj�ce pakiet w katalogu <file>debian/</file>
  i plik�w �at do �r�de�. Taki pakiet jest uci��liwy podczas p�niejszego
  sprawdzania dla kogo�, kto powinien zrozumie� wszystkie wprowadzane
  do �r�de� zmiany. Nie jest to zbyt przyjemne
  <footnote>
  Je�li nie jeste� jeszcze Deweloperem Debiana i prosisz swojego sponsora
  o wgranie pakietu po jego sprawdzeniu, powiniene� przygotowa� pakiet
  w spos�b mo�liwie czytelny.
  </footnote>.

  <p>Zaproponowano r�ne matody obs�ugiwania �at i u�ywa si� ich w pakietach
  Debiana. Systemy <prgn>dpatch</prgn> i <prgn>quilt</prgn> s� najprostszymi z nich.
  Z innych wymienimy dbs, cdbs itd.

  <p>Pakiet, kt�ry zosta� poprawnie zbudowany za pomoc� systemu
  <prgn>dpatch</prgn> lub <prgn>quilt</prgn>, posiada dobrze udokumentowane poprawki w �r�d�ach
  jako zbi�r plik�w �at -pl z nag��wkiem w katalogu <file>debian/patches/</file>
  i niezmienionym drzewem �r�de� poza katalogiem <file>debian/</file>.
  Kiedy prosisz sponsora o wgranie Twojego pakietu, tego rodzaju wyra�ne
  rozdzielenie i udokumentowanie Twoich zmian jest bardzo wa�ne dla
  sprawnego przejrzenia ich przez sponsora. U�ycie <prgn>dpatch</prgn>
  oraz <prgn>quilt</prgn>
  jest opisane w podr�cznikach <manref section="1" name="dpatch">,
  <manref section="1" name="dpatch-edit-patch">
  i <manref section="1" name="quilt">.
  Oba programy udost�pniaj� wygodne do umieszczenia w
  <file>debian/rules</file> pliki <file>/usr/share/dpatch/dpatch.make</file> i
  <file>/usr/share/quilt/quilt.make</file>.

  <p>Kiedy kto� (w��czaj�c Ciebie) chce wdro�y� poprawki do �r�de�,
  modyfikacja pakietu jest ca�kiem prosta:

  <list compact>
    <item>Wyedytuj �at�, tak aby otrzyma� plik -pl jako poprawk� do �r�de�.
    <item>W przypadku <prgn>dpatch</prgn> dodaj nag��wek poleceniem `<tt>dpatch patch-template</tt>'.
    <item>Przenie� nag��wek do katalogu <file>debian/patches</file>.
    <item>Dodaj nazwy plik�w do pliku <file>debian/patches/00list</file>
	(dla <prgn>dpatch</prgn>) lub <file>debian/patches/series</file>
	(dla <prgn>quilt</prgn>).
  </list>

  <p><prgn>dpatch</prgn> posiada te� mo�liwo�� wykonywania poprawek zale�nych
  od architektury za pomoc� makra CPP.

  <sect id="option-sa">Do��czanie <file>orig.tar.gz</file> podczas wgrywania

  <p>Kiedy pierwszy raz wgrywasz pakiet do archiwum, powiniene� za��czy�
  oryginalny plik �r�d�owy <file>orig.tar.gz</file>. Je�li wersja pakietu
  nie jest rewizj� <tt>-0</tt> lub <tt>-1</tt>, musisz wykona� polecenie
  <prgn>dpkg-buildpackage</prgn> z opcj� "<tt>-sa</tt>". Z drugiej strony
  opcja "<tt>-sd</tt>" wymusi wy��czenie oryginalnego �r�d�a
  <file>orig.tar.gz</file>.

  <!-- -------------------------------------------------------------------------->

  <chapt id="checkit">Sprawdzanie pakietu pod k�tem b��d�w

  <sect id="lintians">Pakiety <package>lintian</package>

  <p>Uruchom programy <manref name="lintian" section="1"> podaj�c jako argument
  sw�j plik .changes. Programy ten sprawdzaj� pakiet pod k�tem wielu
  b��d�w wyst�puj�cych podczas pakowania. Robi si� to poleceniami:

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

  <p>Oczywi�cie zast�p nazw� pliku .changes nazw� pliku wygenerowanego dla
  Twojego pakietu. Je�li pojawi� si� informacje o b��dach (linie rozpoczynaj�ce
  si� od "E:"), to przeczytaj ich obja�nienie (linie rozpoczynaj�ce si� od
  "N:"), popraw b��dy i ponownie zbuduj pakiet w spos�b opisany w sekcji
  <ref id="completebuild">. Linie, kt�re zaczynaj� si� od "W:", to ostrze�enia.
  Oczywi�cie powiniene� albo co� poprawi�, albo upewni� si�, �e nie s� wa�ne
  (i w takim przypadku wymusi� na Lintianie ich ignorowanie; wiecej szczeg��w
  znajdziesz w dokumentacji).

  <p>Zwr�� uwag�, �e mo�esz w jednym kroku zbudowa� pakiet za pomoc� programu
  <prgn>dpkg-buildpackage</prgn> i uruchomi� programy <prgn/lintian/
  korzystaj�c z narz�dzia <manref name="debuild" section="1">.

  <sect id="mc">Polecenie <prgn>mc</prgn>

  <p>Mo�esz rozpakowa� zawarto�� pliku <file>*.deb</file> przy pomocy
  polecenia <manref name="dpkg-deb" section="1">. Mo�esz te� zobaczy�
  zawarto�� utworzonego pakietu Debiana u�ywaj�c <manref name="debc" section="1">.

  <p>Mo�na to r�wnie� osi�gn�� w spos�b bardziej intuicyjny za pomoc�
  managera plik�w np. <manref name="mc" section="1">, kt�ry pozwala
  przegl�da� nie tylko zawarto�� pliku <file>*.deb</file>, ale r�wnie�
  pliki <file>*.diff.gz</file> i <file>*.tar.gz</file>.

  <p>Zwr�� przy tym uwag� na zb�dne pliki o zerowej wielko�ci, zar�wno
  binarne, jak i �r�d�owe. Cz�sto nie s� one kasowane w spos�b prawid�owy;
  popraw plik rules, tak aby usun�� t� wad�.

  <p>Porada: `<tt>zgrep ^+++ ../gentoo_0.9.12-1.diff.gz</tt>' poda
  list� Twoich zmian w plikach �r�d�owych, a `<tt>dpkg-deb
  -c gentoo_0.9.12-1_i386.deb</tt>' lub `<tt>debc
  gentoo_0.9.12-1_i386.changes</tt>' - list� plik�w w pakiecie
  binarnym.

  <sect id="debdiff">Polecenie <prgn>debdiff</prgn>

  <p>Mo�esz por�wna� listy plik�w w dw�ch pakietach binarnych Debiana
  za pomoc� polecenia <manref name="debdiff" section="1">. Jest to
  bardzo u�yteczne do sprawdzenia, �e �adne pliki nie zosta�y b��dnie
  przesuni�te lub wykasowane, lub te� nie zosta�y dokonane inne
  niepo��dane zmiany podczas modyfikacji pakietu. Mo�esz sprawdzi�
  ca�� grup� plik�w <file>*.deb</file> przez wywo�anie `<tt>debdiff
  old-package.change new-package.change</tt>'.

  <sect id="interdiff">Polecenie <prgn>interdiff</prgn>

  <p>Mo�esz por�wna� dwa pliki <file>diff.gz</file> za pomoc� polecenia
  <manref name="interdiff" section="1">. Jest to pomocne w celu sprawdzenia,
  czy nie zosta�y przez nieuwag� opiekuna wprowadzone jakie� zmiany do
  plik�w �r�d�owych podczas modyfikacji pakiet�w. Uruchom po prostu
  `<tt>interdiff -z old-package.diff.gz new-package.diff.gz</tt>'.

  <sect id="debi">Polecenie <prgn>debi</prgn>

  <p>Zainstaluj pakiet dla przetestowania go, np. za pomoc� polecenia
  <manref name="debi" section="1">, wywo�anego jako root. Spr�buj zainstalowa�
  i uruchomi� go na innych maszynach, kontroluj�c, czy w czasie instalacji
  lub dzia�ania nie pojawiaj� si� komunikaty o b��dach lub ostrze�enia.

  <sect id="pbuilder">Pakiet <package>pbuilder</package>

  <p>Pakiet <package>pbuilder</package> jest bardzo u�yteczny w przypadku
  weryfikacji zale�no�ci dla program�w uruchamianych w tzw. �rodowisku
  czystej przestrzeni (chroot). Zapewnia on "czyst�" budow� pakietu ze
  �r�de� za pomoc� auto-buildera dla r�nych architektur i zapobiega
  powstawaniu szeregu b��d�w FTBFS (Fails To Build From Source), kt�re
  zawsze nale�� do kategorii RC (release critical - krytyczne dla wydania).
  Zobacz stron� <url id="&buildd-home;"> o debianowym pakiecie auto-builder.

  <p>Najbardziej podstawowym u�yciem pakietu <package>pbuilder</package>
  jest bezpo�rednie wywo�anie polecenia <prgn>pbuilder</prgn> jako root.
  Dla przyk�adu spr�buj wywo�a� poni�sze polecenia w katalogu, gdzie
  znajduj� si� pliki
  <file>.orig.tar.gz</file>, <file>.diff.gz</file> i <file>.dsc</file>:
  <example>
  root # pbuilder create # za drugim razem: pbuilder update
  root # pbuilder build foo.dsc
  </example>
  Nowozbudowany pakiet znajdzie si� w katalogu
  <file>/var/cache/pbuilder/result/</file>, w�a�cicielem b�dzie root.

  <p>Polecenie <prgn>pdebuild</prgn> pomaga wykorzystywa� fukcje
  pakietu <package>pbuilder</package> z konta zwyk�ego u�ytkownika.
  Z katalogu �r�de� pakietu, gdzie w katalogu nadrz�dnym znajduje si�
  plik <file>orig.tar.gz</file>, wykonaj polecenia:
  <example>
  $ sudo pbuilder create # za drugim razem: sudo pbuilder update
  $ pdebuild
  </example>
  Nowozbudowany pakiet znajdzie si� w katalogu
  <file>/var/cache/pbuilder/result/</file>, w�a�cicielem b�dzie u�ytkownik (nie-root)
  <footnote>
  W chwili obecnej zalecam dostosowanie systemu przez umo�liwienie zapisu
  w katalogu <file>/var/cache/pbuilder/result/</file> przez u�ytkownik�w
  i dodanie w pliku <file>~/.pbuilderrc</file> lub <file>/etc/pbuilderrc</file>
  wpisu
  <example>
  AUTO_DEBSIGN=yes
  </example>
  Pozwoli to na podpisywanie tworzonych pakiet�w Twoim kluczem GPG z pliku
  <file>~/.gnupg/</file>. Poniewa� pakiet <package>pbuilder</package>
  jest ci�gle rozwijany, sprawd� w jego bie��cej dokumentacji, w jaki spos�b
  powiniene� go skonfigurowa�.
  </footnote>.

  <p>Je�li chcesz doda� nowe �r�d�o apta, tak aby by�o u�ywane przez
  pakiet <package>pbuilder</package>, ustaw <tt>OTHERMIRROR</tt> w
  <file>~/.pbuilderrc</file> lub
  <file>/etc/pbuilderrc</file> i wykonaj (dla sarge):
  <example>
  $ sudo pbuilder update --distribution sarge --override-config
  </example>
  U�ycie <tt>--override-config</tt> jest konieczne do zaktualizowania
  �r�de� apt w �rodowisku chroot.

  <p>Zobacz <url id="&pbuilder-home;">,
  <manref section="1" name="pdebuild">,
  <manref section="5" name="pbuilderrc"> i
  <manref section="8" name="pbuilder">.

  <!-- -------------------------------------------------------------------------->

  <chapt id="upload">Wgrywanie pakietu

  <p>Gdy ju� gruntownie przetestowa�e� sw�j nowy pakiet, jeste� gotowy,
  aby wzi�� udzia� w procesie przyjmowania do Debiana nowego opiekuna pakiet�w.
  Jest to opisane na stronie
  <url id="http://www.debian.org/devel/join/newmaint">.

  <sect id="upload-debian">Wgrywanie pakietu do archiwum Debiana

  <p>Gdy ju� zosta�e� oficjalnym deweloperem, powiniene� umie�ci� sw�j
  pakiet w archiwum Debiana. Mo�esz zrobi� to r�cznie, ale �atwiej jest u�y�
  specjalnie do tego celu stworzonych narz�dzi, kt�re automatyzuj� ca�y
  proces. Nale�� do nich takie programy, jak <manref name="dupload"
  section="1"> i <manref name="dput" section="1">. Opiszemy tutaj, w jaki
  spos�b pos�ugiwa� si� programem <prgn/dupload/.

  <p>Pierwsz� rzecz�, kt�r� powiniene� zrobi�, jest edycja jego pliku
  konfiguracyjnego. Mo�esz wyedytowa� zar�wno przeznaczony dla ca�ego systemu
  plik <file>/etc/dupload.conf</file>, jak i sw�j w�asny plik
  <file>~/.dupload.conf</file>, kt�ry nadpisuje te rzeczy, kt�re chcesz
  zmieni�. Umie�� w nim co� takiego:

  <p><example>
  package config;

  $default_host = "anonymous-ftp-master";

  $cfg{'anonymous-ftp-master'} = {
        fqdn => "ftp-master.debian.org",
        method => "ftp",
        incoming => "/pub/UploadQueue/",
        # files pass on to dinstall on ftp-master which sends emails itself
        # pliki przekazywane do dinstall na ftp-master, kt�re wysy�aj� maile
        dinstall_runs => 1,
  };

  1;
  </example>

  <p>Mo�esz przeczyta� stron� podr�cznika <manref name="dupload.conf" section="5">,
  aby zrozumie�, co oznacza ka�da z u�ytych opcji.

  <p>Uwagi wymaga zmienna $default_host -- okre�la ona, kt�ra z kolejek
  s�u��cych do umieszczania pakiet�w jest u�ywana domy�lnie. G��wn� kolejka
  jest "anonymous-ftp-master", ale mo�liwe jest, �e b�dziesz chcia� u�y� innej,
  szybszej. Wi�cej informacji na temat kolejek znajdziesz
  w dokumencie Developers' Reference, w sekcji "Uploading a package",
  kt�ra znajduje si� w dokumencie <file>&uploading;</file>.

  <p>Nast�pnie po��cz si� z internetem i wydaj polecenie:

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

  <p>Program <prgn/dupload/ sprawdzi, czy zgadzaj� si� sumy kontrolne MD5 plik�w
  z sumami zapisanymi w pliku .changes. Je�li sumy kontrolne pasuj� do siebie,
  pakiet mo�e by� umieszczony w archiwum. Je�li sumy si� nie zgadzaj�,
  zostaniesz ostrze�ony, aby m�c przebudowa� pakiet zgodnie z procedur�
  opisan� w rozdziale <ref id="completebuild">.

  <p>Je�li stwierdzisz jaki� problem z wgrywaniem w kolejce
  <url id="&ftp-uploadqueue;">,
  mo�esz naprawi� go r�cznie poprzez wgranie podpisanego pliku
  <file>*.commands</file> do <url id="&ftp-uploadqueue;"> za pomoc� programu
  <prgn>ftp</prgn>
  <footnote>
  Zobacz <url id="&ftp-command;">. Mo�esz te� u�y� programu
  <prgn>dcut</prgn> z pakietu <package>dput</package>.
  </footnote>.
  Przyk�adowy plik <file>hello.commands</file>:

<example>
-----BEGIN PGP SIGNED MESSAGE-----

Uploader: Roman Hodek &lt;Roman.Hodek@informatik.uni-erlangen.de&gt;
Commands: 
 rm hello_1.0-1_i386.deb
 mv hello_1.0-1.dsx hello_1.0-1.dsc

-----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia

iQCVAwUBNFiQSXVhJ0HiWnvJAQG58AP+IDJVeSWmDvzMUphScg1EK0mvChgnuD7h
BRiVQubXkB2DphLJW5UUSRnjw1iuFcYwH/lFpNpl7XP95LkLX3iFza9qItw4k2/q
tvylZkmIA9jxCyv/YB6zZCbHmbvUnL473eLRoxlnYZd3JFaCZMJ86B0Ph4GFNPAf
Z4jxNrgh7Bc=
=pH94
-----END PGP SIGNATURE-----
</example>
  
  <sect id="upload-private">Wgrywanie do prywatnego archiwum

  <p>Je�li chcesz utworzy� swoje prywatne archiwum na stronie
  <tt>URL="http://people.debian.org/~<var>account_name</var>"</tt> jako 
  deweloper, a potem w prosty spos�b wywo�ywa�
  <tt>dupload -t <var>target_name</var></tt>, powiniene� doda� nast�puj�ce linie 
  do pliku <file>/etc/dupload.conf</file>:

  <example>
# Developer account
$cfg{'<var>target_name</var>'} = {
        fqdn =&gt; "people.debian.org",
        method =&gt; "scpb",
        incoming =&gt; "/home/<var>account_name</var>/public_html/package/",
        # I do not need to announce
        dinstall_runs =&gt; 1,
};
$cfg{'<var>target_name</var>'}{preupload}{'changes'} = "
        echo 'mkdir -p public_html/package' | ssh people.debian.org  2&gt;/dev/null ; 
        echo 'Package directory created!'";

$cfg{'<var>target_name</var>'}{postupload}{'changes'} = "
        echo 'cd public_html/package ;
        dpkg-scanpackages . /dev/null &gt;Packages || true ;
        dpkg-scansources . /dev/null &gt;Sources || true ;
        gzip -c Packages >Packages.gz ;
        gzip -c Sources &gt;Sources.gz ' | ssh people.debian.org  2&gt;/dev/null ;
        echo 'Package archive created!'";

  </example>

  Tutaj archiwum APT jest budowane poprzez szybkie i nie sprawdzane
  zdalne wywo�anie pow�oki przez SSH. Nadpisywane pliki wymagane przez
  <prgn>dpkg-scanpackages</prgn> i <prgn>dpkg-scansources</prgn>
  s� podstawiane przez <file>/dev/null</file>. Technika ta mo�e by� stosowana
  przez nie-deweloper�w Debiana do wprowadzania ich pakiet�w na ich
  osobiste strony internetowe. Mo�na te� u�ywa� <prgn>apt-ftparchive</prgn>
  albo innych skrypt�w do tworzenia archiw�w APT.

  <!-- -------------------------------------------------------------------------->

  <chapt id="update">Aktualizacja pakietu

  <sect id="newrevision">Nowa poprawka Debiana

  <p>Powiedzmy, �e do Twojego pakietu zosta� zg�oszony raport o b��dzie o
  numerze #54321, opisuj�cy problem, kt�ry mo�esz rozwi�za�. Aby stworzy�
  now� poprawk� (revision) pakietu Debiana, musisz wykona� nast�puj�ce
  czynno�ci:

  <list>

  <item>Oczywi�cie najpierw popraw b��d w �r�d�ach pakietu.

  <item>Dodaj now� poprawk� na pocz�tku pliku `changelog', na przyk�ad za
  pomoc� `<tt>dch -i</tt>` lub wr�cz
  `<tt>dch -v &lt;wersja&gt;-&lt;rewizja&gt;</tt>'
  i za pomoc� ulubionego edytora tekstu wstaw komentarze.
  <p>Porada: w jaki spos�b naj�atwiej pobra� dat� w wymaganym formacie?
  U�yj komendy `<tt>822-date</tt>' lub `<tt>date -R</tt>'.

  <item>Do��cz kr�tki opis b��du i jego rozwi�zania do pliku `changelog'
  oraz napis: "Closes: #54321". W ten spos�b raport o b��dzie zostanie
  automatycznie "zamkni�ty" przez oprogramowanie obs�uguj�ce archiwum
  Debiana w chwili, gdy pakiet zostanie w nim zaakceptowany.

  <item>Powt�rz kroki wykonywane w rozdzia�ach <ref id="completebuild">,
  <ref id="checkit"> i <ref id="upload">. Jedyn� r�nic� b�dzie to, 
  �e nie zostan� wgrane oryginalne �r�d�a, gdy� nie zmieni�y si� i
  znajduj� si� ju� w archiwum Debiana.

  </list>

  <sect id="newupstream">Nowe wydanie autorskie (prosto)

  <p>Rozwa�my teraz troch� inn�, troszk� bardziej skomplikowan� sytuacj�
  - zosta�a wydana nowa, zewn�trzna wersja programu i oczywi�cie chcemy
  j� zapakowa�. Trzeba wykona� nast�puj�ce czynno�ci:

  <list>

  <item>Pobierz archiwum z nowymi �r�d�ami (na przyk�ad
  `<file>gentoo-0.9.13.tar.gz</file>') i umie�� je w katalogu nadrz�dnym
  do katalogu ze starym drzewem �r�de� (dla przyk�adu <file>~/gentoo/</file>).

  <item>Wejd� do katalogu ze starymi �r�d�ami i wykonaj:
  <example>
  uupdate -u gentoo-0.9.13.tar.gz
  </example>
  <p>Oczywi�cie musisz zast�pi� nazw� pliku nazw� archiwum ze �r�d�ami Twojego
  programu. Program <manref name="uupdate" section="1"> odpowiednio zmieni
  nazw� tego archiwum, spr�buje na�o�y� wszystkie zmiany z Twojego poprzedniego
  pliku <file>.diff.gz</file> i uaktualni plik <file>debian/changelog</file>.

  <item>Zmie� katalog na `<file>../gentoo-0.9.13</file>', czyli drzewo z nowym
  �r�d�em pakietu i powt�rz to, co robi�e� w rozdzia�ach <ref id="completebuild">,
  <ref id="checkit"> i <ref id="upload">.

  </list>
  
  <p>Zauwa�, �e je�li skonfigurowa�e� plik `<file>debian/watch</file>', jak to
  opisano w sekcji <ref id="watch">, to mo�esz uruchomi� program <manref name="uscan"
  section="1">, aby automagicznie odszukiwa� poprawione �r�d�a, pobiera� je
  i uruchamia� program <prgn>uupdate</prgn>.

  <sect id="newupstream-real">Nowe wydanie autorskie (realistycznie)

  <p>Kiedy przygotowujesz pakiety dla archiwum Debiana, musisz szczeg�owo
  sprawdza� rezultaty swoich dzia�a�. Przedstawiam poni�ej bardziej realistyczny
  przyk�ad takiej procedury.

  <enumlist compact>

  <item>Sprawd� zmiany w �r�d�ach zewn�trznych

  <list compact>

  <item>Przeczytaj autorskie pliki <file>changelog</file>, <file>NEWS</file>
  i inn� dokumentacj�, kt�ra mo�e si� odnosi� do nowej wersji.

  <item>Wykonaj `<tt>diff -urN</tt>' pomi�dzy starymi i nowymi �r�d�ami
  autorskimi, aby zapozna� si� z dokonanymi zmianami (a kt�re mog�
  powodowa� potencjalne b��dy), miej oczy otwarte na wszystko, co
  wygl�da podejrzanie.

  </list>

  <item>Zaadaptuj stary pakiet do nowej wersji.

  <list compact>

  <item>Rozpakuj archiwum �r�d�owe i zmie� nazw� jego g��wnego katalogu na
  <file>&lt;nazwa_pakietu&gt;-&lt;wersja_autora&gt;/</file> i przejd�
  `<tt>cd</tt>' do tego katalogu.

  <item>Skopiuj archiwum �r�d�owe w katalogu nadrz�dnym z now� nazw�
  <file>&lt;nazwa_pakietu&gt;_&lt;wersja_autora&gt;.orig.tar.gz</file> .

  <item>Wykonaj takie same czynno�ci na nowych �r�d�ach, jakie wykona�e�
  na starych. S� mo�liwe nast�puj�ce sposoby:
  
  <list compact>
  <item>polecenie `<tt>zcat <var>/path/to/</var>&lt;nazwa_pakietu&gt;_&lt;stara_wersja&gt;.diff.gz | patch -p1</tt>'
  <item>polecenie `<prgn>uupdate</prgn>'
  <item>polecenie `<tt>svn merge</tt>', je�li �r�d�a s� w repozytorium Subversion lub
  <item>po prostu przekopiuj katalog <file>debian/</file> ze starych �r�de�,
  je�li by�y spakowane przy pomocy <package>dpatch</package> lub <package>quilt</package>.
  </list>

  <item>Zachowaj stare wpisy w pliku changelog (wydaje si� oczywiste, ale
  r�nie to bywa...)

  <item>Nowa wersja pakietu b�dzie mia�a numer autorski uzupe�niony przez
  <tt>-1</tt> - numer rewizji Debiana, np. `<tt>0.9.13-1</tt>'.

  <item>Dodaj wpis "New upstream release" na pocz�tku pliku
  <file>debian/changelog</file>. Mo�esz to zrobi� np. przez wywo�anie
  `<tt>dch -v 0.9.13-1</tt>'.

  <item>Zwi�le opisz (po angielsku oczywi�cie <em>[uwaga t�umacza]</em>) zmiany dokonane
  <em>w</em> nowej wersji autorskiej, kt�re naprawiaj� zg�oszone b��dy i zamknij
  te zg�oszenia w pliku changelog.

  <item>Zwi�le opisz zmiany dokonane przez opiekuna <em>odnosz�ce si� do</em>
  nowej wersji autorskiej, kt�re naprawiaj� zg�oszone b��dy i zamknij zg�oszenia.

  <item>Je�li poprawka (patch/merge) nie mo�e by� zaaplikowana w spos�b bezpo�redni,
  zbadaj sytuacj�, �eby stwierdzi� jaka jest przyczyna powstawania trudno�ci
  (na podstawie wpis�w w plikach <file>.rej</file>). W wi�kszo�ci przypadk�w
  problem polega na tym, �e poprawka zosta�a uwzgl�dniona przez autora
  i nie jest ju� potrzebna.

  <item>Aktualizacja do nowej wersji powinna przebiega� w spos�b nieabsorbuj�cy
  u�ytkownika (u�ytkownicy nie powinni zauwa�a� tego faktu, poza stwierdzeniem,
  �e b��dy zosta�y poprawione lub dodano nowe funkcje)
  <footnote>
  Prosz� przygotowa� r�wnie� prawid�ow� aktualizacj� pliku konfiguracyjnego
  Twojego pakietu za pomoc� dobrze napisanych skrypt�w <prgn>postinst</prgn>
  itp., tak aby <strong>nie</strong> dzia�y si� rzeczy zaskakuj�ce u�ytkownik�w!
  To m. in. jest jednym z czynnik�w, <strong>dla kt�rych</strong> ludzie
  wybieraj� Debiana.
  <p>Je�li rzeczywi�cie istnieje konieczno�� r�cznej interwencji (np.
  konfiguracja dla r�nych katalog�w domowych o ca�kowicie odmiennej
  strukturze), pomy�l o domy�lnym skonfigurawaniu pakietu w spos�b
  najbardziej bezpieczny (np. przez wy��czenie us�ugi) i przygotowaniu
  w�a�ciwej dokumentacji (pliki <file>README.Debian</file> i
  <file>NEWS.Debian</file>), jako ostateczno��. Nie zajmuj jednak
  u�ytkownika komunikatami debconfa.
  </footnote>.

  <item>Je�li z jakiego� powodu trzeba doda� skasowane wcze�niej
  pliki szablon�w, mo�esz uruchomi� program <prgn>dh_make</prgn> w ju�
  wcze�niej "zdebianizowanym" katalogu z opcj� <tt>-o</tt>, a nast�pnie
  uwa�nie je wyedytowa�.

  <item>Uprzednio istniej�ce zmiany Debiana powinny zosta� ponownie wprowadzone;
  odrzu� poprawki, kt�re zosta�y ju� zosta�y uwzgl�dnione (w ten czy inny spos�b)
  przez autora zewn�trznego, ale pami�taj o tych pozosta�ych, a� do chwili, kiedy
  naprawd� przestan� by� potrzebne.

  <item>Je�li by�y jakie� zmiany w systemie buduj�cym (mam nadziej�, �e wiesz
  o tym z kroku 1.), popraw plik <file>debian/rules</file> i,
  je�li to konieczne, zale�no�ci w pliku <file>debian/control</file>.

  </list>

  <item>Zbuduj nowy pakiet jak w rozdziale <ref id="debuild"> lub
  <ref id="pbuilder">. U�ycie pakietu <package>pbuilder</package> jest
  wskazane.

  <item>Sprawd�, czy nowe pakiety zosta�y zbudowane w spos�b prawid�owy.

  <list compact>

  <item>Przeprowad� <ref id="checkit">.

  <item>Wykonaj <ref id="upgrading">.

  <item>Sprawd� ponownie, czy nie ma poprawionych b��d�w otwartych w
  <url name="Debian Bug Tracking System (BTS)" id="http://www.debian.org/Bugs/">.

  <item>Sprawd� zawarto�� pliku .changes i upewnij si�, �e wgrywasz zmiany
  do odpowiedniej dystrybucji, zosta�y uj�te w�a�ciwe zg�oszenia b��d�w
  w polu Closes:, pola Maintainer: i Changed-By: s� prawid�owe, istnieje
  podpis GPG itp.

  </list>

  <item>Je�li wykonywa�e� jakie� zmiany, aby co� poprawi�, wr�� do kroku
  2., a� do osi�gni�cia pozytywnego rezultatu.

  <item>Je�li wgrywanie odbywa si� przez sponsora, odnotuj wszelkie dodatkowe
  opcje wymagane do zbudowania pakietu (np. '<tt>dpkg-buildpackage
  -sa -v ...</tt>') i poinformuj o nich sponsora, tak aby m�g� r�wnie�
  prawid�owo go zbudowa�.

  <item>Je�li sam wykonujesz wgrywanie, przeprowad� <ref id="upload">.

  </enumlist>

  <sect id="orig-tar">Plik <file>orig.tar.gz</file>

  <p>Je�li pr�bujesz zbudowa� pakiet tylko z nowego katalogu �r�d�owego
  z podkatalogiem <file>debian/</file> bez pliku <file>orig.tar.gz</file>
  w katalogu nadrz�dnym, zako�czy si� to utworzeniem
  pakietu �r�d�owego, bez powstania pliku <file>diff.gz</file>.
  Taki spos�b pakowania jest prawid�owy jedynie dla specyficznych
  pakiet�w Debiana, kt�re s� bezu�yteczne w innych dystrybucjach.

  <footnote>
  Niekt�rzy twierdz�, �e nawet dla specyficznych pakiet�w Debiana jest
  lepsz� praktyk� przechowywanie zawarto�ci katalogu <file>debian/</file>
  w pliku <file>diff.gz</file>, ni� w <file>orig.tar.gz</file>.
  </footnote>

  <p>W celu uzyskania nie-natywnego pakietu �r�d�owego, kt�ry pozwala na
  uzyskanie zar�wno pliku <file>orig.tar.gz</file> jak i <file>diff.gz</file>,
  musisz r�cznie skopiowa� archiwum autorskie do katalogu nadrz�dnego i
  zmieni� jego nazw� na
  <file>&lt;nazwa_pakietu&gt;_&lt;wersja_autorska&gt;.orig.tar.gz</file>, jak
  zrobi� to program <prgn>dh_make</prgn> w rozdziale <ref id="dh_make">.

  <sect id="cvs-buildpackage">Polecenie <prgn>cvs-buildpackage</prgn> i jemu podobne

  <p>Rozwa� u�ycie systemu zarz�dzania kodem �r�d�owym do zarz�dzania plikami
  zmienianymi w czasie pakowania. Jest kilka skrypt�w do pakowania przystosowanych
  do najbardziej popularnych z nich.
  <list compact>
  <item>CVS
  <list compact>
  <item><package>cvs-buildpackage</package>
  </list>
  <item>Subversion
  <list compact>
  <item><package>svn-buildpackage</package>
  </list>
  <item>Git (git-core)
  <list compact>
  <item><package>git-buildpackage</package>
  </list>
  </list>

  <p>Polecenia te automatyzuj� te� pakowanie nowych wyda� autorskich.

  <sect id="upgrading">Weryfikowanie uaktualnienia pakietu do nowszej wersji

  <p>Kiedy ju� zbudowa�e� now� wersj� pakietu, powiniene� wykona� nast�puj�c�
  procedur�, �eby upewni� si�, �e aktualizacja pakietu do nowej wersji
  przebiega bezb��dnie:

  <p><list>
  <item>uaktualnij pakiet z poprzedniej wersji
  <item>powr�� ponownie do poprzedniej wersji (downgrade), a nast�pnie usu� go
  <item>zainstaluj pakiet jako nowy pakiet
  <item>odinstaluj go i nast�pnie zainstaluj ponownie
  <item>wyczy�� (purge) pakiet
  </list>

  <p>Je�li pakiet zawiera nietrywialne skrypty pre/post/inst/rm, przetestuj
  �cie�ki dzia�ania ka�dego z nich.

  <p>Miej �wiadomo��, �e je�li Tw�j pakiet by� poprzednio wydany w Debianie,
  to ludzie cz�sto b�d� go uaktualnia� z wersji, kt�ra by�a w ostatnim wydaniu
  Debiana. Pami�taj, �eby przetestowa� tak�e uaktualnianie do nowszej wersji
  z tamtej wersji.

  <!-- -------------------------------------------------------------------------->

  <chapt id="helpme">Gdzie prosi� o pomoc

  <p>Zanim zdecydujesz si� zada� pytanie w jakim� publicznym miejscu,
  prosz� najpierw zajrze� do odpowiedniego podr�cznika. Dokumentacja do
  program�w wymienionych w tym dokumencie znajduje si� w
  <file>/usr/share/doc/dpkg</file>,
  <file>/usr/share/doc/debian</file>, <file>&autotools-dev;</file>, 
  <file>/usr/share/doc/package/*</file>, a tak�e w plikach info i man
  omawianych program�w.
  Zobacz te� inforamcje na <url id="&nm-home;"> i <url id="&mentors-faq;">.

  <p>Je�li masz pytanie na temat pakowania, na kt�re nie znalaz�e� odpowiedzi
  w powy�szej dokumentacji, powiniene� je zada� na li�cie Mentor�w Debiana,
  kt�ra dost�pna jest pod adresem <email/debian-mentors@lists.debian.org/.
  Bardziej do�wiadczeni deweloperzy Debiana ch�tnie Ci pomog�, ale przed
  zadaniem pytania przeczytaj dokumentacj�!

  <p>Wi�cej informacji na temat tej listy dyskusyjnej znajdziesz na stronie
  <url id="http://lists.debian.org/debian-mentors/">.

  <p>Kiedy odbierzesz raport o b��dzie (tak, prawdziwy raport o b��dzie!),
  to znak, �e czas zaznajomi� si� z <url name="Systemem �ledzenia b��d�w
  Debiana (BTS)" id="http://www.debian.org/Bugs/"> i przeczyta� znajduj�c� si�
  tam dokumentacj�, aby m�c sprawnie radzi� sobie z takimi raportami.
  Polecam g��wnie przeczytanie rozdzia�u "Handling Bugs" z dokumentu
  Developers' Reference w <file>&bughandling;</file>.

  <p>Je�li wci�� masz pytania, pytaj na li�cie Deweloper�w Debiana,
  kt�ra jest dost�pna pod adresem <email/debian-devel@lists.debian.org/.
  Wi�cej informacji na temat tej listy dyskusyjnej znajdziesz na stronie
  <url id="http://lists.debian.org/debian-devel/">.

  <p>Nawet, gdy wszystko dzia�a dobrze, to czas, �eby zacz�� si� modli�.
  Dlaczego? Poniewa� ju� za kilka godzin (lub dni) u�ytkownicy z ca�ego �wiata
  zaczn� u�ywa� Twojego pakietu i je�li pope�ni�e� jaki� krytyczny b��d,
  wielu rozgniewanych u�ytkownik�w Debiana zasypie Ci� listami...
  To tylko �art. :-)

  <p>Zrelaksuj si� i b�d� gotowy na raporty o b��dach, poniewa� masz jeszcze sporo
  do zrobienia, zanim Tw�j pakiet b�dzie w pe�ni zgodny z Polityk�
  Debiana (powtarzam: przeczytaj <em>prawdziw� dokumentacj�</em>,
  aby dowiedzie� si� wi�cej szczeg��w). Powodzenia!

  <!-- -------------------------------------------------------------------------->

  <appendix id="pkg-eg">Przyk�ady

  <p>Mamy do zapakowania archiwum autorskie <var>gentoo-1.0.2</var>.tar.gz i
  wgrywamy wszystkie pakiety do <tt><var>nm_target</var></tt>.

  <sect id="pkg-simple">Prosty przyk�ad pakowania

  <p>
  <example>
  $ mkdir -p <var>/path/to</var> # nowy pusty katalog
  $ cd <var>/path/to</var>
  $ tar -xvzf <var>/path/from/gentoo-1.0.2</var>.tar.gz # rozpakowujemy �r�d�a
  $ cd <var>gentoo-1.0.2</var>
  $ dh_make -e <var>name@domain.dom</var> -f <var>/path/from/gentoo-1.0.2</var>.tar.gz
  ... Odpowiedz na pytania
  ... Popraw drzewo �r�de�
  ... Je�li jest to pakiet skryptowy, wpisz "Architecture: all" do debian/control
  ... Nie kasuj ../<var>gentoo_1.0.2</var>.orig.tar.gz
  $ debuild
  ... Nie powinno by� ostrze�e�
  $ cd ..
  $ dupload -t <var>nm_target</var> <var>gentoo_1.0.2-1</var>_i386.changes
  </example>


  <sect id="pkg-dpatch">Przyk�ad z <package>dpatch</package> i <package>pbuilder</package>
  <p>
  <example>
  $ mkdir -p <var>/path/to</var> # nowy pusty katalog
  $ cd <var>/path/to</var>
  $ tar -xvzf <var>/path/from/gentoo-1.0.2</var>.tar.gz
  $ cp -a  <var>gentoo-1.0.2</var> <var>gentoo-1.0.2-orig</var>
  $ cd <var>gentoo-1.0.2</var>
  $ dh_make -e <var>name@domain.dom</var> -f /path/from/<var>gentoo-1.0.2</var>.tar.gz
  ... Odpowiedz na pytania
  </example>

  Tu mamy fragment oryginalnego pliku <file>debian/rules</file>:
  <example>
  configure: configure-stamp
  configure-stamp:
        dh_testdir
        # Add here commands to configure the package.
        touch configure-stamp
  build: build-stamp
  build-stamp: configure-stamp 
        dh_testdir
        # Add here commands to compile the package.
        $(MAKE)
        #docbook-to-man debian/gentoo.sgml > gentoo.1
        touch $@
  clean:
        dh_testdir
        dh_testroot
        rm -f build-stamp configure-stamp
        # Add here commands to clean up after the build process.
        -$(MAKE) clean
        dh_clean 
  </example>
  Za pomoc� edytora zmie� <file>debian/rules</file> w nast�puj�cy spos�b,
  tak aby u�ywa� <package>dpatch</package> oraz dodaj <package>dpatch</package>
  w linii <tt>Build-Depends:</tt> pliku <file>debian/control</file>:
  <example>
  configure: configure-stamp
  configure-stamp: patch
        dh_testdir
        # Add here commands to configure the package.
        touch configure-stamp
  build: build-stamp
  build-stamp: configure-stamp 
        dh_testdir
        # Add here commands to compile the package.
        $(MAKE)
        #docbook-to-man debian/gentoo.sgml > gentoo.1
        touch $@
  clean: clean-patched unpatch
        dh_testdir
        dh_testroot
        rm -f build-stamp configure-stamp
        # Add here commands to clean up after the build process.
        -$(MAKE) clean
        dh_clean 
  patch: patch-stamp
  patch-stamp:
        dpatch apply-all
        dpatch call-all -a=pkg-info >patch-stamp
  unpatch:
        dpatch deapply-all
        rm -rf patch-stamp debian/patched
  </example>

  <p>W ten spos�b mo�esz ju� pakowa� �r�d�a za pomoc� systemu
  <package>dpatch</package> u�ywaj�c programu <prgn>dpatch-edit-patch</prgn>.

  <example>
  $ dpatch-edit-patch patch 10_firstpatch
  ... Popraw �r�d�a edytorem
  $ exit 0
  ... Spr�buj zbudowa� pakiety przy u�yciu "debuild -us -uc"
  ... Wyczy�� �r�d�a wywo�uj�c "debuild clean"
  ... Powtarzaj dpatch-edit-patch a� do zbudowania pakiet�w ze �r�de�
  $ sudo pbuilder update
  $ pdebuild
  $ cd /var/cache/pbuilder/result/
  $ dupload -t <var>nm_target</var> <var>gentoo_1.0.2-1</var>_i386.changes
  </example>

 </book>

</debiandoc>