Sync from SUSE:SLFO:Main gettext-runtime revision 66bc5960bb70ee115fe20fc5a80f0993

This commit is contained in:
2025-04-07 17:54:29 +02:00
parent 8d6587d89d
commit fc361bc81b
22 changed files with 948 additions and 265 deletions

View File

@@ -29,20 +29,19 @@ Index: gettext-0.21/gettext-tools/src/Makefile.am
write-catalog.h write-po.h write-properties.h write-stringtable.h \
dir-list.h file-list.h po-gram-gen.h po-gram-gen2.h cldr-plural.h \
cldr-plural-exp.h locating-rule.h its.h search-path.h \
- msgl-charset.h msgl-equal.h msgl-iconv.h msgl-ascii.h msgl-cat.h msgl-header.h \
+ msgl-age.h msgl-charset.h msgl-equal.h msgl-iconv.h msgl-ascii.h msgl-cat.h msgl-header.h \
msgl-english.h msgl-check.h msgl-fsearch.h msgfmt.h msgunfmt.h \
- msgl-charset.h msgl-equal.h msgl-iconv.h msgl-ascii.h msgl-ofn.h msgl-cat.h \
+ msgl-age.h msgl-charset.h msgl-equal.h msgl-iconv.h msgl-ascii.h msgl-ofn.h msgl-cat.h \
msgl-header.h msgl-english.h msgl-check.h msgl-fsearch.h msgfmt.h msgunfmt.h \
plural-count.h plural-eval.h plural-distrib.h \
read-mo.h write-mo.h \
@@ -174,7 +174,7 @@ FORMAT_SOURCE += \
libgettextsrc_la_SOURCES = \
$(COMMON_SOURCE) read-catalog.c \
write-catalog.c write-properties.c write-stringtable.c write-po.c \
-msgl-ascii.c msgl-iconv.c msgl-equal.c msgl-cat.c msgl-header.c msgl-english.c \
+msgl-age.c msgl-ascii.c msgl-iconv.c msgl-equal.c msgl-cat.c msgl-header.c msgl-english.c \
msgl-check.c file-list.c msgl-charset.c po-time.c plural-exp.c plural-eval.c \
plural-table.c quote.h sentence.h sentence.c \
$(FORMAT_SOURCE) \
@@ -174,6 +174,7 @@ FORMAT_SOURCE += \
$(COMMON_SOURCE) \
read-catalog.c \
write-catalog.c write-properties.c write-stringtable.c write-po.c \
+ msgl-age.c \
msgl-ascii.c \
msgl-ofn.c \
msgl-iconv.c \
Index: gettext-0.21/gettext-tools/src/message.c
===================================================================
--- gettext-0.21.orig/gettext-tools/src/message.c
@@ -283,8 +282,8 @@ Index: gettext-0.21/gettext-tools/src/msgl-cat.c
#include "po-charset.h"
+#include "msgl-age.h"
#include "msgl-ascii.h"
#include "msgl-ofn.h"
#include "msgl-equal.h"
#include "msgl-iconv.h"
@@ -57,6 +58,11 @@ int less_than;
If false, merge all available translations into one and fuzzy it. */
bool use_first;

View File

@@ -41,8 +41,8 @@ Index: gettext-0.20.1/gettext-tools/src/msgl-cat.c
--- gettext-0.20.1.orig/gettext-tools/src/msgl-cat.c
+++ gettext-0.20.1/gettext-tools/src/msgl-cat.c
@@ -40,6 +40,7 @@
#include "msgl-age.h"
#include "msgl-ascii.h"
#include "msgl-ofn.h"
#include "msgl-equal.h"
+#include "msgl-header.h"
#include "msgl-iconv.h"

View File

@@ -0,0 +1,98 @@
From 88d67f8eacdd301d836a6902374dc10e8cc05d57 Mon Sep 17 00:00:00 2001
From: Stanislav Brabec <sbrabec@suse.com>
Date: Wed, 26 Feb 2025 03:00:18 +0100
Subject: [PATCH 3/3] Fix malformed header processing
---
gettext-tools/src/msgl-header.c | 68 ++++++++++++++++++++++++---------
1 file changed, 51 insertions(+), 17 deletions(-)
diff --git a/gettext-tools/src/msgl-header.c b/gettext-tools/src/msgl-header.c
index 6fe659e73..fb5186a89 100644
--- a/gettext-tools/src/msgl-header.c
+++ b/gettext-tools/src/msgl-header.c
@@ -397,30 +397,64 @@ message_list_header_list (message_list_ty *mlp)
{
/* We found the correct message. */
message_ty *mp = mlp->item[j];
+
+ /* Test whether the field occurs in the header entry. */
const char *h = mp->msgstr;
+
message_list_ty * header = message_list_alloc (false);
int ctr = 0;
while (*h != '\0')
- {
- char *enh = strchr (h, ':');
- enh++;
- char * msgid = (char *)XNMALLOC (((enh - h) + 1), char);
- memcpy (msgid, h, enh - h);
- /* Make the string null-terminated. */
- (msgid)[enh-h] = '\0';
- h = enh + 1;
-
- enh = strchr (h, '\n');
- if (enh != NULL)
+ {
+ const char *enh;
+ const char *enhz;
+ const char *sep;
+ const char *value;
+
+ enh = strchr (h, '\n');
+ if (enh)
+ {
+ enhz = enh;
+ enh++;
+ }
+ else
+ {
+ /* Missing trailing EOL. */
+ enh = h + strlen(h);
+ enhz = enh;
+ }
+
+ sep = strchr (h, ':');
+ if (sep == NULL || sep >= enhz)
+ {
+ /* Line does not contain ':'. */
+ sep = enhz;
+ value = enhz;
+ }
+ else
+ {
+ sep++;
+ if (*sep != ' ')
+ /* ' ' missing after ':'. */
+ value = sep;
+ else
+ value = sep + 1;
+ }
+
+ char * msgid = (char *)XNMALLOC (((sep - h) + 1), char);
+ memcpy (msgid, h, sep - h);
+ /* Make the string null-terminated. */
+ msgid[sep-h] = '\0';
+ char * msgstr = (char *)XNMALLOC (((enhz - value) + 1), char);
+ memcpy (msgstr, value, enhz - value);
+ /* Make the string null-terminated. */
+ msgstr[enhz-value] = '\0';
+
+ if (h != NULL)
{
- char * msgstr = (char *)XNMALLOC (((enh - h) + 1), char);
- memcpy (msgstr, h, enh - h);
- /* Make the string null-terminated. */
- msgstr[enh-h] = '\0';
lex_pos_ty pos = {NULL, ctr++};
- message_list_append (header, message_alloc (NULL, msgid, NULL, msgstr, enh - h, &pos));
- h = enh + 1;
+ message_list_append (header, message_alloc (NULL, msgid, NULL, msgstr, enhz - value, &pos));
+ h = enh;
}
else return NULL;
}
--
2.48.1

View File

@@ -1,7 +1,7 @@
Index: gettext-tools/misc/gettextize.in
===================================================================
--- gettext-tools/misc/gettextize.in.orig 2010-06-06 14:49:57.000000000 +0200
+++ gettext-tools/misc/gettextize.in 2010-12-20 18:47:11.932132562 +0100
--- a/gettext-tools/misc/gettextize.in.orig 2010-06-06 14:49:57.000000000 +0200
+++ b/gettext-tools/misc/gettextize.in 2010-12-20 18:47:11.932132562 +0100
@@ -1262,20 +1262,6 @@ if $doit; then
echo "It is a wrapper around <libintl.h> that implements the configure --disable-nls"
echo "option."

View File

@@ -1,7 +1,7 @@
Index: gettext-runtime/intl/dcigettext.c
===================================================================
--- gettext-runtime/intl/dcigettext.c.orig 2010-06-06 14:49:57.000000000 +0200
+++ gettext-runtime/intl/dcigettext.c 2010-12-20 18:47:11.543133542 +0100
--- a/gettext-runtime/intl/dcigettext.c.orig 2010-06-06 14:49:57.000000000 +0200
+++ b/gettext-runtime/intl/dcigettext.c 2010-12-20 18:47:11.543133542 +0100
@@ -68,20 +68,7 @@ extern int errno;
#endif
@@ -26,8 +26,8 @@ Index: gettext-runtime/intl/dcigettext.c
# include <sys/param.h>
Index: gettext-runtime/intl/eval-plural.h
===================================================================
--- gettext-runtime/intl/eval-plural.h.orig 2010-06-06 14:49:57.000000000 +0200
+++ gettext-runtime/intl/eval-plural.h 2010-12-20 18:48:36.928872823 +0100
--- a/gettext-runtime/intl/eval-plural.h.orig 2010-06-06 14:49:57.000000000 +0200
+++ b/gettext-runtime/intl/eval-plural.h 2010-12-20 18:48:36.928872823 +0100
@@ -62,16 +62,12 @@ plural_eval (const struct expression *pe
case mult:
return leftarg * rightarg;

View File

@@ -1,144 +0,0 @@
Index: gettext-0.21.1/gettext-runtime/configure.ac
===================================================================
--- gettext-0.21.1.orig/gettext-runtime/configure.ac
+++ gettext-0.21.1/gettext-runtime/configure.ac
@@ -34,7 +34,7 @@ AC_PROG_INSTALL
gt_JAVA_CHOICE
AS_IF([test "$JAVA_CHOICE" != no], [
- gt_JAVACOMP([1.5], [1.6])
+ gt_JAVACOMP([1.8], [1.8])
AC_CHECK_PROG([JAR], [jar], [jar])
if test -n "$HAVE_JAVACOMP" && test -n "$JAR"; then
BUILDJAVA=yes
Index: gettext-0.21.1/gettext-tools/configure.ac
===================================================================
--- gettext-0.21.1.orig/gettext-tools/configure.ac
+++ gettext-0.21.1/gettext-tools/configure.ac
@@ -35,7 +35,7 @@ AC_PROG_INSTALL
gt_JAVA_CHOICE
AS_IF([test "$JAVA_CHOICE" != no], [
gt_JAVAEXEC
- gt_JAVACOMP([1.5])
+ gt_JAVACOMP([1.8], [1.8])
AC_CHECK_PROG([JAR], [jar], [jar])
if test -n "$HAVE_JAVACOMP" && test -n "$JAR" && test "$JAVA_CHOICE" != no; then
BUILDJAVA=yes
Index: gettext-0.21.1/gettext-tools/gnulib-lib/javacomp.c
===================================================================
--- gettext-0.21.1.orig/gettext-tools/gnulib-lib/javacomp.c
+++ gettext-0.21.1/gettext-tools/gnulib-lib/javacomp.c
@@ -116,9 +116,8 @@ default_target_version (void)
&& (java_version_cache[1] >= '2'
&& java_version_cache[1] <= '7')
&& java_version_cache[2] == '\0')
- /* Assume that these (not yet released) Java versions will behave
- like the preceding ones. */
- java_version_cache = "11";
+ /* It's one of the valid target version values. */
+ ;
else
java_version_cache = "1.1";
}
@@ -128,7 +127,7 @@ default_target_version (void)
/* ======================= Source version dependent ======================= */
/* Convert a source version to an index. */
-#define SOURCE_VERSION_BOUND 8 /* exclusive upper bound */
+#define SOURCE_VERSION_BOUND 14 /* exclusive upper bound */
static unsigned int
source_version_index (const char *source_version)
{
@@ -144,7 +143,7 @@ source_version_index (const char *source
else if (source_version[0] == '9' && source_version[1] == '\0')
return 5;
else if (source_version[0] == '1'
- && (source_version[1] >= '0' && source_version[1] <= '1')
+ && (source_version[1] >= '0' && source_version[1] <= '7')
&& source_version[2] == '\0')
return source_version[1] - '0' + 6;
error (EXIT_FAILURE, 0, _("invalid source_version argument to compile_java_class"));
@@ -171,6 +170,10 @@ get_goodcode_snippet (const char *source
return "class conftest { public void m() { var i = new Integer(0); } }\n";
if (strcmp (source_version, "11") == 0)
return "class conftest { Readable r = (var b) -> 0; }\n";
+ if (source_version[0] == '1'
+ && (source_version[1] >= '2' && source_version[1] <= '7')
+ && source_version[2] == '\0')
+ return "class conftest { Readable r = (var b) -> 0; }\n";
error (EXIT_FAILURE, 0, _("invalid source_version argument to compile_java_class"));
return NULL;
}
@@ -197,6 +200,10 @@ get_failcode_snippet (const char *source
return "class conftestfail { Readable r = (var b) -> 0; }\n";
if (strcmp (source_version, "11") == 0)
return NULL;
+ if (source_version[0] == '1'
+ && (source_version[1] >= '2' && source_version[1] <= '7')
+ && source_version[2] == '\0')
+ return NULL;
error (EXIT_FAILURE, 0, _("invalid source_version argument to compile_java_class"));
return NULL;
}
@@ -204,7 +211,7 @@ get_failcode_snippet (const char *source
/* ======================= Target version dependent ======================= */
/* Convert a target version to an index. */
-#define TARGET_VERSION_BOUND 11 /* exclusive upper bound */
+#define TARGET_VERSION_BOUND 17 /* exclusive upper bound */
static unsigned int
target_version_index (const char *target_version)
{
@@ -215,7 +222,7 @@ target_version_index (const char *target
else if (target_version[0] == '9' && target_version[1] == '\0')
return 8;
else if (target_version[0] == '1'
- && (target_version[1] >= '0' && target_version[1] <= '1')
+ && (target_version[1] >= '0' && target_version[1] <= '7')
&& target_version[2] == '\0')
return target_version[1] - '0' + 9;
error (EXIT_FAILURE, 0, _("invalid target_version argument to compile_java_class"));
@@ -245,10 +252,10 @@ corresponding_classfile_version (const c
return 52;
if (strcmp (target_version, "9") == 0)
return 53;
- if (strcmp (target_version, "10") == 0)
- return 54;
- if (strcmp (target_version, "11") == 0)
- return 55;
+ if (target_version[0] == '1'
+ && (target_version[1] >= '0' && target_version[1] <= '7')
+ && target_version[2] == '\0')
+ return target_version[1] + 54;
error (EXIT_FAILURE, 0, _("invalid target_version argument to compile_java_class"));
return 0;
}
@@ -2439,7 +2446,7 @@ compile_java_class (const char * const *
}
}
- error (0, 0, _("Java compiler not found, try installing gcj or set $JAVAC"));
+ /* error (0, 0, _("Java compiler not found, try installing gcj or set $JAVAC")); */
err = true;
done2:
Index: gettext-0.21.1/gettext-tools/src/write-java.c
===================================================================
--- gettext-0.21.1.orig/gettext-tools/src/write-java.c
+++ gettext-0.21.1/gettext-tools/src/write-java.c
@@ -1209,8 +1209,14 @@ msgdomain_write_java (message_list_ty *m
Java compilers create the class files in the source file's directory -
which is in a temporary directory in our case. */
java_sources[0] = java_file_name;
- if (compile_java_class (java_sources, 1, NULL, 0, "1.5", "1.6", directory,
+ if (1
+ && (compile_java_class (java_sources, 1, NULL, 0, "17", "17", directory,
+ true, false, true, verbose > 0)) /* assume JDK 17 */
+ && (compile_java_class (java_sources, 1, NULL, 0, "11", "11", directory,
+ true, false, true, verbose > 0)) /* assume JDK 11 */
+ && (compile_java_class (java_sources, 1, NULL, 0, "1.5", "1.6", directory,
true, false, true, verbose > 0))
+ )
{
if (!verbose)
error (0, 0,

BIN
gettext-0.21.1.tar.xz (Stored with Git LFS)

Binary file not shown.

View File

@@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEkAG4WvnhuD3xvalC9b6LJnxqQG0FAmNDU6UACgkQ9b6LJnxq
QG0TBg//SO/rw2U2fSAFX43+TMLUm5ZkvClz1lqE+nbRyb86ShLgyDJrDzZ+BeYo
FEWTelhLs82ruiZ0ed8xy1gvErW614CxOgMwHPb3ZTkI3Q6mJqFzujYcKnCRsRv+
hX+iAu/A4P+UMvreWvfDKoF0qe9ORARg8tE9dgCCN63+QLu+3HrTuxvOaIChghbx
BaNn27MmgkutvXYspnx6u5koZXQpnt17YNJe1wbNAVym1O6ByfWPoP7+OYds8wAF
jOoAALHj/zrJYL/Sg3SjKdfvVHNesyMFNg/HSA0w4mZbnuLjBcl0lO6qU9RBubgx
aqqS/+zwvI3om/EdqKZxGvRTfhz/MUQ5rij3gjopz27MLW6Z5lsbGDq6PQYIFxBA
0KXE0LHWCQRZu/8Z+zAiiiitEYhhYDX4A3ycbhCF+ZJ6TfJ5t8qYYNvzGGp4k2Gv
h8VVFGnZJqDLwa0pbkFi2aGAI3HzVaSAJOhUJjdQ9HAujgSppLmZxODbHcq3KXnq
iR88aqzmOg5dH5m+kENV+9KfysWptmdaIpcdmJTPXtRcdeL7QtfH+Bpq+ePgPThM
JT2Yz+uWiTQqDBTIpJHhSKYTdim34ynKJbDnYphTncdvXm/juuK762dpy5jhcoiJ
Ah8LfiikxiKDjJVivSs7zx1lQPnvJvC9UtlZZrMqx+GYD0y8w20=
=U/vR
-----END PGP SIGNATURE-----

BIN
gettext-0.22.5.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

16
gettext-0.22.5.tar.xz.sig Normal file
View File

@@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEkAG4WvnhuD3xvalC9b6LJnxqQG0FAmXWoBsACgkQ9b6LJnxq
QG3T8w//Q81Fg9O8duoSxmmUUTYLjSi5Sn21qS3n3/J+unlj2BkzyXPg9Jyj1IsE
9ZVRHEmPoX+c4zJjWQkDDiVqJWwyEBwc0dXlbdQ48N5oHGYnZwhfaProxggKDKyW
O2XujELz4tKkuXzKpiWtywyf5qKwxkZPmSNG/CjP+8MW0NpRMtyZyEZqlCX7ZyEZ
50Pi32nUagpyA24yRGdzuJpyJ40mPu8idLMj9gkaYmlV3vgitK5YW7ybX8q+3qnr
A96MNA1sDxYx5YdQsI4DEVAyt7KSZd8a0HBdYFMHPTa82GjqamV4RJzb+SF2baPl
dhVtDUOuW6HsQNdKxcDhXE3uUamN3egQoyNCna2We8iq2wUSgddqjkmdK4xDgsyM
LqAUKXaDNg4kSVsG6CQ6RfKc2Z3F9nVh/tofb2+CaAZ6AktiXU9G9Ufni1g4KFqD
5Hlp7z0ENzLSqhAONj3I1uWkWS77Hv52lSiBaN+08wCH06B061zZKeUXA6YCx/JO
hzkYqNa+2nLpu9sKMpaQtN6mCcoJz2MnyMyA+P8eAx+K6mwKJm4wiGW1zanEomHM
3cRgacHxFwlsSc1V8EwoRZkpwUoHPBVkBPm3BQMsRwdNY2mwPZRotPGG8UjdgepW
HQwY2DBt2sPDF2MleQVe1khSBlXQboVfILE1+qzPPQsBEQEstJE=
=BK/C
-----END PGP SIGNATURE-----

View File

@@ -1,3 +1,114 @@
-------------------------------------------------------------------
Wed Feb 26 03:01:34 CET 2025 - Stanislav Brabec <sbrabec@suse.com>
- Fix crash while handling po files with malformed header and
process them properly
(0003-Fix-malformed-header-processing.patch, boo#1227316).
-------------------------------------------------------------------
Tue Jul 16 08:42:20 UTC 2024 - Bernhard Wiedemann <bwiedemann@suse.com>
- Use %autosetup
-------------------------------------------------------------------
Mon Feb 26 14:57:24 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Use %patch -P N instead of deprecated %patchN.
-------------------------------------------------------------------
Sat Feb 24 18:50:38 UTC 2024 - Andreas Stieger <andreas.stieger@gmx.de>
- update to 0.22.5:
* xgettext's processing of Vala files with printf method
invocations has been corrected (regression in 0.22)
-------------------------------------------------------------------
Tue Feb 13 09:03:34 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
- Update to version 0.22.4
* Bug fixes:
- AM_GNU_GETTEXT now recognizes a statically built libintl on
macOS and AIX.
- Build fixes on AIX
- Update to version 0.22.3
* Portability:
- The libintl library now works on macOS 14. (Older versions
of libintl crash on macOS 14, due to an incompatible change
in macOS.)
- Update to version 0.22.2
* No information available upstream
- Update to version 0.22.1
* Bug fixes:
- The libintl shared library now exports again some symbols
that were accidentally missing.
- xgettext's processing of large Perl files may have led to
errors.
- "xgettext --join-existing" could encounter errors.
* Portability:
- Building on Android is now supported.
- Update to version 0.22.0
* PO file format:
- When a #: line contains references to file names that contain
spaces, these file names are surrounded by Unicode characters
U+2068 and U+2069. This makes it possible to parse such
references correctly.
* Improvements for maintainers:
- The AM_GNU_GETTEXT macro now defines two variables
localedir_c and localedir_c_make, that can be used in C code
or in Makefiles, respectively, for representing the value of
the --localedir configure option.
* Programming languages support:
- C, C++:
+ xgettext now supports gettext-like functions that take wide
strings (of type 'const wchar_t *', 'const char16_t *', or
'const char32_t *') as arguments.
+ xgettext now recognizes numbers with digit separators, as
defined by ISO C 23, as tokens.
+ xgettext and msgfmt now recognize the format string
directive %b (for binary integer output, as defined by
ISO C 23) in format strings.
+ xgettext and msgfmt now recognize the argument size
specifiers w8, w16, w32, w64, wf8, wf16, wf32, wf64
(as defined by ISO C 23) in format strings.
+ xgettext and msgfmt now recognize C++ format strings, as
defined by ISO C++ 20. They are marked as 'c++-format' in
POT and PO files. A new example has been added,
'hello-c++20', that illustrates how to use these format
strings with gettext.
- Java:
+ The build system and tools now also support Java versions
newer than Java 11. This is known to work up to Java 20,
at least. On the other hand, support for old versions of
Java (Java 1.5 and GCJ) has been dropped.
+ Tcl: xgettext now supports the \x, \u, and \U escapes as
defined in Tcl 8.6.
* Portability:
- On systems with musl libc, the *gettext() functions in libc
now work with MO files generated from PO files with an
encoding other than UTF-8. To this effect, the msgfmt program
now converts the messages to UTF-8 encoding before storing
them in a MO file. You can prevent this byusing the msgfmt
--no-convert option.
- On systems with musl libc, the *gettext() functions in libc
now work with MO files generated from PO files with ISO C 99
<inttypes.h> format string directive macros. To this effect,
the msgfmt program pre-expands strings with such macros. You
can prevent this by using the msgfmt --no-redundancy option.
* xgettext:
- The xgettext option '--sorted-output' is now deprecated.
- xgettext input files of type PO that are not all ASCII and
not UTF-8 encoded are now handled correctly.
* The base Unicode standard is now updated to 15.0.0.
* Emacs PO mode:
- Fix an incompatibility with Emacs version 29 or newer.
- Rebase patches:
* gettext-dont-test-gnulib.patch
* 0001-msgcat-Add-feature-to-use-the-newest-po-file.patch
* 0002-msgcat-Merge-headers-when-use-first.patch
- Drop patch which isn't required anymore since newer java
versions are already supported by upstream:
* gettext-0.21-jdk17.patch
-------------------------------------------------------------------
Thu May 4 13:32:58 UTC 2023 - Frederic Crozat <fcrozat@suse.com>

View File

@@ -1,7 +1,7 @@
#
# spec file for package gettext-csharp
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
%global debug_package %{nil}
%endif
Name: gettext-csharp
Version: 0.21.1
Version: 0.22.5
Release: 0
Summary: Native Language Support (NLS) for C#
License: LGPL-2.1-or-later
@@ -40,7 +40,6 @@ Patch4: gettext-po-mode.diff
Patch5: gettext-initialize_vars.patch
# PATCH-FIX-OPENSUSE gettext-dont-test-gnulib.patch -- coolo@suse.de
Patch6: gettext-dont-test-gnulib.patch
Patch7: gettext-0.21-jdk17.patch
# PATCH-FIX-UPSTREAM boo#941629 -- pth@suse.com
Patch11: boo941629-unnessary-rpath-on-standard-path.patch
# PATCH-FIX-SUSE Bug boo#1106843
@@ -48,6 +47,9 @@ Patch13: reproducible.patch
# PATCH-FEATURE bsc#1165138
Patch14: 0001-msgcat-Add-feature-to-use-the-newest-po-file.patch
Patch15: 0002-msgcat-Merge-headers-when-use-first.patch
# PATCH-FEATURE-FIX-SUSE boo#1227316 -- sbrabec@suse.com
Patch16: 0003-Fix-malformed-header-processing.patch
BuildRequires: automake >= 1.14
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: glib2-devel
@@ -80,19 +82,7 @@ also included msgfmt.net.exe and msgunfmt.net.exe handle PO files more
reliably than 'resgen'.
%prep
%setup -q -n gettext-%{version}
%patch0
%patch1 -p1
%patch2
%patch3 -p1
%patch4
%patch5
%patch6 -p1
%patch7 -p1
%patch11 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%autosetup -p1 -n gettext-%{version}
%build
export CFLAGS="%{optflags} -pipe -W -Wall -Dgcc_is_lint -lm"

View File

@@ -7,8 +7,8 @@ From: Stephan Kulow <coolo@suse.de>
AUTOMAKE_OPTIONS = 1.5 gnu no-dependencies
ACLOCAL_AMFLAGS = -I m4 -I ../gettext-runtime/m4 -I ../m4 -I gnulib-m4 -I libgrep/gnulib-m4 -I libgettextpo/gnulib-m4
-SUBDIRS = intl gnulib-lib libgrep src libgettextpo po its projects styles emacs misc man m4 tests system-tests gnulib-tests examples doc
+SUBDIRS = intl gnulib-lib libgrep src libgettextpo po its projects styles emacs misc man m4 tests system-tests examples doc
-SUBDIRS = gnulib-lib libgrep src libgettextpo po its projects styles emacs misc man m4 tests system-tests gnulib-tests examples doc
+SUBDIRS = gnulib-lib libgrep src libgettextpo po its projects styles emacs misc man m4 tests system-tests examples doc
EXTRA_DIST = misc/DISCLAIM
MOSTLYCLEANFILES = core *.stackdump
@@ -18,8 +18,8 @@ From: Stephan Kulow <coolo@suse.de>
top_srcdir = @top_srcdir@
AUTOMAKE_OPTIONS = 1.5 gnu no-dependencies
ACLOCAL_AMFLAGS = -I m4 -I ../gettext-runtime/m4 -I ../m4 -I gnulib-m4 -I libgrep/gnulib-m4 -I libgettextpo/gnulib-m4
-SUBDIRS = intl gnulib-lib libgrep src libgettextpo po its projects styles emacs misc man m4 tests system-tests gnulib-tests examples doc
+SUBDIRS = intl gnulib-lib libgrep src libgettextpo po its projects styles emacs misc man m4 tests system-tests examples doc
-SUBDIRS = gnulib-lib libgrep src libgettextpo po its projects styles emacs misc man m4 tests system-tests gnulib-tests examples doc
+SUBDIRS = gnulib-lib libgrep src libgettextpo po its projects styles emacs misc man m4 tests system-tests examples doc
# Allow users to use "gnulib-tool --update".

View File

@@ -1,7 +1,7 @@
Index: gettext-tools/gnulib-lib/gl_anylinked_list2.h
===================================================================
--- gettext-tools/gnulib-lib/gl_anylinked_list2.h.orig 2010-05-24 11:42:37.000000000 +0200
+++ gettext-tools/gnulib-lib/gl_anylinked_list2.h 2010-12-20 18:47:11.981132438 +0100
--- a/gettext-tools/gnulib-lib/gl_anylinked_list2.h.orig 2010-05-24 11:42:37.000000000 +0200
+++ b/gettext-tools/gnulib-lib/gl_anylinked_list2.h 2010-12-20 18:47:11.981132438 +0100
@@ -34,6 +34,12 @@
# define ASYNCSAFE(type)
#endif

View File

@@ -1,3 +1,116 @@
-------------------------------------------------------------------
Wed Feb 26 03:01:34 CET 2025 - Stanislav Brabec <sbrabec@suse.com>
- Fix crash while handling po files with malformed header and
process them properly
(0003-Fix-malformed-header-processing.patch, boo#1227316).
-------------------------------------------------------------------
Tue Jul 16 08:42:20 UTC 2024 - Bernhard Wiedemann <bwiedemann@suse.com>
- Use %autosetup
- Add reproducible-jar.patch to use a constant jar mtime
for bit-reproducible builds
-------------------------------------------------------------------
Mon Feb 26 14:57:24 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Use %patch -P N instead of deprecated %patchN.
-------------------------------------------------------------------
Sat Feb 24 18:50:38 UTC 2024 - Andreas Stieger <andreas.stieger@gmx.de>
- update to 0.22.5:
* xgettext's processing of Vala files with printf method
invocations has been corrected (regression in 0.22)
-------------------------------------------------------------------
Tue Feb 13 09:03:34 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
- Update to version 0.22.4
* Bug fixes:
- AM_GNU_GETTEXT now recognizes a statically built libintl on
macOS and AIX.
- Build fixes on AIX
- Update to version 0.22.3
* Portability:
- The libintl library now works on macOS 14. (Older versions
of libintl crash on macOS 14, due to an incompatible change
in macOS.)
- Update to version 0.22.2
* No information available upstream
- Update to version 0.22.1
* Bug fixes:
- The libintl shared library now exports again some symbols
that were accidentally missing.
- xgettext's processing of large Perl files may have led to
errors.
- "xgettext --join-existing" could encounter errors.
* Portability:
- Building on Android is now supported.
- Update to version 0.22.0
* PO file format:
- When a #: line contains references to file names that contain
spaces, these file names are surrounded by Unicode characters
U+2068 and U+2069. This makes it possible to parse such
references correctly.
* Improvements for maintainers:
- The AM_GNU_GETTEXT macro now defines two variables
localedir_c and localedir_c_make, that can be used in C code
or in Makefiles, respectively, for representing the value of
the --localedir configure option.
* Programming languages support:
- C, C++:
+ xgettext now supports gettext-like functions that take wide
strings (of type 'const wchar_t *', 'const char16_t *', or
'const char32_t *') as arguments.
+ xgettext now recognizes numbers with digit separators, as
defined by ISO C 23, as tokens.
+ xgettext and msgfmt now recognize the format string
directive %b (for binary integer output, as defined by
ISO C 23) in format strings.
+ xgettext and msgfmt now recognize the argument size
specifiers w8, w16, w32, w64, wf8, wf16, wf32, wf64
(as defined by ISO C 23) in format strings.
+ xgettext and msgfmt now recognize C++ format strings, as
defined by ISO C++ 20. They are marked as 'c++-format' in
POT and PO files. A new example has been added,
'hello-c++20', that illustrates how to use these format
strings with gettext.
- Java:
+ The build system and tools now also support Java versions
newer than Java 11. This is known to work up to Java 20,
at least. On the other hand, support for old versions of
Java (Java 1.5 and GCJ) has been dropped.
+ Tcl: xgettext now supports the \x, \u, and \U escapes as
defined in Tcl 8.6.
* Portability:
- On systems with musl libc, the *gettext() functions in libc
now work with MO files generated from PO files with an
encoding other than UTF-8. To this effect, the msgfmt program
now converts the messages to UTF-8 encoding before storing
them in a MO file. You can prevent this byusing the msgfmt
--no-convert option.
- On systems with musl libc, the *gettext() functions in libc
now work with MO files generated from PO files with ISO C 99
<inttypes.h> format string directive macros. To this effect,
the msgfmt program pre-expands strings with such macros. You
can prevent this by using the msgfmt --no-redundancy option.
* xgettext:
- The xgettext option '--sorted-output' is now deprecated.
- xgettext input files of type PO that are not all ASCII and
not UTF-8 encoded are now handled correctly.
* The base Unicode standard is now updated to 15.0.0.
* Emacs PO mode:
- Fix an incompatibility with Emacs version 29 or newer.
- Rebase patches:
* gettext-dont-test-gnulib.patch
* 0001-msgcat-Add-feature-to-use-the-newest-po-file.patch
* 0002-msgcat-Merge-headers-when-use-first.patch
- Drop patch which isn't required anymore since newer java
versions are already supported by upstream:
* gettext-0.21-jdk17.patch
-------------------------------------------------------------------
Thu May 4 13:32:58 UTC 2023 - Frederic Crozat <fcrozat@suse.com>

View File

@@ -1,7 +1,7 @@
#
# spec file for package gettext-java
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: gettext-java
Version: 0.21.1
Version: 0.22.5
Release: 0
Summary: Java Support for Native Language Support (NLS)
License: LGPL-2.1-or-later
@@ -37,7 +37,6 @@ Patch4: gettext-po-mode.diff
Patch5: gettext-initialize_vars.patch
# PATCH-FIX-OPENSUSE gettext-dont-test-gnulib.patch -- coolo@suse.de
Patch6: gettext-dont-test-gnulib.patch
Patch7: gettext-0.21-jdk17.patch
# PATCH-FIX-UPSTREAM boo#941629 -- pth@suse.com
Patch11: boo941629-unnessary-rpath-on-standard-path.patch
# PATCH-FIX-SUSE Bug boo#1106843
@@ -45,6 +44,11 @@ Patch13: reproducible.patch
# PATCH-FEATURE bsc#1165138
Patch14: 0001-msgcat-Add-feature-to-use-the-newest-po-file.patch
Patch15: 0002-msgcat-Merge-headers-when-use-first.patch
# PATCH-FIX-UPSTREAM https://lists.gnu.org/archive/html/bug-gettext/2024-07/msg00021.html
Patch16: reproducible-jar.patch
# PATCH-FEATURE-FIX-SUSE boo#1227316 -- sbrabec@suse.com
Patch17: 0003-Fix-malformed-header-processing.patch
BuildRequires: automake >= 1.14
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: glib2-devel
@@ -65,19 +69,7 @@ Java applications. It also includes example code for java, java+awt and
java+swing.
%prep
%setup -q -n gettext-%{version}
%patch0
%patch1 -p1
%patch2
%patch3 -p1
%patch4
%patch5
%patch6 -p1
%patch7 -p1
%patch11 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%autosetup -p1 -n gettext-%{version}
%build
# expect a couple "You should update your `aclocal.m4' by running aclocal."

View File

@@ -1,7 +1,7 @@
Index: gettext-tools/emacs/po-mode.el
===================================================================
--- gettext-tools/emacs/po-mode.el.orig 2010-06-06 14:49:57.000000000 +0200
+++ gettext-tools/emacs/po-mode.el 2010-12-20 18:47:11.963132483 +0100
--- a/gettext-tools/emacs/po-mode.el.orig 2010-06-06 14:49:57.000000000 +0200
+++ b/gettext-tools/emacs/po-mode.el 2010-12-20 18:47:11.963132483 +0100
@@ -1242,6 +1242,7 @@ all reachable through 'M-x customize', i
;; mode-line-format usually contains global-mode-string, but some
;; people customize this variable. As a last resort, append at the end.

View File

@@ -1,3 +1,158 @@
-------------------------------------------------------------------
Wed Feb 26 03:01:34 CET 2025 - Stanislav Brabec <sbrabec@suse.com>
- Fix crash while handling po files with malformed header and
process them properly
(0003-Fix-malformed-header-processing.patch, boo#1227316).
-------------------------------------------------------------------
Thu Sep 12 10:43:39 UTC 2024 - Dan Čermák <dcermak@suse.com>
- Move envsubst requires into main package, gettext.sh is not part of
gettext-tools, but gettext-runtime (fixes boo#1227070)
-------------------------------------------------------------------
Tue Jul 16 08:42:20 UTC 2024 - Bernhard Wiedemann <bwiedemann@suse.com>
- Use %autosetup
-------------------------------------------------------------------
Thu Jun 6 14:23:04 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Fix envsubst-mini:
+ Conflicts with the 'full' envsubst
+ Require 'this-is-only-for-build-envs': ensure this does not
find it's way out of OBS onto installations.
-------------------------------------------------------------------
Tue Jun 4 09:36:01 UTC 2024 - Dan Čermák <dcermak@suse.com>
- add optional -mini suffix to envsubst package
-------------------------------------------------------------------
Tue May 21 10:25:25 UTC 2024 - Andreas Schwab <schwab@suse.de>
- Require glibc-gconv-modules-extra by the gettext-tools packages
-------------------------------------------------------------------
Tue May 14 10:06:12 UTC 2024 - Dan Čermák <dcermak@suse.com>
- Split out envsubst into a separate package
This allows us to pull in envsubst into containers without enlarging them
substantially. Additionally, this binary is standalone and useful outside of
the context of gettext.
-------------------------------------------------------------------
Mon Apr 15 07:24:01 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Require this-is-only-for-build-envs by the -mini packages: ensure
those mini packages never find their way onto a system, even when
published.
-------------------------------------------------------------------
Thu Apr 4 09:10:05 UTC 2024 - Dan Čermák <dcermak@suse.com>
- Add missing Requires: find to gettext-tools
-------------------------------------------------------------------
Mon Feb 26 14:57:24 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Use %patch -P N instead of deprecated %patchN.
-------------------------------------------------------------------
Sat Feb 24 18:50:38 UTC 2024 - Andreas Stieger <andreas.stieger@gmx.de>
- update to 0.22.5:
* xgettext's processing of Vala files with printf method
invocations has been corrected (regression in 0.22)
-------------------------------------------------------------------
Tue Feb 13 09:03:34 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
- Update to version 0.22.4
* Bug fixes:
- AM_GNU_GETTEXT now recognizes a statically built libintl on
macOS and AIX.
- Build fixes on AIX
- Update to version 0.22.3
* Portability:
- The libintl library now works on macOS 14. (Older versions
of libintl crash on macOS 14, due to an incompatible change
in macOS.)
- Update to version 0.22.2
* No information available upstream
- Update to version 0.22.1
* Bug fixes:
- The libintl shared library now exports again some symbols
that were accidentally missing.
- xgettext's processing of large Perl files may have led to
errors.
- "xgettext --join-existing" could encounter errors.
* Portability:
- Building on Android is now supported.
- Update to version 0.22.0
* PO file format:
- When a #: line contains references to file names that contain
spaces, these file names are surrounded by Unicode characters
U+2068 and U+2069. This makes it possible to parse such
references correctly.
* Improvements for maintainers:
- The AM_GNU_GETTEXT macro now defines two variables
localedir_c and localedir_c_make, that can be used in C code
or in Makefiles, respectively, for representing the value of
the --localedir configure option.
* Programming languages support:
- C, C++:
+ xgettext now supports gettext-like functions that take wide
strings (of type 'const wchar_t *', 'const char16_t *', or
'const char32_t *') as arguments.
+ xgettext now recognizes numbers with digit separators, as
defined by ISO C 23, as tokens.
+ xgettext and msgfmt now recognize the format string
directive %b (for binary integer output, as defined by
ISO C 23) in format strings.
+ xgettext and msgfmt now recognize the argument size
specifiers w8, w16, w32, w64, wf8, wf16, wf32, wf64
(as defined by ISO C 23) in format strings.
+ xgettext and msgfmt now recognize C++ format strings, as
defined by ISO C++ 20. They are marked as 'c++-format' in
POT and PO files. A new example has been added,
'hello-c++20', that illustrates how to use these format
strings with gettext.
- Java:
+ The build system and tools now also support Java versions
newer than Java 11. This is known to work up to Java 20,
at least. On the other hand, support for old versions of
Java (Java 1.5 and GCJ) has been dropped.
+ Tcl: xgettext now supports the \x, \u, and \U escapes as
defined in Tcl 8.6.
* Portability:
- On systems with musl libc, the *gettext() functions in libc
now work with MO files generated from PO files with an
encoding other than UTF-8. To this effect, the msgfmt program
now converts the messages to UTF-8 encoding before storing
them in a MO file. You can prevent this byusing the msgfmt
--no-convert option.
- On systems with musl libc, the *gettext() functions in libc
now work with MO files generated from PO files with ISO C 99
<inttypes.h> format string directive macros. To this effect,
the msgfmt program pre-expands strings with such macros. You
can prevent this by using the msgfmt --no-redundancy option.
* xgettext:
- The xgettext option '--sorted-output' is now deprecated.
- xgettext input files of type PO that are not all ASCII and
not UTF-8 encoded are now handled correctly.
* The base Unicode standard is now updated to 15.0.0.
* Emacs PO mode:
- Fix an incompatibility with Emacs version 29 or newer.
- Rebase patches:
* gettext-dont-test-gnulib.patch
* 0001-msgcat-Add-feature-to-use-the-newest-po-file.patch
* 0002-msgcat-Merge-headers-when-use-first.patch
- Drop patch which isn't required anymore since newer java
versions are already supported by upstream:
* gettext-0.21-jdk17.patch
-------------------------------------------------------------------
Thu May 4 13:32:58 UTC 2023 - Frederic Crozat <fcrozat@suse.com>

View File

@@ -1,7 +1,7 @@
#
# spec file for package gettext-runtime-mini
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,14 +20,15 @@
%bcond_without mini
Name: gettext-runtime-mini
Version: 0.21.1
Version: 0.22.5
Release: 0
BuildRequires: automake >= 1.14
BuildRequires: gcc-c++
BuildRequires: glibc-gconv-modules-extra
BuildRequires: libtool
# To get an updated linkdupes.sh (in case there are new dupes), temproarily enable:
#BuildRequires: fdupes
%if %{without mini}
BuildRequires: automake
BuildRequires: glib2-devel
BuildRequires: libxml2-devel
BuildRequires: perl-libintl-perl
@@ -45,9 +46,13 @@ Conflicts: gettext-tools-mini
%else
# to allow a prjconf preference which to take per build
Provides: gettext-runtime = %{version}
# Ensure this never finds its way onto a real installation
Requires: this-is-only-for-build-envs
# rpm-build requires gettext-tools, but we will only just be building it
#!BuildIgnore: gettext-tools
%endif
# gettext.sh requires envsubst
Requires: envsubst%{?with_mini:-mini} = %{version}
Summary: Tools for Native Language Support (NLS)
License: GPL-3.0-or-later AND LGPL-2.0-or-later
Group: Development/Tools/Other
@@ -67,7 +72,6 @@ Patch4: gettext-po-mode.diff
Patch5: gettext-initialize_vars.patch
# PATCH-FIX-OPENSUSE gettext-dont-test-gnulib.patch -- coolo@suse.de
Patch6: gettext-dont-test-gnulib.patch
Patch7: gettext-0.21-jdk17.patch
# PATCH-FIX-UPSTREAM boo#941629 -- pth@suse.com
Patch11: boo941629-unnessary-rpath-on-standard-path.patch
# PATCH-FIX-SUSE Bug boo#1106843
@@ -75,6 +79,8 @@ Patch13: reproducible.patch
# PATCH-FEATURE bsc#1165138
Patch14: 0001-msgcat-Add-feature-to-use-the-newest-po-file.patch
Patch15: 0002-msgcat-Merge-headers-when-use-first.patch
# PATCH-FEATURE-FIX-SUSE boo#1227316 -- sbrabec@suse.com
Patch16: 0003-Fix-malformed-header-processing.patch
%description
This package contains the intl library as well as tools that ease the
@@ -90,9 +96,13 @@ License: LGPL-2.1-or-later
Group: Development/Tools/Other
Requires: %{name} = %{version}
Requires: xz
# autopoint requires find
Requires: findutils
# For non-UTF encodings
Requires: glibc-gconv-modules-extra
%if %{without mini}
Requires(post): info
Requires(preun):info
Requires(preun): info
%endif
Provides: gettext-devel = %{version}
%if %{without mini}
@@ -107,6 +117,8 @@ Conflicts: gettext-tools-mini
%else
# to allow a prjconf preference which to take per build
Provides: gettext-tools = %{version}
# Ensure this never finds its way onto a real installation
Requires: this-is-only-for-build-envs
%endif
# Several tools use bison-runtime text domain:
%if 0%{?suse_version}
@@ -131,6 +143,17 @@ BuildArch: noarch
This subpackage contains the HTML version of the gettext documentation
as well as project examples.
%package -n envsubst%{?with_mini:-mini}
Summary: Environment substitution helper binary
%if %{with mini}
Conflicts: envsubst
Requires: this-is-only-for-build-envs
%endif
%description -n envsubst%{?with_mini:-mini}
This package contains the envsubst helper binary to replace values from the
environment.
%if %{without mini}
%package -n libtextstyle0
Summary: Provides textstyling for console output
@@ -152,19 +175,7 @@ This package provides headers and static libraries for libtextstyle
%endif
%prep
%setup -q -n %{pacname}-%{version}
%patch0
%patch1 -p1
%patch2
%patch3 -p1
%patch4
%patch5
%patch6 -p1
%patch7 -p1
%patch11 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%autosetup -p1 -n %{pacname}-%{version}
%build
%define _lto_cflags %{nil}
@@ -271,7 +282,6 @@ make check || {
%doc %dir %_docdir/%name/
%doc %_docdir/%name/gettext.1.html
%doc %_docdir/%name/ngettext.1.html
%doc %_docdir/%name/envsubst.1.html
%doc %_docdir/%name/*.3.html
%doc %_docdir/%name/AUTHORS
%doc %_docdir/%name/NEWS
@@ -279,7 +289,6 @@ make check || {
%doc %_docdir/%name/FAQ.html
%_bindir/gettext
%_bindir/ngettext
%_bindir/envsubst
%_bindir/gettext.sh
%_bindir/msgfmt
%_libdir/libgettextlib-*.so
@@ -287,7 +296,6 @@ make check || {
%_libdir/libasprintf.so.*
%doc %_mandir/man1/gettext.1.gz
%doc %_mandir/man1/ngettext.1.gz
%doc %_mandir/man1/envsubst.1.gz
%doc %_mandir/man1/msgfmt.1.gz
%doc %_mandir/man3/*
%_datadir/gettext/ABOUT-NLS
@@ -298,6 +306,12 @@ make check || {
%_datadir/emacs/site-lisp/start-po.*
%_datadir/emacs/site-lisp/suse-start-po-mode.el
%files -n envsubst%{?with_mini:-mini}
%license COPYING
%_bindir/envsubst
%doc %_mandir/man1/envsubst.1.gz
%doc %_docdir/%name/envsubst.1.html
%files -n gettext-tools%{?with_mini:-mini} -f gettext-tools.lang
%defattr(-,root,root)
%_bindir/msg[a-eg-u]*

View File

@@ -1,3 +1,158 @@
-------------------------------------------------------------------
Wed Feb 26 03:01:34 CET 2025 - Stanislav Brabec <sbrabec@suse.com>
- Fix crash while handling po files with malformed header and
process them properly
(0003-Fix-malformed-header-processing.patch, boo#1227316).
-------------------------------------------------------------------
Thu Sep 12 10:43:39 UTC 2024 - Dan Čermák <dcermak@suse.com>
- Move envsubst requires into main package, gettext.sh is not part of
gettext-tools, but gettext-runtime (fixes boo#1227070)
-------------------------------------------------------------------
Tue Jul 16 08:42:20 UTC 2024 - Bernhard Wiedemann <bwiedemann@suse.com>
- Use %autosetup
-------------------------------------------------------------------
Thu Jun 6 14:23:04 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Fix envsubst-mini:
+ Conflicts with the 'full' envsubst
+ Require 'this-is-only-for-build-envs': ensure this does not
find it's way out of OBS onto installations.
-------------------------------------------------------------------
Tue Jun 4 09:36:01 UTC 2024 - Dan Čermák <dcermak@suse.com>
- add optional -mini suffix to envsubst package
-------------------------------------------------------------------
Tue May 21 10:25:25 UTC 2024 - Andreas Schwab <schwab@suse.de>
- Require glibc-gconv-modules-extra by the gettext-tools packages
-------------------------------------------------------------------
Tue May 14 10:06:12 UTC 2024 - Dan Čermák <dcermak@suse.com>
- Split out envsubst into a separate package
This allows us to pull in envsubst into containers without enlarging them
substantially. Additionally, this binary is standalone and useful outside of
the context of gettext.
-------------------------------------------------------------------
Mon Apr 15 07:24:01 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Require this-is-only-for-build-envs by the -mini packages: ensure
those mini packages never find their way onto a system, even when
published.
-------------------------------------------------------------------
Thu Apr 4 09:10:05 UTC 2024 - Dan Čermák <dcermak@suse.com>
- Add missing Requires: find to gettext-tools
-------------------------------------------------------------------
Mon Feb 26 14:57:24 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Use %patch -P N instead of deprecated %patchN.
-------------------------------------------------------------------
Sat Feb 24 18:50:38 UTC 2024 - Andreas Stieger <andreas.stieger@gmx.de>
- update to 0.22.5:
* xgettext's processing of Vala files with printf method
invocations has been corrected (regression in 0.22)
-------------------------------------------------------------------
Tue Feb 13 09:03:34 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
- Update to version 0.22.4
* Bug fixes:
- AM_GNU_GETTEXT now recognizes a statically built libintl on
macOS and AIX.
- Build fixes on AIX
- Update to version 0.22.3
* Portability:
- The libintl library now works on macOS 14. (Older versions
of libintl crash on macOS 14, due to an incompatible change
in macOS.)
- Update to version 0.22.2
* No information available upstream
- Update to version 0.22.1
* Bug fixes:
- The libintl shared library now exports again some symbols
that were accidentally missing.
- xgettext's processing of large Perl files may have led to
errors.
- "xgettext --join-existing" could encounter errors.
* Portability:
- Building on Android is now supported.
- Update to version 0.22.0
* PO file format:
- When a #: line contains references to file names that contain
spaces, these file names are surrounded by Unicode characters
U+2068 and U+2069. This makes it possible to parse such
references correctly.
* Improvements for maintainers:
- The AM_GNU_GETTEXT macro now defines two variables
localedir_c and localedir_c_make, that can be used in C code
or in Makefiles, respectively, for representing the value of
the --localedir configure option.
* Programming languages support:
- C, C++:
+ xgettext now supports gettext-like functions that take wide
strings (of type 'const wchar_t *', 'const char16_t *', or
'const char32_t *') as arguments.
+ xgettext now recognizes numbers with digit separators, as
defined by ISO C 23, as tokens.
+ xgettext and msgfmt now recognize the format string
directive %b (for binary integer output, as defined by
ISO C 23) in format strings.
+ xgettext and msgfmt now recognize the argument size
specifiers w8, w16, w32, w64, wf8, wf16, wf32, wf64
(as defined by ISO C 23) in format strings.
+ xgettext and msgfmt now recognize C++ format strings, as
defined by ISO C++ 20. They are marked as 'c++-format' in
POT and PO files. A new example has been added,
'hello-c++20', that illustrates how to use these format
strings with gettext.
- Java:
+ The build system and tools now also support Java versions
newer than Java 11. This is known to work up to Java 20,
at least. On the other hand, support for old versions of
Java (Java 1.5 and GCJ) has been dropped.
+ Tcl: xgettext now supports the \x, \u, and \U escapes as
defined in Tcl 8.6.
* Portability:
- On systems with musl libc, the *gettext() functions in libc
now work with MO files generated from PO files with an
encoding other than UTF-8. To this effect, the msgfmt program
now converts the messages to UTF-8 encoding before storing
them in a MO file. You can prevent this byusing the msgfmt
--no-convert option.
- On systems with musl libc, the *gettext() functions in libc
now work with MO files generated from PO files with ISO C 99
<inttypes.h> format string directive macros. To this effect,
the msgfmt program pre-expands strings with such macros. You
can prevent this by using the msgfmt --no-redundancy option.
* xgettext:
- The xgettext option '--sorted-output' is now deprecated.
- xgettext input files of type PO that are not all ASCII and
not UTF-8 encoded are now handled correctly.
* The base Unicode standard is now updated to 15.0.0.
* Emacs PO mode:
- Fix an incompatibility with Emacs version 29 or newer.
- Rebase patches:
* gettext-dont-test-gnulib.patch
* 0001-msgcat-Add-feature-to-use-the-newest-po-file.patch
* 0002-msgcat-Merge-headers-when-use-first.patch
- Drop patch which isn't required anymore since newer java
versions are already supported by upstream:
* gettext-0.21-jdk17.patch
-------------------------------------------------------------------
Thu May 4 13:32:58 UTC 2023 - Frederic Crozat <fcrozat@suse.com>

View File

@@ -1,7 +1,7 @@
#
# spec file for package gettext-runtime
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,14 +20,15 @@
%bcond_with mini
Name: gettext-runtime
Version: 0.21.1
Version: 0.22.5
Release: 0
BuildRequires: automake >= 1.14
BuildRequires: gcc-c++
BuildRequires: glibc-gconv-modules-extra
BuildRequires: libtool
# To get an updated linkdupes.sh (in case there are new dupes), temproarily enable:
#BuildRequires: fdupes
%if %{without mini}
BuildRequires: automake
BuildRequires: glib2-devel
BuildRequires: libxml2-devel
BuildRequires: perl-libintl-perl
@@ -45,9 +46,13 @@ Conflicts: gettext-tools-mini
%else
# to allow a prjconf preference which to take per build
Provides: gettext-runtime = %{version}
# Ensure this never finds its way onto a real installation
Requires: this-is-only-for-build-envs
# rpm-build requires gettext-tools, but we will only just be building it
#!BuildIgnore: gettext-tools
%endif
# gettext.sh requires envsubst
Requires: envsubst%{?with_mini:-mini} = %{version}
Summary: Tools for Native Language Support (NLS)
License: GPL-3.0-or-later AND LGPL-2.0-or-later
Group: Development/Tools/Other
@@ -67,7 +72,6 @@ Patch4: gettext-po-mode.diff
Patch5: gettext-initialize_vars.patch
# PATCH-FIX-OPENSUSE gettext-dont-test-gnulib.patch -- coolo@suse.de
Patch6: gettext-dont-test-gnulib.patch
Patch7: gettext-0.21-jdk17.patch
# PATCH-FIX-UPSTREAM boo#941629 -- pth@suse.com
Patch11: boo941629-unnessary-rpath-on-standard-path.patch
# PATCH-FIX-SUSE Bug boo#1106843
@@ -75,6 +79,8 @@ Patch13: reproducible.patch
# PATCH-FEATURE bsc#1165138
Patch14: 0001-msgcat-Add-feature-to-use-the-newest-po-file.patch
Patch15: 0002-msgcat-Merge-headers-when-use-first.patch
# PATCH-FEATURE-FIX-SUSE boo#1227316 -- sbrabec@suse.com
Patch16: 0003-Fix-malformed-header-processing.patch
%description
This package contains the intl library as well as tools that ease the
@@ -90,9 +96,13 @@ License: LGPL-2.1-or-later
Group: Development/Tools/Other
Requires: %{name} = %{version}
Requires: xz
# autopoint requires find
Requires: findutils
# For non-UTF encodings
Requires: glibc-gconv-modules-extra
%if %{without mini}
Requires(post): info
Requires(preun):info
Requires(preun): info
%endif
Provides: gettext-devel = %{version}
%if %{without mini}
@@ -107,6 +117,8 @@ Conflicts: gettext-tools-mini
%else
# to allow a prjconf preference which to take per build
Provides: gettext-tools = %{version}
# Ensure this never finds its way onto a real installation
Requires: this-is-only-for-build-envs
%endif
# Several tools use bison-runtime text domain:
%if 0%{?suse_version}
@@ -131,6 +143,17 @@ BuildArch: noarch
This subpackage contains the HTML version of the gettext documentation
as well as project examples.
%package -n envsubst%{?with_mini:-mini}
Summary: Environment substitution helper binary
%if %{with mini}
Conflicts: envsubst
Requires: this-is-only-for-build-envs
%endif
%description -n envsubst%{?with_mini:-mini}
This package contains the envsubst helper binary to replace values from the
environment.
%if %{without mini}
%package -n libtextstyle0
Summary: Provides textstyling for console output
@@ -152,19 +175,7 @@ This package provides headers and static libraries for libtextstyle
%endif
%prep
%setup -q -n %{pacname}-%{version}
%patch0
%patch1 -p1
%patch2
%patch3 -p1
%patch4
%patch5
%patch6 -p1
%patch7 -p1
%patch11 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%autosetup -p1 -n %{pacname}-%{version}
%build
%define _lto_cflags %{nil}
@@ -271,7 +282,6 @@ make check || {
%doc %dir %_docdir/%name/
%doc %_docdir/%name/gettext.1.html
%doc %_docdir/%name/ngettext.1.html
%doc %_docdir/%name/envsubst.1.html
%doc %_docdir/%name/*.3.html
%doc %_docdir/%name/AUTHORS
%doc %_docdir/%name/NEWS
@@ -279,7 +289,6 @@ make check || {
%doc %_docdir/%name/FAQ.html
%_bindir/gettext
%_bindir/ngettext
%_bindir/envsubst
%_bindir/gettext.sh
%_bindir/msgfmt
%_libdir/libgettextlib-*.so
@@ -287,7 +296,6 @@ make check || {
%_libdir/libasprintf.so.*
%doc %_mandir/man1/gettext.1.gz
%doc %_mandir/man1/ngettext.1.gz
%doc %_mandir/man1/envsubst.1.gz
%doc %_mandir/man1/msgfmt.1.gz
%doc %_mandir/man3/*
%_datadir/gettext/ABOUT-NLS
@@ -298,6 +306,12 @@ make check || {
%_datadir/emacs/site-lisp/start-po.*
%_datadir/emacs/site-lisp/suse-start-po-mode.el
%files -n envsubst%{?with_mini:-mini}
%license COPYING
%_bindir/envsubst
%doc %_mandir/man1/envsubst.1.gz
%doc %_docdir/%name/envsubst.1.html
%files -n gettext-tools%{?with_mini:-mini} -f gettext-tools.lang
%defattr(-,root,root)
%_bindir/msg[a-eg-u]*

186
reproducible-jar.patch Normal file
View File

@@ -0,0 +1,186 @@
commit 06bb3d6f86c43c7eb259cb2f0b8522ad87df40f1
Author: Bruno Haible <bruno@clisp.org>
Date: Tue Jul 16 23:59:05 2024 +0200
java: Create reproducible .jar files if the 'jar' utility supports it.
Suggested by Bernhard M. Wiedemann <bwiedemann@suse.de> in
<https://lists.gnu.org/archive/html/bug-gettext/2024-07/msg00020.html>.
* build-aux/jar-cf: New file.
* Makefile.am (EXTRA_DIST): Add it.
* gettext-runtime/intl-java/Makefile.am (libintl.jar): Use jar-cf.
* gettext-tools/src/Makefile.am (gettext.jar): Likewise.
diff --git a/Makefile.am b/Makefile.am
index c3ac6e0e5..4e2ad1128 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -54,7 +54,8 @@ EXTRA_DIST = \
$(changelog_etc) DEPENDENCIES PACKAGING HACKING JOIN-GNU ChangeLog.0 \
autogen.sh \
check-copyright-headers \
- build-aux/ac-help.sed build-aux/git-version-gen build-aux/texi2html \
+ build-aux/ac-help.sed build-aux/git-version-gen build-aux/jar-cf \
+ build-aux/texi2html \
m4/fixautomake.m4 m4/woe32-dll.m4 \
m4/libtool.m4
diff --git a/build-aux/jar-cf b/build-aux/jar-cf
new file mode 100755
index 000000000..f42578c02
--- /dev/null
+++ b/build-aux/jar-cf
@@ -0,0 +1,112 @@
+#!/bin/sh
+# Creating a Java archive (.jar).
+
+# Copyright (C) 2024 Free Software Foundation, Inc.
+#
+# This file is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published
+# by the Free Software Foundation, either version 3 of the License,
+# or (at your option) any later version.
+#
+# This file is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+# Written by Bruno Haible <bruno@clisp.org>, 2024.
+
+# func_usage
+# outputs to stdout the --help usage message.
+func_usage ()
+{
+ echo "\
+Usage: jar-cf [OPTION]... JAR_PROGRAM TOP_SRCDIR DESTINATION.jar ELEMENT...
+
+Invokes the JAR_PROGRAM, to create DESTINATION.jar with the ELEMENTs as
+contents.
+
+Options:
+ --help print this help and exit
+ --version print version information and exit
+
+Send patches and bug reports to <bug-gettext@gnu.org>."
+}
+
+# func_version
+# outputs to stdout the --version message.
+func_version ()
+{
+ echo "jar-cf (GNU gettext)"
+ echo "Copyright (C) 2024 Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law."
+ echo
+ printf 'Written by %s.\n' "Bruno Haible"
+}
+
+# func_fatal_error message
+# outputs to stderr a fatal error message, and terminates the program.
+func_fatal_error ()
+{
+ echo "jar-cf: *** $1" 1>&2
+ echo "jar-cf: *** Stop." 1>&2
+ exit 1
+}
+
+# Outputs a command and runs it.
+func_verbose ()
+{
+ # Make it easy to copy&paste the printed command into a shell in most cases,
+ # by escaping '\\', '"', and '$'. This is not perfect, just good enough.
+ echo "$@" | sed -e 's/\([\\"$]\)/\\\1/g'
+ "$@"
+}
+
+# Command-line option processing.
+while test $# -gt 0; do
+ case "$1" in
+ --help | --hel | --he | --h )
+ func_usage
+ exit 0 ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v )
+ func_version
+ exit 0 ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ -* )
+ func_fatal_error "unrecognized option: $1"
+ ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# -lt 2; then
+ func_fatal_error "too few arguments"
+fi
+
+jar_program="$1"
+top_srcdir="$2"
+shift
+shift
+
+if $jar_program --help 2>&1 | grep '\-\-date=' >/dev/null; then
+ # The JAR_PROGRAM supports the --date option. Its effect is to set the given
+ # date as time stamp on all the ELEMENTs and also the META-INF/MANIFEST.MF.
+ # Use it, for reproducibility (cf. <https://reproducible-builds.org/>).
+ if test -d "$top_srcdir/.git"; then
+ # We are in a git checkout. Use the date of the latest commit.
+ date=`git log -n 1 --date=iso --format=fuller | sed -n -e 's/^CommitDate: //p' | sed -e 's/ /T/' -e 's/ \(...\)\(..\)$/\1:\2/'`
+ else
+ # We are building from a tarball.
+ # Use the date of the first entry of the ChangeLog file.
+ date=`sed -n -e 's/^\([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]\).*/\1/p' -e 1q "$top_srcdir/ChangeLog"`'T00:00:00+00:00'
+ fi
+ func_verbose $jar_program --date="$date" -c -f "$@"
+else
+ func_verbose $jar_program cf "$@"
+fi
diff --git a/gettext-runtime/intl-java/Makefile.am b/gettext-runtime/intl-java/Makefile.am
index a8c5290e9..4444f6e6c 100644
--- a/gettext-runtime/intl-java/Makefile.am
+++ b/gettext-runtime/intl-java/Makefile.am
@@ -1,5 +1,5 @@
## Makefile for the gettext-runtime/intl-java subdirectory of GNU gettext
-## Copyright (C) 2001-2003, 2006-2007, 2013 Free Software Foundation, Inc.
+## Copyright (C) 2001-2024 Free Software Foundation, Inc.
##
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
@@ -45,7 +45,7 @@ gnu/gettext/GettextResource.class: $(srcdir)/gnu/gettext/GettextResource.java
$(JAVACOMP) -d . $(srcdir)/gnu/gettext/GettextResource.java
libintl.jar: gnu/gettext/GettextResource.class
- $(JAR) cf $@ gnu/gettext/GettextResource*.class
+ $(top_srcdir)/../build-aux/jar-cf '$(JAR)' '$(top_srcdir)/..' $@ gnu/gettext/GettextResource*.class
EXTRA_DIST += gnu/gettext/GettextResource.java
diff --git a/gettext-tools/src/Makefile.am b/gettext-tools/src/Makefile.am
index d95b08ed6..0316ca287 100644
--- a/gettext-tools/src/Makefile.am
+++ b/gettext-tools/src/Makefile.am
@@ -1,5 +1,5 @@
## Makefile for the gettext-tools/src subdirectory of GNU gettext
-## Copyright (C) 1995-1998, 2000-2023 Free Software Foundation, Inc.
+## Copyright (C) 1995-2024 Free Software Foundation, Inc.
##
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
@@ -655,7 +655,7 @@ gnu/gettext/GetURL.class: $(srcdir)/gnu/gettext/GetURL.java
$(JAVACOMP) -d . $(srcdir)/gnu/gettext/GetURL.java
gettext.jar: gnu/gettext/DumpResource.class gnu/gettext/GetURL.class
- $(JAR) cf $@ gnu/gettext/DumpResource*.class gnu/gettext/GetURL*.class
+ $(top_srcdir)/../build-aux/jar-cf '$(JAR)' '$(top_srcdir)/..' $@ gnu/gettext/DumpResource*.class gnu/gettext/GetURL*.class
EXTRA_DIST += gnu/gettext/DumpResource.java gnu/gettext/GetURL.java