commit:     467c208fc96e7a3455aa85b97c49148a357c7602
Author:     Hanno Böck <hanno <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 10 13:41:17 2024 +0000
Commit:     Hanno Böck <hanno <AT> gentoo <DOT> org>
CommitDate: Sun Mar 10 13:41:19 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=467c208f

games-simulation/micropolis: add 1.0_p20220604

Latest upstream git snapshot.
Fix errors with modern clang.
Disable parallel make.

Closes: https://bugs.gentoo.org/794754
Closes: https://bugs.gentoo.org/884345
Signed-off-by: Hanno Böck <hanno <AT> gentoo.org>

 games-simulation/micropolis/Manifest               |   1 +
 .../micropolis/files/micropolis-fix-clang15.diff   | 104 +++++++++++++++++++++
 .../micropolis/micropolis-1.0_p20220604.ebuild     |  57 +++++++++++
 3 files changed, 162 insertions(+)

diff --git a/games-simulation/micropolis/Manifest 
b/games-simulation/micropolis/Manifest
index cc2239cc731b..ce05ccaf3db0 100644
--- a/games-simulation/micropolis/Manifest
+++ b/games-simulation/micropolis/Manifest
@@ -1 +1,2 @@
+DIST micropolis-6f873e16d6a1a8f6f59c1e5a75ec5f52ce5c89b6.tar.bz2 6725237 
BLAKE2B 
0ab99ecc3e418f6df3e35aacfd99c1077aeab877ab446d788b42c8ebc95a704e37ba3cdf8fa2d1a54ad182da08f18a15dfc6baeacdf5a6216054fe6b5a162b37
 SHA512 
ae399d530b9ddbf5da76d6b6b2bec9b9156e0941e7106cc5b393f4758891fdce4b6b5e25fbf0ecddc4d02f346a4b03bfe9bf91e60bea7d667c1005df9f53b5db
 DIST micropolis-cc31822e4ebe54c0109623ac0c5cdf0e3acad755.tar.bz2 6725746 
BLAKE2B 
a916389a1ccf63e1a13b5b6ea533939fdb14d814480c9e528c8b1bb89cbefbbad9ad067821c1de199f337692e226d35b3219354dc32612486d013cc20f21c5bc
 SHA512 
1b5f644f6d7d7cb78965d0e0edcfcc0bdab7a103dd5dc3ce97a0048da9fa29d8757063d6681febab3d03182433cfe8a7bf1b8145a21e067a4c754af3b5af8e00

diff --git a/games-simulation/micropolis/files/micropolis-fix-clang15.diff 
b/games-simulation/micropolis/files/micropolis-fix-clang15.diff
new file mode 100644
index 000000000000..20454a844162
--- /dev/null
+++ b/games-simulation/micropolis/files/micropolis-fix-clang15.diff
@@ -0,0 +1,104 @@
+diff --git a/src/tclx/src/tclxgdat.y b/src/tclx/src/tclxgdat.y
+index 
aea9f3d49ced8818421c6aca538df0f1a08b17b3..2439a2fc8cfd4a90be7f51216ed4bae1b9feb7e2
 100644
+--- a/src/tclx/src/tclxgdat.y
++++ b/src/tclx/src/tclxgdat.y
+@@ -46,11 +46,11 @@
+ #if 0
+       static time_t timeconv(int hh, int mm, int ss, int mer);
+       static time_t daylcorr(time_t future, time_t now);
+-      static lookup(char *id);
++      static int lookup(char *id);
+ #else
+       static time_t timeconv();
+       static time_t daylcorr();
+-      static lookup();
++      static int lookup();
+ #endif
+ 
+ #define AM 1
+@@ -463,7 +463,7 @@ struct table milzone[] = {
+         {0, 0, 0}};
+ 
+ static
+-lookup(id) char *id;
++int lookup(id) char *id;
+ {
+ #define gotit (yylval=i->value,  i->type)
+ #define getid for(j=idvar, k=id; *j++ = *k++; )
+diff --git a/src/tclx/src/tclxmath.c b/src/tclx/src/tclxmath.c
+index 
9f967bf4f2402c7f61f0f2b8f03ef835c7ceb70d..bf5a52a76f3eca59260299096436aebaf8ba2818
 100644
+--- a/src/tclx/src/tclxmath.c
++++ b/src/tclx/src/tclxmath.c
+@@ -16,6 +16,7 @@
+  
*-----------------------------------------------------------------------------
+  */
+ 
++#include <time.h>
+ #include "tclxint.h"
+ 
+ extern int rand();
+diff --git a/src/tk/tkbitmap.c b/src/tk/tkbitmap.c
+index 
cc81cd02c477b6289a25b76909b3b46f8db212a6..c7693e84a71953b340ee3b37044ec65be6050dc7
 100644
+--- a/src/tk/tkbitmap.c
++++ b/src/tk/tkbitmap.c
+@@ -434,7 +434,7 @@ Tk_GetBitmapFromData(interp, tkwin, source, width, height)
+     Tk_Uid name = NULL;               /* Initialization need only to prevent
+                                * compiler warning. */
+     int new;
+-    static autoNumber = 0;
++    static int autoNumber = 0;
+     char string[20];
+ 
+     if (!initialized) {
+diff --git a/src/tk/tkerror.c b/src/tk/tkerror.c
+index 
a58814c4599d4a8111cdf03cf67054009c7a626f..b6fdb17c41853f9fb5dbd33274d314d5ca8a723f
 100644
+--- a/src/tk/tkerror.c
++++ b/src/tk/tkerror.c
+@@ -23,7 +23,7 @@ static char rcsid[] = "$Header: 
/user6/ouster/wish/RCS/tkError.c,v 1.10 92/04/12
+ #include "tkconfig.h"
+ #include "tkint.h"
+ 
+-static initialized = 0;
++static int initialized = 0;
+ 
+ /*
+  * Forward references to procedures declared later in this file:
+diff --git a/src/tk/tkpack.c b/src/tk/tkpack.c
+index 
f065bd5d20d6cfa81c4ce37104a9764a99816287..a998017fcfd308595aed170ad3915817a85ec9f7
 100644
+--- a/src/tk/tkpack.c
++++ b/src/tk/tkpack.c
+@@ -95,7 +95,7 @@ static Tcl_HashTable packerHashTable;
+  * Have statics in this module been initialized?
+  */
+ 
+-static initialized = 0;
++static int initialized = 0;
+ 
+ /*
+  * Forward declarations for procedures defined later in this file:
+diff --git a/src/tk/tkpixmap.c b/src/tk/tkpixmap.c
+index 
753bbe190caa3e585b82a0757e77184f1ec68b20..8d23daded56264edd6d3dbc333014f253568592a
 100644
+--- a/src/tk/tkpixmap.c
++++ b/src/tk/tkpixmap.c
+@@ -516,7 +516,7 @@ Tk_GetPixmapFromData(interp, tkwin, source, width, height)
+     Tk_Uid name = NULL;               /* Initialization need only to prevent
+                                * compiler warning. */
+     int new;
+-    static autoNumber = 0;
++    static int autoNumber = 0;
+     char string[20];
+ 
+     if (!initialized) {
+diff --git a/src/tk/tkwindow.c b/src/tk/tkwindow.c
+index 
05029aa38b11e2e189010736c69c74113616d581..eb6b7fe22bc66cebfae99a0fe663a9089a7c5b2a
 100644
+--- a/src/tk/tkwindow.c
++++ b/src/tk/tkwindow.c
+@@ -55,7 +55,7 @@ TkDisplay *tkDisplayList = NULL;
+  * Have statics in this module been initialized?
+  */
+ 
+-static initialized = 0;
++static int initialized = 0;
+ 
+ /*
+  * Context information used to map from X window id's to

diff --git a/games-simulation/micropolis/micropolis-1.0_p20220604.ebuild 
b/games-simulation/micropolis/micropolis-1.0_p20220604.ebuild
new file mode 100644
index 000000000000..bee00da41495
--- /dev/null
+++ b/games-simulation/micropolis/micropolis-1.0_p20220604.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit desktop toolchain-funcs wrapper
+
+COMMIT="6f873e16d6a1a8f6f59c1e5a75ec5f52ce5c89b6"
+DESCRIPTION="Free version of the well-known city building simulation"
+HOMEPAGE="https://www.donhopkins.com/home/micropolis/";
+SRC_URI="https://gitlab.com/stargo/micropolis/-/archive/${COMMIT}/micropolis-${COMMIT}.tar.bz2";
+S="${WORKDIR}/${PN}-${COMMIT}"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+       media-libs/libsdl
+       media-libs/sdl-mixer
+       x11-libs/libX11
+       x11-libs/libXpm"
+DEPEND="${RDEPEND}"
+BDEPEND="app-alternatives/yacc"
+
+# parallel build is broken
+MAKEOPTS="-j1"
+
+# clang fixes, submitted upstream:
+# https://gitlab.com/stargo/micropolis/-/merge_requests/1
+PATCHES=( "${FILESDIR}/micropolis-fix-clang15.diff" )
+
+src_prepare() {
+       default
+
+       sed -i -e "s|-O3|${CFLAGS}|" \
+               src/tclx/config.mk src/{sim,tcl,tk}/makefile || die
+       sed -i -e "s|XLDFLAGS=|&${LDFLAGS}|" \
+               src/tclx/config.mk || die
+}
+
+src_compile() {
+       emake -C src LDFLAGS="${LDFLAGS}" CC="$(tc-getCC)"
+}
+
+src_install() {
+       local dir=/usr/share/${PN}
+
+       exeinto "${dir}/res"
+       doexe src/sim/sim
+       insinto "${dir}"
+       doins -r activity cities images manual res
+
+       make_wrapper micropolis res/sim "${dir}"
+       doicon Micropolis.png
+       make_desktop_entry micropolis "Micropolis" Micropolis
+}

Reply via email to