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