pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

gzdoom: update to gzdoom-4.11.3



Module Name:	pkgsrc-wip
Committed By:	Yorick Hardy <yorickhardy%gmail.com@localhost>
Pushed By:	yhardy
Date:		Thu Nov 23 21:10:41 2023 +0200
Changeset:	91084b5747c97241281db964fd321ee978ed2a41

Modified Files:
	gzdoom/Makefile
	gzdoom/distinfo
Added Files:
	gzdoom/patches/patch-libraries_ZVulkan_CMakeLists.txt
Removed Files:
	gzdoom/patches/patch-src_common_platform_posix_sdl_i__system.cpp

Log Message:
gzdoom: update to gzdoom-4.11.3

GZDoom-4.11.3:

  * fix map WAD check for savegame validation.
  * always save the map WAD in a savegame's metadata, even if it is
    from the IWAD
  * added Wads.GetLumpLength.

GZDoom-4.11.2:

  * fixed savegame file name check.
  * fix UMAPINFO's intermusic being used at the summary screen.
  * widen the special field in FBoomArgs.
  * do not print all GL extensions to the log for the GLES
    renderer.
  * minor backend update from Raze.
  * give error instead of warning for zscript 4.12+ on return count
    mismatch
  * warn when fewer returns than expected are given for a function

GZDoom-4.11.1:

  * fixed actor class creation for DSDHacked
  * fix DSDHacked state creation.
  * fixed DumpCPUInfo() definition for non-x64 platforms
  * update soundfont for all platforms
  * set default backend to Vulkan, if Vulkan fails use GLES instead
    of OpenGL
  * removed several bad casts to 'long'.
  * Fix inheritance for bNoSaveGame
  * make zs Actor.GetReplacement and Actor.GetReplacee clearscope
  * fixed another bad string validation check involving GetChars
  * use copystring instead of strdup when reading environments.
  * disable survey code again.

GZDoom-4.11.0:

Highlights

  * Several new languages: Danish, Norwegian, Swedish and Turkish
  * cleanup of Doom's and Chex Quest's small font to use proper
    character heights for international support.
  * extended all fonts to be capable of handling all European
    languages which are in common use.
  * First stage of DSDHacked support. Tested only with crusader.wad
    for now.
  * The build system was transitioned to optionally use vcpkg,
    which allows building GZDoom on Windows by running a single
    batch file.
  * WebP and QOI support for textures.
  * sanitized the light mode selection to make it a first class
    mapping feature by separating map dependent light mode setup
    from performance related user preferences for the default
    setting.
  * Linux: GTK startup now offers all the options of the Windows
    variant
  * lots of new ZScript features.

Bugfixes

  * screen size settings are now properly saved.
  * fix UMAPINFO boss action clearing.
  * MBF21's BOSS flag now implies NORADIUSDMG.
  * remove memory leak in A_ChangeModel
  * fix OpenGL ES selection on the windows startup dialog

Details

  * Changed the variable type of Crossed3DWater. Seems like there
    was some kind of oversight. Crossed3DWater is an F3DFloor
    pointer, not sector_t.
  * Add ZScript constants used by FallAndSink
  * Switch to miniz from zlib
  * fix for Genesis of Descent E1M2, which is impossible to
    complete on ITYTD/HNTR. I had to decompile the ACS script to
    figure out what was going on, basically at one point you get
    locked into a room and have to kill exactly 3 enemies with TID
    215 for the door to unlock. One of these is a Baron tagged for
    only Medium and Hard, in his place is an Imp #1184 that has all
    the right script setups but is not set to appear on any
    difficulty. The fix is to simply have this imp appear on Easy.
  * fixed the overlapping sector handler in hw_fakeflat.cpp. This
    picked the wrong plane as the proper texture cutoff.
  * fixed: The UDMF loader did not adjust the floor/ceiling overlap
    state after processing UDMF sector plane properties.
  * fixed: EV_DoDonut checked the wrong compatibility variable and
    missed all map specified flags.
  * Fix gameinfo load from same directory as file containing
    gameinfo lump
  * validate partner seg index in LoadGLZSegs before using it
  * added compatibility handler for Phocas Island 2 MAP01.
  * fixed doublebind check with automap. For the automap C_DoKey
    gets called twice, once with the automap bindings and once with
    the regular bindings and doubleclicks.
  * clear the Dehacked string table after passing it to GStrings.
    For some reason std::move does not work here so make sure it
    won't stick around.
  * stop all cutscenes before the ENDOOM screen.
  * fixed: Boom's generalized crushers must stop 8 units above the
    floor. This required changing the special, so a new one was
    added to avoid altering Generic_Crusher.
  * Fix a very rare crash with complex Polyobjects
  * add support for not localizing some text functions, and modify
    menu text fields to use this
  * let Dehacked set the implicit missile flags.
  * fix ammo consumption of powered up Phoenix Rod.
  * add unexplored secret color for overlay automap to the menu
  * made all FileReader implementations 64 bit capable.
  * added a nomirrors compatibility handler and applied it to
    Conf256's CONF55 map. This is for disabling broken plane
    reflection setups.
  * When compat_floormove is enabled prevent sector floor from
    lowering if a thing is stuck in the ceiling (vanilla behavior)
  * fixed M_GetSavegamesPath for Linux.
  * Add Inventory::ModifyBob and Inventory::ModifyBob3D
  * Expose OF_Transient to actors as bNoSaveGame
  * add StartGameDirect function
  * fixed: MBF21's BOSS flag implies NORADIUSDMG.
  * fixed: For Dehacked, A_CPosAttack needs to use a hard coded
    attack sound. This discrepancy is ancient, so the approach used
    for the shotgunner does not work here and some hacks are needed
    to remap the function only for Dehacked.
  * implemented the remaining dynamic structures of dsdhacked
  * dsdhacked: Allow dynamic creation of new actors
  * dsdhacked: allow dynamic creation of new states.
  * add float.equal_epsilon and double.equal_epsilon
  * Allow building gzdoom with Vulkan with either X11 or Wayland
    WSI integration through CMake options
  * use stb-image for JPEG decoding because the old library
    provides no advantage over it.
  * Allow disabling colors for NameAllKeys
  * avoid high stack usage in anmtexture.cpp
  * added DSDA's passover/nopassover keys to the MAPINFO parser.
  * use a string pool to store all filenames and in the file
    system. this avoid lots of small allocations for data that will
    released in bulk later.
  * use the lump cache directly for FileData. This was the final
    puzzle piece to allow using memory mapped files in the future.
  * use better hash function in the file system. This is djb2 which
    is supposedly one of the best string hashing functions around.
  * rewrote dir CCMD using ScanDirectory and avoiding I_ChDir
    entirely.
  * use ScanDirectory in all places where the findfile API was
    used.
  * WebP image support
  * added safeguards against very early access to console variables
    in Cocoa backend
  * Add support for QOI image formats
  * block the centerview CCMD if the player has TOTALLYFROZEN. This
    is deliberately done this way, instead of placing the check
    inside PlayerPawn::CheckPitch, because there may be other
    situations where we don't want to block the centering function
    (APowerFlight::EndEffect being one such case)
  * replaced zstrformat with stb_sprintf.
  * A_Chase CHF_DONTLOOKALLAROUND
  * Add Weapon::ModifyBobLayer , Weapon::ModifyBobLayer3D and
    Weapon::ModifyBobPivotLayer3D
  * allow explicit casts between vectors of different underlying
    types
  * Fixed BlockingLine giving erroneous results
  * add CountSectorTags/CountSectorTags/CountLineIDs/GetLineID
  * Exported reflection functionality. Localized reflection code to
    a single function. Fixed an error where NOSHIELDREFLECT was
    being checked on the wrong Actor. Fixed an oversight where
    MIRRORREFLECT was checking for valid target despite not needing
    one.
  * Added ShadowAimFactor and ShadowPenaltyFactor. These properties
    allow to specify how much an actors' aim is degraded when
    shooting at a shadow actor. And how much the shadow actor
    itself affects the shooters' aim, respectively.
  * Added MF9_SHADOWAIMVERT. This flag causes the vertical aiming
    of monsters to also be affected when they aim at shadow actors.
  * Added MF9_SHADOWBLOCK. Actors in the line of fire with this
    flag trigger the MF_SHADOW aiming penalty. The shooter needs to
    have MF9_DOSHADOWBLOCK to check for actors with this flag.
  * Added MF9_SHADOWAIM. This flag allows actors with
    MF6_SEEINVISIBLE to still get an aim penalty by trying to shoot
    at a shadow actor.
  * Added damage property to earthquakes.
  * Added damage and thrust multipliers to quakes.
  * Added QF_DAMAGEFALLOFF. This flag makes it so that the damage
    and actor thrusting of earthquakes fades with distance like the
    screen shake effect does.
  * Added (XF/RADF)_CIRCULAR. This flag makes explosions use a
    spherical radius, instead of a cubic one. Only took almost 30
    years.
  * Added (XF/RADF)_NOALLIES. This flag allows explosions to not
    harm any actors that are friendly to its' source.
  * Added (XF/RADF)_THRUSTLESS. This flag allows for explosions
    that do not thrust any of the actors caught in the blast.
  * Allow custom MessageBox menu selector
  * Individual Joystick Enable/Disable Toggles
  * add QualifiedName to VMFunction and allocate these static names
    from the class data memory arena instead of using FStrings.
  * null pointer type checks in the VM added to avoid crash on bad
    codegen.
  * Expanded Service's Get functions to pass in name parameter.
  * Added GetName(UI/Data) to Service class.
  * make all legacy light modes except 'Doom' and the software
    rendering emulation MAPINFO only. A CVAR still exists for
    testing but its value won't be saved to the config.
  * MAPINFO can not enforce any of the two software light modes, as
    low end users require the option to change this to the
    'performance' setting.
  * changed lightmode menu options: user can only select between
    "performance', 'software' and 'vanilla'. 'performance' is the
    old 'Doom' mode which is still needed to speed things up on low
    end hardware.
  * fix the ammocount parameter in Weapon.CheckAmmo
  * fix UMAPINFO boss action clearing. This did not handle the case
    where the actions were cleared without adding new ones and also
    did not clear the MBF21 boss action flags.
  * remove memory leak in A_ChangeModel
  * made some changes to vectors.h so that it can be used without
    the floating point function replacements.
  * Add Voodoo Zombie Compatflag
  * remove vid_gpuswitch and all its handling; it is only as of now
    useful in old versions of Windows 7/8/10 which are no longer
    supported
  * added MaxEffectTics field to Powerup
  * adapted font system to properly handle Turkish. Those i's are
    really messy, especially when dealing with allcaps or pure
    lowercase fonts.
  * made D_WriteUserInfoStrings memory safe.
  * Fix TArray allocating 0 bytes in constructor
  * Add dynamic lights to software slope drawer
  * use uniform buffers for dynamic lights everywhere. Branching on
    SSBO content does not work that well on NVidia so it is better
    disabled. So far only implemented for OpenGL Vulkan needs more
    work.
  * Fix Software Slope Rendering for non-1.2 pixel ratios
  * add the flags MINVISIBLE and MVISBLOCKED
  * Extend pseudo-generics system used by maps to dynarrays
  * add RedirectCVAR directive for loading alternate maps based on
    a Bool CVAR setting
  * Fixes bones when using OpenGL 3.3 (UBO bone data)
  * validate the buffer size in HWViewpointBuffer::Set2D.
  * Fixed a bug where calling an invalid virtual function would
    cause a crash.
  * Add cvars to sprite shadows progressively according to thing
    <-> floor distance
  * Added OnEngineInitialize() for static event handlers
  * cleanup of the Doom and Chex Quest small fonts' discritical
    characters
  * Implement antialiasing for automap lines
  * Map::GetIfExists and Map::CheckValue
  * Fixed global TerrainDef array not being exported correctly
  * alt HUD: use NewSmallFont for drawing player's coordinates if
    ui_generic is enabled
  * Increase slider precision for mouse sensitivity settings
  * Use a slider to allow specifying max FPS with more precision
  * Check all ACS functions for minimum number of arguments.
  * Fixed SpawnForced not respecting the minimum declared in
    zspecial.acs. (https://forum.zdoom.org/viewtopic.php?t=77027)
  * Exported LinePortals to ZScript
  * cleaned up the pitch management in the sound backend. This now
    treats all pitch methods equally instead of the preferential
    treatment of Doom's original pitch hack. Most importantly, the
    sound channel now stores the pitch as a floating point value
    instead of 9.7 fixed point.
  * snd_pitched now also gets checked in the sound engine, not the
    low level interface.
  * Fix Y position of characters in monospace fonts
  * Added all of the missing player cheats to the SetPlayerProperty
    special.
  * Added APROP_WaterDepth.
  * Converted A_Quake(Ex) intensity parameters from ints to
    doubles.
  * Add missing error for mapinfo tonemap
  * Add Tonemap support for Unclamped lighting mode
  * Add Alternate Light Blending Options
  * gldefs: update Freedoom definitions.
  * CCMD listmaps: Colorize maps loaded from pwads in blue text
  * Fix MapIterator<X, String>::GetValue
  * Fixed a bug where static events would fail to halt propagation.
  * Fix diffuse-only material shaders not applying.
  * Add sv_noplayerclip to allow players to walk through and shoot
    each other (only in coop)
  * optimized sheet font texture generation. Instead of reloading
    the base image over and over again, let's cache it so that less
    time is needed for each single character.
  * changed CreatePalettedPixels to allow return of static pixel
    data without reallocation and copying.
  * fixed buffer size checks for raw textures.
  * Prevent important messages from being accidentally filtered.
  * Updated the WOPN banks collection
  * Added FlyBob Multiplier for Player
  * Added WaterClimbSpeed Property to Players
  * Fixed custom screen height and width not saving.
  * Additional lock-related ZScript functions.
  * Key.IsLockDefined: returns whether a lock number is valid (can
    be unlocked) or belongs to a "does not work" door.
  * Key.GetMapColorForLock: returns the automap color for a lock
    number (or -1 if the lock isn't valid).
  * Key.GetMapColorForKey: likewise, but for a specific key.
  * Fix FxMultiAssignDecl type
  * fix OpenGL ES selection on the windows startup dialog
  * Multi-Assign Declarations
  * Fixed the ACS PLAYERINFO_FVIEWBOB to be a bool instead of a
    double.
  * Add vulkan pipeline cache
  * Update and clean up UE1 model loader.
  * Expose StripLeft and StripLeftRight to ZScript
  * Fix StripLeftRight
  * Error out instead of crashing for vector out variables
  * optimizations for the sound system and texture manager.
  * Added FOV Interpolation
  * Added toggle control for weapon bob while flying
  * add BobWeapon3D
  * Exposed Box and PointOnLineSide
  * Add support for Vector types as properties
  * removed bogus errno check from Dehacked parser.
  * Fixed IsActorPlayingSound's default argument
  * Fix wrong assumptions about actor initialization in Map/
    MapIterator
  * fixed GC::FullGC not collecting everything anymore.
  * extended all fonts to contain all characters used by European
    languages
  * Fix Quicksave Rotation
  * Add all the functionality from the win32 startup window to the
    GTK version

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=91084b5747c97241281db964fd321ee978ed2a41

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 gzdoom/Makefile                                    |  7 ++++-
 gzdoom/distinfo                                    |  8 +++---
 .../patches/patch-libraries_ZVulkan_CMakeLists.txt | 18 ++++++++++++
 ...tch-src_common_platform_posix_sdl_i__system.cpp | 33 ----------------------
 4 files changed, 28 insertions(+), 38 deletions(-)

diffs:
diff --git a/gzdoom/Makefile b/gzdoom/Makefile
index 69556dc9a9..15891e365f 100644
--- a/gzdoom/Makefile
+++ b/gzdoom/Makefile
@@ -5,7 +5,7 @@ PKGNAME=	${GITHUB_PROJECT}-${DISTNAME:S/^g//}
 CATEGORIES=	games
 MASTER_SITES=	${MASTER_SITE_GITHUB:=ZDoom/}
 GITHUB_PROJECT=	gzdoom
-GITHUB_TAG=	g4.10.0
+GITHUB_TAG=	g4.11.3
 DIST_SUBDIR=	${GITHUB_PROJECT}
 
 MAINTAINER=	pkgsrc-users%NetBSD.org@localhost
@@ -15,6 +15,9 @@ LICENSE=	gnu-gpl-v3
 
 WRKSRC=		${WRKDIR}/gzdoom-${GITHUB_TAG}
 USE_LANGUAGES=	c c++
+USE_TOOLS+=	pkg-config
+CMAKE_ARGS+=	-DDL_LDFLAGS="${DL_LDFLAGS}"
+CMAKE_ARGS+=	-DDL_LIBS="${DL_LIBS}"
 CXXFLAGS+=	-D PKGSRC_DOOM_PATH='"${PREFIX}/share/games/doom"'
 
 .include "../../archivers/bzip2/buildlink3.mk"
@@ -24,6 +27,8 @@ CXXFLAGS+=	-D PKGSRC_DOOM_PATH='"${PREFIX}/share/games/doom"'
 .include "../../devel/libexecinfo/buildlink3.mk"
 .include "../../devel/zlib/buildlink3.mk"
 .include "../../graphics/MesaLib/buildlink3.mk"
+.include "../../graphics/libwebp/buildlink3.mk"
+.include "../../mk/dlopen.buildlink3.mk"
 .include "../../mk/jpeg.buildlink3.mk"
 .include "../../multimedia/libvpx/buildlink3.mk"
 # .include "../../parallel/openmp/buildlink3.mk"
diff --git a/gzdoom/distinfo b/gzdoom/distinfo
index d6e05675c4..5b153b30f2 100644
--- a/gzdoom/distinfo
+++ b/gzdoom/distinfo
@@ -1,8 +1,8 @@
 $NetBSD$
 
-BLAKE2s (gzdoom/g4.10.0.tar.gz) = 178ae2f7f527c8523141b340866718055286a5248c52dbb1ac7d4f79993d8057
-SHA512 (gzdoom/g4.10.0.tar.gz) = fd2f6e34aaa59e3d153de6359211082398878dae3d396ab55fc736f94e1378d5e03193d7912a29a531cf1dc255d30af63ad1c6472784e3745db6ac4a3a9e6fe6
-Size (gzdoom/g4.10.0.tar.gz) = 24319337 bytes
+BLAKE2s (gzdoom/g4.11.3.tar.gz) = cdd7398a1ee62d997714b27ed43913e1ff1a88eb20951a5261f81cb62fc46e39
+SHA512 (gzdoom/g4.11.3.tar.gz) = 0abe69f85e2f0946e92d6ae2bbc4710c1e184a6748d4ef8a5f0c0daf31b67779b9085154877467144da650314e6c8dcde429cd47db06b17ec1ea66c63759568d
+Size (gzdoom/g4.11.3.tar.gz) = 24354699 bytes
+SHA1 (patch-libraries_ZVulkan_CMakeLists.txt) = 5207f7172aad936f021f079931a48257a215e845
 SHA1 (patch-src_common_console_c__console.h) = 887fa404253f20e92f798120e4a1dcf9fed4c4c7
-SHA1 (patch-src_common_platform_posix_sdl_i__system.cpp) = fef2eb02c0a30bfe9b9a1b7b55b0bb1d9b45c3ed
 SHA1 (patch-src_gameconfigfile.cpp) = 4c30c413e7d4bc3b25e940f8d5cb7e5dabbc8092
diff --git a/gzdoom/patches/patch-libraries_ZVulkan_CMakeLists.txt b/gzdoom/patches/patch-libraries_ZVulkan_CMakeLists.txt
new file mode 100644
index 0000000000..09a1717029
--- /dev/null
+++ b/gzdoom/patches/patch-libraries_ZVulkan_CMakeLists.txt
@@ -0,0 +1,18 @@
+$NetBSD$
+
+Use the platform appropriate dlopen flags and libraries.
+
+--- libraries/ZVulkan/CMakeLists.txt.orig	2023-10-26 19:18:50.000000000 +0000
++++ libraries/ZVulkan/CMakeLists.txt
+@@ -188,9 +188,9 @@ if(WIN32)
+ 	add_definitions(-DUNICODE -D_UNICODE)
+ else()
+ 	set(ZVULKAN_SOURCES ${ZVULKAN_SOURCES} ${ZVULKAN_UNIX_SOURCES})
+-	set(ZVULKAN_LIBS ${CMAKE_DL_LIBS} -ldl)
++	set(ZVULKAN_LIBS ${CMAKE_DL_LIBS} ${DL_LIBS})
+ 	add_definitions(-DUNIX -D_UNIX)
+-	add_link_options(-pthread)
++	add_link_options(-pthread ${DL_LDFLAGS})
+ endif()
+ 
+ if(MSVC)
diff --git a/gzdoom/patches/patch-src_common_platform_posix_sdl_i__system.cpp b/gzdoom/patches/patch-src_common_platform_posix_sdl_i__system.cpp
deleted file mode 100644
index 368a78420e..0000000000
--- a/gzdoom/patches/patch-src_common_platform_posix_sdl_i__system.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-$NetBSD$
-
---- src/common/platform/posix/sdl/i_system.cpp.orig	2022-12-04 14:35:20.000000000 +0000
-+++ src/common/platform/posix/sdl/i_system.cpp
-@@ -62,6 +62,7 @@
- #include "i_sound.h"
- #include "i_interface.h"
- #include "v_font.h"
-+#include "c_console.h"
- #include "c_cvars.h"
- #include "palutil.h"
- #include "st_start.h"
-@@ -408,7 +409,8 @@ FString I_GetFromClipboard (bool use_pri
- 
- FString I_GetCWD()
- {
--	char* curdir = get_current_dir_name();
-+	char* curdir;
-+	curdir = getcwd(NULL, 0);
- 	if (!curdir) 
- 	{
- 		return "";
-@@ -447,8 +449,9 @@ unsigned int I_MakeRNGSeed()
- 
- void I_OpenShellFolder(const char* infolder)
- {
--	char* curdir = get_current_dir_name();
-+	char* curdir;
- 
-+	curdir = getcwd(NULL, 0);
- 	if (!chdir(infolder))
- 	{
- 		Printf("Opening folder: %s\n", infolder);


Home | Main Index | Thread Index | Old Index