Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Sep 2016 22:39:22 +0800
From:      Kevin Lo <kevlo@FreeBSD.org>
To:        Matthias Andree <mandree@FreeBSD.org>
Cc:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   Re: svn commit: r421812 - in head/sysutils/e2fsprogs: . files
Message-ID:  <20160911143922.GA74275@ns.kevlo.org>
In-Reply-To: <201609111026.u8BAQPYK026695@repo.freebsd.org>
References:  <201609111026.u8BAQPYK026695@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Sep 11, 2016 at 10:26:25AM +0000, Matthias Andree wrote:
> 
> 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)

Hmm, TRYBROKEN=1 build seems doesn't work:

===>  License GPLv2 accepted by the user
Trying build of e2fsprogs-1.43.3_2 even though it is marked BROKEN.
===>  Found saved configuration for e2fsprogs-1.43.3_2
===>   e2fsprogs-1.43.3_2 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by e2fsprogs-1.43.3_2 for building
===>  Extracting for e2fsprogs-1.43.3_2
=> SHA256 Checksum OK for e2fsprogs-1.43.3.tar.xz.
===>  Patching for e2fsprogs-1.43.3_2
===>  Applying FreeBSD patches for e2fsprogs-1.43.3_2
mv: rename /usr/ports/sysutils/e2fsprogs/work/e2fsprogs-1.43.3/tests/u_mke2fs_opt_offset to /usr/ports/sysutils/e2fsprogs/work/e2fsprogs-1.43.3/tests/disabled_test-u_mke2fs_opt_offset/u_mke2fs_opt_offset: No such file or directory
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/sysutils/e2fsprogs
*** Error code 1

> 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@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;
> + 
> 
> 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160911143922.GA74275>