From owner-freebsd-ports-bugs@FreeBSD.ORG Mon Sep 24 10:20:02 2007 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2907316A418 for ; Mon, 24 Sep 2007 10:20:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id E678A13C4B2 for ; Mon, 24 Sep 2007 10:20:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.1/8.14.1) with ESMTP id l8OAK1KF060775 for ; Mon, 24 Sep 2007 10:20:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.1/8.14.1/Submit) id l8OAK1w2060774; Mon, 24 Sep 2007 10:20:01 GMT (envelope-from gnats) Resent-Date: Mon, 24 Sep 2007 10:20:01 GMT Resent-Message-Id: <200709241020.l8OAK1w2060774@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, Edwin Groothuis Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0716816A417 for ; Mon, 24 Sep 2007 10:14:38 +0000 (UTC) (envelope-from edwin@mavetju.org) Received: from mail5out.barnet.com.au (mail5.barnet.com.au [202.83.178.78]) by mx1.freebsd.org (Postfix) with ESMTP id A8F2513C469 for ; Mon, 24 Sep 2007 10:14:37 +0000 (UTC) (envelope-from edwin@mavetju.org) Received: by mail5out.barnet.com.au (Postfix, from userid 1001) id DDA472219CF2; Mon, 24 Sep 2007 20:14:35 +1000 (EST) Received: from mail5auth.barnet.com.au (mail5.barnet.com.au [202.83.178.78]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mail5.barnet.com.au (Postfix) with ESMTP id A05EF21B108C for ; Mon, 24 Sep 2007 20:14:35 +1000 (EST) Received: from k7.mavetju (k7.mavetju.org [10.251.1.18]) by mail5auth.barnet.com.au (Postfix) with ESMTP id 4BDBE2218E32 for ; Mon, 24 Sep 2007 20:14:35 +1000 (EST) Received: by k7.mavetju (Postfix, from userid 1001) id 843FB64; Mon, 24 Sep 2007 20:14:37 +1000 (EST) Message-Id: <20070924101437.843FB64@k7.mavetju> Date: Mon, 24 Sep 2007 20:14:37 +1000 (EST) From: Edwin Groothuis To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: ports/116601: [patch] bsd.port.mk - fail if dependency failed X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Edwin Groothuis List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Sep 2007 10:20:02 -0000 >Number: 116601 >Category: ports >Synopsis: [patch] bsd.port.mk - fail if dependency failed >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Mon Sep 24 10:20:01 GMT 2007 >Closed-Date: >Last-Modified: >Originator: Edwin Groothuis >Release: FreeBSD 6.2-RELEASE-p4 i386 >Organization: - >Environment: System: FreeBSD k7.mavetju 6.2-RELEASE-p4 FreeBSD 6.2-RELEASE-p4 #0: Thu Apr 26 17:55:55 UTC 2007 root@i386-builder.daemonology.net:/usr/obj/usr/src/sys/SMP i386 >Description: Right now the ports framework skips over failed dependencies if they don't install the right file: ===> dynagen-devel-0.10.1 depends on executable: dynamips-devel - not found ===> Verifying install for dynamips-devel in /usr/ports/emulators/dynamips-devel ===> Returning to build of dynagen-devel-0.10.1 ===> dynagen-devel-0.10.1 depends on file: /usr/local/bin/python2.5 - found It should have stopped at stopped there, and not continued. LIB_DEPENDS does do this properly. This only happens in polluted build-environments where work/.build_done of a dependency exists and therefor skips the installation. Both of them shouldn't happen :-) >How-To-Repeat: >Fix: --- bsd.port.mk.orig Mon Sep 24 09:10:01 2007 +++ bsd.port.mk Mon Sep 24 10:08:40 2007 @@ -4812,6 +4812,7 @@ fi; \ fi; \ else \ + fileneeded="$$prog"; \ ${ECHO_MSG} "===> ${PKGNAME} depends on file: $$prog - not found"; \ notfound=1; \ fi; \ @@ -4830,6 +4831,7 @@ notfound=0; \ fi; \ else \ + pkgneeded="$$prog"; \ ${ECHO_MSG} "===> ${PKGNAME} depends on package: $$prog - not found"; \ notfound=1; \ fi; \ @@ -4852,6 +4854,7 @@ notfound=0; \ fi; \ else \ + execneeded="$$prog"; \ ${ECHO_MSG} "===> ${PKGNAME} depends on executable: $$prog - not found"; \ notfound=1; \ fi; \ @@ -4862,6 +4865,22 @@ ${ECHO_MSG} " => No directory for $$prog. Skipping.."; \ else \ ${_INSTALL_DEPENDS} \ + if [ ! -z "$$fileneeded" ]; then \ + if [ ! -e "$$prog" ]; then \ + ${ECHO_MSG} "Error: file \"$$prog\" does not exist"; \ + ${FALSE}; \ + fi; \ + elif [ ! -z "$$pkgneeded" ]; then \ + if ! ${PKG_INFO} "$$prog" > /dev/null 2>&1 ; then \ + ${ECHO_MSG} "Error: package \"$$prog\" does not exist"; \ + ${FALSE}; \ + fi; \ + elif [ ! -z "$$execneeded" ]; then \ + if ! ${WHICH} "$$prog" > /dev/null 2>&1 ; then \ + ${ECHO_MSG} "Error: executable \"$$prog\" does not exist"; \ + ${FALSE}; \ + fi; \ + fi; \ fi; \ fi; \ done >Release-Note: >Audit-Trail: >Unformatted: