svn commit: r421812 - in head/sysutils/e2fsprogs: . files
Matthias Andree
mandree at FreeBSD.org
Sun Sep 11 10:26:26 UTC 2016
Author: mandree
Date: Sun Sep 11 10:26:24 2016
New Revision: 421812
URL: https://svnweb.freebsd.org/changeset/ports/421812
Log:
Fix most of the FreeBSD 11+ issues, except e2undo.
Pull in upstream Git patch for lib/ext2fs/unix_io.c to fix unaligned
multi-block writes, and disable the two known failing e2undo patches
ONLY for the exact 1.43.3_2, even if "ALLTESTS" is enabled.
(Modify the post-patch:: target to avoid that.)
The port is still marked BROKEN on FreeBSD 11+ to protect the innocent,
but a TRYBROKEN=1 build that will not use e2undo should be fine now.
Obtained from: Ted Y. Ts'o (upstream maintainer)
Added:
head/sysutils/e2fsprogs/files/patch-lib_ext2fs_unix__io.c (contents, props changed)
Modified:
head/sysutils/e2fsprogs/Makefile
Modified: head/sysutils/e2fsprogs/Makefile
==============================================================================
--- head/sysutils/e2fsprogs/Makefile Sun Sep 11 09:03:26 2016 (r421811)
+++ head/sysutils/e2fsprogs/Makefile Sun Sep 11 10:26:24 2016 (r421812)
@@ -3,7 +3,7 @@
PORTNAME= e2fsprogs
PORTVERSION= 1.43.3
-PORTREVISION?= 1
+PORTREVISION?= 2
CATEGORIES?= sysutils
MASTER_SITES= KERNEL_ORG/linux/kernel/people/tytso/${PORTNAME}/v${PORTVERSION}
@@ -91,7 +91,7 @@ post-patch::
@${REINPLACE_CMD} -e 's/<malloc\.h>/<stdlib.h>/' ${WRKSRC}/*/*.c
.if empty(PORT_OPTIONS:MALLTESTS)
.for i in \
- d_fallocate_blkmap \
+ d_fallocate_blkmap \
f_baddir \
f_bbfile \
f_convert_bmap \
@@ -136,10 +136,19 @@ post-patch::
.endfor
.endif
.endif
+# XXX remove these on the next revision
+.if ${MASTERDIR} == ${.CURDIR} && ${OPSYS} == FreeBSD && ${OSVERSION} >= 1100000 && ${PORTVERSION} == 1.43.3 && ${PORTREVISION} == 2
+.for i in u_mke2fs_opt_oddsize u_mke2fs_opt_offset
+ @${MV} ${WRKSRC}/tests/${i} ${WRKSRC}/tests/disabled_test-${i}
+.endfor
+.endif
+# Master port stuff that is not to be seen by the slave ports.
.if ${MASTERDIR} == ${.CURDIR}
+# NOTE: The previous .if block goes all the way to the end of the file.
+
.if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1100000
-BROKEN=self-test failures on FreeBSD 11+ hint to data corruption issues.
+BROKEN=Not ready for production on FreeBSD 11+, some e2undo cases are still failing.
.endif
pre-build:
@@ -211,6 +220,7 @@ post-install:
${INSTALL_DATA} ${WRKSRC}/${i} ${STAGEDIR}${DOCSDIR}
.endfor
.endif
+#
# the next line closes .if ${MASTERDIR} == ${.CURDIR}
.endif
Added: head/sysutils/e2fsprogs/files/patch-lib_ext2fs_unix__io.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/e2fsprogs/files/patch-lib_ext2fs_unix__io.c Sun Sep 11 10:26:24 2016 (r421812)
@@ -0,0 +1,23 @@
+commit d6cad379eb6c86ca58bf5b83a586577de412a2e6
+Author: Theodore Ts'o <tytso at mit.edu>
+Date: Sun Sep 11 00:25:48 2016 -0400
+
+ libext2fs: fix unaligned, multiblock writes in the unix_io handler
+
+ The read-modify-write code for the unaligned fallback code wasn't
+ working for multi-block writes. This was unmasked by FreeBSD 11-rc2,
+ since its malloc() is returning unaligned memory regions for large
+ memory regions.
+
+ Signed-off-by: Theodore Ts'o <tytso at mit.edu>
+
+--- lib/ext2fs/unix_io.c.orig 2016-09-02 04:17:32 UTC
++++ lib/ext2fs/unix_io.c
+@@ -300,6 +300,7 @@ static errcode_t raw_write_blk(io_channe
+ goto short_write;
+ size -= actual;
+ buf += actual;
++ location += actual;
+ }
+ return 0;
+
More information about the svn-ports-head
mailing list