summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-10-24 18:17:26 +0100
committerSam James <sam@gentoo.org>2022-10-24 20:21:05 +0100
commit8a8f555584d6806e35409cb85f652dcf37e2ed8c (patch)
treeba1331bf4ad4625acd927f09fd79ecd941af6eea
parentapp-misc/mouseremote: fix build w/ Clang 16 (diff)
downloadgentoo-8a8f555584d6806e35409cb85f652dcf37e2ed8c.tar.gz
gentoo-8a8f555584d6806e35409cb85f652dcf37e2ed8c.tar.bz2
gentoo-8a8f555584d6806e35409cb85f652dcf37e2ed8c.zip
games-fps/qudos: almost fix build w/ Clang 16
- Drop various seds, converting them into patches - Fix build with libpng 1.4.0 too - Fix build on modern glibc - Use pkg-config (and therefore fix build on LLD) This nearly got there wrt Clang 16, but then ended up hitting -Wincompatible-function-pointer-types with some USE flags and got fed up. Bug: https://bugs.gentoo.org/874486 Closes: https://bugs.gentoo.org/730806 Closes: https://bugs.gentoo.org/770904 Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r--games-fps/qudos/files/qudos-0.40.1-libjpeg-clash.patch25
-rw-r--r--games-fps/qudos/files/qudos-0.40.1-libpng.patch30
-rw-r--r--games-fps/qudos/files/qudos-0.40.1-libpng15.patch10
-rw-r--r--games-fps/qudos/files/qudos-0.40.1-no-bits-nan.patch12
-rw-r--r--games-fps/qudos/files/qudos-0.40.1-respect-cc.patch15
-rw-r--r--games-fps/qudos/files/qudos-0.40.1-respect-libdir.patch53
-rw-r--r--games-fps/qudos/files/qudos-0.40.1-use-pkg-config.patch30
-rw-r--r--games-fps/qudos/files/qudos-0.40.1-zlib-build.patch12
-rw-r--r--games-fps/qudos/qudos-0.40.1-r1.ebuild (renamed from games-fps/qudos/qudos-0.40.1.ebuild)121
9 files changed, 235 insertions, 73 deletions
diff --git a/games-fps/qudos/files/qudos-0.40.1-libjpeg-clash.patch b/games-fps/qudos/files/qudos-0.40.1-libjpeg-clash.patch
new file mode 100644
index 000000000000..944c1aff856c
--- /dev/null
+++ b/games-fps/qudos/files/qudos-0.40.1-libjpeg-clash.patch
@@ -0,0 +1,25 @@
+From c657cd54baee3bdfe7a92c9b91536bb5c3ddcdd8 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Mon, 24 Oct 2022 17:50:17 +0100
+Subject: [PATCH 2/5] Fix clash with libjpeg
+
+--- a/src/ref_gl/gl_image.c
++++ b/src/ref_gl/gl_image.c
+@@ -912,7 +912,7 @@ jpg_skip_input_data(j_decompress_ptr cinfo, long num_bytes)
+ }
+
+ void
+-jpeg_mem_src(j_decompress_ptr cinfo, byte * mem, int len)
++qudos_jpeg_mem_src(j_decompress_ptr cinfo, byte * mem, int len)
+ {
+ cinfo->src = (struct jpeg_source_mgr *)(*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, sizeof(struct jpeg_source_mgr));
+ cinfo->src->init_source = jpg_null;
+@@ -956,7 +956,7 @@ LoadJPG(char *filename, byte ** pic, int *width, int *height)
+ jpeg_create_decompress(&cinfo);
+
+ /* Feed JPEG memory into the libJpeg Object */
+- jpeg_mem_src(&cinfo, rawdata, rawsize);
++ qudos_jpeg_mem_src(&cinfo, rawdata, rawsize);
+
+ /* Process JPEG header */
+ jpeg_read_header(&cinfo, true);
diff --git a/games-fps/qudos/files/qudos-0.40.1-libpng.patch b/games-fps/qudos/files/qudos-0.40.1-libpng.patch
new file mode 100644
index 000000000000..78fb4cdb7bd5
--- /dev/null
+++ b/games-fps/qudos/files/qudos-0.40.1-libpng.patch
@@ -0,0 +1,30 @@
+--- a/src/ref_gl/gl_local.h
++++ b/src/ref_gl/gl_local.h
+@@ -29,6 +29,7 @@
+ #include <GL/glu.h>
+ #include <GL/glext.h>
+
++#include <zlib.h> /* Z_DEFAULT_COMPRESSION */
+ #include <png.h>
+ #include <jpeglib.h>
+
+Subject: [PATCH] Fix build with libpng 1.4.0
+
+From the 1.4.0 release notes:
+```
+ m. The function png_set_gray_1_2_4_to_8() was removed. It has been
+ deprecated since libpng-1.0.18 and 1.2.9, when it was replaced with
+ png_set_expand_gray_1_2_4_to_8() because the former function also
+ expanded palette images.
+```
+--- a/src/ref_gl/gl_image.c
++++ b/src/ref_gl/gl_image.c
+@@ -1186,7 +1186,7 @@ LoadPNG(char *filename, byte ** pic, int *width, int *height)
+ if (my_png->ColorType == PNG_COLOR_TYPE_PALETTE)
+ png_set_palette_to_rgb(png);
+ if (my_png->ColorType == PNG_COLOR_TYPE_GRAY && my_png->BitDepth < 8)
+- png_set_gray_1_2_4_to_8(png);
++ png_set_expand_gray_1_2_4_to_8(png);
+
+ /* Add alpha channel if present */
+ if (png_get_valid(png, pnginfo, PNG_INFO_tRNS))
diff --git a/games-fps/qudos/files/qudos-0.40.1-libpng15.patch b/games-fps/qudos/files/qudos-0.40.1-libpng15.patch
deleted file mode 100644
index 633215be34be..000000000000
--- a/games-fps/qudos/files/qudos-0.40.1-libpng15.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/src/ref_gl/gl_local.h
-+++ b/src/ref_gl/gl_local.h
-@@ -29,6 +29,7 @@
- #include <GL/glu.h>
- #include <GL/glext.h>
-
-+#include <zlib.h> /* Z_DEFAULT_COMPRESSION */
- #include <png.h>
- #include <jpeglib.h>
-
diff --git a/games-fps/qudos/files/qudos-0.40.1-no-bits-nan.patch b/games-fps/qudos/files/qudos-0.40.1-no-bits-nan.patch
new file mode 100644
index 000000000000..adcffef23c40
--- /dev/null
+++ b/games-fps/qudos/files/qudos-0.40.1-no-bits-nan.patch
@@ -0,0 +1,12 @@
+--- a/src/mods/rogue/g_local.h
++++ b/src/mods/rogue/g_local.h
+@@ -26,9 +26,6 @@
+ //==================================================================
+
+ #ifndef _WIN32
+-#ifdef __linux__
+-#include <bits/nan.h>
+-#endif
+ #define min(a,b) ((a) < (b) ? (a) : (b))
+ #define max(a,b) ((a) > (b) ? (a) : (b))
+ #ifdef __sun__
diff --git a/games-fps/qudos/files/qudos-0.40.1-respect-cc.patch b/games-fps/qudos/files/qudos-0.40.1-respect-cc.patch
new file mode 100644
index 000000000000..92c7028e1890
--- /dev/null
+++ b/games-fps/qudos/files/qudos-0.40.1-respect-cc.patch
@@ -0,0 +1,15 @@
+From 76aef29111d0b8c5e5fffe80833d0c227cca1127 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Mon, 24 Oct 2022 17:54:38 +0100
+Subject: [PATCH 4/5] Respect CC
+
+--- a/Makefile
++++ b/Makefile
+@@ -60,7 +60,6 @@ PREFIX?= $(LOCALBASE)
+ DATADIR?= $(LOCALBASE)/share/quake2
+ LIBDIR?= $(LOCALBASE)/lib/QuDos
+
+-CC?= gcc
+ TYPE?= release
+
+ OGG_LDFLAGS= -lvorbisfile -lvorbis -logg
diff --git a/games-fps/qudos/files/qudos-0.40.1-respect-libdir.patch b/games-fps/qudos/files/qudos-0.40.1-respect-libdir.patch
new file mode 100644
index 000000000000..b3e0cdc5a2f7
--- /dev/null
+++ b/games-fps/qudos/files/qudos-0.40.1-respect-libdir.patch
@@ -0,0 +1,53 @@
+From 1dc6681ee4eea2d1b6e7edd04cf84fd10c407d28 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Mon, 24 Oct 2022 17:54:12 +0100
+Subject: [PATCH 3/5] Respect libdir
+
+--- a/Makefile
++++ b/Makefile
+@@ -55,7 +55,6 @@ WITH_XMMS?=YES # Enable XMMS support (thanks AprQ2).
+
+ # General variables.
+ LOCALBASE?= /usr/local
+-X11BASE?= /usr/X11R6
+ PREFIX?= $(LOCALBASE)
+
+ DATADIR?= $(LOCALBASE)/share/quake2
+@@ -98,34 +97,19 @@ GAME_NAME= game$(ARCH).$(SHLIB_EXT)
+ endif
+
+ # Compilation flags.
+-CFLAGS+= -I/usr/include -I$(LOCALBASE)/include -I$(X11BASE)/include \
++CFLAGS+= -I/usr/include -I$(LOCALBASE)/include \
+ -DGAME_NAME='"$(GAME_NAME)"' -DQUDOS_VERSION='"$(VERSION)"'
+
+ WARNS= -Wshadow -Wpointer-arith -Wcast-align -Waggregate-return -Wstrict-prototypes -Wredundant-decls -Wnested-externs
+
+-ifeq ($(TYPE),debug)
+-CFLAGS+= -Wall -Werror -g -ggdb -DDEBUGGING # $(WARNS)
+-else
+- ifeq ($(TYPE),profile)
+-CFLAGS+= -pg
+- else
+-CFLAGS+= -O3 -ffast-math -funroll-loops -fomit-frame-pointer \
+- -fexpensive-optimizations
+- ifeq ($(ARCH),i386)
+-CFLAGS+= -falign-loops=2 -falign-jumps=2 -falign-functions=2 \
+- -fno-strict-aliasing
+- endif
+- endif
+-endif
+-
+ # Linker flags.
+-LDFLAGS+= -L/usr/lib -L$(LOCALBASE)/lib -L$(X11BASE)/lib -lm
++LDFLAGS+= -lm
+
+ ifeq ($(OSTYPE),Linux)
+ LDFLAGS+= -ldl
+ endif
+
+-REF_LDFLAGS= -L/usr/X11R6/lib -lX11 -lXext -lXxf86vm -lGLU -ljpeg -lpng
++REF_LDFLAGS= -lX11 -lXext -lXxf86vm -lGLU -ljpeg -lpng
+
+ ifeq ($(strip $(WITH_DGA_MOUSE)),YES)
+ REF_LDFLAGS+= -lXxf86dga
diff --git a/games-fps/qudos/files/qudos-0.40.1-use-pkg-config.patch b/games-fps/qudos/files/qudos-0.40.1-use-pkg-config.patch
new file mode 100644
index 000000000000..c2aae64e2b32
--- /dev/null
+++ b/games-fps/qudos/files/qudos-0.40.1-use-pkg-config.patch
@@ -0,0 +1,30 @@
+From 372cfdd9c81043667451fc46bcb8daaa5a5e3620 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Mon, 24 Oct 2022 17:56:14 +0100
+Subject: [PATCH 5/5] Use pkg-config
+
+--- a/Makefile
++++ b/Makefile
+@@ -64,9 +64,9 @@ TYPE?= release
+
+ OGG_LDFLAGS= -lvorbisfile -lvorbis -logg
+
+-SDL_CONFIG?= sdl-config
+-SDL_CFLAGS= $(shell $(SDL_CONFIG) --cflags)
+-SDL_LDFLAGS= $(shell $(SDL_CONFIG) --libs)
++PKG_CONFIG?= pkg-config
++SDL_CFLAGS= $(shell ${PKG_CONFIG} --cflags sdl)
++SDL_LDFLAGS= $(shell ${PKG_CONFIG} --libs sdl)
+
+ ifeq ($(OSTYPE),Linux)
+ ALSA_LDFLAGS= -lasound
+@@ -96,8 +95,7 @@ GAME_NAME= game$(ARCH).$(SHLIB_EXT)
+ endif
+
+ # Compilation flags.
+-CFLAGS+= -I/usr/include -I$(LOCALBASE)/include \
+- -DGAME_NAME='"$(GAME_NAME)"' -DQUDOS_VERSION='"$(VERSION)"'
++CFLAGS+= -DGAME_NAME='"$(GAME_NAME)"' -DQUDOS_VERSION='"$(VERSION)"'
+
+ WARNS= -Wshadow -Wpointer-arith -Wcast-align -Waggregate-return -Wstrict-prototypes -Wredundant-decls -Wnested-externs
+
diff --git a/games-fps/qudos/files/qudos-0.40.1-zlib-build.patch b/games-fps/qudos/files/qudos-0.40.1-zlib-build.patch
new file mode 100644
index 000000000000..d2e1474f2d7b
--- /dev/null
+++ b/games-fps/qudos/files/qudos-0.40.1-zlib-build.patch
@@ -0,0 +1,12 @@
+From bdd75315feed9fbaaf9dcf87f9a7e5eb18ca0b8b Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Mon, 24 Oct 2022 17:50:02 +0100
+Subject: [PATCH 1/5] Fix zlib build
+
+--- a/src/qcommon/unzip/ioapi.h
++++ b/src/qcommon/unzip/ioapi.h
+@@ -1,3 +1,4 @@
++#define OF(x) x
+ /*
+ * ioapi.h -- IO base function header for compress/uncompress .zip files
+ * using zlib + zip or unzip API
diff --git a/games-fps/qudos/qudos-0.40.1.ebuild b/games-fps/qudos/qudos-0.40.1-r1.ebuild
index 24a6a4e01612..2a289162e2d7 100644
--- a/games-fps/qudos/qudos-0.40.1.ebuild
+++ b/games-fps/qudos/qudos-0.40.1-r1.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit desktop flag-o-matic toolchain-funcs
@@ -20,21 +20,26 @@ SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="cdinstall debug dedicated demo dga ipv6 joystick mods opengl qmax oss sdl textures"
-DEPEND="opengl? (
- virtual/opengl
- virtual/glu )
- sdl? ( media-libs/libsdl[joystick?,opengl,sound,video]
- virtual/opengl
- virtual/glu )
- virtual/jpeg:0
+DEPEND="
media-libs/libogg
- media-libs/libpng:0
+ media-libs/libjpeg-turbo
+ media-libs/libpng
media-libs/libvorbis
sys-libs/zlib
x11-libs/libX11
x11-libs/libXext
x11-libs/libXxf86dga
- x11-libs/libXxf86vm"
+ x11-libs/libXxf86vm
+ opengl? (
+ virtual/opengl
+ virtual/glu
+ )
+ sdl? (
+ media-libs/libsdl[joystick?,opengl,sound,video]
+ virtual/opengl
+ virtual/glu
+ )
+"
RDEPEND="
${DEPEND}
cdinstall? ( games-fps/quake2-data )
@@ -45,8 +50,14 @@ RDEPEND="
dir=usr/share/${MY_PN}
PATCHES=(
- "${FILESDIR}"/${P}-libpng15.patch
+ "${FILESDIR}"/${P}-libpng.patch
"${FILESDIR}"/${P}-gnusource.patch
+ "${FILESDIR}"/${P}-zlib-build.patch
+ "${FILESDIR}"/${P}-libjpeg-clash.patch
+ "${FILESDIR}"/${P}-respect-libdir.patch
+ "${FILESDIR}"/${P}-respect-cc.patch
+ "${FILESDIR}"/${P}-use-pkg-config.patch
+ "${FILESDIR}"/${P}-no-bits-nan.patch
)
default_client() {
@@ -81,38 +92,19 @@ pkg_setup() {
if default_client ; then
elog "Selected the ${snd_drv} sound driver as the default."
- echo
fi
}
-src_unpack() {
- unpack "${FILE_STEM}.tar.bz2"
-}
-
src_prepare() {
rm docs/gnu.txt || die
+ default
+
# Change default sound driver and its location
sed -i \
-e "s:\"oss\":\"${snd_drv}\":" \
-e "s:\"\./snd:\"/usr/$(get_libdir)/${PN}/snd:" \
src/client/snd_dma.c || die
-
- sed -i \
- -e 's:jpeg_mem_src:qudos_jpeg_mem_src:g' \
- src/ref_gl/gl_image.c || die
-
- if has_version '>=sys-libs/zlib-1.2.5.1-r1' ; then
- sed -i \
- -e '1i#define OF(x) x' \
- src/qcommon/unzip/ioapi.h || die
- fi
-
- sed -i -e '106,119 s/CFL/LED/' Makefile || die
-
- sed -i -e 's:-L/usr/lib -L$(LOCALBASE)/lib :: ' Makefile || die
-
- default
}
src_configure() {
@@ -122,7 +114,7 @@ src_configure() {
src_compile() {
yesno() {
- usex ${1} YES NO;
+ usex ${1} YES NO
}
local client="YES"
@@ -131,36 +123,39 @@ src_compile() {
local type="release"
use debug && type="debug"
- emake \
- BUILD_QUAKE2="${client}" \
- BUILD_DEDICATED=$(yesno dedicated) \
- BUILD_GLX=$(yesno opengl) \
- BUILD_SDLGL=$(yesno sdl) \
- BUILD_ALSA_SND=NO \
- BUILD_SDL_SND=$(yesno sdl) \
- BUILD_OSS_SND=$(yesno oss) \
- WITH_XMMS=NO \
- WITH_DGA_MOUSE=$(yesno dga) \
- WITH_JOYSTICK=$(yesno joystick) \
- TYPE="${type}" \
- DATADIR="${dir}" \
- LOCALBASE=/usr \
- LIBDIR="/usr/$(get_libdir)"/${PN} \
- WITH_QMAX=$(yesno qmax) \
- BUILD_3ZB2=$(yesno mods) \
- BUILD_CTF=$(yesno mods) \
- BUILD_JABOT=$(yesno mods) \
- BUILD_ROGUE=$(yesno mods) \
- BUILD_XATRIX=$(yesno mods) \
- BUILD_ZAERO=$(yesno mods) \
- WITH_BOTS=$(yesno mods) \
- HAVE_IPV6=$(yesno ipv6) \
- CC="$(tc-getCC)" \
- WITH_X86_ASM=NO \
- WITH_DATADIR=YES \
- WITH_LIBDIR=YES \
- BUILD_DEBUG_DIR=release \
+ local myemakeargs=(
+ BUILD_QUAKE2="${client}"
+ BUILD_DEDICATED=$(yesno dedicated)
+ BUILD_GLX=$(yesno opengl)
+ BUILD_SDLGL=$(yesno sdl)
+ BUILD_ALSA_SND=NO
+ BUILD_SDL_SND=$(yesno sdl)
+ BUILD_OSS_SND=$(yesno oss)
+ WITH_XMMS=NO
+ WITH_DGA_MOUSE=$(yesno dga)
+ WITH_JOYSTICK=$(yesno joystick)
+ TYPE="${type}"
+ DATADIR="${dir}"
+ LOCALBASE=/usr
+ LIBDIR="/usr/$(get_libdir)"/${PN}
+ WITH_QMAX=$(yesno qmax)
+ BUILD_3ZB2=$(yesno mods)
+ BUILD_CTF=$(yesno mods)
+ BUILD_JABOT=$(yesno mods)
+ BUILD_ROGUE=$(yesno mods)
+ BUILD_XATRIX=$(yesno mods)
+ BUILD_ZAERO=$(yesno mods)
+ WITH_BOTS=$(yesno mods)
+ HAVE_IPV6=$(yesno ipv6)
+ CC="$(tc-getCC)"
+ WITH_X86_ASM=NO
+ WITH_DATADIR=YES
+ WITH_LIBDIR=YES
+ BUILD_DEBUG_DIR=release
BUILD_RELEASE_DIR=release
+ )
+
+ emake "${myemakeargs[@]}"
}
src_install() {