summaryrefslogtreecommitdiff
path: root/games-simulation/micropolis
diff options
context:
space:
mode:
Diffstat (limited to 'games-simulation/micropolis')
-rw-r--r--games-simulation/micropolis/Manifest3
-rw-r--r--games-simulation/micropolis/files/micropolis-fix-clang15.diff104
-rw-r--r--games-simulation/micropolis/micropolis-1.0_p20220604.ebuild57
3 files changed, 164 insertions, 0 deletions
diff --git a/games-simulation/micropolis/Manifest b/games-simulation/micropolis/Manifest
index 6046baec5925..f3a4acdbefd3 100644
--- a/games-simulation/micropolis/Manifest
+++ b/games-simulation/micropolis/Manifest
@@ -1,3 +1,6 @@
+AUX micropolis-fix-clang15.diff 3446 BLAKE2B a1688913bccd3afe038c2829ff1f9a7a433bb9570445b8ddfc42b5f019e526590adf4b73e79bacb72fc3c863bdfa888e701f2b2b9773c27aca374c196aa295f8 SHA512 83051852327ab8d119c36e51dc1e099948ab83f6d5be51d0580360cb5eabd966177f44697453cf8bdb86e8a22ccb1a696f6aec6f49310f41c3d0a03004e2b4fc
+DIST micropolis-6f873e16d6a1a8f6f59c1e5a75ec5f52ce5c89b6.tar.bz2 6725237 BLAKE2B 0ab99ecc3e418f6df3e35aacfd99c1077aeab877ab446d788b42c8ebc95a704e37ba3cdf8fa2d1a54ad182da08f18a15dfc6baeacdf5a6216054fe6b5a162b37 SHA512 ae399d530b9ddbf5da76d6b6b2bec9b9156e0941e7106cc5b393f4758891fdce4b6b5e25fbf0ecddc4d02f346a4b03bfe9bf91e60bea7d667c1005df9f53b5db
DIST micropolis-cc31822e4ebe54c0109623ac0c5cdf0e3acad755.tar.bz2 6725746 BLAKE2B a916389a1ccf63e1a13b5b6ea533939fdb14d814480c9e528c8b1bb89cbefbbad9ad067821c1de199f337692e226d35b3219354dc32612486d013cc20f21c5bc SHA512 1b5f644f6d7d7cb78965d0e0edcfcc0bdab7a103dd5dc3ce97a0048da9fa29d8757063d6681febab3d03182433cfe8a7bf1b8145a21e067a4c754af3b5af8e00
EBUILD micropolis-1.0_p20180313.ebuild 1172 BLAKE2B 51b95de32d5726bfbcda804edb4dddaae33a9b9df3fc11246b2afb1f0a958f0c1daf5a73e22eca95a5fa30f704869085661cb36d6670bb71622e20053777e24d SHA512 c71ab28cfb9bafac42ac2857e5ca01e1a4064d0fe56fd1b1ffafd02b561f63904cfc6c767042c688451532dcd755e47f4b62e3886f5ac25ba30159ff511aee14
+EBUILD micropolis-1.0_p20220604.ebuild 1362 BLAKE2B 2a40c66437af1b59793dd308e56f5882f00b4a012c9bd095e17388002f8faf510349bd92b0971dffb7115e4a08ade3fe73841bf369f3c9120931a34873b4376c SHA512 70cfbeb57cd9f15ef525358d18570bb817de68a5b5a7dea0fb29ee3107e59a8c1d9e614845c395b4e637b95d5b6e760bd9525dcecc0ea9de8106d3bc863fa70d
MISC metadata.xml 413 BLAKE2B 8286aa718a875b3c2ab654127de9b467cc4732abf8289f28fc85bf9b1da363e92cf70a4254cbe8e78fb64c2f484689180bdc7d727bdb2d3a667ca0e6a37e69a5 SHA512 3f28dd2d429278c1d98bd20e739383caa9cd015f09b2678bd7ca3ba53bc76e6c1a39758461513ee5d5ae186cc190473c5a5c96391f95cea17ede472087c5e5a7
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
+}