[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