Differences between revisions 11 and 12
Revision 11 as of 2009-03-16 03:33:18
Size: 4696
Editor: anonymous
Comment: converted to 1.6 markup
Revision 12 as of 2009-04-06 19:51:44
Size: 4802
Editor: ?MathieuParent
Comment: link to dpkg-source(1) manpage
Deletions are marked like this. Additions are marked like this.
Line 73: Line 73:
To create a new source package, simply take an existing package and rebuild it after having put "3.0 (quilt)" or "3.0 (native)" in the file debian/source/format (see dpkg-source(1) for more information). To create a new source package, simply take an existing package and rebuild it after having put "3.0 (quilt)" or "3.0 (native)" in the file debian/source/format (see [[http://manpages.debian.net/cgi-bin/man.cgi?query=dpkg-source&sektion=1&manpath=Debian+Sid&format=html|dpkg-source(1)]] for more information).

Summary

This pages summarizes information concerning the switch to the new source package formats "3.0 (quilt)" and "3.0 (native)". This switch is planned to happen early in the squeeze development cycle.

Advantages of new formats

  • Supports bzip2 and lzma along with the usual gzip.
  • Supports multiple upstream tarballs.
  • Supports inclusion of binary files (no need anymore to uuencode a Debian specific PNG icon for example)
  • You don't have to repack the upstream tarball to strip the debian directory. (The debian directory is automatically replaced by the content of the  .debian.tar.{gz,bz2,lzma}  file at unpack time)

  • Debian-specific changes are no more stored in a single .diff.gz but in multiple patches in debian/patches/. It is compatible with quilt (hence its name) but does not require its usage as dpkg-source is able to do everything needed by itself. It applies patches at extraction time and update the patch series at build time.

  • NMU workflow is now really: unpack, hack, rebuild (for all 3.0 (quilt) packages).

Implementation

  • Lenny's dpkg has all the support for the new source formats. This is to avoid problems when working in Lenny with Squeeze source packages.
  • DAK (Debian Archive Kit) has to be updated to cope with new source package formats. A first patch has been submitted. The status of this is tracked in the bug #457345.

  • dpkg-source should be modified to build new source packages by default. But this can only be done when all packages are known to build fine with the new formats. This is tracked in the BTS with usertags: http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=hertzog@debian.org;tag=3.0-quilt-by-default

Validation of all tools with new source formats

For all applications, please be sure to test the 3 important cases:

  • 3.0 (native)
  • 3.0 (quilt)
  • 3.0 (quilt) with multiple upstream tarballs

It's also interesting to test with various compressions methods (gz, bz2, lzma).

<!> How to help: create an APT repo with sample source packages covering all cases.

  • lintian
    • Ready except for source packages with multiple tarballs.

  • apt-get source / aptitude source
    • Not tested yet.

  • svn-buildpackage
  • bzr-buildpackage
    • Not tested yet.

  • git-buildpackage
    • Not tested yet.

  • hg-buildpackage
    • Assumes that upstream source is a single .tar.gz.
    • Depends on tar recognising which compression method is used when importing an upstream tarball.
  • dput
    • Not tested yet.

  • dupload
    • Not tested yet.

  • pbuilder
    • Not tested yet.

  • approx
    • Not tested yet.

  • reprepro
  • reprepro's changestool
    • works, but extracing Section and priority from .debian.lzma only since 3.9.0
  • debmirror
    • Not tested yet.

  • devscripts uscan and uupdate
    • Wishlist: handle multiple upstream tarballs.
  • other devscripts tools ?
  • DEHS
  • What else should we check ?

Please try using new source packages with all your usual tools (in particular if you maintain them) and file bugs if you encounter problems and usertag them appropriately (user hertzog@debian.org / tag 3.0-quilt-by-default). Also update the list above with any relevant information (including pointers to bugs).

FAQ

How to build a new source package ?

To create a new source package, simply take an existing package and rebuild it after having put "3.0 (quilt)" or "3.0 (native)" in the file debian/source/format (see dpkg-source(1) for more information).

How to use multiple upstream tarball in 3.0 (quilt) format ?

Simply put a file  <source>_<version>.orig-<component>.tar.{gz,bz2,lzma}  near the traditional  .orig  tarball. The content of that tarball should also be already unpacked in the  component  subdir of the unpacked source package. The next  dpkg-source -b  will pick it up automatically.

Why aren't -p0 patch supported in 3.0 (quilt) format ?

See sub-thread starting here.


CategorySpec