Package: dpkg-dev
Version: 1.17.1
Severity: minor
Control: found -1 1.16.12
Control: found -1 1.15.8.13

If I explicitly give a value to dpkg-source's -i option, this value
overwrites any extend-diff-ignore setting in debian/source/options as
the contents of debian/source/options is prepended.

But if I just give "-i" without parameter, the extend-diff-ignore
settings in debian/source/options seem not to be overwritten with the
default regexp, despite the man page suggests this:

  -i by itself enables the option, with a default regexp that will
  filter out control files and directories of the most common revision
  control systems, backup and swap files and Libtool build output
  directories.  There can only be one active regexp, of multiple -i
  options only the last one will take effect.

A constructed minimal example based on a real-life package:

$ cat zile/debian/source/options
extend-diff-ignore=doc/zile\.1\.in
extend-diff-ignore=config\.h\.in
extend-diff-ignore=configure
$ cd zile ; git status ; cd ..
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   configure
#
no changes added to commit (use "git add" and/or "git commit -a")
$ dpkg-source -i'^\.git' -b zile
dpkg-source: info: using options from zile/debian/source/options: 
--extend-diff-ignore=doc/zile\.1\.in --extend-diff-ignore=config\.h\.in 
--extend-diff-ignore=configure
dpkg-source: info: using source format `3.0 (quilt)'
dpkg-source: info: applying fix-faq-path-in-startup-screen.patch
dpkg-source: info: building zile using existing ./zile_2.4.9.orig.tar.gz
dpkg-source: info: local changes detected, the modified files are:
 zile/configure
dpkg-source: info: you can integrate the local changes with dpkg-source --commit
dpkg-source: error: aborting due to unexpected upstream changes, see 
/tmp/zile_2.4.9-3.diff.6HPUXJ
$ dpkg-source -i -b zile
dpkg-source: info: using options from zile/debian/source/options: 
--extend-diff-ignore=doc/zile\.1\.in --extend-diff-ignore=config\.h\.in 
--extend-diff-ignore=configure
dpkg-source: info: using source format `3.0 (quilt)'
dpkg-source: info: building zile using existing ./zile_2.4.9.orig.tar.gz
dpkg-source: info: building zile in zile_2.4.9-3.debian.tar.gz
dpkg-source: info: building zile in zile_2.4.9-3.dsc

In the second case I would have expected that -i sets the default
diff-ignore value and hence bails out, too.

I'm not sure if this is undocumented wanted behaviour (and hence only a
documentation issue) or indeed unwanted behaviour and a real bug.

This issue is also present in Squeeze and Wheezy, i.e. present for at
least three years. (Which suggests that it's probably undocumented but
wanted behaviour -- or a very seldom corner-case.)

P.S.: If I'd have to vote, I'd consider this being a feature as having
"DEBUILD_DPKG_BUILDPACKAGE_OPTS=-i" in ~/.devscripts currently allows to
build source format 1.0 as well as source format 3.0 packages from VCS
repositories without having to worry about the VCS files in the source
tree. Changing the current behaviour to overwrite the previously set
value would break such a setup for source format 3.0 packages which use
extend-diff-ignore in debian/source/options.

-- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (990, 'unstable'), (600, 'testing'), (400, 'stable'), (110, 
'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.5-trunk-amd64 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages dpkg-dev depends on:
ii  base-files    7.2
ii  binutils      2.23.90.20131116-1
ii  bzip2         1.0.6-5
ii  libdpkg-perl  1.17.1
ii  make          3.81-8.3
ii  patch         2.7.1-4
ii  xz-utils      5.1.1alpha+20120614-2

Versions of packages dpkg-dev recommends:
ii  build-essential          11.6
ii  clang-3.3 [c-compiler]   1:3.3-13
ii  fakeroot                 1.20-1
ii  gcc [c-compiler]         4:4.8.1-3
ii  gcc-4.6 [c-compiler]     4.6.4-5
ii  gcc-4.8 [c-compiler]     4.8.2-5
ii  gnupg                    1.4.15-1.1
ii  gpgv                     1.4.15-1.1
ii  libalgorithm-merge-perl  0.08-2
ii  tcc [c-compiler]         0.9.26~git20120612.ad5f375-6

Versions of packages dpkg-dev suggests:
ii  debian-keyring  2013.07.31

-- no debconf information


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to