From 0824695592eda56d0505f891aaf18db40958f0d7 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Thu, 19 Apr 2018 09:13:46 -0700 Subject: dgit-maint-debrebase(7): respond to feedback on DFSG-non-free section Signed-off-by: Sean Whitton --- dgit-maint-debrebase.7.pod | 47 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 8 deletions(-) (limited to 'dgit-maint-debrebase.7.pod') diff --git a/dgit-maint-debrebase.7.pod b/dgit-maint-debrebase.7.pod index c615ce2..b17833e 100644 --- a/dgit-maint-debrebase.7.pod +++ b/dgit-maint-debrebase.7.pod @@ -429,9 +429,11 @@ you're using that. =head1 HANDLING DFSG-NON-FREE MATERIAL -This covers only DFSG-non-free material. Material which is legally -dangerous (for example, files which are actually illegal) cannot be -handled this way. +=head2 Illegal material + +Here we explain how to handle material that is merely DFSG-non-free. +Material which is legally dangerous (for example, files which are +actually illegal) cannot be handled this way. If you encounter possibly-legally-dangerous material in the upstream source code you should seek advice. It is often best not to make a @@ -439,22 +441,51 @@ fuss on a public mailing list (at least, not at first). Instead, email your archive administrators. For Debian that is To: dgit-owner@debian.org, ftpmaster@ftp-master.debian.org -=head2 When upstream tags releases in git +=head2 DFSG-non-free: When upstream tags releases in git + +Our approach is to maintain a DFSG-clean upstream branch, and create +tags on this branch for each release that we want to import. We then +import those tags per "Importing the release", above. -We create a DFSG-clean tag to import to master: +For the first upstream release that requires DFSG filtering: =over 4 - % git checkout -b pre-dfsg 1.2.3 + % git checkout -b upstream-dfsg 1.2.3 % git rm evil.bin % git commit -m "upstream version 1.2.3 DFSG-cleaned" % git tag -s 1.2.3+dfsg % git checkout master - % git branch -D pre-dfsg + % # proceed with "Importing the release" =back -=head2 When upstream releases only tarballs +And for subsequent releases (whether or not they require filtering): + +=over 4 + + % git checkout upstream-dfsg + % git merge 1.2.4 + % git rm further-evil.bin # if needed + % git commit -m "upstream version 1.2.4 DFSG-cleaned" + % git tag -s 1.2.4+dfsg + % git checkout master + % # proceed with "Importing the release" + +=back + +Our upstream-dfsg branch cannot be pushed to B, but since +we will need it whenever we import a new upstream version, we must +push it somewhere. Assuming that you have already set up an origin +remote per the above, + +=over 4 + + % git push --follow-tags -u origin master upstream-dfsg + +=back + +=head2 DFSG-non-free: When upstream releases only tarballs The easiest way to handle this is to add a B field to I, and a B setting in -- cgit v1.2.3