From owner-freebsd-ports-bugs@FreeBSD.ORG Mon Sep 8 15:20:01 2008 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 DB9AD106566C for ; Mon, 8 Sep 2008 15:20:01 +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 B22CC8FC0A for ; Mon, 8 Sep 2008 15: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.2/8.14.2) with ESMTP id m88FK1Yu015626 for ; Mon, 8 Sep 2008 15:20:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m88FK19W015625; Mon, 8 Sep 2008 15:20:01 GMT (envelope-from gnats) Resent-Date: Mon, 8 Sep 2008 15:20:01 GMT Resent-Message-Id: <200809081520.m88FK19W015625@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, Nick Hibma Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3834E106567E for ; Mon, 8 Sep 2008 15:19:17 +0000 (UTC) (envelope-from nick@van-laarhoven.org) Received: from cpsmtpo-eml04.kpnxchange.com (cpsmtpo-eml04.kpnxchange.com [213.75.38.153]) by mx1.freebsd.org (Postfix) with ESMTP id C4C428FC1A for ; Mon, 8 Sep 2008 15:19:16 +0000 (UTC) (envelope-from nick@van-laarhoven.org) Received: from hpsmtp-eml03.kpnxchange.com ([213.75.38.103]) by cpsmtpo-eml04.kpnxchange.com with Microsoft SMTPSVC(6.0.3790.1830); Mon, 8 Sep 2008 17:19:14 +0200 Received: from uitsmijter.van-laarhoven.org ([81.207.207.222]) by hpsmtp-eml03.kpnxchange.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 8 Sep 2008 17:19:05 +0200 Received: (qmail 17784 invoked by uid 98); 8 Sep 2008 15:19:04 -0000 Received: from 10.66.0.133 (nick@10.66.0.133) by uitsmijter.van-laarhoven.org (envelope-from , uid 82) with qmail-scanner-2.01 (clamdscan: 0.92/5270. f-prot: 4.6.7/3.16.15. spamassassin: 3.2.3. Clear:RC:1(10.66.0.133):. Processed in 0.784505 secs); 08 Sep 2008 15:19:04 -0000 Received: from unknown (HELO van-laarhoven.org) (nick@10.66.0.133) by uitsmijter.van-laarhoven.org with SMTP; 8 Sep 2008 15:19:03 -0000 Received: (nullmailer pid 65812 invoked by uid 1001); Mon, 08 Sep 2008 15:19:03 -0000 Message-Id: <1220887143.496764.65811.nullmailer@van-laarhoven.org> Date: Mon, 08 Sep 2008 17:19:03 +0200 From: Nick Hibma To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: ports/127210: chrooted install of a port does not fail when install fails X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Sep 2008 15:20:01 -0000 >Number: 127210 >Category: ports >Synopsis: chrooted install of a port does not fail when install fails >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Sep 08 15:20:01 UTC 2008 >Closed-Date: >Last-Modified: >Originator: Nick Hibma >Release: FreeBSD 7.0-STABLE i386 >Organization: AnyWi Technologies >Environment: System: FreeBSD hind.van-laarhoven.org 7.0-STABLE FreeBSD 7.0-STABLE #3: Thu Aug 14 21:10:55 CEST 2008 toor@hind.van-laarhoven.org:/usr/src/sys/i386/compile/HIND i386 >Description: When doing cd /usr/ports/archivers/arj make PREFIX=/path/to/root in an incomplete world, the install fails (of course). But the make mentioned above succeeds. The error code is not passed back. >How-To-Repeat: Create and install a world without a toolchain (using nanobsd for example) that misses gmake, install, strip, or another toolchain necessity. Use cd /usr/ports/archivers/arj make PREFIX=/path/to/root echo errorcode=$? And notice the 0 errorcode. >Fix: The problem is in the following code fragment from bsd.destdir.mk. Notice how it in all cases reaches the exit 0 at the end. The call to chroot should be enclosed in an if statement ${CHROOT} $${_destdir} ${SH} -c "\ cd $${PORTSDIR}${.CURDIR:S|^${PORTSDIR}||}; \ ${SETENV} -i ${DESTDIR_ENV} $${_var_path_list} ${MAKE} ${.TARGETS}" && \ ${ECHO_MSG} "===> Chrooted make in ${DESTDIR} succeeded" || \ ${ECHO_MSG} "===> Chrooted make in ${DESTDIR} failed"; \ ${ECHO_MSG} "===> Cleaning up..."; \ for _entry in $${_mounted_entries_list}; do \ ${UMOUNT} -f $${_entry} || ${TRUE}; \ done; \ for _entry in $${_created_mountpoints_list}; do \ ${RMDIR} $${_entry} || ${TRUE}; \ done; \ exit 0 should be (using an rc variable to return the correct exit value if ${CHROOT} $${_destdir} ${SH} -c "\ cd $${PORTSDIR}${.CURDIR:S|^${PORTSDIR}||}; \ ${SETENV} -i ${DESTDIR_ENV} $${_var_path_list} ${MAKE} ${.TARGETS}"; then \ ${ECHO_MSG} "===> Chrooted make in ${DESTDIR} succeeded" || \ rc=0; \ else; \ ${ECHO_MSG} "===> Chrooted make in ${DESTDIR} failed"; \ rc=$?; \ fi; \ ${ECHO_MSG} "===> Cleaning up..."; \ for _entry in $${_mounted_entries_list}; do \ ${UMOUNT} -f $${_entry} || ${TRUE}; \ done; \ for _entry in $${_created_mountpoints_list}; do \ ${RMDIR} $${_entry} || ${TRUE}; \ done; \ exit $$rc >Release-Note: >Audit-Trail: >Unformatted: