* sync intltool with main arch

This commit is contained in:
Alexander Baldeck 2020-06-25 11:01:55 +02:00
parent dd1704b8d3
commit 92ce1374fc
2 changed files with 49 additions and 3 deletions

View File

@ -3,7 +3,7 @@
pkgname=intltool pkgname=intltool
pkgver=0.51.0 pkgver=0.51.0
pkgrel=5 pkgrel=6
pkgdesc="The internationalization tool collection" pkgdesc="The internationalization tool collection"
arch=('any') arch=('any')
url="https://launchpad.net/intltool" url="https://launchpad.net/intltool"
@ -12,12 +12,14 @@ depends=('perl-xml-parser')
source=(https://launchpad.net/intltool/trunk/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz{,.asc} source=(https://launchpad.net/intltool/trunk/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz{,.asc}
intltool-0.51.0-perl-5.26.patch intltool-0.51.0-perl-5.26.patch
intltool-merge-Create-cache-file-atomically.patch intltool-merge-Create-cache-file-atomically.patch
intltool_distcheck-fix.patch) intltool_distcheck-fix.patch
intltool-fixrace.patch)
sha256sums=('67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd' sha256sums=('67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd'
'SKIP' 'SKIP'
'458f5d53ac358810879080f69b11649901babcacc14471c243eb850e9436d546' '458f5d53ac358810879080f69b11649901babcacc14471c243eb850e9436d546'
'13bd6deb65dc94933f132919d4eea4c24354d7c1c1c9e5930cb6e70c75703763' '13bd6deb65dc94933f132919d4eea4c24354d7c1c1c9e5930cb6e70c75703763'
'58cb7d60796bc69c7d0865f106feb589d0271619e62f8741bff6f5ce1a2615ff') '58cb7d60796bc69c7d0865f106feb589d0271619e62f8741bff6f5ce1a2615ff'
'5c453ccb8bfe6e0b05d7a55e66dcfa793ea81d9bbe9fdc41f668326ba9310deb')
validpgpkeys=('9EBD001680E8C8F9FAC61A9BE1A701D4C9DE75B5') validpgpkeys=('9EBD001680E8C8F9FAC61A9BE1A701D4C9DE75B5')
prepare() { prepare() {
@ -25,6 +27,7 @@ prepare() {
patch -Np1 -i ../intltool-0.51.0-perl-5.26.patch patch -Np1 -i ../intltool-0.51.0-perl-5.26.patch
patch -Np1 -i ../intltool-merge-Create-cache-file-atomically.patch patch -Np1 -i ../intltool-merge-Create-cache-file-atomically.patch
patch -Np1 -i ../intltool_distcheck-fix.patch patch -Np1 -i ../intltool_distcheck-fix.patch
patch -Np1 -i ../intltool-fixrace.patch # https://bugs.launchpad.net/intltool/+bug/1687644
} }
build() { build() {

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