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 +}