CVSup - это программное обеспечение позволяющее распространять и обновлять деревья исходных текстов с главного cvs(1) репозитория. Дерево исходных текстов OpenBSD поддерживается разработчиками на центральной машине в Канаде. Используя CVSup, пользователь может содержать своё собственное дерево исходных текстов в обновлённом состоянии.
CVSup использует, так называемую, вытягивающую модель обновления исходных текстов. Под этой моделью подразумевается, что каждый CVSup клиент запрашивает у сервера обновления. Сервер пассивно ожидает от клиента запрос. Таким образом, все обновления провоцируются клиентом. Сервер никогда не посылает данные, которые клиент не запрашивал. Пользователи же, должны запускать клиент CVSup вручную или установить выполнение периодических процессов с помощью cron(8).
Термин CVSup, относится к полному пакету программ. Его главные компоненты: клиент cvsup, который запускается на машине пользователя и сервер cvsupd, который запущен на каждом CVSup сервере.
CVSup предназначался быть более эффективным и более гибким, чем его предшественник - sup(1)
Проект OpenBSD в настоящее время имеет пять основных репозиториев:
CVS - это система контроля версий, используется для управления исходными текстами системы. Более подробно описано здесь. CVS и CVSup совершенно разные программы. Хотя CVS можно использовать для удалённого доступа к файлам, он не оптимизирован для распространения полного дерева по сети. CVSup более эффективно справляется с этой задачей.
CVSup написан на Modula-3, поэтому его довольно сложно скомпилировать и установить. Порт lang/ezm3 содержит специальный дистрибутив Modula-3 необходимый лишь для компиляции CVSup. Мы рекомендуем установить уже собранный пакет CVSup с ftp сервера, вместо создания собственного из порта net/cvsup. В настоящий момент, порты CVSup и Ezm3 доступны только для i386 платформы.
За дополнительной информацией о CVSup, обратитесь к домашней странице автора http://www.polstra.com/projects/freeware/CVSup/.
Пример файла конфигурации CVSup для зеркалирования репозитория OpenBSD:
# Defaults that apply to all the collections
*default release=cvs
*default delete use-rel-suffix
*default umask=002
*default host=cvsup.uk.openbsd.org
*default base=/cvs
*default prefix=/cvs
# If your network link is a T1 or faster, comment out the following line.
*default compress
OpenBSD-all
#OpenBSD-src
#OpenBSD-www
#OpenBSD-ports
#OpenBSD-x11
#OpenBSD-xf4
CVSup обновит весь исходной код OpenBSD с cvsup.uk.openbsd.org и установит маску доступа umask(2), разрешающею запись для группы в локальном репозитории.
Предположим этот файл конфигурации, сохранен как cvs-supfile, следующая команда запустит CVSup в графическом режиме:
cvsup cvs-supfile
для запуска из скрипта или в терминале, используйте:
cvsup -g -L 2 cvs-supfile
Чтобы получить любой из CVSup репозиториев. Для Korn/Bourne оболочек:
# cd /usr
# CVSROOT=/cvs cvs checkout src
Для csh и его производных:
# cd /usr
# setenv CVSROOT /cvs
# cvs checkout src
Вышесказанное извлечет current дерево исходных текстов OpenBSD. Чтобы получить исходные тексты релиза OpenBSD, вы должны указать тег. Например:
# cd /usr
# cvs checkout -rOPENBSD_2_9 src
Или OPENBSD_2_8 для 2.8, и т.д.
В качестве альтернативы CVS, для получения исходных текстов, вы можете использовать CVSup в режиме извлечения, добавляя тег или дату к вашему файлу конфигурации, как *default или как опцию к указанному репозиторию. В частности, вы можете использовать CVSup для обновления исходных текстов и дерева портов, поставляемых на CD диске.
Пример файла конфигурации для обновления портов:
# Defaults that apply to all the collections
*default host=cvsup.uk.openbsd.org
*default base=/var
*default prefix=/usr
*default release=cvs
*default delete use-rel-suffix compress
# Ports Collection.
OpenBSD-ports tag=.
Любой из CVS тегов может быть использован. Одиночная точка "." означает HEAD, т.е. текущее, находящееся в разработке дерево. Будьте внимательны при указании тега. CVSup не может отличить правильные теги от неправильных, попытка синхронизации существующего дерева с указанием неправильного тега закончится неудачей и CVSup удалит все существующие файлы.
Вы можете использовать ключевое слово date=[cc.]yy.mm.dd.hh.mm.ss для выбора ревизии по времени. Все 17 или 20 символов должны быть указаны. Для 2000 года и более поздних необходимо указывать столетие cc. Для более ранних годов достаточно указать только две последние цифры yy. Вы можете также объединить тег и дату.
Список доступных CVSup серверов.
Если ваш сервер перечислен с неточной или неполной информацией, пожалуйста свяжитесь с beck@openbsd.org или brian@openbsd.org.
Вы можете использовать traceroute(8), чтобы определить какой сервер находится ближе к вам. При возникновении проблем с сервером, свяжитесь с поддерживающим его персоналом.
В настоящее время (7 апреля, 2003), размеры CVS репозитория таковы:
| OpenBSD-ports | - 123MB | |
| OpenBSD-src | - 993MB | |
| OpenBSD-www | - 81MB | |
| OpenBSD-x11 | - 200MB | |
| OpenBSD-xf4 | - 439MB |
Должно быть, ещё дополнительно около 41MB для CVSROOT и sup каталогов. Суммарный размер репозитория увеличивается примерно на 225MB в год.
ВАЖНОЕ ПРИМЕЧАНИЕ: имеется несколько ограничений, касающихся криптографического программного обеспечения, которые вы должны знать:
Родина OpenBSD - Канада. Согласно исследованиям, проведённым гражданином Канады, и как значится в списке контроля над экспортом Канады, экспортировать криптографическое ПО в остальной мир РАЗРЕШЕНО.
Тем не менее, если вы находитесь вне США или Канады, вы не должны использовать криптографические части OpenBSD с CVSup серверов расположенных в США. Рассматриваемые файлы...
По законам США ITAR криптографическое ПО может экспортироваться только в Канаду.
Проект OpenBSD ищет дополнительные CVSup сервера -- если вы заинтересованы, пожалуйста, свяжитесь с Brian Somers для обсуждения деталей конфигурирования.