For working with locked packages (the ones which must be upgraded through compilation because of using custom options)
#!/bin/sh # filename: pkg-lock-outdated pkg query -e '%k = 1' %o | while read pkgorig; do pkg version -ovL => -O "$pkgorig" done
The script above is to list locked packages which need upgrading. And to upgrade everything at once (and sit in front of PC waiting for whole process)
#!/bin/sh listfile="/tmp/pkgforupgrade.$(date '+%Y%m%d%H%M%S')" pkg-lock-outdated | cut -f 1 -d '<' > "$listfile" while read <&3 outdated; do pkg unlock "$outdated" portmaster "$outdated" pkg lock "$outdated" done 3< "$listfile" rm -f "$listfile"
There’s another alternative of unlocking all packages at once, run batched portmaster, and lock them all again.