MysticMine is one of the few remaining ports that still depends on pyrex.
However, I'm not sure if anyone has actually fired up this game in some
time. When I try it, it just errors out:
NameError: name 'languages' is not defined
(Maybe some of the locale changes in base may have broken this game at
some point?)
So the diff below does a few things:
1) use cython instead of pyrex as a BDEP. Luckily this seems to work given
the close history between pyrex and cython. (Another choice, since the
game is unlikely to get updates, would have been to pre-generate the ai.c
file and include it in the port).
2) pyrex was removed as a RDEP and not replaced by cython. It wasn't
obvious to me why it was needed as an RDEP in the first place.
3) to test the game, fix the locale-related issue with the simplest diff I
could think of.
4) may as well update to the latest github commit from July 2016 which
says support for game controllers was added.
Was able to play a few round on my amd64 box with the below.
ok?
diff -Nur mysticmine/Makefile mysticmine.new/Makefile
--- mysticmine/Makefile Fri Jul 12 16:46:21 2019
+++ mysticmine.new/Makefile Sat Oct 17 02:14:24 2020
@@ -7,8 +7,8 @@
GH_ACCOUNT = koonsolo
GH_PROJECT = MysticMine
-GH_COMMIT = f8354135984e83071d17396d846d7fa91fef1631
-REVISION = 0
+GH_COMMIT = 2fc0a5eaa0ab299c3a23ce17ae1c56a98055a44c
+REVISION = 1
CATEGORIES = games
@@ -18,9 +18,8 @@
WANTLIB = pthread ${MODPY_WANTLIB}
MODULES = lang/python
-BUILD_DEPENDS = devel/pyrex
-RUN_DEPENDS = devel/pygame \
- devel/pyrex
+BUILD_DEPNDS = lang/cython
+RUN_DEPENDS = devel/pygame
NO_TEST = Yes
diff -Nur mysticmine/distinfo mysticmine.new/distinfo
--- mysticmine/distinfo Sat May 6 11:10:17 2017
+++ mysticmine.new/distinfo Sat Oct 17 01:41:34 2020
@@ -1,2 +1,2 @@
-SHA256 (mysticmine-1.2.0-f8354135.tar.gz) =
J/uEyoJZpgwFr629QwnVBEiR+37aXmVD6oUEmEFXMVo=
-SIZE (mysticmine-1.2.0-f8354135.tar.gz) = 19285995
+SHA256 (mysticmine-1.2.0-2fc0a5ea.tar.gz) =
tlpvuSWWvzcgW8f+Z8vfE8aEOMJplDw0RTxpnS40wg8=
+SIZE (mysticmine-1.2.0-2fc0a5ea.tar.gz) = 19286277
diff -Nur mysticmine/patches/patch-monorail_monorail_py
mysticmine.new/patches/patch-monorail_monorail_py
--- mysticmine/patches/patch-monorail_monorail_py Wed Dec 31 19:00:00 1969
+++ mysticmine.new/patches/patch-monorail_monorail_py Sat Oct 17 02:19:44 2020
@@ -0,0 +1,16 @@
+$OpenBSD$
+
+Fix for https://github.com/dewitters/MysticMine/issues/16
+
+Index: monorail/monorail.py
+--- monorail/monorail.py.orig
++++ monorail/monorail.py
+@@ -41,6 +41,8 @@ DEFAULT_LANGUAGES += ['en_US']
+ lc, encoding = locale.getdefaultlocale()
+ if lc:
+ languages = [lc]
++else:
++ languages = []
+
+ languages += DEFAULT_LANGUAGES
+ mo_location = LOCALE_DIR
diff -Nur mysticmine/patches/patch-setup_py
mysticmine.new/patches/patch-setup_py
--- mysticmine/patches/patch-setup_py Wed Dec 31 19:00:00 1969
+++ mysticmine.new/patches/patch-setup_py Sat Oct 17 02:09:10 2020
@@ -0,0 +1,20 @@
+$OpenBSD$
+
+Index: setup.py
+--- setup.py.orig
++++ setup.py
+@@ -1,6 +1,6 @@
+ from distutils.core import Extension, setup
+ from distutils.command.install import INSTALL_SCHEMES
+-from Pyrex.Distutils import build_ext
++from Cython.Distutils import build_ext
+ import os
+
+ #
http://stackoverflow.com/questions/1612733/including-non-python-files-with-setup-py
+@@ -52,6 +52,5 @@ setup( name='MysticMine',
+ requires=[
+ "pygame",
+ "numpy",
+- "pyrex",
+ ],
+ )
diff -Nur mysticmine/pkg/PLIST mysticmine.new/pkg/PLIST
--- mysticmine/pkg/PLIST Thu Jun 2 07:33:07 2016
+++ mysticmine.new/pkg/PLIST Sat Oct 17 01:42:14 2020
@@ -4,7 +4,7 @@
lib/python${MODPY_VERSION}/site-packages/monorail/
lib/python${MODPY_VERSION}/site-packages/monorail/__init__.py
lib/python${MODPY_VERSION}/site-packages/monorail/__init__.pyc
-lib/python${MODPY_VERSION}/site-packages/monorail/ai.so
+@so lib/python${MODPY_VERSION}/site-packages/monorail/ai.so
lib/python${MODPY_VERSION}/site-packages/monorail/control.py
lib/python${MODPY_VERSION}/site-packages/monorail/control.pyc
lib/python${MODPY_VERSION}/site-packages/monorail/controlview.py