From owner-freebsd-gnome@FreeBSD.ORG Fri Jun 11 20:20:05 2010 Return-Path: Delivered-To: gnome@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DEC9C106566B for ; Fri, 11 Jun 2010 20:20:04 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (unknown [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id CE6B08FC15 for ; Fri, 11 Jun 2010 20:20:04 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id o5BKK4Ka095564 for ; Fri, 11 Jun 2010 20:20:04 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id o5BKK4AS095563; Fri, 11 Jun 2010 20:20:04 GMT (envelope-from gnats) Date: Fri, 11 Jun 2010 20:20:04 GMT Message-Id: <201006112020.o5BKK4AS095563@freefall.freebsd.org> To: gnome@FreeBSD.org From: Sunpoet Hsieh Cc: Subject: Re: ports/147655: [PATCH] textproc/libxslt: remove USE_GETTEXT=yes X-BeenThere: freebsd-gnome@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Sunpoet Hsieh List-Id: GNOME for FreeBSD -- porting and maintaining List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2010 20:20:05 -0000 The following reply was made to PR ports/147655; it has been noted by GNATS. From: Sunpoet Hsieh To: ports@c0decafe.net Cc: freebsd-ports-bugs@freebsd.org, bug-followup@freebsd.org Subject: Re: ports/147655: [PATCH] textproc/libxslt: remove USE_GETTEXT=yes Date: Sat, 12 Jun 2010 04:17:54 +0800 On Fri, Jun 11, 2010 at 4:08 AM, wrote: > Helo, > > On Thu, Jun 10, 2010 at 9:27 AM, Sunpoet Hsieh wrot= e: >> On Thu, Jun 10, 2010 at 5:59 AM, ports@c0decafe.net = wrote: >>> On Mon, 07 Jun 2010 23:51:51 +0800, Sunpoet Po-Chuan Hsieh wrote: >>>> gettext dependency was added to libxslt if CRYPTO option is on (by >>>> default). However, libxslt does not link against gettext library if >>>> libgpg-error was built without NLS support (WITHOUT_NLS option). Thus = I >>>> think USE_GETTEXT should be removed. >>>> >>>> Dependency tree: >>>> libxslt ---> libgcrypt ---> libgpg-error ---> gettext >>>> =C2=A0 =C2=A0 =C2=A0depends on =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(conditional) >>> >>> I'm not sure it is that simple. >>> Consider the following: >>> gmake[3]: Entering directory `/build/usr/ports/devel/eggdbus/work/ >>> eggdbus-0.6/docs/man' >>> /usr/local/bin/xsltproc -nonet http://docbook.sourceforge.net/release/x= sl/ >>> current/manpages/docbook.xsl eggdbus-binding-tool.xml >>> /libexec/ld-elf.so.1: Shared object "libintl.so.8" not found, required = by >>> "libgcrypt.so.16" > >> For me, I build libgpg-error without gettext (WITHOUT_NLS=3Dyes), thus >> my libxslt does not require gettext. > > yes, but can WITHOUT_NLS guarantee that all dependencies are gettext safe= ? > > If so, we could just make it actually respect WITHOUT_NLS: > > --- Makefile.orig =C2=A0 =C2=A0 =C2=A0 2010-06-10 22:29:02.000000000 +030= 0 > +++ Makefile =C2=A0 =C2=A02010-06-10 22:31:57.000000000 +0300 > @@ -46,7 +46,9 @@ > > =C2=A0.if defined(WITH_CRYPTO) > =C2=A0LIB_DEPENDS+=3D =C2=A0gcrypt.16:${PORTSDIR}/security/libgcrypt > +.if !defined(WITHOUT_NLS) > =C2=A0USE_GETTEXT=3D =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 yes > +.endif > =C2=A0.else > =C2=A0CONFIGURE_ARGS+=3D--without-crypto > =C2=A0.endif > > But i still see some serious breakages potential: race conditions, etc. > > For the general use case, an implicit dependency might still be there. > > Only USE_GETTEXT +bumps are safe for all the possible scenarios. > > Just thoughts. > IMHO, for direct dependency, explicit declaration is required (ex: USE_GETTEXT=3Dyes). For indirect dependency, PORTVERSION bump is enough when shared library version changes. It is impractial to add all knobs which cover all combinations of indirect dependencies. If one of the dependencies requires gettext, gettext is already in the depends list. 'make all-depends-list' shows the list. Adding USE_GETTEXT to Makefile is needless. Even more, it complicates and misleads the port dependency. Think about A ---> B ---> gettext. Say that you add USE_GETTEXT to A's Makefile. Once B removes gettext from its dependencies (e.g. a newer version), both A and B are gettext-safe now. However, you still need gettext to build A due to the incorrect USE_GETTEXT= . Back to the libxslt case, I must emphasize that libxslt itself is gettext-s= afe. It requires gettext if and only if libgpg-error was built with gettext. At last, I do not see any serious breakages you mentioned. Would you please give out some examples? - Sunpoet