Packaging Automation/MassProcessing/MassImportAndSupport: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 27: Строка 27:
  cd trinity-package-builder.git
  cd trinity-package-builder.git
  git init-db
  git init-db
Утилите fcmass при запуске нужно указать исходный репозиторий (origin) и конечный репозиторий (destination).
Утилите fcmass при запуске нужно указать исходный репозиторий (origin), конечный репозиторий (destination),
и список имен сопровождаемых пакетов.
 
Конечный репозиторий (destination) --- это Sisyphus.  
Конечный репозиторий (destination) --- это Sisyphus.  
Предположим, что зеркало Sisyphus находится в /var/ftp/pub/Linux/ALT/Sisyphus
Предположим, что зеркало Sisyphus находится в /var/ftp/pub/Linux/ALT/Sisyphus
Для краткости, сделаем симлинк  
Для краткости, сделаем симлинк  
  ln -s /var/ftp/pub/Linux/ALT ./ALT
  ln -s /var/ftp/pub/Linux/ALT ./ALT
Исходный репозиторий (origin) -- это набор rpm trinity-r14.


Исходный репозиторий (origin) -- это набор rpm trinity-r14 с сайта проекта.
Их тоже надо скачать и поместить под рукой.
Скачаем пакеты исходного репозитория. Удобно сразу же написать скрипт для скачивания,
Скачаем пакеты исходного репозитория. Удобно сразу же написать скрипт для скачивания,
так как им же будем и проверять набор пакетов на обновления.
так как им же будем и проверять набор пакетов на обновления.
Строка 42: Строка 45:
  rsync -avp --delete-after rsync://mirror.ntmm.org/trinity/trinity/rpm/f23/trinity-r14/SRPMS 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 исходные пакеты.
Запустив его, получим в папке TRINITY исходные пакеты.
Далее получим список имен сопровождаемых пакетов.


  rpmquery --qf '%{NAME}\n' -p TRINITY/trinity/rpm/f23/trinity-r14/SRPMS/*src.rpm > trinity.txt
  rpmquery --qf '%{NAME}\n' -p TRINITY/trinity/rpm/f23/trinity-r14/SRPMS/*src.rpm > trinity.txt


  fcmass --str a -v fileshareset hk_classes pan torsocks wv2
  fcmass --str a -v fileshareset hk_classes pan torsocks wv2

Версия от 18:37, 10 октября 2016



Введение.

TODO

Примеры

trinity

Руслан Хихин планирует собрирать в Сизиф TDE. Есть готовый набор rpm trinity-r14, которые можно скачать с сайта проекта. Но эти rpm рассчитаны либо на fedora, либо на SuSE. Настроим автоматическое преобразование этих пакетов из fedora в ALTLinux.

Массовое автоматическое преобразование этих пакетов из fedora в ALTLinux выполняет утилита fcmass. Установим ее и нужную ей базу distromap:

apt-get install /usr/bin/fcmass distromap-fedora-rawhide-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


fcmass --str a -v fileshareset hk_classes pan torsocks wv2
ERROR: origin file for fileshareset not found.
ERROR: origin file for hk_classes not found.
info: origin: /var/ftp/pub/Linux/fedora/linux/development/rawhide/Everything/source/tree/Packages/p/pan-0.140-1.fc25.src.rpm
info: parent: /var/ftp/pub/Linux/ALT/fcimport/Sisyphus/files/SRPMS/pan-0.140-alt1_1.src.rpm
INFO: SourceAnalyzer: nothing in pkg-config provides webkitgtk-1.0.
SourceAnalyzer: some deps weren't found. Is DistroMap database outdated?
Записан: ./OUT/pan-0.140-alt2_1.src.rpm
---*---
info: origin: /var/ftp/pub/Linux/fedora/linux/development/rawhide/Everything/source/tree/Packages/t/torsocks-2.1.0-3.fc24.src.rpm
info: parent: /var/ftp/pub/Linux/ALT/Sisyphus/files/SRPMS/torsocks-2.2.0-alt1.gite389c999.src.rpm
note: downgrade detected; increasing serial to 1
Записан: ./OUT/torsocks-2.1.0-alt1_3.src.rpm
/var/ftp/pub/Linux/ALT/Sisyphus/files/SRPMS/wv2-0.4.2-alt3.src.rpm
/var/ftp/pub/Linux/ALT/5.1/branch/files/SRPMS/hk_classes-0.8.3-alt3.src.rpm


fcmass --origin TRINITY/trinity/rpm/f23/trinity-r14/SRPMS `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__