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]"

Reply via email to