From 3c99f6b08547f0d2357fc117aee12263ded05294b1cf6f68f96310a7e40fd766 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Wed, 1 May 2024 09:12:22 +0000 Subject: [PATCH] - Add gzdoom-lzma-simd.patch - Reorder 0001-Revert-Switch-to-miniz-from-zlib.patch before gzdoom-lzma.patch OBS-URL: https://build.opensuse.org/package/show/games/gzdoom?expand=0&rev=108 --- 0001-Revert-Switch-to-miniz-from-zlib.patch | 50 ++++++++++----------- gzdoom-lzma-simd.patch | 25 +++++++++++ gzdoom-lzma.patch | 18 ++++---- gzdoom.changes | 1 + gzdoom.spec | 22 ++++++--- 5 files changed, 75 insertions(+), 41 deletions(-) create mode 100644 gzdoom-lzma-simd.patch diff --git a/0001-Revert-Switch-to-miniz-from-zlib.patch b/0001-Revert-Switch-to-miniz-from-zlib.patch index 6a0490e..a285f6a 100644 --- a/0001-Revert-Switch-to-miniz-from-zlib.patch +++ b/0001-Revert-Switch-to-miniz-from-zlib.patch @@ -7,29 +7,29 @@ This reverts commit ba9ce0e83f6e25e3ddef5000bd51d53f2e3947a2. --- CMakeLists.txt | 13 ++++++++++++- src/CMakeLists.txt | 4 ++-- - src/common/audio/music/i_music.cpp | 2 +- - src/common/engine/serializer.cpp | 2 +- - src/common/filesystem/source/files_decompress.cpp | 2 +- + src/common/audio/music/i_music.cpp | 3 ++- + src/common/engine/serializer.cpp | 3 ++- + src/common/filesystem/source/files_decompress.cpp | 3 ++- src/common/filesystem/source/filesystem.cpp | 3 ++- - src/common/filesystem/source/resourcefile.cpp | 2 +- + src/common/filesystem/source/resourcefile.cpp | 3 ++- src/common/models/model.cpp | 13 +++++++++++-- - src/common/platform/win32/i_crash.cpp | 2 +- - src/common/textures/m_png.cpp | 2 +- - src/common/thirdparty/m_crc32.h | 5 +++-- - src/g_pch.h | 2 +- - src/g_pch2.h | 2 +- - src/maploader/glnodes.cpp | 2 +- - src/serializer_doom.cpp | 2 +- + src/common/platform/win32/i_crash.cpp | 3 ++- + src/common/textures/m_png.cpp | 3 ++- + src/common/thirdparty/m_crc32.h | 6 ++++-- + src/g_pch.h | 3 ++- + src/g_pch2.h | 3 ++- + src/maploader/glnodes.cpp | 3 ++- + src/serializer_doom.cpp | 3 ++- tools/zipdir/CMakeLists.txt | 4 ++-- - tools/zipdir/zipdir.c | 2 +- + tools/zipdir/zipdir.c | 3 ++- vcpkg.json | 4 ++++ - 18 files changed, 47 insertions(+), 21 deletions(-) + 18 files changed, 59 insertions(+), 21 deletions(-) Index: gzdoom-g4.12.2/CMakeLists.txt =================================================================== --- gzdoom-g4.12.2.orig/CMakeLists.txt +++ gzdoom-g4.12.2/CMakeLists.txt -@@ -216,6 +216,7 @@ option( NO_OPENAL "Disable OpenAL sound +@@ -215,6 +215,7 @@ option( NO_OPENAL "Disable OpenAL sound find_package( BZip2 ) find_package( VPX ) @@ -37,7 +37,7 @@ Index: gzdoom-g4.12.2/CMakeLists.txt include( TargetArch ) -@@ -333,6 +334,7 @@ set( CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE +@@ -332,6 +333,7 @@ set( CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE set( CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${REL_C_FLAGS}" ) set( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${DEB_C_FLAGS} -D_DEBUG" ) @@ -45,7 +45,7 @@ Index: gzdoom-g4.12.2/CMakeLists.txt option(FORCE_INTERNAL_BZIP2 "Use internal bzip2") option(FORCE_INTERNAL_ASMJIT "Use internal asmjit" ON) mark_as_advanced( FORCE_INTERNAL_ASMJIT ) -@@ -349,6 +351,16 @@ set( DRPC_INCLUDE_DIR "-I/ignore" ) +@@ -348,6 +350,16 @@ set( DRPC_INCLUDE_DIR "-I/ignore" ) set( DRPC_LIBRARIES -ldiscord-rpc ) set( DRPC_LIBRARY -ldiscord-rpc ) @@ -63,9 +63,9 @@ Index: gzdoom-g4.12.2/CMakeLists.txt check_symbol_exists( "backtrace" "execinfo.h" HAVE_BACKTRACE ) if( NOT HAVE_BACKTRACE ) @@ -406,7 +418,6 @@ install(DIRECTORY docs/ - option( DYN_OPENAL "Dynamically load OpenAL" ON ) + add_subdirectory( libraries/lzma ) -add_subdirectory( libraries/miniz ) add_subdirectory( tools ) add_subdirectory( wadsrc ) @@ -74,7 +74,7 @@ Index: gzdoom-g4.12.2/src/CMakeLists.txt =================================================================== --- gzdoom-g4.12.2.orig/src/CMakeLists.txt +++ gzdoom-g4.12.2/src/CMakeLists.txt -@@ -344,7 +344,7 @@ add_custom_target( revision_check ALL +@@ -319,7 +319,7 @@ add_custom_target( revision_check ALL # required libraries @@ -83,12 +83,12 @@ Index: gzdoom-g4.12.2/src/CMakeLists.txt if (HAVE_VULKAN) list( APPEND PROJECT_LIBRARIES "zvulkan" ) endif() -@@ -408,7 +408,7 @@ else() +@@ -383,7 +383,7 @@ else() message( SEND_ERROR "Could not find libvpx" ) endif() --include_directories( SYSTEM "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIRS}" "${ZMUSIC_INCLUDE_DIR}" "${DRPC_INCLUDE_DIR}") -+include_directories( SYSTEM "${ZLIB_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIRS}" "${ZMUSIC_INCLUDE_DIR}" "${DRPC_INCLUDE_DIR}") +-include_directories( SYSTEM "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIR}" "${ZMUSIC_INCLUDE_DIR}" "${DRPC_INCLUDE_DIR}") ++include_directories( SYSTEM "${ZLIB_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIR}" "${ZMUSIC_INCLUDE_DIR}" "${DRPC_INCLUDE_DIR}") if( ${HAVE_VM_JIT} ) add_definitions( -DHAVE_VM_JIT ) @@ -305,12 +305,12 @@ Index: gzdoom-g4.12.2/tools/zipdir/CMakeLists.txt cmake_minimum_required( VERSION 3.16 ) if( NOT CMAKE_CROSSCOMPILING ) -- include_directories( SYSTEM "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIRS}" ) -+ include_directories( SYSTEM "${ZLIB_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIRS}" ) +- include_directories( SYSTEM "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIR}" ) ++ include_directories( SYSTEM "${ZLIB_INCLUDE_DIR} ${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIR}" ) add_executable( zipdir zipdir.c ) -- target_link_libraries( zipdir miniz ${BZIP2_LIBRARIES} ${LZMA_LDFLAGS} ) -+ target_link_libraries( zipdir ${ZLIB_LIBRARIES} ${BZIP2_LIBRARIES} ${LZMA_LDFLAGS} ) +- target_link_libraries( zipdir miniz ${BZIP2_LIBRARIES} lzma ) ++ target_link_libraries( zipdir ${ZLIB_LIBRARIES} ${BZIP2_LIBRARIES} lzma ) set( CROSS_EXPORTS ${CROSS_EXPORTS} zipdir PARENT_SCOPE ) endif() Index: gzdoom-g4.12.2/tools/zipdir/zipdir.c diff --git a/gzdoom-lzma-simd.patch b/gzdoom-lzma-simd.patch new file mode 100644 index 0000000..f35e997 --- /dev/null +++ b/gzdoom-lzma-simd.patch @@ -0,0 +1,25 @@ +From: Jan Engelhardt +Date: 2024-05-01 00:14:04.625759204 +0200 +Subject: Fix build failures involving SIMD code + +Fix build failure on Leap 15.6/gcc-7 amd64: +[ 31s] C/SwapBytes.c:312:7: error: incompatible types when initializing type +'__m256i {aka const __vector(4) long long int}' using type 'int' + +--- + libraries/lzma/C/SwapBytes.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: gzdoom-g4.12.2/libraries/lzma/C/SwapBytes.c +=================================================================== +--- gzdoom-g4.12.2.orig/libraries/lzma/C/SwapBytes.c ++++ gzdoom-g4.12.2/libraries/lzma/C/SwapBytes.c +@@ -22,7 +22,7 @@ typedef UInt32 CSwapUInt32; + // #if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1900) + #if defined(__clang__) && (__clang_major__ >= 4) \ + || defined(Z7_GCC_VERSION) && (Z7_GCC_VERSION >= 40701) +- #define k_SwapBytes_Mode_MAX k_SwapBytes_Mode_AVX2 ++ #define k_SwapBytes_Mode_MAX k_SwapBytes_Mode_SSE2 + #define SWAP_ATTRIB_SSE2 __attribute__((__target__("sse2"))) + #define SWAP_ATTRIB_SSSE3 __attribute__((__target__("ssse3"))) + #define SWAP_ATTRIB_AVX2 __attribute__((__target__("avx2"))) diff --git a/gzdoom-lzma.patch b/gzdoom-lzma.patch index b28e148..fc11195 100644 --- a/gzdoom-lzma.patch +++ b/gzdoom-lzma.patch @@ -21,7 +21,7 @@ Index: gzdoom-g4.12.2/CMakeLists.txt # Support cross compiling option( FORCE_CROSSCOMPILE "Turn on cross compiling." NO ) -@@ -385,7 +386,7 @@ else() +@@ -397,7 +398,7 @@ else() set( BZIP2_LIBRARY bz2 ) endif() @@ -30,14 +30,14 @@ Index: gzdoom-g4.12.2/CMakeLists.txt if( NOT CMAKE_CROSSCOMPILING ) if( NOT CROSS_EXPORTS ) -@@ -405,7 +406,6 @@ install(DIRECTORY docs/ +@@ -417,7 +418,6 @@ install(DIRECTORY docs/ option( DYN_OPENAL "Dynamically load OpenAL" ON ) -add_subdirectory( libraries/lzma ) - add_subdirectory( libraries/miniz ) add_subdirectory( tools ) add_subdirectory( wadsrc ) + add_subdirectory( wadsrc_bm ) Index: gzdoom-g4.12.2/src/CMakeLists.txt =================================================================== --- gzdoom-g4.12.2.orig/src/CMakeLists.txt @@ -46,8 +46,8 @@ Index: gzdoom-g4.12.2/src/CMakeLists.txt message( SEND_ERROR "Could not find libvpx" ) endif() --include_directories( SYSTEM "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIR}" "${ZMUSIC_INCLUDE_DIR}" "${DRPC_INCLUDE_DIR}") -+include_directories( SYSTEM "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIRS}" "${ZMUSIC_INCLUDE_DIR}" "${DRPC_INCLUDE_DIR}") +-include_directories( SYSTEM "${ZLIB_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIR}" "${ZMUSIC_INCLUDE_DIR}" "${DRPC_INCLUDE_DIR}") ++include_directories( SYSTEM "${ZLIB_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIRS}" "${ZMUSIC_INCLUDE_DIR}" "${DRPC_INCLUDE_DIR}") if( ${HAVE_VM_JIT} ) add_definitions( -DHAVE_VM_JIT ) @@ -68,11 +68,11 @@ Index: gzdoom-g4.12.2/tools/zipdir/CMakeLists.txt cmake_minimum_required( VERSION 3.16 ) if( NOT CMAKE_CROSSCOMPILING ) -- include_directories( SYSTEM "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIR}" ) -+ include_directories( SYSTEM "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIRS}" ) +- include_directories( SYSTEM "${ZLIB_INCLUDE_DIR} ${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIR}" ) ++ include_directories( SYSTEM "${ZLIB_INCLUDE_DIR} ${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIRS}" ) add_executable( zipdir zipdir.c ) -- target_link_libraries( zipdir miniz ${BZIP2_LIBRARIES} lzma ) -+ target_link_libraries( zipdir miniz ${BZIP2_LIBRARIES} ${LZMA_LDFLAGS} ) +- target_link_libraries( zipdir ${ZLIB_LIBRARIES} ${BZIP2_LIBRARIES} lzma ) ++ target_link_libraries( zipdir ${ZLIB_LIBRARIES} ${BZIP2_LIBRARIES} ${LZMA_LDFLAGS} ) set( CROSS_EXPORTS ${CROSS_EXPORTS} zipdir PARENT_SCOPE ) endif() diff --git a/gzdoom.changes b/gzdoom.changes index 82a2fd1..9996c55 100644 --- a/gzdoom.changes +++ b/gzdoom.changes @@ -16,6 +16,7 @@ Tue Apr 30 10:40:25 UTC 2024 - Jan Engelhardt * Added rudimentary support for DSDA's COMPLVL lump. * Added actor flag +BILLBOARDFACECAMERA. * Added `sv_pistolstart` server flag. +- Add gzdoom-lzma-simd.patch ------------------------------------------------------------------- Fri Oct 27 04:20:10 UTC 2023 - Jan Engelhardt diff --git a/gzdoom.spec b/gzdoom.spec index b86a4a3..8c36b95 100644 --- a/gzdoom.spec +++ b/gzdoom.spec @@ -16,6 +16,10 @@ # +%if 0%{?suse_version} >= 1599 +%define with_clzma 1 +%endif + Name: gzdoom Version: 4.12.2 Release: 0 @@ -27,12 +31,13 @@ URL: https://zdoom.org/ #Git-Clone: https://github.com/zdoom/gzdoom Source: https://github.com/zdoom/gzdoom/archive/g%version.tar.gz Patch1: gzdoom-waddir.patch -Patch2: gzdoom-lzma.patch -Patch6: gzdoom-discord.patch -Patch8: 0001-removed-some-32bit-only-CMake-code.patch -Patch9: 0001-Revert-use-static_assert-to-make-32-bit-builds-fail.patch -Patch10: 0001-Revert-Switch-to-miniz-from-zlib.patch -Patch11: more-32bit.patch +Patch2: gzdoom-discord.patch +Patch3: 0001-Revert-Switch-to-miniz-from-zlib.patch +Patch4: gzdoom-lzma-simd.patch +Patch5: gzdoom-lzma.patch +Patch6: 0001-removed-some-32bit-only-CMake-code.patch +Patch7: 0001-Revert-use-static_assert-to-make-32-bit-builds-fail.patch +Patch8: more-32bit.patch BuildRequires: cmake >= 2.8.7 BuildRequires: discord-rpc-devel BuildRequires: gcc-c++ @@ -41,7 +46,7 @@ BuildRequires: pkg-config BuildRequires: unzip BuildRequires: zmusic-devel BuildRequires: pkgconfig(bzip2) -BuildRequires: pkgconfig(clzma) >= 23.01 +BuildRequires: pkgconfig(clzma) BuildRequires: pkgconfig(flac) BuildRequires: pkgconfig(gl) BuildRequires: pkgconfig(gtk+-3.0) @@ -73,6 +78,9 @@ The executables hard-require SSE2 on i686 currently. %prep %autosetup -n %name-g%version -p1 +%if !(0%{?suse_version} >= 1599) +%patch -P 5 -R -p1 +%endif perl -i -pe 's{__DATE__}{"does not matter when"}g' src/common/platform/posix/sdl/i_main.cpp perl -i -pe 's{}{%version}g' tools/updaterevision/UpdateRevision.cmake