Mel wrote:
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
This process has always worked for me upgrading a fairly standard
desktop machine:
Get a list of status of installed ports
portmanager -s > somelist
Extract list of category/port needing updating, with vi, whatever
Do something like [sorry not exact syntax as I don't have access to a
freebsd machine]:
foreach i (`cat portlist`)
foreach? cd /usr/ports/$i && make config
foreach? end
I've never installed print/ghostscript-gpl so I don't know if my method
would break with it, but I do have to obviously treat java/jdk15 specially.
Chris
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"