Your message dated Sun, 04 Sep 2022 13:04:05 +0000
with message-id <[email protected]>
and subject line Bug#1018143: fixed in dgit 10.0
has caused the Debian Bug report #1018143,
regarding confusion regarding mode changes and patch formats
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
1018143: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1018143
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: dgit
Version: 9.16
Prior to dgit 9.16, dgit would not tolerate (with 3.0 (quilt))
(a) treechanges involving the creation of executable files
(b) treechanges involving file executability changes
In #949675 it was reported that this made dgit unable to handle an
actual package: a version of glibc, as it happens. In response I
committed:
a0ac573f8359 "dgit: tolerate making quilt patches creating +x files"
I evidently at the time thought that the fact that this package
actually existed and did this was sufficient to know that all would be
well and I could relax the check. So I did so.
There was a test case, testing that this was rejected. Foolishly, I
just dropped the test. This was because I thought (and indeed I still
think) that what is accepted by dpkg-source actually depends on
whatever the installed version of diff does.
For 1.0, dpkg-source carefully validates diffs to check they have
nothing untoward; for 3.0 it delegates completely to diff - leading to
uncontrolled introduction of source package features which don't work
on older versions of Debian. I must have thought that
the test failure was for this reason.
However, there is a flaw in this reasoning. The fact that dpkg-source
can extract these things (on at least some versions of Debian) does
not mean that it can create them.
Now that I investigate #995056, I find that it cannot. Empirically,
dpkg-source claims that there are no changes to represent.
I believe the situation with treechanges (a) (#949675) and (b) #995056
is the same.
Looking at the patches in the glibc_2.32-4 source package, I find
that debian/patches/git-updates.diff is like this:
GIT update of https://sourceware.org/git/glibc.git/release/2.32/master from
glibc-2.32
diff --git a/NEWS b/NEWS
index 485b8ddffa..2afe250ccf 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,25 @@ See the end for copying conditions.
...
diff --git a/sysdeps/x86_64/configure b/sysdeps/x86_64/configure
old mode 100644
new mode 100755
index 84f82c2406..fc1840e23f
Whereas a dpkg-source-generated patch is like this:
Description: <short summary of the patch>
TODO: Put a short summary on the line above and replace this paragraph
...
Author: Ian Jackson <[email protected]>
---
The information above should follow the Patch Tagging Guidelines, please
...
Origin: <vendor|upstream|other>, <url of original patch>
Bug: <url in upstream bugtracker>
...
Last-Update: 2022-08-25
--- /dev/null
+++ example-1.1/newx
@@ -0,0 +1 @@
+hi
This is a mess. I think it means that dpkg-source cannot rely (solely
or mostly) on dpkg-source for constructing debian/patches because the
other tools people are using are strictly more powerful - and we need
to match their feature set.
Relaxing the check in dgit worked for Peter because he didn't need to
actually manipulate any of the dpkg-source-unmanipulatable patches.
My attempt to introduce a test case for this situation failed because
it involved actually creating a new patch.
I think the problem is in `quiltify_dpkg_commit`. Maybe the answer is
to give up on dpkg-source --commit entirely. The only call sites are
in quiltify whichruns in a playtree.
Ian.
--
Ian Jackson <[email protected]> These opinions are my own.
Pronouns: they/he. If I emailed you from @fyvzl.net or @evade.org.uk,
that is a private address which bypasses my fierce spamfilter.
--- End Message ---
--- Begin Message ---
Source: dgit
Source-Version: 10.0
Done: Ian Jackson <[email protected]>
We believe that the bug you reported is fixed in the latest version of
dgit, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Ian Jackson <[email protected]> (supplier of updated dgit package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Format: 1.8
Date: Sun, 04 Sep 2022 13:43:34 +0100
Source: dgit
Architecture: source
Version: 10.0
Distribution: unstable
Urgency: medium
Maintainer: Ian Jackson <[email protected]>
Changed-By: Ian Jackson <[email protected]>
Closes: 964286 973896 992606 995056 1018143 1018984
Changes:
dgit (10.0) unstable; urgency=medium
.
Major command line change - dgit push vs push-built:
* Introduce "dgit push-built", meaning what "dgit push" does now.
* Make "dgit push" a configurable alias, which by default warns about
future incompatibility and then runs "dgit push-built". See dgit(1).
* Docs: generally recommend "push-source" rather than "push".
[Report from Osamu Aoki] Closes:#992606.
.
New feature, and change to recommended usage:
* Provide --quilt=single, and no longer recommend single-debian-patch
anywhere (since it can go badly wrong). Closes:#1018984.
.
Handling of unusual kinds of change to upstream files, during quilt fixup:
* Don't use dpkg-source --commit, but git diff.
* Handle exectutability changes. Closes:#995056. [Report from Peter Green]
* Reject all changes to symlinks (including symlink creation).
* With dpkg single-debian-patch, pass --include-removal to dpkg-source -b.
* Now we can make any diff that dpkg-source can cope with. Closes:#1018143.
.
Changes related to --dry-run and --damp-run:
* dgit(1): Demote, and add caveats describing their behaviours.
Closes:#973896. [Report from Wookey]
* dry run: Fix a handful of bugs (and improve a message).
.
Other:
* dgit: Pass require_valid_signature to Dpkg::Source::Package
in the correct manner. Closes: #964286. [Guillem Jover]
.
Internal:
* Refactorings and commentary, to support the other changes.
* Consequential updates to tests.
* More comprehensive testing of unusual upstream changes.
Checksums-Sha1:
32626074271e0711adcf0006c61abf62d7509e26 1846 dgit_10.0.dsc
898cfdf01df673f6710a1ba5c9c7a21efda20665 669091 dgit_10.0.tar.gz
Checksums-Sha256:
df252839212d4070229b6d9321b2a08e2e7381e69b525f016b0aebbd6ebc2110 1846
dgit_10.0.dsc
2782bade2c361b6e5557818d46932fc2670b943e7ccb3bfcd4f4248493de6235 669091
dgit_10.0.tar.gz
Files:
1a2548a091e4a1856ce9606080b58018 1846 devel optional dgit_10.0.dsc
1fd6c0ed8b523467effcce43823f22bc 669091 devel optional dgit_10.0.tar.gz
-----BEGIN PGP SIGNATURE-----
iQEzBAEBCAAdFiEEVZrkbC1rbTJl58uh4+M5I0i1DTkFAmMUnbkACgkQ4+M5I0i1
DTmwsQf/ReoQ+/OHZ7IXjUlwtrOHAKcBMhvxdr9L6rCmUghbbYVnJ/nwR+aJc4Ws
ENFF8KWH2JslGfiq4V96dLgynBC43eo8j4vlGXZlkAMvh9ubX5AnLw695XUel5/z
ZhbqLQ4ciUVUcCmZZtjSFEpUtPUjzOrtZhRx66EEL3cxH7tHNmzbU+jR4zuLCcj8
untU9DD4ygssGPjN+ptTIr812Cd3UDPvi8Y66iUC/4daI6BDL5ZbuZu6CNu0gicE
v7b0NOn2a9Ex9WibxBaTA+Q4/GssDvP02nyyHzUSNbQr7agTEMI9c6RDPx11DizM
ncJOI936nqavVVvqeNz9+lCsZf9Bkw==
=5Cqj
-----END PGP SIGNATURE-----
--- End Message ---