Deal with the consequences of an entry-point deprecation in Python.

This commit is contained in:
Eric S. Raymond 2020-08-27 20:33:44 -04:00
parent 039c06882e
commit d9e33a8478
3 changed files with 11 additions and 33 deletions

View 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`.

3
NEWS
View file

@ -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.

View file

@ -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"]]