# dpkg manual page - deb-split(5)
#
# Copyright © 2009-2012 Guillem Jover <guillem@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

deb-split - Debian multi-part binary package format

=head1 SYNOPSIS

I<filename>B<.deb>

=head1 DESCRIPTION

The multi-part B<.deb> format is used to split big packages into smaller
pieces to ease transport in small media.

=head1 FORMAT

The file is an B<ar> archive with a magic value of B<!E<lt>archE<gt>>.
The file names might contain a trailing slash (since dpkg 1.15.6).

The B<ar> archive is composed of multiple members in a specific order:

=over

=item B<debian-split>

The first required member contains a series of lines, separated by newlines.
Currently eight lines are present:

=over

=item *

The format version number, B<2.1> at the time this manual page was
written.

=item *

The package name.

=item *

The package version.

=item *

The md5sum of the package.

=item *

The total size of the package.

=item *

The maximum part size.

=item *

The current part number, followed by a slash and the total amount of
parts (as in ‘1/10’).

=item *

The package architecture (since dpkg 1.16.1).

=back

Programs which read multi-part archives should be prepared for the minor
format version number to be increased and additional lines to be present,
and should ignore these if this is the case.

If the major format version number has changed, an incompatible change has
been made and the program should stop.
If it has not, then the program should
be able to safely continue, unless it encounters an unexpected member
in the archive (except at the end), as described below.

=item B<data.>I<N>

The second, last required member,
where I<N> denotes the part number.
It contains the raw part data.

=back

These members must occur in this exact order.
Current implementations
should ignore any additional members after B<data.>I<N>.
Further members may be defined in the future, and (if possible) will be
placed after these two.

=head1 SEE ALSO

L<deb(5)>,
L<dpkg-split(1)>.
