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 debian-dpkg-bugs-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to