Accepting request 984769 from games

- Add 0001-Revert-load-the-hex-font-as-early-as-possible.patch

OBS-URL: https://build.opensuse.org/request/show/984769
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gzdoom?expand=0&rev=22
This commit is contained in:
Dominique Leuenberger 2022-06-24 06:45:55 +00:00 committed by Git OBS Bridge
commit 5388608e4e
9 changed files with 264 additions and 41 deletions

View File

@ -0,0 +1,29 @@
From 984839295b4160a5859273399254225b9967c570 Mon Sep 17 00:00:00 2001
From: Jan Engelhardt <jengelh@inai.de>
Date: Sat, 18 Jun 2022 22:28:20 +0200
Subject: [PATCH] Resolve build failure on i686-linux
gcc had to say:
gzdoom-g4.8.0/src/common/engine/stats.h:83:13: error: 'CPU' was not declared in this scope
83 | if (CPU.bRDTSC)
---
src/common/engine/stats.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/common/engine/stats.h b/src/common/engine/stats.h
index d6e976ea5..0794455d2 100644
--- a/src/common/engine/stats.h
+++ b/src/common/engine/stats.h
@@ -35,6 +35,9 @@
#define __STATS_H__
#include "zstring.h"
+#if defined __i386__
+#include "x86.h"
+#endif
#if !defined _WIN32 && !defined __APPLE__
--
2.36.1

View File

@ -0,0 +1,128 @@
From e5d7224171927f5a724128ffef7004daae6dd5c8 Mon Sep 17 00:00:00 2001
From: Jan Engelhardt <jengelh@inai.de>
Date: Thu, 23 Jun 2022 23:41:18 +0200
Subject: [PATCH] Revert "- load the hex font as early as possible."
References: https://github.com/coelckers/gzdoom/issues/1615
This reverts commit 010f41a3aad3719b1e5d4d8ce157a5d9b0077b44.
---
src/common/fonts/hexfont.cpp | 24 +++++++-----------------
src/d_main.cpp | 17 +++++++----------
2 files changed, 14 insertions(+), 27 deletions(-)
diff --git a/src/common/fonts/hexfont.cpp b/src/common/fonts/hexfont.cpp
index 8b50427f4..e2bdbff7a 100644
--- a/src/common/fonts/hexfont.cpp
+++ b/src/common/fonts/hexfont.cpp
@@ -58,12 +58,11 @@ struct HexDataSource
//
//==========================================================================
- void ParseDefinition(FResourceLump* font)
+ void ParseDefinition(int lumpnum)
{
FScanner sc;
- auto data = font->Lock();
- sc.OpenMem("newconsolefont.hex", (const char*)data, font->Size());
+ sc.OpenLumpNum(lumpnum);
sc.SetCMode(true);
glyphdata.Push(0); // ensure that index 0 can be used as 'not present'.
while (sc.GetString())
@@ -97,7 +96,6 @@ struct HexDataSource
lumb = i * 255 / 17;
SmallPal[i] = PalEntry(255, lumb, lumb, lumb);
}
- font->Unlock();
}
};
@@ -402,7 +400,7 @@ public:
FFont *CreateHexLumpFont (const char *fontname, int lump)
{
- assert(hexdata.FirstChar != INT_MAX);
+ if (hexdata.FirstChar == INT_MAX) hexdata.ParseDefinition(lump);
return new FHexFont(fontname, lump);
}
@@ -414,7 +412,7 @@ FFont *CreateHexLumpFont (const char *fontname, int lump)
FFont *CreateHexLumpFont2(const char *fontname, int lump)
{
- assert(hexdata.FirstChar != INT_MAX);
+ if (hexdata.FirstChar == INT_MAX) hexdata.ParseDefinition(lump);
return new FHexFont2(fontname, lump);
}
@@ -426,7 +424,8 @@ FFont *CreateHexLumpFont2(const char *fontname, int lump)
uint8_t* GetHexChar(int codepoint)
{
- assert(hexdata.FirstChar != INT_MAX);
+ auto lump = fileSystem.CheckNumForFullName("newconsolefont.hex", 0); // This is always loaded from gzdoom.pk3 to prevent overriding it with incomplete replacements.
+ if (hexdata.FirstChar == INT_MAX) hexdata.ParseDefinition(lump);
if (hexdata.glyphmap[codepoint] > 0)
{
@@ -434,13 +433,4 @@ uint8_t* GetHexChar(int codepoint)
return &hexdata.glyphdata[offset];
}
return nullptr;
-}
-
-void LoadHexFont(const char* filename)
-{
- auto resf = FResourceFile::OpenResourceFile(filename);
- if (resf == nullptr) I_FatalError("Unable to open %s", filename);
- auto hexfont = resf->FindLump("newconsolefont.hex");
- if (hexfont == nullptr) I_FatalError("Unable to find newconsolefont.hex in %s", filename);
- hexdata.ParseDefinition(hexfont);
-}
+}
\ No newline at end of file
diff --git a/src/d_main.cpp b/src/d_main.cpp
index e658d74a3..9b5f9cabe 100644
--- a/src/d_main.cpp
+++ b/src/d_main.cpp
@@ -175,7 +175,6 @@ void FreeSBarInfoScript();
void I_UpdateWindowTitle();
void S_ParseMusInfo();
void D_GrabCVarDefaults();
-void LoadHexFont(const char* filename);
// PRIVATE FUNCTION PROTOTYPES ---------------------------------------------
@@ -3533,15 +3532,6 @@ static int D_DoomMain_Internal (void)
std::set_new_handler(NewFailure);
const char *batchout = Args->CheckValue("-errorlog");
- // [RH] Make sure zdoom.pk3 is always loaded,
- // as it contains magic stuff we need.
- wad = BaseFileSearch(BASEWAD, NULL, true, GameConfig);
- if (wad == NULL)
- {
- I_FatalError("Cannot find " BASEWAD);
- }
- LoadHexFont(wad); // load hex font early so we have it during startup.
-
C_InitConsole(80*8, 25*8, false);
I_DetectOS();
@@ -3571,6 +3561,13 @@ static int D_DoomMain_Internal (void)
extern void D_ConfirmSendStats();
D_ConfirmSendStats();
+ // [RH] Make sure zdoom.pk3 is always loaded,
+ // as it contains magic stuff we need.
+ wad = BaseFileSearch (BASEWAD, NULL, true, GameConfig);
+ if (wad == NULL)
+ {
+ I_FatalError ("Cannot find " BASEWAD);
+ }
FString basewad = wad;
FString optionalwad = BaseFileSearch(OPTIONALWAD, NULL, true, GameConfig);
--
2.36.1

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:454257582be0576501eef1efc99fe7ea70f1c4d7993549db3cbc709ce75fc102
size 19562412

3
g4.8.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f749120e8151bf3b4a9ac6cc923820cf9559a123bf60298e8f83e70e4cffc245
size 24121381

40
gzdoom-discord.patch Normal file
View File

@ -0,0 +1,40 @@
From: Jan Engelhardt <jengelh@inai.de>
Date: 2022-06-12 10:37:00.984596068 +0200
Unbundle discord-rpc.
---
CMakeLists.txt | 7 +++----
libraries/discordrpc/src/CMakeLists.txt | 2 +-
2 files changed, 4 insertions(+), 5 deletions(-)
Index: gzdoom-g4.8.0/CMakeLists.txt
===================================================================
--- gzdoom-g4.8.0.orig/CMakeLists.txt
+++ gzdoom-g4.8.0/CMakeLists.txt
@@ -328,10 +328,9 @@ if (HAVE_VULKAN)
include_directories(/usr/include/glslang/Public /usr/include/SPIRV)
endif()
-add_subdirectory( libraries/discordrpc )
-set( DRPC_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libraries/discordrpc/include" )
-set( DRPC_LIBRARIES discord-rpc )
-set( DRPC_LIBRARY discord-rpc )
+set( DRPC_INCLUDE_DIR "-I/ignore" )
+set( DRPC_LIBRARIES -ldiscord-rpc )
+set( DRPC_LIBRARY -ldiscord-rpc )
if( ZLIB_FOUND AND NOT FORCE_INTERNAL_ZLIB )
message( STATUS "Using system zlib, includes found at ${ZLIB_INCLUDE_DIR}" )
Index: gzdoom-g4.8.0/libraries/discordrpc/src/CMakeLists.txt
===================================================================
--- gzdoom-g4.8.0.orig/libraries/discordrpc/src/CMakeLists.txt
+++ gzdoom-g4.8.0/libraries/discordrpc/src/CMakeLists.txt
@@ -28,7 +28,7 @@ endif(${BUILD_SHARED_LIBS})
if(WIN32)
add_definitions(-DDISCORD_WINDOWS)
set(BASE_RPC_SRC ${BASE_RPC_SRC} connection_win.cpp discord_register_win.cpp)
- add_library(discord-rpc ${BASE_RPC_SRC})
+ add_library(discord-rpc STATIC ${BASE_RPC_SRC})
if (MSVC)
if(USE_STATIC_CRT)
foreach(CompilerFlag

View File

@ -9,10 +9,10 @@ Use LZMA system libraries instead of bundled code.
tools/zipdir/CMakeLists.txt | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)
Index: gzdoom-g4.6.0/CMakeLists.txt
Index: gzdoom-g4.8.0/CMakeLists.txt
===================================================================
--- gzdoom-g4.6.0.orig/CMakeLists.txt
+++ gzdoom-g4.6.0/CMakeLists.txt
--- gzdoom-g4.8.0.orig/CMakeLists.txt
+++ gzdoom-g4.8.0/CMakeLists.txt
@@ -17,6 +17,7 @@ endif()
list( APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake )
@ -21,16 +21,16 @@ Index: gzdoom-g4.6.0/CMakeLists.txt
# Support cross compiling
option( FORCE_CROSSCOMPILE "Turn on cross compiling." NO )
@@ -378,7 +379,7 @@ else()
@@ -392,7 +393,7 @@ else()
set( BZIP2_LIBRARY bz2 )
endif()
-set( LZMA_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libraries/lzma/C" )
+pkg_check_modules(LZMA REQUIRED clzma)
if( NOT CMAKE_CROSSCOMPILING )
if( NOT CROSS_EXPORTS )
@@ -398,7 +399,6 @@ install(DIRECTORY docs/
@@ -412,7 +413,6 @@ install(DIRECTORY docs/
option( DYN_OPENAL "Dynamically load OpenAL" ON )
@ -38,32 +38,32 @@ Index: gzdoom-g4.6.0/CMakeLists.txt
add_subdirectory( tools )
add_subdirectory( libraries/gdtoa )
add_subdirectory( wadsrc )
Index: gzdoom-g4.6.0/src/CMakeLists.txt
Index: gzdoom-g4.8.0/src/CMakeLists.txt
===================================================================
--- gzdoom-g4.6.0.orig/src/CMakeLists.txt
+++ gzdoom-g4.6.0/src/CMakeLists.txt
@@ -406,7 +406,7 @@ set( ZDOOM_LIBS ${ZDOOM_LIBS} "${ZLIB_LI
if (HAVE_VULKAN)
set( ZDOOM_LIBS ${ZDOOM_LIBS} "glslang" "SPIRV" "OGLCompiler")
--- gzdoom-g4.8.0.orig/src/CMakeLists.txt
+++ gzdoom-g4.8.0/src/CMakeLists.txt
@@ -427,7 +427,7 @@ else()
message( SEND_ERROR "Could not find libvpx" )
endif()
-include_directories( "${ZLIB_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIR}" "${JPEG_INCLUDE_DIR}" "${ZMUSIC_INCLUDE_DIR}" )
+include_directories( "${ZLIB_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIRS}" "${JPEG_INCLUDE_DIR}" "${ZMUSIC_INCLUDE_DIR}" )
-include_directories( "${ZLIB_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIR}" "${JPEG_INCLUDE_DIR}" "${ZMUSIC_INCLUDE_DIR}" "${DRPC_INCLUDE_DIR}")
+include_directories( "${ZLIB_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIRS}" "${JPEG_INCLUDE_DIR}" "${ZMUSIC_INCLUDE_DIR}" "${DRPC_INCLUDE_DIR}")
if( ${HAVE_VM_JIT} )
add_definitions( -DHAVE_VM_JIT )
@@ -1231,7 +1231,7 @@ if( UNIX )
@@ -1297,7 +1297,7 @@ if( UNIX )
endif()
endif()
-target_link_libraries( zdoom ${ZDOOM_LIBS} gdtoa lzma ${ZMUSIC_LIBRARIES} )
+target_link_libraries( zdoom ${ZDOOM_LIBS} gdtoa ${LZMA_LIBRARIES} ${ZMUSIC_LIBRARIES} )
-target_link_libraries( zdoom ${PROJECT_LIBRARIES} gdtoa lzma ${ZMUSIC_LIBRARIES} )
+target_link_libraries( zdoom ${PROJECT_LIBRARIES} gdtoa ${LZMA_LIBRARIES} ${ZMUSIC_LIBRARIES} )
include_directories( .
common/audio/sound
Index: gzdoom-g4.6.0/tools/zipdir/CMakeLists.txt
Index: gzdoom-g4.8.0/tools/zipdir/CMakeLists.txt
===================================================================
--- gzdoom-g4.6.0.orig/tools/zipdir/CMakeLists.txt
+++ gzdoom-g4.6.0/tools/zipdir/CMakeLists.txt
--- gzdoom-g4.8.0.orig/tools/zipdir/CMakeLists.txt
+++ gzdoom-g4.8.0/tools/zipdir/CMakeLists.txt
@@ -1,9 +1,9 @@
cmake_minimum_required( VERSION 3.1.0 )

View File

@ -9,11 +9,11 @@ Use Vulkan/glslang/spirv system libraries instead of bundled code.
src/common/rendering/vulkan/system/vk_builders.cpp | 4 ++++
3 files changed, 6 insertions(+), 4 deletions(-)
Index: gzdoom-g4.7.1/CMakeLists.txt
Index: gzdoom-g4.8.0/CMakeLists.txt
===================================================================
--- gzdoom-g4.7.1.orig/CMakeLists.txt
+++ gzdoom-g4.7.1/CMakeLists.txt
@@ -324,9 +324,7 @@ option(FORCE_INTERNAL_ASMJIT "Use intern
--- gzdoom-g4.8.0.orig/CMakeLists.txt
+++ gzdoom-g4.8.0/CMakeLists.txt
@@ -325,9 +325,7 @@ option(FORCE_INTERNAL_ASMJIT "Use intern
mark_as_advanced( FORCE_INTERNAL_ASMJIT )
if (HAVE_VULKAN)
@ -23,24 +23,24 @@ Index: gzdoom-g4.7.1/CMakeLists.txt
+ include_directories(/usr/include/glslang/Public /usr/include/SPIRV)
endif()
if( ZLIB_FOUND AND NOT FORCE_INTERNAL_ZLIB )
Index: gzdoom-g4.7.1/src/CMakeLists.txt
add_subdirectory( libraries/discordrpc )
Index: gzdoom-g4.8.0/src/CMakeLists.txt
===================================================================
--- gzdoom-g4.7.1.orig/src/CMakeLists.txt
+++ gzdoom-g4.7.1/src/CMakeLists.txt
@@ -404,7 +404,7 @@ add_custom_target( revision_check ALL
--- gzdoom-g4.8.0.orig/src/CMakeLists.txt
+++ gzdoom-g4.8.0/src/CMakeLists.txt
@@ -368,7 +368,7 @@ add_custom_target( revision_check ALL
set( ZDOOM_LIBS ${ZDOOM_LIBS} "${ZLIB_LIBRARIES}" "${JPEG_LIBRARIES}" "${BZIP2_LIBRARIES}" "${CMAKE_DL_LIBS}" )
set( PROJECT_LIBRARIES ${PROJECT_LIBRARIES} "${ZLIB_LIBRARIES}" "${JPEG_LIBRARIES}" "${BZIP2_LIBRARIES}" "${CMAKE_DL_LIBS}" "${DRPC_LIBRARIES}")
if (HAVE_VULKAN)
- set( ZDOOM_LIBS ${ZDOOM_LIBS} "glslang" "SPIRV" "OGLCompiler")
+ set( ZDOOM_LIBS ${ZDOOM_LIBS} -lglslang -lSPIRV -lOGLCompiler)
- set( PROJECT_LIBRARIES ${PROJECT_LIBRARIES} "glslang" "SPIRV" "OGLCompiler")
+ set( PROJECT_LIBRARIES ${PROJECT_LIBRARIES} -lglslang -lSPIRV -lOGLCompiler)
endif()
include_directories( "${ZLIB_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIRS}" "${JPEG_INCLUDE_DIR}" "${ZMUSIC_INCLUDE_DIR}" )
Index: gzdoom-g4.7.1/src/common/rendering/vulkan/system/vk_builders.cpp
# ZMUSIC
Index: gzdoom-g4.8.0/src/common/rendering/vulkan/system/vk_builders.cpp
===================================================================
--- gzdoom-g4.7.1.orig/src/common/rendering/vulkan/system/vk_builders.cpp
+++ gzdoom-g4.7.1/src/common/rendering/vulkan/system/vk_builders.cpp
--- gzdoom-g4.8.0.orig/src/common/rendering/vulkan/system/vk_builders.cpp
+++ gzdoom-g4.8.0/src/common/rendering/vulkan/system/vk_builders.cpp
@@ -25,6 +25,7 @@
#include "renderstyle.h"
#include <ShaderLang.h>

View File

@ -1,3 +1,23 @@
-------------------------------------------------------------------
Thu Jun 23 21:42:38 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
- Add 0001-Revert-load-the-hex-font-as-early-as-possible.patch
-------------------------------------------------------------------
Mon Jun 6 21:22:12 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
- Update to release 4.8.0
* Added Raze-style HUD scaling. Not exposed in the menu yet,
Set hud_oldscale to 0 and use shift with the screen resize
keys to scale the status bar.
* Handle the start/endoom screens with the ingame renderer.
They are now present on all platforms and use the full screen
size of the game.
* Many MBF21 fixes.
* Added the cutscene system from Raze.
- Add gzdoom-discord.patch
- Add 0001-Resolve-build-failure-on-i686-linux.patch
-------------------------------------------------------------------
Sat Apr 23 01:04:05 UTC 2022 - Jan Engelhardt <jengelh@inai.de>

View File

@ -17,7 +17,7 @@
Name: gzdoom
Version: 4.7.1
Version: 4.8.0
Release: 0
Summary: A DOOM source port with graphic and modding extensions
License: GPL-3.0-only
@ -31,7 +31,11 @@ Patch2: gzdoom-lzma.patch
Patch3: gzdoom-asmjit.patch
Patch4: gzdoom-sdlbug.patch
Patch5: gzdoom-vulkan.patch
Patch6: gzdoom-discord.patch
Patch7: 0001-Resolve-build-failure-on-i686-linux.patch
Patch8: 0001-Revert-load-the-hex-font-as-early-as-possible.patch
BuildRequires: cmake >= 2.8.7
BuildRequires: discord-rpc-devel
BuildRequires: gcc-c++
BuildRequires: glslang-devel
BuildRequires: libjpeg-devel
@ -45,6 +49,7 @@ BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(openal)
BuildRequires: pkgconfig(sdl2) >= 2.0.6
BuildRequires: pkgconfig(vpx)
BuildRequires: pkgconfig(vulkan)
BuildRequires: pkgconfig(zlib)
Suggests: freedoom
@ -69,8 +74,9 @@ GZDoom is a port (a modification) of the original Doom source code, featuring:
%prep
%autosetup -n %name-g%version -p1
perl -i -pe 's{__DATE__}{"does not matter when"}g' src/common/platform/posix/sdl/i_main.cpp
perl -i -pe 's{<unknown version>}{%version}g' tools/updaterevision/UpdateRevision.cmake
rm -Rf glslang src/common/rendering/vulkan/thirdparty/vulkan
perl -i -pe 's{__DATE__}{""}g' src/common/platform/posix/sdl/i_main.cpp
mkdir -p extra_include/glslang
%if 0%{?suse_version} && 0%{?suse_version} < 1550
touch extra_include/glslang/build_info.h