[devel] Стек решений автоматизации. lvl.3 (c баснями)

Igor Vlasenko vlasenko на imath.kiev.ua
Вс Дек 2 03:50:29 MSK 2012


Стек решений автоматизации.

[Спойлер]начало немного скучное, но в конце пойдут басни.[/Спойлер]

Третий уровень - утилиты обработки репозитория.

От утилит второго уровня - утилит работы с пакетами -
утилиты третьего уровня отличаются тем, что к ним подключена 
библиотека работы с репозиториями.

Основной режим этой библиотеки -- утилите настраиваются 2 репозитория.
Репозиторий источник (origin) и результирующий репозиторий (destination).
На вход подаются имена пакетов, утилита ищет их в обеих репозиториях,
есть критерий сравнения (например, пакет должен быть старше)
и если критерий выполнен, то выполняется действие.

В предыдущем мануале я давал примеры с level2 утилитой srpmbackport,
и совсем опустил тему с level2 утилитами импорта вроде srpmimport-fc
или srpmimport-mga. С одной стороны, это направление еще в разработке,
еще не готово для работы из коробки. С другой стороны, я и сам этими 
утилитами практически не пользуюсь, разве что нужно сконвертировать
левый внедистрибутивный пакет от апстрима.

Почему так? Потому, что если пакет дистрибутивный, то гораздо удобнее
пользоваться не утилитами 2-го уровня, а специально настроенной под
этот дистрибутив утилитой 3-го уровня.

Вот пример из сегодняшней жизни.

Изучал вопрос, как насчет подключить что-нибудь к Raspberry Pi по i2c.
наткнулся на http://binerry.de/post/27067411903/i2c-level-shifter-i2c-bridge
там была и схемка в формате fritzing prototype.
Oops! а смотреть-то ее не чем, fritzing у нас не собран.
Непорядок. 

Пинаем робота, чтобы пришел на помощь:

 $ fcmass fritzing
Записан: ./OUT/fritzing-0.7.5b-alt1_2.src.rpm

Молодец. Собираем:

 $ hsh ./OUT/fritzing-0.7.5b-alt1_2.src.rpm  2>&1 | tee hsh.log
[ . . . ]
E: Невозможно найти пакет quazip-devel

Отлуп. попробуем в обход:

 $ fcmass quazip
Записан: ./OUT/quazip-0.5-alt1_1.src.rpm
$ hsh ./OUT/quazip-0.5-alt1_1.src.rpm  2>&1 | tee hsh.log
[ . . . ]
Wrote: /usr/src/RPM/SRPMS/quazip-0.5-alt1_1.src.rpm
Wrote: /usr/src/RPM/RPMS/x86_64/quazip-0.5-alt1_1.x86_64.rpm
Wrote: /usr/src/RPM/RPMS/x86_64/quazip-devel-0.5-alt1_1.x86_64.rpm
Wrote: /usr/src/RPM/RPMS/x86_64/quazip-debuginfo-0.5-alt1_1.x86_64.rpm
8.43user 1.60system 0:17.16elapsed 58%CPU (0avgtext+0avgdata
232464maxresident)k0inputs+0outputs (0major+755716minor)pagefaults 0swaps

Ура! сработало. Пробуем опять:

 $ hsh ./OUT/fritzing-0.7.5b-alt1_2.src.rpm  2>&1 | tee hsh.log
[ . . . ]
Wrote: /usr/src/RPM/SRPMS/fritzing-0.7.5b-alt1_2.src.rpm
Wrote: /usr/src/RPM/RPMS/x86_64/fritzing-0.7.5b-alt1_2.x86_64.rpm
Wrote:/usr/src/RPM/RPMS/x86_64/fritzing-debuginfo-0.7.5b-alt1_2.x86_64.rpm
391.82user 25.10system 6:59.92elapsed 99%CPU (0avgtext+0avgdata 1826656maxresident)k0inputs+0outputs (0major+8215063minor)pagefaults 0swaps

Готово. Еще сходил на autoimports.altlinux.org 
и отпинал тамошнего робота, чтобы он собрал и выложил в
публичное пользование quazip и fritzing, но поскольку 
тот уже робот четвертого уровня, то он не тема 
сегодняшней статьи.

Пока писал статью, Игорь повесил баг с просьбой собрать
plee-the-bear под i586. Там кривой cmake, и в свое время
я просто плюнул и прибил в нем гвоздями ExclusiveArch: x86_64.

Открываю fcimport.git/hooks/plee-the-bear.pl
-------------------------------------------
push @SPECHOOKS, 
sub {
    my ($spec, $parent) = @_;
    # 0.5.1-1, 0.6.0-7 @ugly cmake
    $spec->get_section('package','')->push_body('ExclusiveArch: x86_64'."\n");
};
-------------------------------------------
и комментирую строчку с 
 get_section('package','')->push_body('ExclusiveArch: x86_64'."\n");

Пинаю робота:

 $ fcmass plee-the-bear
 $ 
Ноль реакции. Оказывается, в Сизифе 
plee-the-bear-0.6.0-alt4_7.src.rpm,
в Федоре plee-the-bear-0.6.0-7.fc19.src.rpm,
релизы равны, робот считает, что обновлять там нечего.
Придется применить силу :)

 $ fcmass plee-the-bear --strategy force
Записан: ./OUT/plee-the-bear-0.6.0-alt5_7.src.rpm

Пробую собрать под i586, смотрю на уродливейший выхлоп
от cmake c -L "<enter>
"
Где <enter> рвет командную строку пополам, в результате чего
ничего не линкуется, вздыхаю и возвращаюсь к этой статье.

Как видим, робот не волшебник, подготовить пакет он может,
но собирать и тестировать его все равно нам.

-- 

Dr. Igor Vlasenko
--------------------
Topology Department
Institute of Math
Kiev, Ukraine


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.



Подробная информация о списке рассылки Devel