FS#59882 - [pychess] Needs dependency python-pexpect

Attached to Project: Community Packages
Opened by Stefan G (itaton) - Thursday, 30 August 2018, 18:42 GMT
Last edited by Alexander F. Rødseth (xyproto) - Thursday, 13 September 2018, 16:44 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Alexander F. Rødseth (xyproto)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description:
pychess needs python-pexpect as a dependency to run, which is apparently not included as dependency in the PKGBUILD.
Without python-pexpect pychess does not start and crashes with the following error:
```
Traceback (most recent call last):
File "/usr/lib/python3.7/site-packages/pychess/Savers/pgn.py", line 16, in <m
odule>
import pexpect
ModuleNotFoundError: No module named 'pexpect'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/bin/pychess", line 199, in <module>
from pychess.Main import PyChess
File "/usr/lib/python3.7/site-packages/pychess/Main.py", line 21, in <module>
from pychess.System.debug import print_obj_referrers, print_muppy_sumary
File "/usr/lib/python3.7/site-packages/pychess/System/debug.py", line 7, in <
module>
from pychess.widgets.BoardView import BoardView
File "/usr/lib/python3.7/site-packages/pychess/widgets/BoardView.py", line 11, in <module>
from pychess.Savers import pgn
File "/usr/lib/python3.7/site-packages/pychess/Savers/pgn.py", line 18, in <module>
from pychess.external import pexpect
File "/usr/lib/python3.7/site-packages/pychess/external/pexpect/__init__.py", line 75, in <module>
from .pty_spawn import spawn, spawnu
File "/usr/lib/python3.7/site-packages/pychess/external/pexpect/pty_spawn.py", line 14, in <module>
from .spawnbase import SpawnBase
File "/usr/lib/python3.7/site-packages/pychess/external/pexpect/spawnbase.py", line 224
def expect(self, pattern, timeout=-1, searchwindowsize=-1, async=False):
^
SyntaxError: invalid syntax
```

After installing python-pexpect pychess runs normally.

Additional info:
* package version(s): pychess-0.99.2-1


Steps to reproduce:
- Install pychess with from the official repo without having python-pexpect installed
- Run pychess
This task depends upon

Closed by  Alexander F. Rødseth (xyproto)
Thursday, 13 September 2018, 16:44 GMT
Reason for closing:  Fixed
Comment by Eli Schwartz (eschwartz) - Thursday, 30 August 2018, 21:42 GMT
pychess bundles a version of pexpect in /usr/lib/python3.7/site-packages/pychess/external/pexpect/

Alongside several other things.

The justification is "to get it working in Debian", apparently.

...

For obvious reasons, this bundling garbage should not be happening, and we should not be including it. In this case it is somewhat more drastic, since their ancient copy of pexpect uses the async keyword as a function name, which is a syntax error on modern python.

Solution: remove pychess.external, add python-gbulb to the repositories, and add that as well as python-pexpect to the dependencies.

It appears that scoutfish and chess_db which are also in that directory, are optional dependencies only included as stub libraries to divert into the forked pexpect copy. They normally need to be downloaded at runtime, in order to build non-python binaries which are, of course, executed using pexpect...
Comment by Alexander F. Rødseth (xyproto) - Monday, 03 September 2018, 11:16 GMT
Thanks for reporting! Removed pexpect from the package and added it as a dependency instead. Also planning to add gbulb to the repositories.

The updated package will appear in [community] shortly.

Loading...