Signed-off-by: Carlos Alberto Lopez Perez <clo...@igalia.com> --- ...813_rise_buffer_sizes_pkgdata_PR3058.patch | 72 +++++++++++++++++++ meta/recipes-support/icu/icu_75-1.bb | 1 + 2 files changed, 73 insertions(+) create mode 100644 meta/recipes-support/icu/icu/ICU-22813_rise_buffer_sizes_pkgdata_PR3058.patch
diff --git a/meta/recipes-support/icu/icu/ICU-22813_rise_buffer_sizes_pkgdata_PR3058.patch b/meta/recipes-support/icu/icu/ICU-22813_rise_buffer_sizes_pkgdata_PR3058.patch new file mode 100644 index 0000000000..5b97350e6f --- /dev/null +++ b/meta/recipes-support/icu/icu/ICU-22813_rise_buffer_sizes_pkgdata_PR3058.patch @@ -0,0 +1,72 @@ +From db70adaddcfa8050db6a69cdfef080a7f1423ad7 Mon Sep 17 00:00:00 2001 +From: Carlos Alberto Lopez Perez <clo...@igalia.com> +Date: Mon, 1 Jul 2024 22:15:18 +0100 +Subject: [PATCH] ICU-22813 Rise the size of the buffers used for the command + strings at pkgdata + +The tool pkgdata uses snprintf() to build the strings of the commands that +will execute later during the install process. But the maximum size of this +buffers is not enough when there is a long path. + +This has caused issues on some CI systems that use very long paths, causing +the install process to produce a wrong result. + +The maximum path on Linux is 4096 (defined as PATH_MAX at <linux/limits.h>) +So the size of SMALL_BUFFER_MAX_SIZE should be 4096 to avoid errors related +to truncated paths. + +Upstream-Status: Backport [https://github.com/unicode-org/icu/pull/3058] + +Signed-off-by: Carlos Alberto Lopez Perez <clo...@igalia.com> +--- + tools/pkgdata/pkgdata.cpp | 6 +++--- + tools/toolutil/pkg_genc.h | 5 ++--- + 2 files changed, 5 insertions(+), 6 deletions(-) + +diff --git a/tools/pkgdata/pkgdata.cpp b/tools/pkgdata/pkgdata.cpp +index c2ac112..8d08c85 100644 +--- a/tools/pkgdata/pkgdata.cpp ++++ b/tools/pkgdata/pkgdata.cpp +@@ -1134,7 +1134,7 @@ static int32_t pkg_createSymLinks(const char *targetDir, UBool specialHandling) + + static int32_t pkg_installLibrary(const char *installDir, const char *targetDir, UBool noVersion) { + int32_t result = 0; +- char cmd[SMALL_BUFFER_MAX_SIZE]; ++ char cmd[LARGE_BUFFER_MAX_SIZE]; + + auto ret = snprintf(cmd, + sizeof(cmd), +@@ -1205,7 +1205,7 @@ static int32_t pkg_installLibrary(const char *installDir, const char *targetDir, + + static int32_t pkg_installCommonMode(const char *installDir, const char *fileName) { + int32_t result = 0; +- char cmd[SMALL_BUFFER_MAX_SIZE] = ""; ++ char cmd[LARGE_BUFFER_MAX_SIZE] = ""; + + if (!T_FileStream_file_exists(installDir)) { + UErrorCode status = U_ZERO_ERROR; +@@ -1237,7 +1237,7 @@ static int32_t pkg_installCommonMode(const char *installDir, const char *fileNam + #endif + static int32_t pkg_installFileMode(const char *installDir, const char *srcDir, const char *fileListName) { + int32_t result = 0; +- char cmd[SMALL_BUFFER_MAX_SIZE] = ""; ++ char cmd[LARGE_BUFFER_MAX_SIZE] = ""; + + if (!T_FileStream_file_exists(installDir)) { + UErrorCode status = U_ZERO_ERROR; +diff --git a/tools/toolutil/pkg_genc.h b/tools/toolutil/pkg_genc.h +index 2dd1b45..f811fe5 100644 +--- a/tools/toolutil/pkg_genc.h ++++ b/tools/toolutil/pkg_genc.h +@@ -59,9 +59,8 @@ + #define PKGDATA_FILE_SEP_STRING U_FILE_SEP_STRING + #endif + +-#define LARGE_BUFFER_MAX_SIZE 2048 +-#define SMALL_BUFFER_MAX_SIZE 512 +-#define SMALL_BUFFER_FLAG_NAMES 32 ++#define LARGE_BUFFER_MAX_SIZE 16384 ++#define SMALL_BUFFER_MAX_SIZE 4096 + #define BUFFER_PADDING_SIZE 20 + + /** End platform defines **/ diff --git a/meta/recipes-support/icu/icu_75-1.bb b/meta/recipes-support/icu/icu_75-1.bb index 88103e4eca..8f7f5e6cc7 100644 --- a/meta/recipes-support/icu/icu_75-1.bb +++ b/meta/recipes-support/icu/icu_75-1.bb @@ -120,6 +120,7 @@ SRC_URI = "${BASE_SRC_URI};name=code \ file://filter.json \ file://fix-install-manx.patch \ file://0001-icu-Added-armeb-support.patch \ + file://ICU-22813_rise_buffer_sizes_pkgdata_PR3058.patch \ " SRC_URI:append:class-target = "\ -- 2.39.2
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#202686): https://lists.openembedded.org/g/openembedded-core/message/202686 Mute This Topic: https://lists.openembedded.org/mt/107639107/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-