Хочу разобраться в сборке RPM для Alt.
Экспериментирую, пересобрал opera из реп opensuse ( хотя и бинарный пакет прекрасно работает...
Для экспериментов выбрал не большуое приложение эмулятор blasem ( Sega MedaDrive/Genesis )
Для debian bulseye от сюда
https://salsa.debian.org/games-team/blastemсобирается за пару минут, вообще думать не надо, исходник качественный.
Мы же имеем RPM
нашёл
https://download.copr.fedorainfracloud.org/results/phantomx/chinforpms/fedora-35-x86_64/03494967-blastem/ Исходник так же качественный, сборочные зависимости для Alt10 сразу вычислил.
программа через make собирается в пользовательской папке и в принципе щелчком мыши по бинарнику запускается и прекрасно работает, но это колхоз... а мы культурные люди.
Почитал:
https://www.altlinux.org/Технология_сборки_пакетов_RPM
https://www.altlinux.org/Spec#%installhttps://docs.fedoraproject.org/en-US/packaging-guidelines/RPMMacros/https://www.altlinux.org/Spec/Предопределенные_макросы
но пока для меня не очевидно как создать специфичные каталоги для сборки пакета(ов)
.spec от fedora естественно не годится, хотя его я взял за основу
Пытаюсь распределить собираемый код как в debian (оно там прекрасно работает), а дерево каталогов в принципе похоже.
blastem usr/games
blastem.desktop usr/share/applications
blastem.png usr/share/pixmaps
default.cfg etc/blastem
gamecontrollerdb.txt usr/share/games/blastem
images usr/share/games/blastem
rom.db usr/share/games/blastem
shaders usr/share/games/blastem
соответственно пилю blastem.spec
%undefine _hardened_build
%global commit 0013362c320c
%global date 20220213
%global with_snapshot 1
%if 0%{?with_snapshot}
%global gver .%{date}hg%{commit}
%endif
Name: blastem
Version: 0.6.3
Release: 0.7%{?gver}%{?dist}
Summary: Fast and accurate Sega Genesis/Mega Drive emulator
License: GPLv3
Group: Games
URL: https://www.retrodev.com/%{name}/
#Source0: https://www.retrodev.com/repos/%{name}/archive/%{commit}.tar.bz2#/%{name}-%{commit}.tar.bz2
Source: %{name}-%{commit}.tar.bz2
ExclusiveArch: x86_64 i586
BuildRequires: libalsa-devel
BuildRequires: libGLEW-devel
BuildRequires: libSDL2-devel
BuildRequires: libSDL2_mixer-devel
BuildRequires: zlib-devel
BuildRequires: fonts-ttf-dejavu
BuildRequires: icon-theme-hicolor
%description
BlastEm is an open source, higly accurate emulator for the Genesis/Megadrive
that runs on modest hardware.
TMMS support and menu.bin is not included.
%build
%make_build \
CC=gcc \
DATA_PATH=/usr/share/blastem \
HOST_ZLIB=1
%install
mkdir -p %{buildroot}%{_exec_prefix}%{_games_dir}
install -m0755 %{name} %{buildroot}%{_exec_prefix}%{_games_dir}/
for i in dis zdis vgmplay termhelper ;do
install -pm0755 $i %{buildroot}%{_bindir}/%{name}-$i
done
mkdir -p %{buildroot}%{_datadir}/%{name}/{pixmaps,shaders}
mkdir -p %{buildroot}%{_datadir}%{_pixmaps_dir}/
mkdir -p %{buildroot}%{_datadir}%{_shaders_dir}/
mkdir -p %{buildroot}%{_sysconfdir}/%{name}/
mkdir -p %{buildroot}%{_datadir}%{_games_dir}%{name}/
install -pm0644 default.cfg systems.cfg %{buildroot}%{_sysconfdir}/%{name}/
install -pm0644 images/*.png rom.db shaders/*.glsl gamecontrollerdb.txt %{buildroot}%{_datadir}/%{name}/
install -pm0644 blastem.png %{buildroot}%{_datadir}%{pixmas_dir}/
ln -sf ../SDL_GameControllerDB/gamecontrollerdb.txt %{buildroot}%{_datadir}%{_games_dir}%{name}/
mkdir -p %{buildroot}%{_datadir}%{_applications_dir}/
cat > %{buildroot}%{_datadir}%{_applications_dir}%{name}.desktop <<'EOF'
[Desktop Entry]
Name=BlastEm
Comment=Genesis/MegaDrive emulator
Exec=%{name}
Icon=%{name}.png
Terminal=false
Type=Application
Categories=Game;Emulator;
EOF
%files
%license COPYING
%doc README
%{_bindir}/%{name}
%{_bindir}/%{name}-*
%{_datadir}/%{name}
%{_datadir}/%{_applications_dir}/%{name}.desktop
%{_datadir}/%{_pixmaps_dir}/*.png
%changelog
* Mon Feb 14 2022 Phantom X <megaphantomx at hotmail dot com> - 0.6.3-0.7.20220213hg0013362c320c
- Update
Естественно пока сборка меня посылает лесом, так как не догоняю как правильно прописать каталоги
/usr/games
/usr/share/pixmas
/usr/share/games
/usr/share/applications
используя макросы... или чего то вообще не догоняю
Дурачусь уже пару вечеров и пивас не помогает, кто реально шарит, прошу подсказать.