Date: Mon, 24 Sep 2007 20:14:37 +1000 (EST) From: Edwin Groothuis <edwin@mavetju.org> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/116601: [patch] bsd.port.mk - fail if dependency failed Message-ID: <20070924101437.843FB64@k7.mavetju> Resent-Message-ID: <200709241020.l8OAK1w2060774@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>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:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070924101437.843FB64>