chiark / gitweb /
Refresh French PO files
[developers-reference.git] / po4a / fr / best-pkging-practices.po
1 # Translation of Debian Developers Reference to French
2 # Copyright (C) 2008 Christian Perrier <bubulle@debian.org>
3 # This file is distributed under the same license as the developers-reference package.
4 #
5 # Christian Perrier <bubulle@debian.org>, 2008.
6 msgid ""
7 msgstr ""
8 "Project-Id-Version: \n"
9 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2007-07-01 21:16+0000\n"
11 "PO-Revision-Date: 2008-08-06 17:27+0200\n"
12 "Last-Translator: Christian Perrier <bubulle@debian.org>\n"
13 "Language-Team: French <debian-l10n-french@lists.debian.org>\n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17 "X-Generator: KBabel 1.11.4\n"
18
19 # type: Content of: <chapter><title>
20 #: best-pkging-practices.dbk:7
21 msgid "Best Packaging Practices"
22 msgstr "Les meilleurs pratiques pour la construction des paquets"
23
24 # type: Content of: <chapter><para>
25 #: best-pkging-practices.dbk:9
26 msgid ""
27 "Debian's quality is largely due to the <ulink url=\"&url-debian-policy;"
28 "\">Debian Policy</ulink>, which defines explicit baseline requirements which "
29 "all Debian packages must fulfill.  Yet there is also a shared history of "
30 "experience which goes beyond the Debian Policy, an accumulation of years of "
31 "experience in packaging.  Many very talented people have created great "
32 "tools, tools which help you, the Debian maintainer, create and maintain "
33 "excellent packages."
34 msgstr ""
35 "La qualité de Debian est largement due à la <ulink url=\"&url-debian-policy;"
36 "\">Charte Debian</ulink> qui définit les prérequis explicites de base que tous les paquets Debian doivent satisfaire. Cependant, il existe également une expérience générale partagée qui va bien au delà de la Charte Debian et constitue une somme d'années d'expérience dans la construction de paquets. De nombreux contributeurs talentueux ont créé d'excellents outils qui peuvent vous aider, en tant que mainteneur Debian, à créer et maintenir des paquets d'excellente qualité."
37
38 # type: Content of: <chapter><para>
39 #: best-pkging-practices.dbk:18
40 msgid ""
41 "This chapter provides some best practices for Debian developers.  All "
42 "recommendations are merely that, and are not requirements or policy.  These "
43 "are just some subjective hints, advice and pointers collected from Debian "
44 "developers.  Feel free to pick and choose whatever works best for you."
45 msgstr "Ce chapitre rassemble les meilleures pratiques pou rles mainteneurs Debian. La majorité de son contenu est constitué de recommandations plus que d'obligations. Il s'agit essentiellement d'informations subjectives, d'avis et de pointeurs, rassemblés par les développeurs Debian. Il est conseillé d'y choisir ce qui vous convient le mieux."
46
47 # type: Content of: <chapter><section><title>
48 #: best-pkging-practices.dbk:24
49 msgid "Best practices for <filename>debian/rules</filename>"
50 msgstr "Les meilleures pratiques pour le fichier <filename>debian/rules</filename>"
51
52 # type: Content of: <chapter><section><para>
53 #: best-pkging-practices.dbk:26
54 msgid ""
55 "The following recommendations apply to the <filename>debian/rules</filename> "
56 "file.  Since <filename>debian/rules</filename> controls the build process "
57 "and selects the files which go into the package (directly or indirectly), "
58 "it's usually the file maintainers spend the most time on."
59 msgstr "Les recommandations qui suivent s'appliquent au fichier <filename>debian/rules</filename>. Comme ce fichier contrôle le processus de construction des paquets et fait le choix des fichiers qui entreront dans ce paquet, directement ou indirectement, il s'agit du fichier dont les mainteneurs s'occupent généralement le plus."
60
61 # type: Content of: <chapter><section><section><title>
62 #: best-pkging-practices.dbk:32
63 msgid "Helper scripts"
64 msgstr "Scripts d'assistance"
65
66 # type: Content of: <chapter><section><section><para>
67 #: best-pkging-practices.dbk:34
68 msgid ""
69 "The rationale for using helper scripts in <filename>debian/rules</filename> "
70 "is that they let maintainers use and share common logic among many "
71 "packages.  Take for instance the question of installing menu entries: you "
72 "need to put the file into <filename>/usr/lib/menu</filename> (or <filename>/"
73 "usr/lib/menu</filename> for executable binary menufiles, if this is needed), "
74 "and add commands to the maintainer scripts to register and unregister the "
75 "menu entries.  Since this is a very common thing for packages to do, why "
76 "should each maintainer rewrite all this on their own, sometimes with bugs? "
77 "Also, supposing the menu directory changed, every package would have to be "
78 "changed."
79 msgstr ""
80 "La justification à l'utilisation de scripts d'assistance dans <filename>debian/rules</filename> est de permettre aux mainteneurs de définir puis utiliser une logique commune pour de nombreux paquets. Si on prend par exemple l'installaiton d'entrées de menu, il est nécessaire de placer le fichier dans <filename>/usr/lib/menu</filename> (ou <filename>/"
81 "usr/lib/menu</filename> des fichiers de menu exécutables, s'il en existe), puis d'ajouter des commandes aux scripts des mainteneurs pour enregistrer ou désenregistrer les entrées de menu. Comme cette action est commune à de très nombreux paquets, pourquoi faudrait-il que chaque mainteneur ait à réécrire ses propres méthodes pour cela, bogues compris ? De plus, si jamais le répertoire des menus venait à changer, chaque paquet devrait être modifié."
82
83 # type: Content of: <chapter><section><section><para>
84 #: best-pkging-practices.dbk:45
85 msgid ""
86 "Helper scripts take care of these issues.  Assuming you comply with the "
87 "conventions expected by the helper script, the helper takes care of all the "
88 "details.  Changes in policy can be made in the helper script; then packages "
89 "just need to be rebuilt with the new version of the helper and no other "
90 "changes."
91 msgstr "Les scripts d'assistance s'occupent de ce type de tâche. À condition d'être compatible avec les conventions utilisées par le script d'assistance, celui-ci s'occupe de tous les détails. Les modifications dans la charte peuvent alors être implémentées dans le script d'assistance et les paquets n'ont plus qu'à être reconstruits sans autre modification."
92
93 # type: Content of: <chapter><section><section><para>
94 #: best-pkging-practices.dbk:52
95 msgid ""
96 "<xref linkend=\"tools\"/> contains a couple of different helpers.  The most "
97 "common and best (in our opinion) helper system is <systemitem role=\"package"
98 "\">debhelper</systemitem>.  Previous helper systems, such as <systemitem "
99 "role=\"package\">debmake</systemitem>, were monolithic: you couldn't pick "
100 "and choose which part of the helper you found useful, but had to use the "
101 "helper to do everything.  <systemitem role=\"package\">debhelper</"
102 "systemitem>, however, is a number of separate little <command>dh_*</command> "
103 "programs.  For instance, <command>dh_installman</command> installs and "
104 "compresses man pages, <command>dh_installmenu</command> installs menu files, "
105 "and so on.  Thus, it offers enough flexibility to be able to use the little "
106 "helper scripts, where useful, in conjunction with hand-crafted commands in "
107 "<filename>debian/rules</filename>."
108 msgstr ""
109 "<xref linkend=\"tools\"/> contient un certain nombre d'assistants variés. Le système le plus répandu et (selon nous) le plus adapté est <systemitem role=\"package"
110 "\">debhelper</systemitem>. Des systèmes antérieurs, tels que <systemitem "
111 "role=\"package\">debmake</systemitem>, étaient monolithiques ; ils ne permettaient pas de choisir quelle partie de l'assistant serait utile, en obligeant à se servir de l'ensemble de l'assistant. A contrario, <systemitem role=\"package\">debhelper</"
112 "systemitem> est constitué d'un grand nombre de petits programmes <command>dh_*</command> différents. Par exemple, <command>dh_installman</command> installe et compresse les pages de manuel, <command>dh_installmenu</command> istalle les fichiers de menu, et ainsi de suite. En conséquence, il offre la possibilité d'utiliser certains des scripts d'assistance tout en conservant des commandes manuelles dans <filename>debian/rules</filename>."
113
114 # type: Content of: <chapter><section><section><para>
115 #: best-pkging-practices.dbk:66
116 msgid ""
117 "You can get started with <systemitem role=\"package\">debhelper</systemitem> "
118 "by reading <citerefentry> <refentrytitle>debhelper</refentrytitle> "
119 "<manvolnum>1</manvolnum> </citerefentry>, and looking at the examples that "
120 "come with the package.  <command>dh_make</command>, from the <systemitem "
121 "role=\"package\">dh-make</systemitem> package (see <xref linkend=\"dh-make\"/"
122 "> ), can be used to convert a vanilla source package to a <systemitem role="
123 "\"package\">debhelper</systemitem>ized package.  This shortcut, though, "
124 "should not convince you that you do not need to bother understanding the "
125 "individual <command>dh_*</command> helpers.  If you are going to use a "
126 "helper, you do need to take the time to learn to use that helper, to learn "
127 "its expectations and behavior."
128 msgstr ""
129 "Pour démarrer avec <systemitem role=\"package\">debhelper</systemitem>, il est conseillé de lire "
130 "<citerefentry> <refentrytitle>debhelper</refentrytitle> "
131 "<manvolnum>1</manvolnum> </citerefentry> et de consulter les exemples fournis avec le paquet. <command>dh_make</command>, fourni avec le paquet <systemitem "
132 "role=\"package\">dh-make</systemitem> (voir <xref linkend=\"dh-make\"/> ) peut être utilisé pour convertir un paquet source originel en paquet géré par <systemitem role="
133 "\"package\">debhelper</systemitem>. Cette méthode rapide ne doit cependant pas se substituer à une compréhension individuelle des commandes <command>dh_*</command>. Si vous utilisez un assistant, vous devez prendre le temps de l'apprendre, pour comprendre ses besoins et son comportement."
134
135 # type: Content of: <chapter><section><section><para>
136 #: best-pkging-practices.dbk:79
137 msgid ""
138 "Some people feel that vanilla <filename>debian/rules</filename> files are "
139 "better, since you don't have to learn the intricacies of any helper system.  "
140 "This decision is completely up to you.  Use what works for you.  Many "
141 "examples of vanilla <filename>debian/rules</filename> files are available at "
142 "<ulink url=\"&url-rules-files;\"></ulink>."
143 msgstr ""
144
145 # type: Content of: <chapter><section><section><title>
146 #: best-pkging-practices.dbk:88
147 msgid "Separating your patches into multiple files"
148 msgstr ""
149
150 # type: Content of: <chapter><section><section><para>
151 #: best-pkging-practices.dbk:90
152 msgid ""
153 "Big, complex packages may have many bugs that you need to deal with.  If you "
154 "correct a number of bugs directly in the source, and you're not careful, it "
155 "can get hard to differentiate the various patches that you applied.  It can "
156 "get quite messy when you have to update the package to a new upstream "
157 "version which integrates some of the fixes (but not all).  You can't take "
158 "the total set of diffs (e.g., from <filename>.diff.gz</filename>) and work "
159 "out which patch sets to back out as a unit as bugs are fixed upstream."
160 msgstr ""
161
162 # type: Content of: <chapter><section><section><para>
163 #: best-pkging-practices.dbk:99
164 msgid ""
165 "Unfortunately, the packaging system as such currently doesn't provide for "
166 "separating the patches into several files.  Nevertheless, there are ways to "
167 "separate patches: the patch files are shipped within the Debian patch file "
168 "(<filename>.diff.gz</filename>), usually within the <filename>debian/</"
169 "filename> directory.  The only difference is that they aren't applied "
170 "immediately by dpkg-source, but by the <literal>build</literal> rule of "
171 "<filename>debian/rules</filename>.  Conversely, they are reverted in the "
172 "<literal>clean</literal> rule."
173 msgstr ""
174
175 # type: Content of: <chapter><section><section><para>
176 #: best-pkging-practices.dbk:109
177 msgid ""
178 "<command>dbs</command> is one of the more popular approaches to this.  It "
179 "does all of the above, and provides a facility for creating new and updating "
180 "old patches.  See the package <systemitem role=\"package\">dbs</systemitem> "
181 "for more information and <systemitem role=\"package\">hello-dbs</systemitem> "
182 "for an example."
183 msgstr ""
184
185 # type: Content of: <chapter><section><section><para>
186 #: best-pkging-practices.dbk:116
187 msgid ""
188 "<command>dpatch</command> also provides these facilities, but it's intended "
189 "to be even easier to use.  See the package <systemitem role=\"package"
190 "\">dpatch</systemitem> for documentation and examples (in <filename>/usr/"
191 "share/doc/dpatch</filename>)."
192 msgstr ""
193
194 # type: Content of: <chapter><section><section><title>
195 #: best-pkging-practices.dbk:124
196 msgid "Multiple binary packages"
197 msgstr ""
198
199 # type: Content of: <chapter><section><section><para>
200 #: best-pkging-practices.dbk:126
201 msgid ""
202 "A single source package will often build several binary packages, either to "
203 "provide several flavors of the same software (e.g., the <systemitem role="
204 "\"package\">vim</systemitem> source package) or to make several small "
205 "packages instead of a big one (e.g., so the user can install only the subset "
206 "needed, and thus save some disk space)."
207 msgstr ""
208
209 # type: Content of: <chapter><section><section><para>
210 #: best-pkging-practices.dbk:133
211 msgid ""
212 "The second case can be easily managed in <filename>debian/rules</filename>.  "
213 "You just need to move the appropriate files from the build directory into "
214 "the package's temporary trees.  You can do this using <command>install</"
215 "command> or <command>dh_install</command> from <systemitem role=\"package"
216 "\">debhelper</systemitem>.  Be sure to check the different permutations of "
217 "the various packages, ensuring that you have the inter-package dependencies "
218 "set right in <filename>debian/control</filename>."
219 msgstr ""
220
221 # type: Content of: <chapter><section><section><para>
222 #: best-pkging-practices.dbk:142
223 msgid ""
224 "The first case is a bit more difficult since it involves multiple recompiles "
225 "of the same software but with different configuration options.  The "
226 "<systemitem role=\"package\">vim</systemitem> source package is an example "
227 "of how to manage this using an hand-crafted <filename>debian/rules</"
228 "filename> file."
229 msgstr ""
230
231 # type: Content of: <chapter><section><title>
232 #: best-pkging-practices.dbk:154
233 msgid "Best practices for <filename>debian/control</filename>"
234 msgstr ""
235
236 # type: Content of: <chapter><section><para>
237 #: best-pkging-practices.dbk:156
238 msgid ""
239 "The following practices are relevant to the <filename>debian/control</"
240 "filename> file.  They supplement the <ulink url=\"&url-debian-policy;ch-"
241 "binary.html#s-descriptions\">Policy on package descriptions</ulink>."
242 msgstr ""
243
244 # type: Content of: <chapter><section><para>
245 #: best-pkging-practices.dbk:162
246 msgid ""
247 "The description of the package, as defined by the corresponding field in the "
248 "<filename>control</filename> file, contains both the package synopsis and "
249 "the long description for the package.  <xref linkend=\"bpp-desc-basics\"/> "
250 "describes common guidelines for both parts of the package description.  "
251 "Following that, <xref linkend=\"bpp-pkg-synopsis\"/> provides guidelines "
252 "specific to the synopsis, and <xref linkend=\"bpp-pkg-desc\"/> contains "
253 "guidelines specific to the description."
254 msgstr ""
255
256 # type: Content of: <chapter><section><section><title>
257 #: best-pkging-practices.dbk:171
258 msgid "General guidelines for package descriptions"
259 msgstr ""
260
261 # type: Content of: <chapter><section><section><para>
262 #: best-pkging-practices.dbk:173
263 msgid ""
264 "The package description should be written for the average likely user, the "
265 "average person who will use and benefit from the package.  For instance, "
266 "development packages are for developers, and can be technical in their "
267 "language.  More general-purpose applications, such as editors, should be "
268 "written for a less technical user."
269 msgstr ""
270
271 # type: Content of: <chapter><section><section><para>
272 #: best-pkging-practices.dbk:180
273 msgid ""
274 "Our review of package descriptions lead us to conclude that most package "
275 "descriptions are technical, that is, are not written to make sense for non-"
276 "technical users.  Unless your package really is only for technical users, "
277 "this is a problem."
278 msgstr ""
279
280 # type: Content of: <chapter><section><section><para>
281 #: best-pkging-practices.dbk:186
282 msgid ""
283 "How do you write for non-technical users? Avoid jargon.  Avoid referring to "
284 "other applications or frameworks that the user might not be familiar with — "
285 "GNOME or KDE is fine, since users are probably familiar with these terms, "
286 "but GTK+ is probably not.  Try not to assume any knowledge at all.  If you "
287 "must use technical terms, introduce them."
288 msgstr ""
289
290 # type: Content of: <chapter><section><section><para>
291 #: best-pkging-practices.dbk:193
292 msgid ""
293 "Be objective.  Package descriptions are not the place for advocating your "
294 "package, no matter how much you love it.  Remember that the reader may not "
295 "care about the same things you care about."
296 msgstr ""
297
298 # type: Content of: <chapter><section><section><para>
299 #: best-pkging-practices.dbk:198
300 msgid ""
301 "References to the names of any other software packages, protocol names, "
302 "standards, or specifications should use their canonical forms, if one "
303 "exists.  For example, use X Window System, X11, or X; not X Windows, X-"
304 "Windows, or X Window.  Use GTK+, not GTK or gtk.  Use GNOME, not Gnome.  Use "
305 "PostScript, not Postscript or postscript."
306 msgstr ""
307
308 # type: Content of: <chapter><section><section><para>
309 #: best-pkging-practices.dbk:205
310 msgid ""
311 "If you are having problems writing your description, you may wish to send it "
312 "along to &email-debian-l10n-english; and request feedback."
313 msgstr ""
314
315 # type: Content of: <chapter><section><section><title>
316 #: best-pkging-practices.dbk:211
317 msgid "The package synopsis, or short description"
318 msgstr ""
319
320 # type: Content of: <chapter><section><section><para>
321 #: best-pkging-practices.dbk:213
322 msgid ""
323 "The synopsis line (the short description) should be concise.  It must not "
324 "repeat the package's name (this is policy)."
325 msgstr ""
326
327 # type: Content of: <chapter><section><section><para>
328 #: best-pkging-practices.dbk:217
329 msgid ""
330 "It's a good idea to think of the synopsis as an appositive clause, not a "
331 "full sentence.  An appositive clause is defined in WordNet as a grammatical "
332 "relation between a word and a noun phrase that follows, e.g., Rudolph the "
333 "red-nosed reindeer.  The appositive clause here is red-nosed reindeer.  "
334 "Since the synopsis is a clause, rather than a full sentence, we recommend "
335 "that it neither start with a capital nor end with a full stop (period).  It "
336 "should also not begin with an article, either definite (the) or indefinite "
337 "(a or an)."
338 msgstr ""
339
340 # type: Content of: <chapter><section><section><para>
341 #: best-pkging-practices.dbk:226
342 msgid ""
343 "It might help to imagine that the synopsis is combined with the package name "
344 "in the following way:"
345 msgstr ""
346
347 # type: Content of: <chapter><section><section><screen>
348 #: best-pkging-practices.dbk:230
349 #, no-wrap
350 msgid "<replaceable>package-name</replaceable> is a <replaceable>synopsis</replaceable>."
351 msgstr ""
352
353 # type: Content of: <chapter><section><section><para>
354 #: best-pkging-practices.dbk:233
355 msgid "Alternatively, it might make sense to think of it as"
356 msgstr ""
357
358 # type: Content of: <chapter><section><section><screen>
359 #: best-pkging-practices.dbk:236
360 #, no-wrap
361 msgid "<replaceable>package-name</replaceable> is <replaceable>synopsis</replaceable>."
362 msgstr ""
363
364 # type: Content of: <chapter><section><section><para>
365 #: best-pkging-practices.dbk:239
366 msgid "or, if the package name itself is a plural (such as developers-tools)"
367 msgstr ""
368
369 # type: Content of: <chapter><section><section><screen>
370 #: best-pkging-practices.dbk:242
371 #, no-wrap
372 msgid "<replaceable>package-name</replaceable> are <replaceable>synopsis</replaceable>."
373 msgstr ""
374
375 # type: Content of: <chapter><section><section><para>
376 #: best-pkging-practices.dbk:245
377 msgid ""
378 "This way of forming a sentence from the package name and synopsis should be "
379 "considered as a heuristic and not a strict rule.  There are some cases where "
380 "it doesn't make sense to try to form a sentence."
381 msgstr ""
382
383 # type: Content of: <chapter><section><section><title>
384 #: best-pkging-practices.dbk:252
385 msgid "The long description"
386 msgstr ""
387
388 # type: Content of: <chapter><section><section><para>
389 #: best-pkging-practices.dbk:254
390 msgid ""
391 "The long description is the primary information available to the user about "
392 "a package before they install it.  It should provide all the information "
393 "needed to let the user decide whether to install the package.  Assume that "
394 "the user has already read the package synopsis."
395 msgstr ""
396
397 # type: Content of: <chapter><section><section><para>
398 #: best-pkging-practices.dbk:260
399 msgid "The long description should consist of full and complete sentences."
400 msgstr ""
401
402 # type: Content of: <chapter><section><section><para>
403 #: best-pkging-practices.dbk:263
404 msgid ""
405 "The first paragraph of the long description should answer the following "
406 "questions: what does the package do? what task does it help the user "
407 "accomplish? It is important to describe this in a non-technical way, unless "
408 "of course the audience for the package is necessarily technical."
409 msgstr ""
410
411 # type: Content of: <chapter><section><section><para>
412 #: best-pkging-practices.dbk:269
413 msgid ""
414 "The following paragraphs should answer the following questions: Why do I as "
415 "a user need this package? What other features does the package have? What "
416 "outstanding features and deficiencies are there compared to other packages "
417 "(e.g., if you need X, use Y instead)? Is this package related to other "
418 "packages in some way that is not handled by the package manager (e.g., this "
419 "is the client for the foo server)?"
420 msgstr ""
421
422 # type: Content of: <chapter><section><section><para>
423 #: best-pkging-practices.dbk:277
424 msgid ""
425 "Be careful to avoid spelling and grammar mistakes.  Ensure that you spell-"
426 "check it.  Both <command>ispell</command> and <command>aspell</command> have "
427 "special modes for checking <filename>debian/control</filename> files:"
428 msgstr ""
429
430 # type: Content of: <chapter><section><section><screen>
431 #: best-pkging-practices.dbk:282
432 #, no-wrap
433 msgid "ispell -d american -g debian/control"
434 msgstr ""
435
436 # type: Content of: <chapter><section><section><screen>
437 #: best-pkging-practices.dbk:285
438 #, no-wrap
439 msgid "aspell -d en -D -c debian/control"
440 msgstr ""
441
442 # type: Content of: <chapter><section><section><para>
443 #: best-pkging-practices.dbk:288
444 msgid ""
445 "Users usually expect these questions to be answered in the package "
446 "description:"
447 msgstr ""
448
449 # type: Content of: <chapter><section><section><itemizedlist><listitem><para>
450 #: best-pkging-practices.dbk:293
451 msgid ""
452 "What does the package do? If it is an add-on to another package, then the "
453 "short description of the package we are an add-on to should be put in here."
454 msgstr ""
455
456 # type: Content of: <chapter><section><section><itemizedlist><listitem><para>
457 #: best-pkging-practices.dbk:299
458 msgid ""
459 "Why should I want this package? This is related to the above, but not the "
460 "same (this is a mail user agent; this is cool, fast, interfaces with PGP and "
461 "LDAP and IMAP, has features X, Y, and Z)."
462 msgstr ""
463
464 # type: Content of: <chapter><section><section><itemizedlist><listitem><para>
465 #: best-pkging-practices.dbk:306
466 msgid ""
467 "If this package should not be installed directly, but is pulled in by "
468 "another package, this should be mentioned."
469 msgstr ""
470
471 # type: Content of: <chapter><section><section><itemizedlist><listitem><para>
472 #: best-pkging-practices.dbk:312
473 msgid ""
474 "If the package is experimental, or there are other reasons it should not be "
475 "used, if there are other packages that should be used instead, it should be "
476 "here as well."
477 msgstr ""
478
479 # type: Content of: <chapter><section><section><itemizedlist><listitem><para>
480 #: best-pkging-practices.dbk:319
481 msgid ""
482 "How is this package different from the competition? Is it a better "
483 "implementation? more features? different features? Why should I choose this "
484 "package."
485 msgstr ""
486
487 # type: Content of: <chapter><section><section><title>
488 #: best-pkging-practices.dbk:332
489 msgid "Upstream home page"
490 msgstr ""
491
492 # type: Content of: <chapter><section><section><para>
493 #: best-pkging-practices.dbk:334
494 msgid ""
495 "We recommend that you add the URL for the package's home page to the package "
496 "description in <filename>debian/control</filename>.  This information should "
497 "be added at the end of description, using the following format:"
498 msgstr ""
499
500 # type: Content of: <chapter><section><section><screen>
501 #: best-pkging-practices.dbk:339
502 #, no-wrap
503 msgid ""
504 ".\n"
505 "  Homepage: http://some-project.some-place.org/"
506 msgstr ""
507
508 # type: Content of: <chapter><section><section><para>
509 #: best-pkging-practices.dbk:343
510 msgid ""
511 "Note the spaces prepending the line, which serves to break the lines "
512 "correctly.  To see an example of how this displays, see <ulink url=\"&url-eg-"
513 "desc-upstream-info;\"></ulink>."
514 msgstr ""
515
516 # type: Content of: <chapter><section><section><para>
517 #: best-pkging-practices.dbk:348
518 msgid "If there is no home page for the software, this should naturally be left out."
519 msgstr ""
520
521 # type: Content of: <chapter><section><section><para>
522 #: best-pkging-practices.dbk:351
523 msgid ""
524 "Note that we expect this field will eventually be replaced by a proper "
525 "<filename>debian/control</filename> field understood by <command>dpkg</"
526 "command> and <literal>&packages-host;</literal>.  If you don't want to "
527 "bother migrating the home page from the description to this field, you "
528 "should probably wait until that is available.  Please make sure that this "
529 "line matches the regular expression <literal>/^ Homepage: [^ ]*$/</literal>, "
530 "as this allows <filename>&packages-host;</filename> to parse it correctly."
531 msgstr ""
532
533 # type: Content of: <chapter><section><section><title>
534 #: best-pkging-practices.dbk:362
535 msgid "Version Control System location"
536 msgstr ""
537
538 # type: Content of: <chapter><section><section><para>
539 #: best-pkging-practices.dbk:364
540 msgid ""
541 "There are additional fields for the location of the Version Control System "
542 "in <filename>debian/control</filename>."
543 msgstr ""
544
545 # type: Content of: <chapter><section><section><section><title>
546 #: best-pkging-practices.dbk:368
547 msgid "XS-Vcs-Browser"
548 msgstr ""
549
550 # type: Content of: <chapter><section><section><section><para>
551 #: best-pkging-practices.dbk:370
552 msgid ""
553 "Value of this field should be a <literal>http://</literal> URL pointing to a "
554 "web-browsable copy of the Version Control System repository used to maintain "
555 "the given package, if available."
556 msgstr ""
557
558 # type: Content of: <chapter><section><section><section><para>
559 #: best-pkging-practices.dbk:375
560 msgid ""
561 "The information is meant to be useful for the final user, willing to browse "
562 "the latest work done on the package (e.g.  when looking for the patch fixing "
563 "a bug tagged as <literal>pending</literal> in the bug tracking system)."
564 msgstr ""
565
566 # type: Content of: <chapter><section><section><section><title>
567 #: best-pkging-practices.dbk:382
568 msgid "XS-Vcs-*"
569 msgstr ""
570
571 # type: Content of: <chapter><section><section><section><para>
572 #: best-pkging-practices.dbk:384
573 msgid ""
574 "Value of this field should be a string identifying unequivocally the "
575 "location of the Version Control System repository used to maintain the given "
576 "package, if available.  <literal>*</literal> identify the Version Control "
577 "System; currently the following systems are supported by the package "
578 "tracking system: <literal>arch</literal>, <literal>bzr</literal> (Bazaar), "
579 "<literal>cvs</literal>, <literal>darcs</literal>, <literal>git</literal>, "
580 "<literal>hg</literal> (Mercurial), <literal>mtn</literal> (Monotone), "
581 "<literal>svn</literal> (Subversion).  It is allowed to specify different VCS "
582 "fields for the same package: they will all be shown in the PTS web interface."
583 msgstr ""
584
585 # type: Content of: <chapter><section><section><section><para>
586 #: best-pkging-practices.dbk:395
587 msgid ""
588 "The information is meant to be useful for a user knowledgeable in the given "
589 "Version Control System and willing to build the current version of a package "
590 "from the VCS sources.  Other uses of this information might include "
591 "automatic building of the latest VCS version of the given package.  To this "
592 "end the location pointed to by the field should better be version agnostic "
593 "and point to the main branch (for VCSs supporting such a concept).  Also, "
594 "the location pointed to should be accessible to the final user; fulfilling "
595 "this requirement might imply pointing to an anonymous access of the "
596 "repository instead of pointing to an SSH-accessible version of the same."
597 msgstr ""
598
599 # type: Content of: <chapter><section><section><section><para>
600 #: best-pkging-practices.dbk:406
601 msgid ""
602 "In the following example, an instance of the field for a Subversion "
603 "repository of the <systemitem role=\"package\">vim</systemitem> package is "
604 "shown.  Note how the URL is in the <literal>svn://</literal> scheme (instead "
605 "of <literal>svn+ssh://</literal>) and how it points to the <filename>trunk/</"
606 "filename> branch.  The use of the <literal>XS-Vcs-Browser</literal> field "
607 "described above is also shown."
608 msgstr ""
609
610 # type: Content of: <chapter><section><section><section><screen>
611 #: best-pkging-practices.dbk:414
612 #, no-wrap
613 msgid ""
614 "Source: vim\n"
615 "  Section: editors\n"
616 "  Priority: optional\n"
617 "  &lt;snip&gt;\n"
618 "  XS-Vcs-Svn: svn://svn.debian.org/svn/pkg-vim/trunk/packages/vim\n"
619 "  XS-Vcs-Browser: http://svn.debian.org/wsvn/pkg-vim/trunk/packages/vim"
620 msgstr ""
621
622 # type: Content of: <chapter><section><title>
623 #: best-pkging-practices.dbk:428
624 msgid "Best practices for <filename>debian/changelog</filename>"
625 msgstr ""
626
627 # type: Content of: <chapter><section><para>
628 #: best-pkging-practices.dbk:430
629 msgid ""
630 "The following practices supplement the <ulink url=\"&url-debian-policy;ch-"
631 "docs.html#s-changelogs\">Policy on changelog files</ulink>."
632 msgstr ""
633
634 # type: Content of: <chapter><section><section><title>
635 #: best-pkging-practices.dbk:435
636 msgid "Writing useful changelog entries"
637 msgstr ""
638
639 # type: Content of: <chapter><section><section><para>
640 #: best-pkging-practices.dbk:437
641 msgid ""
642 "The changelog entry for a package revision documents changes in that "
643 "revision, and only them.  Concentrate on describing significant and user-"
644 "visible changes that were made since the last version."
645 msgstr ""
646
647 # type: Content of: <chapter><section><section><para>
648 #: best-pkging-practices.dbk:442
649 msgid ""
650 "Focus on <emphasis>what</emphasis> was changed — who, how and when are "
651 "usually less important.  Having said that, remember to politely attribute "
652 "people who have provided notable help in making the package (e.g., those who "
653 "have sent in patches)."
654 msgstr ""
655
656 # type: Content of: <chapter><section><section><para>
657 #: best-pkging-practices.dbk:448
658 msgid ""
659 "There's no need to elaborate the trivial and obvious changes.  You can also "
660 "aggregate several changes in one entry.  On the other hand, don't be overly "
661 "terse if you have undertaken a major change.  Be especially clear if there "
662 "are changes that affect the behaviour of the program.  For further "
663 "explanations, use the <filename>README.Debian</filename> file."
664 msgstr ""
665
666 # type: Content of: <chapter><section><section><para>
667 #: best-pkging-practices.dbk:455
668 msgid ""
669 "Use common English so that the majority of readers can comprehend it.  Avoid "
670 "abbreviations, tech-speak and jargon when explaining changes that close "
671 "bugs, especially for bugs filed by users that did not strike you as "
672 "particularly technically savvy.  Be polite, don't swear."
673 msgstr ""
674
675 # type: Content of: <chapter><section><section><para>
676 #: best-pkging-practices.dbk:461
677 msgid ""
678 "It is sometimes desirable to prefix changelog entries with the names of the "
679 "files that were changed.  However, there's no need to explicitly list each "
680 "and every last one of the changed files, especially if the change was small "
681 "or repetitive.  You may use wildcards."
682 msgstr ""
683
684 # type: Content of: <chapter><section><section><para>
685 #: best-pkging-practices.dbk:467
686 msgid ""
687 "When referring to bugs, don't assume anything.  Say what the problem was, "
688 "how it was fixed, and append the closes: #nnnnn string.  See <xref linkend="
689 "\"upload-bugfix\"/> for more information."
690 msgstr ""
691
692 # type: Content of: <chapter><section><section><title>
693 #: best-pkging-practices.dbk:474
694 msgid "Common misconceptions about changelog entries"
695 msgstr ""
696
697 # type: Content of: <chapter><section><section><para>
698 #: best-pkging-practices.dbk:476
699 msgid ""
700 "The changelog entries should <emphasis role=\"strong\">not</emphasis> "
701 "document generic packaging issues (Hey, if you're looking for foo.conf, it's "
702 "in /etc/blah/.), since administrators and users are supposed to be at least "
703 "remotely acquainted with how such things are generally arranged on Debian "
704 "systems.  Do, however, mention if you change the location of a configuration "
705 "file."
706 msgstr ""
707
708 # type: Content of: <chapter><section><section><para>
709 #: best-pkging-practices.dbk:484
710 msgid ""
711 "The only bugs closed with a changelog entry should be those that are "
712 "actually fixed in the same package revision.  Closing unrelated bugs in the "
713 "changelog is bad practice.  See <xref linkend=\"upload-bugfix\"/> ."
714 msgstr ""
715
716 # type: Content of: <chapter><section><section><para>
717 #: best-pkging-practices.dbk:489
718 msgid ""
719 "The changelog entries should <emphasis role=\"strong\">not</emphasis> be "
720 "used for random discussion with bug reporters (I don't see segfaults when "
721 "starting foo with option bar; send in more info), general statements on "
722 "life, the universe and everything (sorry this upload took me so long, but I "
723 "caught the flu), or pleas for help (the bug list on this package is huge, "
724 "please lend me a hand).  Such things usually won't be noticed by their "
725 "target audience, but may annoy people who wish to read information about "
726 "actual changes in the package.  See <xref linkend=\"bug-answering\"/> for "
727 "more information on how to use the bug tracking system."
728 msgstr ""
729
730 # type: Content of: <chapter><section><section><para>
731 #: best-pkging-practices.dbk:500
732 msgid ""
733 "It is an old tradition to acknowledge bugs fixed in non-maintainer uploads "
734 "in the first changelog entry of the proper maintainer upload.  As we have "
735 "version tracking now, it is enough to keep the NMUed changelog entries and "
736 "just mention this fact in your own changelog entry."
737 msgstr ""
738
739 # type: Content of: <chapter><section><section><title>
740 #: best-pkging-practices.dbk:508
741 msgid "Common errors in changelog entries"
742 msgstr ""
743
744 # type: Content of: <chapter><section><section><para>
745 #: best-pkging-practices.dbk:510
746 msgid ""
747 "The following examples demonstrate some common errors or examples of bad "
748 "style in changelog entries."
749 msgstr ""
750
751 # type: Content of: <chapter><section><section><screen>
752 #: best-pkging-practices.dbk:514
753 #, no-wrap
754 msgid "* Fixed all outstanding bugs."
755 msgstr ""
756
757 # type: Content of: <chapter><section><section><para>
758 #: best-pkging-practices.dbk:517
759 msgid "This doesn't tell readers anything too useful, obviously."
760 msgstr ""
761
762 # type: Content of: <chapter><section><section><screen>
763 #: best-pkging-practices.dbk:520
764 #, no-wrap
765 msgid "* Applied patch from Jane Random."
766 msgstr ""
767
768 # type: Content of: <chapter><section><section><para>
769 #: best-pkging-practices.dbk:523
770 msgid "What was the patch about?"
771 msgstr ""
772
773 # type: Content of: <chapter><section><section><screen>
774 #: best-pkging-practices.dbk:526
775 #, no-wrap
776 msgid "* Late night install target overhaul."
777 msgstr ""
778
779 # type: Content of: <chapter><section><section><para>
780 #: best-pkging-practices.dbk:529
781 msgid ""
782 "Overhaul which accomplished what? Is the mention of late night supposed to "
783 "remind us that we shouldn't trust that code?"
784 msgstr ""
785
786 # type: Content of: <chapter><section><section><screen>
787 #: best-pkging-practices.dbk:533
788 #, no-wrap
789 msgid "* Fix vsync FU w/ ancient CRTs."
790 msgstr ""
791
792 # type: Content of: <chapter><section><section><para>
793 #: best-pkging-practices.dbk:536
794 msgid ""
795 "Too many acronyms, and it's not overly clear what the, uh, fsckup (oops, a "
796 "curse word!) was actually about, or how it was fixed."
797 msgstr ""
798
799 # type: Content of: <chapter><section><section><screen>
800 #: best-pkging-practices.dbk:540
801 #, no-wrap
802 msgid "* This is not a bug, closes: #nnnnnn."
803 msgstr ""
804
805 # type: Content of: <chapter><section><section><para>
806 #: best-pkging-practices.dbk:543
807 msgid ""
808 "First of all, there's absolutely no need to upload the package to convey "
809 "this information; instead, use the bug tracking system.  Secondly, there's "
810 "no explanation as to why the report is not a bug."
811 msgstr ""
812
813 # type: Content of: <chapter><section><section><screen>
814 #: best-pkging-practices.dbk:548
815 #, no-wrap
816 msgid "* Has been fixed for ages, but I forgot to close; closes: #54321."
817 msgstr ""
818
819 # type: Content of: <chapter><section><section><para>
820 #: best-pkging-practices.dbk:551
821 msgid ""
822 "If for some reason you didn't mention the bug number in a previous changelog "
823 "entry, there's no problem, just close the bug normally in the BTS.  There's "
824 "no need to touch the changelog file, presuming the description of the fix is "
825 "already in (this applies to the fixes by the upstream authors/maintainers as "
826 "well, you don't have to track bugs that they fixed ages ago in your "
827 "changelog)."
828 msgstr ""
829
830 # type: Content of: <chapter><section><section><screen>
831 #: best-pkging-practices.dbk:558
832 #, no-wrap
833 msgid "* Closes: #12345, #12346, #15432"
834 msgstr ""
835
836 # type: Content of: <chapter><section><section><para>
837 #: best-pkging-practices.dbk:561
838 msgid ""
839 "Where's the description? If you can't think of a descriptive message, start "
840 "by inserting the title of each different bug."
841 msgstr ""
842
843 # type: Content of: <chapter><section><section><title>
844 #: best-pkging-practices.dbk:567
845 msgid "Supplementing changelogs with NEWS.Debian files"
846 msgstr ""
847
848 # type: Content of: <chapter><section><section><para>
849 #: best-pkging-practices.dbk:569
850 msgid ""
851 "Important news about changes in a package can also be put in NEWS.Debian "
852 "files.  The news will be displayed by tools like apt-listchanges, before all "
853 "the rest of the changelogs.  This is the preferred means to let the user "
854 "know about significant changes in a package.  It is better than using "
855 "debconf notes since it is less annoying and the user can go back and refer "
856 "to the NEWS.Debian file after the install.  And it's better than listing "
857 "major changes in README.Debian, since the user can easily miss such notes."
858 msgstr ""
859
860 # type: Content of: <chapter><section><section><para>
861 #: best-pkging-practices.dbk:578
862 msgid ""
863 "The file format is the same as a debian changelog file, but leave off the "
864 "asterisks and describe each news item with a full paragraph when necessary "
865 "rather than the more concise summaries that would go in a changelog.  It's a "
866 "good idea to run your file through dpkg-parsechangelog to check its "
867 "formatting as it will not be automatically checked during build as the "
868 "changelog is.  Here is an example of a real NEWS.Debian file:"
869 msgstr ""
870
871 # type: Content of: <chapter><section><section><screen>
872 #: best-pkging-practices.dbk:586
873 #, no-wrap
874 msgid ""
875 "cron (3.0pl1-74) unstable; urgency=low\n"
876 "\n"
877 "    The checksecurity script is no longer included with the cron package:\n"
878 "    it now has its own package, checksecurity. If you liked the\n"
879 "    functionality provided with that script, please install the new\n"
880 "    package.\n"
881 "\n"
882 " -- Steve Greenland &lt;stevegr@debian.org&gt;  Sat,  6 Sep 2003 17:15:03 -0500"
883 msgstr ""
884
885 # type: Content of: <chapter><section><section><para>
886 #: best-pkging-practices.dbk:596
887 msgid ""
888 "The NEWS.Debian file is installed as /usr/share/doc/&lt;package&gt;/NEWS."
889 "Debian.gz.  It is compressed, and always has that name even in Debian native "
890 "packages.  If you use debhelper, dh_installchangelogs will install debian/"
891 "NEWS files for you."
892 msgstr ""
893
894 # type: Content of: <chapter><section><section><para>
895 #: best-pkging-practices.dbk:602
896 msgid ""
897 "Unlike changelog files, you need not update NEWS.Debian files with every "
898 "release.  Only update them if you have something particularly newsworthy "
899 "that user should know about.  If you have no news at all, there's no need to "
900 "ship a NEWS.Debian file in your package.  No news is good news!"
901 msgstr ""
902
903 # type: Content of: <chapter><section><title>
904 #: best-pkging-practices.dbk:623
905 msgid "Best practices for maintainer scripts"
906 msgstr ""
907
908 # type: Content of: <chapter><section><para>
909 #: best-pkging-practices.dbk:625
910 msgid ""
911 "Maintainer scripts include the files <filename>debian/postinst</filename>, "
912 "<filename>debian/preinst</filename>, <filename>debian/prerm</filename> and "
913 "<filename>debian/postrm</filename>.  These scripts take care of any package "
914 "installation or deinstallation setup which isn't handled merely by the "
915 "creation or removal of files and directories.  The following instructions "
916 "supplement the <ulink url=\"&url-debian-policy;\">Debian Policy</ulink>."
917 msgstr ""
918
919 # type: Content of: <chapter><section><para>
920 #: best-pkging-practices.dbk:633
921 msgid ""
922 "Maintainer scripts must be idempotent.  That means that you need to make "
923 "sure nothing bad will happen if the script is called twice where it would "
924 "usually be called once."
925 msgstr ""
926
927 # type: Content of: <chapter><section><para>
928 #: best-pkging-practices.dbk:638
929 msgid ""
930 "Standard input and output may be redirected (e.g.  into pipes) for logging "
931 "purposes, so don't rely on them being a tty."
932 msgstr ""
933
934 # type: Content of: <chapter><section><para>
935 #: best-pkging-practices.dbk:642
936 msgid ""
937 "All prompting or interactive configuration should be kept to a minimum.  "
938 "When it is necessary, you should use the <systemitem role=\"package"
939 "\">debconf</systemitem> package for the interface.  Remember that prompting "
940 "in any case can only be in the <literal>configure</literal> stage of the "
941 "<filename>postinst</filename> script."
942 msgstr ""
943
944 # type: Content of: <chapter><section><para>
945 #: best-pkging-practices.dbk:649
946 msgid ""
947 "Keep the maintainer scripts as simple as possible.  We suggest you use pure "
948 "POSIX shell scripts.  Remember, if you do need any bash features, the "
949 "maintainer script must have a bash shebang line.  POSIX shell or Bash are "
950 "preferred to Perl, since they enable <systemitem role=\"package\">debhelper</"
951 "systemitem> to easily add bits to the scripts."
952 msgstr ""
953
954 # type: Content of: <chapter><section><para>
955 #: best-pkging-practices.dbk:656
956 msgid ""
957 "If you change your maintainer scripts, be sure to test package removal, "
958 "double installation, and purging.  Be sure that a purged package is "
959 "completely gone, that is, it must remove any files created, directly or "
960 "indirectly, in any maintainer script."
961 msgstr ""
962
963 # type: Content of: <chapter><section><para>
964 #: best-pkging-practices.dbk:662
965 msgid ""
966 "If you need to check for the existence of a command, you should use "
967 "something like"
968 msgstr ""
969
970 # type: Content of: <chapter><section><programlisting>
971 #: best-pkging-practices.dbk:665
972 #, no-wrap
973 msgid "if [ -x /usr/sbin/install-docs ]; then ..."
974 msgstr ""
975
976 # type: Content of: <chapter><section><para>
977 #: best-pkging-practices.dbk:667
978 msgid ""
979 "If you don't wish to hard-code the path of a command in your maintainer "
980 "script, the following POSIX-compliant shell function may help:"
981 msgstr ""
982
983 # type: Content of: <chapter><section><para>
984 #: best-pkging-practices.dbk:672
985 msgid ""
986 "You can use this function to search <literal>$PATH</literal> for a command "
987 "name, passed as an argument.  It returns true (zero) if the command was "
988 "found, and false if not.  This is really the most portable way, since "
989 "<literal>command -v</literal>, <command>type</command>, and <command>which</"
990 "command> are not POSIX."
991 msgstr ""
992
993 # type: Content of: <chapter><section><para>
994 #: best-pkging-practices.dbk:679
995 msgid ""
996 "While <command>which</command> is an acceptable alternative, since it is "
997 "from the required <systemitem role=\"package\">debianutils</systemitem> "
998 "package, it's not on the root partition.  That is, it's in <filename>/usr/"
999 "bin</filename> rather than <filename>/bin</filename>, so one can't use it in "
1000 "scripts which are run before the <filename>/usr</filename> partition is "
1001 "mounted.  Most scripts won't have this problem, though."
1002 msgstr ""
1003
1004 # type: Content of: <chapter><section><title>
1005 #: best-pkging-practices.dbk:689
1006 msgid ""
1007 "Configuration management with <systemitem role=\"package\">debconf</"
1008 "systemitem>"
1009 msgstr ""
1010
1011 # type: Content of: <chapter><section><para>
1012 #: best-pkging-practices.dbk:691
1013 msgid ""
1014 "<systemitem role=\"package\">Debconf</systemitem> is a configuration "
1015 "management system which can be used by all the various packaging scripts "
1016 "(<filename>postinst</filename> mainly) to request feedback from the user "
1017 "concerning how to configure the package.  Direct user interactions must now "
1018 "be avoided in favor of <systemitem role=\"package\">debconf</systemitem> "
1019 "interaction.  This will enable non-interactive installations in the future."
1020 msgstr ""
1021
1022 # type: Content of: <chapter><section><para>
1023 #: best-pkging-practices.dbk:699
1024 msgid ""
1025 "Debconf is a great tool but it is often poorly used.  Many common mistakes "
1026 "are listed in the <citerefentry> <refentrytitle>debconf-devel</"
1027 "refentrytitle> <manvolnum>7</manvolnum> </citerefentry> man page.  It is "
1028 "something that you must read if you decide to use debconf.  Also, we "
1029 "document some best practices here."
1030 msgstr ""
1031
1032 # type: Content of: <chapter><section><para>
1033 #: best-pkging-practices.dbk:706
1034 msgid ""
1035 "These guidelines include some writing style and typography recommendations, "
1036 "general considerations about debconf usage as well as more specific "
1037 "recommendations for some parts of the distribution (the installation system "
1038 "for instance)."
1039 msgstr ""
1040
1041 # type: Content of: <chapter><section><section><title>
1042 #: best-pkging-practices.dbk:712
1043 msgid "Do not abuse debconf"
1044 msgstr ""
1045
1046 # type: Content of: <chapter><section><section><para>
1047 #: best-pkging-practices.dbk:714
1048 msgid ""
1049 "Since debconf appeared in Debian, it has been widely abused and several "
1050 "criticisms received by the Debian distribution come from debconf abuse with "
1051 "the need of answering a wide bunch of questions before getting any little "
1052 "thing installed."
1053 msgstr ""
1054
1055 # type: Content of: <chapter><section><section><para>
1056 #: best-pkging-practices.dbk:720
1057 msgid ""
1058 "Keep usage notes to what they belong: the NEWS.Debian, or README.Debian "
1059 "file.  Only use notes for important notes which may directly affect the "
1060 "package usability.  Remember that notes will always block the install until "
1061 "confirmed or bother the user by email."
1062 msgstr ""
1063
1064 # type: Content of: <chapter><section><section><para>
1065 #: best-pkging-practices.dbk:726
1066 msgid ""
1067 "Carefully choose the questions priorities in maintainer scripts.  See "
1068 "<citerefentry> <refentrytitle>debconf-devel</refentrytitle> <manvolnum>7</"
1069 "manvolnum> </citerefentry> for details about priorities.  Most questions "
1070 "should use medium and low priorities."
1071 msgstr ""
1072
1073 # type: Content of: <chapter><section><section><title>
1074 #: best-pkging-practices.dbk:734
1075 msgid "General recommendations for authors and translators"
1076 msgstr ""
1077
1078 # type: Content of: <chapter><section><section><section><title>
1079 #: best-pkging-practices.dbk:736
1080 msgid "Write correct English"
1081 msgstr ""
1082
1083 # type: Content of: <chapter><section><section><section><para>
1084 #: best-pkging-practices.dbk:738
1085 msgid ""
1086 "Most Debian package maintainers are not native English speakers.  So, "
1087 "writing properly phrased templates may not be easy for them."
1088 msgstr ""
1089
1090 # type: Content of: <chapter><section><section><section><para>
1091 #: best-pkging-practices.dbk:742
1092 msgid ""
1093 "Please use (and abuse) &email-debian-l10n-english; mailing list.  Have your "
1094 "templates proofread."
1095 msgstr ""
1096
1097 # type: Content of: <chapter><section><section><section><para>
1098 #: best-pkging-practices.dbk:746
1099 msgid ""
1100 "Badly written templates give a poor image of your package, of your work...or "
1101 "even of Debian itself."
1102 msgstr ""
1103
1104 # type: Content of: <chapter><section><section><section><para>
1105 #: best-pkging-practices.dbk:750
1106 msgid ""
1107 "Avoid technical jargon as much as possible.  If some terms sound common to "
1108 "you, they may be impossible to understand for others.  If you cannot avoid "
1109 "them, try to explain them (use the extended description).  When doing so, "
1110 "try to balance between verbosity and simplicity."
1111 msgstr ""
1112
1113 # type: Content of: <chapter><section><section><section><title>
1114 #: best-pkging-practices.dbk:758
1115 msgid "Be kind to translators"
1116 msgstr ""
1117
1118 # type: Content of: <chapter><section><section><section><para>
1119 #: best-pkging-practices.dbk:760
1120 msgid ""
1121 "Debconf templates may be translated.  Debconf, along with its sister package "
1122 "<command>po-debconf</command> offers a simple framework for getting "
1123 "templates translated by translation teams or even individuals."
1124 msgstr ""
1125
1126 # type: Content of: <chapter><section><section><section><para>
1127 #: best-pkging-practices.dbk:765
1128 msgid ""
1129 "Please use gettext-based templates.  Install <systemitem role=\"package\">po-"
1130 "debconf</systemitem> on your development system and read its documentation "
1131 "(man po-debconf is a good start)."
1132 msgstr ""
1133
1134 # type: Content of: <chapter><section><section><section><para>
1135 #: best-pkging-practices.dbk:770
1136 msgid ""
1137 "Avoid changing templates too often.  Changing templates text induces more "
1138 "work to translators which will get their translation fuzzied.  If you plan "
1139 "changes to your original templates, please contact translators.  Most active "
1140 "translators are very responsive and getting their work included along with "
1141 "your modified templates will save you additional uploads.  If you use "
1142 "gettext-based templates, the translator's name and e-mail addresses are "
1143 "mentioned in the po files headers."
1144 msgstr ""
1145
1146 # type: Content of: <chapter><section><section><section><para>
1147 #: best-pkging-practices.dbk:779
1148 msgid ""
1149 "The use of the <command>podebconf-report-po</command> from the po-debconf "
1150 "package is highly recommended to warn translators which have incomplete "
1151 "translations and request them for updates."
1152 msgstr ""
1153
1154 # type: Content of: <chapter><section><section><section><para>
1155 #: best-pkging-practices.dbk:784
1156 msgid ""
1157 "If in doubt, you may also contact the translation team for a given language "
1158 "(debian-l10n-xxxxx@&lists-host;), or the &email-debian-i18n; mailing list."
1159 msgstr ""
1160
1161 # type: Content of: <chapter><section><section><section><para>
1162 #: best-pkging-practices.dbk:789
1163 msgid ""
1164 "Calls for translations posted to &email-debian-i18n; with the "
1165 "<filename>debian/po/templates.pot</filename> file attached or referenced in "
1166 "a URL are encouraged.  Be sure to mentions in these calls for new "
1167 "translations which languages you have existing translations for, in order to "
1168 "avoid duplicate work."
1169 msgstr ""
1170
1171 # type: Content of: <chapter><section><section><section><title>
1172 #: best-pkging-practices.dbk:798
1173 msgid "Unfuzzy complete translations when correcting typos and spelling"
1174 msgstr ""
1175
1176 # type: Content of: <chapter><section><section><section><para>
1177 #: best-pkging-practices.dbk:800
1178 msgid ""
1179 "When the text of a debconf template is corrected and you are <emphasis role="
1180 "\"strong\">sure</emphasis> that the change does <emphasis role=\"strong"
1181 "\">not</emphasis> affect translations, please be kind to translators and "
1182 "unfuzzy their translations."
1183 msgstr ""
1184
1185 # type: Content of: <chapter><section><section><section><para>
1186 #: best-pkging-practices.dbk:806
1187 msgid ""
1188 "If you don't do so, the whole template will not be translated as long as a "
1189 "translator will send you an update."
1190 msgstr ""
1191
1192 # type: Content of: <chapter><section><section><section><para>
1193 #: best-pkging-practices.dbk:810
1194 msgid ""
1195 "To <emphasis role=\"strong\">unfuzzy</emphasis> translations, you can "
1196 "proceed the following way:"
1197 msgstr ""
1198
1199 # type: Content of: <chapter><section><section><section><orderedlist><listitem><para>
1200 #: best-pkging-practices.dbk:816
1201 msgid ""
1202 "Put all incomplete PO files out of the way.  You can check the completeness "
1203 "by using (needs the <systemitem role=\"package\">gettext</systemitem> "
1204 "package installed):"
1205 msgstr ""
1206
1207 # type: Content of: <chapter><section><section><section><orderedlist><listitem><programlisting>
1208 #: best-pkging-practices.dbk:820
1209 #, no-wrap
1210 msgid ""
1211 "for i in debian/po/*po; do echo -n $i: ; msgfmt -o /dev/null\n"
1212 "--statistics $i; done"
1213 msgstr ""
1214
1215 # type: Content of: <chapter><section><section><section><orderedlist><listitem><para>
1216 #: best-pkging-practices.dbk:825
1217 msgid ""
1218 "move all files which report either fuzzy strings to a temporary place.  "
1219 "Files which report no fuzzy strings (only translated and untranslated) will "
1220 "be kept in place."
1221 msgstr ""
1222
1223 # type: Content of: <chapter><section><section><section><orderedlist><listitem><para>
1224 #: best-pkging-practices.dbk:832
1225 msgid ""
1226 "now <emphasis role=\"strong\">and now only</emphasis>, modify the template "
1227 "for the typos and check again that translation are not impacted (typos, "
1228 "spelling errors, sometimes typographical corrections are usually OK)"
1229 msgstr ""
1230
1231 # type: Content of: <chapter><section><section><section><orderedlist><listitem><para>
1232 #: best-pkging-practices.dbk:839
1233 msgid ""
1234 "run <command>debconf-updatepo</command>.  This will fuzzy all strings you "
1235 "modified in translations.  You can see this by running the above again"
1236 msgstr ""
1237
1238 # type: Content of: <chapter><section><section><section><orderedlist><listitem><para>
1239 #: best-pkging-practices.dbk:845
1240 msgid "use the following command:"
1241 msgstr ""
1242
1243 # type: Content of: <chapter><section><section><section><orderedlist><listitem><programlisting>
1244 #: best-pkging-practices.dbk:847
1245 #, no-wrap
1246 msgid "for i in debian/po/*po; do msgattrib --output-file=$i --clear-fuzzy $i; done"
1247 msgstr ""
1248
1249 # type: Content of: <chapter><section><section><section><orderedlist><listitem><para>
1250 #: best-pkging-practices.dbk:851
1251 msgid "move back to debian/po the files which showed fuzzy strings in the first step"
1252 msgstr ""
1253
1254 # type: Content of: <chapter><section><section><section><orderedlist><listitem><para>
1255 #: best-pkging-practices.dbk:856
1256 msgid "run <command>debconf-updatepo</command> again"
1257 msgstr ""
1258
1259 # type: Content of: <chapter><section><section><section><title>
1260 #: best-pkging-practices.dbk:863
1261 msgid "Do not make assumptions about interfaces"
1262 msgstr ""
1263
1264 # type: Content of: <chapter><section><section><section><para>
1265 #: best-pkging-practices.dbk:865
1266 msgid ""
1267 "Templates text should not make reference to widgets belonging to some "
1268 "debconf interfaces.  Sentences like If you answer Yes...  have no meaning "
1269 "for users of graphical interfaces which use checkboxes for boolean questions."
1270 msgstr ""
1271
1272 # type: Content of: <chapter><section><section><section><para>
1273 #: best-pkging-practices.dbk:870
1274 msgid ""
1275 "String templates should also avoid mentioning the default values in their "
1276 "description.  First, because this is redundant with the values seen by the "
1277 "users.  Also, because these default values may be different from the "
1278 "maintainer choices (for instance, when the debconf database was preseeded)."
1279 msgstr ""
1280
1281 # type: Content of: <chapter><section><section><section><para>
1282 #: best-pkging-practices.dbk:876
1283 msgid ""
1284 "More generally speaking, try to avoid referring to user actions.  Just give "
1285 "facts."
1286 msgstr ""
1287
1288 # type: Content of: <chapter><section><section><section><title>
1289 #: best-pkging-practices.dbk:882
1290 msgid "Do not use first person"
1291 msgstr ""
1292
1293 # type: Content of: <chapter><section><section><section><para>
1294 #: best-pkging-practices.dbk:884
1295 msgid ""
1296 "You should avoid the use of first person (I will do this...  or We "
1297 "recommend...).  The computer is not a person and the Debconf templates do "
1298 "not speak for the Debian developers.  You should use neutral construction.  "
1299 "Those of you who already wrote scientific publications, just write your "
1300 "templates like you would write a scientific paper.  However, try using "
1301 "action voice if still possible, like Enable this if ...  instead of This can "
1302 "be enabled if ...."
1303 msgstr ""
1304
1305 # type: Content of: <chapter><section><section><section><title>
1306 #: best-pkging-practices.dbk:894
1307 msgid "Be gender neutral"
1308 msgstr ""
1309
1310 # type: Content of: <chapter><section><section><section><para>
1311 #: best-pkging-practices.dbk:896
1312 msgid ""
1313 "The world is made of men and women.  Please use gender-neutral constructions "
1314 "in your writing."
1315 msgstr ""
1316
1317 # type: Content of: <chapter><section><section><title>
1318 #: best-pkging-practices.dbk:904
1319 msgid "Templates fields definition"
1320 msgstr ""
1321
1322 # type: Content of: <chapter><section><section><para>
1323 #: best-pkging-practices.dbk:906
1324 msgid ""
1325 "This part gives some information which is mostly taken from the "
1326 "<citerefentry> <refentrytitle>debconf-devel</refentrytitle> <manvolnum>7</"
1327 "manvolnum> </citerefentry> manual page."
1328 msgstr ""
1329
1330 # type: Content of: <chapter><section><section><section><title>
1331 #: best-pkging-practices.dbk:911
1332 msgid "Type"
1333 msgstr ""
1334
1335 # type: Content of: <chapter><section><section><section><section><title>
1336 #: best-pkging-practices.dbk:913
1337 msgid "string:"
1338 msgstr ""
1339
1340 # type: Content of: <chapter><section><section><section><section><para>
1341 #: best-pkging-practices.dbk:915
1342 msgid "Results in a free-form input field that the user can type any string into."
1343 msgstr ""
1344
1345 # type: Content of: <chapter><section><section><section><section><title>
1346 #: best-pkging-practices.dbk:920
1347 msgid "password:"
1348 msgstr ""
1349
1350 # type: Content of: <chapter><section><section><section><section><para>
1351 #: best-pkging-practices.dbk:922
1352 msgid ""
1353 "Prompts the user for a password.  Use this with caution; be aware that the "
1354 "password the user enters will be written to debconf's database.  You should "
1355 "probably clean that value out of the database as soon as is possible."
1356 msgstr ""
1357
1358 # type: Content of: <chapter><section><section><section><section><title>
1359 #: best-pkging-practices.dbk:929
1360 msgid "boolean:"
1361 msgstr ""
1362
1363 # type: Content of: <chapter><section><section><section><section><para>
1364 #: best-pkging-practices.dbk:931
1365 msgid ""
1366 "A true/false choice.  Remember: true/false, <emphasis role=\"strong\">not "
1367 "yes/no</emphasis>..."
1368 msgstr ""
1369
1370 # type: Content of: <chapter><section><section><section><section><title>
1371 #: best-pkging-practices.dbk:937
1372 msgid "select:"
1373 msgstr ""
1374
1375 # type: Content of: <chapter><section><section><section><section><para>
1376 #: best-pkging-practices.dbk:939
1377 msgid ""
1378 "A choice between one of a number of values.  The choices must be specified "
1379 "in a field named 'Choices'.  Separate the possible values with commas and "
1380 "spaces, like this: Choices: yes, no, maybe"
1381 msgstr ""
1382
1383 # type: Content of: <chapter><section><section><section><section><title>
1384 #: best-pkging-practices.dbk:946
1385 msgid "multiselect:"
1386 msgstr ""
1387
1388 # type: Content of: <chapter><section><section><section><section><para>
1389 #: best-pkging-practices.dbk:948
1390 msgid ""
1391 "Like the select data type, except the user can choose any number of items "
1392 "from the choices list (or chose none of them)."
1393 msgstr ""
1394
1395 # type: Content of: <chapter><section><section><section><section><title>
1396 #: best-pkging-practices.dbk:954
1397 msgid "note:"
1398 msgstr ""
1399
1400 # type: Content of: <chapter><section><section><section><section><para>
1401 #: best-pkging-practices.dbk:956
1402 msgid ""
1403 "Rather than being a question per se, this datatype indicates a note that can "
1404 "be displayed to the user.  It should be used only for important notes that "
1405 "the user really should see, since debconf will go to great pains to make "
1406 "sure the user sees it; halting the install for them to press a key, and even "
1407 "mailing the note to them in some cases."
1408 msgstr ""
1409
1410 # type: Content of: <chapter><section><section><section><section><title>
1411 #: best-pkging-practices.dbk:965
1412 msgid "text:"
1413 msgstr ""
1414
1415 # type: Content of: <chapter><section><section><section><section><para>
1416 #: best-pkging-practices.dbk:967
1417 msgid "This type is now considered obsolete: don't use it."
1418 msgstr ""
1419
1420 # type: Content of: <chapter><section><section><section><section><title>
1421 #: best-pkging-practices.dbk:972
1422 msgid "error:"
1423 msgstr ""
1424
1425 # type: Content of: <chapter><section><section><section><section><para>
1426 #: best-pkging-practices.dbk:974
1427 msgid ""
1428 "This type is designed to handle error messages.  It is mostly similar to the "
1429 "note type.  Frontends may present it differently (for instance, the dialog "
1430 "frontend of cdebconf draws a red screen instead of the usual blue one)."
1431 msgstr ""
1432
1433 # type: Content of: <chapter><section><section><section><section><para>
1434 #: best-pkging-practices.dbk:979
1435 msgid ""
1436 "It is recommended to use this type for any message that needs user attention "
1437 "for a correction of any kind."
1438 msgstr ""
1439
1440 # type: Content of: <chapter><section><section><section><title>
1441 #: best-pkging-practices.dbk:987
1442 msgid "Description: short and extended description"
1443 msgstr ""
1444
1445 # type: Content of: <chapter><section><section><section><para>
1446 #: best-pkging-practices.dbk:989
1447 msgid ""
1448 "Template descriptions have two parts: short and extended.  The short "
1449 "description is in the Description: line of the template."
1450 msgstr ""
1451
1452 # type: Content of: <chapter><section><section><section><para>
1453 #: best-pkging-practices.dbk:993
1454 msgid ""
1455 "The short description should be kept short (50 characters or so) so that it "
1456 "may be accomodated by most debconf interfaces.  Keeping it short also helps "
1457 "translators, as usually translations tend to end up being longer than the "
1458 "original."
1459 msgstr ""
1460
1461 # type: Content of: <chapter><section><section><section><para>
1462 #: best-pkging-practices.dbk:999
1463 msgid ""
1464 "The short description should be able to stand on its own.  Some interfaces "
1465 "do not show the long description by default, or only if the user explicitely "
1466 "asks for it or even do not show it at all.  Avoid things like What do you "
1467 "want to do?"
1468 msgstr ""
1469
1470 # type: Content of: <chapter><section><section><section><para>
1471 #: best-pkging-practices.dbk:1005
1472 msgid ""
1473 "The short description does not necessarily have to be a full sentence.  This "
1474 "is part of the keep it short and efficient recommendation."
1475 msgstr ""
1476
1477 # type: Content of: <chapter><section><section><section><para>
1478 #: best-pkging-practices.dbk:1009
1479 msgid ""
1480 "The extended description should not repeat the short description word for "
1481 "word.  If you can't think up a long description, then first, think some "
1482 "more.  Post to debian-devel.  Ask for help.  Take a writing class! That "
1483 "extended description is important.  If after all that you still can't come "
1484 "up with anything, leave it blank."
1485 msgstr ""
1486
1487 # type: Content of: <chapter><section><section><section><para>
1488 #: best-pkging-practices.dbk:1016
1489 msgid ""
1490 "The extended description should use complete sentences.  Paragraphs should "
1491 "be kept short for improved readability.  Do not mix two ideas in the same "
1492 "paragraph but rather use another paragraph."
1493 msgstr ""
1494
1495 # type: Content of: <chapter><section><section><section><para>
1496 #: best-pkging-practices.dbk:1021
1497 msgid ""
1498 "Don't be too verbose.  User tend to ignore too long screens.  20 lines are "
1499 "by experience a border you shouldn't cross, because that means that in the "
1500 "classical dialog interface, people will need to scroll, and lot of people "
1501 "just don't do that."
1502 msgstr ""
1503
1504 # type: Content of: <chapter><section><section><section><para>
1505 #: best-pkging-practices.dbk:1027
1506 msgid ""
1507 "The extended description should <emphasis role=\"strong\">never</emphasis> "
1508 "include a question."
1509 msgstr ""
1510
1511 # type: Content of: <chapter><section><section><section><para>
1512 #: best-pkging-practices.dbk:1031
1513 msgid ""
1514 "For specific rules depending on templates type (string, boolean, etc.), "
1515 "please read below."
1516 msgstr ""
1517
1518 # type: Content of: <chapter><section><section><section><title>
1519 #: best-pkging-practices.dbk:1037
1520 msgid "Choices"
1521 msgstr ""
1522
1523 # type: Content of: <chapter><section><section><section><para>
1524 #: best-pkging-practices.dbk:1039
1525 msgid ""
1526 "This field should be used for Select and Multiselect types.  It contains the "
1527 "possible choices which will be presented to users.  These choices should be "
1528 "separated by commas."
1529 msgstr ""
1530
1531 # type: Content of: <chapter><section><section><section><title>
1532 #: best-pkging-practices.dbk:1046
1533 msgid "Default"
1534 msgstr ""
1535
1536 # type: Content of: <chapter><section><section><section><para>
1537 #: best-pkging-practices.dbk:1048
1538 msgid ""
1539 "This field is optional.  It contains the default answer for string, select "
1540 "and multiselect templates.  For multiselect templates, it may contain a "
1541 "comma-separated list of choices."
1542 msgstr ""
1543
1544 # type: Content of: <chapter><section><section><title>
1545 #: best-pkging-practices.dbk:1057
1546 msgid "Templates fields specific style guide"
1547 msgstr ""
1548
1549 # type: Content of: <chapter><section><section><section><title>
1550 #: best-pkging-practices.dbk:1059
1551 msgid "Type field"
1552 msgstr ""
1553
1554 # type: Content of: <chapter><section><section><section><para>
1555 #: best-pkging-practices.dbk:1061
1556 msgid ""
1557 "No specific indication except: use the appropriate type by referring to the "
1558 "previous section."
1559 msgstr ""
1560
1561 # type: Content of: <chapter><section><section><section><title>
1562 #: best-pkging-practices.dbk:1067
1563 msgid "Description field"
1564 msgstr ""
1565
1566 # type: Content of: <chapter><section><section><section><para>
1567 #: best-pkging-practices.dbk:1069
1568 msgid ""
1569 "Below are specific instructions for properly writing the Description (short "
1570 "and extended) depending on the template type."
1571 msgstr ""
1572
1573 # type: Content of: <chapter><section><section><section><section><title>
1574 #: best-pkging-practices.dbk:1073
1575 msgid "String/password templates"
1576 msgstr ""
1577
1578 # type: Content of: <chapter><section><section><section><section><itemizedlist><listitem><para>
1579 #: best-pkging-practices.dbk:1077
1580 msgid ""
1581 "The short description is a prompt and <emphasis role=\"strong\">not</"
1582 "emphasis> a title.  Avoid question style prompts (IP Address?) in favour of "
1583 "opened prompts (IP address:).  The use of colons is recommended."
1584 msgstr ""
1585
1586 # type: Content of: <chapter><section><section><section><section><itemizedlist><listitem><para>
1587 #: best-pkging-practices.dbk:1084
1588 msgid ""
1589 "The extended description is a complement to the short description.  In the "
1590 "extended part, explain what is being asked, rather than ask the same "
1591 "question again using longer words.  Use complete sentences.  Terse writing "
1592 "style is strongly discouraged."
1593 msgstr ""
1594
1595 # type: Content of: <chapter><section><section><section><section><title>
1596 #: best-pkging-practices.dbk:1094
1597 msgid "Boolean templates"
1598 msgstr ""
1599
1600 # type: Content of: <chapter><section><section><section><section><itemizedlist><listitem><para>
1601 #: best-pkging-practices.dbk:1098
1602 msgid ""
1603 "The short description should be phrased in the form of a question which "
1604 "should be kept short and should generally end with a question mark.  Terse "
1605 "writing style is permitted and even encouraged if the question is rather "
1606 "long (remember that translations are often longer than original versions)"
1607 msgstr ""
1608
1609 # type: Content of: <chapter><section><section><section><section><itemizedlist><listitem><para>
1610 #: best-pkging-practices.dbk:1106
1611 msgid ""
1612 "Again, please avoid referring to specific interface widgets.  A common "
1613 "mistake for such templates is if you answer Yes-type constructions."
1614 msgstr ""
1615
1616 # type: Content of: <chapter><section><section><section><section><title>
1617 #: best-pkging-practices.dbk:1114
1618 msgid "Select/Multiselect"
1619 msgstr ""
1620
1621 # type: Content of: <chapter><section><section><section><section><itemizedlist><listitem><para>
1622 #: best-pkging-practices.dbk:1118
1623 msgid ""
1624 "The short description is a prompt and <emphasis role=\"strong\">not</"
1625 "emphasis> a title.  Do <emphasis role=\"strong\">not</emphasis> use useless "
1626 "Please choose...  constructions.  Users are clever enough to figure out they "
1627 "have to choose something...:)"
1628 msgstr ""
1629
1630 # type: Content of: <chapter><section><section><section><section><itemizedlist><listitem><para>
1631 #: best-pkging-practices.dbk:1126
1632 msgid ""
1633 "The extended description will complete the short description.  It may refer "
1634 "to the available choices.  It may also mention that the user may choose more "
1635 "than one of the available choices, if the template is a multiselect one "
1636 "(although the interface often makes this clear)."
1637 msgstr ""
1638
1639 # type: Content of: <chapter><section><section><section><section><title>
1640 #: best-pkging-practices.dbk:1136
1641 msgid "Notes"
1642 msgstr ""
1643
1644 # type: Content of: <chapter><section><section><section><section><itemizedlist><listitem><para>
1645 #: best-pkging-practices.dbk:1140
1646 msgid "The short description should be considered to be a *title*."
1647 msgstr ""
1648
1649 # type: Content of: <chapter><section><section><section><section><itemizedlist><listitem><para>
1650 #: best-pkging-practices.dbk:1145
1651 msgid ""
1652 "The extended description is what will be displayed as a more detailed "
1653 "explanation of the note.  Phrases, no terse writing style."
1654 msgstr ""
1655
1656 # type: Content of: <chapter><section><section><section><section><itemizedlist><listitem><para>
1657 #: best-pkging-practices.dbk:1151
1658 msgid ""
1659 "<emphasis role=\"strong\">Do not abuse debconf.</emphasis> Notes are the "
1660 "most common way to abuse debconf.  As written in debconf-devel manual page: "
1661 "it's best to use them only for warning about very serious problems.  The "
1662 "NEWS.Debian or README.Debian files are the appropriate location for a lot of "
1663 "notes.  If, by reading this, you consider converting your Note type "
1664 "templates to entries in NEWS/Debian or README.Debian, plus consider keeping "
1665 "existing translations for the future."
1666 msgstr ""
1667
1668 # type: Content of: <chapter><section><section><section><title>
1669 #: best-pkging-practices.dbk:1166
1670 msgid "Choices field"
1671 msgstr ""
1672
1673 # type: Content of: <chapter><section><section><section><para>
1674 #: best-pkging-practices.dbk:1168
1675 msgid ""
1676 "If the Choices are likely to change often, please consider using the "
1677 "__Choices trick.  This will split each individual choice into a single "
1678 "string, which will considerably help translators for doing their work."
1679 msgstr ""
1680
1681 # type: Content of: <chapter><section><section><section><title>
1682 #: best-pkging-practices.dbk:1175 best-pkging-practices.dbk:1213
1683 msgid "Default field"
1684 msgstr ""
1685
1686 # type: Content of: <chapter><section><section><section><para>
1687 #: best-pkging-practices.dbk:1177
1688 msgid ""
1689 "If the default value, for a select template, is likely to vary depending on "
1690 "the user language (for instance, if the choice is a language choice), please "
1691 "use the _DefaultChoice trick."
1692 msgstr ""
1693
1694 # type: Content of: <chapter><section><section><section><para>
1695 #: best-pkging-practices.dbk:1182
1696 msgid ""
1697 "This special field allow translators to put the most appropriate choice "
1698 "according to their own language.  It will become the default choice when "
1699 "their language is used while your own mentioned Default Choice will be used "
1700 "chan using English."
1701 msgstr ""
1702
1703 # type: Content of: <chapter><section><section><section><para>
1704 #: best-pkging-practices.dbk:1188
1705 msgid "Example, taken from the geneweb package templates:"
1706 msgstr ""
1707
1708 # type: Content of: <chapter><section><section><section><screen>
1709 #: best-pkging-practices.dbk:1191
1710 #, no-wrap
1711 msgid ""
1712 "Template: geneweb/lang\n"
1713 "Type: select\n"
1714 "__Choices: Afrikaans (af), Bulgarian (bg), Catalan (ca), Chinese (zh), Czech (cs), Danish (da), Dutch (nl), English (en), Esperanto (eo), Estonian (et), Finnish (fi), French (fr), German (de), Hebrew (he), Icelandic (is), Italian (it), Latvian (lv), Norwegian (no), Polish (pl), Portuguese (pt), Romanian (ro), Russian (ru), Spanish (es), Swedish (sv)\n"
1715 "# This is the default choice. Translators may put their own language here\n"
1716 "# instead of the default.\n"
1717 "# WARNING : you MUST use the ENGLISH FORM of your language\n"
1718 "# For instance, the french translator will need to put French (fr) here.\n"
1719 "_DefaultChoice: English (en)[ translators, please see comment in PO files]\n"
1720 "_Description: Geneweb default language:"
1721 msgstr ""
1722
1723 # type: Content of: <chapter><section><section><section><para>
1724 #: best-pkging-practices.dbk:1202
1725 msgid ""
1726 "Note the use of brackets which allow internal comments in debconf fields.  "
1727 "Also note the use of comments which will show up in files the translators "
1728 "will work with."
1729 msgstr ""
1730
1731 # type: Content of: <chapter><section><section><section><para>
1732 #: best-pkging-practices.dbk:1207
1733 msgid ""
1734 "The comments are needed as the DefaultChoice trick is a bit confusing: the "
1735 "translators may put their own choice"
1736 msgstr ""
1737
1738 # type: Content of: <chapter><section><section><section><para>
1739 #: best-pkging-practices.dbk:1215
1740 msgid ""
1741 "Do NOT use empty default field.  If you don't want to use default values, do "
1742 "not use Default at all."
1743 msgstr ""
1744
1745 # type: Content of: <chapter><section><section><section><para>
1746 #: best-pkging-practices.dbk:1219
1747 msgid ""
1748 "If you use po-debconf (and you <emphasis role=\"strong\">should</emphasis>, "
1749 "see 2.2), consider making this field translatable, if you think it may be "
1750 "translated."
1751 msgstr ""
1752
1753 # type: Content of: <chapter><section><section><section><para>
1754 #: best-pkging-practices.dbk:1224
1755 msgid ""
1756 "If the default value may vary depending on language/country (for instance "
1757 "the default value for a language choice), consider using the special "
1758 "_DefaultChoice type documented in <citerefentry> <refentrytitle>po-debconf</"
1759 "refentrytitle> <manvolnum>7</manvolnum> </citerefentry>)."
1760 msgstr ""
1761
1762 # type: Content of: <chapter><section><title>
1763 #: best-pkging-practices.dbk:1236
1764 msgid "Internationalization"
1765 msgstr ""
1766
1767 # type: Content of: <chapter><section><section><title>
1768 #: best-pkging-practices.dbk:1238
1769 msgid "Handling debconf translations"
1770 msgstr ""
1771
1772 # type: Content of: <chapter><section><section><para>
1773 #: best-pkging-practices.dbk:1240
1774 msgid ""
1775 "Like porters, translators have a difficult task.  They work on many packages "
1776 "and must collaborate with many different maintainers.  Moreover, most of the "
1777 "time, they are not native English speakers, so you may need to be "
1778 "particularly patient with them."
1779 msgstr ""
1780
1781 # type: Content of: <chapter><section><section><para>
1782 #: best-pkging-practices.dbk:1246
1783 msgid ""
1784 "The goal of <systemitem role=\"package\">debconf</systemitem> was to make "
1785 "packages configuration easier for maintainers and for users.  Originally, "
1786 "translation of debconf templates was handled with <command>debconf-"
1787 "mergetemplate</command>.  However, that technique is now deprecated; the "
1788 "best way to accomplish <systemitem role=\"package\">debconf</systemitem> "
1789 "internationalization is by using the <systemitem role=\"package\">po-"
1790 "debconf</systemitem> package.  This method is easier both for maintainer and "
1791 "translators; transition scripts are provided."
1792 msgstr ""
1793
1794 # type: Content of: <chapter><section><section><para>
1795 #: best-pkging-practices.dbk:1256
1796 msgid ""
1797 "Using <systemitem role=\"package\">po-debconf</systemitem>, the translation "
1798 "is stored in <filename>po</filename> files (drawing from <command>gettext</"
1799 "command> translation techniques).  Special template files contain the "
1800 "original messages and mark which fields are translatable.  When you change "
1801 "the value of a translatable field, by calling <command>debconf-updatepo</"
1802 "command>, the translation is marked as needing attention from the "
1803 "translators.  Then, at build time, the <command>dh_installdebconf</command> "
1804 "program takes care of all the needed magic to add the template along with "
1805 "the up-to-date translations into the binary packages.  Refer to the "
1806 "<citerefentry> <refentrytitle>po-debconf</refentrytitle> <manvolnum>7</"
1807 "manvolnum> </citerefentry> manual page for details."
1808 msgstr ""
1809
1810 # type: Content of: <chapter><section><section><title>
1811 #: best-pkging-practices.dbk:1272
1812 msgid "Internationalized documentation"
1813 msgstr ""
1814
1815 # type: Content of: <chapter><section><section><para>
1816 #: best-pkging-practices.dbk:1274
1817 msgid ""
1818 "Internationalizing documentation is crucial for users, but a lot of labor.  "
1819 "There's no way to eliminate all that work, but you can make things easier "
1820 "for translators."
1821 msgstr ""
1822
1823 # type: Content of: <chapter><section><section><para>
1824 #: best-pkging-practices.dbk:1279
1825 msgid ""
1826 "If you maintain documentation of any size, its easier for translators if "
1827 "they have access to a source control system.  That lets translators see the "
1828 "differences between two versions of the documentation, so, for instance, "
1829 "they can see what needs to be retranslated.  It is recommended that the "
1830 "translated documentation maintain a note about what source control revision "
1831 "the translation is based on.  An interesting system is provided by <ulink "
1832 "url=\"&url-i18n-doc-check;\">doc-check</ulink> in the <systemitem role="
1833 "\"package\">boot-floppies</systemitem> package, which shows an overview of "
1834 "the translation status for any given language, using structured comments for "
1835 "the current revision of the file to be translated and, for a translated "
1836 "file, the revision of the original file the translation is based on.  You "
1837 "might wish to adapt and provide that in your CVS area."
1838 msgstr ""
1839
1840 # type: Content of: <chapter><section><section><para>
1841 #: best-pkging-practices.dbk:1293
1842 msgid ""
1843 "If you maintain XML or SGML documentation, we suggest that you isolate any "
1844 "language-independent information and define those as entities in a separate "
1845 "file which is included by all the different translations.  This makes it "
1846 "much easier, for instance, to keep URLs up to date across multiple files."
1847 msgstr ""
1848
1849 # type: Content of: <chapter><section><title>
1850 #: best-pkging-practices.dbk:1303
1851 msgid "Common packaging situations"
1852 msgstr ""
1853
1854 # type: Content of: <chapter><section><section><title>
1855 #: best-pkging-practices.dbk:1314
1856 msgid "Packages using <command>autoconf</command>/<command>automake</command>"
1857 msgstr ""
1858
1859 # type: Content of: <chapter><section><section><para>
1860 #: best-pkging-practices.dbk:1316
1861 msgid ""
1862 "Keeping <command>autoconf</command>'s <filename>config.sub</filename> and "
1863 "<filename>config.guess</filename> files up to date is critical for porters, "
1864 "especially on more volatile architectures.  Some very good packaging "
1865 "practices for any package using <command>autoconf</command> and/or "
1866 "<command>automake</command> have been synthesized in &file-bpp-autotools; "
1867 "from the <systemitem role=\"package\">autotools-dev</systemitem> package.  "
1868 "You're strongly encouraged to read this file and to follow the given "
1869 "recommendations."
1870 msgstr ""
1871
1872 # type: Content of: <chapter><section><section><title>
1873 #: best-pkging-practices.dbk:1328
1874 msgid "Libraries"
1875 msgstr ""
1876
1877 # type: Content of: <chapter><section><section><para>
1878 #: best-pkging-practices.dbk:1330
1879 msgid ""
1880 "Libraries are always difficult to package for various reasons.  The policy "
1881 "imposes many constraints to ease their maintenance and to make sure upgrades "
1882 "are as simple as possible when a new upstream version comes out.  Breakage "
1883 "in a library can result in dozens of dependent packages breaking."
1884 msgstr ""
1885
1886 # type: Content of: <chapter><section><section><para>
1887 #: best-pkging-practices.dbk:1336
1888 msgid ""
1889 "Good practices for library packaging have been grouped in <ulink url=\"&url-"
1890 "libpkg-guide;\">the library packaging guide</ulink>."
1891 msgstr ""
1892
1893 # type: Content of: <chapter><section><section><title>
1894 #: best-pkging-practices.dbk:1343
1895 msgid "Documentation"
1896 msgstr ""
1897
1898 # type: Content of: <chapter><section><section><para>
1899 #: best-pkging-practices.dbk:1345
1900 msgid ""
1901 "Be sure to follow the <ulink url=\"&url-debian-policy;ch-docs.html\">Policy "
1902 "on documentation</ulink>."
1903 msgstr ""
1904
1905 # type: Content of: <chapter><section><section><para>
1906 #: best-pkging-practices.dbk:1350
1907 msgid ""
1908 "If your package contains documentation built from XML or SGML, we recommend "
1909 "you not ship the XML or SGML source in the binary package(s).  If users want "
1910 "the source of the documentation, they should retrieve the source package."
1911 msgstr ""
1912
1913 # type: Content of: <chapter><section><section><para>
1914 #: best-pkging-practices.dbk:1355
1915 msgid ""
1916 "Policy specifies that documentation should be shipped in HTML format.  We "
1917 "also recommend shipping documentation in PDF and plain text format if "
1918 "convenient and if output of reasonable quality is possible.  However, it is "
1919 "generally not appropriate to ship plain text versions of documentation whose "
1920 "source format is HTML."
1921 msgstr ""
1922
1923 # type: Content of: <chapter><section><section><para>
1924 #: best-pkging-practices.dbk:1362
1925 msgid ""
1926 "Major shipped manuals should register themselves with <systemitem role="
1927 "\"package\">doc-base</systemitem> on installation.  See the <systemitem role="
1928 "\"package\">doc-base</systemitem> package documentation for more information."
1929 msgstr ""
1930
1931 # type: Content of: <chapter><section><section><title>
1932 #: best-pkging-practices.dbk:1370
1933 msgid "Specific types of packages"
1934 msgstr ""
1935
1936 # type: Content of: <chapter><section><section><para>
1937 #: best-pkging-practices.dbk:1372
1938 msgid ""
1939 "Several specific types of packages have special sub-policies and "
1940 "corresponding packaging rules and practices:"
1941 msgstr ""
1942
1943 # type: Content of: <chapter><section><section><itemizedlist><listitem><para>
1944 #: best-pkging-practices.dbk:1378
1945 msgid ""
1946 "Perl related packages have a <ulink url=\"&url-perl-policy;\">Perl policy</"
1947 "ulink>, some examples of packages following that policy are <systemitem role="
1948 "\"package\">libdbd-pg-perl</systemitem> (binary perl module) or <systemitem "
1949 "role=\"package\">libmldbm-perl</systemitem> (arch independent perl module)."
1950 msgstr ""
1951
1952 # type: Content of: <chapter><section><section><itemizedlist><listitem><para>
1953 #: best-pkging-practices.dbk:1387
1954 msgid ""
1955 "Python related packages have their python policy; see &file-python-policy; "
1956 "in the <systemitem role=\"package\">python</systemitem> package."
1957 msgstr ""
1958
1959 # type: Content of: <chapter><section><section><itemizedlist><listitem><para>
1960 #: best-pkging-practices.dbk:1394
1961 msgid ""
1962 "Emacs related packages have the <ulink url=\"&url-emacs-policy;\">emacs "
1963 "policy</ulink>."
1964 msgstr ""
1965
1966 # type: Content of: <chapter><section><section><itemizedlist><listitem><para>
1967 #: best-pkging-practices.dbk:1401
1968 msgid ""
1969 "Java related packages have their <ulink url=\"&url-java-policy;\">java "
1970 "policy</ulink>."
1971 msgstr ""
1972
1973 # type: Content of: <chapter><section><section><itemizedlist><listitem><para>
1974 #: best-pkging-practices.dbk:1408
1975 msgid ""
1976 "Ocaml related packages have their own policy, found in &file-ocaml-policy; "
1977 "from the <systemitem role=\"package\">ocaml</systemitem> package.  A good "
1978 "example is the <systemitem role=\"package\">camlzip</systemitem> source "
1979 "package."
1980 msgstr ""
1981
1982 # type: Content of: <chapter><section><section><itemizedlist><listitem><para>
1983 #: best-pkging-practices.dbk:1416
1984 msgid ""
1985 "Packages providing XML or SGML DTDs should conform to the recommendations "
1986 "found in the <systemitem role=\"package\">sgml-base-doc</systemitem> package."
1987 msgstr ""
1988
1989 # type: Content of: <chapter><section><section><itemizedlist><listitem><para>
1990 #: best-pkging-practices.dbk:1422
1991 msgid ""
1992 "Lisp packages should register themselves with <systemitem role=\"package"
1993 "\">common-lisp-controller</systemitem>, about which see &file-lisp-"
1994 "controller;."
1995 msgstr ""
1996
1997 # type: Content of: <chapter><section><section><title>
1998 #: best-pkging-practices.dbk:1452
1999 msgid "Architecture-independent data"
2000 msgstr ""
2001
2002 # type: Content of: <chapter><section><section><para>
2003 #: best-pkging-practices.dbk:1454
2004 msgid ""
2005 "It is not uncommon to have a large amount of architecture-independent data "
2006 "packaged with a program.  For example, audio files, a collection of icons, "
2007 "wallpaper patterns, or other graphic files.  If the size of this data is "
2008 "negligible compared to the size of the rest of the package, it's probably "
2009 "best to keep it all in a single package."
2010 msgstr ""
2011
2012 # type: Content of: <chapter><section><section><para>
2013 #: best-pkging-practices.dbk:1461
2014 msgid ""
2015 "However, if the size of the data is considerable, consider splitting it out "
2016 "into a separate, architecture-independent package (_all.deb).  By doing "
2017 "this, you avoid needless duplication of the same data into eleven or more ."
2018 "debs, one per each architecture.  While this adds some extra overhead into "
2019 "the <filename>Packages</filename> files, it saves a lot of disk space on "
2020 "Debian mirrors.  Separating out architecture-independent data also reduces "
2021 "processing time of <command>lintian</command> or <command>linda</command> "
2022 "(see <xref linkend=\"tools-lint\"/> ) when run over the entire Debian "
2023 "archive."
2024 msgstr ""
2025
2026 # type: Content of: <chapter><section><section><title>
2027 #: best-pkging-practices.dbk:1473
2028 msgid "Needing a certain locale during build"
2029 msgstr ""
2030
2031 # type: Content of: <chapter><section><section><para>
2032 #: best-pkging-practices.dbk:1475
2033 msgid ""
2034 "If you need a certain locale during build, you can create a temporary file "
2035 "via this trick:"
2036 msgstr ""
2037
2038 # type: Content of: <chapter><section><section><para>
2039 #: best-pkging-practices.dbk:1479
2040 msgid ""
2041 "If you set <varname>LOCPATH</varname> to the equivalent of <filename>/usr/"
2042 "lib/locale</filename>, and <varname>LC_ALL</varname> to the name of the "
2043 "locale you generate, you should get what you want without being root.  "
2044 "Something like this:"
2045 msgstr ""
2046
2047 # type: Content of: <chapter><section><section><screen>
2048 #: best-pkging-practices.dbk:1484
2049 #, no-wrap
2050 msgid ""
2051 "LOCALE_PATH=debian/tmpdir/usr/lib/locale\n"
2052 "LOCALE_NAME=en_IN\n"
2053 "LOCALE_CHARSET=UTF-8\n"
2054 "\n"
2055 "mkdir -p $LOCALE_PATH\n"
2056 "localedef -i $LOCALE_NAME.$LOCALE_CHARSET -f $LOCALE_CHARSET $LOCALE_PATH/$LOCALE_NAME.$LOCALE_CHARSET\n"
2057 "\n"
2058 "# Using the locale\n"
2059 "LOCPATH=$LOCALE_PATH LC_ALL=$LOCALE_NAME.$LOCALE_CHARSET date"
2060 msgstr ""
2061
2062 # type: Content of: <chapter><section><section><title>
2063 #: best-pkging-practices.dbk:1497
2064 msgid "Make transition packages deborphan compliant"
2065 msgstr ""
2066
2067 # type: Content of: <chapter><section><section><para>
2068 #: best-pkging-practices.dbk:1499
2069 msgid ""
2070 "Deborphan is a program for helping users to detect which packages can safely "
2071 "be removed from the system, i.e.  the ones that have no packages depending "
2072 "on them.  The default operation is to search only within the libs and "
2073 "oldlibs sections, to hunt down unused libraries.  But when passed the right "
2074 "argument, it tries to catch other useless packages."
2075 msgstr ""
2076
2077 # type: Content of: <chapter><section><section><para>
2078 #: best-pkging-practices.dbk:1506
2079 msgid ""
2080 "For example, with --guess-dummy, deborphan tries to search all transitional "
2081 "packages which were needed for upgrade but which can now safely be removed.  "
2082 "For that, it looks for the string dummy or transitional in their short "
2083 "description."
2084 msgstr ""
2085
2086 # type: Content of: <chapter><section><section><para>
2087 #: best-pkging-practices.dbk:1512
2088 msgid ""
2089 "So, when you are creating such a package, please make sure to add this text "
2090 "to your short description.  If you are looking for examples, just run: "
2091 "<command>apt-cache search .|grep dummy</command> or <command>apt-cache "
2092 "search .|grep transitional</command>."
2093 msgstr ""
2094
2095 # type: Content of: <chapter><section><section><title>
2096 #: best-pkging-practices.dbk:1520
2097 msgid "Best practices for <filename>orig.tar.gz</filename> files"
2098 msgstr ""
2099
2100 # type: Content of: <chapter><section><section><para>
2101 #: best-pkging-practices.dbk:1522
2102 msgid ""
2103 "There are two kinds of original source tarballs: Pristine source and "
2104 "repackaged upstream source."
2105 msgstr ""
2106
2107 # type: Content of: <chapter><section><section><section><title>
2108 #: best-pkging-practices.dbk:1526
2109 msgid "Pristine source"
2110 msgstr ""
2111
2112 # type: Content of: <chapter><section><section><section><para><footnote>
2113 #: best-pkging-practices.dbk:1528
2114 msgid ""
2115 "The defining characteristic of a pristine source tarball is that the .orig."
2116 "tar.gz file is byte-for-byte identical to a tarball officially distributed "
2117 "by the upstream author.  <footnote>"
2118 msgstr ""
2119
2120 # type: Content of: <chapter><section><section><section><para><footnote><para>
2121 #: best-pkging-practices.dbk:1530
2122 msgid ""
2123 "We cannot prevent upstream authors from changing the tarball they distribute "
2124 "without also incrementing the version number, so there can be no guarantee "
2125 "that a pristine tarball is identical to what upstream <emphasis>currently</"
2126 "emphasis> distributing at any point in time.  All that can be expected is "
2127 "that it is identical to something that upstream once <emphasis>did</"
2128 "emphasis> distribute.  If a difference arises later (say, if upstream "
2129 "notices that he wasn't using maximal comression in his original distribution "
2130 "and then re-<literal>gzip</literal>s it), that's just too bad.  Since there "
2131 "is no good way to upload a new .orig.tar.gz for the same version, there is "
2132 "not even any point in treating this situation as a bug."
2133 msgstr ""
2134
2135 # type: Content of: <chapter><section><section><section><para>
2136 #: best-pkging-practices.dbk:1540
2137 msgid ""
2138 "</footnote> This makes it possible to use checksums to easily verify that "
2139 "all changes between Debian's version and upstream's are contained in the "
2140 "Debian diff.  Also, if the original source is huge, upstream authors and "
2141 "others who already have the upstream tarball can save download time if they "
2142 "want to inspect your packaging in detail."
2143 msgstr ""
2144
2145 # type: Content of: <chapter><section><section><section><para>
2146 #: best-pkging-practices.dbk:1548
2147 msgid ""
2148 "There is no universally accepted guidelines that upstream authors follow "
2149 "regarding to the directory structure inside their tarball, but <command>dpkg-"
2150 "source</command> is nevertheless able to deal with most upstream tarballs as "
2151 "pristine source.  Its strategy is equivalent to the following:"
2152 msgstr ""
2153
2154 # type: Content of: <chapter><section><section><section><orderedlist><listitem><para>
2155 #: best-pkging-practices.dbk:1556
2156 msgid "It unpacks the tarball in an empty temporary directory by doing"
2157 msgstr ""
2158
2159 # type: Content of: <chapter><section><section><section><orderedlist><listitem><screen>
2160 #: best-pkging-practices.dbk:1559
2161 #, no-wrap
2162 msgid "zcat path/to/&lt;packagename&gt;_&lt;upstream-version&gt;.orig.tar.gz | tar xf -"
2163 msgstr ""
2164
2165 # type: Content of: <chapter><section><section><section><orderedlist><listitem><para>
2166 #: best-pkging-practices.dbk:1564
2167 msgid ""
2168 "If, after this, the temporary directory contains nothing but one directory "
2169 "and no other files, <command>dpkg-source</command> renames that directory to "
2170 "<literal>&lt;packagename&gt;-&lt;upstream-version&gt;(.orig)</literal>.  The "
2171 "name of the top-level directory in the tarball does not matter, and is "
2172 "forgotten."
2173 msgstr ""
2174
2175 # type: Content of: <chapter><section><section><section><orderedlist><listitem><para>
2176 #: best-pkging-practices.dbk:1573
2177 msgid ""
2178 "Otherwise, the upstream tarball must have been packaged without a common top-"
2179 "level directory (shame on the upstream author!).  In this case, "
2180 "<command>dpkg-source</command> renames the temporary directory "
2181 "<emphasis>itself</emphasis> to <literal>&lt;packagename&gt;-&lt;upstream-"
2182 "version&gt;(.orig)</literal>."
2183 msgstr ""
2184
2185 # type: Content of: <chapter><section><section><section><title>
2186 #: best-pkging-practices.dbk:1584
2187 msgid "Repackaged upstream source"
2188 msgstr ""
2189
2190 # type: Content of: <chapter><section><section><section><para>
2191 #: best-pkging-practices.dbk:1586
2192 msgid ""
2193 "You <emphasis role=\"strong\">should</emphasis> upload packages with a "
2194 "pristine source tarball if possible, but there are various reasons why it "
2195 "might not be possible.  This is the case if upstream does not distribute the "
2196 "source as gzipped tar at all, or if upstream's tarball contains non-DFSG-"
2197 "free material that you must remove before uploading."
2198 msgstr ""
2199
2200 # type: Content of: <chapter><section><section><section><para>
2201 #: best-pkging-practices.dbk:1593
2202 msgid ""
2203 "In these cases the developer must construct a suitable .orig.tar.gz file "
2204 "himself.  We refer to such a tarball as a repackaged upstream source.  Note "
2205 "that a repackaged upstream source is different from a Debian-native "
2206 "package.  A repackaged source still comes with Debian-specific changes in a "
2207 "separate <literal>.diff.gz</literal> and still has a version number composed "
2208 "of <literal>&lt;upstream-version&gt;</literal> and <literal>&lt;debian-"
2209 "revision&gt;</literal>."
2210 msgstr ""
2211
2212 # type: Content of: <chapter><section><section><section><para>
2213 #: best-pkging-practices.dbk:1602
2214 msgid ""
2215 "There may be cases where it is desirable to repackage the source even though "
2216 "upstream distributes a <literal>.tar.gz</literal> that could in principle be "
2217 "used in its pristine form.  The most obvious is if <emphasis>significant</"
2218 "emphasis> space savings can be achieved by recompressing the tar archive or "
2219 "by removing genuinely useless cruft from the upstream archive.  Use your own "
2220 "discretion here, but be prepared to defend your decision if you repackage "
2221 "source that could have been pristine."
2222 msgstr ""
2223
2224 # type: Content of: <chapter><section><section><section><para>
2225 #: best-pkging-practices.dbk:1611
2226 msgid "A repackaged .orig.tar.gz"
2227 msgstr ""
2228
2229 # type: Content of: <chapter><section><section><section><orderedlist><listitem><para>
2230 #: best-pkging-practices.dbk:1616
2231 msgid ""
2232 "<emphasis role=\"strong\">must</emphasis> contain detailed information how "
2233 "the repackaged source was obtained, and how this can be reproduced in the "
2234 "<filename>debian/copyright</filename>.  It is also a good idea to provide a "
2235 "<literal>get-orig-source</literal> target in your <filename>debian/rules</"
2236 "filename> file that repeats the process, as described in the Policy Manual, "
2237 "<ulink url=\"&url-debian-policy;ch-source.html#s-debianrules\">Main building "
2238 "script: debian/rules</ulink>."
2239 msgstr ""
2240
2241 # type: Content of: <chapter><section><section><section><orderedlist><listitem><para><footnote>
2242 #: best-pkging-practices.dbk:1628
2243 msgid ""
2244 "<emphasis role=\"strong\">should not</emphasis> contain any file that does "
2245 "not come from the upstream author(s), or whose contents has been changed by "
2246 "you.  <footnote>"
2247 msgstr ""
2248
2249 # type: Content of: <chapter><section><section><section><orderedlist><listitem><para><footnote><para>
2250 #.  or similarly named
2251 #: best-pkging-practices.dbk:1630
2252 msgid ""
2253 "As a special exception, if the omission of non-free files would lead to the "
2254 "source failing to build without assistance from the Debian diff, it might be "
2255 "appropriate to instead edit the files, omitting only the non-free parts of "
2256 "them, and/or explain the situation in a README.Debian-source file in the "
2257 "root of the source tree.  But in that case please also urge the upstream "
2258 "author to make the non-free components easier seperable from the rest of the "
2259 "source."
2260 msgstr ""
2261
2262 # type: Content of: <chapter><section><section><section><orderedlist><listitem><para>
2263 #: best-pkging-practices.dbk:1642
2264 msgid ""
2265 "<emphasis role=\"strong\">should</emphasis>, except where impossible for "
2266 "legal reasons, preserve the entire building and portablility infrastructure "
2267 "provided by the upstream author.  For example, it is not a sufficient reason "
2268 "for omitting a file that it is used only when building on MS-DOS.  "
2269 "Similarly, a Makefile provided by upstream should not be omitted even if the "
2270 "first thing your <filename>debian/rules</filename> does is to overwrite it "
2271 "by running a configure script."
2272 msgstr ""
2273
2274 # type: Content of: <chapter><section><section><section><orderedlist><listitem><para>
2275 #: best-pkging-practices.dbk:1651
2276 msgid ""
2277 "(<emphasis>Rationale:</emphasis> It is common for Debian users who need to "
2278 "build software for non-Debian platforms to fetch the source from a Debian "
2279 "mirror rather than trying to locate a canonical upstream distribution point)."
2280 msgstr ""
2281
2282 # type: Content of: <chapter><section><section><section><orderedlist><listitem><para>
2283 #: best-pkging-practices.dbk:1658
2284 msgid ""
2285 "<emphasis role=\"strong\">should</emphasis> use <literal>&lt;packagename&gt;-"
2286 "&lt;upstream-version&gt;.orig</literal> as the name of the top-level "
2287 "directory in its tarball.  This makes it possible to distinguish pristine "
2288 "tarballs from repackaged ones."
2289 msgstr ""
2290
2291 # type: Content of: <chapter><section><section><section><orderedlist><listitem><para>
2292 #: best-pkging-practices.dbk:1666
2293 msgid ""
2294 "<emphasis role=\"strong\">should</emphasis> be gzipped with maximal "
2295 "compression."
2296 msgstr ""
2297
2298 # type: Content of: <chapter><section><section><section><para>
2299 #: best-pkging-practices.dbk:1671
2300 msgid ""
2301 "The canonical way to meet the latter two points is to let <literal>dpkg-"
2302 "source -b</literal> construct the repackaged tarball from an unpacked "
2303 "directory."
2304 msgstr ""
2305
2306 # type: Content of: <chapter><section><section><section><title>
2307 #: best-pkging-practices.dbk:1677
2308 msgid "Changing binary files in <literal>diff.gz</literal>"
2309 msgstr ""
2310
2311 # type: Content of: <chapter><section><section><section><para><footnote>
2312 #: best-pkging-practices.dbk:1679
2313 msgid ""
2314 "Sometimes it is necessary to change binary files contained in the original "
2315 "tarball, or to add binary files that are not in it.  If this is done by "
2316 "simply copying the files into the debianized source tree, <command>dpkg-"
2317 "source</command> will not be able to handle this.  On the other hand, "
2318 "according to the guidelines given above, you cannot include such a changed "
2319 "binary file in a repackaged <filename>orig.tar.gz</filename>.  Instead, "
2320 "include the file in the <filename>debian</filename> directory in "
2321 "<command>uuencode</command>d (or similar) form <footnote>"
2322 msgstr ""
2323
2324 # type: Content of: <chapter><section><section><section><para><footnote><para>
2325 #: best-pkging-practices.dbk:1686
2326 msgid ""
2327 "The file should have a name that makes it clear which binary file it "
2328 "encodes.  Usually, some postfix indicating the encoding should be appended "
2329 "to the original filename.  Note that you don't need to depend on <systemitem "
2330 "role=\"package\">sharutils</systemitem> to get the <command>uudecode</"
2331 "command> program if you use <command>perl</command>'s <literal>pack</"
2332 "literal> function.  The code could look like"
2333 msgstr ""
2334
2335 # type: Content of: <chapter><section><section><section><para>
2336 #: best-pkging-practices.dbk:1694
2337 msgid ""
2338 "&example-uu; </footnote>.  The file would then be decoded and copied to its "
2339 "place during the build process.  Thus the change will be visible quite easy."
2340 msgstr ""
2341
2342 # type: Content of: <chapter><section><section><section><para>
2343 #: best-pkging-practices.dbk:1700
2344 msgid ""
2345 "Some packages use <command>dbs</command> to manage patches to their upstream "
2346 "source, and always create a new <literal>orig.tar.gz</literal> file that "
2347 "contains the real <literal>orig.tar.gz</literal> in its toplevel directory.  "
2348 "This is questionable with respect to the preference for pristine source.  On "
2349 "the other hand, it is easy to modify or add binary files in this case: Just "
2350 "put them into the newly created <literal>orig.tar.gz</literal> file, besides "
2351 "the real one, and copy them to the right place during the build process."
2352 msgstr ""
2353
2354 # type: Content of: <chapter><section><section><title>
2355 #: best-pkging-practices.dbk:1713
2356 msgid "Best practices for debug packages"
2357 msgstr ""
2358
2359 # type: Content of: <chapter><section><section><para>
2360 #: best-pkging-practices.dbk:1715
2361 msgid ""
2362 "A debug package is a package with a name ending in -dbg, that contains "
2363 "additional information that gdb can use.  Since Debian binaries are stripped "
2364 "by default, debugging information, including function names and line "
2365 "numbers, is otherwise not available when running gdb on Debian binaries.  "
2366 "Debug packages allow users who need this additional debugging information to "
2367 "install it, without bloating a regular system with the information."
2368 msgstr ""
2369
2370 # type: Content of: <chapter><section><section><para>
2371 #: best-pkging-practices.dbk:1723
2372 msgid ""
2373 "It is up to a package's maintainer whether to create a debug package or "
2374 "not.  Maintainers are encouraged to create debug packages for library "
2375 "packages, since this can aid in debugging many programs linked to a "
2376 "library.  In general, debug packages do not need to be added for all "
2377 "programs; doing so would bloat the archive.  But if a maintainer finds that "
2378 "users often need a debugging version of a program, it can be worthwhile to "
2379 "make a debug package for it.  Programs that are core infrastructure, such as "
2380 "apache and the X server are also good candidates for debug packages."
2381 msgstr ""
2382
2383 # type: Content of: <chapter><section><section><para>
2384 #: best-pkging-practices.dbk:1733
2385 msgid ""
2386 "Some debug packages may contain an entire special debugging build of a "
2387 "library or other binary, but most of them can save space and build time by "
2388 "instead containing separated debugging symbols that gdb can find and load on "
2389 "the fly when debugging a program or library.  The convention in Debian is to "
2390 "keep these symbols in <filename>/usr/lib/debug/path</filename>, where "
2391 "<emphasis>path</emphasis> is the path to the executable or library.  For "
2392 "example, debugging symbols for <filename>/usr/bin/foo</filename> go in "
2393 "<filename>/usr/lib/debug/usr/bin/foo</filename>, and debugging symbols for "
2394 "<filename>/usr/lib/libfoo.so.1</filename> go in <filename>/usr/lib/debug/usr/"
2395 "lib/libfoo.so.1</filename>."
2396 msgstr ""
2397
2398 # type: Content of: <chapter><section><section><para>
2399 #: best-pkging-practices.dbk:1745
2400 msgid ""
2401 "The debugging symbols can be extracted from an object file using objcopy --"
2402 "only-keep-debug.  Then the object file can be stripped, and objcopy --add-"
2403 "gnu-debuglink used to specify the path to the debugging symbol file.  "
2404 "<citerefentry> <refentrytitle>objcopy</refentrytitle> <manvolnum>1</"
2405 "manvolnum> </citerefentry> explains in detail how this works."
2406 msgstr ""
2407
2408 # type: Content of: <chapter><section><section><para>
2409 #: best-pkging-practices.dbk:1752
2410 msgid ""
2411 "The dh_strip command in debhelper supports creating debug packages, and can "
2412 "take care of using objcopy to separate out the debugging symbols for you.  "
2413 "If your package uses debhelper, all you need to do is call dh_strip --dbg-"
2414 "package=libfoo-dbg, and add an entry to debian/control for the debug package."
2415 msgstr ""
2416
2417 # type: Content of: <chapter><section><section><para>
2418 #: best-pkging-practices.dbk:1759
2419 msgid ""
2420 "Note that the Debian package should depend on the package that it provides "
2421 "debugging symbols for, and this dependency should be versioned.  For example:"
2422 msgstr ""
2423
2424 # type: Content of: <chapter><section><section><screen>
2425 #: best-pkging-practices.dbk:1763
2426 #, no-wrap
2427 msgid "Depends: libfoo-dbg (= ${binary:Version})"
2428 msgstr ""
2429