Accepting request 492503 from home:bmwiedemann:reproducible:test

Add fixrace.patch to fix random desktop file corruptions
  (lp#1687644 boo#1021335)

OBS-URL: https://build.opensuse.org/request/show/492503
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/intltool?expand=0&rev=35
This commit is contained in:
Bjørn Lie 2017-05-10 15:26:00 +00:00 committed by Git OBS Bridge
parent cc3cbc5155
commit 52ccf6f393
3 changed files with 52 additions and 0 deletions

43
fixrace.patch Normal file
View File

@ -0,0 +1,43 @@
From: Bernhard M. Wiedemann <bmwiedemann+intltool@suse.de>
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
Index: intltool-0.51.0/intltool-merge.in
===================================================================
--- intltool-0.51.0.orig/intltool-merge.in
+++ intltool-0.51.0/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

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Tue May 2 15:22:35 UTC 2017 - bwiedemann@suse.com
- Add fixrace.patch to fix random desktop file corruptions
(lp#1687644 boo#1021335)
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Apr 15 22:26:26 UTC 2016 - mgorse@suse.com Fri Apr 15 22:26:26 UTC 2016 - mgorse@suse.com

View File

@ -32,6 +32,8 @@ Url: https://edge.launchpad.net/intltool/
Source: https://launchpad.net/%{name}/trunk/%{version}/+download/%{name}-%{version}.tar.gz Source: https://launchpad.net/%{name}/trunk/%{version}/+download/%{name}-%{version}.tar.gz
# PATCH-FIX-UPSTREAM intltool-perl-5.22.patch lp#1490906 dimstar@opensuse.org -- Fix execution with perl 5.22 # PATCH-FIX-UPSTREAM intltool-perl-5.22.patch lp#1490906 dimstar@opensuse.org -- Fix execution with perl 5.22
Patch0: intltool-perl-5.22.patch Patch0: intltool-perl-5.22.patch
# PATCH-FIX-UPSTREAM fixrace.patch lp#1687644 boo#1021335
Patch1: fixrace.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description %description
@ -43,6 +45,7 @@ information is written back into the XML files.
%prep %prep
%setup -q %setup -q
%patch0 -p0 %patch0 -p0
%patch1 -p1
%build %build
%configure %configure