diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gettext/Manifest b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/Manifest index 83c6b66de3..61bb66f324 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gettext/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/Manifest @@ -1 +1 @@ -DIST gettext-0.19.8.1.tar.gz 19704011 BLAKE2B 17dc7aad338a26d71b818fea51e46a47dccf14744ee575ce86b591becaea402e36d64dc018e1a84113c356122ffef367cf2fa424e51ebc9720350040b4960091 SHA512 073042fa2dc48804c58e76f036130a669e19612c25427b0ab14d0b366b549a63751bf3af03bfd0745d7c4f72497a4b2aab26a3cc6de83189ce111679073878e1 +DIST gettext-0.21.tar.gz 24181849 BLAKE2B 2eae99d0916b00b2af6fbc6bf7e309076519a10fea16cd49e7aa29fe8aec1ee7c784c6277281b764dc4abacf400cd3fe461129586303c8cd337db15c76cb4b87 SHA512 bbe590c5dd3580c75bf30ff768da99a88eb8d466ec1ac9eea20be4cab4357ecf72448e6b81b47425e39d50fa6320ba426632914d7898dfebb4f159abc39c31d1 diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gettext/files/gettext-0.19.8.1-format-security.patch b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/files/gettext-0.19.8.1-format-security.patch deleted file mode 100644 index 6af1604198..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gettext/files/gettext-0.19.8.1-format-security.patch +++ /dev/null @@ -1,87 +0,0 @@ -From e546de65a333789e83f5485757967cee29ee3681 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Sun, 19 Feb 2017 23:32:46 -0800 -Subject: [PATCH] cr-statement.c/timsort.h: fix formatting issues - -Fixed when compile with "-Wformat -Wformat-security -Werror=format-security": -| gettext-tools/gnulib-lib/libcroco/cr-statement.c: In function 'cr_statement_dump_charset': -| gettext-tools/gnulib-lib/libcroco/cr-statement.c:2661:17: error: format not a string literal and no format arguments [-Werror=format-security] -| fprintf (a_fp, str) ; - -And: -gettext-tools/gnulib-lib/libxml/timsort.h:326:80: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'unsigned int' [-Wformat=] - fprintf(stderr, "Error allocating temporary storage for tim sort: need %lu bytes", sizeof(SORT_TYPE) * new_size); - -Upstream-Status: Pending - -Signed-off-by: Robert Yang ---- - gettext-tools/gnulib-lib/libcroco/cr-statement.c | 10 +++++----- - gettext-tools/gnulib-lib/libxml/timsort.h | 2 +- - 2 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/gettext-tools/gnulib-lib/libcroco/cr-statement.c b/gettext-tools/gnulib-lib/libcroco/cr-statement.c -index 617520f..100104b 100644 ---- a/gettext-tools/gnulib-lib/libcroco/cr-statement.c -+++ b/gettext-tools/gnulib-lib/libcroco/cr-statement.c -@@ -2607,7 +2607,7 @@ cr_statement_dump_ruleset (CRStatement * a_this, FILE * a_fp, glong a_indent) - g_return_if_fail (a_fp && a_this); - str = cr_statement_ruleset_to_string (a_this, a_indent); - if (str) { -- fprintf (a_fp, str); -+ fprintf (a_fp, "%s", str); - g_free (str); - str = NULL; - } -@@ -2658,7 +2658,7 @@ cr_statement_dump_charset (CRStatement * a_this, FILE * a_fp, gulong a_indent) - str = cr_statement_charset_to_string (a_this, - a_indent) ; - if (str) { -- fprintf (a_fp, str) ; -+ fprintf (a_fp, "%s", str) ; - g_free (str) ; - str = NULL ; - } -@@ -2685,7 +2685,7 @@ cr_statement_dump_page (CRStatement * a_this, FILE * a_fp, gulong a_indent) - - str = cr_statement_at_page_rule_to_string (a_this, a_indent) ; - if (str) { -- fprintf (a_fp, str); -+ fprintf (a_fp, "%s", str); - g_free (str) ; - str = NULL ; - } -@@ -2711,7 +2711,7 @@ cr_statement_dump_media_rule (CRStatement * a_this, - - str = cr_statement_media_rule_to_string (a_this, a_indent) ; - if (str) { -- fprintf (a_fp, str) ; -+ fprintf (a_fp, "%s", str) ; - g_free (str) ; - str = NULL ; - } -@@ -2737,7 +2737,7 @@ cr_statement_dump_import_rule (CRStatement * a_this, FILE * a_fp, - - str = cr_statement_import_rule_to_string (a_this, a_indent) ; - if (str) { -- fprintf (a_fp, str) ; -+ fprintf (a_fp, "%s", str) ; - g_free (str) ; - str = NULL ; - } -diff --git a/gettext-tools/gnulib-lib/libxml/timsort.h b/gettext-tools/gnulib-lib/libxml/timsort.h -index 795f272..443918a 100644 ---- a/gettext-tools/gnulib-lib/libxml/timsort.h -+++ b/gettext-tools/gnulib-lib/libxml/timsort.h -@@ -323,7 +323,7 @@ static void TIM_SORT_RESIZE(TEMP_STORAGE_T *store, const size_t new_size) - SORT_TYPE *tempstore = (SORT_TYPE *)realloc(store->storage, new_size * sizeof(SORT_TYPE)); - if (tempstore == NULL) - { -- fprintf(stderr, "Error allocating temporary storage for tim sort: need %lu bytes", sizeof(SORT_TYPE) * new_size); -+ fprintf(stderr, "Error allocating temporary storage for tim sort: need %zu bytes", sizeof(SORT_TYPE) * new_size); - exit(1); - } - store->storage = tempstore; --- -2.10.2 - diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gettext/files/gettext-0.20-parallel_install.patch b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/files/gettext-0.20-parallel_install.patch new file mode 100644 index 0000000000..e47beaf944 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/files/gettext-0.20-parallel_install.patch @@ -0,0 +1,37 @@ +From 829660df1583c6c3ee1d90291dd910f08e3b777e Mon Sep 17 00:00:00 2001 +From: Arfrever Frehtes Taifersar Arahesis +Date: Fri, 10 May 2019 20:08:25 +0200 +Subject: [PATCH] Fix parallel install issue + +Signed-off-by: Lars Wendler +--- + gettext-tools/src/Makefile.am | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +diff --git a/gettext-tools/src/Makefile.am b/gettext-tools/src/Makefile.am +index 09a3c153d..1ee49cdca 100644 +--- a/gettext-tools/src/Makefile.am ++++ b/gettext-tools/src/Makefile.am +@@ -252,9 +252,16 @@ cldr_plurals_LDADD = libgettextsrc.la $(LDADD) + + # How to get the include files of libtextstyle. + textstyle.h textstyle/stdbool.h textstyle/version.h textstyle/woe32dll.h: +- here=`pwd`; \ +- cd ../../libtextstyle/lib && \ +- $(MAKE) install-nobase_includeHEADERS install-nobase_nodist_includeHEADERS includedir="$$here" ++ cd "$(abs_top_builddir)/../libtextstyle/lib" && $(MAKE) $@ ++ if test -f "$(abs_top_builddir)/../libtextstyle/lib/$@"; then \ ++ file="$(abs_top_builddir)/../libtextstyle/lib/$@"; \ ++ else \ ++ file="$(abs_top_srcdir)/../libtextstyle/lib/$@"; \ ++ fi; \ ++ target_dir="$(abs_builddir)/$@"; \ ++ target_dir="$${target_dir%/*}"; \ ++ $(MKDIR_P) "$${target_dir}"; \ ++ $(INSTALL_HEADER) "$$file" $@ + BUILT_SOURCES += textstyle.h textstyle/stdbool.h textstyle/version.h textstyle/woe32dll.h + MOSTLYCLEANFILES += textstyle.h textstyle/stdbool.h textstyle/version.h textstyle/woe32dll.h + +-- +2.21.0 + diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gettext/files/gettext-0.21-CVE-2020-12825.patch b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/files/gettext-0.21-CVE-2020-12825.patch new file mode 100644 index 0000000000..6b4c463b41 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/files/gettext-0.21-CVE-2020-12825.patch @@ -0,0 +1,335 @@ +https://gitlab.gnome.org/GNOME/gnome-shell/-/commit/44cbd1e718d6a08e59b9300280c340218a84e089 + +--- a/libtextstyle/gnulib-local/lib/libcroco/cr-parser.c ++++ b/libtextstyle/gnulib-local/lib/libcroco/cr-parser.c +@@ -146,6 +146,8 @@ struct _CRParserPriv { + + #define CHARS_TAB_SIZE 12 + ++#define RECURSIVE_CALLERS_LIMIT 100 ++ + /** + * IS_NUM: + *@a_char: the char to test. +@@ -354,9 +356,11 @@ static enum CRStatus cr_parser_parse_selector_core (CRParser * a_this); + + static enum CRStatus cr_parser_parse_declaration_core (CRParser * a_this); + +-static enum CRStatus cr_parser_parse_any_core (CRParser * a_this); ++static enum CRStatus cr_parser_parse_any_core (CRParser * a_this, ++ guint n_calls); + +-static enum CRStatus cr_parser_parse_block_core (CRParser * a_this); ++static enum CRStatus cr_parser_parse_block_core (CRParser * a_this, ++ guint n_calls); + + static enum CRStatus cr_parser_parse_value_core (CRParser * a_this); + +@@ -794,7 +798,7 @@ cr_parser_parse_atrule_core (CRParser * a_this) + cr_parser_try_to_skip_spaces_and_comments (a_this); + + do { +- status = cr_parser_parse_any_core (a_this); ++ status = cr_parser_parse_any_core (a_this, 0); + } while (status == CR_OK); + + status = cr_tknzr_get_next_token (PRIVATE (a_this)->tknzr, +@@ -805,7 +809,7 @@ cr_parser_parse_atrule_core (CRParser * a_this) + cr_tknzr_unget_token (PRIVATE (a_this)->tknzr, + token); + token = NULL; +- status = cr_parser_parse_block_core (a_this); ++ status = cr_parser_parse_block_core (a_this, 0); + CHECK_PARSING_STATUS (status, + FALSE); + goto done; +@@ -940,11 +944,11 @@ cr_parser_parse_selector_core (CRParser * a_this) + + RECORD_INITIAL_POS (a_this, &init_pos); + +- status = cr_parser_parse_any_core (a_this); ++ status = cr_parser_parse_any_core (a_this, 0); + CHECK_PARSING_STATUS (status, FALSE); + + do { +- status = cr_parser_parse_any_core (a_this); ++ status = cr_parser_parse_any_core (a_this, 0); + + } while (status == CR_OK); + +@@ -966,10 +970,12 @@ cr_parser_parse_selector_core (CRParser * a_this) + *in chapter 4.1 of the css2 spec. + *block ::= '{' S* [ any | block | ATKEYWORD S* | ';' ]* '}' S*; + *@param a_this the current instance of #CRParser. ++ *@param n_calls used to limit recursion depth + *FIXME: code this function. + */ + static enum CRStatus +-cr_parser_parse_block_core (CRParser * a_this) ++cr_parser_parse_block_core (CRParser * a_this, ++ guint n_calls) + { + CRToken *token = NULL; + CRInputPos init_pos; +@@ -977,6 +983,9 @@ cr_parser_parse_block_core (CRParser * a_this) + + g_return_val_if_fail (a_this && PRIVATE (a_this), CR_BAD_PARAM_ERROR); + ++ if (n_calls > RECURSIVE_CALLERS_LIMIT) ++ return CR_ERROR; ++ + RECORD_INITIAL_POS (a_this, &init_pos); + + status = cr_tknzr_get_next_token (PRIVATE (a_this)->tknzr, &token); +@@ -1006,13 +1015,13 @@ cr_parser_parse_block_core (CRParser * a_this) + } else if (token->type == CBO_TK) { + cr_tknzr_unget_token (PRIVATE (a_this)->tknzr, token); + token = NULL; +- status = cr_parser_parse_block_core (a_this); ++ status = cr_parser_parse_block_core (a_this, n_calls + 1); + CHECK_PARSING_STATUS (status, FALSE); + goto parse_block_content; + } else { + cr_tknzr_unget_token (PRIVATE (a_this)->tknzr, token); + token = NULL; +- status = cr_parser_parse_any_core (a_this); ++ status = cr_parser_parse_any_core (a_this, n_calls + 1); + CHECK_PARSING_STATUS (status, FALSE); + goto parse_block_content; + } +@@ -1119,7 +1128,7 @@ cr_parser_parse_value_core (CRParser * a_this) + status = cr_tknzr_unget_token (PRIVATE (a_this)->tknzr, + token); + token = NULL; +- status = cr_parser_parse_block_core (a_this); ++ status = cr_parser_parse_block_core (a_this, 0); + CHECK_PARSING_STATUS (status, FALSE); + ref++; + goto continue_parsing; +@@ -1133,7 +1142,7 @@ cr_parser_parse_value_core (CRParser * a_this) + status = cr_tknzr_unget_token (PRIVATE (a_this)->tknzr, + token); + token = NULL; +- status = cr_parser_parse_any_core (a_this); ++ status = cr_parser_parse_any_core (a_this, 0); + if (status == CR_OK) { + ref++; + goto continue_parsing; +@@ -1172,10 +1181,12 @@ cr_parser_parse_value_core (CRParser * a_this) + * | FUNCTION | DASHMATCH | '(' any* ')' | '[' any* ']' ] S*; + * + *@param a_this the current instance of #CRParser. ++ *@param n_calls used to limit recursion depth + *@return CR_OK upon successfull completion, an error code otherwise. + */ + static enum CRStatus +-cr_parser_parse_any_core (CRParser * a_this) ++cr_parser_parse_any_core (CRParser * a_this, ++ guint n_calls) + { + CRToken *token1 = NULL, + *token2 = NULL; +@@ -1184,6 +1195,9 @@ cr_parser_parse_any_core (CRParser * a_this) + + g_return_val_if_fail (a_this, CR_BAD_PARAM_ERROR); + ++ if (n_calls > RECURSIVE_CALLERS_LIMIT) ++ return CR_ERROR; ++ + RECORD_INITIAL_POS (a_this, &init_pos); + + status = cr_tknzr_get_next_token (PRIVATE (a_this)->tknzr, &token1); +@@ -1222,7 +1236,7 @@ cr_parser_parse_any_core (CRParser * a_this) + *We consider parameter as being an "any*" production. + */ + do { +- status = cr_parser_parse_any_core (a_this); ++ status = cr_parser_parse_any_core (a_this, n_calls + 1); + } while (status == CR_OK); + + ENSURE_PARSING_COND (status == CR_PARSING_ERROR); +@@ -1247,7 +1261,7 @@ cr_parser_parse_any_core (CRParser * a_this) + } + + do { +- status = cr_parser_parse_any_core (a_this); ++ status = cr_parser_parse_any_core (a_this, n_calls + 1); + } while (status == CR_OK); + + ENSURE_PARSING_COND (status == CR_PARSING_ERROR); +@@ -1275,7 +1289,7 @@ cr_parser_parse_any_core (CRParser * a_this) + } + + do { +- status = cr_parser_parse_any_core (a_this); ++ status = cr_parser_parse_any_core (a_this, n_calls + 1); + } while (status == CR_OK); + + ENSURE_PARSING_COND (status == CR_PARSING_ERROR); +--- a/libtextstyle/lib/libcroco/cr-parser.c ++++ b/libtextstyle/lib/libcroco/cr-parser.c +@@ -146,6 +146,8 @@ struct _CRParserPriv { + + #define CHARS_TAB_SIZE 12 + ++#define RECURSIVE_CALLERS_LIMIT 100 ++ + /** + * IS_NUM: + *@a_char: the char to test. +@@ -354,9 +356,11 @@ static enum CRStatus cr_parser_parse_selector_core (CRParser * a_this); + + static enum CRStatus cr_parser_parse_declaration_core (CRParser * a_this); + +-static enum CRStatus cr_parser_parse_any_core (CRParser * a_this); ++static enum CRStatus cr_parser_parse_any_core (CRParser * a_this, ++ guint n_calls); + +-static enum CRStatus cr_parser_parse_block_core (CRParser * a_this); ++static enum CRStatus cr_parser_parse_block_core (CRParser * a_this, ++ guint n_calls); + + static enum CRStatus cr_parser_parse_value_core (CRParser * a_this); + +@@ -794,7 +798,7 @@ cr_parser_parse_atrule_core (CRParser * a_this) + cr_parser_try_to_skip_spaces_and_comments (a_this); + + do { +- status = cr_parser_parse_any_core (a_this); ++ status = cr_parser_parse_any_core (a_this, 0); + } while (status == CR_OK); + + status = cr_tknzr_get_next_token (PRIVATE (a_this)->tknzr, +@@ -805,7 +809,7 @@ cr_parser_parse_atrule_core (CRParser * a_this) + cr_tknzr_unget_token (PRIVATE (a_this)->tknzr, + token); + token = NULL; +- status = cr_parser_parse_block_core (a_this); ++ status = cr_parser_parse_block_core (a_this, 0); + CHECK_PARSING_STATUS (status, + FALSE); + goto done; +@@ -940,11 +944,11 @@ cr_parser_parse_selector_core (CRParser * a_this) + + RECORD_INITIAL_POS (a_this, &init_pos); + +- status = cr_parser_parse_any_core (a_this); ++ status = cr_parser_parse_any_core (a_this, 0); + CHECK_PARSING_STATUS (status, FALSE); + + do { +- status = cr_parser_parse_any_core (a_this); ++ status = cr_parser_parse_any_core (a_this, 0); + + } while (status == CR_OK); + +@@ -966,10 +970,12 @@ cr_parser_parse_selector_core (CRParser * a_this) + *in chapter 4.1 of the css2 spec. + *block ::= '{' S* [ any | block | ATKEYWORD S* | ';' ]* '}' S*; + *@param a_this the current instance of #CRParser. ++ *@param n_calls used to limit recursion depth + *FIXME: code this function. + */ + static enum CRStatus +-cr_parser_parse_block_core (CRParser * a_this) ++cr_parser_parse_block_core (CRParser * a_this, ++ guint n_calls) + { + CRToken *token = NULL; + CRInputPos init_pos; +@@ -977,6 +983,9 @@ cr_parser_parse_block_core (CRParser * a_this) + + g_return_val_if_fail (a_this && PRIVATE (a_this), CR_BAD_PARAM_ERROR); + ++ if (n_calls > RECURSIVE_CALLERS_LIMIT) ++ return CR_ERROR; ++ + RECORD_INITIAL_POS (a_this, &init_pos); + + status = cr_tknzr_get_next_token (PRIVATE (a_this)->tknzr, &token); +@@ -1006,13 +1015,13 @@ cr_parser_parse_block_core (CRParser * a_this) + } else if (token->type == CBO_TK) { + cr_tknzr_unget_token (PRIVATE (a_this)->tknzr, token); + token = NULL; +- status = cr_parser_parse_block_core (a_this); ++ status = cr_parser_parse_block_core (a_this, n_calls + 1); + CHECK_PARSING_STATUS (status, FALSE); + goto parse_block_content; + } else { + cr_tknzr_unget_token (PRIVATE (a_this)->tknzr, token); + token = NULL; +- status = cr_parser_parse_any_core (a_this); ++ status = cr_parser_parse_any_core (a_this, n_calls + 1); + CHECK_PARSING_STATUS (status, FALSE); + goto parse_block_content; + } +@@ -1119,7 +1128,7 @@ cr_parser_parse_value_core (CRParser * a_this) + status = cr_tknzr_unget_token (PRIVATE (a_this)->tknzr, + token); + token = NULL; +- status = cr_parser_parse_block_core (a_this); ++ status = cr_parser_parse_block_core (a_this, 0); + CHECK_PARSING_STATUS (status, FALSE); + ref++; + goto continue_parsing; +@@ -1133,7 +1142,7 @@ cr_parser_parse_value_core (CRParser * a_this) + status = cr_tknzr_unget_token (PRIVATE (a_this)->tknzr, + token); + token = NULL; +- status = cr_parser_parse_any_core (a_this); ++ status = cr_parser_parse_any_core (a_this, 0); + if (status == CR_OK) { + ref++; + goto continue_parsing; +@@ -1172,10 +1181,12 @@ cr_parser_parse_value_core (CRParser * a_this) + * | FUNCTION | DASHMATCH | '(' any* ')' | '[' any* ']' ] S*; + * + *@param a_this the current instance of #CRParser. ++ *@param n_calls used to limit recursion depth + *@return CR_OK upon successfull completion, an error code otherwise. + */ + static enum CRStatus +-cr_parser_parse_any_core (CRParser * a_this) ++cr_parser_parse_any_core (CRParser * a_this, ++ guint n_calls) + { + CRToken *token1 = NULL, + *token2 = NULL; +@@ -1184,6 +1195,9 @@ cr_parser_parse_any_core (CRParser * a_this) + + g_return_val_if_fail (a_this, CR_BAD_PARAM_ERROR); + ++ if (n_calls > RECURSIVE_CALLERS_LIMIT) ++ return CR_ERROR; ++ + RECORD_INITIAL_POS (a_this, &init_pos); + + status = cr_tknzr_get_next_token (PRIVATE (a_this)->tknzr, &token1); +@@ -1222,7 +1236,7 @@ cr_parser_parse_any_core (CRParser * a_this) + *We consider parameter as being an "any*" production. + */ + do { +- status = cr_parser_parse_any_core (a_this); ++ status = cr_parser_parse_any_core (a_this, n_calls + 1); + } while (status == CR_OK); + + ENSURE_PARSING_COND (status == CR_PARSING_ERROR); +@@ -1247,7 +1261,7 @@ cr_parser_parse_any_core (CRParser * a_this) + } + + do { +- status = cr_parser_parse_any_core (a_this); ++ status = cr_parser_parse_any_core (a_this, n_calls + 1); + } while (status == CR_OK); + + ENSURE_PARSING_COND (status == CR_PARSING_ERROR); +@@ -1275,7 +1289,7 @@ cr_parser_parse_any_core (CRParser * a_this) + } + + do { +- status = cr_parser_parse_any_core (a_this); ++ status = cr_parser_parse_any_core (a_this, n_calls + 1); + } while (status == CR_OK); + + ENSURE_PARSING_COND (status == CR_PARSING_ERROR); + diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gettext/files/gettext-0.21_rc1-avoid_eautomake.patch b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/files/gettext-0.21_rc1-avoid_eautomake.patch new file mode 100644 index 0000000000..8adae5d548 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/files/gettext-0.21_rc1-avoid_eautomake.patch @@ -0,0 +1,22 @@ +--- gettext-0.21-rc1/gettext-tools/src/Makefile.in ++++ gettext-0.21-rc1/gettext-tools/src/Makefile.in +@@ -4106,9 +4106,16 @@ + + # How to get the include files of libtextstyle. + @USE_INSTALLED_LIBTEXTSTYLE_FALSE@textstyle.h textstyle/stdbool.h textstyle/version.h textstyle/woe32dll.h: +-@USE_INSTALLED_LIBTEXTSTYLE_FALSE@ here=`pwd`; \ +-@USE_INSTALLED_LIBTEXTSTYLE_FALSE@ cd ../../libtextstyle/lib && \ +-@USE_INSTALLED_LIBTEXTSTYLE_FALSE@ $(MAKE) install-nobase_includeHEADERS install-nobase_nodist_includeHEADERS includedir="$$here" ++@USE_INSTALLED_LIBTEXTSTYLE_FALSE@ cd "$(abs_top_builddir)/../libtextstyle/lib" && $(MAKE) $@ ++@USE_INSTALLED_LIBTEXTSTYLE_FALSE@ if test -f "$(abs_top_builddir)/../libtextstyle/lib/$@"; then \ ++@USE_INSTALLED_LIBTEXTSTYLE_FALSE@ file="$(abs_top_builddir)/../libtextstyle/lib/$@"; \ ++@USE_INSTALLED_LIBTEXTSTYLE_FALSE@ else \ ++@USE_INSTALLED_LIBTEXTSTYLE_FALSE@ file="$(abs_top_srcdir)/../libtextstyle/lib/$@"; \ ++@USE_INSTALLED_LIBTEXTSTYLE_FALSE@ fi; \ ++@USE_INSTALLED_LIBTEXTSTYLE_FALSE@ target_dir="$(abs_builddir)/$@"; \ ++@USE_INSTALLED_LIBTEXTSTYLE_FALSE@ target_dir="$${target_dir%/*}"; \ ++@USE_INSTALLED_LIBTEXTSTYLE_FALSE@ $(MKDIR_P) "$${target_dir}"; \ ++@USE_INSTALLED_LIBTEXTSTYLE_FALSE@ $(INSTALL_HEADER) "$$file" $@ + + # No need to install libgettextsrc.a, except on AIX. + install-exec-hook: install-exec-clean diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-0.19.8.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-0.21-r1.ebuild similarity index 65% rename from sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-0.19.8.1.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-0.21-r1.ebuild index e947a0e879..40031f2f5a 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-0.19.8.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-0.21-r1.ebuild @@ -1,22 +1,26 @@ -# Copyright 1999-2017 Gentoo Foundation +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Note: Keep version bumps in sync with dev-libs/libintl. -EAPI="5" +EAPI=7 -inherit epatch epunt-cxx ltprune mono-env libtool java-pkg-opt-2 multilib-minimal +inherit mono-env libtool java-pkg-opt-2 multilib-minimal DESCRIPTION="GNU locale utilities" HOMEPAGE="https://www.gnu.org/software/gettext/" -SRC_URI="mirror://gnu/${PN}/${P}.tar.gz" - +if [[ "${PV}" == *_rc* ]] ; then + SRC_URI="https://alpha.gnu.org/gnu/${PN}/${P/_/-}.tar.bz2" + S="${WORKDIR}/${P/_/-}" +else + SRC_URI="mirror://gnu/${PN}/${P}.tar.gz" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt" +fi # Only libasprintf is under the LGPL (and libintl is in a sep package), # so put that license behind USE=cxx. LICENSE="GPL-3+ cxx? ( LGPL-2.1+ )" SLOT="0" -KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd" -IUSE="acl -cvs +cxx doc emacs git java ncurses nls openmp static-libs" +IUSE="acl cvs +cxx doc emacs git java ncurses nls openmp static-libs" # only runtime goes multilib # Note: The version of libxml2 corresponds to the version bundled via gnulib. @@ -31,18 +35,36 @@ DEPEND=">=virtual/libiconv-0-r1[${MULTILIB_USEDEP}] dev-libs/expat acl? ( virtual/acl ) ncurses? ( sys-libs/ncurses:0= ) - java? ( >=virtual/jdk-1.4:= )" + java? ( >=virtual/jdk-1.8:= )" RDEPEND="${DEPEND} !git? ( cvs? ( dev-vcs/cvs ) ) git? ( dev-vcs/git ) - java? ( >=virtual/jre-1.4 )" + java? ( >=virtual/jre-1.8 )" +BDEPEND=" + git? ( dev-vcs/git ) +" PDEPEND="emacs? ( app-emacs/po-mode )" MULTILIB_WRAPPED_HEADERS=( # only installed for native ABI /usr/include/gettext-po.h + + /usr/include/autosprintf.h + /usr/include/textstyle.h + /usr/include/textstyle/stdbool.h + /usr/include/textstyle/version.h + /usr/include/textstyle/woe32dll.h ) +PATCHES=( + "${FILESDIR}"/${PN}-0.19.7-disable-libintl.patch #564168 + "${FILESDIR}"/${PN}-0.20-parallel_install.patch #685530 + "${FILESDIR}"/${PN}-0.21_rc1-avoid_eautomake.patch + "${FILESDIR}"/${PN}-0.21-CVE-2020-12825.patch +) + +QA_SONAME_NO_SYMLINK=".*/preloadable_libintl.so" + pkg_setup() { mono-env_pkg_setup java-pkg-opt-2_pkg_setup @@ -51,10 +73,8 @@ pkg_setup() { src_prepare() { java-pkg-opt-2_src_prepare - epatch "${FILESDIR}"/${PN}-0.19.7-disable-libintl.patch #564168 - epatch "${FILESDIR}"/${PN}-0.19.8.1-format-security.patch + default - epunt_cxx elibtoolize } @@ -62,7 +82,7 @@ multilib_src_configure() { local myconf=( # switches common to runtime and top-level --cache-file="${BUILD_DIR}"/config.cache - --docdir="\$(datarootdir)/doc/${PF}" + #--docdir="\$(datarootdir)/doc/${PF}" # Emacs support is now in a separate package --without-emacs @@ -91,7 +111,7 @@ multilib_src_configure() { $(use_enable static-libs static) ) - local ECONF_SOURCE=${S} + local ECONF_SOURCE="${S}" if ! multilib_is_native_abi ; then # for non-native ABIs, we build runtime only ECONF_SOURCE+=/gettext-runtime @@ -101,7 +121,7 @@ multilib_src_configure() { } multilib_src_install() { - default + emake DESTDIR="${D}" install if multilib_is_native_abi ; then dosym msgfmt /usr/bin/gmsgfmt #43435 @@ -110,29 +130,26 @@ multilib_src_install() { } multilib_src_install_all() { - use nls || rm -r "${ED}"/usr/share/locale - use static-libs || prune_libtool_files --all - - rm -f "${ED}"/usr/share/locale/locale.alias "${ED}"/usr/lib/charset.alias + find "${ED}" -type f -name "*.la" -delete || die if use java ; then java-pkg_dojar "${ED}"/usr/share/${PN}/*.jar - rm -f "${ED}"/usr/share/${PN}/*.jar - rm -f "${ED}"/usr/share/${PN}/*.class + rm "${ED}"/usr/share/${PN}/*.jar || die + rm "${ED}"/usr/share/${PN}/*.class || die if use doc ; then - java-pkg_dojavadoc "${ED}"/usr/share/doc/${PF}/javadoc2 - rm -rf "${ED}"/usr/share/doc/${PF}/javadoc2 + java-pkg_dojavadoc "${ED}"/usr/share/doc/${PF}/html/javadoc2 fi fi + dodoc AUTHORS ChangeLog NEWS README THANKS + if use doc ; then - dohtml "${ED}"/usr/share/doc/${PF}/*.html + docinto html + dodoc "${ED}"/usr/share/doc/${PF}/*.html else rm -rf "${ED}"/usr/share/doc/${PF}/{csharpdoc,examples,javadoc2,javadoc1} fi - rm -f "${ED}"/usr/share/doc/${PF}/*.html - - dodoc AUTHORS ChangeLog NEWS README THANKS + rm "${ED}"/usr/share/doc/${PF}/*.html || die } pkg_preinst() { diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gettext/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/metadata.xml index 7844da809a..8b69e80f97 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gettext/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/metadata.xml @@ -15,4 +15,7 @@ this requires git at runtime, but will be faster/smaller than raw archives + + cpe:/a:gnu:gettext +