[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#485165: glibc: FTBFS when converted to new source format 3.0 (quilt): patch files contained in tarballs



Package: glibc
Version: 2.7-11
Severity: wishlist
Usertags: 3.0-quilt-by-default

To prepare a possible switch to the new source package format "3.0
(quilt)" [1], I converted all source packages and tried to rebuild them.
Unfortunately, glibc failed, you can try yourself with those
commands (and dpkg-dev >= 1.14.19 [2]) :

$ apt-get source glibc
$ sed -i -e '/^Source:/ aFormat: 3.0 (quilt)' glibc-2.7/debian/control
$ dpkg-source -b glibc-2.7
$ dpkg-source -x glibc_2.7-11.dsc
$ cd glibc-2.7 && debuild -us -uc

In this process, if the .diff.gz contains changes to upstream files,
dpkg-source will have created a corresponding patch in
debian/patches/debian-changes-2.7-11 and will have registered that
patch in a quilt series (debian/patches/series, it is created if needed).
All the patches listed in the "series" file are applied directly during
the extraction (dpkg-source -x). quilt itself is used if available (and
will thus lead to the creation of the .pc directory), otherwise
dpkg-source applies the patches by itself. For more information about the
new source package format see the manual page dpkg-source(1).

In the case of glibc, the quilt series is only applicable
after extraction of a tarball/zipfile/jarfile. But dpkg-source
tries to apply the quilt series immediately after unpack 
and will thus fail.

In several cases the usage of tarball(s) in tarball is justified by the
fact that several upstream tarballs have to be combined. The new format
does support unpacking of multiple upstream tarballs and as such, you
probably want to defer fixing this bug until the new format is accepted
and directly make usage of this new feature.

If your package only contains a single tarball, you might want to
reconsider the choice of using a tarball inside a tarball and 
handle the build like do most other Debian packages.

In all cases, those are heavy changes for a simple wishlist bug and
I can understand that you don't fix this until after lenny's release.
I'm merely filing this bug to keep track of the packages that will cause
troubles when we switch to the new format.


As a side note, you must also pay attention to the following points in
your quilt usage to guarantee compatibility with the new source package
format:
- all your patches must be applicable with the "-p1" option of patch
  (and you shouldn't use options in the series file to override this)
- the patches must be in debian/patches/ together with the "series" file
  (you can use QUILT_PATCHES=debian/patches if needed)
- you should not override QUILT_PC to change the location of quilt's
  internal directory (".pc" by default)
- the patches should not reference absolute filenames (in +++/--- lines)
- your clean target must work even if the patches are already applied
- your build target must work with patches applied even if the clean
  target is supposed to unapply them (because dpkg-source -b might
  have applied them back)

Cheers,

[1] http://lists.debian.org/debian-devel-announce/2008/04/msg00004.html
[2] the upcoming dpkg-dev 1.14.20 is more tolerant with patches, you can
grab it here if you want to try with that version:
http://people.debian.org/~hertzog/packages/dpkg-dev_1.14.20_all.deb
-- 
Raphael Hertzog




Reply to: