Hi Robert,
Robert Luberda wrote:
> While working on my package, I've noticed that the
> debuild -nc -b
> command no longer works properly - i.e. it recompiles
> almost everything instead of just use already built files.
>
> It's because dpkg-source automatically unapplied patches
> as a part of the previous build
Thanks for reporting. There is a weird tension between requirements.
On one hand, in dpkg's source format v3, the patched source is considered
to be standard "unpacked" form. So if you run
dpkg-source -x foo.dsc
cd foo-*
dpkg-buildpackage; # just builds the package
then patches will be applied in the first step and never unapplied. This
is the way I like to work, for example (except that the source is stored
in a version control repository) --- the source with patches unapplied
just never enters into it.
On the other hand, some people like to work most of the time with the
unpatched source, as in pre-v3 days. For them, dpkg-buildpackage is
happy to comply:
vcs clone <repository with unpatched source>
cd repo
... tweak a little ...
dpkg-buildpackage; # applies patches, builds, and unapplies patches
vcs diff; # looks good?
vcs commit
"dpkg-source --after-build" distinguishes between the two cases by
checking for the ".pc/.dpkg-source-unapply" file, which is added when
"dpkg-source --before-build" notices that patches were not already
applied. You can ensure patches remain applied by applying the
patches yourself before starting the build.
QUILT_PATCHES=debian/patches quilt push -a
debuild; # or dpkg-buildpackage, or whatever
Hope that helps.
Now I wouldn't be surprised if some edge cases are not handled in the
best way or some documentation is less clear than desirable. Pointers?
Yours,
Jonathan
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]