Subject: pkg/29741: run-depends-list target documented to be recursive, but isn't
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <chap0@cs.purdue.edu>
List: pkgsrc-bugs
Date: 03/19/2005 16:05:00
>Number:         29741
>Category:       pkg
>Synopsis:       run-depends-list target documented to be recursive, but isn't
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          doc-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 19 16:05:00 +0000 2005
>Originator:     Chapman Flack
>Release:        2.0 (most recent pkgsrc.tar.gz)
>Organization:
>Environment:
platform independent
>Description:
The comment at line 3916 in bsd.pkg.mk (1.1597) for run-depends-list says

# Show (recursively) all the packages this package depends on.

but the behavior is opposite.  The comment should read:

# Show (non-recursively) the packages this package directly depends on.

The behavior change was deliberate (in 1.435) so it's the comment that needs to be fixed.

I also wonder if the behavior change in 1.1435 made superfluous various ${SORT} -u filters on the output of run-depends-list.  Here is a patch that fixes the comment and removes the sort -u's, however, the comment fix is the only part I'm certain of.
>How-To-Repeat:

>Fix:
*** bsd.pkg.mk.1.1597	Wed Mar  2 22:08:20 2005
--- bsd.pkg.mk		Sat Mar 19 10:56:09 2005
***************
*** 737,743 ****
  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`"
  .  if defined(CONFLICTS) && (${PKG_INSTALLATION_TYPE} == "overwrite")
  PKG_ARGS_COMMON+=	-C "${CONFLICTS}"
  .  endif
--- 737,743 ----
  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`"
  .  if defined(CONFLICTS) && (${PKG_INSTALLATION_TYPE} == "overwrite")
  PKG_ARGS_COMMON+=	-C "${CONFLICTS}"
  .  endif
***************
*** 3913,3919 ****
  	@${ECHO} '${PKGNAME:S/&/\&amp;/g:S/>/\&gt;/g:S/</\&lt;/g}</a>: <TD>'${COMMENT:S/&/\&amp;/g:S/>/\&gt;/g:S/</\&lt;/g:Q}
  .endif # !target(make-readme-html-help)
  
! # Show (recursively) all the packages this package depends on.
  # If PACKAGE_DEPENDS_WITH_PATTERNS is set, print as pattern (if possible)
  PACKAGE_DEPENDS_WITH_PATTERNS?=true
  .PHONY: run-depends-list
--- 3913,3919 ----
  	@${ECHO} '${PKGNAME:S/&/\&amp;/g:S/>/\&gt;/g:S/</\&lt;/g}</a>: <TD>'${COMMENT:S/&/\&amp;/g:S/>/\&gt;/g:S/</\&lt;/g:Q}
  .endif # !target(make-readme-html-help)
  
! # Show (non-recursively) the packages this package directly depends on.
  # If PACKAGE_DEPENDS_WITH_PATTERNS is set, print as pattern (if possible)
  PACKAGE_DEPENDS_WITH_PATTERNS?=true
  .PHONY: run-depends-list
***************
*** 4114,4120 ****
  	esac;								\
  	${ECHO_N} "|";							\
  	if [ "${DEPENDS}" != "" ]; then					\
! 		cd ${.CURDIR} && ${ECHO_N} `${MAKE} ${MAKEFLAGS} run-depends-list | ${SORT} -u`; \
  	fi;								\
  	${ECHO_N} "|";							\
  	if [ "${ONLY_FOR_ARCHS}" = "" ]; then				\
--- 4114,4120 ----
  	esac;								\
  	${ECHO_N} "|";							\
  	if [ "${DEPENDS}" != "" ]; then					\
! 		cd ${.CURDIR} && ${ECHO_N} `${MAKE} ${MAKEFLAGS} run-depends-list`; \
  	fi;								\
  	${ECHO_N} "|";							\
  	if [ "${ONLY_FOR_ARCHS}" = "" ]; then				\
***************
*** 4256,4262 ****
  print-run-depends-list:
  .  if !empty(DEPENDS)
  	@${ECHO_N} 'This package requires package(s) "'
! 	@${ECHO_N} `${MAKE} ${MAKEFLAGS} run-depends-list | ${SORT} -u`
  	@${ECHO} '" to run.'
  .  endif
  .endif
--- 4256,4262 ----
  print-run-depends-list:
  .  if !empty(DEPENDS)
  	@${ECHO_N} 'This package requires package(s) "'
! 	@${ECHO_N} `${MAKE} ${MAKEFLAGS} run-depends-list`
  	@${ECHO} '" to run.'
  .  endif
  .endif
***************
*** 4703,4709 ****
  	yes)								\
  		${ECHO_MSG} "${_PKGSRC_IN}> Registering installation for ${PKGNAME}"; \
  		${PKG_CREATE} ${PKG_ARGS_INSTALL} -O ${PKGFILE} > ${PKG_DB_TMPDIR}/+CONTENTS; \
! 		list="`${MAKE} ${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" ; \
--- 4703,4709 ----
  	yes)								\
  		${ECHO_MSG} "${_PKGSRC_IN}> Registering installation for ${PKGNAME}"; \
  		${PKG_CREATE} ${PKG_ARGS_INSTALL} -O ${PKGFILE} > ${PKG_DB_TMPDIR}/+CONTENTS; \
! 		list="`${MAKE} ${MAKEFLAGS} run-depends-list ECHO_MSG=${TRUE}`" ; \
  		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" ; \