Packaging Automation/MassProcessing/MassImportAndSupport: различия между версиями
м (→Первый запуск) |
|||
Строка 83: | Строка 83: | ||
<source lang="bash"> | <source lang="bash"> | ||
#!/bin/sh | #!/bin/sh | ||
fcmass --origin TRINITY/trinity/rpm/f23/trinity-r14/SRPMS --dest ~/hasher/repo/SRPMS.hasher:./ALT/Sisyhus/files/SRPMS:./ALT/5.1/files/SRPMS "$@" | fcmass \ | ||
--origin TRINITY/trinity/rpm/f23/trinity-r14/SRPMS \ | |||
--dest ~/hasher/repo/SRPMS.hasher:./ALT/Sisyhus/files/SRPMS:./ALT/5.1/files/SRPMS "$@" | |||
</source> | </source> | ||
Строка 90: | Строка 92: | ||
fcmass --origin TRINITY/trinity/rpm/f23/trinity-r14/SRPMS --hook set_trinity_version.pl --macrodef tde_version=14.0.3 `cat trinity.txt` 2>&1 | tee import.log | fcmass --origin TRINITY/trinity/rpm/f23/trinity-r14/SRPMS \ | ||
--hook set_trinity_version.pl --macrodef tde_version=14.0.3 `cat trinity.txt` 2>&1 | tee import.log | |||
cp hooks/template.pl set_trinity_version.pl | cp hooks/template.pl set_trinity_version.pl |
Версия от 19:14, 10 октября 2016
Введение.
TODO
Примеры
trinity
описание проекта trinity
Руслан Хихин планирует собрирать в Сизиф TDE. Есть готовый набор rpm trinity-r14, которые можно скачать с сайта проекта. Эти rpm с помoщью %if-ов рассчитаны на поддержку одновременно и fedora, и SuSE. Можно настроить их преобразование из SuSE в ALT, можно (и надежнее, так как лучше оттестировано) преобразование из fedora в ALT.
Настроим автоматическое преобразование этих пакетов из fedora в ALTLinux.
предварительная настройка рабочего места
Массовое автоматическое преобразование этих пакетов из fedora в ALTLinux выполняет утилита fcmass. (Из SuSE -- susemass). Установим ее и нужную ей базу distromap:
apt-get install /usr/bin/fcmass distromap-fedora-rawhide-altlinux-sisyphus
Также обновим базу DistroDB Сизифа:
distrodb-update-repocop-db-altlinux-sisyphus
Приступим к работе. Удобно для работы создать выделенный git реозиторий, в котором хранить скрипты синхронизации, хуки и патчи для пакетов и другие настройки специально для этого набора пакетов.
mkdir trinity-package-builder.git cd trinity-package-builder.git git init-db
Утилите fcmass при запуске нужно указать исходный репозиторий (origin), конечный репозиторий (destination), и список имен сопровождаемых пакетов.
Конечный репозиторий (destination) --- это Sisyphus. Предположим, что зеркало Sisyphus находится в /var/ftp/pub/Linux/ALT/Sisyphus Для краткости, сделаем симлинк
ln -s /var/ftp/pub/Linux/ALT ./ALT
Исходный репозиторий (origin) -- это набор rpm trinity-r14 с сайта проекта. Их тоже надо скачать и поместить под рукой. Скачаем пакеты исходного репозитория. Удобно сразу же написать скрипт для скачивания, так как им же будем и проверять набор пакетов на обновления.
mkdir bin vim bin/update_triity.sh
Где скрипт bin/update_triity.sh имеет вид
mkdir -p TRINITY/trinity/rpm/f23/trinity-r14/ rsync -avp --delete-after rsync://mirror.ntmm.org/trinity/trinity/rpm/f23/trinity-r14/SRPMS TRINITY/trinity/rpm/f23/trinity-r14/
Запустив его, получим в папке TRINITY исходные пакеты.
Далее получим список имен сопровождаемых пакетов.
rpmquery --qf '%{NAME}\n' -p TRINITY/trinity/rpm/f23/trinity-r14/SRPMS/*src.rpm > trinity.txt
проверка изначального списка
Пакеты, которые входят в апстримный набор, нужно проверить -- нет ли их в Сизифе. В особенности подозрительны пакеты без префикса trinity-*: это fileshareset hk_classes pan torsocks wv2.
Проверка показала, что fileshareset нет, hk_classes сейчас нет, но в 5.1 был
/var/ftp/pub/Linux/ALT/5.1/branch/files/SRPMS/hk_classes-0.8.3-alt3.src.rpm
поэтому hk_classes первый раз надо будет сгенерировать отдельно с опцией --release alt3_1, чтобы пакет был старше, чем alt3. pan найден в autoimports, я его переложил в Сизиф, так как он более свежий (1.140), torsocks и wv2 найдены в Сизифе.
/var/ftp/pub/Linux/ALT/Sisyphus/files/SRPMS/wv2-0.4.2-alt3.src.rpm /var/ftp/pub/Linux/ALT/Sisyphus/files/SRPMS/torsocks-2.2.0-alt1.gite389c999.src.rpm
Следовательно, список trinity.txt надо отредактировать, удалив pan torsocks wv2.
Первый запуск
Сделаем обертку над fcmass, скрипт mytrinitymass, где укажем origin и dest репозитории
#!/bin/sh
fcmass \
--origin TRINITY/trinity/rpm/f23/trinity-r14/SRPMS \
--dest ~/hasher/repo/SRPMS.hasher:./ALT/Sisyhus/files/SRPMS:./ALT/5.1/files/SRPMS "$@"
первый запуск: ./mytrinitymass `cat trinity.txt`
fcmass --origin TRINITY/trinity/rpm/f23/trinity-r14/SRPMS \
--hook set_trinity_version.pl --macrodef tde_version=14.0.3 `cat trinity.txt` 2>&1 | tee import.log
cp hooks/template.pl set_trinity_version.pl
#!/usr/bin/perl -w push @SPECHOOKS, sub { my ($spec, $parent) = @_; $spec->get_section('package',)->unshift_body('%define tde_version 14.0.3'."\n"); }; __END__