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