From ca533b9b46b871263ead04dcb28165df09a3f282 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 13 Apr 2025 08:44:58 +0100 Subject: gentoo auto-resync : 13:04:2025 - 08:44:57 --- games-fps/Manifest.gz | Bin 11866 -> 11860 bytes games-fps/alienarena/Manifest | 2 + games-fps/alienarena/alienarena-7.66-r1.ebuild | 74 +++++++++++++ .../alienarena/files/alienarena-7.66-C23.patch | 121 +++++++++++++++++++++ 4 files changed, 197 insertions(+) create mode 100644 games-fps/alienarena/alienarena-7.66-r1.ebuild create mode 100644 games-fps/alienarena/files/alienarena-7.66-C23.patch (limited to 'games-fps') diff --git a/games-fps/Manifest.gz b/games-fps/Manifest.gz index be1d12e834a5..ae293f163528 100644 Binary files a/games-fps/Manifest.gz and b/games-fps/Manifest.gz differ diff --git a/games-fps/alienarena/Manifest b/games-fps/alienarena/Manifest index 1e4581530eb8..ae71a416bb21 100644 --- a/games-fps/alienarena/Manifest +++ b/games-fps/alienarena/Manifest @@ -1,6 +1,8 @@ +AUX alienarena-7.66-C23.patch 4780 BLAKE2B d5544420d775c4c66e71043222e4b9c9ad42f3bf15b4851ff099f5934b4a5d6db46396959a950fba0558920b51523c91a2a68b987d5232ce309be2fada79a04f SHA512 1acb1b5df3a55e4458b5699c569ee491a0b4b4e03d7b221898b1d163eb613c9d6b1119ac47692e77a51530f5d5861802d8173682cf3d84ff31a375170864c0b1 AUX alienarena-7.66-C99-inline.patch 841 BLAKE2B fc907aa4b287bb295589095936ca568a681f8a877f2470fd437bba50925454a51ff3559945052301fa94229288b2032da0a834770b0c7d0e8398b1f74b14dffe SHA512 acc6ac30e0d03345d8594ad9ed00ec56ec96ba68f157d2cc214224b6e1490c959511ecc1d15c3050f87d3bb33ebbd3316986c8b6840d842448407298911cf402 AUX alienarena-7.66-ar.patch 264 BLAKE2B f1e290ad0cf6f29c93412f8e2277ebcd378740bb44c5a5e668c8d7e5b97b0480d1aed7d049d8541e060cad7b59186bc39e7dbade76b7ca5d11c628a319ca30d2 SHA512 24bad1c2fbb0073e73b4651ef4990b8df9dc8325e46812faa2da1b2295622a630977eaacc7244c86da1d8c8d88a0a7c6f6b3999d51defe1e78b5fe2d32813b60 AUX alienarena-7.66-format.patch 400 BLAKE2B b98e23612337d8adcb2a0337ea2d7b0b6bcc5f2cafcd4c11996d94198c0bf4904e6ab5dcd33f690e6bfe3aee22a1d4cc85df522be139ee5bfe4c117ec2cbdfa8 SHA512 f64c502e306a7508258c62882711cc2a8b3261ebea2dd12a43624bb21d5c74f361ae82db3c629a3e903eab166c25013473fc4f0739bddc476e6740a06b69e2a6 DIST alienarena-7.66-linux20130827.tar.gz 617636649 BLAKE2B 9f15772f12329dc48496d3f998f2913e801b3d2523be63c1b87b72ca278d70cbb32b676652b5287cc7adc5aeb98f7afdf4160a1f9125c1c92b63bf502809e08d SHA512 6b86387b12fc82c01cf7945df5da7beb1a60e42a492b70096c64ace254d6300107a4b40762d20969eefbfe11c7365fbb3a5603b71f288e2330410feef48141a3 +EBUILD alienarena-7.66-r1.ebuild 1651 BLAKE2B 5bd2f2833641d0daee18c42893741e91f5d08e58d3dcd3812829c614f0ead591e9b436f756df9c3f971a56e0708bafec45382493ef05d2d754b2a7d2a93eaaba SHA512 1d91b9d13f8e8fb255d05124afeb1415d617137b3c51a609284e065fbc6298d5f32c0efebfb837c6885f4cf476e923a6f0911ce6e9ae44ee5833e78f99e871b7 EBUILD alienarena-7.66.ebuild 1512 BLAKE2B 8ce31045d3e119cc6e2c3498cc6bdf9dc98ef873f16bae314d43d0dc1f760332afe7ad4b7928b2d2528a3118ddf7cb1ecc3143c60dc33bd1248fb28fc7845f7f SHA512 dbd9746d4ecab3c99cc308199d13f8159e49b6a2e4fa58879e6cededd825d6a2e4252dd407fabbd1afad9f15fd46c4351c6098c24a98ba27cefdaf87f15f6aba MISC metadata.xml 378 BLAKE2B cc05207347fb566a1f952a7ca501561392cdb081a16976987383d6214d02e707742f4b6c029de867e2319004b4346477f3dff328ea1ae4d669671998fc7c7753 SHA512 584520a3459c71b6700b1136dfe5224de4d98ab80ea507b4dd79af57db697cb767ff4121b661a88b0b66f2425f60734592a17ae2ca3213f938c3e80829275d4d diff --git a/games-fps/alienarena/alienarena-7.66-r1.ebuild b/games-fps/alienarena/alienarena-7.66-r1.ebuild new file mode 100644 index 000000000000..6dbdb648b353 --- /dev/null +++ b/games-fps/alienarena/alienarena-7.66-r1.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools desktop flag-o-matic xdg edos2unix + +MY_P="${P}-linux20130827" + +DESCRIPTION="Fast-paced multiplayer deathmatch game" +HOMEPAGE="http://red.planetarena.org/" +SRC_URI=" + http://icculus.org/alienarena/Files/${MY_P}.tar.gz + http://red.planetarena.org/files/${MY_P}.tar.gz" + +LICENSE="GPL-2 free-noncomm" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="dedicated +dga +vidmode +zlib" + +RDEPEND=" + !dedicated? ( + media-libs/freetype:2 + media-libs/libvorbis + media-libs/openal + net-misc/curl + media-libs/libjpeg-turbo:= + virtual/glu + virtual/opengl + dga? ( x11-libs/libXxf86dga ) + vidmode? ( x11-libs/libXxf86vm ) + zlib? ( sys-libs/zlib ) + )" +DEPEND="${RDEPEND} + !dedicated? ( + dga? ( x11-base/xorg-proto ) + vidmode? ( x11-base/xorg-proto ) + )" +BDEPEND="virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/${P}-format.patch + "${FILESDIR}"/${P}-ar.patch + "${FILESDIR}"/${P}-C99-inline.patch + "${FILESDIR}"/${P}-C23.patch +) + +src_prepare() { + edos2unix source/client/{qmenu.c,menu.c} source/game/game.h source/qcommon/qcommon.h + + default + eautoreconf +} + +src_configure() { + # too many variables defined in .h to patch, https://bugs.gentoo.org/707814 + append-cflags -fcommon + + econf \ + --with-icondir="${EPREFIX}/usr/share/icons/hicolor/48x48/apps/" \ + --without-system-libode \ + --disable-documents \ + $(use_enable !dedicated client) \ + $(use_with zlib) \ + $(use_with vidmode xf86vm) \ + $(use_with dga xf86dga) +} + +src_install() { + DOCS=( docs/README.txt README ) + default + + use !dedicated && make_desktop_entry ${PN} "Alien Arena" +} diff --git a/games-fps/alienarena/files/alienarena-7.66-C23.patch b/games-fps/alienarena/files/alienarena-7.66-C23.patch new file mode 100644 index 000000000000..05f46701a605 --- /dev/null +++ b/games-fps/alienarena/files/alienarena-7.66-C23.patch @@ -0,0 +1,121 @@ +Cast normal pointers to array of strings to constant and in one case to void**. +Casts between menu*_s are valid, because each of them embeds menucommon_s +as first member there's type tag in that generic struct, and every +relevant function checks tag value before aborting or casting and doing +anything else. +Plus missing function declaration and adding const qualifiers to function +pointers that always got filled with functions with const parameters. +https://bugs.gentoo.org/881071 +https://bugs.gentoo.org/921028 +--- a/source/client/menu.c ++++ b/source/client/menu.c +@@ -3606,7 +3606,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, 7, 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, 7, 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); + +@@ -3694,7 +3694,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); +@@ -4540,7 +4540,7 @@ + // load info from config file if possible + + Com_sprintf (cfgpath, sizeof(cfgpath), "%s/%s.cfg", BOT_GAMEDATA, name); +- if( FS_LoadFile (cfgpath, &cfg) == -1 ) ++ if( FS_LoadFile (cfgpath, (void **)&cfg) == -1 ) + { + Com_DPrintf("LoadBotInfo: failed file open: %s\n", fullpath ); + continue; +--- a/source/client/qmenu.c ++++ b/source/client/qmenu.c +@@ -160,7 +160,7 @@ + menu_box.width = f->generic.visible_length*font->width; + FNT_BoundedPrint (font, f->buffer, FNT_CMODE_QUAKE_SRS, FNT_ALIGN_LEFT, &menu_box, light_color); + +- if ( cursor.menuitem == f ) ++ if ( cursor.menuitem == (struct _tag_menuitem *)f ) + { + if ( ( ( int ) ( Sys_Milliseconds() / 300 ) ) & 1 ) + Draw_StretchPic (menu_box.x + menu_box.width - font->size / 8, menu_box.y-1, font->size, font->size+4, "menu/field_cursor"); +@@ -172,7 +172,7 @@ + menufield_s *f; + extern int keydown[]; + +- f = cursor.menuitem; ++ f = (menufield_s *)cursor.menuitem; + + if (f == NULL || f->generic.type != MTYPE_FIELD || key > 127) + return false; +@@ -968,7 +968,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++ ) +@@ -1426,7 +1426,7 @@ + + void Menu_SlideItem (int dir) + { +- menucommon_s *item = cursor.menuitem; ++ menucommon_s *item = (menucommon_s *)cursor.menuitem; + + if ( item ) + { +@@ -1474,7 +1474,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) +@@ -1531,7 +1531,7 @@ + s->curvalue--; + } + +- Menu_ActivateItem (s); ++ Menu_ActivateItem ((menuitem_s *)s); + } + + void SpinControl_Draw (menulist_s *s, FNT_font_t font) +--- a/source/game/game.h ++++ b/source/game/game.h +@@ -177,10 +177,10 @@ + void (*FreeTags) (int tag); + + // console variable interaction +- cvar_t *(*cvar) (char *var_name, char *value, int flags); +- void (*cvar_set) (char *var_name, char *value); +- cvar_t *(*cvar_forceset) (char *var_name, char *value); +- void (*cvar_describe) (cvar_t *var, char *description_string); ++ cvar_t *(*cvar) (const char *var_name, const char *value, int flags); ++ void (*cvar_set) (const char *var_name, const char *value); ++ cvar_t *(*cvar_forceset) (const char *var_name, const char *value); ++ void (*cvar_describe) (cvar_t *var, const char *description_string); + + // ClientCommand and ServerCommand parameter access + int (*argc) (void); +--- a/source/qcommon/qcommon.h ++++ b/source/qcommon/qcommon.h +@@ -132,6 +132,7 @@ + void MSG_WriteByte (sizebuf_t *sb, int c); + void MSG_WriteShort (sizebuf_t *sb, int c); + void MSG_WriteLong (sizebuf_t *sb, int c); ++void MSG_WriteSizeInt (sizebuf_t *sb, int bytes, int c); + void MSG_WriteFloat (sizebuf_t *sb, float f); + void MSG_WriteString (sizebuf_t *sb, char *s); + void MSG_WriteCoord (sizebuf_t *sb, float f); -- cgit v1.2.3