Bug#1123652: 1.0 with diff, dpkg-source -x no longer chmod +x debian/rules

Ian Jackson <[email protected]> Fri, 19 Dec 2025 12:08:27 +0000
Newsgroups gmane.linux.debian.devel.dpkg.bugs
Message-ID <26949.16443.123944.90105__21656.3429961511$1766146206$gmane$org@chiark.greenend.org.uk>
Package: dpkg-dev
Version: 1.23.2
Control: block 1123583 by -1
Severity: important

Hi.  I think that amongst the random lossage (which I am working to
fix) the src:dgit autopkgtests have detected a regression in the new
dpkg-source.

STEPS

 $ dget -d http://deb.debian.org/debian/pool/main/v/vtwm/vtwm_5.4.7-9.dsc
 $ sha256sum *

 Expect:

 3ba3f8245e1b855d81e6969581c3782e2de1a9faadf0b5fdd21d8761e5ff3c4e  vtwm_5.4.7-9.diff.gz
 ae1fc9c819be88dff5cf07e28b674d1696a1a1907d0e03a9e6c0bb1929e01568  vtwm_5.4.7-9.dsc
 c62f692c42420666920a23cd489633e91789b379fed13561321b44d9ffa8c9e9  vtwm_5.4.7.orig.tar.gz

 $ dpkg-source -x vtwm_5.4.7-9.dsc
 $ ls -l vtwm-5.4.7/debian/rules

EXPECTED OUTPUT

 -rwxrwxr-x 1 ian ian 2034 Dec 19 11:57 vtwm-5.4.7/debian/rules*

ACTUAL OUTPUT

 -rw-rw-r-- 1 ian ian 2034 Dec 19 11:57 vtwm-5.4.7/debian/rules

DISCUSSION

1.0-with-diff doesn't represent the executability of debian/rules, so
dpkg-source must make it executable with an explicit chmod.  This is
done by 1.22.21, as shipped in trixie, for example.

This change to dpkg-source, which I presume wasn't intentional, has
the effect of retrospectively changing the meaning of all exissting
1.0-with-diff source packages.  For example, if one does
  apt source && git init && git add -Af . && git commit
the resulting tree object is different before and after this change.

And I think this change will make some 1.0-with-diff pacckage building
approaches no longer work properly.  Direct use of debian/rules won't
work, and dpkg-buildpackage will dirty the tree (because it also does
chmod +x).

Ian.