]> git.saurik.com Git - apt.git/blame - doc/apt-ftparchive.1.xml
merge with my debian-sid branch
[apt.git] / doc / apt-ftparchive.1.xml
CommitLineData
24f6490f
AL
1<?xml version="1.0" encoding="utf-8" standalone="no"?>
2<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
3 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
4
5<!ENTITY % aptent SYSTEM "apt.ent">
6%aptent;
7
0c1a7101
DK
8<!ENTITY % aptverbatiment SYSTEM "apt-verbatim.ent">
9%aptverbatiment;
10
24f6490f
AL
11]>
12
13<refentry>
5e80de29
AL
14
15 <refentryinfo>
16 &apt-author.jgunthorpe;
17 &apt-author.team;
18 &apt-email;
19 &apt-product;
20 <!-- The last update date -->
9c24493f 21 <date>17 August 2009</date>
5e80de29 22 </refentryinfo>
24f6490f
AL
23
24 <refmeta>
25 <refentrytitle>apt-ftparchive</refentrytitle>
26 <manvolnum>1</manvolnum>
f0599b9c 27 <refmiscinfo class="manual">APT</refmiscinfo>
24f6490f
AL
28 </refmeta>
29
30 <!-- Man page title -->
31 <refnamediv>
32 <refname>apt-ftparchive</refname>
33 <refpurpose>Utility to generate index files</refpurpose>
34 </refnamediv>
35
36 <!-- Arguments -->
37 <refsynopsisdiv>
38 <cmdsynopsis>
39 <command>apt-ftparchive</command>
40 <arg><option>-hvdsq</option></arg>
41 <arg><option>--md5</option></arg>
42 <arg><option>--delink</option></arg>
43 <arg><option>--readonly</option></arg>
44 <arg><option>--contents</option></arg>
31981076 45 <arg><option>--arch <replaceable>architecture</replaceable></option></arg>
8ddbb015 46 <arg><option>-o <replaceable>config</replaceable>=<replaceable>string</replaceable></option></arg>
24f6490f
AL
47 <arg><option>-c=<replaceable>file</replaceable></option></arg>
48 <group choice="req">
49 <arg>packages<arg choice="plain" rep="repeat"><replaceable>path</replaceable></arg><arg><replaceable>override</replaceable><arg><replaceable>pathprefix</replaceable></arg></arg></arg>
50 <arg>sources<arg choice="plain" rep="repeat"><replaceable>path</replaceable></arg><arg><replaceable>override</replaceable><arg><replaceable>pathprefix</replaceable></arg></arg></arg>
51 <arg>contents <arg choice="plain"><replaceable>path</replaceable></arg></arg>
52 <arg>release <arg choice="plain"><replaceable>path</replaceable></arg></arg>
53 <arg>generate <arg choice="plain"><replaceable>config-file</replaceable></arg> <arg choice="plain" rep="repeat"><replaceable>section</replaceable></arg></arg>
54 <arg>clean <arg choice="plain"><replaceable>config-file</replaceable></arg></arg>
55 </group>
56 </cmdsynopsis>
57 </refsynopsisdiv>
58
59 <refsect1><title>Description</title>
60 <para><command>apt-ftparchive</command> is the command line tool that generates the index
61 files that APT uses to access a distribution source. The index files should
62 be generated on the origin site based on the content of that site.</para>
63
64 <para><command>apt-ftparchive</command> is a superset of the &dpkg-scanpackages; program,
65 incorporating its entire functionality via the <literal>packages</literal> command.
66 It also contains a contents file generator, <literal>contents</literal>, and an
67 elaborate means to 'script' the generation process for a complete
68 archive.</para>
69
70 <para>Internally <command>apt-ftparchive</command> can make use of binary databases to
71 cache the contents of a .deb file and it does not rely on any external
72 programs aside from &gzip;. When doing a full generate it automatically
73 performs file-change checks and builds the desired compressed output files.</para>
74
75 <para>Unless the <option>-h</option>, or <option>--help</option> option is given one of the
76 commands below must be present.</para>
77
78 <variablelist>
79 <varlistentry><term>packages</term>
80 <listitem><para>
81 The packages command generates a package file from a directory tree. It
82 takes the given directory and recursively searches it for .deb files,
83 emitting a package record to stdout for each. This command is
84 approximately equivalent to &dpkg-scanpackages;.</para>
85
86 <para>The option <option>--db</option> can be used to specify a binary caching DB.</para></listitem>
87 </varlistentry>
88
89 <varlistentry><term>sources</term>
90 <listitem><para>
91 The <literal>sources</literal> command generates a source index file from a directory tree.
92 It takes the given directory and recursively searches it for .dsc files,
93 emitting a source record to stdout for each. This command is approximately
94 equivalent to &dpkg-scansources;.</para>
95 <para>
96 If an override file is specified then a source override file will be
97 looked for with an extension of .src. The --source-override option can be
98 used to change the source override file that will be used.</para></listitem>
99 </varlistentry>
100
101 <varlistentry><term>contents</term>
102 <listitem><para>
103 The <literal>contents</literal> command generates a contents file from a directory tree. It
104 takes the given directory and recursively searches it for .deb files,
105 and reads the file list from each file. It then sorts and writes to stdout
106 the list of files matched to packages. Directories are not written to
107 the output. If multiple packages own the same file then each package is
108 separated by a comma in the output.</para>
109 <para>
110 The option <option>--db</option> can be used to specify a binary caching DB.</para></listitem>
111 </varlistentry>
112
113 <varlistentry><term>release</term>
114 <listitem><para>
115 The <literal>release</literal> command generates a Release file from a
3cb3fe76
DK
116 directory tree. It recursively searches the given directory for uncompressed
117 <filename>Packages</filename> and <filename>Sources</filename> files and the ones
118 compressed with <command>gzip</command>, <command>bzip2</command> or <command>lzma</command>
119 as well as <filename>Release</filename> and <filename>md5sum.txt</filename> files by default
120 (<literal>APT::FTPArchive::Release::Default-Patterns</literal>). Additional filename patterns
121 can be added by listing them in <literal>APT::FTPArchive::Release::Patterns</literal>.
122 It then writes to stdout a Release file containing a MD5, SHA1 and SHA256 digest
24f6490f
AL
123 for each file.</para>
124 <para>
125 Values for the additional metadata fields in the Release file are
126 taken from the corresponding variables under
127 <literal>APT::FTPArchive::Release</literal>,
128 e.g. <literal>APT::FTPArchive::Release::Origin</literal>. The supported fields
129 are: <literal>Origin</literal>, <literal>Label</literal>, <literal>Suite</literal>,
130 <literal>Version</literal>, <literal>Codename</literal>, <literal>Date</literal>,
c99e48ec
DK
131 <literal>Valid-Until</literal>, <literal>Architectures</literal>,
132 <literal>Components</literal>, <literal>Description</literal>.</para></listitem>
24f6490f
AL
133
134 </varlistentry>
135
136 <varlistentry><term>generate</term>
137 <listitem><para>
138 The <literal>generate</literal> command is designed to be runnable from a cron script and
139 builds indexes according to the given config file. The config language
140 provides a flexible means of specifying which index files are built from
141 which directories, as well as providing a simple means of maintaining the
142 required settings.</para></listitem>
143 </varlistentry>
144
145 <varlistentry><term>clean</term>
146 <listitem><para>
147 The <literal>clean</literal> command tidies the databases used by the given
148 configuration file by removing any records that are no longer necessary.</para></listitem>
149 </varlistentry>
150 </variablelist>
151 </refsect1>
152
153 <refsect1><title>The Generate Configuration</title>
154 <para>
155 The <literal>generate</literal> command uses a configuration file to describe the
156 archives that are going to be generated. It follows the typical ISC
157 configuration format as seen in ISC tools like bind 8 and dhcpd.
158 &apt-conf; contains a description of the syntax. Note that the generate
159 configuration is parsed in sectional manner, but &apt-conf; is parsed in a
160 tree manner. This only effects how the scope tag is handled.</para>
161
162 <para>
163 The generate configuration has 4 separate sections, each described below.</para>
164
165 <refsect2><title>Dir Section</title>
166 <para>
167 The <literal>Dir</literal> section defines the standard directories needed to
168 locate the files required during the generation process. These
5f4331c4 169 directories are prepended certain relative paths defined in later
24f6490f
AL
170 sections to produce a complete an absolute path.</para>
171 <variablelist>
172 <varlistentry><term>ArchiveDir</term>
173 <listitem><para>
174 Specifies the root of the FTP archive, in a standard
175 Debian configuration this is the directory that contains the
176 <filename>ls-LR</filename> and dist nodes.</para></listitem>
177 </varlistentry>
178
179 <varlistentry><term>OverrideDir</term>
180 <listitem><para>
181 Specifies the location of the override files.</para></listitem>
182 </varlistentry>
183
184 <varlistentry><term>CacheDir</term>
185 <listitem><para>
186 Specifies the location of the cache files</para></listitem>
187 </varlistentry>
188
189 <varlistentry><term>FileListDir</term>
190 <listitem><para>
191 Specifies the location of the file list files,
192 if the <literal>FileList</literal> setting is used below.</para></listitem>
193 </varlistentry>
194 </variablelist>
195 </refsect2>
196
197 <refsect2><title>Default Section</title>
198 <para>
199 The <literal>Default</literal> section specifies default values, and settings
200 that control the operation of the generator. Other sections may override
201 these defaults with a per-section setting.</para>
202 <variablelist>
203 <varlistentry><term>Packages::Compress</term>
204 <listitem><para>
205 Sets the default compression schemes to use
206 for the Package index files. It is a string that contains a space
207 separated list of at least one of: '.' (no compression), 'gzip' and
208 'bzip2'. The default for all compression schemes is '. gzip'.</para></listitem>
209 </varlistentry>
210
211 <varlistentry><term>Packages::Extensions</term>
212 <listitem><para>
213 Sets the default list of file extensions that are package files.
214 This defaults to '.deb'.</para></listitem>
215 </varlistentry>
216
217 <varlistentry><term>Sources::Compress</term>
218 <listitem><para>
219 This is similar to <literal>Packages::Compress</literal>
220 except that it controls the compression for the Sources files.</para></listitem>
221 </varlistentry>
222
223 <varlistentry><term>Sources::Extensions</term>
224 <listitem><para>
225 Sets the default list of file extensions that are source files.
226 This defaults to '.dsc'.</para></listitem>
227 </varlistentry>
228
229 <varlistentry><term>Contents::Compress</term>
230 <listitem><para>
231 This is similar to <literal>Packages::Compress</literal>
232 except that it controls the compression for the Contents files.</para></listitem>
233 </varlistentry>
34f1d96c
DK
234
235 <varlistentry><term>Translation::Compress</term>
236 <listitem><para>
237 This is similar to <literal>Packages::Compress</literal>
238 except that it controls the compression for the Translation-en master file.</para></listitem>
239 </varlistentry>
240
24f6490f
AL
241 <varlistentry><term>DeLinkLimit</term>
242 <listitem><para>
243 Specifies the number of kilobytes to delink (and
244 replace with hard links) per run. This is used in conjunction with the
245 per-section <literal>External-Links</literal> setting.</para></listitem>
246 </varlistentry>
247
248 <varlistentry><term>FileMode</term>
249 <listitem><para>
250 Specifies the mode of all created index files. It
251 defaults to 0644. All index files are set to this mode with no regard
252 to the umask.</para></listitem>
253 </varlistentry>
34f1d96c
DK
254
255 <varlistentry><term>LongDescription</term>
256 <listitem><para>
257 Sets if long descriptions should be included in the Packages file or split
258 out into a master Translation-en file.</para></listitem>
259 </varlistentry>
24f6490f
AL
260 </variablelist>
261 </refsect2>
262
263 <refsect2><title>TreeDefault Section</title>
264 <para>
265 Sets defaults specific to <literal>Tree</literal> sections. All of these
266 variables are substitution variables and have the strings $(DIST),
267 $(SECTION) and $(ARCH) replaced with their respective values.</para>
268
269 <variablelist>
270 <varlistentry><term>MaxContentsChange</term>
271 <listitem><para>
272 Sets the number of kilobytes of contents
273 files that are generated each day. The contents files are round-robined
274 so that over several days they will all be rebuilt.</para></listitem>
275 </varlistentry>
276
277 <varlistentry><term>ContentsAge</term>
278 <listitem><para>
279 Controls the number of days a contents file is allowed
280 to be checked without changing. If this limit is passed the mtime of the
281 contents file is updated. This case can occur if the package file is
282 changed in such a way that does not result in a new contents file
283 [override edit for instance]. A hold off is allowed in hopes that new
284 .debs will be installed, requiring a new file anyhow. The default is 10,
285 the units are in days.</para></listitem>
286 </varlistentry>
287
288 <varlistentry><term>Directory</term>
289 <listitem><para>
290 Sets the top of the .deb directory tree. Defaults to
291 <filename>$(DIST)/$(SECTION)/binary-$(ARCH)/</filename></para></listitem>
292 </varlistentry>
293
294 <varlistentry><term>SrcDirectory</term>
295 <listitem><para>
296 Sets the top of the source package directory tree. Defaults to
297 <filename>$(DIST)/$(SECTION)/source/</filename></para></listitem>
298 </varlistentry>
299
300 <varlistentry><term>Packages</term>
301 <listitem><para>
302 Sets the output Packages file. Defaults to
303 <filename>$(DIST)/$(SECTION)/binary-$(ARCH)/Packages</filename></para></listitem>
304 </varlistentry>
305
306 <varlistentry><term>Sources</term>
307 <listitem><para>
c6474fb6 308 Sets the output Sources file. Defaults to
24f6490f
AL
309 <filename>$(DIST)/$(SECTION)/source/Sources</filename></para></listitem>
310 </varlistentry>
4e794c50
DK
311
312 <varlistentry><term>Translation</term>
313 <listitem><para>
314 Set the output Translation-en master file with the long descriptions if they
315 should be not included in the Packages file. Defaults to
316 <filename>$(DIST)/$(SECTION)/i18n/Translation-en</filename></para></listitem>
4e794c50
DK
317 </varlistentry>
318
24f6490f
AL
319 <varlistentry><term>InternalPrefix</term>
320 <listitem><para>
321 Sets the path prefix that causes a symlink to be
322 considered an internal link instead of an external link. Defaults to
323 <filename>$(DIST)/$(SECTION)/</filename></para></listitem>
324 </varlistentry>
325
326 <varlistentry><term>Contents</term>
327 <listitem><para>
328 Sets the output Contents file. Defaults to
329 <filename>$(DIST)/Contents-$(ARCH)</filename>. If this setting causes multiple
330 Packages files to map onto a single Contents file (such as the default)
331 then <command>apt-ftparchive</command> will integrate those package files
332 together automatically.</para></listitem>
333 </varlistentry>
334
335 <varlistentry><term>Contents::Header</term>
336 <listitem><para>
337 Sets header file to prepend to the contents output.</para></listitem>
338 </varlistentry>
339
340 <varlistentry><term>BinCacheDB</term>
341 <listitem><para>
342 Sets the binary cache database to use for this
343 section. Multiple sections can share the same database.</para></listitem>
344 </varlistentry>
345
346 <varlistentry><term>FileList</term>
347 <listitem><para>
348 Specifies that instead of walking the directory tree,
349 <command>apt-ftparchive</command> should read the list of files from the given
350 file. Relative files names are prefixed with the archive directory.</para></listitem>
351 </varlistentry>
352
353 <varlistentry><term>SourceFileList</term>
354 <listitem><para>
355 Specifies that instead of walking the directory tree,
356 <command>apt-ftparchive</command> should read the list of files from the given
357 file. Relative files names are prefixed with the archive directory.
e3a1f08d 358 This is used when processing source indexes.</para></listitem>
24f6490f
AL
359 </varlistentry>
360 </variablelist>
361 </refsect2>
362
363 <refsect2><title>Tree Section</title>
364 <para>
365 The <literal>Tree</literal> section defines a standard Debian file tree which
366 consists of a base directory, then multiple sections in that base
367 directory and finally multiple Architectures in each section. The exact
368 pathing used is defined by the <literal>Directory</literal> substitution variable.</para>
369 <para>
370 The <literal>Tree</literal> section takes a scope tag which sets the
371 <literal>$(DIST)</literal> variable and defines the root of the tree
372 (the path is prefixed by <literal>ArchiveDir</literal>).
e1dd65c9 373 Typically this is a setting such as <filename>dists/&stable-codename;</filename>.</para>
24f6490f
AL
374 <para>
375 All of the settings defined in the <literal>TreeDefault</literal> section can be
376 use in a <literal>Tree</literal> section as well as three new variables.</para>
377 <para>
378 When processing a <literal>Tree</literal> section <command>apt-ftparchive</command>
379 performs an operation similar to:
f8b832bd 380 <programlisting>
24f6490f
AL
381for i in Sections do
382 for j in Architectures do
383 Generate for DIST=scope SECTION=i ARCH=j
f8b832bd 384 </programlisting></para>
24f6490f
AL
385
386 <variablelist>
387 <varlistentry><term>Sections</term>
388 <listitem><para>
389 This is a space separated list of sections which appear
390 under the distribution, typically this is something like
391 <literal>main contrib non-free</literal></para></listitem>
392 </varlistentry>
393
394 <varlistentry><term>Architectures</term>
395 <listitem><para>
396 This is a space separated list of all the
397 architectures that appear under search section. The special architecture
398 'source' is used to indicate that this tree has a source archive.</para></listitem>
399 </varlistentry>
4e794c50
DK
400
401 <varlistentry><term>LongDescription</term>
402 <listitem><para>
403 Sets if long descriptions should be included in the Packages file or split
404 out into a master Translation-en file.</para></listitem>
405 </varlistentry>
406
24f6490f
AL
407 <varlistentry><term>BinOverride</term>
408 <listitem><para>
409 Sets the binary override file. The override file
410 contains section, priority and maintainer address information.</para></listitem>
411 </varlistentry>
412
413 <varlistentry><term>SrcOverride</term>
414 <listitem><para>
415 Sets the source override file. The override file
416 contains section information.</para></listitem>
417 </varlistentry>
418
419 <varlistentry><term>ExtraOverride</term>
420 <listitem><para>
421 Sets the binary extra override file.</para></listitem>
422 </varlistentry>
423
424 <varlistentry><term>SrcExtraOverride</term>
425 <listitem><para>
426 Sets the source extra override file.</para></listitem>
427 </varlistentry>
428 </variablelist>
429 </refsect2>
430
431 <refsect2><title>BinDirectory Section</title>
432 <para>
433 The <literal>bindirectory</literal> section defines a binary directory tree
434 with no special structure. The scope tag specifies the location of
435 the binary directory and the settings are similar to the <literal>Tree</literal>
436 section with no substitution variables or
437 <literal>Section</literal><literal>Architecture</literal> settings.</para>
438 <variablelist>
439 <varlistentry><term>Packages</term>
440 <listitem><para>
441 Sets the Packages file output.</para></listitem>
442 </varlistentry>
443
168e1e4e 444 <varlistentry><term>Sources</term>
24f6490f
AL
445 <listitem><para>
446 Sets the Sources file output. At least one of
168e1e4e 447 <literal>Packages</literal> or <literal>Sources</literal> is required.</para></listitem>
24f6490f
AL
448 </varlistentry>
449
450 <varlistentry><term>Contents</term>
451 <listitem><para>
452 Sets the Contents file output. (optional)</para></listitem>
453 </varlistentry>
454
455 <varlistentry><term>BinOverride</term>
456 <listitem><para>
457 Sets the binary override file.</para></listitem>
458 </varlistentry>
459
460 <varlistentry><term>SrcOverride</term>
461 <listitem><para>
462 Sets the source override file.</para></listitem>
463 </varlistentry>
464
465 <varlistentry><term>ExtraOverride</term>
466 <listitem><para>
467 Sets the binary extra override file.</para></listitem>
468 </varlistentry>
469
470 <varlistentry><term>SrcExtraOverride</term>
471 <listitem><para>
472 Sets the source extra override file.</para></listitem>
473 </varlistentry>
474
475 <varlistentry><term>BinCacheDB</term>
476 <listitem><para>
477 Sets the cache DB.</para></listitem>
478 </varlistentry>
479
480 <varlistentry><term>PathPrefix</term>
481 <listitem><para>
482 Appends a path to all the output paths.</para></listitem>
483 </varlistentry>
484
485 <varlistentry><term>FileList, SourceFileList</term>
486 <listitem><para>
487 Specifies the file list file.</para></listitem>
488 </varlistentry>
489 </variablelist>
490 </refsect2>
491 </refsect1>
492
493
494 <refsect1><title>The Binary Override File</title>
495 <para>The binary override file is fully compatible with &dpkg-scanpackages;. It
496 contains 4 fields separated by spaces. The first field is the package name,
497 the second is the priority to force that package to, the third is the
498 the section to force that package to and the final field is the maintainer
499 permutation field.</para>
500 <para>The general form of the maintainer field is:
501 <literallayout>old [// oldn]* => new</literallayout>
502 or simply,
503 <literallayout>new</literallayout>
504 The first form allows a double-slash separated list of old email addresses
505 to be specified. If any of those are found then new is substituted for the
506 maintainer field. The second form unconditionally substitutes the
507 maintainer field.</para>
508 </refsect1>
509
510
511 <refsect1><title>The Source Override File</title>
512 <para>
513 The source override file is fully compatible with &dpkg-scansources;. It
514 contains 2 fields separated by spaces. The first fields is the source
515 package name, the second is the section to assign it.</para>
516 </refsect1>
517
518 <refsect1><title>The Extra Override File</title>
519 <para>
520 The extra override file allows any arbitrary tag to be added or replaced
521 in the output. It has 3 columns, the first is the package, the second is
522 the tag and the remainder of the line is the new value.</para>
523 </refsect1>
524
525 <refsect1><title>options</title>
526 &apt-cmdblurb;
527
528 <variablelist>
3c54407f 529 <varlistentry><term><option>--md5</option>, <option>--sha1</option>, <option>--sha256</option></term>
24f6490f 530 <listitem><para>
3c54407f
DK
531 Generate the given checksum. These options default to on, when turned off the generated
532 index files will not have the checksum fields where possible.
533 Configuration Items: <literal>APT::FTPArchive::<replaceable>Checksum</replaceable></literal> and
534 <literal>APT::FTPArchive::<replaceable>Index</replaceable>::<replaceable>Checksum</replaceable></literal> where
1fc8c922
MV
535 <literal><replaceable>Index</replaceable></literal> can be <literal>Packages</literal>, <literal>Sources</literal> or
536 <literal>Release</literal> and <literal><replaceable>Checksum</replaceable></literal> can be <literal>MD5</literal>,
537 <literal>SHA1</literal> or <literal>SHA256</literal>.</para></listitem>
24f6490f
AL
538 </varlistentry>
539
540 <varlistentry><term><option>-d</option></term><term><option>--db</option></term>
541 <listitem><para>
542 Use a binary caching DB. This has no effect on the generate command.
543 Configuration Item: <literal>APT::FTPArchive::DB</literal>.</para></listitem>
544 </varlistentry>
545
546 <varlistentry><term><option>-q</option></term><term><option>--quiet</option></term>
547 <listitem><para>
548 Quiet; produces output suitable for logging, omitting progress indicators.
549 More q's will produce more quiet up to a maximum of 2. You can also use
550 <option>-q=#</option> to set the quiet level, overriding the configuration file.
551 Configuration Item: <literal>quiet</literal>.</para></listitem>
552 </varlistentry>
553
554 <varlistentry><term><option>--delink</option></term>
555 <listitem><para>
556 Perform Delinking. If the <literal>External-Links</literal> setting is used then
557 this option actually enables delinking of the files. It defaults to on and
558 can be turned off with <option>--no-delink</option>.
559 Configuration Item: <literal>APT::FTPArchive::DeLinkAct</literal>.</para></listitem>
560 </varlistentry>
561
562 <varlistentry><term><option>--contents</option></term>
563 <listitem><para>
564 Perform contents generation. When this option is set and package indexes
565 are being generated with a cache DB then the file listing will also be
566 extracted and stored in the DB for later use. When using the generate
567 command this option also allows the creation of any Contents files. The
568 default is on.
569 Configuration Item: <literal>APT::FTPArchive::Contents</literal>.</para></listitem>
570 </varlistentry>
571
572 <varlistentry><term><option>-s</option></term><term><option>--source-override</option></term>
573 <listitem><para>
574 Select the source override file to use with the <literal>sources</literal> command.
575 Configuration Item: <literal>APT::FTPArchive::SourceOverride</literal>.</para></listitem>
576 </varlistentry>
577
578 <varlistentry><term><option>--readonly</option></term>
579 <listitem><para>
580 Make the caching databases read only.
581 Configuration Item: <literal>APT::FTPArchive::ReadOnlyDB</literal>.</para></listitem>
31981076
DK
582 </varlistentry>
583
584 <varlistentry><term><option>-a</option></term><term><option>--arch</option></term>
585 <listitem><para>Accept in the <literal>packages</literal> and <literal>contents</literal>
586 commands only package files matching <literal>*_arch.deb</literal> or
587 <literal>*_all.deb</literal> instead of all package files in the given path.
588 Configuration Item: <literal>APT::FTPArchive::Architecture</literal>.</para></listitem>
589 </varlistentry>
9c24493f 590
ff574e76
DK
591 <varlistentry><term><option>APT::FTPArchive::AlwaysStat</option></term>
592 <listitem><para>
31981076 593 &apt-ftparchive; caches as much as possible of metadata in a cachedb. If packages
ff574e76
DK
594 are recompiled and/or republished with the same version again, this will lead to problems
595 as the now outdated cached metadata like size and checksums will be used. With this option
596 enabled this will no longer happen as it will be checked if the file was changed.
597 Note that this option is set to "<literal>false</literal>" by default as it is not recommend
598 to upload multiply versions/builds of a package with the same versionnumber, so in theory
599 nobody will have these problems and therefore all these extra checks are useless.
600 </para></listitem>
601 </varlistentry>
602
9c24493f
DK
603 <varlistentry><term><option>APT::FTPArchive::LongDescription</option></term>
604 <listitem><para>
605 This configuration option defaults to "<literal>true</literal>" and should only be set to
606 <literal>"false"</literal> if the Archive generated with &apt-ftparchive; also provides
4e794c50
DK
607 <filename>Translation</filename> files. Note that the <filename>Translation-en</filename>
608 master file can only be created in the generate command.
9c24493f
DK
609 </para></listitem>
610 </varlistentry>
611
24f6490f
AL
612 &apt-commonoptions;
613
614 </variablelist>
615 </refsect1>
616
617<refsect1><title>Examples</title>
618
619<para>To create a compressed Packages file for a directory containing
620binary packages (.deb):
621
622<programlisting>
623<command>apt-ftparchive</command> packages <replaceable>directory</replaceable> | <command>gzip</command> > <filename>Packages.gz</filename>
624</programlisting></para>
625
626</refsect1>
627
628 <refsect1><title>See Also</title>
629 <para>&apt-conf;</para>
630 </refsect1>
631
632 <refsect1><title>Diagnostics</title>
633 <para><command>apt-ftparchive</command> returns zero on normal operation, decimal 100 on error.</para>
634 </refsect1>
635
636 &manbugs;
24f6490f
AL
637
638</refentry>