ports/114679: Slight problem with make actual-package-depends in ports

Stephen Montgomery-Smith stephen at math.missouri.edu
Wed Jul 18 01:20:03 UTC 2007


>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 at 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:



More information about the freebsd-ports-bugs mailing list