From owner-freebsd-ports@FreeBSD.ORG Mon Sep 15 14:36:47 2008 Return-Path: Delivered-To: ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A58961065672 for ; Mon, 15 Sep 2008 14:36:47 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (bigknife-pt.tunnel.tserv9.chi1.ipv6.he.net [IPv6:2001:470:1f10:75::2]) by mx1.freebsd.org (Postfix) with ESMTP id 194488FC13 for ; Mon, 15 Sep 2008 14:36:46 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from localhost.corp.yahoo.com (john@localhost [IPv6:::1]) (authenticated bits=0) by server.baldwin.cx (8.14.2/8.14.2) with ESMTP id m8FEaN5d080608 for ; Mon, 15 Sep 2008 10:36:41 -0400 (EDT) (envelope-from jhb@freebsd.org) From: John Baldwin To: ports@freebsd.org Date: Mon, 15 Sep 2008 10:36:19 -0400 User-Agent: KMail/1.9.7 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200809151036.19674.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (server.baldwin.cx [IPv6:::1]); Mon, 15 Sep 2008 10:36:41 -0400 (EDT) X-Virus-Scanned: ClamAV 0.93.1/8247/Mon Sep 15 08:04:53 2008 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.6 required=4.2 tests=BAYES_00,NO_RELAYS autolearn=ham version=3.1.3 X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on server.baldwin.cx Cc: Subject: OPTIONS handling doesn't seem to work fully in dependencies anymore X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Sep 2008 14:36:47 -0000 So I upgraded my desktop machine at home from 6.x -> 7.x this weekend. As part of that I do my usual (albeit archaic) practice of just deleting all packages and rebuilding everything from ports. I also decided to try out kde4 instead of kde3. I "discovered" during this process that ports that were built as dependencies no longer pop up the dialog box to set OPTIONS, etc. during a build. Only the "top-level" port does so. I'm curious if this is a bug or a feature? I think it might be a bug. I'm not super familiar with bsd.port.mk, but I think that this bit of the Makefile might cause this behavior: ################################################################ # # Do preliminary work to detect if we need to run the config # target or not. # ################################################################ .if (!defined(OPTIONS) || defined(CONFIG_DONE) || \ defined(PACKAGE_BUILDING) || defined(BATCH)) _OPTIONS_OK=yes .endif ... .for target in extract patch configure build install package .if !target(${target}) && defined(_OPTIONS_OK) ${target}: ${${target:U}_COOKIE} .elif !target(${target}) ${target}: config-conditional @cd ${.CURDIR} && ${MAKE} CONFIG_DONE=1 ${__softMAKEFLAGS} ${${target:U} _COOKIE} .elif target(${target}) && defined(IGNORE) .endif I think this has the side effect that 'CONFIG_DONE=1' is passed to the make invocations used to build dependencies via the MAKEFLAGS environment variable, so dependency ports always have CONFIG_DONE set from the get go. Thus, they never invoke the config-conditional target. My guess is that the intention was that this CONFIG_DONE wasn't supposed to "leak" from a port to its depencies, but I think that is what is happening. -- John Baldwin