diff --git a/scorched3d-configure-c99.patch b/scorched3d-configure-c99.patch new file mode 100644 index 0000000..982074c --- /dev/null +++ b/scorched3d-configure-c99.patch @@ -0,0 +1,12 @@ +diff -ur scorched3d-44.orig/scorched/configure-al.m4 scorched3d-44/scorched/configure-al.m4 +--- scorched3d-44.orig/scorched/configure-al.m4 2014-08-01 18:47:31.000000000 +0200 ++++ scorched3d-44/scorched/configure-al.m4 2023-12-19 12:05:21.918456484 +0100 +@@ -91,7 +91,7 @@ + + int main(int argc, char *argv[]) + { +- alutInit(argc, argv); ++ alutInit(&argc, argv); + return 0; + } + #undef main diff --git a/scorched3d-fix-hang-on-fast-machines.patch b/scorched3d-fix-hang-on-fast-machines.patch new file mode 100644 index 0000000..4773081 --- /dev/null +++ b/scorched3d-fix-hang-on-fast-machines.patch @@ -0,0 +1,53 @@ +diff -up scorched/src/common/coms/ComsLoadLevelMessage.cpp~ scorched/src/common/coms/ComsLoadLevelMessage.cpp +--- scorched/src/common/coms/ComsLoadLevelMessage.cpp~ 2014-08-01 18:47:31.000000000 +0200 ++++ scorched/src/common/coms/ComsLoadLevelMessage.cpp 2020-08-13 21:33:59.895250469 +0200 +@@ -108,6 +108,49 @@ bool ComsLoadLevelMessage::loadState(Sco + + bool ComsLoadLevelMessage::loadTanks(ScorchedContext &context) + { ++ /* ++ * There is a timing bug which shows on really fast machines ++ * where the client starts talking to the server before the ++ * server initial setup is done. ++ * In sofar as I have managed to debug this, the following ++ * happens on slower machines, aka the GOOD case: ++ * ++ * Server TankAddSimAction::invokeAction() new Tank "(Bot) Fred" ++ * Server TankAddSimAction::invokeAction() new Tank "(Bot) Ted" ++ * Server TankAddSimAction::invokeAction() new Tank "Player 1" ++ * Server TankAddSimAction::invokeAction() new Tank "Spectator" ++ * Client TankAddSimAction::invokeAction() new Tank "(Bot) Fred" ++ * Client TankAddSimAction::invokeAction() new Tank "(Bot) Ted" ++ * Client TankAddSimAction::invokeAction() new Tank "Player 1" ++ * Client TankAddSimAction::invokeAction() new Tank "Spectator" ++ * ++ * Note the server internally creates all tanks before the ++ * client does and thus before the client starts sending ++ * messages related to these tanks to the server. ++ * ++ * On a fast enough system (i7-10610U) the following order ++ * has been observed instead: ++ * ++ * Server TankAddSimAction::invokeAction() new Tank "(Bot) Fred" ++ * Server TankAddSimAction::invokeAction() new Tank "(Bot) Ted" ++ * Client TankAddSimAction::invokeAction() new Tank "(Bot) Fred" ++ * Client TankAddSimAction::invokeAction() new Tank "(Bot) Ted" ++ * Client TankAddSimAction::invokeAction() new Tank "Player 1" ++ * Client TankAddSimAction::invokeAction() new Tank "Spectator" ++ * Server TankAddSimAction::invokeAction() new Tank "Player 1" ++ * Server TankAddSimAction::invokeAction() new Tank "Spectator" ++ * ++ * Note the server creates the "Player 1" and "Spectator" ++ * tanks after the client, this causes the server to ignore ++ * some initial messages from the client related to these ++ * tanks, after which things get stuck, breaking non-networked ++ * games on fast machines. ++ * ++ * The sleep below is an ugly but effective workaround for this ++ * issue. ++ */ ++ SDL_Delay(100); ++ + NetBufferReader reader(tanksBuffer_); + + // Add any new tanks diff --git a/scorched3d-lua54.patch b/scorched3d-lua54.patch new file mode 100644 index 0000000..28a4d56 --- /dev/null +++ b/scorched3d-lua54.patch @@ -0,0 +1,36 @@ +diff -up scorched3d-44/scorched/src/common/lua/LUAS3DLib.cpp~ scorched3d-44/scorched/src/common/lua/LUAS3DLib.cpp +--- a/src/common/lua/LUAS3DLib.cpp~ 2020-08-11 15:07:12.000000000 +0200 ++++ b/src/common/lua/LUAS3DLib.cpp 2020-08-11 15:22:07.159970299 +0200 +@@ -349,7 +349,14 @@ static const luaL_Reg s3dlib[] = { + }; + + LUALIB_API int luaopen_s3d (lua_State *L) { ++#if LUA_VERSION_NUM > 501 ++ lua_newtable(L); ++ luaL_setfuncs(L, s3dlib, 0); ++ lua_pushvalue(L, -1); ++ lua_setglobal(L, LUA_S3DLIBNAME); ++#else + luaL_register(L, LUA_S3DLIBNAME, s3dlib); ++#endif + return 1; + } + +diff -up scorched3d-44/scorched/src/common/lua/LUAS3DWeaponLib.cpp~ scorched3d-44/scorched/src/common/lua/LUAS3DWeaponLib.cpp +--- a/src/common/lua/LUAS3DWeaponLib.cpp~ 2020-08-11 15:32:25.000000000 +0200 ++++ b/src/common/lua/LUAS3DWeaponLib.cpp 2020-08-11 15:35:49.886946546 +0200 +@@ -156,7 +156,14 @@ static const luaL_Reg s3dweaponlib[] = { + }; + + LUALIB_API int luaopen_s3dweapon (lua_State *L) { ++#if LUA_VERSION_NUM > 501 ++ lua_newtable(L); ++ luaL_setfuncs(L, s3dweaponlib, 0); ++ lua_pushvalue(L, -1); ++ lua_setglobal(L, LUA_S3DWEAPONLIBNAME); ++#else + luaL_register(L, LUA_S3DWEAPONLIBNAME, s3dweaponlib); ++#endif + return 1; + } + diff --git a/scorched3d-wx3.0.patch b/scorched3d-wx3.0.patch new file mode 100644 index 0000000..7ba7a13 --- /dev/null +++ b/scorched3d-wx3.0.patch @@ -0,0 +1,170 @@ +From: Markus Koschany +Date: Fri, 15 Jul 2016 18:01:36 +0200 +Subject: wx3.0 compat + +Make Scorched3D compatible with wxWidgets 3.0 + +Thanks to Olly Betts for the patch. +--- + src/launcher/wxdialogs/Display.cpp | 10 +++++----- + src/launcher/wxdialogs/DisplayDialog.cpp | 10 +++++----- + src/launcher/wxdialogs/SettingsDialog.cpp | 14 +++++++------- + 3 files changed, 17 insertions(+), 17 deletions(-) + +diff --git a/src/launcher/wxdialogs/Display.cpp b/src/launcher/wxdialogs/Display.cpp +index e0a423a..22169e0 100644 +--- a/src/launcher/wxdialogs/Display.cpp ++++ b/src/launcher/wxdialogs/Display.cpp +@@ -26,7 +26,7 @@ static void createMainControls(wxWindow *parent, wxSizer *sizer) + // Display settings + wxStaticBox *displayBox = new wxStaticBox(parent, -1, wxT("&Display")); + wxStaticBoxSizer *displaySizer = new wxStaticBoxSizer(displayBox, wxVERTICAL); +- wxFlexGridSizer *displaySizer2 = new wxFlexGridSizer(2, 3, 5, 5); ++ wxFlexGridSizer *displaySizer2 = new wxFlexGridSizer(0, 3, 5, 5); + wxStaticText *resText = new wxStaticText(parent, -1, wxT("&Resolution :")); + IDC_DISPLAY_CTRL = + new wxComboBox(parent, -1, +@@ -88,7 +88,7 @@ static void createMainControls(wxWindow *parent, wxSizer *sizer) + // Sound settings + wxStaticBox *soundBox = new wxStaticBox(parent, -1, wxT("&Sound")); + wxStaticBoxSizer *soundSizerMain = new wxStaticBoxSizer(soundBox, wxVERTICAL); +- wxFlexGridSizer *soundSizer1 = new wxFlexGridSizer(4, 2); ++ wxFlexGridSizer *soundSizer1 = new wxFlexGridSizer(0, 4, 2, 0); + wxStaticText *volumeText = new wxStaticText(parent, -1, wxT("Sound Volume :")); + wxStaticText *musicVolumeText = new wxStaticText(parent, -1, wxT("Music Volume :")); + wxStaticText *ambientVolumeText = new wxStaticText(parent, -1, wxT("Ambient Volume :")); +@@ -137,7 +137,7 @@ static void createMainControls(wxWindow *parent, wxSizer *sizer) + wxT("Game Detail Options")); + wxStaticBoxSizer *speedSizer = new wxStaticBoxSizer(speedBox, wxHORIZONTAL); + +- wxGridSizer *loadSizer = new wxFlexGridSizer(2, 2); ++ wxGridSizer *loadSizer = new wxFlexGridSizer(0, 2, 2, 0); + IDC_LOADULTRA_CTRL = new wxButton(parent, ID_LOADULTRA, wxT("&Ultra Detail"), wxDefaultPosition, wxSize(120,-1)); + IDC_LOADDEFAULTS_CTRL = new wxButton(parent, ID_LOADDEFAULTS, wxT("&Normal Detail"), wxDefaultPosition, wxSize(120,-1)); + IDC_LOADMEDIUM_CTRL = new wxButton(parent, ID_LOADMEDIUM, wxT("Faster Detail"), wxDefaultPosition, wxSize(120,-1)); +@@ -256,7 +256,7 @@ static void createSpeedControls(wxWindow *parent, wxSizer *sizer) + wxStaticBox *waterDetailBox = new wxStaticBox(parent, -1, + wxT("Graphics Detail")); + wxStaticBoxSizer *waterDetailSizer = new wxStaticBoxSizer(waterDetailBox, wxHORIZONTAL); +- wxGridSizer *waterDetailSizer2 = new wxGridSizer(3, 1, 10, 10); ++ wxGridSizer *waterDetailSizer2 = new wxGridSizer(0, 1, 10, 10); + + IDC_NOWATERREF_CTRL = + new wxCheckBox(parent, -1, wxT("Don't draw water reflections - Large Framerate Improvement")); +@@ -471,7 +471,7 @@ static void createKeysControls(wxWindow *parent, wxSizer *topsizer) + { + wxScrolledWindow *scrolledWindow = new wxScrolledWindow(parent, -1, + wxDefaultPosition, wxSize(480, 250)); +- wxSizer *sizer = new wxFlexGridSizer(5, 1); ++ wxSizer *sizer = new wxFlexGridSizer(0, 5, 1, 0); + + keyboardKeyList.clear(); + if (!Keyboard::instance()->loadKeyFile()) +diff --git a/src/launcher/wxdialogs/DisplayDialog.cpp b/src/launcher/wxdialogs/DisplayDialog.cpp +index c34c9dc..0cdc620 100644 +--- a/src/launcher/wxdialogs/DisplayDialog.cpp ++++ b/src/launcher/wxdialogs/DisplayDialog.cpp +@@ -449,15 +449,15 @@ void DisplayFrame::refreshScreen() + IDC_SLIDER1_CTRL->SetValue(OptionsDisplay::instance()->getBrightness()); + IDC_SLIDER1_CTRL->SetToolTip(wxString(OptionsDisplay::instance()->getBrightnessEntry().getDescription(), wxConvUTF8)); + IDC_VOLUME_CTRL->SetRange(0, 128); +- IDC_VOLUME_CTRL->SetTickFreq(4, 0); ++ IDC_VOLUME_CTRL->SetTickFreq(4); + IDC_VOLUME_CTRL->SetValue(OptionsDisplay::instance()->getSoundVolume()); + IDC_VOLUME_CTRL->SetToolTip(wxString(OptionsDisplay::instance()->getSoundVolumeEntry().getDescription(), wxConvUTF8)); + IDC_MUSICVOLUME_CTRL->SetRange(0, 128); +- IDC_MUSICVOLUME_CTRL->SetTickFreq(4, 0); ++ IDC_MUSICVOLUME_CTRL->SetTickFreq(4); + IDC_MUSICVOLUME_CTRL->SetValue(OptionsDisplay::instance()->getMusicVolume()); + IDC_MUSICVOLUME_CTRL->SetToolTip(wxString(OptionsDisplay::instance()->getMusicVolumeEntry().getDescription(), wxConvUTF8)); + IDC_AMBIENTVOLUME_CTRL->SetRange(0, 128); +- IDC_AMBIENTVOLUME_CTRL->SetTickFreq(4, 0); ++ IDC_AMBIENTVOLUME_CTRL->SetTickFreq(4); + IDC_AMBIENTVOLUME_CTRL->SetValue(OptionsDisplay::instance()->getAmbientSoundVolume()); + IDC_AMBIENTVOLUME_CTRL->SetToolTip(wxString(OptionsDisplay::instance()->getAmbientSoundVolumeEntry().getDescription(), wxConvUTF8)); + IDC_USERNAME_CTRL->SetValue(wxString(OptionsDisplay::instance()->getOnlineUserName(), wxConvUTF8)); +@@ -736,7 +736,7 @@ void DisplayFrame::onExportMod(wxCommandEvent &event) + #if wxCHECK_VERSION(2, 8, 0) + wxFD_SAVE); + #else +- wxSAVE); ++ wxFD_SAVE); + #endif + if (file.empty()) return; + ModFiles files; +@@ -764,7 +764,7 @@ void DisplayFrame::onImportMod(wxCommandEvent &event) + #if wxCHECK_VERSION(2, 8, 0) + wxFD_OPEN | wxFD_FILE_MUST_EXIST); + #else +- wxOPEN | wxFILE_MUST_EXIST); ++ wxFD_OPEN | wxFD_FILE_MUST_EXIST); + #endif + if (file.empty()) return; + ModFiles files; +diff --git a/src/launcher/wxdialogs/SettingsDialog.cpp b/src/launcher/wxdialogs/SettingsDialog.cpp +index b312085..03ba629 100644 +--- a/src/launcher/wxdialogs/SettingsDialog.cpp ++++ b/src/launcher/wxdialogs/SettingsDialog.cpp +@@ -105,7 +105,7 @@ void SettingsFrame::createMainPanel(bool server) + mainPanel_ = new wxPanel(book_, -1); + book_->AddPage(mainPanel_, wxT("Main")); + wxSizer *mainPanelSizer = new wxBoxSizer(wxVERTICAL); +- wxSizer *sizer = new wxFlexGridSizer(2, 2); ++ wxSizer *sizer = new wxFlexGridSizer(0, 2, 2, 0); + mainPanelSizer->Add(sizer, 0, wxALL | wxALIGN_CENTER, 10); + + setters_.push_back( +@@ -166,7 +166,7 @@ void SettingsFrame::createMoneyPanel() + { + moneyPanel_ = new wxPanel(book_, -1); + wxSizer *ecoPanelSizer = new wxBoxSizer(wxVERTICAL); +- wxSizer *sizer = new wxFlexGridSizer(2, 2); ++ wxSizer *sizer = new wxFlexGridSizer(0, 2, 2, 0); + ecoPanelSizer->Add(sizer, 0, wxALL | wxALIGN_CENTER, 10); + + setters_.push_back( +@@ -215,7 +215,7 @@ void SettingsFrame::createScorePanel() + { + scorePanel_ = new wxPanel(book_, -1); + wxSizer *ecoPanelSizer = new wxBoxSizer(wxVERTICAL); +- wxSizer *sizer = new wxFlexGridSizer(2, 2); ++ wxSizer *sizer = new wxFlexGridSizer(0, 2, 2, 0); + ecoPanelSizer->Add(sizer, 0, wxALL | wxALIGN_CENTER, 10); + + setters_.push_back( +@@ -249,7 +249,7 @@ void SettingsFrame::createWeaponsPanel() + { + weaponsPanel_ = new wxPanel(book_, -1); + wxSizer *ecoPanelSizer = new wxBoxSizer(wxVERTICAL); +- wxSizer *sizer = new wxFlexGridSizer(2, 2); ++ wxSizer *sizer = new wxFlexGridSizer(0, 2, 2, 0); + ecoPanelSizer->Add(sizer, 0, wxALL | wxALIGN_CENTER, 10); + + setters_.push_back( +@@ -286,7 +286,7 @@ void SettingsFrame::createEnvPanel() + { + envPanel_ = new wxPanel(book_, -1); + wxSizer *envPanelSizer = new wxBoxSizer(wxVERTICAL); +- wxSizer *sizer = new wxFlexGridSizer(2, 2); ++ wxSizer *sizer = new wxFlexGridSizer(0, 2, 2, 0); + envPanelSizer->Add(sizer, 0, wxALL | wxALIGN_CENTER, 10); + + setters_.push_back( +@@ -337,7 +337,7 @@ void SettingsFrame::createLandPanel() + wxScrolledWindow *scrolledWindow = new wxScrolledWindow(landPanel_, -1, + wxDefaultPosition, wxSize(225, 200)); + +- wxSizer *sizer = new wxFlexGridSizer(3, 3); ++ wxSizer *sizer = new wxFlexGridSizer(0, 3, 3, 0); + int i = 0; + std::list &defns = + landscapeDefinitions.getAllLandscapes(); +@@ -438,7 +438,7 @@ void SettingsFrame::createPlayersPanel() + wxT("Players are persistent for game")); + playersPanelSizer->Add(IDC_SERVER_RESIDUAL_CTRL, 0, wxALIGN_CENTER | wxTOP, 10); + +- wxSizer *sizer = new wxGridSizer(3, 3); ++ wxSizer *sizer = new wxGridSizer(0, 3, 3, 0); + playersPanelSizer->Add(sizer, 0, wxALL | wxALIGN_CENTER, 10); + + for (int i=0; i<24; i++) diff --git a/scorched3d.spec b/scorched3d.spec index c007cd7..9861f46 100644 --- a/scorched3d.spec +++ b/scorched3d.spec @@ -1,9 +1,11 @@ +%global fonts font(dejavusans) font(dejavusansmono) + Name: scorched3d Version: 44 -Release: 11%{?dist} +Release: 39%{?dist} Summary: Game based loosely on the classic DOS game Scorched Earth -Group: Amusements/Games -License: GPLv2+ and CC-BY-SA +# Automatically converted from old format: GPLv2+ and CC-BY-SA - review is highly recommended. +License: GPL-2.0-or-later AND LicenseRef-Callaway-CC-BY-SA URL: http://www.scorched3d.co.uk/ Source0: http://downloads.sourceforge.net/%{name}/Scorched3D-%{version}-src.tar.gz Source1: %{name}.desktop @@ -14,13 +16,19 @@ Patch2: %{name}-help.patch Patch3: %{name}-freetype-buildfix.patch Patch4: %{name}-sys-lua.patch Patch5: %{name}-returntype.patch +Patch6: %{name}-wx3.0.patch +Patch7: %{name}-lua54.patch +Patch8: %{name}-fix-hang-on-fast-machines.patch +Patch9: scorched3d-configure-c99.patch +BuildRequires: make +BuildRequires: gcc-c++ BuildRequires: wxGTK-devel SDL_net-devel libGLU-devel BuildRequires: expat-devel libvorbis-devel glew-devel fftw-devel libjpeg-devel BuildRequires: freetype-devel openal-soft-devel freealut-devel >= 1.1.0-10 BuildRequires: lua-devel libtool autoconf automake BuildRequires: ImageMagick desktop-file-utils -Requires: hicolor-icon-theme opengl-games-utils -Requires: dejavu-sans-fonts dejavu-sans-mono-fonts +BuildRequires: fontconfig %{fonts} +Requires: hicolor-icon-theme opengl-games-utils %{fonts} # Upstream naming compatibility Provides: Scorched3D = %{version}-%{release} @@ -42,13 +50,15 @@ conditions and terrains to be dealt with. %prep %setup -q -c pushd scorched -%patch1 -p1 -%patch2 -p1 -%if 0%{?fedora} >= 21 -%patch3 -p1 -%endif -%patch4 -p1 -%patch5 -p0 +%patch -P1 -p1 +%patch -P2 -p1 +%patch -P3 -p1 +%patch -P4 -p1 +%patch -P5 -p0 +%patch -P6 -p1 +%patch -P7 -p1 +%patch -P8 -p1 +%patch -P9 -p2 touch NEWS AUTHORS ChangeLog autoreconf -ivf install -m 755 %{SOURCE2} . @@ -79,11 +89,11 @@ pushd scorched %make_install ln -s opengl-game-wrapper.sh $RPM_BUILD_ROOT%{_bindir}/%{name}-wrapper -ln -f -s ../../../fonts/dejavu/DejaVuSans.ttf \ +ln -f -s $(fc-match -f "%{file}" "sans") \ $RPM_BUILD_ROOT%{_datadir}/%{name}/data/fonts/dejavusans.ttf -ln -f -s ../../../fonts/dejavu/DejaVuSansCondensed-Bold.ttf \ +ln -f -s $(fc-match -f "%{file}" "sans:condensed:bold") \ $RPM_BUILD_ROOT%{_datadir}/%{name}/data/fonts/dejavusconbd.ttf -ln -f -s ../../../fonts/dejavu/DejaVuSansMono-Bold.ttf \ +ln -f -s $(fc-match -f "%{file}" "monospace:bold") \ $RPM_BUILD_ROOT%{_datadir}/%{name}/data/fonts/dejavusmobd.ttf # below is the desktop file and icon stuff. @@ -131,18 +141,6 @@ SentUpstream: 2014-09-25 EOF -%post -touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : - -%postun -if [ $1 -eq 0 ] ; then - touch --no-create %{_datadir}/icons/hicolor &>/dev/null - gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : -fi - -%posttrans -gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : - %files %doc scorched/COPYING scorched/apoc @@ -154,6 +152,92 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %changelog +* Fri Jul 25 2025 Fedora Release Engineering - 44-39 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Sun Jan 19 2025 Fedora Release Engineering - 44-38 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Sep 04 2024 Miroslav Suchý - 44-37 +- convert license to SPDX + +* Sat Jul 20 2024 Fedora Release Engineering - 44-36 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sat Jan 27 2024 Fedora Release Engineering - 44-35 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Tue Dec 19 2023 Florian Weimer - 44-34 +- Fix C type error in configure script (#2255225) + +* Sat Jul 22 2023 Fedora Release Engineering - 44-33 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Sat Jan 21 2023 Fedora Release Engineering - 44-32 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Aug 04 2022 Scott Talbert - 44-31 +- Rebuild with wxWidgets 3.2 + +* Sat Jul 23 2022 Fedora Release Engineering - 44-30 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Feb 10 2022 Orion Poplawski - 44-29 +- Rebuild for glew 2.2 + +* Sat Jan 22 2022 Fedora Release Engineering - 44-28 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 44-27 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jan 27 2021 Fedora Release Engineering - 44-26 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Aug 11 2020 Hans de Goede - 44-25 +- Fix FTBFS (rhbz#1865470) +- Fix hang of non-networked games on fast machines + +* Sat Aug 01 2020 Fedora Release Engineering - 44-24 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 44-23 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed May 13 2020 Bruno Wolff III - 44-22 +- Automate finding font paths during build + +* Thu Jan 30 2020 Fedora Release Engineering - 44-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Jul 26 2019 Fedora Release Engineering - 44-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sat Feb 02 2019 Fedora Release Engineering - 44-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Oct 30 2018 Scott Talbert - 44-18 +- Rebuild with wxWidgets 3.0 + +* Thu Aug 23 2018 Nicolas Chauvet - 44-17 +- Rebuilt for glew 2.1.0 + +* Sat Jul 14 2018 Fedora Release Engineering - 44-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Feb 09 2018 Fedora Release Engineering - 44-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Jan 18 2018 Igor Gnatenko - 44-14 +- Remove obsolete scriptlets + +* Thu Aug 03 2017 Fedora Release Engineering - 44-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 44-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + * Sat Feb 11 2017 Fedora Release Engineering - 44-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild