summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHanno <hanno@gentoo.org>2019-02-07 16:58:14 +0100
committerHanno <hanno@gentoo.org>2019-02-07 16:58:14 +0100
commit619ceeea1e04055d825b2e9896dabc393f8ccf42 (patch)
tree879bb3d0d177c7d48c94eab6539b0a7f63400f89 /games-simulation
parentwww-apache/mod_musicindex: Revbump for dependency and EAPI change (diff)
downloadgentoo-619ceeea1e04055d825b2e9896dabc393f8ccf42.tar.gz
gentoo-619ceeea1e04055d825b2e9896dabc393f8ccf42.tar.bz2
gentoo-619ceeea1e04055d825b2e9896dabc393f8ccf42.zip
games-simulation/micropolis: Fix build with glibc 2.27.
Takes two patches from Debian to make it build on modern systems and bump EAPI to 7. Resolves: https://bugs.gentoo.org/650198 Signed-off-by: Hanno Boeck <hanno@gentoo.org> Package-Manager: Portage-2.3.59, Repoman-2.3.12
Diffstat (limited to 'games-simulation')
-rw-r--r--games-simulation/micropolis/files/micropolis-glibc-2.27.patch45
-rw-r--r--games-simulation/micropolis/files/micropolis-remove-matherr.patch31
-rw-r--r--games-simulation/micropolis/micropolis-1.0-r2.ebuild61
3 files changed, 137 insertions, 0 deletions
diff --git a/games-simulation/micropolis/files/micropolis-glibc-2.27.patch b/games-simulation/micropolis/files/micropolis-glibc-2.27.patch
new file mode 100644
index 00000000000..ee4fd33ae87
--- /dev/null
+++ b/games-simulation/micropolis/files/micropolis-glibc-2.27.patch
@@ -0,0 +1,45 @@
+From: Markus Koschany <apo@debian.org>
+Date: Tue, 13 Mar 2018 20:25:31 +0100
+Subject: glibc 2.27
+
+Remove SVID error handling to fix FTBFS with glibc 2.27.
+
+Forwarded: no
+Bug-Debian: https://bugs.debian.org/891338
+---
+ src/tclx/src/tclxfmat.c | 21 +--------------------
+ 1 file changed, 1 insertion(+), 20 deletions(-)
+
+diff --git a/src/tclx/src/tclxfmat.c b/src/tclx/src/tclxfmat.c
+index 19d42c3..2146566 100644
+--- a/src/tclx/src/tclxfmat.c
++++ b/src/tclx/src/tclxfmat.c
+@@ -119,27 +119,8 @@ static int
+ ReturnFPMathError (interp)
+ Tcl_Interp *interp;
+ {
+- char *errorMsg;
+
+- switch (G_errorType) {
+- case DOMAIN:
+- errorMsg = "domain";
+- break;
+- case SING:
+- errorMsg = "singularity";
+- break;
+- case OVERFLOW:
+- errorMsg = "overflow";
+- break;
+- case UNDERFLOW:
+- errorMsg = "underflow";
+- break;
+- case TLOSS:
+- case PLOSS:
+- errorMsg = "loss of significance";
+- break;
+- }
+- Tcl_AppendResult (interp, "floating point ", errorMsg, " error",
++ Tcl_AppendResult (interp, "floating point error",
+ (char *) NULL);
+ G_gotTclFPMathErr = FALSE; /* Clear the flag. */
+ return TCL_ERROR;
diff --git a/games-simulation/micropolis/files/micropolis-remove-matherr.patch b/games-simulation/micropolis/files/micropolis-remove-matherr.patch
new file mode 100644
index 00000000000..c6bb1a1efc5
--- /dev/null
+++ b/games-simulation/micropolis/files/micropolis-remove-matherr.patch
@@ -0,0 +1,31 @@
+From: Markus Koschany <apo@debian.org>
+Date: Tue, 13 Mar 2018 21:42:31 +0100
+Subject: remove matherr
+
+Work around "tclxmerr.c:40:30: error: dereferencing pointer to incomplete type
+'struct exception'"
+
+---
+ src/tclx/src/tclxmerr.c | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+diff --git a/src/tclx/src/tclxmerr.c b/src/tclx/src/tclxmerr.c
+index dc3596b..06aad3a 100644
+--- a/src/tclx/src/tclxmerr.c
++++ b/src/tclx/src/tclxmerr.c
+@@ -33,15 +33,6 @@
+ *
+ *-----------------------------------------------------------------------------
+ */
+-int
+-matherr (except)
+- struct exception *except;
+-{
+- if (Tcl_MathError (except->name, except->type))
+- return 1;
+- else
+- return 0;
+-}
+
+ #else
+
diff --git a/games-simulation/micropolis/micropolis-1.0-r2.ebuild b/games-simulation/micropolis/micropolis-1.0-r2.ebuild
new file mode 100644
index 00000000000..abf421c4d03
--- /dev/null
+++ b/games-simulation/micropolis/micropolis-1.0-r2.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit eutils
+
+DESCRIPTION="Free version of the well-known city building simulation"
+HOMEPAGE="http://www.donhopkins.com/home/micropolis/"
+SRC_URI="http://www.donhopkins.com/home/micropolis/${PN}-activity-source.tgz
+ http://rmdir.de/~michael/${PN}_git.patch"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="
+ media-libs/libsdl
+ media-libs/sdl-mixer
+ x11-libs/libX11
+ x11-libs/libXpm"
+DEPEND="${RDEPEND}
+ sys-devel/bison"
+
+S=${WORKDIR}/${PN}-activity/
+
+PATCHES=(
+ "${DISTDIR}"/${PN}_git.patch
+ "${FILESDIR}/micropolis-glibc-2.27.patch"
+ "${FILESDIR}/micropolis-remove-matherr.patch"
+)
+
+src_unpack() {
+ unpack ${PN}-activity-source.tgz
+}
+
+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}"
+}
+
+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
+}