4696
Comment: converted to 1.6 markup
|
4802
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). |
Contributors: RaphaelHertzog
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.
(two examples can be found in "http://people.debian.org/~brlink/v3test test main")
- lintian
Ready except for source packages with multiple tarballs.
- apt-get source / aptitude source
Not tested yet.
- svn-buildpackage
Not working yet: http://lists.debian.org/debian-devel/2009/03/msg00353.html
- 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
works (at least with the examples in http://people.debian.org/~brlink/v3test)
- 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
No, and won't until DEHS2 -- RaphaelGeissert
- 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.