util-linux: update to 2.38.1

This commit is contained in:
Lucy Phipps 2022-10-05 16:27:11 +01:00
parent a0b581b771
commit 543e49413a
No known key found for this signature in database
GPG Key ID: 8F688A3DB7869BFE
2 changed files with 43 additions and 2 deletions

View File

@ -9,9 +9,9 @@ Documentation/licenses/COPYING.BSD-3-Clause
Documentation/licenses/COPYING.BSD-4-Clause-UC
Documentation/licenses/COPYING.ISC"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=2.38
TERMUX_PKG_VERSION=2.38.1
TERMUX_PKG_SRCURL=https://www.kernel.org/pub/linux/utils/util-linux/v${TERMUX_PKG_VERSION:0:4}/util-linux-${TERMUX_PKG_VERSION}.tar.xz
TERMUX_PKG_SHA256=6d111cbe4d55b336db2f1fbeffbc65b89908704c01136371d32aa9bec373eb64
TERMUX_PKG_SHA256=60492a19b44e6cf9a3ddff68325b333b8b52b6c59ce3ebd6a0ecaa4c5117e84f
# libcrypt is required for only newgrp and sulogin, which are not built anyways
TERMUX_PKG_DEPENDS="ncurses, libcap-ng, zlib"
TERMUX_PKG_ESSENTIAL=true

View File

@ -0,0 +1,41 @@
diff -uNr util-linux-2.38.1/sys-utils/irq-common.c util-linux-2.38.1.mod/sys-utils/irq-common.c
--- util-linux-2.38.1/sys-utils/irq-common.c 2022-08-04 09:21:36.057638413 +0100
+++ util-linux-2.38.1.mod/sys-utils/irq-common.c 2022-09-27 13:23:46.663591000 +0100
@@ -369,6 +369,37 @@
return a->delta < b->delta;
}
+static int strverscmp(const char *l0, const char *r0)
+{
+ const unsigned char *l = (const void *)l0;
+ const unsigned char *r = (const void *)r0;
+ size_t i, dp, j;
+ int z = 1;
+
+ /* Find maximal matching prefix and track its maximal digit
+ * suffix and whether those digits are all zeros. */
+ for (dp=i=0; l[i]==r[i]; i++) {
+ int c = l[i];
+ if (!c) return 0;
+ if (!isdigit(c)) dp=i+1, z=1;
+ else if (c!='0') z=0;
+ }
+
+ if (l[dp]!='0' && r[dp]!='0') {
+ /* If we're not looking at a digit sequence that began
+ * with a zero, longest digit string is greater. */
+ for (j=i; isdigit(l[j]); j++)
+ if (!isdigit(r[j])) return 1;
+ if (isdigit(r[j])) return -1;
+ } else if (z && dp<i && (isdigit(l[i]) || isdigit(r[i]))) {
+ /* Otherwise, if common prefix of digit sequence is
+ * all zeros, digits order less than non-digits. */
+ return (unsigned char)(l[i]-'0') - (unsigned char)(r[i]-'0');
+ }
+
+ return l[i] - r[i];
+}
+
static inline int cmp_interrupts(const struct irq_info *a,
const struct irq_info *b)
{