Index: bsd.port.mk =================================================================== RCS file: /home/pcvs/ports/Mk/bsd.port.mk,v retrieving revision 1.518 diff -u -r1.518 bsd.port.mk --- bsd.port.mk 8 Nov 2005 09:02:51 -0000 1.518 +++ bsd.port.mk 18 Jan 2006 00:31:40 -0000 @@ -812,7 +812,7 @@ # INSTALLS_SHLIB # - If set, bsd.port.mk will automatically run ldconfig commands # from post-install and also add appropriate @exec/@unexec -# directives to directories listed in LDCONFIG_DIRS. +# directives to directories listed in LDCONFIG_DIRS (deprecated). # LDCONFIG_DIRS - List of directories to run ldconfig if INSTALLS_SHLIB is set. # Note that this is passed through sed just like the # rest of PLIST, so ${PLIST_SUB} substitutions also @@ -820,6 +820,17 @@ # %%PREFIX%% for ${PREFIX}, %%LOCALBASE%% for # ${LOCALBASE} and %%X11BASE%% for ${X11BASE}. # Default: %%PREFIX%%/lib +# USE_LDCONFIG - If set to "yes", it replaces the old variable INSTALLS_SHLIB. +# Otherwise, it can be set to a list of directories to be added to +# ${PREFIX}/libdata/ldconfig/${UNIQUENAME}. Note that this +# directory is used by ldconfig startup script, it is meant to +# replace ldconfig scripts installed by some ports as (sometimes) +# 000.${UNQUENAME}.sh. +# USE_LDCONFIG32 +# - Same as USE_LDCONFIG but the target file is +# ${PREFIX}/libdata/ldconfig32/${UNIQUENAME} instead. +# Note: that should only be used on 64-bit architectures. +# # DOCSDIR - Name of the directory to install the packages docs in. # Default: ${PREFIX}/share/doc/${PORTNAME} # EXAMPLESDIR - Name of the directory to install the packages examples in. @@ -1529,6 +1540,23 @@ .endif .endif +LDCONFIG_DIR= libdata/ldconfig +LDCONFIG32_DIR= libdata/ldconfig32 + +.if defined(USE_LDCONFIG) || defined(USE_LDCONFIG32) +.if ${OSVERSION} < 504105 || \ + (${OSVERSION} >= 700000 && ${OSVERSION} < 700012) || \ + (${OSVERSION} >= 600000 && ${OSVERSION} < 600104) +RUN_DEPENDS+= ${LOCALBASE}/${LDCONFIG_DIR}:${PORTSDIR}/misc/ldconfig_compat +.endif +.if defined(USE_LDCONFIG) && ${USE_LDCONFIG:L} == "yes" +USE_LDCONFIG= ${PREFIX}/lib +.endif +.if defined(USE_LDCONFIG32) && ${USE_LDCONFIG32:L} == "yes" +IGNORE= has USE_LDCONFIG set to yes, which is not correct +.endif +.endif + .if defined(USE_ICONV) LIB_DEPENDS+= iconv.3:${PORTSDIR}/converters/libiconv .endif @@ -3514,8 +3542,38 @@ .endif .endif -.if !target(run-ldconfig) -run-ldconfig: +.if !target(install-ldconfig-file) +install-ldconfig-file: +.if defined(USE_LDCONFIG) || defined(USE_LDCONFIG32) || defined(INSTALLS_SHLIB) +.if defined(USE_LDCONFIG) +.if !defined(INSTALL_AS_USER) + @${ECHO_MSG} "===> Running ldconfig" + ${LDCONFIG} -m ${USE_LDCONFIG} +.else + @${ECHO_MSG} "===> Running ldconfig (errors are ignored)" + -${LDCONFIG} -m ${USE_LDCONFIG} +.endif +.if ${USE_LDCONFIG:L} != "${PREFIX}/lib" + @${ECHO_MSG} "===> Installing ldconfig configuration file" + @${ECHO_CMD} ${USE_LDCONFIG} | ${TR} ' ' '\n' \ + > ${PREFIX}/${LDCONFIG_DIR}/${UNIQUENAME} + @${ECHO_CMD} ${LDCONFIG_DIR}/${UNIQUENAME} >> ${TMPPLIST} +.endif +.endif +.if defined(USE_LDCONFIG32) +.if !defined(INSTALL_AS_USER) + @${ECHO_MSG} "===> Running ldconfig" + ${LDCONFIG} -32 -m ${USE_LDCONFIG32} +.else + @${ECHO_MSG} "===> Running ldconfig (errors are ignored)" + -${LDCONFIG} -32 -m ${USE_LDCONFIG32} +.endif + @${ECHO_MSG} "===> Installing 32-bit ldconfig configuration file" + @${ECHO_CMD} ${USE_LDCONFIG32} | ${TR} ' ' '\n' \ + > ${PREFIX}/${LDCONFIG32_DIR}/${UNIQUENAME} + @${ECHO_CMD} ${LDCONFIG32_DIR}/${UNIQUENAME} >> ${TMPPLIST} +.endif +# This can be removed once, all ports have been converted to USE_LDCONFIG. .if defined(INSTALLS_SHLIB) .if !defined(INSTALL_AS_USER) @${ECHO_MSG} "===> Running ldconfig" @@ -3524,6 +3582,7 @@ @${ECHO_MSG} "===> Running ldconfig (errors are ignored)" -${LDCONFIG} -m ${LDCONFIG_RUNLIST} .endif +.endif .else @${DO_NADA} .endif @@ -3704,7 +3763,7 @@ pre-su-install-script do-install install-desktop-entries \ post-install post-install-script add-plist-info \ add-plist-docs add-plist-post install-rc-script compress-man \ - run-ldconfig fake-pkg security-check + install-ldconfig-file fake-pkg security-check _PACKAGE_DEP= install _PACKAGE_SEQ= package-message pre-package pre-package-script \ do-package post-package-script @@ -4861,6 +4920,7 @@ .for dir in ${PLIST_DIRS} @${ECHO_CMD} ${dir} | ${SED} ${PLIST_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} | ${SED} -e 's,^,@dirrm ,' >> ${TMPPLIST} .endfor +# To be removed once INSTALLS_SHLIB has been eradicated. .if defined(INSTALLS_SHLIB) && !defined(INSTALL_AS_USER) @${ECHO_CMD} "@exec ${LDCONFIG} -m ${LDCONFIG_PLIST}" >> ${TMPPLIST} @${ECHO_CMD} "@unexec ${LDCONFIG} -R" >> ${TMPPLIST} @@ -4868,6 +4928,24 @@ @${ECHO_CMD} "@exec ${LDCONFIG} -m ${LDCONFIG_PLIST} || ${TRUE}" >> ${TMPPLIST} @${ECHO_CMD} "@unexec ${LDCONFIG} -R || ${TRUE}" >> ${TMPPLIST} .endif +.if defined(USE_LDCONFIG) +.if !defined(INSTALL_AS_USER) + @${ECHO_CMD} "@exec ${LDCONFIG} -m ${USE_LDCONFIG}" >> ${TMPPLIST} + @${ECHO_CMD} "@unexec ${LDCONFIG} -R" >> ${TMPPLIST} +.else + @${ECHO_CMD} "@exec ${LDCONFIG} -m ${USE_LDCONFIG} || ${TRUE}" >> ${TMPPLIST} + @${ECHO_CMD} "@unexec ${LDCONFIG} -R || ${TRUE}" >> ${TMPPLIST} +.endif +.endif +.if defined(USE_LDCONFIG32) +.if !defined(INSTALL_AS_USER) + @${ECHO_CMD} "@exec ${LDCONFIG} -32 -m ${USE_LDCONFIG32}" >> ${TMPPLIST} + @${ECHO_CMD} "@unexec ${LDCONFIG} -32 -R" >> ${TMPPLIST} +.else + @${ECHO_CMD} "@exec ${LDCONFIG} -32 -m ${USE_LDCONFIG32} || ${TRUE}" >> ${TMPPLIST} + @${ECHO_CMD} "@unexec ${LDCONFIG} -32 -R || ${TRUE}" >> ${TMPPLIST} +.endif +.endif .if !defined(NO_FILTER_SHLIBS) .if (${PORTOBJFORMAT} == "aout") @${SED} -e 's,\(/lib.*\.so\.[0-9]*\)$$,\1.0,' ${TMPPLIST} > ${TMPPLIST}.tmp