diff --git a/pkg.info b/pkg.info index 191886f..6d33c01 100644 --- a/pkg.info +++ b/pkg.info @@ -1,6 +1,6 @@ name: supertuxkart description: Free and Open Source kart racing game -version: 1.5-rc1 +version: 1.4 url: https://supertuxkart-evolution.com/Main_Page.html license: GPL3-or-later architecture: any diff --git a/source-files/fix-cmake-4-compatibility.patch b/source-files/fix-cmake-4-compatibility.patch new file mode 100644 index 0000000..aa1c494 --- /dev/null +++ b/source-files/fix-cmake-4-compatibility.patch @@ -0,0 +1,92 @@ +From 7f67e1ffb599d43cd2316e0320ce7944b49be02e Mon Sep 17 00:00:00 2001 +From: Alayan <25536748+Alayan-stk-2@users.noreply.github.com> +Date: Tue, 21 May 2024 14:06:16 +0200 +Subject: [PATCH 1/2] Require Cmake 3.6 or higher + +This gets rid of deprecation warnings. Cmake 3.6 has been out for almost 8 years by now, so this requirement should not cause undue trouble to people trying to compile the game. + +Signed-off-by: G-Src +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 2.8.4) ++cmake_minimum_required(VERSION 3.6.0) + + # root CMakeLists for the SuperTuxKart project + project(SuperTuxKart) +@@ -6,10 +6,6 @@ set(PROJECT_VERSION "1.4") + + add_definitions( -DSUPERTUXKART_VERSION="${PROJECT_VERSION}" ) + +-if(NOT (CMAKE_MAJOR_VERSION VERSION_LESS 3)) +- cmake_policy(SET CMP0043 OLD) +-endif() +- + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake") + include(CMakeDependentOption) + +--- a/lib/enet/CMakeLists.txt ++++ b/lib/enet/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 2.6) ++cmake_minimum_required(VERSION 3.6.0) + + project(enet) + +--- a/lib/graphics_utils/CMakeLists.txt ++++ b/lib/graphics_utils/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 2.6) ++cmake_minimum_required(VERSION 3.6.0) + include_directories("${PROJECT_SOURCE_DIR}/lib/simd_wrapper") + if (UNIX OR MINGW) + add_definitions(-O3) +--- a/lib/libsquish/CMakeLists.txt ++++ b/lib/libsquish/CMakeLists.txt +@@ -8,7 +8,7 @@ + # Unix and VS: SSE2 support is enabled by default + # use BUILD_SQUISH_WITH_SSE2 and BUILD_SQUISH_WITH_ALTIVEC to override + +-CMAKE_MINIMUM_REQUIRED(VERSION 2.8.3) ++CMAKE_MINIMUM_REQUIRED(VERSION 3.6.0) + + OPTION(BUILD_SQUISH_WITH_OPENMP "Build with OpenMP." OFF) + +--- a/lib/mcpp/CMakeLists.txt ++++ b/lib/mcpp/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 2.6) ++cmake_minimum_required(VERSION 3.6.0) + if (UNIX OR MINGW) + add_definitions(-O3) + if (APPLE) +--- a/lib/tinygettext/CMakeLists.txt ++++ b/lib/tinygettext/CMakeLists.txt +@@ -39,7 +39,7 @@ set(VERSION "0.1.0") + + ### CMake configuration + +-cmake_minimum_required(VERSION 2.4) ++cmake_minimum_required(VERSION 3.6.0) + if(COMMAND cmake_policy) + CMAKE_POLICY(SET CMP0003 NEW) + endif(COMMAND cmake_policy) +--- a/lib/wiiuse/CMakeLists.txt ++++ b/lib/wiiuse/CMakeLists.txt +@@ -2,13 +2,7 @@ + # http://academic.cleardefinition.com/ + # Iowa State University HCI Graduate Program/VRAC + +-cmake_minimum_required(VERSION 2.8.0) +- +-# Added for STK, silences CMake warning +-# See https://github.com/supertuxkart/stk-code/commit/b0ff15873ee7fa8901672672b47def9039a5534b#diff-a3e272598233e89e4b577a434cc2a89d +-if(NOT (CMAKE_MAJOR_VERSION VERSION_LESS 3)) +- cmake_policy(SET CMP0048 OLD) +-endif() ++cmake_minimum_required(VERSION 3.6.0) + + # Set package properties + project(WiiUse) +-- +2.50.1 diff --git a/source-files/fix-cmake-4-warnings.patch b/source-files/fix-cmake-4-warnings.patch new file mode 100644 index 0000000..6a615e2 --- /dev/null +++ b/source-files/fix-cmake-4-warnings.patch @@ -0,0 +1,81 @@ +From e2aaf730de5d43afaf4e2b2ed1a94e8c0eeb11e2 Mon Sep 17 00:00:00 2001 +From: Deve +Date: Thu, 15 May 2025 17:54:28 +0200 +Subject: [PATCH 2/2] Fixed cmake 4.0 warnings + +Signed-off-by: G-Src +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 3.6.0) ++cmake_minimum_required(VERSION 3.6.0...4.0) + + # root CMakeLists for the SuperTuxKart project + project(SuperTuxKart) +--- a/lib/angelscript/projects/cmake/CMakeLists.txt ++++ b/lib/angelscript/projects/cmake/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 3.5) ++cmake_minimum_required(VERSION 3.5...4.0) + + # STK Fix llvm mingw crashes + if (MINGW AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_SIZEOF_VOID_P EQUAL 4) +--- a/lib/enet/CMakeLists.txt ++++ b/lib/enet/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 3.6.0) ++cmake_minimum_required(VERSION 3.6.0...4.0) + + project(enet) + +--- a/lib/graphics_utils/CMakeLists.txt ++++ b/lib/graphics_utils/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 3.6.0) ++cmake_minimum_required(VERSION 3.6.0...4.0) + include_directories("${PROJECT_SOURCE_DIR}/lib/simd_wrapper") + if (UNIX OR MINGW) + add_definitions(-O3) +--- a/lib/libsquish/CMakeLists.txt ++++ b/lib/libsquish/CMakeLists.txt +@@ -8,7 +8,7 @@ + # Unix and VS: SSE2 support is enabled by default + # use BUILD_SQUISH_WITH_SSE2 and BUILD_SQUISH_WITH_ALTIVEC to override + +-CMAKE_MINIMUM_REQUIRED(VERSION 3.6.0) ++CMAKE_MINIMUM_REQUIRED(VERSION 3.6.0...4.0) + + OPTION(BUILD_SQUISH_WITH_OPENMP "Build with OpenMP." OFF) + +--- a/lib/mcpp/CMakeLists.txt ++++ b/lib/mcpp/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 3.6.0) ++cmake_minimum_required(VERSION 3.6.0...4.0) + if (UNIX OR MINGW) + add_definitions(-O3) + if (APPLE) +--- a/lib/tinygettext/CMakeLists.txt ++++ b/lib/tinygettext/CMakeLists.txt +@@ -39,7 +39,7 @@ set(VERSION "0.1.0") + + ### CMake configuration + +-cmake_minimum_required(VERSION 3.6.0) ++cmake_minimum_required(VERSION 3.6.0...4.0) + if(COMMAND cmake_policy) + CMAKE_POLICY(SET CMP0003 NEW) + endif(COMMAND cmake_policy) +--- a/lib/wiiuse/CMakeLists.txt ++++ b/lib/wiiuse/CMakeLists.txt +@@ -2,7 +2,7 @@ + # http://academic.cleardefinition.com/ + # Iowa State University HCI Graduate Program/VRAC + +-cmake_minimum_required(VERSION 3.6.0) ++cmake_minimum_required(VERSION 3.6.0...4.0) + + # Set package properties + project(WiiUse) +-- +2.50.1 diff --git a/source-files/gcc-13.patch b/source-files/gcc-13.patch new file mode 100644 index 0000000..22a06ee --- /dev/null +++ b/source-files/gcc-13.patch @@ -0,0 +1,121 @@ +https://github.com/supertuxkart/stk-code/commit/0163e3fa88b72634c3ddff5304c9086b649f53b1 + +From 0163e3fa88b72634c3ddff5304c9086b649f53b1 Mon Sep 17 00:00:00 2001 +From: Heiko Becker +Date: Thu, 26 Jan 2023 16:35:54 +0100 +Subject: [PATCH] Add missing includes to fix the build with gcc 13 + +Like other versions before, gcc 13 moved some includes around and as a +result and are no longer transitively included. +Explicitly include them for std::runtime_error and snprintf. +--- a/lib/graphics_engine/include/vk_mem_alloc.h ++++ b/lib/graphics_engine/include/vk_mem_alloc.h +@@ -2563,6 +2563,7 @@ VMA_CALL_PRE void VMA_CALL_POST vmaFreeStatsString( + #undef VMA_IMPLEMENTATION + + #include ++#include + #include + #include + #include +--- a/lib/graphics_engine/src/ge_spm_buffer.cpp ++++ b/lib/graphics_engine/src/ge_spm_buffer.cpp +@@ -5,6 +5,7 @@ + #include "ge_vulkan_features.hpp" + + #include ++#include + + #include "mini_glm.hpp" + +--- a/lib/graphics_engine/src/ge_vulkan_array_texture.cpp ++++ b/lib/graphics_engine/src/ge_vulkan_array_texture.cpp +@@ -12,6 +12,7 @@ + + #include + #include ++#include + + namespace GE + { +--- a/lib/graphics_engine/src/ge_vulkan_command_loader.cpp ++++ b/lib/graphics_engine/src/ge_vulkan_command_loader.cpp +@@ -8,6 +8,7 @@ + #include + #include + #include ++#include + #include + + #include "../source/Irrlicht/os.h" +--- a/lib/graphics_engine/src/ge_vulkan_depth_texture.cpp ++++ b/lib/graphics_engine/src/ge_vulkan_depth_texture.cpp +@@ -3,6 +3,8 @@ + #include "ge_main.hpp" + #include "ge_vulkan_driver.hpp" + ++#include ++ + namespace GE + { + GEVulkanDepthTexture::GEVulkanDepthTexture(GEVulkanDriver* vk, +--- a/lib/graphics_engine/src/ge_vulkan_draw_call.cpp ++++ b/lib/graphics_engine/src/ge_vulkan_draw_call.cpp +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + + #include "../source/Irrlicht/os.h" + #include "quaternion.h" +--- a/lib/graphics_engine/src/ge_vulkan_fbo_texture.cpp ++++ b/lib/graphics_engine/src/ge_vulkan_fbo_texture.cpp +@@ -6,6 +6,7 @@ + + #include + #include ++#include + + namespace GE + { +--- a/lib/graphics_engine/src/ge_vulkan_mesh_cache.cpp ++++ b/lib/graphics_engine/src/ge_vulkan_mesh_cache.cpp +@@ -10,6 +10,7 @@ + + #include + #include ++#include + #include + + namespace GE +--- a/lib/graphics_engine/src/ge_vulkan_skybox_renderer.cpp ++++ b/lib/graphics_engine/src/ge_vulkan_skybox_renderer.cpp +@@ -11,6 +11,7 @@ + + #include + #include ++#include + #include + + namespace GE +--- a/lib/graphics_engine/src/ge_vulkan_texture.cpp ++++ b/lib/graphics_engine/src/ge_vulkan_texture.cpp +@@ -21,6 +21,7 @@ extern "C" + #include + #include + #include ++#include + + namespace GE + { +--- a/lib/graphics_engine/src/ge_vulkan_texture_descriptor.cpp ++++ b/lib/graphics_engine/src/ge_vulkan_texture_descriptor.cpp +@@ -6,6 +6,7 @@ + + #include + #include ++#include + + namespace GE + { diff --git a/source-files/gcc-15.patch b/source-files/gcc-15.patch new file mode 100644 index 0000000..ef16a45 --- /dev/null +++ b/source-files/gcc-15.patch @@ -0,0 +1,24 @@ +https://github.com/supertuxkart/stk-code/issues/5301 +https://bugs.gentoo.org/937731 + +From 83e029cc123176a77a239edf90ee461e46f9f8a2 Mon Sep 17 00:00:00 2001 +From: Gwyn Ciesla +Date: Wed, 19 Feb 2025 09:34:58 -0600 +Subject: [PATCH] Add include to work with gcc15. (#5310) + +--- + src/network/remote_kart_info.hpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/network/remote_kart_info.hpp b/src/network/remote_kart_info.hpp +index 80a6339187c..9865dcda8c3 100644 +--- a/src/network/remote_kart_info.hpp ++++ b/src/network/remote_kart_info.hpp +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + + enum KartTeam : int8_t + { diff --git a/source.sh b/source.sh index f971e22..89fbdb9 100644 --- a/source.sh +++ b/source.sh @@ -2,7 +2,7 @@ # BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE # BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT -DOWNLOAD="https://github.com/supertuxkart/stk-code/releases/download/${BPM_PKG_VERSION}/SuperTuxKart-${BPM_PKG_VERSION}-src.tar.gz" +DOWNLOAD="https://github.com/supertuxkart/stk-code/releases/download/${BPM_PKG_VERSION}/SuperTuxKart-${BPM_PKG_VERSION}-src.tar.xz" FILENAME="${DOWNLOAD##*/}" # The prepare function is executed in the root of the temp directory @@ -10,6 +10,14 @@ FILENAME="${DOWNLOAD##*/}" prepare() { wget "$DOWNLOAD" tar -xvf "$FILENAME" --strip-components=1 -C "$BPM_SOURCE" + + cd "$BPM_SOURCE" + # Apply patch to fix cmake 4 compatibility and warnings (Patches from gentoo) + patch -Np1 -i "$BPM_WORKDIR"/fix-cmake-4-compatibility.patch + patch -Np1 -i "$BPM_WORKDIR"/fix-cmake-4-warnings.patch + # Apply patch to fix gcc 13 and gcc 15 compatibility (Patch from gentoo) + patch -Np1 -i "$BPM_WORKDIR"/gcc-13.patch + patch -Np1 -i "$BPM_WORKDIR"/gcc-15.patch } # The build function is executed in the source directory @@ -18,6 +26,8 @@ build() { mkdir build cd build + export CFLAGS="${CFLAGS} -std=gnu17" + export CXXFLAGS="${CXXFLAGS} -std=gnu17" cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_RECORDER=off -GNinja .. cmake --build . }