From owner-freebsd-questions@FreeBSD.ORG Tue Apr 15 18:02:21 2008 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C90B9106567A for ; Tue, 15 Apr 2008 18:02:21 +0000 (UTC) (envelope-from fbsd.questions@rachie.is-a-geek.net) Received: from snoogles.rachie.is-a-geek.net (rachie.is-a-geek.net [66.230.99.27]) by mx1.freebsd.org (Postfix) with ESMTP id 943288FC16 for ; Tue, 15 Apr 2008 18:02:21 +0000 (UTC) (envelope-from fbsd.questions@rachie.is-a-geek.net) Received: from localhost (localhost [127.0.0.1]) by snoogles.rachie.is-a-geek.net (Postfix) with ESMTP id 812A91CD67; Tue, 15 Apr 2008 10:02:20 -0800 (AKDT) From: Mel To: freebsd-questions@freebsd.org Date: Tue, 15 Apr 2008 20:02:19 +0200 User-Agent: KMail/1.9.7 References: <200804151245.03033.lists-fbsd@shadypond.com> <4804A46B.20307@otenet.gr> <919383240804150626xe343795l84d99cfaad68435@mail.gmail.com> In-Reply-To: <919383240804150626xe343795l84d99cfaad68435@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200804152002.20097.fbsd.questions@rachie.is-a-geek.net> Cc: Manolis Kiagias , Edward Ruggeri , Pollywog Subject: Re: overnight upgrade interrupted by questions X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Apr 2008 18:02:21 -0000 On Tuesday 15 April 2008 15:26:42 Edward Ruggeri wrote: > A lot of people would reply that they'd like to configure the ports > themselves before launching the installation, leading people to > suggest scripts such as: > > #!/bin/sh > plist=`pkg_version -ovl'<' |awk '{ print $1 }'` > for porg in $plist ; do > cd /usr/ports/${porg} && make config-recursive > done Sorry to disappoint you, but that wont work for two reasons: 1) make config-recursive is flawed by design, because it makes a dependency list based on current settings and if you alter dependencies during your recursive configuring, it will not update the list. 2) If you hit an interactive configure (not config, configure) target, then you will still end up with a dialog. Prime example: print/ghostscript-gpl. If you wanted to script the first case, you'd do the following in every origin that needs updating: #!/bin/sh VISITED= config_port() { local ldeps rdeps bdeps ldeps=`make -V LIB_DEPENDS` rdeps=`make -V RUN_DEPENDS` bdeps=`make -V BUILD_DEPENDS` make config-conditional for dep in ${ldeps} ${rdeps} ${bdeps}; do dir=${dep##*:} case ${VISITED} in *" ${dir}"*) ;; *) echo "---> $dir" VISITED="${VISITED} ${dir}" cd ${dir} config_port esac done } config_port -- Mel Problem with today's modular software: they start with the modules and never get to the software part.