Date: Tue, 17 Jul 2007 20:17:04 -0500 (CDT) From: Stephen Montgomery-Smith <stephen@math.missouri.edu> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/114679: Slight problem with make actual-package-depends in ports Message-ID: <200707180117.l6I1H4rt090737@cauchy.math.missouri.edu> Resent-Message-ID: <200707180120.l6I1K3ZD013745@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 114679 >Category: ports >Synopsis: Slight problem with make actual-package-depends in ports >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Jul 18 01:20:02 GMT 2007 >Closed-Date: >Last-Modified: >Originator: Stephen Montgomery-Smith >Release: FreeBSD 6.2-STABLE i386 >Organization: >Environment: System: FreeBSD cauchy 6.2-STABLE FreeBSD 6.2-STABLE #0: Tue Jul 17 13:10:02 CDT 2007 stephen@cauchy:/usr/obj/usr/src/sys/cauchy i386 >Description: After you have made and installed a port, but don't clean it, and then made a bunch of other ports, if you go back to the original port and then do "make package", then +CONTENTS can be a bit messed up for the package. This is because the creation of other ports might disturb _LIB_RUN_DEPENDS and might put in some extra entries in +CONTENTS. This happens to me because I make all my ports on one machine and then copy them as packages to other machines. Then on the other machines, the structure of /var/db/pkg gets a bit messed up and pkg_delete -r malfunctions. It seems to me that the cure is to slightly change "make actual-package-depends" so that if the port is already installed, it just uses +CONTENTS. >How-To-Repeat: >Fix: --- bsd.port.mk-old 2007-07-17 19:31:08.000000000 -0500 +++ bsd.port.mk 2007-07-17 19:29:16.000000000 -0500 @@ -5485,7 +5485,9 @@ done ACTUAL-PACKAGE-DEPENDS?= \ - if [ "${_LIB_RUN_DEPENDS}" != " " ]; then \ + if [ -e ${PKG_DBDIR}/${PKGNAME}/+CONTENTS ]; then \ + ${AWK} -F '( |:)' 'BEGIN { pkgname="broken_contents" } /@pkgdep / { pkgname=$$2 } /@comment DEPORIGIN:/ { printf "%s:%s\n", pkgname, $$3; pkgname="broken_contents" }' ${PKG_DBDIR}/${PKGNAME}/+CONTENTS; \ + elif [ "${_LIB_RUN_DEPENDS}" != " " ]; then \ origins=$$(for pkgname in ${PKG_DBDIR}/*; do \ if [ -e $$pkgname/+CONTENTS ]; then \ ${ECHO_CMD} $${pkgname\#\#*/}; \ >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200707180117.l6I1H4rt090737>