Oткрытый урок по сборке rpm-пакетов

Материал из База знаний проекта Russian Fedora

Перейти к: навигация, поиск

20 октября 2012 года активными участниками сообщества был проведен открытый урок по сборке rmp-пакетов для новичков.

Логи

Ниже представлены отредактированные логи встречи.


fedora-classroom@conference.jabber.ru - 2012/10/20

13:01:17 bookwar: Начинаем

13:02:16 bookwar: Всем добрый день )

13:02:35 konstantinjch: bookwar: огласи правила поведения, чтоб понятно было как себя вести

13:02:41 bookwar: Сегодня я как начинающий майнтэйнер Fedora буду делиться с вами опытом по созданию простого rpm-пакета.

Для начала - рекомендации: задавать вопросы можно и нужно, но по теме.

Если вы хотите спросить о федоре вообще или о каких-то деталях сборки рпм, то для этого у нас есть специализированные конференции fedora@ и fedora-devel@

Логи и сообщения об ошибках можно постить на fpaste.org

13:03:29 bliznezz: надеюсь версия федоры не сильно важна, у меня работоспособная осталась только та, что на работе, старая добрая 13я со вторым гномом.

13:03:59 bookwar: bliznezz: боюсь что важна, но это мы сможем проверить по ходу дела

13:05:22 konstantinjch: куски текста сюда: http://fpaste.org/, скриншоты сюда http://itmages.ru

13:05:32 bookwar: Сегодня мы будем собирать пакет knotter, исходники которого вы можете скачать сейчас по ссылке http://files.bookwar.info/fedora/knotter-0.7.0.tar.gz Официальный сайт проекта: http://sourceforge.net/projects/knotter/

13:06:30 konstantinjch: wget http://files.bookwar.info/fedora/knotter-0.7.0.tar.gz

13:06:41 bookwar: konstantinjch: да. спасибо

13:07:41 bookwar: При сборке рпм пакета важно понимать следующее: _все_ действия по сборке выполняются от пользователя Именно поэтому сборка rpm безопасный процесс. Даже если вы плохо понимаете что делаете - вы не сможете в процессе сборки случайно переписать системные библиотеки Права рута или судо необходимы только для установки в систему зависимостей, больше никаких действий из под рута выполнять не надо

13:09:54 bookwar: Итак, будем считать что у всех есть терминал, федора в нем, и скачанные исходники knotter


13:10:42 bookwar: первый этап сборки пакета - это его анализ Нужно понять собственно как этот пакет устроен и как разработчик его собирает Поэтому мы создадим каталог mkdir ~/Packaging

13:11:42 elemc: bookwar, это обычно описано в файле INSTALL, если кодер с руками и головой :)

13:11:49 bookwar: положим туда файл mv ~/knotter-0.7.0.tar.gz ~/Packaging

13:12:20 bookwar: cd ~/Packaging и tar xf knotter-0.7.0.tar.gz То есть распакуем файл с исходниками и посмотрим внутрь

Файла INSTALL мы там не найдем 13:13:59 ArcFi: http://fpaste.org/wQQM/

13:14:26 Михаил Витальевич Гаврилов: зато есть README

13:14:53 bookwar: как мы видим - это достаточно стандартный пакет Хорошо упакованный и со всеми нужными описаниями Нам повезло )

13:15:23 taurus: не то что бы.

13:15:34 taurus: он использует нестандартный configure.sh

13:15:40 elemc: не такой уж он и стандартный

13:15:43 bookwar: стандартная процедура сборки тут: configure && make && make install

13:15:51 elemc: он использует qmake, вааще-то :)

13:16:00 шптщегы: bookwar, лучше бы убрала README для усложнения процесса

13:16:05 bookwar: ну только да. вместо configure у нас ./configure.sh но нам не критично

13:16:24 шптщегы: bookwar, ./configure.sh --prefix=%{_prefix}

13:16:38 Михаил Витальевич Гаврилов: а я думл стандартная процедура rpmbuild -bb ~/rpmbuild/SPECS/*****.spec ;)

13:16:44 bookwar: наша задача - понять зависимости этого пакета

13:16:51 arthur.fayzullin: в смысле уже далать? или это вводная?

13:16:56 elemc: Михаил Витальевич Гаврилов, ага, если .spec уже есть :)

13:17:09 bookwar: arthur.fayzullin: этого делать не надо

13:17:17 bookwar: мы первым делом выполняем ./configure.sh

13:17:25 taurus: Михаил Витальевич Гаврилов: пока мы чисто смотрим как собирается прога, а не пакет.

13:17:37 bookwar: и смотрим на список того чего не хватает программе для сборки

13:17:51 arthur.fayzullin: qmake нет

13:17:56 arthur.fayzullin: ставить?

13:18:12 bookwar: все выполняем от пользователя. поэтому нам не страшно если разработчик написал кривой скрипт, в систему у нас ничего не поставится

13:18:31 bookwar: arthur.fayzullin: не хватает qmaake , поэтому да, нужно его поставить

13:18:38 bookwar: sudo yum install qmake

13:18:44 bookwar: тут нам права рута и понадобились

13:18:48 taurus: bookwar: а boost там для чего?

13:18:56 bookwar: но как мы можете заметить пакета qmake не существует

13:19:03 elemc: ой, а зачем там boost?! O_o

13:19:11 krab: sudo yum install qt-devel

13:19:14 bookwar: поэтому мы сначала ищем какому пакету файл qmake принадлежит

13:19:41 bookwar: ищем мы это следующим образом: yum provides */qmake

13:20:10 Михаил Витальевич Гаврилов: sudo yum provides qmake -> No Matches found

13:20:10 bookwar: bliznezz: ну вообще не обязательно

13:20:14 шптщегы: *.h *.hpp например

13:20:25 bookwar: Михаил Витальевич Гаврилов: yum provides ищет по полным путям

13:20:36 elemc: шптщегы, также как и по бинарным

13:20:56 taurus: bookwar: вообщем то qmake-qt4

13:20:57 Михаил Витальевич Гаврилов: qmake-qt4 - пакета нет Fedora 18

13:21:04 babkinstas: mingw32-qt-qmake.x86_64

13:21:10 xnike: а от qt3 пойдет?

13:21:11 шптщегы: babkinstas, не то

13:21:14 bookwar: поэтому надо писать yum provides */qmake или yum provides \*/qmake или yum provides *bin/qmake

13:21:31 шптщегы: qmake-qt4 в qt4-devel по моему

13:21:47 bookwar: мы не собираемся гадать как называется пакет

13:21:51 bookwar: мы его ищем

13:22:17 djsmentya: так что qt-devel хватит?

13:22:50 vlav: и qt-devel тоже

13:22:53 Михаил Витальевич Гаврилов: yum provides */qmake -> нашел много пакетов я так понял qt-devel-4.8.3-3.fc18 в моем случае так

13:22:58 elemc: bookwar, бинарник qmake-qt4 лежит в qt-devel, но начинать надо не с него :)

13:23:07 bookwar: Михаил Витальевич Гаврилов: правильно

13:23:23 bookwar: Михаил Витальевич Гаврилов: из всех пакетов выбираем самый стандартный

13:23:27 krab: djsmentya: нет, qtwebkit-devel

13:23:28 elemc: IMHO, начинать надо с yum install @development-tools

13:23:51 ArcFi: дык, что ставить-то? qt-devel, qt3-devel?

13:23:57 arthur.fayzullin: elemc: а не слишком много настваит?

13:24:07 taurus: ArcFi: qt-devel

13:24:22 bookwar: Итак: нашли, ставим sudo yum install qt-devel

13:24:34 taurus: ArcFi: qt3-devel это устаревшее, используется для программ которые не перевели на qt4

13:25:35 bookwar: Все ставят?

13:26:34 Михаил Витальевич Гаврилов: уже поставил и получил -> Initial Makefile generated и Makefile has been generated

13:26:34 bookwar: пока ставят скажу. что не бойтесь ставить пакеты. после всего вы сможете просмотреть историю установки с помощью yum history и откатить установку не нужных больше пакетов

13:26:57 bookwar: Михаил Витальевич Гаврилов: выполни ./configure.sh | fpaste

13:27:10 bookwar: мы все посмотрим что там написано )

13:27:48 Михаил Витальевич Гаврилов: http://paste.stg.fedoraproject.org/1092

13:28:37 bookwar: Dependency from Boost :: program_options has been disabled

13:28:48 bookwar: говорит нам о том что вообще-то мы установили не все зависимости

13:29:23 elemc: bookwar, ну если честно - не понятно, зачем boost в qt приложении, выглядит, как масло - масленное :)

13:29:53 arthur.fayzullin: boost тоже ставить нужно?

13:30:00 Михаил Витальевич Гаврилов: угу which: no c++ in (/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/mikhail/.local/bin:/home/mikhail/bin)

13:30:10 bliznezz: http://fpaste.org/gHwh/ говорит which: no tempfile in $PATH

13:30:15 bookwar: arthur.fayzullin: на самом деле тут мы решаем

13:30:26 bookwar: хотим мы ещё добавить boost или нет

13:31:13 arthur.fayzullin: bookwar: ??? шота я запутался...

13:31:26 bookwar: arthur.fayzullin: это опциональная зависмость этой программы

13:31:35 bookwar: мы можем её добавить можем собрать пакет без неё

13:31:41 bookwar: я предлагаю добавить

13:31:43 arthur.fayzullin: bookwar: а как лучше?

13:32:03 vlav: а где написано что она опциональная?

13:32:20 bookwar: добавить как вы можете догаться нужно с помощью sudo yum install boost-devel

13:32:49 Роман Помянский: bookwar: а как вообще принять верное решение относитьтельно таких опций? где то описано для чего используется boost в этом приложении

13:33:01 bliznezz: товарищи, скажите плз какому пакету принадлежит `which tempfile`, а то у меня yum provides не находит. =(

13:33:03 bookwar: vlav: вообще в доке. но можно догадаться что раз Makefile создался и configure выполнился без ошибок, то она не так и нужна

13:33:21 bookwar: bliznezz: yum provides *bin/tempfile

13:33:31 arthur.fayzullin ставит boost

13:33:39 elemc: bookwar, не совсем так, зависимость может отключать возможности в приложении

13:33:39 bookwar: Роман Помянский: на этот вопрос нет хорошего ответа

13:33:49 bookwar: Роман Помянский: это творческий процесс

13:34:06 bookwar: в мдеале - чтение документации, в реале иногда нужно напримую спросить разработчика

13:34:13 bookwar: напрямую*

13:34:17 arthur.fayzullin: bookwar: а чем руководсвоваться? скупостю или щедростью?

13:34:34 bookwar: arthur.fayzullin: если ты делаешь пакет для себя - то своим личным удобством

13:34:35 krab: elemc: там автор или наркоман или это его хобби, на бусте он читает и записывает файлы, но в той части где описывается код если в системе нет буста, он упорно использует std::cout заместо qdebug, не любит он Qt

13:34:51 djsmentya: для себя - щедростью!

13:34:51 bookwar: arthur.fayzullin: если для других - то много думаешь и опрашиваешь

13:35:20 arthur.fayzullin: djsmentya: ну если ты эмбедед чего собираешь, то лучше скупостью

13:35:22 Михаил Витальевич Гаврилов: boost-devel установлен, но строчка Dependency from Boost::program_options has been disabled не ушла

13:35:48 bookwar: Михаил Витальевич Гаврилов: попробуй make clean

13:35:56 bookwar: и потом заново

13:36:08 bookwar: ./configure.sh

13:36:17 elemc: bookwar, ему явно надо дать --with-boost или --enable-boost

13:36:36 taurus: bookwar: лучше make distclean

13:36:55 bookwar: elemc: ну у меня в итоге при сборке в rpmbuild все находилось. хотя там rpm может от себя добавлять

13:37:04 bookwar: так. есть кто со мной ещё?

13:37:21 bookwar: arthur.fayzullin: поставил boost-devel?

13:37:35 taurus: так у меня boos нашло без дополнительных опций

13:37:37 konstantinjch скромно напоминает, что дело не в прогах, а в системе сборки пакетов ;-)

13:37:37 elemc: bookwar, он в данном случае ничего не добавляет configure-скрипт не стандартный же

13:37:54 Михаил Витальевич Гаврилов: по моему ничего не поменялось :( http://paste.stg.fedoraproject.org/1093

13:38:22 taurus: Михаил Витальевич Гаврилов: rpm -q boost-devel

13:38:22 ArcFi: boost-devel поставил, всё равно не видит, make clean и make distclean не помогло

13:38:42 bliznezz: bookwar: yum provides \*/bin/tempfile No Matches found (подключены repo: fedora, updates, rpmfusion), трудное детство, 13я федора :(

13:39:05 Михаил Витальевич Гаврилов: boost-devel-1.50.0-4.fc18.i686

13:39:07 bookwar: ArcFi, Михаил Витальевич Гаврилов значит потом будем явно указывать пути, пока что запомните. что зависимость есть и мы её знаем

13:39:12 taurus: bliznezz: у меня тоже нет tempfile, так что все ок.

13:39:21 bookwar: мы пока что не собираем ещё на чистую а выясняем зависимости

13:39:35 bookwar: tempfile нам вообще не нужен. его можно проигнорировать

13:39:40 bookwar: идем дальше

13:39:51 bookwar: configure выполнилили - выполняем make

13:40:00 arthur.fayzullin: http://fpaste.org/OOIx/

13:40:14 vlav: фатальная ошибка: QtWebKit/QWebView: Нет такого файла или каталога

13:40:14 babkinstas: выполнил make все пучком

13:40:53 bookwar: все правильно, у кого нет g++ доставляем sudo yum install gcc-g++

13:41:14 bookwar: у кого фатальная ошибка - действуем как в прошлый раз

13:41:16 taurus: Михаил Витальевич Гаврилов: на чистых исходниках попробуй, то есть удали папку с исходниками и распакуй заново

13:41:26 bookwar: yum provides */QtWebKit/QWebView

13:41:38 krab: sudo yum install boost-program-options

13:42:01 ArcFi: Пакета с названием gcc-g++ не найдено Пакета с названием g++ не найдено =\

13:42:09 bookwar: я на самом деле специально хочу чтобы вы запомнили последовательность: что-то не найдено -> yum provides -> yum install

13:42:10 Михаил Витальевич Гаврилов: /bin/sh: g++: command not found

13:42:30 bookwar: ArcFi: пардон sudo yum install gcc-c++

13:42:48 arthur.fayzullin: bookwar: qtwebkit-devel ставить?

13:42:51 bookwar: Михаил Витальевич Гаврилов: см. выше

13:43:18 bookwar: arthur.fayzullin: да, yum provides находит QtWebKit/QWebView в пакете qtwebkit-devel - его и ставим

13:43:20 vlav: sudo yum install qtwebkit-devel

13:43:26 vlav: и все скомпилилось

13:43:28 bookwar: vlav: именно

13:43:43 bookwar: скомпилировали - первый этап пройден! :)

13:43:51 djsmentya: make заработал!! :D sudo yum install qtwebkit-devel помогло!!

13:43:54 bookwar: теперь осталось самое простое )

13:44:06 taurus: вообще то configure.sh должен проверять наличие QtWebkit

13:44:12 bookwar: taurus: должен

13:44:28 skyb: bookwar: ну где используется QtWebKit/QWebView пакеты и какой функционал несут

13:44:29 elemc: должен :D

13:44:29 bookwar: taurus: в идеальном мире

13:44:29 Роман Помянский: bookwar: а почему косяк с вебкитом всплыл на этапе сборки а не при конфигурировании

13:44:45 bliznezz: make валится на непонятных для меня вещах http://fpaste.org/cxUE/

13:44:46 bookwar: Роман Помянский: ошибка разработчика

13:45:15 taurus: bliznezz: версия Qt какая?

13:45:18 bookwar: bliznezz: ну вот тут ты и наступил на грабли в связи с разницей версий

13:45:46 bliznezz: qt-4.6.3

13:45:48 bookwar: наша задача - опакетить софт, даже если он кривоват

13:46:00 bookwar: надо радоваться что он собирается без патчей

13:46:07 taurus: bliznezz: даже так? ... тогда можно патч написать :)

13:46:13 vlav: bliznezz: твое QT еще не знает у мыши бывает третья кнопка

13:46:24 ArcFi выполняет make...

13:46:26 Михаил Витальевич Гаврилов: все получилось

13:46:29 arthur.fayzullin: вроде все

13:46:31 bookwar: итак, мы прошли первый этап, теперь мы знаем из чего состоит пакет и как собирается, начинаем готовить спек

13:47:05 bookwar: для этого мы установим пачку вспомогательных утилит: sudo yum install rpmdev-tools

13:47:06 arthur.fayzullin: bookwar: о... приступаем к вкусненькому :)

13:47:32 vlav: Пакета с названием rpmdev-tools не найдено.

13:47:51 krab: без минуса

13:47:57 Михаил Витальевич Гаврилов: а я видел вот такую рекомендацию su -c 'yum install yum-utils rpmdevtools'

13:48:13 Михаил Витальевич Гаврилов: yum-utils не надо?

13:48:35 konstantinjch: yum install @development-tools rpmdevtools rpm-build

13:48:42 bookwar: Михаил Витальевич Гаврилов: yum-utils пригодится для пересборки

13:48:44 skyb: arthur.fayzullin: или ты про пакет? :-D

13:48:48 arthur.fayzullin: Михаил Витальевич Гаврилов: yum-utils это из другой песни

13:48:54 bookwar: а тут нам достаточно rpmdevtools

13:49:00 vlav: sudo yum install rpmdevtools - установлено

13:49:05 taurus: bliznezz: попробуй открыть тот файл в редакторе и MiddleButton заменить на MidButton

13:49:23 arthur.fayzullin: skyb: и про пакет тоже

13:49:35 bookwar: yum install @development-tools rpmdevtools rpm-build - это хорошая команда для того кто решил заняться сборкой всерьез

13:49:41 bookwar: а мы пока идем по минимуму

13:50:03 taurus: bliznezz: если заработает в твоем пакете еще патч будет.

13:50:07 bookwar: мы установили утилиты - создаем дерево для сборки

13:50:14 bookwar: rpmdev-setuptree

13:50:15 skyb: bookwar: да без @development-tools для того кто систему не только для просмотров фильмов использует быть должно

13:50:37 Михаил Витальевич Гаврилов: так? rpmdev-setuptree

13:50:45 skyb: кароче если ты не тока для просмотра фильмов @development-tools должен быть

13:50:45 bookwar: Михаил Витальевич Гаврилов: да

13:51:10 arthur.fayzullin: bookwar: это уже от пользователя?

13:51:16 skyb: bookwar: просто очень часто от туда необходимо было много всего

13:51:25 arthur.fayzullin: ой тоже от пользователя?

13:51:26 bookwar: arthur.fayzullin: мы все делаем от пользователя. кроме установки в систему пакетов

13:51:37 bliznezz: прокатило. новый баг http://fpaste.org/aRex/

13:52:05 ArcFi: rpmdev-setuptree что делает?

13:52:08 bookwar: команда rpmdev-setuptree создает каталог ~/rpmbuild в котором есть стандартная структура папок

13:52:23 arthur.fayzullin: без параметров запускать?

13:52:44 bookwar: да

13:52:46 bookwar: BUILD RPMS SOURCES SPECS SRPMS

13:52:59 taurus: bliznezz: тоже надо на что то заменить, но я так сразу не вижу на что.

13:53:04 bookwar: вот папки которые использует rpmbuild при сборке

13:53:08 taurus: bliznezz: поставь qt-assistant

13:53:23 bookwar: в SOURCES как вы догадываетесь лежат исходники

13:53:29 bookwar: в SPECS - спеки

13:53:46 taurus: bliznezz: просто закомментируй эту строку

13:53:48 arthur.fayzullin: http://fpaste.org/Qfgh/ так?

13:54:07 bookwar: папки BUILD BUILDROOT - используются автоматически при сборке, в SRPMS и RPMS кладется результат

13:54:15 taurus: bliznezz: это просто иконка курсора которая будет отображаться во время Drag and Drop не принципиально.

13:54:17 bookwar: arthur.fayzullin: да

13:54:25 arthur.fayzullin: гут :)

13:54:50 bookwar: руками мы работаем только с папками SOURCES и SPECS

13:55:01 bookwar: остальное за нас делает rpmbuild

13:55:17 bookwar: первым делом мы кладем архив с исходниками в SOURCES

13:55:22 bliznezz: taurus: все равно на нет декларации у меня ругается. http://fpaste.org/Qnqp/

13:55:53 bookwar: cp ~/Packaging/knotter-0.7.0.tar.gz ~/rpmbuild/SOURCES/

13:57:02 bookwar: создаем спек: rpmdev-newspec ~/rpmbuild/SPECS/knotter.spec

13:57:58 bookwar: вообще говоря продвинутые редакторы умеют создавать шаблон спека просто при создании файла с расширением spec

13:57:59 vlav: knotter.spec created

13:58:11 bookwar: например emacs или vim вам все автоматически подставят

13:58:15 arthur.fayzullin: bookwar: он там что про мминимал вершн грит. это нормально?

13:58:25 bookwar: но команда rpmdev-newspec делает это явно

13:58:41 bookwar: arthur.fayzullin: да, в этом файле теперь лежит минимальный шаблон для спек-файла

13:58:54 bookwar: наша задача его открыть и дописать

13:59:18 bookwar: так что используя любимый редактор откройте этот файл

13:59:28 ArcFi: nano ~/rpmbuild/SPECS/knotter.spec

13:59:38 krab: не, буст можно не тыкать, там не взлетит, нету даже пути на него в инклудах в сгенерированном makefile

14:00:15 bookwar: мой люимый редактор конечно емакс, поскольку он позволяет запустить rpmbuild изнутри и просмотреть логи сразу, но холиварить мы не будем :)

14:00:36 djsmentya: зачем нужен спек?

14:00:40 bookwar: да, спек у всех выглядит примерно так

14:00:49 Михаил Витальевич Гаврилов: прикольно а за кломманду rpmdev-newspec спасибо не знал

14:01:01 Михаил Витальевич Гаврилов: всегда брал гтовые spec и переделывал

14:01:12 taurus: bliznezz: на 32 строку добавь

  1. include <limits.h>

14:01:12 bookwar: rpm-пакет по сути - это исходники+рецепт их установки в систему

14:01:36 bookwar: taurus: bliznezz переместитесь в fedora@ наверное

14:02:04 bookwar: спек содержит базовую информацию о пакете, инструкцию по сборке. по установке, и по удалению пакета

14:02:18 bookwar: заполним для начала информационную часть

14:02:29 bookwar: версия у нас 0.7.0

14:03:02 bookwar: skyb: ну это и есть базовая информация

14:03:09 arthur.fayzullin: bookwar: информационная часть - это какая?

14:03:11 bookwar: skyb: ты открыл спек?

14:03:18 skyb: bookwar: ога

14:03:22 vlav: все открыли

14:03:50 bookwar: Name: Version: Release: Summary: License: URL:

14:03:56 bookwar: arthur.fayzullin: ^^

14:04:10 bookwar: Name - имя. у нас уже указано, это knotter

14:04:32 bookwar: Version - это версия исходников

14:04:43 bookwar: по архиву нам понятно что это 0.7.0

14:04:55 bookwar: версионирование вообще говоря может быть гораздо более сложным

14:05:07 arthur.fayzullin: так и пишем 0.7.0 ?

14:05:09 bookwar: если вы опакечиваете не релизную версию а какой-то слепок с гита

14:05:14 bookwar: но у нас все просто

14:05:19 bookwar: мы пишем 0.7.0

14:05:36 skyb: и там ошибится нельзя, не соберется иначе

14:05:47 bookwar: Release - тут надо не путать, это номер версии спек-файла

14:06:23 bookwar: если вы обновляете пакет исправляя в нем только спек (исходник не меняется), то вы меняете Release, а Version остается без изменения

14:06:45 krab: а если патч я пишу

14:06:50 bookwar: если вы опакечиваете новую версию (другие исходники), то меняете Version а Release выставляете первым

14:06:52 arthur.fayzullin: там стандартаным регэкспом что-то генерится?

14:07:00 bookwar: патч - это изменение в спеке

14:07:09 bookwar: так что это +1 к Release

14:07:52 bookwar: arthur.fayzullin: да. вместо %{?dist} получится fc17 например если на Fedora 17 собирать

14:08:10 bookwar: arthur.fayzullin: если из того же спека собирать на centos там будет el6

14:08:20 arthur.fayzullin: понятно :)

14:09:18 bookwar: rpmdevtools-8.3-1.fc17.noarch - тут например Name = rpmdevtools, Version = 8.3, Release = 1.fc17

14:09:24 skyb: я кстати упустил, а что за пакет собираем то?

14:09:32 skyb: что он делает

14:09:46 arthur.fayzullin: bookwar: ононочё!

14:09:49 bookwar: skyb: http://sourceforge.net/projects/knotter/

14:09:52 ArcFi: Summary:?

14:09:58 djsmentya: переходим к Summary?

14:10:04 bookwar: Summary - это короткое описание пакета

14:10:11 bookwar: из одной строчки

14:10:15 bliznezz: Knotter is a highly configurable interlace designer.?

14:10:27 bookwar: вы его видите например когда yum search выводит результаты

14:10:27 Михаил Витальевич Гаврилов: кстати Release: 1%{?dist} нет .

14:10:37 Михаил Витальевич Гаврилов: она сама же проставиться так

14:10:58 bliznezz: а не, не понятно. вот с сайта описание Interactive designer for Celtic knots

14:11:02 bookwar: Михаил Витальевич Гаврилов: ну если новый спек - то там по шаблону проставляется Release: 1%{?dist}

14:11:09 bookwar: ничего править в этой строке не надо

14:11:23 bookwar: макрос %{?dist} подставится сам уже при сборке

14:11:33 arthur.fayzullin: bookwar: а по саммори сёрч тоже ищется?

14:11:41 bookwar: arthur.fayzullin: да

14:12:11 bookwar: Берем summary с сайта "Interactive designer for Celtic knots"

14:12:21 bookwar: кавычек не пишем, точку в конце тоже не ставим

14:12:27 bookwar: djsmentya: будет

14:12:34 bookwar: просто с qt-библиотеками

14:12:54 bookwar: Summary: Interactive designer for Celtic knots

14:12:58 bookwar: вот так это выглядит

14:13:16 bookwar: Лицензия - тоже с сайта - это GPLv3

14:13:37 bookwar: License: GPLv3

14:13:50 bookwar: URL - это адрес проекта

14:13:57 Михаил Витальевич Гаврилов: стоит писать только краткое название?

14:14:07 Михаил Витальевич Гаврилов: А не так GNU General Public License version 3.0 (GPLv3)

14:14:11 bookwar: URL: http://sourceforge.net/projects/knotter/

14:14:25 bookwar: Михаил Витальевич Гаврилов: нет, GPLv3 достаточно

14:15:11 bookwar: Михаил Витальевич Гаврилов: список коротких имен тут: https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#SoftwareLicenses

14:15:55 bookwar: вообще говоря информационные поля можно писать как бог на душу положит, но когда вы захотите сделать пакет для людей - то придется соблюдать Guidelines

14:16:33 krab: ссылку!

14:16:46 f1yegor: bookwar: дальше

14:17:09 bookwar: важная строчка Source0

14:17:20 bookwar: показывает где лежит и как называется архив с исходниками

14:17:28 bookwar: пишем например так: Source0: %{name}-%{version}.tar.gz

14:17:47 skyb: bookwar: лежит в системе?

14:17:48 bookwar: как вы уже заметили rpm-спек использует макросы

14:18:00 taurus: bookwar: похорошему же url пишется?

14:18:14 bookwar: skyb: да, мы указываем путь до файла относительно каталога SOURCES

14:18:32 bliznezz: сорри, но у меня еще перед лицензий есть строка Group: в ваших новых федорах такого нет?

14:19:02 ArcFi: Bliznezz, нет

14:19:06 bookwar: вообще там можно написать url целиком, но качать этот url никто не будет, rpmbuild просто отщипнет от url-а последний кусок - и будет искать этот файл

14:19:09 taurus: bliznezz: есть такая, но видимо необязательно.

14:19:15 Михаил Витальевич Гаврилов: где name и мersion это предыдущие объявления так?

14:19:27 Михаил Витальевич Гаврилов: кстати как с регистро зависимостью?

14:19:46 taurus: Михаил Витальевич Гаврилов: список лицензий здесь https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#SoftwareLicenses

14:20:10 arthur.fayzullin: skyb: 13-ая федора

14:20:16 bookwar: Михаил Витальевич Гаврилов: в каком смысле регистрозависимостью? должна быть

14:20:30 skyb: bookwar: g == G

14:20:30 vanaf: Group чтобы в списке пакетов пакет был в нужном месте

14:20:36 bookwar: давайте я обращу ваше внимание на вот этот ман: http://fedoraproject.org/wiki/Packaging:Guidelines

14:20:53 bookwar: мы стараемся следовать ему по возможности

14:21:13 bookwar: однако подготовка rpm-пакета для Fedora намного сложнее чем сборка просто пакета

14:21:19 arthur.fayzullin: баилдрекуаерс что там?

14:21:20 bookwar: поэтому по возможности но необязательно

14:21:31 Михаил Витальевич Гаврилов: ну вот в верху у нас анаписанно так: Name: knotter и Version: 0.7.0 а тут так %{name}-%{version}

14:21:45 Михаил Витальевич Гаврилов: т е регистр букв не имеет значения выходит

14:21:55 bookwar: Михаил Витальевич Гаврилов: да. теги с большой буквы а макросы с маленькой, традиция такая )

14:22:18 bookwar: Далее, BuildRequires - это то что мы с вами уже выясняли

14:22:34 bookwar: qt-devel, qtwebkit-devel и boost-devel

14:22:35 Михаил Витальевич Гаврилов: но можно значит писать и так %{NaMe}-%{VeRsIoN} система поймет просто так не принято ;)

14:22:52 bookwar: Михаил Витальевич Гаврилов: никогда не проверяла )

14:22:57 krab: boost-program-options

14:23:07 skyb: bookwar: кстати а реально интересный вопрос

14:23:11 krab: можно не писать буст, не взлетит

14:23:17 ArcFi: bookwar: BuildRequires: какие разделители?

14:23:23 bookwar: krab: boost-devel то все равно нужно

14:23:27 bookwar: ArcFi: запятые

14:23:29 arthur.fayzullin: через запятую пишем?

14:23:40 bookwar: BuildRequires: qt-devel, qtwebkit-devel, boost-devel, boost-program-options

14:23:56 Михаил Витальевич Гаврилов: стоп а почему qt-devel, qtwebkit-devel и boost-devel???

14:24:11 Михаил Витальевич Гаврилов: савился только boost-devel из всего этого

14:24:12 bookwar: можно писать в две строчки, например BuildRequires: qt-devel, qtwebkit-devel BuildRequires: boost-devel, boost-program-options

14:24:34 bookwar: Михаил Витальевич Гаврилов: а qt-devel у тебя уже был по-видимому установлен до этого

14:25:06 Михаил Витальевич Гаврилов: т е я процесс исследования лучше проводит на чичтей системе :)

14:25:10 bookwar: конечно бывает что не все библиотеки обнаруживаются на пожготовительном этапе

14:25:22 taurus: bookwar: я думаю qtwebkit-devel подтянет за собой qt-devel, так что qt-devel писать необязательно.

14:25:24 bookwar: но для решения этой проблемы у нас есть процедура тестирования

14:25:31 bookwar: к которой мы потом перейдем ещё

14:25:43 bookwar: Михаил Витальевич Гаврилов: так что не обязательно каждый раз чистить систему полностью

14:25:55 bookwar: надо только не забывать после сборки тестировать пакет

14:26:00 ArcFi: bookwar: а как заполнять эту секцию, если пакеты установлены заранее и мы их не знаем?

14:26:25 bookwar: ArcFi: никак

14:26:34 bookwar: мы можем какуб-то зависимость забыть

14:26:41 bookwar: и продолжим написание спека

14:26:57 bookwar: соберем всё целиком и эта зависимость вылезет при тестировании только

14:27:02 Михаил Витальевич Гаврилов: на самом деле еще интереснее как знать что писать в Requires: :)

14:27:08 bookwar: после тестирования просто вернемся к спеку и допишем

14:27:18 bookwar: а с Requires все вообще замечательно

14:27:26 bookwar: писать Requires не надо :)

14:27:38 Михаил Витальевич Гаврилов: *-devel это только заголовочные файлы которые мы сами установили

14:27:46 bookwar: большинство зависимостей для собранного пакета rpm сам проверяет на лету

14:28:02 ArcFi: здорово =)

14:28:04 Михаил Витальевич Гаврилов: ааааа т е сам определяет это хорошо :)

14:28:15 arthur.fayzullin: bookwar: пустым оставляем?

14:28:18 bookwar: мы указываем библиотеки для сборки потому что их автоматичсеки определить нельзя

14:28:29 bookwar: пустым оставлять это поле нельзя. можно просто удалить

14:28:42 Михаил Витальевич Гаврилов: а закомментить?

14:28:47 arthur.fayzullin: т.е. удаляем строчку рекуарес?

14:28:54 bookwar: ну или закомментить решеткой #

14:29:01 bookwar: arthur.fayzullin: да

14:29:04 arthur.fayzullin: лучше закоментить :)

14:29:05 Михаил Витальевич Гаврилов: # или ; использовать лучше?

14:29:42 bookwar: %description - это длинная версия Summary

14:29:46 skyb: а кстати, ссыль на видио будет? :-[

14:30:04 bookwar: то что видно при выполнении команды yum info package

14:30:06 taurus: только решетка.

14:30:22 bookwar: skyb: нам бы лог дописать )

14:30:29 Михаил Витальевич Гаврилов: писать %description так?

14:30:37 Михаил Витальевич Гаврилов: текстом

14:30:48 skyb: bookwar: )))) обучение оно ага, такое

14:30:49 skyb: =)

14:30:49 Михаил Витальевич Гаврилов: с переносами на новую строку

14:30:56 bookwar: description тоже может использвоаться для поиска, поэтому желательно там совсем рекламные тексты не писать, а писать какие-нибудь правильные ключевые слова

14:31:04 bookwar: там можно писать текст абзацами не пустая

14:44:16 bookwar: в ней есть ровно одна команда

14:44:26 Михаил Витальевич Гаврилов: спасибо понял :)

14:45:13 bookwar: например в ней ещё могут быть команды типа patch: http://fpaste.org/XvIi/

14:45:25 bookwar: подробнее про патчи можно почитать тут :

14:45:33 bookwar: _wiki Пересобрать RPM

14:45:34 IsidaBot: bookwar: Как «пересобрать RPM»-пакет - Wiki - Russian Fedora 27 сен 2011 «…» В этой статье мы расскажем только о самом простом случае «пересборки». Мы будем считать, что у вас установлена относительно новая «…» http://wiki.russianfedora.ru/index.php/Как_пересобрать_RPM-пакет

14:45:45 bookwar: но на этом мы останавливаться сейчас не будем

14:45:52 bookwar: у нас все просто: развернули и готово

14:46:20 bookwar: дальше две секции: %build и %install

14:47:07 bookwar: как можно догадаться %build соответствует конфигурации и сборке: там делается configure и make

14:47:26 bookwar: в %install делается make install

14:47:55 bookwar: шаблон спека нам подставил команду %configure

14:48:12 bookwar: это макрос который раскрывается в запуск ./configure

14:48:29 bookwar: а у нас пакет конфигурируется другой командой

14:48:35 f1yegor: bookwar: можно пояснить почему пишется так %configure make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT %make_install где-то есть %, где-то нет

14:48:40 Михаил Витальевич Гаврилов: я так понимаю %configure, %setup и %make_install подменяется какимито коммндами препроцессором

14:48:59 Михаил Витальевич Гаврилов: а можно узнать как и какими

14:48:58 bookwar: f1yegor: да, команды с процентиками - это алиасы, или макросы

14:49:04 arthur.fayzullin: bookwar: у нас какой командой? configure.sh ?

14:49:07 bookwar: они подставляются rpmbuild-ом

14:49:23 bookwar: а команда просто - это команда шелла

14:49:24 djsmentya: для %configure можно добавлять флаги?

14:49:45 bookwar: по сути rpm-спек - это тот же bash-скрипт, только с кучей макросов

14:49:51 bookwar: djsmentya: можно

14:50:09 bookwar: arthur.fayzullin: да. у нас будет configure.sh

14:50:38 arthur.fayzullin: bookwar: коменитируем то что есть и ставим свое?

14:50:53 bookwar: да, вместо строчки %configure мы ставим ./configure.sh --prefix=/usr

14:51:03 bookwar: почему --prefix=/usr ?

14:51:14 krab: чтобы не в local

14:51:20 bookwar: потому что по умолчанию этот скрипт использует префикс /usr/local

14:51:45 taurus: » [16:48:40] <Михаил Витальевич Гаврилов> а можно узнать как и какими rpm --eval '%make_install'

14:51:46 bookwar: а нам это не нужно, мы ставим по с помощью rpm-пакетов, и rpm позаботится о том чтобы пакет не конфликтовал с другими

14:52:16 bookwar: поэтому выносить файлы в /opt или в /usr/local нам нет необходимости

14:52:54 konstantinjch: Так конечный вид какой будет ?

14:52:58 taurus: Михаил Витальевич Гаврилов: %make_install использовать не нужно, просто make

14:53:11 taurus: *просто make install

14:53:27 bookwar: konstantinjch: вместо %configure будет ./configure.sh --prefix=/usr

14:53:56 bookwar: http://www.fpaste.org/Q9sd/

14:54:12 bookwar: команда make - это как обычно

14:54:26 bookwar: просто make но с дополнительными параметрами скрытыми под макросом

14:54:43 arthur.fayzullin: bookwar: а что это за параметры?

14:54:49 bookwar: этот макрос стандартен для fedora , вообще говоря для сборки пакета дома себе он не обязателен

14:55:06 skyb: bookwar: мне всегда было интересно, а префиксы зачем?

14:55:08 bookwar: там есть набор security-параметров, FORTIFY-чего-то там и т.п.

14:55:11 skyb: при конфигурировании

14:55:31 krab: rpm --eval %{?_smp_mflags} -j4

14:55:35 taurus: %{?_smp_mflags} - это количество потоков которое собирать, зависит от количества ядер

14:55:41 Михаил Витальевич Гаврилов: rpm --eval '%{?_smp_mflags}' --> -j4 хм можо было просто написать -j :)

14:55:41 taurus: то есть make -j4

14:55:46 bookwar: skyb: ну ты выполни confugure.sh без префикса и с префиксом

14:55:50 krab: неть

14:55:57 bookwar: skyb: и посмотри на пути

14:56:02 skyb: bookwar: без ругаццо же будет

14:56:28 bookwar: skyb: если выполнить только configure.sh то не будет, это не в спеке а в той папке где мы сначала тренировались

14:56:29 skyb: мне не чисто с этим пакетом а вообще

14:56:49 bookwar: так, параметры для make оставляем, они никому не мешают

14:57:02 skyb: путь куда пакет ставить, или от куда либы брать

14:57:25 bookwar: по гайдлайнам федоры менять параметры для make можно только с официального одобрения FESCo

14:57:41 bookwar: секция %build у нас готова

14:57:44 bookwar: идем дальше

14:57:57 bookwar: skyb: префикс - это _куда_ ставить

14:57:58 skyb: мне так и не ответели

14:58:21 bookwar: секция %install

14:58:31 bookwar: вообще как происходит установка при сборке пакета?

14:58:47 skyb: bookwar: а что ещё зависит от префикса куда ставится? что потом кто то пользоваться будет?

14:58:53 bookwar: файлы ставятся не в систему а в папку ~/rpmbuild/BUILDROOT

14:59:39 bookwar: skyb: ну например если ты поставишь все в /opt, то бинарные файлы у тебя окажутся не в PATH. поэтому ты не сможешь выполнять команду в терминале без полного пути до неё

15:00:09 Михаил Витальевич Гаврилов: а стандарный %configure мы не оставили только потому что у нас скрипт называется не ./configure а ./configure.sh ?

15:00:20 bookwar: Михаил Витальевич Гаврилов: да

15:00:47 skyb: bookwar: а полный путь или то от куда запускать решает уже система?

15:01:00 skyb: полный или просто название проги*

15:01:10 taurus: Михаил Витальевич Гаврилов: не только там еще другие параметры, %configure работает только с тем для чего используется стандартный autoconf

15:01:20 bookwar: "не в систему а в папку ~/rpmbuild/BUILDROOT", например , если мы хотим чтобы в результате установки в систему файл test.tmp оказался лежащим по пути /opt/test.tmp, при сборке в спеке мы копируем его в $RPMBUILDROOT/opt/test.tmp

15:01:40 skyb: тоесть пакет совершенно новый в системе, установлен в /usr или куда то ещё, как система узнает от куда запускать

15:01:56 bookwar: skyb: ты знаешь что такое переменная PATH?

15:02:07 skyb: bookwar: отдаленно

15:02:15 taurus: skyb: пакет не устанавливается в определенный путь.

15:02:18 bookwar: skyb: echo $PATH сделай

15:02:33 taurus: skyb: файлы пакеты разбросаны по файловой системе.

15:02:39 bookwar: так, про %install все понятно?

15:03:04 bookwar: ставим в $RPMBUILDROOT как будто это папка / нашей системы

15:03:05 arthur.fayzullin: bookwar: а почему там макрос?

15:03:13 arthur.fayzullin: а не просто make install

15:03:16 Михаил Витальевич Гаврилов: $RPM_BUILD_ROOT - куда указывает

15:03:27 skyb: bookwar: сделал, taurus это понятно, так как система то узнает, файл запуска ложится куда нада?

15:03:55 bookwar: Михаил Витальевич Гаврилов: в ~/rpmbuild/BUILDROOT/$name-$version-$arch/

15:04:16 taurus: skyb: файл запуска ложится туда куда его положит make install

15:04:25 Михаил Витальевич Гаврилов: т е сначала мы чистим от старых файлов

15:04:40 bookwar: arthur.fayzullin: %make_install - это артефакт, на самом деле сейчас уже рекомендуют не использовать макросов там где не надо

15:04:41 skyb: taurus: возратимся к вопросу, а нафига префикс =)

15:04:45 bliznezz: в моем динозавтре rpmdev-newspec в заголовке задал: BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

15:04:56 taurus: еще раз о каком именно префиксе речь?

15:05:03 Михаил Витальевич Гаврилов: А затем выполняем комманду /usr/bin/make install DESTDIR=/home/mikhail/rpmbuild/BUILDROOT/%{name}-%{version}-%{release}.i386

15:05:04 ArcFi: skyb: видимо, это на совести разработчика должно быть по FHS: http://ru.wikipedia.org/wiki/FHS

15:05:05 skyb: bookwar (20:53:08) konstantinjch: вместо %configure будет ./configure.sh --prefix=/usr

15:05:23 taurus: а ... это коречь того откуда все остальные пути будут считаться

15:05:48 arthur.fayzullin: bookwar: так мы оставляем этот макрос или как?

15:05:49 bookwar: bliznezz: это тоже артефакт, оно не нужно сейчас

15:05:56 skyb: taurus: ок, а зачем его указывать? и от чего зависит он, почему я не смогу положить куда хочу?

15:06:03 krab: это очень наркоманский configure.sh там всё никак обычно

15:06:07 bookwar: arthur.fayzullin: нам надо дополнительно исправить make install

15:06:14 taurus: skyb: то есть бинарники лежат в ${prefix}/bin

15:06:24 bookwar: поэтому мы пишем make install INSTALL_ROOT=$RPM_BUILD_ROOT

15:06:47 arthur.fayzullin: bookwar: а то что было или удаляем или коментируем?

15:07:00 bookwar: arthur.fayzullin: да

15:07:34 taurus: skyb: его указывать затем чтоб configure настроил пути для установки файлов приложения.

15:07:39 skyb: taurus: а порой при ./configure.sh иногда просит префикс указать чеголибо, это что?

15:07:56 bookwar: arthur.fayzullin: команда make install без параметра попытается установить файлы в систему, и разумеется мы этого не хотим, мы хотим чтобы файлы лежали в RPM_BUILD_ROOT

15:08:16 konstantinjch: bookwar: в итоге что будет у нас?

15:08:25 Михаил Витальевич Гаврилов: не понял почему INSTALL_ROOT, а не DESTDIR

15:08:27 djsmentya: я что то пропустил $RPM_BUILD_ROOT у меня пуст

15:08:41 taurus: skyb: мне отойти надо .. если не разберешься потом еще пиши

15:08:51 bookwar: Михаил Витальевич Гаврилов: ну это я просто уже когда собирала выяснила что разработчик использует именно этот параметр )

15:09:01 skyb: taurus: или префикс это чисто для конфигурирования приложения, и оно не зависит от других библиотек, тоесть нет такого что указывается на другую библу префиксом при конфигуре

15:09:14 bookwar: Михаил Витальевич Гаврилов: то есть вы могли бы написать DESTDIR а потом найти ошибку

15:09:17 bookwar: я решила сократить путь )

15:09:25 ArcFi: bookwar: давайте проверим: cat ~/rpmbuild/SPECS/knotter.spec | fpaste

15:09:38 bookwar: konstantinjch: Михаил Витальевич Гаврилов ArcFi arthur.fayzullin http://fpaste.org/BCya/

15:09:48 skyb: ArcFi: можно проще fpaste ~/rpmbuild/SPECS/knotter.spec

15:10:01 taurus: skyb: местоположение других библиотек можно указать с помощью других опций

15:10:19 ArcFi: skyb: ok, будем знать

15:10:25 skyb: taurus: а префикс это только то куда устанавливать софт в случае чего?

15:10:32 Михаил Витальевич Гаврилов: хм а не проще ли было уговорить разработчика использовать DESTDIR???

15:10:32 arthur.fayzullin: bookwar: ну кактатак :) +

15:10:37 taurus: skyb: да

15:10:47 bookwar: Михаил Витальевич Гаврилов: это правильный вопрос

15:10:48 f1yegor: оффтоп: как fpaste отсылать конкретные строки из файла?

15:10:58 taurus: Михаил Витальевич Гаврилов: флаг в руки ;)

15:11:14 skyb: taurus: и зависит от софта, тоесть если мне конфигуре говорит что типо не буду ставить укажи префикс, либо поставит сам сразу

15:11:21 bookwar: Михаил Витальевич Гаврилов: вообще для майнтэйнера, то есть сборщика пакета, контакт с разработчиком очень важен

15:11:38 skyb: f1yegor: тоесть?

15:11:45 taurus: skyb: по умолчанию чаще всего /usr/local используется

15:11:47 bookwar: все патчи, которые вам придется делать, или флаги компиляции или странные зависимости надо сообщать разработчику

15:11:52 ArcFi: f1yegor: grep ... | fpaste

15:12:05 Михаил Витальевич Гаврилов: ну это ясно в идеале чтобы разработчик писал сам spec :)

15:12:07 bookwar: тем более если патч уже готов, разработчик будет счастлив его увидеть (ну скорее всего)

15:12:16 bookwar: не, я считаю что разработчик спек писать не должен

15:12:22 konstantinjch: f1yegor: http://fpaste.org/ ? rjgbhetim c.lf/ 'nj gjrf? yj tcnm b gj lheujve cgjcj,s

15:12:26 skyb: f1yegor: ArcFi сам фпаст это же чисто аплоад на фпасту и все, он толком ничего не умеет

15:12:32 konstantinjch: _turn

15:12:34 skyb: taurus: вроде понял

15:12:34 IsidaBot: f1yegor: http://fpaste.org/ , копируешь сюда. это пока, но есть и по другому способы

15:12:35 bookwar: потому как вот например у нас важно чтобы соблюдались гайдлайны именно федоры

15:12:37 skyb: пасиб

15:12:45 bookwar: а разработчики очень часто рассматривают это как помеху

15:12:57 f1yegor: IsidaBot: понял

15:13:22 bookwar: так, ну технические секции мы подготовили. сохраняем файл и попробуем его собрать

15:13:28 skyb: f1yegor: IsidaBot это бот, а писал konstantinjch )

15:13:29 konstantinjch: f1yegor: ;-)

15:13:38 Михаил Витальевич Гаврилов: %files %doc

15:13:44 taurus: » [17:12:26] <bookwar> а разработчики очень часто рассматривают это как помеху увы (((

15:13:48 arthur.fayzullin: bookwar: %files - не трогаем?

15:14:20 bookwar: arthur.fayzullin: пока нет, конечно нам придется к нему вернуться, но сейчас протестим то что есть

15:14:33 arthur.fayzullin: ok

15:14:37 bookwar: сборку пакета из спека выполняет rpmbuild

15:15:06 bookwar: rpmbuild может быть запущен с разными флагами и подробности есть в мане, но нам нужны будут несколько

15:15:07 bliznezz: хмг. mkdir: невозможно создать каталог «/usr/share/knotter»: Отказано в доступе

15:15:07 arthur.fayzullin: + сам спек?

15:15:11 f1yegor: konstantinjch: а как обычноо выделяют конкретные строки? про grep я знаю

15:15:20 Михаил Витальевич Гаврилов: $ rpmbuild -bb ~/rpmbuild/SPECS/knotter.spec error: Failed build dependencies: и is needed by knotter-0.7.0-1.fc18.i386

15:15:29 Михаил Витальевич Гаврилов: меня не прошло :

15:15:33 konstantinjch: f1yegor: потом, хорошо?

15:15:43 bookwar: Михаил Витальевич Гаврилов: ты там BuildRequires поправь

15:15:55 bookwar: а то "и" у тебя там вместо запятой

15:16:01 f1yegor: konstantinjch: ok

15:16:11 krab: > [15:11:47] <bookwar> не, я считаю что разработчик спек писать не должен конечно, они понапишут наркоманские системы сборки которые годны наверное только для slackware

15:16:22 bookwar: rpmbuild умеет проходить по стадиям сборки последовательно

15:16:43 skyb: ArcFi: спс за гайд)

15:16:46 elemc: krab, только для убунту, ты хотел сказать :)

15:16:54 bookwar: поэтому при тестировании пакета мы можем протестировать сначала секцию prep потом prep и build потом prep buid и install

15:17:10 bookwar: а потом всё сразу

15:17:27 arthur.fayzullin: rpmbuild knotter.spec

15:17:29 bookwar: тестируем prep командой rpmbuild -bp knotter.spec

15:17:29 arthur.fayzullin: так?

15:17:39 bookwar: arthur.fayzullin: нет, флаги нужны

15:17:47 skyb: bookwar: > bookwar > (21:16:35) поэтому при тестировании пакета мы можем протестировать сначала секцию prep потом prep и build потом prep buid и install

это только делает тестовую сборку только для тебя, а не пакет в общем?

15:17:49 Михаил Витальевич Гаврилов: $ rpmbuild -bb ~/rpmbuild/SPECS/knotter.spec Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.wEsfar + umask 022 + cd /home/mikhail/rpmbuild/BUILD + cd /home/mikhail/rpmbuild/BUILD + rm -rf knotter-0.7.0 + /usr/bin/tar -xf /home/mikhail/rpmbuild/SOURCES/knotter-0.7.0.tar.gz + cd knotter-0.7.0 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.UWcH6C + umask 022 + cd /home/mikhail/rpmbuild/BUILD + cd knotter-0.7.0 + CFLAGS='-O2 -g -march=i386 -mtune=i686' + export CFLAGS + CXXFLAGS='-O2 -g -march=i386 -mtune=i686' + export CXXFLAGS + FFLAGS='-O2 -g -march=i386 -mtune=i686' + export FFLAGS + ./configure --host=i686-redhat-linux-gnu --build=i686-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info /var/tmp/rpm-tmp.UWcH6C: line 33: ./configure: No such file or directory error: Bad exit status from /var/tmp/rpm-tmp.UWcH6C (%build)

RPM build errors: Bad exit status from /var/tmp/rpm-tmp.UWcH6C (%build)

15:18:05 djsmentya: и у меня

15:18:06 krab: elemc: в убунте всё номрально, это проблемы дебиана., в shotwell долго было плохо, в архивах с релизом был cache файл, в vcs его не было

15:18:18 bliznezz: %configure надо таки убирать, а не комментировать.

15:18:19 skyb: Михаил Витальевич Гаврилов: статус говорит плохой, в вк наверное? :-D

15:18:30 arthur.fayzullin: у мено все вроде хорошо экзит 0

15:18:39 bookwar: Михаил Витальевич Гаврилов: логи на fpaste.org пожалуйста

15:18:42 elemc: krab, ты давно, видать, с launchpad не пробовал что-то собирать :) там про automake, cmake, scons - вообще никто не знает :)

15:18:47 bookwar: Михаил Витальевич Гаврилов: и спек туда же

15:19:37 bookwar: ещё раз, слушаем меня и выполняем тестирование prep-секции: rpmbuild -bp knotter.spec

15:20:03 skyb: bookwar: > ещё раз, слушаем меня есть мэм =)

15:20:04 bookwar: это важный этап потому что тут высвечиваются ошибки надложения патчей или неправильный формат архива

15:20:09 bookwar: наложения*

15:20:25 skyb: bookwar: после этого этапа уже идет сборка?

15:20:29 krab: огласите полный spec пожалуйста, я что-то пропустил

15:20:43 Михаил Витальевич Гаврилов: http://paste.stg.fedoraproject.org/1100/

15:20:49 Михаил Витальевич Гаврилов: так сам нашел проблему

15:20:53 bookwar: в нашем случае должно получиться так: http://fpaste.org/ED8D/

15:21:11 ArcFi: bookwar: http://fpaste.org/JLmL/ норм?

15:21:13 bliznezz: line 33: ./configure: No such file or directory Михаил Витальевич Гаврилов, у вас убирите строчку с #%configure

15:21:13 Михаил Витальевич Гаврилов: вопрос как закоментаривать в секциях??

15:21:35 bookwar: Михаил Витальевич Гаврилов: удали

15:21:48 Роман Помянский: ошибка: Обнаружен(ы) установленный(е) (но не упакованный(е)) файл(ы)

15:21:49 Михаил Витальевич Гаврилов: удалил все получилось

15:21:53 bookwar: комментирование в комплекте с макросами работает хитро

15:22:00 ArcFi: bookwar: пардон, вот: http://fpaste.org/ChUw/

15:22:00 Михаил Витальевич Гаврилов: нельзя значит закоментировать?

15:22:07 bookwar: если макрос разворачивается в несколько строк например, могут быть проблемы

15:22:17 bookwar: то есть вообще комментировать можно, но осторожно )

15:22:18 skyb: о, полезная инфа

15:22:40 Михаил Витальевич Гаврилов: а как можно на моем примере? пожалуйста :)

15:22:49 bookwar: так, все увидели что же на самом деле сделала загадочная команда setup -q ?

15:23:07 bookwar: Михаил Витальевич Гаврилов: это я так не скажу сходу, думать надо :)

15:23:18 skyb: да и зачем

15:23:25 bookwar: Михаил Витальевич Гаврилов: вообще просто надо стараться не комментировать макросы

15:23:26 skyb: лучше удалить

15:23:28 babkinstas: ошибка: Обнаружен(ы) установленный(е) (но не упакованный(е)) файл(ы) +1

15:24:16 arthur.fayzullin: ArcFi: как ты это на фпст отправил? он грит ты грит бинарник хочешь аплодить

15:24:37 skyb: arthur.fayzullin: ещё раз

15:24:37 bookwar: %prep вырполнили, потом выполняем %build, тут надо обратить внимание на лог, чтобы удостовериться что зависимости найдены, конфигурирование использует правильные префиксы и т.п.

15:24:39 skyb: бывает

15:24:46 skyb: соглашайся

15:25:01 bookwar: выполняем build командой rpmbuild -bb knotter.spec

15:25:23 arthur.fayzullin: rpmbuild -bp knotter.spec | fpaste - так не хочет аплодить

15:25:44 bookwar: arthur.fayzullin: rpmbuild -bp knotter.spec 2>&1 | fpaste

15:26:15 arthur.fayzullin: http://fpaste.org/2pOD/

15:26:17 djsmentya: после rpmbuild -bb тоже надо?

15:26:19 f1yegor: http://fpaste.org/5F4O/

15:26:40 f1yegor: удалил %configure, но ругается

15:26:49 bookwar: f1yegor: ты как-то не так аплоадишь лог

15:26:57 bookwar: djsmentya: что именно надо?

15:27:24 arthur.fayzullin: http://fpaste.org/2pOD/ шота bb ругается :(

15:27:34 djsmentya: что выполнять? rpmbuild -bp knotter.spec в се норм, а дальше?

15:27:35 bliznezz: у меня %install не проходит. пытается создавать каталоги в /usr/share http://www.fpaste.org/hyPY/

15:28:07 bookwar: djsmentya: rpmbuild -bb knotter.spec

15:28:30 ArcFi: bookwar: откуда строки: + LANG=C, + export LANG, + unset DISPLAY у меня их нет

15:28:36 skyb: bliznezz: префикс указал?

15:28:54 bliznezz: skyb: да. /usr http://www.fpaste.org/8nZV/

15:29:24 bookwar: ArcFi: это стандарт для rpmbuild

15:29:45 arthur.fayzullin: удилил #%configure вроде что-то пошло

15:29:56 f1yegor: справился, помогло удалить все комменты в файле

15:30:06 friogenn: Записан: /home/friogenn/rpmbuild/RPMS/i386/knotter-0.7.0-1.fc17.i386.rpm

15:30:39 ArcFi: и повторяется строка + cd /home/arcfi/rpmbuild/BUILD + cd /home/arcfi/rpmbuild/BUILD

15:30:39 babkinstas: то что на неупакованные файлы ругается это нормально ?

15:30:58 Михаил Витальевич Гаврилов: Глянте http://paste.stg.fedoraproject.org/1102/

15:31:05 bookwar: babkinstas: это нормально потому что мы не дописали спек

15:31:23 bookwar: все получили что-то похожее на http://paste.stg.fedoraproject.org/1102/ ?

15:31:37 krab: яволь

15:31:49 bookwar: Installed (but unpackaged) file(s) found и список файлов

15:32:12 f1yegor: bookwar: да

15:32:14 skyb: bookwar: у тебя федора не RFRemix?

15:32:21 konstantinjch: Все в /SPECS ?

15:32:21 bookwar: skyb: да

15:32:31 arthur.fayzullin: bookwar: щас 5 сек у меня еще идет

15:33:01 ArcFi: bookwar: нет :(

15:33:24 skyb: bookwar: кстати, а клава у тебя с русскими буквами? или по памяти?

15:33:25 bookwar: что делает rpmbuild при окончательной упаковке файлов в бинарный пакет? он берет все дерево из $RPM_BUILD_ROOT и архивирует его

15:33:30 bookwar: skyb: с немецкими

15:33:46 bliznezz: странно, ноу меня в %install make упорно лезет создавать каталог от корня файловой системы. + make install DESTDIR=/home/oleg/rpmbuild/BUILDROOT/knotter-0.7.1-1.fc13.i386 mkdir: невозможно создать каталог «/usr/share/knotter»: Отказано в доступе

15:33:49 skyb: bookwar: хы, печатаешь по памяти?

15:33:52 ArcFi: bookwar: http://paste.stg.fedoraproject.org/1103/

15:34:08 bookwar: bliznezz: прочитай наш лог чата, мы DEST_DIR уже обсудили

15:34:15 arthur.fayzullin: bookwar: вроде также

15:34:21 bookwar: bliznezz: надо INSTALL_ROOT использовать

15:34:37 ArcFi: bookwar: мне что делать-то?

15:34:41 bookwar: ArcFi: это bp. а мы теперь выполнили bb

15:34:50 bookwar: rpmbuild -bb knotter.spec

15:35:05 bookwar: на самом деле мы немножко перепрыгнули дальше чем я хотела

15:35:29 krab: нужно команды которые выполнять для всех писать из под другого ника, тут перемешивается всё

15:35:33 konstantinjch: bookwar: так откати, как надо

15:36:12 bookwar: послежовательные флаги у rpmbuild это -pb - %prep, потом -bc это %prep + %build, потом -bi это %prep+%build+ %install потом -bb - это сборка бинарного пакета, то есть сборка rpm

15:36:28 ArcFi: bookwar: http://fpaste.org/OHZM/

15:36:46 arthur.fayzullin: bookwar: проделать все в этой последоватлности?

15:37:04 bookwar: то есть при отладке спека вы можете останавливаться на любом из нужных этапов и ходить потом по директориям BUILD BUILDROOT и смотреть на файлы в них, определять что не так

15:37:05 konstantinjch: ArcFi: убери коменты

15:37:29 krab: убери решетку перед процентом

15:37:31 bookwar: нам это сейчас уже не надо, потому что раз мы протестировали -bb мы тем самым прошли и все предварительные этапы тоже

15:37:36 konstantinjch: ArcFi: в смысле строки с коментами

15:37:44 krab: тьфу убери всю строку

15:37:45 arthur.fayzullin: bookwar: *OK*

15:38:02 bookwar: так что у нас сейчас актуальна только ошибка Installed (but unpackaged) file(s) found

15:38:28 krab: яволь

15:38:35 bookwar: она говорит о том что rpmbuild нашел в каталоге BUILDROOT файлы и архивирует их в пакет, но тут у него включается дополнительная проверка

15:39:00 bookwar: эта дополнительная проверка сделана специально, чтобы в пакет не попали лишние файлы

15:39:41 skyb: bookwar: а как они могут туда попасть?

15:39:45 bookwar: конечно, теоретически rpmbuild может сам взять список файлов из каталога и положить их в пакет, но он не хочет этого делать и требует для _каждого_ положенного в пакет файла потверждения в спеке

15:39:55 Михаил Витальевич Гаврилов: они есть в архиве

15:40:01 bookwar: о том что да. вы действительно считаете что этот файл этому пакету нужен

15:40:05 bookwar: Михаил Витальевич Гаврилов: не в архиве

15:40:19 bookwar: мы сейчас говорим о файлах в RPM_BUILD_ROOT

15:40:39 Михаил Витальевич Гаврилов: ошибя в каталоге в который разворачивается архив для сборки

15:40:51 bookwar: опять нет )

15:41:01 Михаил Витальевич Гаврилов: сдаюсь :)

15:41:05 ArcFi: konstantinjch, bookwar: комменты убрал, та же фигня: http://fpaste.org/WwpL/

15:41:20 bookwar: у нас есть два каталога: один в BUILD, где лежат развернутые исходники

15:41:25 bookwar: это рабочий каталог

15:41:41 bookwar: есть второй - в BUILDROOT

15:41:46 bookwar: это целевой каталог

15:41:52 bookwar: мы собираем в BUILD

15:42:01 bookwar: потом устанавливаем в BUILDROOT

15:42:09 krab: ArcFi: rpmbuild -bb knotter.spec

15:42:24 ArcFi: krab ок

15:42:27 bookwar: потом rpmbuild собирает все что есть в BUILDROOT в готовый пакет

15:42:54 ArcFi: так, поехало... =)

15:42:58 Михаил Витальевич Гаврилов: В BUILDROOT файлы кто ложит в итоге то?

15:43:07 krab: R

15:43:08 Михаил Витальевич Гаврилов: cкрипт разработчика?

15:43:16 krab: make install

15:43:17 bookwar: Михаил Витальевич Гаврилов: в нашем спеке есть команда

15:43:32 bookwar: make install INSTALLROOT=$RPM_BUILD_ROOT

15:43:43 f1yegor: да, все правильно, в BUILD нет файлов .png, на которые ругается rpmbuild --bb

15:43:58 bookwar: эта команда как раз устанавливает собранные бинарники в целевой каталог

15:44:18 krab: f1yegor: BUILD/img/

15:44:40 krab: rpmbuild/BUILD/knotter-0.7.0/img

15:45:00 bookwar: посмотрите внимательно в каталоги ~/rpmbuild/BUILD/knotter-0.7.0/ и ~/rpmbuild/BUILDROOT/knotter-0.7.0-1.fc17.x86_64/

15:45:16 f1yegor: krab: *share* там нет,

15:45:22 Михаил Витальевич Гаврилов: а make install какм файлом руководствуется при этом?

15:45:29 bookwar: в первом - исходники, и промежуточные файлы, типа Makefile которые создаются конфигурационными скриптами

15:45:34 bookwar: а во втором уже данные

15:45:45 bookwar: Михаил Витальевич Гаврилов: это в Makefile разработчика

15:46:04 krab: Makefile который создает configure (по правде qmake-qt4)

15:46:04 Роман Помянский: bookwar: а как опакетить софт в котом нет make install и его аналогов

15:46:06 Михаил Витальевич Гаврилов: я это и имел в виду когда говорил про разработчика :)

15:46:26 bookwar: Роман Помянский: руками пишем команды раскладываюшие файлы по нужным директориям

15:46:52 bookwar: например если мне надо положить в систему systemd-юнит, а у разработчика конечно ничего такого нет, то я пишу:

15:47:05 arthur.fayzullin: Роман Помянский: заносим разработчика в peopletokill :)

15:47:20 Михаил Витальевич Гаврилов: Кстати bookwar по моему rpm можно заставить расскладывать файлы по нужным директориям

15:47:39 bookwar: в секции %install такие строчки: mkdir -p $RPM_BUILD_ROOT%{_unitdir} cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_unitdir}

15:47:50 bookwar: как видите. спек - это bash-скрипт

15:48:02 bookwar: я могу использовать в нем стандартные башовые команды

15:48:16 krab: потеринг вам сделает бинарные спеки ;)

15:48:28 bookwar: чтобы поместить файл в пакет, я просто создаю нужный путь RPM_BUILD_ROOT%{_unitdir}

15:48:49 Михаил Витальевич Гаврилов: а так %{__install} -Dp -m0644 %{SOURCE0} %{buildroot}%{_sysconfdir}/yum.repos.d/citrus-it.repo ???

15:49:01 Михаил Витальевич Гаврилов: я вот так писал

15:49:03 bookwar: Михаил Витальевич Гаврилов: можно и так

15:49:23 bliznezz: еще вопросик, если мне надо сделать файлику chmod +s, а я собираю из-под бесправного mock-юзера, который даже у себя такого не может сделать. как такое делается?

15:49:59 bookwar: то есть ты просто кладешь нужный файл по нужному пути относительно $RPM_BUILD_ROOT или %{buildroot} что одно и то же

15:50:31 bookwar: итак. ещё раз: наш бинарный пакет - это все что лежит в BUILDROOT

15:50:39 elemc: bliznezz, fedora официально уходит от использования suid-флага, думай как прикрутить policykit

15:50:43 bookwar: все файлы которые там лежат будут установлены в систему

15:51:11 bookwar: но сначала надо подтвердить что да, там лежат только нужные файлы и ничего лишнего мы случайно не доложили

15:51:31 bookwar: для этого мы перечисляем все файлы пакета в секции %files нашего спека

15:51:45 arthur.fayzullin: bookwar: т.е. чтобы он не ругался как ругается у нас?

15:51:48 bookwar: да

15:52:04 bookwar: нам нужно весь тот список файлов на которые он ругается перечислить в спеке

15:52:13 bookwar: но конечно по одному файлу мы перечислять не будет

15:52:17 bookwar: будем

15:52:19 krab: [krab@fedora SPECS]$ ldd ../BUILDROOT/knotter-0.7.0-1.fc17.x86_64/usr/bin/knotter | grep boost libboost_program_options.so.1.48.0 => /lib64/libboost_program_options.so.1.48.0 (0x00007f9b20604000) ага с бустом собралось

15:52:43 arthur.fayzullin: bookwar: а как будем?

15:52:52 bookwar: мы можем перечислить каталоги, тогда все файлы из жтих каталогов будут считаться упомянутыми

15:53:22 bookwar: ну и перечисляем мы файлы с помощью путей но не путей в нашей системе, а путей, таких какими они станут после установки

15:53:30 taurus: elemc: даже в случае policykit suid должен быть выставлен

15:53:54 arthur.fayzullin: bookwar: можно просто /usr указать?

15:53:54 bookwar: то есть например у нас есть файл /home/bookwar/rpmbuild/BUILDROOT/knotter-0.7.0-1.fc17.x86_64/usr/bin/knotter

15:53:56 elemc: taurus, нет, ты путаешь с consolekit

15:54:07 bookwar: а в спеке нужно указать /usr/bin/knotter

15:54:21 taurus: elemc: возможно ... вроде я просто как то разбирался как это работает.

15:54:32 bookwar: arthur.fayzullin: нет, все файлы которые перечислены в %files принадлежат нашему пакету

15:54:46 elemc: это именно в ck и именно от нее федора пытается убежать вот уже 5 релизов

15:54:53 bookwar: то есть если пакет будет удаляться, то все файлы из %files будут удалены

15:55:09 bookwar: rpm следаит за тем чтобы один файл не принадлежал двум разным пакетам

15:55:43 bookwar: именно поэтому важно перечислить именно свои файлы и никакой не забыть

15:55:51 arthur.fayzullin: bookwar: оноче.... ястно берем вывод ругательных фалов и копируем их в файлес?

15:55:55 bookwar: нет

15:56:08 elemc: но вообще надо посмотреть spec для gparted, например, там используется suid и как это внутри пакета делается

15:56:10 krab: сокращай до каталогов, обрезай дубли ;)

15:56:14 Михаил Витальевич Гаврилов: а если будут перечисленны лишние файлы? :)

15:56:16 bookwar: мы смотрим в каталог /home/bookwar/rpmbuild/BUILDROOT/knotter-0.7.0-1.fc17.x86_64/

15:56:25 bookwar: Михаил Витальевич Гаврилов: rpmbuild ругаться будет

15:57:06 f1yegor: bookwar: %files /usr/share/knotter, /usr/share/doc/knotter ?

15:57:11 bookwar: в этом каталоге есть стандартные системные папки

15:57:23 bookwar: /usr/bin

15:57:27 bookwar: /usr/share

15:57:33 bookwar: и т.п.

15:57:39 arthur.fayzullin: ага

15:57:45 bookwar: они системные, а в них лежат уже папки нашего пакета

15:58:19 djsmentya: так что писать?

15:58:21 ArcFi: bookwar: как получить список файлов? find ~/rpmbuild/BUILD/knotter-0.7.0 ?

15:58:46 elemc: ArcFi, find /some/dir -type f

15:59:04 babkinstas: /usr/share/knotter /usr/bin/knotter /usr/share/doc/knotter /usr/share/applications/knotter.desktop /usr/share/man/man1/knotter.1.gz

15:59:10 babkinstas: ура

15:59:36 babkinstas: есть rpm

15:59:42 djsmentya: а %doc удалить?

15:59:45 bookwar: правильно. ключевые компоненты собственно их configure.sh нам писал

15:59:56 bliznezz: а есть какие-то макросы или переменные, которые означают /usr/bin/ , /usr/share/doc ?

16:00:00 taurus: elemc: не нашел я там suid

16:00:07 bookwar: есть макросы. выглядят вот так: %{_mandir}/man1/%{name}.1.gz %{_datadir}/applications/%{name}.desktop %{_datadir}/%{name} %{_bindir}/%{name}

16:00:26 arthur.fayzullin: шота у меня больше файлов

16:00:51 bookwar: _datadir - это /usr/share

16:01:15 bookwar: ну и остальные вот тут: https://fedoraproject.org/wiki/Packaging:RPMMacros

16:01:27 Роман Помянский: %doc как использовать

16:01:34 arthur.fayzullin: http://fpaste.org/xM8x/ у меня так

16:01:46 ArcFi: find ~/rpmbuild/BUILDROOT/knotter-0.7.0-1.fc17.x86_64/ | sed "s%$HOME/rpmbuild/BUILDROOT/knotter-0.7.0-1.fc17.x86_64%%g"

16:01:58 krab: %doc README NEWS COPYING AUTHORS

16:02:27 bliznezz: а как проверить все файлы я упаковал в rpm, без продолжительного %install ?

16:02:39 bookwar: bliznezz: сейчас. пять сек

16:02:48 bookwar: про %doc:

16:02:58 bookwar: использовать %doc можно двумя путями

16:03:08 taurus: elemc: %attr(4111,root,root) %{_bindir}/sudo

16:03:23 taurus: bliznezz: %attr(4111,root,root) %{_bindir}/sudo

16:03:32 elemc: на да, я так и думал, attr/defattr

16:03:37 arthur.fayzullin: у меня дофига файлов это неправильно? http://fpaste.org/xM8x/

16:03:40 bookwar: если папка с документацией уже установлена в /usr/share/docs, то мы просто не перечисляем её в %files а помечаем как документацию

16:03:46 bookwar: выглядит это так %doc %{_docdir}/%{name}

16:03:52 krab: arthur.fayzullin: ага

16:04:06 bookwar: то есть то же перечисление но с пометкой %doc

16:04:27 krab: /usr/share/doc/

16:04:36 Михаил Витальевич Гаврилов: а на что это влияет?

16:04:48 bookwar: есть ещё файлы которые лежат в исходном каталоге, и которые разработчик в команде make install пропустил

16:05:00 ArcFi: bookwar: так http://fpaste.org/mYWA/ ?

16:05:06 taurus: bookwar: вроде %doc используется чтобы файлы документации брались из исходников?

16:05:09 bookwar: тогда их тоже можно вписать, как сказал krab

16:05:17 bookwar: например %doc README

16:05:54 bookwar: тогда файл README будет взят из каталога с исходниками, и скопирован в /usr/share/docs/knotter/ автоматчески

16:05:59 bookwar: ну и помечен как doc

16:06:03 krab: /usr/share/doc/

16:06:13 bookwar: да, в /usr/share/doc

16:06:25 bookwar: krab: спасибо )

16:06:30 krab: np

16:06:47 f1yegor: success http://fpaste.org/RqYL/

16:07:03 bookwar: то есть если вы указываете файл, который не существует в BUILDROOT, он будет браться из BUILD и добавляться в пакет

16:07:19 Михаил Витальевич Гаврилов: а чем разница для rpm между секциями %files и %doc??? или разницы нет просто такие соглашения,

16:07:31 bliznezz: ну на этапе установки, можно не устанавливать документацию rpm --install --excludedocs knotter...rpm

16:07:51 arthur.fayzullin: bookwar: как в итоге должно быть?

16:07:56 bliznezz: конфиги могут быть, которые при удалении пакета можно сохранить.

16:07:56 bookwar: Михаил Витальевич Гаврилов: да. пометка doc используется во вспомогательных утилитах

16:08:04 bookwar: у меня вот так получилось http://fpaste.org/31PZ/

16:08:58 Роман Помянский: вот интересно а ман страницы это не документация

16:09:04 bookwar: хотя по Fedora Guidelines лицензию надо обязательно добавлять в doc/

16:09:20 arthur.fayzullin: прикольно

16:09:36 djsmentya: ок. едим дальше?

16:09:46 bookwar: поэтому %doc README COPYING AUTHORS %{_docdir}/%{name} - это более правильно

16:09:53 bookwar: дальше нам осталось чуть чуть

16:10:08 bookwar: в Changelog надо вписать себя )

16:11:04 bookwar: формат у строчки changelog-а хитрый, поэтому яобычно пользуюсь встроенной в емакс функцией add changelog entry

16:11:13 bookwar: думаю в других редакторах такое тоже есть

16:11:19 bookwar: выглядит это в итоге вот так

16:11:36 bookwar: %changelog

- Initial build

16:11:56 bookwar: по хорошему в скобках должен быть почтовый ящик

16:12:02 elemc: bookwar, о, а ты в emacs не настраивала имя/мыло? О_О

16:12:03 arthur.fayzullin: -bb прошел без ошиобок

16:12:07 bookwar: вместо ника имя фамилия

16:12:11 bookwar: elemc: это на виртуалке

16:12:31 arthur.fayzullin: в vim есть что-нить похожее?

16:12:41 elemc: arthur.fayzullin, вроде есть

16:13:01 krab: notepad.exe >_<

16:13:05 bookwar:

- комментарий

16:13:13 bookwar: такой примерно формат

16:13:21 bliznezz: http://fedoraproject.org/wiki/Packaging:Guidelines#Changelogs

16:13:35 bliznezz: вверху новее

16:13:40 arthur.fayzullin: есть кто вим хорошо знает?

16:13:48 taurus: » [18:10:45] <bookwar> формат у строчки changelog-а хитрый, поэтому яобычно пользуюсь встроенной в емакс функцией add changelog entry не знал что такая есть, спасибо.

16:14:04 bookwar: bliznezz: да. вообще fedoraproject.org/wiki наш главный источник информации по пакетам

16:14:17 arthur.fayzullin: taurus: в емакс все есть :) жаль редактора нет :(

16:14:32 elemc: arthur.fayzullin, ты удивишься, но редактор есть ;)

16:14:35 bookwar: итак, Changelog написали, сохранили, запустили , rpmbuild -ba knotter.spec

16:14:37 taurus: arthur.fayzullin: комы ты это рассказываешь ;)

16:14:42 bookwar: выходим на финишную прямую

16:14:53 arthur.fayzullin: это же стандартная шутка про емакс

16:15:05 bookwar: запустили rpmbuild -ba knotter.spec

16:15:07 taurus: по последним данным в emacs недавно все так был добавлен тесктовый редактор :)

16:15:11 arthur.fayzullin: bookwar: changelog под или в строчку пишется?

16:15:18 bookwar: под

16:15:32 bookwar: вот так выглядит мой итоговый спек-файл http://files.bookwar.info/rpm/knotter.spec

16:16:05 bookwar: все уснули или ещё держатся? :)

16:16:14 Михаил Витальевич Гаврилов: про desktop-file-validate $RPM_BUILD_ROOT/%{_datadir}/applications/%{name}.desktop расскажите

16:16:39 bookwar: эта щтука необязательна но описана в гайдлайнах федоры

16:16:54 bookwar: вообще в федоре есть гайдлайны на все случаи жизни

16:17:10 taurus: а ты про mock и koji рассказывала?

16:17:11 Михаил Витальевич Гаврилов: надо бы про них рассказать :)

16:17:21 Михаил Витальевич Гаврилов: на русском конечно нет так? :(

16:17:28 bookwar: например - добавить системд-юнит, добавить иконку, добавить dekstop-файл и т.п.

16:17:39 taurus: » [18:16:35] <bookwar> вообще в федоре есть гайдлайны на все случаи жизни но в них черт ногу сломит )

16:17:43 ArcFi: bookwar: готово $ ls -l ~/rpmbuild/RPMS/x86_64 итого 1320 -rw-rw-r--. 1 arcfi arcfi 1350074 окт. 20 16:16 knotter-0.7.0-1.fc17.x86_64.rpm

16:17:53 bookwar: вот например про иконки http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Icon_Cache

16:17:54 krab: добавить русское описание к пакету да

16:18:08 bliznezz: <bliznezz> а как проверить все файлы я упаковал в rpm, без продолжительного %install ?

16:18:29 bookwar: или например что делать если вы собираете библиотеку http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Shared_libraries

16:18:47 bookwar: bliznezz: для этого у rpmbuild есть опция --list-check

16:19:13 bookwar: этих мелких рекомендаций много, и я думаю мы про них расскажем ещё как-нибудь в другой раз

16:19:19 krab: krab@fedora SPECS]$ rpm -qpl ../RPMS/x86_64/knotter-0.7.0-1.fc17.x86_64.rpm

16:19:26 djsmentya: у меня скомпилировалось под архитектуру X86_64. для других архитектуру нужно ставить соответствующую ос?

16:19:28 Михаил Витальевич Гаврилов: а мой spec получился таким http://paste.stg.fedoraproject.org/1104/ :)

16:19:41 arthur.fayzullin: жестяная жесть! получилось :)

16:19:51 elemc: djsmentya, нет, можно использовать rpmbuild, а можно и mock для таких целей

16:19:54 bookwar: в частности вот если ваш пакет использует desktop-файл, то рекомендациям fedora его надо проверить

16:20:08 bookwar: для этого используется в спеке команда desktop-file-validate

16:20:19 djsmentya: Спасибо всем! :D

16:20:20 bookwar: и как видите у меня там добавка в BuildRequires

16:20:26 bookwar: djsmentya: стоп-стоп

16:20:36 djsmentya: что?

16:20:37 bookwar: самое главное ещё, тест сборки!

16:20:43 arthur.fayzullin: bookwar: +

16:20:47 Михаил Витальевич Гаврилов: точно

16:20:50 djsmentya: аа

16:20:57 f1yegor: bookwar: файлы должны быть как у тебя под %doc, или как у Михаил Витальевич Гаврилов %files%{_bindir}/%{name}%{_datadir}/%{name}%{_datadir}/applications/%{name}.desktop%{_mandir}/man1/%{name}.1.gz %doc%{_docdir}/%{name} ?

16:20:58 bookwar: вот тут прозвучал вопрос про другие архтектуры

16:21:12 ArcFi: http://fpaste.org/7PI0/ B-)

16:21:13 elemc: taurus, я тебя удивлю - koji - это и есть mock в питон-обертке tg2 ;)

16:21:26 bookwar: f1yegor: правильнее помечать doc-директорию как %doc

16:21:32 bookwar: f1yegor: то есть как уменя

16:21:39 bookwar: f1yegor: но работать будет и так и так

16:21:58 taurus: elemc: в нем собирать быстрее чем у себя ) особенно если комп слабый

16:22:20 elemc: ну у меня таких проблем нет :)

16:22:21 taurus: elemc: да я знаю что koji этот тот же mock

16:22:23 f1yegor: bookwar: понял

16:22:24 bookwar: и вспомните у нас был вопрос - что если у меня в системе уже установлены какие-то зависимости были и на этапе подготовки мы их не заметили?

16:22:31 taurus: elemc: не всеж такие

16:22:31 bookwar: на это все есть один ответ - mock

16:23:00 bookwar: народ, мы ещё не закончили, 10 минут ещё потерпите :)

16:23:01 krab: фу http://bpaste.net/show/52423/

16:23:22 bookwar: mock - это утилита сборки rpm-пакетов в отдельном chroot-окружении

16:23:47 arthur.fayzullin: bookwar: я ребенку уже 2 раза подгузник сменил :) мы тут уже 3 с половиной часа :) так что хоть 20 :)

16:23:59 bookwar: это chroot-окружение не зависит от вашей системы. делается автоматически по готовому конфигу

16:24:03 Михаил Витальевич Гаврилов: тут другое имелось в виду

16:24:10 bookwar: и позволяет пересобрать ваш rpm в любых условиях

16:24:22 elemc: bookwar, не в любых :)

16:24:26 Михаил Витальевич Гаврилов: по логике программиста после %doc все идет что относиться к %doc

16:24:33 bookwar: поэтому поставьте mock : sudo yum install mock

16:24:37 arthur.fayzullin: bookwar: для любых архитектур?

16:24:43 elemc: под ppc ты на x86* не соберешь

16:24:50 krab: ага и для avr тоже :D

16:25:02 bookwar: arthur.fayzullin: ну вот видишшь меня поправляют )

16:25:04 bookwar: для многих

16:25:10 arthur.fayzullin: mips можно или спарк?

16:25:18 bliznezz: а на i686 под x86_64 ?

16:25:24 bookwar: Михаил Витальевич Гаврилов: %doc действует на строчку, это не секция, а команда как бы

16:25:32 elemc: для 4-ех по сути: x86, x86_64, mips ( некоторые ), arm :)

16:25:39 arthur.fayzullin: bookwar: сейчас установить mock?

16:25:42 bookwar: да

16:25:48 Михаил Витальевич Гаврилов: спаибо за уnочнение :)

16:26:10 djsmentya: поставил mock

16:26:28 elemc: или если архитектура системы. где используется mock - ppc64, то для ppc и ppc64 только

16:26:31 arthur.fayzullin: mock стоит :)

16:26:44 bookwar: посмотреть набор его конфигураций можно так: http://fpaste.org/QFWV/

16:27:09 Роман Помянский: bookwar: заметил странное дело когда указывал %doc README и полный путь к файлам бокументации то всё собиралось, когда заменил путь на макросы получил ошибку о том что нельзя смешивать файлы документации с другими

16:27:13 ArcFi: bookwar и всем помогавшим спасибо http://itmag.es/1nCPh http://itmag.es/3Ycyk всё получилось :-D

16:27:29 bookwar: мы с вами с помощью rpmbuild -pa knotter.rpm изготовили rpm-пакет и srpm-пакет

16:27:46 bookwar: они лежат у нас в ~rpmbuild/RPMS/ и ~/rpmbuild/SRPMS

16:27:55 ArcFi: http://itmages.ru/image/view/724082/42b3c7b2 http://itmages.ru/image/view/724081/e2c36b09

16:27:55 elemc: bookwar, но вообще кодера, который такое сотворил - надо отправить в ад, поддерживать в кибер-котлах убунту

16:28:06 krab: Роман Помянский: попробуй в одном %doc файлы ниже в %doc макросом путь

16:28:19 bookwar: теперь для тестирования сборки собираем уже готовый srpm в mock:

16:28:43 arthur.fayzullin: bookwar: а не rpmbuil -ba knotter.spec ?

16:28:52 arthur.fayzullin: что-то я пропустил

16:29:20 bookwar: mock -r fedora-17-x86_64 ~/rpmbuild/SRPMS/knotter*.srpm

16:29:34 krab: arthur.fayzullin: ви правы

16:29:57 bookwar: arthur.fayzullin: да, -ba

16:30:10 bliznezz: что здесь значит fedora-17-x86_64 ?

16:30:10 bookwar: -ba то есть "build all"

16:30:22 krab: mock -r fedora-17-x86_64 ~/rpmbuild/SRPMS/knotter*.src.rpm

16:30:42 Михаил Витальевич Гаврилов: $ mock -r fedora-17-i686 ~/rpmbuild/SRPMS/knotter-0.7.0-1.fc18.src.rpm ERROR: Could not find required config file: /etc/mock/fedora-17-i686.cfg

16:30:47 Роман Помянский: bookwar: а в чём разница? мы же вроде уже получили rpm пакет? зачем генерить его по новой с помощью mock

16:30:50 arthur.fayzullin: рута хочет

16:30:53 bookwar: это значит что chroot-окружение будет создаваться с конфигом /etc/mock/fedora-17-x86_64.cfg

16:31:14 Михаил Витальевич Гаврилов: не проходит

16:31:15 krab: Роман Помянский: он грязный

16:31:17 bookwar: Роман Помянский: разница в том , что в mock окружение создается с нуля, жто "максимально чистая" система

16:31:20 elemc: Роман Помянский, mock помогает отследить недостатки зависимостей и собрать пакеты "в чистую", а также под другую архитектуру

16:31:30 krab: fedora-17-i386

16:31:42 bookwar: поэтому если мы например забыли какие-то зависимости, потому что у нас они уже стоят, то там пакет не соберется

16:31:47 arthur.fayzullin: bookwar: он рута попросил - это нормально?

16:31:58 bookwar: arthur.fayzullin: надо добавить своего пользователя в группу mock

16:32:10 bookwar: вообще-то это должно по умолчанию делаться

16:32:11 elemc: arthur.fayzullin, нет, добавь себя в группу mock и перезайди

16:32:12 bookwar: кажется

16:32:20 elemc: bookwar, ни фига :)

16:32:24 bookwar: ну ладно

16:32:35 Михаил Витальевич Гаврилов: krab спасибо

16:32:40 bookwar: либо можно через sudo запустить

16:32:50 elemc: bookwar, ай-ай-ай

16:32:57 ArcFi: если кто захочет почистить лишнее, делаем так: yum install yum-plugin-remove-with-leaves ; yum remove --remove-leaves qt-devel boost-devel boost-program-options gcc-c++ qtwebkit-devel rpmdevtools

16:32:59 Михаил Витальевич Гаврилов: тоже в итоге рута попросил

16:33:12 bookwar: ArcFi: не, неправильно

16:33:20 Михаил Витальевич Гаврилов: так как правилно? если надо руками добавить не вопрос

16:33:22 arthur.fayzullin: bookwar: он меня диалоговым окнос спросил. наверное через полисикит разрулено

16:33:35 bookwar: Михаил Витальевич Гаврилов: правильно добавить себя в группу mock

16:33:48 Михаил Витальевич Гаврилов:

16:33:54 bookwar: usermod -a -G mock my_username

16:34:13 bookwar: ArcFi: хотя с remove-with-leaves нормально

16:34:22 bookwar: но мне кажется правильнее черех yum history

16:34:49 djsmentya: bookwar: у меня такой вывод http://fpaste.org/uceQ/ и висит, ничего не пишет дальше

16:34:55 bliznezz: # ['/usr/bin/yum', '--installroot', '/var/lib/mock/fedora-13-i386/root/', 'groupinstall', 'buildsys-build'] Ошибка: Cannot retrieve repository metadata (repomd.xml) for repository: fedora. Please verify its path and try again Could not retrieve mirrorlist http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-13&arch=i386 error was 14: PYCURL ERROR 7 - "" у меня вообще говоря yum работает через http_proxy , где это настроить для mock?

16:35:06 krab: djsmentya: он у тебя сейчас интернет кушает

16:35:09 bookwar: djsmentya: он не висит, он работает

16:35:15 bookwar: эта команда долгоиграющая

16:35:18 arthur.fayzullin: у меня на ям апдейте вист

16:35:26 arthur.fayzullin: обновляет систему?

16:35:30 krab: пакеты скачивает

16:35:51 bookwar: она создает chroot окружение, потом устанавливает в него минимальную систему, потом доставляет пакеты, потом выполняет сборку, потом все убирает за собой оставив только логи и результат

16:36:11 Михаил Витальевич Гаврилов: http://paste.stg.fedoraproject.org/1106/ дальше как смотреть и что?

16:36:30 bookwar: bliznezz: http://fedoraproject.org/wiki/Using_Mock_to_test_package_builds#Proxy_Configurations

16:36:36 arthur.fayzullin: bookwar: а логи где оставляет?

16:36:50 bookwar: Михаил Витальевич Гаврилов: Results and/or logs in: /var/lib/mock/fedora-17-i386/result

16:37:00 bookwar: arthur.fayzullin: ^^

16:37:01 djsmentya: bookwar: ой, я запустил под рутом, он же не на партачит?

16:37:07 bookwar: djsmentya: нет

16:37:22 bookwar: он себе в /var/lib работает

16:37:28 bookwar: но вообще лучше конечно группу настроить

16:37:44 bookwar: Михаил Витальевич Гаврилов: поздравляю, собралось )

16:37:50 bookwar: Михаил Витальевич Гаврилов: cnfdbnm ,eltv&

16:37:54 bookwar: ставить будем?

16:38:19 bookwar: sudo yum install путь-до-файла.rpm

16:38:38 arthur.fayzullin: а локал инстал добавлять не нужно?

16:38:45 bookwar: arthur.fayzullin: нет

16:38:54 bookwar: сейчас install работает с файлами

16:39:06 bookwar: сам определяет что и как

16:39:19 arthur.fayzullin: ястно

16:39:48 bookwar: так, у кого не собралось? не поставилосб? не запустилось?

16:40:18 bookwar: все справились? :)

16:40:38 arthur.fayzullin: у меня пока на ям апдейте висит :(

16:40:39 djsmentya: мок еще работает...

16:40:40 konstantinjch: bookwar: у меня не запустилось. Не запускал ;-)

16:40:45 Михаил Витальевич Гаврилов: http://paste.stg.fedoraproject.org/1108/ я все

16:40:48 f1yegor: bookwar: у меня пока висит на update

16:40:54 Михаил Витальевич Гаврилов: смущает только одно

16:40:58 Роман Помянский: пока в процессе с YUM UPDATE

16:41:01 Михаил Витальевич Гаврилов: где он хочет зависимости

16:41:22 bliznezz: о , логи нашел /var/lib/mock/fedora-13-i386/result

16:41:29 bookwar: Михаил Витальевич Гаврилов: посмотри в файл /etc/mock/fedora-17-i386.cfg

16:41:45 bookwar: cat /etc/mock/fedora-17-i386.cfg

16:41:50 bliznezz: Объем загрузки: 80 M оптимистичненько.

16:41:51 bookwar: там заданы репозитории

16:41:57 ArcFi: arthur.fayzullin: man yum localinstall maintained for legacy reasons only - use install

16:41:58 bookwar: вот к ним mock и идет

16:42:07 rosa47 теперь xa [30]

16:42:09 v_m_b теперь xa [30]

16:42:31 bookwar: с mock радует одно - он создает локальный кеш

16:42:49 bookwar: так что если у вас что-то не собралось, то вы не будете все перекачивать повторно для следубщей проверки

16:43:49 bookwar: кроме того если говорить о промышленном применении, то у fedora и у нашей команда Russian Fedora есть соброчный сервис koji, который позволяет проводить сборку на сервере, и смотреть логи через web-интерфейс

16:44:01 arthur.fayzullin: bookwar: и то хлеб :)

16:44:04 bookwar: http://koji.fedoraproject.org/koji/ вот так это выглядит

16:44:09 Михаил Витальевич Гаврилов: http://paste.stg.fedoraproject.org/1109/ вот содержимое

16:44:13 ArcFi: да, планировалось 2 часа а вышло почти на 4 :-D

16:44:25 konstantinjch: :-D

16:44:48 bookwar: вот например lemenkov собирает свой пакет в fedora http://koji.fedoraproject.org/koji/buildinfo?buildID=361321

16:45:00 arthur.fayzullin: если бы так в универах преподавали:)

16:45:07 bookwar: логи там ровно те же что выдает mock запущенный локально

16:45:21 bookwar: ArcFi: это наш первый семинар такого плана, так что не судите строго :)

16:45:25 bookwar: будем учиться :)

16:45:45 arthur.fayzullin: bookwar: все просто отлично:)

16:46:03 djsmentya: ура все работает!! мок не ругался, rpm установился, жизнь ппрекрасна!

16:46:14 konstantinjch: djsmentya: :-D

16:46:16 bookwar: Михаил Витальевич Гаврилов: вот с этимх репозиториев yum внутри mock и качает пакеты и зависимости )

16:46:23 bookwar: djsmentya: поздравляю

16:46:25 arthur.fayzullin: я пока на ям апдейте

16:46:26 Роман Помянский: bookwar: спасибо за семинар, получилось интересно

16:46:35 bookwar: давайте на этом закончим

16:46:35 jeff: bookwar: Спасибо, было очень интересно)

16:46:42 bookwar: лог чата надо будет обработать

16:46:51 djsmentya: Спасибо!

16:46:53 bookwar: кто не доделал - доделывайте, я ещё тут наблюдаю :)

16:46:56 konstantinjch: bookwar, молодец!!! спс ;-)

16:46:57 Михаил Витальевич Гаврилов: да полез в логи увидел вот что: DEBUG util.py:258: --> qtwebkit-devel-2.2.2-1.fc17.i686 DEBUG util.py:258: --> boost-devel-1.48.0-13.fc17.i686

16:47:01 ArcFi: bookwar: я не жалуюсь, вам спасибо :)

16:47:13 bookwar: будут пожелания, вопросы - обращайтесь на наш канал

16:47:40 bookwar: и рекомендую книжку http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/Packagers_Guide/index.html

16:47:46 Михаил Витальевич Гаврилов: кстати означает ли это что на целевой системе он будет ставить devel пакеты а те в свою очерередь пакеты с нужными библами это как бы не рационально

16:48:03 Михаил Витальевич Гаврилов: для не разработчиков devel пакеты не нужны

16:48:05 bookwar: она пока в статусе черновика и я все собираюсь заняться её переводом. но уже очень хорошая вещь

16:48:15 krab: добавил в закладке

16:48:27 bookwar: Михаил Витальевич Гаврилов: devel-пакеты устанавливаются только на сборочной машине

16:48:42 bliznezz: а не, качает но не пишет. навеное у yum можно -d поставитьгде-то в конфигах.

16:48:57 bookwar: потом получившийся уже бинарный пакет, rpm можно устанавливать на целевой машине, при этом BuildRequires уже устанавливаться там не будут

16:49:04 bookwar: только runtime-зависимости

16:49:50 Михаил Витальевич Гаврилов: дль что в логах moch это не видно

16:50:07 bookwar: Михаил Витальевич Гаврилов: mock - это сборочная система

16:50:19 bookwar: то есть он из srpm собирает rpm

16:50:28 bookwar: поэтому ему все devel-пакеты и нужны

16:50:33 bliznezz: а я могу В своей под fedora-13-i386 собирать пакет под x86_64?

16:50:40 Михаил Витальевич Гаврилов: ясно, а как проверить бинарный пакет?

16:50:47 Михаил Витальевич Гаврилов: только на виртуалке?

16:51:02 elemc: bliznezz, нет

16:51:10 bookwar: Михаил Витальевич Гаврилов: если саму работу, то в виртуалке

16:51:30 bliznezz: rpm --test --install можно провериьт но не устанавливать

16:51:54 Михаил Витальевич Гаврилов: я имел в виду корректное разруливание зависимостей бинарных пакетов мы их же не стали прописывать в spec aайле

16:53:00 f1yegor: bookwar: боевая практика прошла успешно ! спасибо

16:53:48 bookwar: f1yegor: пожалуйста

16:54:00 f1yegor: кто подскажет как потом директории почистить от mock ?

16:54:36 arthur.fayzullin: если что-то не так mock ругнется?

16:55:16 bookwar: Михаил Витальевич Гаврилов: ну за библиотеки отвечает rpm, то что можно автоматичсеки поймать он поймает, а за какие-то хитрости - тут уже надо смотреть и тестировать пакет по настоящему

16:55:20 bookwar: arthur.fayzullin: да

16:56:03 bookwar: f1yegor: --clean

16:58:45 Михаил Витальевич Гаврилов: А есть ли шпаргалка по spec файлам? типа такой http://img33.imageshack.us/img33/2318/059b8d964eac93orig.png

16:58:48 bookwar: arthur.fayzullin: значит тебе надо стать майнтэйнером пакета и полуичть доступ к koji :)

16:58:58 Михаил Витальевич Гаврилов: если нет то надо сделать? ;)

16:59:38 arthur.fayzullin: bookwar: maybe - maybe :)

17:00:23 bliznezz: [15:18:25] <bookwar> bliznezz: для этого у rpmbuild есть опция --list-check в моем rpmbuild такой опции нет :-( это к вопросу об обработке списка файлов, при упаковывании пакета без повторной сборки

17:00:31 Роман Помянский: фантастишь)) оно собралось установилось и работает

17:01:08 bookwar: кстати, про комментирование макросов http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/Packagers_Guide/chap-Packagers_Guide-Spec_File_Reference-Comments.html

17:01:21 bliznezz: возможно из-за Version : 4.8.1

17:01:34 bookwar: bliznezz: в моем тоже нет

17:01:40 bookwar: она просто называется -bl правильно

17:01:57 bookwar: я по памяти написала. а надо было в мане глянуть сначала )

17:02:14 bookwar: Роман Помянский: поздравляю :)

17:02:25 f1yegor: спасибо помогавшим, всем удачных выходных

17:02:26 bliznezz: аа.. я rpmbuild --help тоже невнимательно читал

17:03:39 arthur.fayzullin: bookwar: что для этого нужно то?

17:04:56 Михаил Витальевич Гаврилов: а вот вариант рабочий с комментариями :) http://paste.stg.fedoraproject.org/1111/

17:05:35 bookwar: arthur.fayzullin: пакет который ты хочешь добавить в федору и поддерживать, и прохождение процедуры ревью )

17:06:18 bookwar: всё, я на сегодня отключаюсь, всем спасибо за участие, надо будет как-нибудь устроить продолжение :)

17:06:39 bookwar: elemc: помоги bliznezz будь другом :)

17:06:42 arthur.fayzullin: bookwar: большое спасибо :)

17:06:45 bliznezz: http://fpaste.org/FH10/

17:13:20 konstantinjch: Всем спасибо! 14:31:10 bookwar: то есть это уже не одна строчка

14:31:17 arthur.fayzullin: bookwar: что там пишем? :) а как перенос деалется?

14:31:23 bliznezz: какие ограничения сверху рекомендуются?

14:31:28 bookwar: и начинаться текст должен _после_ строчки %description а не на ней

14:31:44 Михаил Витальевич Гаврилов: главное сказать какие символы можно использоват а какие нет :)

14:31:45 bookwar: bliznezz: ну погляди на типичные yum info что-нибудь

14:31:53 bookwar: то есть пара абзацев годится

14:31:57 ArcFi: bookwar: %description заполнять обязательно?

14:31:59 bliznezz: Also, please make sure that there are no lines in the description longer than 80 characters.

14:32:51 bookwar: ненапример вот так http://fpaste.org/xEMJ/

14:33:19 bookwar: ArcFi: наверное нет, но обычно туда хотя бы summary копипастят

14:33:48 bookwar: после секции description начинается собственно работа

14:34:03 Михаил Витальевич Гаврилов: у меня так http://paste.stg.fedoraproject.org/1097

14:34:16 ArcFi: bookwar: а после %description 2 пустые строки надо или достаточно 1-й?

14:34:28 bookwar: ArcFi: достаточно одной

14:34:54 bookwar: description вообще заканчивается там где начинается %(что-нибудь ещё)

14:35:12 ArcFi: ясно

14:35:37 bookwar: Михаил Витальевич Гаврилов: ну строчки можно подравнять по 80 символов, а так годится

14:35:59 bookwar: дальше в спеке три рабочие секции: %prep %build и %install

14:36:18 bookwar: %prep - это подготовительная стадия - подготовка исходников

14:36:56 bookwar: команда setup -q разворачивает архив Source0 в папку ~/rpmbuild/BUILD

14:37:23 bliznezz: она сама различает .gz, bz2, .7z ?

14:37:53 bookwar: по умолчанию предполагается что в архиве лежит каталог %{name}-%{version} и именно этот каталог rpmbuild будет потом искать для продолжения работы

14:37:55 djsmentya: выполнять из какой папки?

14:37:58 Михаил Витальевич Гаврилов: на сколько я знаю нет

14:38:14 bookwar: djsmentya: мы ещё ничего не выполняем, это команда в спеке

14:38:28 bookwar: её будет выполнять rpmbuild когда будет собирать пакет по спеку

14:38:33 djsmentya: а, понял

14:38:40 f1yegor: bliznezz: мы указали %{name}-%{version}.tar.gz, значит будет искать tar.gz, насколько я понял

14:38:40 bookwar: bliznezz: типы архивов определяются автоматом

14:39:00 f1yegor: bookwar: bliznezz: ok

14:39:18 bookwar: f1yegor: для разархивирования будет искать файл %{name}-%{version}.tar.gz, то есть именно тот который указан в Source0

14:39:38 bookwar: вообще говоря в пакете могут быть ещё дополнительные файлы

14:40:06 bookwar: тогда бы они указывались дополнительно в виде Source1: smth.txt и т.п.

14:40:10 arthur.fayzullin: bookwar: из нескольких архивов собирать?

14:40:31 Михаил Витальевич Гаврилов: кстати могут быть еще Source1, Source2 и т д просто это выходит за рамки этого обсуждения или потом вернемся к этому?

14:40:32 bookwar: и тогда в секции prep мы бы например копировали эти дополнительные файлы в нашу развернутую директорию

14:41:33 bookwar: Михаил Витальевич Гаврилов: думаю сейчас мы не будем на этом останавливаться, главное понять что в %prep происходит подготовка директории в BUILD для последующей сборки

14:41:52 bookwar: применение патчей, добавление иуда файлов и т.п. происходят в %prep

14:42:11 Михаил Витальевич Гаврилов: в нашем случае там пусто так?

14:42:11 bookwar: в нашем случае ничего добавлять не надо, пожтому достаточно стандартной команды %setup -q

14:42:58 Михаил Витальевич Гаврилов: наверно тогда %prep можно удалить или закомментировать или эта конструкция обязательна?

14:43:00 djsmentya: а если добавлять, то все перед командой setup -q ?

14:43:03 bookwar: вот это вся секция: %prep %setup -q

14:43:33 bookwar: djsmentya: нет, обычно после

14:43:47 bookwar: ещё раз: %prep - это секция спек-файла

14:43:59 arthur.fayzullin: %setup -q - это ведь на секция, а команда секции %prep ?

14:44:00 bookwar: %setup -q - это команда в этой секции

14:44:10 bookwar: то есть у нас секция %prep не пустая

14:44:16 bookwar: в ней есть ровно одна команда

14:44:26 Михаил Витальевич Гаврилов: спасибо понял :)

14:45:13 bookwar: например в ней ещё могут быть команды типа patch: http://fpaste.org/XvIi/

14:45:25 bookwar: подробнее про патчи можно почитать тут :

14:45:33 bookwar: _wiki Пересобрать RPM

14:45:34 IsidaBot: bookwar: Как «пересобрать RPM»-пакет - Wiki - Russian Fedora 27 сен 2011 «…» В этой статье мы расскажем только о самом простом случае «пересборки». Мы будем считать, что у вас установлена относительно новая «…» http://wiki.russianfedora.ru/index.php/Как_пересобрать_RPM-пакет

14:45:45 bookwar: но на этом мы останавливаться сейчас не будем

14:45:52 bookwar: у нас все просто: развернули и готово

14:46:20 bookwar: дальше две секции: %build и %install

14:47:07 bookwar: как можно догадаться %build соответствует конфигурации и сборке: там делается configure и make

14:47:26 bookwar: в %install делается make install

14:47:55 bookwar: шаблон спека нам подставил команду %configure

14:48:12 bookwar: это макрос который раскрывается в запуск ./configure

14:48:29 bookwar: а у нас пакет конфигурируется другой командой

14:48:35 f1yegor: bookwar: можно пояснить почему пишется так %configure make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT %make_install где-то есть %, где-то нет

14:48:40 Михаил Витальевич Гаврилов: я так понимаю %configure, %setup и %make_install подменяется какимито коммндами препроцессором

14:48:59 Михаил Витальевич Гаврилов: а можно узнать как и какими

14:48:58 bookwar: f1yegor: да, команды с процентиками - это алиасы, или макросы

14:49:04 arthur.fayzullin: bookwar: у нас какой командой? configure.sh ?

14:49:07 bookwar: они подставляются rpmbuild-ом

14:49:23 bookwar: а команда просто - это команда шелла

14:49:24 djsmentya: для %configure можно добавлять флаги?

14:49:45 bookwar: по сути rpm-спек - это тот же bash-скрипт, только с кучей макросов

14:49:51 bookwar: djsmentya: можно

14:50:09 bookwar: arthur.fayzullin: да. у нас будет configure.sh

14:50:38 arthur.fayzullin: bookwar: коменитируем то что есть и ставим свое?

14:50:53 bookwar: да, вместо строчки %configure мы ставим ./configure.sh --prefix=/usr

14:51:03 bookwar: почему --prefix=/usr ?

14:51:14 krab: чтобы не в local

14:51:20 bookwar: потому что по умолчанию этот скрипт использует префикс /usr/local

14:51:45 taurus: » [16:48:40] <Михаил Витальевич Гаврилов> а можно узнать как и какими rpm --eval '%make_install'

14:51:46 bookwar: а нам это не нужно, мы ставим по с помощью rpm-пакетов, и rpm позаботится о том чтобы пакет не конфликтовал с другими

14:52:16 bookwar: поэтому выносить файлы в /opt или в /usr/local нам нет необходимости

14:52:54 konstantinjch: Так конечный вид какой будет ?

14:52:58 taurus: Михаил Витальевич Гаврилов: %make_install использовать не нужно, просто make

14:53:11 taurus: *просто make install

14:53:27 bookwar: konstantinjch: вместо %configure будет ./configure.sh --prefix=/usr

14:53:56 bookwar: http://www.fpaste.org/Q9sd/

14:54:12 bookwar: команда make - это как обычно

14:54:26 bookwar: просто make но с дополнительными параметрами скрытыми под макросом

14:54:43 arthur.fayzullin: bookwar: а что это за параметры?

14:54:49 bookwar: этот макрос стандартен для fedora , вообще говоря для сборки пакета дома себе он не обязателен

14:55:06 skyb: bookwar: мне всегда было интересно, а префиксы зачем?

14:55:08 bookwar: там есть набор security-параметров, FORTIFY-чего-то там и т.п.

14:55:11 skyb: при конфигурировании

14:55:31 krab: rpm --eval %{?_smp_mflags} -j4

14:55:35 taurus: %{?_smp_mflags} - это количество потоков которое собирать, зависит от количества ядер

14:55:41 Михаил Витальевич Гаврилов: rpm --eval '%{?_smp_mflags}' --> -j4 хм можо было просто написать -j :)

14:55:41 taurus: то есть make -j4

14:55:46 bookwar: skyb: ну ты выполни confugure.sh без префикса и с префиксом

14:55:50 krab: неть

14:55:57 bookwar: skyb: и посмотри на пути

14:56:02 skyb: bookwar: без ругаццо же будет

14:56:28 bookwar: skyb: если выполнить только configure.sh то не будет, это не в спеке а в той папке где мы сначала тренировались

14:56:29 skyb: мне не чисто с этим пакетом а вообще

14:56:49 bookwar: так, параметры для make оставляем, они никому не мешают

14:57:02 skyb: путь куда пакет ставить, или от куда либы брать

14:57:25 bookwar: по гайдлайнам федоры менять параметры для make можно только с официального одобрения FESCo

14:57:41 bookwar: секция %build у нас готова

14:57:44 bookwar: идем дальше

14:57:57 bookwar: skyb: префикс - это _куда_ ставить

14:57:58 skyb: мне так и не ответели

14:58:21 bookwar: секция %install

14:58:31 bookwar: вообще как происходит установка при сборке пакета?

14:58:47 skyb: bookwar: а что ещё зависит от префикса куда ставится? что потом кто то пользоваться будет?

14:58:53 bookwar: файлы ставятся не в систему а в папку ~/rpmbuild/BUILDROOT

14:59:39 bookwar: skyb: ну например если ты поставишь все в /opt, то бинарные файлы у тебя окажутся не в PATH. поэтому ты не сможешь выполнять команду в терминале без полного пути до неё

15:00:09 Михаил Витальевич Гаврилов: а стандарный %configure мы не оставили только потому что у нас скрипт называется не ./configure а ./configure.sh ?

15:00:20 bookwar: Михаил Витальевич Гаврилов: да

15:00:47 skyb: bookwar: а полный путь или то от куда запускать решает уже система?

15:01:00 skyb: полный или просто название проги*

15:01:10 taurus: Михаил Витальевич Гаврилов: не только там еще другие параметры, %configure работает только с тем для чего используется стандартный autoconf

15:01:20 bookwar: "не в систему а в папку ~/rpmbuild/BUILDROOT", например , если мы хотим чтобы в результате установки в систему файл test.tmp оказался лежащим по пути /opt/test.tmp, при сборке в спеке мы копируем его в $RPMBUILDROOT/opt/test.tmp

15:01:40 skyb: тоесть пакет совершенно новый в системе, установлен в /usr или куда то ещё, как система узнает от куда запускать

15:01:56 bookwar: skyb: ты знаешь что такое переменная PATH?

15:02:07 skyb: bookwar: отдаленно

15:02:15 taurus: skyb: пакет не устанавливается в определенный путь.

15:02:18 bookwar: skyb: echo $PATH сделай

15:02:33 taurus: skyb: файлы пакеты разбросаны по файловой системе.

15:02:39 bookwar: так, про %install все понятно?

15:03:04 bookwar: ставим в $RPMBUILDROOT как будто это папка / нашей системы

15:03:05 arthur.fayzullin: bookwar: а почему там макрос?

15:03:13 arthur.fayzullin: а не просто make install

15:03:16 Михаил Витальевич Гаврилов: $RPM_BUILD_ROOT - куда указывает

15:03:27 skyb: bookwar: сделал, taurus это понятно, так как система то узнает, файл запуска ложится куда нада?

15:03:55 bookwar: Михаил Витальевич Гаврилов: в ~/rpmbuild/BUILDROOT/$name-$version-$arch/

15:04:16 taurus: skyb: файл запуска ложится туда куда его положит make install

15:04:25 Михаил Витальевич Гаврилов: т е сначала мы чистим от старых файлов

15:04:40 bookwar: arthur.fayzullin: %make_install - это артефакт, на самом деле сейчас уже рекомендуют не использовать макросов там где не надо

15:04:41 skyb: taurus: возратимся к вопросу, а нафига префикс =)

15:04:45 bliznezz: в моем динозавтре rpmdev-newspec в заголовке задал: BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

15:04:56 taurus: еще раз о каком именно префиксе речь?

15:05:03 Михаил Витальевич Гаврилов: А затем выполняем комманду /usr/bin/make install DESTDIR=/home/mikhail/rpmbuild/BUILDROOT/%{name}-%{version}-%{release}.i386

15:05:04 ArcFi: skyb: видимо, это на совести разработчика должно быть по FHS: http://ru.wikipedia.org/wiki/FHS

15:05:05 skyb: bookwar (20:53:08) konstantinjch: вместо %configure будет ./configure.sh --prefix=/usr

15:05:23 taurus: а ... это коречь того откуда все остальные пути будут считаться

15:05:48 arthur.fayzullin: bookwar: так мы оставляем этот макрос или как?

15:05:49 bookwar: bliznezz: это тоже артефакт, оно не нужно сейчас

15:05:56 skyb: taurus: ок, а зачем его указывать? и от чего зависит он, почему я не смогу положить куда хочу?

15:06:03 krab: это очень наркоманский configure.sh там всё никак обычно

15:06:07 bookwar: arthur.fayzullin: нам надо дополнительно исправить make install

15:06:14 taurus: skyb: то есть бинарники лежат в ${prefix}/bin

15:06:24 bookwar: поэтому мы пишем make install INSTALL_ROOT=$RPM_BUILD_ROOT

15:06:47 arthur.fayzullin: bookwar: а то что было или удаляем или коментируем?

15:07:00 bookwar: arthur.fayzullin: да

15:07:34 taurus: skyb: его указывать затем чтоб configure настроил пути для установки файлов приложения.

15:07:39 skyb: taurus: а порой при ./configure.sh иногда просит префикс указать чеголибо, это что?

15:07:56 bookwar: arthur.fayzullin: команда make install без параметра попытается установить файлы в систему, и разумеется мы этого не хотим, мы хотим чтобы файлы лежали в RPM_BUILD_ROOT

15:08:16 konstantinjch: bookwar: в итоге что будет у нас?

15:08:25 Михаил Витальевич Гаврилов: не понял почему INSTALL_ROOT, а не DESTDIR

15:08:27 djsmentya: я что то пропустил $RPM_BUILD_ROOT у меня пуст

15:08:41 taurus: skyb: мне отойти надо .. если не разберешься потом еще пиши

15:08:51 bookwar: Михаил Витальевич Гаврилов: ну это я просто уже когда собирала выяснила что разработчик использует именно этот параметр )

15:09:01 skyb: taurus: или префикс это чисто для конфигурирования приложения, и оно не зависит от других библиотек, тоесть нет такого что указывается на другую библу префиксом при конфигуре

15:09:14 bookwar: Михаил Витальевич Гаврилов: то есть вы могли бы написать DESTDIR а потом найти ошибку

15:09:17 bookwar: я решила сократить путь )

15:09:25 ArcFi: bookwar: давайте проверим: cat ~/rpmbuild/SPECS/knotter.spec | fpaste

15:09:38 bookwar: konstantinjch: Михаил Витальевич Гаврилов ArcFi arthur.fayzullin http://fpaste.org/BCya/

15:09:48 skyb: ArcFi: можно проще fpaste ~/rpmbuild/SPECS/knotter.spec

15:10:01 taurus: skyb: местоположение других библиотек можно указать с помощью других опций

15:10:19 ArcFi: skyb: ok, будем знать

15:10:25 skyb: taurus: а префикс это только то куда устанавливать софт в случае чего?

15:10:32 Михаил Витальевич Гаврилов: хм а не проще ли было уговорить разработчика использовать DESTDIR???

15:10:32 arthur.fayzullin: bookwar: ну кактатак :) +

15:10:37 taurus: skyb: да

15:10:47 bookwar: Михаил Витальевич Гаврилов: это правильный вопрос

15:10:48 f1yegor: оффтоп: как fpaste отсылать конкретные строки из файла?

15:10:58 taurus: Михаил Витальевич Гаврилов: флаг в руки ;)

15:11:14 skyb: taurus: и зависит от софта, тоесть если мне конфигуре говорит что типо не буду ставить укажи префикс, либо поставит сам сразу

15:11:21 bookwar: Михаил Витальевич Гаврилов: вообще для майнтэйнера, то есть сборщика пакета, контакт с разработчиком очень важен

15:11:38 skyb: f1yegor: тоесть?

15:11:45 taurus: skyb: по умолчанию чаще всего /usr/local используется

15:11:47 bookwar: все патчи, которые вам придется делать, или флаги компиляции или странные зависимости надо сообщать разработчику

15:11:52 ArcFi: f1yegor: grep ... | fpaste

15:12:05 Михаил Витальевич Гаврилов: ну это ясно в идеале чтобы разработчик писал сам spec :)

15:12:07 bookwar: тем более если патч уже готов, разработчик будет счастлив его увидеть (ну скорее всего)

15:12:16 bookwar: не, я считаю что разработчик спек писать не должен

15:12:22 konstantinjch: f1yegor: http://fpaste.org/ ? rjgbhetim c.lf/ 'nj gjrf? yj tcnm b gj lheujve cgjcj,s

15:12:26 skyb: f1yegor: ArcFi сам фпаст это же чисто аплоад на фпасту и все, он толком ничего не умеет

15:12:32 konstantinjch: _turn

15:12:34 skyb: taurus: вроде понял

15:12:34 IsidaBot: f1yegor: http://fpaste.org/ , копируешь сюда. это пока, но есть и по другому способы

15:12:35 bookwar: потому как вот например у нас важно чтобы соблюдались гайдлайны именно федоры

15:12:37 skyb: пасиб

15:12:45 bookwar: а разработчики очень часто рассматривают это как помеху

15:12:57 f1yegor: IsidaBot: понял

15:13:22 bookwar: так, ну технические секции мы подготовили. сохраняем файл и попробуем его собрать

15:13:28 skyb: f1yegor: IsidaBot это бот, а писал konstantinjch )

15:13:29 konstantinjch: f1yegor: ;-)

15:13:38 Михаил Витальевич Гаврилов: %files %doc

15:13:44 taurus: » [17:12:26] <bookwar> а разработчики очень часто рассматривают это как помеху увы (((

15:13:48 arthur.fayzullin: bookwar: %files - не трогаем?

15:14:20 bookwar: arthur.fayzullin: пока нет, конечно нам придется к нему вернуться, но сейчас протестим то что есть

15:14:33 arthur.fayzullin: ok

15:14:37 bookwar: сборку пакета из спека выполняет rpmbuild

15:15:06 bookwar: rpmbuild может быть запущен с разными флагами и подробности есть в мане, но нам нужны будут несколько

15:15:07 bliznezz: хмг. mkdir: невозможно создать каталог «/usr/share/knotter»: Отказано в доступе

15:15:07 arthur.fayzullin: + сам спек?

15:15:11 f1yegor: konstantinjch: а как обычноо выделяют конкретные строки? про grep я знаю

15:15:20 Михаил Витальевич Гаврилов: $ rpmbuild -bb ~/rpmbuild/SPECS/knotter.spec error: Failed build dependencies: и is needed by knotter-0.7.0-1.fc18.i386

15:15:29 Михаил Витальевич Гаврилов: меня не прошло :

15:15:33 konstantinjch: f1yegor: потом, хорошо?

15:15:43 bookwar: Михаил Витальевич Гаврилов: ты там BuildRequires поправь

15:15:55 bookwar: а то "и" у тебя там вместо запятой

15:16:01 f1yegor: konstantinjch: ok

15:16:11 krab: > [15:11:47] <bookwar> не, я считаю что разработчик спек писать не должен конечно, они понапишут наркоманские системы сборки которые годны наверное только для slackware

15:16:22 bookwar: rpmbuild умеет проходить по стадиям сборки последовательно

15:16:43 skyb: ArcFi: спс за гайд)

15:16:46 elemc: krab, только для убунту, ты хотел сказать :)

15:16:54 bookwar: поэтому при тестировании пакета мы можем протестировать сначала секцию prep потом prep и build потом prep buid и install

15:17:10 bookwar: а потом всё сразу

15:17:27 arthur.fayzullin: rpmbuild knotter.spec

15:17:29 bookwar: тестируем prep командой rpmbuild -bp knotter.spec

15:17:29 arthur.fayzullin: так?

15:17:39 bookwar: arthur.fayzullin: нет, флаги нужны

15:17:47 skyb: bookwar: > bookwar > (21:16:35) поэтому при тестировании пакета мы можем протестировать сначала секцию prep потом prep и build потом prep buid и install

это только делает тестовую сборку только для тебя, а не пакет в общем?

15:17:49 Михаил Витальевич Гаврилов: $ rpmbuild -bb ~/rpmbuild/SPECS/knotter.spec Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.wEsfar + umask 022 + cd /home/mikhail/rpmbuild/BUILD + cd /home/mikhail/rpmbuild/BUILD + rm -rf knotter-0.7.0 + /usr/bin/tar -xf /home/mikhail/rpmbuild/SOURCES/knotter-0.7.0.tar.gz + cd knotter-0.7.0 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.UWcH6C + umask 022 + cd /home/mikhail/rpmbuild/BUILD + cd knotter-0.7.0 + CFLAGS='-O2 -g -march=i386 -mtune=i686' + export CFLAGS + CXXFLAGS='-O2 -g -march=i386 -mtune=i686' + export CXXFLAGS + FFLAGS='-O2 -g -march=i386 -mtune=i686' + export FFLAGS + ./configure --host=i686-redhat-linux-gnu --build=i686-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info /var/tmp/rpm-tmp.UWcH6C: line 33: ./configure: No such file or directory error: Bad exit status from /var/tmp/rpm-tmp.UWcH6C (%build)

RPM build errors: Bad exit status from /var/tmp/rpm-tmp.UWcH6C (%build)

15:18:05 djsmentya: и у меня

15:18:06 krab: elemc: в убунте всё номрально, это проблемы дебиана., в shotwell долго было плохо, в архивах с релизом был cache файл, в vcs его не было

15:18:18 bliznezz: %configure надо таки убирать, а не комментировать.

15:18:19 skyb: Михаил Витальевич Гаврилов: статус говорит плохой, в вк наверное? :-D

15:18:30 arthur.fayzullin: у мено все вроде хорошо экзит 0

15:18:39 bookwar: Михаил Витальевич Гаврилов: логи на fpaste.org пожалуйста

15:18:42 elemc: krab, ты давно, видать, с launchpad не пробовал что-то собирать :) там про automake, cmake, scons - вообще никто не знает :)

15:18:47 bookwar: Михаил Витальевич Гаврилов: и спек туда же

15:19:37 bookwar: ещё раз, слушаем меня и выполняем тестирование prep-секции: rpmbuild -bp knotter.spec

15:20:03 skyb: bookwar: > ещё раз, слушаем меня есть мэм =)

15:20:04 bookwar: это важный этап потому что тут высвечиваются ошибки надложения патчей или неправильный формат архива

15:20:09 bookwar: наложения*

15:20:25 skyb: bookwar: после этого этапа уже идет сборка?

15:20:29 krab: огласите полный spec пожалуйста, я что-то пропустил

15:20:43 Михаил Витальевич Гаврилов: http://paste.stg.fedoraproject.org/1100/

15:20:49 Михаил Витальевич Гаврилов: так сам нашел проблему

15:20:53 bookwar: в нашем случае должно получиться так: http://fpaste.org/ED8D/

15:21:11 ArcFi: bookwar: http://fpaste.org/JLmL/ норм?

15:21:13 bliznezz: line 33: ./configure: No such file or directory Михаил Витальевич Гаврилов, у вас убирите строчку с #%configure

15:21:13 Михаил Витальевич Гаврилов: вопрос как закоментаривать в секциях??

15:21:35 bookwar: Михаил Витальевич Гаврилов: удали

15:21:48 Роман Помянский: ошибка: Обнаружен(ы) установленный(е) (но не упакованный(е)) файл(ы)

15:21:49 Михаил Витальевич Гаврилов: удалил все получилось

15:21:53 bookwar: комментирование в комплекте с макросами работает хитро

15:22:00 ArcFi: bookwar: пардон, вот: http://fpaste.org/ChUw/

15:22:00 Михаил Витальевич Гаврилов: нельзя значит закоментировать?

15:22:07 bookwar: если макрос разворачивается в несколько строк например, могут быть проблемы

15:22:17 bookwar: то есть вообще комментировать можно, но осторожно )

15:22:18 skyb: о, полезная инфа

15:22:40 Михаил Витальевич Гаврилов: а как можно на моем примере? пожалуйста :)

15:22:49 bookwar: так, все увидели что же на самом деле сделала загадочная команда setup -q ?

15:23:07 bookwar: Михаил Витальевич Гаврилов: это я так не скажу сходу, думать надо :)

15:23:18 skyb: да и зачем

15:23:25 bookwar: Михаил Витальевич Гаврилов: вообще просто надо стараться не комментировать макросы

15:23:26 skyb: лучше удалить

15:23:28 babkinstas: ошибка: Обнаружен(ы) установленный(е) (но не упакованный(е)) файл(ы) +1

15:24:16 arthur.fayzullin: ArcFi: как ты это на фпст отправил? он грит ты грит бинарник хочешь аплодить

15:24:37 skyb: arthur.fayzullin: ещё раз

15:24:37 bookwar: %prep вырполнили, потом выполняем %build, тут надо обратить внимание на лог, чтобы удостовериться что зависимости найдены, конфигурирование использует правильные префиксы и т.п.

15:24:39 skyb: бывает

15:24:46 skyb: соглашайся

15:25:01 bookwar: выполняем build командой rpmbuild -bb knotter.spec

15:25:23 arthur.fayzullin: rpmbuild -bp knotter.spec | fpaste - так не хочет аплодить

15:25:44 bookwar: arthur.fayzullin: rpmbuild -bp knotter.spec 2>&1 | fpaste

15:26:15 arthur.fayzullin: http://fpaste.org/2pOD/

15:26:17 djsmentya: после rpmbuild -bb тоже надо?

15:26:19 f1yegor: http://fpaste.org/5F4O/

15:26:40 f1yegor: удалил %configure, но ругается

15:26:49 bookwar: f1yegor: ты как-то не так аплоадишь лог

15:26:57 bookwar: djsmentya: что именно надо?

15:27:24 arthur.fayzullin: http://fpaste.org/2pOD/ шота bb ругается :(

15:27:34 djsmentya: что выполнять? rpmbuild -bp knotter.spec в се норм, а дальше?

15:27:35 bliznezz: у меня %install не проходит. пытается создавать каталоги в /usr/share http://www.fpaste.org/hyPY/

15:28:07 bookwar: djsmentya: rpmbuild -bb knotter.spec

15:28:30 ArcFi: bookwar: откуда строки: + LANG=C, + export LANG, + unset DISPLAY у меня их нет

15:28:36 skyb: bliznezz: префикс указал?

15:28:54 bliznezz: skyb: да. /usr http://www.fpaste.org/8nZV/

15:29:24 bookwar: ArcFi: это стандарт для rpmbuild

15:29:45 arthur.fayzullin: удилил #%configure вроде что-то пошло

15:29:56 f1yegor: справился, помогло удалить все комменты в файле

15:30:06 friogenn: Записан: /home/friogenn/rpmbuild/RPMS/i386/knotter-0.7.0-1.fc17.i386.rpm

15:30:39 ArcFi: и повторяется строка + cd /home/arcfi/rpmbuild/BUILD + cd /home/arcfi/rpmbuild/BUILD

15:30:39 babkinstas: то что на неупакованные файлы ругается это нормально ?

15:30:58 Михаил Витальевич Гаврилов: Глянте http://paste.stg.fedoraproject.org/1102/

15:31:05 bookwar: babkinstas: это нормально потому что мы не дописали спек

15:31:23 bookwar: все получили что-то похожее на http://paste.stg.fedoraproject.org/1102/ ?

15:31:37 krab: яволь

15:31:49 bookwar: Installed (but unpackaged) file(s) found и список файлов

15:32:12 f1yegor: bookwar: да

15:32:14 skyb: bookwar: у тебя федора не RFRemix?

15:32:21 konstantinjch: Все в /SPECS ?

15:32:21 bookwar: skyb: да

15:32:31 arthur.fayzullin: bookwar: щас 5 сек у меня еще идет

15:33:01 ArcFi: bookwar: нет :(

15:33:24 skyb: bookwar: кстати, а клава у тебя с русскими буквами? или по памяти?

15:33:25 bookwar: что делает rpmbuild при окончательной упаковке файлов в бинарный пакет? он берет все дерево из $RPM_BUILD_ROOT и архивирует его

15:33:30 bookwar: skyb: с немецкими

15:33:46 bliznezz: странно, ноу меня в %install make упорно лезет создавать каталог от корня файловой системы. + make install DESTDIR=/home/oleg/rpmbuild/BUILDROOT/knotter-0.7.1-1.fc13.i386 mkdir: невозможно создать каталог «/usr/share/knotter»: Отказано в доступе

15:33:49 skyb: bookwar: хы, печатаешь по памяти?

15:33:52 ArcFi: bookwar: http://paste.stg.fedoraproject.org/1103/

15:34:08 bookwar: bliznezz: прочитай наш лог чата, мы DEST_DIR уже обсудили

15:34:15 arthur.fayzullin: bookwar: вроде также

15:34:21 bookwar: bliznezz: надо INSTALL_ROOT использовать

15:34:37 ArcFi: bookwar: мне что делать-то?

15:34:41 bookwar: ArcFi: это bp. а мы теперь выполнили bb

15:34:50 bookwar: rpmbuild -bb knotter.spec

15:35:05 bookwar: на самом деле мы немножко перепрыгнули дальше чем я хотела

15:35:29 krab: нужно команды которые выполнять для всех писать из под другого ника, тут перемешивается всё

15:35:33 konstantinjch: bookwar: так откати, как надо

15:36:12 bookwar: послежовательные флаги у rpmbuild это -pb - %prep, потом -bc это %prep + %build, потом -bi это %prep+%build+ %install потом -bb - это сборка бинарного пакета, то есть сборка rpm

15:36:28 ArcFi: bookwar: http://fpaste.org/OHZM/

15:36:46 arthur.fayzullin: bookwar: проделать все в этой последоватлности?

15:37:04 bookwar: то есть при отладке спека вы можете останавливаться на любом из нужных этапов и ходить потом по директориям BUILD BUILDROOT и смотреть на файлы в них, определять что не так

15:37:05 konstantinjch: ArcFi: убери коменты

15:37:29 krab: убери решетку перед процентом

15:37:31 bookwar: нам это сейчас уже не надо, потому что раз мы протестировали -bb мы тем самым прошли и все предварительные этапы тоже

15:37:36 konstantinjch: ArcFi: в смысле строки с коментами

15:37:44 krab: тьфу убери всю строку

15:37:45 arthur.fayzullin: bookwar: *OK*

15:38:02 bookwar: так что у нас сейчас актуальна только ошибка Installed (but unpackaged) file(s) found

15:38:28 krab: яволь

15:38:35 bookwar: она говорит о том что rpmbuild нашел в каталоге BUILDROOT файлы и архивирует их в пакет, но тут у него включается дополнительная проверка

15:39:00 bookwar: эта дополнительная проверка сделана специально, чтобы в пакет не попали лишние файлы

15:39:41 skyb: bookwar: а как они могут туда попасть?

15:39:45 bookwar: конечно, теоретически rpmbuild может сам взять список файлов из каталога и положить их в пакет, но он не хочет этого делать и требует для _каждого_ положенного в пакет файла потверждения в спеке

15:39:55 Михаил Витальевич Гаврилов: они есть в архиве

15:40:01 bookwar: о том что да. вы действительно считаете что этот файл этому пакету нужен

15:40:05 bookwar: Михаил Витальевич Гаврилов: не в архиве

15:40:19 bookwar: мы сейчас говорим о файлах в RPM_BUILD_ROOT

15:40:39 Михаил Витальевич Гаврилов: ошибя в каталоге в который разворачивается архив для сборки

15:40:51 bookwar: опять нет )

15:41:01 Михаил Витальевич Гаврилов: сдаюсь :)

15:41:05 ArcFi: konstantinjch, bookwar: комменты убрал, та же фигня: http://fpaste.org/WwpL/

15:41:20 bookwar: у нас есть два каталога: один в BUILD, где лежат развернутые исходники

15:41:25 bookwar: это рабочий каталог

15:41:41 bookwar: есть второй - в BUILDROOT

15:41:46 bookwar: это целевой каталог

15:41:52 bookwar: мы собираем в BUILD

15:42:01 bookwar: потом устанавливаем в BUILDROOT

15:42:09 krab: ArcFi: rpmbuild -bb knotter.spec

15:42:24 ArcFi: krab ок

15:42:27 bookwar: потом rpmbuild собирает все что есть в BUILDROOT в готовый пакет

15:42:54 ArcFi: так, поехало... =)

15:42:58 Михаил Витальевич Гаврилов: В BUILDROOT файлы кто ложит в итоге то?

15:43:07 krab: R

15:43:08 Михаил Витальевич Гаврилов: cкрипт разработчика?

15:43:16 krab: make install

15:43:17 bookwar: Михаил Витальевич Гаврилов: в нашем спеке есть команда

15:43:32 bookwar: make install INSTALLROOT=$RPM_BUILD_ROOT

15:43:43 f1yegor: да, все правильно, в BUILD нет файлов .png, на которые ругается rpmbuild --bb

15:43:58 bookwar: эта команда как раз устанавливает собранные бинарники в целевой каталог

15:44:18 krab: f1yegor: BUILD/img/

15:44:40 krab: rpmbuild/BUILD/knotter-0.7.0/img

15:45:00 bookwar: посмотрите внимательно в каталоги ~/rpmbuild/BUILD/knotter-0.7.0/ и ~/rpmbuild/BUILDROOT/knotter-0.7.0-1.fc17.x86_64/

15:45:16 f1yegor: krab: *share* там нет,

15:45:22 Михаил Витальевич Гаврилов: а make install какм файлом руководствуется при этом?

15:45:29 bookwar: в первом - исходники, и промежуточные файлы, типа Makefile которые создаются конфигурационными скриптами

15:45:34 bookwar: а во втором уже данные

15:45:45 bookwar: Михаил Витальевич Гаврилов: это в Makefile разработчика

15:46:04 krab: Makefile который создает configure (по правде qmake-qt4)

15:46:04 Роман Помянский: bookwar: а как опакетить софт в котом нет make install и его аналогов

15:46:06 Михаил Витальевич Гаврилов: я это и имел в виду когда говорил про разработчика :)

15:46:26 bookwar: Роман Помянский: руками пишем команды раскладываюшие файлы по нужным директориям

15:46:52 bookwar: например если мне надо положить в систему systemd-юнит, а у разработчика конечно ничего такого нет, то я пишу:

15:47:05 arthur.fayzullin: Роман Помянский: заносим разработчика в peopletokill :)

15:47:20 Михаил Витальевич Гаврилов: Кстати bookwar по моему rpm можно заставить расскладывать файлы по нужным директориям

15:47:39 bookwar: в секции %install такие строчки: mkdir -p $RPM_BUILD_ROOT%{_unitdir} cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_unitdir}

15:47:50 bookwar: как видите. спек - это bash-скрипт

15:48:02 bookwar: я могу использовать в нем стандартные башовые команды

15:48:16 krab: потеринг вам сделает бинарные спеки ;)

15:48:28 bookwar: чтобы поместить файл в пакет, я просто создаю нужный путь RPM_BUILD_ROOT%{_unitdir}

15:48:49 Михаил Витальевич Гаврилов: а так %{__install} -Dp -m0644 %{SOURCE0} %{buildroot}%{_sysconfdir}/yum.repos.d/citrus-it.repo ???

15:49:01 Михаил Витальевич Гаврилов: я вот так писал

15:49:03 bookwar: Михаил Витальевич Гаврилов: можно и так

15:49:23 bliznezz: еще вопросик, если мне надо сделать файлику chmod +s, а я собираю из-под бесправного mock-юзера, который даже у себя такого не может сделать. как такое делается?

15:49:59 bookwar: то есть ты просто кладешь нужный файл по нужному пути относительно $RPM_BUILD_ROOT или %{buildroot} что одно и то же

15:50:31 bookwar: итак. ещё раз: наш бинарный пакет - это все что лежит в BUILDROOT

15:50:39 elemc: bliznezz, fedora официально уходит от использования suid-флага, думай как прикрутить policykit

15:50:43 bookwar: все файлы которые там лежат будут установлены в систему

15:51:11 bookwar: но сначала надо подтвердить что да, там лежат только нужные файлы и ничего лишнего мы случайно не доложили

15:51:31 bookwar: для этого мы перечисляем все файлы пакета в секции %files нашего спека

15:51:45 arthur.fayzullin: bookwar: т.е. чтобы он не ругался как ругается у нас?

15:51:48 bookwar: да

15:52:04 bookwar: нам нужно весь тот список файлов на которые он ругается перечислить в спеке

15:52:13 bookwar: но конечно по одному файлу мы перечислять не будет

15:52:17 bookwar: будем

15:52:19 krab: [krab@fedora SPECS]$ ldd ../BUILDROOT/knotter-0.7.0-1.fc17.x86_64/usr/bin/knotter | grep boost libboost_program_options.so.1.48.0 => /lib64/libboost_program_options.so.1.48.0 (0x00007f9b20604000) ага с бустом собралось

15:52:43 arthur.fayzullin: bookwar: а как будем?

15:52:52 bookwar: мы можем перечислить каталоги, тогда все файлы из жтих каталогов будут считаться упомянутыми

15:53:22 bookwar: ну и перечисляем мы файлы с помощью путей но не путей в нашей системе, а путей, таких какими они станут после установки

15:53:30 taurus: elemc: даже в случае policykit suid должен быть выставлен

15:53:54 arthur.fayzullin: bookwar: можно просто /usr указать?

15:53:54 bookwar: то есть например у нас есть файл /home/bookwar/rpmbuild/BUILDROOT/knotter-0.7.0-1.fc17.x86_64/usr/bin/knotter

15:53:56 elemc: taurus, нет, ты путаешь с consolekit

15:54:07 bookwar: а в спеке нужно указать /usr/bin/knotter

15:54:21 taurus: elemc: возможно ... вроде я просто как то разбирался как это работает.

15:54:32 bookwar: arthur.fayzullin: нет, все файлы которые перечислены в %files принадлежат нашему пакету

15:54:46 elemc: это именно в ck и именно от нее федора пытается убежать вот уже 5 релизов

15:54:53 bookwar: то есть если пакет будет удаляться, то все файлы из %files будут удалены

15:55:09 bookwar: rpm следаит за тем чтобы один файл не принадлежал двум разным пакетам

15:55:43 bookwar: именно поэтому важно перечислить именно свои файлы и никакой не забыть

15:55:51 arthur.fayzullin: bookwar: оноче.... ястно берем вывод ругательных фалов и копируем их в файлес?

15:55:55 bookwar: нет

15:56:08 elemc: но вообще надо посмотреть spec для gparted, например, там используется suid и как это внутри пакета делается

15:56:10 krab: сокращай до каталогов, обрезай дубли ;)

15:56:14 Михаил Витальевич Гаврилов: а если будут перечисленны лишние файлы? :)

15:56:16 bookwar: мы смотрим в каталог /home/bookwar/rpmbuild/BUILDROOT/knotter-0.7.0-1.fc17.x86_64/

15:56:25 bookwar: Михаил Витальевич Гаврилов: rpmbuild ругаться будет

15:57:06 f1yegor: bookwar: %files /usr/share/knotter, /usr/share/doc/knotter ?

15:57:11 bookwar: в этом каталоге есть стандартные системные папки

15:57:23 bookwar: /usr/bin

15:57:27 bookwar: /usr/share

15:57:33 bookwar: и т.п.

15:57:39 arthur.fayzullin: ага

15:57:45 bookwar: они системные, а в них лежат уже папки нашего пакета

15:58:19 djsmentya: так что писать?

15:58:21 ArcFi: bookwar: как получить список файлов? find ~/rpmbuild/BUILD/knotter-0.7.0 ?

15:58:46 elemc: ArcFi, find /some/dir -type f

15:59:04 babkinstas: /usr/share/knotter /usr/bin/knotter /usr/share/doc/knotter /usr/share/applications/knotter.desktop /usr/share/man/man1/knotter.1.gz

15:59:10 babkinstas: ура

15:59:36 babkinstas: есть rpm

15:59:42 djsmentya: а %doc удалить?

15:59:45 bookwar: правильно. ключевые компоненты собственно их configure.sh нам писал

15:59:56 bliznezz: а есть какие-то макросы или переменные, которые означают /usr/bin/ , /usr/share/doc ?

16:00:00 taurus: elemc: не нашел я там suid

16:00:07 bookwar: есть макросы. выглядят вот так: %{_mandir}/man1/%{name}.1.gz %{_datadir}/applications/%{name}.desktop %{_datadir}/%{name} %{_bindir}/%{name}

16:00:26 arthur.fayzullin: шота у меня больше файлов

16:00:51 bookwar: _datadir - это /usr/share

16:01:15 bookwar: ну и остальные вот тут: https://fedoraproject.org/wiki/Packaging:RPMMacros

16:01:27 Роман Помянский: %doc как использовать

16:01:34 arthur.fayzullin: http://fpaste.org/xM8x/ у меня так

16:01:46 ArcFi: find ~/rpmbuild/BUILDROOT/knotter-0.7.0-1.fc17.x86_64/ | sed "s%$HOME/rpmbuild/BUILDROOT/knotter-0.7.0-1.fc17.x86_64%%g"

16:01:58 krab: %doc README NEWS COPYING AUTHORS

16:02:27 bliznezz: а как проверить все файлы я упаковал в rpm, без продолжительного %install ?

16:02:39 bookwar: bliznezz: сейчас. пять сек

16:02:48 bookwar: про %doc:

16:02:58 bookwar: использовать %doc можно двумя путями

16:03:08 taurus: elemc: %attr(4111,root,root) %{_bindir}/sudo

16:03:23 taurus: bliznezz: %attr(4111,root,root) %{_bindir}/sudo

16:03:32 elemc: на да, я так и думал, attr/defattr

16:03:37 arthur.fayzullin: у меня дофига файлов это неправильно? http://fpaste.org/xM8x/

16:03:40 bookwar: если папка с документацией уже установлена в /usr/share/docs, то мы просто не перечисляем её в %files а помечаем как документацию

16:03:46 bookwar: выглядит это так %doc %{_docdir}/%{name}

16:03:52 krab: arthur.fayzullin: ага

16:04:06 bookwar: то есть то же перечисление но с пометкой %doc

16:04:27 krab: /usr/share/doc/

16:04:36 Михаил Витальевич Гаврилов: а на что это влияет?

16:04:48 bookwar: есть ещё файлы которые лежат в исходном каталоге, и которые разработчик в команде make install пропустил

16:05:00 ArcFi: bookwar: так http://fpaste.org/mYWA/ ?

16:05:06 taurus: bookwar: вроде %doc используется чтобы файлы документации брались из исходников?

16:05:09 bookwar: тогда их тоже можно вписать, как сказал krab

16:05:17 bookwar: например %doc README

16:05:54 bookwar: тогда файл README будет взят из каталога с исходниками, и скопирован в /usr/share/docs/knotter/ автоматчески

16:05:59 bookwar: ну и помечен как doc

16:06:03 krab: /usr/share/doc/

16:06:13 bookwar: да, в /usr/share/doc

16:06:25 bookwar: krab: спасибо )

16:06:30 krab: np

16:06:47 f1yegor: success http://fpaste.org/RqYL/

16:07:03 bookwar: то есть если вы указываете файл, который не существует в BUILDROOT, он будет браться из BUILD и добавляться в пакет

16:07:19 Михаил Витальевич Гаврилов: а чем разница для rpm между секциями %files и %doc??? или разницы нет просто такие соглашения,

16:07:31 bliznezz: ну на этапе установки, можно не устанавливать документацию rpm --install --excludedocs knotter...rpm

16:07:51 arthur.fayzullin: bookwar: как в итоге должно быть?

16:07:56 bliznezz: конфиги могут быть, которые при удалении пакета можно сохранить.

16:07:56 bookwar: Михаил Витальевич Гаврилов: да. пометка doc используется во вспомогательных утилитах

16:08:04 bookwar: у меня вот так получилось http://fpaste.org/31PZ/

16:08:58 Роман Помянский: вот интересно а ман страницы это не документация

16:09:04 bookwar: хотя по Fedora Guidelines лицензию надо обязательно добавлять в doc/

16:09:20 arthur.fayzullin: прикольно

16:09:36 djsmentya: ок. едим дальше?

16:09:46 bookwar: поэтому %doc README COPYING AUTHORS %{_docdir}/%{name} - это более правильно

16:09:53 bookwar: дальше нам осталось чуть чуть

16:10:08 bookwar: в Changelog надо вписать себя )

16:11:04 bookwar: формат у строчки changelog-а хитрый, поэтому яобычно пользуюсь встроенной в емакс функцией add changelog entry

16:11:13 bookwar: думаю в других редакторах такое тоже есть

16:11:19 bookwar: выглядит это в итоге вот так

16:11:36 bookwar: %changelog

- Initial build

16:11:56 bookwar: по хорошему в скобках должен быть почтовый ящик

16:12:02 elemc: bookwar, о, а ты в emacs не настраивала имя/мыло? О_О

16:12:03 arthur.fayzullin: -bb прошел без ошиобок

16:12:07 bookwar: вместо ника имя фамилия

16:12:11 bookwar: elemc: это на виртуалке

16:12:31 arthur.fayzullin: в vim есть что-нить похожее?

16:12:41 elemc: arthur.fayzullin, вроде есть

16:13:01 krab: notepad.exe >_<

16:13:05 bookwar:

- комментарий

16:13:13 bookwar: такой примерно формат

16:13:21 bliznezz: http://fedoraproject.org/wiki/Packaging:Guidelines#Changelogs

16:13:35 bliznezz: вверху новее

16:13:40 arthur.fayzullin: есть кто вим хорошо знает?

16:13:48 taurus: » [18:10:45] <bookwar> формат у строчки changelog-а хитрый, поэтому яобычно пользуюсь встроенной в емакс функцией add changelog entry не знал что такая есть, спасибо.

16:14:04 bookwar: bliznezz: да. вообще fedoraproject.org/wiki наш главный источник информации по пакетам

16:14:17 arthur.fayzullin: taurus: в емакс все есть :) жаль редактора нет :(

16:14:32 elemc: arthur.fayzullin, ты удивишься, но редактор есть ;)

16:14:35 bookwar: итак, Changelog написали, сохранили, запустили , rpmbuild -ba knotter.spec

16:14:37 taurus: arthur.fayzullin: комы ты это рассказываешь ;)

16:14:42 bookwar: выходим на финишную прямую

16:14:53 arthur.fayzullin: это же стандартная шутка про емакс

16:15:05 bookwar: запустили rpmbuild -ba knotter.spec

16:15:07 taurus: по последним данным в emacs недавно все так был добавлен тесктовый редактор :)

16:15:11 arthur.fayzullin: bookwar: changelog под или в строчку пишется?

16:15:18 bookwar: под

16:15:32 bookwar: вот так выглядит мой итоговый спек-файл http://files.bookwar.info/rpm/knotter.spec

16:16:05 bookwar: все уснули или ещё держатся? :)

16:16:14 Михаил Витальевич Гаврилов: про desktop-file-validate $RPM_BUILD_ROOT/%{_datadir}/applications/%{name}.desktop расскажите

16:16:39 bookwar: эта щтука необязательна но описана в гайдлайнах федоры

16:16:54 bookwar: вообще в федоре есть гайдлайны на все случаи жизни

16:17:10 taurus: а ты про mock и koji рассказывала?

16:17:11 Михаил Витальевич Гаврилов: надо бы про них рассказать :)

16:17:21 Михаил Витальевич Гаврилов: на русском конечно нет так? :(

16:17:28 bookwar: например - добавить системд-юнит, добавить иконку, добавить dekstop-файл и т.п.

16:17:39 taurus: » [18:16:35] <bookwar> вообще в федоре есть гайдлайны на все случаи жизни но в них черт ногу сломит )

16:17:43 ArcFi: bookwar: готово $ ls -l ~/rpmbuild/RPMS/x86_64 итого 1320 -rw-rw-r--. 1 arcfi arcfi 1350074 окт. 20 16:16 knotter-0.7.0-1.fc17.x86_64.rpm

16:17:53 bookwar: вот например про иконки http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Icon_Cache

16:17:54 krab: добавить русское описание к пакету да

16:18:08 bliznezz: <bliznezz> а как проверить все файлы я упаковал в rpm, без продолжительного %install ?

16:18:29 bookwar: или например что делать если вы собираете библиотеку http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Shared_libraries

16:18:47 bookwar: bliznezz: для этого у rpmbuild есть опция --list-check

16:19:13 bookwar: этих мелких рекомендаций много, и я думаю мы про них расскажем ещё как-нибудь в другой раз

16:19:19 krab: krab@fedora SPECS]$ rpm -qpl ../RPMS/x86_64/knotter-0.7.0-1.fc17.x86_64.rpm

16:19:26 djsmentya: у меня скомпилировалось под архитектуру X86_64. для других архитектуру нужно ставить соответствующую ос?

16:19:28 Михаил Витальевич Гаврилов: а мой spec получился таким http://paste.stg.fedoraproject.org/1104/ :)

16:19:41 arthur.fayzullin: жестяная жесть! получилось :)

16:19:51 elemc: djsmentya, нет, можно использовать rpmbuild, а можно и mock для таких целей

16:19:54 bookwar: в частности вот если ваш пакет использует desktop-файл, то рекомендациям fedora его надо проверить

16:20:08 bookwar: для этого используется в спеке команда desktop-file-validate

16:20:19 djsmentya: Спасибо всем! :D

16:20:20 bookwar: и как видите у меня там добавка в BuildRequires

16:20:26 bookwar: djsmentya: стоп-стоп

16:20:36 djsmentya: что?

16:20:37 bookwar: самое главное ещё, тест сборки!

16:20:43 arthur.fayzullin: bookwar: +

16:20:47 Михаил Витальевич Гаврилов: точно

16:20:50 djsmentya: аа

16:20:57 f1yegor: bookwar: файлы должны быть как у тебя под %doc, или как у Михаил Витальевич Гаврилов %files%{_bindir}/%{name}%{_datadir}/%{name}%{_datadir}/applications/%{name}.desktop%{_mandir}/man1/%{name}.1.gz %doc%{_docdir}/%{name} ?

16:20:58 bookwar: вот тут прозвучал вопрос про другие архтектуры

16:21:12 ArcFi: http://fpaste.org/7PI0/ B-)

16:21:13 elemc: taurus, я тебя удивлю - koji - это и есть mock в питон-обертке tg2 ;)

16:21:26 bookwar: f1yegor: правильнее помечать doc-директорию как %doc

16:21:32 bookwar: f1yegor: то есть как уменя

16:21:39 bookwar: f1yegor: но работать будет и так и так

16:21:58 taurus: elemc: в нем собирать быстрее чем у себя ) особенно если комп слабый

16:22:20 elemc: ну у меня таких проблем нет :)

16:22:21 taurus: elemc: да я знаю что koji этот тот же mock

16:22:23 f1yegor: bookwar: понял

16:22:24 bookwar: и вспомните у нас был вопрос - что если у меня в системе уже установлены какие-то зависимости были и на этапе подготовки мы их не заметили?

16:22:31 taurus: elemc: не всеж такие

16:22:31 bookwar: на это все есть один ответ - mock

16:23:00 bookwar: народ, мы ещё не закончили, 10 минут ещё потерпите :)

16:23:01 krab: фу http://bpaste.net/show/52423/

16:23:22 bookwar: mock - это утилита сборки rpm-пакетов в отдельном chroot-окружении

16:23:47 arthur.fayzullin: bookwar: я ребенку уже 2 раза подгузник сменил :) мы тут уже 3 с половиной часа :) так что хоть 20 :)

16:23:59 bookwar: это chroot-окружение не зависит от вашей системы. делается автоматически по готовому конфигу

16:24:03 Михаил Витальевич Гаврилов: тут другое имелось в виду

16:24:10 bookwar: и позволяет пересобрать ваш rpm в любых условиях

16:24:22 elemc: bookwar, не в любых :)

16:24:26 Михаил Витальевич Гаврилов: по логике программиста после %doc все идет что относиться к %doc

16:24:33 bookwar: поэтому поставьте mock : sudo yum install mock

16:24:37 arthur.fayzullin: bookwar: для любых архитектур?

16:24:43 elemc: под ppc ты на x86* не соберешь

16:24:50 krab: ага и для avr тоже :D

16:25:02 bookwar: arthur.fayzullin: ну вот видишшь меня поправляют )

16:25:04 bookwar: для многих

16:25:10 arthur.fayzullin: mips можно или спарк?

16:25:18 bliznezz: а на i686 под x86_64 ?

16:25:24 bookwar: Михаил Витальевич Гаврилов: %doc действует на строчку, это не секция, а команда как бы

16:25:32 elemc: для 4-ех по сути: x86, x86_64, mips ( некоторые ), arm :)

16:25:39 arthur.fayzullin: bookwar: сейчас установить mock?

16:25:42 bookwar: да

16:25:48 Михаил Витальевич Гаврилов: спаибо за уnочнение :)

16:26:10 djsmentya: поставил mock

16:26:28 elemc: или если архитектура системы. где используется mock - ppc64, то для ppc и ppc64 только

16:26:31 arthur.fayzullin: mock стоит :)

16:26:44 bookwar: посмотреть набор его конфигураций можно так: http://fpaste.org/QFWV/

16:27:09 Роман Помянский: bookwar: заметил странное дело когда указывал %doc README и полный путь к файлам бокументации то всё собиралось, когда заменил путь на макросы получил ошибку о том что нельзя смешивать файлы документации с другими

16:27:13 ArcFi: bookwar и всем помогавшим спасибо http://itmag.es/1nCPh http://itmag.es/3Ycyk всё получилось :-D

16:27:29 bookwar: мы с вами с помощью rpmbuild -pa knotter.rpm изготовили rpm-пакет и srpm-пакет

16:27:46 bookwar: они лежат у нас в ~rpmbuild/RPMS/ и ~/rpmbuild/SRPMS

16:27:55 ArcFi: http://itmages.ru/image/view/724082/42b3c7b2 http://itmages.ru/image/view/724081/e2c36b09

16:27:55 elemc: bookwar, но вообще кодера, который такое сотворил - надо отправить в ад, поддерживать в кибер-котлах убунту

16:28:06 krab: Роман Помянский: попробуй в одном %doc файлы ниже в %doc макросом путь

16:28:19 bookwar: теперь для тестирования сборки собираем уже готовый srpm в mock:

16:28:43 arthur.fayzullin: bookwar: а не rpmbuil -ba knotter.spec ?

16:28:52 arthur.fayzullin: что-то я пропустил

16:29:20 bookwar: mock -r fedora-17-x86_64 ~/rpmbuild/SRPMS/knotter*.srpm

16:29:34 krab: arthur.fayzullin: ви правы

16:29:57 bookwar: arthur.fayzullin: да, -ba

16:30:10 bliznezz: что здесь значит fedora-17-x86_64 ?

16:30:10 bookwar: -ba то есть "build all"

16:30:22 krab: mock -r fedora-17-x86_64 ~/rpmbuild/SRPMS/knotter*.src.rpm

16:30:42 Михаил Витальевич Гаврилов: $ mock -r fedora-17-i686 ~/rpmbuild/SRPMS/knotter-0.7.0-1.fc18.src.rpm ERROR: Could not find required config file: /etc/mock/fedora-17-i686.cfg

16:30:47 Роман Помянский: bookwar: а в чём разница? мы же вроде уже получили rpm пакет? зачем генерить его по новой с помощью mock

16:30:50 arthur.fayzullin: рута хочет

16:30:53 bookwar: это значит что chroot-окружение будет создаваться с конфигом /etc/mock/fedora-17-x86_64.cfg

16:31:14 Михаил Витальевич Гаврилов: не проходит

16:31:15 krab: Роман Помянский: он грязный

16:31:17 bookwar: Роман Помянский: разница в том , что в mock окружение создается с нуля, жто "максимально чистая" система

16:31:20 elemc: Роман Помянский, mock помогает отследить недостатки зависимостей и собрать пакеты "в чистую", а также под другую архитектуру

16:31:30 krab: fedora-17-i386

16:31:42 bookwar: поэтому если мы например забыли какие-то зависимости, потому что у нас они уже стоят, то там пакет не соберется

16:31:47 arthur.fayzullin: bookwar: он рута попросил - это нормально?

16:31:58 bookwar: arthur.fayzullin: надо добавить своего пользователя в группу mock

16:32:10 bookwar: вообще-то это должно по умолчанию делаться

16:32:11 elemc: arthur.fayzullin, нет, добавь себя в группу mock и перезайди

16:32:12 bookwar: кажется

16:32:20 elemc: bookwar, ни фига :)

16:32:24 bookwar: ну ладно

16:32:35 Михаил Витальевич Гаврилов: krab спасибо

16:32:40 bookwar: либо можно через sudo запустить

16:32:50 elemc: bookwar, ай-ай-ай

16:32:57 ArcFi: если кто захочет почистить лишнее, делаем так: yum install yum-plugin-remove-with-leaves ; yum remove --remove-leaves qt-devel boost-devel boost-program-options gcc-c++ qtwebkit-devel rpmdevtools

16:32:59 Михаил Витальевич Гаврилов: тоже в итоге рута попросил

16:33:12 bookwar: ArcFi: не, неправильно

16:33:20 Михаил Витальевич Гаврилов: так как правилно? если надо руками добавить не вопрос

16:33:22 arthur.fayzullin: bookwar: он меня диалоговым окнос спросил. наверное через полисикит разрулено

16:33:35 bookwar: Михаил Витальевич Гаврилов: правильно добавить себя в группу mock

16:33:48 Михаил Витальевич Гаврилов:

16:33:54 bookwar: usermod -a -G mock my_username

16:34:13 bookwar: ArcFi: хотя с remove-with-leaves нормально

16:34:22 bookwar: но мне кажется правильнее черех yum history

16:34:49 djsmentya: bookwar: у меня такой вывод http://fpaste.org/uceQ/ и висит, ничего не пишет дальше

16:34:55 bliznezz: # ['/usr/bin/yum', '--installroot', '/var/lib/mock/fedora-13-i386/root/', 'groupinstall', 'buildsys-build'] Ошибка: Cannot retrieve repository metadata (repomd.xml) for repository: fedora. Please verify its path and try again Could not retrieve mirrorlist http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-13&arch=i386 error was 14: PYCURL ERROR 7 - "" у меня вообще говоря yum работает через http_proxy , где это настроить для mock?

16:35:06 krab: djsmentya: он у тебя сейчас интернет кушает

16:35:09 bookwar: djsmentya: он не висит, он работает

16:35:15 bookwar: эта команда долгоиграющая

16:35:18 arthur.fayzullin: у меня на ям апдейте вист

16:35:26 arthur.fayzullin: обновляет систему?

16:35:30 krab: пакеты скачивает

16:35:51 bookwar: она создает chroot окружение, потом устанавливает в него минимальную систему, потом доставляет пакеты, потом выполняет сборку, потом все убирает за собой оставив только логи и результат

16:36:11 Михаил Витальевич Гаврилов: http://paste.stg.fedoraproject.org/1106/ дальше как смотреть и что?

16:36:30 bookwar: bliznezz: http://fedoraproject.org/wiki/Using_Mock_to_test_package_builds#Proxy_Configurations

16:36:36 arthur.fayzullin: bookwar: а логи где оставляет?

16:36:50 bookwar: Михаил Витальевич Гаврилов: Results and/or logs in: /var/lib/mock/fedora-17-i386/result

16:37:00 bookwar: arthur.fayzullin: ^^

16:37:01 djsmentya: bookwar: ой, я запустил под рутом, он же не на партачит?

16:37:07 bookwar: djsmentya: нет

16:37:22 bookwar: он себе в /var/lib работает

16:37:28 bookwar: но вообще лучше конечно группу настроить

16:37:44 bookwar: Михаил Витальевич Гаврилов: поздравляю, собралось )

16:37:50 bookwar: Михаил Витальевич Гаврилов: cnfdbnm ,eltv&

16:37:54 bookwar: ставить будем?

16:38:19 bookwar: sudo yum install путь-до-файла.rpm

16:38:38 arthur.fayzullin: а локал инстал добавлять не нужно?

16:38:45 bookwar: arthur.fayzullin: нет

16:38:54 bookwar: сейчас install работает с файлами

16:39:06 bookwar: сам определяет что и как


16:39:19 arthur.fayzullin: ястно

16:39:48 bookwar: так, у кого не собралось? не поставилосб? не запустилось?

16:40:18 bookwar: все справились? :)

16:40:38 arthur.fayzullin: у меня пока на ям апдейте висит :(

16:40:39 djsmentya: мок еще работает...

16:40:40 konstantinjch: bookwar: у меня не запустилось. Не запускал ;-)

16:40:45 Михаил Витальевич Гаврилов: http://paste.stg.fedoraproject.org/1108/ я все

16:40:48 f1yegor: bookwar: у меня пока висит на update

16:40:54 Михаил Витальевич Гаврилов: смущает только одно

16:40:58 Роман Помянский: пока в процессе с YUM UPDATE

16:41:01 Михаил Витальевич Гаврилов: где он хочет зависимости

16:41:22 bliznezz: о , логи нашел /var/lib/mock/fedora-13-i386/result

16:41:29 bookwar: Михаил Витальевич Гаврилов: посмотри в файл /etc/mock/fedora-17-i386.cfg

16:41:45 bookwar: cat /etc/mock/fedora-17-i386.cfg

16:41:50 bliznezz: Объем загрузки: 80 M оптимистичненько.

16:41:51 bookwar: там заданы репозитории

16:41:57 ArcFi: arthur.fayzullin: man yum localinstall maintained for legacy reasons only - use install

16:41:58 bookwar: вот к ним mock и идет

16:42:31 bookwar: с mock радует одно - он создает локальный кеш

16:42:49 bookwar: так что если у вас что-то не собралось, то вы не будете все перекачивать повторно для следубщей проверки

16:43:49 bookwar: кроме того если говорить о промышленном применении, то у fedora и у нашей команда Russian Fedora есть соброчный сервис koji, который позволяет проводить сборку на сервере, и смотреть логи через web-интерфейс

16:44:01 arthur.fayzullin: bookwar: и то хлеб :)

16:44:04 bookwar: http://koji.fedoraproject.org/koji/ вот так это выглядит

16:44:09 Михаил Витальевич Гаврилов: http://paste.stg.fedoraproject.org/1109/ вот содержимое

16:44:13 ArcFi: да, планировалось 2 часа, а вышло почти на 4 :-D

16:44:25 konstantinjch: :-D

16:44:48 bookwar: вот например lemenkov собирает свой пакет в fedora http://koji.fedoraproject.org/koji/buildinfo?buildID=361321

16:45:00 arthur.fayzullin: если бы так в универах преподавали:)

16:45:07 bookwar: логи там ровно те же что выдает mock запущенный локально

16:45:21 bookwar: ArcFi: это наш первый семинар такого плана, так что не судите строго :)

16:45:25 bookwar: будем учиться :)

16:45:45 arthur.fayzullin: bookwar: все просто отлично:)

16:46:03 djsmentya: ура все работает!! мок не ругался, rpm установился, жизнь ппрекрасна!

16:46:14 konstantinjch: djsmentya: :-D

16:46:16 bookwar: Михаил Витальевич Гаврилов: вот с этимх репозиториев yum внутри mock и качает пакеты и зависимости )

16:46:23 bookwar: djsmentya: поздравляю

16:46:25 arthur.fayzullin: я пока на ям апдейте

16:46:26 Роман Помянский: bookwar: спасибо за семинар, получилось интересно

16:46:35 bookwar: давайте на этом закончим

16:46:35 jeff: bookwar: Спасибо, было очень интересно)

16:46:42 bookwar: лог чата надо будет обработать

16:46:51 djsmentya: Спасибо!

16:46:53 bookwar: кто не доделал - доделывайте, я ещё тут наблюдаю :)

16:46:56 konstantinjch: bookwar, молодец!!! спс ;-)

16:46:57 Михаил Витальевич Гаврилов: да полез в логи увидел вот что: DEBUG util.py:258: --> qtwebkit-devel-2.2.2-1.fc17.i686 DEBUG util.py:258: --> boost-devel-1.48.0-13.fc17.i686

16:47:01 ArcFi: bookwar: я не жалуюсь, вам спасибо :)

16:47:13 bookwar: будут пожелания, вопросы - обращайтесь на наш канал

16:47:40 bookwar: и рекомендую книжку http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/Packagers_Guide/index.html

16:47:46 Михаил Витальевич Гаврилов: кстати означает ли это что на целевой системе он будет ставить devel пакеты а те в свою очерередь пакеты с нужными библами это как бы не рационально

16:48:03 Михаил Витальевич Гаврилов: для не разработчиков devel пакеты не нужны

16:48:05 bookwar: она пока в статусе черновика и я все собираюсь заняться её переводом. но уже очень хорошая вещь

16:48:15 krab: добавил в закладке

16:48:27 bookwar: Михаил Витальевич Гаврилов: devel-пакеты устанавливаются только на сборочной машине

16:48:42 bliznezz: а не, качает но не пишет. навеное у yum можно -d поставитьгде-то в конфигах.

16:48:57 bookwar: потом получившийся уже бинарный пакет, rpm можно устанавливать на целевой машине, при этом BuildRequires уже устанавливаться там не будут

16:49:04 bookwar: только runtime-зависимости

16:49:50 Михаил Витальевич Гаврилов: дль что в логах moch это не видно

16:50:07 bookwar: Михаил Витальевич Гаврилов: mock - это сборочная система

16:50:19 bookwar: то есть он из srpm собирает rpm

16:50:28 bookwar: поэтому ему все devel-пакеты и нужны

16:50:33 bliznezz: а я могу В своей под fedora-13-i386 собирать пакет под x86_64?

16:50:40 Михаил Витальевич Гаврилов: ясно, а как проверить бинарный пакет?

16:50:47 Михаил Витальевич Гаврилов: только на виртуалке?

16:51:02 elemc: bliznezz, нет

16:51:10 bookwar: Михаил Витальевич Гаврилов: если саму работу, то в виртуалке

16:51:30 bliznezz: rpm --test --install можно провериьт но не устанавливать

16:51:54 Михаил Витальевич Гаврилов: я имел в виду корректное разруливание зависимостей бинарных пакетов мы их же не стали прописывать в spec aайле

16:53:00 f1yegor: bookwar: боевая практика прошла успешно ! спасибо

16:53:48 bookwar: f1yegor: пожалуйста

16:54:00 f1yegor: кто подскажет как потом директории почистить от mock ?

16:54:36 arthur.fayzullin: если что-то не так mock ругнется?

16:55:16 bookwar: Михаил Витальевич Гаврилов: ну за библиотеки отвечает rpm, то что можно автоматичсеки поймать он поймает, а за какие-то хитрости - тут уже надо смотреть и тестировать пакет по настоящему

16:55:20 bookwar: arthur.fayzullin: да

16:56:03 bookwar: f1yegor: --clean

16:58:45 Михаил Витальевич Гаврилов: А есть ли шпаргалка по spec файлам? типа такой http://img33.imageshack.us/img33/2318/059b8d964eac93orig.png

16:58:48 bookwar: arthur.fayzullin: значит тебе надо стать майнтэйнером пакета и полуичть доступ к koji :)

16:58:58 Михаил Витальевич Гаврилов: если нет то надо сделать? ;)

16:59:38 arthur.fayzullin: bookwar: maybe - maybe :)

17:00:23 bliznezz: [15:18:25] <bookwar> bliznezz: для этого у rpmbuild есть опция --list-check в моем rpmbuild такой опции нет :-( это к вопросу об обработке списка файлов, при упаковывании пакета без повторной сборки

17:00:31 Роман Помянский: фантастишь)) оно собралось установилось и работает

17:01:08 bookwar: кстати, про комментирование макросов http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/Packagers_Guide/chap-Packagers_Guide-Spec_File_Reference-Comments.html

17:01:21 bliznezz: возможно из-за Version : 4.8.1

17:01:34 bookwar: bliznezz: в моем тоже нет

17:01:40 bookwar: она просто называется -bl правильно

17:01:57 bookwar: я по памяти написала. а надо было в мане глянуть сначала )

17:02:14 bookwar: Роман Помянский: поздравляю :)

17:02:25 f1yegor: спасибо помогавшим, всем удачных выходных

17:02:26 bliznezz: аа.. я rpmbuild --help тоже невнимательно читал

17:03:39 arthur.fayzullin: bookwar: что для этого нужно то?

17:04:56 Михаил Витальевич Гаврилов: а вот вариант рабочий с комментариями :) http://paste.stg.fedoraproject.org/1111/

17:05:35 bookwar: arthur.fayzullin: пакет который ты хочешь добавить в федору и поддерживать, и прохождение процедуры ревью )

17:06:18 bookwar: всё, я на сегодня отключаюсь, всем спасибо за участие, надо будет как-нибудь устроить продолжение :)

17:06:39 bookwar: elemc: помоги bliznezz будь другом :)

17:06:42 arthur.fayzullin: bookwar: большое спасибо :)

17:06:45 bliznezz: http://fpaste.org/FH10/

17:13:20 konstantinjch: Всем спасибо!