ports/63937: USE_GETTEXT is too specific
Mikhail Teterin
mi at aldan.algebra.com
Mon Mar 8 18:40:10 UTC 2004
>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:
More information about the freebsd-ports-bugs
mailing list