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: 2011-03-03 11:18-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"
16 "Content-Type: text/plain; charset=UTF-8\n"
17 "Content-Transfer-Encoding: 8bit\n"
19 #. type: Content of: <appendix><title>
21 msgid "Overview of Debian Maintainer Tools"
24 #. type: Content of: <appendix><para>
27 "This section contains a rough overview of the tools available to "
28 "maintainers. The following is by no means complete or definitive, but just "
29 "a guide to some of the more popular tools."
32 #. type: Content of: <appendix><para>
35 "Debian maintainer tools are meant to aid developers and free their time for "
36 "critical tasks. As Larry Wall says, there's more than one way to do it."
39 #. type: Content of: <appendix><para>
42 "Some people prefer to use high-level package maintenance tools and some do "
43 "not. Debian is officially agnostic on this issue; any tool which gets the "
44 "job done is fine. Therefore, this section is not meant to stipulate to "
45 "anyone which tools they should use or how they should go about their duties "
46 "of maintainership. Nor is it meant to endorse any particular tool to the "
47 "exclusion of a competing tool."
50 #. type: Content of: <appendix><para>
53 "Most of the descriptions of these packages come from the actual package "
54 "descriptions themselves. Further information can be found in the package "
55 "documentation itself. You can also see more info with the command "
56 "<command>apt-cache show <replaceable>package-name</replaceable></command>."
59 #. type: Content of: <appendix><section><title>
64 #. type: Content of: <appendix><section><para>
66 msgid "The following tools are pretty much required for any maintainer."
69 #. type: Content of: <appendix><section><section><title>
71 msgid "<systemitem role=\"package\">dpkg-dev</systemitem>"
74 #. type: Content of: <appendix><section><section><para>
77 "<systemitem role=\"package\">dpkg-dev</systemitem> contains the tools "
78 "(including <command>dpkg-source</command>) required to unpack, build, and "
79 "upload Debian source packages. These utilities contain the fundamental, low-"
80 "level functionality required to create and manipulate packages; as such, "
81 "they are essential for any Debian maintainer."
84 #. type: Content of: <appendix><section><section><title>
86 msgid "<systemitem role=\"package\">debconf</systemitem>"
89 #. type: Content of: <appendix><section><section><para>
92 "<systemitem role=\"package\">debconf</systemitem> provides a consistent "
93 "interface to configuring packages interactively. It is user interface "
94 "independent, allowing end-users to configure packages with a text-only "
95 "interface, an HTML interface, or a dialog interface. New interfaces can be "
99 #. type: Content of: <appendix><section><section><para>
102 "You can find documentation for this package in the <systemitem role=\"package"
103 "\">debconf-doc</systemitem> package."
106 #. type: Content of: <appendix><section><section><para>
109 "Many feel that this system should be used for all packages which require "
110 "interactive configuration; see <xref linkend=\"bpp-config-mgmt\"/>. "
111 "<systemitem role=\"package\">debconf</systemitem> is not currently required "
112 "by Debian Policy, but that may change in the future."
115 #. type: Content of: <appendix><section><section><title>
117 msgid "<systemitem role=\"package\">fakeroot</systemitem>"
120 #. type: Content of: <appendix><section><section><para>
123 "<systemitem role=\"package\">fakeroot</systemitem> simulates root "
124 "privileges. This enables you to build packages without being root (packages "
125 "usually want to install files with root ownership). If you have <systemitem "
126 "role=\"package\">fakeroot</systemitem> installed, you can build packages as "
127 "a regular user: <literal>dpkg-buildpackage -rfakeroot</literal>."
130 #. type: Content of: <appendix><section><title>
132 msgid "Package lint tools"
135 #. type: Content of: <appendix><section><para>
138 "According to the Free On-line Dictionary of Computing (FOLDOC), `lint' is a "
139 "Unix C language processor which carries out more thorough checks on the code "
140 "than is usual with C compilers. Package lint tools help package maintainers "
141 "by automatically finding common problems and policy violations in their "
145 #. type: Content of: <appendix><section><section><title>
147 msgid "<systemitem role=\"package\">lintian</systemitem>"
150 #. type: Content of: <appendix><section><section><para>
153 "<systemitem role=\"package\">lintian</systemitem> dissects Debian packages "
154 "and emits information about bugs and policy violations. It contains "
155 "automated checks for many aspects of Debian policy as well as some checks "
159 #. type: Content of: <appendix><section><section><para>
162 "You should periodically get the newest <systemitem role=\"package\">lintian</"
163 "systemitem> from <literal>unstable</literal> and check over all your "
164 "packages. Notice that the <literal>-i</literal> option provides detailed "
165 "explanations of what each error or warning means, what its basis in Policy "
166 "is, and commonly how you can fix the problem."
169 #. type: Content of: <appendix><section><section><para>
172 "Refer to <xref linkend=\"sanitycheck\"/> for more information on how and "
173 "when to use Lintian."
176 #. type: Content of: <appendix><section><section><para>
179 "You can also see a summary of all problems reported by Lintian on your "
180 "packages at <ulink url=\"&url-lintian;\"></ulink>. These reports contain "
181 "the latest <command>lintian</command> output for the whole development "
182 "distribution (<literal>unstable</literal>)."
185 #. type: Content of: <appendix><section><section><title>
187 msgid "<command>debdiff</command>"
190 #. type: Content of: <appendix><section><section><para>
193 "<command>debdiff</command> (from the <systemitem role=\"package"
194 "\">devscripts</systemitem> package, <xref linkend=\"devscripts\"/>) "
195 "compares file lists and control files of two packages. It is a simple "
196 "regression test, as it will help you notice if the number of binary packages "
197 "has changed since the last upload, or if something has changed in the "
198 "control file. Of course, some of the changes it reports will be all right, "
199 "but it can help you prevent various accidents."
202 #. type: Content of: <appendix><section><section><para>
204 msgid "You can run it over a pair of binary packages:"
207 #. type: Content of: <appendix><section><section><screen>
210 msgid "debdiff package_1-1_arch.deb package_2-1_arch.deb\n"
213 #. type: Content of: <appendix><section><section><para>
215 msgid "Or even a pair of changes files:"
218 #. type: Content of: <appendix><section><section><screen>
221 msgid "debdiff package_1-1_arch.changes package_2-1_arch.changes\n"
224 #. type: Content of: <appendix><section><section><para>
227 "For more information please see <citerefentry> <refentrytitle>debdiff</"
228 "refentrytitle> <manvolnum>1</manvolnum> </citerefentry>."
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 <filename>debian/rules</"
240 "filename> files easier. See <xref linkend=\"helper-scripts\"/> for more "
241 "information about why these might or might not be desired."
244 #. type: Content of: <appendix><section><section><title>
246 msgid "<systemitem role=\"package\">debhelper</systemitem>"
249 #. type: Content of: <appendix><section><section><para>
252 "<systemitem role=\"package\">debhelper</systemitem> is a collection of "
253 "programs which can be used in <filename>debian/rules</filename> to automate "
254 "common tasks related to building binary Debian packages. <systemitem role="
255 "\"package\">debhelper</systemitem> includes programs to install various "
256 "files into your package, compress files, fix file permissions, and integrate "
257 "your package with the Debian menu system."
260 #. type: Content of: <appendix><section><section><para>
263 "Unlike some approaches, <systemitem role=\"package\">debhelper</systemitem> "
264 "is broken into several small, simple commands which act in a consistent "
265 "manner. As such, it allows more fine-grained control than some of the other "
266 "debian/rules tools."
269 #. type: Content of: <appendix><section><section><para>
272 "There are a number of little <systemitem role=\"package\">debhelper</"
273 "systemitem> add-on packages, too transient to document. You can see the "
274 "list of most of them by doing <literal>apt-cache search ^dh-</literal>."
277 #. type: Content of: <appendix><section><section><title>
279 msgid "<systemitem role=\"package\">dh-make</systemitem>"
282 #. type: Content of: <appendix><section><section><para>
285 "The <systemitem role=\"package\">dh-make</systemitem> package contains "
286 "<command>dh_make</command>, a program that creates a skeleton of files "
287 "necessary to build a Debian package out of a source tree. As the name "
288 "suggests, <command>dh_make</command> is a rewrite of <systemitem role="
289 "\"package\">debmake</systemitem> and its template files use <command>dh_*</"
290 "command> programs from <systemitem role=\"package\">debhelper</systemitem>."
293 #. type: Content of: <appendix><section><section><para>
296 "While the rules files generated by <command>dh_make</command> are in general "
297 "a sufficient basis for a working package, they are still just the "
298 "groundwork: the burden still lies on the maintainer to finely tune the "
299 "generated files and make the package entirely functional and Policy-"
303 #. type: Content of: <appendix><section><section><title>
305 msgid "<systemitem role=\"package\">yada</systemitem>"
308 #. type: Content of: <appendix><section><section><para>
311 "<systemitem role=\"package\">yada</systemitem> is another packaging helper "
312 "tool. It uses a <filename>debian/packages</filename> file to auto-generate "
313 "<filename>debian/rules</filename> and other necessary files in the "
314 "<filename>debian/</filename> subdirectory. The <filename>debian/packages</"
315 "filename> file contains instruction to build packages and there is no need "
316 "to create any <filename>Makefile</filename> files. There is possibility to "
317 "use macro engine similar to the one used in SPECS files from RPM source "
321 #. type: Content of: <appendix><section><section><para>
324 "For more informations see <ulink url=\"http://yada.alioth.debian.org/"
325 "\"><literal>YADA</literal> site</ulink>."
328 #. type: Content of: <appendix><section><section><title>
330 msgid "<systemitem role=\"package\">equivs</systemitem>"
333 #. type: Content of: <appendix><section><section><para>
336 "<systemitem role=\"package\">equivs</systemitem> is another package for "
337 "making packages. It is often suggested for local use if you need to make a "
338 "package simply to fulfill dependencies. It is also sometimes used when "
339 "making ``meta-packages'', which are packages whose only purpose is to depend "
343 #. type: Content of: <appendix><section><title>
345 msgid "Package builders"
348 #. type: Content of: <appendix><section><para>
351 "The following packages help with the package building process, general "
352 "driving <command>dpkg-buildpackage</command> as well as handling supporting "
356 #. type: Content of: <appendix><section><section><title>
358 msgid "<systemitem role=\"package\">cvs-buildpackage</systemitem>"
361 #. type: Content of: <appendix><section><section><para>
364 "<systemitem role=\"package\">cvs-buildpackage</systemitem> provides the "
365 "capability to inject or import Debian source packages into a CVS repository, "
366 "build a Debian package from the CVS repository, and helps in integrating "
367 "upstream changes into the repository."
370 #. type: Content of: <appendix><section><section><para>
373 "These utilities provide an infrastructure to facilitate the use of CVS by "
374 "Debian maintainers. This allows one to keep separate CVS branches of a "
375 "package for <literal>stable</literal>, <literal>unstable</literal> and "
376 "possibly <literal>experimental</literal> distributions, along with the other "
377 "benefits of a version control system."
380 #. type: Content of: <appendix><section><section><title>
382 msgid "<systemitem role=\"package\">debootstrap</systemitem>"
385 #. type: Content of: <appendix><section><section><para>
388 "The <systemitem role=\"package\">debootstrap</systemitem> package and script "
389 "allows you to bootstrap a Debian base system into any part of your "
390 "filesystem. By base system, we mean the bare minimum of packages required "
391 "to operate and install the rest of the system."
394 #. type: Content of: <appendix><section><section><para>
397 "Having a system like this can be useful in many ways. For instance, you can "
398 "<command>chroot</command> into it if you want to test your build "
399 "dependencies. Or you can test how your package behaves when installed into "
400 "a bare base system. Chroot builders use this package; see below."
403 #. type: Content of: <appendix><section><section><title>
405 msgid "<systemitem role=\"package\">pbuilder</systemitem>"
408 #. type: Content of: <appendix><section><section><para>
411 "<systemitem role=\"package\">pbuilder</systemitem> constructs a chrooted "
412 "system, and builds a package inside the chroot. It is very useful to check "
413 "that a package's build-dependencies are correct, and to be sure that "
414 "unnecessary and wrong build dependencies will not exist in the resulting "
418 #. type: Content of: <appendix><section><section><para>
421 "A related package is <systemitem role=\"package\">pbuilder-uml</systemitem>, "
422 "which goes even further by doing the build within a User Mode Linux "
426 #. type: Content of: <appendix><section><section><title>
428 msgid "<systemitem role=\"package\">sbuild</systemitem>"
431 #. type: Content of: <appendix><section><section><para>
434 "<systemitem role=\"package\">sbuild</systemitem> is another automated "
435 "builder. It can use chrooted environments as well. It can be used stand-"
436 "alone, or as part of a networked, distributed build environment. As the "
437 "latter, it is part of the system used by porters to build binary packages "
438 "for all the available architectures. See <xref linkend=\"wanna-build\"/> "
439 "for more information, and <ulink url=\"&url-buildd;\"></ulink> to see the "
443 #. type: Content of: <appendix><section><title>
445 msgid "Package uploaders"
448 #. type: Content of: <appendix><section><para>
451 "The following packages help automate or simplify the process of uploading "
452 "packages into the official archive."
455 #. type: Content of: <appendix><section><section><title>
457 msgid "<systemitem role=\"package\">dupload</systemitem>"
460 #. type: Content of: <appendix><section><section><para>
463 "<systemitem role=\"package\">dupload</systemitem> is a package and a script "
464 "to automatically upload Debian packages to the Debian archive, to log the "
465 "upload, and to send mail about the upload of a package. You can configure "
466 "it for new upload locations or methods."
469 #. type: Content of: <appendix><section><section><title>
471 msgid "<systemitem role=\"package\">dput</systemitem>"
474 #. type: Content of: <appendix><section><section><para>
477 "The <systemitem role=\"package\">dput</systemitem> package and script does "
478 "much the same thing as <systemitem role=\"package\">dupload</systemitem>, "
479 "but in a different way. It has some features over <systemitem role=\"package"
480 "\">dupload</systemitem>, such as the ability to check the GnuPG signature "
481 "and checksums before uploading, and the possibility of running "
482 "<command>dinstall</command> in dry-run mode after the upload."
485 #. type: Content of: <appendix><section><section><title>
487 msgid "<command>dcut</command>"
490 #. type: Content of: <appendix><section><section><para>
493 "The <command>dcut</command> script (part of the package <systemitem role="
494 "\"package\">dput</systemitem>, <xref linkend=\"dput\"/>) helps in removing "
495 "files from the ftp upload directory."
498 #. type: Content of: <appendix><section><title>
500 msgid "Maintenance automation"
503 #. type: Content of: <appendix><section><para>
506 "The following tools help automate different maintenance tasks, from adding "
507 "changelog entries or signature lines and looking up bugs in Emacs to making "
508 "use of the newest and official <filename>config.sub</filename>."
511 #. type: Content of: <appendix><section><section><title>
513 msgid "<systemitem role=\"package\">devscripts</systemitem>"
516 #. type: Content of: <appendix><section><section><para>
519 "<systemitem role=\"package\">devscripts</systemitem> is a package containing "
520 "wrappers and tools which are very helpful for maintaining your Debian "
521 "packages. Example scripts include <command>debchange</command> and "
522 "<command>dch</command>, which manipulate your <filename>debian/changelog</"
523 "filename> file from the command-line, and <command>debuild</command>, which "
524 "is a wrapper around <command>dpkg-buildpackage</command>. The <command>bts</"
525 "command> utility is also very helpful to update the state of bug reports on "
526 "the command line. <command>uscan</command> can be used to watch for new "
527 "upstream versions of your packages. <command>debrsign</command> can be used "
528 "to remotely sign a package prior to upload, which is nice when the machine "
529 "you build the package on is different from where your GPG keys are."
532 #. type: Content of: <appendix><section><section><para>
535 "See the <citerefentry> <refentrytitle>devscripts</refentrytitle> "
536 "<manvolnum>1</manvolnum> </citerefentry> manual page for a complete list of "
540 #. type: Content of: <appendix><section><section><title>
542 msgid "<systemitem role=\"package\">autotools-dev</systemitem>"
545 #. type: Content of: <appendix><section><section><para>
548 "<systemitem role=\"package\">autotools-dev</systemitem> contains best "
549 "practices for people who maintain packages which use <command>autoconf</"
550 "command> and/or <command>automake</command>. Also contains canonical "
551 "<filename>config.sub</filename> and <filename>config.guess</filename> files "
552 "which are known to work on all Debian ports."
555 #. type: Content of: <appendix><section><section><title>
557 msgid "<systemitem role=\"package\">dpkg-repack</systemitem>"
560 #. type: Content of: <appendix><section><section><para>
563 "<command>dpkg-repack</command> creates Debian package file out of a package "
564 "that has already been installed. If any changes have been made to the "
565 "package while it was unpacked (e.g., files in <filename>/etc</filename> were "
566 "modified), the new package will inherit the changes."
569 #. type: Content of: <appendix><section><section><para>
572 "This utility can make it easy to copy packages from one computer to another, "
573 "or to recreate packages which are installed on your system but no longer "
574 "available elsewhere, or to save the current state of a package before you "
578 #. type: Content of: <appendix><section><section><title>
580 msgid "<systemitem role=\"package\">alien</systemitem>"
583 #. type: Content of: <appendix><section><section><para>
586 "<command>alien</command> converts binary packages between various packaging "
587 "formats, including Debian, RPM (RedHat), LSB (Linux Standard Base), Solaris, "
588 "and Slackware packages."
591 #. type: Content of: <appendix><section><section><title>
593 msgid "<systemitem role=\"package\">debsums</systemitem>"
596 #. type: Content of: <appendix><section><section><para>
599 "<command>debsums</command> checks installed packages against their MD5 "
600 "sums. Note that not all packages have MD5 sums, since they aren't required "
604 #. type: Content of: <appendix><section><section><title>
606 msgid "<systemitem role=\"package\">dpkg-dev-el</systemitem>"
609 #. type: Content of: <appendix><section><section><para>
612 "<systemitem role=\"package\">dpkg-dev-el</systemitem> is an Emacs lisp "
613 "package which provides assistance when editing some of the files in the "
614 "<filename>debian</filename> directory of your package. For instance, there "
615 "are handy functions for listing a package's current bugs, and for finalizing "
616 "the latest entry in a <filename>debian/changelog</filename> file."
619 #. type: Content of: <appendix><section><section><title>
621 msgid "<command>dpkg-depcheck</command>"
624 #. type: Content of: <appendix><section><section><para>
627 "<command>dpkg-depcheck</command> (from the <systemitem role=\"package"
628 "\">devscripts</systemitem> package, <xref linkend=\"devscripts\"/>) runs a "
629 "command under <command>strace</command> to determine all the packages that "
630 "were used by the said command."
633 #. type: Content of: <appendix><section><section><para>
636 "For Debian packages, this is useful when you have to compose a "
637 "<literal>Build-Depends</literal> line for your new package: running the "
638 "build process through <command>dpkg-depcheck</command> will provide you with "
639 "a good first approximation of the build-dependencies. For example:"
642 #. type: Content of: <appendix><section><section><screen>
645 msgid "dpkg-depcheck -b debian/rules build\n"
648 #. type: Content of: <appendix><section><section><para>
651 "<command>dpkg-depcheck</command> can also be used to check for run-time "
652 "dependencies, especially if your package uses <citerefentry> "
653 "<refentrytitle>exec</refentrytitle> <manvolnum>2</manvolnum> </citerefentry> "
654 "to run other programs."
657 #. type: Content of: <appendix><section><section><para>
660 "For more information please see <citerefentry> <refentrytitle>dpkg-depcheck</"
661 "refentrytitle> <manvolnum>1</manvolnum> </citerefentry>."
664 #. type: Content of: <appendix><section><title>
666 msgid "Porting tools"
669 #. type: Content of: <appendix><section><para>
671 msgid "The following tools are helpful for porters and for cross-compilation."
674 #. type: Content of: <appendix><section><section><title>
676 msgid "<systemitem role=\"package\">quinn-diff</systemitem>"
679 #. type: Content of: <appendix><section><section><para>
682 "<systemitem role=\"package\">quinn-diff</systemitem> is used to locate the "
683 "differences from one architecture to another. For instance, it could tell "
684 "you which packages need to be ported for architecture <replaceable>Y</"
685 "replaceable>, based on architecture <replaceable>X</replaceable>."
688 #. type: Content of: <appendix><section><section><title>
690 msgid "<systemitem role=\"package\">dpkg-cross</systemitem>"
693 #. type: Content of: <appendix><section><section><para>
696 "<systemitem role=\"package\">dpkg-cross</systemitem> is a tool for "
697 "installing libraries and headers for cross-compiling in a way similar to "
698 "<systemitem role=\"package\">dpkg</systemitem>. Furthermore, the "
699 "functionality of <command>dpkg-buildpackage</command> and <command>dpkg-"
700 "shlibdeps</command> is enhanced to support cross-compiling."
703 #. type: Content of: <appendix><section><title>
705 msgid "Documentation and information"
708 #. type: Content of: <appendix><section><para>
711 "The following packages provide information for maintainers or help with "
712 "building documentation."
715 #. type: Content of: <appendix><section><section><title>
717 msgid "<systemitem role=\"package\">docbook-xml</systemitem>"
720 #. type: Content of: <appendix><section><section><para>
723 "<systemitem role=\"package\">docbook-xml</systemitem> provides the DocBook "
724 "XML DTDs, which are commonly used for Debian documentation (as is the older "
725 "debiandoc SGML DTD). This manual, for instance, is written in DocBook XML."
728 #. type: Content of: <appendix><section><section><para>
731 "The <systemitem role=\"package\">docbook-xsl</systemitem> package provides "
732 "the XSL files for building and styling the source to various output formats. "
733 "You will need an XSLT processor, such as <systemitem role=\"package"
734 "\">xsltproc</systemitem>, to use the XSL stylesheets. Documentation for the "
735 "stylesheets can be found in the various <systemitem role=\"package\">docbook-"
736 "xsl-doc-*</systemitem> packages."
739 #. type: Content of: <appendix><section><section><para>
742 "To produce PDF from FO, you need an FO processor, such as <systemitem role="
743 "\"package\">xmlroff</systemitem> or <systemitem role=\"package\">fop</"
744 "systemitem>. Another tool to generate PDF from DocBook XML is <systemitem "
745 "role=\"package\">dblatex</systemitem>."
748 #. type: Content of: <appendix><section><section><title>
750 msgid "<systemitem role=\"package\">debiandoc-sgml</systemitem>"
753 #. type: Content of: <appendix><section><section><para>
756 "<systemitem role=\"package\">debiandoc-sgml</systemitem> provides the "
757 "DebianDoc SGML DTD, which is commonly used for Debian documentation, but is "
758 "now deprecated (<systemitem role=\"package\">docbook-xml</systemitem> should "
759 "be used instead). It also provides scripts for building and styling the "
760 "source to various output formats."
763 #. type: Content of: <appendix><section><section><para>
766 "Documentation for the DTD can be found in the <systemitem role=\"package"
767 "\">debiandoc-sgml-doc</systemitem> package."
770 #. type: Content of: <appendix><section><section><title>
772 msgid "<systemitem role=\"package\">debian-keyring</systemitem>"
775 #. type: Content of: <appendix><section><section><para>
778 "Contains the public GPG and PGP keys of Debian developers. See <xref "
779 "linkend=\"key-maint\"/> and the package documentation for more information."
782 #. type: Content of: <appendix><section><section><title>
784 msgid "<systemitem role=\"package\">debian-maintainers</systemitem>"
787 #. type: Content of: <appendix><section><section><para>
790 "Contains the public GPG keys of Debian Maintainers. See <ulink url=\"&url-"
791 "wiki-dm;\"></ulink> for more information."
794 #. type: Content of: <appendix><section><section><title>
796 msgid "<systemitem role=\"package\">debview</systemitem>"
799 #. type: Content of: <appendix><section><section><para>
802 "<systemitem role=\"package\">debview</systemitem> provides an Emacs mode for "
803 "viewing Debian binary packages. This lets you examine a package without "