|
 |
3eeade5 |
# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
|
|
 |
3eeade5 |
ExcludeArch: %{ix86}
|
|
 |
0f3debb |
# Please fix upstream this if you need it and no downstream Fedora patch
|
|
 |
0f3debb |
ExcludeArch: s390x
|
|
 |
3eeade5 |
|
|
 |
960e8a6 |
# Free/Freeworld/Non-Free version
|
|
 |
50099c1 |
%bcond_with freeworld
|
|
 |
50099c1 |
%bcond_with nonfree
|
|
 |
50099c1 |
|
|
 |
93f4c22 |
%global appname retroarch
|
|
 |
ef27a66 |
%global uuid com.libretro.RetroArch
|
|
 |
960e8a6 |
|
|
 |
960e8a6 |
# Freeworld package
|
|
 |
960e8a6 |
%if %{with freeworld}
|
|
 |
93f4c22 |
%global p_suffix -freeworld
|
|
 |
93f4c22 |
%global sum_suffix Freeworld version.
|
|
 |
960e8a6 |
%else
|
|
 |
93f4c22 |
%global p_suffix %{nil}
|
|
 |
93f4c22 |
%global sum_suffix %{nil}
|
|
 |
960e8a6 |
%endif
|
|
 |
960e8a6 |
|
|
 |
93f4c22 |
%global short_url https://github.com/libretro
|
|
 |
50099c1 |
|
|
 |
960e8a6 |
# Assets
|
|
 |
58d5cc5 |
# * https://github.com/libretro/retroarch-assets
|
|
 |
0c9e979 |
# * https://github.com/libretro/retroarch-assets/issues/414
|
|
 |
25d257b |
%global commit1 7b735ef18bcc6508b1c9a626eb237779ff787179
|
|
 |
25d257b |
%global date 20230911
|
|
 |
93f4c22 |
%global shortcommit1 %(c=%{commit1}; echo ${c:0:7})
|
|
 |
93f4c22 |
|
|
 |
ea9c960 |
Name: %{appname}%{?p_suffix}
|
|
 |
25d257b |
Version: 1.16.0.3
|
|
 |
25d257b |
%global version_addons 1.16.0
|
|
 |
9fd008b |
Release: %autorelease
|
|
 |
ea9c960 |
Summary: Cross-platform, sophisticated frontend for the libretro API. %{?sum_suffix}
|
|
 |
50099c1 |
|
|
 |
0a880b1 |
# CC-BY: Assets
|
|
 |
0a880b1 |
# CC0: AppData manifest
|
|
 |
17ba0fc |
# MIT: Libretro's core info
|
|
 |
93f4c22 |
# Joypad Autoconfig Files
|
|
 |
9c83bb4 |
#
|
|
 |
0a880b1 |
# Apache License (v2.0)
|
|
 |
0a880b1 |
# ------------------------------------
|
|
 |
0a880b1 |
# deps/SPIRV-Cross/
|
|
 |
0a880b1 |
# retroarch-assets/xmb/flatui/
|
|
 |
0a880b1 |
# deps/glslang/glslang/
|
|
 |
0a880b1 |
# gfx/include/vulkan/
|
|
 |
9c83bb4 |
#
|
|
 |
0a880b1 |
# Creative Commons Attribution Public License (v4.0)
|
|
 |
0a880b1 |
# -----------------------------------------------------------------
|
|
 |
0a880b1 |
# retroarch-assets/rgui/wallpaper/
|
|
 |
9c83bb4 |
#
|
|
 |
0a880b1 |
# Creative Commons Attribution-NonCommercial Public License (v3.0)
|
|
 |
0a880b1 |
# -------------------------------------------------------------------------------
|
|
 |
0a880b1 |
# retroarch-assets/sounds/
|
|
 |
9c83bb4 |
#
|
|
 |
0a880b1 |
# Creative Commons Attribution-ShareAlike Public License (v3.0)
|
|
 |
0a880b1 |
# ----------------------------------------------------------------------------
|
|
 |
0a880b1 |
# retroarch-assets/rgui/wallpaper/
|
|
 |
9c83bb4 |
#
|
|
 |
0a880b1 |
# Expat License
|
|
 |
0a880b1 |
# ----------------------------
|
|
 |
0a880b1 |
# libretro-common/glsym/
|
|
 |
9c83bb4 |
#
|
|
 |
0a880b1 |
# GNU General Public License (v2)
|
|
 |
0a880b1 |
# ----------------------------------------------
|
|
 |
0a880b1 |
# memory/ngc/ssaram.c
|
|
 |
9c83bb4 |
#
|
|
 |
0a880b1 |
# GNU Lesser General Public License
|
|
 |
0a880b1 |
# ------------------------------------------------
|
|
 |
0a880b1 |
# memory/neon/memcpy-neon.S
|
|
 |
9c83bb4 |
#
|
|
 |
0a880b1 |
# SIL Open Font License
|
|
 |
0a880b1 |
# ------------------------------------
|
|
 |
0a880b1 |
# retroarch-assets/xmb/automatic/
|
|
 |
0a880b1 |
# retroarch-assets/xmb/neoactive/
|
|
 |
0a880b1 |
# retroarch-assets/xmb/retroactive/
|
|
 |
9c83bb4 |
#
|
|
 |
0a880b1 |
# BSD 2-clause "Simplified" License
|
|
 |
0a880b1 |
# ---------------------------------
|
|
 |
9c83bb4 |
# cores/
|
|
 |
9c83bb4 |
# gfx/
|
|
 |
9c83bb4 |
# libretro-common/
|
|
 |
9c83bb4 |
#
|
|
 |
0a880b1 |
# BSD 2-clause "Simplified" License GPL (v2 or later)
|
|
 |
0a880b1 |
# ---------------------------------------------------
|
|
 |
9c83bb4 |
# gfx/
|
|
 |
9c83bb4 |
#
|
|
 |
0a880b1 |
# BSD 3-clause "New" or "Revised" License
|
|
 |
0a880b1 |
# ---------------------------------------
|
|
 |
9c83bb4 |
# deps/discord-rpc/
|
|
 |
9c83bb4 |
# deps/glslang/
|
|
 |
9c83bb4 |
# deps/ibxm/
|
|
 |
9c83bb4 |
# gfx/
|
|
 |
9c83bb4 |
# libretro-common/
|
|
 |
0a880b1 |
#
|
|
 |
6646931 |
License: GPL-3.0-or-later and GPL-2.0-only and CC-BY-3.0 and CC-BY-4.0 and CC0-1.0 and BSD-2-Clause and BSD-3-Clause and Apache-2.0 and MIT
|
|
 |
50099c1 |
|
|
 |
50099c1 |
URL: https://www.libretro.com/
|
|
 |
50099c1 |
Source0: %{short_url}/RetroArch/archive/v%{version}/%{appname}-%{version}.tar.gz
|
|
 |
50099c1 |
|
|
 |
960e8a6 |
# Assets
|
|
 |
93f4c22 |
Source1: %{short_url}/%{appname}-assets/archive/%{commit1}/%{appname}-assets-%{date}git%{shortcommit1}.tar.gz
|
|
 |
50099c1 |
|
|
 |
960e8a6 |
# AppData manifest
|
|
 |
ef27a66 |
# Upstreamed so should be easier now to maintain and automate updates for both
|
|
 |
ef27a66 |
# Fedora and RPM Fusion repo. There is still UUID inconsistency but upstream
|
|
 |
ef27a66 |
# notified. Keep old one for fallback.
|
|
 |
ef27a66 |
# * https://github.com/libretro/RetroArch/pull/13113
|
|
 |
ef27a66 |
#
|
|
 |
ef27a66 |
# Old (+ line 408):
|
|
 |
960e8a6 |
# * https://github.com/flathub/org.libretro.RetroArch/blob/master/org.libretro.RetroArch.appdata.xml
|
|
 |
ef27a66 |
%dnl Source2: https://raw.githubusercontent.com/flathub/%{uuid}/63af0e2449891e40c6ab6feae5d27845768b26fb/%{uuid}.appdata.xml
|
|
 |
50099c1 |
|
|
 |
17ba0fc |
# Libretro's core info
|
|
 |
25d257b |
Source3: %{short_url}/libretro-core-info/archive/v%{version_addons}/libretro-core-info-%{version_addons}.tar.gz
|
|
 |
17ba0fc |
|
|
 |
93f4c22 |
# Joypad Autoconfig Files
|
|
 |
25d257b |
Source4: %{short_url}/%{appname}-joypad-autoconfig/archive/v%{version_addons}/%{appname}-joypad-autoconfig-%{version_addons}.tar.gz
|
|
 |
93f4c22 |
|
|
 |
b52dce3 |
# Database files (cheatcode, content data, cursors)
|
|
 |
25d257b |
Source5: %{short_url}/libretro-database/archive/v%{version_addons}/libretro-database-%{version_addons}.tar.gz
|
|
 |
b52dce3 |
|
|
 |
2ed0cbb |
# Script for enabling network access which allows downloading more libretro
|
|
 |
2ed0cbb |
# cores
|
|
 |
2ed0cbb |
Source10: %{name}-enable-network-access.sh
|
|
 |
2ed0cbb |
|
|
 |
2ed0cbb |
Source11: README.fedora.md
|
|
 |
2ed0cbb |
|
|
 |
50099c1 |
BuildRequires: desktop-file-utils
|
|
 |
50099c1 |
BuildRequires: gcc-c++ >= 7
|
|
 |
32f1689 |
BuildRequires: glslang-devel
|
|
 |
50099c1 |
BuildRequires: libappstream-glib
|
|
 |
99f34a6 |
BuildRequires: make
|
|
 |
50099c1 |
BuildRequires: mbedtls-devel
|
|
 |
50099c1 |
BuildRequires: mesa-libEGL-devel
|
|
 |
32f1689 |
BuildRequires: spirv-tools-libs
|
|
 |
50099c1 |
BuildRequires: systemd-devel
|
|
 |
c91d12f |
|
|
 |
32f1689 |
BuildRequires: pkgconfig(alsa)
|
|
 |
50099c1 |
BuildRequires: pkgconfig(caca)
|
|
 |
99f34a6 |
BuildRequires: pkgconfig(dbus-1)
|
|
 |
50099c1 |
BuildRequires: pkgconfig(flac)
|
|
 |
50099c1 |
BuildRequires: pkgconfig(freetype2)
|
|
 |
32f1689 |
BuildRequires: pkgconfig(gbm)
|
|
 |
32f1689 |
BuildRequires: pkgconfig(gl)
|
|
 |
32f1689 |
BuildRequires: pkgconfig(jack)
|
|
 |
50099c1 |
BuildRequires: pkgconfig(libass)
|
|
 |
32f1689 |
BuildRequires: pkgconfig(libdecor-0)
|
|
 |
50099c1 |
BuildRequires: pkgconfig(libpulse)
|
|
 |
50099c1 |
BuildRequires: pkgconfig(libusb)
|
|
 |
32f1689 |
BuildRequires: pkgconfig(libv4l2)
|
|
 |
50099c1 |
BuildRequires: pkgconfig(libxml-2.0)
|
|
 |
50099c1 |
BuildRequires: pkgconfig(miniupnpc)
|
|
 |
50099c1 |
BuildRequires: pkgconfig(openal)
|
|
 |
50099c1 |
BuildRequires: pkgconfig(openssl)
|
|
 |
50099c1 |
BuildRequires: pkgconfig(Qt5Concurrent) >= 5.2
|
|
 |
50099c1 |
BuildRequires: pkgconfig(Qt5Core) >= 5.2
|
|
 |
50099c1 |
BuildRequires: pkgconfig(Qt5Gui) >= 5.2
|
|
 |
50099c1 |
BuildRequires: pkgconfig(Qt5Network) >= 5.2
|
|
 |
50099c1 |
BuildRequires: pkgconfig(Qt5Widgets) >= 5.2
|
|
 |
50099c1 |
BuildRequires: pkgconfig(sdl2)
|
|
 |
50099c1 |
BuildRequires: pkgconfig(vulkan)
|
|
 |
32f1689 |
BuildRequires: pkgconfig(wayland-egl)
|
|
 |
32f1689 |
BuildRequires: pkgconfig(wayland-protocols)
|
|
 |
50099c1 |
BuildRequires: pkgconfig(xinerama)
|
|
 |
50099c1 |
BuildRequires: pkgconfig(xkbcommon)
|
|
 |
32f1689 |
BuildRequires: pkgconfig(xrandr)
|
|
 |
32f1689 |
BuildRequires: pkgconfig(xxf86vm)
|
|
 |
50099c1 |
BuildRequires: pkgconfig(zlib)
|
|
 |
99f34a6 |
|
|
 |
50099c1 |
%if %{with freeworld}
|
|
 |
960e8a6 |
# Available in Freeworld repo
|
|
 |
50099c1 |
BuildRequires: ffmpeg-devel
|
|
 |
abd3cec |
# Since F36 ffmpeg-free available in official repos
|
|
 |
abd3cec |
%else
|
|
 |
023554c |
%if 0%{?fedora} >= 37
|
|
 |
abd3cec |
BuildRequires: ffmpeg-free-devel
|
|
 |
abd3cec |
BuildRequires: libavcodec-free-devel
|
|
 |
abd3cec |
BuildRequires: libavdevice-free-devel
|
|
 |
abd3cec |
BuildRequires: libavformat-free-devel
|
|
 |
abd3cec |
BuildRequires: libavutil-free-devel
|
|
 |
abd3cec |
BuildRequires: libswresample-free-devel
|
|
 |
abd3cec |
BuildRequires: libswscale-free-devel
|
|
 |
abd3cec |
%endif
|
|
 |
50099c1 |
%endif
|
|
 |
50099c1 |
%if %{with nonfree}
|
|
 |
960e8a6 |
# Available in Non-Free repo
|
|
 |
50099c1 |
BuildRequires: Cg
|
|
 |
50099c1 |
BuildRequires: libCg
|
|
 |
50099c1 |
BuildRequires: xv
|
|
 |
50099c1 |
%endif
|
|
 |
aa79aa6 |
|
|
 |
362dfc0 |
Requires: perl(Net::DBus)
|
|
 |
362dfc0 |
Requires: perl(X11::Protocol)
|
|
 |
aa79aa6 |
|
|
 |
c8413d0 |
Recommends: %{name}-assets = %{?epoch:%{epoch}:}%{version}-%{release}
|
|
 |
84265bc |
Recommends: %{name}-database = %{?epoch:%{epoch}:}%{version}-%{release}
|
|
 |
c8413d0 |
Recommends: %{name}-filters%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
|
 |
f2b6b36 |
Recommends: gamemode
|
|
 |
362dfc0 |
Recommends: libretro-beetle-ngp
|
|
 |
362dfc0 |
Recommends: libretro-beetle-pce-fast
|
|
 |
362dfc0 |
Recommends: libretro-beetle-vb
|
|
 |
362dfc0 |
Recommends: libretro-beetle-wswan
|
|
 |
362dfc0 |
Recommends: libretro-bsnes-mercury
|
|
 |
362dfc0 |
Recommends: libretro-desmume2015
|
|
 |
362dfc0 |
Recommends: libretro-gambatte
|
|
 |
362dfc0 |
Recommends: libretro-gw
|
|
 |
362dfc0 |
Recommends: libretro-handy
|
|
 |
362dfc0 |
Recommends: libretro-mgba
|
|
 |
362dfc0 |
Recommends: libretro-nestopia
|
|
 |
362dfc0 |
Recommends: libretro-pcsx-rearmed
|
|
 |
362dfc0 |
Recommends: libretro-prosystem
|
|
 |
362dfc0 |
Recommends: libretro-stella2014
|
|
 |
50099c1 |
%if %{with freeworld}
|
|
 |
960e8a6 |
# Non-Free cores
|
|
 |
960e8a6 |
# * Dummy for future
|
|
 |
50099c1 |
%endif
|
|
 |
aa79aa6 |
|
|
 |
50099c1 |
Provides: bundled(7zip) = 9.20
|
|
 |
50099c1 |
Provides: bundled(discord-rpc)
|
|
 |
50099c1 |
Provides: bundled(dr)
|
|
 |
50099c1 |
Provides: bundled(glslang)
|
|
 |
50099c1 |
Provides: bundled(ibxm)
|
|
 |
50099c1 |
|
|
 |
960e8a6 |
# https://github.com/libretro/RetroArch/issues/8153
|
|
 |
50099c1 |
Provides: bundled(lua) = 5.3.5
|
|
 |
50099c1 |
|
|
 |
25d257b |
Provides: bundled(rcheevos) = 10.7
|
|
 |
50099c1 |
Provides: bundled(SPIRV-Cross)
|
|
 |
50099c1 |
Provides: bundled(stb)
|
|
 |
50099c1 |
|
|
 |
50099c1 |
%global _description %{expand:
|
|
 |
50099c1 |
libretro is an API that exposes generic audio/video/input callbacks. A frontend
|
|
 |
50099c1 |
for libretro (such as RetroArch) handles video output, audio output, input and
|
|
 |
50099c1 |
application lifecycle. A libretro core written in portable C or C++ can run
|
|
 |
50099c1 |
seamlessly on many platforms with very little to no porting effort.
|
|
 |
50099c1 |
|
|
 |
50099c1 |
While RetroArch is the reference frontend for libretro, several other projects
|
|
 |
50099c1 |
have used the libretro interface to include support for emulators and/or game
|
|
 |
24fc24d |
engines. libretro is completely open and free for anyone to use.
|
|
 |
24fc24d |
|
|
 |
24fc24d |
To download and install more libretro cores please read included README.Fedora
|
|
 |
24fc24d |
file:
|
|
 |
24fc24d |
|
|
 |
24fc24d |
$ xdg-open %{_docdir}/%{name}/README.fedora.md}
|
|
 |
50099c1 |
|
|
 |
50099c1 |
%description %{_description}
|
|
 |
50099c1 |
|
|
 |
50099c1 |
|
|
 |
960e8a6 |
# Assets package
|
|
 |
50099c1 |
%package assets
|
|
 |
960e8a6 |
Summary: Assets files for %{name}
|
|
 |
50099c1 |
BuildArch: noarch
|
|
 |
50099c1 |
|
|
 |
960e8a6 |
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
|
|
 |
50099c1 |
Requires: dejavu-sans-mono-fonts
|
|
 |
50099c1 |
Recommends: open-sans-fonts
|
|
 |
50099c1 |
|
|
 |
960e8a6 |
# * Bundled fonts
|
|
 |
50099c1 |
Provides: bundled(inter-ui-fonts)
|
|
 |
50099c1 |
Provides: bundled(metrophobic-fonts)
|
|
 |
50099c1 |
Provides: bundled(sf-atarian-system-fonts)
|
|
 |
50099c1 |
Provides: bundled(titilium-web-fonts)
|
|
 |
50099c1 |
|
|
 |
50099c1 |
%description assets
|
|
 |
960e8a6 |
Assets files for %{name}.
|
|
 |
50099c1 |
|
|
 |
50099c1 |
|
|
 |
960e8a6 |
# Filters package
|
|
 |
50099c1 |
%package filters
|
|
 |
960e8a6 |
Summary: Audio and video filters for %{name}
|
|
 |
50099c1 |
|
|
 |
960e8a6 |
Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
|
 |
50099c1 |
|
|
 |
50099c1 |
%description filters
|
|
 |
960e8a6 |
Audio and video filters for %{name}.
|
|
 |
50099c1 |
|
|
 |
50099c1 |
|
|
 |
b52dce3 |
# Database package
|
|
 |
b52dce3 |
%package database
|
|
 |
b52dce3 |
Summary: Database files (cheatcode, content data, cursors) for %{name}
|
|
 |
b52dce3 |
BuildArch: noarch
|
|
 |
b52dce3 |
|
|
 |
2104dc0 |
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
|
|
 |
b52dce3 |
|
|
 |
b52dce3 |
%description database
|
|
 |
b52dce3 |
RetroArch incoporates a ROM scanning system to automatically produce playlists.
|
|
 |
b52dce3 |
Each ROM that is scanned by the playlist generator is checked against a
|
|
 |
b52dce3 |
database of ROMs that are known to be good copies.
|
|
 |
b52dce3 |
|
|
 |
b52dce3 |
|
|
 |
50099c1 |
%prep
|
|
 |
50099c1 |
%setup -n RetroArch-%{version} -q
|
|
 |
50099c1 |
%setup -n RetroArch-%{version} -q -D -T -a1
|
|
 |
17ba0fc |
%setup -n RetroArch-%{version} -q -D -T -a3
|
|
 |
93f4c22 |
%setup -n RetroArch-%{version} -q -D -T -a4
|
|
 |
b52dce3 |
%setup -n RetroArch-%{version} -q -D -T -a5
|
|
 |
50099c1 |
|
|
 |
960e8a6 |
# Unbundling
|
|
 |
50099c1 |
pushd deps
|
|
 |
99f34a6 |
rm -rf \
|
|
 |
99f34a6 |
libfat \
|
|
 |
17ba0fc |
libFLAC \
|
|
 |
17ba0fc |
libiosuhax \
|
|
 |
17ba0fc |
libvita2d \
|
|
 |
17ba0fc |
libz \
|
|
 |
17ba0fc |
peglib \
|
|
 |
17ba0fc |
pthreads \
|
|
 |
99f34a6 |
wayland-protocols \
|
|
 |
99f34a6 |
%{nil}
|
|
 |
50099c1 |
popd
|
|
 |
50099c1 |
|
|
 |
960e8a6 |
# * Not part of the 'mbedtls' upstream source
|
|
 |
50099c1 |
find deps/mbedtls/ ! -name 'cacert.h' -type f -exec rm -f {} +
|
|
 |
50099c1 |
|
|
 |
b52dce3 |
# Use system assets, libretro cores, libretro's core info and audio/video,
|
|
 |
b52dce3 |
# filters, database files (cheatcode, content data, cursors)
|
|
 |
960e8a6 |
sed -e 's|# libretro_directory =|libretro_directory = %{_libdir}/libretro/|g' \
|
|
 |
960e8a6 |
-i retroarch.cfg
|
|
 |
960e8a6 |
%if %{with freeworld}
|
|
 |
b52dce3 |
sed -e 's|# assets_directory =|assets_directory = %{_datadir}/libretro/assets-freeworld/|g' \
|
|
 |
b52dce3 |
-e 's|# video_filter_dir =|video_filter_dir = %{_libdir}/retroarch/filters/video-freeworld/|g' \
|
|
 |
b52dce3 |
-e 's|# audio_filter_dir =|audio_filter_dir = %{_libdir}/retroarch/filters/audio-freeworld/|g' \
|
|
 |
b52dce3 |
-e 's|# libretro_info_path =|libretro_info_path = %{_datadir}/libretro/info-freeworld/|g' \
|
|
 |
b52dce3 |
-e 's|# joypad_autoconfig_dir =|joypad_autoconfig_dir = %{_datadir}/libretro/autoconfig-freeworld/|g' \
|
|
 |
07fc2e5 |
-e 's|# content_database_path =|content_database_path = %{_datadir}/libretro/database-freeworld/rdb/|g' \
|
|
 |
07fc2e5 |
-e 's|# cheat_database_path =|cheat_database_path = %{_datadir}/libretro/database-freeworld/cht/|g' \
|
|
 |
07fc2e5 |
-e 's|# cursor_directory =|cursor_directory = %{_datadir}/libretro/database-freeworld/cursors/|g' \
|
|
 |
960e8a6 |
%else
|
|
 |
b52dce3 |
sed -e 's|# assets_directory =|assets_directory = %{_datadir}/libretro/assets/|g' \
|
|
 |
b52dce3 |
-e 's|# video_filter_dir =|video_filter_dir = %{_libdir}/retroarch/filters/video/|g' \
|
|
 |
b52dce3 |
-e 's|# audio_filter_dir =|audio_filter_dir = %{_libdir}/retroarch/filters/audio/|g' \
|
|
 |
b52dce3 |
-e 's|# libretro_info_path =|libretro_info_path = %{_datadir}/libretro/info/|g' \
|
|
 |
b52dce3 |
-e 's|# joypad_autoconfig_dir =|joypad_autoconfig_dir = %{_datadir}/libretro/autoconfig/|g' \
|
|
 |
b52dce3 |
-e 's|# content_database_path =|content_database_path = %{_datadir}/libretro/database/rdb/|g' \
|
|
 |
b52dce3 |
-e 's|# cheat_database_path =|cheat_database_path = %{_datadir}/libretro/database/cht/|g' \
|
|
 |
b52dce3 |
-e 's|# cursor_directory =|cursor_directory = %{_datadir}/libretro/database/cursors/|g' \
|
|
 |
960e8a6 |
%endif
|
|
 |
50099c1 |
-i retroarch.cfg
|
|
 |
50099c1 |
|
|
 |
960e8a6 |
# Disable online update feature due security reasons
|
|
 |
960e8a6 |
sed -e 's|# menu_show_online_updater = true|menu_show_online_updater = false|g' \
|
|
 |
17ba0fc |
-e 's|# menu_show_core_updater = true|menu_show_core_updater = false|g' \
|
|
 |
50099c1 |
-i retroarch.cfg
|
|
 |
960e8a6 |
sed -e 's|HAVE_UPDATE_ASSETS=yes|HAVE_UPDATE_ASSETS=no|g' -i qb/config.params.sh
|
|
 |
960e8a6 |
|
|
 |
960e8a6 |
# Freeworld config file
|
|
 |
960e8a6 |
%if %{with freeworld}
|
|
 |
17ba0fc |
sed -e 's|retroarch.cfg|%{name}.cfg|g' \
|
|
 |
17ba0fc |
-i retroarch.c \
|
|
 |
17ba0fc |
configuration.c \
|
|
 |
eddec1a |
%{nil}
|
|
 |
960e8a6 |
%endif
|
|
 |
50099c1 |
|
|
 |
50099c1 |
|
|
 |
50099c1 |
%build
|
|
 |
17ba0fc |
./configure \
|
|
 |
17ba0fc |
--prefix=%{_prefix} \
|
|
 |
17ba0fc |
--disable-builtinflac \
|
|
 |
17ba0fc |
--disable-builtinmbedtls \
|
|
 |
99f34a6 |
--disable-builtinzlib \
|
|
 |
99f34a6 |
--enable-dbus \
|
|
 |
81059bd |
--enable-libdecor \
|
|
 |
81059bd |
--enable-wayland \
|
|
 |
99f34a6 |
%{nil}
|
|
 |
50099c1 |
%set_build_flags
|
|
 |
50099c1 |
%make_build
|
|
 |
50099c1 |
|
|
 |
960e8a6 |
# Assets
|
|
 |
93f4c22 |
%make_build -C %{appname}-assets-%{commit1} \
|
|
 |
93f4c22 |
GIT_VERSION=%{shortcommit1}
|
|
 |
50099c1 |
|
|
 |
960e8a6 |
# Audio filters
|
|
 |
50099c1 |
%make_build -C libretro-common/audio/dsp_filters
|
|
 |
50099c1 |
|
|
 |
960e8a6 |
# Video filters
|
|
 |
50099c1 |
%make_build -C gfx/video_filters
|
|
 |
50099c1 |
|
|
 |
17ba0fc |
# Libretro's core info
|
|
 |
25d257b |
%make_build -C libretro-core-info-%{version_addons}
|
|
 |
17ba0fc |
|
|
 |
93f4c22 |
# Joypad Autoconfig Files
|
|
 |
25d257b |
%make_build -C %{appname}-joypad-autoconfig-%{version_addons}
|
|
 |
93f4c22 |
|
|
 |
b52dce3 |
# Database files (cheatcode, content data, cursors)
|
|
 |
25d257b |
%make_build -C libretro-database-%{version_addons}
|
|
 |
b52dce3 |
|
|
 |
50099c1 |
|
|
 |
50099c1 |
%install
|
|
 |
50099c1 |
%make_install
|
|
 |
9c83bb4 |
rm %{buildroot}%{_docdir}/%{appname}/COPYING \
|
|
 |
9c83bb4 |
%{buildroot}%{_docdir}/%{appname}/README.md
|
|
 |
50099c1 |
|
|
 |
960e8a6 |
# Assets
|
|
 |
93f4c22 |
%make_install -C %{appname}-assets-%{commit1}
|
|
 |
960e8a6 |
%if %{with freeworld}
|
|
 |
960e8a6 |
mv %{buildroot}%{_datadir}/libretro/assets/ \
|
|
 |
960e8a6 |
%{buildroot}%{_datadir}/libretro/assets-freeworld/
|
|
 |
960e8a6 |
%endif
|
|
 |
50099c1 |
|
|
 |
960e8a6 |
# * Move assets license file in proper location
|
|
 |
960e8a6 |
mkdir -p %{buildroot}%{_licensedir}/%{name}-assets/
|
|
 |
ea9c960 |
mv %{buildroot}%{_datadir}/libretro/assets%{?p_suffix}/COPYING \
|
|
 |
960e8a6 |
%{buildroot}%{_licensedir}/%{name}-assets/COPYING
|
|
 |
50099c1 |
|
|
 |
960e8a6 |
# * Remove duplicate fonts which available in Fedora repos
|
|
 |
ea9c960 |
rm %{buildroot}%{_datadir}/libretro/assets%{?p_suffix}/pkg/osd-font.ttf \
|
|
 |
ea9c960 |
%{buildroot}%{_datadir}/libretro/assets%{?p_suffix}/xmb/flatui/font.ttf
|
|
 |
50099c1 |
|
|
 |
960e8a6 |
# Audio filters
|
|
 |
17ba0fc |
%make_install -C libretro-common/audio/dsp_filters \
|
|
 |
17ba0fc |
PREFIX=%{_prefix} \
|
|
 |
ea9c960 |
INSTALLDIR=%{_libdir}/retroarch/filters%{?p_suffix}/audio
|
|
 |
50099c1 |
|
|
 |
960e8a6 |
# Video filters
|
|
 |
17ba0fc |
%make_install -C gfx/video_filters \
|
|
 |
17ba0fc |
PREFIX=%{_prefix} \
|
|
 |
ea9c960 |
INSTALLDIR=%{_libdir}/retroarch/filters%{?p_suffix}/video
|
|
 |
50099c1 |
|
|
 |
17ba0fc |
# Libretro's core info
|
|
 |
25d257b |
%make_install -C libretro-core-info-%{version_addons} \
|
|
 |
ea9c960 |
INSTALLDIR=%{_datadir}/libretro/info%{?p_suffix}
|
|
 |
17ba0fc |
|
|
 |
960e8a6 |
# AppData manifest
|
|
 |
ef27a66 |
%dnl install -m 0644 -Dp %{SOURCE2} %{buildroot}%{_metainfodir}/%{uuid}.appdata.xml
|
|
 |
50099c1 |
|
|
 |
93f4c22 |
# Joypad Autoconfig Files
|
|
 |
25d257b |
%make_install -C %{appname}-joypad-autoconfig-%{version_addons} \
|
|
 |
33d64bb |
DOC_DIR=%{_datadir}/libretro/autoconfig/doc
|
|
 |
93f4c22 |
%if %{with freeworld}
|
|
 |
93f4c22 |
mv %{buildroot}%{_datadir}/libretro/autoconfig/ \
|
|
 |
93f4c22 |
%{buildroot}%{_datadir}/libretro/autoconfig-freeworld/
|
|
 |
93f4c22 |
%endif
|
|
 |
93f4c22 |
|
|
 |
b52dce3 |
# Database files (cheatcode, content data, cursors)
|
|
 |
25d257b |
%make_install -C libretro-database-%{version_addons} \
|
|
 |
b52dce3 |
INSTALLDIR=%{_datadir}/libretro/database%{?p_suffix}
|
|
 |
b52dce3 |
|
|
 |
960e8a6 |
# Rename desktop file to UUID for compatibility
|
|
 |
9c83bb4 |
mv %{buildroot}%{_datadir}/applications/%{appname}.desktop \
|
|
 |
9c83bb4 |
%{buildroot}%{_datadir}/applications/%{uuid}.desktop
|
|
 |
50099c1 |
|
|
 |
50099c1 |
%if %{with freeworld}
|
|
 |
960e8a6 |
# Rename binary, desktop file, appdata manifest, manpage and config file
|
|
 |
9c83bb4 |
mv %{buildroot}%{_bindir}/%{appname} \
|
|
 |
9c83bb4 |
%{buildroot}%{_bindir}/%{appname}-freeworld
|
|
 |
960e8a6 |
mv %{buildroot}%{_bindir}/%{appname}-cg2glsl \
|
|
 |
960e8a6 |
%{buildroot}%{_bindir}/%{appname}-cg2glsl-freeworld
|
|
 |
9c83bb4 |
mv %{buildroot}%{_datadir}/applications/%{uuid}.desktop \
|
|
 |
9c83bb4 |
%{buildroot}%{_datadir}/applications/%{uuid}-freeworld.desktop
|
|
 |
9c83bb4 |
mv %{buildroot}%{_metainfodir}/%{uuid}.appdata.xml \
|
|
 |
9c83bb4 |
%{buildroot}%{_metainfodir}/%{uuid}-freeworld.appdata.xml
|
|
 |
960e8a6 |
mv %{buildroot}%{_sysconfdir}/%{appname}.cfg \
|
|
 |
960e8a6 |
%{buildroot}%{_sysconfdir}/%{name}.cfg
|
|
 |
960e8a6 |
mv %{buildroot}%{_mandir}/man6/%{appname}.6 \
|
|
 |
960e8a6 |
%{buildroot}%{_mandir}/man6/%{appname}-freeworld.6
|
|
 |
960e8a6 |
mv %{buildroot}%{_mandir}/man6/%{appname}-cg2glsl.6 \
|
|
 |
960e8a6 |
%{buildroot}%{_mandir}/man6/%{appname}-cg2glsl-freeworld.6
|
|
 |
960e8a6 |
sed -i 's|Exec=retroarch|Exec=retroarch-freeworld|' \
|
|
 |
9c83bb4 |
%{buildroot}%{_datadir}/applications/%{uuid}-freeworld.desktop
|
|
 |
960e8a6 |
sed -i 's|org.libretro.RetroArch.desktop|org.libretro.RetroArch-freeworld.desktop|' \
|
|
 |
9c83bb4 |
%{buildroot}%{_metainfodir}/%{uuid}-freeworld.appdata.xml
|
|
 |
50099c1 |
%endif
|
|
 |
50099c1 |
|
|
 |
2ed0cbb |
install -Dpm0755 %{SOURCE10} -t %{buildroot}%{_bindir}
|
|
 |
2ed0cbb |
install -Dpm0644 %{SOURCE11} -t %{buildroot}%{_docdir}/%{name}
|
|
 |
50099c1 |
|
|
 |
50099c1 |
%check
|
|
 |
50099c1 |
desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
|
|
 |
50099c1 |
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.xml
|
|
 |
50099c1 |
|
|
 |
50099c1 |
|
|
 |
50099c1 |
%files
|
|
 |
50099c1 |
%license COPYING
|
|
 |
2ed0cbb |
%doc README.md README.fedora.md README-exynos.md README-OMAP.md README-mali_fbdev_r4p0.md CHANGES.md CONTRIBUTING.md
|
|
 |
960e8a6 |
%{_bindir}/%{appname}*
|
|
 |
50099c1 |
%{_datadir}/applications/*.desktop
|
|
 |
93f4c22 |
%{_datadir}/libretro/autoconfig%{?p_suffix}/
|
|
 |
ea9c960 |
%{_datadir}/libretro/info%{?p_suffix}/
|
|
 |
50099c1 |
%{_datadir}/pixmaps/*.svg
|
|
 |
c8413d0 |
%{_mandir}/man6/*.6*
|
|
 |
960e8a6 |
%{_metainfodir}/*.xml
|
|
 |
17ba0fc |
%dir %{_datadir}/libretro/
|
|
 |
960e8a6 |
|
|
 |
960e8a6 |
# Things may changed in future and it's safe to replace system config since old
|
|
 |
960e8a6 |
# one will be saved in home dir
|
|
 |
960e8a6 |
%config %{_sysconfdir}/%{name}.cfg
|
|
 |
50099c1 |
|
|
 |
93f4c22 |
|
|
 |
50099c1 |
%files assets
|
|
 |
960e8a6 |
# Incorrect-fsf-address
|
|
 |
960e8a6 |
# * https://github.com/libretro/retroarch-assets/issues/335
|
|
 |
960e8a6 |
%{_licensedir}/%{name}-assets/
|
|
 |
960e8a6 |
|
|
 |
ea9c960 |
%{_datadir}/libretro/assets%{?p_suffix}/
|
|
 |
50099c1 |
%dir %{_datadir}/libretro/
|
|
 |
50099c1 |
|
|
 |
93f4c22 |
|
|
 |
50099c1 |
%files filters
|
|
 |
ea9c960 |
%{_libdir}/%{appname}/filters%{?p_suffix}/
|
|
 |
960e8a6 |
%dir %{_libdir}/%{appname}/
|
|
 |
50099c1 |
|
|
 |
50099c1 |
|
|
 |
b52dce3 |
%files database
|
|
 |
07fc2e5 |
%{_datadir}/libretro/database%{?p_suffix}/cht/
|
|
 |
07fc2e5 |
%{_datadir}/libretro/database%{?p_suffix}/cursors/
|
|
 |
07fc2e5 |
%{_datadir}/libretro/database%{?p_suffix}/rdb/
|
|
 |
b52dce3 |
|
|
 |
b52dce3 |
|
|
 |
50099c1 |
%changelog
|
|
 |
9fd008b |
%autochangelog
|