diff --git a/.gitignore b/.gitignore
index 27118b6..268bc9f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,26 @@
/endless-sky-0.9.8.tar.gz
+/endless-sky-0.9.10.tar.gz
+/endless-sky-0.9.11.tar.gz
+/endless-sky-0.9.12.tar.gz
+/endless-sky-0.9.13.tar.gz
+/endless-sky-0.9.14.tar.gz
+/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.8.10-remove-games-path.patch b/endless-sky-0.8.10-remove-games-path.patch
deleted file mode 100644
index ea5bc58..0000000
--- a/endless-sky-0.8.10-remove-games-path.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff -up ./SConstruct.orig ./SConstruct
---- ./SConstruct.orig 2016-01-11 20:28:45.250276511 -0800
-+++ ./SConstruct 2016-01-11 20:29:13.778912624 -0800
-@@ -43,7 +43,7 @@ sky = env.Program("endless-sky", Glob("b
-
-
- # 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")
-@@ -81,11 +81,11 @@ def RecursiveInstall(env, target, source
- RecursiveInstall(env, os.path.join(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")
-diff -up ./source/Files.cpp.orig ./source/Files.cpp
---- ./source/Files.cpp.orig 2016-01-11 20:29:22.100806482 -0800
-+++ ./source/Files.cpp 2016-01-11 20:29:35.419636593 -0800
-@@ -115,7 +115,7 @@ void Files::Init(const char * const *arg
- // 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.4-remove-additional-ccflags.patch b/endless-sky-0.9.4-remove-additional-ccflags.patch
deleted file mode 100644
index 7620701..0000000
--- a/endless-sky-0.9.4-remove-additional-ccflags.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- SConstruct.orig 2017-09-13 20:00:51.154361127 -0700
-+++ SConstruct 2017-09-13 20:24:45.396884800 -0700
-@@ -25,14 +25,7 @@
-
- Help(opts.GenerateHelpText(env))
-
--flags = ["-std=c++11", "-Wall"]
--if env["mode"] != "debug":
-- flags += ["-O3"]
--if env["mode"] == "debug":
-- flags += ["-g"]
--if env["mode"] == "profile":
-- flags += ["-pg"]
-- env.Append(LINKFLAGS = ["-pg"])
-+flags = ["-std=c++11"]
-
- # Required build flags. If you want to use SSE optimization, you can turn on
- # -msse3 or (if just building for your own computer) -march=native.
diff --git a/endless-sky-wrapper b/endless-sky-wrapper
new file mode 100644
index 0000000..5d99dcd
--- /dev/null
+++ b/endless-sky-wrapper
@@ -0,0 +1,2 @@
+#!/bin/bash
+endless-sky.bin -r /app/share/endless-sky
diff --git a/endless-sky.spec b/endless-sky.spec
index 9185a68..0653c5b 100644
--- a/endless-sky.spec
+++ b/endless-sky.spec
@@ -1,23 +1,22 @@
-%define gittag0 v0.9.8
-
Name: endless-sky
-Version: 0.9.8
-Release: 5%{?dist}
+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/%{gittag0}.tar.gz#/%{name}-%{version}.tar.gz
+Source0: https://github.com/%{name}/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz
+Source1: endless-sky-wrapper
# Replace /usr/games with /usr/bin and /usr/share/games with /usr/share per
# 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.8.10-remove-games-path.patch
-# Unset CCFLAGS override inside SConstruct.
-Patch1: endless-sky-0.9.4-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 +26,16 @@ BuildRequires: libjpeg-turbo-devel
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,48 +58,40 @@ 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
-CCFLAGS="%{optflags}" \
-LDFLAGS="%{?__global_ldflags}" \
-%{_bindir}/scons \
- %{?_smp_mflags} \
- PREFIX=%{_prefix}
+%cmake -DES_USE_VCPKG=OFF
+%cmake_build
%check
-appstream-util validate-relax --nonet %{name}.appdata.xml
-desktop-file-validate %{name}.desktop
+appstream-util validate-relax --nonet io.github.endless_sky.endless_sky.appdata.xml
+desktop-file-validate io.github.endless_sky.endless_sky.desktop
%install
-CCFLAGS="%{optflags}" \
-LDFLAGS="%{?__global_ldflags}" \
-%{_bindir}/scons \
- %{?_smp_mflags} \
- PREFIX=%{_prefix} \
- DESTDIR=%{buildroot} \
- install
-install -m644 -D endless-sky.appdata.xml %{buildroot}%{_datadir}/appdata/%{name}.appdata.xml
-
-
+%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}
+%{_bindir}/%{name}*
%{_datadir}/icons/hicolor/16x16/apps/%{name}.png
%{_datadir}/icons/hicolor/22x22/apps/%{name}.png
%{_datadir}/icons/hicolor/24x24/apps/%{name}.png
%{_datadir}/icons/hicolor/32x32/apps/%{name}.png
%{_datadir}/icons/hicolor/48x48/apps/%{name}.png
%{_datadir}/icons/hicolor/256x256/apps/%{name}.png
-%{_datadir}/applications/%{name}.desktop
-%{_datadir}/appdata/%{name}.appdata.xml
+%{_datadir}/icons/hicolor/128x128/apps/%{name}.png
+%{_datadir}/icons/hicolor/512x512/apps/%{name}.png
+%{_datadir}/applications/io.github.endless_sky.endless_sky.desktop
+%{_datadir}/metainfo/io.github.endless_sky.endless_sky.appdata.xml
%{_mandir}/man6/%{name}.6.gz
@@ -100,6 +101,158 @@ install -m644 -D endless-sky.appdata.xml %{buildroot}%{_datadir}/appdata/%{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
+
+* Mon Oct 17 2022 Gwyn Ciesla - 0.9.16-1
+- 0.9.16
+
+* Tue Oct 04 2022 Link Dupont - 0.9.15-1
+- 0.9.15
+
+* Thu Jul 21 2022 Fedora Release Engineering - 0.9.14-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+
+* Thu Feb 10 2022 Orion Poplawski - 0.9.14-4
+- Rebuild for glew 2.2
+
+* Thu Jan 20 2022 Fedora Release Engineering - 0.9.14-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
+
+* Wed Jul 21 2021 Fedora Release Engineering - 0.9.14-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+
+* Mon Jul 12 2021 Gwyn Ciesla - 0.9.14-1
+- 0.9.14
+
+* Mon Apr 19 2021 Gwyn Ciesla - 0.9.13-1
+- 0.9.13
+
+* Tue Jan 26 2021 Fedora Release Engineering - 0.9.12-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Wed Oct 14 2020 Jeff Law - 0.9.12-3
+- Add missing #includes for gcc-11
+
+* Mon Jul 27 2020 Fedora Release Engineering - 0.9.12-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Sat May 02 2020 Gwyn Ciesla - 0.9.12-1
+- 0.9.12
+
+* Tue Feb 25 2020 Gwyn Ciesla - 0.9.11-1
+- 0.9.11
+
+* Tue Jan 28 2020 Fedora Release Engineering - 0.9.10-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
+* Sat Dec 14 2019 Jeff Law - 0.9.10-2
+- Fix missing #include for gcc-10
+
+* Mon Sep 30 2019 Gwyn Ciesla - 0.9.10-1
+- 0.9.10
+- Environment patch upstreamed.
+
+* Wed Aug 21 2019 Gwyn Ciesla - 0.9.8-12
+- Add flatpak wrapper.
+
+* Wed Jul 24 2019 Fedora Release Engineering - 0.9.8-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Thu Jan 31 2019 Fedora Release Engineering - 0.9.8-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Tue Jan 15 2019 fedora-toolbox - 0.9.8-9
+- Pass the entire environment to build commands; fixes CPLUS_INCLUDE_PATH for
+ flatpaks.
+
+* Fri Sep 7 2018 Owen Taylor - 0.9.8-8
+- scons is in /usr/bin, even if we're compiling with a different %%{_prefix}
+
+* Thu Aug 23 2018 Nicolas Chauvet - 0.9.8-7
+- Rebuilt for glew 2.1.0
+
+* Thu Jul 12 2018 Fedora Release Engineering - 0.9.8-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
* Wed Mar 07 2018 Adam Williamson - 0.9.8-5
- Rebuild to fix GCC 8 mis-compilation
See https://da.gd/YJVwk ("GCC 8 ABI change on x86_64")
diff --git a/sources b/sources
index 27dca6d..b186ba4 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (endless-sky-0.9.8.tar.gz) = 521026cb70372fd380b14a1a1d296f86015e5999dc233f4d9c05d958092e1f3982d2f12e913a435d5827fb45945bd4b60bbae293c2c90685024cdae96e352078
+SHA512 (endless-sky-0.10.16.tar.gz) = 8dd8ee8bdb71ceda23024ac07502adab4f246ed3723fdc49d152de1796ba799c8584d31892f357034fa9c7d93c2880278f05cde9c0bd7e7e789eabb0513ba4ca