aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Andree <mandree@FreeBSD.org>2022-10-01 10:40:13 +0000
committerMatthias Andree <mandree@FreeBSD.org>2022-10-01 10:45:34 +0000
commit5db803a6f26956fb47a211c29e34a0e5ccd82286 (patch)
treecb1d55b3f91dcada15a4afa47e9d1b13f0172017
parent3e147a1f594751a68fea00a28090d0792bee0b51 (diff)
downloadports-5db803a6f26956fb47a211c29e34a0e5ccd82286.tar.gz
ports-5db803a6f26956fb47a211c29e34a0e5ccd82286.zip
sysutils/e2fsprogs: misc/e2fsprogs-libblkid: fixes
- for libblkid, fix a buffer size when parsing device names to make room for a trailing '\0' character from sscanf(). (This was a long-standing bug in our local patch.) - patch out qsort_r redeclarations from the sort_r library that are incompatible with FreeBSD since it aligned with GNU qsort_r() API - remove FreeBSD 14-CURRENT BROKEN= tag. Related to: PR: 266227
-rw-r--r--misc/e2fsprogs-libblkid/Makefile2
-rw-r--r--sysutils/e2fsprogs/Makefile6
-rw-r--r--sysutils/e2fsprogs/files/patch-lib_blkid_devname.c4
-rw-r--r--sysutils/e2fsprogs/files/patch-lib_support_sort__r.h24
4 files changed, 28 insertions, 8 deletions
diff --git a/misc/e2fsprogs-libblkid/Makefile b/misc/e2fsprogs-libblkid/Makefile
index 5380a8921476..8dfd267d7a05 100644
--- a/misc/e2fsprogs-libblkid/Makefile
+++ b/misc/e2fsprogs-libblkid/Makefile
@@ -1,4 +1,4 @@
-PORTREVISION= 0
+PORTREVISION= 1
CATEGORIES= misc devel
PKGNAMESUFFIX= -libblkid
diff --git a/sysutils/e2fsprogs/Makefile b/sysutils/e2fsprogs/Makefile
index 31381058a529..87a1e2cb7836 100644
--- a/sysutils/e2fsprogs/Makefile
+++ b/sysutils/e2fsprogs/Makefile
@@ -13,7 +13,7 @@
PORTNAME= e2fsprogs
PORTVERSION= 1.46.5
-PORTREVISION?= 3
+PORTREVISION?= 4
CATEGORIES?= sysutils
MASTER_SITES= KERNEL_ORG/linux/kernel/people/tytso/${PORTNAME}/v${PORTVERSION}
@@ -142,10 +142,6 @@ USE_PERL5= build
.include <bsd.port.pre.mk>
-.if ${MASTERDIR} == ${.CURDIR} && ${OPSYS} == FreeBSD && ${OSVERSION} >= 1400072
-BROKEN= incompatible qsort_r() API. Upstream working on a autoconf-based fix.
-.endif
-
.if ${PORT_OPTIONS:MNLS}
. if empty(ICONV_LIB)
libintl= ${LOCALBASE}/lib/libintl.a
diff --git a/sysutils/e2fsprogs/files/patch-lib_blkid_devname.c b/sysutils/e2fsprogs/files/patch-lib_blkid_devname.c
index 220b03b9ba72..9a59112ed239 100644
--- a/sysutils/e2fsprogs/files/patch-lib_blkid_devname.c
+++ b/sysutils/e2fsprogs/files/patch-lib_blkid_devname.c
@@ -58,7 +58,7 @@
+ }
+ }
+ char *str = buf;
-+ while (line = strsep(&str, "\n")) {
++ while ((line = strsep(&str, "\n"))) {
+#endif /* __FreeBSD__ */
last = which;
which ^= 1;
@@ -70,7 +70,7 @@
continue;
devs[which] = makedev(ma, mi);
+#else
-+ char type[5];
++ char type[6];
+ int dummy;
+ if (sscanf(line, "%*d %5s %128[^ ] %lld %d",
diff --git a/sysutils/e2fsprogs/files/patch-lib_support_sort__r.h b/sysutils/e2fsprogs/files/patch-lib_support_sort__r.h
new file mode 100644
index 000000000000..499a385bc1a3
--- /dev/null
+++ b/sysutils/e2fsprogs/files/patch-lib_support_sort__r.h
@@ -0,0 +1,24 @@
+--- lib/support/sort_r.h.orig 2021-12-30 05:54:33 UTC
++++ lib/support/sort_r.h
+@@ -234,10 +234,6 @@ static _SORT_R_INLINE void sort_r_simple(void *base, s
+
+ #if defined _SORT_R_BSD
+
+- /* Ensure qsort_r is defined */
+- extern void qsort_r(void *base, size_t nel, size_t width, void *thunk,
+- int (*compar)(void *_thunk,
+- const void *_a, const void *_b));
+
+ #endif
+
+@@ -262,10 +258,6 @@ static _SORT_R_INLINE void sort_r_simple(void *base, s
+
+ #if defined _SORT_R_LINUX
+
+- typedef int(* __compar_d_fn_t)(const void *, const void *, void *);
+- extern void qsort_r(void *base, size_t nel, size_t width,
+- __compar_d_fn_t __compar, void *arg)
+- __attribute__((nonnull (1, 4)));
+
+ #endif
+