Настройка зеркала cvsup

На этой странице поясняется, как настроить зеркальную копию KDE CVS, чтобы каждый мог загрузить свежайшие исходники, используя cvsup. Выражаем благодарность Alex Hayward за предоставленную информацию.

Настройка клиента

Сначала нужно настроить cvsup для загрузки наборов файлов на ваше зеркало. Для этой цели используйте файл шаблона под названием

kde.sup.template
со следующим содержимым:
       *default host=cvsup.kde.org
       *default base=/home/kdecvs/kde
       *default prefix=/home/kdecvs/kde
       *default release=cvs
       *default delete
       *default compress
       *default use-rel-suffix

Для запуска процессов cvsupd и cvsup создайте отдельного пользователя `kdecvs` (и не забудьте, что этому пользователю будет приходить почта, если этот адрес указан, как адрес человека, поддерживающего зеркало). Если бы все файлы на головном сервере были доступны для чтения, то можно было бы запускать процесс cvsupd,используя непривилегированного пользователя, которому не принадлежит ни один файл. На данный момент, доступ на чтение некоторых файлов закрыт (точнее, некоторых каталогов верхнего уровня).

Здесь приведен простейший скрипт для периодического запуска cvsup (в данном примере, каждые 24 часа):

#!/bin/sh
# Ожидать 24 часа, запустить cvsup, повторять в цикле.
# Запускайте скрипт с nohup ./kdesync_forever.sh >/dev/null &
umask 0
while (true); do {
    sleep 86400
    sh ./kdesync &
} done
Просто запустите этот скрипт от имени пользователя kdecvs для запуска зеркала (разумеется, при загрузке системы).

Конечно, вы можете использовать задачу для cron-демона вместо этого скрипта.

Скрипт

kdesync
несколько сложнее. Он использует файл блокировки (lockfile) для запрещения одновременных обращений, а обновление производит дважды, получая scan-файлы (~/kde/sup/*/*) для ускорения работы cvsupd. Он использует файл kde.sup.template для создания файла kde.sup (один раз с опцией kdeall, один раз с опцией всех модулей). Загрузите kdesync отсюда.

Настройка сервера

Настройки сервера хранятся в отдельном каталоге, например, в ~/supd.

Данный каталог может настраиваться автоматически этим скриптом. Если все пройдет успешно, можете сразу перейти к разделу "Запуск сервера". Правда, результат будет слегка отличаться от того, который получится в результате инструкций, приведенных ниже (один list-файл вместо нескольких), но обе конфигурации работают.

В данном каталоге есть подкаталоги - по одному для каждого набора -- фактически, по одному каталогу для каждого пакета в ~/kde плюс каталог kdeall для мета набора kdeall. Каталог для каждого набора должен содержать символические ссылки на каталог в зеркале, где хранятся файлы, а именно:

supd/KodeKnight/KodeKnight -> ../../kde/KodeKnight
supd/canossa/canossa -> ../../kde/canossa
supd/genesis/corba -> ../../kde/corba
[... для каждого каталога в ~/kde ]
supd/kdeall/KodeKnight -> ../../kde/Kodeknight
supd/kdeall/canossa -> ../../kde/canossa
supd/kdeall/corba -> ../../kde/corba
[... для каждого каталога в ~/kde ]

Помимо наборов, в каталоге supd должны находиться файлы конфигурации для cvsupd. Все они находятся в подкаталоге supd/sup, где для каждого набора также выделен один каталог.

Во всех этих каталогах должен находиться один файл: releases-файл

supd/sup/KodeKnight/releases
[...]
supd/sup/kdelibs/releases
supd/sup/kdemultimedia/releases
[...]
supd/sup/kdeall/releases
В releases-файле должна находиться одна строка:
cvs list=../list prefix=<dname> norsync
где <dname> заменяется именем набора (то есть, каталогом, в котором он находится).

В list-файле (~/supd/sup/list) должно содержаться следующее:

omitany .cvsignore
omitany Attic
upgrade *

Запуск сервера

Для запуска сервера (как пользователь kdecvs) выполните:

/usr/local/sbin/cvsupd -C 5 -l ~/log -b ~/supd -s ~/kde/sup
где значение 5 может быть заменено на то количество пользователей, которое вас устраивает. Также можно изменить приоритет работы сервера командой
nice
.

Желаем удачи в настройке, и не забудьте сообщить об этом [email protected] для добавления в список зеркал.