Incoming/HOWTO

Материал из ALT Linux Wiki

Решения конкретных задач, связанных с Incoming.

На этой странице подразумевается настройка SSH, приведённая здесь.

Проверка настроенности Incoming

$ ssh incoming
Connection to devel.altlinux.org closed.
$ rsync incoming:/incoming/
drwxr-x--x        4096 2007/10/30 20:28:31 .
drwxrws--T        4096 2008/08/12 04:31:05 Daedalus
drwxrwx--T       28672 2008/08/15 02:32:09 Sisyphus
drwxr-s---        4096 2007/04/25 06:12:42 backports
drwxrws--T        4096 2008/08/05 10:30:00 join
drwxr-x--x        4096 2006/06/11 01:09:37 notes
drwxr-s---        4096 2008/05/30 22:20:47 updates
$

Полезные ключи rsync

-v
выдавать больше информации в процессе
-a
рекурсивное копирование с сохранением симлинков, прав, mtime, владельца и группы файлов
--stats
выдавать статистику передачи
-P
сохранять частично переданные файлы при обрыве, показывать прогресс операции

Управление пакетами

Просмотр содержимого Incoming

$ rsync incoming:/incoming/Sisyphus/
drwxrwx--T       28672 2008/08/15 02:32:09 .
-rw-r--r--    15049105 2008/07/03 19:34:28 FirebirdCS-2.0.3-alt1.src.rpm
...
-rw-r--r--     1472330 2008/07/28 21:01:29 zebra-0.95a-alt1.src.rpm
$

Скачивание к себе файла из Incoming

$ rsync incoming:/incoming/Sisyphus/zebra-0.95a-alt1.src.rpm .
$

Удаление всех своих файлов из определённой директории

$ rsync -r --delete /var/empty/ incoming:/incoming/Sisyphus/
rsync: delete_file: unlink(zebra-0.95a-alt1.src.rpm) failed: Operation not permitted (1)
...
rsync: delete_file: unlink(FirebirdCS-2.0.3-alt1.src.rpm) failed: Operation not permitted (1)
$

Для чужих файлов (разумеется) выдаётся permission denied. Чтобы удалить только часть своих файлов, нужно вместо /var/empty/ подсунуть директорию, где находятся файлы, которые удалять не нужно.

Пересборка пакета

Если в incoming лежит пакет, который не пересобрался из-за проблем со сборочной средой, то его можно заставить пересобраться ещё раз. Для этого необходимо сделать touch локальному файлу и синхронизировать его с копией, лежащей в incoming.

$ ls myfile.src.rpm
myfile.src.rpm
$ touch myfile.src.rpm
$ rsync myfile.src.rpm incoming:/incoming/Sisyphus/myfile.src.rpm
$

Управление ACL пакетов

Внимание! Управлять ACL могут только лидеры (первые в списке ACL) пакета.

В советах ниже ВАШЕ_ИМЯ означает имя в Team (почта, аккаунты в git.alt и incoming).

Добавление кого-либо в ACL пакета

echo ПАКЕТ add КТО_ТО > ВАШЕ_ИМЯ
rsync --inplace ВАШЕ_ИМЯ incoming:/incoming/notes/Sisyphus/

Передача пакета кому-то ещё

echo ПАКЕТ add КТО_ТО > ВАШЕ_ИМЯ
echo ПАКЕТ leader КТО_ТО >> ВАШЕ_ИМЯ
rsync --inplace ВАШЕ_ИМЯ incoming:/incoming/notes/Sisyphus/

Выдача NMU на пакет

echo ПАКЕТ nmu КТО_ТО > ВАШЕ_ИМЯ
rsync --inplace ВАШЕ_ИМЯ incoming:/incoming/notes/Sisyphus/

Отказ от пакета

Эта команда снимает ограничения на NMU и не-NMU заливку пакета. После следующей заливки заливающий будет объявлен майнтайнером пакета и ACL на пакет будет сброшен.

echo ПАКЕТ rem #all > ВАШЕ_ИМЯ
rsync --inplace ВАШЕ_ИМЯ incoming:/incoming/notes/Sisyphus/

Передача пакета в общую разработку

Эта команда снимает ограничения на NMU и не-NMU заливку пакета.

echo ПАКЕТ add @everybody > ВАШЕ_ИМЯ
rsync --inplace ВАШЕ_ИМЯ incoming:/incoming/notes/Sisyphus/

Управление группами

Внимание! Управлять составом группы могут только лидеры (первые в списке членов) группы.

Создание группы

Вручную, письмом на incoming, с названием группы и начальным списком участников.

Добавление в группу

echo ГРУППА add КТО_ТО > ВАШЕ_ИМЯ
rsync --inplace ВАШЕ_ИМЯ incoming:/incomnig/notes/Sisyphus/