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

Оффлайн Koi

  • alt linux team
  • ***
  • Сообщений: 1 893
  • валар дохаэрис
    • Канал на youtube
PS А зачем вам свои - в ALT-ком столько макросов, что вроде всё возможное пространство покрывают, или вам /opt пути нужны?
Да, ну и общие знания думаю пригодятся.

Еще интересно как как сделать чтоб скрипт запущенный не в консоли, например файлом *.desktop  открывал консоль и выводил то что он выполняет в консоль.
А то у меня консоль открывает, но не выводит туда действия.

Оффлайн ruslandh

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

Оффлайн Koi

  • alt linux team
  • ***
  • Сообщений: 1 893
  • валар дохаэрис
    • Канал на youtube
А какой у вас DE - вроде на рабочем столе легко такой фал ссоздаётся в том-же TDE
У меня kde, фишка в том, что в kde я сделал вывод диалогов через кдедиалог, получилось прикольно, но обнаружил, что в xfce/mate это работает не так как я ожидал. Поэтому решил делать выводы и диалоги через консоль. Посмотрел дистрибутивы у нас везде присутствует Хтерминал, вот через него и сделал, но пока без диалогов ...версия 0.1 даже 0.01 сыровата.

Короче по делу. Сделал пакет с простеньким скриптом, обычное перечисление команд для winetricks.
Пакет имеет такое строение:
$ tree
.
|--usr
|  |--share
|  |  `--applications
|  |     |--wine-dll-install.desktop
|--opt
|  |--wine-script
|  |  |--dll-install
|  |  |--icons
|  |  |  |--dll-install.png
Спек такой:
Name: dll-install
Version: 0.1
Release: alt0.koi

License: GPL
Group: Emulators
Url: https://*.*
Packager: Koi <eg.evgeniy at gmail.com>
Source0: %name-%version.tar.gz

BuildRequires: xterm
BuildArch: noarch

Summary: Настройка wine для игр
Summary(ru_RU.UTF-8): Настройка wine для игр

%description
dll-install a script to automatically install the libraries and other components Windows
Selection of components optimized for gaming

%description -l ru_RU.UTF8
dll-install это скрипт для автоматической установки библиотек Windows и других компонентов
Подборка компонентов оптимизирована для игр

%prep
%setup

%build

%install
mkdir -p %buildroot/usr/share/applications
mkdir -p %buildroot/opt/wine-script/icons
install wine-dll-install.desktop %buildroot/%_desktopdir/
install -m 755 dll-install %buildroot/opt/wine-script/
install dll-install.png %buildroot/opt/wine-script/icons

%files
%_desktopdir/wine-dll-install.desktop
/opt/wine-script/dll-install
/opt/wine-script/icons/dll-install.png

%changelog
Так вот возникла проблема. Пакет нормально собирается, устанавливается выглядит так:

Заранее извиняюсь за ужасный рабочий стол, это тестовая ОС.
Так вот, как видно из стрина, ярлычок на скрипт ставится в группу к wine имеет иконку джойстика, при нажатии открывается терминал где происходит установка библиотек в вайн по средству winetricks.

Проблема в самой сборке пакета. Как можно видить из спека там зависимость только хтерменал, но при сборке rpm лезет в скрипт находит там winetricks и wine и.. вол лог сборки:
$ rpm -ba dll-install.spec
Выполняется(%prep): /bin/sh -e /home/rupor/tmp/rpm-tmp.22920
+ umask 022
+ /bin/mkdir -p /home/rupor/RPM/BUILD
+ cd /home/rupor/RPM/BUILD
+ cd /home/rupor/RPM/BUILD
+ rm -rf dll-install-0.1
+ echo 'Source #0 (dll-install-0.1.tar.gz):'
Source #0 (dll-install-0.1.tar.gz):
+ /bin/tar -xf -
+ /bin/gzip -dc /home/rupor/RPM/SOURCES/dll-install-0.1.tar.gz
+ cd dll-install-0.1
+ /bin/chmod -c -Rf u+rwX,go-w .
+ exit 0
Выполняется(%build): /bin/sh -e /home/rupor/tmp/rpm-tmp.22920
+ umask 022
+ /bin/mkdir -p /home/rupor/RPM/BUILD
+ cd /home/rupor/RPM/BUILD
+ cd dll-install-0.1
+ exit 0
Выполняется(%install): /bin/sh -e /home/rupor/tmp/rpm-tmp.22920
+ umask 022
+ /bin/mkdir -p /home/rupor/RPM/BUILD
+ cd /home/rupor/RPM/BUILD
+ /bin/chmod -Rf u+rwX -- /home/rupor/tmp/dll-install-buildroot
+ /bin/rm -rf -- /home/rupor/tmp/dll-install-buildroot
+ cd dll-install-0.1
+ mkdir -p /home/rupor/tmp/dll-install-buildroot/usr/share/applications
+ mkdir -p /home/rupor/tmp/dll-install-buildroot/opt/wine-script/icons
+ install wine-dll-install.desktop /home/rupor/tmp/dll-install-buildroot//usr/share/applications/
+ install -m 755 dll-install /home/rupor/tmp/dll-install-buildroot/opt/wine-script/
+ install dll-install.png /home/rupor/tmp/dll-install-buildroot/opt/wine-script/icons
+ /usr/lib/rpm/brp-alt
Cleaning files in /home/rupor/tmp/dll-install-buildroot (auto)
Verifying and fixing files in /home/rupor/tmp/dll-install-buildroot (binconfig,pkgconfig,libtool,desktop)
Compressing files in /home/rupor/tmp/dll-install-buildroot (auto)
Verifying ELF objects in /home/rupor/tmp/dll-install-buildroot (arch=normal,fhs=normal,lfs=relaxed,lint=relaxed,rpath=normal,stack=normal,textrel=normal,unresolved=normal)
Hardlinking identical .pyc and .pyo files
Обрабатываются файлы: dll-install-0.1-alt0.koi
Поиск Provides (используя /usr/lib/rpm/find-provides)
Executing: /bin/sh -e /tmp/.private/rupor/rpm-tmp.1y4CcZ
find-provides: running scripts (alternatives,debuginfo,gir,lib,mono,pam,perl,pkgconfig,python,shell,typelib)
Поиск Requires (используя /usr/lib/rpm/find-requires)
Executing: /bin/sh -e /tmp/.private/rupor/rpm-tmp.TPZe0Q
find-requires: running scripts (cpp,debuginfo,files,gir-js,gir-python,gir,lib,mono,monolib,pam,perl,pkgconfig,pkgconfiglib,python,rpmlib,shebang,shell,static,symlinks,typelib)
find-requires: FINDPACKAGE-COMMANDS: winecfg winetricks xdg-open
Requires: /bin/bash, /etc/bashrc, /usr/bin/env, i586-wine-vanilla, xdg-utils
Записан: /home/rupor/RPM/SRPMS/dll-install-0.1-alt0.koi.src.rpm
Записан: /home/rupor/RPM/RPMS/noarch/dll-install-0.1-alt0.koi.noarch.rpm
Видно что он регуляр:
find-requires: FINDPACKAGE-COMMANDS: winecfg winetricks xdg-open
Requires: /bin/bash, /etc/bashrc, /usr/bin/env, i586-wine-vanilla, xdg-utils

При установке готового rpm на тестовых ОС. Получается вот, что:
# apt-get install dll-install-0.1-alt0.koi.noarch.rpm -s
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Выбрано dll-install для 'dll-install-0.1-alt0.koi.noarch.rpm'
Следующие дополнительные пакеты будут установлены:
  dll-install i586-libwine-vanilla.32bit i586-wine-vanilla.32bit libwine-vanilla
Следующие пакеты будут УДАЛЕНЫ:
  wine-vanilla.32bit
Следующие НОВЫЕ пакеты будут установлены:
  dll-install i586-libwine-vanilla.32bit i586-wine-vanilla.32bit libwine-vanilla
0 будет обновлено, 4 новых установлено, 1 пакетов будет удалено и 0 не будет обновлено.
Remv wine-vanilla.32bit (1.7.42-alt1 )
Inst libwine-vanilla (1.7.42-alt0.M70P.1 p7:1431712822/ALT Linux p7)
Inst i586-libwine-vanilla.32bit (1.7.42-alt0.M70P.1 p7:1431713317/ALT Linux p7)
Inst i586-wine-vanilla.32bit (1.7.42-alt0.M70P.1 p7:1431713317/ALT Linux p7)
Inst dll-install (0.1-alt0.koi localhost)
Conf libwine-vanilla (1.7.42-alt0.M70P.1 p7:1431712822/ALT Linux p7)
Conf i586-libwine-vanilla.32bit (1.7.42-alt0.M70P.1 p7:1431713317/ALT Linux p7)
Conf i586-wine-vanilla.32bit (1.7.42-alt0.M70P.1 p7:1431713317/ALT Linux p7)
Conf dll-install (0.1-alt0.koi localhost)
Вот интересно с какого перепуга он пытается поставить, то чего нет в спек? Почитал ман по rpm не нашел опции позволяющие игнорировать зависимости при сборке.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 999
Да, с документированием (нормальным) есть проблема, хотя описание самих макросов (всех или нет не уточнял) можно посмотреть в /usr/lib/rpm/macros
%add_findreq_skiplist список файловМакрос отключает проверку Requires для списка файлов пакета, если вместо списка *, то для всех файлов проверка будет отключена.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 999
описание самих макросов (всех или нет не уточнял) можно посмотреть в /usr/lib/rpm/macros
А дополнительных макросов в /usr/lib/rpm/macros.d

Оффлайн Koi

  • alt linux team
  • ***
  • Сообщений: 1 893
  • валар дохаэрис
    • Канал на youtube
Спасибо, скрипт исключил и теперь все нормально проверил на xfce/mate работает, думаю сырец можно считать готовым, теперь буду думать, как диалоги оформить. Хочется чтоб скрипт проверял наличие пакетов вайна и доставлял не найденное, задавал пару вопросов.
Сделаю новую тему в разделе про вайн.