Какой рейтинг вас больше интересует?
|
с новым гадом!2010-01-08 17:45:00 (читать в оригинале)/* -Мальцик, мальцик сам виноват! /вопль судьи (после речи обвиняемого) на слушании дела по изнасилованию несовершеннолетнего.../ всех со всеми, всего, того же и туда же... надеюсь, что НГ удался на славу и вы можете по крупицам восстанавливать хронологию событий в ближайшем будущем. эта заметка планировалась как "последняя" в "цикле" про OBS, но, планы эт одно, а каменная жопа реальности - совсем другое дело. к тому же один мой друг скоро должен академическим языком (в отличие от аффтара) изложить свои мысли и наработки по OBS - должно быть весьма занимательно, пропиарю, не сумлевайтесь. поскольку сей очерк содержит несколько ключевых "идей" (сиречь посланий, что должны быть где-то зафиксированы как минимум), то выстроить логическую цепочку изложения материала проблематично. возможно, что материал будет жестоко корректироваться после публикации. предыдущие серии нашего "опуса" можно считать "обзорными" - сиречь обо всём и ни о чём. тут же - другое дело. сугубо практика и описание "ухабов" на легендарном пути "из Петербурга в Маскву". будем задавать себе вопросы и искать на них пральные ответы (тихо сам с собою, умным человеком, я веду беседу...). вопрос первый: 1. Какого хуя при локальной сборке пакета (rpmbuild -bb file.spec) всё путём, а OBS не может понять, что все зависимости заданы корректно?! т.е. Вы, как пионэр, в "BuildRequires:" прописали всё, что надо (и даже больше), но сборка сыпется с сообщениями, что требуемого пакета в "сборочном окружении" нет (хотя лог показывает, что сей пакет корректно установлен!). в 99% случаев это жестокий "прикол" утилиты "/usr/bin/pkg-config", связанный с разблядовкой собранной программы на "-devel" и прочие "обычные" пакеты. OBS/(rpm в частности) самостоятельно отслеживает динамических линковку либ/бинарей и выставляет корректный "Requires:" (прямые зависимости пакета) для результата. но, это, сцуко, только для "non devel related" пакетов! соответственно команда: > rpm -qR имя_пакета выдаст вам на гора список прямых зависимостей. поэтому ежели вы ваяете "devel" пакет, то "аз, буки, веди" - вхуярить в спек файл следующее: %devel [-n новое_имя] Group: чего-то там Summary: И вас туда же (да-да-да, с Заглавной, мать её, буквы!) Requires: %{name} = %{version} то, что дано в квадратных скобках - [] - опционально. но пример выше лишь указывает, что при установке "devel" пакета в систему надо обязательно тащить и "основной пакет". "прямые" зависимости на "devel" пакеты OBS/rpm НЕ ОТСЛЕЖИВАЕТ! и у "pkg-config" (который работает исключительно с "devel" пакетами) сносит крышу, когда, допустим, требуется для сборки "curl", в "сборочное окружение" "libcurl" установлен, но, "/usr/lib/pkgconfig/libcurl.pc" файла-то НЕТ! ибо надо ручками, самому, в секцию "%devel" дорисовывать: Requires: пакет1-devel пакет2-devel ..... т.е. риска для "хомячков" (которым spec-файл и в кошмарном сне не привидится) нет никакого, а вот "господа мейнтейнеры" огребают по полной (причём справедливо, по результатам теста на IQ). как это ловить: если "rpmbuild -bb[-ba] файл.spec" проходит на ура, а в OBS - жопа, то даём команду: > osc build в результате у нас в "/var/tmp/build-root/" будет сформировано окружение для сборки. можно сделать: > sudo chroot /var/tmp/build-root/ > pkg-config --modversion имя_требуемого_пакета если всё путём - то последняя команда выдаст версию установленного пакета, если нет - то вы хоть поймёте где накосячили. соответственно исправляем/(пинаем мейнтейнера) косяки. очень полезно в данном случае вдумчиво ознакомиться с политикой Партии по обновлению пакетов, да! 2. Бля, всё собралось, репо не обновляется! Шозахуйня?! сынок, не ссы, всё путём! одна из "фишек" OBS именно в том, что репо не будет обновлено до тех пор, пока не произойдёт удовлетворение ВСЕХ зависимых пакетов (хомячки в восторге писают гранулированным кипятком, их системы всегда будут в рабочем состоянии)! поясню. допустим мы вносим изменения в пакет А, от которого зависят пакеты B и С. репо не будет обновлено до тех пор, пока пакеты B и С не отрапортуют об успешной пересборке с ИЗМЕНИВШИМСЯ пакетом А. это вам не "ебиан" и не "федорино горе" - привыкайте заботиться о Пользователях, Господа хорошие! одним из следствий этого являются "большие" номера "релизов" в SLE/SUSE ("Release: №"), ибо значение этого поля состоит из двух цифр, разделённых точкой (.). первая цифирь - судит о том, как долго вы ебались со спеком, прежде чем он собрался в OBS, вторая - сколько раз перехуяривали зависимости к вашему пакету... кроме того, есть такая штука, как scheduler - это некий виртуальный администратор на раздачу заданий в OBS - он может быть завален работой по самое ни-ни и не стоит требовать в данном случае от него немедленного удовлетворения ваших низменных потребностей. 3. Ёб вашу мать! Пакет в порядке, какого хуя сборка упала?! "shit happens, you know..." будьте готовы к тому, что некоторые "сборочные цеха" примут ваш заказ на исполнение и уйдут в запой немедленно. результат - "failed" статус для полностью корректного пакета по причине того, что виртуальный "XEN-build-host" наебнулся с ошибкой в собственной конфигурации. ничего страшного, кроме того, что рестартовать сборку надо вручную (оно само пока не способно себя же контролировать). хомячки этого даже не заметят. 4. А-а-а! Демоны! Демоны! как правило подобные "эмоции" характерны для товарищей, не осиливших макросы при сборке rpm-пакетов. это особенно актуально для модулей пистона (python), жемчужины (perl) и прочих скриптовых языков. с версии openSUSE-11.2 идёт тенденция спихнуть это всё на "noarch" архитектуру (ибо скрипты одинаковы для всех), что порождает порой забавные ситуации (забавные - эт если со стороны смотреть...). совет тут один - "читайте книжки"... 5. Слышь, начальник, я это, свой OBS хочу намутить! Шо делать надо? читать! здеся: Build_Service всё и неоднократно... ************* вскоре вместо этих "звёздочек" появится материал по работе с модулями ядра при Code11 или же ознакомьтесь с подробной документацией, пжалста.... кроме того могу проинформировать всех SLE/SUSE пользователей Enlightenment Desktop Shell об успешном апдейте репов на E-svn-20100103_r44860 и о сборке python-EFL "bindings" для openSUSE-11.2. там же вы можете найти кучу новых пакетов, типа виртуальной клавиатуры на EFL/elementary или же медиа-центра "Canola" (который пока не пашет должным образом, ибо EFL у нас дюже "новэнький", а "canola" хочет более старых версий...) всем удачи и творческих узбеков в новом, 2010-ом, году! */
|
Категория «Кино»
Взлеты Топ 5
Падения Топ 5
Популярные за сутки
|
Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.