b256203c145423a0e0bbac3d47997cf8486e545b
[packaging-tutorial.git] / po4a / po / packaging-tutorial.pot
1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 #
6 #, fuzzy
7 msgid ""
8 msgstr ""
9 "Project-Id-Version: PACKAGE VERSION\n"
10 "POT-Creation-Date: 2012-01-09 11:30+0100\n"
11 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13 "Language-Team: LANGUAGE <LL@li.org>\n"
14 "Language: \n"
15 "MIME-Version: 1.0\n"
16 "Content-Type: text/plain; charset=CHARSET\n"
17 "Content-Transfer-Encoding: 8bit\n"
18
19 #. type: Plain text
20 #: packaging-tutorial.tex:4
21 msgid "\\mode<presentation> \\usetheme{debian}"
22 msgstr ""
23
24 #. Translators:
25 #. change debiantutorial to debiantutorial.$lang to use translated file, and
26 #. append to this string all commands to load localisation packages, e.g.:
27 #. \\usepackage{debiantutorial.fr} \\usepackage[french]{babel} \\frenchsetup{...}
28 #. type: Plain text
29 #: packaging-tutorial.tex:10
30 msgid "\\usepackage{debiantutorial}"
31 msgstr ""
32
33 #. type: title{#2}
34 #: packaging-tutorial.tex:14
35 msgid "Debian Packaging Tutorial"
36 msgstr ""
37
38 #. type: author{#2}
39 #: packaging-tutorial.tex:14
40 msgid "Lucas Nussbaum\\\\{\\small\\texttt{lucas@debian.org}}"
41 msgstr ""
42
43 #. Translators:
44 #. leave \\version unchanged: this will a variable containing the actual version
45 #. To translate the date, use \\today or a string containing \\year, \\month, \\day
46 #. (numeric values).
47 #.  DATE - use debian/rules update-version-date
48 #. type: date{#1}
49 #: packaging-tutorial.tex:20
50 msgid "version 0.5 -- 2011-11-29"
51 msgstr ""
52
53 #. type: frame{#2}
54 #: packaging-tutorial.tex:52
55 msgid "About this tutorial"
56 msgstr ""
57
58 #. type: itemize
59 #: packaging-tutorial.tex:52
60 msgid "Goal: \\textbf{tell you what you really need to know about Debian packaging}"
61 msgstr ""
62
63 #. type: itemize
64 #: packaging-tutorial.tex:52
65 msgid "Modify existing packages"
66 msgstr ""
67
68 #. type: itemize
69 #: packaging-tutorial.tex:52
70 msgid "Create your own packages"
71 msgstr ""
72
73 #. type: itemize
74 #: packaging-tutorial.tex:52
75 msgid "Interact with the Debian community"
76 msgstr ""
77
78 #. type: itemize
79 #: packaging-tutorial.tex:52
80 msgid "Become a Debian power-user"
81 msgstr ""
82
83 #. type: itemize
84 #: packaging-tutorial.tex:52
85 msgid "Covers the most important points, but is not complete"
86 msgstr ""
87
88 #. type: itemize
89 #: packaging-tutorial.tex:52
90 msgid "You will need to read more documentation"
91 msgstr ""
92
93 #. type: itemize
94 #: packaging-tutorial.tex:52
95 msgid "Most of the content also applies to Debian derivatives distributions"
96 msgstr ""
97
98 #. type: itemize
99 #: packaging-tutorial.tex:52
100 msgid "That includes Ubuntu"
101 msgstr ""
102
103 #. type: frame{#2}
104 #: packaging-tutorial.tex:56 debiantutorial.sty:41
105 msgid "Outline"
106 msgstr ""
107
108 #. type: section{#2}
109 #: packaging-tutorial.tex:58
110 msgid "Introduction"
111 msgstr ""
112
113 #. type: frame{#2}
114 #: packaging-tutorial.tex:60 packaging-tutorial.tex:84
115 msgid "Debian"
116 msgstr ""
117
118 #. type: textbf{#1}
119 #: packaging-tutorial.tex:84
120 msgid "GNU/Linux distribution"
121 msgstr ""
122
123 #. type: itemize
124 #: packaging-tutorial.tex:84
125 msgid "1st major distro developed ``openly in the spirit of GNU''"
126 msgstr ""
127
128 #. type: itemize
129 #: packaging-tutorial.tex:84
130 msgid "\\textbf{Non-commercial}, built collaboratively by over 1,000 volunteers"
131 msgstr ""
132
133 #. type: itemize
134 #: packaging-tutorial.tex:84
135 msgid "3 main features:"
136 msgstr ""
137
138 #. type: itemize
139 #: packaging-tutorial.tex:84
140 msgid ""
141 "\\textbf{Quality} -- culture of technical excellence\\\\ {\\small\\sl We "
142 "release when it's ready}"
143 msgstr ""
144
145 #. type: itemize
146 #: packaging-tutorial.tex:84
147 msgid ""
148 "\\textbf{Freedom} -- devs and users bound by the \\textsl{Social "
149 "Contract}\\\\ Promoting the culture of Free Software since 1993"
150 msgstr ""
151
152 #. type: itemize
153 #: packaging-tutorial.tex:84
154 msgid ""
155 "\\textbf{Independence} -- no (single) company babysitting Debian\\\\ And "
156 "open decision-making process (\\textsl{do-ocracy} + \\textsl{democracy})"
157 msgstr ""
158
159 #. type: itemize
160 #: packaging-tutorial.tex:84
161 msgid "\\textbf{Amateur} in the best sense: done for the love of it"
162 msgstr ""
163
164 #. type: frame{#2}
165 #: packaging-tutorial.tex:105 packaging-tutorial.tex:105
166 msgid "Debian packages"
167 msgstr ""
168
169 #. type: itemize
170 #: packaging-tutorial.tex:105
171 msgid "\\textbf{.deb} files (binary packages)"
172 msgstr ""
173
174 #. type: itemize
175 #: packaging-tutorial.tex:105
176 msgid "A very powerful and convenient way to distribute software to users"
177 msgstr ""
178
179 #. type: itemize
180 #: packaging-tutorial.tex:105
181 msgid "One of the two most common packages format (with RPM)"
182 msgstr ""
183
184 #. type: itemize
185 #: packaging-tutorial.tex:105
186 msgid "Universal:"
187 msgstr ""
188
189 #. type: itemize
190 #: packaging-tutorial.tex:105
191 msgid ""
192 "30,000 binary packages in Debian\\\\ $\\rightarrow$ most of the available "
193 "free software is packaged in Debian!"
194 msgstr ""
195
196 #. type: itemize
197 #: packaging-tutorial.tex:105
198 msgid "For 12 ports (architectures), including 2 non-Linux (Hurd; KFreeBSD)"
199 msgstr ""
200
201 #. type: itemize
202 #: packaging-tutorial.tex:105
203 msgid "Also used by 120 Debian derivatives distributions"
204 msgstr ""
205
206 #. type: frame{#2}
207 #: packaging-tutorial.tex:108 packaging-tutorial.tex:133
208 msgid "The Deb package format"
209 msgstr ""
210
211 #. type: itemize
212 #: packaging-tutorial.tex:133
213 msgid "\\texttt{.deb} file: an \\texttt{ar} archive"
214 msgstr ""
215
216 #. type: lstlisting
217 #: packaging-tutorial.tex:133
218 #, no-wrap
219 msgid ""
220 "[basicstyle=\\ttfamily\\footnotesize]\n"
221 "$ ar tv wget_1.12-2.1_i386.deb\n"
222 "rw-r--r-- 0/0      4 Sep  5 15:43 2010 debian-binary\n"
223 "rw-r--r-- 0/0   2403 Sep  5 15:43 2010 control.tar.gz\n"
224 "rw-r--r-- 0/0 751613 Sep  5 15:43 2010 data.tar.gz\n"
225 "    "
226 msgstr ""
227
228 #.  $
229 #. type: itemize
230 #: packaging-tutorial.tex:133
231 msgid ""
232 "\\texttt{debian-binary}: version of the deb file format, "
233 "\\texttt{\"2.0\\textbackslash{}n\"}"
234 msgstr ""
235
236 #. type: itemize
237 #: packaging-tutorial.tex:133
238 msgid ""
239 "\\texttt{control.tar.gz}: metadata about the package\\\\ {\\small "
240 "\\texttt{\\textbf{control}, md5sums, (pre|post)(rm|inst), triggers, shlibs}, "
241 "\\ldots}"
242 msgstr ""
243
244 #. type: itemize
245 #: packaging-tutorial.tex:133
246 msgid "\\texttt{data.tar.gz}: data files of the package"
247 msgstr ""
248
249 #. type: itemize
250 #: packaging-tutorial.tex:133
251 msgid ""
252 "You could create your \\texttt{.deb} files manually\\\\ {\\footnotesize "
253 "\\url{http://tldp.org/HOWTO/html\\_single/Debian-Binary-Package-Building-HOWTO/}}"
254 msgstr ""
255
256 #. type: itemize
257 #: packaging-tutorial.tex:133
258 msgid "But most people don't do it that way"
259 msgstr ""
260
261 #. type: textbf{#1}
262 #: packaging-tutorial.tex:133
263 msgid "This tutorial: create Debian packages, the Debian way"
264 msgstr ""
265
266 #. type: frame{#2}
267 #: packaging-tutorial.tex:153 packaging-tutorial.tex:153
268 msgid "Tools you will need"
269 msgstr ""
270
271 #. type: itemize
272 #: packaging-tutorial.tex:153
273 msgid "A Debian (or Ubuntu) system (with root access)"
274 msgstr ""
275
276 #. type: itemize
277 #: packaging-tutorial.tex:153
278 msgid "Some packages:"
279 msgstr ""
280
281 #. type: itemize
282 #: packaging-tutorial.tex:153
283 msgid ""
284 "\\textbf{build-essential}: has dependencies on the packages that will be "
285 "assumed to be available on the developers' machine (no need to specify them "
286 "in the \\texttt{Build-Depends:} control field of your package)"
287 msgstr ""
288
289 #. type: itemize
290 #: packaging-tutorial.tex:153
291 msgid ""
292 "includes a dependency on \\textbf{dpkg-dev}, which contains basic "
293 "Debian-specific tools to create packages"
294 msgstr ""
295
296 #. type: itemize
297 #: packaging-tutorial.tex:153
298 msgid "\\textbf{devscripts}: contains many useful scripts for Debian maintainers"
299 msgstr ""
300
301 #. type: frame
302 #: packaging-tutorial.tex:161
303 msgid ""
304 "Many other tools will also be mentioned later, such as \\textbf{debhelper}, "
305 "\\textbf{cdbs}, \\textbf{quilt}, \\textbf{pbuilder}, \\textbf{sbuild}, "
306 "\\textbf{lintian}, \\textbf{svn-buildpackage}, \\textbf{git-buildpackage}, "
307 "\\ldots\\\\ Install them when you need them."
308 msgstr ""
309
310 #. type: frame{#2}
311 #: packaging-tutorial.tex:168 packaging-tutorial.tex:168
312 msgid "General packaging workflow"
313 msgstr ""
314
315 #.      \draw[arr,->] (bin) -- (-1,-6) node[pos=0.5,left] {upload (\textttc{dput})};
316 #.  hack hack hack
317 #. type: tikzpicture
318 #: packaging-tutorial.tex:188
319 msgid ""
320 "\\node[node1] (www) at (0, 0) {Web}; \\node[node1] (us) at (2.5, 0) "
321 "{upstream source}; \\node[node1] (da) at (-2.5, 0) {Debian mirror}; "
322 "\\node[node1] (sp) at (0, -2) {source package}; \\draw[arr,<-,dashed,thick] "
323 "(sp) -- (2.5,-2) node[right=0cm,text width=2.98cm,text "
324 "centered,font=\\small\\sl] {where most of the manual work is done}; "
325 "\\node[node1] (bin) at (0, -4) {one or several binary packages}; "
326 "\\draw[arr,<-,dashed,thick] (bin) -- (3.5,-4) node[right,text "
327 "centered,font=\\small\\ttfamily\\sl] {.deb\\normalfont}; \\draw[arr,->] (us) "
328 "-- (sp) node[pos=0.5,right,command] {dh\\_make}; \\draw[arr,->] (da) -- (sp) "
329 "node[pos=0.5,left,command] {apt-get source}; \\draw[arr,->] (www) -- (sp) "
330 "node[pos=0.5,left,command] {dget}; \\draw[arr,->] (sp) -- (bin) "
331 "node[pos=0.5,right,text width=6cm] {\\textttc{debuild} (build and test with "
332 "\\textttc{lintian}) or \\textttc{dpkg-buildpackage}}; \\draw[arr,->] (bin) "
333 "-- (1,-6) node[pos=0.5,right] {install (\\textttc{debi})}; "
334 "\\draw[transparent] (bin) -- (-1,-6) node[pos=0.5,left,opaque] {upload "
335 "(\\textttc{dput})}; \\draw[arr,->,rounded corners] (bin) -- (-1,-6) -- "
336 "(-4.5,-6) -- (-4.5,0) -- (da); \\useasboundingbox (-4,-6) rectangle (6,0);"
337 msgstr ""
338
339 #. type: subsection{#2}
340 #: packaging-tutorial.tex:205
341 msgid "Rebuilding dash"
342 msgstr ""
343
344 #. type: frame{#2}
345 #: packaging-tutorial.tex:205
346 msgid "Example: rebuilding dash"
347 msgstr ""
348
349 #. type: enumerate
350 #: packaging-tutorial.tex:205
351 msgid ""
352 "Install packages needed to build dash, and devscripts\\\\ {\\texttt{sudo "
353 "apt-get build-dep dash}\\\\ (requires \\texttt{deb-src} lines in "
354 "\\texttt{/etc/apt/sources.list})}\\\\ {\\texttt{sudo apt-get install "
355 "-{}-no-install-recommends devscripts}}"
356 msgstr ""
357
358 #. type: enumerate
359 #: packaging-tutorial.tex:205
360 msgid ""
361 "Create a working directory, and get in it:\\\\ \\texttt{mkdir "
362 "/tmp/debian-tutorial ; cd /tmp/debian-tutorial}"
363 msgstr ""
364
365 #. type: enumerate
366 #: packaging-tutorial.tex:205
367 msgid ""
368 "Grab the \\texttt{dash} source package\\\\ \\texttt{apt-get source dash}\\\\ "
369 "{\\small (This needs you to have \\texttt{deb-src} lines in your "
370 "\\texttt{/etc/apt/sources.list})}"
371 msgstr ""
372
373 #. type: enumerate
374 #: packaging-tutorial.tex:205
375 msgid "Build the package\\\\ {\\texttt{cd dash-*\\\\ debuild -us -uc}}"
376 msgstr ""
377
378 #. type: enumerate
379 #: packaging-tutorial.tex:218
380 msgid "Check that it worked"
381 msgstr ""
382
383 #. type: itemize
384 #: packaging-tutorial.tex:218
385 msgid "There are some new \\texttt{.deb} files in the parent directory"
386 msgstr ""
387
388 #. type: enumerate
389 #: packaging-tutorial.tex:218
390 msgid "Look at the \\texttt{debian/} directory"
391 msgstr ""
392
393 #. type: itemize
394 #: packaging-tutorial.tex:218
395 msgid "That's where the packaging work is done"
396 msgstr ""
397
398 #. type: section{#2}
399 #: packaging-tutorial.tex:256
400 msgid "Creating source packages"
401 msgstr ""
402
403 #. type: subsection{#2}
404 #: packaging-tutorial.tex:256
405 msgid "Source packages basics"
406 msgstr ""
407
408 #. type: frame{#2}
409 #: packaging-tutorial.tex:256
410 msgid "Source package"
411 msgstr ""
412
413 #. type: itemize
414 #: packaging-tutorial.tex:256
415 msgid ""
416 "One source package can generate several binary packages\\\\ {\\small e.g the "
417 "\\texttt{\\bfseries libtar} source generates the \\texttt{\\bfseries "
418 "libtar0} and \\texttt{\\bfseries libtar-dev} binary packages}"
419 msgstr ""
420
421 #. type: itemize
422 #: packaging-tutorial.tex:256
423 msgid "Two kinds of packages: (if unsure, use non-native)"
424 msgstr ""
425
426 #. type: itemize
427 #: packaging-tutorial.tex:256
428 msgid ""
429 "Native packages: normally for Debian specific software (\\textsl{dpkg}, "
430 "\\textsl{apt})"
431 msgstr ""
432
433 #. type: itemize
434 #: packaging-tutorial.tex:256
435 msgid "Non-native packages: software developed outside Debian"
436 msgstr ""
437
438 #. type: itemize
439 #: packaging-tutorial.tex:256
440 msgid "Main file: \\texttt{.dsc} (meta-data)"
441 msgstr ""
442
443 #. type: itemize
444 #: packaging-tutorial.tex:256
445 msgid "Other files depending on the version of the source format"
446 msgstr ""
447
448 #. type: itemize
449 #: packaging-tutorial.tex:256
450 msgid "1.0 -- native: \\texttt{package\\_version.tar.gz}"
451 msgstr ""
452
453 #. type: itemize
454 #: packaging-tutorial.tex:256
455 msgid "1.0 -- non-native:"
456 msgstr ""
457
458 #. type: itemize
459 #: packaging-tutorial.tex:256 packaging-tutorial.tex:256
460 msgid "\\texttt{pkg\\_ver.orig.tar.gz} : upstream source"
461 msgstr ""
462
463 #. type: itemize
464 #: packaging-tutorial.tex:256
465 msgid "\\texttt{pkg\\_debver.diff.gz} : patch to add Debian-specific changes"
466 msgstr ""
467
468 #. type: itemize
469 #: packaging-tutorial.tex:256
470 msgid "3.0 (quilt):"
471 msgstr ""
472
473 #. type: itemize
474 #: packaging-tutorial.tex:256
475 msgid "\\texttt{pkg\\_debver.debian.tar.gz} : tarball with the Debian changes"
476 msgstr ""
477
478 #. type: frame
479 #: packaging-tutorial.tex:256
480 msgid "(See \\texttt{dpkg-source(1)} for exact details)"
481 msgstr ""
482
483 #. type: frame{#2}
484 #: packaging-tutorial.tex:280
485 msgid "Source package example (wget\\_1.12-2.1.dsc)"
486 msgstr ""
487
488 #. type: lstlisting
489 #: packaging-tutorial.tex:280
490 #, no-wrap
491 msgid ""
492 "[basicstyle=\\ttfamily\\small]\n"
493 "Format: 3.0 (quilt)\n"
494 "Source: wget\n"
495 "Binary: wget\n"
496 "Architecture: any\n"
497 "Version: 1.12-2.1\n"
498 "Maintainer: Noel Kothe <noel@debian.org>\n"
499 "Homepage: http://www.gnu.org/software/wget/\n"
500 "Standards-Version: 3.8.4\n"
501 "Build-Depends: debhelper (>> 5.0.0), gettext, texinfo,\n"
502 " libssl-dev (>= 0.9.8), dpatch, info2man\n"
503 "Checksums-Sha1: \n"
504 " 50d4ed2441e67[..]1ee0e94248 2464747 wget_1.12.orig.tar.gz\n"
505 " d4c1c8bbe431d[..]dd7cef3611 48308 wget_1.12-2.1.debian.tar.gz\n"
506 "Checksums-Sha256: \n"
507 " 7578ed0974e12[..]dcba65b572 2464747 wget_1.12.orig.tar.gz\n"
508 " 1e9b0c4c00eae[..]89c402ad78 48308 wget_1.12-2.1.debian.tar.gz\n"
509 "Files: \n"
510 " 141461b9c04e4[..]9d1f2abf83 2464747 wget_1.12.orig.tar.gz\n"
511 " e93123c934e3c[..]2f380278c2 48308 wget_1.12-2.1.debian.tar.gz"
512 msgstr ""
513
514 #. type: subsection{#2}
515 #: packaging-tutorial.tex:308
516 msgid "Retrieving source packages"
517 msgstr ""
518
519 #. type: frame{#2}
520 #: packaging-tutorial.tex:308
521 msgid "Retrieving an existing source package"
522 msgstr ""
523
524 #. type: itemize
525 #: packaging-tutorial.tex:308
526 msgid "From the Debian archive:"
527 msgstr ""
528
529 #. type: itemize
530 #: packaging-tutorial.tex:308
531 msgid "\\texttt{apt-get source \\textsl{package}}"
532 msgstr ""
533
534 #. type: itemize
535 #: packaging-tutorial.tex:308
536 msgid "\\texttt{apt-get source \\textsl{package=version}}"
537 msgstr ""
538
539 #. type: itemize
540 #: packaging-tutorial.tex:308
541 msgid "\\texttt{apt-get source \\textsl{package/release}}"
542 msgstr ""
543
544 #. type: itemize
545 #: packaging-tutorial.tex:308
546 msgid "(You need \\texttt{deb-src} lines in \\texttt{sources.list})"
547 msgstr ""
548
549 #. type: itemize
550 #: packaging-tutorial.tex:308
551 msgid "From the Internet:"
552 msgstr ""
553
554 #. type: itemize
555 #: packaging-tutorial.tex:308
556 msgid "\\texttt{dget \\textsl{url-to.dsc}}"
557 msgstr ""
558
559 #. type: itemize
560 #: packaging-tutorial.tex:308
561 msgid ""
562 "\\texttt{dget "
563 "http://snapshot.debian.org/archive/debian-archive/\\\\20090802T004153Z/debian/dists/bo/main/source/web/\\\\ "
564 "wget\\_1.4.4-6.dsc}\\\\ (\\href{http://snapshot.debian.org/}{\\ttfamily "
565 "snapshot.d.o} provides all packages from Debian since 2005)"
566 msgstr ""
567
568 #. type: itemize
569 #: packaging-tutorial.tex:308
570 msgid "From the (declared) version control system:"
571 msgstr ""
572
573 #. type: itemize
574 #: packaging-tutorial.tex:308
575 msgid "\\texttt{debcheckout \\textsl{package}}"
576 msgstr ""
577
578 #. type: itemize
579 #: packaging-tutorial.tex:308
580 msgid "Once downloaded, extract with \\texttt{dpkg-source -x \\textsl{file.dsc}}"
581 msgstr ""
582
583 #. type: frame{#2}
584 #: packaging-tutorial.tex:327 packaging-tutorial.tex:327
585 msgid "Creating a basic source package"
586 msgstr ""
587
588 #. type: itemize
589 #: packaging-tutorial.tex:327
590 msgid ""
591 "Download the upstream source\\\\ (\\textsl{upstream source} = the one from "
592 "the software's original developers)"
593 msgstr ""
594
595 #. type: itemize
596 #: packaging-tutorial.tex:327
597 msgid ""
598 "Rename to "
599 "\\texttt{<\\textsl{source\\_package}>\\_<\\textsl{upstream\\_version}>.orig.tar.gz}\\\\ "
600 "(example: \\texttt{simgrid\\_3.6.orig.tar.gz})"
601 msgstr ""
602
603 #. type: itemize
604 #: packaging-tutorial.tex:327
605 msgid "Untar it"
606 msgstr ""
607
608 #. type: itemize
609 #: packaging-tutorial.tex:327
610 msgid ""
611 "\\texttt{cd \\textsl{upstream\\_source} \\&\\& dh\\_make} (from the "
612 "\\textbf{dh-make} package)"
613 msgstr ""
614
615 #. type: itemize
616 #: packaging-tutorial.tex:327
617 msgid ""
618 "There are some alternatives to \\texttt{dh\\_make} for specific sets of "
619 "packages: \\textbf{dh-make-perl}, \\textbf{dh-make-php}, \\ldots"
620 msgstr ""
621
622 #. type: itemize
623 #: packaging-tutorial.tex:327
624 msgid "\\texttt{debian/} directory created, with a lot of files in it"
625 msgstr ""
626
627 #. type: frame{#2}
628 #: packaging-tutorial.tex:356 packaging-tutorial.tex:356
629 msgid "Files in debian/"
630 msgstr ""
631
632 #. type: frame
633 #: packaging-tutorial.tex:356
634 msgid ""
635 "All the packaging work should be made by modifying files in "
636 "\\texttt{debian/}"
637 msgstr ""
638
639 #. type: itemize
640 #: packaging-tutorial.tex:356
641 msgid "Main files:"
642 msgstr ""
643
644 #. type: itemize
645 #: packaging-tutorial.tex:356
646 msgid "\\textbf{control} -- meta-data about the package (dependencies, etc)"
647 msgstr ""
648
649 #. type: itemize
650 #: packaging-tutorial.tex:356
651 msgid "\\textbf{rules} -- specifies how to build the package"
652 msgstr ""
653
654 #. type: itemize
655 #: packaging-tutorial.tex:356
656 msgid "\\textbf{copyright} -- copyright information for the package"
657 msgstr ""
658
659 #. type: itemize
660 #: packaging-tutorial.tex:356
661 msgid "\\textbf{changelog} -- history of the Debian package"
662 msgstr ""
663
664 #. type: itemize
665 #: packaging-tutorial.tex:356
666 msgid "Other files:"
667 msgstr ""
668
669 #. type: itemize
670 #: packaging-tutorial.tex:356
671 msgid "compat"
672 msgstr ""
673
674 #. type: itemize
675 #: packaging-tutorial.tex:356
676 msgid "watch"
677 msgstr ""
678
679 #. type: itemize
680 #: packaging-tutorial.tex:356
681 msgid "dh\\_install* targets\\\\ {\\small *.dirs, *.docs, *.manpages, \\ldots}"
682 msgstr ""
683
684 #. type: itemize
685 #: packaging-tutorial.tex:356
686 msgid "maintainer scripts\\\\ {\\small *.postinst, *.prerm, \\ldots}"
687 msgstr ""
688
689 #. type: itemize
690 #: packaging-tutorial.tex:356
691 msgid "source/format"
692 msgstr ""
693
694 #. type: itemize
695 #: packaging-tutorial.tex:356
696 msgid "patches/ -- if you need to modify the upstream sources"
697 msgstr ""
698
699 #. type: itemize
700 #: packaging-tutorial.tex:356
701 msgid "Several files use a format based on RFC 822 (mail headers)"
702 msgstr ""
703
704 #. type: frame{#2}
705 #: packaging-tutorial.tex:368
706 msgid "debian/changelog"
707 msgstr ""
708
709 #. type: itemize
710 #: packaging-tutorial.tex:368
711 msgid "Lists the Debian packaging changes"
712 msgstr ""
713
714 #. type: itemize
715 #: packaging-tutorial.tex:368
716 msgid "Gives the current version of the package"
717 msgstr ""
718
719 #. type: tikzpicture
720 #: packaging-tutorial.tex:368
721 msgid ""
722 "\\draw (0,0) node[above right] {\\large 1.2.1.1-5}; \\draw "
723 "[decorate,decoration={brace}] (2,0) -- (1.45,0) node[at start,below,text "
724 "width=1.6cm,text centered] {\\small Debian revision}; \\draw "
725 "[decorate,decoration={brace}] (1.4,0) -- (0,0) node[midway,below,text "
726 "width=1.6cm,text centered] { \\small Upstream version};"
727 msgstr ""
728
729 #. %
730 #. type: itemize
731 #: packaging-tutorial.tex:379
732 msgid "Edited manually or with \\texttt{dch}"
733 msgstr ""
734
735 #. type: itemize
736 #: packaging-tutorial.tex:379
737 msgid ""
738 "Special format to automatically close Debian or Ubuntu bugs\\\\ Debian: "
739 "\\texttt{Closes:~\\#595268}; Ubuntu: \\texttt{LP:~\\#616929}"
740 msgstr ""
741
742 #. type: itemize
743 #: packaging-tutorial.tex:379
744 msgid "Installed as \\texttt{/usr/share/doc/\\textit{package}/changelog.Debian.gz}"
745 msgstr ""
746
747 #. type: lstlisting
748 #: packaging-tutorial.tex:379
749 #, no-wrap
750 msgid ""
751 "[basicstyle=\\ttfamily\\footnotesize]\n"
752 "mpich2 (1.2.1.1-5) unstable; urgency=low\n"
753 "\n"
754 msgstr ""
755
756 #. type: lstlisting
757 #: packaging-tutorial.tex:385
758 #, no-wrap
759 msgid ""
760 "  * Use /usr/bin/python instead of /usr/bin/python2.5. Allow\n"
761 "    to drop dependency on python2.5.  Closes: #595268\n"
762 "  * Make /usr/bin/mpdroot setuid. This is the default after\n"
763 "    the installation of mpich2 from source, too. LP: #616929\n"
764 "    + Add corresponding lintian override.\n"
765 "\n"
766 msgstr ""
767
768 #. type: lstlisting
769 #: packaging-tutorial.tex:387
770 #, no-wrap
771 msgid " -- Lucas Nussbaum <lucas@debian.org>  Wed, 15 Sep 2010 18:13:44 +0200"
772 msgstr ""
773
774 #. type: frame{#2}
775 #: packaging-tutorial.tex:414
776 msgid "debian/control"
777 msgstr ""
778
779 #. type: itemize
780 #: packaging-tutorial.tex:414
781 msgid "Package metadata"
782 msgstr ""
783
784 #. type: itemize
785 #: packaging-tutorial.tex:414
786 msgid "For the source package itself"
787 msgstr ""
788
789 #. type: itemize
790 #: packaging-tutorial.tex:414
791 msgid "For each binary package built from this source"
792 msgstr ""
793
794 #. type: itemize
795 #: packaging-tutorial.tex:414
796 msgid ""
797 "Package name, section, priority, maintainer, uploaders, build-dependencies, "
798 "dependencies, description, homepage, \\ldots"
799 msgstr ""
800
801 #. type: itemize
802 #: packaging-tutorial.tex:414
803 msgid ""
804 "Documentation: Debian Policy chapter 5\\\\ "
805 "\\url{http://www.debian.org/doc/debian-policy/ch-controlfields.html}"
806 msgstr ""
807
808 #. type: lstlisting
809 #: packaging-tutorial.tex:414
810 #, no-wrap
811 msgid ""
812 "[basicstyle=\\ttfamily\\footnotesize]\n"
813 "Source: wget\n"
814 "Section: web\n"
815 "Priority: important\n"
816 "Maintainer: Noel Kothe <noel@debian.org>\n"
817 "Build-Depends: debhelper (>> 5.0.0), gettext, texinfo,\n"
818 " libssl-dev (>= 0.9.8), dpatch, info2man\n"
819 "Standards-Version: 3.8.4\n"
820 "Homepage: http://www.gnu.org/software/wget/\n"
821 "\n"
822 msgstr ""
823
824 #. type: lstlisting
825 #: packaging-tutorial.tex:420
826 #, no-wrap
827 msgid ""
828 "Package: wget\n"
829 "Architecture: any\n"
830 "Depends: ${shlibs:Depends}, ${misc:Depends}\n"
831 "Description: retrieves files from the web\n"
832 " Wget is a network utility to retrieve files from the Web"
833 msgstr ""
834
835 #. type: frame{#2}
836 #: packaging-tutorial.tex:449
837 msgid "Architecture: all or any"
838 msgstr ""
839
840 #. type: frame
841 #: packaging-tutorial.tex:449
842 msgid "Two kinds of binary packages:"
843 msgstr ""
844
845 #. type: itemize
846 #: packaging-tutorial.tex:449
847 msgid "Packages with different contents on each Debian architecture"
848 msgstr ""
849
850 #. type: itemize
851 #: packaging-tutorial.tex:449
852 msgid "Example: C program"
853 msgstr ""
854
855 #. type: itemize
856 #: packaging-tutorial.tex:449
857 msgid "\\texttt{Architecture:\\ any} in \\texttt{debian/control}"
858 msgstr ""
859
860 #. type: itemize
861 #: packaging-tutorial.tex:449
862 msgid ""
863 "Or, if it only works on a subset of architectures:\\\\ "
864 "\\texttt{Architecture:\\ amd64 i386 ia64 hurd-i386}"
865 msgstr ""
866
867 #. type: itemize
868 #: packaging-tutorial.tex:449
869 msgid "buildd.debian.org: builds all the other architectures for you on upload"
870 msgstr ""
871
872 #. type: itemize
873 #: packaging-tutorial.tex:449
874 msgid ""
875 "Named "
876 "\\texttt{\\textsl{package}\\_\\textsl{version}\\_\\textsl{architecture}.deb}"
877 msgstr ""
878
879 #. type: itemize
880 #: packaging-tutorial.tex:449
881 msgid "Packages with the same content on all architectures"
882 msgstr ""
883
884 #. type: itemize
885 #: packaging-tutorial.tex:449
886 msgid "Example: Perl library"
887 msgstr ""
888
889 #. type: itemize
890 #: packaging-tutorial.tex:449
891 msgid "\\texttt{Architecture:\\ all} in \\texttt{debian/control}"
892 msgstr ""
893
894 #. type: itemize
895 #: packaging-tutorial.tex:449
896 msgid "Named \\texttt{\\textsl{package}\\_\\textsl{version}\\_\\textbf{all}.deb}"
897 msgstr ""
898
899 #. type: frame
900 #: packaging-tutorial.tex:449
901 msgid ""
902 "A source package can generate a mix of \\texttt{Architecture:\\ any} and "
903 "\\texttt{Architecture:\\ all} binary packages"
904 msgstr ""
905
906 #. type: frame{#2}
907 #: packaging-tutorial.tex:475
908 msgid "debian/rules"
909 msgstr ""
910
911 #. type: itemize
912 #: packaging-tutorial.tex:475
913 msgid "Makefile"
914 msgstr ""
915
916 #. type: itemize
917 #: packaging-tutorial.tex:475
918 msgid "Interface used to build Debian packages"
919 msgstr ""
920
921 #. type: itemize
922 #: packaging-tutorial.tex:475
923 msgid ""
924 "Documented in Debian Policy, chapter 4.8\\\\ {\\small "
925 "\\texttt{http://www.debian.org/doc/debian-policy/ch-source.html\\#s-debianrules}}"
926 msgstr ""
927
928 #. type: itemize
929 #: packaging-tutorial.tex:475
930 msgid "Five required targets:"
931 msgstr ""
932
933 #. type: itemize
934 #: packaging-tutorial.tex:475
935 msgid "\\texttt{build}: should perform all the configuration and compilation"
936 msgstr ""
937
938 #. type: itemize
939 #: packaging-tutorial.tex:475
940 msgid "\\texttt{binary, binary-arch, binary-indep}: build the binary packages"
941 msgstr ""
942
943 #. type: itemize
944 #: packaging-tutorial.tex:475
945 msgid ""
946 "\\texttt{dpkg-buildpackage} will call \\texttt{binary} to build all the "
947 "packages, or \\texttt{binary-arch} to build only the "
948 "\\texttt{Architecture:~any} packages"
949 msgstr ""
950
951 #. type: itemize
952 #: packaging-tutorial.tex:475
953 msgid "\\texttt{clean}: clean up the source directory"
954 msgstr ""
955
956 #. type: subsection{#2}
957 #: packaging-tutorial.tex:509
958 msgid "Packaging helpers"
959 msgstr ""
960
961 #. type: frame{#2}
962 #: packaging-tutorial.tex:509
963 msgid "Packaging helpers -- debhelper"
964 msgstr ""
965
966 #. type: itemize
967 #: packaging-tutorial.tex:509
968 msgid "You could write shell code in \\texttt{debian/rules} directly"
969 msgstr ""
970
971 #. type: itemize
972 #: packaging-tutorial.tex:509
973 msgid "See the \\texttt{adduser} package for example"
974 msgstr ""
975
976 #. type: itemize
977 #: packaging-tutorial.tex:509
978 msgid "Better practice (used by most packages): use a \\textsl{Packaging helper}"
979 msgstr ""
980
981 #. type: itemize
982 #: packaging-tutorial.tex:509
983 msgid "Most popular one: \\textbf{debhelper} (used by 98\\% of packages)"
984 msgstr ""
985
986 #. type: itemize
987 #: packaging-tutorial.tex:509
988 msgid "Goals:"
989 msgstr ""
990
991 #. type: itemize
992 #: packaging-tutorial.tex:509
993 msgid "Factor the common tasks in standard tools used by all packages"
994 msgstr ""
995
996 #. type: itemize
997 #: packaging-tutorial.tex:509
998 msgid "Fix some packaging bugs once for all packages"
999 msgstr ""
1000
1001 #. type: itemize
1002 #: packaging-tutorial.tex:509
1003 msgid ""
1004 "{\\footnotesize dh\\_installdirs, dh\\_installchangelogs, dh\\_installdocs, "
1005 "dh\\_installexamples, dh\\_install, dh\\_installdebconf, dh\\_installinit, "
1006 "dh\\_link, dh\\_strip, dh\\_compress, dh\\_fixperms, dh\\_perl, "
1007 "dh\\_makeshlibs, dh\\_installdeb, dh\\_shlibdeps, dh\\_gencontrol, "
1008 "dh\\_md5sums, dh\\_builddeb, \\ldots}"
1009 msgstr ""
1010
1011 #. type: itemize
1012 #: packaging-tutorial.tex:509
1013 msgid "Called from \\texttt{debian/rules}"
1014 msgstr ""
1015
1016 #. type: itemize
1017 #: packaging-tutorial.tex:509
1018 msgid "Configurable using command parameters or files in \\texttt{debian/}"
1019 msgstr ""
1020
1021 #. type: itemize
1022 #: packaging-tutorial.tex:509
1023 msgid ""
1024 "{\\footnotesize \\ttfamily \\textsl{package}.docs, "
1025 "\\textsl{package}.examples, \\textsl{package}.install, "
1026 "\\textsl{package}.manpages, \\ldots}"
1027 msgstr ""
1028
1029 #. type: itemize
1030 #: packaging-tutorial.tex:509
1031 msgid ""
1032 "Third-party helpers for sets of packages: \\textbf{python-support}, "
1033 "\\textbf{dh\\_ocaml}, \\ldots"
1034 msgstr ""
1035
1036 #. type: itemize
1037 #: packaging-tutorial.tex:509
1038 msgid "Gotcha: \\texttt{debian/compat}: Debhelper compatibility version (use \"7\")"
1039 msgstr ""
1040
1041 #. type: frame{#2}
1042 #: packaging-tutorial.tex:513
1043 msgid "debian/rules using debhelper (1/2)"
1044 msgstr ""
1045
1046 #. type: lstlisting
1047 #: packaging-tutorial.tex:513
1048 #, no-wrap
1049 msgid ""
1050 "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n"
1051 "#!/usr/bin/make -f\n"
1052 "\n"
1053 msgstr ""
1054
1055 #. type: lstlisting
1056 #: packaging-tutorial.tex:516
1057 #, no-wrap
1058 msgid ""
1059 "# Uncomment this to turn on verbose mode.\n"
1060 "#export DH_VERBOSE=1\n"
1061 "\n"
1062 msgstr ""
1063
1064 #. type: lstlisting
1065 #: packaging-tutorial.tex:520
1066 #, no-wrap
1067 msgid ""
1068 "build: \n"
1069 "        $(MAKE)\n"
1070 "        #docbook-to-man debian/packagename.sgml > packagename.1\n"
1071 "\n"
1072 msgstr ""
1073
1074 #. type: lstlisting
1075 #: packaging-tutorial.tex:527
1076 #, no-wrap
1077 msgid ""
1078 "clean: \n"
1079 "        dh_testdir\n"
1080 "        dh_testroot\n"
1081 "        rm -f build-stamp configure-stamp\n"
1082 "        $(MAKE) clean\n"
1083 "        dh_clean \n"
1084 "\n"
1085 msgstr ""
1086
1087 #. type: lstlisting
1088 #: packaging-tutorial.tex:535
1089 #, no-wrap
1090 msgid ""
1091 "install: build\n"
1092 "        dh_testdir\n"
1093 "        dh_testroot\n"
1094 "        dh_clean -k \n"
1095 "        dh_installdirs\n"
1096 "        # Add here commands to install the package into "
1097 "debian/packagename.\n"
1098 "        $(MAKE) DESTDIR=$(CURDIR)/debian/packagename install"
1099 msgstr ""
1100
1101 #. type: frame{#2}
1102 #: packaging-tutorial.tex:540
1103 msgid "debian/rules using debhelper (2/2)"
1104 msgstr ""
1105
1106 #. type: lstlisting
1107 #: packaging-tutorial.tex:540
1108 #, no-wrap
1109 msgid ""
1110 "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n"
1111 "\n"
1112 msgstr ""
1113
1114 #. type: lstlisting
1115 #: packaging-tutorial.tex:543
1116 #, no-wrap
1117 msgid ""
1118 "# Build architecture-independent files here.\n"
1119 "binary-indep: build install\n"
1120 "\n"
1121 msgstr ""
1122
1123 #. type: lstlisting
1124 #: packaging-tutorial.tex:562
1125 #, no-wrap
1126 msgid ""
1127 "# Build architecture-dependent files here.\n"
1128 "binary-arch: build install\n"
1129 "        dh_testdir\n"
1130 "        dh_testroot\n"
1131 "        dh_installchangelogs \n"
1132 "        dh_installdocs\n"
1133 "        dh_installexamples\n"
1134 "        dh_install\n"
1135 "        dh_installman\n"
1136 "        dh_link\n"
1137 "        dh_strip\n"
1138 "        dh_compress\n"
1139 "        dh_fixperms\n"
1140 "        dh_installdeb\n"
1141 "        dh_shlibdeps\n"
1142 "        dh_gencontrol\n"
1143 "        dh_md5sums\n"
1144 "        dh_builddeb\n"
1145 "\n"
1146 msgstr ""
1147
1148 #. type: lstlisting
1149 #: packaging-tutorial.tex:565
1150 #, no-wrap
1151 msgid ""
1152 "binary: binary-indep binary-arch\n"
1153 ".PHONY: build clean binary-indep binary-arch binary install configure"
1154 msgstr ""
1155
1156 #. type: frame{#2}
1157 #: packaging-tutorial.tex:596
1158 msgid "CDBS"
1159 msgstr ""
1160
1161 #. type: itemize
1162 #: packaging-tutorial.tex:596
1163 msgid "With debhelper, still a lot of redundancy between packages"
1164 msgstr ""
1165
1166 #. type: itemize
1167 #: packaging-tutorial.tex:596
1168 msgid "Second-level helpers that factor common functionality"
1169 msgstr ""
1170
1171 #. type: itemize
1172 #: packaging-tutorial.tex:596
1173 msgid ""
1174 "E.g building with \\texttt{./configure \\&\\& make \\&\\& make install} or "
1175 "CMake"
1176 msgstr ""
1177
1178 #. type: itemize
1179 #: packaging-tutorial.tex:596
1180 msgid "CDBS:"
1181 msgstr ""
1182
1183 #. type: itemize
1184 #: packaging-tutorial.tex:596
1185 msgid "Introduced in 2005, based on advanced \\textsl{GNU make} magic"
1186 msgstr ""
1187
1188 #. type: itemize
1189 #: packaging-tutorial.tex:596
1190 msgid "Documentation: \\texttt{/usr/share/doc/cdbs/}"
1191 msgstr ""
1192
1193 #. type: itemize
1194 #: packaging-tutorial.tex:596
1195 msgid "Support for Perl, Python, Ruby, GNOME, KDE, Java, Haskell, \\ldots"
1196 msgstr ""
1197
1198 #. type: itemize
1199 #: packaging-tutorial.tex:596
1200 msgid "But some people hate it:"
1201 msgstr ""
1202
1203 #. type: itemize
1204 #: packaging-tutorial.tex:596
1205 msgid ""
1206 "Sometimes difficult to customize package builds:\\\\ \"\\textsl{twisty maze "
1207 "of makefiles and environment variables}\""
1208 msgstr ""
1209
1210 #. type: itemize
1211 #: packaging-tutorial.tex:596
1212 msgid "Slower than plain debhelper (many useless calls to \\texttt{dh\\_*})"
1213 msgstr ""
1214
1215 #. type: lstlisting
1216 #: packaging-tutorial.tex:596
1217 #, no-wrap
1218 msgid ""
1219 "[basicstyle=\\ttfamily\\footnotesize,escapeinside=\\{\\}]\n"
1220 "#!/usr/bin/make -f\n"
1221 "include /usr/share/cdbs/1/rules/debhelper.mk\n"
1222 "include /usr/share/cdbs/1/class/autotools.mk\n"
1223 "\n"
1224 msgstr ""
1225
1226 #. type: lstlisting
1227 #: packaging-tutorial.tex:600
1228 #, no-wrap
1229 msgid ""
1230 "# add an action after the build\n"
1231 "build/mypackage::\n"
1232 "    /bin/bash debian/scripts/foo.sh\n"
1233 "      "
1234 msgstr ""
1235
1236 #. type: frame{#2}
1237 #: packaging-tutorial.tex:621
1238 msgid "Dh (aka Debhelper 7, or dh7)"
1239 msgstr ""
1240
1241 #. type: itemize
1242 #: packaging-tutorial.tex:621
1243 msgid "Introduced in 2008 as a \\textsl{CDBS killer}"
1244 msgstr ""
1245
1246 #. type: itemize
1247 #: packaging-tutorial.tex:621
1248 msgid "\\textbf{dh} command that calls \\texttt{dh\\_*}"
1249 msgstr ""
1250
1251 #. type: itemize
1252 #: packaging-tutorial.tex:621
1253 msgid "Simple \\textsl{debian/rules}, listing only overrides"
1254 msgstr ""
1255
1256 #. type: itemize
1257 #: packaging-tutorial.tex:621
1258 msgid "Easier to customize than CDBS"
1259 msgstr ""
1260
1261 #. type: itemize
1262 #: packaging-tutorial.tex:621
1263 msgid ""
1264 "Doc: manpages (\\texttt{debhelper(7)}, \\texttt{dh(1)}) + slides from "
1265 "DebConf9 talk\\\\ "
1266 "\\url{http://kitenet.net/~joey/talks/debhelper/debhelper-slides.pdf}"
1267 msgstr ""
1268
1269 #. type: lstlisting
1270 #: packaging-tutorial.tex:621
1271 #, no-wrap
1272 msgid ""
1273 "[basicstyle=\\ttfamily\\footnotesize]\n"
1274 "#!/usr/bin/make -f\n"
1275 "%:\n"
1276 "    dh $@\n"
1277 "\n"
1278 msgstr ""
1279
1280 #. type: lstlisting
1281 #: packaging-tutorial.tex:624
1282 #, no-wrap
1283 msgid ""
1284 "override_dh_auto_configure:\n"
1285 "     dh_auto_configure -- --with-kitchen-sink\n"
1286 "\n"
1287 msgstr ""
1288
1289 #. type: lstlisting
1290 #: packaging-tutorial.tex:627
1291 #, no-wrap
1292 msgid ""
1293 "override_dh_auto_build:\n"
1294 "     make world\n"
1295 "\n"
1296 msgstr ""
1297
1298 #. type: lstlisting
1299 #: packaging-tutorial.tex:628
1300 #, no-wrap
1301 msgid "    "
1302 msgstr ""
1303
1304 #. type: frame{#2}
1305 #: packaging-tutorial.tex:649
1306 msgid "Classic debhelper vs CDBS vs dh"
1307 msgstr ""
1308
1309 #. type: itemize
1310 #: packaging-tutorial.tex:649
1311 msgid ""
1312 "Mind shares:\\\\ Classic debhelper: 36\\% \\hskip 1em CDBS: 21\\% \\hskip "
1313 "1em dh: 41\\%"
1314 msgstr ""
1315
1316 #. type: itemize
1317 #: packaging-tutorial.tex:649
1318 msgid "Which one should I learn?"
1319 msgstr ""
1320
1321 #. type: itemize
1322 #: packaging-tutorial.tex:649
1323 msgid "Probably a bit of all of them"
1324 msgstr ""
1325
1326 #. type: itemize
1327 #: packaging-tutorial.tex:649
1328 msgid "You need to know debhelper to use dh and CDBS"
1329 msgstr ""
1330
1331 #. type: itemize
1332 #: packaging-tutorial.tex:649
1333 msgid "You might have to modify CDBS packages"
1334 msgstr ""
1335
1336 #. type: itemize
1337 #: packaging-tutorial.tex:649
1338 msgid "Which one should I use for a new package?"
1339 msgstr ""
1340
1341 #. type: itemize
1342 #: packaging-tutorial.tex:649
1343 msgid "\\textbf{dh} (only solution with an increasing mind share)"
1344 msgstr ""
1345
1346 #. type: axis[#1]
1347 #: packaging-tutorial.tex:663
1348 msgid ""
1349 "small,label style={font=\\footnotesize},xlabel={\\small "
1350 "Time},ylabel={\\small Market share (\\%)}, date coordinates "
1351 "in=x,height=4.85cm,width=9cm,xticklabel={\\month/\\year}, legend "
1352 "style={font=\\footnotesize,at={(1.02,1)},anchor=north west},max space "
1353 "between ticks=82,try min ticks=5,ymin=0"
1354 msgstr ""
1355
1356 #. type: axis
1357 #: packaging-tutorial.tex:663
1358 msgid ""
1359 "\\addplot[mark=none,blue,thick,style=densely dotted] table[x=date,y=dh] "
1360 "{cdbs-dh7.txt}; \\addplot[mark=none,red,thick,style=dashed] "
1361 "table[x=date,y=dh7] {cdbs-dh7.txt}; \\addplot[mark=none,green,thick] "
1362 "table[x=date,y=cdbs] {cdbs-dh7.txt}; \\legend{debhelper, dh, CDBS}"
1363 msgstr ""
1364
1365 #. type: section{#2}
1366 #: packaging-tutorial.tex:672
1367 msgid "Building and testing packages"
1368 msgstr ""
1369
1370 #. type: frame{#2}
1371 #: packaging-tutorial.tex:672 packaging-tutorial.tex:672
1372 msgid "Building packages"
1373 msgstr ""
1374
1375 #. type: itemize
1376 #: packaging-tutorial.tex:672
1377 msgid ""
1378 "\\textttc{apt-get build-dep mypackage}\\\\ Installs the "
1379 "\\textsl{build-dependencies} (for a package in the archive)"
1380 msgstr ""
1381
1382 #. type: itemize
1383 #: packaging-tutorial.tex:724
1384 msgid "\\textttc{debuild}: build, test with \\texttt{lintian}, sign with GPG"
1385 msgstr ""
1386
1387 #. type: itemize
1388 #: packaging-tutorial.tex:724
1389 msgid "Also possible to call \\textttc{dpkg-buildpackage} directly"
1390 msgstr ""
1391
1392 #. type: itemize
1393 #: packaging-tutorial.tex:724
1394 msgid "Usually with \\texttt{dpkg-buildpackage -us -uc}"
1395 msgstr ""
1396
1397 #. type: itemize
1398 #: packaging-tutorial.tex:724
1399 msgid "It is better to build packages in a clean \\& minimal environment"
1400 msgstr ""
1401
1402 #. type: itemize
1403 #: packaging-tutorial.tex:724
1404 msgid ""
1405 "\\textttc{pbuilder} -- helper to build packages in a \\textsl{chroot}\\\\ "
1406 "Good documentation: \\url{https://wiki.ubuntu.com/PbuilderHowto}\\\\ "
1407 "(optimization: \\textttc{cowbuilder} \\textttc{ccache} \\textttc{distcc})"
1408 msgstr ""
1409
1410 #. type: itemize
1411 #: packaging-tutorial.tex:724
1412 msgid ""
1413 "\\textttc{schroot} and \\textttc{sbuild}: used on the Debian build "
1414 "daemons\\\\ (not as simple as \\texttt{pbuilder}, but allows LVM "
1415 "snapshots\\\\ see: \\url{https://help.ubuntu.com/community/SbuildLVMHowto} )"
1416 msgstr ""
1417
1418 #. type: itemize
1419 #: packaging-tutorial.tex:724
1420 msgid "Generates \\texttt{.deb} files and a \\texttt{.changes} file"
1421 msgstr ""
1422
1423 #. type: itemize
1424 #: packaging-tutorial.tex:724
1425 msgid "\\texttt{.changes}: describes what was built; used to upload the package"
1426 msgstr ""
1427
1428 #. type: frame{#2}
1429 #: packaging-tutorial.tex:724 packaging-tutorial.tex:724
1430 msgid "Installing and testing packages"
1431 msgstr ""
1432
1433 #. type: itemize
1434 #: packaging-tutorial.tex:724
1435 msgid ""
1436 "Install the package locally: \\textttc{debi} (will use \\texttt{.changes} to "
1437 "know what to install)"
1438 msgstr ""
1439
1440 #. type: itemize
1441 #: packaging-tutorial.tex:724
1442 msgid ""
1443 "List the content of the package: \\texttt{{\\color{rouge}debc} "
1444 "../mypackage<TAB>.changes}"
1445 msgstr ""
1446
1447 #. type: itemize
1448 #: packaging-tutorial.tex:724
1449 msgid ""
1450 "Compare the package with a previous version:\\\\ "
1451 "\\texttt{{\\color{rouge}debdiff} ../mypackage\\_1\\_*.changes "
1452 "../mypackage\\_2\\_*.changes}\\\\ or to compare the sources:\\\\ "
1453 "\\texttt{{\\color{rouge}debdiff} ../mypackage\\_1\\_*.dsc "
1454 "../mypackage\\_2\\_*.dsc}\\\\"
1455 msgstr ""
1456
1457 #. type: itemize
1458 #: packaging-tutorial.tex:724
1459 msgid ""
1460 "Check the package with \\texttt{lintian} (static analyzer):\\\\ "
1461 "\\texttt{{\\color{rouge}lintian} ../mypackage<TAB>.changes}\\\\ "
1462 "\\texttt{lintian -i}: gives more information about the errors"
1463 msgstr ""
1464
1465 #. type: itemize
1466 #: packaging-tutorial.tex:724
1467 msgid "Upload the package to Debian (\\textttc{dput}) (needs configuration)"
1468 msgstr ""
1469
1470 #. type: itemize
1471 #: packaging-tutorial.tex:724
1472 msgid ""
1473 "Manage a private Debian archive with \\textttc{reprepro}\\\\ Documentation: "
1474 "\\url{http://mirrorer.alioth.debian.org/}"
1475 msgstr ""
1476
1477 #. type: frame{#2}
1478 #: packaging-tutorial.tex:724 packaging-tutorial.tex:724 packaging-tutorial.tex:1311 packaging-tutorial.tex:1317
1479 msgid "Practical session 1: modifying the grep package"
1480 msgstr ""
1481
1482 #. type: enumerate
1483 #: packaging-tutorial.tex:724 packaging-tutorial.tex:1317
1484 msgid ""
1485 "Go to \\url{http://ftp.debian.org/debian/pool/main/g/grep/} and download "
1486 "version 2.6.3-3 of the package (if you use Ubuntu 11.10 or later, or Debian "
1487 "testing or unstable, use version 2.9-1 or 2.9-2 instead)"
1488 msgstr ""
1489
1490 #. type: enumerate
1491 #: packaging-tutorial.tex:746 packaging-tutorial.tex:1339 packaging-tutorial.tex:1385
1492 msgid "Look at the files in \\texttt{debian/}."
1493 msgstr ""
1494
1495 #. type: itemize
1496 #: packaging-tutorial.tex:746 packaging-tutorial.tex:1339 packaging-tutorial.tex:1385
1497 msgid "How many binary packages are generated by this source package?"
1498 msgstr ""
1499
1500 #. type: itemize
1501 #: packaging-tutorial.tex:746 packaging-tutorial.tex:1339 packaging-tutorial.tex:1385
1502 msgid "Which packaging helper does this package use?"
1503 msgstr ""
1504
1505 #. type: enumerate
1506 #: packaging-tutorial.tex:746 packaging-tutorial.tex:1339 packaging-tutorial.tex:1394
1507 msgid "Build the package"
1508 msgstr ""
1509
1510 #. type: enumerate
1511 #: packaging-tutorial.tex:746 packaging-tutorial.tex:1339 packaging-tutorial.tex:1415
1512 msgid ""
1513 "We are now going to modify the package. Add a changelog entry and increase "
1514 "the version number."
1515 msgstr ""
1516
1517 #. type: enumerate
1518 #: packaging-tutorial.tex:746 packaging-tutorial.tex:1339 packaging-tutorial.tex:1435
1519 msgid "Now disable perl-regexp support (it is a \\texttt{./configure} option)"
1520 msgstr ""
1521
1522 #. type: enumerate
1523 #: packaging-tutorial.tex:746 packaging-tutorial.tex:1339 packaging-tutorial.tex:1435
1524 msgid "Rebuild the package"
1525 msgstr ""
1526
1527 #. type: enumerate
1528 #: packaging-tutorial.tex:746 packaging-tutorial.tex:1339 packaging-tutorial.tex:1465
1529 msgid "Compare the original and the new package with debdiff"
1530 msgstr ""
1531
1532 #. type: enumerate
1533 #: packaging-tutorial.tex:746 packaging-tutorial.tex:1339 packaging-tutorial.tex:1465
1534 msgid "Install the newly built package"
1535 msgstr ""
1536
1537 #. type: enumerate
1538 #: packaging-tutorial.tex:746 packaging-tutorial.tex:1339 packaging-tutorial.tex:1465
1539 msgid "Cry if you messed up ;)"
1540 msgstr ""
1541
1542 #. type: section{#2}
1543 #: packaging-tutorial.tex:761
1544 msgid "Advanced packaging topics"
1545 msgstr ""
1546
1547 #. type: frame{#2}
1548 #: packaging-tutorial.tex:761 packaging-tutorial.tex:761
1549 msgid "debian/copyright"
1550 msgstr ""
1551
1552 #. type: itemize
1553 #: packaging-tutorial.tex:761
1554 msgid "Copyright and license information for the source and the packaging"
1555 msgstr ""
1556
1557 #. type: itemize
1558 #: packaging-tutorial.tex:761
1559 msgid "Traditionally written as a text file"
1560 msgstr ""
1561
1562 #. type: itemize
1563 #: packaging-tutorial.tex:761
1564 msgid "New machine-readable format: \\url{http://dep.debian.net/deps/dep5/}"
1565 msgstr ""
1566
1567 #. type: lstlisting
1568 #: packaging-tutorial.tex:761
1569 #, no-wrap
1570 msgid ""
1571 "[basicstyle=\\ttfamily\\footnotesize]\n"
1572 "Format: <VERSIONED_FORMAT_URL>\n"
1573 "Upstream-Name: X Solitaire\n"
1574 "Source: ftp://ftp.example.com/pub/games\n"
1575 "\n"
1576 msgstr ""
1577
1578 #. type: lstlisting
1579 #: packaging-tutorial.tex:771
1580 #, no-wrap
1581 msgid ""
1582 "Files: *\n"
1583 "Copyright: Copyright 1998 John Doe <jdoe@example.com>\n"
1584 "License: GPL-2+\n"
1585 " This program is free software; you can redistribute it\n"
1586 " [...]\n"
1587 " .\n"
1588 " On Debian systems, the full text of the GNU General Public\n"
1589 " License version 2 can be found in the file\n"
1590 " `/usr/share/common-licenses/GPL-2'.\n"
1591 "\n"
1592 msgstr ""
1593
1594 #. type: lstlisting
1595 #: packaging-tutorial.tex:776
1596 #, no-wrap
1597 msgid ""
1598 "Files: debian/*\n"
1599 "Copyright: Copyright 1998 Jane Smith <jsmith@example.net>\n"
1600 "License:\n"
1601 " [LICENSE TEXT]"
1602 msgstr ""
1603
1604 #. type: frame{#2}
1605 #: packaging-tutorial.tex:807 packaging-tutorial.tex:807
1606 msgid "Modifying the upstream source"
1607 msgstr ""
1608
1609 #. type: frame
1610 #: packaging-tutorial.tex:807
1611 msgid "Often needed:"
1612 msgstr ""
1613
1614 #. type: itemize
1615 #: packaging-tutorial.tex:807
1616 msgid "Fix bugs or add customizations that are specific to Debian"
1617 msgstr ""
1618
1619 #. type: itemize
1620 #: packaging-tutorial.tex:807
1621 msgid "Backport fixes from a newer upstream release"
1622 msgstr ""
1623
1624 #. type: frame
1625 #: packaging-tutorial.tex:807
1626 msgid "Several methods to do it:"
1627 msgstr ""
1628
1629 #. type: itemize
1630 #: packaging-tutorial.tex:807
1631 msgid "Modifying the files directly"
1632 msgstr ""
1633
1634 #. type: itemize
1635 #: packaging-tutorial.tex:807
1636 msgid "Simple"
1637 msgstr ""
1638
1639 #. type: itemize
1640 #: packaging-tutorial.tex:807
1641 msgid "But no way to track and document the changes"
1642 msgstr ""
1643
1644 #. type: itemize
1645 #: packaging-tutorial.tex:807
1646 msgid "Using patch systems"
1647 msgstr ""
1648
1649 #. type: itemize
1650 #: packaging-tutorial.tex:807
1651 msgid "Eases contributing your changes to upstream"
1652 msgstr ""
1653
1654 #. type: itemize
1655 #: packaging-tutorial.tex:807
1656 msgid "Helps sharing the fixes with derivatives"
1657 msgstr ""
1658
1659 #. type: itemize
1660 #: packaging-tutorial.tex:807
1661 msgid ""
1662 "Gives more exposure to the changes\\\\ "
1663 "\\url{http://patch-tracker.debian.org/}"
1664 msgstr ""
1665
1666 #. type: frame{#2}
1667 #: packaging-tutorial.tex:837
1668 msgid "Patch systems"
1669 msgstr ""
1670
1671 #. type: itemize
1672 #: packaging-tutorial.tex:837
1673 msgid "Principle: changes are stored as patches in \\texttt{debian/patches/}"
1674 msgstr ""
1675
1676 #. type: itemize
1677 #: packaging-tutorial.tex:837
1678 msgid "Applied and unapplied during build"
1679 msgstr ""
1680
1681 #. type: itemize
1682 #: packaging-tutorial.tex:837
1683 msgid ""
1684 "Past: several implementations -- \\textsl{simple-patchsys} (\\textsl{cdbs}), "
1685 "\\textsl{dpatch}, \\textbf{\\textsl{quilt}}"
1686 msgstr ""
1687
1688 #. type: itemize
1689 #: packaging-tutorial.tex:837
1690 msgid "Each supports two \\texttt{debian/rules} targets:"
1691 msgstr ""
1692
1693 #. type: itemize
1694 #: packaging-tutorial.tex:837
1695 msgid "\\texttt{debian/rules patch}: apply all patches"
1696 msgstr ""
1697
1698 #. type: itemize
1699 #: packaging-tutorial.tex:837
1700 msgid "\\texttt{debian/rules unpatch}: de-apply all patches"
1701 msgstr ""
1702
1703 #. type: itemize
1704 #: packaging-tutorial.tex:837
1705 msgid "More documentation: \\url{http://wiki.debian.org/debian/patches}"
1706 msgstr ""
1707
1708 #. type: textbf{#1}
1709 #: packaging-tutorial.tex:837
1710 msgid "New source package format with built-in patch system: 3.0 (quilt)"
1711 msgstr ""
1712
1713 #. type: itemize
1714 #: packaging-tutorial.tex:837
1715 msgid "Recommended solution"
1716 msgstr ""
1717
1718 #. type: itemize
1719 #: packaging-tutorial.tex:837
1720 msgid ""
1721 "You need to learn \\textsl{quilt}\\\\ "
1722 "\\url{http://pkg-perl.alioth.debian.org/howto/quilt.html}"
1723 msgstr ""
1724
1725 #. type: itemize
1726 #: packaging-tutorial.tex:837
1727 msgid "Patch-system-agnostic tool in \\texttt{devscripts}: \\texttt{edit-patch}"
1728 msgstr ""
1729
1730 #. type: frame{#2}
1731 #: packaging-tutorial.tex:854
1732 msgid "Documentation of patches"
1733 msgstr ""
1734
1735 #. type: itemize
1736 #: packaging-tutorial.tex:854
1737 msgid "Standard headers at the beginning of the patch"
1738 msgstr ""
1739
1740 #. type: itemize
1741 #: packaging-tutorial.tex:854
1742 msgid ""
1743 "Documented in DEP-3 - Patch Tagging Guidelines\\\\ "
1744 "\\url{http://dep.debian.net/deps/dep3/}"
1745 msgstr ""
1746
1747 #. type: lstlisting
1748 #: packaging-tutorial.tex:854
1749 #, no-wrap
1750 msgid ""
1751 "[basicstyle=\\ttfamily\\footnotesize]\n"
1752 "Description: Fix widget frobnication speeds\n"
1753 " Frobnicating widgets too quickly tended to cause explosions.\n"
1754 "Forwarded: http://lists.example.com/2010/03/1234.html\n"
1755 "Author: John Doe <johndoe-guest@users.alioth.debian.org>\n"
1756 "Applied-Upstream: 1.2, http://bzr.foo.com/frobnicator/revision/123\n"
1757 "Last-Update: 2010-03-29\n"
1758 "\n"
1759 msgstr ""
1760
1761 #. type: lstlisting
1762 #: packaging-tutorial.tex:858
1763 #, no-wrap
1764 msgid ""
1765 "--- a/src/widgets.c\n"
1766 "+++ b/src/widgets.c\n"
1767 "@@ -101,9 +101,6 @@ struct {"
1768 msgstr ""
1769
1770 #. type: frame{#2}
1771 #: packaging-tutorial.tex:878 packaging-tutorial.tex:878
1772 msgid "Doing things during installation and removal"
1773 msgstr ""
1774
1775 #. type: itemize
1776 #: packaging-tutorial.tex:878
1777 msgid "Decompressing the package is sometimes not enough"
1778 msgstr ""
1779
1780 #. type: itemize
1781 #: packaging-tutorial.tex:878
1782 msgid ""
1783 "Create/remove system users, start/stop services, manage "
1784 "\\textsl{alternatives}"
1785 msgstr ""
1786
1787 #. type: itemize
1788 #: packaging-tutorial.tex:878
1789 msgid ""
1790 "Done in \\textsl{maintainer scripts}\\\\ \\texttt{preinst, postinst, prerm, "
1791 "postrm}"
1792 msgstr ""
1793
1794 #. type: itemize
1795 #: packaging-tutorial.tex:878
1796 msgid "Snippets for common actions can be generated by debhelper"
1797 msgstr ""
1798
1799 #. type: itemize
1800 #: packaging-tutorial.tex:878
1801 msgid "Documentation:"
1802 msgstr ""
1803
1804 #. type: itemize
1805 #: packaging-tutorial.tex:878
1806 msgid ""
1807 "Debian Policy Manual, chapter 6\\\\ {\\footnotesize "
1808 "\\url{http://www.debian.org/doc/debian-policy/ch-maintainerscripts.html}}"
1809 msgstr ""
1810
1811 #. type: itemize
1812 #: packaging-tutorial.tex:894
1813 msgid ""
1814 "Debian Developer's Reference, chapter 6.4\\\\ {\\scriptsize "
1815 "\\url{http://www.debian.org/doc/developers-reference/best-pkging-practices.html}}"
1816 msgstr ""
1817
1818 #. type: itemize
1819 #: packaging-tutorial.tex:894
1820 msgid ""
1821 "{\\footnotesize "
1822 "\\url{http://people.debian.org/~srivasta/MaintainerScripts.html}}"
1823 msgstr ""
1824
1825 #. type: itemize
1826 #: packaging-tutorial.tex:894
1827 msgid "Prompting the user"
1828 msgstr ""
1829
1830 #. type: itemize
1831 #: packaging-tutorial.tex:894
1832 msgid "Must be done with \\textbf{debconf}"
1833 msgstr ""
1834
1835 #. type: itemize
1836 #: packaging-tutorial.tex:894
1837 msgid "Documentation: \\texttt{debconf-devel(7)} (\\texttt{debconf-doc} package)"
1838 msgstr ""
1839
1840 #. type: frame{#2}
1841 #: packaging-tutorial.tex:900
1842 msgid "Monitoring upstream versions"
1843 msgstr ""
1844
1845 #. type: itemize
1846 #: packaging-tutorial.tex:900
1847 msgid "Specify where to look in \\texttt{debian/watch} (see \\texttt{uscan(1)})"
1848 msgstr ""
1849
1850 #. type: lstlisting
1851 #: packaging-tutorial.tex:900
1852 #, no-wrap
1853 msgid ""
1854 "[basicstyle=\\ttfamily\\footnotesize]\n"
1855 "version=3\n"
1856 "\n"
1857 msgstr ""
1858
1859 #. type: lstlisting
1860 #: packaging-tutorial.tex:903
1861 #, no-wrap
1862 msgid ""
1863 "http://tmrc.mit.edu/mirror/twisted/Twisted/(\\d\\.\\d)/ \\\n"
1864 "  Twisted-([\\d\\.]*)\\.tar\\.bz2\n"
1865 "    "
1866 msgstr ""
1867
1868 #. type: itemize
1869 #: packaging-tutorial.tex:917
1870 msgid ""
1871 "Debian infrastructure that makes use of \\texttt{debian/watch}:\\\\ "
1872 "\\textbf{Debian External Health Status}\\\\ "
1873 "\\url{http://dehs.alioth.debian.org/}"
1874 msgstr ""
1875
1876 #. type: itemize
1877 #: packaging-tutorial.tex:917
1878 msgid ""
1879 "Maintainer warned by emails sent to the Package Tracking System\\\\ "
1880 "\\url{http://packages.qa.debian.org/}"
1881 msgstr ""
1882
1883 #. type: itemize
1884 #: packaging-tutorial.tex:917
1885 msgid "\\texttt{uscan}: run a manual check"
1886 msgstr ""
1887
1888 #. type: itemize
1889 #: packaging-tutorial.tex:917
1890 msgid "\\texttt{uupdate}: try to update your package to the latest upstream version"
1891 msgstr ""
1892
1893 #. type: subsection{#2}
1894 #: packaging-tutorial.tex:955
1895 msgid "Packaging with a VCS (SVN, Git \\& friends)"
1896 msgstr ""
1897
1898 #. type: frame{#2}
1899 #: packaging-tutorial.tex:955
1900 msgid "Packaging with a VCS (SVN, Git, etc.)"
1901 msgstr ""
1902
1903 #. type: itemize
1904 #: packaging-tutorial.tex:955
1905 msgid ""
1906 "Several tools to help manage branches and tags for your packaging work:\\\\ "
1907 "\\texttt{svn-buildpackage}, \\texttt{git-buildpackage}"
1908 msgstr ""
1909
1910 #. type: itemize
1911 #: packaging-tutorial.tex:955
1912 msgid "Example: \\texttt{git-buildpackage}"
1913 msgstr ""
1914
1915 #. type: itemize
1916 #: packaging-tutorial.tex:955
1917 msgid ""
1918 "\\texttt{upstream} branch to track upstream with "
1919 "\\texttt{upstream/\\textsl{version}} tags"
1920 msgstr ""
1921
1922 #. type: itemize
1923 #: packaging-tutorial.tex:955
1924 msgid "\\texttt{master} branch tracks the Debian package"
1925 msgstr ""
1926
1927 #. type: itemize
1928 #: packaging-tutorial.tex:955
1929 msgid "\\texttt{debian/\\textsl{version}} tags for each upload"
1930 msgstr ""
1931
1932 #. type: itemize
1933 #: packaging-tutorial.tex:955
1934 msgid "\\texttt{pristine-tar} branch to be able to rebuild the upstream tarball"
1935 msgstr ""
1936
1937 #. type: itemize
1938 #: packaging-tutorial.tex:955
1939 msgid "\\texttt{Vcs-*} fields in \\texttt{debian/control} to locate the repository"
1940 msgstr ""
1941
1942 #. type: itemize
1943 #: packaging-tutorial.tex:955
1944 msgid "\\url{http://wiki.debian.org/Alioth/Git}"
1945 msgstr ""
1946
1947 #. type: itemize
1948 #: packaging-tutorial.tex:955
1949 msgid "\\url{http://wiki.debian.org/Alioth/Svn}"
1950 msgstr ""
1951
1952 #. type: lstlisting
1953 #: packaging-tutorial.tex:955
1954 #, no-wrap
1955 msgid ""
1956 "[basicstyle=\\ttfamily\\footnotesize]\n"
1957 "Vcs-Browser: http://git.debian.org/?p=devscripts/devscripts.git\n"
1958 "Vcs-Git: git://git.debian.org/devscripts/devscripts.git\n"
1959 "  "
1960 msgstr ""
1961
1962 #. type: lstlisting
1963 #: packaging-tutorial.tex:955
1964 #, no-wrap
1965 msgid ""
1966 "[basicstyle=\\ttfamily\\footnotesize]\n"
1967 "Vcs-Browser: http://svn.debian.org/viewsvn/pkg-perl/trunk/libwww-perl/\n"
1968 "Vcs-Svn: svn://svn.debian.org/pkg-perl/trunk/libwww-perl\n"
1969 "  "
1970 msgstr ""
1971
1972 #. type: itemize
1973 #: packaging-tutorial.tex:955
1974 msgid ""
1975 "VCS-agnostic interface: \\texttt{debcheckout}, \\texttt{debcommit}, "
1976 "\\texttt{debrelease}\\\\"
1977 msgstr ""
1978
1979 #. type: itemize
1980 #: packaging-tutorial.tex:955
1981 msgid ""
1982 "\\texttt{debcheckout grep} $\\rightarrow$ checks out the source package from "
1983 "Git"
1984 msgstr ""
1985
1986 #. type: frame{#2}
1987 #: packaging-tutorial.tex:978 packaging-tutorial.tex:978
1988 msgid "Backporting packages"
1989 msgstr ""
1990
1991 #. type: itemize
1992 #: packaging-tutorial.tex:978
1993 msgid ""
1994 "Goal: use a newer version of a package on an older system\\\\ e.g use "
1995 "\\textsl{mutt} from Debian \\textsl{unstable} on Debian \\textsl{stable}"
1996 msgstr ""
1997
1998 #. type: itemize
1999 #: packaging-tutorial.tex:978
2000 msgid "General idea:"
2001 msgstr ""
2002
2003 #. type: itemize
2004 #: packaging-tutorial.tex:978
2005 msgid "Take the source package from Debian unstable"
2006 msgstr ""
2007
2008 #. type: itemize
2009 #: packaging-tutorial.tex:978
2010 msgid "Modify it so that it builds and works fine on Debian stable"
2011 msgstr ""
2012
2013 #. type: itemize
2014 #: packaging-tutorial.tex:978
2015 msgid "Sometimes trivial (no changes needed)"
2016 msgstr ""
2017
2018 #. type: itemize
2019 #: packaging-tutorial.tex:978
2020 msgid "Sometimes difficult"
2021 msgstr ""
2022
2023 #. type: itemize
2024 #: packaging-tutorial.tex:978
2025 msgid "Sometimes impossible (many unavailable dependencies)"
2026 msgstr ""
2027
2028 #. type: itemize
2029 #: packaging-tutorial.tex:978
2030 msgid ""
2031 "Some backports are provided and supported by the Debian project\\\\ "
2032 "\\url{http://backports.debian.org/}"
2033 msgstr ""
2034
2035 #. type: section{#2}
2036 #: packaging-tutorial.tex:1009
2037 msgid "Maintaining packages in Debian"
2038 msgstr ""
2039
2040 #. type: frame{#2}
2041 #: packaging-tutorial.tex:1009 packaging-tutorial.tex:1009
2042 msgid "Several ways to contribute to Debian"
2043 msgstr ""
2044
2045 #. type: itemize
2046 #: packaging-tutorial.tex:1009
2047 msgid "\\textbf{Worst} way to contribute:"
2048 msgstr ""
2049
2050 #. type: enumerate
2051 #: packaging-tutorial.tex:1009
2052 msgid "Package your own application"
2053 msgstr ""
2054
2055 #. type: enumerate
2056 #: packaging-tutorial.tex:1009
2057 msgid "Get it into Debian"
2058 msgstr ""
2059
2060 #. type: enumerate
2061 #: packaging-tutorial.tex:1009
2062 msgid "Disappear"
2063 msgstr ""
2064
2065 #. type: itemize
2066 #: packaging-tutorial.tex:1009
2067 msgid "\\textbf{Better} ways to contribute:"
2068 msgstr ""
2069
2070 #. type: itemize
2071 #: packaging-tutorial.tex:1009
2072 msgid "Get involved in packaging teams"
2073 msgstr ""
2074
2075 #. type: itemize
2076 #: packaging-tutorial.tex:1009
2077 msgid "Many teams that focus on set of packages, and need help"
2078 msgstr ""
2079
2080 #. type: itemize
2081 #: packaging-tutorial.tex:1009
2082 msgid "List available at \\url{http://wiki.debian.org/Teams}"
2083 msgstr ""
2084
2085 #. type: itemize
2086 #: packaging-tutorial.tex:1009
2087 msgid "An excellent way to learn from more experienced contributors"
2088 msgstr ""
2089
2090 #. type: itemize
2091 #: packaging-tutorial.tex:1009
2092 msgid "Adopt existing unmaintained packages (\\textsl{orphaned packages})"
2093 msgstr ""
2094
2095 #. type: itemize
2096 #: packaging-tutorial.tex:1009
2097 msgid "Bring new software to Debian"
2098 msgstr ""
2099
2100 #. type: itemize
2101 #: packaging-tutorial.tex:1009
2102 msgid "Only if it's interesting/useful enough, please"
2103 msgstr ""
2104
2105 #. type: itemize
2106 #: packaging-tutorial.tex:1009
2107 msgid "Are there alternatives already packaged in Debian?"
2108 msgstr ""
2109
2110 #. type: frame{#2}
2111 #: packaging-tutorial.tex:1047 packaging-tutorial.tex:1047
2112 msgid "Adopting orphaned packages"
2113 msgstr ""
2114
2115 #. type: itemize
2116 #: packaging-tutorial.tex:1047
2117 msgid "Many unmaintained packages in Debian"
2118 msgstr ""
2119
2120 #. type: itemize
2121 #: packaging-tutorial.tex:1047
2122 msgid "Full list + process: \\url{http://www.debian.org/devel/wnpp/}"
2123 msgstr ""
2124
2125 #. type: itemize
2126 #: packaging-tutorial.tex:1047
2127 msgid "Installed on your machine: \\texttt{wnpp-alert}"
2128 msgstr ""
2129
2130 #. type: itemize
2131 #: packaging-tutorial.tex:1047
2132 msgid "Different states:"
2133 msgstr ""
2134
2135 #. type: itemize
2136 #: packaging-tutorial.tex:1047
2137 msgid "\\textbf{O}rphaned: the package is unmaintained\\\\ Feel free to adopt it"
2138 msgstr ""
2139
2140 #. type: itemize
2141 #: packaging-tutorial.tex:1047
2142 msgid ""
2143 "\\textbf{RFA}: \\textbf{R}equest \\textbf{F}or \\textbf{A}dopter\\\\ "
2144 "Maintainer looking for adopter, but continues work in the meantime\\\\ Feel "
2145 "free to adopt it. A mail to the current maintainer is polite"
2146 msgstr ""
2147
2148 #. type: itemize
2149 #: packaging-tutorial.tex:1047
2150 msgid ""
2151 "\\textbf{ITA}: \\textbf{I}ntent \\textbf{T}o \\textbf{A}dopt\\\\ Someone "
2152 "intends to adopt the package\\\\ You could propose your help!"
2153 msgstr ""
2154
2155 #. type: itemize
2156 #: packaging-tutorial.tex:1047
2157 msgid ""
2158 "\\textbf{RFH}: \\textbf{R}equest \\textbf{F}or \\textbf{H}elp\\\\ The "
2159 "maintainer is looking for help"
2160 msgstr ""
2161
2162 #. type: itemize
2163 #: packaging-tutorial.tex:1047
2164 msgid "Some unmaintained packages not detected \\arr not orphaned yet"
2165 msgstr ""
2166
2167 #. type: itemize
2168 #: packaging-tutorial.tex:1047
2169 msgid ""
2170 "When in doubt, ask \\texttt{debian-qa@lists.debian.org} \\\\ or "
2171 "\\texttt{\\#debian-qa} on \\texttt{irc.debian.org}"
2172 msgstr ""
2173
2174 #. type: frame{#2}
2175 #: packaging-tutorial.tex:1069 packaging-tutorial.tex:1069
2176 msgid "Getting your package in Debian"
2177 msgstr ""
2178
2179 #. type: itemize
2180 #: packaging-tutorial.tex:1069
2181 msgid "You do not need any official status to get your package into Debian"
2182 msgstr ""
2183
2184 #. type: enumerate
2185 #: packaging-tutorial.tex:1069
2186 msgid "Prepare a source package"
2187 msgstr ""
2188
2189 #. type: enumerate
2190 #: packaging-tutorial.tex:1069
2191 msgid "Find a Debian Developer that will sponsor your package"
2192 msgstr ""
2193
2194 #. type: itemize
2195 #: packaging-tutorial.tex:1069
2196 msgid "Official status (when you are already experienced):"
2197 msgstr ""
2198
2199 #. type: itemize
2200 #: packaging-tutorial.tex:1069
2201 msgid ""
2202 "\\textbf{Debian Maintainer (DM):}\\\\ Permission to upload your own "
2203 "packages\\\\ See \\url{http://wiki.debian.org/DebianMaintainer}"
2204 msgstr ""
2205
2206 #. type: itemize
2207 #: packaging-tutorial.tex:1069
2208 msgid ""
2209 "\\textbf{Debian Developer (DD):}\\\\ Debian project members; can vote and "
2210 "upload any package"
2211 msgstr ""
2212
2213 #. type: frame{#2}
2214 #: packaging-tutorial.tex:1096 packaging-tutorial.tex:1096
2215 msgid "Where to find help?"
2216 msgstr ""
2217
2218 #. type: frame
2219 #: packaging-tutorial.tex:1096
2220 msgid "Help you will need:"
2221 msgstr ""
2222
2223 #. type: itemize
2224 #: packaging-tutorial.tex:1096
2225 msgid "Advice and answers to your questions, code reviews"
2226 msgstr ""
2227
2228 #. type: itemize
2229 #: packaging-tutorial.tex:1096
2230 msgid "Sponsorship for your uploads, once your package is ready"
2231 msgstr ""
2232
2233 #. type: frame
2234 #: packaging-tutorial.tex:1096
2235 msgid "You can get help from:"
2236 msgstr ""
2237
2238 #. type: textbf{#1}
2239 #: packaging-tutorial.tex:1096
2240 msgid "Other members of a packaging team"
2241 msgstr ""
2242
2243 #. type: itemize
2244 #: packaging-tutorial.tex:1096
2245 msgid "They know the specifics of your package"
2246 msgstr ""
2247
2248 #. type: itemize
2249 #: packaging-tutorial.tex:1096
2250 msgid "You can become a member of the team"
2251 msgstr ""
2252
2253 #. type: itemize
2254 #: packaging-tutorial.tex:1096
2255 msgid "The Debian Mentors group (if your package doesn't fit in a team)"
2256 msgstr ""
2257
2258 #. type: itemize
2259 #: packaging-tutorial.tex:1096
2260 msgid "\\url{http://wiki.debian.org/DebianMentorsFaq}"
2261 msgstr ""
2262
2263 #. type: itemize
2264 #: packaging-tutorial.tex:1096
2265 msgid ""
2266 "Mailing list: \\url{debian-mentors@lists.debian.org}\\\\ {\\small (also a "
2267 "good way to learn by accident)}"
2268 msgstr ""
2269
2270 #. type: itemize
2271 #: packaging-tutorial.tex:1096
2272 msgid "IRC: \\texttt{\\#debian-mentors} on \\texttt{irc.debian.org}"
2273 msgstr ""
2274
2275 #. type: itemize
2276 #: packaging-tutorial.tex:1096
2277 msgid "\\url{http://mentors.debian.net/}"
2278 msgstr ""
2279
2280 #. type: frame{#2}
2281 #: packaging-tutorial.tex:1114 packaging-tutorial.tex:1114
2282 msgid "Official documentation"
2283 msgstr ""
2284
2285 #. type: itemize
2286 #: packaging-tutorial.tex:1114
2287 msgid ""
2288 "Debian Developers' Corner\\\\ \\url{http://www.debian.org/devel/}\\\\ "
2289 "{\\small Links to many resources about Debian development}"
2290 msgstr ""
2291
2292 #. type: itemize
2293 #: packaging-tutorial.tex:1114
2294 msgid ""
2295 "Debian New Maintainers' Guide\\\\ "
2296 "\\url{http://www.debian.org/doc/maint-guide/}\\\\ {\\small An introduction "
2297 "to Debian packaging, but could use an update}"
2298 msgstr ""
2299
2300 #. type: itemize
2301 #: packaging-tutorial.tex:1114
2302 msgid ""
2303 "Debian Developer's Reference\\\\ "
2304 "\\url{http://www.debian.org/doc/developers-reference/}\\\\ {\\small Mostly "
2305 "about Debian procedures, but also some best packaging practices (part 6)}"
2306 msgstr ""
2307
2308 #. type: itemize
2309 #: packaging-tutorial.tex:1114
2310 msgid "Debian Policy\\\\ \\url{http://www.debian.org/doc/debian-policy/}\\\\"
2311 msgstr ""
2312
2313 #. type: itemize
2314 #: packaging-tutorial.tex:1120
2315 msgid ""
2316 "{\\small \\begin{itemize} \\item \\small All the requirements that every "
2317 "package must satisfy \\item \\small Specific policies for Perl, Java, "
2318 "Python, \\ldots \\end{itemize}}"
2319 msgstr ""
2320
2321 #. type: itemize
2322 #: packaging-tutorial.tex:1125
2323 msgid "Ubuntu Packaging Guide\\\\ \\url{https://wiki.ubuntu.com/PackagingGuide}"
2324 msgstr ""
2325
2326 #. type: frame{#2}
2327 #: packaging-tutorial.tex:1135
2328 msgid "Debian dashboards for maintainers"
2329 msgstr ""
2330
2331 #. type: itemize
2332 #: packaging-tutorial.tex:1135
2333 msgid ""
2334 "\\textbf{Source package centric}: Package Tracking System (PTS)\\\\ "
2335 "\\url{http://packages.qa.debian.org/dpkg}"
2336 msgstr ""
2337
2338 #. type: itemize
2339 #: packaging-tutorial.tex:1135
2340 msgid ""
2341 "\\textbf{Maintainer/team centric}: Developer's Packages Overview (DDPO)\\\\ "
2342 "\\url{http://qa.debian.org/developer.php?login=pkg-ruby-extras-maintainers@lists.alioth.debian.org}"
2343 msgstr ""
2344
2345 #. type: frame{#2}
2346 #: packaging-tutorial.tex:1162 packaging-tutorial.tex:1162
2347 msgid "More interested in Ubuntu?"
2348 msgstr ""
2349
2350 #. type: itemize
2351 #: packaging-tutorial.tex:1162
2352 msgid "Ubuntu mainly manages the divergence with Debian"
2353 msgstr ""
2354
2355 #. type: itemize
2356 #: packaging-tutorial.tex:1162
2357 msgid ""
2358 "No real focus on specific packages\\\\ Instead, collaboration with Debian "
2359 "teams"
2360 msgstr ""
2361
2362 #. type: itemize
2363 #: packaging-tutorial.tex:1162
2364 msgid ""
2365 "Usually recommend uploading new packages to Debian first\\\\ "
2366 "\\url{https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages}"
2367 msgstr ""
2368
2369 #. type: itemize
2370 #: packaging-tutorial.tex:1162
2371 msgid "Possibly a better plan:"
2372 msgstr ""
2373
2374 #. type: itemize
2375 #: packaging-tutorial.tex:1162
2376 msgid "Get involved in a Debian team and act as a bridge with Ubuntu"
2377 msgstr ""
2378
2379 #. type: itemize
2380 #: packaging-tutorial.tex:1162
2381 msgid "Help reduce divergence, triage bugs in Launchpad"
2382 msgstr ""
2383
2384 #. type: itemize
2385 #: packaging-tutorial.tex:1162
2386 msgid "Many Debian tools can help:"
2387 msgstr ""
2388
2389 #. type: itemize
2390 #: packaging-tutorial.tex:1162
2391 msgid "Ubuntu column on the Developer's packages overview"
2392 msgstr ""
2393
2394 #. type: itemize
2395 #: packaging-tutorial.tex:1162
2396 msgid "Ubuntu box on the Package Tracking System"
2397 msgstr ""
2398
2399 #. type: itemize
2400 #: packaging-tutorial.tex:1162
2401 msgid "Receive launchpad bugmail via the PTS"
2402 msgstr ""
2403
2404 #. type: frame{#2}
2405 #: packaging-tutorial.tex:1193 packaging-tutorial.tex:1193 packaging-tutorial.tex:1193
2406 msgid "Conclusion"
2407 msgstr ""
2408
2409 #. type: itemize
2410 #: packaging-tutorial.tex:1193
2411 msgid "You now have a full overview of Debian packaging"
2412 msgstr ""
2413
2414 #. type: itemize
2415 #: packaging-tutorial.tex:1193
2416 msgid "But you will need to read more documentation"
2417 msgstr ""
2418
2419 #. type: itemize
2420 #: packaging-tutorial.tex:1193
2421 msgid "Best practices have evolved over the years"
2422 msgstr ""
2423
2424 #. type: itemize
2425 #: packaging-tutorial.tex:1193
2426 msgid ""
2427 "If not sure, use the \\textbf{dh} packaging helper, and the \\textbf{3.0 "
2428 "(quilt)} format"
2429 msgstr ""
2430
2431 #. type: itemize
2432 #: packaging-tutorial.tex:1193
2433 msgid "Things that were not covered in this tutorial:"
2434 msgstr ""
2435
2436 #. type: itemize
2437 #: packaging-tutorial.tex:1193
2438 msgid "UCF -- manage user changes to configuration files when upgrading"
2439 msgstr ""
2440
2441 #. type: itemize
2442 #: packaging-tutorial.tex:1193
2443 msgid "dpkg triggers -- group similar maintainer scripts actions together"
2444 msgstr ""
2445
2446 #. type: itemize
2447 #: packaging-tutorial.tex:1193
2448 msgid "Debian development organization:"
2449 msgstr ""
2450
2451 #. type: itemize
2452 #: packaging-tutorial.tex:1193
2453 msgid "Bug Tracking System (BTS)"
2454 msgstr ""
2455
2456 #. type: itemize
2457 #: packaging-tutorial.tex:1193
2458 msgid ""
2459 "Suites: stable, testing, unstable, experimental, security, *-updates, "
2460 "backports, \\ldots"
2461 msgstr ""
2462
2463 #. type: itemize
2464 #: packaging-tutorial.tex:1193
2465 msgid "Debian Blends -- subsets of Debian targeting specific groups"
2466 msgstr ""
2467
2468 #. type: centerline{#1}
2469 #: packaging-tutorial.tex:1193
2470 msgid "\\large Feedback: \\textbf{lucas@debian.org}"
2471 msgstr ""
2472
2473 #. type: frame{#2}
2474 #: packaging-tutorial.tex:1196 packaging-tutorial.tex:1196
2475 msgid "Legal stuff"
2476 msgstr ""
2477
2478 #. type: frame
2479 #: packaging-tutorial.tex:1199
2480 msgid "Copyright \\copyright 2011 Lucas Nussbaum -- lucas@debian.org"
2481 msgstr ""
2482
2483 #. type: frame
2484 #: packaging-tutorial.tex:1215
2485 msgid ""
2486 "{\\small \\textbf{This document is free software}: you can redistribute it "
2487 "and/or modify it under either (at your option): \\hbr \\begin{itemize} "
2488 "\\item The terms of the GNU General Public License as published by the Free "
2489 "Software Foundation, either version 3 of the License, or (at your option) "
2490 "any later version.\\\\ \\url{http://www.gnu.org/licenses/gpl.html} \\br "
2491 "\\item The terms of the Creative Commons Attribution-ShareAlike 3.0 Unported "
2492 "License.\\\\ \\url{http://creativecommons.org/licenses/by-sa/3.0/} "
2493 "\\end{itemize} }"
2494 msgstr ""
2495
2496 #. type: frame{#2}
2497 #: packaging-tutorial.tex:1222 packaging-tutorial.tex:1222
2498 msgid "Latest version \\& source code"
2499 msgstr ""
2500
2501 #. type: itemize
2502 #: packaging-tutorial.tex:1222
2503 msgid ""
2504 "Latest version:\\\\ {\\footnotesize "
2505 "\\url{http://git.debian.org/?p=collab-maint/packaging-tutorial.git;a=blob\\_plain;f=packaging-tutorial.pdf;hb=refs/heads/pdf}}"
2506 msgstr ""
2507
2508 #. type: itemize
2509 #: packaging-tutorial.tex:1236
2510 msgid "Contribute:"
2511 msgstr ""
2512
2513 #. type: itemize
2514 #: packaging-tutorial.tex:1236
2515 msgid ""
2516 "{\\small \\texttt{git clone\\\\ "
2517 "git://git.debian.org/collab-maint/packaging-tutorial.git}}"
2518 msgstr ""
2519
2520 #. type: itemize
2521 #: packaging-tutorial.tex:1236
2522 msgid "{\\small \\texttt{apt-get source packaging-tutorial}}"
2523 msgstr ""
2524
2525 #. type: itemize
2526 #: packaging-tutorial.tex:1236
2527 msgid ""
2528 "{\\small "
2529 "\\url{http://git.debian.org/?p=collab-maint/packaging-tutorial.git}}"
2530 msgstr ""
2531
2532 #. type: itemize
2533 #: packaging-tutorial.tex:1236
2534 msgid ""
2535 "Feedback: "
2536 "\\href{mailto:lucas@debian.org}{\\textbf{\\texttt{lucas@debian.org}}}"
2537 msgstr ""
2538
2539 #. type: frame{#2}
2540 #: packaging-tutorial.tex:1254 packaging-tutorial.tex:1254 packaging-tutorial.tex:1483 packaging-tutorial.tex:1483
2541 msgid "Practical session 2: packaging GNUjump"
2542 msgstr ""
2543
2544 #. type: enumerate
2545 #: packaging-tutorial.tex:1254 packaging-tutorial.tex:1483
2546 msgid ""
2547 "Download GNUjump 1.0.6 from "
2548 "\\url{http://ftp.gnu.org/gnu/gnujump/1.0.6/gnujump-1.0.6.tar.gz}"
2549 msgstr ""
2550
2551 #. type: enumerate
2552 #: packaging-tutorial.tex:1254 packaging-tutorial.tex:1483
2553 msgid "Create a Debian package for it"
2554 msgstr ""
2555
2556 #. type: itemize
2557 #: packaging-tutorial.tex:1254 packaging-tutorial.tex:1483
2558 msgid "Install build-dependencies so that you can build the package"
2559 msgstr ""
2560
2561 #. type: itemize
2562 #: packaging-tutorial.tex:1254 packaging-tutorial.tex:1483
2563 msgid "Get a basic working package"
2564 msgstr ""
2565
2566 #. type: itemize
2567 #: packaging-tutorial.tex:1254 packaging-tutorial.tex:1483
2568 msgid "Finish filling \\texttt{debian/control} and other files"
2569 msgstr ""
2570
2571 #. type: enumerate
2572 #: packaging-tutorial.tex:1254 packaging-tutorial.tex:1483
2573 msgid "Enjoy"
2574 msgstr ""
2575
2576 #. type: frame{#2}
2577 #: packaging-tutorial.tex:1279 packaging-tutorial.tex:1279 packaging-tutorial.tex:1587 packaging-tutorial.tex:1587
2578 msgid "Practical session 3: packaging a Java library"
2579 msgstr ""
2580
2581 #. type: enumerate
2582 #: packaging-tutorial.tex:1279 packaging-tutorial.tex:1587
2583 msgid "Take a quick look at some documentation about Java packaging:\\\\"
2584 msgstr ""
2585
2586 #. type: itemize
2587 #: packaging-tutorial.tex:1279 packaging-tutorial.tex:1587
2588 msgid "\\url{http://wiki.debian.org/Java}"
2589 msgstr ""
2590
2591 #. type: itemize
2592 #: packaging-tutorial.tex:1279 packaging-tutorial.tex:1587
2593 msgid "\\url{http://wiki.debian.org/Java/Packaging}"
2594 msgstr ""
2595
2596 #. type: itemize
2597 #: packaging-tutorial.tex:1279 packaging-tutorial.tex:1587
2598 msgid "\\url{http://www.debian.org/doc/packaging-manuals/java-policy/}"
2599 msgstr ""
2600
2601 #. type: itemize
2602 #: packaging-tutorial.tex:1279 packaging-tutorial.tex:1587
2603 msgid "\\url{http://pkg-java.alioth.debian.org/docs/tutorial.html}"
2604 msgstr ""
2605
2606 #. type: itemize
2607 #: packaging-tutorial.tex:1279 packaging-tutorial.tex:1587
2608 msgid ""
2609 "Paper and slides from a Debconf10 talk about javahelper:\\\\ {\\footnotesize "
2610 "\\url{http://pkg-java.alioth.debian.org/docs/debconf10-javahelper-paper.pdf}\\\\ "
2611 "\\url{http://pkg-java.alioth.debian.org/docs/debconf10-javahelper-slides.pdf}}"
2612 msgstr ""
2613
2614 #. type: enumerate
2615 #: packaging-tutorial.tex:1279 packaging-tutorial.tex:1587
2616 msgid "Download IRClib from \\url{http://moepii.sourceforge.net/}"
2617 msgstr ""
2618
2619 #. type: enumerate
2620 #: packaging-tutorial.tex:1279 packaging-tutorial.tex:1587
2621 msgid "Package it"
2622 msgstr ""
2623
2624 #. type: frame{#2}
2625 #: packaging-tutorial.tex:1300 packaging-tutorial.tex:1300 packaging-tutorial.tex:1628
2626 msgid "Practical session 4: packaging a Ruby gem"
2627 msgstr ""
2628
2629 #. type: enumerate
2630 #: packaging-tutorial.tex:1300 packaging-tutorial.tex:1628
2631 msgid "Take a quick look at some documentation about Ruby packaging:\\\\"
2632 msgstr ""
2633
2634 #. type: itemize
2635 #: packaging-tutorial.tex:1300 packaging-tutorial.tex:1628
2636 msgid "\\url{http://wiki.debian.org/Ruby}"
2637 msgstr ""
2638
2639 #. type: itemize
2640 #: packaging-tutorial.tex:1300 packaging-tutorial.tex:1628
2641 msgid "\\url{http://wiki.debian.org/Teams/Ruby}"
2642 msgstr ""
2643
2644 #. type: itemize
2645 #: packaging-tutorial.tex:1300 packaging-tutorial.tex:1628
2646 msgid "\\url{http://wiki.debian.org/Teams/Ruby/Packaging}"
2647 msgstr ""
2648
2649 #. type: itemize
2650 #: packaging-tutorial.tex:1300 packaging-tutorial.tex:1628
2651 msgid ""
2652 "\\texttt{gem2deb(1)}, \\texttt{dh\\_ruby(1)} (in the \\texttt{gem2deb} "
2653 "package)"
2654 msgstr ""
2655
2656 #. type: enumerate
2657 #: packaging-tutorial.tex:1300 packaging-tutorial.tex:1628
2658 msgid ""
2659 "Create a basic Debian source package from the \\texttt{net-ssh} gem:\\\\ "
2660 "\\texttt{gem2deb net-ssh}"
2661 msgstr ""
2662
2663 #. type: enumerate
2664 #: packaging-tutorial.tex:1300 packaging-tutorial.tex:1628
2665 msgid "Improve it so that it becomes a proper Debian package"
2666 msgstr ""
2667
2668 #. type: section{#2}
2669 #: packaging-tutorial.tex:1302
2670 msgid "Answers to practical sessions"
2671 msgstr ""
2672
2673 #. type: center
2674 #: packaging-tutorial.tex:1308
2675 msgid "\\LARGE Answers to"
2676 msgstr ""
2677
2678 #. type: center
2679 #: packaging-tutorial.tex:1308
2680 msgid "[0.5em] practical sessions"
2681 msgstr ""
2682
2683 #. type: frame{#2}
2684 #: packaging-tutorial.tex:1366
2685 msgid "Fetching the source"
2686 msgstr ""
2687
2688 #. type: enumerate
2689 #: packaging-tutorial.tex:1366
2690 msgid ""
2691 "Go to \\url{http://ftp.debian.org/debian/pool/main/g/grep/} and download "
2692 "version 2.6.3-3 of the package"
2693 msgstr ""
2694
2695 #. type: itemize
2696 #: packaging-tutorial.tex:1366
2697 msgid ""
2698 "Use dget to download the \\texttt{.dsc} file:\\\\ {\\small \\texttt{dget "
2699 "http://cdn.debian.net/debian/pool/main/g/grep/grep\\_2.6.3-3.dsc}}"
2700 msgstr ""
2701
2702 #. type: itemize
2703 #: packaging-tutorial.tex:1366
2704 msgid ""
2705 "According to \\texttt{http://packages.qa.debian.org/grep}, \\texttt{grep} "
2706 "version 2.6.3-3 is currently in \\textsl{stable} (\\textsl{squeeze}). If you "
2707 "have \\texttt{deb-src} lines for \\textsl{squeeze} in your "
2708 "\\texttt{/etc/apt/sources.list}, you can use:\\\\ \\texttt{apt-get source "
2709 "grep=2.6.3-3}\\\\ or \\texttt{apt-get source grep/stable}\\\\ or, if you "
2710 "feel lucky: \\texttt{apt-get source grep}"
2711 msgstr ""
2712
2713 #. type: itemize
2714 #: packaging-tutorial.tex:1366
2715 msgid "The \\texttt{grep} source package is composed of three files:"
2716 msgstr ""
2717
2718 #. type: itemize
2719 #: packaging-tutorial.tex:1366
2720 msgid "\\texttt{grep\\_2.6.3-3.dsc}"
2721 msgstr ""
2722
2723 #. type: itemize
2724 #: packaging-tutorial.tex:1366
2725 msgid "\\texttt{grep\\_2.6.3-3.debian.tar.bz2}"
2726 msgstr ""
2727
2728 #. type: itemize
2729 #: packaging-tutorial.tex:1366
2730 msgid "\\texttt{grep\\_2.6.3.orig.tar.bz2}"
2731 msgstr ""
2732
2733 #. type: itemize
2734 #: packaging-tutorial.tex:1366
2735 msgid "This is typical of the \"3.0 (quilt)\" format."
2736 msgstr ""
2737
2738 #. type: itemize
2739 #: packaging-tutorial.tex:1366
2740 msgid ""
2741 "If needed, uncompress the source with\\\\ \\texttt{dpkg-source -x "
2742 "grep\\_2.6.3-3.dsc}"
2743 msgstr ""
2744
2745 #. type: frame{#2}
2746 #: packaging-tutorial.tex:1385
2747 msgid "Looking around and building the package"
2748 msgstr ""
2749
2750 #. type: itemize
2751 #: packaging-tutorial.tex:1385
2752 msgid ""
2753 "According to \\texttt{debian/control}, this package only generates one "
2754 "binary package, named \\texttt{grep}."
2755 msgstr ""
2756
2757 #. type: itemize
2758 #: packaging-tutorial.tex:1385
2759 msgid ""
2760 "According to \\texttt{debian/rules}, this package is typical of "
2761 "\\textsl{classic} debhelper packaging, without using \\textsl{CDBS} or "
2762 "\\textsl{dh}. One can see the various calls to \\texttt{dh\\_*} commands in "
2763 "\\texttt{debian/rules}."
2764 msgstr ""
2765
2766 #. type: itemize
2767 #: packaging-tutorial.tex:1394
2768 msgid "Use \\texttt{apt-get build-dep grep} to fetch the build-dependencies"
2769 msgstr ""
2770
2771 #. type: itemize
2772 #: packaging-tutorial.tex:1394
2773 msgid ""
2774 "Then \\texttt{debuild} or \\texttt{dpkg-buildpackage -us -uc} (Takes about 1 "
2775 "min)"
2776 msgstr ""
2777
2778 #. type: frame{#2}
2779 #: packaging-tutorial.tex:1398
2780 msgid "Editing the changelog"
2781 msgstr ""
2782
2783 #. type: itemize
2784 #: packaging-tutorial.tex:1415
2785 msgid ""
2786 "\\texttt{debian/changelog} is a text file. You could edit it and add a new "
2787 "entry manually."
2788 msgstr ""
2789
2790 #. type: itemize
2791 #: packaging-tutorial.tex:1415
2792 msgid "Or you can use \\texttt{dch -i}, which will add an entry and open the editor"
2793 msgstr ""
2794
2795 #. type: itemize
2796 #: packaging-tutorial.tex:1415
2797 msgid ""
2798 "The name and email can be defined using the \\texttt{DEBFULLNAME} and "
2799 "\\texttt{DEBEMAIL} environment variables"
2800 msgstr ""
2801
2802 #. type: itemize
2803 #: packaging-tutorial.tex:1415
2804 msgid "After that, rebuild the package: a new version of the package is built"
2805 msgstr ""
2806
2807 #. type: itemize
2808 #: packaging-tutorial.tex:1415
2809 msgid ""
2810 "Package versioning is detailed in section 5.6.12 of the Debian policy\\\\ "
2811 "\\url{http://www.debian.org/doc/debian-policy/ch-controlfields.html}"
2812 msgstr ""
2813
2814 #. type: frame{#2}
2815 #: packaging-tutorial.tex:1419
2816 msgid "Disabling Perl regexp support and rebuilding"
2817 msgstr ""
2818
2819 #. type: itemize
2820 #: packaging-tutorial.tex:1435
2821 msgid ""
2822 "Check with \\texttt{./configure -{}-help}: the option to disable Perl regexp "
2823 "is \\texttt{-{}-disable-perl-regexp}"
2824 msgstr ""
2825
2826 #. type: itemize
2827 #: packaging-tutorial.tex:1435
2828 msgid "Edit \\texttt{debian/rules} and find the \\texttt{./configure} line"
2829 msgstr ""
2830
2831 #. type: itemize
2832 #: packaging-tutorial.tex:1435
2833 msgid "Add \\texttt{-{}-disable-perl-regexp}"
2834 msgstr ""
2835
2836 #. type: itemize
2837 #: packaging-tutorial.tex:1435
2838 msgid "Rebuild with \\texttt{debuild} or \\texttt{dpkg-buildpackage -us -uc}"
2839 msgstr ""
2840
2841 #. type: frame{#2}
2842 #: packaging-tutorial.tex:1439
2843 msgid "Comparing and testing the packages"
2844 msgstr ""
2845
2846 #. type: itemize
2847 #: packaging-tutorial.tex:1465
2848 msgid "Compare the binary packages: \\texttt{debdiff ../*changes}"
2849 msgstr ""
2850
2851 #. type: itemize
2852 #: packaging-tutorial.tex:1465
2853 msgid "Compare the source packages: \\texttt{debdiff ../*dsc}"
2854 msgstr ""
2855
2856 #. type: itemize
2857 #: packaging-tutorial.tex:1465
2858 msgid ""
2859 "Install the newly built package: \\texttt{debi}\\\\ Or \\texttt{dpkg -i "
2860 "../grep\\_<TAB>}"
2861 msgstr ""
2862
2863 #. type: itemize
2864 #: packaging-tutorial.tex:1465
2865 msgid "\\texttt{grep -P foo} no longer works!"
2866 msgstr ""
2867
2868 #. type: frame
2869 #: packaging-tutorial.tex:1465
2870 msgid "Or not: reinstall the previous version of the package:"
2871 msgstr ""
2872
2873 #. type: itemize
2874 #: packaging-tutorial.tex:1465
2875 msgid ""
2876 "\\texttt{apt-get install -{}-reinstall grep=2.6.3-3} \\textit{(= previous "
2877 "version)}"
2878 msgstr ""
2879
2880 #. type: frame{#2}
2881 #: packaging-tutorial.tex:1512 packaging-tutorial.tex:1608 packaging-tutorial.tex:1649
2882 msgid "Step by step\\ldots"
2883 msgstr ""
2884
2885 #. type: itemize
2886 #: packaging-tutorial.tex:1512
2887 msgid "\\texttt{wget http://ftp.gnu.org/gnu/gnujump/1.0.6/gnujump-1.0.6.tar.gz}"
2888 msgstr ""
2889
2890 #. type: itemize
2891 #: packaging-tutorial.tex:1512
2892 msgid "\\texttt{mv gnujump-1.0.6.tar.gz gnujump\\_1.0.6.orig.tar.gz}"
2893 msgstr ""
2894
2895 #. type: itemize
2896 #: packaging-tutorial.tex:1512
2897 msgid "\\texttt{tar xf gnujump\\_1.0.6.orig.tar.gz}"
2898 msgstr ""
2899
2900 #. type: itemize
2901 #: packaging-tutorial.tex:1512
2902 msgid "\\texttt{cd gnujump-1.0.6/}"
2903 msgstr ""
2904
2905 #. type: itemize
2906 #: packaging-tutorial.tex:1512
2907 msgid "\\texttt{dh\\_make}"
2908 msgstr ""
2909
2910 #. type: itemize
2911 #: packaging-tutorial.tex:1512
2912 msgid "Type of package: single binary (for now)"
2913 msgstr ""
2914
2915 #. type: lstlisting
2916 #: packaging-tutorial.tex:1512
2917 #, no-wrap
2918 msgid ""
2919 "[basicstyle=\\ttfamily\\small]\n"
2920 "gnujump-1.0.6$ ls debian/\n"
2921 "changelog           gnujump.default.ex   preinst.ex\n"
2922 "compat              gnujump.doc-base.EX  prerm.ex\n"
2923 "control             init.d.ex            README.Debian\n"
2924 "copyright           manpage.1.ex         README.source\n"
2925 "docs                manpage.sgml.ex      rules\n"
2926 "emacsen-install.ex  manpage.xml.ex       source\n"
2927 "emacsen-remove.ex   menu.ex              watch.ex\n"
2928 "emacsen-startup.ex  postinst.ex\n"
2929 "gnujump.cron.d.ex   postrm.ex"
2930 msgstr ""
2931
2932 #. type: frame{#2}
2933 #: packaging-tutorial.tex:1539 packaging-tutorial.tex:1668
2934 msgid "Step by step\\ldots (2)"
2935 msgstr ""
2936
2937 #. type: itemize
2938 #: packaging-tutorial.tex:1539
2939 msgid ""
2940 "Look at \\texttt{debian/changelog}, \\texttt{debian/rules}, "
2941 "\\texttt{debian/control}\\\\ (auto-filled by \\textbf{dh\\_make})"
2942 msgstr ""
2943
2944 #. type: itemize
2945 #: packaging-tutorial.tex:1539
2946 msgid ""
2947 "In \\texttt{debian/control}:\\\\ \\texttt{Build-Depends: debhelper (>= "
2948 "7.0.50~), autotools-dev}\\\\ Lists the \\textsl{build-dependencies} = "
2949 "packages needed to build the package"
2950 msgstr ""
2951
2952 #. type: itemize
2953 #: packaging-tutorial.tex:1539
2954 msgid "Try to build the package as-is (thanks to \\textbf{dh} magic)"
2955 msgstr ""
2956
2957 #. type: itemize
2958 #: packaging-tutorial.tex:1539
2959 msgid "And add build-dependencies, until it builds"
2960 msgstr ""
2961
2962 #. type: itemize
2963 #: packaging-tutorial.tex:1539
2964 msgid ""
2965 "Hint: use \\texttt{apt-cache search} and \\texttt{apt-file} to find the "
2966 "packages"
2967 msgstr ""
2968
2969 #. type: itemize
2970 #: packaging-tutorial.tex:1539
2971 msgid "Example:"
2972 msgstr ""
2973
2974 #. type: lstlisting
2975 #: packaging-tutorial.tex:1539
2976 #, no-wrap
2977 msgid ""
2978 "[basicstyle=\\ttfamily\\footnotesize]\n"
2979 "checking for sdl-config... no\n"
2980 "checking for SDL - version >= 1.2.0... no\n"
2981 "[...]\n"
2982 "configure: error: *** SDL version 1.2.0 not found!"
2983 msgstr ""
2984
2985 #. type: itemize
2986 #: packaging-tutorial.tex:1539
2987 msgid "$\\rightarrow$ Add \\textbf{libsdl1.2-dev} to Build-Depends and install it."
2988 msgstr ""
2989
2990 #. type: itemize
2991 #: packaging-tutorial.tex:1539
2992 msgid "Better: use \\textbf{pbuilder} to build in a clean environment"
2993 msgstr ""
2994
2995 #. type: frame{#2}
2996 #: packaging-tutorial.tex:1562 packaging-tutorial.tex:1682
2997 msgid "Step by step\\ldots (3)"
2998 msgstr ""
2999
3000 #. type: itemize
3001 #: packaging-tutorial.tex:1562
3002 msgid ""
3003 "After installing \\texttt{libsdl1.2-dev, libsdl-image1.2-dev, "
3004 "libsdl-mixer1.2-dev}, the package builds fine."
3005 msgstr ""
3006
3007 #. type: itemize
3008 #: packaging-tutorial.tex:1562
3009 msgid "Use \\texttt{debc} to list the content of the generated package."
3010 msgstr ""
3011
3012 #. type: itemize
3013 #: packaging-tutorial.tex:1562
3014 msgid "Use \\texttt{debi} to install it and test it."
3015 msgstr ""
3016
3017 #. type: itemize
3018 #: packaging-tutorial.tex:1562
3019 msgid ""
3020 "Fill in \\texttt{debian/control} using "
3021 "\\url{http://www.debian.org/doc/debian-policy/ch-controlfields.html}"
3022 msgstr ""
3023
3024 #. type: itemize
3025 #: packaging-tutorial.tex:1562
3026 msgid "Test the package with \\texttt{lintian}"
3027 msgstr ""
3028
3029 #. type: itemize
3030 #: packaging-tutorial.tex:1562
3031 msgid "Remove the files that you don't need in \\texttt{debian/}"
3032 msgstr ""
3033
3034 #. type: itemize
3035 #: packaging-tutorial.tex:1562
3036 msgid "Compare your package with the one already packaged in Debian:"
3037 msgstr ""
3038
3039 #. type: itemize
3040 #: packaging-tutorial.tex:1562
3041 msgid ""
3042 "It splits the data files to a second package, that is the same across all "
3043 "architectures ($\\rightarrow$ saves space in the Debian archive)"
3044 msgstr ""
3045
3046 #. type: itemize
3047 #: packaging-tutorial.tex:1562
3048 msgid ""
3049 "It installs a .desktop file (for the GNOME/KDE menus) and also integrates "
3050 "into the Debian menu"
3051 msgstr ""
3052
3053 #. type: itemize
3054 #: packaging-tutorial.tex:1562
3055 msgid "It fixes a few minor problems using patches"
3056 msgstr ""
3057
3058 #. type: itemize
3059 #: packaging-tutorial.tex:1608
3060 msgid "\\texttt{apt-get install javahelper}"
3061 msgstr ""
3062
3063 #. type: itemize
3064 #: packaging-tutorial.tex:1608
3065 msgid "Create a basic source package: \\texttt{jh\\_makepkg}"
3066 msgstr ""
3067
3068 #. type: itemize
3069 #: packaging-tutorial.tex:1608
3070 msgid "Library"
3071 msgstr ""
3072
3073 #. type: itemize
3074 #: packaging-tutorial.tex:1608
3075 msgid "None"
3076 msgstr ""
3077
3078 #. type: itemize
3079 #: packaging-tutorial.tex:1608
3080 msgid "Default Free compiler/runtime"
3081 msgstr ""
3082
3083 #. type: itemize
3084 #: packaging-tutorial.tex:1608
3085 msgid "Look at and fix \\texttt{debian/*}"
3086 msgstr ""
3087
3088 #. type: itemize
3089 #: packaging-tutorial.tex:1608
3090 msgid "\\texttt{dpkg-buildpackage -us -uc} or \\texttt{debuild}"
3091 msgstr ""
3092
3093 #. type: itemize
3094 #: packaging-tutorial.tex:1608
3095 msgid "\\texttt{lintian}, \\texttt{debc}, etc."
3096 msgstr ""
3097
3098 #. type: itemize
3099 #: packaging-tutorial.tex:1608
3100 msgid "Compare your result with the \\texttt{libirclib-java} source package"
3101 msgstr ""
3102
3103 #. type: frame
3104 #: packaging-tutorial.tex:1649
3105 msgid "\\texttt{gem2deb net-ssh}:"
3106 msgstr ""
3107
3108 #. type: itemize
3109 #: packaging-tutorial.tex:1649
3110 msgid "Downloads the gem from rubygems.org"
3111 msgstr ""
3112
3113 #. type: itemize
3114 #: packaging-tutorial.tex:1649
3115 msgid "Creates a suitable .orig.tar.gz archive, and untar it"
3116 msgstr ""
3117
3118 #. type: itemize
3119 #: packaging-tutorial.tex:1649
3120 msgid "Initializes a Debian source package based on the gem's metadata"
3121 msgstr ""
3122
3123 #. type: itemize
3124 #: packaging-tutorial.tex:1649
3125 msgid "Named \\texttt{ruby-\\textsl{gemname}}"
3126 msgstr ""
3127
3128 #. type: itemize
3129 #: packaging-tutorial.tex:1649
3130 msgid "Tries to build the Debian binary package (this might fail)"
3131 msgstr ""
3132
3133 #. type: frame
3134 #: packaging-tutorial.tex:1649
3135 msgid ""
3136 "\\texttt{dh\\_ruby} (included in \\textsl{gem2deb}) does the Ruby-specific "
3137 "tasks:"
3138 msgstr ""
3139
3140 #. type: itemize
3141 #: packaging-tutorial.tex:1649
3142 msgid "Build C extensions for each Ruby version"
3143 msgstr ""
3144
3145 #. type: itemize
3146 #: packaging-tutorial.tex:1649
3147 msgid "Copy files to their destination directory"
3148 msgstr ""
3149
3150 #. type: itemize
3151 #: packaging-tutorial.tex:1649
3152 msgid "Update shebangs in executable scripts"
3153 msgstr ""
3154
3155 #. type: itemize
3156 #: packaging-tutorial.tex:1649
3157 msgid ""
3158 "Run tests defined in \\texttt{debian/ruby-tests.rb} or "
3159 "\\texttt{debian/ruby-test-files.yaml}, as well as various other checks"
3160 msgstr ""
3161
3162 #. type: frame
3163 #: packaging-tutorial.tex:1668
3164 msgid "Improve the generated package:"
3165 msgstr ""
3166
3167 #. type: itemize
3168 #: packaging-tutorial.tex:1668
3169 msgid "Run \\texttt{debclean} to clean the source tree. Look at \\texttt{debian/}."
3170 msgstr ""
3171
3172 #. type: itemize
3173 #: packaging-tutorial.tex:1668
3174 msgid "\\texttt{changelog} and \\texttt{compat} should be correct"
3175 msgstr ""
3176
3177 #. type: itemize
3178 #: packaging-tutorial.tex:1668
3179 msgid ""
3180 "Edit \\texttt{debian/control}: uncomment \\texttt{Homepage}, improve "
3181 "\\texttt{Description}"
3182 msgstr ""
3183
3184 #. type: itemize
3185 #: packaging-tutorial.tex:1668
3186 msgid "Write a proper \\texttt{copyright} file based on the upstream files"
3187 msgstr ""
3188
3189 #. type: itemize
3190 #: packaging-tutorial.tex:1668
3191 msgid "\\texttt{ruby-net-ssh.docs}: install \\texttt{README.rdoc}"
3192 msgstr ""
3193
3194 #. type: itemize
3195 #: packaging-tutorial.tex:1668
3196 msgid ""
3197 "\\texttt{ruby-tests.rb}: run the tests. In that case, it is enough to "
3198 "do:\\\\ \\verb+$: << 'test' << 'lib' << '.'+\\\\ \\verb+require "
3199 "'test/test_all.rb'+"
3200 msgstr ""
3201
3202 #. type: frame
3203 #: packaging-tutorial.tex:1682
3204 msgid "Build the package.  It fails to build. There are two problems:"
3205 msgstr ""
3206
3207 #. type: itemize
3208 #: packaging-tutorial.tex:1682
3209 msgid ""
3210 "You need to disable the \\texttt{gem} call in the test suite.\\\\ In "
3211 "\\texttt{test/common.rb}, remove the \\verb+gem \"test-unit\"+ line:"
3212 msgstr ""
3213
3214 #. type: itemize
3215 #: packaging-tutorial.tex:1682
3216 msgid "\\texttt{edit-patch disable-gem.patch}"
3217 msgstr ""
3218
3219 #. type: itemize
3220 #: packaging-tutorial.tex:1682
3221 msgid ""
3222 "Edit \\texttt{test/common.rb}, remove the \\texttt{gem} line. Exit the "
3223 "sub-shell"
3224 msgstr ""
3225
3226 #. type: itemize
3227 #: packaging-tutorial.tex:1682
3228 msgid "Describe the changes in \\texttt{debian/changelog}"
3229 msgstr ""
3230
3231 #. type: itemize
3232 #: packaging-tutorial.tex:1682
3233 msgid "Document the patch in \\texttt{debian/patches/disable-gem.patch}"
3234 msgstr ""
3235
3236 #. type: itemize
3237 #: packaging-tutorial.tex:1687
3238 msgid ""
3239 "The package lacks a build-dependency on \\texttt{ruby-mocha}, which is used "
3240 "by the test suite (you might need to build your package in a clean "
3241 "environment, using \\texttt{pbuilder}, to reproduce that problem)"
3242 msgstr ""
3243
3244 #. type: itemize
3245 #: packaging-tutorial.tex:1690
3246 msgid "Add \\texttt{ruby-mocha} to the package's \\texttt{Build-Depends}"
3247 msgstr ""
3248
3249 #. type: itemize
3250 #: packaging-tutorial.tex:1701
3251 msgid ""
3252 "\\textsl{gem2deb} copies the dependencies documented in the \\textsl{gem} as "
3253 "comments in \\texttt{debian/control}, but \\textsl{mocha} is not listed as a "
3254 "development dependency by the gem (that's a bug in the gem)"
3255 msgstr ""
3256
3257 #. type: frame
3258 #: packaging-tutorial.tex:1701
3259 msgid ""
3260 "Compare your package with the \\texttt{ruby-net-ssh} package in the Debian "
3261 "archive"
3262 msgstr ""