chiark / gitweb /
Remove all references to non-US.
[developers-reference.git] / developers-reference.sgml
index ad2b982e347d2bf032e44a4d253793b8121141a8..5c6cffc31cb2f086db4632a90e1be89c01bc4633 100644 (file)
@@ -7,7 +7,7 @@
   <!ENTITY % dynamicdata  SYSTEM "dynamic.ent" > %dynamicdata;
 
   <!-- CVS revision of this document -->
-  <!ENTITY cvs-rev "$Revision: 1.304 $">
+  <!ENTITY cvs-rev "$Revision: 1.332 $">
 
   <!-- if you are translating this document, please notate the CVS
        revision of the original developer's reference in cvs-en-rev -->
@@ -31,7 +31,7 @@
 
       <copyright>
        <copyrightsummary>
-copyright &copy; 2004&mdash;2006 Andreas Barth</copyrightsummary>
+copyright &copy; 2004&mdash;2007 Andreas Barth</copyrightsummary>
        <copyrightsummary>
 copyright &copy; 1998&mdash;2003 Adam Di Carlo</copyrightsummary>
        <copyrightsummary>
@@ -144,6 +144,11 @@ get started.  Finally, if you are interested in documentation or
 Quality Assurance (QA) work you can join maintainers already working on
 these tasks and submit patches and improvements.
 
+        <p>
+One pitfall could be a too-generic local part in your mailadress:
+Terms like mail, admin, root, master should be avoided, please
+see <url id="http://www.debian.org/MailingLists/"> for details.
+
 
       <sect id="mentors">Debian mentors and sponsors
        <p>
@@ -247,7 +252,7 @@ Version 4 (primary) keys can either use the RSA or the DSA algorithms,
 so this has nothing to do with GnuPG's question about "which kind
 of key do you want: (1) DSA and Elgamal, (2) DSA (sign only), (5)
 RSA (sign only)".  If you don't have any special requirements just pick
-the defailt.
+the default.
 <p>
 The easiest way to tell whether an existing key is a v4 key or a v3
 (or v2) key is to look at the fingerprint:
@@ -469,7 +474,9 @@ Send an gpg-signed email about why you are leaving the project to
 &email-debian-private;.
            <item>
 Notify the Debian key ring maintainers that you are leaving by
-emailing to &email-debian-keyring;.
+opening a ticket in Debian RT by sending a mail 
+to keyring@rt.debian.org with the words 'Debian RT' somewhere in the subject
+line (case doesn't matter).
 </enumlist>
 
 
@@ -505,7 +512,8 @@ replying to.  In general, please adhere to the usual conventions for
 posting messages.
        <p>
 Please read the <url name="code of conduct" id="&url-debian-lists;#codeofconduct">
-for more information.
+for more information. The <url name="Debian Community Guidelines" id="&url-dcg;">
+are also worth reading.
 
        <sect1 id="core-devel-mailing-lists">Core development mailing lists
        <p>
@@ -596,7 +604,7 @@ occasionally used to talk about documentation, like the document you are
 reading. Other channels are dedicated to an architecture or a set of
 packages: <em>#debian-bsd</em>, <em>#debian-kde</em>, <em>#debian-jr</em>,
 <em>#debian-edu</em>,
-<em>#debian-sf</em> (SourceForge package), <em>#debian-oo</em> (OpenOffice
+<em>#debian-oo</em> (OpenOffice
 package) ...
        <p>
 Some non-English developers' channels exist as well, for example
@@ -634,7 +642,7 @@ critical functions in the Debian project. Most of the machines are used
 for porting activities, and they all have a permanent connection to the
 Internet.
        <p>
-Most of the machines are available for individual developers to use,
+Some of the machines are available for individual developers to use,
 as long as the developers follow the rules set forth in the
 <url name="Debian Machine Usage Policies" id="&url-dmup;">.
        <p>
@@ -657,8 +665,11 @@ contact information, information about who can log in, SSH keys etc.
        <p>
 If you have a problem with the operation of a Debian server, and you
 think that the system operators need to be notified of this problem,
-the Debian system administrator team is reachable at
-<email>debian-admin@lists.debian.org</email>.
+you can check the list of open issues in the DSA queue of our request
+tracker at <url id="&url-rt;"> (you can login with user "guest" and
+password "readonly"). To report a new problem, simply send a mail to
+<email>admin@rt.debian.org</email> and make sure to put the string
+"Debian RT" somewhere in the subject.
        <p>
 If you have a problem with a certain service, not related to the system
 administration (such as packages to be removed from the archive,
@@ -685,7 +696,7 @@ wasted processing time.
       <sect1 id="servers-ftp-master">The ftp-master server
        <p>
 The <tt>ftp-master.debian.org</tt> server holds the canonical copy of the Debian
-archive (excluding the non-US packages). Generally, package uploads
+archive. Generally, package uploads
 go to this server; see <ref id="upload">.
        <p>
 It is restricted; a mirror is available on <tt>merkel</tt>.
@@ -695,13 +706,6 @@ bugs against the <package>ftp.debian.org</package> pseudo-package or
 an email to &email-ftpmaster;, but also see the procedures in
 <ref id="archive-manip">.
 
-      <sect1 id="servers-non-us">The non-US server
-       <p>
-The non-US server <tt>non-us.debian.org</tt>
-was discontinued with the release of sarge. The pseudo-package
-<package>nonus.debian.org</package>
-still exists for now.
-
       <sect1 id="servers-www">The www-master server
        <p>
 The main web server is <tt>www-master.debian.org</tt>.
@@ -1334,9 +1338,9 @@ header with a non-empty value.
 
     <tag><tt>summary</tt>
     <item>
-(This is a planned expansion.)
-The regular summary emails about the package's status (bug statistics,
-porting overview, progression in <em>testing</em>, ...).
+Regular summary emails about the package's status.
+Currently, only progression in <em>testing</em> is sent.
+
 </taglist>
 
        <p>
@@ -1646,9 +1650,9 @@ When closing security bugs include CVE numbers as well as the
 "Closes: #nnnnn".
 This is useful for the security team to track vulnerabilities.
 If an upload is made to fix the bug before the advisory ID is known,
-it is encouraged to modify the historical changelog entry with the next upload;
-please include even in that case all pointers you have to your first
-changelog entry.
+it is encouraged to modify the historical changelog entry with the next upload.
+Even in this case, please include all available pointers to background
+information in the original changelog entry.
 
        <p>
 There are a number of reasons why we ask maintainers to announce their
@@ -1672,7 +1676,9 @@ line of testers).  We should encourage these people.
 The announcements give maintainers and other interested parties a
 better feel of what is going on, and what is new, in the project.
          </list>
-
+        <p>
+Please see <url id="http://ftp-master.debian.org/REJECT-FAQ.html">
+for common rejection reasons for a new package.
 
     <sect id="changelog-entries">Recording changes in the package
          <p>
@@ -1813,9 +1819,11 @@ at the same time.
        <sect1 id="upload-stable">
           <heading>Special case: uploads to the <em>stable</em> distribution</heading>
          <p>
-Uploading to <em>stable</em> means that the package will be placed into the
-<file>stable-proposed-updates</file> directory of the Debian archive for further
-testing before it is actually included in <em>stable</em>.
+Uploading to <em>stable</em> means that the package will transfered to the
+<em>p-u-new</em>-queue for review by the stable release managers, and
+if approved will be installed in
+<file>stable-proposed-updates</file> directory of the Debian archive.
+From there, it will be included in <em>stable</em> with the next point release.
          <p>
 Extra care should be taken when uploading to <em>stable</em>. Basically, a
 package should only be uploaded to stable if one of the following happens:
@@ -1844,7 +1852,7 @@ packages (by messing with <tt>Provides</tt> or shlibs files), possibly making
 those other packages uninstallable, is strongly discouraged.
          <p>
 The Release Team (which can be reached at &email-debian-release;) will
-regularly evaluate the uploads in <em>stable-proposed-updates</em> and decide if
+regularly evaluate the uploads To <em>stable-proposed-updates</em> and decide if
 your package can be included in <em>stable</em>. Please be clear (and
 verbose, if necessary) in your changelog entries for uploads to
 <em>stable</em>, because otherwise the package won't be considered for
@@ -1883,11 +1891,6 @@ process of uploading packages into Debian.
 For removing packages, please see the README file in that ftp directory,
 and the Debian package <ref id="dcut">.
 
-       <sect1 id="upload-non-us">Uploading to <tt>non-US</tt>
-         <p>
-<em>Note:</em> non-us was discontinued with the release of sarge.
-
-
        <sect1 id="delayed-incoming">Delayed uploads
          <p>
 Delayed uploads are done for the moment via the delayed queue at
@@ -2521,7 +2524,11 @@ belongs in.
 If you need to change the section for one of your packages, change the
 package control information to place the package in the desired
 section, and re-upload the package (see the <url id="&url-debian-policy;"
-name="Debian Policy Manual"> for details). If your new section is
+name="Debian Policy Manual"> for details). 
+You must ensure that you include the <file>.orig.tar.gz</file> in your upload
+(even if you are not uploading a new upstream version),
+or it will not appear in the new section together with the rest of the package.
+If your new section is
 valid, it will be moved automatically. If it does not, then contact
 the ftpmasters in order to understand what happened.
        <p>
@@ -2546,13 +2553,18 @@ are not removed from <em>testing</em> directly. Rather, they will be
 removed automatically after the package has been removed from
 <em>unstable</em> and no package in <em>testing</em> depends on it.
        <p>
-If you are simply restructuring a source package so that it no longer
-produces one or more binary packages, there is no need to explicitly ask
-for the packages that are no longer created to be removed.  Such packages
-will be removed when the new package structure has been uploaded into 
-<em>unstable</em> and when no package in <em>testing</em> depends on it.
+There is one exception when an explicit removal request is not necessary:
+If a (source or binary) package is an orphan, it will be removed
+semi-automatically.
+For a binary-package, this means if there is no longer any source package
+producing this binary package;
+if the binary package is just no longer produced on some architectures,
+a removal request is still necessary.
+For a source-package, this means that all binary packages it refers to
+have been taken over by another source package.
         <p>
-You also have to detail the reasons justifying the request. This is to
+In your removal request, you have to detail the reasons justifying the request.
+This is to
 avoid unwanted removals and to keep a trace of why a package has been
 removed. For example, you can provide the name of the package that
 supersedes the one to be removed.
@@ -2561,6 +2573,10 @@ Usually you only ask for the removal of a package maintained by yourself.
 If you want to remove another package, you have to get the approval
 of its maintainer.
        <p>
+Further information relating to these and other package removal related
+topics may be found at <url id="http://wiki.debian.org/ftpmaster_Removals"> and
+<url id="http://qa.debian.org/howto-remove.html">.
+       <p>
 If in doubt concerning whether a package is disposable, email
 &email-debian-devel; asking for opinions.  Also of interest is the
 <prgn>apt-cache</prgn> program from the <package>apt</package>
@@ -2570,7 +2586,7 @@ package.  When invoked as <tt>apt-cache showpkg
 Other useful programs include
 <tt>apt-cache rdepends</tt>,
 <prgn>apt-rdepends</prgn> and
-<prgn>grep-dctrl>.
+<prgn>grep-dctrl</prgn>.
 Removal of orphaned packages is discussed on &email-debian-qa;.
        <p>
 Once the package has been removed, the package's bugs should be handled.
@@ -3123,7 +3139,9 @@ work.  It also has the benefit of making it visually clear that a
 package in the archive was not made by the official maintainer.
          <p>
 If there is no <var>debian-revision</var> component in the version
-number then one should be created, starting at `0.1'.  If it is
+number then one should be created, starting at `0.1' (but in case
+of a debian native package still upload it as native package).
+If it is
 absolutely necessary for someone other than the usual maintainer to
 make a release based on a new upstream version then the person making
 the release should start with the <var>debian-revision</var> value
@@ -3164,24 +3182,14 @@ patch to be sent. If you want the package to be recompiled for all
 architectures, then you do a source NMU as usual and you will have to
 send a patch.
          <p>
-If the source NMU (non-maintainer upload) fixes some existing bugs,
-these bugs should be tagged <em>fixed</em> in the Bug Tracking
-System rather than closed.  By convention, only the official package
-maintainer or the original bug submitter close bugs.
-Fortunately, Debian's archive system recognizes NMUs and thus marks
-the bugs fixed in the NMU appropriately if the person doing the NMU
-has listed all bugs in the changelog with the <tt>Closes:
-bug#<var>nnnnn</var></tt> syntax (see <ref id="upload-bugfix"> for
-more information describing how to close bugs via the changelog).
-Tagging the bugs <em>fixed</em> ensures that everyone knows that the
-bug was fixed in an NMU; however the bug is left open until the
-changes in the NMU are incorporated officially into the package by
-the official package maintainer.
+Bugs fixed by source NMUs used to be tagged fixed instead of closed,
+but since version tracking is in place, such bugs are now also
+closed with the NMU version.
          <p>
 Also, after doing an NMU, you have to send
 the information to the existing bugs that are fixed by your NMU,
 including the unified diff.
-Alternatively you can open a new bug and include a
+Historically, it was custom to open a new bug and include a
 patch showing all the changes you have made.
 The normal maintainer will either apply the patch or employ an alternate
 method of fixing the problem.  Sometimes bugs are fixed independently
@@ -3304,7 +3312,8 @@ quite easy:
 Setup the co-maintainer with access to the sources you build the
 package from.  Generally this implies you are using a network-capable
 version control system, such as <prgn>CVS</prgn> or
-<prgn>Subversion</prgn>.</p>
+<prgn>Subversion</prgn>. Alioth (see <ref id="alioth">) provides such
+tools, amongst others.</p>
             </item>
             <item>
               <p>
@@ -3322,9 +3331,32 @@ Using the PTS (<ref id="pkg-tracking-system">), the co-maintainers
 should subscribe themselves to the appropriate source package.</p>
             </item>
           </list></p>
-       <p>
-Collaborative maintenance can often be further eased by the use of
-tools on Alioth (see <ref id="alioth">).
+              <p>
+Another form of collaborative maintenance is team maintenance, which is
+recommended if you maintain several packages with the same group of
+developers. In that case, the Maintainer and Uploaders field of each
+package must be managed with care. It is recommended to choose between
+one of the two following schemes:
+               <enumlist>
+                <item>
+              <p>
+Put the team member mainly responsible for the package in the Maintainer
+field. In the Uploaders, put the mailing list address, and the team members
+who care for the package.
+                </item>
+                <item>
+              <p>
+Put the mailing list address in the Maintainer field. In the Uploaders
+field, put the team members who care for the package.
+In this case, you must make sure the mailing list accept bug reports
+without any human interaction (like moderation for non-subscribers).
+                </item>
+               </enumlist>
+              <p>
+In any case, it is a bad idea to automatically put all team members in
+the Uploaders field. It clutters the Developer's Package Overview listing
+(see <ref id="ddpo">) with packages one doesn't really care for, and
+creates a false sense of good maintenance.
       </sect>
 
     <sect id="testing">
@@ -3918,6 +3950,59 @@ until that is available.
  <tt>/^  Homepage: [^ ]*$/</tt>,
  as this allows <file>packages.debian.org</file> to parse it correctly.</p>
         </sect1>
+
+        <sect1 id="bpp-vcs">
+          <heading>Version Control System location</heading>
+          <p>
+There are additional fields for the location of the Version Control System
+in <file>debian/control</file>.
+          <sect2><heading>XS-Vcs-Browser</heading>
+          <p>
+Value of this field should be a <tt>http://</tt> URL pointing to a
+web-browsable copy of the Version Control System repository used to
+maintain the given package, if available.
+          <p>
+The information is meant to be useful for the final user, willing to
+browse the latest work done on the package (e.g. when looking for the
+patch fixing a bug tagged as <tt>pending</tt> in the bug tracking
+system).
+          <sect2><heading>XS-Vcs-*</heading>
+          <p>
+Value of this field should be a string identifying unequivocally the
+location of the Version Control System repository used to maintain the
+given package, if available. <tt>*</tt> identify the Version Control
+System; currently the following systems are supported by the package
+tracking system: <tt>arch</tt>, <tt>bzr</tt> (Bazaar), <tt>cvs</tt>,
+<tt>darcs</tt>, <tt>git</tt>, <tt>hg</tt> (Mercurial), <tt>mtn</tt>
+(Monotone), <tt>svn</tt> (Subversion). It is allowed to specify different
+VCS fields for the same package: they will all be shown in the PTS web
+interface.
+          <p>
+The information is meant to be useful for a user knowledgeable in the
+given Version Control System and willing to build the current version of
+a package from the VCS sources. Other uses of this information might
+include automatic building of the latest VCS version of the given
+package. To this end the location pointed to by the field should better
+be version agnostic and point to the main branch (for VCSs supporting
+such a concept). Also, the location pointed to should be accessible to
+the final user; fulfilling this requirement might imply pointing to an
+anonymous access of the repository instead of pointing to an
+SSH-accessible version of the same.
+          <p>
+In the following example, an instance of the field for a Subversion
+repository of the <package>vim</package> package is shown. Note how the
+URL is in the <tt>svn://</tt> scheme (instead of <tt>svn+ssh://</tt>) and
+how it points to the <file>trunk/</file> branch. The use of the
+<tt>XS-Vcs-Browser</tt> field described above is also shown.
+<example>
+  Source: vim
+  Section: editors
+  Priority: optional
+  &lt;snip&gt;
+  XS-Vcs-Svn: svn://svn.debian.org/svn/pkg-vim/trunk/packages/vim
+  XS-Vcs-Browser: http://svn.debian.org/wsvn/pkg-vim/trunk/packages/vim
+</example>
+        </sect1>
       </sect>
 
 
@@ -4306,15 +4391,18 @@ Just give facts.
 You should avoid the use of first person ("I will do this..." or "We
 recommend..."). The computer is not a person and the Debconf templates
 do not speak for the Debian developers. You should use neutral
-construction and often the passive form. Those of you who already
+construction. Those of you who already
 wrote scientific publications, just write your templates like you
 would write a scientific paper.
+However, try using action voice if still possible, like
+"Enable this if ..."
+instead of
+"This can be enabled if ...".
 
        <sect2>Be gender neutral
        <p>
 The world is made of men and women. Please use gender-neutral
-constructions in your writing. This is not Political Correctness, this
-is showing respect to all humanity.
+constructions in your writing.
 
 
        <sect1>Templates fields definition
@@ -4367,17 +4455,13 @@ This type is now considered obsolete: don't use it.
 
        <sect3>error:
        <p>
-<strong>THIS TEMPLATE TYPE IS NOT HANDLED BY DEBCONF YET.</strong>
-       <p>
-It has been added to cdebconf, the C version of debconf, first used in
-the Debian Installer.
-       <p>
-Please do not use it unless debconf supports it.
-       <p>
-This type is designed to handle error message. It is mostly similar to
+This type is designed to handle error messages. It is mostly similar to
 the "note" type. Frontends may present it differently (for instance,
 the dialog frontend of cdebconf draws a red screen instead of the
 usual blue one).
+       <p>
+It is recommended to use this type for any message that needs user
+attention for a correction of any kind.
 
 
        <sect2>Description: short and extended description
@@ -4409,9 +4493,12 @@ The extended description should use complete sentences. Paragraphs
 should be kept short for improved readability. Do not mix two ideas
 in the same paragraph but rather use another paragraph.
        <p>
-Don't be too verbose. Some debconf interfaces cannot deal very well
-with descriptions of more than about 20 lines, so try to keep it below
-this limit.
+Don't be too verbose. User tend to ignore too long screens.
+20 lines are by experience a border you shouldn't cross,
+because that means that in the classical dialog interface,
+people will need to scroll, and lot of people just don't do that.
+       <p>
+The extended description should <strong>never</strong> include a question. 
        <p>
 For specific rules depending on templates type (string, boolean,
 etc.), please read below.
@@ -4465,8 +4552,6 @@ Below are specific instructions for properly writing the Description
     question is rather long (remember that translations are often longer
     than original versions)
 
-<item> The extended description should <strong>not</strong> include a question. 
-
 <item> Again, please avoid referring to specific interface widgets. A common
     mistake for such templates is "if you answer Yes"-type
     constructions.
@@ -4894,11 +4979,9 @@ A repackaged .orig.tar.gz
             <item>
 <p>
 <strong>must</strong> contain detailed information how
-the repackaged source was obtained, and how this can be reproduced, in
-<file>README.Debian-source</file> or a similar file. This file should
-be in the <file>diff.gz</file> part of the Debian source package,
-usually in the <file>debian</file> directory, <em>not</em> in the
-repackaged <file>orig.tar.gz</file>. It is also a good idea to provide a
+the repackaged source was obtained, and how this can be reproduced
+in the <file>debian/copyright</file>.
+It is also a good idea to provide a
 <tt>get-orig-source</tt> target in your <file>debian/rules</file> file
 that repeats the process, as described in the Policy Manual, <url
 id="&url-debian-policy;ch-source.html#s-debianrules" name="Main
@@ -4967,6 +5050,17 @@ form
 The file should have a name that makes it clear which binary file it
 encodes. Usually, some postfix indicating the encoding should be
 appended to the original filename.
+Note that you don't need to depend on <package>sharutils</package> to get
+the <prgn>uudecode</prgn> program if you use <prgn>perl</prgn>'s
+<tt>pack</tt> function.
+The code could look like
+<example>
+uuencode-file:
+    perl -ne 'print(pack "u", $$_);' $(file) > $(file).uuencoded
+
+uudecode-file:
+    perl -ne 'print(unpack "u", $$_);' $(file).uuencoded > $(file)
+</example>
 </footnote>.
 The file would then be decoded and copied to its place during the
 build process. Thus the change will be visible quite easy.
@@ -4983,6 +5077,56 @@ build process.
        </p>
        </sect2>
     </sect1>
+    <sect1 id="bpp-dbg">
+        <heading>Best practices for debug packages</heading>
+       <p>
+A debug package is a package with a name ending in "-dbg", that contains
+additional information that gdb can use. Since Debian binaries are
+stripped by default, debugging information, including function names and
+line numbers, is otherwise not available when running gdb on Debian binaries.
+Debug packages allow users who need this additional debugging information to
+install it, without bloating a regular system with the information.
+       <p>
+It is up to a package's maintainer whether to create a debug package or
+not. Maintainers are encouraged to create debug packages for library
+packages, since this can aid in debugging many programs linked to a
+library. In general, debug packages do not need to be added for all
+programs; doing so would bloat the archive. But if a maintainer finds
+that users often need a debugging version of a program, it can be
+worthwhile to make a debug package for it. Programs that are core
+infrastructure, such as apache and the X server are also good candidates
+for debug packages.
+       <p>
+Some debug packages may contain an entire special debugging build of a
+library or other binary, but most of them can save space and build time
+by instead containing separated debugging symbols that gdb can find and
+load on the fly when debugging a program or library. The convention in
+Debian is to keep these symbols in <file>/usr/lib/debug/<em>path</em></file>,
+where <em>path</em> is the path to the executable or library. For example,
+debugging symbols for <file>/usr/bin/foo</file> go in
+<file>/usr/lib/debug/usr/bin/foo</file>, and
+debugging symbols for <file>/usr/lib/libfoo.so.1</file> go in
+<file>/usr/lib/debug/usr/lib/libfoo.so.1</file>.
+       <p>
+The debugging symbols can be extracted from an object file using 
+"objcopy --only-keep-debug". Then the object file can be stripped, and
+"objcopy --add-gnu-debuglink" used to specify the path to the debugging
+symbol file. <manref name="objcopy" section="1"> explains in detail how this
+works.
+       <p>
+The dh_strip command in debhelper supports creating debug packages, and
+can take care of using objcopy to separate out the debugging symbols for
+you. If your package uses debhelper, all you need to do is call 
+"dh_strip --dbg-package=libfoo-dbg", and add an entry to debian/control
+for the debug package.
+       <p>
+Note that the Debian package should depend on the package that it
+provides debugging symbols for, and this dependency should be versioned.
+For example:
+
+<example>
+Depends: libfoo-dbg (= ${binary:Version})
+</example>
 
 
       </sect>
@@ -5062,6 +5206,12 @@ developers to verify that the bug is a real problem. In addition, it
 will help prevent a situation in which several maintainers start
 filing the same bug report simultaneously.
        <p>
+Please use the programms <prgn>dd-list</prgn> and
+if appropriate <prgn>whodepends</prgn>
+(from the package devscripts)
+to generate a list of all affected packages, and include the
+output in your mail to &email-debian-devel;.
+       <p>
 Note that when sending lots of bugs on the same subject, you should
 send the bug report to <email>maintonly@&bugs-host;</email> so
 that the bug report is not forwarded to the bug distribution mailing