Deal with the consequences of an entry-point deprecation in Python.
authorEric S. Raymond <esr@thyrsus.com>
Fri, 28 Aug 2020 00:33:44 +0000 (20:33 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Fri, 28 Aug 2020 00:33:44 +0000 (20:33 -0400)
INSTALL.adoc
NEWS
make_dungeon.py

index e60fc15bd1fd347d9ac5ce065a44a813593dd634..a51b8acd66aa6a870c5ece89e6e5d1490cfaf251 100644 (file)
@@ -1,45 +1,20 @@
 = Installing Open Adventure =
 
-The instructions below assume your system uses Python 3 by default,
-but the actual Python code in Open Adventure is 2/3-agnostic. Adjust
-the example commands below accordingly.
+Installation now requires Python3 due to a security issue
+with the YAML library.
 
-1. Install PyYAML for Python 3 (which requires Python 3) and libedit
-from http://thrysoee.dk/editline/ (aka: editline) on your system.
+1. Install libedit from http://thrysoee.dk/editline/ (aka: editline)
+on your system.
 +
-On Debian and Ubuntu: `apt-get install python3-yaml libedit-dev`.
+On Debian and Ubuntu: `apt-get install libedit-dev`.
 +
-On Fedora: `dnf install python3-PyYAML libedit-devel`.
-+
-If you are using MacPorts on OS X: `port install py3{5,6}-yaml`, as
-appropriate for your Python 3 version.
+On Fedora: `dnf install libedit-devel`.
 +
 You can also use pip to install PyYAML: `pip3 install PyYAML`.
 
 2. Change to the top-level directory of the source code (e.g., `cd open-adventure`).
 
 3. Build with `make`.
-+
-If make returns the following message:
-+
-------------------------------------------------
-Traceback (most recent call last):
-  File "./make_dungeon.py", line 13, in <module>
-    import sys, yaml
-ImportError: No module named yaml
-------------------------------------------------
-+
-try editing make_dungeon.py to change `#!/usr/bin/env python` to
-read `#!/usr/bin/env python3`
-+
-If you still get the error, use the following command to install yaml with pip:
-+
-------------------------------------------------
-pip install pyyaml
-------------------------------------------------
-+
-Make sure you have `pip` installed on your system.  If not, you should
-install it first. See https://pip.pypa.io/en/stable/installing/
 
 4. Optionally run a regression test on the code with `make check`.
 
diff --git a/NEWS b/NEWS
index b2be8f5273b43acdb393975da5e93d15e341e71e..b71d906c29a79b494c0be907ca824a0951569744 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,8 @@
 = Open Adventure project news =
 
+Repository head::
+  Update the dungeon maker to avoid a deprecation die to security issues
+
 1.8: 2019-04-19::
   Minor typo and capitalization glitches in user-visible text fixed & documented.
   Save format has changed.
index 63eee94ed241863772ee71465c6a25b7d07e7c7c..724b941d9652c10b824e1c9ec42486cd7a075a76 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 # This is the open-adventure dungeon generator. It consumes a YAML description of
 # the dungeon and outputs a dungeon.h and dungeon.c pair of C code files.
@@ -523,7 +523,7 @@ def get_travel(travel):
 
 if __name__ == "__main__":
     with open(YAML_NAME, "r") as f:
-        db = yaml.load(f)
+        db = yaml.safe_load(f)
 
     locnames = [x[0] for x in db["locations"]]
     msgnames = [el[0] for el in db["arbitrary_messages"]]