Страница 1 из 1
Разработка / компиляция и сборка rpm
Добавлено: 08 фев 2013, 15:12
Shura
Порой хотелось бы собирать некоторые пакеты самому, ибо компьютер есть, почему бы не помочь сообществу. В связи с этим есть ряд вопросов.
1. Не хочется засирать систему горой всяких библиотек для разработки и черте чего еще. Вдобавок некоторые исходные коды требуют версий библиотек, отличных от установленных.
В связи с этим вопрос - как проще всего организовать сборочную песочницу? Есть готовые мануалы? chroot, openVZ, что-то еще. Как организовать с минимальными усилиями Росу в качестве гостевой системы.
2. Вот этот вот кошмар со сборкой rpm с созданием дерева rpm/BUILD и
ручным прописыванием зависимостей. Это навсегда? Есть пути обхода? Неужели так сложно обнаружить зависимости автоматически? Может есть волшебные утилиты?
Открываю вот это
http://wiki.mandriva.com/ru/Development/Howto/RPM и немедленно закрываю. Для кого весь этот ад? Есть скрипты, делающие всё это автоматически? Чтобы я только описание программы написал и её название.
Re: Разработка / компиляция и сборка rpm
Добавлено: 08 фев 2013, 16:09
d_uragan
Попробуйте
http://wiki.rosalab.ru/ru/index.php/Mock-urpm
При первом запуске достаточно много времени уйдет на создание chroot, но потом можно переиспользовать уже имеющееся окружение.
Re: Разработка / компиляция и сборка rpm
Добавлено: 08 фев 2013, 16:16
Shura
Спасибо, попробую. Он собирает только из src-rpm или и простых исходников тоже может?
Re: Разработка / компиляция и сборка rpm
Добавлено: 08 фев 2013, 16:23
VictorR2007
Да не так серьезно. Я для этого держу ОС на внешнем диске.
Правда это только задумка, в основном превращаю основную систему в сборочную (лень перезагружать туда сюда). Из минусов этого, когда пользовался разрабатываемой версией и шло постоянное обновление большого количества пакетов (у меня девелов было около тысячи), быстрая фрагментация корневого раздела.
А в остальном не так все страшно. Спеки можно найти в старых пакетах или других дистрах.
Если не хватает зависимостей или версия в репах не подходит, можно сначала ее собрать или обновить.
Если в репах совсем нет нужных src для того чтобы стянуть оттуда, можно поискать тут
http://pkgs.org/. Там очень удобно искать. Даже вбив в поиску библиотеку, мы получим необходимый пакет
в котором она лежит. А потом скачать src не проблема. Раньше там были сразу прямые ссылки
на пакеты и src.
По спекам тоже не так все страшно (только не для меня), Если не знаем нужных зависимостей,
то при сборке увидим в ошибке. Или можно запустить компиляцию и посмотреть и дописать нужные.
Ну и пути. Если при сборке получаем сообщение об ошибке и что остались неупакованные файлы,
заходим в ~/rpmbuild/BUILDROOT/ и далее в каталог с несобранной программой, смотрим где лежат эти
файлы и дописываем их в спек. Но возможно и наоборот, что-то придется из спека убрать.
Это только мое видение. Я довольно малограмотный и это все до меня дошло методом тыка.
Возможно так не верно и правильнее по другому. Тут майнтейнеры пакетов особо не подскажут.
Им и некогда, и просто нянчится с почемучкой которому приспичило поиграть со сборкой не хочется.
Но правильную подсказку может дадут. Кто действительно хочет, разберется и получит некоторые необходимые знания.
Но по любому нужно смотреть чужие спеки и с них брать пример или копировать их, меняя что необходимо.
Спасибо за тему. Может получится интересная или будут по возможности давать советы
майнтейнеры по аналогии с темой по русификации.
Re: Разработка / компиляция и сборка rpm
Добавлено: 08 фев 2013, 18:18
Константин
Да простят меня гуру, я пользуюсь checkinstall
Для того чтобы он мог сразу устанавливать пакеты, надо в источниках пакетов добавить локальный /root/rpmbuild/rpms/i586
Работает достаточно просто - собрал проект и вместо
# make install
делаю
# checkinstall
Отвечаю на несколько вопросов (автоматом) заполняю описание, если надо подправляю название пакета и.. как его.. 11 номером идет - то-же что и название. И всё.
А, иногда бывают проблемы и приходится сначала
# make install
и следом
# checkinstall
Тогда всё встаёт на свои места.
Зависимости не прописывю, в rpm среде зависимости как-то сами встают, вроде
Попробовал вчера libkdeaccessibilityclient удалить, а он говорит - этот пакет нужен Simon'у Значит работают зависимости?
Re: Разработка / компиляция и сборка rpm
Добавлено: 08 фев 2013, 18:58
VictorR2007
Константин писал(а):Зависимости не прописывю, в rpm среде зависимости как-то сами встают, вроде
Попробовал вчера libkdeaccessibilityclient удалить, а он говорит - этот пакет нужен Simon'у Значит работают зависимости?
Немного не так. По пакету libkdeaccessibilityclient я не очень разбирался. Но как понял,
при компиляции Simon, он там прописан в cmake. Если нет в наличии, он должен подтянуться через
интернет и скомпилиться. Поэтому он наверное и попал у вас в зависимости.
И часто при большом количестве установленных девелах можно пропустить зависимость.
Re: Разработка / компиляция и сборка rpm
Добавлено: 09 фев 2013, 05:50
Константин
Ну, для сравнения, я обновил все пакеты. Когда запустил Криту, она вывалилась с ошибкой - не хватает LitleCMS. И такое в репозитории. Ну по сравнению с таким - чекинсталл очень даже не плохо собирает
Re: Разработка / компиляция и сборка rpm
Добавлено: 09 фев 2013, 10:13
Shura
Константин писал(а):Да простят меня гуру, я пользуюсь checkinstall
Для того чтобы он мог сразу устанавливать пакеты, надо в источниках пакетов добавить локальный /root/rpmbuild/rpms/i586
Работает достаточно просто - собрал проект и вместо
# make install
делаю
# checkinstall
Отвечаю на несколько вопросов (автоматом) заполняю описание, если надо подправляю название пакета и.. как его.. 11 номером идет - то-же что и название. И всё.
А, иногда бывают проблемы и приходится сначала
# make install
и следом
# checkinstall
Тогда всё встаёт на свои места.
Зависимости не прописывю, в rpm среде зависимости как-то сами встают, вроде
Попробовал вчера libkdeaccessibilityclient удалить, а он говорит - этот пакет нужен Simon'у Значит работают зависимости?
При таком подходе в системе срач будет. Хотелось бы именно в отдельном окружении всё это собирать
Re: Разработка / компиляция и сборка rpm
Добавлено: 09 фев 2013, 10:14
Shura
Да что ж такое!!!
Код: Выделить всё
sudo urpmi mock-urpm
[sudo] password for shura:
Не удаётся установить следующие пакеты, т.к. они зависят от пакетов,
более старых, чем установленные:
rpm-build-5.4.10-6
mock-urpm-1.1.12-16
Продолжить установку?
Продолжить установку? (Y/n)
Хоть часть пакетов и могла быть установлена, произошли ошибки.
Не удаётся установить следующие пакеты, т.к. они зависят от пакетов,
более старых, чем установленные:
rpm-build-5.4.10-6
mock-urpm-1.1.12-16
Продолжить установку?
shura [/home/shura]$
Re: Разработка / компиляция и сборка rpm
Добавлено: 09 фев 2013, 16:07
Shura
Поставился, но теперь не запускается
Код: Выделить всё
$ sudo mock-urpm --init
/usr/sbin/../../etc/mock-urpm
Avaliable configurations:
Rosa-2012.1-x86_64, Mandriva-cooker-x86_64, Mandriva-2011-i586, Mandriva-2011-x86_64, Mandriva-cooker-i586, Rosa-2012lts-x86_64, Rosa-2012lts-i586, Rosa-2012.1-i586
Select one (it will be remembered): Rosa-2012.1-x86_64
Traceback (most recent call last):
File "/usr/sbin/mock-urpm", line 497, in <module>
def do_buildsrpm(config_opts, chroot, options, args):
File "/usr/sbin/mock-urpm", line 614, in main
fix_configs(config_path)
File "/usr/sbin/mock-urpm", line 890, in fix_configs
os.symlink(config_path + '/%s.cfg' % res, config_path + '/default.cfg')
OSError: [Errno 13] Отказано в доступе
Ну почему никогда не бывает так, чтобы просто запустилось и заработало?
Re: Разработка / компиляция и сборка rpm
Добавлено: 09 фев 2013, 16:10
VictorR2007
В другой теме было
Shura писал(а):Спасибо, но я хочу использовать новый метод сборки с использованием mock-urpm
Потом отписывайся тут пожалуйста. Интересно, как с ней работать.
Мне удобнее через rpm. Если затеете собирать через rpmbuild, там сейчас на rpm5 придется
много править спек. В секции %files не должны повторяться пути. Не очень сложно, но лишняя работа.
А через rpm этого не нужно. По любому стоит почитать rpm --help, там дофига интересного.
Re: Разработка / компиляция и сборка rpm
Добавлено: 09 фев 2013, 16:13
VictorR2007
А что у вас с источниками? Что там за запрос в выборе ОС?
Re: Разработка / компиляция и сборка rpm
Добавлено: 09 фев 2013, 16:17
Shura
Хз что там с источниками. Всё по-умолчанию.
Но меня начинают терзать смутные сомнения, что эта штука годится только для сборка src.rpm. По крайней мере других примеров использования я нигде не нашёл....
Я уже начинаю ненавидеть всё это. Ей богу, проще VirtualBox поставить и всё там внутри запустить, чем нормально чрутнуться.
Re: Разработка / компиляция и сборка rpm
Добавлено: 09 фев 2013, 16:21
VictorR2007
Да, вроде mock-urpm всегда выпадает при подключенных левых источниках.
У меня при подключении локального зеркала работает нормально, но если подключаю
каталог с пакетами не из зеркала (таких у меня несколько), то он не хочет работать.
Re: Разработка / компиляция и сборка rpm
Добавлено: 09 фев 2013, 16:27
Shura
И chroot тоже не получается выполнить:
Код: Выделить всё
chroot .
chroot: не удалось выполнить команду «/bin/zsh»: Нет такого файла или каталога
Хотя файл такой есть.
Re: Разработка / компиляция и сборка rpm
Добавлено: 09 фев 2013, 17:10
VictorR2007
Shura писал(а):И chroot тоже не получается выполнить:
Код: Выделить всё
chroot .
chroot: не удалось выполнить команду «/bin/zsh»: Нет такого файла или каталога
Хотя файл такой есть.
А пакет zsh установлен.
Вообще не вижу смысла в таких мучениях. То, что вы будете собирать в независимой среде,
не исключает установку девелов. Поэтому может стоит собирать через rpm.
А так, похоже что у вас что-то с неразрешимыми зависимостями.
Похоже что ранее откуда-то обновились не верно и теперь не все зависимости ставятся.
С девелами в такой ситуации легко, пытаемся установить через "Установка и удаление"
видим на каком пакете ошибка. Который выдает сообщение, что не может быть установлен и т.п., Запускаем в консоли
и устанавливаем все необходимое
для сборки отвечая всегда
y. На ОС это не влияет, там только для сборки. Ну и скорее всего придется повторить команду два или три раза. И возможно понадобится отдельно выполнить эту команду для каких-то файлов из получаемого списка, если не удается установить полный список и ошибка установки повторяется. Особо не парьтесь по этому поводу, у меня никогда нет нормальных зависимостей, на все
urpmi ругается, так как дофига собираю более нового и устанавливаю. Но все отлично работает.
Правда мне это привычно, несколько лет пользовался этим источником обновлений. Он ломал все зависимости.
ftp://ftp.mdvrb-factory.de/mandriva/2011.0/
Re: Разработка / компиляция и сборка rpm
Добавлено: 10 фев 2013, 14:50
Pulfer
Константин писал(а):Ну, для сравнения, я обновил все пакеты. Когда запустил Криту, она вывалилась с ошибкой - не хватает LitleCMS. И такое в репозитории. Ну по сравнению с таким - чекинсталл очень даже не плохо собирает
Да krita-то нормально собрана, просто пакет LitleCMS не ставится по зависимости, потому что в репах лежит криво собранный LibreOffice, который якобы предоставляет нужную библиотеку LitleCMS, хотя на самом деле это не так. Проблема с LitleCMS/LibreOffice известная, но что-то её решение сильно затянулось.
Re: Разработка / компиляция и сборка rpm
Добавлено: 10 фев 2013, 15:19
Константин
ааааа вот как поймать пульфера! теперь знаю на что он клюёт
Re: Разработка / компиляция и сборка rpm
Добавлено: 10 фев 2013, 15:22
Константин
И это всё равно не правильно. Тогда надо было при сборке Криты указать - без лцмс - что толку мне от неработающей криты?
Re: Разработка / компиляция и сборка rpm
Добавлено: 11 фев 2013, 02:21
Pulfer
Константин писал(а):И это всё равно не правильно. Тогда надо было при сборке Криты указать - без лцмс - что толку мне от неработающей криты?
Это костыли были бы. Вот что реально надо, так это как можно скорее чинить LibreOffice. Уже назначили человека им заняться.
Вообще, насколько я помню, для обхода проблемы перед релизом было принято решение включить lcms в образ по умолчанию, чтобы не было необходимости по зависимостям ставить. Поэтому достаточно неожиданно, что проблема всё-таки вылезла.
Re: Разработка / компиляция и сборка rpm
Добавлено: 07 июл 2013, 13:49
faithman
Собираю пакет с синтезатором. Проект на cmake. Если использовать %cmake, то компиляция останавливается на ошибках.
Причём:
Код: Выделить всё
CMake Warning:
Manually-specified variables were not used by the project:
BUILD_STATIC_LIBS
CMAKE_INSTALL_LIBDIR
CMAKE_MODULE_LINKER_FLAGS
INCLUDE_INSTALL_DIR
LIB_INSTALL_DIR
LIB_SUFFIX
SHARE_INSTALL_PREFIX
SYSCONF_INSTALL_DIR
На
сайте что-то таких переменных не видать. Неужели патчить?
Если же просто cmake ./, компилируется нормально, но расположение библиотек /usr/lib, а надо /usr/lib64. Префиксом -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} избавился от /usr/local. Как быть с либами?
PS:Только начал работать со spec.
Re: Разработка / компиляция и сборка rpm
Добавлено: 07 июл 2013, 16:18
Pulfer
faithman писал(а):Собираю пакет с синтезатором. Проект на cmake. Если использовать %cmake, то компиляция останавливается на ошибках.
Причём:
Код: Выделить всё
CMake Warning:
Manually-specified variables were not used by the project:
Это вообще не страшно, можно не обращать внимания.
faithman писал(а):Если же просто cmake ./, компилируется нормально, но расположение библиотек /usr/lib, а надо /usr/lib64. Префиксом -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} избавился от /usr/local. Как быть с либами?
Вообще, судя по тому, что с простым вызовом cmake вместо макроса %cmake программа собирается нормально, то полагаю, что всё дело во флагах сборки, которые задаёт %cmake (оптимизация, формат debug-информации и т.д.). А конкретно, в "-Wl,--no-undefined".
Поэтому можно попробовать прописать в спеке (конкретное место не так важно, но принято либо в самом начале, выше тэгов Name, Summary и т.д., либо перед вызовом %cmake):
Это уберёт флаг "-Wl,--no-undefined". А потом использовать макрос %cmake для сборки.
Кстати, если интересно посмотреть, во что раскрывается этот макрос, то это можно сделать командой:
Re: Разработка / компиляция и сборка rpm
Добавлено: 07 июл 2013, 19:42
faithman
cmake отработал, но теперь проблема c %make_install:
Код: Выделить всё
make: *** No rule to make target `install'.
cmake создаёт каталог build в распакованных исходниках , может в этом проблема, что нечего переносить в BUILDROOT?
Re: Разработка / компиляция и сборка rpm
Добавлено: 08 июл 2013, 01:54
Pulfer
faithman писал(а):cmake создаёт каталог build в распакованных исходниках , может в этом проблема, что нечего переносить в BUILDROOT?
Да, тут надо команде make install (точнее даже макросу, вызывающему эту команду с доп. параметрами) указать на каталог build:
Re: Разработка / компиляция и сборка rpm
Добавлено: 08 июл 2013, 17:40
faithman
Ага, помогло, но:
Код: Выделить всё
/usr/bin/cmake -P cmake_install.cmake
-- Install configuration: ""
-- Installing: /home/faithman/rpmbuild/BUILDROOT/newtonator-0.6.0-1-rosa2012.1.x86_64-buildroot/usr/lib/lv2/newtonator_gtk.lv2/newt_lv2_gui.so
-- Installing: /home/faithman/rpmbuild/BUILDROOT/newtonator-0.6.0-1-rosa2012.1.x86_64-buildroot/usr/lib/lv2/newtonator_gtk.lv2/manifest.ttl
-- Installing: /home/faithman/rpmbuild/BUILDROOT/newtonator-0.6.0-1-rosa2012.1.x86_64-buildroot/usr/lib/lv2/newtonator.lv2/newt_lv2_instr.so
-- Installing: /home/faithman/rpmbuild/BUILDROOT/newtonator-0.6.0-1-rosa2012.1.x86_64-buildroot/usr/lib/lv2/newtonator.lv2/manifest.ttl
-- Installing: /home/faithman/rpmbuild/BUILDROOT/newtonator-0.6.0-1-rosa2012.1.x86_64-buildroot/usr/lib/lv2/newtonator.lv2/newt_lv2_instr.ttl
Каталог lib, но не lib64 для библиотек. Непонятно. Или можно переназначить в %files как-то? Правда %{_libdir} у меня /usr/lib64.
Re: Разработка / компиляция и сборка rpm
Добавлено: 08 июл 2013, 18:48
Pulfer
faithman писал(а):Каталог lib, но не lib64 для библиотек. Непонятно. Или можно переназначить в %files как-то? Правда %{_libdir} у меня /usr/lib64.
Хмм, тут мне лучше непосредственно на спек и код проекта глянуть, чтобы понять, как тут лучше сделать. Бывает, что в апстриме делают кривые cmake-проекты, может и тут так. Тогда либо патчить CMakeLists.txt, либо вручную файлы перемещать... А может надо просто параметр для cmake указать, куда устанавливать файлы. В общем, надо посмотреть.
Сейчас лучше собрать SRPM-пакет командой
rpmbuild -bs [спек] и выложить куда-нибудь, чтобы я глянул.
Re: Разработка / компиляция и сборка rpm
Добавлено: 08 июл 2013, 19:07
faithman
Re: Разработка / компиляция и сборка rpm
Добавлено: 08 июл 2013, 20:24
Pulfer
Вот это должно помочь:
Т.е. просто явно указываем cmake, куда ставить модули LV2. Чтение CMakeLists.txt в данном случае помогло разобраться
Кстати, совсем не обязательно явно определять макросы %name, %version и %release:
Код: Выделить всё
%define name newtonator
%define version 0.6.0
%define release 1
Потому что они и так берутся из соответствующих тэгов (т.е. из Name, Version и Release). Так что можно упростить спек
Re: Разработка / компиляция и сборка rpm
Добавлено: 09 июл 2013, 17:19
faithman
Спасибо! Правда, на
странице самого проекта была эта опция, просто не обратил внимание, столько времени зря убил
Re: Разработка / компиляция и сборка rpm
Добавлено: 09 июл 2013, 20:48
faithman
Пакет собрался, но который с debuginfo ругается:
Код: Выделить всё
newtonator-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/newtonator-0.6.0/src/newt_lv2_instr/include/newt_lv2_voice.h
newtonator-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/newtonator-0.6.0/src/newt_core/include/INewtSettings.h
newtonator-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/newtonator-0.6.0/src/newt_lv2_instr/newt_lv2_voice.cpp
newtonator-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/newtonator-0.6.0/src/newt_core/include/Newtonator2.h
newtonator-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/newtonator-0.6.0/src/newt_core/include/VariSource.h
newtonator-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/newtonator-0.6.0/src/newt_lv2_instr/newt_lv2_instr.cpp
newtonator-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/newtonator-0.6.0/src/newt_core/VariSource.cpp
newtonator-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/newtonator-0.6.0/src/newt_lv2_instr/include/newt_lv2_instr.h
newtonator-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/newtonator-0.6.0/src/newt_core/Newtonator2.cpp
newtonator-debuginfo.x86_64: E: non-standard-executable-perm (Badness: 1) /usr/src/debug/newtonator-0.6.0/src/newt_lv2_instr/newt_lv2_voice.cpp 0700
newtonator-debuginfo.x86_64: E: non-standard-executable-perm (Badness: 1) /usr/src/debug/newtonator-0.6.0/src/newt_core/include/Newtonator2.h 0700
newtonator-debuginfo.x86_64: E: non-standard-executable-perm (Badness: 1) /usr/src/debug/newtonator-0.6.0/src/newt_core/include/VariSource.h 0700
newtonator-debuginfo.x86_64: E: non-standard-executable-perm (Badness: 1) /usr/src/debug/newtonator-0.6.0/src/newt_lv2_instr/newt_lv2_instr.cpp 0700
newtonator-debuginfo.x86_64: E: non-standard-executable-perm (Badness: 1) /usr/src/debug/newtonator-0.6.0/src/newt_core/VariSource.cpp 0700
newtonator-debuginfo.x86_64: E: non-standard-executable-perm (Badness: 1) /usr/src/debug/newtonator-0.6.0/src/newt_lv2_instr/include/newt_lv2_instr.h 0700
newtonator-debuginfo.x86_64: E: non-readable (Badness: 1) /usr/src/debug/newtonator-0.6.0/src/newt_lv2_instr/newt_lv2_voice.cpp 0700
newtonator-debuginfo.x86_64: E: non-readable (Badness: 1) /usr/src/debug/newtonator-0.6.0/src/newt_core/include/Newtonator2.h 0700
newtonator-debuginfo.x86_64: E: non-readable (Badness: 1) /usr/src/debug/newtonator-0.6.0/src/newt_core/include/VariSource.h 0700
newtonator-debuginfo.x86_64: E: non-readable (Badness: 1) /usr/src/debug/newtonator-0.6.0/src/newt_lv2_instr/newt_lv2_instr.cpp 0700
newtonator-debuginfo.x86_64: E: non-readable (Badness: 1) /usr/src/debug/newtonator-0.6.0/src/newt_core/VariSource.cpp 0700
newtonator-debuginfo.x86_64: E: non-readable (Badness: 1) /usr/src/debug/newtonator-0.6.0/src/newt_lv2_instr/include/newt_lv2_instr.h 0700
2 packages and 0 specfiles checked; 12 errors, 9 warnings.
Проблемы с правами. Пробовал %_srcdefattr(0644,root,root) , но что-то не понимаю или макрос не тот.
Re: Разработка / компиляция и сборка rpm
Добавлено: 09 июл 2013, 21:35
Pulfer
faithman писал(а):Пакет собрался, но который с debuginfo ругается:
Проблемы с правами. Пробовал %_srcdefattr(0644,root,root) , но что-то не понимаю или макрос не тот.
Тут лучше после распаковки архива (т.е. после макроса %setup) просто явно поправить права командой
Re: Разработка / компиляция и сборка rpm
Добавлено: 10 июл 2013, 19:40
faithman
Собралось без ошибок и предупреждений.
Спасибо за подсказку, совсем утонул в макросах, а про стандартные утилиты забыл.
Это мой первый опыт успешного пакетирования.
Буду собирать другие синтезаторы.
Re: Разработка / компиляция и сборка rpm
Добавлено: 16 июл 2013, 19:43
faithman
Можно ли переопределять местоположение или вообще удалять/не включать некоторые пустые каталоги в пакете с debuginfo?
Ситуация:
BUILDROOT/usr/src/debug/newtonator/build/src/4-е пустых каталога <- их я не хочу включать в пакет с debuginfo
BUILDROOT/usr/src/debug/newtonator/src/4-е одноимённых каталога c исходным текстом
%package debuginfo
%description debuginfo
%files debuginfo
Оно? Потом самому определить файлы?
Re: Разработка / компиляция и сборка rpm
Добавлено: 17 июл 2013, 03:40
Pulfer
faithman писал(а):Можно ли переопределять местоположение или вообще удалять/не включать некоторые пустые каталоги в пакете с debuginfo?
Честно говоря, я даже не знаю, никогда не вникал
Re: Разработка / компиляция и сборка rpm
Добавлено: 22 июл 2013, 20:00
faithman
Код: Выделить всё
drumkv1-debuginfo.x86_64: E: debuginfo-without-sources (Badness: 1)
И такая ошибка у меня во втором пакете уже. Нет исходников в buildroot/usr/src. Как этот вопрос решается грамотно? Делал через патч makefile в .spec для S0-synth-LV2, но как-то грубовато.
Re: Разработка / компиляция и сборка rpm
Добавлено: 23 июл 2013, 03:11
Pulfer
faithman писал(а):Код: Выделить всё
drumkv1-debuginfo.x86_64: E: debuginfo-without-sources (Badness: 1)
И такая ошибка у меня во втором пакете уже. Нет исходников в buildroot/usr/src. Как этот вопрос решается грамотно?
Тут универсального решения нет, т.к. проблема возникает, когда программа собирается с нестандартными флагами, передаваемыми компилятору. Так что решение зависит от системы сборки (cmake, scons или что-то ещё) и от того, что конкретно разработчики прописали с сборочных файлах. Например, вчера исправлял эту проблему в mppenc вот таким патчем:
https://abf.rosalinux.ru/openmandriva/m ... lags.patch
Re: Разработка / компиляция и сборка rpm
Добавлено: 01 авг 2013, 18:00
faithman
Понятно что тянуть столько пакетов небольшому числу разработчиков трудно, а если есть хозяин своего пакета, который заинтересован в его поддержке в официальном репозитории, уже что-то. Каков процесс перевода моего spec в репозиторий? Например, newtonator? Нужен ментор или нужно как-то по другому проходить контроль качества, перед включением?
Re: Разработка / компиляция и сборка rpm
Добавлено: 02 авг 2013, 06:06
Pulfer
faithman писал(а):Понятно что тянуть столько пакетов небольшому числу разработчиков трудно, а если есть хозяин своего пакета, который заинтересован в его поддержке в официальном репозитории, уже что-то. Каков процесс перевода моего spec в репозиторий? Например, newtonator? Нужен ментор или нужно как-то по другому проходить контроль качества, перед включением?
Тут два основных варианта, наверное. Общение по эл. почте с ментором (кем-то из основных разработчиков, почти наверняка со мной) или общение на IRC-канале, где сидят разработчики. Второй способ обычно намного оперативнее в будни в рабочее время по Москве (т.к. в случае недостатков в спеке их можно сразу обсудить и исправить), но тут уже кому как удобнее. Сейчас скину в личку контакты. UPD. Хотя нет, не скину, т.к. личные сообщения отключены, надо их сперва разрешить
В любом случае, сперва надо собрать пакет на ABF в свой частный репозиторий, потом попросить проверить его, после чего разработчики добавят его к платформе. Через какое-то время (когда разработчики убедятся, что человек уже готов самостоятельно собирать пакеты без проверки с их стороны) можно будет получить доступ к гит-группе import, из которой пакеты собираются в официальные репозитории. И будет дан доступ для самостоятельного добавления новых проектов в репозиторий Contrib.
Что касается newtonator, то я проверил спек на ABF. Спек хороший, я уже клонировал проект в гит-группу import и собрал пакет в Contrib
Re: Разработка / компиляция и сборка rpm
Добавлено: 02 авг 2013, 17:31
faithman
Исправил, высылайте. Когда заканчиваете работу (чтоб знать стоит ли туда входить) ? После 16 часов , там есть люди?
Re: Разработка / компиляция и сборка rpm
Добавлено: 02 авг 2013, 20:19
Pulfer
faithman писал(а):Исправил, высылайте.
Отправил.
faithman писал(а):Когда заканчиваете работу (чтоб знать стоит ли туда входить) ?После 16 часов , там есть люди?
Сейчас уже 9-й час по Москве, но работа ещё активно идёт, на канале не пусто.
До какого времени можно застать людей на канале точно не скажу, т.к. у меня в это время уже глубокая ночь (сейчас, например, уже четвёртый час утра пошёл). Возможно, что и до 12-ти ночи по Москве можно.
Re: Разработка / компиляция и сборка rpm
Добавлено: 27 сен 2013, 20:21
VictorR2007
Pulfer, может быть вы в курсе, почему
mock-urpm в последнее время выдает
Код: Выделить всё
Хоть часть пакетов и могла быть установлена, произошли ошибки.
Не удаётся установить запрошенный пакет:
lib64usb-compat0.1_4-0.1.4-3-rosa2012.1.x86_64 (из-за неудовлетворённости libusb-1.0.so.0()(64bit))
Приходится давать
Код: Выделить всё
bash-4.2$ mock-urpm -v --install lib64usb1.0_0
и иногда
Код: Выделить всё
bash-4.2$ mock-urpm -v --install lib64usb-compat0.1_4
Это не критично, но не получается собрать
http://www.linux-info.ru/qmplay2.html
Вчера прилетел домой и увидел несколько писем разработчиков с просьбой обновить перевод.
А на qmplay2 я уже раз напортачил.
Когда делал первый перевод, часть текста отображалась только на польском.
А когда разработчик исправил проблему, выплыли орфографические ошибки.
И они ушли в апстрим.
До сих пор фигово себя чувствую. как вспомню.
Re: Разработка / компиляция и сборка rpm
Добавлено: 27 сен 2013, 20:54
Vegatron
Добрый вечер, а какой urpmi стоит ? попробуй пожалуйста обновиться до последнего urpmi-6.71-37
Re: Разработка / компиляция и сборка rpm
Добавлено: 27 сен 2013, 21:41
VictorR2007
Vegatron писал(а):Добрый вечер, а какой urpmi стоит ? попробуй пожалуйста обновиться до последнего urpmi-6.71-37
На нем и возникли проблемы.
Неделю назад нашел способ выхода из корпоративной сети в интернет через прокси и обновился.
И с тех пор пошла эта ошибка.
Сначала не обратил внимания.
Было некогда. Работа и иногда сон.
Вечно сырая одежда и вечная боль в теле и животе.
Как я мечтал что-бы вывезли этих двух дур поварих.
Простите за лирику.
Как назло уже синхронизировал локальные репы с ABF.
Сейчас пороюсь и если найду более старые пакеты, откачу urpmi и проверю.
Re: Разработка / компиляция и сборка rpm
Добавлено: 27 сен 2013, 22:14
Vegatron
Если помните какой релиз был, то найду билдлист соответствующий. 35, 36 , или еще раньше ?
Re: Разработка / компиляция и сборка rpm
Добавлено: 27 сен 2013, 23:21
VictorR2007
Vegatron писал(а):Если помните какой релиз был, то найду билдлист соответствующий. 35, 36 , или еще раньше ?
Улетал на работу 22 августа.
Тогда в последний раз синхронизировал зеркало, вечером 21 августа..
Вроде много воды утекло с тех пор.
И возможно urpmi не при чем.
Завтра попробую собрать некоторые пакеты из под другой версии Росы.
А то возможно просто это мой личный глюк и ложная тревога.
У меня были проблемы на последних версиях plasma-nm-git, homerun-1.1.git
bluedevil-1.3.2, libbluedevil-1.9.4.
Re: Разработка / компиляция и сборка rpm
Добавлено: 29 сен 2013, 12:10
VictorR2007
Vegatron писал(а):Если помните какой релиз был, то найду билдлист соответствующий. 35, 36 , или еще раньше ?
Это были мои проблемы. На чистой, только что установленной системе проблемы исчезли.
Re: Разработка / компиляция и сборка rpm
Добавлено: 14 фев 2014, 11:34
VictorR2007
Vegatron писал(а):Добрый вечер, а какой urpmi стоит ? попробуй пожалуйста обновиться до последнего urpmi-6.71-37
В тот раз я просто забывал подмонтировать внешний диск с локальным репозиторием.
Вообще не удобно в последний год с небольшим работает urpmi. Если не подключу диск с репами, то urpmi и rpmdrake не игнорирует источники, а просто не устанавливает пакеты.
Еще плохо, что у локальных источников нет приоритета перед сетевыми.
При подключенных локальных источниках установка всегда идет из сети.
Приходится отключать сетевые источники.
Но это лирика. Я хотел написать о mock-urpm 25 релиза.
Он у меня при работе с локальными источниками нормально разворачивает сборочную систему,
но когда доходит до установки пакетов перечисленных в спеке, то ругается что нет доступа в источникам.
Пробовал раз десять, переподключая или пересоздавая источники.
Продолжить сборку пакета удалось только когда в файле
/var/lib/mock-urpm/Rosa-2012.1-x86_64/root/etc/urpmi/urpmi.cfg
изменил пути на сетевые и дал команду
mock-urpm -v --update а потом на сборку с опцией
--no-clean
Но еще поковыряюсь, может я что-то пропустил.
Но если что, откачусь назад. Мне как раз нужна нормальная работа с локальными репами.
Re: Разработка / компиляция и сборка rpm
Добавлено: 14 фев 2014, 14:33
VictorR2007
Переписал назад источники на локальные и запустил на сборку пакет.
Кеш обычно не чищу, а запускаю с параметром --no-clean.
В общем выдало что нет доступа к источнику.
Откатил на релиз 21 и повторил команду на сборку пакета.
Код: Выделить всё
[victor@asus ~]$ mock-urpm -v --no-clean /home/victor/rpmbuild/SRPMS/knetworkmanager-0.9.0.10-1.src.rpm
и все собралось без проблем.
Re: Разработка / компиляция и сборка rpm
Добавлено: 16 фев 2014, 18:12
VictorR2007
Вот засада. Установил Fresh i586. Зазеркалил репы для него.
Раньше были только x86_64 и SRPMS.
Теперь сделал полную копию.
Но проблема с mock-urpm на i586.
При попытке собрать на ней пакет получаю такую ошибку.
Код: Выделить всё
INFO: Results and/or logs in: /var/lib/mock-urpm/Rosa-2012.1-i586/result
ERROR: Command failed:
# ['/usr/sbin/urpmi', '--no-suggests', '--no-verify-rpm', '--root', '/var/lib/mock-urpm/Rosa-2012.1-i586/root/', '--urpmi-root', '/var/lib/mock-urpm/Rosa-2012.1-i586/root/', '--auto', 'basesystem-minimal', 'locales', 'locales-en', 'locales-de', 'locales-uk', 'locales-es', 'locales-ru', 'basesystem-minimal', 'libmpc2', 'libmpfr4', 'libnatspec0', 'libpwl5', 'make', 'patch', 'unzip', 'mandriva-release-common', 'binutils', 'curl', 'gcc', 'gcc-c++', 'gnupg', 'rpm-build', 'urpmi']
Нет пакета с названием libmpc2
DEBUG: kill orphans
[victor@asus mirror]$
И как я помню это же было с пол года назад при попытке собрать пакет на i586.
В репах есть libmpc3, а ругается на libmpc2.
Команда "mock-urpm --help" ничего не подсказывает.
Re: Разработка / компиляция и сборка rpm
Добавлено: 19 фев 2014, 12:17
VictorR2007
VictorR2007 писал(а):
Нет пакета с названием libmpc2
DEBUG: kill orphans
[victor@asus mirror]$[/code]
И как я помню это же было с пол года назад при попытке собрать пакет на i586.
В репах есть libmpc3, а ругается на libmpc2.
Команда "mock-urpm --help" ничего не подсказывает.
Как оказалось, ларчик просто открывался.
В файле /etc/mock-urpm/Rosa-2012.1-i586.cfg
нужно libmpc2 заменить на libmpc3.
Re: Разработка / компиляция и сборка rpm
Добавлено: 19 фев 2014, 12:43
Pulfer
VictorR2007 писал(а):Как оказалось, ларчик просто открывался.
В файле /etc/mock-urpm/Rosa-2012.1-i586.cfg
нужно libmpc2 заменить на libmpc3.
Мейнтейнер mock-urpm передаёт спасибо.
Сейчас починит пакет.
Re: Разработка / компиляция и сборка rpm
Добавлено: 26 мар 2014, 12:38
VictorR2007
Немного о mock-urpm.
Я ранее для его использования делал корневой раздел довольно большим.
Сейчас делаю по другому.
После первого запуска удаляю каталог /var/lib/mock-urpm.
Создаю где-нибудь в домашнем каталоге папку mock-urpm и делаю на него симлинк в /var/lib.
Это очень спасает. Например при сборке пакетов libreoffice каталог mock-urpm вырастает до 30 гигов.
Re: Разработка / компиляция и сборка rpm
Добавлено: 27 мар 2014, 23:31
VictorR2007
Интересно, на abf существуют квоты размера под сборочную среду.
Несколько дней пытаюсь собрать libreoffice, но сборка останавливается на определенном месте.
С похожими симптомами сталкивался при сборке локально BlueGriffon, когда каталог
/var/lib/mock-urpm был в корневом разделе.
Когда там заканчивалось свободное место, то сборка просто останавливалась на одном и том же месте.
После перенесения /var/lib/mock-urpm через символическую ссылку в домашний каталог проблема исчезла.
И сейчас возникло подозрение на это. У меня при локальной сборке libreoffice каталог /var/lib/mock-urpm
вырос на 32 гига. А на abf у него только логи при сбое занимают около гигабайта каждый.
И кстати локально у меня libreoffice собрался без проблем с первого раза.
Конечно только после добавления нужных зависимостей.
А на abf пока только сбои.
Re: Разработка / компиляция и сборка rpm
Добавлено: 23 июл 2014, 13:46
VictorR2007
В cooker нужные для сборки пакетов зависимости устанавливаются
наряду с такими записями, например
для kde 5 еще и такими, например
В 2014.1 rpm не понимает такие записи.
Нужно записывать имя devel пакета.
У них что, rpm или cmake патченый.
Есть ли возможность самому это исправить или может кто знает,
какие пакеты взять из кукер для исправления этого в 2014.1.
Re: Разработка / компиляция и сборка rpm
Добавлено: 23 июл 2014, 14:03
Pulfer
VictorR2007 писал(а):В cooker нужные для сборки пакетов зависимости устанавливаются
наряду с такими записями, например
для kde 5 еще и такими, например
В 2014.1 rpm не понимает такие записи.
Нужно записывать имя devel пакета.
У них что, rpm или cmake патченый.
Есть ли возможность самому это исправить или может кто знает,
какие пакеты взять из кукер для исправления этого в 2014.1.
Вот эти cmake()-зависимости мне видятся явным злом. Я их потом все выкину и заменю на нормальные зависимости, когда буду KDE5 заниматься (сейчас не вижу смысла).
Re: Разработка / компиляция и сборка rpm
Добавлено: 23 июл 2014, 14:46
VictorR2007
Pulfer писал(а): Я их потом все выкину и заменю на нормальные зависимости, когда буду KDE5 заниматься (сейчас не вижу смысла).
Смысла точно нет.
Это просто мне интересно повозиться со сборкой и получится ли собрать и потом запустить его в Росе.
А если просто посмотреть и увидеть что пользоваться им невозможно, то можно записать на флешку образ отсюда
http://files.kde.org/snapshots/