By default gbp buildpackage uses debian/changelog
to detect
the upstream version and build the corrsponding tarball either via pristine-tar or
by using git archive directly. This ensures that the tarball matches
what's in the Debian archive already.
But there might be cases where you don't want to follow these packaging practice and create a fresh dirty tarball that contains additional changes. Such tarballs are not suitable for upload into the archive but might be helpful in local testing.
Especially when getting started and when you first want to get a package built and dive into gbp dch, git-pbuilder and the 3.0 (quilt) format later to find out what exactly
dpkg-source: info: local changes detected, the modified files are: hello-debhelper/configure dpkg-source: error: aborting due to unexpected upstream changes, see /tmp/hello-debhelper_2.8-1.diff.har2Xx dpkg-source: info: you can integrate the local changes with dpkg-source --commit
means.
For that you can force gbp buildpackage to create a tarball
from the debian-branch dropping
the debian/
directory. This will give you a
tarball that is very close to your current working copy except
for the packaging.
gbp buildpackage --git-ignore-new --git-force-create --git-upstream-tree=SLOPPY --git-no-pristine-tar
The important part is the SLOPPY above. The
other options are there to prevent gbp buildpackage from using
pristine-tar, to force the creation of a new tarball and to
not abort if you have changes in your current working copy.
If you're still getting an error about unexpected
upstream changes make sure you have no uncommitted
changes in you workig copy (changes in
the debian/
directory are o.k.) and no
files that are ignored by git
via .gitignore
. A git clean
-dfx can help here.
Please don't use this tarball to upload to the Debian archive
since changes outside debian/
need to be
represented by patches in debian/patches
.
See the dpkg-source manpage for
details.