Intent to commit craziness - source package unpacking

Ian Jackson ijackson at chiark.greenend.org.uk
Mon Oct 3 15:15:08 UTC 2016


Ian Jackson writes ("Re: Intent to commit craziness - source package unpacking"):
> Guido Günther writes ("Re: Intent to commit craziness - source package unpacking"):
> > 'gbp pq import' does have 'debian/patches' since it just puts the
> > patches that are in debian/patches on top of the unpatched source
> > tree. In contrast to your solution it doesn't try to be able to
> > roundtrip without changes for any given series on "gbp pq export". This
> > is only true if the series was also created by "gbp pq" (or adheres to
> > what git-format-patch does).
> 
> Currently the output of dpkg-source --commit doesn't look much like
> the output of git-format-patch.
> 
> I have tried to make dgit produce patches (when it needs to produce
> patches) that look like dpkg-source --commit.  But maybe it should
> produce patches using git-format-patch (or that look like
> git-format-patch).

I have looked at the specs (including DEP-3) and the behaviour of the
various tools a bit more.  I have decided that when I should replace
dgit's adhoc algorithm for generating a DEP-3 compliant commit
message, with a call to git-format-patch.  (The actual patch body has
to come from dpkg-soure, because of the special handling of debian/,
etc.  This code path is used when a dgit user is pushing and needs to
convert raw git commits into `3.0 (quilt)' patches.)

And, after having half-written a DEP-3 importer (ie a thing that turns
a DEP-3 patch message into a git commit), and investigating the
behaviour of various tools, I have decided I should just use gbp pq.
(This will replace the repeated use of dpkg-source --before-build as a
described in my previous mail.)

This will mean that dgit will grow a hard dependency on
git-buildpackage.


Because I'm a pernickety type of person I reviewed the dependencies of
git-buildpackage.  I have some qualms about the following
dependencies:

  Recommends: pristine-tar (>= 0.5)

    pristine-tar has been declared unmaintainable by its original
    author and abandoned.

    IDK know what proportion of actual git trees that gbp users will
    encounter would break without pristine-tar.  Perhaps this
    dependency can be demoted to Suggests, but I don't really know.

    Certainly dgit users do not need pristine-tar.  But our dependency
    system does not allow us to honour only direct Recommends and not
    transitive ones.

  Recommends: cowbuilder                        <= jessie
  Recommends: cowbuilder | pbuilder | sbuild    <= sid

    Many users of dgit will never want to build a package for upload.
    This is probably true of gbp users too.  I'm not sure why it's
    valuable to have this as a Recommends dependency for gbp.

    I think more people now are using sbuild.  I'm not sure that
    pulling in cowbuilder on systems where the user has not yet
    installed such a tool is right.

  Depends: devscripts

    devscripts is very full of commands with poor namespacing.  It
    also has an enormous dependency chain.

    Unfortunately dgit has a dependency on devscripts too.  Maybe we
    should work to take the pieces of devscripts that we really need
    and put them in something else, or something.

Overall I don't think these are an impediment.  But since I had done
the review, I thought I'd share my thoughts.

Regards,
Ian.


-- 
Ian Jackson <ijackson at chiark.greenend.org.uk>   These opinions are my own.

If I emailed you from an address @fyvzl.net or @evade.org.uk, that is
a private address which bypasses my fierce spamfilter.



More information about the vcs-pkg-discuss mailing list