Package: dpkg-dev
Version: 1.15.4
Severity: normal
Tags: patch
dpkg-source doesn't work on "3.0 (git)" format source packages if an
extra excludes file is specified in the git config. It queries the
core.excludesfile git config variable, and if it exists, adds an
option to use that file when running "git ls-files". However, it uses
an unneeded extra level of quoting, which causes the command to fail.
I have included below the output from running dpkg-source, and
attached a patch which fixes the problem.
$ dpkg-source -i -I.git -b nuweb-1.0b1
dpkg-source: info: using source format `3.0 (git)'
fatal: cannot use '/home/courtney/.git.d/exclude' as an exclude file
dpkg-source: failure: git ls-files exited nonzero:
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.28-15-server (SMP w/8 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) (ignored: LC_ALL set to C)
Shell: /bin/sh linked to /bin/dash
Versions of packages dpkg-dev depends on:
ii binutils 2.20-1 The GNU assembler, linker and bina
ii bzip2 1.0.5-3 high-quality block-sorting file co
ii dpkg 1.15.4 Debian package management system
ii libtimedate-perl 1.1900-1 Time and date functions for Perl
ii lzma 4.43-14 Compression method of 7z format in
ii make 3.81-6 An utility for Directing compilati
ii patch 2.5.9-5 Apply a diff file to an original
ii perl [perl5] 5.10.1-5 Larry Wall's Practical Extraction
ii perl-modules 5.10.1-5 Core Perl modules
Versions of packages dpkg-dev recommends:
ii build-essential 11.4 Informational list of build-essent
pn fakeroot <none> (no description available)
ii gcc [c-compiler] 4:4.3.3-9+nmu1 The GNU C compiler
ii gcc-4.3 [c-compiler] 4.3.4-5 The GNU C compiler
ii gnupg 1.4.10-2 GNU privacy guard - a free PGP rep
ii gpgv 1.4.10-2 GNU privacy guard - signature veri
Versions of packages dpkg-dev suggests:
pn debian-keyring <none> (no description available)
pn debian-maintainers <none> (no description available)
-- no debconf information
--- a/scripts/Dpkg/Source/Package/V3/git.pm
+++ b/scripts/Dpkg/Source/Package/V3/git.pm
@@ -145,7 +145,7 @@ sub do_build {
my $core_excludesfile = `git config --get core.excludesfile`;
chomp $core_excludesfile;
if (length $core_excludesfile && -e $core_excludesfile) {
- push @ignores, "--exclude-from='$core_excludesfile'";
+ push @ignores, "--exclude-from=$core_excludesfile";
}
if (-e ".git/info/exclude") {
push @ignores, "--exclude-from=.git/info/exclude";