Требования:
Утилита поставляется с двумя исполняемыми файлами и демонстрационными шаблонами. Первый скрипт выводит порты, для которых есть более новые версии. Второй скрипт создает скрипт обновления портов, т.н. "update-script", который принимает параметры fetch и/или build. При указании fetch - загружаются все необходимые "distfile"; При указании build - делается попытка собрать и обновить каждый порт, в порядке убывания количества зависимых портов. То есть, сначала собираются приложения и библиотеки от которых зависят другие порты, например, perl, а потом уже всё остальное.
Можно создать файл skipfile, и в нем построчно указать порты, которые обновлять нельзя. При желании и необходимости, можно писать свои шаблоны, генерирующие скрипты или вывод в нужном формате.
Пример скорости работы (на разных конфигурациях):
Внимание! Граф зависимостей не строится, так что если есть очень важная библиотека, а от неё зависит только одна программа и эта программа зависит еще от других компонентов, то библиотека будет собираться в самом конце. Из-за этого, при обновлении сложных конфигураций могут возникнуть проблемы.
Источник: http://www.opennet.ru/opennews/art.shtml?num=25639