diff options
author | mandree <mandree@FreeBSD.org> | 2016-09-11 18:26:24 +0800 |
---|---|---|
committer | mandree <mandree@FreeBSD.org> | 2016-09-11 18:26:24 +0800 |
commit | 8baf3dac918b585c4bacbc9d438dfb5eec15b1e0 (patch) | |
tree | 6f76c2b74cfa6800f5614ae89fe183489d9d5395 /sysutils | |
parent | 539af9ddaa6add91499a75930e9ec0dd146904d4 (diff) | |
download | freebsd-ports-gnome-8baf3dac918b585c4bacbc9d438dfb5eec15b1e0.tar.gz freebsd-ports-gnome-8baf3dac918b585c4bacbc9d438dfb5eec15b1e0.tar.zst freebsd-ports-gnome-8baf3dac918b585c4bacbc9d438dfb5eec15b1e0.zip |
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)
Diffstat (limited to 'sysutils')
-rw-r--r-- | sysutils/e2fsprogs/Makefile | 16 | ||||
-rw-r--r-- | sysutils/e2fsprogs/files/patch-lib_ext2fs_unix__io.c | 23 |
2 files changed, 36 insertions, 3 deletions
diff --git a/sysutils/e2fsprogs/Makefile b/sysutils/e2fsprogs/Makefile index c31f6365fd8b..41c1e418b5ee 100644 --- a/sysutils/e2fsprogs/Makefile +++ b/sysutils/e2fsprogs/Makefile @@ -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 diff --git a/sysutils/e2fsprogs/files/patch-lib_ext2fs_unix__io.c b/sysutils/e2fsprogs/files/patch-lib_ext2fs_unix__io.c new file mode 100644 index 000000000000..fc03ebcd531f --- /dev/null +++ b/sysutils/e2fsprogs/files/patch-lib_ext2fs_unix__io.c @@ -0,0 +1,23 @@ +commit d6cad379eb6c86ca58bf5b83a586577de412a2e6 +Author: Theodore Ts'o <tytso@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@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; + |