Date: Mon, 7 May 2007 17:30:12 +0200 (CEST) From: Thierry Thomas <thierry@FreeBSD.org> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/112497: Mk/bsd.port.mk: make ldconfig permanent for non-default prefixes. Message-ID: <20070507153012.A13CA1142F@graf.pompo.net> Resent-Message-ID: <200705071540.l47Fe4or099277@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 112497 >Category: ports >Synopsis: Mk/bsd.port.mk: make ldconfig permanent for non-default prefixes. >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Mon May 07 15:40:04 GMT 2007 >Closed-Date: >Last-Modified: >Originator: Thierry Thomas >Release: FreeBSD 6.2-STABLE i386 >Organization: Kabbale Eros >Environment: System: FreeBSD graf.pompo.net 6.2-STABLE FreeBSD 6.2-STABLE #0: Sun Jan 28 10:29:56 CET 2007 thierry@graf.pompo.net:/usr/obj/usr/src/sys/GRAF060511 i386 >Description: When a port installs shared libraries using a non-default PREFIX ldconfig registers these libraries, but this registration does not survive after a reboot, because the configuration file has not been written. >How-To-Repeat: E.g. install the port net/mpich2 (as a port or as a package). At the end of the installation, ldconfig is launched: ===> Running ldconfig /sbin/ldconfig -m /usr/local/mpich2/lib and you can check that the libraries are found by ldconfig -r | grep mpich2 search directories: /lib:/usr/lib:/usr/lib/compat:/usr/X11R6/lib:/usr/local/lib:...:/usr/local/mpich2/lib 1202:-lfmpich.0 => /usr/local/mpich2/lib/libfmpich.so.0 1203:-lmpich.0 => /usr/local/mpich2/lib/libmpich.so.0 But the file /usr/local/libdata/ldconfig/mpich2 does not exists, hence /usr/local/mpich2/lib won't be scanned by /etc/rc.d/ldconfig and after a reboot `ldconfig -r | grep mpich2' won't return anything. >Fix: The following patch defines the default prefix, and registers UNIQUENAME under LDCONFIG_DIR if the actual prefix is different: --- bsd.port.mk.diff begins here --- --- Mk/bsd.port.mk.orig Mon Apr 9 21:08:51 2007 +++ Mk/bsd.port.mk Mon May 7 16:53:06 2007 @@ -1402,11 +1402,14 @@ .endif .if defined(USE_X_PREFIX) PREFIX?= ${X11BASE_REL} +DEF_PREFIX= ${X11BASE_REL} .elif defined(USE_LINUX_PREFIX) PREFIX?= ${LINUXBASE_REL} +DEF_PREFIX= ${LINUXBASE_REL} NO_MTREE= yes .else PREFIX?= ${LOCALBASE_REL} +DEF_PREFIX= ${LOCALBASE_REL} .endif .if defined(USE_LINUX_PREFIX) @@ -3862,14 +3865,14 @@ ${CHROOT} ${DESTDIR} -${LDCONFIG} -m ${USE_LDCONFIG} .endif .endif -.if ${USE_LDCONFIG} != "${PREFIX}/lib" +.if (${USE_LDCONFIG} != "${PREFIX}/lib") || (${PREFIX} != ${DEF_PREFIX}) @${ECHO_MSG} "===> Installing ldconfig configuration file" .if defined(NO_LDCONFIG_MTREE) @${MKDIR} ${PREFIX}/${LDCONFIG_DIR} .endif @${ECHO_CMD} ${USE_LDCONFIG} | ${TR} ' ' '\n' \ - > ${PREFIX}/${LDCONFIG_DIR}/${UNIQUENAME} - @${ECHO_CMD} "@cwd" >> ${TMPPLIST} + > ${DEF_PREFIX}/${LDCONFIG_DIR}/${UNIQUENAME} + @${ECHO_CMD} "@cwd ${DEF_PREFIX}" >> ${TMPPLIST} @${ECHO_CMD} ${LDCONFIG_DIR}/${UNIQUENAME} >> ${TMPPLIST} .if defined(NO_LDCONFIG_MTREE) @${ECHO_CMD} "@unexec rmdir ${LDCONFIG_DIR} >/dev/null 2>&1 || true" >> ${TMPPLIST} --- bsd.port.mk.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070507153012.A13CA1142F>