Package: darkplaces / 0~20180908~beta1-2

Metadata

Package Version Patches format
darkplaces 0~20180908~beta1-2 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
Remove the CONFIG_CD macro and enable faketracks uncondit.patch | (download)

cl_parse.c | 10 0 + 10 - 0 !
host.c | 10 0 + 10 - 0 !
menu.c | 6 0 + 6 - 0 !
prvm_cmds.c | 4 0 + 4 - 0 !
snd_main.c | 4 0 + 4 - 0 !
vid_shared.c | 2 0 + 2 - 0 !
6 files changed, 36 deletions(-)

 remove the config_cd macro, and enable faketracks unconditionally.

All support for playing back CD-DA has been removed by leaving only the
SDL2 clients, and it is rather unlikely for CD-DA support to come back.
However while doing so, the CONFIG_CD macro was disabled in the makefile
but not the MSVC project, which broke faketracks (i.e. background music
via track003.ogg files) on Linux.

This change removes all #ifdefs for CONFIG_CD as well as its enablement
in the MSVC project, which is basically equivalent to having the feature
always being enabled.

Fixes background music in Quake with ripped music, Nexuiz, Xonotic, and
probably many other DP-based games. Also fixes Xonotic log spam about
gettime(GETTIME_CDTRACK).

git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@12466 d7cf8633-e32d-0410-b094-e92efae38249
(cherry picked from commit 19487ef2ebada39fb6a6a372b30ca4f66bb78ada)
Make CDAudio_Play_byName static.patch | (download)

cd_shared.c | 5 4 + 1 - 0 !
cdaudio.h | 1 0 + 1 - 0 !
2 files changed, 4 insertions(+), 2 deletions(-)

 make cdaudio_play_byname static.

It isn't called by any other compilation units, but only internally by
other cd_shared.c functions; more importantly, it does not check for
music_playlist being active like CDAudio_Play does, which would at the
very least be confusing if someone were to add a string version of
qw_svc_cdtrack (WHY WOULD ONE).

Thus: no functional change here.

git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@12467 d7cf8633-e32d-0410-b094-e92efae38249
(cherry picked from commit 2e9fe4d8070a563ff28a23a76285bad0e795f559)
Remove unused APIs from cdaudio.h.patch | (download)

cd_shared.c | 11 4 + 7 - 0 !
cdaudio.h | 19 0 + 19 - 0 !
2 files changed, 4 insertions(+), 26 deletions(-)

 remove unused apis from cdaudio.h.

These included an internal function of the playlist system which I could
make static as well.

git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@12468 d7cf8633-e32d-0410-b094-e92efae38249
(cherry picked from commit e5856889727824ed7e1ddea777b16c37ea4043ad)
Do not build VBOs on a dedicated server.patch | (download)

model_shared.c | 3 3 + 0 - 0 !
1 file changed, 3 insertions(+)

 do not build vbos on a dedicated server.

Fixes crash at startup of dedicated server in Quake and Xonotic
(probably in everything).

The only reason why this ever worked before was that Mod_BuildVBOs's
main callee R_Mesh_CreateMeshBuffer did a GL2 feature test before
calling into anything VBO related (and on a dedicated server, which does
not initialize GL, the test always returns false); however now that we
require GL32, the feature test is gone and thus the crash happened. An
explicit check for being a dedicated server fixes that.

git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@12469 d7cf8633-e32d-0410-b094-e92efae38249
(cherry picked from commit d65ddd94d473b4925aa589ae2c32a3cf1c250e31)
Fix setinfo.patch | (download)

common.c | 25 17 + 8 - 0 !
1 file changed, 17 insertions(+), 8 deletions(-)

 fix setinfo.

Repro:

]setinfo
]setinfo tea "earl grey, hot"
]setinfo

This kills the "team=none" info variable.

Also, fix some memory accesses beyond end of string; probably can be
reproduced somehow to cause mayhem.

git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@12470 d7cf8633-e32d-0410-b094-e92efae38249
(cherry picked from commit 1ff3bc8e953680793a28ea923f2d1e58cdf2c9f0)
Fix engine not starting on Windows if linked against SDL .patch | (download)

snd_sdl.c | 17 10 + 7 - 0 !
1 file changed, 10 insertions(+), 7 deletions(-)

 fix engine not starting on windows if linked against sdl > 2.0.5

This migrates SDL_OpenAudio -> SDL_OpenAudioDevice et cetera, i.e. with explicit
device handles now.

Changes from DarkplacesRM

git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@12471 d7cf8633-e32d-0410-b094-e92efae38249
(cherry picked from commit 2075ae43356d724bae305ce8fd36ea570718b14a)
Avoid passing NULLs to glBufferSubData.patch | (download)

gl_backend.c | 30 20 + 10 - 0 !
1 file changed, 20 insertions(+), 10 deletions(-)

 avoid passing nulls to glbuffersubdata.

Fixes crash at startup with Linux intel drivers. Can't tell why it doesn't crash
llvmpipe too.

Sorry, I'm not sure if skipping the entire logic of R_BufferData_Store in this
case is right. It does seem to be though.

If this change is a bad idea, please revert.

git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@12472 d7cf8633-e32d-0410-b094-e92efae38249
(cherry picked from commit 364bfae7928352be358f01785420fabf1b6eac03)
Remove code for r_fakelight.patch | (download)

gl_rmain.c | 59 3 + 56 - 0 !
render.h | 1 0 + 1 - 0 !
shader_glsl.h | 7 1 + 6 - 0 !
3 files changed, 4 insertions(+), 63 deletions(-)

 remove code for r_fakelight.

We have r_fullbright_directed now, which uses no shader permutation bit and has
a very similar effect.

Yay, less shaders!

git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@12473 d7cf8633-e32d-0410-b094-e92efae38249
(cherry picked from commit 0ea8f691e05ea968bb8940942197fa627966ff99)
Remove code for r_equalize_entities.patch | (download)

cl_main.c | 59 0 + 59 - 0 !
clvm_cmds.c | 3 0 + 3 - 0 !
csprogs.c | 3 0 + 3 - 0 !
gl_rmain.c | 10 0 + 10 - 0 !
protocol.h | 1 0 + 1 - 0 !
5 files changed, 76 deletions(-)

 remove code for r_equalize_entities*.

r_fullbright_directed and slapping EF_FULLBRIGHT on these entities works a lot
better. I believe other than Xonotic nobody uses this, and Xonotic used it only
to make some fullbright stuff prettier and that's been removed for a few months
now.

After this change, older Xonotic versions will complain about nonexisting flag
Add support for DP_LINK_VORBIS make variable.patch | (download)

BSDmakefile | 12 12 + 0 - 0 !
makefile | 19 19 + 0 - 0 !
makefile.inc | 4 2 + 2 - 0 !
3 files changed, 33 insertions(+), 2 deletions(-)

 add support for dp_link_vorbis make variable

Like the existing DP_LINK_TO_JPEG, this links libvorbisfile in the
normal way instead of dlopening it. Linux distributions like Debian
strongly prefer normal library linking: we have a lot of infrastructure for
tracking correct versioned dependencies in this mode of linking and
avoiding incompatible versions, and package systems like apt mean that
it's trivial to install dependencies.

This uses the existing support for linking to libvorbisfile in the normal
way, which is used on Android and iOS.  The default on other platforms
is the current behaviour: dlopen libvorbisfile.

Add support for DP_LINK_THEORA shared default is dlo.patch | (download)

cap_ogg.c | 58 58 + 0 - 0 !
makefile | 15 15 + 0 - 0 !
makefile.inc | 4 2 + 2 - 0 !
3 files changed, 75 insertions(+), 2 deletions(-)

 add support for dp_link_theora=shared (default is dlopen)

Like the existing DP_LINK_TO_JPEG, this can be configured to
link libtheora etc. in the normal way instead of dlopening them.

image_png.h change name of multiple inclusion guard .patch | (download)

image_png.h | 4 2 + 2 - 0 !
1 file changed, 2 insertions(+), 2 deletions(-)

 image_png.h: change name of multiple-inclusion guard to not
 interfere with <png.h>

This is a prerequisite for using the system <png.h>.

Be a bit more type safe about using libpng.patch | (download)

image_png.c | 44 26 + 18 - 0 !
1 file changed, 26 insertions(+), 18 deletions(-)

 be a bit more type-safe about using libpng

The simplified libpng declarations in DarkPlaces just use "void **" for
various pointer-to-pointer arguments. However, this conflicts with
the system libpng headers (if used), which expect something like
"png_struct **" (which is not considered to be a compatible type by
ISO C), causing compiler warnings. This patch reduces the simplification
a bit by distinguishing between the various pointers-to-struct enough
that system libpng headers do not provoke warnings.

Similarly, assigning a function pointer provokes warnings if the
arguments' types are not exactly as expected. Avoiding those warnings
potentially makes genuine bugs easier to spot, so it seems worth being
a bit more precise.

Add support for DP_LINK_PNG shared default is dlopen.patch | (download)

image_png.c | 112 107 + 5 - 0 !
makefile | 15 15 + 0 - 0 !
makefile.inc | 4 2 + 2 - 0 !
3 files changed, 124 insertions(+), 7 deletions(-)

 add support for dp_link_png=shared (default is dlopen)

Like the existing DP_LINK_TO_JPEG, this can be configured to
link libpng in the normal way instead of dlopening it.

add DP_LINK_CURL option.patch | (download)

libcurl.c | 83 82 + 1 - 0 !
makefile | 15 15 + 0 - 0 !
makefile.inc | 4 2 + 2 - 0 !
3 files changed, 99 insertions(+), 3 deletions(-)

 add dp_link_curl option

In Debian we want library dependencies to work in the conventional way,
since many tools expect that and use it to generate package
dependencies.

Add DP_LINK_FREETYPE2 option.patch | (download)

ft2.c | 20 18 + 2 - 0 !
makefile | 14 14 + 0 - 0 !
makefile.inc | 4 2 + 2 - 0 !
3 files changed, 34 insertions(+), 4 deletions(-)

 add dp_link_freetype2 option

In Debian we want library dependencies to work in the conventional way,
since many tools expect that and use it to generate package
dependencies.

Add support for forcing d0_blind_id and d0_rijndael .patch | (download)

crypto.c | 18 18 + 0 - 0 !
makefile | 8 8 + 0 - 0 !
2 files changed, 26 insertions(+)

 add support for forcing d0_blind_id and d0_rijndael to never be
 dlopen'd

Until these libraries exist as Debian packages, we'd prefer a local copy
(which might not be compatible) to never be loaded accidentally.

Add support for disabling libavw.patch | (download)

cl_video_libavw.c | 20 20 + 0 - 0 !
makefile | 4 4 + 0 - 0 !
makefile.inc | 2 1 + 1 - 0 !
3 files changed, 25 insertions(+), 1 deletion(-)

 add support for disabling libavw

As with all the other dlopen()'d libraries, if we're going to use them,
we should link them properly so dpkg-shlibdeps can pick up the
right versioned dependencies. Xonotic 0.7.0 doesn't seem to ship
this one so we can probably just omit it.

Disable dlopen support and warn if it gets compiled .patch | (download)

sys.h | 2 1 + 1 - 0 !
sys_shared.c | 6 5 + 1 - 0 !
2 files changed, 6 insertions(+), 2 deletions(-)

 disable dlopen support, and warn if it gets compiled in

Fix OS detection of darkplaces makefile to not think.patch | (download)

makefile | 5 5 + 0 - 0 !
1 file changed, 5 insertions(+)

 fix os detection of darkplaces' makefile to not think it's on bsd on
 GNU/kFreeBSD

[The DarkPlaces build system mostly cares about userland, not the kernel,
and GNU/kFreeBSD is equivalent to GNU/Linux in that respect. -smcv]

Fix various typos.patch | (download)

clvm_cmds.c | 2 1 + 1 - 0 !
cmd.c | 2 1 + 1 - 0 !
curves.c | 2 1 + 1 - 0 !
dpdefs/csprogsdefs.qc | 4 2 + 2 - 0 !
gl_draw.c | 2 1 + 1 - 0 !
gl_textures.c | 2 1 + 1 - 0 !
menu.c | 2 1 + 1 - 0 !
netconn.c | 4 2 + 2 - 0 !
progsvm.h | 2 1 + 1 - 0 !
prvm_cmds.c | 8 4 + 4 - 0 !
prvm_edict.c | 6 3 + 3 - 0 !
sbar.c | 2 1 + 1 - 0 !
svvm_cmds.c | 2 1 + 1 - 0 !
sys.h | 2 1 + 1 - 0 !
todo | 2 1 + 1 - 0 !
vid_shared.c | 2 1 + 1 - 0 !
world.c | 4 2 + 2 - 0 !
17 files changed, 25 insertions(+), 25 deletions(-)

 fix various typos

Picked up by Debian's Lintian package-checking tool.

Disable gpu skinning for skeletal models.patch | (download)

gl_rmain.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 disable gpu skinning for skeletal models

This feature is buggy and sometimes causes models to completely
lack animation and can cause very high frame rates.  Xonotic
developers are aware of this and disabling this feature is the
temporary work around. See http://dev.xonotic.org/issues/1459