public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Viorel Munteanu" <ceamac@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/proj/guru:master commit in: games-engines/fs2_open/, games-engines/fs2_open/files/
Date: Sat,  9 Nov 2024 16:30:05 +0000 (UTC)	[thread overview]
Message-ID: <1731140687.b7af427658d58502ae043866a3ab4d716c15f0e8.ceamac@gentoo> (raw)

commit:     b7af427658d58502ae043866a3ab4d716c15f0e8
Author:     Takuya Wakazono <pastalian46 <AT> gmail <DOT> com>
AuthorDate: Sat Nov  9 06:14:48 2024 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Sat Nov  9 08:24:47 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=b7af4276

games-engines/fs2_open: fix ODR violations and DEPEND

Closes: https://bugs.gentoo.org/859982
Closes: https://bugs.gentoo.org/917418
Closes: https://bugs.gentoo.org/935326
Signed-off-by: Takuya Wakazono <pastalian46 <AT> gmail.com>

 .../fs2_open/files/fs2_open-24.0.2-fix-odr.patch   | 173 +++++++++++++++++++++
 .../files/fs2_open-24.0.2-respect-flags.patch      |  83 ++++++++++
 ...pen-24.0.2.ebuild => fs2_open-24.0.2-r1.ebuild} |  20 ++-
 3 files changed, 269 insertions(+), 7 deletions(-)

diff --git a/games-engines/fs2_open/files/fs2_open-24.0.2-fix-odr.patch b/games-engines/fs2_open/files/fs2_open-24.0.2-fix-odr.patch
new file mode 100644
index 000000000..4a992da28
--- /dev/null
+++ b/games-engines/fs2_open/files/fs2_open-24.0.2-fix-odr.patch
@@ -0,0 +1,173 @@
+Fix ODR violations for `barracks_buttons` and `Section`.
+https://bugs.gentoo.org/859982
+https://github.com/scp-fs2open/fs2open.github.com/pull/6417
+--- a/code/menuui/playermenu.cpp
++++ b/code/menuui/playermenu.cpp
+@@ -79,45 +79,45 @@ const char *Player_select_background_mask_bitmap[GR_NUM_RESOLUTIONS] = {
+ #define PLAYER_SELECT_MAIN_HALL_OVERLAY		NOX("MainHall1")			// main hall help overlay
+ 
+ // convenient struct for handling all button controls
+-struct barracks_buttons {
++struct barracks_buttons_alt {
+ 	const char *filename;
+ 	int x, y, xt, yt;
+ 	int hotspot;
+ 	UI_BUTTON button;  // because we have a class inside this struct, we need the constructor below..
+ 
+-	barracks_buttons(const char *name, int x1, int y1, int xt1, int yt1, int h) : filename(name), x(x1), y(y1), xt(xt1), yt(yt1), hotspot(h) {}
++	barracks_buttons_alt(const char *name, int x1, int y1, int xt1, int yt1, int h) : filename(name), x(x1), y(y1), xt(xt1), yt(yt1), hotspot(h) {}
+ };
+ 
+-static barracks_buttons Player_select_buttons[GR_NUM_RESOLUTIONS][NUM_PLAYER_SELECT_BUTTONS] = {
++static barracks_buttons_alt Player_select_buttons[GR_NUM_RESOLUTIONS][NUM_PLAYER_SELECT_BUTTONS] = {
+ 	{ // GR_640
+ 		// create, clone and delete (respectively)
+-		barracks_buttons("CPB_00",		114,	205,	117,	240,	0),
+-		barracks_buttons("CPB_01",		172,	205,	175,	240,	1),
+-		barracks_buttons("CPB_02",		226,	205,	229,	240,	2),
++		barracks_buttons_alt("CPB_00",		114,	205,	117,	240,	0),
++		barracks_buttons_alt("CPB_01",		172,	205,	175,	240,	1),
++		barracks_buttons_alt("CPB_02",		226,	205,	229,	240,	2),
+ 
+ 		// scroll up, scroll down, and accept (respectively)
+-		barracks_buttons("CPB_03",		429,	213,	 -1,	 -1,	3),
+-		barracks_buttons("CPB_04",		456,	213,	 -1,	 -1,	4),
+-		barracks_buttons("CPB_05",		481,	207,	484,	246,	5),
++		barracks_buttons_alt("CPB_03",		429,	213,	 -1,	 -1,	3),
++		barracks_buttons_alt("CPB_04",		456,	213,	 -1,	 -1,	4),
++		barracks_buttons_alt("CPB_05",		481,	207,	484,	246,	5),
+ 		
+ 		// single player select and multiplayer select, respectively
+-		barracks_buttons("CPB_06",		428,	 82,	430,	108,	6),
+-		barracks_buttons("CPB_07",		477,	 82,	481,	108,	7)
++		barracks_buttons_alt("CPB_06",		428,	 82,	430,	108,	6),
++		barracks_buttons_alt("CPB_07",		477,	 82,	481,	108,	7)
+ 	}, 
+ 	{ // GR_1024
+ 		// create, clone and delete (respectively)
+-		barracks_buttons("2_CPB_00",	182,	328,	199,	384,	0),
+-		barracks_buttons("2_CPB_01",	275,	328,	292,	384,	1),
+-		barracks_buttons("2_CPB_02",	361,	328,	379,	384,	2),
++		barracks_buttons_alt("2_CPB_00",	182,	328,	199,	384,	0),
++		barracks_buttons_alt("2_CPB_01",	275,	328,	292,	384,	1),
++		barracks_buttons_alt("2_CPB_02",	361,	328,	379,	384,	2),
+ 
+ 		// scroll up, scroll down, and accept (respectively)
+-		barracks_buttons("2_CPB_03",	686,	341,	 -1,	 -1,	3),
+-		barracks_buttons("2_CPB_04",	729,	341,	 -1,	 -1,	4),
+-		barracks_buttons("2_CPB_05",	770,	332,	787,	394,	5),
++		barracks_buttons_alt("2_CPB_03",	686,	341,	 -1,	 -1,	3),
++		barracks_buttons_alt("2_CPB_04",	729,	341,	 -1,	 -1,	4),
++		barracks_buttons_alt("2_CPB_05",	770,	332,	787,	394,	5),
+ 		
+ 		// single player select and multiplayer select, respectively
+-		barracks_buttons("2_CPB_06",	685,	132,	700,	173,	6),
+-		barracks_buttons("2_CPB_07",	764,	132,	782,	173,	7)
++		barracks_buttons_alt("2_CPB_06",	685,	132,	700,	173,	6),
++		barracks_buttons_alt("2_CPB_07",	764,	132,	782,	173,	7)
+ 	}
+ };
+ 
+@@ -294,7 +294,7 @@ void player_select_set_controls(int gray)
+ void player_select_init()
+ {
+ 	int i;
+-	barracks_buttons *b;
++	barracks_buttons_alt *b;
+ 	UI_WINDOW *w;
+ 
+ 	// start a looping ambient sound
+--- a/code/osapi/osregistry.cpp
++++ b/code/osapi/osregistry.cpp
+@@ -475,17 +475,17 @@ typedef struct KeyValue
+ 	struct KeyValue *next;
+ } KeyValue;
+ 
+-typedef struct Section
++typedef struct IniSection
+ {
+ 	char *name;
+ 
+ 	struct KeyValue *pairs;
+-	struct Section *next;
+-} Section;
++	struct IniSection *next;
++} IniSection;
+ 
+ typedef struct Profile
+ {
+-	struct Section *sections;
++	struct IniSection *sections;
+ } Profile;
+ 
+ // For string config functions
+@@ -602,8 +602,8 @@ static Profile *profile_read(const char *file)
+ 	Profile *profile = (Profile *)vm_malloc(sizeof(Profile));
+ 	profile->sections = NULL;
+ 
+-	Section **sp_ptr = &(profile->sections);
+-	Section *sp = NULL;
++	IniSection **sp_ptr = &(profile->sections);
++	IniSection *sp = NULL;
+ 
+ 	KeyValue **kvp_ptr = NULL;
+ 
+@@ -620,7 +620,7 @@ static Profile *profile_read(const char *file)
+ 				*pend = 0;
+ 
+ 				if (*ptr) {
+-					sp = (Section *)vm_malloc(sizeof(Section));
++					sp = (IniSection *)vm_malloc(sizeof(IniSection));
+ 					sp->next = NULL;
+ 
+ 					sp->name = vm_strdup(ptr);
+@@ -675,9 +675,9 @@ static void profile_free(Profile *profile)
+ 	if (profile == NULL)
+ 		return;
+ 
+-	Section *sp = profile->sections;
++	IniSection *sp = profile->sections;
+ 	while (sp != NULL) {
+-		Section *st = sp;
++		IniSection *st = sp;
+ 		KeyValue *kvp = sp->pairs;
+ 
+ 		while (kvp != NULL) {
+@@ -709,8 +709,8 @@ static Profile *profile_update(Profile *profile, const char *section, const char
+ 
+ 	KeyValue *kvp;
+ 
+-	Section **sp_ptr = &(profile->sections);
+-	Section *sp = profile->sections;
++	IniSection **sp_ptr = &(profile->sections);
++	IniSection *sp = profile->sections;
+ 
+ 	while (sp != NULL) {
+ 		if (strcmp(section, sp->name) == 0) {
+@@ -758,7 +758,7 @@ static Profile *profile_update(Profile *profile, const char *section, const char
+ 	}
+ 
+ 	/* section not found */
+-	sp = (Section *)vm_malloc(sizeof(Section));
++	sp = (IniSection *)vm_malloc(sizeof(IniSection));
+ 	sp->next = NULL;
+ 	sp->name = vm_strdup(section);
+ 
+@@ -779,7 +779,7 @@ static char *profile_get_value(Profile *profile, const char *section, const char
+ 	if (profile == NULL)
+ 		return NULL;
+ 
+-	Section *sp = profile->sections;
++	IniSection *sp = profile->sections;
+ 
+ 	while (sp != NULL) {
+ 		if (stricmp(section, sp->name) == 0) {
+@@ -814,7 +814,7 @@ static void profile_save(Profile *profile, const char *file)
+ 	if (fp == NULL)
+ 		return;
+ 
+-	Section *sp = profile->sections;
++	IniSection *sp = profile->sections;
+ 
+ 	while (sp != NULL) {
+ 		sprintf(tmp, NOX("[%s]\n"), sp->name);

diff --git a/games-engines/fs2_open/files/fs2_open-24.0.2-respect-flags.patch b/games-engines/fs2_open/files/fs2_open-24.0.2-respect-flags.patch
new file mode 100644
index 000000000..d27003fac
--- /dev/null
+++ b/games-engines/fs2_open/files/fs2_open-24.0.2-respect-flags.patch
@@ -0,0 +1,83 @@
+https://bugs.gentoo.org/917418
+--- a/cmake/toolchain-clang.cmake
++++ b/cmake/toolchain-clang.cmake
+@@ -87,27 +87,12 @@ endif()
+ string(REGEX MATCH "-O[a-zA-Z|0-9]+" CXX_OPT_FLAG ${CXX_BASE_FLAGS})
+ string(REGEX MATCH "-O[a-zA-Z|0-9]+" C_OPT_FLAG ${C_BASE_FLAGS})
+ 
+-# If no user-set opt flag, set -O2 and -Og
+-if ("${CXX_OPT_FLAG}" STREQUAL "")
+-	set(CXX_OPT_FLAG_RELEASE "-O2")
+-	set(CXX_OPT_FLAG_DEBUG "-Og")
+-else()
+-	set(CXX_OPT_FLAG_RELEASE "${CXX_OPT_FLAG}")
+-	set(CXX_OPT_FLAG_DEBUG "${CXX_OPT_FLAG}")
+-endif()
+-if ("${C_OPT_FLAG}" STREQUAL "")
+-	set(C_OPT_FLAG_RELEASE "-O2")
+-	set(C_OPT_FLAG_DEBUG "-Og")
+-else()
+-	set(C_OPT_FLAG_RELEASE "${C_OPT_FLAG}")
+-	set(C_OPT_FLAG_DEBUG "${C_OPT_FLAG}")
+-endif()
+ 
+ set(CXX_FLAGS_RELEASE "${CXX_OPT_FLAG_RELEASE} -Wno-unused-variable -Wno-unused-parameter")
+ set(C_FLAGS_RELEASE "${C_OPT_FLAG_RELEASE} -Wno-unused-variable -Wno-unused-parameter")
+ 
+-set(CXX_FLAGS_DEBUG "${CXX_OPT_FLAG_DEBUG} -g -Wshadow")
+-set(C_FLAGS_DEBUG "${C_OPT_FLAG_DEBUG} -g -Wshadow")
++set(CXX_FLAGS_DEBUG "${CXX_OPT_FLAG_DEBUG} -Wshadow")
++set(C_FLAGS_DEBUG "${C_OPT_FLAG_DEBUG} -Wshadow")
+ 
+ # Always use the base flags and add our compiler flags at the back
+ set(CMAKE_CXX_FLAGS "${CXX_BASE_FLAGS} ${COMPILER_FLAGS}")
+@@ -134,7 +119,7 @@ if (SANITIZE_FLAGS)
+ endif()
+ 
+ set(CMAKE_EXE_LINKER_FLAGS_RELEASE "")
+-set(CMAKE_EXE_LINKER_FLAGS_DEBUG "-g -rdynamic")
++set(CMAKE_EXE_LINKER_FLAGS_DEBUG "")
+ 
+ if (FSO_FATAL_WARNINGS)
+ 	# Make warnings fatal if the right variable is set
+--- a/cmake/toolchain-gcc.cmake
++++ b/cmake/toolchain-gcc.cmake
+@@ -117,27 +117,12 @@ endif()
+ string(REGEX MATCH "-O[a-zA-Z|0-9]+" CXX_OPT_FLAG ${CXX_BASE_FLAGS})
+ string(REGEX MATCH "-O[a-zA-Z|0-9]+" C_OPT_FLAG ${C_BASE_FLAGS})
+ 
+-# If no user-set opt flag, set -O2 and -Og
+-if ("${CXX_OPT_FLAG}" STREQUAL "")
+-	set(CXX_OPT_FLAG_RELEASE "-O2")
+-	set(CXX_OPT_FLAG_DEBUG "-Og")
+-else()
+-	set(CXX_OPT_FLAG_RELEASE "${CXX_OPT_FLAG}")
+-	set(CXX_OPT_FLAG_DEBUG "${CXX_OPT_FLAG}")
+-endif()
+-if ("${C_OPT_FLAG}" STREQUAL "")
+-	set(C_OPT_FLAG_RELEASE "-O2")
+-	set(C_OPT_FLAG_DEBUG "-Og")
+-else()
+-	set(C_OPT_FLAG_RELEASE "${C_OPT_FLAG}")
+-	set(C_OPT_FLAG_DEBUG "${C_OPT_FLAG}")
+-endif()
+ 
+ set(CXX_FLAGS_RELEASE "${CXX_OPT_FLAG_RELEASE} -Wno-unused-variable -Wno-unused-but-set-variable -Wno-array-bounds -Wno-empty-body -Wno-clobbered -Wno-unused-parameter")
+ set(C_FLAGS_RELEASE "${C_OPT_FLAG_RELEASE} -Wno-unused-variable -Wno-unused-but-set-variable -Wno-array-bounds -Wno-empty-body -Wno-clobbered -Wno-unused-parameter")
+ 
+-set(CXX_FLAGS_DEBUG "${CXX_OPT_FLAG_DEBUG} -g -Wshadow")
+-set(C_FLAGS_DEBUG "${C_OPT_FLAG_DEBUG} -g -Wshadow")
++set(CXX_FLAGS_DEBUG "${CXX_OPT_FLAG_DEBUG} -Wshadow")
++set(C_FLAGS_DEBUG "${C_OPT_FLAG_DEBUG} -Wshadow")
+ 
+ # Always use the base flags and add our compiler flags at the back
+ set(CMAKE_CXX_FLAGS "${CXX_BASE_FLAGS} ${COMPILER_FLAGS}")
+@@ -161,7 +146,7 @@ if (SANITIZE_FLAGS)
+ endif()
+ 
+ set(CMAKE_EXE_LINKER_FLAGS_RELEASE "")
+-set(CMAKE_EXE_LINKER_FLAGS_DEBUG "-g")
++set(CMAKE_EXE_LINKER_FLAGS_DEBUG "")
+ 
+ if (GCC_GENERATE_GDB_INDEX)
+ 	# For pure debug binaries, generate a gdb index for better debugging

diff --git a/games-engines/fs2_open/fs2_open-24.0.2.ebuild b/games-engines/fs2_open/fs2_open-24.0.2-r1.ebuild
similarity index 89%
rename from games-engines/fs2_open/fs2_open-24.0.2.ebuild
rename to games-engines/fs2_open/fs2_open-24.0.2-r1.ebuild
index 41ceb753c..db40c7ea8 100644
--- a/games-engines/fs2_open/fs2_open-24.0.2.ebuild
+++ b/games-engines/fs2_open/fs2_open-24.0.2-r1.ebuild
@@ -30,27 +30,33 @@ KEYWORDS="~amd64"
 IUSE="clang debug discord"
 
 DEPEND="
-	app-arch/lz4
+	app-arch/lz4:=
 	<dev-lang/lua-5.1.6:5.1
-	dev-libs/jansson
+	dev-libs/jansson:=
 	media-libs/freetype:2
 	media-libs/glu
-	media-libs/libjpeg-turbo
-	media-libs/libpng
-	media-libs/libsdl2
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:=
+	media-libs/libsdl2[X]
 	media-libs/libtheora
 	media-libs/libvorbis
 	media-libs/mesa
 	media-libs/openal
-	media-video/ffmpeg
+	media-video/ffmpeg:=
+	x11-libs/libX11
 "
+RDEPEND="${DEPEND}"
 BDEPEND="
-	clang? ( sys-devel/clang:= )
+	clang? ( sys-devel/clang )
 "
 PATCHES=(
 	"${FILESDIR}/${P}-deps-fix.patch"
 	"${FILESDIR}/${P}-dont-build-lz4.patch"
 	"${FILESDIR}/${P}-make-arch-independent.patch"
+	# bug 859982
+	"${FILESDIR}/${P}-fix-odr.patch"
+	# bug 917418
+	"${FILESDIR}/${P}-respect-flags.patch"
 )
 
 CMAKE_BUILD_TYPE=Release


             reply	other threads:[~2024-11-09 16:30 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-09 16:30 Viorel Munteanu [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-07-01 13:50 [gentoo-commits] repo/proj/guru:master commit in: games-engines/fs2_open/, games-engines/fs2_open/files/ David Roman
2023-10-15 22:23 Haelwenn Monnier
2022-08-07  9:13 Haelwenn Monnier
2022-03-26 11:53 Andrew Ammerlaan
2022-03-26  0:31 Ronny Gutbrod
2021-05-24  7:31 Andrew Ammerlaan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1731140687.b7af427658d58502ae043866a3ab4d716c15f0e8.ceamac@gentoo \
    --to=ceamac@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox