# dpkg manual page - dpkg-scanpackages(1)
#
# Copyright © 1996 Michael Shields <shields@crosslink.net>
# Copyright © 2006 Frank Lichtenheld <djpig@debian.org>
# Copyright © 2007, 2009, 2011-2014 Guillem Jover <guillem@debian.org>
# Copyright © 2009 Raphaël Hertzog <hertzog@debian.org>
#
# This is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.

=encoding utf8

=head1 NAME

dpkg-scanpackages - create Packages index files

=head1 SYNOPSIS

B<dpkg-scanpackages>
[I<option>...] I<binary-path>
[I<override-file>
[I<path-prefix>]]
B<E<gt>>
I<Packages>

=head1 DESCRIPTION

B<dpkg-scanpackages>
sorts through a tree of Debian binary packages and creates a Packages
file, used by
L<apt(8)>,
L<dselect(1)>,
etc, to tell the user what packages are available for installation.
These
Packages files are the same as those found on Debian archive sites
and media discs.
You might use
B<dpkg-scanpackages>
yourself if making a directory of local packages to install on a cluster
of machines.

B<Note>:
If you want to access the generated Packages file with
L<apt(8)>
you will probably need to compress the file with
L<xz(1)>
(generating a Packages.xz file),
L<bzip2(1)>
(generating a Packages.bz2 file) or
L<gzip(1)>
(generating a Packages.gz file).
L<apt(8)>
ignores uncompressed Packages files except on local access (i.e.
B<file://>
sources).

I<binary-path>
is the name of the tree of the binary packages to process (for example,
B<contrib/binary-i386>).
It is best to make this relative to the root of the Debian archive,
because every Filename field in the new Packages file will start with
this string.

I<override-file>
is the name of a file to read which contains information about how the
package fits into the distribution (the file can be compressed
since dpkg 1.15.5); see
L<deb-override(5)>.

I<path-prefix>
is an optional string to be prepended to the Filename fields.

If more than one version of a package is found only the newest one
is included in the output.
If they have the same version and only
differ in architecture only the first one found is used.

=head1 OPTIONS

=over

=item B<-t>, B<--type> I<type>

Scan for *.I<type> packages, instead of *.deb.

=item B<-e>, B<--extra-override> I<file>

Scan I<file> to find supplementary overrides (the file can be
compressed since dpkg 1.15.5).
See
L<deb-extra-override(5)>
for more information on its format.

=item B<-a>, B<--arch> I<arch>

Use a pattern consisting of I<*_all.deb> and I<*_arch.deb> instead of
scanning for all debs.

=item B<-h>, B<--hash> I<hash-list>

Only generate file hashes for the comma-specified list specified
(since dpkg 1.17.14).
The default is to generate all currently supported hashes.
Supported values: B<md5>, B<sha1>, B<sha256>.

=item B<-m>, B<--multiversion>

Include all found packages in the output.

=item B<-M>, B<--medium> I<id-string>

Add an B<X-Medium> field containing the value I<id-string>
(since dpkg 1.15.5).
This field is required if you want to generate B<Packages.cd> files
for use by the B<media> access method of B<dselect>.

=item B<-?>, B<--help>

Show the usage message and exit.

=item B<--version>

Show the version and exit.

=back

=head1 ENVIRONMENT

=over

=item B<DPKG_COLORS>

Sets the color mode (since dpkg 1.18.5).
The currently accepted values are: B<auto> (default), B<always> and
B<never>.

=item B<DPKG_NLS>

If set, it will be used to decide whether to activate Native Language Support,
also known as internationalization (or i18n) support (since dpkg 1.19.0).
The accepted values are: B<0> and B<1> (default).

=back

=head1 DIAGNOSTICS

B<dpkg-scanpackages>
outputs the usual self-explanatory errors.
It also warns about packages
that are in the wrong subdirectory, are duplicated, have a Filename
field in their control file, are missing from the override file, or have
maintainer substitutions which do not take effect.

=head1 SEE ALSO

L<dpkg(1)>,
L<dselect(1)>,
L<deb-override(5)>,
L<deb-extra-override(5)>,
L<dpkg-scansources(1)>.
