diff --git a/0001-msgcat-Add-feature-to-use-the-newest-po-file.patch b/0001-msgcat-Add-feature-to-use-the-newest-po-file.patch index ee72c66..5349b97 100644 --- a/0001-msgcat-Add-feature-to-use-the-newest-po-file.patch +++ b/0001-msgcat-Add-feature-to-use-the-newest-po-file.patch @@ -1,86 +1,91 @@ -From a079538e51c6c6e9855d9e7bde1519eaa59bb94d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Mark=C3=A9ta=20Cal=C3=A1bkov=C3=A1?= - -Date: Thu, 9 Jan 2020 14:40:25 +0100 -Subject: [PATCH 1/2] msgcat: Add feature to use the newest po file. +From dbf95c6ed2239f4831c06d84cf1eef5890cee1c7 Mon Sep 17 00:00:00 2001 +From: Markéta Calábková +Date: Wed, 20 Aug 2025 16:44:22 +0200 +Subject: [PATCH 1/3] msgcat: Add feature to use the newest po file. When concatenating po files, it is often useful to prefer strings from the newest file regardless their ordering on the command line. + +Updated to 0.26 --- - gettext-tools/src/Makefile.am | 4 +- - gettext-tools/src/message.c | 6 +++ - gettext-tools/src/message.h | 4 ++ + gettext-tools/src/Makefile.am | 3 +- + gettext-tools/src/message.c | 9 ++++ + gettext-tools/src/message.h | 5 +- gettext-tools/src/msgcat.c | 10 ++++ gettext-tools/src/msgl-age.c | 96 +++++++++++++++++++++++++++++++++ gettext-tools/src/msgl-age.h | 36 +++++++++++++ gettext-tools/src/msgl-cat.c | 15 ++++++ gettext-tools/src/msgl-cat.h | 1 + - gettext-tools/src/msgl-header.c | 47 ++++++++++++++++ + gettext-tools/src/msgl-header.c | 46 ++++++++++++++++ gettext-tools/src/msgl-header.h | 6 +++ - 10 files changed, 223 insertions(+), 2 deletions(-) + 10 files changed, 225 insertions(+), 2 deletions(-) create mode 100644 gettext-tools/src/msgl-age.c create mode 100644 gettext-tools/src/msgl-age.h -Index: gettext-0.21/gettext-tools/src/Makefile.am -=================================================================== ---- gettext-0.21.orig/gettext-tools/src/Makefile.am -+++ gettext-0.21/gettext-tools/src/Makefile.am -@@ -43,7 +43,7 @@ noinst_HEADERS = \ +diff --git a/gettext-tools/src/Makefile.am b/gettext-tools/src/Makefile.am +index 1b7faf1..2fd7412 100644 +--- a/gettext-tools/src/Makefile.am ++++ b/gettext-tools/src/Makefile.am +@@ -53,7 +53,7 @@ noinst_HEADERS = \ 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 \ + dir-list.h file-list.h read-po-gram.h cldr-plural.h \ + cldr-plural-exp.h locating-rules.h its.h search-path.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,6 +174,7 @@ FORMAT_SOURCE += \ - $(COMMON_SOURCE) \ - read-catalog.c \ +@@ -228,6 +228,7 @@ libgettextsrc_la_SOURCES = \ + read-catalog-special.c \ + read-catalog.c read-catalog-file.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 -+++ gettext-0.21/gettext-tools/src/message.c -@@ -356,6 +356,12 @@ message_list_append (message_list_ty *ml - abort (); +diff --git a/gettext-tools/src/message.c b/gettext-tools/src/message.c +index 7a605b3..0dda84a 100644 +--- a/gettext-tools/src/message.c ++++ b/gettext-tools/src/message.c +@@ -371,6 +371,15 @@ message_list_append (message_list_ty *mlp, message_ty *mp) } + +void +message_list_append_list (message_list_ty *mlp, message_list_ty *mlp2) +{ + for (int i = 0; i < mlp2->nitems; i++) + message_list_append (mlp,mlp2->item[i]); +} - ++ ++ ++ void message_list_prepend (message_list_ty *mlp, message_ty *mp) -Index: gettext-0.21/gettext-tools/src/message.h -=================================================================== ---- gettext-0.21.orig/gettext-tools/src/message.h -+++ gettext-0.21/gettext-tools/src/message.h -@@ -24,6 +24,7 @@ + { +diff --git a/gettext-tools/src/message.h b/gettext-tools/src/message.h +index 5790295..b456edc 100644 +--- a/gettext-tools/src/message.h ++++ b/gettext-tools/src/message.h +@@ -24,7 +24,7 @@ #include "mem-hash-map.h" #include +- +#include - #ifdef __cplusplus -@@ -269,6 +270,8 @@ extern void + extern "C" { +@@ -276,6 +276,8 @@ extern void + message_list_free (message_list_ty *mlp, int keep_messages); extern void message_list_append (message_list_ty *mlp, message_ty *mp); - extern void -+ message_list_append_list (message_list_ty *mlp, message_list_ty *mlp2); +extern void ++ message_list_append_list (message_list_ty *mlp, message_list_ty *mlp2); + extern void message_list_prepend (message_list_ty *mlp, message_ty *mp); extern void - message_list_insert_at (message_list_ty *mlp, size_t n, message_ty *mp); -@@ -350,6 +353,7 @@ struct msgdomain_list_ty +@@ -358,6 +360,7 @@ struct msgdomain_list_ty size_t nitems_max; bool use_hashtable; const char *encoding; /* canonicalized encoding or NULL if unknown */ @@ -88,52 +93,53 @@ Index: gettext-0.21/gettext-tools/src/message.h }; extern msgdomain_list_ty * -Index: gettext-0.21/gettext-tools/src/msgcat.c -=================================================================== ---- gettext-0.21.orig/gettext-tools/src/msgcat.c -+++ gettext-0.21/gettext-tools/src/msgcat.c -@@ -88,6 +88,7 @@ static const struct option long_options[ - { "to-code", required_argument, NULL, 't' }, - { "unique", no_argument, NULL, 'u' }, - { "use-first", no_argument, NULL, CHAR_MAX + 1 }, -+ { "use-newest", no_argument, NULL, CHAR_MAX + 9 }, - { "version", no_argument, NULL, 'V' }, - { "width", required_argument, NULL, 'w' }, - { "more-than", required_argument, NULL, '>' }, -@@ -141,6 +142,7 @@ main (int argc, char **argv) +diff --git a/gettext-tools/src/msgcat.c b/gettext-tools/src/msgcat.c +index de5b2aa..5a69050 100644 +--- a/gettext-tools/src/msgcat.c ++++ b/gettext-tools/src/msgcat.c +@@ -109,6 +109,7 @@ main (int argc, char **argv) more_than = 0; less_than = INT_MAX; use_first = false; + use_newest = false; - while ((optchar = getopt_long (argc, argv, "<:>:D:eEf:Fhino:pPst:uVw:", - long_options, NULL)) != EOF) -@@ -277,6 +279,11 @@ main (int argc, char **argv) + /* Parse command line options. */ + BEGIN_ALLOW_OMITTING_FIELD_INITIALIZERS +@@ -139,6 +140,7 @@ main (int argc, char **argv) + { "to-code", 't', required_argument }, + { "unique", 'u', no_argument }, + { "use-first", CHAR_MAX + 1, no_argument }, ++ { "use-newest", CHAR_MAX + 10, no_argument }, + { "version", 'V', no_argument }, + { "width", 'w', required_argument }, + { "more-than", '>', required_argument }, +@@ -282,6 +284,11 @@ main (int argc, char **argv) message_print_style_filepos (filepos_comment_none); break; -+ case CHAR_MAX + 9: /* --use-newest */ -+ use_newest = true; ++ case CHAR_MAX + 10: /* --use-newest */ ++ use_newest = true; + use_first = true; -+ break; ++ break; + default: usage (EXIT_FAILURE); /* NOTREACHED */ -@@ -428,6 +435,9 @@ Output details:\n")); +@@ -433,6 +440,9 @@ Output details:\n")); + printf (_("\ --use-first use first available translation for each\n\ message, don't merge several translations\n")); - printf (_("\ ++ printf (_("\ + --use-newest use the most up-to-date available translation\n\ + for each message, don't merge several translations\n")); -+ printf (_("\ + printf (_("\ --lang=CATALOGNAME set 'Language' field in the header entry\n")); printf (_("\ - --color use colors and other text attributes always\n\ -Index: gettext-0.21/gettext-tools/src/msgl-age.c -=================================================================== +diff --git a/gettext-tools/src/msgl-age.c b/gettext-tools/src/msgl-age.c +new file mode 100644 +index 0000000..6a902fa --- /dev/null -+++ gettext-0.21/gettext-tools/src/msgl-age.c ++++ b/gettext-tools/src/msgl-age.c @@ -0,0 +1,96 @@ +/* Message list header time simple parser. + Copyright (C) 2019 Free Software Foundation, Inc. @@ -231,10 +237,11 @@ Index: gettext-0.21/gettext-tools/src/msgl-age.c + + + -Index: gettext-0.21/gettext-tools/src/msgl-age.h -=================================================================== +diff --git a/gettext-tools/src/msgl-age.h b/gettext-tools/src/msgl-age.h +new file mode 100644 +index 0000000..af12dd9 --- /dev/null -+++ gettext-0.21/gettext-tools/src/msgl-age.h ++++ b/gettext-tools/src/msgl-age.h @@ -0,0 +1,36 @@ +/* Message list header time simple parser. + Copyright (C) 2019 Free Software Foundation, Inc. @@ -272,19 +279,19 @@ Index: gettext-0.21/gettext-tools/src/msgl-age.h + msgdomain_read_ages (msgdomain_list_ty *); + +#endif -Index: gettext-0.21/gettext-tools/src/msgl-cat.c -=================================================================== ---- gettext-0.21.orig/gettext-tools/src/msgl-cat.c -+++ gettext-0.21/gettext-tools/src/msgl-cat.c -@@ -37,6 +37,7 @@ +diff --git a/gettext-tools/src/msgl-cat.c b/gettext-tools/src/msgl-cat.c +index a477285..76802b1 100644 +--- a/gettext-tools/src/msgl-cat.c ++++ b/gettext-tools/src/msgl-cat.c +@@ -36,6 +36,7 @@ #include "message.h" - #include "read-catalog.h" + #include "read-catalog-file.h" #include "po-charset.h" +#include "msgl-age.h" #include "msgl-ascii.h" #include "msgl-ofn.h" #include "msgl-equal.h" -@@ -57,6 +58,11 @@ int less_than; +@@ -58,6 +59,11 @@ int less_than; If false, merge all available translations into one and fuzzy it. */ bool use_first; @@ -296,7 +303,7 @@ Index: gettext-0.21/gettext-tools/src/msgl-cat.c /* If true, merge like msgcomm. If false, merge like msgcat and msguniq. */ bool msgcomm_mode = false; -@@ -123,6 +129,15 @@ catenate_msgdomain_list (string_list_ty +@@ -124,6 +130,15 @@ catenate_msgdomain_list (string_list_ty *file_list, for (n = 0; n < nfiles; n++) mdlps[n] = read_catalog_file (files[n], input_syntax); @@ -312,23 +319,23 @@ Index: gettext-0.21/gettext-tools/src/msgl-cat.c /* Determine the canonical name of each input file's encoding. */ canon_charsets = XNMALLOC (nfiles, const char **); for (n = 0; n < nfiles; n++) -Index: gettext-0.21/gettext-tools/src/msgl-cat.h -=================================================================== ---- gettext-0.21.orig/gettext-tools/src/msgl-cat.h -+++ gettext-0.21/gettext-tools/src/msgl-cat.h -@@ -37,6 +37,7 @@ extern DLL_VARIABLE int less_than; +diff --git a/gettext-tools/src/msgl-cat.h b/gettext-tools/src/msgl-cat.h +index 098ffb3..25dd117 100644 +--- a/gettext-tools/src/msgl-cat.h ++++ b/gettext-tools/src/msgl-cat.h +@@ -37,6 +37,7 @@ extern LIBGETTEXTSRC_DLL_VARIABLE int less_than; /* If true, use the first available translation. If false, merge all available translations into one and fuzzy it. */ - extern DLL_VARIABLE bool use_first; -+extern DLL_VARIABLE bool use_newest; + extern LIBGETTEXTSRC_DLL_VARIABLE bool use_first; ++extern LIBGETTEXTSRC_DLL_VARIABLE bool use_newest; /* If true, merge like msgcomm. If false, merge like msgcat and msguniq. */ -Index: gettext-0.21/gettext-tools/src/msgl-header.c -=================================================================== ---- gettext-0.21.orig/gettext-tools/src/msgl-header.c -+++ gettext-0.21/gettext-tools/src/msgl-header.c -@@ -222,3 +222,50 @@ message_list_delete_header_field (messag +diff --git a/gettext-tools/src/msgl-header.c b/gettext-tools/src/msgl-header.c +index 0e36375..611c540 100644 +--- a/gettext-tools/src/msgl-header.c ++++ b/gettext-tools/src/msgl-header.c +@@ -244,3 +244,49 @@ message_list_delete_header_field (message_list_ty *mlp, } } } @@ -378,12 +385,11 @@ Index: gettext-0.21/gettext-tools/src/msgl-header.c + } + } +} -+ -Index: gettext-0.21/gettext-tools/src/msgl-header.h -=================================================================== ---- gettext-0.21.orig/gettext-tools/src/msgl-header.h -+++ gettext-0.21/gettext-tools/src/msgl-header.h -@@ -40,6 +40,12 @@ extern void +diff --git a/gettext-tools/src/msgl-header.h b/gettext-tools/src/msgl-header.h +index 4ca5314..b441de2 100644 +--- a/gettext-tools/src/msgl-header.h ++++ b/gettext-tools/src/msgl-header.h +@@ -48,6 +48,12 @@ extern void message_list_delete_header_field (message_list_ty *mlp, const char *field); @@ -396,3 +402,6 @@ Index: gettext-0.21/gettext-tools/src/msgl-header.h #ifdef __cplusplus } +-- +2.50.1 + diff --git a/0002-msgcat-Merge-headers-when-use-first.patch b/0002-msgcat-Merge-headers-when-use-first.patch index c535db1..e48720c 100644 --- a/0002-msgcat-Merge-headers-when-use-first.patch +++ b/0002-msgcat-Merge-headers-when-use-first.patch @@ -1,26 +1,28 @@ -From df4aef6209615bdd44cd45208acfe7367451a8fe Mon Sep 17 00:00:00 2001 +From 100b03a7efe924eb5e22d2e8d6e3dadbec80c0fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mark=C3=A9ta=20Cal=C3=A1bkov=C3=A1?= Date: Thu, 9 Jan 2020 14:45:49 +0100 -Subject: [PATCH 2/2] msgcat: Merge headers when --use-first +Subject: [PATCH 2/3] msgcat: Merge headers when --use-first Merging headers line by line is especially useful when one header line is present only in the second file. For example when Plural-Forms: is present only in the second file, msgcat could create an invalid output file. We also return error when Plural-Forms: values do not match. + +Updated for 0.26 --- gettext-tools/src/message.c | 2 - gettext-tools/src/msgl-cat.c | 5 ++ - gettext-tools/src/msgl-header.c | 155 +++++++++++++++++++++++++++++--- - gettext-tools/src/msgl-header.h | 8 ++ - 4 files changed, 157 insertions(+), 13 deletions(-) + gettext-tools/src/msgl-header.c | 146 +++++++++++++++++++++++++++++++- + gettext-tools/src/msgl-header.h | 10 +++ + 4 files changed, 158 insertions(+), 5 deletions(-) -Index: gettext-0.20.1/gettext-tools/src/message.c -=================================================================== ---- gettext-0.20.1.orig/gettext-tools/src/message.c -+++ gettext-0.20.1/gettext-tools/src/message.c -@@ -411,7 +411,6 @@ message_list_insert_at (message_list_ty +diff --git a/gettext-tools/src/message.c b/gettext-tools/src/message.c +index 6e3aada..48a0268 100644 +--- a/gettext-tools/src/message.c ++++ b/gettext-tools/src/message.c +@@ -423,7 +423,6 @@ message_list_insert_at (message_list_ty *mlp, size_t n, message_ty *mp) } @@ -28,7 +30,7 @@ Index: gettext-0.20.1/gettext-tools/src/message.c void message_list_delete_nth (message_list_ty *mlp, size_t n) { -@@ -431,7 +430,6 @@ message_list_delete_nth (message_list_ty +@@ -443,7 +442,6 @@ message_list_delete_nth (message_list_ty *mlp, size_t n) mlp->use_hashtable = false; } } @@ -36,19 +38,19 @@ Index: gettext-0.20.1/gettext-tools/src/message.c void -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 +diff --git a/gettext-tools/src/msgl-cat.c b/gettext-tools/src/msgl-cat.c +index 728d685..e9a694b 100644 +--- a/gettext-tools/src/msgl-cat.c ++++ b/gettext-tools/src/msgl-cat.c @@ -40,6 +40,7 @@ #include "msgl-ascii.h" #include "msgl-ofn.h" #include "msgl-equal.h" +#include "msgl-header.h" #include "msgl-iconv.h" + #include "xerror-handler.h" #include "xalloc.h" - #include "xmalloca.h" -@@ -286,6 +287,10 @@ catenate_msgdomain_list (string_list_ty +@@ -290,6 +291,10 @@ catenate_msgdomain_list (string_list_ty *file_list, } } @@ -59,10 +61,10 @@ Index: gettext-0.20.1/gettext-tools/src/msgl-cat.c /* Create list of resulting messages, but don't fill it. Only count the number of translations for each message. If for a message, there is at least one non-fuzzy, non-empty translation, -Index: gettext-0.20.1/gettext-tools/src/msgl-header.c -=================================================================== ---- gettext-0.20.1.orig/gettext-tools/src/msgl-header.c -+++ gettext-0.20.1/gettext-tools/src/msgl-header.c +diff --git a/gettext-tools/src/msgl-header.c b/gettext-tools/src/msgl-header.c +index 611c540..e021693 100644 +--- a/gettext-tools/src/msgl-header.c ++++ b/gettext-tools/src/msgl-header.c @@ -26,9 +26,12 @@ #include @@ -75,9 +77,9 @@ Index: gettext-0.20.1/gettext-tools/src/msgl-header.c - +#define _(str) gettext (str) - /* The known fields in their usual order. */ - static const struct -@@ -50,6 +53,98 @@ known_fields[] = + void + header_set_charset (message_ty *header_mp, const char *charsetstr, +@@ -72,6 +75,98 @@ known_fields[] = { "Content-Transfer-Encoding:", sizeof ("Content-Transfer-Encoding:") - 1 } }; @@ -176,7 +178,7 @@ Index: gettext-0.20.1/gettext-tools/src/msgl-header.c void msgdomain_list_set_header_field (msgdomain_list_ty *mdlp, -@@ -81,8 +176,8 @@ msgdomain_list_set_header_field (msgdoma +@@ -103,8 +198,8 @@ msgdomain_list_set_header_field (msgdomain_list_ty *mdlp, { message_ty *mp = mlp->item[j]; @@ -187,7 +189,7 @@ Index: gettext-0.20.1/gettext-tools/src/msgl-header.c char *new_header = XNMALLOC (strlen (header) + 1 + strlen (field) + 1 + strlen (value) + 1 + 1, -@@ -230,14 +325,14 @@ message_list_read_header_field (message_ +@@ -252,6 +347,8 @@ message_list_read_header_field (message_list_ty *mlp, size_t field_len = strlen (field); size_t j; @@ -196,44 +198,11 @@ Index: gettext-0.20.1/gettext-tools/src/msgl-header.c /* Search the header entry. */ for (j = 0; j < mlp->nitems; j++) if (is_header (mlp->item[j]) && !mlp->item[j]->obsolete) - { -- /* We found the correct message. */ -+ /* We found the correct message. */ - message_ty *mp = mlp->item[j]; -- -- /* Tag the header entry. */ - const char *header = mp->msgstr; - - /* Test whether the field occurs in the header entry. */ -@@ -247,7 +342,7 @@ message_list_read_header_field (message_ - { - if (strncmp (h, field, field_len) == 0) - break; -- /* Jump by lines. */ -+ /* Jump by lines. */ - h = strchr (h, '\n'); - if (h == NULL) - break; -@@ -257,15 +352,57 @@ message_list_read_header_field (message_ - { - /* We found it and it is nonempty. Read the value of the field. */ - h += field_len + 1; -- char *enh = strchr (h, '\n'); -- if (enh != NULL && *enh != '\0') -+ char *enh = strchr (h, '\n'); -+ if (enh != NULL && *enh != '\0') - { - *where_ptr = (char *)XNMALLOC (((enh - h) + 1), char); - memcpy (*where_ptr, h, enh - h); -- /* Make the string null-terminated. */ -+ /* Make the string null-terminated. */ - (*where_ptr)[enh-h] = '\0'; -- } -+ } +@@ -290,3 +387,46 @@ message_list_read_header_field (message_list_ty *mlp, } } } - ++ +message_list_ty * +message_list_header_list (message_list_ty *mlp) +{ @@ -276,29 +245,34 @@ Index: gettext-0.20.1/gettext-tools/src/msgl-header.c + } + return NULL; +} -Index: gettext-0.20.1/gettext-tools/src/msgl-header.h -=================================================================== ---- gettext-0.20.1.orig/gettext-tools/src/msgl-header.h -+++ gettext-0.20.1/gettext-tools/src/msgl-header.h -@@ -33,6 +33,11 @@ extern "C" { - extern void +diff --git a/gettext-tools/src/msgl-header.h b/gettext-tools/src/msgl-header.h +index b441de2..1778791 100644 +--- a/gettext-tools/src/msgl-header.h ++++ b/gettext-tools/src/msgl-header.h +@@ -42,6 +42,12 @@ extern void msgdomain_list_set_header_field (msgdomain_list_ty *mdlp, const char *field, const char *value); + +/* Merge headers of po files. + */ +extern void + msgdomain_lists_merge_headers (msgdomain_list_ty **mdlps, + size_t nfiles); - ++ /* Remove the given field from the header. The FIELD name ends in a colon. */ -@@ -46,6 +51,9 @@ extern void - message_list_read_header_field (message_list_ty *mlp, + extern void +@@ -55,6 +61,10 @@ extern void const char *field, char **where_ptr); + +/* List all the headers from a po file. */ +extern message_list_ty * + message_list_header_list (message_list_ty *mlp); - ++ #ifdef __cplusplus } + #endif +-- +2.49.0 + diff --git a/0003-Fix-malformed-header-processing.patch b/0003-Fix-malformed-header-processing.patch new file mode 100644 index 0000000..34825ab --- /dev/null +++ b/0003-Fix-malformed-header-processing.patch @@ -0,0 +1,98 @@ +From 88d67f8eacdd301d836a6902374dc10e8cc05d57 Mon Sep 17 00:00:00 2001 +From: Stanislav Brabec +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 + diff --git a/_constraints b/_constraints new file mode 100644 index 0000000..5528a49 --- /dev/null +++ b/_constraints @@ -0,0 +1,8 @@ + + + + + 18 + + + diff --git a/gettext-0.12.1-gettextize.patch b/gettext-0.12.1-gettextize.patch index f285853..821ca3d 100644 --- a/gettext-0.12.1-gettextize.patch +++ b/gettext-0.12.1-gettextize.patch @@ -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 that implements the configure --disable-nls" echo "option." diff --git a/gettext-0.12.1-sigfpe.patch b/gettext-0.12.1-sigfpe.patch deleted file mode 100644 index 77e96f9..0000000 --- a/gettext-0.12.1-sigfpe.patch +++ /dev/null @@ -1,47 +0,0 @@ -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 -@@ -68,20 +68,7 @@ extern int errno; - #endif - - #include -- --#ifdef _LIBC -- /* Guess whether integer division by zero raises signal SIGFPE. -- Set to 1 only if you know for sure. In case of doubt, set to 0. */ --# if defined __alpha__ || defined __arm__ || defined __i386__ \ -- || defined __m68k__ || defined __s390__ --# define INTDIV0_RAISES_SIGFPE 1 --# else --# define INTDIV0_RAISES_SIGFPE 0 --# endif --#endif --#if !INTDIV0_RAISES_SIGFPE --# include --#endif -+#include - - #if defined HAVE_SYS_PARAM_H || defined _LIBC - # include -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 -@@ -62,16 +62,12 @@ plural_eval (const struct expression *pe - case mult: - return leftarg * rightarg; - case divide: --#if !INTDIV0_RAISES_SIGFPE - if (rightarg == 0) - raise (SIGFPE); --#endif - return leftarg / rightarg; - case module: --#if !INTDIV0_RAISES_SIGFPE - if (rightarg == 0) - raise (SIGFPE); --#endif - return leftarg % rightarg; - case plus: - return leftarg + rightarg; diff --git a/gettext-0.22.5.tar.xz b/gettext-0.22.5.tar.xz deleted file mode 100644 index 058f4ba..0000000 --- a/gettext-0.22.5.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fe10c37353213d78a5b83d48af231e005c4da84db5ce88037d88355938259640 -size 10270724 diff --git a/gettext-0.22.5.tar.xz.sig b/gettext-0.22.5.tar.xz.sig deleted file mode 100644 index 143326c..0000000 --- a/gettext-0.22.5.tar.xz.sig +++ /dev/null @@ -1,16 +0,0 @@ ------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----- diff --git a/gettext-0.26.tar.xz b/gettext-0.26.tar.xz new file mode 100644 index 0000000..3f16895 --- /dev/null +++ b/gettext-0.26.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1fb86e260cfe7da6031f94d2e44c0da55903dbae0a2fa0fae78c91ae1b56f00 +size 10061740 diff --git a/gettext-0.26.tar.xz.sig b/gettext-0.26.tar.xz.sig new file mode 100644 index 0000000..c2e9b70 --- /dev/null +++ b/gettext-0.26.tar.xz.sig @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- + +iHUEABYKAB0WIQTg/72XU5f3ejKrduy2MB2eG76sCAUCaHv+8wAKCRC2MB2eG76s +CG8YAP9Fsv5IBUA+aFwd5/yfQ4JQWYSyhzK9cVVB2l8v6BEjcwEAmzTMF6YKb1ze +STbpjJ+muQQX5MHSKdAZ+S/g5VyfAwk= +=UeX6 +-----END PGP SIGNATURE----- diff --git a/gettext-csharp.changes b/gettext-csharp.changes index 70e644a..3dbd3ed 100644 --- a/gettext-csharp.changes +++ b/gettext-csharp.changes @@ -1,3 +1,184 @@ +------------------------------------------------------------------- +Thu Aug 28 06:34:01 UTC 2025 - Guillaume GARDET + +- Add _constraints to avoid OOM build errors + +------------------------------------------------------------------- +Wed Aug 27 10:01:27 UTC 2025 - Thorsten Kukuk + +- autopoint requires diffutils (diff, cmp) + +------------------------------------------------------------------- +Thu Jul 24 09:21:14 UTC 2025 - Ana Guerrero + +- Update to 0.26: + * C, C++, Python, JavaScript, EmacsLisp, librep, Go, Ruby, awk, D, Tcl, + Perl, PHP: + - xgettext's heuristic recognition of format strings has been improved: + strings like "100% complete" (with a space flag in a format directive) + are no longer flagged as format strings by default, unless they occur + in a context that requires a format string. You can override this + heuristic by using a comment of the form /* xgettext: c-format */. + * Shell: + - The documentation now mentions two other approaches for + internationalizing messages with parameters in shell scripts. + - xgettext now recognizes format strings in the 'printf' command syntax. + They are marked as 'sh-printf-format' in POT and PO files. + - Two new programs 'printf_gettext' and 'printf_ngettext' are provided, + that do formatted output with a localized format string in a more + efficient way (without spawning a subshell). + - xgettext now recognizes the \c, \u, and \U escape sequences in dollar- + single-quoted strings $'...'. + # Improvements for maintainers: + * xgettext: + - When extracting a message with plural that is some format string, + xgettext now verifies that the msgid and msgid_plural are compatible + as format strings. For most format string types, this still allows + omitting from msgid a placeholder that is used in msgid_plural. But + when a placeholder is used in both msgid and msgid_plural, its type + must be the same in both. + - xgettext now suggests a refactoring when a translatable string + contains an URL or email address. + + # Improvements for translators: + * msggrep: + - msggrep accepts two new options -W/--workflow-flags and -S/--sticky-flags + that allow to select only messages that have a specified flag. + +- Refresh patches. + +------------------------------------------------------------------- +Wed Jul 23 12:40:45 UTC 2025 - Ana Guerrero + +- Do not build support for Java and C# on i586. + +------------------------------------------------------------------- +Thu Jul 17 07:42:56 UTC 2025 - Ana Guerrero + +- Update to 0.25.1: + * Bug fixes: + - autopoint no longer fails if configure.ac contains no + AM_GNU_GETTEXT_VERSION or AM_GNU_GETTEXT_REQUIRE_VERSION invocation. + - nls.m4 is installed again under $PREFIX/share/aclocal/. + +------------------------------------------------------------------- +Fri May 16 09:35:54 UTC 2025 - Andreas Stieger + +- Update to 0.25: + * xgettext now supports Go + * xgettext now supports TypeScript and TSX + * Add support for the D programming language (library and tools) + * Add support for the Modula-2 programming language (same) + * xgettext has a new option '--generated' that customizes the way + the 'POT-Creation-Date' in the POT file is computed +- build with libacl/libattr + +------------------------------------------------------------------- +Thu May 15 16:06:29 UTC 2025 - Andreas Stieger + +- Update to 0.24.1: + * Fix bad interactions between autoreconf and autopoint + * xgettext: Creating the POT file of a package under Git version + control is now faster. Also, the use of Git can be turned off + by specifying the option --no-git + +------------------------------------------------------------------- +Fri May 9 06:49:21 UTC 2025 - Andreas Stieger + +- update upstream signing key and verify source signatures (again) + +------------------------------------------------------------------- +Wed Apr 9 19:35:55 UTC 2025 - Ana Guerrero + +- Update to 0.24.0 + * Programming languages support: + - C: + + A new example 'hello-c-http' has been added, showing the use + of GNU gettext in a multithreaded web server. + - C++: + + A new example 'hello-c++-gnome3' has been added. + - Ruby: + + A new example 'hello-ruby' has been added. + * Improvements for maintainers: + - When xgettext creates the POT file of a package under Git version + control, the 'POT-Creation-Date' in the POT file usually no longer + changes gratuitously each time the POT file is regenerated. + +- Update to 23.0 + * Internationalized data formats: + - XML + + The escaping of characters such as & < > has been changed: + + No escaping is done any more by xgettext, when creating a POT file. + + Instead, extra escaping can be requested for the msgfmt pass, when + merging into an XML file. + + The default value of 'escape' in the was "yes"; + now it is "no". + + This means that existing translations of older POT files may no + longer fully apply. As a maintainer of a package that has + translatable XML files, you need to regenerate the POT file and + pass it on to your translators. + + XML schemas for .its and .loc files are now provided. + + The value of the xml:lang attribute, inserted by msgfmt, + now conforms to W3C standards. + + 'msgfmt --xml' accept an option --replace-text, that causes + the output to be a mono-lingual XML file instead of a multi-lingual + XML file. + + xgettext and 'msgfmt --xml' now support DocBook XML files. + - Desktop: xgettext now produces POT files with correct line numbers. + * Programming languages support: + - Java: + + xgettext now has an improved recognition of format strings when + the String.formatted method is used. + - C#: + + The build system and tools now also support 'dotnet' (.NET) as + C# implementation. In order to declare a preference for 'dotnet' + over 'mono', you can use the configure option '--enable-csharp=dotnet'. + + xgettext now recognizes strings with embedded expressions + (a.k.a. interpolated strings). + - Perl: + + xgettext now reports warnings instead of fatal errors. + + xgettext now recognizes strings with embedded expressions + (a.k.a. interpolated strings). + * Runtime behaviour: + - In the C.UTF-8 locale, like in the C locale, the *gettext() functions + now return the msgid untranslated. This is relevant for GNU systems, + Linux with musl libc, FreeBSD, NetBSD, OpenBSD, Cygwin, and Android. + * Documentation: + - The section "Preparing Strings" now gives more advice how to deal + with string concatenation and strings with embedded expressions. + * xgettext: + - Most of the diagnostics emitted by xgettext are now labelled as + "warning" or "error". + * msgmerge: + - The option '--sorted-output' is now deprecated. + * libgettextpo library: + - This library is now multithread-safe. + - The function 'po_message_set_format' now supports resetting a format + string mark. + +- Remove patches merged upstream: + * gettext-0.12.1-sigfpe.patch + * use-acinit-for-libtextstyle.patch + * reproducible.patch + * reproducible-jar.patch +- Refresh 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 +- Update gettext-linkdupes.sh + +------------------------------------------------------------------- +Wed Feb 26 03:01:34 CET 2025 - Stanislav Brabec + +- 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 + +- Use %autosetup + ------------------------------------------------------------------- Mon Feb 26 14:57:24 UTC 2024 - Dominique Leuenberger diff --git a/gettext-csharp.spec b/gettext-csharp.spec index 356ae29..7ad2d89 100644 --- a/gettext-csharp.spec +++ b/gettext-csharp.spec @@ -1,7 +1,8 @@ # # spec file for package gettext-csharp # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors +# Copyright (c) 2025 Andreas Stieger # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -20,7 +21,7 @@ %global debug_package %{nil} %endif Name: gettext-csharp -Version: 0.22.5 +Version: 0.26 Release: 0 Summary: Native Language Support (NLS) for C# License: LGPL-2.1-or-later @@ -31,22 +32,24 @@ Source1: https://ftp.gnu.org/gnu/gettext/gettext-%{version}.tar.xz.sig Source2: suse-start-po-mode.el Source3: gettext-linkdupes.sh Source4: gettext-rpmlintrc +# pub ed25519 2025-01-28 [SC] +# E0FF BD97 5397 F77A 32AB 76EC B630 1D9E 1BBE AC08 +# uid Bruno Haible (Free Software Development) +# https://savannah.gnu.org/users/haible Source5: gettext-runtime.keyring -Patch0: gettext-0.12.1-sigfpe.patch Patch1: gettext-0.19.3-fix-bashisms.patch Patch2: gettext-0.12.1-gettextize.patch -Patch3: use-acinit-for-libtextstyle.patch 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 # PATCH-FIX-UPSTREAM boo#941629 -- pth@suse.com Patch11: boo941629-unnessary-rpath-on-standard-path.patch -# PATCH-FIX-SUSE Bug boo#1106843 -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++ @@ -56,7 +59,10 @@ BuildRequires: libxml2-devel BuildRequires: mono-devel BuildRequires: perl-libintl-perl BuildRequires: tcl +BuildRequires: pkgconfig(libacl) +BuildRequires: pkgconfig(libattr) Requires: mono +ExcludeArch: i586 %description Mono with its 'resgen' program uses a design that Microsoft created and @@ -80,18 +86,7 @@ also included msgfmt.net.exe and msgunfmt.net.exe handle PO files more reliably than 'resgen'. %prep -%setup -q -n gettext-%{version} -%patch -P 0 -%patch -P 1 -p1 -%patch -P 2 -%patch -P 3 -p1 -%patch -P 4 -%patch -P 5 -%patch -P 6 -p1 -%patch -P 11 -p1 -%patch -P 13 -p1 -%patch -P 14 -p1 -%patch -P 15 -p1 +%autosetup -p1 -n gettext-%{version} %build export CFLAGS="%{optflags} -pipe -W -Wall -Dgcc_is_lint -lm" @@ -125,16 +120,14 @@ mv csharpdoc %{buildroot}/%{_defaultdocdir}/%{name} # exclude files packaged via other spec files rm -Rf %{buildroot}/%{_bindir} rm -f %{buildroot}/%{_libdir}/lib* -rm -f %{buildroot}/%{_libdir}/gettext/hostname -rm -f %{buildroot}/%{_libdir}/gettext/project-id -rm -f %{buildroot}/%{_libdir}/gettext/urlget -rm -f %{buildroot}/%{_libdir}/gettext/user-email -rm -f %{buildroot}/%{_libdir}/gettext/cldr-plurals +rm -rf %{buildroot}/%{_libexecdir} rm -Rf %{buildroot}/%{_includedir} rm -f %{buildroot}/%{_libdir}/preloadable_libintl.so %files %doc %{_defaultdocdir}/%{name} +%exclude %{_libdir}/gettext/GNU.Gettext.dll +%dir %{_libdir}/gettext %{_libdir}/GNU.Gettext.dll %{_libdir}/gettext/msgfmt.net.exe %{_libdir}/gettext/msgunfmt.net.exe diff --git a/gettext-dont-test-gnulib.patch b/gettext-dont-test-gnulib.patch index 1bc33d7..a909f1f 100644 --- a/gettext-dont-test-gnulib.patch +++ b/gettext-dont-test-gnulib.patch @@ -4,23 +4,23 @@ From: Stephan Kulow --- gettext-0.20.1.orig/gettext-tools/Makefile.am 2019-06-04 13:12:49.514030196 +0200 +++ gettext-0.20.1/gettext-tools/Makefile.am 2019-06-04 13:13:09.778072816 +0200 @@ -19,7 +19,7 @@ - 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 + AUTOMAKE_OPTIONS = 1.5 gnu + ACLOCAL_AMFLAGS = -I m4 -I ../gettext-runtime/m4 -I ../m4 -I gnulib-m4 -I libgrep/gnulib-m4 -I libgettextpo/gnulib-m4 -I tests/gnulib-m4 --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 +-SUBDIRS = gnulib-lib libgrep src libgettextpo po its projects styles emacs misc man m4 tests system-tests gnulib-tests install-tests examples doc ++SUBDIRS = gnulib-lib libgrep src libgettextpo po its projects styles emacs misc man m4 tests system-tests examples install-tests doc - EXTRA_DIST = misc/DISCLAIM + EXTRA_DIST = misc/disclaim-translations.txt MOSTLYCLEANFILES = core *.stackdump --- gettext-0.20.1.orig/gettext-tools/Makefile.in 2019-06-04 13:12:49.514030196 +0200 +++ gettext-0.20.1/gettext-tools/Makefile.in 2019-06-04 13:14:33.546249004 +0200 @@ -2016,7 +2016,7 @@ 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 = 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 + AUTOMAKE_OPTIONS = 1.5 gnu + ACLOCAL_AMFLAGS = -I m4 -I ../gettext-runtime/m4 -I ../m4 -I gnulib-m4 -I libgrep/gnulib-m4 -I libgettextpo/gnulib-m4 -I tests/gnulib-m4 +-SUBDIRS = gnulib-lib libgrep src libgettextpo po its projects styles emacs misc man m4 tests system-tests gnulib-tests install-tests examples doc ++SUBDIRS = gnulib-lib libgrep src libgettextpo po its projects styles emacs misc man m4 tests system-tests examples install-tests doc - # Allow users to use "gnulib-tool --update". + # Files imported from tree-sitter. diff --git a/gettext-initialize_vars.patch b/gettext-initialize_vars.patch index ab7e412..4adab28 100644 --- a/gettext-initialize_vars.patch +++ b/gettext-initialize_vars.patch @@ -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 diff --git a/gettext-java.changes b/gettext-java.changes index 3f6110f..f236af2 100644 --- a/gettext-java.changes +++ b/gettext-java.changes @@ -1,3 +1,186 @@ +------------------------------------------------------------------- +Thu Aug 28 06:34:01 UTC 2025 - Guillaume GARDET + +- Add _constraints to avoid OOM build errors + +------------------------------------------------------------------- +Wed Aug 27 10:01:27 UTC 2025 - Thorsten Kukuk + +- autopoint requires diffutils (diff, cmp) + +------------------------------------------------------------------- +Thu Jul 24 09:21:14 UTC 2025 - Ana Guerrero + +- Update to 0.26: + * C, C++, Python, JavaScript, EmacsLisp, librep, Go, Ruby, awk, D, Tcl, + Perl, PHP: + - xgettext's heuristic recognition of format strings has been improved: + strings like "100% complete" (with a space flag in a format directive) + are no longer flagged as format strings by default, unless they occur + in a context that requires a format string. You can override this + heuristic by using a comment of the form /* xgettext: c-format */. + * Shell: + - The documentation now mentions two other approaches for + internationalizing messages with parameters in shell scripts. + - xgettext now recognizes format strings in the 'printf' command syntax. + They are marked as 'sh-printf-format' in POT and PO files. + - Two new programs 'printf_gettext' and 'printf_ngettext' are provided, + that do formatted output with a localized format string in a more + efficient way (without spawning a subshell). + - xgettext now recognizes the \c, \u, and \U escape sequences in dollar- + single-quoted strings $'...'. + # Improvements for maintainers: + * xgettext: + - When extracting a message with plural that is some format string, + xgettext now verifies that the msgid and msgid_plural are compatible + as format strings. For most format string types, this still allows + omitting from msgid a placeholder that is used in msgid_plural. But + when a placeholder is used in both msgid and msgid_plural, its type + must be the same in both. + - xgettext now suggests a refactoring when a translatable string + contains an URL or email address. + + # Improvements for translators: + * msggrep: + - msggrep accepts two new options -W/--workflow-flags and -S/--sticky-flags + that allow to select only messages that have a specified flag. + +- Refresh patches. + +------------------------------------------------------------------- +Wed Jul 23 12:40:45 UTC 2025 - Ana Guerrero + +- Do not build support for Java and C# on i586. + +------------------------------------------------------------------- +Thu Jul 17 07:42:56 UTC 2025 - Ana Guerrero + +- Update to 0.25.1: + * Bug fixes: + - autopoint no longer fails if configure.ac contains no + AM_GNU_GETTEXT_VERSION or AM_GNU_GETTEXT_REQUIRE_VERSION invocation. + - nls.m4 is installed again under $PREFIX/share/aclocal/. + +------------------------------------------------------------------- +Fri May 16 09:35:54 UTC 2025 - Andreas Stieger + +- Update to 0.25: + * xgettext now supports Go + * xgettext now supports TypeScript and TSX + * Add support for the D programming language (library and tools) + * Add support for the Modula-2 programming language (same) + * xgettext has a new option '--generated' that customizes the way + the 'POT-Creation-Date' in the POT file is computed +- build with libacl/libattr + +------------------------------------------------------------------- +Thu May 15 16:06:29 UTC 2025 - Andreas Stieger + +- Update to 0.24.1: + * Fix bad interactions between autoreconf and autopoint + * xgettext: Creating the POT file of a package under Git version + control is now faster. Also, the use of Git can be turned off + by specifying the option --no-git + +------------------------------------------------------------------- +Fri May 9 06:49:21 UTC 2025 - Andreas Stieger + +- update upstream signing key and verify source signatures (again) + +------------------------------------------------------------------- +Wed Apr 9 19:35:55 UTC 2025 - Ana Guerrero + +- Update to 0.24.0 + * Programming languages support: + - C: + + A new example 'hello-c-http' has been added, showing the use + of GNU gettext in a multithreaded web server. + - C++: + + A new example 'hello-c++-gnome3' has been added. + - Ruby: + + A new example 'hello-ruby' has been added. + * Improvements for maintainers: + - When xgettext creates the POT file of a package under Git version + control, the 'POT-Creation-Date' in the POT file usually no longer + changes gratuitously each time the POT file is regenerated. + +- Update to 23.0 + * Internationalized data formats: + - XML + + The escaping of characters such as & < > has been changed: + + No escaping is done any more by xgettext, when creating a POT file. + + Instead, extra escaping can be requested for the msgfmt pass, when + merging into an XML file. + + The default value of 'escape' in the was "yes"; + now it is "no". + + This means that existing translations of older POT files may no + longer fully apply. As a maintainer of a package that has + translatable XML files, you need to regenerate the POT file and + pass it on to your translators. + + XML schemas for .its and .loc files are now provided. + + The value of the xml:lang attribute, inserted by msgfmt, + now conforms to W3C standards. + + 'msgfmt --xml' accept an option --replace-text, that causes + the output to be a mono-lingual XML file instead of a multi-lingual + XML file. + + xgettext and 'msgfmt --xml' now support DocBook XML files. + - Desktop: xgettext now produces POT files with correct line numbers. + * Programming languages support: + - Java: + + xgettext now has an improved recognition of format strings when + the String.formatted method is used. + - C#: + + The build system and tools now also support 'dotnet' (.NET) as + C# implementation. In order to declare a preference for 'dotnet' + over 'mono', you can use the configure option '--enable-csharp=dotnet'. + + xgettext now recognizes strings with embedded expressions + (a.k.a. interpolated strings). + - Perl: + + xgettext now reports warnings instead of fatal errors. + + xgettext now recognizes strings with embedded expressions + (a.k.a. interpolated strings). + * Runtime behaviour: + - In the C.UTF-8 locale, like in the C locale, the *gettext() functions + now return the msgid untranslated. This is relevant for GNU systems, + Linux with musl libc, FreeBSD, NetBSD, OpenBSD, Cygwin, and Android. + * Documentation: + - The section "Preparing Strings" now gives more advice how to deal + with string concatenation and strings with embedded expressions. + * xgettext: + - Most of the diagnostics emitted by xgettext are now labelled as + "warning" or "error". + * msgmerge: + - The option '--sorted-output' is now deprecated. + * libgettextpo library: + - This library is now multithread-safe. + - The function 'po_message_set_format' now supports resetting a format + string mark. + +- Remove patches merged upstream: + * gettext-0.12.1-sigfpe.patch + * use-acinit-for-libtextstyle.patch + * reproducible.patch + * reproducible-jar.patch +- Refresh 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 +- Update gettext-linkdupes.sh + +------------------------------------------------------------------- +Wed Feb 26 03:01:34 CET 2025 - Stanislav Brabec + +- 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 + +- 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 diff --git a/gettext-java.spec b/gettext-java.spec index 0ebab4c..fcff0b4 100644 --- a/gettext-java.spec +++ b/gettext-java.spec @@ -1,7 +1,8 @@ # # spec file for package gettext-java # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors +# Copyright (c) 2025 Andreas Stieger # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +18,7 @@ Name: gettext-java -Version: 0.22.5 +Version: 0.26 Release: 0 Summary: Java Support for Native Language Support (NLS) License: LGPL-2.1-or-later @@ -28,22 +29,24 @@ Source1: https://ftp.gnu.org/gnu/gettext/gettext-%{version}.tar.xz.sig Source2: suse-start-po-mode.el Source3: gettext-linkdupes.sh Source4: gettext-rpmlintrc +# pub ed25519 2025-01-28 [SC] +# E0FF BD97 5397 F77A 32AB 76EC B630 1D9E 1BBE AC08 +# uid Bruno Haible (Free Software Development) +# https://savannah.gnu.org/users/haible Source5: gettext-runtime.keyring -Patch0: gettext-0.12.1-sigfpe.patch Patch1: gettext-0.19.3-fix-bashisms.patch Patch2: gettext-0.12.1-gettextize.patch -Patch3: use-acinit-for-libtextstyle.patch 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 # PATCH-FIX-UPSTREAM boo#941629 -- pth@suse.com Patch11: boo941629-unnessary-rpath-on-standard-path.patch -# PATCH-FIX-SUSE Bug boo#1106843 -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 +Patch17: 0003-Fix-malformed-header-processing.patch BuildRequires: automake >= 1.14 BuildRequires: fdupes BuildRequires: gcc-c++ @@ -54,6 +57,9 @@ BuildRequires: libtool BuildRequires: libxml2-devel BuildRequires: perl-libintl-perl BuildRequires: tcl +BuildRequires: pkgconfig(libacl) +BuildRequires: pkgconfig(libattr) +ExcludeArch: i586 %if 0%{?fedora_version} || 0%{?centos_version} <= 600 || 0%{?scilin_version} <= 600 || 0%{?rhel_version} <= 600 %global debug_package %{nil} @@ -65,18 +71,7 @@ Java applications. It also includes example code for java, java+awt and java+swing. %prep -%setup -q -n gettext-%{version} -%patch -P 0 -%patch -P 1 -p1 -%patch -P 2 -%patch -P 3 -p1 -%patch -P 4 -%patch -P 5 -%patch -P 6 -p1 -%patch -P 11 -p1 -%patch -P 13 -p1 -%patch -P 14 -p1 -%patch -P 15 -p1 +%autosetup -p1 -n gettext-%{version} %build # expect a couple "You should update your `aclocal.m4' by running aclocal." @@ -143,14 +138,11 @@ ls -l %{buildroot}/%{_datadir} # exclude files packaged via other spec files rm -rf %{buildroot}/%{_bindir} rm -f %{buildroot}/%{_libdir}/lib* -rm -f %{buildroot}/%{_libdir}/gettext/hostname -rm -f %{buildroot}/%{_libdir}/gettext/project-id -rm -f %{buildroot}/%{_libdir}/gettext/urlget -rm -f %{buildroot}/%{_libdir}/gettext/user-email -rm -f %{buildroot}/%{_libdir}/gettext/cldr-plurals +rm -rf %{buildroot}/%{_libexecdir} %files %{_defaultdocdir}/%{name} +%dir %{_libdir}/gettext %{_libdir}/gettext/gettext.jar %{_libdir}/gettext/gnu.gettext.DumpResource %{_libdir}/gettext/gnu.gettext.GetURL diff --git a/gettext-linkdupes.sh b/gettext-linkdupes.sh index 9767e1f..b9f6f68 100644 --- a/gettext-linkdupes.sh +++ b/gettext-linkdupes.sh @@ -1,85 +1,138 @@ -ln -f 'hello-ycp/po/LINGUAS' 'hello-c/po/LINGUAS' -ln -f 'hello-ycp/po/LINGUAS' 'hello-c++/po/LINGUAS' -ln -f 'hello-ycp/po/LINGUAS' 'hello-c++-gnome/po/LINGUAS' -ln -f 'hello-ycp/po/LINGUAS' 'hello-c++-kde/po/LINGUAS' -ln -f 'hello-ycp/po/LINGUAS' 'hello-c++-qt/po/LINGUAS' -ln -f 'hello-ycp/po/LINGUAS' 'hello-c++-wxwidgets/po/LINGUAS' -ln -f 'hello-ycp/po/LINGUAS' 'hello-c-gnome/po/LINGUAS' -ln -f 'hello-ycp/po/LINGUAS' 'hello-clisp/po/LINGUAS' -ln -f 'hello-ycp/po/LINGUAS' 'hello-gawk/po/LINGUAS' -ln -f 'hello-ycp/po/LINGUAS' 'hello-guile/po/LINGUAS' -ln -f 'hello-ycp/po/LINGUAS' 'hello-librep/po/LINGUAS' -ln -f 'hello-ycp/po/LINGUAS' 'hello-objc/po/LINGUAS' -ln -f 'hello-ycp/po/LINGUAS' 'hello-objc-gnome/po/LINGUAS' -ln -f 'hello-ycp/po/LINGUAS' 'hello-objc-gnustep/po/LINGUAS' -ln -f 'hello-ycp/po/LINGUAS' 'hello-pascal/po/LINGUAS' -ln -f 'hello-ycp/po/LINGUAS' 'hello-perl/po/LINGUAS' -ln -f 'hello-ycp/po/LINGUAS' 'hello-php/po/LINGUAS' -ln -f 'hello-ycp/po/LINGUAS' 'hello-python/po/LINGUAS' -ln -f 'hello-ycp/po/LINGUAS' 'hello-sh/po/LINGUAS' -ln -f 'hello-ycp/po/LINGUAS' 'hello-smalltalk/po/LINGUAS' -ln -f 'hello-ycp/po/LINGUAS' 'hello-tcl/po/LINGUAS' -ln -f 'hello-ycp/po/LINGUAS' 'hello-tcl-tk/po/LINGUAS' -ln -f 'hello-ycp/m4/Makefile.am' 'hello-clisp/m4/Makefile.am' -ln -f 'hello-ycp/m4/Makefile.am' 'hello-gawk/m4/Makefile.am' -ln -f 'hello-ycp/m4/Makefile.am' 'hello-guile/m4/Makefile.am' -ln -f 'hello-ycp/m4/Makefile.am' 'hello-librep/m4/Makefile.am' -ln -f 'hello-ycp/m4/Makefile.am' 'hello-pascal/m4/Makefile.am' -ln -f 'hello-ycp/m4/Makefile.am' 'hello-perl/m4/Makefile.am' -ln -f 'hello-ycp/m4/Makefile.am' 'hello-php/m4/Makefile.am' -ln -f 'hello-ycp/m4/Makefile.am' 'hello-python/m4/Makefile.am' -ln -f 'hello-ycp/m4/Makefile.am' 'hello-sh/m4/Makefile.am' -ln -f 'hello-ycp/m4/Makefile.am' 'hello-smalltalk/m4/Makefile.am' -ln -f 'hello-ycp/m4/Makefile.am' 'hello-tcl/m4/Makefile.am' -ln -f 'hello-ycp/m4/Makefile.am' 'hello-tcl-tk/m4/Makefile.am' -ln -f 'hello-ycp/autogen.sh' 'hello-clisp/autogen.sh' -ln -f 'hello-ycp/autogen.sh' 'hello-gawk/autogen.sh' -ln -f 'hello-ycp/autogen.sh' 'hello-guile/autogen.sh' -ln -f 'hello-ycp/autogen.sh' 'hello-librep/autogen.sh' -ln -f 'hello-ycp/autogen.sh' 'hello-pascal/autogen.sh' -ln -f 'hello-ycp/autogen.sh' 'hello-perl/autogen.sh' -ln -f 'hello-ycp/autogen.sh' 'hello-php/autogen.sh' -ln -f 'hello-ycp/autogen.sh' 'hello-python/autogen.sh' -ln -f 'hello-ycp/autogen.sh' 'hello-sh/autogen.sh' -ln -f 'hello-ycp/autogen.sh' 'hello-smalltalk/autogen.sh' -ln -f 'hello-ycp/autoclean.sh' 'hello-clisp/autoclean.sh' -ln -f 'hello-ycp/autoclean.sh' 'hello-gawk/autoclean.sh' -ln -f 'hello-ycp/autoclean.sh' 'hello-guile/autoclean.sh' -ln -f 'hello-ycp/autoclean.sh' 'hello-librep/autoclean.sh' -ln -f 'hello-ycp/autoclean.sh' 'hello-pascal/autoclean.sh' -ln -f 'hello-ycp/autoclean.sh' 'hello-perl/autoclean.sh' -ln -f 'hello-ycp/autoclean.sh' 'hello-php/autoclean.sh' -ln -f 'hello-ycp/autoclean.sh' 'hello-python/autoclean.sh' -ln -f 'hello-ycp/autoclean.sh' 'hello-sh/autoclean.sh' -ln -f 'hello-ycp/autoclean.sh' 'hello-smalltalk/autoclean.sh' +# To update this file, build gettext-runtime.spec with the following steps: +# Do not run this script (look for line with something similar to sh %{SOURCE3}) +# Add BuildRequires: fdupes +# After all files are generated add: %fdupes -s %{buildroot} + ln -f 'hello-tcl-tk/po/Makefile.am' 'hello-tcl/po/Makefile.am' -ln -f 'hello-tcl-tk/Makefile.am' 'hello-gawk/Makefile.am' -ln -f 'hello-tcl-tk/Makefile.am' 'hello-guile/Makefile.am' -ln -f 'hello-tcl-tk/Makefile.am' 'hello-php/Makefile.am' -ln -f 'hello-tcl-tk/Makefile.am' 'hello-sh/Makefile.am' -ln -f 'hello-tcl-tk/Makefile.am' 'hello-tcl/Makefile.am' -ln -f 'hello-tcl-tk/autogen.sh' 'hello-tcl/autogen.sh' ln -f 'hello-tcl-tk/autoclean.sh' 'hello-tcl/autoclean.sh' -ln -f 'hello-objc-gnome/po/POTFILES.in' 'hello-objc/po/POTFILES.in' -ln -f 'hello-objc-gnome/po/Makevars' 'hello-c++-gnome/po/Makevars' -ln -f 'hello-objc-gnome/po/Makevars' 'hello-c-gnome/po/Makevars' -ln -f 'hello-objc-gnome/m4/gnome-orbit-check.m4' 'hello-c++-gnome/m4/gnome-orbit-check.m4' -ln -f 'hello-objc-gnome/m4/gnome-orbit-check.m4' 'hello-c-gnome/m4/gnome-orbit-check.m4' -ln -f 'hello-objc-gnome/m4/gnome-gnorba-check.m4' 'hello-c++-gnome/m4/gnome-gnorba-check.m4' -ln -f 'hello-objc-gnome/m4/gnome-gnorba-check.m4' 'hello-c-gnome/m4/gnome-gnorba-check.m4' -ln -f 'hello-objc-gnome/m4/gnome.m4' 'hello-c++-gnome/m4/gnome.m4' -ln -f 'hello-objc-gnome/m4/gnome.m4' 'hello-c-gnome/m4/gnome.m4' -ln -f 'hello-objc-gnome/m4/Makefile.am' 'hello-c-gnome/m4/Makefile.am' -ln -f 'hello-objc-gnome/autogen.sh' 'hello-c++-gnome/autogen.sh' -ln -f 'hello-objc-gnome/autogen.sh' 'hello-c-gnome/autogen.sh' -ln -f 'hello-objc-gnome/autoclean.sh' 'hello-c++-gnome/autoclean.sh' -ln -f 'hello-objc-gnome/autoclean.sh' 'hello-c-gnome/autoclean.sh' -ln -f 'hello-objc/po/Makevars' 'hello-c/po/Makevars' -ln -f 'hello-objc/m4/Makefile.am' 'hello-c/m4/Makefile.am' -ln -f 'hello-objc/m4/Makefile.am' 'hello-c++/m4/Makefile.am' -ln -f 'hello-objc/m4/Makefile.am' 'hello-c++-kde/m4/Makefile.am' -ln -f 'hello-objc/autogen.sh' 'hello-c/autogen.sh' -ln -f 'hello-objc/autoclean.sh' 'hello-c/autoclean.sh' -ln -f 'hello-objc/autoclean.sh' 'hello-c++/autoclean.sh' -ln -f 'hello-c-gnome/po/POTFILES.in' 'hello-c/po/POTFILES.in' -ln -f 'hello-c++-gnome/po/POTFILES.in' 'hello-c++/po/POTFILES.in' +ln -f 'hello-tcl-tk/autogen.sh' 'hello-tcl/autogen.sh' +ln -f 'hello-tcl-tk/Makefile.am' 'hello-tcl/Makefile.am' +ln -f 'hello-sh/Makefile.am' 'hello-tcl/Makefile.am' +ln -f 'hello-ruby/Makefile.am' 'hello-tcl/Makefile.am' +ln -f 'hello-php/Makefile.am' 'hello-tcl/Makefile.am' +ln -f 'hello-guile/Makefile.am' 'hello-tcl/Makefile.am' +ln -f 'hello-gawk/Makefile.am' 'hello-tcl/Makefile.am' +ln -f 'hello-csharp-forms/po/Makefile.am' 'hello-csharp/po/Makefile.am' +ln -f 'hello-csharp-forms/m4/Makefile.am' 'hello-csharp/m4/Makefile.am' +ln -f 'hello-csharp-forms/autoclean.sh' 'hello-csharp/autoclean.sh' +ln -f 'hello-csharp-forms/autogen.sh' 'hello-csharp/autogen.sh' +ln -f 'hello-java-awt/m4/TestAWT.class' 'hello-java-swing/m4/TestAWT.class' +ln -f 'hello-java-awt/m4/TestAWT.java' 'hello-java-swing/m4/TestAWT.java' +ln -f 'hello-java-awt/m4/Makefile.am' 'hello-java-swing/m4/Makefile.am' +ln -f 'hello-java-awt/Makefile.am' 'hello-java-swing/Makefile.am' +ln -f 'hello-java-swing/po/Makefile.am' 'hello-java/po/Makefile.am' +ln -f 'hello-java-qtjambi/po/Makefile.am' 'hello-java/po/Makefile.am' +ln -f 'hello-java-awt/po/Makefile.am' 'hello-java/po/Makefile.am' +ln -f 'hello-java-swing/autogen.sh' 'hello-java/autogen.sh' +ln -f 'hello-java-qtjambi/autogen.sh' 'hello-java/autogen.sh' +ln -f 'hello-java-awt/autogen.sh' 'hello-java/autogen.sh' +ln -f 'hello-tcl/m4/Makefile.am' 'hello-ycp/m4/Makefile.am' +ln -f 'hello-tcl-tk/m4/Makefile.am' 'hello-ycp/m4/Makefile.am' +ln -f 'hello-smalltalk/m4/Makefile.am' 'hello-ycp/m4/Makefile.am' +ln -f 'hello-sh/m4/Makefile.am' 'hello-ycp/m4/Makefile.am' +ln -f 'hello-rust/m4/Makefile.am' 'hello-ycp/m4/Makefile.am' +ln -f 'hello-ruby/m4/Makefile.am' 'hello-ycp/m4/Makefile.am' +ln -f 'hello-python/m4/Makefile.am' 'hello-ycp/m4/Makefile.am' +ln -f 'hello-php/m4/Makefile.am' 'hello-ycp/m4/Makefile.am' +ln -f 'hello-perl/m4/Makefile.am' 'hello-ycp/m4/Makefile.am' +ln -f 'hello-pascal/m4/Makefile.am' 'hello-ycp/m4/Makefile.am' +ln -f 'hello-librep/m4/Makefile.am' 'hello-ycp/m4/Makefile.am' +ln -f 'hello-guile/m4/Makefile.am' 'hello-ycp/m4/Makefile.am' +ln -f 'hello-gawk/m4/Makefile.am' 'hello-ycp/m4/Makefile.am' +ln -f 'hello-clisp/m4/Makefile.am' 'hello-ycp/m4/Makefile.am' +ln -f 'hello-smalltalk/autoclean.sh' 'hello-ycp/autoclean.sh' +ln -f 'hello-sh/autoclean.sh' 'hello-ycp/autoclean.sh' +ln -f 'hello-ruby/autoclean.sh' 'hello-ycp/autoclean.sh' +ln -f 'hello-python/autoclean.sh' 'hello-ycp/autoclean.sh' +ln -f 'hello-php/autoclean.sh' 'hello-ycp/autoclean.sh' +ln -f 'hello-perl/autoclean.sh' 'hello-ycp/autoclean.sh' +ln -f 'hello-librep/autoclean.sh' 'hello-ycp/autoclean.sh' +ln -f 'hello-guile/autoclean.sh' 'hello-ycp/autoclean.sh' +ln -f 'hello-gawk/autoclean.sh' 'hello-ycp/autoclean.sh' +ln -f 'hello-clisp/autoclean.sh' 'hello-ycp/autoclean.sh' +ln -f 'hello-smalltalk/autogen.sh' 'hello-ycp/autogen.sh' +ln -f 'hello-sh/autogen.sh' 'hello-ycp/autogen.sh' +ln -f 'hello-rust/autogen.sh' 'hello-ycp/autogen.sh' +ln -f 'hello-ruby/autogen.sh' 'hello-ycp/autogen.sh' +ln -f 'hello-python/autogen.sh' 'hello-ycp/autogen.sh' +ln -f 'hello-php/autogen.sh' 'hello-ycp/autogen.sh' +ln -f 'hello-perl/autogen.sh' 'hello-ycp/autogen.sh' +ln -f 'hello-pascal/autogen.sh' 'hello-ycp/autogen.sh' +ln -f 'hello-librep/autogen.sh' 'hello-ycp/autogen.sh' +ln -f 'hello-guile/autogen.sh' 'hello-ycp/autogen.sh' +ln -f 'hello-gawk/autogen.sh' 'hello-ycp/autogen.sh' +ln -f 'hello-clisp/autogen.sh' 'hello-ycp/autogen.sh' +ln -f 'hello-objc-gnome2/po/POTFILES.in' 'hello-objc/po/POTFILES.in' +ln -f 'hello-c++/po/POTFILES.in' 'hello-c++20/po/POTFILES.in' +ln -f 'hello-c++-gnome2/po/POTFILES.in' 'hello-c++20/po/POTFILES.in' +ln -f 'hello-c++/po/Makevars' 'hello-c++20/po/Makevars' +ln -f 'hello-c++/autogen.sh' 'hello-c++20/autogen.sh' +ln -f 'hello-c++-gnome3/hello.ui' 'hello-c-gnome3/hello.ui' +ln -f 'hello-c++-gnome3/hello.gresource.xml' 'hello-c-gnome3/hello.gresource.xml' +ln -f 'hello-c++-gnome3/hello.desktop.in.in' 'hello-c-gnome3/hello.desktop.in.in' +ln -f 'hello-c-gnome3/po/Makevars' 'hello-objc-gnome2/po/Makevars' +ln -f 'hello-c-gnome2/po/Makevars' 'hello-objc-gnome2/po/Makevars' +ln -f 'hello-c++-gnome3/po/Makevars' 'hello-objc-gnome2/po/Makevars' +ln -f 'hello-c++-gnome2/po/Makevars' 'hello-objc-gnome2/po/Makevars' +ln -f 'hello-c-gnome2/m4/gnome-orbit-check.m4' 'hello-objc-gnome2/m4/gnome-orbit-check.m4' +ln -f 'hello-c++-gnome2/m4/gnome-orbit-check.m4' 'hello-objc-gnome2/m4/gnome-orbit-check.m4' +ln -f 'hello-c-gnome2/m4/gnome-gnorba-check.m4' 'hello-objc-gnome2/m4/gnome-gnorba-check.m4' +ln -f 'hello-c++-gnome2/m4/gnome-gnorba-check.m4' 'hello-objc-gnome2/m4/gnome-gnorba-check.m4' +ln -f 'hello-c-gnome2/m4/gnome.m4' 'hello-objc-gnome2/m4/gnome.m4' +ln -f 'hello-c++-gnome2/m4/gnome.m4' 'hello-objc-gnome2/m4/gnome.m4' +ln -f 'hello-c-http/autoclean.sh' 'hello-objc-gnome2/autoclean.sh' +ln -f 'hello-c-gnome2/autoclean.sh' 'hello-objc-gnome2/autoclean.sh' +ln -f 'hello-c++-gnome2/autoclean.sh' 'hello-objc-gnome2/autoclean.sh' +ln -f 'hello-c-gnome3/autogen.sh' 'hello-objc-gnome2/autogen.sh' +ln -f 'hello-c-gnome2/autogen.sh' 'hello-objc-gnome2/autogen.sh' +ln -f 'hello-c++-gnome3/autogen.sh' 'hello-objc-gnome2/autogen.sh' +ln -f 'hello-c++-gnome2/autogen.sh' 'hello-objc-gnome2/autogen.sh' +ln -f 'hello-tcl/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-tcl-tk/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-smalltalk/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-sh/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-rust/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-ruby/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-python/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-php/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-perl/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-pascal/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-objc/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-objc-gnustep/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-objc-gnome2/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-librep/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-java/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-java-swing/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-java-qtjambi/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-java-awt/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-guile/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-gawk/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-csharp/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-csharp-forms/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-clisp/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-c/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-c-http/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-c-gnome3/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-c-gnome2/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-c++20/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-c++/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-c++-wxwidgets/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-c++-qt/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-c++-kde/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-c++-gnome3/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-c++-gnome2/po/LINGUAS' 'hello-ycp/po/LINGUAS' +ln -f 'hello-c-gnome2/po/POTFILES.in' 'hello-c/po/POTFILES.in' +ln -f 'hello-c/po/Makevars' 'hello-objc/po/Makevars' +ln -f 'hello-c-http/po/Makevars' 'hello-objc/po/Makevars' +ln -f 'hello-objc-gnome2/m4/Makefile.am' 'hello-objc/m4/Makefile.am' +ln -f 'hello-c/m4/Makefile.am' 'hello-objc/m4/Makefile.am' +ln -f 'hello-c-http/m4/Makefile.am' 'hello-objc/m4/Makefile.am' +ln -f 'hello-c-gnome3/m4/Makefile.am' 'hello-objc/m4/Makefile.am' +ln -f 'hello-c++20/m4/Makefile.am' 'hello-objc/m4/Makefile.am' +ln -f 'hello-c++/m4/Makefile.am' 'hello-objc/m4/Makefile.am' +ln -f 'hello-c++-kde/m4/Makefile.am' 'hello-objc/m4/Makefile.am' +ln -f 'hello-c++-gnome3/m4/Makefile.am' 'hello-objc/m4/Makefile.am' +ln -f 'hello-c/autoclean.sh' 'hello-objc/autoclean.sh' +ln -f 'hello-c++20/autoclean.sh' 'hello-objc/autoclean.sh' +ln -f 'hello-c++/autoclean.sh' 'hello-objc/autoclean.sh' +ln -f 'hello-c/autogen.sh' 'hello-objc/autogen.sh' diff --git a/gettext-po-mode.diff b/gettext-po-mode.diff index a5e13ea..ab3381b 100644 --- a/gettext-po-mode.diff +++ b/gettext-po-mode.diff @@ -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. diff --git a/gettext-runtime-mini.changes b/gettext-runtime-mini.changes index 59ae323..6730d6b 100644 --- a/gettext-runtime-mini.changes +++ b/gettext-runtime-mini.changes @@ -1,3 +1,190 @@ +------------------------------------------------------------------- +Thu Aug 28 06:34:01 UTC 2025 - Guillaume GARDET + +- Add _constraints to avoid OOM build errors + +------------------------------------------------------------------- +Wed Aug 27 10:01:27 UTC 2025 - Thorsten Kukuk + +- autopoint requires diffutils (diff, cmp) + +------------------------------------------------------------------- +Thu Jul 24 09:21:14 UTC 2025 - Ana Guerrero + +- Update to 0.26: + * C, C++, Python, JavaScript, EmacsLisp, librep, Go, Ruby, awk, D, Tcl, + Perl, PHP: + - xgettext's heuristic recognition of format strings has been improved: + strings like "100% complete" (with a space flag in a format directive) + are no longer flagged as format strings by default, unless they occur + in a context that requires a format string. You can override this + heuristic by using a comment of the form /* xgettext: c-format */. + * Shell: + - The documentation now mentions two other approaches for + internationalizing messages with parameters in shell scripts. + - xgettext now recognizes format strings in the 'printf' command syntax. + They are marked as 'sh-printf-format' in POT and PO files. + - Two new programs 'printf_gettext' and 'printf_ngettext' are provided, + that do formatted output with a localized format string in a more + efficient way (without spawning a subshell). + - xgettext now recognizes the \c, \u, and \U escape sequences in dollar- + single-quoted strings $'...'. + # Improvements for maintainers: + * xgettext: + - When extracting a message with plural that is some format string, + xgettext now verifies that the msgid and msgid_plural are compatible + as format strings. For most format string types, this still allows + omitting from msgid a placeholder that is used in msgid_plural. But + when a placeholder is used in both msgid and msgid_plural, its type + must be the same in both. + - xgettext now suggests a refactoring when a translatable string + contains an URL or email address. + + # Improvements for translators: + * msggrep: + - msggrep accepts two new options -W/--workflow-flags and -S/--sticky-flags + that allow to select only messages that have a specified flag. + +- Refresh patches. + +------------------------------------------------------------------- +Wed Jul 23 12:40:45 UTC 2025 - Ana Guerrero + +- Do not build support for Java and C# on i586. + +------------------------------------------------------------------- +Thu Jul 17 07:42:56 UTC 2025 - Ana Guerrero + +- Update to 0.25.1: + * Bug fixes: + - autopoint no longer fails if configure.ac contains no + AM_GNU_GETTEXT_VERSION or AM_GNU_GETTEXT_REQUIRE_VERSION invocation. + - nls.m4 is installed again under $PREFIX/share/aclocal/. + +------------------------------------------------------------------- +Fri May 16 09:35:54 UTC 2025 - Andreas Stieger + +- Update to 0.25: + * xgettext now supports Go + * xgettext now supports TypeScript and TSX + * Add support for the D programming language (library and tools) + * Add support for the Modula-2 programming language (same) + * xgettext has a new option '--generated' that customizes the way + the 'POT-Creation-Date' in the POT file is computed +- build with libacl/libattr + +------------------------------------------------------------------- +Thu May 15 16:06:29 UTC 2025 - Andreas Stieger + +- Update to 0.24.1: + * Fix bad interactions between autoreconf and autopoint + * xgettext: Creating the POT file of a package under Git version + control is now faster. Also, the use of Git can be turned off + by specifying the option --no-git + +------------------------------------------------------------------- +Fri May 9 06:49:21 UTC 2025 - Andreas Stieger + +- update upstream signing key and verify source signatures (again) + +------------------------------------------------------------------- +Wed Apr 9 19:35:55 UTC 2025 - Ana Guerrero + +- Update to 0.24.0 + * Programming languages support: + - C: + + A new example 'hello-c-http' has been added, showing the use + of GNU gettext in a multithreaded web server. + - C++: + + A new example 'hello-c++-gnome3' has been added. + - Ruby: + + A new example 'hello-ruby' has been added. + * Improvements for maintainers: + - When xgettext creates the POT file of a package under Git version + control, the 'POT-Creation-Date' in the POT file usually no longer + changes gratuitously each time the POT file is regenerated. + +- Update to 23.0 + * Internationalized data formats: + - XML + + The escaping of characters such as & < > has been changed: + + No escaping is done any more by xgettext, when creating a POT file. + + Instead, extra escaping can be requested for the msgfmt pass, when + merging into an XML file. + + The default value of 'escape' in the was "yes"; + now it is "no". + + This means that existing translations of older POT files may no + longer fully apply. As a maintainer of a package that has + translatable XML files, you need to regenerate the POT file and + pass it on to your translators. + + XML schemas for .its and .loc files are now provided. + + The value of the xml:lang attribute, inserted by msgfmt, + now conforms to W3C standards. + + 'msgfmt --xml' accept an option --replace-text, that causes + the output to be a mono-lingual XML file instead of a multi-lingual + XML file. + + xgettext and 'msgfmt --xml' now support DocBook XML files. + - Desktop: xgettext now produces POT files with correct line numbers. + * Programming languages support: + - Java: + + xgettext now has an improved recognition of format strings when + the String.formatted method is used. + - C#: + + The build system and tools now also support 'dotnet' (.NET) as + C# implementation. In order to declare a preference for 'dotnet' + over 'mono', you can use the configure option '--enable-csharp=dotnet'. + + xgettext now recognizes strings with embedded expressions + (a.k.a. interpolated strings). + - Perl: + + xgettext now reports warnings instead of fatal errors. + + xgettext now recognizes strings with embedded expressions + (a.k.a. interpolated strings). + * Runtime behaviour: + - In the C.UTF-8 locale, like in the C locale, the *gettext() functions + now return the msgid untranslated. This is relevant for GNU systems, + Linux with musl libc, FreeBSD, NetBSD, OpenBSD, Cygwin, and Android. + * Documentation: + - The section "Preparing Strings" now gives more advice how to deal + with string concatenation and strings with embedded expressions. + * xgettext: + - Most of the diagnostics emitted by xgettext are now labelled as + "warning" or "error". + * msgmerge: + - The option '--sorted-output' is now deprecated. + * libgettextpo library: + - This library is now multithread-safe. + - The function 'po_message_set_format' now supports resetting a format + string mark. + +- Remove patches merged upstream: + * gettext-0.12.1-sigfpe.patch + * use-acinit-for-libtextstyle.patch + * reproducible.patch + * reproducible-jar.patch +- Refresh 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 +- Update gettext-linkdupes.sh + +------------------------------------------------------------------- +Wed Feb 26 03:01:34 CET 2025 - Stanislav Brabec + +- 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 + +- 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 + +- Use %autosetup + ------------------------------------------------------------------- Thu Jun 6 14:23:04 UTC 2024 - Dominique Leuenberger diff --git a/gettext-runtime-mini.spec b/gettext-runtime-mini.spec index 50cbc61..e1991b5 100644 --- a/gettext-runtime-mini.spec +++ b/gettext-runtime-mini.spec @@ -1,7 +1,8 @@ # # spec file for package gettext-runtime-mini # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors +# Copyright (c) 2025 Andreas Stieger # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -20,19 +21,21 @@ %bcond_without mini Name: gettext-runtime-mini -Version: 0.22.5 +Version: 0.26 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: +# To get an updated linkdupes.sh (in case there are new dupes), temporarily enable: #BuildRequires: fdupes %if %{without mini} BuildRequires: glib2-devel BuildRequires: libxml2-devel BuildRequires: perl-libintl-perl BuildRequires: tcl +BuildRequires: pkgconfig(libacl) +BuildRequires: pkgconfig(libattr) # bug437293 %ifarch ppc64 Obsoletes: gettext-64bit @@ -51,6 +54,8 @@ 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 @@ -61,22 +66,24 @@ Source2: suse-start-po-mode.el Source3: gettext-linkdupes.sh Source4: baselibs.conf Source5: gettext-rpmlintrc +# pub ed25519 2025-01-28 [SC] +# E0FF BD97 5397 F77A 32AB 76EC B630 1D9E 1BBE AC08 +# uid Bruno Haible (Free Software Development) +# https://savannah.gnu.org/users/haible Source6: gettext-runtime.keyring -Patch0: gettext-0.12.1-sigfpe.patch Patch1: gettext-0.19.3-fix-bashisms.patch Patch2: gettext-0.12.1-gettextize.patch -Patch3: use-acinit-for-libtextstyle.patch 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 # PATCH-FIX-UPSTREAM boo#941629 -- pth@suse.com Patch11: boo941629-unnessary-rpath-on-standard-path.patch -# PATCH-FIX-SUSE Bug boo#1106843 -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 @@ -92,10 +99,9 @@ License: LGPL-2.1-or-later Group: Development/Tools/Other Requires: %{name} = %{version} Requires: xz -# gettext.sh requires envsubst -Requires: envsubst%{?with_mini:-mini} = %{version} -# autopoint requires find +# autopoint requires find, diff and cmp Requires: findutils +Requires: diffutils # For non-UTF encodings Requires: glibc-gconv-modules-extra %if %{without mini} @@ -173,18 +179,7 @@ This package provides headers and static libraries for libtextstyle %endif %prep -%setup -q -n %{pacname}-%{version} -%patch -P 0 -%patch -P 1 -p1 -%patch -P 2 -%patch -P 3 -p1 -%patch -P 4 -%patch -P 5 -%patch -P 6 -p1 -%patch -P 11 -p1 -%patch -P 13 -p1 -%patch -P 14 -p1 -%patch -P 15 -p1 +%autosetup -p1 -n %{pacname}-%{version} %build %define _lto_cflags %{nil} @@ -285,12 +280,12 @@ make check || { %endif %files -f gettext-runtime.lang -%defattr(-,root,root) %license COPYING -%dir %_datadir/gettext %doc %dir %_docdir/%name/ %doc %_docdir/%name/gettext.1.html %doc %_docdir/%name/ngettext.1.html +%doc %_docdir/%name/printf_gettext.1.html +%doc %_docdir/%name/printf_ngettext.1.html %doc %_docdir/%name/*.3.html %doc %_docdir/%name/AUTHORS %doc %_docdir/%name/NEWS @@ -300,14 +295,17 @@ make check || { %_bindir/ngettext %_bindir/gettext.sh %_bindir/msgfmt +%_bindir/printf_gettext +%_bindir/printf_ngettext %_libdir/libgettextlib-*.so %_libdir/libgettextsrc-*.so %_libdir/libasprintf.so.* %doc %_mandir/man1/gettext.1.gz %doc %_mandir/man1/ngettext.1.gz %doc %_mandir/man1/msgfmt.1.gz +%doc %_mandir/man1/printf_gettext.1.gz +%doc %_mandir/man1/printf_ngettext.1.gz %doc %_mandir/man3/* -%_datadir/gettext/ABOUT-NLS %dir %_datadir/emacs %dir %_datadir/emacs/site-lisp %_datadir/emacs/site-lisp/po-compat.* @@ -322,7 +320,6 @@ make check || { %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]* %_bindir/msgfilter %_bindir/xgettext @@ -345,7 +342,11 @@ make check || { %_libdir/libgettextsrc.* %_libdir/libgettextpo* %_libdir/preloadable_libintl.so -%_libdir/gettext +%_libexecdir/gettext +%dir %_datadir/gettext +%_datadir/gettext +%exclude %_datadir/gettext/ABOUT-NLS +%_datadir/aclocal %_datadir/%pacname/config.rpath %_datadir/%pacname/po %_datadir/%pacname/projects @@ -354,12 +355,10 @@ make check || { %_datadir/%pacname/javaversion.class %_datadir/%pacname/styles %_datadir/%pacname/archive.dir.tar.xz -%_datadir/aclocal %dir %{_datadir}/%{pacname}-%{version} %{_datadir}/%{pacname}-%{version}/its %files tools-doc -%defattr(-,root,root) %doc %dir %_docdir/%name/ %doc %_docdir/%name/examples/ %doc %_docdir/%name/auto*.html @@ -372,11 +371,9 @@ make check || { %if %{without mini} %files -n libtextstyle0 -%defattr(-,root,root) %_libdir/libtextstyle.so.* %files -n libtextstyle-devel -%defattr(-,root,root) %dir %_includedir/textstyle %_includedir/textstyle.h %_includedir/textstyle/stdbool.h diff --git a/gettext-runtime.changes b/gettext-runtime.changes index 59ae323..c087192 100644 --- a/gettext-runtime.changes +++ b/gettext-runtime.changes @@ -1,3 +1,190 @@ +------------------------------------------------------------------- +Thu Aug 28 06:34:01 UTC 2025 - Guillaume GARDET + +- Add _constraints to avoid OOM build errors + +------------------------------------------------------------------- +Wed Aug 27 10:01:27 UTC 2025 - Thorsten Kukuk + +- autopoint requires diffutils (diff, cmp) + +------------------------------------------------------------------- +Thu Jul 24 09:21:14 UTC 2025 - Ana Guerrero + +- Update to 0.26: + * C, C++, Python, JavaScript, EmacsLisp, librep, Go, Ruby, awk, D, Tcl, + Perl, PHP: + - xgettext's heuristic recognition of format strings has been improved: + strings like "100% complete" (with a space flag in a format directive) + are no longer flagged as format strings by default, unless they occur + in a context that requires a format string. You can override this + heuristic by using a comment of the form /* xgettext: c-format */. + * Shell: + - The documentation now mentions two other approaches for + internationalizing messages with parameters in shell scripts. + - xgettext now recognizes format strings in the 'printf' command syntax. + They are marked as 'sh-printf-format' in POT and PO files. + - Two new programs 'printf_gettext' and 'printf_ngettext' are provided, + that do formatted output with a localized format string in a more + efficient way (without spawning a subshell). + - xgettext now recognizes the \c, \u, and \U escape sequences in dollar- + single-quoted strings $'...'. + # Improvements for maintainers: + * xgettext: + - When extracting a message with plural that is some format string, + xgettext now verifies that the msgid and msgid_plural are compatible + as format strings. For most format string types, this still allows + omitting from msgid a placeholder that is used in msgid_plural. But + when a placeholder is used in both msgid and msgid_plural, its type + must be the same in both. + - xgettext now suggests a refactoring when a translatable string + contains an URL or email address. + + # Improvements for translators: + * msggrep: + - msggrep accepts two new options -W/--workflow-flags and -S/--sticky-flags + that allow to select only messages that have a specified flag. + +- Refresh patches. + +------------------------------------------------------------------- +Wed Jul 23 12:40:45 UTC 2025 - Ana Guerrero + +- Do not build support for Java and C# on i586. + +------------------------------------------------------------------- +Thu Jul 17 07:42:56 UTC 2025 - Ana Guerrero + +- Update to 0.25.1: + * Bug fixes: + - autopoint no longer fails if configure.ac contains no + AM_GNU_GETTEXT_VERSION or AM_GNU_GETTEXT_REQUIRE_VERSION invocation. + - nls.m4 is installed again under $PREFIX/share/aclocal/. + +------------------------------------------------------------------- +Fri May 16 09:35:54 UTC 2025 - Andreas Stieger + +- Update to 0.25: + * xgettext now supports Go + * xgettext now supports TypeScript and TSX + * Add support for the D programming language (library and tools) + * Add support for the Modula-2 programming language (same) + * xgettext has a new option '--generated' that customizes the way + the 'POT-Creation-Date' in the POT file is computed +- build with libacl/libattr + +------------------------------------------------------------------- +Thu May 15 16:06:29 UTC 2025 - Andreas Stieger + +- Update to 0.24.1: + * Fix bad interactions between autoreconf and autopoint + * xgettext: Creating the POT file of a package under Git version + control is now faster. Also, the use of Git can be turned off + by specifying the option --no-git + +------------------------------------------------------------------- +Fri May 9 06:49:21 UTC 2025 - Andreas Stieger + +- update upstream signing key and verify source signatures (again) + +------------------------------------------------------------------- +Wed Apr 9 19:35:55 UTC 2025 - Ana Guerrero + +- Update to 0.24.0 + * Programming languages support: + - C: + + A new example 'hello-c-http' has been added, showing the use + of GNU gettext in a multithreaded web server. + - C++: + + A new example 'hello-c++-gnome3' has been added. + - Ruby: + + A new example 'hello-ruby' has been added. + * Improvements for maintainers: + - When xgettext creates the POT file of a package under Git version + control, the 'POT-Creation-Date' in the POT file usually no longer + changes gratuitously each time the POT file is regenerated. + +- Update to 23.0 + * Internationalized data formats: + - XML + + The escaping of characters such as & < > has been changed: + + No escaping is done any more by xgettext, when creating a POT file. + + Instead, extra escaping can be requested for the msgfmt pass, when + merging into an XML file. + + The default value of 'escape' in the was "yes"; + now it is "no". + + This means that existing translations of older POT files may no + longer fully apply. As a maintainer of a package that has + translatable XML files, you need to regenerate the POT file and + pass it on to your translators. + + XML schemas for .its and .loc files are now provided. + + The value of the xml:lang attribute, inserted by msgfmt, + now conforms to W3C standards. + + 'msgfmt --xml' accept an option --replace-text, that causes + the output to be a mono-lingual XML file instead of a multi-lingual + XML file. + + xgettext and 'msgfmt --xml' now support DocBook XML files. + - Desktop: xgettext now produces POT files with correct line numbers. + * Programming languages support: + - Java: + + xgettext now has an improved recognition of format strings when + the String.formatted method is used. + - C#: + + The build system and tools now also support 'dotnet' (.NET) as + C# implementation. In order to declare a preference for 'dotnet' + over 'mono', you can use the configure option '--enable-csharp=dotnet'. + + xgettext now recognizes strings with embedded expressions + (a.k.a. interpolated strings). + - Perl: + + xgettext now reports warnings instead of fatal errors. + + xgettext now recognizes strings with embedded expressions + (a.k.a. interpolated strings). + * Runtime behaviour: + - In the C.UTF-8 locale, like in the C locale, the *gettext() functions + now return the msgid untranslated. This is relevant for GNU systems, + Linux with musl libc, FreeBSD, NetBSD, OpenBSD, Cygwin, and Android. + * Documentation: + - The section "Preparing Strings" now gives more advice how to deal + with string concatenation and strings with embedded expressions. + * xgettext: + - Most of the diagnostics emitted by xgettext are now labelled as + "warning" or "error". + * msgmerge: + - The option '--sorted-output' is now deprecated. + * libgettextpo library: + - This library is now multithread-safe. + - The function 'po_message_set_format' now supports resetting a format + string mark. + +- Remove patches merged upstream: + * gettext-0.12.1-sigfpe.patch + * use-acinit-for-libtextstyle.patch + * reproducible.patch + * reproducible-jar.patch +- Refresh 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 +- Update gettext-linkdupes.sh + +------------------------------------------------------------------- +Wed Feb 26 03:01:34 CET 2025 - Stanislav Brabec + +- 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 + +- 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 + +- Use %autosetup + ------------------------------------------------------------------- Thu Jun 6 14:23:04 UTC 2024 - Dominique Leuenberger diff --git a/gettext-runtime.keyring b/gettext-runtime.keyring index 05af0ea..006ef31 100644 --- a/gettext-runtime.keyring +++ b/gettext-runtime.keyring @@ -1,63 +1,26 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- -mQINBFxjJagBEACtJ6cBUyULIsZ163tvkSwAtqGIF4EvymDMB/q4tjf2S9RmW5Zo -UuEdFkImFWZaY8LV6shHF44RXHPL/irnA0byr9pVit+sj5RtWMXLJUnY6hp60OAN -n1CptCztcDwhDiSt0bcjPHRSvInqU5uHPiCfXau06TzveZ7UCj6Tkqc3n87W74y9 -HMfgVF7OrdyZCq3Bif+TCUnywnGmO4Boet2xGDCpCRyiIZXG4kl3REu/xqvhIyNk -w/o9TmnbEMbt4hGNp8O7nGZra9ajeDNYccxZYN2P6HKxCYfueKqjy+356+jnKgvR -D4QYP7z+3X3y7F1Ii2WIBWzCeZyVuPwATvGOL4lzOfMNJP9xdS3lbqHBYlAhWHcI -cRKhd7D7YAOjqVCfiKkZcZqUkcg1RZpaQ6nGQEpxmIj9QDfv+2f2QnbRiPjt2smn -Mi79ONEGUIu3h+PyMaS8Xn09Krasszd9gs0uKbCsRKOuVkzv0nQ8XnjlIBVbkCrB -IU3aKL94BmC0ZcGVqBXsWgZY2BzjKfI3HoJS0BaUAth1VJeLa4VPY2X7BV0ewyzo -Hf0OFdLwZ6RIxMlWX+dz9r8V/zNCxP/jU0z+Brhxm3iCdiRykkfHteSwoz1xyBQ3 -F+F+5dkZH3EFSab7CK57BF4/xcYwuwOheoqd76jhtfYP3uPgCe3VOSPVqwARAQAB -tDhCcnVubyBIYWlibGUgKE9wZW4gU291cmNlIERldmVsb3BtZW50KSA8YnJ1bm9A -Y2xpc3Aub3JnPokCPQQTAQgAJwUCXGMlqAIbAwUJC0c1AAULCQgHAgYVCAkKCwIE -FgIDAQIeAQIXgAAKCRD1vosmfGpAbSb+EACRlaeS0r9hCLn0YhN6hNEVvtkTU4pj -8rrAD3gMBZF+DBl1QkvMcEULwI2NBuETgJfW1uO2CUyxw8EWronQXmPruAdCrvA2 -V1dJP43Qy8IKqlgcAwKki+Yaq7+8qQLmCVzOcKyLg+4wYIpT17jE9O2U6eW2tO1R -fJuRnUSvft5DibHrhKaIYe283yTmvR2dioqg+91FJ5fvsGw7rH0nxzlmb+fx4w0F -uvLutxQNQDgJBDeVzMOM7VZdvnIUGzg+d4rKUftG5tzvIraIjjWfFJ5bEh5ljzSy -wZ/MbGUePmBIFTFeLt4/vlFa3oY77V9pAQkd1zhz10QEnAsOHbgah5enRfFKDhz0 -n6+3W4cHjcwByM319wM708Lk2nzCL1tfOhdUtJzUCdJ5Lx5osK1Abt8IqwDaCXy/ -ICEnldDEUqoBVTNluqxPV4k/o2YYVIhNcz+DysazLTVeLk+HPwjnVaXS0WF/e2G0 -S9NfljQBG1W+NdWjs0ZWZ2reLSoxdkndqgTqu2KZWhE8QIGa8LvveWAZc/bgHj1V -aXFCcgDf17PR6ADOtF58hytaTIwnb382qVesYL1torQO3IWabHHfNwgIm3aEtb/i -u1iO6WA3KWrAK9R0BneygswC+q+FKo8YL+rb6q+EEyZqU6WPPriD9ssS2bdjvlbu -ClfB3hOtan7PM4kCHAQQAQgABgUCXGMrDAAKCRBPSUqULkYWwoRMEACrY5AMc8JM -U8PZq7qhJ9yJgqnjGmN8/TGmta7NK0YJWTuluEK1Q5G6bWysLTHbkoNs8VgFvSiG -JQNqkJzCu0mhZn9fnxQYFcsZFzK4Z7pJj7Mw7AK5DaGqwQz1YeA+TFIirQY95PPw -Iq6C8qy8LMF58YRRZffpd1ABFasHk4OgsXnvXPa25/T1FQm0hllR0JbCep2LDE53 -PAKUgivHecV9RYYkpNJInwT7BIRljY7hQGPSn6GsgB5uZZDJKU4jgfaimJWfrXHw -ge5zjBBTkHU8BsnvrnEiaDQ0mxnJ/jVm9ylLel/7hq5rXTx92q0VrbL9/ZRQDVVO -4CqABeNjLmdZiJqQfa390Gzhkch6aOk6OznxG7s1EmJi64YmBZMd81HpXLyfKbLq -pcYvb4k+Y5/an1Sc1Bcoa9S3bCUhq89bRMgMIRGxVQdnYTC+1wvOSDsBgv0YYCTS -piP73e5IVw/ywgNAT9V9kkPC79iMyxTk9E4NafQ2Q/OgdxNsa+oY0oFT5m3Gj7jH -RhVe+di0Vtm5ueRFxE7p1yIz0hTgKsd9j7sslFNCjboeJZD7IpxPu3p5yZ2nlt9H -N2ajl10AOb6FLuDMUkQ5uRAAVPiEW7ZE9y6ctdNAYB6jCCrShheJ5ryXcvzrJbmp -Wi9dD8XX8ATEGv0ikiN7erpfVlL5t4p867kCDQRcYyWoARAAmK9cFiEkxVwSCC4N -MkhWaX5pqsA8YIhuBuwJuKrA1FqsysNt4bURWEmLgYOsEsNGQIBPBZP7ywYezf+s -mNiIweASvX1X1CfKqUpghiSCOVu1qkhjVjBMMqwRoj/4gRRHyYfHVwhbtRvtwKOH -rW+gGcwOhWGyGQia+c0m7TYJuajaMa8+HcLzORg0hiNPutgzeAlsV9ft7VOKKQtS -R9gKD9fYrDxOD4v5K5dvQXyuOzUuyQqfG8UocKoRhB6Ml3eu3fWRkK3KIeiIa0Ls -ZZ2sNV9ffBoGvfOMQjhbuNPegV3LFCpUP18e3VSae7dX1MnSti08k255YDD1QvdP -6egabE+lNLUuOtGYeT9U0M8jOs2Kq1pUeIt0TDJ9t1CuEsnvgl2DabjZHKZXxerP -Q8/bG6wQLskTZt6Rh0vObqbE/VOFt885qLvZkxFIQCQbfBzlas3/jM0j5q2poOuD -MiuzsfEZ8P4y94l3ESJRzkuSIMQeAgLlR0ASVM19I4tNfjAr0yWMX5JSdh95yd0s -khRoKsoFmUcx1MOOS7YtECURai+IGxpf7EKR6cT55Tl+oSGjPjOKaiWWrpWkyy61 -b1rXjMqmgzxXO9rBMWY/hc2Yp/EFZBoe+SyNoBHJm6hmyINQyICDSS3oqIhDBmeE -msUoPsRXtszfksalrjt+dOBOAvMAEQEAAYkCJQQYAQgADwUCXGMlqAIbDAUJC0c1 -AAAKCRD1vosmfGpAbfO3D/9D5VBr0G1X21tGoesAoEGhQcxAnCNTBYH+4WhSNLSW -w08sCH8Q+NinCqV5/QCgIwsMcxidnszm+7//l667gmUu8hM66U2T+ZCZMUL1G/iX -htpeTWv6dNDFyvSXwXoSIHhGVuSO2q95OeCSkJpf5V13fczNLDzTSsidGCY18+0r -LxwA+c0skLHY4k/7TWPj2QBViKXrXCv7XhpCMwPJCoAa6p4JpzQ3FqbAwes839t7 -3EeGpZsV+YyTKXgzt2odNiiraHv5/XyP7xxDUIhHn51r81bEaUSv6NtdAYU8dIsj -cMVt+xTNyKnPUaWwB3QCucZaPGBqwM5j/jKy/jAMN8ybnz01V5RWsJzf1nG0d+uH -aYsQZgppDSdVxvEgXGxnWZHcYjisLYntXNd8+frFOCs82kJeiqcpcciYiPOCSIjM -P62wGiwc4loeIhjukt9XhjEwQy+q1ty050a7fEGvFdJE05PQp3W4uee5YAjIG4gm -CC+Km7uqTrE8fItjWlDGeoShqif+tWDLoMoGFZWO3cYuhz8rfR3rb2QURW5mWevx -u4WYymbGlEc7z37qgJ4i8a6Qp1pjejMc0OLwyJyYP49dBh1Z4pJLjP4joqRDfO5z -gD8jnRhKlh/3ilmwZj5pzyLlaDV+P1PY0BnlHzp5Mj9xuZixx0/lc4kpHo9sWgPJ -Dw== -=MDRR +mDMEZ5luFBYJKwYBBAHaRw8BAQdAXWjWbNzg/gFZgWPUgpfVaeV5pESx68vpHZUW +6oYecPy0OkJydW5vIEhhaWJsZSAoRnJlZSBTb2Z0d2FyZSBEZXZlbG9wbWVudCkg +PGJydW5vQGNsaXNwLm9yZz6ImQQTFgoAQRYhBOD/vZdTl/d6Mqt27LYwHZ4bvqwI +BQJnmW4UAhsDBQkJZgGABQsJCAcCAiICBhUKCQgLAgQWAgMBAh4HAheAAAoJELYw +HZ4bvqwIOh4A/jwyieWvMKcv+6adE+QcStRQTROO7qesew54B2m1jzmTAQC9NPOa +cpAp5NYe529LaImxJnX5XY8RVww4oVQ5izM6DokCMwQQAQoAHRYhBJABuFr54bg9 +8b2pQvW+iyZ8akBtBQJnmW7LAAoJEPW+iyZ8akBt+KcP/1s46K1tZGi/4Xl2B4po +oQY1R0q5rRzson9Pg6UPrZ46tYQaBPbIsok5XFWhVc9KYv1Lhsq0D577Z/dVW0RU +hIesJ5OGpX6NZvsWEmaA5ao7/zFSu/BS7PAdp43Z9B/+wvVddbkFUHiIufILtW4G +D7a8hgrCmnDR+aaSGuuTjKCkzl7nyKRoI6nWR8WsDasoKbFdGHRFHUgtBMyDPIks +tMVF8TQkSbmDPjRRrxWJlTOK9fAuVW4qQ04jsKHsNeGSC+Jqa8bTCoxMe2qd7Ccd +UrzfyOo/zltqu7ETuTcywlBvnU9YA30riT/RUGOeiXuC0WOy8p2G/VaLGSq58w/e +GTNtzT3rBjRuvxwBi5w1AA1GkFw+EpVelJiq1i7S4V2A6Ac+Ck/avM3CXFJffvIJ +Dgk0eba2GqgcTjTgQTS1c978l2uj1JzB58OpML8yB+XvKevTWDGKt+tRXTBaMuPD +JE6sR4RaBmsyR8su9GfQoD9D4gySO8FA5XkrltRjyaxA13W5akYGi5UrieUkfr1e +uTEV62ctVmVxhgMMSxbXpg5jAQYj0dLTMm/AOUcc4lkHWy+4NWrBmrT84oWBCHuV +uYkhdriYR8/G/W2h1NurnjhberuCxY32qx1i+Rmh5n5GHLRfjjdmnwxduG9KIYVn +WvikfcPshC3ps97cHsN8sJ9ruDgEZ5luFBIKKwYBBAGXVQEFAQEHQIPizNBx04HX ++zJfH6UDC0/Y7TAgf+vMFhWt/XAVH3EtAwEIB4h+BBgWCgAmFiEE4P+9l1OX93oy +q3bstjAdnhu+rAgFAmeZbhQCGwwFCQlmAYAACgkQtjAdnhu+rAi3XAEA8dxtGuGr +AeJfnLG/WUqPaMbxQR+U18vHmjkojNkNp4IBANhGwUN+RFHSoBpOcqC70cH+a8vu +fp6KVN9xLc08H84D +=ACLB -----END PGP PUBLIC KEY BLOCK----- diff --git a/gettext-runtime.spec b/gettext-runtime.spec index b6ba16e..1450085 100644 --- a/gettext-runtime.spec +++ b/gettext-runtime.spec @@ -1,7 +1,8 @@ # # spec file for package gettext-runtime # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors +# Copyright (c) 2025 Andreas Stieger # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -20,19 +21,21 @@ %bcond_with mini Name: gettext-runtime -Version: 0.22.5 +Version: 0.26 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: +# To get an updated linkdupes.sh (in case there are new dupes), temporarily enable: #BuildRequires: fdupes %if %{without mini} BuildRequires: glib2-devel BuildRequires: libxml2-devel BuildRequires: perl-libintl-perl BuildRequires: tcl +BuildRequires: pkgconfig(libacl) +BuildRequires: pkgconfig(libattr) # bug437293 %ifarch ppc64 Obsoletes: gettext-64bit @@ -51,6 +54,8 @@ 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 @@ -61,22 +66,24 @@ Source2: suse-start-po-mode.el Source3: gettext-linkdupes.sh Source4: baselibs.conf Source5: gettext-rpmlintrc +# pub ed25519 2025-01-28 [SC] +# E0FF BD97 5397 F77A 32AB 76EC B630 1D9E 1BBE AC08 +# uid Bruno Haible (Free Software Development) +# https://savannah.gnu.org/users/haible Source6: gettext-runtime.keyring -Patch0: gettext-0.12.1-sigfpe.patch Patch1: gettext-0.19.3-fix-bashisms.patch Patch2: gettext-0.12.1-gettextize.patch -Patch3: use-acinit-for-libtextstyle.patch 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 # PATCH-FIX-UPSTREAM boo#941629 -- pth@suse.com Patch11: boo941629-unnessary-rpath-on-standard-path.patch -# PATCH-FIX-SUSE Bug boo#1106843 -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 @@ -92,10 +99,9 @@ License: LGPL-2.1-or-later Group: Development/Tools/Other Requires: %{name} = %{version} Requires: xz -# gettext.sh requires envsubst -Requires: envsubst%{?with_mini:-mini} = %{version} -# autopoint requires find +# autopoint requires find, diff and cmp Requires: findutils +Requires: diffutils # For non-UTF encodings Requires: glibc-gconv-modules-extra %if %{without mini} @@ -173,18 +179,7 @@ This package provides headers and static libraries for libtextstyle %endif %prep -%setup -q -n %{pacname}-%{version} -%patch -P 0 -%patch -P 1 -p1 -%patch -P 2 -%patch -P 3 -p1 -%patch -P 4 -%patch -P 5 -%patch -P 6 -p1 -%patch -P 11 -p1 -%patch -P 13 -p1 -%patch -P 14 -p1 -%patch -P 15 -p1 +%autosetup -p1 -n %{pacname}-%{version} %build %define _lto_cflags %{nil} @@ -285,12 +280,12 @@ make check || { %endif %files -f gettext-runtime.lang -%defattr(-,root,root) %license COPYING -%dir %_datadir/gettext %doc %dir %_docdir/%name/ %doc %_docdir/%name/gettext.1.html %doc %_docdir/%name/ngettext.1.html +%doc %_docdir/%name/printf_gettext.1.html +%doc %_docdir/%name/printf_ngettext.1.html %doc %_docdir/%name/*.3.html %doc %_docdir/%name/AUTHORS %doc %_docdir/%name/NEWS @@ -300,14 +295,17 @@ make check || { %_bindir/ngettext %_bindir/gettext.sh %_bindir/msgfmt +%_bindir/printf_gettext +%_bindir/printf_ngettext %_libdir/libgettextlib-*.so %_libdir/libgettextsrc-*.so %_libdir/libasprintf.so.* %doc %_mandir/man1/gettext.1.gz %doc %_mandir/man1/ngettext.1.gz %doc %_mandir/man1/msgfmt.1.gz +%doc %_mandir/man1/printf_gettext.1.gz +%doc %_mandir/man1/printf_ngettext.1.gz %doc %_mandir/man3/* -%_datadir/gettext/ABOUT-NLS %dir %_datadir/emacs %dir %_datadir/emacs/site-lisp %_datadir/emacs/site-lisp/po-compat.* @@ -322,7 +320,6 @@ make check || { %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]* %_bindir/msgfilter %_bindir/xgettext @@ -345,7 +342,11 @@ make check || { %_libdir/libgettextsrc.* %_libdir/libgettextpo* %_libdir/preloadable_libintl.so -%_libdir/gettext +%_libexecdir/gettext +%dir %_datadir/gettext +%_datadir/gettext +%exclude %_datadir/gettext/ABOUT-NLS +%_datadir/aclocal %_datadir/%pacname/config.rpath %_datadir/%pacname/po %_datadir/%pacname/projects @@ -354,12 +355,10 @@ make check || { %_datadir/%pacname/javaversion.class %_datadir/%pacname/styles %_datadir/%pacname/archive.dir.tar.xz -%_datadir/aclocal %dir %{_datadir}/%{pacname}-%{version} %{_datadir}/%{pacname}-%{version}/its %files tools-doc -%defattr(-,root,root) %doc %dir %_docdir/%name/ %doc %_docdir/%name/examples/ %doc %_docdir/%name/auto*.html @@ -372,11 +371,9 @@ make check || { %if %{without mini} %files -n libtextstyle0 -%defattr(-,root,root) %_libdir/libtextstyle.so.* %files -n libtextstyle-devel -%defattr(-,root,root) %dir %_includedir/textstyle %_includedir/textstyle.h %_includedir/textstyle/stdbool.h diff --git a/reproducible.patch b/reproducible.patch deleted file mode 100644 index e94f64c..0000000 --- a/reproducible.patch +++ /dev/null @@ -1,50 +0,0 @@ -merged upstream - - -Index: gettext-0.19.8.1/gettext-tools/src/xgettext.c -=================================================================== ---- gettext-0.19.8.1.orig/gettext-tools/src/xgettext.c -+++ gettext-0.19.8.1/gettext-tools/src/xgettext.c -@@ -3714,6 +3714,9 @@ construct_header () - char *msgstr; - char *comment; - static lex_pos_ty pos = { __FILE__, __LINE__ }; -+ char *source_date_epoch; -+ unsigned long long epoch; -+ char *endptr; - - if (package_name != NULL) - { -@@ -3734,7 +3738,31 @@ the MSGID_BUGS_ADDRESS variable there; o - specify an --msgid-bugs-address command line option.\n\ - "))); - -- time (&now); -+ source_date_epoch = getenv("SOURCE_DATE_EPOCH"); -+ if (source_date_epoch) { -+ errno = 0; -+ epoch = strtoull(source_date_epoch, &endptr, 10); -+ if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0)) -+ || (errno != 0 && epoch == 0)) { -+ fprintf(stderr, "Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n", strerror(errno)); -+ exit(EXIT_FAILURE); -+ } -+ if (endptr == source_date_epoch) { -+ fprintf(stderr, "Environment variable $SOURCE_DATE_EPOCH: No digits were found: %s\n", endptr); -+ exit(EXIT_FAILURE); -+ } -+ if (*endptr != '\0') { -+ fprintf(stderr, "Environment variable $SOURCE_DATE_EPOCH: Trailing garbage: %s\n", endptr); -+ exit(EXIT_FAILURE); -+ } -+ if (epoch > ULONG_MAX) { -+ fprintf(stderr, "Environment variable $SOURCE_DATE_EPOCH: value must be smaller than or equal to %lu but was found to be: %llu \n", ULONG_MAX, epoch); -+ exit(EXIT_FAILURE); -+ } -+ now = epoch; -+ } else { -+ now = time(NULL); -+ } - timestring = po_strftime (&now); - - msgstr = xasprintf ("\ diff --git a/use-acinit-for-libtextstyle.patch b/use-acinit-for-libtextstyle.patch deleted file mode 100644 index 39de6b0..0000000 --- a/use-acinit-for-libtextstyle.patch +++ /dev/null @@ -1,18 +0,0 @@ -Index: gettext-0.21.1/libtextstyle/configure.ac -=================================================================== ---- gettext-0.21.1.orig/libtextstyle/configure.ac -+++ gettext-0.21.1/libtextstyle/configure.ac -@@ -17,11 +17,10 @@ dnl along with this program. If not, se - dnl Process this file with autoconf to produce a configure script. - - AC_PREREQ([2.64]) --AC_INIT -+AC_INIT([libtextstyle], -+ m4_esyscmd([source ./version.sh; echo $VERSION_NUMBER | tr -d '\n'])) - AC_CONFIG_SRCDIR([version.sh]) - AC_CONFIG_AUX_DIR([build-aux]) --. $srcdir/version.sh --gl_INIT_PACKAGE([libtextstyle], [$VERSION_NUMBER]) - AM_INIT_AUTOMAKE([1.13 silent-rules]) - AC_CONFIG_HEADERS([config.h]) -