1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
The tar upstream developers prefer to document using the 'info' format, but
unfortunately the info docs are under a license Debian considers non-free. As
a result, we deliver a DFSG-compliant tar package in main, and a tar-doc
package in non-free.
Here is how the git repository for packaging is organized:
upstream "real" upstream sources
pristine-tar deltas for recreating tarballs from git repos
dfsg-orig branch for DFSG-compliant upstream
dfsg-debian branch for Debian packaging of DFSG-compliant parts
doc-orig branch for non-free upstream
doc-debian branch for Debian packaging of non-free parts
And here's a command log showing how upstream release 1.33 was incorporated,
which may be used as a pattern for processing future releases:
git checkout upstream
pristine-tar commit /tmp/tar-1.33.tar.xz
rm -r *
tar xv --strip-components=1 -f /tmp/tar-1.33.tar.xz
git add *
git commit -a -m "Import upstream version 1.33"
git checkout dfsg-orig
git merge upstream # ignore warnings about doc/*
./cleanup-script.sh
git commit -a -m "Elide non-DFSG compliant upstream components"
git tag upstream/1.33+dfsg
git checkout dfsg-debian
git merge dfsg-orig
dch -v 1.33+dfsg-1
git commit -a
# check patches
quilt push -a
rm -r .pc
git checkout .
# update patches that don't apply cleanly due to release-induced fuzz
quilt push -f gcc-10-warnings.diff
# manually apply gnu/selinux-at.h.rej changes to changed upstream file
rm gnu/selinux-at.h.rej
quilt refresh gcc-10-warnings.diff
quilt pop -a
rm -r .pc
git commit -a
gbp buildpackage --git-no-pristine-tar --changes-option=-S \
--git-upstream-branch=dfsg-orig \
--git-upstream-tag=upstream/1.33+dfsg
pristine-tar commit ../build-area/tar_1.33+dfsg.orig.tar.xz dfsg-orig
git tag debian/1.33+dfsg-1
git checkout doc-orig
git merge upstream # ignore all the warnings
./cleanup-script.sh
git commit -a -m "Prepare upstream tarball for tar-doc"
tar cvJf /tmp/tar-doc_1.33.orig.tar.xz COPYING doc
pristine-tar commit /tmp/tar-doc_1.33.orig.tar.xz
git checkout doc-debian
git merge doc-orig
dch -v 1.33-1
git commit -a
gbp buildpackage
git tag non-free/1.33-1
cd ../build-area
debsign tar_1.33+dfsg-1_amd64.changes
debsign tar-doc_1.33-1_amd64.changes
dput tar_1.33+dfsg-1_amd64.changes
dput tar-doc_1.33-1_amd64.changes
|