diff --git a/.gitignore b/.gitignore
index 60468a9..268bc9f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,20 @@
/endless-sky-0.9.15.tar.gz
/endless-sky-0.9.16.tar.gz
/endless-sky-0.9.16.1.tar.gz
+/endless-sky-0.10.0.tar.gz
+/endless-sky-0.10.2.tar.gz
+/endless-sky-0.10.3.tar.gz
+/endless-sky-0.10.4.tar.gz
+/endless-sky-0.10.5.tar.gz
+/endless-sky-0.10.6.tar.gz
+/endless-sky-0.10.7.tar.gz
+/endless-sky-0.10.8.tar.gz
+/endless-sky-0.10.9.tar.gz
+/endless-sky-0.10.10.tar.gz
+/endless-sky-0.10.11.tar.gz
+/endless-sky-0.10.12.tar.gz
+/endless-sky-0.10.13.tar.gz
+/endless-sky-0.10.13.1.tar.gz
+/endless-sky-0.10.14.tar.gz
+/endless-sky-0.10.15.tar.gz
+/endless-sky-0.10.16.tar.gz
diff --git a/10952.patch b/10952.patch
new file mode 100644
index 0000000..1b2c318
--- /dev/null
+++ b/10952.patch
@@ -0,0 +1,61 @@
+From 4b0aa4e3e79476361dc8bb58365b90af2b9d1523 Mon Sep 17 00:00:00 2001
+From: Daniel <101683475+Koranir@users.noreply.github.com>
+Date: Mon, 27 Jan 2025 14:07:30 +1100
+Subject: [PATCH] add missing imports
+
+---
+ source/BoardingPanel.cpp | 1 +
+ source/PlayerInfo.cpp | 1 +
+ source/ShipInfoPanel.cpp | 1 +
+ source/ShipNameDialog.cpp | 2 ++
+ 4 files changed, 5 insertions(+)
+
+diff --git a/source/BoardingPanel.cpp b/source/BoardingPanel.cpp
+index 79448fb81a7c..460e70eea501 100644
+--- a/source/BoardingPanel.cpp
++++ b/source/BoardingPanel.cpp
+@@ -39,6 +39,7 @@ this program. If not, see .
+ #include "UI.h"
+
+ #include
++#include
+ #include
+
+ using namespace std;
+diff --git a/source/PlayerInfo.cpp b/source/PlayerInfo.cpp
+index a3ecbf201d3a..9dc6c602fa58 100644
+--- a/source/PlayerInfo.cpp
++++ b/source/PlayerInfo.cpp
+@@ -49,6 +49,7 @@ this program. If not, see .
+ #include
+ #include
+ #include
++#include
+ #include
+ #include
+ #include
+diff --git a/source/ShipInfoPanel.cpp b/source/ShipInfoPanel.cpp
+index 224e0bcf948f..b0e435a43ae9 100644
+--- a/source/ShipInfoPanel.cpp
++++ b/source/ShipInfoPanel.cpp
+@@ -44,6 +44,7 @@ this program. If not, see .
+ #include "UI.h"
+
+ #include
++#include
+ #include
+
+ using namespace std;
+diff --git a/source/ShipNameDialog.cpp b/source/ShipNameDialog.cpp
+index 629e68012190..67cbb07e9b43 100644
+--- a/source/ShipNameDialog.cpp
++++ b/source/ShipNameDialog.cpp
+@@ -23,6 +23,8 @@ this program. If not, see .
+ #include "image/SpriteSet.h"
+ #include "shader/SpriteShader.h"
+
++#include
++
+ using namespace std;
+
+
diff --git a/endless-sky-0.10.0-remove-games-path.patch b/endless-sky-0.10.0-remove-games-path.patch
new file mode 100644
index 0000000..56fed28
--- /dev/null
+++ b/endless-sky-0.10.0-remove-games-path.patch
@@ -0,0 +1,32 @@
+--- a/CMakeLists.txt~ 2025-05-31 14:24:07.000000000 -0500
++++ b/CMakeLists.txt 2025-06-02 13:43:10.496539999 -0500
+@@ -318,12 +318,12 @@
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/endless-sky.6.gz DESTINATION share/man/man6)
+
+ # Install the resource files.
+- install(DIRECTORY data DESTINATION share/games/endless-sky)
+- install(DIRECTORY images DESTINATION share/games/endless-sky)
+- install(DIRECTORY shaders DESTINATION share/games/endless-sky)
+- install(DIRECTORY sounds DESTINATION share/games/endless-sky)
+- install(FILES credits.txt DESTINATION share/games/endless-sky)
+- install(FILES keys.txt DESTINATION share/games/endless-sky)
++ install(DIRECTORY data DESTINATION share/endless-sky)
++ install(DIRECTORY images DESTINATION share/endless-sky)
++ install(DIRECTORY shaders DESTINATION share/endless-sky)
++ install(DIRECTORY sounds DESTINATION share/endless-sky)
++ install(FILES credits.txt DESTINATION share/endless-sky)
++ install(FILES keys.txt DESTINATION share/endless-sky)
+ install(FILES copyright DESTINATION share/doc/endless-sky)
+ install(FILES changelog DESTINATION share/doc/endless-sky)
+ install(FILES license.txt DESTINATION share/doc/endless-sky)
+--- a/source/Files.cpp~ 2025-05-31 14:24:07.000000000 -0500
++++ b/source/Files.cpp 2025-06-02 14:50:55.468669156 -0500
+@@ -128,7 +128,7 @@
+ // the end, so parent paths do not include it.
+ static const filesystem::path LOCAL_PATH = "/usr/local";
+ static const filesystem::path STANDARD_PATH = "/usr";
+- static const filesystem::path RESOURCE_PATH = "share/games/endless-sky/";
++ static const filesystem::path RESOURCE_PATH = "share/endless-sky/";
+
+ if(IsParent(LOCAL_PATH, resources))
+ resources = LOCAL_PATH / RESOURCE_PATH;
diff --git a/endless-sky-0.9.13-remove-games-path.patch b/endless-sky-0.9.13-remove-games-path.patch
deleted file mode 100644
index 32a3e24..0000000
--- a/endless-sky-0.9.13-remove-games-path.patch
+++ /dev/null
@@ -1,41 +0,0 @@
---- SConstruct~ 2021-04-19 08:27:12.592216308 -0500
-+++ SConstruct 2021-04-19 08:29:26.504082300 -0500
-@@ -191,11 +191,11 @@
- RecursiveInstall(env, pathjoin(target, name), node.abspath)
- else:
- env.Install(target, node)
--RecursiveInstall(env, "$DESTDIR$PREFIX/share/games/endless-sky/data", "data")
--RecursiveInstall(env, "$DESTDIR$PREFIX/share/games/endless-sky/images", "images")
--RecursiveInstall(env, "$DESTDIR$PREFIX/share/games/endless-sky/sounds", "sounds")
--env.Install("$DESTDIR$PREFIX/share/games/endless-sky", "credits.txt")
--env.Install("$DESTDIR$PREFIX/share/games/endless-sky", "keys.txt")
-+RecursiveInstall(env, "$DESTDIR$PREFIX/share/endless-sky/data", "data")
-+RecursiveInstall(env, "$DESTDIR$PREFIX/share/endless-sky/images", "images")
-+RecursiveInstall(env, "$DESTDIR$PREFIX/share/endless-sky/sounds", "sounds")
-+env.Install("$DESTDIR$PREFIX/share/endless-sky", "credits.txt")
-+env.Install("$DESTDIR$PREFIX/share/endless-sky", "keys.txt")
-
- # Make the word "install" in the command line do an installation.
- env.Alias("install", "$DESTDIR$PREFIX")
---- SConstruct~ 2021-04-19 08:35:52.599227069 -0500
-+++ SConstruct 2021-04-19 08:49:58.917530861 -0500
-@@ -142,7 +142,7 @@
-
-
- # Install the binary:
--env.Install("$DESTDIR$PREFIX/games", sky)
-+env.Install("$DESTDIR$PREFIX/bin", sky)
-
- # Install the desktop file:
- env.Install("$DESTDIR$PREFIX/share/applications", "endless-sky.desktop")
---- source/Files.cpp~ 2021-04-17 09:40:38.000000000 -0500
-+++ source/Files.cpp 2021-04-19 09:05:31.921109831 -0500
-@@ -119,7 +119,7 @@
- // the executable, but are under the same prefix (/usr or /usr/local).
- static const string LOCAL_PATH = "/usr/local/";
- static const string STANDARD_PATH = "/usr/";
-- static const string RESOURCE_PATH = "share/games/endless-sky/";
-+ static const string RESOURCE_PATH = "share/endless-sky/";
- if(!resources.compare(0, LOCAL_PATH.length(), LOCAL_PATH))
- resources = LOCAL_PATH + RESOURCE_PATH;
- else if(!resources.compare(0, STANDARD_PATH.length(), STANDARD_PATH))
diff --git a/endless-sky-0.9.14-remove-additional-ccflags.patch b/endless-sky-0.9.14-remove-additional-ccflags.patch
deleted file mode 100644
index 3dbb606..0000000
--- a/endless-sky-0.9.14-remove-additional-ccflags.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- SConstruct~ 2021-07-12 11:55:10.366672469 -0500
-+++ SConstruct 2021-07-12 11:57:10.358812423 -0500
-@@ -46,15 +46,7 @@
- # $ CXXFLAGS=-msse3 scons
- # $ CXXFLAGS=-march=native scons
- # or modify the `flags` variable:
--flags = ["-std=c++11", "-Wall", "-Wold-style-cast", "-fno-rtti"]
--if env["mode"] != "debug":
-- flags += ["-Werror", "-O3", "-flto"]
-- env.Append(LINKFLAGS = ["-O3", "-flto"])
--if env["mode"] == "debug":
-- flags += ["-g"]
--elif env["mode"] == "profile":
-- flags += ["-pg"]
-- env.Append(LINKFLAGS = ["-pg"])
-+flags = ["-std=c++11"]
- env.Append(CCFLAGS = flags)
-
- # Always use `ar` to create the symbol table, and don't use ranlib at all, since it fails to preserve
diff --git a/endless-sky.spec b/endless-sky.spec
index 7ecf870..0653c5b 100644
--- a/endless-sky.spec
+++ b/endless-sky.spec
@@ -1,9 +1,10 @@
Name: endless-sky
-Version: 0.9.16.1
+Version: 0.10.16
Release: 1%{?dist}
Summary: Space exploration, trading, and combat game
-License: GPLv3
+# Automatically converted from old format: GPLv3 - review is highly recommended.
+License: GPL-3.0-only
URL: https://%{name}.github.io
Source0: https://github.com/%{name}/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz
Source1: endless-sky-wrapper
@@ -11,12 +12,11 @@ Source1: endless-sky-wrapper
# https://fedoraproject.org/wiki/SIGs/Games/Packaging.
# Patch not submitted upstream. Upstream conforms to Debian packaging
# standards where the use of /usr/games is acceptable.
-Patch0: endless-sky-0.9.13-remove-games-path.patch
-# Unset CCFLAGS override inside SConstruct.
-Patch1: endless-sky-0.9.14-remove-additional-ccflags.patch
+Patch0: endless-sky-0.10.0-remove-games-path.patch
Requires: %{name}-data = %{version}-%{release}
-BuildRequires: scons
+BuildRequires: cmake
+BuildRequires: ninja-build
BuildRequires: gcc-c++
BuildRequires: SDL2-devel
BuildRequires: openal-soft-devel
@@ -27,6 +27,15 @@ BuildRequires: libappstream-glib
BuildRequires: desktop-file-utils
BuildRequires: libmad-devel
BuildRequires: libuuid-devel
+BuildRequires: mesa-libGL-devel
+BuildRequires: catch-devel
+BuildRequires: libasan
+BuildRequires: libubsan
+BuildRequires: minizip-ng-compat-devel
+BuildRequires: cmake(flac)
+BuildRequires: flac
+BuildRequires: libavif-devel
+BuildRequires: cmake(ogg)
%description
Explore other star systems. Earn money by trading, carrying passengers, or
@@ -49,39 +58,28 @@ Images, sound, and game data for %{name}.
%prep
-%autosetup -p0
+%autosetup -p1
%build
-%ifarch ppc64le
-sed -i 's/std=c++11/std=gnu++11/' SConstruct
-%endif
-CXXFLAGS="%{optflags}" \
-LDFLAGS="%{?__global_ldflags}" \
-/usr/bin/scons \
- %{?_smp_mflags} \
- PREFIX=%{_prefix}
+%cmake -DES_USE_VCPKG=OFF
+%cmake_build
%check
appstream-util validate-relax --nonet io.github.endless_sky.endless_sky.appdata.xml
-desktop-file-validate %{name}.desktop
+desktop-file-validate io.github.endless_sky.endless_sky.desktop
%install
-CXXFLAGS="%{optflags}" \
-LDFLAGS="%{?__global_ldflags}" \
-/usr/bin/scons \
- %{?_smp_mflags} \
- PREFIX=%{_prefix} \
- DESTDIR=%{buildroot} \
- install
-install -m644 -D io.github.endless_sky.endless_sky.appdata.xml %{buildroot}%{_datadir}/appdata/io.github.endless_sky.endless_sky.appdata.xml
-mv %{buildroot}%{_bindir}/%{name} %{buildroot}%{_bindir}/%{name}.bin
+%cmake_install
+mkdir -p %{buildroot}%{_bindir}
+install redhat-linux-build/%{name} %{buildroot}%{_bindir}/%{name}.bin
install -m755 %{SOURCE1} %{buildroot}%{_bindir}/%{name}
sed -i 's|/app|%{_prefix}|g' %{buildroot}%{_bindir}/%{name}
+rm -f %{buildroot}%{_datadir}/doc/endless-sky/license.txt
%files
-%doc README.md
+%doc README.md changelog copyright
%license license.txt
%{_bindir}/%{name}*
%{_datadir}/icons/hicolor/16x16/apps/%{name}.png
@@ -92,8 +90,7 @@ sed -i 's|/app|%{_prefix}|g' %{buildroot}%{_bindir}/%{name}
%{_datadir}/icons/hicolor/256x256/apps/%{name}.png
%{_datadir}/icons/hicolor/128x128/apps/%{name}.png
%{_datadir}/icons/hicolor/512x512/apps/%{name}.png
-%{_datadir}/applications/%{name}.desktop
-%{_datadir}/appdata/io.github.endless_sky.endless_sky.appdata.xml
+%{_datadir}/applications/io.github.endless_sky.endless_sky.desktop
%{_datadir}/metainfo/io.github.endless_sky.endless_sky.appdata.xml
%{_mandir}/man6/%{name}.6.gz
@@ -104,6 +101,84 @@ sed -i 's|/app|%{_prefix}|g' %{buildroot}%{_bindir}/%{name}
%changelog
+* Mon Oct 27 2025 Gwyn Ciesla - 0.10.16-1
+- 0.10.16
+
+* Mon Sep 29 2025 Gwyn Ciesla - 0.10.15-1
+- 0.10.15
+
+* Wed Jul 23 2025 Fedora Release Engineering - 0.10.14-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
+
+* Thu Jul 03 2025 Gwyn Ciesla - 0.10.14-1
+- 0.10.14
+
+* Thu Jun 05 2025 Gwyn Ciesla - 0.10.13.1-1
+- 0.10.13.1
+
+* Mon Jun 02 2025 Gwyn Ciesla - 0.10.13-1
+- 0.10.13
+
+* Sun Feb 23 2025 Gwyn Ciesla - 0.10.12-1
+- 0.10.12
+
+* Mon Jan 27 2025 Gwyn Ciesla - 0.10.11-1
+- 0.10.11
+
+* Thu Jan 16 2025 Fedora Release Engineering - 0.10.10-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
+
+* Mon Oct 28 2024 Gwyn Ciesla - 0.10.10-1
+- 0.10.10
+
+* Mon Sep 30 2024 Gwyn Ciesla - 0.10.9-1
+- 0.10.9
+
+* Mon Jul 29 2024 Miroslav Suchý - 0.10.8-3
+- convert license to SPDX
+
+* Wed Jul 17 2024 Fedora Release Engineering - 0.10.8-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
+
+* Mon Jun 24 2024 Gwyn Ciesla - 0.10.8-1
+- 0.10.8
+
+* Tue May 28 2024 Gwyn Ciesla - 0.10.7-1
+- 0.10.7
+
+* Mon Feb 19 2024 Gwyn Ciesla - 0.10.6-1
+- 0.10.6
+
+* Mon Jan 29 2024 Gwyn Ciesla - 0.10.5-1
+- 0.10.5
+
+* Wed Jan 24 2024 Fedora Release Engineering - 0.10.4-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Fri Jan 19 2024 Fedora Release Engineering - 0.10.4-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Mon Oct 23 2023 Gwyn Ciesla - 0.10.4-1
+- 0.10.4
+
+* Mon Oct 02 2023 Gwyn Ciesla - 0.10.3-1
+- 0.10.3
+
+* Wed Jul 19 2023 Fedora Release Engineering - 0.10.2-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
+
+* Tue Jun 20 2023 Kalev Lember - 0.10.2-2
+- Don't install duplicate appdata file
+
+* Tue Jun 20 2023 Gwyn Ciesla - 0.10.2-1
+- 0.10.2
+
+* Tue Feb 21 2023 Gwyn Ciesla - 0.10.0-1
+- 0.10.0
+
+* Thu Jan 19 2023 Fedora Release Engineering - 0.9.16.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+
* Wed Oct 19 2022 Gwyn Ciesla - 0.9.16.1-1
- 0.9.16.1
diff --git a/sources b/sources
index a1f3cb6..b186ba4 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (endless-sky-0.9.16.1.tar.gz) = 83e0a47160506b1e3608f67534e2dbcf51515d809016efc379448d14331229ffe26360f82cc60c565c84b10c605aec846efc19bcd4af10ee116e5ef8fc804d56
+SHA512 (endless-sky-0.10.16.tar.gz) = 8dd8ee8bdb71ceda23024ac07502adab4f246ed3723fdc49d152de1796ba799c8584d31892f357034fa9c7d93c2880278f05cde9c0bd7e7e789eabb0513ba4ca