Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Mar 2004 13:34:54 -0500 (EST)
From:      Mikhail Teterin <mi@aldan.algebra.com>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/63937: USE_GETTEXT is too specific
Message-ID:  <200403081834.i28IYsM3000495@250-217.customer.cloud9.net>
Resent-Message-ID: <200403081840.i28IeAiN070099@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         63937
>Category:       ports
>Synopsis:       USE_GETTEXT is too specific
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Mar 08 10:40:09 PST 2004
>Closed-Date:
>Last-Modified:
>Originator:     Mikhail Teterin
>Release:        FreeBSD 5.2-RELEASE i386
>Organization:
Virtual Estates, Inc.
>Environment:

>Description:

	Most (probably -- all) of the ports declaring
	USE_GETTEXT don't really care, which version of -lintl
	they get. If none is currently installed on the system,
	the latest and greatest, should, of course, be built.
	But if one is already present (and used by other ports,
	as is usually the case), there is no need to insist on
	the latest one to build another port.

	The simple patch below changes bsd.port.mk to treat a
	port's declaration of USE_GETTEXT=yes as a sign, that it
	will accept any library version. A port, which needs a
	particular feature, not present in the earlier gettext
	releases, can declare USE_GETTEXT=6 to insist on a
	particular major number.

	Some other variables in bsd.port.mk should, probably, get
	a similar treatment (USE_MESA?)?

	The current rigidity breaks the good old method of port
	building through make, forcing (coercing?) the use of good
	new portupgrade.

	Its only advantage is that it forces the port build to be
	closer to that on the ports-cluster -- not too useful, because
	the download of the cluster-built version of a port is available
	anyway.

>How-To-Repeat:

	Install the latest release of OS and the ports tree.
	Build kdebase3. Update the ports tree (through cvsup,
	for example). Try to build lynx-current -- or anything else that
	uses gettext.

	Make(1) will notice, that intl.6 is required and proceed to
	build it and install it. Upon trying to install, it will fail,
	because an earlier version is already installed.

	Portupgrade to the resque (if you happen to know about it)...

	Why? Lynx does not care, which version of gettext it is going
	to be linked against.

	The administrating user should be able to upgrade gettext, when
	she/he wants to -- not when he/she wants to build another package.

>Fix:

Index: bsd.port.mk
===================================================================
RCS file: /home/ncvs/ports/Mk/bsd.port.mk,v
retrieving revision 1.484
diff -U2 -r1.484 bsd.port.mk
--- bsd.port.mk	4 Feb 2004 04:27:04 -0000	1.484
+++ bsd.port.mk	8 Mar 2004 18:33:27 -0000
@@ -1669,5 +1669,9 @@
 
 .if defined(USE_GETTEXT)
-LIB_DEPENDS+=	intl.6:${PORTSDIR}/devel/gettext
+.	if ${USE_GETTEXT:L} == "yes"
+LIB_DEPENDS+=	intl:${PORTSDIR}/devel/gettext
+.	else
+LIB_DEPENDS+=	intl.${USE_GETTEXT}:${PORTSDIR}/devel/gettext
+.	endif
 .endif
 
>Release-Note:
>Audit-Trail:
>Unformatted:



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