On 12/02/26 12:54, Johannes Schauer Marin Rodrigues wrote:
[...] the stuff that is not DFSG compliant and got removed via
copyright:Files-Excluded will show up in the import commit and thus be part of
my git history, no? I would like to love the git-only approach but I fail to
see a way which makes me want to re-use the upstream git for projects where
upstream contains files which we do not allow ourselves to ship.  Removing
non-DFSG files with a git change is like removing non-DFSG files with a quilt
patch in debian/patches. The non-free content will still be there.

What is "there"? A branch? A tag? Anywhere in a Git repo? Even in a disconnected object in .git/ that is not linked in any branch?

My current understanding is that this only works if we agree that:

  * our packaging git can have all sorts of nasty stuff in it and
  * the DFSG-clean thing is the orig tarball we dput into the archive with a dsc

As Otto noted, this is already the case _de facto_. It would be nice if it were also stated _de jure_ in a policy document.

But with that view, my packaging git can never become the thing which we
consider "the thing Debian ships which honors the DFSG" and anybody who would
like to derive from us in a DFSG-compliant way still will have to use tarballs
when they want to import from us, no?
If we accept the separation that you described above and if we play a bit with the branches and the definitions of certain words, I think we can reach a point in which "the thing Debian ships which honors the DFSG" matches what is in Git.

First, we limit DFSG to what in the orig tarballs.

Second, we state that Git repos in Salsa can store any kind of file that would be acceptable for (at least) the non-free section of the archive. (Otherwise we could not even mirror firmware on Salsa.)

Third, we extend DEP-14 to distinguish between pristine-maybe-not-DFSG-clean Git branches and upstream/ branches on top of which the debian/ branches are based.

* upstream/latest-dfsg-unclean will be exactly the upstream master branch.

* upstream/latest is an offspring of upstream/latest-dfsg-unclean that contains an extra commit where Files-Excluded files are git-rm'd [1].

* debian/latest will be based off upstream/latest.

Once this is in place, orig tarballs generated by gbp export-orig and tag2upload will automatically be DFSG-clean.

gbp could be modified to support this new layout and to do all the necessary adjustments (like automatically adding +dfsg to the debian version).

[1] The code in mk-origtargz that handles Files-Excluded could be moved to a separate program. That would also help with <https://bugs.debian.org/1069324>.

Regards,

--
Gioele Barabucci

Reply via email to