Index: bsd.port.mk =================================================================== RCS file: /usr/home/ncvs/ports/Mk/bsd.port.mk,v retrieving revision 1.486 diff -u -r1.486 bsd.port.mk --- bsd.port.mk 3 Apr 2004 23:59:50 -0000 1.486 +++ bsd.port.mk 7 Apr 2004 10:43:17 -0000 @@ -869,13 +869,11 @@ # to turn them off (default: ${ECHO_CMD}). # PATCH_DEBUG - If set, print out more information about the patches as # it attempts to apply them. -# PKG_DBDIR - Where package installation is recorded; this directory -# must not contain anything else (default: /var/db/pkg). # PORT_DBDIR - Where port configuration options are recorded # (default: /var/db/ports) # NO_PKG_REGISTER - Don't register a port installation as a package. # FORCE_PKG_REGISTER - If set, it will overwrite any existing package -# registration information in ${PKG_DBDIR}/${PKGNAME}. +# registration information. # NO_DEPENDS - Don't verify build of dependencies. # NO_CHECKSUM - Don't verify the checksum. Typically used when # when you noticed the distfile you just fetched has @@ -1715,7 +1713,6 @@ LIB_DEPENDS+= GL.14:${PORTSDIR}/graphics/mesagl .endif XAWVER= 6 -PKG_IGNORE_DEPENDS?= '^XFree86-3\.' .else .if defined(USE_IMAKE) BUILD_DEPENDS+= ${X11BASE}/lib/X11/config/date.def:${PORTSDIR}/devel/imake-4 @@ -1725,7 +1722,6 @@ USE_XLIB= yes .endif XAWVER= 7 -PKG_IGNORE_DEPENDS?= 'this_port_does_not_exist' .endif PLIST_SUB+= XAWVER=${XAWVER} @@ -2096,37 +2092,14 @@ PKGORIGIN?= ${PKGCATEGORY}/${PORTDIRNAME} .endif -.if exists(${LOCALBASE}/sbin/pkg_info) -PKG_CMD?= ${LOCALBASE}/sbin/pkg_create -PKG_ADD?= ${LOCALBASE}/sbin/pkg_add -PKG_DELETE?= ${LOCALBASE}/sbin/pkg_delete -PKG_INFO?= ${LOCALBASE}/sbin/pkg_info -PKG_VERSION?= ${LOCALBASE}/sbin/pkg_version -.elif ${OSVERSION} < 460102 && ${PKGORIGIN} != "sysutils/pkg_install" -BUILD_DEPENDS+= ${LOCALBASE}/sbin/pkg_info:${PORTSDIR}/sysutils/pkg_install -PKG_CMD?= ${LOCALBASE}/sbin/pkg_create -PKG_ADD?= ${LOCALBASE}/sbin/pkg_add -PKG_DELETE?= ${LOCALBASE}/sbin/pkg_delete -PKG_INFO?= ${LOCALBASE}/sbin/pkg_info -PKG_VERSION?= ${LOCALBASE}/sbin/pkg_version -.else -PKG_CMD?= /usr/sbin/pkg_create -PKG_ADD?= /usr/sbin/pkg_add -PKG_DELETE?= /usr/sbin/pkg_delete -PKG_INFO?= /usr/sbin/pkg_info -PKG_VERSION?= /usr/sbin/pkg_version -.endif - -# Does the pkg_create tool support conflict checking? -# XXX Slow? -.if !defined(PKGINSTALLVER) -PKGINSTALLVER!= ${PKG_INFO} -P 2>/dev/null | ${SED} -e 's/.*: //' -.endif -.if ${PKGINSTALLVER} < 20030417 +PKG_CREATE?= /root/bin/pkg_create +PKG_ADD?= /root/bin/pkg_add +PKG_DELETE?= /root/bin/pkg_delete +PKG_INFO?= /root/bin/pkg_info + DISABLE_CONFLICTS= YES -.endif .if !defined(PKG_ARGS) -PKG_ARGS= -v -c -${COMMENT:Q} -d ${DESCR} -f ${TMPPLIST} -p ${PREFIX} -P "`cd ${.CURDIR} && ${MAKE} package-depends | ${GREP} -v -E ${PKG_IGNORE_DEPENDS} | sort -u`" ${EXTRA_PKG_ARGS} $${_LATE_PKG_ARGS} +PKG_ARGS= -v -c ${COMMENT:Q} -d ${DESCR} -f ${TMPPLIST} -p ${PREFIX} `cd ${.CURDIR} && ${MAKE} package-depends-args` ${EXTRA_PKG_ARGS} $${_LATE_PKG_ARGS} .if !defined(NO_MTREE) PKG_ARGS+= -m ${MTREE_FILE} .endif @@ -2137,6 +2110,11 @@ PKG_ARGS+= -C "${CONFLICTS}" .endif .endif +.if defined(FORCE_PKG_REGISTER) +PKG_FORCE_ARG= -f +.else +PKG_FORCE_ARG= +.endif .if defined(PKG_NOCOMPRESS) PKG_SUFX?= .tar .else @@ -2146,8 +2124,6 @@ PKG_SUFX?= .tgz .endif .endif -# where pkg_add records its dirty deeds. -PKG_DBDIR?= /var/db/pkg MOTIFLIB?= -L${X11BASE}/lib -lXm -lXp @@ -2654,7 +2630,7 @@ CONFIGURE_LOG?= config.log # A default message to print if do-configure fails. -CONFIGURE_FAIL_MESSAGE?= "Please report the problem to ${MAINTAINER} [maintainer] and attach the \"${CONFIGURE_WRKSRC}/${CONFIGURE_LOG}\" including the output of the failure of your make command. Also, it might be a good idea to provide an overview of all packages installed on your system (e.g. an \`ls ${PKG_DBDIR}\`)." +CONFIGURE_FAIL_MESSAGE?= "Please report the problem to ${MAINTAINER} [maintainer] and attach the \"${CONFIGURE_WRKSRC}/${CONFIGURE_LOG}\" including the output of the failure of your make command. Also, it might be a good idea to provide an overview of all packages installed on your system (i.e. \`pkg_info\`)." .if defined(GNU_CONFIGURE) # Maximum command line length @@ -3085,7 +3061,7 @@ # Check if the port is listed in the vulnerability database -.if ${PKGINSTALLVER} < 20040125 || ${OSVERSION} < 420001 || ${OSVERSION} >= 500000 && ${OSVERSION} < 500014 +.if ${OSVERSION} < 420001 || ${OSVERSION} >= 500000 && ${OSVERSION} < 500014 DISABLE_VULNERABILITIES= yes .endif @@ -3494,7 +3470,7 @@ if [ -f ${PKGMESSAGE} ]; then \ _LATE_PKG_ARGS="$${_LATE_PKG_ARGS} -D ${PKGMESSAGE}"; \ fi; \ - if ${PKG_CMD} ${PKG_ARGS} ${PKGFILE}; then \ + if ${PKG_CREATE} ${PKG_ARGS} ${PKGFILE}; then \ if [ -d ${PACKAGES} ]; then \ cd ${.CURDIR} && eval ${MAKE} $${__softMAKEFLAGS} package-links; \ fi; \ @@ -3820,7 +3796,7 @@ _BUILD_SEQ= build-message pre-build pre-build-script do-build \ post-build post-build-script _INSTALL_DEP= build -_INSTALL_SEQ= install-message check-conflicts \ +_INSTALL_SEQ= install-message check-conflicts check-plist-conflicts \ run-depends lib-depends pre-install pre-install-script \ generate-plist check-already-installed _INSTALL_SUSEQ= check-umask install-mtree pre-su-install \ @@ -4034,7 +4010,7 @@ prfx=`${PKG_INFO} -q -p $${p} 2> /dev/null | ${SED} -ne '1s|^@cwd ||p'`; \ if [ "x${PREFIX}" = "x$${prfx}" ]; then \ ${ECHO_MSG} "===> Deinstalling $${p}"; \ - ${PKG_DELETE} -f $${p}; \ + ${PKG_DELETE} ${PKG_FORCE_ARG} $${p}; \ else \ ${ECHO_MSG} "===> $${p} has a different PREFIX: $${prfx}, skipping"; \ fi; \ @@ -4064,7 +4040,7 @@ if [ -n "$${deinstall_names}" ]; then \ for d in $${deinstall_names}; do \ ${ECHO_MSG} "===> Deinstalling $${d}"; \ - ${PKG_DELETE} -f $${d}; \ + ${PKG_DELETE} ${PKG_FORCE_ARG} $${d}; \ done; \ else \ ${ECHO_MSG} "===> ${PKGORIGIN} not installed, skipping"; \ @@ -4669,53 +4645,37 @@ # Package (recursive runtime) dependency list. Print out both directory names # and package names. -package-depends-list: -.if defined(CHILD_DEPENDS) || defined(LIB_DEPENDS) || defined(RUN_DEPENDS) || defined(DEPENDS) - @${PACKAGE-DEPENDS-LIST} -.endif - -PACKAGE-DEPENDS-LIST?= \ - if [ "${CHILD_DEPENDS}" ]; then \ - installed=$$(${PKG_INFO} -qO ${PKGORIGIN} 2>/dev/null || \ - ${TRUE}); \ - if [ "$$installed" ]; then \ - break; \ - fi; \ - if [ -z "$$installed" ]; then \ - installed="${PKGNAME}"; \ - fi; \ - for pkgname in $$installed; do \ - ${ECHO_CMD} "$$pkgname ${.CURDIR} ${PKGORIGIN}"; \ - done; \ - fi; \ - checked="${PARENT_CHECKED}"; \ - for dir in $$(${ECHO_CMD} "${LIB_DEPENDS} ${RUN_DEPENDS}" | ${SED} -e 'y/ /\n/' | ${CUT} -f 2 -d ':') $$(${ECHO_CMD} ${DEPENDS} | ${SED} -e 'y/ /\n/' | ${CUT} -f 1 -d ':'); do \ - dir=$$(${REALPATH} $$dir); \ - if [ -d $$dir ]; then \ - if (${ECHO_CMD} $$checked | ${GREP} -qwv "$$dir"); then \ - childout=$$(cd $$dir; ${MAKE} CHILD_DEPENDS=yes PARENT_CHECKED="$$checked" package-depends-list); \ - set -- $$childout; \ - childdir=""; \ - while [ $$\# != 0 ]; do \ - childdir="$$childdir $$2"; \ - ${ECHO_CMD} "$$1 $$2 $$3"; \ - shift 3; \ - done; \ - checked="$$dir $$childdir $$checked"; \ - fi; \ - else \ - ${ECHO_MSG} "${PKGNAME}: \"$$dir\" non-existent -- dependency list incomplete" >&2; \ - fi; \ - done - # Print out package names. package-depends: -.if ${OSVERSION} >= 460102 || exists(${LOCALBASE}/sbin/pkg_info) - @${PACKAGE-DEPENDS-LIST} | ${AWK} '{print $$1":"$$3}' -.else - @${PACKAGE-DEPENDS-LIST} | ${AWK} '{print $$1}' -.endif + @for i in ${LIB_DEPENDS}; do \ + pkgdep="$$pkgdep -S `${ECHO} $$i | ${SED} -e 's/:.*//'`"; \ + done; \ + for i in ${RUN_DEPENDS}; do \ + pkgdep="$$pkgdep -W `${ECHO} $$i | ${SED} -e 's/:.*//'`"; \ + done; \ + if [ "$$pkgdep" != "" ]; then \ + ${PKG_INFO} -q $$pkgdep; \ + fi | sort -u + +package-depends-args: + @for i in ${LIB_DEPENDS}; do \ + pkgdep=`${ECHO} $$i | ${SED} -e 's/:.*//'`; \ + ${ECHO} "-L $$pkgdep"; \ + done; \ + for i in ${RUN_DEPENDS}; do \ + pkgdep=`${ECHO} $$i | ${SED} -e 's/:.*//'`; \ + ${ECHO} "-R $$pkgdep"; \ + done | sort -u + +check-plist-conflicts: + @if (conflicts=$$( (${ECHO} "@cwd ${PREFIX}"; ${ECHO} "@name ${PKGNAME}"; \ + ${SED} ${PLIST_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} ${PLIST}) | \ + ${PKG_INFO} -q -O - ) ); then \ + (${ECHO_MSG} "WARNING: This port will overwrite some" \ + "files installed by the following package(s):" \ + $${conflicts:-"unknown"}; false) \ + fi # Build packages for port and dependencies @@ -4989,50 +4949,8 @@ .if !target(fake-pkg) fake-pkg: .if !defined(NO_PKG_REGISTER) - @if [ ! -d ${PKG_DBDIR} ]; then ${RM} -f ${PKG_DBDIR}; ${MKDIR} ${PKG_DBDIR}; fi - @${RM} -f /tmp/${PKGNAME}-required-by -.if defined(FORCE_PKG_REGISTER) - @if [ -e ${PKG_DBDIR}/${PKGNAME}/+REQUIRED_BY ]; then \ - ${CP} ${PKG_DBDIR}/${PKGNAME}/+REQUIRED_BY /tmp/${PKGNAME}-required-by; \ - fi - @${RM} -rf ${PKG_DBDIR}/${PKGNAME} -.endif - @if [ ! -d ${PKG_DBDIR}/${PKGNAME} ]; then \ - ${ECHO_MSG} "===> Registering installation for ${PKGNAME}"; \ - ${MKDIR} ${PKG_DBDIR}/${PKGNAME}; \ - ${PKG_CMD} ${PKG_ARGS} -O ${PKGFILE} > ${PKG_DBDIR}/${PKGNAME}/+CONTENTS; \ - ${CP} ${DESCR} ${PKG_DBDIR}/${PKGNAME}/+DESC; \ - ${ECHO_CMD} ${COMMENT:Q} > ${PKG_DBDIR}/${PKGNAME}/+COMMENT; \ - if [ -f ${PKGINSTALL} ]; then \ - ${CP} ${PKGINSTALL} ${PKG_DBDIR}/${PKGNAME}/+INSTALL; \ - fi; \ - if [ -f ${PKGDEINSTALL} ]; then \ - ${CP} ${PKGDEINSTALL} ${PKG_DBDIR}/${PKGNAME}/+DEINSTALL; \ - fi; \ - if [ -f ${PKGREQ} ]; then \ - ${CP} ${PKGREQ} ${PKG_DBDIR}/${PKGNAME}/+REQUIRE; \ - fi; \ - if [ -f ${PKGMESSAGE} ]; then \ - ${CP} ${PKGMESSAGE} ${PKG_DBDIR}/${PKGNAME}/+DISPLAY; \ - fi; \ - for dep in `${PKG_INFO} -qf ${PKGNAME} | ${GREP} -w ^@pkgdep | ${AWK} '{print $$2}' | sort -u`; do \ - if [ -d ${PKG_DBDIR}/$$dep -a -z `${ECHO_CMD} $$dep | ${GREP} -E ${PKG_IGNORE_DEPENDS}` ]; then \ - if ! ${GREP} ^${PKGNAME}$$ ${PKG_DBDIR}/$$dep/+REQUIRED_BY \ - >/dev/null 2>&1; then \ - ${ECHO_CMD} ${PKGNAME} >> ${PKG_DBDIR}/$$dep/+REQUIRED_BY; \ - fi; \ - fi; \ - done; \ - fi -.if !defined(NO_MTREE) - @if [ -f ${MTREE_FILE} ]; then \ - ${CP} ${MTREE_FILE} ${PKG_DBDIR}/${PKGNAME}/+MTREE_DIRS; \ - fi -.endif - @if [ -e /tmp/${PKGNAME}-required-by ]; then \ - ${CAT} /tmp/${PKGNAME}-required-by >> ${PKG_DBDIR}/${PKGNAME}/+REQUIRED_BY; \ - ${RM} -f /tmp/${PKGNAME}-required-by; \ - fi + @${ECHO_MSG} "===> Registering installation for ${PKGNAME}" + @${PKG_CREATE} ${PKG_ARGS} -O ${PKGNAME} | ${PKG_ADD} ${PKG_FORCE_ARG} -O .else @${DO_NADA} .endif