Bug#1067108: alien-arena: FTBFS with -Werror=implicit-function-declaration

Patrice Duroux patrice.duroux at gmail.com
Sat Nov 16 19:15:04 GMT 2024


Package: alien-arena
Version: 7.71.3+dfsg-3
Followup-For: Bug #1067108
Control: tags -1 ftbfs

Hi,

Here is a fix to upgrade the package to 7.71.7 which will also allow
fix this build problem.
I commented out the irc.patch without removing it because I don't know if it's
still necessary to change the default.
There is a new way to do this in 7.71.7, but I haven't investigated it.

Regards,
Patrice


-- System Information:
Debian Release: trixie/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'unstable'), (1, 'experimental-debug'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.12-rc6-amd64 (SMP w/12 CPU threads; PREEMPT)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages alien-arena depends on:
ii  alien-arena-data    7.71.3+ds-1
ii  libc6               2.40-3
ii  libcurl3t64-gnutls  8.11.0-1
ii  libfreetype6        2.13.3+dfsg-1
ii  libgcc-s1           14.2.0-8
ii  libjpeg62-turbo     1:2.1.5-3+b1
ii  libminizip1t64      1:1.3.dfsg+really1.3.1-1+b1
ii  libopenal1          1:1.23.1-4+b2
ii  libstdc++6          14.2.0-8
ii  libvorbisfile3      1.3.7-2+b1
ii  libx11-6            2:1.8.10-2
ii  libxxf86vm1         1:1.1.4-1+b3
ii  zlib1g              1:1.3.dfsg+really1.3.1-1+b1

alien-arena recommends no packages.

alien-arena suggests no packages.

-- no debconf information
-------------- next part --------------
diff --git a/debian/alien-arena-server.docs b/debian/alien-arena-server.docs
index ef46410..4828571 100644
--- a/debian/alien-arena-server.docs
+++ b/debian/alien-arena-server.docs
@@ -1,2 +1,3 @@
-docs/README.txt
-unix_dist/README
+usr/share/doc/alienarena/README
+usr/share/doc/alienarena/COPYING
+usr/share/doc/alienarena/NEWS
diff --git a/debian/alien-arena.docs b/debian/alien-arena.docs
index ef46410..4828571 100644
--- a/debian/alien-arena.docs
+++ b/debian/alien-arena.docs
@@ -1,2 +1,3 @@
-docs/README.txt
-unix_dist/README
+usr/share/doc/alienarena/README
+usr/share/doc/alienarena/COPYING
+usr/share/doc/alienarena/NEWS
diff --git a/debian/alien-arena.install b/debian/alien-arena.install
index bd81a70..93ca6ca 100644
--- a/debian/alien-arena.install
+++ b/debian/alien-arena.install
@@ -1,4 +1,4 @@
 usr/bin/alienarena usr/lib/games/alien-arena
 debian/scripts/alien-arena usr/games
-unix_dist/alien-arena.desktop usr/share/applications
-unix_dist/alien-arena.png usr/share/icons/hicolor/256x256/apps
+usr/share/doc/alienarena/alien-arena.desktop usr/share/applications
+usr/share/icons/alienarena/alien-arena.png usr/share/icons/hicolor/256x256/apps
diff --git a/debian/changelog b/debian/changelog
index 4495d90..ee1dd2f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,22 @@
+alien-arena (7.71.7+dfsg-1) UNRELEASED; urgency=medium
+
+  * New upstream version 7.71.7+dfsg
+  * Update Files-Excluded in d/copyright.
+  * Update d/patches:
+      - Add gcc14.patch. (Closes: #1067108)
+      - Add minizip.patch to avoid the inner copy.
+      - Remove odeconfig.patch (obsoleted).
+      - Remove http11.patch (obsoleted).
+      - Remove kill-runaway-crx-ded.patch (obsoleted).
+      - Refresh launch-server_tool_debianization.patch.
+  * Update d/*.docs and d/*.install (less missings).
+  * Change homepage in d/control.
+  * Refresh Build-Depends.
+  * Bump Standards-Version to 4.7.0.
+  * Set Rules-Requires-Root: no.
+
+ -- Patrice Duroux <patrice.duroux at gmail.com>  Sat, 16 Nov 2024 15:34:24 +0100
+
 alien-arena (7.71.3+dfsg-3) unstable; urgency=medium
 
   * Team upload.  
diff --git a/debian/control b/debian/control
index d390591..6277eaa 100644
--- a/debian/control
+++ b/debian/control
@@ -7,7 +7,7 @@ Build-Depends:
  debhelper-compat (= 13),
  sharutils,
  libglu1-mesa-dev,
- libgl1-mesa-dev,
+ libgl-dev,
  libjpeg-dev,
  libpng-dev,
  libxxf86vm-dev,
@@ -17,10 +17,12 @@ Build-Depends:
  libcurl4-gnutls-dev,
  libopenal-dev,
  libvorbis-dev,
- libfreetype6-dev,
- pkg-config,
-Standards-Version: 4.5.0
-Homepage: https://martianbackup.com
+ libfreetype-dev,
+ libminizip-dev,
+ pkgconf,
+Standards-Version: 4.7.0
+Rules-Requires-Root: no
+Homepage: https://www.alienarena.org/
 Vcs-Git: https://salsa.debian.org/games-team/alien-arena.git
 Vcs-Browser: https://salsa.debian.org/games-team/alien-arena
 
@@ -30,7 +32,7 @@ Depends:
  ${misc:Depends},
  ${shlibs:Depends},
  libopenal1,
- alien-arena-data (>= 7.71.3~),
+ alien-arena-data (>= 7.71.7~),
 Description: Standalone 3D first person online deathmatch shooter
  ALIEN ARENA is a standalone 3D first person online death-match shooter crafted
  from the original source code of Quake II and Quake III, released by id
@@ -47,7 +49,7 @@ Depends:
  ${misc:Depends},
  ${shlibs:Depends},
  ruby,
- alien-arena-data (>= 7.71.3~),
+ alien-arena-data (>= 7.71.7~),
 Description: Dedicated server for Alien Arena
  ALIEN ARENA is a standalone 3D first person online death-match shooter crafted
  from the original source code of Quake II and Quake III, released by id
diff --git a/debian/patches/gcc14.patch b/debian/patches/gcc14.patch
new file mode 100644
index 0000000..9dbdc50
--- /dev/null
+++ b/debian/patches/gcc14.patch
@@ -0,0 +1,116 @@
+--- a/source/game/g_unlagged.c
++++ b/source/game/g_unlagged.c
+@@ -22,6 +22,7 @@
+ #endif
+ 
+ #include "g_local.h"
++void	Cvar_SetValue (const char *var_name, float value);
+ 
+ /*
+ ============
+--- a/source/client/cl_updates.c
++++ b/source/client/cl_updates.c
+@@ -250,14 +250,14 @@
+ 	easyhandle = curl_easy_init();
+ 
+ 	// Set Http version to 1.1, somehow this seems to be needed for the multi-download
+-	if (curl_easy_setopt(easyhandle, CURLOPT_HTTP_VERSION, (long) CURL_HTTP_VERSION_1_1) != CURLE_OK) return false;
++	if (curl_easy_setopt(easyhandle, CURLOPT_HTTP_VERSION, (long) CURL_HTTP_VERSION_1_1) != CURLE_OK) return;
+ 
+ 	// Follow redirects to https - but this doesn't seem to be working
+-	if (curl_easy_setopt(easyhandle, CURLOPT_FOLLOWLOCATION, 1L) != CURLE_OK) return false;
+-	if (curl_easy_setopt(easyhandle, CURLOPT_MAXREDIRS, 3L) != CURLE_OK) return false;
++	if (curl_easy_setopt(easyhandle, CURLOPT_FOLLOWLOCATION, 1L) != CURLE_OK) return;
++	if (curl_easy_setopt(easyhandle, CURLOPT_MAXREDIRS, 3L) != CURLE_OK) return;
+ 	
+ 	// Don't verify that the host matches the certificate
+-	if (curl_easy_setopt(easyhandle, CURLOPT_SSL_VERIFYHOST, 0L) != CURLE_OK) return false;
++	if (curl_easy_setopt(easyhandle, CURLOPT_SSL_VERIFYHOST, 0L) != CURLE_OK) return;
+ 
+ 	Com_sprintf(url, sizeof(url), "%s", cl_latest_game_version_url->string);
+ 
+--- a/source/client/qmenu.c
++++ b/source/client/qmenu.c
+@@ -185,7 +185,7 @@
+ 	menufield_s *f;
+ 	extern int keydown[];
+ 	
+-	f = cursor.menuitem;
++	f = (menufield_s *)cursor.menuitem;
+ 	
+ 	if (f == NULL || f->generic.type != MTYPE_FIELD)
+ 		return false;
+@@ -1001,7 +1001,7 @@
+ 	if (menu->maxheight != 0 && CHASELINK(menu->height) > menu->maxheight && cursor.x > right)
+ 	{
+ 		// select the scrollbar
+-		item = &menu->vertical_scrollbar;
++		item = (menuitem_s *)&menu->vertical_scrollbar;
+ 		Cursor_MouseSelectItem (item);
+ 	}
+ 	else for ( i = 0; i < menu->nitems; i++ )
+@@ -1464,7 +1464,7 @@
+ 
+ void Menu_SlideItem (int dir)
+ {
+-	menucommon_s *item = cursor.menuitem;
++	menucommon_s *item = (menucommon_s *)cursor.menuitem;
+ 	
+ 	if ( item )
+ 	{
+@@ -1512,7 +1512,7 @@
+ 	else if ( s->curvalue < s->minvalue )
+ 		s->curvalue = s->minvalue;
+ 
+-	Menu_ActivateItem (s);
++	Menu_ActivateItem ((menuitem_s *)s);
+ }
+ 
+ void Slider_Draw (menuslider_s *s, FNT_font_t font)
+@@ -1571,7 +1571,7 @@
+ 			s->curvalue--;
+ 	}
+ 
+-	Menu_ActivateItem (s);
++	Menu_ActivateItem ((menuitem_s *)s);
+ }
+ 
+ void SpinControl_Draw (menulist_s *s, FNT_font_t font)
+--- a/source/client/menu.c
++++ b/source/client/menu.c
+@@ -4247,7 +4247,7 @@
+ 	s_servers[serverindex].serverinfo_columns[0][1].generic.type		= MTYPE_TEXT;
+ 	s_servers[serverindex].serverinfo_columns[0][1].generic.flags	= QMF_RIGHT_COLUMN;
+ 	
+-	Menu_MakeTable (&s_servers[serverindex].serverinfo_table, rows, 2, sizes, s_servers[serverindex].serverinfo_rows, s_servers[serverindex].serverinfo_rows, s_servers[serverindex].serverinfo_columns, contents);
++	Menu_MakeTable (&s_servers[serverindex].serverinfo_table, rows, 2, sizes, s_servers[serverindex].serverinfo_rows, s_servers[serverindex].serverinfo_rows, s_servers[serverindex].serverinfo_columns, (const char **)contents);
+ 	
+ 	Menu_AddItem (&s_servers[serverindex].serverinfo_submenu, &s_servers[serverindex].serverinfo_table);
+ 	
+@@ -4346,7 +4346,7 @@
+ 						mservers[serverindex].players, SVDATA_PLAYERINFO,
+ 						sizes, &s_servers[serverindex].playerlist_header,
+ 						s_servers[serverindex].playerlist_rows, s_servers[serverindex].playerlist_columns,
+-						local_player_info_ptrs
++						(const char **)local_player_info_ptrs
+ 					);
+ 	
+ 	Menu_AddItem (&s_servers[serverindex].playerlist_submenu, &s_servers[serverindex].playerlist_scrollingmenu);
+@@ -5739,7 +5739,7 @@
+ 		Cvar_ForceSet("dedicated", "0");
+ #endif
+ 		Cvar_Set("sv_maplist", startmap);
+-		Cbuf_AddText (sprintf("setmaster %s %s\n", DEFAULT_MASTER_1, DEFAULT_MASTER_2));
++		Cbuf_AddText (va("setmaster %s %s\n", DEFAULT_MASTER_1, DEFAULT_MASTER_2));
+ 	}
+ 	Cvar_SetValue( "skill", s_skill_box.curvalue );
+ 	Cvar_SetValue( "g_antilagprojectiles", s_antilagprojectiles_box.curvalue);
+@@ -7147,7 +7147,7 @@
+ 		s->curvalue = s->minvalue;
+ 
+ 	//TO DO - this generates a scary warning - incompatible menuslider_s vs menuitem_s * - there are several similar instances in the menu code.
+-	Menu_ActivateItem (s);
++	Menu_ActivateItem ((menuitem_s *)s);
+ }
+ 
+ static void Menu_DragSlideItem (void)
diff --git a/debian/patches/http11.patch b/debian/patches/http11.patch
deleted file mode 100644
index 7255a06..0000000
--- a/debian/patches/http11.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-description: Force http 1.1 for http download
-author: Raoul de Raadt <raoulderaadt at tiscali.nl>
-
---- a/source/client/cl_http.c
-+++ b/source/client/cl_http.c
-@@ -134,6 +134,9 @@
- 	// set handle to default state
- 	curl_easy_reset(curl);
- 
-+	// Set Http version to 1.1, somehow this seems to be needed for the multi-download
-+	if (curl_easy_setopt(curl, CURLOPT_HTTP_VERSION, (long) CURL_HTTP_VERSION_1_1) != CURLE_OK) return false;
-+
- 	// set url from which to retrieve the file
- 	if (curl_easy_setopt(curl, CURLOPT_URL, url) != CURLE_OK) return false;
- 
-@@ -177,12 +180,16 @@
- */
- char *CL_HttpResponseCode(long code){
- 	int i = 0;
-+	static char codeAsString[15];
-+
- 	while(responses[i].code){
- 		if(responses[i].code == code)
- 			return responses[i].text;
- 		i++;
- 	}
--	return "Unknown";
-+	memset(codeAsString, 0, sizeof(codeAsString));
-+	Com_sprintf(codeAsString, sizeof(codeAsString) - 1, "Unknown - %ld", code);
-+	return codeAsString;
- }
- 
- 
diff --git a/debian/patches/kill-runaway-crx-ded.patch b/debian/patches/kill-runaway-crx-ded.patch
deleted file mode 100644
index c4a5d5a..0000000
--- a/debian/patches/kill-runaway-crx-ded.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-description: Fix target binary name
-author: Raoul de Raadt <raoulderaadt at tiscali.nl>
-
---- a/Tools/LinuxScripts/kill-runaway-crx-ded
-+++ b/Tools/LinuxScripts/kill-runaway-crx-ded
-@@ -1,6 +1,6 @@
- #!/bin/sh
- 
--for TPPID in `ps -eo pid,pcpu,comm | grep crx-ded | grep -v grep |
-+for TPPID in `ps -eo pid,pcpu,comm | grep alienarena-ded | grep -v grep |
- awk '{print $1":"$2}' |
- awk 'BEGIN {FS=":"}{ if ($2 > 20.0){print $1} }'`
- do
diff --git a/debian/patches/launch-server_tool_debianization.patch b/debian/patches/launch-server_tool_debianization.patch
index 8de676e..81e8beb 100644
--- a/debian/patches/launch-server_tool_debianization.patch
+++ b/debian/patches/launch-server_tool_debianization.patch
@@ -1,8 +1,6 @@
 Description: debianization for launch-server script
-Index: alien-arena/Tools/LinuxScripts/launch-server
-===================================================================
---- alien-arena.orig/Tools/LinuxScripts/launch-server	2011-03-13 14:04:12.000000000 -0400
-+++ alien-arena/Tools/LinuxScripts/launch-server	2011-03-13 14:34:47.000000000 -0400
+--- a/Tools/LinuxScripts/launch-server
++++ b/Tools/LinuxScripts/launch-server
 @@ -1,9 +1,14 @@
  #! /bin/sh
  #
@@ -32,13 +30,13 @@ Index: alien-arena/Tools/LinuxScripts/launch-server
  if [ $COR_GAME ] ; then
  aadir=$COR_GAME
  else
--aadir=~/.codered
+-aadir=~/.local/share/cor-games
 +aadir=$HOME/.local/share/cor-games
  fi
  
  ### Set your AA Binary Name or command string ($1 is the argument
  ### passed to the script)
--aabin="crx-ded +set game arena +exec $1"
+-aabin="alienarena-ded +set game arena +exec $1"
 +aabin="/usr/lib/games/alien-arena/alienarena-ded +set game arena +exec $1"
  
  ########## you probably don't need to change anything below here 
diff --git a/debian/patches/minizip.patch b/debian/patches/minizip.patch
new file mode 100644
index 0000000..1c0537e
--- /dev/null
+++ b/debian/patches/minizip.patch
@@ -0,0 +1,76 @@
+--- a/source/client/cl_parse.c
++++ b/source/client/cl_parse.c
+@@ -25,7 +25,7 @@
+ 
+ #include "client.h"
+ #include "qcommon/qcommon.h"
+-#include "minizip/unzip.h"
++#include <minizip/unzip.h>
+ 
+ char *svc_strings[256] =
+ {
+--- a/source/Makefile.am
++++ b/source/Makefile.am
+@@ -61,7 +61,8 @@
+ 	$(OGG_CFLAGS) \
+ 	$(VORBIS_CFLAGS) \
+ 	$(FREETYPE2_CFLAGS) \
+-	$(ZLIB_CFLAGS)
++	$(ZLIB_CFLAGS) \
++	$(MINIZIP_CFLAGS)
+ 
+ 
+ if USE_SYSTEM_LIBODE
+@@ -80,7 +81,8 @@
+ 	$(OGG_LIBS) \
+ 	$(VORBIS_LIBS) \
+ 	$(FREETYPE2_LIBS) \
+-	$(ZLIB_LIBS)
++	$(ZLIB_LIBS) \
++	$(MINIZIP_LIBS)
+ 
+ libgame_a_CFLAGS = -fpic
+ 
+@@ -317,18 +319,7 @@
+ 	game/p_weapon.c \
+ 	game/q_shared.c \
+ 	game/q_shared.h \
+-	qcommon/qfiles.h \
+-	unix/minizip/crypt.h \
+-	unix/minizip/ioapi.c \
+-	unix/minizip/ioapi.o \
+-	unix/minizip/miniunz.c \
+-	unix/minizip/minizip.c \
+-	unix/minizip/mztools.c \
+-	unix/minizip/mztools.h \
+-	unix/minizip/unzip.c \
+-	unix/minizip/unzip.h \
+-	unix/minizip/zip.c \
+-	unix/minizip/zip.h
++	qcommon/qfiles.h
+ 
+ if !USE_SYSTEM_LIBODE
+ #
+--- a/configure.ac
++++ b/configure.ac
+@@ -360,6 +360,11 @@
+ 	AC_MSG_ERROR([required FreeType2 library not found])
+ ])
+ 
++dnl ---- minizip (client)
++PKG_CHECK_MODULES([MINIZIP],[minizip],,[
++	AC_MSG_ERROR([required minizip library not found])
++])
++
+ dnl
+ dnl if option to use system libode, rather than integrated ODE, is selected
+ dnl  use pkg-config to get cflags and libs. do not default to 
+@@ -601,5 +606,8 @@
+ 	AS_ECHO(["ZLIB:"])
+ 	AS_ECHO(["  cflags: ${ZLIB_CFLAGS}"])
+ 	AS_ECHO(["  libs: ${ZLIB_LIBS}"])
++	AS_ECHO(["MINIZIP:"])
++	AS_ECHO(["  cflags: ${MINIZIP_CFLAGS}"])
++	AS_ECHO(["  libs: ${MINIZIP_LIBS}"])
+ 	AS_ECHO()
+ ])
diff --git a/debian/patches/odeconfig.patch b/debian/patches/odeconfig.patch
deleted file mode 100644
index 1d0353b..0000000
--- a/debian/patches/odeconfig.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-description: Fix odeconfig.h for build on other architectures
-author: Raoul de Raadt <raoulderaadt at tiscali.nl>
-
---- a/source/unix/ode/odeconfig.h
-+++ b/source/unix/ode/odeconfig.h
-@@ -80,8 +80,12 @@
- #endif // #if !defined(__GNUC__)
- 
- 
--/* Well-defined common data types...need to define for 64 bit systems */
--#if defined(__aarch64__)
-+/* Well-defined common data types...need to be defined for 64 bit systems */
-+#if defined(__aarch64__) || defined(__alpha__) || defined(__ppc64__) \
-+    || defined(__s390__) || defined(__s390x__) || defined(__zarch__) \
-+    || defined(__mips__) || defined(__powerpc64__) || defined(__riscv) \
-+    || defined(__loongarch64) \
-+    || (defined(__sparc__) && defined(__arch64__))
-     #include <stdint.h>
-     typedef int64_t         dint64;
-     typedef uint64_t        duint64;
diff --git a/debian/patches/series b/debian/patches/series
index c716ac7..9d5cc95 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,7 +2,6 @@ launch-server_tool_debianization.patch
 rcon_tool_debianization.patch
 no-data.patch
 no-arena.patch
-kill-runaway-crx-ded.patch
-odeconfig.patch
-irc.patch
-http11.patch
+#irc.patch
+gcc14.patch
+minizip.patch
diff --git a/debian/rules b/debian/rules
index 51cd2b0..c4173ca 100755
--- a/debian/rules
+++ b/debian/rules
@@ -5,10 +5,10 @@ export DEB_BUILD_MAINT_OPTIONS=hardening=+all
 export DEB_CFLAGS_MAINT_APPEND = -fcommon
 
 %:
-	dh ${@}
+	dh $@
 
 override_dh_clean:
-	dh_clean -- aclocal.m4 config.log configure game_data.am Makefile.in
+	dh_clean -- aclocal.m4 config.log configure Makefile.in source/Makefile.in
 	rm -rf config
 
 override_dh_missing:


More information about the Pkg-games-devel mailing list