Re: Intent to commit craziness - source package unpacking
On Mon, 2016-09-26 at 15:37:19 +0100, Ian Jackson wrote:
> * dpkg developers, please tell me whether I am making assumptions
> that are likely to become false. Particularly, on the behaviour of
> successive runs of dpkg-source --before-build with successively
> longer series files.
For format «3.0 (quilt)», that seems fine, to the point I'm fine even
documenting this, which I can probably do for 1.18.11.
For other formats, such as «2.0», I don't think that's true, but I
assume you don't care about that one anyway. But just mentioning
because this behavior is probably format-specific. For «2.0» I
think it could be fixed, and should not be too hard (not sure if it's
worth it though).
> dpkg-source does not currently provide interfaces that look like they
> are intended for what I want to do. And dgit wants to work with old
> versions of dpkg, so I don't want to block on getting such interfaces
> added (even supposing that a sane interface could be designed, which
> is doubtful).
Even then I'm still interested in a decription of what you'd need
ideally, to take into account when having a pass at cleaning up that
part of the interface. I think you could be interested in a cleaner
Dpkg::Source::* hierarchy, for the mid/long-term?
Perhaps we could start a wiki page listing such items.
> So I intend to do as follows. (Please hold your nose.)
> * dgit will untar each input tarball (other than the Debian tarball).
> This will be done by scanning the .dsc for things whose names look
> like (compressed) tarballs, and using the interfaces provided by
> Dpkg::Compression to get at the tarball.
Hmm, Dpkg::Source::Archive is currently private, but I might have a
look at making it public if that would be helpful here.
> * As currently, dgit will take steps so that none of the git trees
> discussed above contain a .pc directory.
As long as the directory does not disappear from the working tree,
that should work.
> This has the following properties:
> * dgit now depends on dpkg-source --before-build idempotently applying
> patches as they successively appear on debian/patches/series.
Again, that seems fine.