Анонимный CVS
Оглавление
Анонимный CVS представляет собой метод поддержания локальных исходных
кодов OpenBSD в актуальном состоянии с учетом изменений, сделанных в
репозитории OpenBSD. Помимо использования последних разработок, также
можно отслеживать патчи исправления ошибок, допущенных в релизе.
Основное отличие анонимного CVS от других методов обновления исходного
кода в том, что он работает напрямую с центральным репозиторием исходных
текстов или его зеркалом. То есть, вам предлагается полный набор CVS команд
для обновления и объединения ваших изменений с другими изменениями исходных
кодов, создания diff'ов, просмотра истории изменений и других запросов к
центральному репозиторию.
В настоящее время проект OpenBSD имеет четыре активных и два исторических
репозитория:
- src - содержит весь исходный код операционной системы OpenBSD.
- ports - содержит порты OpenBSD.
- www - содержит все веб страницы OpenBSD (включая и эту).
- xenocara - содержит дерево исходных кодов актуальной X.org v7 для OpenBSD.
- X11 и XF4 - содержит адаптированные под OpenBSD исходные коды
XFree86-3 и XFree86-4.
Этот репозиторий предназначен в основном для исторических целей, большинству
пользователей нет смысла его использовать.
Подводя итоги, можно сказать, что настоящее преимущество при использовании Анонимного
CVS заключается в "толерантной" системе управления исходными кодами -
учете ваших изменений, сделанных в локальных текстах исходных кодов
и, в тоже время, приложении всех усилий для обновления всего дерева
ваших исходных кодов вместо того, чтобы предоставлять список скрытых проблем которые
должны быть устранены перед продолжением.
CVS - это система контроля версий,
используемая для управления деревом исходных кодов OpenBSD.
CVS использует центральный репозиторий для хранения всего исходного текста официальных
выпусков (release) и его изменений, что позволяет разработчикам поддерживать локальные
копии исходного кода со своими работающими изменениями.
Существуют два уровня доступа к дереву исходных кодов:
- Доступ с правами чтения и записи для разработчиков:
Разработчики, которым необходимо вносить изменения в дерево исходных текстов должны
иметь учетную запись на серверах проекта OpenBSD. Получение этого доступа - естественный
результат работы над исходными текстами OpenBSD совместно с другими разработчиками.
Сделав хорошо свою работу и показав умение работать в команде, можно получить этот
аккаунт.
- Доступ только для чтения любому желающему :
Получить доступ только для чтения к CVS репозиторию может любой желающий.
Такие репозитории регулярно зеркалируються с основного репозитория проекта OpenBSD.
Основное преимущество CVS - способность выполнять разумное слияние изменений
в центральном репозитории с изменениями, которые вы внесли в вашу локальную
копию. Это значит что, если вы внесете изменения в какой-нибудь модуль и
выполните обновление, ваши изменения не будут утрачены, вместо этого CVS
попытается объединить изменения из центрального репозитория с вашими
изменениями в локальной копии.
В случае, если изменения не могут быть полностью объединены, CVS обеспечивает
возможность "мягкого отката", отмечая изменения в локальной копии, сохраняет
немодифицированную копию ваших изменений и продолжает обновление других
запрошенных модулей.
ВАЖНО:
Здесь приведедены несколько замечаний, относящихся к программному обеспечению,
предоставляющему средства криптографии, которые необходимо знать:
- Исходные коды OpenBSD из Канады.
Правила для граждан Канады
и
список экспортного контроля Канады
представляют собой правила экспорта криптографического программного обеспечения
из Канады в другие страны.
- Таким образом, если вы находитесь за пределами США или Канады, то не можете
получать исходные коды OpenBSD, содержащие средства криптографии, с анонимных серверов
расположенных в США, потому что согласно требований Департамента США по торговой
политике, программное обеспечение, содержащее средства криптографии, может быть
экспортировано в Канаду только из США.
Несмотря на то, что можно загрузить с Анонимного CVS сервера все дерево исходных кодов
можно сэкономить много времени и трафика используя "предзагруженное" дерево исходных
кодов с OpenBSD CD или FTP сервера.
Это особенно актуально, если вы используете -стабильную версию
(stable), отличающуюся некоторыми файлами от -release версии.
Для извлечения дерева исходных текстов с CD в /usr/src (предполагается, что CD
примонтирован в /mnt) необходимо выполнить:
# cd /usr/src
# tar xzf /mnt/src.tar.gz
# cd /usr
# tar xzf /mnt/xenocara.tar.gz
# tar xzf /mnt/ports.tar.gz
Исходные тексты, размещенные для загрузки на FTP серверах, разделены на два файла
с целью уменьшения времени загрузки для желающих работать только с одной из частей дерева
исходных текстов. Это файл sys.tar.gz, содержащий исходные коды используемые при
сборке ядра, и src.tar.gz, который содержит остальные утилиты "пространства
пользователя". В общем, скорее всего, вы захотите установить оба эти файла. Предполагая,
что файлы src.tar.gz, sys.tar.gz и xenocara.tar.gz загружены и
установлены в /usr:
# cd /usr/src
# tar xzf ../sys.tar.gz
# tar xzf ../src.tar.gz
# cd /usr
# tar xzf xenocara.tar.gz
# tar xzf ports.tar.gz
Не все пользователи захотят распаковывать все наборы файлов, но для синхронизации системы
вам необходимо будет установить все.
Можно также использовать cvs(1) только для "проверки" репозитория исходных кодов. Это будет
обсуждаться в следующем разделе.
После выполнения вышеприведенных действий каталог /usr/src станет местом, где будут
должным образом работать все
cvs(1) команды.
CVS был разработан как простой способ получения и обновления ваших исходных текстов.
Для начала вам необходимо решить будете ли вы отслеживать - текущую (current) или
ветку патчей (stable).
Текущее дерево исходных текстов содержит все изменения на текущий момент, тогда
как ветка патчей включает в себя официальный релиз плюс патчи из errata.
Получить дополнительную информацию об этих "предпочтениях" в OpenBSD можно
здесь.
Когда определитесь какое дерево исходных текстов использовать, необходимо выбрать
Анонимный CVS сервер. Список этих серверов приведен ниже.
Выбрав Анонимный CVS сервер можно начинать использовать cvs.
Если у вас есть CD можно начать с проверки CVS, расположенного на CD, получив исходные тексты
для вашей системы с помощью метода, описанный ранее.
Если диска с исходными текстами у вас нет под рукой, используйте метод, изложенный ниже.
- Во-первых, начнем с получения исходного дерева:
(Если вы используете current):
# cd /usr
# cvs -qd anoncvs@anoncvs.ca.openbsd.org:/cvs get -P src
(Если вы используете ветку patch для версии 5.2):
# cd /usr
# cvs -qd anoncvs@anoncvs.ca.openbsd.org:/cvs get -rOPENBSD_5_2 -P src
- В любое время впоследствии для обновления этого дерева исходных кодов:
(Если вы используете current):
# cd /usr/src
# cvs -q up -Pd
(Если вы используете ветку patch для версии 5.2):
# cd /usr/src
# cvs -q up -rOPENBSD_5_2 -Pd
Всякий раз выполняя эти действия вы синхронизируете ваше дерево исходных кодов в /usr/src.
Это не уничтожит какие-либо ваши локальные изменения, скорее будут приняты меры для их
объединения.
- ПРИМЕЧАНИЕ:
При обновлении вашего дерева исходных кодов, изначально полученных с какого-либо сервера
или CD, небходимо обязательно добавить к cvs опцию
-d anoncvs@anoncvs.ca.openbsd.org:/cvs.
# cd /usr/src
# cvs -d anoncvs@anoncvs.ca.openbsd.org:/cvs -q up -Pd
Для использования портов,
все практически аналогично:
-
(Если вы используете current):
# cd /usr
# cvs -qd anoncvs@anoncvs.ca.openbsd.org:/cvs get -P ports
(Если вы используете ветку patch, например для версии 5.2):
# cd /usr
# cvs -qd anoncvs@anoncvs.ca.openbsd.org:/cvs get -rOPENBSD_5_2 -P ports
- В любое время впоследствии для обновления этого дерева исходных кодов:
(Если вы используете current):
# cd /usr/ports
# cvs -q up -Pd
(Если вы используете ветку patch, например для версии 5.2):
# cd /usr/ports
# cvs -q up -rOPENBSD_5_2 -Pd
В приведенных выше примерах опция -q будет полезна в том случае, если вы хотите
уменьшить вывод результатов работы cvs на дисплей. Желающие видеть полный вывод cvs могут
не использовать эту опцию.
Для создания diff для локально измененного модуля (в данном примере cd.c) и
включения его в отчет об ошибке:
# cd /usr
# cvs diff -u src/sys/scsi/cd.c > /tmp/patch
Страница руководства cvs(1)
(входящая в состав исходных файлов CVS) содержит много дополнительной информации о способах
использования CVS.
Предупреждение:
При использовании cvs необходимо убедиться в том, что вы находитесь в каталоге,
являющемся корнем дерева исходных текстов либо в отдельном месте, например /tmp.
Некоторые комманды, такие как get, могут создавать произвольную структуру
подкаталогов в текущем каталоге с рекурсивным обновлением их содержимого.
Сервис анонимного cvs дает возможность начинающим разработчикам
изучить CVS и принять непосредственное участие в процессе разработки
перед получением "commit" доступа. Результатом демонстрации наличия
необходимых навыков и хороших результатов работы является получение в последующем
доступа разработчика.
Также, предлагая патчи можно создать свои "diff" файлы
что облегчит в последующем интерграцию.
Примером использования анонимного cvs сервера может быть:
$ cd /tmp
$ cvs -d anoncvs@anoncvs.ca.openbsd.org:/cvs get src/sys/arch/sparc
[получение файлов из репозитория на локальную машину]
$ cd src/sys/arch/sparc
$ cvs log locore.s
[просмотр лога commit-ов для выбранного файла]
$ cvs diff -bc -r1.1 -r1.5 locore.s
[просмотр изменений между версиями 1.1 и 1.5]
- CVSROOT=anoncvs@anoncvs.openbsd.org.ar:/cvs
Расположение: Буэнос Айрес, Аргентина.
Поддерживается Gonzalo Lionel Rodriguez.
Протоколы: ssh.
Обновляется каждые 2 часа из anoncvs.spacehopper.org.
- CVSROOT=anoncvs@anoncvs.bom.nom.co:/cvs
Расположение: Сидней, Австралия.
Поддерживается Michael W. Bombardieri.
Протоколы: ssh.
Обновляется каждые 2 часа из anoncvs.usa.openbsd.org.
SSH fingerprints:
(RSA) 2048 72:97:71:77:82:80:e1:f0:1c:1d:bc:01:b5:39:97:fa
(DSA) 1024 67:5d:e1:ba:b7:d3:40:7c:9c:4f:15:d4:1b:0b:e1:58
- CVSROOT=anoncvs@anoncvs.au.openbsd.org:/cvs
Расположение: Brisbane, Australia.
Поддерживается David Gwynne.
Протоколы: ssh.
Обновляется каждый час.
SSH fingerprints:
(RSA1) 2048 5b:d9:89:99:3d:60:da:bf:e4:28:00:5a:1c:65:91:9f
(RSA) 2048 19:4c:e2:a8:9e:42:b2:91:f3:d5:04:cf:b5:61:5e:ea
(DSA) 1024 80:ff:d2:46:70:51:7d:09:a5:71:83:bb:89:98:44:b1
(ECDSA) 256 fa:57:1c:55:7c:aa:d0:bc:4c:e2:05:3d:9b:bb:83:2d
- CVSROOT=anoncvs@ftp5.eu.openbsd.org:/cvs
Хост известен также как anga.funkfeuer.at.
Расположение: Вена, Австрия.
Поддерживается Martin Reindl.
Протоколы: ssh, ssh порт 2022.
Обновляется каждые 2 часа из anoncvs1.usa.openbsd.org.
SSH fingerprints:
(RSA) 2048 e4:a7:3a:ab:e1:a7:c8:eb:5c:f4:ff:38:95:6f:81:f2
(DSA) 2048 66:03:a3:bc:46:85:f3:6c:4b:6b:e3:d4:f5:5f:a6:c4
- CVSROOT=anoncvs@anoncvs1.ca.openbsd.org:/cvs
Хост известен также как anoncvs.ca.openbsd.org, openbsd.sunsite.ualberta.ca.
Расположение: Альберта, Канада.
Поддерживается Bob Beck.
Протоколы: ssh, ssh порт 2022.
Обновляется каждые 2 часа.
- CVSROOT=anoncvs@anoncvs.comstyle.com:/cvs
Расположение: Торонто, Канада.
Поддерживается Brad Smith.
Протоколы: ssh, ssh порт 2022.
Обновляется каждый час.
SSH fingerprints:
(RSA1) 2048 80:33:40:b7:94:9e:7b:bd:77:fb:2a:57:85:fc:09:73
(RSA) 2048 43:30:9a:c6:c4:19:80:ad:7d:58:3e:7a:a0:39:57:53
(DSA) 1024 66:a1:f9:47:26:d9:15:3c:62:2b:b5:e8:0d:89:4a:6f
(ECDSA) 256 62:28:13:ea:cd:ba:68:e6:e9:82:94:ac:10:7f:80:d5
- CVSROOT=anoncvs@anoncvs.fr.openbsd.org:/cvs
Расположение: Париж, Франция.
Поддерживается Landry Breuil.
Протоколы: ssh.
Обновляется каждые 2 часа из anoncvs1.ca.openbsd.org.
SSH fingerprints:
(RSA1) 2048 28:ce:6b:61:76:d9:0e:6d:65:a1:5c:dd:e8:d7:57:42
(RSA) 2048 89:2e:84:9e:0c:f9:8d:21:41:0e:c5:80:41:27:14:c1
(DSA) 1024 7f:fb:68:2f:0f:c8:63:6c:0f:32:2c:03:d4:cd:0c:47
(ECDSA) 256 6f:a8:a5:93:d7:68:55:91:15:42:b0:5d:38:62:b9:c3
- CVSROOT=anoncvs@openbsd.cs.fau.de:/cvs
Хост известен также как openbsd.informatik.uni-erlangen.de.
Расположение: Университет Ерланген-Нуремберга, Ерланген, Германия.
Поддерживается Simon Kuhnle.
Протоколы: ssh, ssh порт 2022.
Обновляется каждые 2 часа из anoncvs.spacehopper.org.
SSH fingerprints:
(RSA) 2048 d0:f2:0c:a3:bf:28:ba:18:50:5f:04:dc:13:ed:63:42
(DSA) 1024 9f:a1:78:0b:d4:76:68:bf:3e:83:d0:41:c8:1e:33:8b
(ECDSA) 256 f0:d1:64:e6:6b:2f:9e:1e:85:aa:75:e3:a0:52:d3:5a
- CVSROOT=anoncvs@mirror.osn.de:/cvs
Расположение: Nürnberg, Германия.
Поддерживается Armin Wolfermann.
Протоколы: ssh.
Обновляется каждые 3 часа.
SSH fingerprints:
(RSA) 1024 f2:73:d2:f6:e3:01:ef:ca:3b:e7:6c:80:b6:bd:bb:84
(DSA) 1024 fb:33:05:62:96:20:cf:88:7e:10:cb:8d:91:72:57:32
- CVSROOT=anoncvs@anoncvs.silihost.hu:/cvs
Расположение: Будапешт, Болгария.
Поддерживается Robert Nagy.
Протоколы: ssh.
Обновляется каждые 3 часа из anoncvs.de.openbsd.org.
- CVSROOT=anoncvs@anoncvs.jp.openbsd.org:/cvs
Хост известен также как kankoromochi.econ.nagasaki-u.ac.jp.
Расположение: Университет Нагасаки, Экономический факультет, Нагасаки, Япония.
Поддерживается Suzuki Itoshi.
Протоколы: ssh, pserver.
Обновляется каждые 3 часа.
- CVSROOT=anoncvs@anoncvs.obsd.si:/cvs
Хост известен также как nina.kerberos.si.
Расположение: Любляна, Словения.
Поддерживается Mitja Muzenic.
Протоколы: ssh.
Обновляется каждые 2 часа из anoncvs.eu.openbsd.org.
- CVSROOT=anoncvs@anoncvs.eu.openbsd.org:/cvs
Расположение: Стокгольмский уинверситет, Стокгольм, Швецияn.
Поддерживается Janne Johansson.
Протоколы: ssh.
Обновляется каждые 2 часа.
SSH fingerprints:
(RSA1) 2048 4c:d2:0a:90:b8:95:5d:37:3b:32:7b:77:5a:c5:ef:26
(RSA) 2048 98:e6:80:5d:95:bb:e2:15:5e:19:4d:a3:e4:d0:bc:2c
(DSA) 1024 55:cd:a7:a9:e3:bc:a5:5c:81:5e:98:c0:60:a2:67:52
- CVSROOT=anoncvs@anoncvs.netbsd.se:/cvs
Расположение: Стокгольм, Швеция.
Поддерживается Viktor Holmlund.
Протоколы: ssh.
Обновляется каждые 3 часа.
- CVSROOT=anoncvs@anoncvs.spacehopper.org:/cvs
Расположение: Лондон, Великобритания.
Поддерживается Stuart Henderson.
Протоколы: ssh, ssh порт 2022, ssh порт 443.
Обновляется каждый час из anoncvs.ca.openbsd.org.
SSH fingerprints:
(RSA1) 2048 31:fc:3d:e0:f7:6c:47:7e:48:f0:52:17:e6:19:74:f5
(RSA) 2048 e2:19:16:3f:a3:2e:eb:94:14:cd:5c:92:9a:6c:9a:8f
(DSA) 1024 ff:47:13:22:83:d1:6e:df:a0:f0:4f:18:31:cb:f2:28
(ECDSA) 256 a5:b0:2a:65:ff:9a:0b:ef:7d:6f:d2:95:2e:a7:c9:2c
- CVSROOT=anoncvs@anoncvs1.usa.openbsd.org:/cvs
Хост известен также как anoncvs.usa.openbsd.org, anoncvs4.usa.openbsd.org.
Расположение: Консорциум Интернет систем, Редвуд Сити, Калифорния, США.
Поддерживается Todd C. Miller.
Протоколы: rsh, ssh, ssh порт 2022, pserver.
Обновляется каждые 2 часа.
SSH fingerprints:
(RSA1) 1024 64:de:26:16:c2:ff:1b:c7:24:ed:a4:4a:d7:2f:69:3e
(RSA) 1024 49:67:9a:46:62:8a:3f:4e:b3:63:ca:d6:41:29:2a:2f
(DSA) 1024 a7:75:49:77:f3:47:d1:3c:5e:65:84:84:3b:03:f1:33
(ECDSA) 256 d3:b2:b5:68:87:3b:f6:93:21:fd:28:ea:cc:b6:e1:13
- CVSROOT=anoncvs@anoncvs3.usa.openbsd.org:/cvs
Расположение: Национальный центр Атмосферных исследований, Боулдер, Колорадо, США.
Поддерживается Todd C. Miller.
Протоколы: rsh, ssh, ssh порт 2022, pserver.
Обновляется каждые 2 часа.
SSH fingerprints:
(RSA1) 2048 80:cd:f6:fc:4f:0e:cb:80:6a:d0:6a:5e:dd:9e:5d:0a
(RSA) 2048 49:6f:4a:be:02:63:0d:c0:54:b0:57:f0:48:7f:ce:16
(DSA) 1024 f9:ab:fc:60:a3:15:8f:9c:47:24:9e:92:15:78:0d:f3
(ECDSA) 256 99:4f:c8:23:6a:bf:75:1c:de:c9:11:bf:a4:fe:0a:51
- CVSROOT=anoncvs@mirror.planetunix.net:/cvs
Расположение: Чикаго, Иллинойс, США.
Поддерживается Brian Brombacher.
Протоколы: ssh, ssh порт 2022, pserver.
Обновляется каждые 3 часа из anoncvs3.usa.openbsd.org.
SSH fingerprints:
(RSA1) 2048 e4:22:93:81:84:e0:68:8c:0b:d5:1f:78:cd:6f:fa:c3
(RSA) 2048 8f:42:bd:b0:a2:94:df:6b:af:1e:96:03:ea:68:03:d9
(DSA) 1024 26:51:e8:b3:38:88:dc:a8:2a:98:59:86:ab:40:bb:a4
- CVSROOT=anoncvs@openbsd.mirror.frontiernet.net:/cvs
Расположение: Frontier Communications, Рочестер, Нью-Йорк, США.
Протоколы: ssh.
Обновляется каждые 4 часа из anoncvs.ca.openbsd.org.
- CVSROOT=anoncvs@anoncvs.obsd.esc7.net:/cvs
Расположение: Даллас, Техас, США.
Поддерживается James Shupe.
Протоколы: ssh.
Обновляется каждые 2 часа из anoncvs1.usa.openbsd.org.
SSH fingerprints:
(RSA1) 256 68:f1:e8:11:94:5c:5e:15:d0:ee:54:1f:ee:57:33:4a
(RSA) 2048 2a:c8:01:6f:5c:fe:78:75:84:29:c3:11:0f:65:05:07
(DSA) 1024 0e:ce:de:c4:7d:a0:d1:71:0a:af:cf:ee:34:43:bc:23
Примечание: Если данные о приведенных здесь серверах неточны или неверны,
а также отсутствуют, свяжитесь пожалуйста с нами по адресу
beck@openbsd.org
Можно также воспользоваться
traceroute(8) для определения сервера, расположенного ближе к вам.
При возникновении проблем с сервером свяжитесь с обслуживающим его
персоналом (maintainters).
В случае, если ваша локальная политика безопасности запрещает исходящие соединения
по ssh порту по умолчанию (порт 22), некоторые серверы CVS разрешают подключаться
на альтернативный порт (обычно 2022). Об этом указано в списке серверов выше.
Для использования другого порта настройте ваш ssh-клиент добавив значение "Host" в
$HOME/.ssh/config, например:
Host anoncvs.ca.openbsd.org
Port 2022
Если вы хотите установить новое зеркало анонимного cvs сервера и сделать
его общедоступным, пожалуйста свяжитесь с
сопровождающим (maintainer) anoncvs.
Размещение анонимного cvs сервера обычно требует около 5 Гб дискового пространства
(и будет расти!) и использования до 32 Мб области подкачки (swap) на одного
пользователя сервера (предполагается, что пользователь будет производить большие операции;
в то же время, меньшие действия будут использовать меньше ресурсов;
анонимный cvs больше использует систему чем ftp). Кроме того, анонимный CVS сервер должен
иметь отличное сетевое соединение для доступа с той территории, где планируется его
использование. Порядок установки анонимного cvs описывается в этом
документе.
После обновления вашего дерева исходных текстов и перед началом сборки вы должны прочитать
комментарии, находящиеся вначале файла /usr/src/Makefile.
Также, по-возможности, вы должны собрать новое ядро перед
выполнением make build. В некоторых случаях может оказаться
необходимым пересобрать и установить конфигурационные утилиты перед сборкой ядра.
При сбое выполнения config GENERIC дело может быть именно в этом.
Необходимо также отметить, что переход с официальной версии на текущую версию дерева
исходных тексктов с пересборкой исходных текстов может быть затруднено из-за зависимостей,
которые не всегда очевидны. Поэтому, предполагается, что вы вначале
установите последний снимок файловой системы (snapshot) перед тем,
как пытаться установить дерево из исходных тестов.
www@openbsd.org
$OpenBSD: anoncvs.html,v 1.28 2013/01/12 07:47:15 ajacoutot Exp $