From owner-freebsd-ports-bugs@FreeBSD.ORG Sat May 8 07:00:42 2004 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 734A716A4D4 for ; Sat, 8 May 2004 07:00:42 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id DFE5343D5A for ; Sat, 8 May 2004 07:00:33 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) i48E0VLS060150 for ; Sat, 8 May 2004 07:00:31 -0700 (PDT) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.11/8.12.11/Submit) id i48E0V6M060149; Sat, 8 May 2004 07:00:31 -0700 (PDT) (envelope-from gnats) Resent-Date: Sat, 8 May 2004 07:00:31 -0700 (PDT) Resent-Message-Id: <200405081400.i48E0V6M060149@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Oliver Eikemeier Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 957EC16A4CE for ; Sat, 8 May 2004 06:55:01 -0700 (PDT) Received: from fillmore.dyndns.org (port-212-202-49-130.reverse.qsc.de [212.202.49.130]) by mx1.FreeBSD.org (Postfix) with ESMTP id C709543D46 for ; Sat, 8 May 2004 06:55:00 -0700 (PDT) (envelope-from eikemeier@fillmore-labs.com) Received: from [172.16.0.2] (helo=fillmore-labs.com) by fillmore.dyndns.org with esmtp (Exim 4.33; FreeBSD) id 1BMSI6-0001bi-4b for FreeBSD-gnats-submit@FreeBSD.org; Sat, 08 May 2004 15:55:00 +0200 Message-Id: <409CE6B1.9040009@fillmore-labs.com> Date: Sat, 08 May 2004 15:54:57 +0200 From: Oliver Eikemeier To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/66389: [PATCH] bsd.port.mk: follow MOVED ports X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 May 2004 14:00:42 -0000 >Number: 66389 >Category: ports >Synopsis: [PATCH] bsd.port.mk: follow MOVED 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: Sat May 08 07:00:31 PDT 2004 >Closed-Date: >Last-Modified: >Originator: Oliver Eikemeier >Release: FreeBSD 4.10-STABLE i386 >Organization: Fillmore Labs - http://www.fillmore-labs.com >Environment: System: FreeBSD nuuk.fillmore-labs.com 4.10-STABLE >Description: This patch tries to find a port in MOVED if it is listed in _*DEPENDS but can't be found in the ports tree. This might lessen the possibility to break builds after repocopies, or at least give an indication what has happened. >How-To-Repeat: try RUN_DEPENDS+= R:${PORTSDIR}/math/R-letter or LIB_DEPENDS+= ldap.2:${PORTSDIR}/net/openldap2 >Fix: This patch needs some more testing, and is another example that bsd.ports.mk should be refactored: Index: bsd.port.mk =================================================================== RCS file: /home/ncvs/ports/Mk/bsd.port.mk,v retrieving revision 1.488 diff -u -r1.488 bsd.port.mk --- bsd.port.mk 19 Apr 2004 23:39:52 -0000 1.488 +++ bsd.port.mk 8 May 2004 13:43:09 -0000 @@ -1003,6 +1009,7 @@ .else INDEXFILE?= INDEX .endif +MOVEDFILE?= MOVED .if defined(USE_BZIP2) EXTRACT_SUFX?= .tar.bz2 .elif defined(USE_ZIP) @@ -4044,6 +4172,25 @@ fi; \ if [ $$notfound != 0 ]; then \ ${ECHO_MSG} "===> Verifying $$target for $$prog in $$dir"; \ + if [ ! -d "$$dir" -a -f "${PORTSDIR}/${MOVEDFILE}" ]; then \ + depends_origin=`${EXPR} "$$dir" : "${PORTSDIR}/\(.*\)"`; \ + if [ -n "$$depends_origin" ]; then \ + ${ECHO_MSG} "===> Searching for $$depends_origin:"; \ + depends_origin=`${AWK} -F\| -v follow="$$depends_origin" '\ + /^(\#|$$)/ {next} \ + $$1 == follow { \ + if (!follow) next; \ + follow = $$2; \ + print " >> " $$3 ": " $$4 " -> " \ + ($$2 ? $$2 : "deleted") > "/dev/stderr"; \ + } \ + END { print follow } \ + ' "${PORTSDIR}/${MOVEDFILE}"` 2>&1; \ + if [ -n "$$depends_origin" ]; then \ + dir="${PORTSDIR}/$$depends_origin"; \ + fi ; \ + fi ; \ + fi ; \ if [ ! -d "$$dir" ]; then \ ${ECHO_MSG} " >> No directory for $$prog. Skipping.."; \ else \ @@ -4100,6 +4247,25 @@ fi; \ if [ $$notfound != 0 ]; then \ ${ECHO_MSG} "===> Verifying $$target for $$lib in $$dir"; \ + if [ ! -d "$$dir" -a -f "${PORTSDIR}/${MOVEDFILE}" ]; then \ + depends_origin=`${EXPR} "$$dir" : "${PORTSDIR}/\(.*\)"`; \ + if [ -n "$$depends_origin" ]; then \ + ${ECHO_MSG} "===> Searching for $$depends_origin:"; \ + depends_origin=`${AWK} -F\| -v follow="$$depends_origin" '\ + /^(\#|$$)/ {next} \ + $$1 == follow { \ + if (!follow) next; \ + follow = $$2; \ + print " >> " $$3 ": " $$4 " -> " \ + ($$2 ? $$2 : "deleted") > "/dev/stderr"; \ + } \ + END { print follow } \ + ' "${PORTSDIR}/${MOVEDFILE}"` 2>&1; \ + if [ -n "$$depends_origin" ]; then \ + dir="${PORTSDIR}/$$depends_origin"; \ + fi ; \ + fi ; \ + fi ; \ if [ ! -d "$$dir" ]; then \ ${ECHO_MSG} " >> No directory for $$lib. Skipping.."; \ else \ @@ -4137,6 +4303,25 @@ fi; \ ${ECHO_MSG} "===> ${PKGNAME} depends on: $$dir"; \ ${ECHO_MSG} "===> Verifying $$target for $$dir"; \ + if [ ! -d "$$dir" -a -f "${PORTSDIR}/${MOVEDFILE}" ]; then \ + depends_origin=`${EXPR} "$$dir" : "${PORTSDIR}/\(.*\)"`; \ + if [ -n "$$depends_origin" ]; then \ + ${ECHO_MSG} "===> Searching for $$depends_origin:"; \ + depends_origin=`${AWK} -F\| -v follow="$$depends_origin" '\ + /^(\#|$$)/ {next} \ + $$1 == follow { \ + if (!follow) next; \ + follow = $$2; \ + print " >> " $$3 ": " $$4 " -> " \ + ($$2 ? $$2 : "deleted") > "/dev/stderr"; \ + } \ + END { print follow } \ + ' "${PORTSDIR}/${MOVEDFILE}"` 2>&1; \ + if [ -n "$$depends_origin" ]; then \ + dir="${PORTSDIR}/$$depends_origin"; \ + fi ; \ + fi ; \ + fi ; \ if [ ! -d $$dir ]; then \ ${ECHO_MSG} " >> No directory for $$dir. Skipping.."; \ else \ @@ -4161,6 +4346,25 @@ ALL-DEPENDS-LIST= \ checked="${PARENT_CHECKED}"; \ for dir in $$(${ECHO_CMD} "${EXTRACT_DEPENDS} ${PATCH_DEPENDS} ${FETCH_DEPENDS} ${BUILD_DEPENDS} ${LIB_DEPENDS} ${RUN_DEPENDS}" | ${SED} -e 'y/ /\n/' | ${CUT} -f 2 -d ':') $$(${ECHO_CMD} ${DEPENDS} | ${SED} -e 'y/ /\n/' | ${CUT} -f 1 -d ':'); do \ + if [ ! -d "$$dir" -a -f "${PORTSDIR}/${MOVEDFILE}" ]; then \ + depends_origin=`${EXPR} "$$dir" : "${PORTSDIR}/\(.*\)"`; \ + if [ -n "$$depends_origin" ]; then \ + ${ECHO_MSG} "${PKGNAME}: Searching for $$depends_origin:" >&2; \ + depends_origin=`${AWK} -F\| -v follow="$$depends_origin" '\ + /^(\#|$$)/ {next} \ + $$1 == follow { \ + if (!follow) next; \ + follow = $$2; \ + print " >> " $$3 ": " $$4 " -> " \ + ($$2 ? $$2 : "deleted") > "/dev/stderr"; \ + } \ + END { print follow } \ + ' "${PORTSDIR}/${MOVEDFILE}"`; \ + if [ -n "$$depends_origin" ]; then \ + dir="${PORTSDIR}/$$depends_origin"; \ + fi ; \ + fi ; \ + fi ; \ if [ -d $$dir ]; then \ if (${ECHO_CMD} $$checked | ${GREP} -qwv "$$dir"); then \ child=$$(cd $$dir; ${MAKE} PARENT_CHECKED="$$checked" run-depends-list); \ >Release-Note: >Audit-Trail: >Unformatted: