Изыскания привели к man release и man build, но не спешите топтать грабли вслед за мной.
Предположим что вы только что обновили систему до 7.0-STABLE из исходники (очень утомительный процесс, не так ли).
В таком случае, у вас есть папки /usr/src, /usr/obj (этот требование man release, чтобы эти папки соответствовали текущей установленной системе).
Далее ман предлагает запускать локальную систему CVS, но, оказалось, что это только лишнее насилие над жестким диском.
В моем случае я создал вот такой скрипт:
Код: Выделить всё
steel# cat /mnt/update/release
#!/bin/sh
# В папку $CHROOTDIR/usr/ports нужно поместить все необходимое для сборки cdrtools, включая distfiles
# То есть после запуска процесса перейдите в другую консоль и заполните ее вручную
# Все папки чистятся автоматически, для перезапуска надо make rerelease
BUILDNAME=7.0-STABLE-20080723
RELEASETAG=RELENG_7
CVSROOT=/usr/cvs
CHROOTDIR=/usr/chroot
EXTSRCDIR=/usr/src
mount -u -o noatime /usr
mount -u -o async /usr
export CVSROOT
export CHROOTDIR
export BUILDNAME
export RELEASETAG
export EXTSRCDIR
cd /usr/src/release
make release MAKE_ISOS=Y NODOC=Y NO_FLOPPIES=Y NOPORTS=Y
mount -u -o atime /usr
mount -u -o sync /usr
steel#
Аналогичным образом собираются RELENG_7 и RELENG_7_0 диски, все зависит от ваших исходников, в том числе со всеми портами и пакетами, но это уже точно на несколько суток, автор просто хотел получить свежий диск со всеми исправленими.
PS Осталвся невыявненым вопрос как корректно подсунуть порты для сборки cdrtools, EXTPORTSDIR, EXTDISTFILESDIR почему-то не работают как ожидается.
PPS Смотрите использование переменных сборки в man release