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.
9 "Project-Id-Version: PACKAGE VERSION\n"
10 "POT-Creation-Date: 2010-06-20 09:23-0400\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"
15 "Content-Type: text/plain; charset=utf-8\n"
16 "Content-Transfer-Encoding: ENCODING"
18 #. type: Content of: <appendix><title>
20 msgid "Overview of Debian Maintainer Tools"
23 #. type: Content of: <appendix><para>
26 "This section contains a rough overview of the tools available to "
27 "maintainers. The following is by no means complete or definitive, but just "
28 "a guide to some of the more popular tools."
31 #. type: Content of: <appendix><para>
34 "Debian maintainer tools are meant to aid developers and free their time for "
35 "critical tasks. As Larry Wall says, there's more than one way to do it."
38 #. type: Content of: <appendix><para>
41 "Some people prefer to use high-level package maintenance tools and some do "
42 "not. Debian is officially agnostic on this issue; any tool which gets the "
43 "job done is fine. Therefore, this section is not meant to stipulate to "
44 "anyone which tools they should use or how they should go about their duties "
45 "of maintainership. Nor is it meant to endorse any particular tool to the "
46 "exclusion of a competing tool."
49 #. type: Content of: <appendix><para>
52 "Most of the descriptions of these packages come from the actual package "
53 "descriptions themselves. Further information can be found in the package "
54 "documentation itself. You can also see more info with the command "
55 "<command>apt-cache show <replaceable>package-name</replaceable></command>."
58 #. type: Content of: <appendix><section><title>
63 #. type: Content of: <appendix><section><para>
65 msgid "The following tools are pretty much required for any maintainer."
68 #. type: Content of: <appendix><section><section><title>
70 msgid "<systemitem role=\"package\">dpkg-dev</systemitem>"
73 #. type: Content of: <appendix><section><section><para>
76 "<systemitem role=\"package\">dpkg-dev</systemitem> contains the tools "
77 "(including <command>dpkg-source</command>) required to unpack, build, and "
78 "upload Debian source packages. These utilities contain the fundamental, "
79 "low-level functionality required to create and manipulate packages; as such, "
80 "they are essential for any Debian maintainer."
83 #. type: Content of: <appendix><section><section><title>
85 msgid "<systemitem role=\"package\">debconf</systemitem>"
88 #. type: Content of: <appendix><section><section><para>
91 "<systemitem role=\"package\">debconf</systemitem> provides a consistent "
92 "interface to configuring packages interactively. It is user interface "
93 "independent, allowing end-users to configure packages with a text-only "
94 "interface, an HTML interface, or a dialog interface. New interfaces can be "
98 #. type: Content of: <appendix><section><section><para>
101 "You can find documentation for this package in the <systemitem "
102 "role=\"package\">debconf-doc</systemitem> package."
105 #. type: Content of: <appendix><section><section><para>
108 "Many feel that this system should be used for all packages which require "
109 "interactive configuration; see <xref linkend=\"bpp-config-mgmt\"/>. "
110 "<systemitem role=\"package\">debconf</systemitem> is not currently required "
111 "by Debian Policy, but that may change in the future."
114 #. type: Content of: <appendix><section><section><title>
116 msgid "<systemitem role=\"package\">fakeroot</systemitem>"
119 #. type: Content of: <appendix><section><section><para>
122 "<systemitem role=\"package\">fakeroot</systemitem> simulates root "
123 "privileges. This enables you to build packages without being root (packages "
124 "usually want to install files with root ownership). If you have <systemitem "
125 "role=\"package\">fakeroot</systemitem> installed, you can build packages as "
126 "a regular user: <literal>dpkg-buildpackage -rfakeroot</literal>."
129 #. type: Content of: <appendix><section><title>
131 msgid "Package lint tools"
134 #. type: Content of: <appendix><section><para>
137 "According to the Free On-line Dictionary of Computing (FOLDOC), `lint' is a "
138 "Unix C language processor which carries out more thorough checks on the code "
139 "than is usual with C compilers. Package lint tools help package maintainers "
140 "by automatically finding common problems and policy violations in their "
144 #. type: Content of: <appendix><section><section><title>
146 msgid "<systemitem role=\"package\">lintian</systemitem>"
149 #. type: Content of: <appendix><section><section><para>
152 "<systemitem role=\"package\">lintian</systemitem> dissects Debian packages "
153 "and emits information about bugs and policy violations. It contains "
154 "automated checks for many aspects of Debian policy as well as some checks "
158 #. type: Content of: <appendix><section><section><para>
161 "You should periodically get the newest <systemitem "
162 "role=\"package\">lintian</systemitem> from <literal>unstable</literal> and "
163 "check over all your packages. Notice that the <literal>-i</literal> option "
164 "provides detailed explanations of what each error or warning means, what its "
165 "basis in Policy is, and commonly how you can fix the problem."
168 #. type: Content of: <appendix><section><section><para>
171 "Refer to <xref linkend=\"sanitycheck\"/> for more information on how and "
172 "when to use Lintian."
175 #. type: Content of: <appendix><section><section><para>
178 "You can also see a summary of all problems reported by Lintian on your "
179 "packages at <ulink url=\"&url-lintian;\"></ulink>. These reports contain "
180 "the latest <command>lintian</command> output for the whole development "
181 "distribution (<literal>unstable</literal>)."
184 #. type: Content of: <appendix><section><section><title>
186 msgid "<command>debdiff</command>"
189 #. type: Content of: <appendix><section><section><para>
192 "<command>debdiff</command> (from the <systemitem "
193 "role=\"package\">devscripts</systemitem> package, <xref "
194 "linkend=\"devscripts\"/>) compares file lists and control files of two "
195 "packages. It is a simple regression test, as it will help you notice if the "
196 "number of binary packages has changed since the last upload, or if something "
197 "has changed in the control file. Of course, some of the changes it reports "
198 "will be all right, but it can help you prevent various accidents."
201 #. type: Content of: <appendix><section><section><para>
203 msgid "You can run it over a pair of binary packages:"
206 #. type: Content of: <appendix><section><section><screen>
209 msgid "debdiff package_1-1_arch.deb package_2-1_arch.deb\n"
212 #. type: Content of: <appendix><section><section><para>
214 msgid "Or even a pair of changes files:"
217 #. type: Content of: <appendix><section><section><screen>
220 msgid "debdiff package_1-1_arch.changes package_2-1_arch.changes\n"
223 #. type: Content of: <appendix><section><section><para>
226 "For more information please see <citerefentry> "
227 "<refentrytitle>debdiff</refentrytitle> <manvolnum>1</manvolnum> "
231 #. type: Content of: <appendix><section><title>
233 msgid "Helpers for <filename>debian/rules</filename>"
236 #. type: Content of: <appendix><section><para>
239 "Package building tools make the process of writing "
240 "<filename>debian/rules</filename> files easier. See <xref "
241 "linkend=\"helper-scripts\"/> for more information about why these might or "
242 "might not be desired."
245 #. type: Content of: <appendix><section><section><title>
247 msgid "<systemitem role=\"package\">debhelper</systemitem>"
250 #. type: Content of: <appendix><section><section><para>
253 "<systemitem role=\"package\">debhelper</systemitem> is a collection of "
254 "programs which can be used in <filename>debian/rules</filename> to automate "
255 "common tasks related to building binary Debian packages. <systemitem "
256 "role=\"package\">debhelper</systemitem> includes programs to install various "
257 "files into your package, compress files, fix file permissions, and integrate "
258 "your package with the Debian menu system."
261 #. type: Content of: <appendix><section><section><para>
264 "Unlike some approaches, <systemitem role=\"package\">debhelper</systemitem> "
265 "is broken into several small, simple commands which act in a consistent "
266 "manner. As such, it allows more fine-grained control than some of the other "
267 "debian/rules tools."
270 #. type: Content of: <appendix><section><section><para>
273 "There are a number of little <systemitem "
274 "role=\"package\">debhelper</systemitem> add-on packages, too transient to "
275 "document. You can see the list of most of them by doing <literal>apt-cache "
276 "search ^dh-</literal>."
279 #. type: Content of: <appendix><section><section><title>
281 msgid "<systemitem role=\"package\">dh-make</systemitem>"
284 #. type: Content of: <appendix><section><section><para>
287 "The <systemitem role=\"package\">dh-make</systemitem> package contains "
288 "<command>dh_make</command>, a program that creates a skeleton of files "
289 "necessary to build a Debian package out of a source tree. As the name "
290 "suggests, <command>dh_make</command> is a rewrite of <systemitem "
291 "role=\"package\">debmake</systemitem> and its template files use "
292 "<command>dh_*</command> programs from <systemitem "
293 "role=\"package\">debhelper</systemitem>."
296 #. type: Content of: <appendix><section><section><para>
299 "While the rules files generated by <command>dh_make</command> are in general "
300 "a sufficient basis for a working package, they are still just the "
301 "groundwork: the burden still lies on the maintainer to finely tune the "
302 "generated files and make the package entirely functional and "
306 #. type: Content of: <appendix><section><section><title>
308 msgid "<systemitem role=\"package\">yada</systemitem>"
311 #. type: Content of: <appendix><section><section><para>
314 "<systemitem role=\"package\">yada</systemitem> is another packaging helper "
315 "tool. It uses a <filename>debian/packages</filename> file to auto-generate "
316 "<filename>debian/rules</filename> and other necessary files in the "
317 "<filename>debian/</filename> subdirectory. The "
318 "<filename>debian/packages</filename> file contains instruction to build "
319 "packages and there is no need to create any <filename>Makefile</filename> "
320 "files. There is possibility to use macro engine similar to the one used in "
321 "SPECS files from RPM source packages."
324 #. type: Content of: <appendix><section><section><para>
327 "For more informations see <ulink "
328 "url=\"http://yada.alioth.debian.org/\"><literal>YADA</literal> site</ulink>."
331 #. type: Content of: <appendix><section><section><title>
333 msgid "<systemitem role=\"package\">equivs</systemitem>"
336 #. type: Content of: <appendix><section><section><para>
339 "<systemitem role=\"package\">equivs</systemitem> is another package for "
340 "making packages. It is often suggested for local use if you need to make a "
341 "package simply to fulfill dependencies. It is also sometimes used when "
342 "making ``meta-packages'', which are packages whose only purpose is to depend "
346 #. type: Content of: <appendix><section><title>
348 msgid "Package builders"
351 #. type: Content of: <appendix><section><para>
354 "The following packages help with the package building process, general "
355 "driving <command>dpkg-buildpackage</command> as well as handling supporting "
359 #. type: Content of: <appendix><section><section><title>
361 msgid "<systemitem role=\"package\">cvs-buildpackage</systemitem>"
364 #. type: Content of: <appendix><section><section><para>
367 "<systemitem role=\"package\">cvs-buildpackage</systemitem> provides the "
368 "capability to inject or import Debian source packages into a CVS repository, "
369 "build a Debian package from the CVS repository, and helps in integrating "
370 "upstream changes into the repository."
373 #. type: Content of: <appendix><section><section><para>
376 "These utilities provide an infrastructure to facilitate the use of CVS by "
377 "Debian maintainers. This allows one to keep separate CVS branches of a "
378 "package for <literal>stable</literal>, <literal>unstable</literal> and "
379 "possibly <literal>experimental</literal> distributions, along with the other "
380 "benefits of a version control system."
383 #. type: Content of: <appendix><section><section><title>
385 msgid "<systemitem role=\"package\">debootstrap</systemitem>"
388 #. type: Content of: <appendix><section><section><para>
391 "The <systemitem role=\"package\">debootstrap</systemitem> package and script "
392 "allows you to bootstrap a Debian base system into any part of your "
393 "filesystem. By base system, we mean the bare minimum of packages required "
394 "to operate and install the rest of the system."
397 #. type: Content of: <appendix><section><section><para>
400 "Having a system like this can be useful in many ways. For instance, you can "
401 "<command>chroot</command> into it if you want to test your build "
402 "dependencies. Or you can test how your package behaves when installed into "
403 "a bare base system. Chroot builders use this package; see below."
406 #. type: Content of: <appendix><section><section><title>
408 msgid "<systemitem role=\"package\">pbuilder</systemitem>"
411 #. type: Content of: <appendix><section><section><para>
414 "<systemitem role=\"package\">pbuilder</systemitem> constructs a chrooted "
415 "system, and builds a package inside the chroot. It is very useful to check "
416 "that a package's build-dependencies are correct, and to be sure that "
417 "unnecessary and wrong build dependencies will not exist in the resulting "
421 #. type: Content of: <appendix><section><section><para>
424 "A related package is <systemitem role=\"package\">pbuilder-uml</systemitem>, "
425 "which goes even further by doing the build within a User Mode Linux "
429 #. type: Content of: <appendix><section><section><title>
431 msgid "<systemitem role=\"package\">sbuild</systemitem>"
434 #. type: Content of: <appendix><section><section><para>
437 "<systemitem role=\"package\">sbuild</systemitem> is another automated "
438 "builder. It can use chrooted environments as well. It can be used "
439 "stand-alone, or as part of a networked, distributed build environment. As "
440 "the latter, it is part of the system used by porters to build binary "
441 "packages for all the available architectures. See <xref "
442 "linkend=\"wanna-build\"/> for more information, and <ulink "
443 "url=\"&url-buildd;\"></ulink> to see the system in action."
446 #. type: Content of: <appendix><section><title>
448 msgid "Package uploaders"
451 #. type: Content of: <appendix><section><para>
454 "The following packages help automate or simplify the process of uploading "
455 "packages into the official archive."
458 #. type: Content of: <appendix><section><section><title>
460 msgid "<systemitem role=\"package\">dupload</systemitem>"
463 #. type: Content of: <appendix><section><section><para>
466 "<systemitem role=\"package\">dupload</systemitem> is a package and a script "
467 "to automatically upload Debian packages to the Debian archive, to log the "
468 "upload, and to send mail about the upload of a package. You can configure "
469 "it for new upload locations or methods."
472 #. type: Content of: <appendix><section><section><title>
474 msgid "<systemitem role=\"package\">dput</systemitem>"
477 #. type: Content of: <appendix><section><section><para>
480 "The <systemitem role=\"package\">dput</systemitem> package and script does "
481 "much the same thing as <systemitem role=\"package\">dupload</systemitem>, "
482 "but in a different way. It has some features over <systemitem "
483 "role=\"package\">dupload</systemitem>, such as the ability to check the "
484 "GnuPG signature and checksums before uploading, and the possibility of "
485 "running <command>dinstall</command> in dry-run mode after the upload."
488 #. type: Content of: <appendix><section><section><title>
490 msgid "<command>dcut</command>"
493 #. type: Content of: <appendix><section><section><para>
496 "The <command>dcut</command> script (part of the package <systemitem "
497 "role=\"package\">dput</systemitem>, <xref linkend=\"dput\"/>) helps in "
498 "removing files from the ftp upload directory."
501 #. type: Content of: <appendix><section><title>
503 msgid "Maintenance automation"
506 #. type: Content of: <appendix><section><para>
509 "The following tools help automate different maintenance tasks, from adding "
510 "changelog entries or signature lines and looking up bugs in Emacs to making "
511 "use of the newest and official <filename>config.sub</filename>."
514 #. type: Content of: <appendix><section><section><title>
516 msgid "<systemitem role=\"package\">devscripts</systemitem>"
519 #. type: Content of: <appendix><section><section><para>
522 "<systemitem role=\"package\">devscripts</systemitem> is a package containing "
523 "wrappers and tools which are very helpful for maintaining your Debian "
524 "packages. Example scripts include <command>debchange</command> and "
525 "<command>dch</command>, which manipulate your "
526 "<filename>debian/changelog</filename> file from the command-line, and "
527 "<command>debuild</command>, which is a wrapper around "
528 "<command>dpkg-buildpackage</command>. The <command>bts</command> utility is "
529 "also very helpful to update the state of bug reports on the command line. "
530 "<command>uscan</command> can be used to watch for new upstream versions of "
531 "your packages. <command>debrsign</command> can be used to remotely sign a "
532 "package prior to upload, which is nice when the machine you build the "
533 "package on is different from where your GPG keys are."
536 #. type: Content of: <appendix><section><section><para>
539 "See the <citerefentry> <refentrytitle>devscripts</refentrytitle> "
540 "<manvolnum>1</manvolnum> </citerefentry> manual page for a complete list of "
544 #. type: Content of: <appendix><section><section><title>
546 msgid "<systemitem role=\"package\">autotools-dev</systemitem>"
549 #. type: Content of: <appendix><section><section><para>
552 "<systemitem role=\"package\">autotools-dev</systemitem> contains best "
553 "practices for people who maintain packages which use "
554 "<command>autoconf</command> and/or <command>automake</command>. Also "
555 "contains canonical <filename>config.sub</filename> and "
556 "<filename>config.guess</filename> files which are known to work on all "
560 #. type: Content of: <appendix><section><section><title>
562 msgid "<systemitem role=\"package\">dpkg-repack</systemitem>"
565 #. type: Content of: <appendix><section><section><para>
568 "<command>dpkg-repack</command> creates Debian package file out of a package "
569 "that has already been installed. If any changes have been made to the "
570 "package while it was unpacked (e.g., files in <filename>/etc</filename> were "
571 "modified), the new package will inherit the changes."
574 #. type: Content of: <appendix><section><section><para>
577 "This utility can make it easy to copy packages from one computer to another, "
578 "or to recreate packages which are installed on your system but no longer "
579 "available elsewhere, or to save the current state of a package before you "
583 #. type: Content of: <appendix><section><section><title>
585 msgid "<systemitem role=\"package\">alien</systemitem>"
588 #. type: Content of: <appendix><section><section><para>
591 "<command>alien</command> converts binary packages between various packaging "
592 "formats, including Debian, RPM (RedHat), LSB (Linux Standard Base), Solaris, "
593 "and Slackware packages."
596 #. type: Content of: <appendix><section><section><title>
598 msgid "<systemitem role=\"package\">debsums</systemitem>"
601 #. type: Content of: <appendix><section><section><para>
604 "<command>debsums</command> checks installed packages against their MD5 "
605 "sums. Note that not all packages have MD5 sums, since they aren't required "
609 #. type: Content of: <appendix><section><section><title>
611 msgid "<systemitem role=\"package\">dpkg-dev-el</systemitem>"
614 #. type: Content of: <appendix><section><section><para>
617 "<systemitem role=\"package\">dpkg-dev-el</systemitem> is an Emacs lisp "
618 "package which provides assistance when editing some of the files in the "
619 "<filename>debian</filename> directory of your package. For instance, there "
620 "are handy functions for listing a package's current bugs, and for finalizing "
621 "the latest entry in a <filename>debian/changelog</filename> file."
624 #. type: Content of: <appendix><section><section><title>
626 msgid "<command>dpkg-depcheck</command>"
629 #. type: Content of: <appendix><section><section><para>
632 "<command>dpkg-depcheck</command> (from the <systemitem "
633 "role=\"package\">devscripts</systemitem> package, <xref "
634 "linkend=\"devscripts\"/>) runs a command under <command>strace</command> to "
635 "determine all the packages that were used by the said command."
638 #. type: Content of: <appendix><section><section><para>
641 "For Debian packages, this is useful when you have to compose a "
642 "<literal>Build-Depends</literal> line for your new package: running the "
643 "build process through <command>dpkg-depcheck</command> will provide you with "
644 "a good first approximation of the build-dependencies. For example:"
647 #. type: Content of: <appendix><section><section><screen>
650 msgid "dpkg-depcheck -b debian/rules build\n"
653 #. type: Content of: <appendix><section><section><para>
656 "<command>dpkg-depcheck</command> can also be used to check for run-time "
657 "dependencies, especially if your package uses <citerefentry> "
658 "<refentrytitle>exec</refentrytitle> <manvolnum>2</manvolnum> </citerefentry> "
659 "to run other programs."
662 #. type: Content of: <appendix><section><section><para>
665 "For more information please see <citerefentry> "
666 "<refentrytitle>dpkg-depcheck</refentrytitle> <manvolnum>1</manvolnum> "
670 #. type: Content of: <appendix><section><title>
672 msgid "Porting tools"
675 #. type: Content of: <appendix><section><para>
677 msgid "The following tools are helpful for porters and for cross-compilation."
680 #. type: Content of: <appendix><section><section><title>
682 msgid "<systemitem role=\"package\">quinn-diff</systemitem>"
685 #. type: Content of: <appendix><section><section><para>
688 "<systemitem role=\"package\">quinn-diff</systemitem> is used to locate the "
689 "differences from one architecture to another. For instance, it could tell "
690 "you which packages need to be ported for architecture "
691 "<replaceable>Y</replaceable>, based on architecture "
692 "<replaceable>X</replaceable>."
695 #. type: Content of: <appendix><section><section><title>
697 msgid "<systemitem role=\"package\">dpkg-cross</systemitem>"
700 #. type: Content of: <appendix><section><section><para>
703 "<systemitem role=\"package\">dpkg-cross</systemitem> is a tool for "
704 "installing libraries and headers for cross-compiling in a way similar to "
705 "<systemitem role=\"package\">dpkg</systemitem>. Furthermore, the "
706 "functionality of <command>dpkg-buildpackage</command> and "
707 "<command>dpkg-shlibdeps</command> is enhanced to support cross-compiling."
710 #. type: Content of: <appendix><section><title>
712 msgid "Documentation and information"
715 #. type: Content of: <appendix><section><para>
718 "The following packages provide information for maintainers or help with "
719 "building documentation."
722 #. type: Content of: <appendix><section><section><title>
724 msgid "<systemitem role=\"package\">docbook-xml</systemitem>"
727 #. type: Content of: <appendix><section><section><para>
730 "<systemitem role=\"package\">docbook-xml</systemitem> provides the DocBook "
731 "XML DTDs, which are commonly used for Debian documentation (as is the older "
732 "debiandoc SGML DTD). This manual, for instance, is written in DocBook XML."
735 #. type: Content of: <appendix><section><section><para>
738 "The <systemitem role=\"package\">docbook-xsl</systemitem> package provides "
739 "the XSL files for building and styling the source to various output "
740 "formats. You will need an XSLT processor, such as <systemitem "
741 "role=\"package\">xsltproc</systemitem>, to use the XSL stylesheets. "
742 "Documentation for the stylesheets can be found in the various <systemitem "
743 "role=\"package\">docbook-xsl-doc-*</systemitem> packages."
746 #. type: Content of: <appendix><section><section><para>
749 "To produce PDF from FO, you need an FO processor, such as <systemitem "
750 "role=\"package\">xmlroff</systemitem> or <systemitem "
751 "role=\"package\">fop</systemitem>. Another tool to generate PDF from DocBook "
752 "XML is <systemitem role=\"package\">dblatex</systemitem>."
755 #. type: Content of: <appendix><section><section><title>
757 msgid "<systemitem role=\"package\">debiandoc-sgml</systemitem>"
760 #. type: Content of: <appendix><section><section><para>
763 "<systemitem role=\"package\">debiandoc-sgml</systemitem> provides the "
764 "DebianDoc SGML DTD, which is commonly used for Debian documentation, but is "
765 "now deprecated (<systemitem role=\"package\">docbook-xml</systemitem> should "
766 "be used instead). It also provides scripts for building and styling the "
767 "source to various output formats."
770 #. type: Content of: <appendix><section><section><para>
773 "Documentation for the DTD can be found in the <systemitem "
774 "role=\"package\">debiandoc-sgml-doc</systemitem> package."
777 #. type: Content of: <appendix><section><section><title>
779 msgid "<systemitem role=\"package\">debian-keyring</systemitem>"
782 #. type: Content of: <appendix><section><section><para>
785 "Contains the public GPG and PGP keys of Debian developers. See <xref "
786 "linkend=\"key-maint\"/> and the package documentation for more information."
789 #. type: Content of: <appendix><section><section><title>
791 msgid "<systemitem role=\"package\">debian-maintainers</systemitem>"
794 #. type: Content of: <appendix><section><section><para>
797 "Contains the public GPG keys of Debian Maintainers. See <ulink "
798 "url=\"&url-wiki-dm;\"></ulink> for more information."
801 #. type: Content of: <appendix><section><section><title>
803 msgid "<systemitem role=\"package\">debview</systemitem>"
806 #. type: Content of: <appendix><section><section><para>
809 "<systemitem role=\"package\">debview</systemitem> provides an Emacs mode for "
810 "viewing Debian binary packages. This lets you examine a package without "