diff options
Diffstat (limited to 'system/libarchive')
-rw-r--r-- | system/libarchive/APKBUILD | 28 | ||||
-rw-r--r-- | system/libarchive/disable-locale-tests.patch | 570 | ||||
-rw-r--r-- | system/libarchive/disable-unaligned-access-arm32-xxhash.patch | 12 | ||||
-rw-r--r-- | system/libarchive/fix-test-32-bit-zstd.patch | 29 | ||||
-rw-r--r-- | system/libarchive/seek-error.patch | 11 |
5 files changed, 630 insertions, 20 deletions
diff --git a/system/libarchive/APKBUILD b/system/libarchive/APKBUILD index 18017ee7c..9fcca3319 100644 --- a/system/libarchive/APKBUILD +++ b/system/libarchive/APKBUILD @@ -1,21 +1,29 @@ -# Contributor: Sergei Lukin <sergej.lukin@gmail.com> +# Contributor: Sergey Lukin <sergej.lukin@gmail.com> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=libarchive -pkgver=3.4.0 -pkgrel=1 -pkgdesc="Library for creating and reading streaming archives" -url="https://libarchive.org/" +pkgver=3.7.2 +pkgrel=0 +pkgdesc="Multi-format archive and compression library" +url="https://www.libarchive.org/" arch="all" -options="!check" # needs EUC-JP and KOI8R support in iconv license="BSD-2-Clause AND BSD-3-Clause AND Public-Domain" +depends="" makedepends="zlib-dev bzip2-dev xz-dev lz4-dev acl-dev openssl-dev expat-dev attr-dev zstd-dev" subpackages="$pkgname-dev $pkgname-doc $pkgname-tools" source="https://github.com/libarchive/libarchive/releases/download/v$pkgver/$pkgname-$pkgver.tar.gz - seek-error.patch + disable-locale-tests.patch + disable-unaligned-access-arm32-xxhash.patch + fix-test-32-bit-zstd.patch " # secfixes: +# 3.6.2-r0: +# - CVE-2022-36227 +# 3.6.1-r0: +# - CVE-2022-26280 +# 3.4.2-r0: +# - CVE-2020-9308 # 3.3.2-r1: # - CVE-2017-14166 @@ -53,5 +61,7 @@ tools() { ln -s bsdcpio "$subpkgdir"/usr/bin/cpio } -sha512sums="2f9e2a551a6bcab56fb1a030b5d656df7299a3d151465aa02f0420d344d2fada49dee4755b3abff9095f62519e14dc9af8afa1695ecc6d5fdb4f0b28e6ede852 libarchive-3.4.0.tar.gz -ff2567f243ba7e9ce20bc4f7fa422a922c5c23049004efdd8f71f29f93ab9be9aadd4c100e8c6dca318442d583fbad9bd6466017a23f83af18b9808c718b9fce seek-error.patch" +sha512sums="1af253203df3014d1fbf3e99ebdc7aa2a3f036c7c2606d0f0550c49973b0fff99ee7262f4a6e20090c0806c40e964731334360daa3b718bde40108183eacc8a1 libarchive-3.7.2.tar.gz +27cf2aaa3e70e3a2a9944fac0c96c411e669c7e1a48daad1423bff68eef0f49153e5ef9d22dc9591a65353119d7fe203a28258ab82278aeb86b46fe691bcfb6a disable-locale-tests.patch +56a2b13b6cd7b127c04ac50ebf49994ec91ff2467d5d0f32b8428bd4df82b167459d4630dee5d1b5119f70b04ea6fe4411d44b768e0f313fa302c9e5fe51b7cd disable-unaligned-access-arm32-xxhash.patch +f0a8e3881e742395afc74e418eceab419280152f0884fd6b9dc971d90e117de1cd0a7578c08f14f694c75b904f12fa71fb0102dde0d67a095f6369b3413f7348 fix-test-32-bit-zstd.patch" diff --git a/system/libarchive/disable-locale-tests.patch b/system/libarchive/disable-locale-tests.patch new file mode 100644 index 000000000..885490c95 --- /dev/null +++ b/system/libarchive/disable-locale-tests.patch @@ -0,0 +1,570 @@ +--- libarchive-3.6.0/libarchive/test/test_gnutar_filename_encoding.c.old 2022-02-09 06:24:12.000000000 -0600 ++++ libarchive-3.6.0/libarchive/test/test_gnutar_filename_encoding.c 2022-02-20 17:08:38.820000000 -0600 +@@ -75,7 +75,7 @@ + char buff[4096]; + size_t used; + +- if (NULL == setlocale(LC_ALL, "ru_RU.KOI8-R")) { ++ if (1) { + skipping("KOI8-R locale not available on this system."); + return; + } +@@ -116,7 +116,7 @@ + char buff[4096]; + size_t used; + +- if (NULL == setlocale(LC_ALL, "ru_RU.KOI8-R")) { ++ if (1) { + skipping("KOI8-R locale not available on this system."); + return; + } +@@ -157,8 +157,7 @@ + char buff[4096]; + size_t used; + +- if (NULL == setlocale(LC_ALL, "Russian_Russia") && +- NULL == setlocale(LC_ALL, "ru_RU.CP1251")) { ++ if (1) { + skipping("KOI8-R locale not available on this system."); + return; + } +@@ -242,7 +241,7 @@ + char buff[4096]; + size_t used; + +- if (NULL == setlocale(LC_ALL, "Russian_Russia")) { ++ if (1) { + skipping("Russian_Russia locale not available on this system."); + return; + } +@@ -277,7 +276,7 @@ + char buff[4096]; + size_t used; + +- if (NULL == setlocale(LC_ALL, "ja_JP.eucJP")) { ++ if (1) { + skipping("eucJP locale not available on this system."); + return; + } +@@ -357,8 +356,7 @@ + char buff[4096]; + size_t used; + +- if (NULL == setlocale(LC_ALL, "Japanese_Japan") && +- NULL == setlocale(LC_ALL, "ja_JP.SJIS")) { ++ if (1) { + skipping("CP932/SJIS locale not available on this system."); + return; + } +--- libarchive-3.6.0/libarchive/test/test_pax_filename_encoding.c.old 2022-02-09 06:24:12.000000000 -0600 ++++ libarchive-3.6.0/libarchive/test/test_pax_filename_encoding.c 2022-02-20 17:09:41.050000000 -0600 +@@ -342,7 +342,7 @@ + char buff[4096]; + size_t used; + +- if (NULL == setlocale(LC_ALL, "ru_RU.KOI8-R")) { ++ if (1) { + skipping("KOI8-R locale not available on this system."); + return; + } +@@ -388,8 +388,7 @@ + char buff[4096]; + size_t used; + +- if (NULL == setlocale(LC_ALL, "Russian_Russia") && +- NULL == setlocale(LC_ALL, "ru_RU.CP1251")) { ++ if (1) { + skipping("KOI8-R locale not available on this system."); + return; + } +@@ -435,7 +434,7 @@ + char buff[4096]; + size_t used; + +- if (NULL == setlocale(LC_ALL, "ja_JP.eucJP")) { ++ if (1) { + skipping("eucJP locale not available on this system."); + return; + } +@@ -482,8 +481,7 @@ + char buff[4096]; + size_t used; + +- if (NULL == setlocale(LC_ALL, "Japanese_Japan") && +- NULL == setlocale(LC_ALL, "ja_JP.SJIS")) { ++ if (1) { + skipping("eucJP locale not available on this system."); + return; + } +--- libarchive-3.6.0/libarchive/test/test_read_format_cpio_filename.c.old 2022-02-09 06:24:12.000000000 -0600 ++++ libarchive-3.6.0/libarchive/test/test_read_format_cpio_filename.c 2022-02-20 17:16:18.580000000 -0600 +@@ -91,7 +91,7 @@ + /* + * Read UTF-8 filename in ja_JP.eucJP with "hdrcharset=UTF-8" option. + */ +- if (NULL == setlocale(LC_ALL, "ja_JP.eucJP")) { ++ if (1) { + skipping("ja_JP.eucJP locale not available on this system."); + return; + } +@@ -191,8 +191,7 @@ + /* + * Read CP866 filename in ru_RU.KOI8-R with "hdrcharset=CP866" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia.20866") && +- NULL == setlocale(LC_ALL, "ru_RU.KOI8-R")) { ++ if (1) { + skipping("ru_RU.KOI8-R locale not available on this system."); + return; + } +@@ -296,8 +295,7 @@ + /* + * Read KOI8-R filename in ru_RU.CP866 with "hdrcharset=KOI8-R" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia.866") && +- NULL == setlocale(LC_ALL, "ru_RU.CP866")) { ++ if (1) { + skipping("ru_RU.CP866 locale not available on this system."); + return; + } +@@ -401,8 +399,7 @@ + /* + * Read UTF-8 filename in ru_RU.KOI8-R with "hdrcharset=UTF-8" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia.20866") && +- NULL == setlocale(LC_ALL, "ru_RU.KOI8-R")) { ++ if (1) { + skipping("ru_RU.KOI8-R locale not available on this system."); + return; + } +@@ -454,8 +451,7 @@ + /* + * Read UTF-8 filename in ru_RU.CP866 with "hdrcharset=UTF-8" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia.866") && +- NULL == setlocale(LC_ALL, "ru_RU.CP866")) { ++ if (1) { + skipping("ru_RU.CP866 locale not available on this system."); + return; + } +@@ -553,8 +549,7 @@ + /* + * Read eucJP filename in CP932/SJIS with "hdrcharset=eucJP" option. + */ +- if (NULL == setlocale(LC_ALL, "Japanese_Japan") && +- NULL == setlocale(LC_ALL, "ja_JP.SJIS")) { ++ if (1) { + skipping("CP932 locale not available on this system."); + return; + } +@@ -604,8 +599,7 @@ + /* + * Read UTF-8 filename in CP932/SJIS with "hdrcharset=UTF-8" option. + */ +- if (NULL == setlocale(LC_ALL, "Japanese_Japan") && +- NULL == setlocale(LC_ALL, "ja_JP.SJIS")) { ++ if (1) { + skipping("CP932 locale not available on this system."); + return; + } +@@ -656,8 +650,7 @@ + /* + * Read CP866 filename in CP1251 with "hdrcharset=CP866" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia") && +- NULL == setlocale(LC_ALL, "ru_RU.CP1251")) { ++ if (1) { + skipping("CP1251 locale not available on this system."); + return; + } +@@ -715,7 +708,7 @@ + /* + * Read CP866 filename in CP1251 without "hdrcharset=CP866" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia")) { ++ if (1) { + skipping("Russian_Russia locale not available on this system."); + return; + } +@@ -761,8 +754,7 @@ + /* + * Read KOI8-R filename in CP1251 with "hdrcharset=KOI8-R" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia") && +- NULL == setlocale(LC_ALL, "ru_RU.CP1251")) { ++ if (1) { + skipping("CP1251 locale not available on this system."); + return; + } +@@ -814,8 +806,7 @@ + /* + * Read KOI8-R filename in CP1251 with "hdrcharset=KOI8-R" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia") && +- NULL == setlocale(LC_ALL, "ru_RU.CP1251")) { ++ if (1) { + skipping("CP1251 locale not available on this system."); + return; + } +--- libarchive-3.6.0/libarchive/test/test_read_format_gtar_filename.c.old 2022-02-09 06:24:12.000000000 -0600 ++++ libarchive-3.6.0/libarchive/test/test_read_format_gtar_filename.c 2022-02-20 17:17:56.960000000 -0600 +@@ -89,8 +89,7 @@ + /* + * Read CP866 filename in ru_RU.KOI8-R with "hdrcharset=CP866" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia.20866") && +- NULL == setlocale(LC_ALL, "ru_RU.KOI8-R")) { ++ if (1) { + skipping("ru_RU.KOI8-R locale not available on this system."); + return; + } +@@ -194,8 +193,7 @@ + /* + * Read KOI8-R filename in ru_RU.CP866 with "hdrcharset=KOI8-R" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia.866") && +- NULL == setlocale(LC_ALL, "ru_RU.CP866")) { ++ if (1) { + skipping("ru_RU.CP866 locale not available on this system."); + return; + } +@@ -299,8 +297,7 @@ + /* + * Read eucJP filename in CP932/SJIS with "hdrcharset=eucJP" option. + */ +- if (NULL == setlocale(LC_ALL, "Japanese_Japan") && +- NULL == setlocale(LC_ALL, "ja_JP.SJIS")) { ++ if (1) { + skipping("CP932 locale not available on this system."); + return; + } +@@ -350,8 +347,7 @@ + /* + * Read CP866 filename in CP1251 with "hdrcharset=CP866" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia") && +- NULL == setlocale(LC_ALL, "ru_RU.CP1251")) { ++ if (1) { + skipping("CP1251 locale not available on this system."); + return; + } +@@ -409,7 +405,7 @@ + /* + * Read CP866 filename in CP1251 without "hdrcharset=CP866" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia")) { ++ if (1) { + skipping("Russian_Russia locale not available on this system."); + return; + } +@@ -455,8 +451,7 @@ + /* + * Read KOI8-R filename in CP1251 with "hdrcharset=KOI8-R" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia") && +- NULL == setlocale(LC_ALL, "ru_RU.CP1251")) { ++ if (1) { + skipping("CP1251 locale not available on this system."); + return; + } +--- libarchive-3.6.0/libarchive/test/test_read_format_rar.c.old 2022-02-09 06:24:12.000000000 -0600 ++++ libarchive-3.6.0/libarchive/test/test_read_format_rar.c 2022-02-20 17:19:17.710000000 -0600 +@@ -336,8 +336,7 @@ + struct archive_entry *ae; + struct archive *a; + +- if (NULL == setlocale(LC_ALL, "Japanese_Japan") && +- NULL == setlocale(LC_ALL, "ja_JP.SJIS")) { ++ if (1) { + skipping("CP932 locale not available on this system."); + return; + } +--- libarchive-3.6.0/libarchive/test/test_read_format_zip_filename.c.old 2022-02-09 06:24:12.000000000 -0600 ++++ libarchive-3.6.0/libarchive/test/test_read_format_zip_filename.c 2022-02-20 17:29:22.640000000 -0600 +@@ -176,7 +176,7 @@ + * because the file name in the sample file is UTF-8 and + * Bit 11 of its general purpose bit flag is set. + */ +- if (NULL == setlocale(LC_ALL, "ja_JP.eucJP")) { ++ if (1) { + skipping("ja_JP.eucJP locale not availablefilename_ on " + "this system."); + return; +@@ -343,8 +343,7 @@ + /* + * Read CP866 filename in ru_RU.KOI8-R with "hdrcharset=CP866" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia.20866") && +- NULL == setlocale(LC_ALL, "ru_RU.KOI8-R")) { ++ if (1) { + skipping("ru_RU.KOI8-R locale not available on this system."); + return; + } +@@ -456,8 +455,7 @@ + /* + * Read KOI8-R filename in ru_RU.CP866 with "hdrcharset=KOI8-R" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia.866") && +- NULL == setlocale(LC_ALL, "ru_RU.CP866")) { ++ if (1) { + skipping("ru_RU.CP866 locale not available on this system."); + return; + } +@@ -569,8 +567,7 @@ + /* + * Read UTF-8 filename in ru_RU.KOI8-R with "hdrcharset=UTF-8" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia.20866") && +- NULL == setlocale(LC_ALL, "ru_RU.KOI8-R")) { ++ if (1) { + skipping("ru_RU.KOI8-R locale not available on this system."); + return; + } +@@ -633,8 +630,7 @@ + * because the file name in the sample file is UTF-8 and + * Bit 11 of its general purpose bit flag is set. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia.866") && +- NULL == setlocale(LC_ALL, "ru_RU.CP866")) { ++ if (1) { + skipping("ru_RU.CP866 locale not available on this system."); + return; + } +@@ -809,8 +805,7 @@ + * because the file name in the sample file is UTF-8 and + * Bit 11 of its general purpose bit flag is set. + */ +- if (NULL == setlocale(LC_ALL, "Japanese_Japan") && +- NULL == setlocale(LC_ALL, "ja_JP.SJIS")) { ++ if (1) { + skipping("CP932 locale not available on this system."); + return; + } +@@ -884,8 +879,7 @@ + /* + * Read CP866 filename in CP1251 with "hdrcharset=CP866" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia") && +- NULL == setlocale(LC_ALL, "ru_RU.CP1251")) { ++ if (1) { + skipping("CP1251 locale not available on this system."); + return; + } +@@ -947,7 +941,7 @@ + /* + * Read CP866 filename in CP1251 without "hdrcharset=CP866" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia")) { ++ if (1) { + skipping("Russian_Russia locale not available on this system."); + return; + } +@@ -997,8 +991,7 @@ + /* + * Read KOI8-R filename in CP1251 with "hdrcharset=KOI8-R" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia") && +- NULL == setlocale(LC_ALL, "ru_RU.CP1251")) { ++ if (1) { + skipping("CP1251 locale not available on this system."); + return; + } +@@ -1056,8 +1049,7 @@ + * because the file name in the sample file is UTF-8 and + * Bit 11 of its general purpose bit flag is set. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia") && +- NULL == setlocale(LC_ALL, "ru_RU.CP1251")) { ++ if (1) { + skipping("CP1251 locale not available on this system."); + return; + } +--- libarchive-3.6.0/libarchive/test/test_ustar_filename_encoding.c.old 2022-02-09 06:24:12.000000000 -0600 ++++ libarchive-3.6.0/libarchive/test/test_ustar_filename_encoding.c 2022-02-20 17:30:54.440000000 -0600 +@@ -75,7 +75,7 @@ + char buff[4096]; + size_t used; + +- if (NULL == setlocale(LC_ALL, "ru_RU.KOI8-R")) { ++ if (1) { + skipping("KOI8-R locale not available on this system."); + return; + } +@@ -116,7 +116,7 @@ + char buff[4096]; + size_t used; + +- if (NULL == setlocale(LC_ALL, "ru_RU.KOI8-R")) { ++ if (1) { + skipping("KOI8-R locale not available on this system."); + return; + } +@@ -157,8 +157,7 @@ + char buff[4096]; + size_t used; + +- if (NULL == setlocale(LC_ALL, "Russian_Russia") && +- NULL == setlocale(LC_ALL, "ru_RU.CP1251")) { ++ if (1) { + skipping("KOI8-R locale not available on this system."); + return; + } +@@ -242,7 +241,7 @@ + char buff[4096]; + size_t used; + +- if (NULL == setlocale(LC_ALL, "Russian_Russia")) { ++ if (1) { + skipping("Russian_Russia locale not available on this system."); + return; + } +@@ -277,7 +276,7 @@ + char buff[4096]; + size_t used; + +- if (NULL == setlocale(LC_ALL, "ja_JP.eucJP")) { ++ if (1) { + skipping("eucJP locale not available on this system."); + return; + } +@@ -357,8 +356,7 @@ + char buff[4096]; + size_t used; + +- if (NULL == setlocale(LC_ALL, "Japanese_Japan") && +- NULL == setlocale(LC_ALL, "ja_JP.SJIS")) { ++ if (1) { + skipping("CP932/SJIS locale not available on this system."); + return; + } +--- libarchive-3.6.0/libarchive/test/test_zip_filename_encoding.c.old 2022-02-09 06:24:12.000000000 -0600 ++++ libarchive-3.6.0/libarchive/test/test_zip_filename_encoding.c 2022-02-20 17:41:15.060000000 -0600 +@@ -122,7 +122,7 @@ + char buff[4096]; + size_t used; + +- if (NULL == setlocale(LC_ALL, "ru_RU.KOI8-R")) { ++ if (1) { + skipping("KOI8-R locale not available on this system."); + return; + } +@@ -222,7 +222,7 @@ + char buff[4096]; + size_t used; + +- if (NULL == setlocale(LC_ALL, "ru_RU.CP1251")) { ++ if (1) { + skipping("Russian_Russia locale not available on this system."); + return; + } +@@ -265,7 +265,7 @@ + char buff[4096]; + size_t used; + +- if (NULL == setlocale(LC_ALL, "Russian_Russia")) { ++ if (1) { + skipping("Russian_Russia locale not available on this system."); + return; + } +@@ -334,7 +334,7 @@ + char buff[4096]; + size_t used; + +- if (NULL == setlocale(LC_ALL, "ja_JP.eucJP")) { ++ if (1) { + skipping("eucJP locale not available on this system."); + return; + } +@@ -433,8 +433,7 @@ + char buff[4096]; + size_t used; + +- if (NULL == setlocale(LC_ALL, "Japanese_Japan") && +- NULL == setlocale(LC_ALL, "ja_JP.SJIS")) { ++ if (1) { + skipping("CP932/SJIS locale not available on this system."); + return; + } +--- libarchive-3.6.0/libarchive/test/test_read_format_tar_filename.c.old 2022-02-09 06:24:12.000000000 -0600 ++++ libarchive-3.6.0/libarchive/test/test_read_format_tar_filename.c 2022-02-20 17:54:34.540000000 -0600 +@@ -47,8 +47,7 @@ + * Read filename in ru_RU.CP866 with "hdrcharset=KOI8-R" option. + * We should correctly read two filenames. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia.866") && +- NULL == setlocale(LC_ALL, "ru_RU.CP866")) { ++ if (1) { + skipping("ru_RU.CP866 locale not available on this system."); + return; + } +@@ -276,8 +275,7 @@ + * Read filename in CP1251 with "hdrcharset=KOI8-R" option. + * We should correctly read two filenames. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia") && +- NULL == setlocale(LC_ALL, "ru_RU.CP1251")) { ++ if (1) { + skipping("CP1251 locale not available on this system."); + return; + } +--- libarchive-3.6.0/libarchive/test/test_read_format_ustar_filename.c.old 2022-02-09 06:24:12.000000000 -0600 ++++ libarchive-3.6.0/libarchive/test/test_read_format_ustar_filename.c 2022-02-20 17:56:02.310000000 -0600 +@@ -90,8 +90,7 @@ + /* + * Read CP866 filename in ru_RU.KOI8-R with "hdrcharset=CP866" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia.20866") && +- NULL == setlocale(LC_ALL, "ru_RU.KOI8-R")) { ++ if (1) { + skipping("ru_RU.KOI8-R locale not available on this system."); + return; + } +@@ -200,8 +199,7 @@ + /* + * Read KOI8-R filename in ru_RU.CP866 with "hdrcharset=KOI8-R" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia.866") && +- NULL == setlocale(LC_ALL, "ru_RU.CP866")) { ++ if (1) { + skipping("ru_RU.CP866 locale not available on this system."); + return; + } +@@ -311,8 +309,7 @@ + /* + * Read eucJP filename in CP932/SJIS with "hdrcharset=eucJP" option. + */ +- if (NULL == setlocale(LC_ALL, "Japanese_Japan") && +- NULL == setlocale(LC_ALL, "ja_JP.SJIS")) { ++ if (1) { + skipping("CP932 locale not available on this system."); + return; + } +@@ -365,8 +362,7 @@ + /* + * Read CP866 filename in CP1251 with "hdrcharset=CP866" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia") && +- NULL == setlocale(LC_ALL, "ru_RU.CP1251")) { ++ if (1) { + skipping("CP1251 locale not available on this system."); + return; + } +@@ -427,7 +423,7 @@ + /* + * Read CP866 filename in CP1251 without "hdrcharset=CP866" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia")) { ++ if (1) { + skipping("Russian_Russia locale not available on this system."); + return; + } +@@ -476,8 +472,7 @@ + /* + * Read KOI8-R filename in CP1251 with "hdrcharset=KOI8-R" option. + */ +- if (NULL == setlocale(LC_ALL, "Russian_Russia") && +- NULL == setlocale(LC_ALL, "ru_RU.CP1251")) { ++ if (1) { + skipping("CP1251 locale not available on this system."); + return; + } diff --git a/system/libarchive/disable-unaligned-access-arm32-xxhash.patch b/system/libarchive/disable-unaligned-access-arm32-xxhash.patch new file mode 100644 index 000000000..0b24a8854 --- /dev/null +++ b/system/libarchive/disable-unaligned-access-arm32-xxhash.patch @@ -0,0 +1,12 @@ +diff -ur a/libarchive/xxhash.c b/libarchive/xxhash.c +--- a/libarchive/xxhash.c 2022-05-20 18:47:43.907673368 +0000 ++++ b/libarchive/xxhash.c 2022-05-20 18:49:43.019255133 +0000 +@@ -46,7 +46,7 @@ + ** If you know your target CPU supports unaligned memory access, you want to force this option manually to improve performance. + ** You can also enable this parameter if you know your input data will always be aligned (boundaries of 4, for U32). + */ +-#if defined(__ARM_FEATURE_UNALIGNED) || defined(__i386) || defined(_M_IX86) || defined(__x86_64__) || defined(_M_X64) ++#if (defined(__ARM_FEATURE_UNALIGNED) && defined(__aarch64__)) || defined(__i386) || defined(_M_IX86) || defined(__x86_64__) || defined(_M_X64) + # define XXH_USE_UNALIGNED_ACCESS 1 + #endif + diff --git a/system/libarchive/fix-test-32-bit-zstd.patch b/system/libarchive/fix-test-32-bit-zstd.patch new file mode 100644 index 000000000..5f43c2626 --- /dev/null +++ b/system/libarchive/fix-test-32-bit-zstd.patch @@ -0,0 +1,29 @@ +From 3bd918d92f8c34ba12de9c6604d96f9e262a59fc Mon Sep 17 00:00:00 2001 +From: Martin Matuska <martin@matuska.de> +Date: Tue, 12 Sep 2023 08:54:47 +0200 +Subject: [PATCH] tests: fix zstd long option test for 32-bit architectures + +Fixes #1968 +--- + libarchive/test/test_write_filter_zstd.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/libarchive/test/test_write_filter_zstd.c b/libarchive/test/test_write_filter_zstd.c +index 3cdbd812a..c9731f1b6 100644 +--- a/libarchive/test/test_write_filter_zstd.c ++++ b/libarchive/test/test_write_filter_zstd.c +@@ -161,8 +161,12 @@ DEFINE_TEST(test_write_filter_zstd) + archive_write_set_filter_option(a, NULL, "max-frame-size", "1048576")); + #endif + #if ZSTD_VERSION_NUMBER >= MINVER_LONG +- assertEqualIntA(a, ARCHIVE_OK, +- archive_write_set_filter_option(a, NULL, "long", "27")); ++ if ((int)(sizeof(size_t) == 4)) ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_filter_option(a, NULL, "long", "26")); ++ else ++ assertEqualIntA(a, ARCHIVE_OK, ++ archive_write_set_filter_option(a, NULL, "long", "27")); + assertEqualIntA(a, ARCHIVE_FAILED, + archive_write_set_filter_option(a, NULL, "long", "-1")); /* negative */ + #endif diff --git a/system/libarchive/seek-error.patch b/system/libarchive/seek-error.patch deleted file mode 100644 index e14b281b1..000000000 --- a/system/libarchive/seek-error.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- libarchive-3.3.1/libarchive/archive_read_disk_entry_from_file.c.old 2017-02-25 17:37:08.000000000 +0000 -+++ libarchive-3.3.1/libarchive/archive_read_disk_entry_from_file.c 2017-07-04 01:31:03.297134418 +0000 -@@ -1865,7 +1865,7 @@ - #endif - #endif /* defined(HAVE_LINUX_FIEMAP_H) */ - --#if defined(SEEK_HOLE) && defined(SEEK_DATA) -+#if defined(SEEK_HOLE) && defined(SEEK_DATA) && defined(__MAKE_ADELIE_WORK_AGAIN__) - - /* - * SEEK_HOLE sparse interface (FreeBSD, Linux, Solaris) |