~mvo/apt/dep8

1327.1.25 by Matt Zimmerman
Merge apt--authentication--0
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
1561.45.3 by David Kalnischkies
* doc/apt.ent:
8
<!ENTITY % aptverbatiment SYSTEM "apt-verbatim.ent">
9
%aptverbatiment;
10
1327.1.25 by Matt Zimmerman
Merge apt--authentication--0
11
]>
12
13
<refentry>
14
15
 <refentryinfo>
16
   &apt-author.jgunthorpe;
17
   &apt-author.team;
18
   &apt-email;
19
   &apt-product;
20
   <!-- The last update date -->
1561.18.47 by David Kalnischkies
Add APT::FTPArchive::LongDescription to disable the inclusion of the
21
   <date>17 August 2009</date>
1327.1.25 by Matt Zimmerman
Merge apt--authentication--0
22
 </refentryinfo>
23
 
24
 <refmeta>
25
   <refentrytitle>apt-ftparchive</refentrytitle>
26
   <manvolnum>1</manvolnum>
1561.15.1 by David Kalnischkies
[ Nicolas François ]
27
   <refmiscinfo class="manual">APT</refmiscinfo>
1327.1.25 by Matt Zimmerman
Merge apt--authentication--0
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>
1561.23.3 by David Kalnischkies
- add --arch option for apt-ftparchive packages and contents commands
45
      <arg><option>--arch <replaceable>architecture</replaceable></option></arg>
1561.4.207 by bubulle at debian
Fix ftp(archive(1) documentation of -o
46
      <arg><option>-o <replaceable>config</replaceable>=<replaceable>string</replaceable></option></arg>
1327.1.25 by Matt Zimmerman
Merge apt--authentication--0
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
1561.51.50 by David Kalnischkies
* ftparchive/writer.cc:
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
1327.1.25 by Matt Zimmerman
Merge apt--authentication--0
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>,
1561.28.5 by David Kalnischkies
* ftparchive/writer.cc:
131
     <literal>Valid-Until</literal>, <literal>Architectures</literal>,
132
     <literal>Components</literal>, <literal>Description</literal>.</para></listitem>
1327.1.25 by Matt Zimmerman
Merge apt--authentication--0
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 
1561.18.23 by David Kalnischkies
correct various errors, typos and oddities in the manpages
169
     directories are prepended certain relative paths defined in later 
1327.1.25 by Matt Zimmerman
Merge apt--authentication--0
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>
1561.21.30 by David Kalnischkies
Switch the TranslationWriter to use MultiCompress to be able to generate
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
1327.1.25 by Matt Zimmerman
Merge apt--authentication--0
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>
1561.21.30 by David Kalnischkies
Switch the TranslationWriter to use MultiCompress to be able to generate
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>
1327.1.25 by Matt Zimmerman
Merge apt--authentication--0
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>
1561.18.59 by David Kalnischkies
fix a few typos in strings, comments and manpage of apt-ftparchive
308
      Sets the output Sources file. Defaults to 
1327.1.25 by Matt Zimmerman
Merge apt--authentication--0
309
      <filename>$(DIST)/$(SECTION)/source/Sources</filename></para></listitem>
310
      </varlistentry>
1561.21.29 by David Kalnischkies
Inclusion of Long Descriptions in the Packages files can be set now
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>
317
      </varlistentry>
318
1327.1.25 by Matt Zimmerman
Merge apt--authentication--0
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. 
1561.1.39 by bubulle at debian
Fix typos in manpages
358
      This is used when processing source indexes.</para></listitem>
1327.1.25 by Matt Zimmerman
Merge apt--authentication--0
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>).
1561.25.41 by David Kalnischkies
* doc/apt.ent
373
     Typically this is a setting such as <filename>dists/&stable-codename;</filename>.</para>
1327.1.25 by Matt Zimmerman
Merge apt--authentication--0
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:
1561.19.11 by David Kalnischkies
remove informalexample tag which hides the programlisting in the
380
     <programlisting>
1327.1.25 by Matt Zimmerman
Merge apt--authentication--0
381
for i in Sections do 
382
   for j in Architectures do
383
      Generate for DIST=scope SECTION=i ARCH=j
1561.19.11 by David Kalnischkies
remove informalexample tag which hides the programlisting in the
384
     </programlisting></para>
1327.1.25 by Matt Zimmerman
Merge apt--authentication--0
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>
1561.21.29 by David Kalnischkies
Inclusion of Long Descriptions in the Packages files can be set now
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
1327.1.25 by Matt Zimmerman
Merge apt--authentication--0
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
      
1416.1.79 by Michael Vogt
* merged documentation patch (debian #307756)
444
      <varlistentry><term>Sources</term>
1327.1.25 by Matt Zimmerman
Merge apt--authentication--0
445
      <listitem><para>
446
      Sets the Sources file output. At least one of
1416.1.79 by Michael Vogt
* merged documentation patch (debian #307756)
447
      <literal>Packages</literal> or <literal>Sources</literal> is required.</para></listitem>
1327.1.25 by Matt Zimmerman
Merge apt--authentication--0
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>
1561.61.2 by David Kalnischkies
add options to disable specific checksums for Indexes
529
     <varlistentry><term><option>--md5</option>, <option>--sha1</option>, <option>--sha256</option></term>
1327.1.25 by Matt Zimmerman
Merge apt--authentication--0
530
     <listitem><para>
1561.61.2 by David Kalnischkies
add options to disable specific checksums for Indexes
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
1561.53.73 by Michael Vogt
various typo and syntax corrections in doc/*.xml
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>
1327.1.25 by Matt Zimmerman
Merge apt--authentication--0
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>
1561.23.3 by David Kalnischkies
- add --arch option for apt-ftparchive packages and contents commands
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>
1561.18.47 by David Kalnischkies
Add APT::FTPArchive::LongDescription to disable the inclusion of the
590
1561.18.53 by David Kalnischkies
add APT::FTPArchive::AlwaysStat to disable the too aggressive
591
     <varlistentry><term><option>APT::FTPArchive::AlwaysStat</option></term>
592
     <listitem><para>
1561.23.3 by David Kalnischkies
- add --arch option for apt-ftparchive packages and contents commands
593
     &apt-ftparchive; caches as much as possible of metadata in a cachedb. If packages
1561.18.53 by David Kalnischkies
add APT::FTPArchive::AlwaysStat to disable the too aggressive
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
1561.18.47 by David Kalnischkies
Add APT::FTPArchive::LongDescription to disable the inclusion of the
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
1561.21.29 by David Kalnischkies
Inclusion of Long Descriptions in the Packages files can be set now
607
     <filename>Translation</filename> files. Note that the <filename>Translation-en</filename>
608
     master file can only be created in the generate command.
1561.18.47 by David Kalnischkies
Add APT::FTPArchive::LongDescription to disable the inclusion of the
609
     </para></listitem>
610
     </varlistentry>
611
1327.1.25 by Matt Zimmerman
Merge apt--authentication--0
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
620
binary 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;
637
 
638
</refentry>