On 2020-11-15, Vagrant Cascadian wrote: > On 2020-09-28, Vagrant Cascadian wrote: >> On 2020-02-01, Vagrant Cascadian wrote: >>> A fix for a race condition was submitted upstream. The effects result in >>> partial or completely missing translations. The Reproducible Builds >>> folks have identified over twenty packages which may be affected: > ... >> >> https://tests.reproducible-builds.org/debian/issues/unstable/translations_missing_due_to_intltool_merge_issue.html >> >> >>> The fix was submitted and merged upstream some years ago, but a new >>> release was never made: >>> >>> https://bugs.launchpad.net/intltool/+bug/1687644 >>> https://bazaar.launchpad.net/~intltool/intltool/trunk/revision/748 >> >> I've submitted a merge request to the gnome-team for the original patch, >> with some minor typos fixed in the commit message: >> >> https://salsa.debian.org/gnome-team/intltool/-/merge_requests/2 >> >> >> While there has been no upstream release of intltool in quite some >> years, this patch has been in upstream revision control since 2017 (as >> of now, it is the *only* patch that isn't already in the version in >> Debian). >> >> Please consider merging this patch and uploading, as it should fix >> reproducibility issues for several other packages. Or would you consider >> it acceptible to NMU? > > I would like to proceed with an NMU in a few days, as this is a > non-deterministic race condition that affects reproducibility in several > other packages in Debian, and would be very nice to have resolved in > time for bullseye. Please let me know if I should hold off.
Uploaded to DELAYED 10. Merge request: https://salsa.debian.org/gnome-team/intltool/-/merge_requests/3 Debdiff: diff -Nru intltool-0.51.0/debian/changelog intltool-0.51.0/debian/changelog --- intltool-0.51.0/debian/changelog 2017-12-21 19:23:13.000000000 -0800 +++ intltool-0.51.0/debian/changelog 2020-11-20 12:53:23.000000000 -0800 @@ -1,3 +1,17 @@ +intltool (0.51.0-5.1) unstable; urgency=medium + + * Non-maintainer upload. + + [ Jeremy Bicha ] + * Update Vcs fields for migration to https://salsa.debian.org/ + + [ Vagrant Cascadian ] + * debian/patches: Add patch from upstream to fix race intltool race + condition end up using a partial cache, resulting in missing + translations in some cases (Closes: #950444). + + -- Vagrant Cascadian <vagr...@reproducible-builds.org> Fri, 20 Nov 2020 12:53:23 -0800 + intltool (0.51.0-5) unstable; urgency=medium * Update Vcs fields for conversion to git diff -Nru intltool-0.51.0/debian/control intltool-0.51.0/debian/control --- intltool-0.51.0/debian/control 2017-12-21 19:23:13.000000000 -0800 +++ intltool-0.51.0/debian/control 2020-11-20 12:53:23.000000000 -0800 @@ -1,5 +1,5 @@ # This file is autogenerated. DO NOT EDIT! -# +# # Modifications should be made to debian/control.in instead. # This file is regenerated automatically in the clean target. Source: intltool @@ -12,8 +12,8 @@ perl (>= 5.8.1) Build-Depends-Indep: libxml-parser-perl Standards-Version: 4.1.2 -Vcs-Git: https://anonscm.debian.org/git/pkg-gnome/intltool.git -Vcs-Browser: https://anonscm.debian.org/git/pkg-gnome/intltool.git +Vcs-Browser: https://salsa.debian.org/gnome-team/intltool +Vcs-Git: https://salsa.debian.org/gnome-team/intltool.git Homepage: https://launchpad.net/intltool Package: intltool diff -Nru intltool-0.51.0/debian/control.in intltool-0.51.0/debian/control.in --- intltool-0.51.0/debian/control.in 2017-12-21 19:23:13.000000000 -0800 +++ intltool-0.51.0/debian/control.in 2020-11-20 12:51:46.000000000 -0800 @@ -8,8 +8,8 @@ perl (>= 5.8.1) Build-Depends-Indep: libxml-parser-perl Standards-Version: 4.1.2 -Vcs-Git: https://anonscm.debian.org/git/pkg-gnome/intltool.git -Vcs-Browser: https://anonscm.debian.org/git/pkg-gnome/intltool.git +Vcs-Browser: https://salsa.debian.org/gnome-team/intltool +Vcs-Git: https://salsa.debian.org/gnome-team/intltool.git Homepage: https://launchpad.net/intltool Package: intltool diff -Nru intltool-0.51.0/debian/patches/0001-Avoid-a-race-where-some-processes-try-to-use-a-parti.patch intltool-0.51.0/debian/patches/0001-Avoid-a-race-where-some-processes-try-to-use-a-parti.patch --- intltool-0.51.0/debian/patches/0001-Avoid-a-race-where-some-processes-try-to-use-a-parti.patch 1969-12-31 16:00:00.000000000 -0800 +++ intltool-0.51.0/debian/patches/0001-Avoid-a-race-where-some-processes-try-to-use-a-parti.patch 2020-11-20 12:51:46.000000000 -0800 @@ -0,0 +1,57 @@ +From 97c9854c9ffe34d5fb4c8e928530c9a41b8e1a35 Mon Sep 17 00:00:00 2001 +From: "Bernhard M. Wiedemann" <bmwiedemann+bzrcom...@suse.de> +Date: Thu, 18 May 2017 21:09:18 +0200 +Origin: https://bazaar.launchpad.net/~intltool/intltool/trunk/revision/748 + https://bugs.launchpad.net/intltool/+bug/1687644 +Subject: [PATCH] Avoid a race where some processes try to use a partial cache + file that is still being written to. Note that we release the lock before + load_cache, because if we got the lock, the cache is already completely + written and it is OK to have multiple parallel readers + +Without this patch, translation files would randomly miss translations +for some or all languages. + +fixes bug #1687644 +maybe also bug #986897 +--- + intltool-merge.in | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/intltool-merge.in b/intltool-merge.in +index 05db7cf..89923a7 100644 +--- a/intltool-merge.in ++++ b/intltool-merge.in +@@ -43,6 +43,7 @@ use Getopt::Long; + use Text::Wrap; + use File::Basename; + use Encode; ++use Fcntl qw(:flock); + + my $must_end_tag = -1; + my $last_depth = -1; +@@ -392,11 +393,14 @@ sub load_cache + + sub get_cached_translation_database + { ++ open(my $lockfh, ">", "$cache_file.lock") or die $!; ++ flock($lockfh, LOCK_EX) or die "Could not lock '$cache_file.lock' - $!"; + my $cache_file_age = -M $cache_file; + if (defined $cache_file_age) + { + if ($cache_file_age <= &get_newest_po_age) + { ++ close($lockfh); + &load_cache; + return; + } +@@ -404,6 +408,7 @@ sub get_cached_translation_database + } + + &create_cache; ++ close($lockfh); + } + + sub add_translation +-- +2.20.1 + diff -Nru intltool-0.51.0/debian/patches/series intltool-0.51.0/debian/patches/series --- intltool-0.51.0/debian/patches/series 2017-12-21 19:23:13.000000000 -0800 +++ intltool-0.51.0/debian/patches/series 2020-11-20 12:51:46.000000000 -0800 @@ -1 +1,2 @@ perl5.26-regex-fixes.patch +0001-Avoid-a-race-where-some-processes-try-to-use-a-parti.patch diff -Nru intltool-0.51.0/debian/rules intltool-0.51.0/debian/rules --- intltool-0.51.0/debian/rules 2017-12-21 19:23:13.000000000 -0800 +++ intltool-0.51.0/debian/rules 2020-11-20 12:51:46.000000000 -0800 @@ -1,5 +1,4 @@ #!/usr/bin/make -f - -include /usr/share/gnome-pkg-tools/1/rules/lp-get-source.mk %: live well, vagrant
signature.asc
Description: PGP signature