diff --git a/_service b/_service
index ea2a180..12cd5fc 100644
--- a/_service
+++ b/_service
@@ -2,8 +2,8 @@
git
git://github.com/coelckers/gzdoom
- g3.7.2
- 3.7.2
+ g4.0.0
+ 4.0.0
wadsrc_extra
diff --git a/g4.1.3.tar.gz b/g4.1.3.tar.gz
new file mode 100644
index 0000000..3b84d34
--- /dev/null
+++ b/g4.1.3.tar.gz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5174c73e553d8ebbb5939255a6bdc56aecd4ff862ed20e544f271d59290a2d2b
+size 13084313
diff --git a/gzdoom-3.7.2.tar.xz b/gzdoom-3.7.2.tar.xz
deleted file mode 100644
index 05948d4..0000000
--- a/gzdoom-3.7.2.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7414160623d46fa56672bea88f0140e86ee70dbfe2fd778cd1e4e5410b74685b
-size 8379076
diff --git a/gzdoom-asmjit.patch b/gzdoom-asmjit.patch
deleted file mode 100644
index 21c3a96..0000000
--- a/gzdoom-asmjit.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From: Jan Engelhardt
-Date: 2019-01-03 14:48:11.831267534 +0100
-
-Nothing else uses asmjit at this time, so save on the extra library.
-(`make install` also misses installing it as a shared library.)
----
- asmjit/CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: gzdoom-3.7.1/asmjit/CMakeLists.txt
-===================================================================
---- gzdoom-3.7.1.orig/asmjit/CMakeLists.txt
-+++ gzdoom-3.7.1/asmjit/CMakeLists.txt
-@@ -97,7 +97,7 @@ set(ASMJIT_SRCS
- asmjit/x86/x86regalloc.cpp
- )
-
--add_library(${ASMJITNAME} ${ASMJIT_SRCS} ${ASMJIT_PUBLIC_HDRS})
-+add_library(${ASMJITNAME} STATIC ${ASMJIT_SRCS} ${ASMJIT_PUBLIC_HDRS})
-
- set_target_properties(${ASMJITNAME} PROPERTIES OUTPUT_NAME asmjit)
-
diff --git a/gzdoom-lzma.patch b/gzdoom-lzma.patch
index bef5dd0..51310c5 100644
--- a/gzdoom-lzma.patch
+++ b/gzdoom-lzma.patch
@@ -1,22 +1,27 @@
+From: Jan Engelhardt
+Date: 2018-01-08 13:48:59+0100
+
+Use LZMA system libraries instead of bundled code.
+
---
CMakeLists.txt | 4 ++--
src/CMakeLists.txt | 4 ++--
tools/zipdir/CMakeLists.txt | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)
-Index: gzdoom-3.7.2/CMakeLists.txt
+Index: gzdoom-4.0.0/CMakeLists.txt
===================================================================
---- gzdoom-3.7.2.orig/CMakeLists.txt
-+++ gzdoom-3.7.2/CMakeLists.txt
+--- gzdoom-4.0.0.orig/CMakeLists.txt
++++ gzdoom-4.0.0/CMakeLists.txt
@@ -12,6 +12,7 @@ endif()
list( APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake )
include( FindPackageHandleStandardArgs )
+include(FindPkgConfig)
- # Produce a warning if XP support will be missing when building a 32 bit target for MSVC.
- if( MSVC )
-@@ -340,7 +341,7 @@ else()
+ # Support cross compiling
+ option( FORCE_CROSSCOMPILE "Turn on cross compiling." NO )
+@@ -355,7 +356,7 @@ else()
set( GME_LIBRARIES gme )
endif()
@@ -25,7 +30,7 @@ Index: gzdoom-3.7.2/CMakeLists.txt
if( NOT CMAKE_CROSSCOMPILING )
if( NOT CROSS_EXPORTS )
-@@ -358,7 +359,6 @@ install(DIRECTORY docs/
+@@ -373,7 +374,6 @@ install(DIRECTORY docs/
DESTINATION ${INSTALL_DOCS_PATH}
COMPONENT "Documentation")
@@ -33,20 +38,20 @@ Index: gzdoom-3.7.2/CMakeLists.txt
add_subdirectory( tools )
add_subdirectory( dumb )
add_subdirectory( gdtoa )
-Index: gzdoom-3.7.2/src/CMakeLists.txt
+Index: gzdoom-4.0.0/src/CMakeLists.txt
===================================================================
---- gzdoom-3.7.2.orig/src/CMakeLists.txt
-+++ gzdoom-3.7.2/src/CMakeLists.txt
-@@ -461,7 +461,7 @@ add_custom_target( revision_check ALL
+--- gzdoom-4.0.0.orig/src/CMakeLists.txt
++++ gzdoom-4.0.0/src/CMakeLists.txt
+@@ -467,7 +467,7 @@ set( ZDOOM_LIBS ${ZDOOM_LIBS} "${ZLIB_LI
+ if (HAVE_VULKAN)
+ set( ZDOOM_LIBS ${ZDOOM_LIBS} "glslang" "SPIRV" "OGLCompiler")
+ endif()
+-include_directories( "${ZLIB_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIR}" "${JPEG_INCLUDE_DIR}" "${GME_INCLUDE_DIR}" )
++include_directories( "${ZLIB_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIRS}" "${JPEG_INCLUDE_DIR}" "${GME_INCLUDE_DIR}" )
- message( STATUS "Fluid synth libs: ${FLUIDSYNTH_LIBRARIES}" )
- set( ZDOOM_LIBS ${ZDOOM_LIBS} "${ZLIB_LIBRARIES}" "${JPEG_LIBRARIES}" "${BZIP2_LIBRARIES}" "${GME_LIBRARIES}" "${ASMJIT_LIBRARIES}" "${CMAKE_DL_LIBS}" )
--include_directories( "${ZLIB_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIR}" "${JPEG_INCLUDE_DIR}" "${GME_INCLUDE_DIR}" "${ASMJIT_INCLUDE_DIR}" )
-+include_directories( "${ZLIB_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIRS}" "${JPEG_INCLUDE_DIR}" "${GME_INCLUDE_DIR}" "${ASMJIT_INCLUDE_DIR}" )
-
- if( SNDFILE_FOUND )
- set( ZDOOM_LIBS ${ZDOOM_LIBS} "${SNDFILE_LIBRARIES}" )
-@@ -1308,7 +1308,7 @@ if( UNIX )
+ if( ${HAVE_VM_JIT} )
+ add_definitions( -DHAVE_VM_JIT )
+@@ -1370,7 +1370,7 @@ if( UNIX )
endif()
endif()
@@ -55,10 +60,10 @@ Index: gzdoom-3.7.2/src/CMakeLists.txt
include_directories( .
g_statusbar
-Index: gzdoom-3.7.2/tools/zipdir/CMakeLists.txt
+Index: gzdoom-4.0.0/tools/zipdir/CMakeLists.txt
===================================================================
---- gzdoom-3.7.2.orig/tools/zipdir/CMakeLists.txt
-+++ gzdoom-3.7.2/tools/zipdir/CMakeLists.txt
+--- gzdoom-4.0.0.orig/tools/zipdir/CMakeLists.txt
++++ gzdoom-4.0.0/tools/zipdir/CMakeLists.txt
@@ -1,9 +1,9 @@
cmake_minimum_required( VERSION 2.8.7 )
diff --git a/gzdoom-staticlibs.patch b/gzdoom-staticlibs.patch
deleted file mode 100644
index 4b4e5d7..0000000
--- a/gzdoom-staticlibs.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From: Jan Engelhardt
-Date: 2018-01-02 19:17:14.364202580 +0100
-
-Some bundled code (which is also an older version and cannot simply be switched
-out just yet) needs to be explicitly set to STATIC, or cmake will generate
-files like "liblzma.so" etc. with no versioning and which are not installed by
-cmake_install.
-
----
- CMakeLists.txt | 1 -
- dumb/CMakeLists.txt | 2 +-
- gdtoa/CMakeLists.txt | 2 +-
- lzma/CMakeLists.txt | 2 +-
- 4 files changed, 3 insertions(+), 4 deletions(-)
-
-Index: gzdoom-g3.2.4/dumb/CMakeLists.txt
-===================================================================
---- gzdoom-g3.2.4.orig/dumb/CMakeLists.txt
-+++ gzdoom-g3.2.4/dumb/CMakeLists.txt
-@@ -24,7 +24,7 @@ endif()
-
- include_directories( include )
-
--add_library( dumb
-+add_library( dumb STATIC
- src/core/unload.c
- src/core/rendsig.c
- src/core/rendduh.c
-Index: gzdoom-g3.2.4/gdtoa/CMakeLists.txt
-===================================================================
---- gzdoom-g3.2.4.orig/gdtoa/CMakeLists.txt
-+++ gzdoom-g3.2.4/gdtoa/CMakeLists.txt
-@@ -35,7 +35,7 @@ if( NOT MSVC AND NOT APPLE )
- set( GEN_FP_DEPS ${CMAKE_CURRENT_BINARY_DIR}/arith.h ${CMAKE_CURRENT_BINARY_DIR}/gd_qnan.h )
- endif()
-
--add_library( gdtoa
-+add_library( gdtoa STATIC
- ${GEN_FP_FILES}
- dmisc.c
- dtoa.c
-Index: gzdoom-g3.2.4/lzma/CMakeLists.txt
-===================================================================
---- gzdoom-g3.2.4.orig/lzma/CMakeLists.txt
-+++ gzdoom-g3.2.4/lzma/CMakeLists.txt
-@@ -34,5 +34,5 @@ else()
- set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_7ZIP_ST" )
- endif()
-
--add_library( lzma ${LZMA_FILES} )
-+add_library( lzma STATIC ${LZMA_FILES} )
- target_link_libraries( lzma )
diff --git a/gzdoom-vulkan.patch b/gzdoom-vulkan.patch
new file mode 100644
index 0000000..343e3de
--- /dev/null
+++ b/gzdoom-vulkan.patch
@@ -0,0 +1,67 @@
+From: Jan Engelhardt
+Date: 2019-04-13 15:02:22.799297208 +0200
+
+Use Vulkan system libraries instead of bundled code.
+
+---
+ CMakeLists.txt | 3 ---
+ src/CMakeLists.txt | 2 +-
+ src/rendering/vulkan/shaders/vk_shader.cpp | 2 +-
+ src/rendering/vulkan/system/vk_builders.cpp | 22 +++++++++++-----------
+ 4 files changed, 13 insertions(+), 16 deletions(-)
+
+Index: gzdoom-4.0.0/CMakeLists.txt
+===================================================================
+--- gzdoom-4.0.0.orig/CMakeLists.txt
++++ gzdoom-4.0.0/CMakeLists.txt
+@@ -287,9 +287,6 @@ option(FORCE_INTERNAL_ASMJIT "Use intern
+ mark_as_advanced( FORCE_INTERNAL_ASMJIT )
+
+ if (HAVE_VULKAN)
+- add_subdirectory( glslang/glslang)
+- add_subdirectory( glslang/spirv )
+- add_subdirectory( glslang/OGLCompilersDLL )
+ endif()
+
+ # Fast math flags, required by some subprojects
+Index: gzdoom-4.0.0/src/CMakeLists.txt
+===================================================================
+--- gzdoom-4.0.0.orig/src/CMakeLists.txt
++++ gzdoom-4.0.0/src/CMakeLists.txt
+@@ -465,7 +465,7 @@ add_custom_target( revision_check ALL
+ message( STATUS "Fluid synth libs: ${FLUIDSYNTH_LIBRARIES}" )
+ set( ZDOOM_LIBS ${ZDOOM_LIBS} "${ZLIB_LIBRARIES}" "${JPEG_LIBRARIES}" "${BZIP2_LIBRARIES}" "${GME_LIBRARIES}" "${CMAKE_DL_LIBS}" )
+ if (HAVE_VULKAN)
+- set( ZDOOM_LIBS ${ZDOOM_LIBS} "glslang" "SPIRV" "OGLCompiler")
++ set( ZDOOM_LIBS ${ZDOOM_LIBS} -lglslang -lSPIRV -lOGLCompiler)
+ endif()
+ include_directories( "${ZLIB_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIRS}" "${JPEG_INCLUDE_DIR}" "${GME_INCLUDE_DIR}" )
+
+Index: gzdoom-4.0.0/src/rendering/vulkan/shaders/vk_shader.cpp
+===================================================================
+--- gzdoom-4.0.0.orig/src/rendering/vulkan/shaders/vk_shader.cpp
++++ gzdoom-4.0.0/src/rendering/vulkan/shaders/vk_shader.cpp
+@@ -4,7 +4,7 @@
+ #include "hwrenderer/utility/hw_shaderpatcher.h"
+ #include "w_wad.h"
+ #include "doomerrors.h"
+-#include
++#include
+
+ VkShaderManager::VkShaderManager(VulkanDevice *device) : device(device)
+ {
+Index: gzdoom-4.0.0/src/rendering/vulkan/system/vk_builders.cpp
+===================================================================
+--- gzdoom-4.0.0.orig/src/rendering/vulkan/system/vk_builders.cpp
++++ gzdoom-4.0.0/src/rendering/vulkan/system/vk_builders.cpp
+@@ -2,8 +2,8 @@
+ #include "vk_builders.h"
+ #include "doomerrors.h"
+ #include "r_data/renderstyle.h"
+-#include
+-#include
++#include
++#include
+
+ static const TBuiltInResource DefaultTBuiltInResource = {
+ /* .MaxLights = */ 32,
diff --git a/gzdoom-waddir.patch b/gzdoom-waddir.patch
index 772b2e4..4c8ad69 100644
--- a/gzdoom-waddir.patch
+++ b/gzdoom-waddir.patch
@@ -7,11 +7,11 @@ Ensure same IWAD directory across all Doom source ports in openSUSE
src/posix/i_system.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-Index: gzdoom-g3.2.4/src/posix/i_system.h
+Index: gzdoom-4.0.0/src/posix/i_system.h
===================================================================
---- gzdoom-g3.2.4.orig/src/posix/i_system.h
-+++ gzdoom-g3.2.4/src/posix/i_system.h
-@@ -40,7 +40,7 @@ struct ticcmd_t;
+--- gzdoom-4.0.0.orig/src/posix/i_system.h
++++ gzdoom-4.0.0/src/posix/i_system.h
+@@ -42,7 +42,7 @@ struct ticcmd_t;
struct WadStuff;
#ifndef SHARE_DIR
@@ -19,4 +19,4 @@ Index: gzdoom-g3.2.4/src/posix/i_system.h
+#define SHARE_DIR "/usr/share/doom/"
#endif
- // Index values into the LanguageIDs array
+
diff --git a/gzdoom.changes b/gzdoom.changes
index 10030b6..342672e 100644
--- a/gzdoom.changes
+++ b/gzdoom.changes
@@ -1,3 +1,44 @@
+-------------------------------------------------------------------
+Sun Jun 9 11:31:24 UTC 2019 - Martin Hauke
+
+- Update to new upstream release 4.1.3
+ * bug fixes for both zscript and vulkan (the vulkan renderer is
+ pretty much complete at this point)
+ * added native double round(double) function
+ * added a crosshair on/off toggle
+ * cl_blockcheats 2 blocks cheats without showing any messages,
+ useful for streamers who happen to be mappers/modders/etc
+- Update to new upstream release 4.1.0
+ * workaround buggy preprocessor in old AMD OpenGL drivers
+ * fix bloom pass regression
+ * fixed scale calculations for option menus.
+ * implement custom post process shaders for vulkan backend
+ * improve error handling during vulkan initialization
+ * fixed inverted logic for displaying the generic log in Strife.
+- Remove patch:
+ * gzdoom-staticlibs.patch (fixed by upstream)
+- Update patch:
+ * gzdoom-vulkan.patch
+
+-------------------------------------------------------------------
+Mon Apr 08 20:31:53 UTC 2019 - Jan Engelhardt
+
+- Update to new upstream release 4.0.0
+ * Experimental Vulkan renderer (via "+vid_backend 0" console
+ option)
+ * Scaling has been changed. GZDoom now runs at a minimum of
+ 640x400. An extra mode (960x600) has been added to replace the
+ lost 320x200 one.
+ * Added "cl_blockcheats" - useful for people who use debugging
+ keys, allows a user to consciously turn off cheats without
+ affecting the serveradd "cl_blockcheats" - useful for people
+ who use debugging keys, allows a user to consciously turn off
+ cheats without affecting the server
+ * "wait" console commands no longer execute inside the level,
+ and can run during intermissions and outside the game.
+- Folded gzdoom-asmjit.patch into gzdoom-staticlibs.patch.
+- Added gzdoom-vulkan.patch.
+
-------------------------------------------------------------------
Wed Jan 23 15:22:45 UTC 2019 - Jan Engelhardt
diff --git a/gzdoom.spec b/gzdoom.spec
index ec0f548..1d02fcd 100644
--- a/gzdoom.spec
+++ b/gzdoom.spec
@@ -17,7 +17,7 @@
Name: gzdoom
-Version: 3.7.2
+Version: 4.1.3
Release: 0
Summary: A DOOM source port with graphic and modding extensions
License: GPL-3.0-only
@@ -25,19 +25,19 @@ Group: Amusements/Games/3D/Shoot
Url: http://zdoom.org/
#Git-Clone: https://github.com/coelckers/gzdoom
-Source: %name-%version.tar.xz
+Source: https://github.com/coelckers/gzdoom/archive/g%{version}.tar.gz
Patch1: gzdoom-waddir.patch
Patch2: gzdoom-wadsrc-extra.patch
-Patch3: gzdoom-staticlibs.patch
Patch4: fl2.patch
Patch5: gzdoom-lzma.patch
-Patch6: gzdoom-asmjit.patch
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
+Patch6: gzdoom-vulkan.patch
BuildRequires: cmake >= 2.8.7
BuildRequires: gcc-c++
+BuildRequires: glslang-devel
BuildRequires: libjpeg-devel
BuildRequires: nasm
BuildRequires: pkg-config
+BuildRequires: spirv-tools-devel
BuildRequires: unzip
BuildRequires: xz
BuildRequires: pkgconfig(bzip2)
@@ -50,6 +50,7 @@ BuildRequires: pkgconfig(libmpg123)
BuildRequires: pkgconfig(openal)
BuildRequires: pkgconfig(sdl2)
BuildRequires: pkgconfig(sndfile)
+BuildRequires: pkgconfig(vulkan)
BuildRequires: pkgconfig(zlib)
%if 0%{?suse_version} >= 1500
BuildRequires: pkgconfig(clzma) >= 17.01
@@ -82,12 +83,16 @@ GZDoom is a port (a modification) of the original Doom source code, featuring:
* Demo record/playback of classic and Boom demos is not supported.
%prep
-%setup -q
-%patch -P 1 -P 2 -P 3 -P 4 -P 6 -p1
+%setup -q -n %{name}-g%{version}
+%patch -P 1 -P 2 -P 4 -p1
%if 0%{?suse_version} >= 1500
%patch -P 5 -p1
%endif
+%if 0%{?suse_version} >= 1550
+%patch -P 6 -p1
+rm -Rfv glslang src/rendering/vulkan/thirdparty/vulkan
+%endif
perl -i -pe 's{__DATE__}{""}g' src/posix/sdl/i_main.cpp
perl -i -pe 's{}{%version}g' \
tools/updaterevision/updaterevision.c