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. 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