ports/54988: [non-maintainer] usage of NO_DESCRIBE build variable breaks 'make index' for non-root

Mark Linimon linimon at lonesome.com
Mon Jul 28 20:10:19 UTC 2003


>Number:         54988
>Category:       ports
>Synopsis:       [non-maintainer] usage of NO_DESCRIBE build variable breaks 'make index' for non-root
>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:   Mon Jul 28 13:10:09 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator:     Mark Linimon
>Release:        FreeBSD-
>Organization:
FreeBSD
>Environment:
System: FreeBSD lonesome.lonesome.com 4.8-STABLE FreeBSD 4.8-STABLE #1: Sun Jul 13 23:03:01 CDT 2003 root at lonesome.lonesome.com:/usr/src/sys/compile/MULTIMEDIA i386
>Description:
	Recently several people have reported the inability to run
	an overall ports 'make index' under certain conditions.  I have
	isolated the conditions: 1) you must not be running as root;
	2) you must not have previously either done 'make index' as root,
	or installed the 2 offending ports as root.  (Note: to understand
	the following, you must understand that 'cd /usr/ports; make index'
	descends into each port directory and there does a 'make describe'.
	The error is in the two individual 'make describe' repsonses.)
>How-To-Repeat:
	(with system meeting above conditions, and as non-root): either
	cd /usr/ports/net/bind9-dlz; make describe, or
	cd /usr/ports/net/powerdns; make describe.
>Fix:
	The underlying problem is that the ports are attempting to create
	the (auxiliary) Makefile.inc file to hold user preferences even
	when just being asked to output information via 'make describe'.
	I do not understand what the following logic is attempting to do,
	so I can't offer a solution, but IMHO it must not assume that it
	can create Makefile.inc if it is not already created -- at least
	for the purposes of running 'make describe'.  (NB: the underlying
	logic in the two ports is the same).

# use user config if possible
.if exists(${WRKDIRPREFIX}${.CURDIR}/Makefile.inc)
.include "${WRKDIRPREFIX}${.CURDIR}/Makefile.inc"
.else
.if defined(BATCH)
# default package, can be configured in /etc/make.conf
BINDDLZ_OPTIONS?=	\"OpenSSL\" \"PostgreSQL\" \"FileSystem\"
.endif
# make INDEX match
NO_DESCRIBE=yes
.endif

[ ... elided for clarity ...]

.if defined(NO_DESCRIBE)
describe:
.if defined(BATCH)
	@ ${SETENV} ${SCRIPTS_ENV} ${SH} ${FILESDIR}/configure.bind9-dlz
.endif
	@cd ${.CURDIR} && ${MAKE} ${__softMAKEFLAGS} BATCH=yes ${.TARGET}
.endif

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list