Otto Kekäläinen <o...@debian.org> writes:

>> No objections to have this kind of capability, but I still strongly
>> believe that importing tar archives is highly suboptimal and directly
>> branching off the upstream git repository is an highly superior workflow
>> and should be used as much as possible.
>>
>> This being said, I maintain some packages which are released by the
>> upstream maintainers only as tar archives (because OpenBSD).
>
> Also some projects release tarballs with extra additions that are not
> in the same git, or they strip away directories/files that are in git,
> but are irrelevant for users. If upstreams do that, then their intent
> is that downstreams are better off consuming the tarballs.

Indeed.  Some projects also release both variants -- for example
'libntlm' and 'oath-toolkit' upstream releases both traditional autoconf
tarballs and minimal source-only 'git archive' style tarballs.

> This is not a problem though, We can have the best of both, as
> git-buildpackage supports dual import from both upstream git and
> tarball to maximize supply chain auditability.
>
> You can see this in action in e.g.
> https://salsa.debian.org/mariadb-team/mariadb-server/-/network/debian%2Flatest?extended_sha1=f134a53ffcaad16eabedb30809837d5ee8170bc8&filter_ref=1
> The upstream branch 11.4 and tag mariadb-11.4.3 has the upstream git
> release contents, while the branch upstream/latest and tag
> upstream/11.4.3 shows the contents of the release tarball. The diff
> between these two branches shows how the upstream tarball differs from
> the upstream git commit at the time. The git side can be verified with
> git tag signature, and the tarball side is verified by tarball
> signature (thanks to also pristine-tar being used). This
> upstream/latest was then merged on debian/latest, which has git tags
> signed by Debian maintainer.
...
> If you want to see the details, see gbp.conf in the package
> (https://salsa.debian.org/mariadb-team/mariadb-server/-/blob/debian/latest/debian/gbp.conf).

That setup sounds nice!  What is your workflow to import a new upstream
release?

I see the watch file still points to the tarball:

https://salsa.debian.org/mariadb-team/mariadb-server/-/blob/debian/latest/debian/watch

Would it be possible to extend the debian/watch syntax to be able to
express both a tarball and upstream git branch?

Then 'gbp import-orig' would import both the tarball and sync git, after
performing PGP tarball verification and Git branch signature
verification.  I suppose you are doing that manually somehow now?

/Simon

Attachment: signature.asc
Description: PGP signature

Reply via email to