$ git diff --patch-with-stat --summary b4d883352e2f21a1c813ac15bfbe488bd918f180..ed3b9f42532675f4e51eb21daccbbaf675dbc5bf
.abf.yml | 3 +-
openmsx.spec | 158 ++++++++++++++++++++++++++++++++++++++++++++++++++---------
2 files changed, 137 insertions(+), 24 deletions(-)
diff --git a/.abf.yml b/.abf.yml
index 999d095..7dc1af2 100644
--- a/.abf.yml
+++ b/.abf.yml
@@ -1,2 +1,3 @@
sources:
- openmsx-17.0.tar.gz: e8d800147788f80309e87799730b89a3e010482f
+ openmsx-18.0.tar.gz: f9b2f339f02dea7a440d01795103d5ff09edc80c
+ openmsx-catapult-18.0.tar.gz: f608efcf7359f3cb9cd54ceb0c5f2d2877c42542
diff --git a/openmsx.spec b/openmsx.spec
index f4c8bdd..a49aefe 100644
--- a/openmsx.spec
+++ b/openmsx.spec
@@ -1,32 +1,40 @@
%define _empty_manifest_terminate_build 0
+%define url_ver %(echo %{version} | tr '.' '_')
Summary: Open source MSX emulator
Name: openmsx
-Version: 17.0
+Version: 18.0
Release: 1
-Source0: https://github.com/openMSX/openMSX/releases/download/RELEASE_17_0/%{name}-%{version}.tar.gz
-Patch0: openmsx-fix-config.patch
+Source0: https://github.com/openMSX/openMSX/releases/download/RELEASE_%{url_ver}/%{name}-%{version}.tar.gz
+Source1: https://github.com/openMSX/openMSX/releases/download/RELEASE_%{url_ver}/openmsx-catapult-%{version}.tar.gz
+Patch0: openmsx-fix-config.patch
License: GPL+
Group: Emulators
URL: https://openmsx.org/
-BuildRequires: python
-BuildRequires: pkgconfig(sdl2)
-BuildRequires: pkgconfig(SDL2_image)
-BuildRequires: pkgconfig(SDL2_ttf)
-BuildRequires: pkgconfig(alsa)
-BuildRequires: pkgconfig(dri)
-BuildRequires: pkgconfig(gl)
-BuildRequires: pkgconfig(glew)
-BuildRequires: pkgconfig(glut)
-BuildRequires: pkgconfig(libpng)
+BuildRequires: python
+BuildRequires: pkgconfig(sdl2)
+BuildRequires: pkgconfig(SDL2_image)
+BuildRequires: pkgconfig(SDL2_ttf)
+BuildRequires: pkgconfig(alsa)
+BuildRequires: pkgconfig(dri)
+BuildRequires: pkgconfig(gl)
+BuildRequires: pkgconfig(glew)
+BuildRequires: pkgconfig(glut)
+BuildRequires: pkgconfig(libpng)
+BuildRequires: pkgconfig(libxml-2.0)
+BuildRequires: pkgconfig(tcl)
+BuildRequires: pkgconfig(jack)
+BuildRequires: pkgconfig(freetype2)
+BuildRequires: pkgconfig(theora)
+BuildRequires: pkgconfig(ogg)
+BuildRequires: pkgconfig(vorbis)
+BuildRequires: glibc-static-devel
+
+# GUI Catapult
BuildRequires: pkgconfig(libxml-2.0)
-BuildRequires: pkgconfig(tcl)
-BuildRequires: pkgconfig(jack)
-BuildRequires: pkgconfig(freetype2)
-BuildRequires: pkgconfig(theora)
-BuildRequires: pkgconfig(ogg)
-BuildRequires: pkgconfig(vorbis)
+BuildRequires: wxgtku3.0-devel
+Recommends: cbios-openmsx
%description
The open source MSX emulator that tries to achieve
@@ -35,19 +43,123 @@ Comes with the open-source C-BIOS ROM image. ROMs from real machines can be down
http://www.msxarchive.nl/pub/msx/emulator/system_roms/openMSX/
+%package catapult
+Summary: Graphical front-end for openMSX
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description catapult
+openMSX Catapult is a graphical user interface for openMSX.
+Although the program should be self explanatory, we included a set of HTML
+manuals, that tell how to use Catapult with openMSX. To understand what all
+options mean and to get a better feeling of what openMSX is, we also recommend
+to read the documentation of openMSX.
+
%prep
-%autosetup -p1
+%setup -q -a1
+%autopatch -p1
+
%build
+export CC=gcc
+export CXX=g++
+# Make the custom flavour module, so we can use RPM OPT FLAGS here
+cat > build/flavour-rpm.mk << EOF
+# Opt flags.
+CXXFLAGS+=%{optflags} -DNDEBUG
+LINK_FLAGS+=%{__global_ldflags}
+
+# Dont strip exe, let rpm do it and save debug info
+OPENMSX_STRIP:=false
+CATAPULT_STRIP:=false
+EOF
+
+cp build/flavour-rpm.mk %{name}-catapult-%{version}/build
+
+cat > build/custom.mk << EOF
+PYTHON:=python3
+INSTALL_BASE:=%{_prefix}
+VERSION_EXEC:=false
+SYMLINK_FOR_BINARY:=false
+INSTALL_CONTRIB:=false
+INSTALL_SHARE_DIR=%{_datadir}/%{name}
+INSTALL_DOC_DIR=%{_docdir}/%{name}
+EOF
+
+cat > %{name}-catapult-%{version}/build/custom.mk << EOF
+PYTHON:=python3
+# If we set this to %%{_prefix} catapult cannot find its resources
+INSTALL_BASE:=%{_datadir}/%{name}-catapult
+SYMLINK_FOR_BINARY:=false
+INSTALL_BINARY_DIR=%{_bindir}
+INSTALL_SHARE_DIR=%{_datadir}/%{name}-catapult
+INSTALL_DOC_DIR=%{_docdir}/%{name}-catapult
+CATAPULT_OPENMSX_BINARY:=%{_bindir}/%{name}
+CATAPULT_OPENMSX_SHARE:=%{_datadir}/%{name}
+EOF
+
%configure
-
-%make_build
+make %{?_smp_mflags} OPENMSX_FLAVOUR=rpm V=1
+pushd %{name}-catapult-%{version}
+ make %{?_smp_mflags} CATAPULT_FLAVOUR=rpm V=1
+popd
+
+# Build desktop icon
+cat >%{name}.desktop <<EOF
+[Desktop Entry]
+Name=openMSX
+GenericName=MSX Emulator
+Comment=%{summary}
+Exec=%{name}-catapult
+Icon=%{name}
+Terminal=false
+Type=Application
+Categories=Game;Emulator;
+Keywords=emulator;msx;openmsx;
+EOF
%install
-%make_install
+%make_install OPENMSX_FLAVOUR=rpm V=1
+pushd %{name}-catapult-%{version}
+ %make_install CATAPULT_FLAVOUR=rpm V=1
+popd
+
+rm $RPM_BUILD_ROOT%{_docdir}/%{name}/GPL.txt
+rm $RPM_BUILD_ROOT%{_docdir}/%{name}-catapult/GPL.txt
+
+# Move some things around
+mv $RPM_BUILD_ROOT%{_bindir}/catapult $RPM_BUILD_ROOT%{_bindir}/%{name}-catapult
+
+mv $RPM_BUILD_ROOT%{_datadir}/%{name}/machines/*.txt \
+ $RPM_BUILD_ROOT%{_docdir}/%{name}
+
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
+mv $RPM_BUILD_ROOT%{_datadir}/%{name}/settings.xml \
+ $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
+ln -s --target-directory=$RPM_BUILD_ROOT%{_datadir}/%{name} \
+ ../../../etc/openmsx/settings.xml
+
+# Install icon set and desktop file
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/{16x16,32x32,48x48,64x64,128x128}/apps
+for i in 16 32 48 64 128; do
+install -pm 0644 share/icons/openMSX-logo-"$i".png \
+ $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/"$i"x"$i"/apps/%{name}.png
+done
+
+desktop-file-install --dir $RPM_BUILD_ROOT%{_datadir}/applications \
+ %{name}.desktop
%files
%defattr(-,root,root)
%doc %{_docdir}/%{name}/
+%{_sysconfdir}/%{name}/settings.xml
%{_bindir}/openmsx
%{_datadir}/%{name}
+
+%files catapult
+%doc %{_docdir}/%{name}-catapult
+%license doc/GPL.txt
+%{_bindir}/%{name}-catapult
+%{_datadir}/%{name}-catapult
+#{_datadir}/appdata/%{name}.appdata.xml
+%{_datadir}/applications/%{name}.desktop
+%{_datadir}/icons/hicolor/*/apps/%{name}.png