Vochatrak писал(а):%define _unpackaged_files_terminate_build 0
Так делать не надо. Т.к. это верный способ при обновлении пакета потерять какие-то нужные новые файлы. Если есть полная уверенность, что какой-то файл не надо помещать в пакет, то лучше явным образом удалить его в секции %install спека.
Vochatrak писал(а):BuildRequires:libqt4-dev libqt4-opengl-dev
Просто:
BuildRequires: qt4-devel
Или
BuildRequires: pkgconfig(QtCore)
BuildRequires: pkgconfig(QtOpenGL)
+ какие ещё нужны Qt-модули, если указывать их индивидуально. Но для Qt4 все они лежат в qt4-devel, так что особого смысла перечислять индивидуально нет.
Vochatrak писал(а):%build
%cmake
%make
popd
%install
pushd %{name} %{version}
%makeinstall_std
popd
Правильно так:
Код: Выделить всё
%build
%cmake
%make
%install
%makeinstall_std -С build
Макрос %cmake создаёт каталог build, переходит в него и запускает cmake с рядом параметров. Поэтому потом указываем через опцию -C, что выполнять команду "make install" надо в каталоге build. Посмотреть все параметры запуска cmake можно командой "rpm --eval %cmake".
Vochatrak писал(а):%files
citra-qt
%{_bindir}/Citra
С citra-qt тут явно что-то не то. По идее, он должен быть в %{_bindir}.
Vochatrak писал(а):Кстати правильно?
Но так и не понял что собственно писать в
Version: и
Release: если они неизвестны (или не важно)?
Release - это версия пакета, а не программы, так что для стабильных версий программ надо начинать с 1, а потом просто увеличивать на 1. Release считается меньше Version, поэтому 0.1-1 меньше, чем 0.1-2, а 0.1-2 в свою очередь меньше, чем 0.2-1. При обновлении версии программы Release лучше возвращать на 1.
Для снапшотов из гита принято в Release указывать дату снапшота по схеме: 0.дата.1, где а потом в случае необходимости (пересборка и т.п.) увеличивать последнюю цифру. Потом для нового снапшота менять дату и снова последнюю цифру ставить в 1. А когда выйдет стабильная версия программы, сделать Release 1. Чтобы 0.1-0.20160304.1 можно было обновить на 0.1-1. Это для версий предрелизов. Для пострелизов первую цифру Release принято делать не нулём.
Версию программы (Version) надо искать в исходниках, если больше нигде не указана. Если вообще не получается найти, то лучше сделать 0, чтобы потом можно было обновить хоть на 0.0.1.
Vochatrak писал(а):В Source0: что указать? Локально то ясно, а если через ABF?
На ABF как и локально, надо надо залить тарбол на
http://file-store.rosalinux.ru/ и прописать его в .abf.yml сборочного проекта. Тогда перед сборкой ABF скачает файл по хэшу (правая часть), назовёт его указанным именем (левая часть) и поместит в каталог SOURCES для сборки.
Пример:
https://abf.rosalinux.ru/import/qtcurve ... 1/.abf.yml
Vochatrak писал(а):В зависимости нужно указывать GCC, Cmake, и.т.д?
gcc ставится автоматически, а cmake надо прописать.
Vochatrak писал(а):Если программа собирается с Qt4 и Qt5 (можно выбрать) как это сделать в spec -е?
И еще один момент - если нужно добавить аргумент (в данном случае -DCMAKE_BUILD_TYPE=Release) его как указать?
[/quote]
Так и указать: "%cmake -DCMAKE_BUILD_TYPE=Release"
Для выбора между Qt4 и Qt5 тоже указать через -Dxxx, только посмотреть в CMakeLists.txt, как именно там назвали соответствующую опцию. В данном случае это "-DCITRA_FORCE_QT4:BOOL=ON", если требуется именно сборка с Qt4. Иначе автоматически выберется Qt5, а если не обнаружится в сборочном окружении, то Qt4.