diff options
authorSean Whitton <>2018-04-19 09:13:46 -0700
committerSean Whitton <>2018-04-19 09:43:59 -0700
commit0824695592eda56d0505f891aaf18db40958f0d7 (patch)
parentce81728bbbad2adfd4fbdd32467acec87eca5b3d (diff)
dgit-maint-debrebase(7): respond to feedback on DFSG-non-free section
Signed-off-by: Sean Whitton <>
1 files changed, 39 insertions, 8 deletions
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.
-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
-=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"
-=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"
+Our upstream-dfsg branch cannot be pushed to B<dgit-repos>, 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
+=head2 DFSG-non-free: When upstream releases only tarballs
The easiest way to handle this is to add a B<Files-Excluded> field to
I<debian/copyright>, and a B<uversionmangle> setting in