From 86240c5e6e02f23966200df9f9b9b89280e3f8fb Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Sun, 30 May 2021 16:25:32 +0000 Subject: [PATCH] core/file to 5.40-5 --- core/file/PKGBUILD | 6 +++++- core/file/pr256.patch | 23 ++++++++++++++++++++++ core/file/pr261.patch | 44 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 core/file/pr256.patch create mode 100644 core/file/pr261.patch diff --git a/core/file/PKGBUILD b/core/file/PKGBUILD index 9a2ce94d1..8e6409e69 100644 --- a/core/file/PKGBUILD +++ b/core/file/PKGBUILD @@ -8,7 +8,7 @@ pkgname=file pkgver=5.40 -pkgrel=3 +pkgrel=5 pkgdesc='File type identification utility' arch=('x86_64') license=('custom') @@ -17,10 +17,14 @@ url='https://www.darwinsys.com/file/' depends=('glibc' 'zlib' 'xz' 'bzip2') provides=('libmagic.so') source=("https://astron.com/pub/$pkgname/$pkgname-$pkgver.tar.gz"{,.asc} + "pr256.patch" # fix binary detection that breaks subversion tests + "pr261.patch" # follow-up patch which restores file 5.39 behavior "https://github.com/file/file/commit/9b0459afab309a82aa4e46f73a4e50dd641f3d39.patch") validpgpkeys=('BE04995BA8F90ED0C0C176C471112AB16CB33B3A') # Christos Zoulas sha256sums=('167321f43c148a553f68a0ea7f579821ef3b11c27b8cbe158e4df897e4a5dd57' 'SKIP' + '5fd8dc41a10ee8097ddbffad37e07ea417b6ea5ff9d416d4aadfe15bc33a46df' + 'c149311a54ee2539344d6ace2cb733e45bc1c134cd91d50d462dd9edbff916f5' 'f5d9c964233b75d6b5ac1b95fe4cc23143fbc6070d3b136e91b542021959e7dd') prepare() { diff --git a/core/file/pr256.patch b/core/file/pr256.patch new file mode 100644 index 000000000..c37f784c9 --- /dev/null +++ b/core/file/pr256.patch @@ -0,0 +1,23 @@ +From 749e1ecfc3d333e5ec8b1a2e639da7ccb2498c34 Mon Sep 17 00:00:00 2001 +From: Christos Zoulas +Date: Mon, 19 Apr 2021 18:38:04 +0000 +Subject: [PATCH] PR/256: mutableVoid: If the file is less than 3 bytes, use + the file length to determine type + +--- + src/encoding.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/encoding.c b/src/encoding.c +index 0fb1f47b..31d4d125 100644 +--- a/src/encoding.c ++++ b/src/encoding.c +@@ -285,7 +285,7 @@ looks_ ## NAME(const unsigned char *buf, size_t nbytes, file_unichar_t *ubuf, \ + if (dist[i]) \ + u++; \ + } \ +- if (u < 3) \ ++ if (u < MIN(nbytes, 3)) \ + return 0; \ + \ + return 1; \ diff --git a/core/file/pr261.patch b/core/file/pr261.patch new file mode 100644 index 000000000..5ac119a18 --- /dev/null +++ b/core/file/pr261.patch @@ -0,0 +1,44 @@ +From c07e242e766242a44ff720c149b1bdd4924ec247 Mon Sep 17 00:00:00 2001 +From: Christos Zoulas +Date: Tue, 27 Apr 2021 19:37:14 +0000 +Subject: [PATCH] Revert the fix for PR/180. It lead to PR/261. Using character + count heuristics ends up with confusing behavior, the following should not be + producing different results: echo -n xx | ./file - echo -n xy | + ./file - + +--- + src/encoding.c | 13 +------------- + 1 file changed, 1 insertion(+), 12 deletions(-) + +diff --git a/src/encoding.c b/src/encoding.c +index 31d4d1251..3647a481d 100644 +--- a/src/encoding.c ++++ b/src/encoding.c +@@ -265,9 +265,7 @@ private int \ + looks_ ## NAME(const unsigned char *buf, size_t nbytes, file_unichar_t *ubuf, \ + size_t *ulen) \ + { \ +- size_t i, u; \ +- unsigned char dist[256]; \ +- memset(dist, 0, sizeof(dist)); \ ++ size_t i; \ + \ + *ulen = 0; \ + \ +@@ -278,16 +276,7 @@ looks_ ## NAME(const unsigned char *buf, size_t nbytes, file_unichar_t *ubuf, \ + return 0; \ + \ + ubuf[(*ulen)++] = buf[i]; \ +- dist[buf[i]]++; \ + } \ +- u = 0; \ +- for (i = 0; i < __arraycount(dist); i++) { \ +- if (dist[i]) \ +- u++; \ +- } \ +- if (u < MIN(nbytes, 3)) \ +- return 0; \ +-\ + return 1; \ + } +