Subject: PKG_DEBUG_LEVEL>=1 breaks some targets
To: None <tech-pkg@NetBSD.org>
From: Kouichirou Hiratsuka <hira@po6.nsk.ne.jp>
List: tech-pkg
Date: 10/01/2004 18:18:40
Hello,

With PKG_DEBUG_LEVEL>=1, some targets (clean-depends, etc.) do
not work properly because mk/bsd.pkg.mk uses output of make(1)
at several places.  An expected output (e.g. directory list
which depends on the package) is mixed with a debug output.  

In this case, make(1) needs to call with `PKG_DEBUG_LEVEL=0',
I think.  A following patch may fix this problem.  It works
fine for me.  However, some debug outputs disappear...

Any other ideas?

best regards.
--
 Kouichirou Hiratsuka
   hira@po6.nsk.ne.jp

P.S. This problem was reported in PR pkg/24377.

Index: bsd.pkg.mk
===================================================================
RCS file: /cvsroot/pkgsrc/mk/bsd.pkg.mk,v
retrieving revision 1.1504
diff -u -r1.1504 bsd.pkg.mk
--- bsd.pkg.mk	1 Oct 2004 00:23:18 -0000	1.1504
+++ bsd.pkg.mk	1 Oct 2004 08:16:10 -0000
@@ -623,6 +623,8 @@
 _PKG_DEBUG_SCRIPT=	${SH} -x
 .endif
 
+_MAKE_WITHOUT_DEBUG=	${MAKE} PKG_DEBUG_LEVEL=0
+
 WRKSRC?=		${WRKDIR}/${DISTNAME}
 
 .if defined(NO_WRKSUBDIR)
@@ -901,7 +903,7 @@
 PKG_ARGS_COMMON=	-v -c -${COMMENT:Q}" " -d ${DESCR} -f ${PLIST}
 PKG_ARGS_COMMON+=	-l -b ${BUILD_VERSION_FILE} -B ${BUILD_INFO_FILE}
 PKG_ARGS_COMMON+=	-s ${SIZE_PKG_FILE} -S ${SIZE_ALL_FILE}
-PKG_ARGS_COMMON+=	-P "`${MAKE} ${MAKEFLAGS} run-depends-list | ${SORT} -u`"
+PKG_ARGS_COMMON+=	-P "`${_MAKE_WITHOUT_DEBUG} ${MAKEFLAGS} run-depends-list | ${SORT} -u`"
 .  if defined(CONFLICTS) && (${PKG_INSTALLATION_TYPE} == "overwrite")
 PKG_ARGS_COMMON+=	-C "${CONFLICTS}"
 .  endif
@@ -1642,7 +1644,7 @@
 	${_PKG_SILENT}${_PKG_DEBUG}					\
 	if [ -f ${PKGVULNDIR}/pkg-vulnerabilities ]; then			\
 		${ECHO_MSG} "${_PKGSRC_IN}> Checking for vulnerabilities in ${PKGNAME}"; \
-		vul=`${MAKE} ${MAKEFLAGS} check-vulnerable`;		\
+		vul=`${_MAKE_WITHOUT_DEBUG} ${MAKEFLAGS} check-vulnerable`; \
 		case "$$vul" in						\
 		"")	;;						\
 		*)	${ECHO} "$$vul";				\
@@ -1722,7 +1724,7 @@
 #
 _RECURSE_DEPENDS_DIRS=							\
 	function append_dirs(dir) {					\
-		command = "cd ../../" dir " && ${MAKE} show-depends-dirs"; \
+		command = "cd ../../" dir " && ${_MAKE_WITHOUT_DEBUG} show-depends-dirs"; \
 		command | getline tmp_dirs;				\
 		close(command);						\
 		if (tmp_dirs ~ /^$$/)					\
@@ -1823,10 +1825,10 @@
 show-needs-update:
 .  if defined(DEPENDS)
 	${_PKG_SILENT}${_PKG_DEBUG}					\
-	for i in `${MAKE} show-all-depends-dirs`; do			\
+	for i in `${_MAKE_WITHOUT_DEBUG} show-all-depends-dirs`; do	\
 		cd ${_PKGSRCDIR}/$$i;					\
-		want=`${MAKE} show-var VARNAME=PKGNAME`;		\
-		wild=`${MAKE} show-var VARNAME=PKGWILDCARD`;		\
+		want=`${_MAKE_WITHOUT_DEBUG} show-var VARNAME=PKGNAME`;	\
+		wild=`${_MAKE_WITHOUT_DEBUG} show-var VARNAME=PKGWILDCARD`; \
 		have=`${PKG_BEST_EXISTS} "$$wild" || ${TRUE}`;		\
 		if [ -z "$$have" ]; then				\
 			${ECHO} "$$i => (none) => needs install of $$want"; \
@@ -2849,7 +2851,7 @@
 	${_PKG_SILENT}${_PKG_DEBUG}					\
 	sos=`${EGREP} -h '^.*/lib[^/]+\.so$$' ${PLIST} || ${TRUE}`;	\
 	if [ "$$sos" != "" ]; then					\
-		shlib_type=`${MAKE} ${MAKEFLAGS} show-shlib-type`;	\
+		shlib_type=`${_MAKE_WITHOUT_DEBUG} ${MAKEFLAGS} show-shlib-type`; \
 		if [ "${SHLIB_PLIST_MODE}" = "0" ]; then 		\
 			${ECHO_MSG} "${_PKGSRC_IN}> [Automatic $$shlib_type shared object handling]"; \
 		fi;  							\
@@ -3608,7 +3610,7 @@
 clean-depends:
 .  if defined(BUILD_DEPENDS) || defined(DEPENDS)
 	${_PKG_SILENT}${_PKG_DEBUG}					\
-	for i in `${MAKE} ${MAKEFLAGS} show-all-depends-dirs-excl` ;\
+	for i in `${_MAKE_WITHOUT_DEBUG} ${MAKEFLAGS} show-all-depends-dirs-excl`; \
 	do 								\
 		cd ${.CURDIR}/../../$$i &&				\
 		${MAKE} ${MAKEFLAGS} CLEANDEPENDS=NO clean;		\
@@ -3663,9 +3665,9 @@
 
 fetch-list-recursive:
 	${_PKG_SILENT}${_PKG_DEBUG}					\
-	for dir in `${MAKE} ${MAKEFLAGS} show-all-depends-dirs`; do	\
+	for dir in `${_MAKE_WITHOUT_DEBUG} ${MAKEFLAGS} show-all-depends-dirs`; do \
 		(cd ../../$$dir &&					\
-		${MAKE} ${MAKEFLAGS} fetch-list-one-pkg			\
+		${_MAKE_WITHOUT_DEBUG} ${MAKEFLAGS} fetch-list-one-pkg	\
 		| ${AWK} '						\
 		/^[^#]/ { FoundSomething = 1 }				\
 		/^unsorted/ { gsub(/[[:space:]]+/, " \\\n\t") }		\
@@ -4034,7 +4036,7 @@
 	dir="${dep:C/[^:]*://:C/:.*$//}";				\
 	found=`${PKG_BEST_EXISTS} "$$pkg" || ${TRUE}`;			\
 	if [ "X$$REBUILD_DOWNLEVEL_DEPENDS" != "X" ]; then		\
-		pkgname=`cd $$dir ; ${MAKE} ${MAKEFLAGS} show-var VARNAME=PKGNAME`; \
+		pkgname=`cd $$dir ; ${_MAKE_WITHOUT_DEBUG} ${MAKEFLAGS} show-var VARNAME=PKGNAME`; \
 		if [ "X$$found" != "X" -a "X$$found" != "X$${pkgname}" ]; then \
 			${ECHO_MSG} "ignoring old installed package \"$$found\""; \
 			found="";					\
@@ -4076,7 +4078,7 @@
 .PHONY: build-depends-list
 .if !target(build-depends-list)
 build-depends-list:
-	@for dir in `${MAKE} ${MAKEFLAGS} show-all-depends-dirs-excl`;	\
+	@for dir in `${_MAKE_WITHOUT_DEBUG} ${MAKEFLAGS} show-all-depends-dirs-excl`; \
 	do								\
 		(cd ../../$$dir &&					\
 		${MAKE} ${MAKEFLAGS} package-name)			\
@@ -4167,11 +4169,11 @@
 	${ECHO_N} "|${MAINTAINER}|${CATEGORIES}|";			\
 	case "A${BUILD_DEPENDS}B${DEPENDS}C" in	\
 		ABC) ;;							\
-		*) cd ${.CURDIR} && ${ECHO_N} `${MAKE} ${MAKEFLAGS} build-depends-list | ${SORT} -u`;; \
+		*) cd ${.CURDIR} && ${ECHO_N} `${_MAKE_WITHOUT_DEBUG} ${MAKEFLAGS} build-depends-list | ${SORT} -u`;; \
 	esac;								\
 	${ECHO_N} "|";							\
 	if [ "${DEPENDS}" != "" ]; then					\
-		cd ${.CURDIR} && ${ECHO_N} `${MAKE} ${MAKEFLAGS} run-depends-list | ${SORT} -u`; \
+		cd ${.CURDIR} && ${ECHO_N} `${_MAKE_WITHOUT_DEBUG} ${MAKEFLAGS} run-depends-list | ${SORT} -u`; \
 	fi;								\
 	${ECHO_N} "|";							\
 	if [ "${ONLY_FOR_ARCHS}" = "" ]; then				\
@@ -4303,7 +4305,7 @@
 print-build-depends-list:
 .  if defined(BUILD_DEPENDS) || defined(DEPENDS)
 	@${ECHO_N} 'This package requires package(s) "'
-	@${ECHO_N} `${MAKE} ${MAKEFLAGS} build-depends-list | ${SORT} -u`
+	@${ECHO_N} `${_MAKE_WITHOUT_DEBUG} ${MAKEFLAGS} build-depends-list | ${SORT} -u`
 	@${ECHO} '" to build.'
 .  endif
 .endif
@@ -4313,7 +4315,7 @@
 print-run-depends-list:
 .  if defined(DEPENDS)
 	@${ECHO_N} 'This package requires package(s) "'
-	@${ECHO_N} `${MAKE} ${MAKEFLAGS} run-depends-list | ${SORT} -u`
+	@${ECHO_N} `${_MAKE_WITHOUT_DEBUG} ${MAKEFLAGS} run-depends-list | ${SORT} -u`
 	@${ECHO} '" to run.'
 .  endif
 .endif
@@ -4394,7 +4396,7 @@
 # dependencies are all installed.
 .PHONY: print-pkg-size-depends
 print-pkg-size-depends:
-	@pkglist=`${MAKE} ${MAKEFLAGS} run-depends-list`;		\
+	@pkglist=`${_MAKE_WITHOUT_DEBUG} ${MAKEFLAGS} run-depends-list`; \
 	if [ "X$${pkglist}" != "X" ]; then				\
 		${ECHO} $${pkglist}					\
 		| ${XARGS} -n 1 ${SETENV} ${PKG_BEST_EXISTS}		\
@@ -4522,7 +4524,7 @@
 	${_PKG_SILENT}${_PKG_DEBUG}\
 	${ECHO} '@comment $$'NetBSD'$$'
 	${_PKG_SILENT}${_PKG_DEBUG}\
-	shlib_type=`${MAKE} ${MAKEFLAGS} show-shlib-type`;		\
+	shlib_type=`${_MAKE_WITHOUT_DEBUG} ${MAKEFLAGS} show-shlib-type`; \
 	case $$shlib_type in 						\
 	"a.out")	genlinks=1 ;;					\
 	*)		genlinks=0 ;;					\
@@ -4695,8 +4697,8 @@
 	${_PKG_SILENT}${_PKG_DEBUG}					\
 	${ECHO} "_PKGTOOLS_VER=${PKGTOOLS_VERSION}" >> ${BUILD_INFO_FILE}
 	${_PKG_SILENT}${_PKG_DEBUG}					\
-	size_this=`${MAKE} ${MAKEFLAGS} print-pkg-size-this`;		\
-	size_depends=`${MAKE} ${MAKEFLAGS} print-pkg-size-depends`;	\
+	size_this=`${_MAKE_WITHOUT_DEBUG} ${MAKEFLAGS} print-pkg-size-this`; \
+	size_depends=`${_MAKE_WITHOUT_DEBUG} ${MAKEFLAGS} print-pkg-size-depends`; \
 	${ECHO} $$size_this >${SIZE_PKG_FILE};				\
 	${ECHO} $$size_this $$size_depends + p | ${DC} >${SIZE_ALL_FILE}
 	${_PKG_SILENT}${_PKG_DEBUG}					\
@@ -4742,7 +4744,7 @@
 				${CP} ${MESSAGE} ${_PKG_DBDIR}/${PKGNAME}/+DISPLAY; \
 			fi;						\
 		fi;							\
-		list="`${MAKE} ${MAKEFLAGS} run-depends-list ECHO_MSG=${TRUE} | ${SORT} -u`" ; \
+		list="`${_MAKE_WITHOUT_DEBUG} ${MAKEFLAGS} run-depends-list ECHO_MSG=${TRUE} | ${SORT} -u`" ; \
 		for realdep in `${ECHO} $$list | ${XARGS} -n 1 ${SETENV} ${PKG_BEST_EXISTS} | ${SORT} -u`; do \
 			if ${TEST} -z "$$realdep"; then			\
 				${ECHO} "$$dep not installed - dependency NOT registered" ; \