Автор Тема: Вопрос по сборке пакета с помощью rpmbuild  (Прочитано 9996 раз)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
Кто его знает, что у него в патче? Если есть явное указание и патч наложен — будет ругань и на каталог.
Вне зависимости от того, что в патче, или где-то ещё, ругани на *-buildroot быть не должно. Эта ругань говорит об ошибке в определении переменных, установке не туда и т.п.

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 451
    • Email
Эта ругань говорит об ошибке в определении переменных, установке не туда и т.п.
Ну так посмотрите какое место он патчит. Да и название "%{name}-config-destination.patch" как бы намекает.
« Последнее редактирование: 03.01.2015 18:24:36 от stranger573 »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
Ну так посмотрите какое место он патчит. Да и название "%{name}-config-destination.patch" как бы намекает.
Только, во-первых, к source1 это отношения не имеет, во-вторых, вполне попадает под "ошибка в определении переменных, установка не туда".

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 451
    • Email
Только, во-первых, к source1 это отношения не имеет, во-вторых, вполне попадает под "ошибка в определении переменных, установка не туда".
Тем не менее его десктоп файл в пакет не попадёт. http://www.rpm.org/max-rpm/s1-rpm-inside-macros.html

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
Тем не менее его десктоп файл в пакет не попадёт.
А должен ? У меня в спеках бывают неиспользуемые sourceX. Просто чтобы не потерялись, если, вдруг, будут нужны.

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 451
    • Email
А должен ?
Ну дык это только автор знает точно. Полагаю, что он не стал бы его лепить в противном случае.

У меня в спеках бывают неиспользуемые sourceX. Просто чтобы не потерялись, если, вдруг, будут нужны.
Не думаю, что Koi, прям вот так с разбегу, в первом пробном пакете будет так делать. :-)

Оффлайн Koi

  • alt linux team
  • ***
  • Сообщений: 1 893
  • валар дохаэрис
    • Канал на youtube
Замените
./configure --lib_path=%{_libdir} --prefix=/usr/src/RPM/tmp/
на
%configure
Я так пробовал в первый раз, пишет не хватает макросов, я поставил все какие были.
Используйте для убирания лишнего
cleanup_spec spec-файл
Спасибо, классная команда.
в Альте автозависимости генерятся
Этим buildreq?
Правда тут ещё надо посмотреть туда ли попадает впихуемый таким образом файл.
Не туда. Я посмотрел его содержимое и выкинул вообще.  %setup -a 1 было такое, писал "непохоже на исходник". Его надо как-то заменить... не нашел таких команд.
Что в ~/.rpmmacros ? Непонятно, откуда взялся такой buildroot и почему он не создался, если он такой.
Не заполнял.
Думаю дело в конфиге от разработчика.
Кстати, был в ALT когда-то мантейнер rupor. Давно, правда, это забросил.
Это точно не я. Я уже писал на линукс совсем не долго...
Ага, например без скобок никак в спеке, с которым вчера разбирался. Всё остальное от скоПолучилось вот, что:бок избавлено (ну, привычнее мне без них, читабельнее спек)
Мне со скобками проще ориентироваться, но раз надо без, то буду без...
Актуальная версия многострадального spec:
Name: mountmanager
Version: 0.2.6
Release: alt1

Summary: Manager mount devices
License: GPLv2+
Group: Archiving/Other
Url: https://code.google.com/p/linuxtuner/
Source0: http://linuxtuner.googlecode.com/files/mountmanager-0.2.6.tar.gz
Patch0: %name-config-destination.patch
Packager: Koi Evgeniy <mistor-klimaks@yandex.ru>

Requires: hal

BuildRequires: libqt4-devel
BuildRequires: libqt4-core
BuildRequires: libqt4-gui
BuildRequires: libqt4-dbus
BuildRequires: libqt4-xml
BuildRequires: gcc-c++
BuildRequires: qt4-devel

%description
The basic functionalities of MountManager are:

Mount and unmount partitions (ext3/2, ntfs, swap, fat, reiserfs, iso9660, udf, ...)
Show all logical and physical disks
Change config file /etc/fstab
Descriptions of options and other settings of mounting
Restoration system
Images mounting and unmounting (Nrg, Mdf , Ccd, Bin , etc)
Udev rules creation
Disk wizard
Etc... Plugins are supported and there is good English and Russian documentations to help develop new plugins.

%prep
%setup
%patch0 -p1

%build
./configure --lib_path=%_libdir --destination=%buildroot
make %{?_smp_mflags}

%install
%makeinstall_std

%files
%doc license readme.en readme.ru
%doc %_datadir/doc/MountManager/*
%_bindir/mmanager
%_bindir/mountmanager
%prefix/lib/mountmanager/plugins/libdocumentationpanel.so
%prefix/lib/mountmanager/plugins/libfstabpreview.so
%prefix/lib/mountmanager/plugins/libimagesmounting.so
%prefix/lib/mountmanager/plugins/libsharesmount.so
%prefix/lib/mountmanager/plugins/libtips.so
%prefix/lib/mountmanager/trans/br.qm
%prefix/lib/mountmanager/trans/es.qm
%prefix/lib/mountmanager/trans/pl.qm
%prefix/lib/mountmanager/trans/pt.qm
%prefix/lib/mountmanager/trans/ru.qm
%prefix/lib/mountmanager/trans/tr.qm
%_datadir/applications/%name-gtk.desktop
%_datadir/applications/%name-kde.desktop
%_datadir/icons/mm.png
%_datadir/%name/icons/*.png
%_datadir/%name/images/support_bg.jpg
%_datadir/%name/images/support_image.png
%_datadir/%name/images/support_page.html
%_datadir/%name/options/*.xml
%_mandir/man1/mm.1*
%_mandir/man1/%name.1*

%changelog
* Tue Dec 30 2014 Koi Evgeniy <mistor-klimaks@yandex.ru> - 0.2.6-alt1
[ Koi Evgeniy ]
- installed patch: mountmanager-config-destination.patch
cd: /tmp/.private/rupor/mountmanager-buildroot: No such file or directory
Эта проблема решилась  так: --destination=%buildroot
Так я и не понял почему не хочет конфигурировать там где я этого хочу.
Программа собирается и даже работает, только вылетает.
Пакеты src.rpm и rpm от mountmanager.
Хотя мне кажется, что пакет тут не причем. Когда я просто собирал программу, она тоже вылетала, терминал пишет:
5 records in /etc/fstab were detected.
[E] DBus interface was not created
[E] Cannot receive all devices

Посмотрите пожалуйста есть ли еще ошибки в spec?
И еще меня интересует макрос конфигурации %prefix. Написано он "Размещение архитектурно-зависящих файлов"
Как узнать архитектурный файл или нет?
На всех архитектурных в именах типа 86х_64х?
Может заменить макрос на %_usr или вообще тупо /usr?

В идеале %_libdir подошел бы, но так не видит файлы почему-то.
%_libdir/mountmanager/trans/br.qm
« Последнее редактирование: 06.01.2015 03:44:24 от Koi »

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 999
Мне со скобками проще ориентироваться, но раз надо без, то буду без...
Это вопрос привычки, у себя локально можете "хоть с su, хоть без", а вот в сборочнице эти вещи вычищаются (тут, правда, вопрос чем или кем, есть ли автоматические механизмы для очистки спеков или маинтейнеры это делают сами при помощи инструментов или вручную) для удобства восприятия содержимого.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 926
    • Домашняя страница
    • Email
Нет, автоматически не вычищаются. Это просто неофициальное соглашение (как политики расстановки отступов и скобок в разных проектах).
Андрей Черепанов (cas@)

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Я так пробовал в первый раз, пишет не хватает макросов, я поставил все какие были.
С этим надо было разобраться - чего не хватает

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
И еще меня интересует макрос конфигурации %prefix. Написано он "Размещение архитектурно-зависящих файлов"
Вообще-то написано независимых. Я не понял что тут хотели сказать, тем-более, что строчкой ниже написано, что %_exec_prefix = %_prefix. Может имелось ввиду, что в других дистрибутивах это так используется.
Архитектурно зависимые - все бинарники и библиотеки (т.е. то, что скомпилировано уже в коды процессора).

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
%_libdir/mountmanager/trans/br.qm
Насколько я понял это qt-ный файл перевода. Они обычно лежат в  /usr/share (не прямо там, а в подпапках).

Оффлайн Koi

  • alt linux team
  • ***
  • Сообщений: 1 893
  • валар дохаэрис
    • Канал на youtube
тем-более, что строчкой ниже написано, что %_exec_prefix = %_prefix
Мой косяк, не посмотрел где курсор был скопировалось не то.
Может имелось ввиду, что в других дистрибутивах это так используется.
В репах видел spec где пути %files были записаны без макросов например share/аvoa/plugins/*
Это может плохо сказаться на сборке?

По гуглил mountmanager мало в каких дистрибутивах работает у большинства вылетает. Жаль программа полезная. Будет время поищу может кто-то вылечил вылетания, а щас попробую собрать этот же пакет на hasher заодно и посмотрю что это такое за среда.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 999
В репах видел spec где пути %files были записаны без макросов например share/аvoa/plugins/*Это может плохо сказаться на сборке?
Нет, не скажется. Просто кому-то макросами удобнее/короче/быстрее, кому-то -- полные пути. Макросы, как я понимаю, это рекомендация.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
У макросов есть плюс - их применение приводит к стандартным путям у всех программ в дистрибутиве, и в случае, если, например, "маны" переезжают в новое место в системе, то достаточно поменять один макрос.
Другой плюс, что они определяют смысловое определение каталога, а не их конкретику, так %_libdir определён по разному в разных архитектурах, а %_libexecdir одинаково, поэтому если требуется полоожить что-то независимое от архитектуры в папку с библиотеками, то используется %_libexecdir, а зависимое от архитектуры в %_libdir.

С маноми, что поменяются, это маловероятно, а например путь до библиотек KDE и т.п. может со временем и поменяться.
Например путь до иконок лучше давать через макросы типа %_liconsdir