[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ next ]

TDeb Specification
Chapter 1 - Format of binary translation packages (tdeb)

1.1 Summary

The tdeb binary package format is a variation of the deb binary package format. It has the same structure as deb, but the (single) data member is replaced by bzip2-compressed members for each LOCALE_ROOT supported.

1.2 Locale-root members

The new locale root data members are designed to support easier management of the translations, including allowing users to only install the translations that are needed for one particular installation.

e.g. a standard .deb contains debian-binary, control.tar.gz and data.tar.gz whereas a typical TDeb could contain:

t.pt.tar.bz2 would contain translations for pt and pt_BR:

This allows later tools to extract only the requested translations from the TDeb upon installation.

TDebs are based on the .deb format, it is only a small change in the organisation of the data.tar.gz but it simplifies various stages of handling the resulting packages in the repository, in upload rules and in other support tools.

1.3 Use of the .tdeb suffix

Various file-based tools exist to handle .deb files and it will be easier for such tools to be able to reliably tell the difference between a .deb and a .tdeb from the filename rather than having to add new support in the codebase to detect the absence of data.tar.gz and work out how to handle the t.$root.bz2 members. The suffix also makes it easier to manage TDebs in various repository situations. Although closely related to the .deb format, the .tdeb format is sufficiently different to merit a subtle change to the suffix in a similar manner to .udeb.

1.4 Format specification

The file is an ar archive with a magic number of !<arch>.

The first member is named debian-binary and contains a series of lines, separated by newlines. Currently only one line is present, the format version number, 2.0 at the time the original dpkg manual page was written. Programs which read new-format archives should be prepared for the minor number to be increased and new lines to be present, and should ignore these if this is the case.

If the major 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.

The second required member is named control.tar.bz2. It is a tar archive compressed with bzip2 which contains the package control information, as a series of plain files, of which the file control is mandatory and contains the core control information. The control tarball may optionally contain an entry for '.', the current directory.

The members following the control.tar.bz2 are named t.${LOCALE_ROOT}.tar.bz2. Each contains the filesystem archive for the locale root, as a tar archive compressed with bzip2.

LOCALE_ROOT must match the regular expression [a-z]{2,3}

These members must occur in this exact order. Current implementations should ignore any additional members after the t.${LOCALE_ROOT}.tar.bz2 members. Further members may be defined in the future, and (if possible) will be placed after these. Any additional members that may need to be inserted before t.${LOCALE_ROOT}.tar.bz2 and which should be safely ignored by older programs, will have names starting with an underscore, '_'.

Those new members which will not be able to be safely ignored will be inserted before the t.${LOCALE_ROOT}.tar.bz2 members with names starting with something other than underscores, or will (more likely) cause the major version number to be increased.

[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ next ]

TDeb Specification


Neil Williams codehelp@debian.org
Joerg Jaspert joerg@debian.org
Mark Hymers mhy@debian.org
Frank Lichtenheld djpig@debian.org