Compare commits

..

1 commit

Author SHA1 Message Date
raveit65
7c8ca8a175 Convert to %autorelease and %autochangelog
[skip changelog]
2025-02-27 23:16:36 +01:00
3 changed files with 165 additions and 54 deletions

View file

@ -1,46 +0,0 @@
From 7355bdbca18c95a2b99cb254434ad2c2248d6747 Mon Sep 17 00:00:00 2001
From: Gianfranco Costamagna <locutusofborg@debian.org>
Date: Wed, 2 Dec 2020 16:52:53 +0100
Subject: [PATCH] [PATCH] Avoid a race where some processes try to use a
partial cache
Gbp-Pq: 0001-Avoid-a-race-where-some-processes-try-to-use-a-parti.patch.
---
intltool-merge.in | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/intltool-merge.in b/intltool-merge.in
index 05db7cf930..89923a7da1 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

View file

@ -18,18 +18,19 @@ BuildRequires: perl(Getopt::Long)
BuildRequires: perl(XML::Parser)
BuildRequires: gettext
BuildRequires: make
# http://bugzilla.gnome.org/show_bug.cgi?id=568845
# Dropping this patch per the last comment on that thread:
# Martin Pitt: As the reporter of the bug I close this, as the new API du jour is gsettings,
# which has a sensible gettext integration.
#Patch0: schemas-merge.patch
# Fix intltool-update to work with perl 5.26. Patch taken from
# Debian's intltool_0.51.0-4.debian.tar.xz
Patch: intltool-perl5.26-regex-fixes.patch
Patch1: intltool-perl5.26-regex-fixes.patch
# https://bugs.launchpad.net/intltool/+bug/1505260
# https://bugzilla.redhat.com/show_bug.cgi?id=1249051
Patch: intltool-merge-Create-cache-file-atomically.patch
Patch2: intltool-merge-Create-cache-file-atomically.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1318674
Patch: intltool_distcheck-fix.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=2268342
# https://bugs.launchpad.net/intltool/+bug/1687644
Patch: intltool-cache-race.patch
Patch3: intltool_distcheck-fix.patch
%description
This tool automatically extracts translatable strings from oaf, glade,
@ -37,7 +38,10 @@ bonobo ui, nautilus theme, .desktop, and other data files and puts
them in the po files.
%prep
%autosetup -p1
%setup -q
%patch 1 -p1
%patch 2 -p1
%patch 3 -p1
%build
%configure

153
schemas-merge.patch Normal file
View file

@ -0,0 +1,153 @@
diff -up intltool-0.40.6/intltool-merge.in.schemas intltool-0.40.6/intltool-merge.in
--- intltool-0.40.6/intltool-merge.in.schemas 2009-02-14 17:12:28.000000000 -0500
+++ intltool-0.40.6/intltool-merge.in 2009-04-27 01:41:11.099450891 -0400
@@ -38,8 +38,9 @@ my $PACKAGE = "@PACKAGE@";
my $VERSION = "@VERSION@";
## Loaded modules
-use strict;
+use strict;
use Getopt::Long;
+use Cwd;
use Text::Wrap;
use File::Basename;
use Encode;
@@ -68,6 +69,9 @@ my $PASS_THROUGH_ARG = 0;
my $UTF8_ARG = 0;
my $MULTIPLE_OUTPUT = 0;
my $cache_file;
+my $GETTEXT_PACKAGE = "";
+my %varhash = ();
+my $SRCDIR = $ENV{"srcdir"} || ".";
## Handle options
GetOptions
@@ -87,7 +91,8 @@ GetOptions
"pass-through|p" => \$PASS_THROUGH_ARG,
"utf8|u" => \$UTF8_ARG,
"multiple-output|m" => \$MULTIPLE_OUTPUT,
- "cache|c=s" => \$cache_file
+ "cache|c=s" => \$cache_file,
+ "gettext-package|g=s" => \$GETTEXT_PACKAGE
) or &error;
my $PO_DIR;
@@ -103,6 +108,8 @@ my $w = "[-A-Za-z0-9._:]";
# XML quoted string contents
my $q = "[^\\\"]*";
+my $MODULE = $GETTEXT_PACKAGE || FindPackageName() || "unknown";
+
## Check for options.
if ($VERSION_ARG)
@@ -216,6 +223,8 @@ Other options:
a single file containing all localized elements
-c, --cache=FILE specify cache file name
(usually \$top_builddir/po/.intltool-merge-cache)
+ -g, --gettext-package=NAME
+ specify gettext domain, needed for --schemas-style
-q, --quiet suppress most messages
--help display this help and exit
--version output version information and exit
@@ -241,6 +250,25 @@ sub print_message
}
+sub FindPackageName
+{
+ my $name = "";
+
+ my $conf_source; {
+ local (*IN);
+ open (IN, "<Makefile") || return $name;
+ seek (IN, 0, 0);
+ local $/; # slurp mode
+ $conf_source = <IN>;
+ close IN;
+ }
+
+ $name = $1 if $conf_source =~ /^GETTEXT_PACKAGE = \[?([^\n\]]+)/m;
+
+ return $name if $name;
+}
+
+
sub preparation
{
$PO_DIR = $ARGV[0];
@@ -1246,50 +1274,41 @@ sub schemas_merge_translations
my $short_string = $9 ? $9 : '';
my $long_string = $12 ? $12 : '';
- print OUTPUT "$locale_start_spaces$c_default_block";
-
$default_string =~ s/\s+/ /g;
- $default_string = entity_decode($default_string);
$short_string =~ s/\s+/ /g;
- $short_string = entity_decode($short_string);
$long_string =~ s/\s+/ /g;
- $long_string = entity_decode($long_string);
- for my $lang (sort keys %po_files_by_lang)
- {
- my $default_translation = $translations{$lang, $default_string};
- my $short_translation = $translations{$lang, $short_string};
- my $long_translation = $translations{$lang, $long_string};
-
- next if (!$default_translation && !$short_translation &&
- !$long_translation);
-
- print OUTPUT "\n$locale_start_spaces<locale name=\"$lang\">";
+ print OUTPUT "$locale_start_spaces<gettext_domain>$MODULE</gettext_domain>";
+ print OUTPUT "$locale_start_spaces<locale name=\"C\">";
print OUTPUT "$default_spaces";
-
- if ($default_translation)
- {
- $default_translation = entity_encode($default_translation);
- print OUTPUT "<default>$default_translation</default>";
+ if ($default_string) {
+ print OUTPUT "<default>$default_string</default>";
}
+ print OUTPUT "$short_spaces";
+ if ($short_string) {
+ print OUTPUT "<short>$short_string</short>";
+ }
+ print OUTPUT "$long_spaces";
+ if ($long_string) {
+ print OUTPUT "<long>$long_string</long>";
+ }
+ print OUTPUT "$locale_end_spaces</locale>";
- print OUTPUT "$short_spaces";
+ $default_string = entity_decode($default_string);
+ $short_string = entity_decode($short_string);
+ $long_string = entity_decode($long_string);
- if ($short_translation)
- {
- $short_translation = entity_encode($short_translation);
- print OUTPUT "<short>$short_translation</short>";
- }
+ for my $lang (sort keys %po_files_by_lang)
+ {
+ my $default_translation = $translations{$lang, $default_string};
- print OUTPUT "$long_spaces";
+ next if (!$default_translation || ($default_translation eq $default_string));
- if ($long_translation)
- {
- $long_translation = entity_encode($long_translation);
- print OUTPUT "<long>$long_translation</long>";
- }
+ $default_translation = entity_encode($default_translation);
+ print OUTPUT "\n$locale_start_spaces<locale name=\"$lang\">";
+ print OUTPUT "$default_spaces<default>$default_translation</default>";
print OUTPUT "$locale_end_spaces</locale>";
}
}
diff -up intltool-0.40.6/tests/results/test.schemas intltool-0.40.6/tests/results/test