On Wed, Aug 23, 2017 at 04:54:31PM +0100, Stuart Henderson wrote:
> On 2017/08/01 09:33, Stuart Henderson wrote:
> > There is another way around it, using --with-data-packaging=archive, but
> > that breaks use within chroot (notably the php-intl module, but we might
> > also have a problem if we enable smtputf8 in postfix) unless the data
> > file is copied in. There is another way we could handle that, add a
> > second (and possibly third) copy of the data file to either icu4c or
> > to other packages using it, but that's not particularly appealing..
> > 
> > If anyone has other ideas of how to quieten this (er, maybe not a
> > strcmp in ld.so though.. :) please speak up!
> 
> In the absence of other ideas, here's an initial diff that installs
> a copy of the data file in the www chroot. There are various ways we
> could do this, this is the dumb-and-simple method of putting it in
> the main package, an alternative would be to add a subpackage just
> for this that the various php*-intl versions could depend on.

I am fine with it but I think this should be a subpackage. There aren't _that_
many ports that have a direct LIB_DEPENDS against icu4c so bumping should not
be that bad.


> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/textproc/icu4c/Makefile,v
> retrieving revision 1.64
> diff -u -p -r1.64 Makefile
> --- Makefile  26 Jul 2017 22:45:30 -0000      1.64
> +++ Makefile  23 Aug 2017 15:44:13 -0000
> @@ -7,7 +7,7 @@ COMMENT=              International Components for U
>  VERSION=             58.2
>  DISTNAME=            icu4c-${VERSION:S/./_/g}-src
>  PKGNAME=             icu4c-${VERSION}
> -REVISION=            4
> +REVISION=            5
>  
>  MAJ_V=                       ${VERSION:R}
>  SO_VERSION=          13.0
> @@ -36,7 +36,8 @@ USE_GMAKE=          Yes
>  CONFIGURE_STYLE=     gnu
>  CONFIGURE_ARGS=              --enable-static \
>                       --disable-renaming \
> -                     --disable-samples
> +                     --disable-samples \
> +                     --with-data-packaging=archive
>  # needs icu-le-hb
>  CONFIGURE_ARGS +=    --disable-layoutex
>  
> @@ -59,34 +60,25 @@ CXXFLAGS +=               -O1 -fno-stack-protector
>  .endif
>  
>  .include <bsd.port.arch.mk>
> -PKG_ARGS +=          -Dbe=0 -Dle=0
> -.if ${MACHINE_ARCH} == "arm" || ${MACHINE_ARCH} == "powerpc"
> -# XXX breaks icu in chroot (e.g. php-intl) because the dat file won't be 
> found
> -CONFIGURE_ARGS +=    --with-data-packaging=archive
> -.  if ${PROPERTIES:Mbe}
> -PKG_ARGS +=          -Dbe=1
> -TEST_ENV +=          ICU_DATA="${WRKBUILD}/data/out/build/icudt${MAJ_V}b"
> -.  else
> -PKG_ARGS +=          -Dle=1
> -TEST_ENV +=          ICU_DATA="${WRKBUILD}/data/out/build/icudt${MAJ_V}l"
> -.  endif
> -.endif
>  
> -# https://bugzilla.redhat.com/show_bug.cgi?id=889781
>  .if ${PROPERTIES:Mbe}
> +ENDIAN_DATA =                icudt${MAJ_V}b
> +# https://bugzilla.redhat.com/show_bug.cgi?id=889781
>  CONFIGURE_ENV +=     CPPFLAGS="-DU_IS_BIG_ENDIAN=1"
> +.else
> +ENDIAN_DATA =                icudt${MAJ_V}l
>  .endif
>  
> -TEST_DEPENDS=                ${BASE_PKGPATH}=${VERSION}
> +WWW_PREFIX =         ${TRUEPREFIX:S/\///}
> +SUBST_VARS +=                ENDIAN_DATA WWW_PREFIX
> +TEST_ENV +=          ICU_DATA="${WRKBUILD}/data/out/build/${ENDIAN_DATA}"
>  
> -# XXX prevent "WARNING: symbol(icudt58_dat) size mismatch"
> -.if ! ${PROPERTIES:Mclang} 
> -post-extract:
> -     sed -i 's/^DYNAMICCFLAGS = .*/& -finhibit-size-directive/' \
> -             ${WRKSRC}/stubdata/Makefile.in
> -.endif
> +TEST_DEPENDS=                ${BASE_PKGPATH}=${VERSION}
>  
>  post-install:
>       find ${PREFIX}/lib -type l -name 'libicu*.so*' -exec rm '{}' \;
> +     ${INSTALL_DATA_DIR} 
> ${WRKINST}/var/www/${TRUEPREFIX}/share/icu/${VERSION}/
> +     ${INSTALL_DATA} ${PREFIX}/share/icu/${VERSION}/${ENDIAN_DATA}.dat \
> +             ${WRKINST}/var/www/${TRUEPREFIX}/share/icu/${VERSION}/
>  
>  .include <bsd.port.mk>
> Index: pkg/PFRAG.be
> ===================================================================
> RCS file: pkg/PFRAG.be
> diff -N pkg/PFRAG.be
> --- pkg/PFRAG.be      17 Oct 2014 08:35:10 -0000      1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,2 +0,0 @@
> -@comment $OpenBSD: PFRAG.be,v 1.1 2014/10/17 08:35:10 ajacoutot Exp $
> -share/icu/${VERSION}/icudt${MAJ_V}b.dat
> Index: pkg/PFRAG.le
> ===================================================================
> RCS file: pkg/PFRAG.le
> diff -N pkg/PFRAG.le
> --- pkg/PFRAG.le      17 Oct 2014 08:35:10 -0000      1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,2 +0,0 @@
> -@comment $OpenBSD: PFRAG.le,v 1.1 2014/10/17 08:35:10 ajacoutot Exp $
> -share/icu/${VERSION}/icudt${MAJ_V}l.dat
> Index: pkg/PLIST
> ===================================================================
> RCS file: /cvs/ports/textproc/icu4c/pkg/PLIST,v
> retrieving revision 1.21
> diff -u -p -r1.21 PLIST
> --- pkg/PLIST 24 May 2017 15:44:42 -0000      1.21
> +++ pkg/PLIST 23 Aug 2017 15:44:13 -0000
> @@ -226,10 +226,15 @@ lib/pkgconfig/icu-uc.pc
>  @bin sbin/icupkg
>  share/icu/
>  share/icu/${VERSION}/
> +share/icu/${VERSION}/${ENDIAN_DATA}.dat
>  share/icu/${VERSION}/LICENSE
>  share/icu/${VERSION}/config/
>  share/icu/${VERSION}/config/mh-bsd-gcc
>  share/icu/${VERSION}/install-sh
>  share/icu/${VERSION}/mkinstalldirs
> -%%be%%
> -%%le%%
> +@cwd /var/www
> +${WWW_PREFIX}/
> +${WWW_PREFIX}/share/
> +${WWW_PREFIX}/share/icu/
> +${WWW_PREFIX}/share/icu/${VERSION}/
> +${WWW_PREFIX}/share/icu/${VERSION}/${ENDIAN_DATA}.dat
> 

-- 
Antoine

Reply via email to