Настройка хранилища CVS - подход FreeBSD
Пред. |  | ═

# 3. Специфичная для FreeBSD настройка

Проект FreeBSD сам по себе использует несколько другую настройку, в которой также используются файлы из подкаталога `freebsd` каталога FreeBSD `CVSROOT`. Проект использует их из-за большого количества коммиттеров, которые все должны быть в одной и той же группе. Поэтому был написан простой обработчик, проверяющий, что люди имеют правильные права на выполнение коммита, а затем устанавливающий идентификатор группы, соответствующий идентификатору хранилища.

Если вашему хранилищу это тоже нужно, то шаги для выполнения этого описаны ниже. Но сначала обзор связанных с этим файлов.

## 3.1. Файлы, используемые в настройке FreeBSD

- `access` - этот файл управляет информацией о доступе. Вы должны отредактировать этот файл для включения всех участников вашего проекта.

- `freebsd/commitmail.pl` - этот файл больше не используется, но оставлен по историческим причинам. Вам не нужно трогать этот файл.

- `freebsd/cvswrap.c` - это исходный текст обработчика CVS, который вам нужно установить, чтобы проверки доступа реально заработали. Дополнительная информация об этом ниже. Вы должны отредактировать маршруты в макросах `ACCESS` и `REALCVS` так, чтобы они соответствовали вашей настройке.

- `freebsd/mailsend.c` - этот файл нужен в настройке FreeBSD для списков рассылки. Вам не нужно трогать этот файл.

## 3.2. Процедура

1. Отредактируйте файл `access` так, чтобы он содержал только ваше имя пользователя.

2. Отредактируйте `cvswrap.c` так, чтобы он содержал правильный маршрут для вашей настройки. Это определено в макросе по имени `ACCESS`. Вы должны также изменить расположение реального выполнимого файла `cvs`, если оно не подходит к вашей ситуации. Для стандартного `cvswrap.c` предполагается, что он заменит общесистемную команду cvs, которая будет перемещена в `/usr/bin/ncvs`.

   В моём экземпляре `cvswrap.c` помещено следующее:

       #define ACCESS "/local/cvsroot/CVSROOT/access"
       #define REALCVS "/usr/bin/ncvs"

3. Следующим шагом является установка обработчика для того, чтобы проверить правильность установки группы при выполнении коммита. Исходные тексты для этого размещены в `cvswrap.c` из вашего `CVSROOT`.

   Откомпилируйте исходные тексты, которые вы редактировали для включения правильных путей:

       % cc -o cvs cvswrap.c

   А затем установите их (для этого вы должны быть пользователем root):

       # mv /usr/bin/cvs /usr/bin/ncvs
       # mv cvs /usr/bin/cvs
       # chown root:ncvs /usr/bin/cvs /usr/bin/ncvs
       # chmod o-rx /usr/bin/ncvs
       # chmod u-w,g+s /usr/bin/cvs

   При этом обработчик будет установлен по умолчанию как команда `cvs`, что гарантирует всеми, использующими хранилище, получение правильных уровней доступа.

4. Теперь вы можете убрать всех из вашей группы хранилища. Всё управление доступом выполняется вашим обработчиком, и он будет устанавливать правильную группу для доступа.

## 3.3. Тестирование настройки

Теперь ваш обработчик должен быть установлен. Конечно, вы можете протестировать его, выполнив принудительный коммит в файл `access`:

    % cvs commit -f -m 'Forced commit to test the new CVSROOT scripts' access

И снова, если это не сработает, проверьте, правильно ли были выполнены все вышеперечисленные шаги.

Пред. | Начало | ═
Первоначальная настройка | ═ | ═

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.