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>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.

Обновлено: 12.03.2015