Package: git-buildpackage
Version: 0.9.43
Severity: wishlist
X-Debbugs-Cc: [email protected]
Dear Maintainer,
When bootstrapping a new Debian packaging repository with gbp import-orig (and
by this I mean importing an orig tarball into an empty repository); an upstream
tarball containing a debian/ directory results in that directory being imported
into both the upstream and Debian packaging branches.
I think this is a sensible default. However, I don't see any straightforward
way to bootstrap a repository without upstream's debian/ directory being
included
on the newly-created packaging branch while keeping upstream's debian/ directory
on the upstream branch.
For example, in an empty Git repository and a dummy upstream orig tarball:
gbp import-orig \
--debian-branch=master \
--upstream-branch=upstream \
--pristine-tar \
--upstream-version=1.0.0 \
../dummy_v1.0.0.tar.gz
The debian/ directory from the orig tarball appears in both branches.
--merge-mode=replace does not change anything, neither does --upstream-vcs-tag,
both of which I was expecting.
Currently I work around this with: --filter='debian/*', but there are
at least two issues:
- debian/ directory is removed from the upstream tree
- gbp passes --filters straight to GNU tar as --exclude. By default tar
matches the pattern at all depth so debian/* matches every debian/
directory in the tree. Perhaps this belongs in its own bug?
Would it make sense to introduce an explicit bootstrap option for gbp
import-orig, allowing the initial import to create an independent Debian
packaging branch without copying upstream's debian/ directory?
For example:
gbp import-orig \
--bootstrap \
--debian-branch=master \
--upstream-branch=upstream \
--pristine-tar \
--upstream-version=1.0.0 \
../v1.0.0.tar.gz
The intended behaviour would be:
- Preserve the complete upstream source tree on the upstream branch, including
debian/.
- Create the initial Debian packaging branch without the contents of debian/
from the upstream.
- Preserve the original upstream tarball through pristine-tar.
- Allow subsequent imports to preserve the independently maintained Debian
packaging using the existing --merge-mode=replace behaviour.
I was thinking it could be implemented as an extension of the existing merge
modes, rather than introducing a separate bootstrap mechanism.
I am happy to propose a PR on Salsa if we can come to some kind of
agreement?
Cheers!
-- System Information:
Debian Release: forky/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: arm64
Kernel: Linux 7.2.7+deb14-amd64 (SMP w/16 CPU threads; PREEMPT)
Kernel taint flags: TAINT_WARN
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8),
LANGUAGE=en_GB:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages git-buildpackage depends on:
ii devscripts 2.26.13
ii git 1:2.55.0-1
ii man-db 2.13.1-1
ii python3 3.14.8-1
ii python3-dateutil 3.0.0-2
ii python3-yaml 6.0.3-1+b1
ii sensible-utils 0.0.26
Versions of packages git-buildpackage recommends:
ii cowbuilder 0.91
ii pbuilder 0.231.3
ii pristine-tar 1.50+nmu3
ii python3-requests 2.34.2-1
ii sbuild 0.91.10
Versions of packages git-buildpackage suggests:
ii python3-notify2 0.3.1-3
ii sudo 1.9.17p2-9
ii unzip 6.0-31
-- no debconf information