ports/99491: bsd.port.mk has wrong RUN_DEPENDS for ldconfig_compat
Bill Fenner
fenner at chongo.dyndns.org
Mon Jun 26 14:20:22 UTC 2006
>Number: 99491
>Category: ports
>Synopsis: bsd.port.mk has wrong RUN_DEPENDS for ldconfig_compat
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Jun 26 14:20:18 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator: Bill Fenner
>Release: FreeBSD 5.4-RELEASE i386
>Organization:
AT&T Labs - Research
>Environment:
System: FreeBSD chongo.dyndns.org 5.4-RELEASE FreeBSD 5.4-RELEASE #0: Tue Dec 27 18:00:57 EST 2005 root at chongo.dyndns.org:/usr/obj/usr/src/sys/GENERIC i386
>Description:
When trying to upgrade mysql41-client, I consistently get an
error when it finds that it needs to install ldconfig_compat,
builds it, tries to install it and finds that it is already
installed.
>How-To-Repeat:
"make depends" in mysql41-client; see it say
===> mysql-client-4.1.20 depends on file: /usr/local/bin/libtool - found
===> mysql-client-4.1.20 depends on file: /usr/local/libdata/ldconfig - not found
===> Verifying install for /usr/local/libdata/ldconfig in /usr/ports/misc/ldconfig_compat
===> Installing for ldconfig_compat-1.0_7
===> Generating temporary packing list
===> Checking if misc/ldconfig_compat already installed
===> ldconfig_compat-1.0_7 is already installed
You may wish to ``make deinstall'' and install this port again
by ``make reinstall'' to upgrade it properly.
If you really wish to overwrite the old port of misc/ldconfig_compat
without deleting it first, set the variable "FORCE_PKG_REGISTER"
in your environment or the "make install" command line.
*** Error code 1
Stop in /usr/ports/misc/ldconfig_compat.
*** Error code 1
Stop in /usr/ports/databases/mysql41-client.
>Fix:
Fix bsd.port.mk to know how to depend on ldconfig_compat properly.
ldconfig_compat only installs one file: the rc.d file, which is
named differently on different OS versions, so in order to depend
on it the RUN_DEPENDS line will probably have to mimic the logic
in misc/ldconfig_compat/Makefile.
.if ${OSVERSION} < 504105 || \
(${OSVERSION} >= 700000 && ${OSVERSION} < 700012) || \
(${OSVERSION} >= 600000 && ${OSVERSION} < 600104)
RUN_DEPENDS+= ${LOCALBASE}/${LDCONFIG_DIR}:${PORTSDIR}/misc/ldconfig_compat
.endif
The file can be ${LOCALBASE}/etc/rc.d/ldconfig_compat,
/etc/rc.d/ldconfig_compat, or /etc/rc.d/000.ldconfig_compat.sh.
Apparently, on FreeBSD before 5.0, the LDCONFIG_DIR is installed
by the ldconfig_compat port, so the current bsd.port.mk logic works
on 4.x, but not 5.x or 6.x or 7.x.
Workaround: mkdir -p /usr/local/libdata/ldconfig
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list