FS#56487 - [python2-pyglet] dependency to python2-future

Attached to Project: Community Packages
Opened by Michel (xantares) - Monday, 27 November 2017, 20:30 GMT
Last edited by Eli Schwartz (eschwartz) - Friday, 09 March 2018, 06:18 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Kyle Keen (keenerd)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

python2-pyglet bundles a future module, but hacks the sys.path to get it done
this crashes brainworkshop who's relying on the proper definition of sys.path (see code below)
by simply depending on python2-future we avoid this hackish behavior
the python3 package does not have this problem as future is a native module



# Check if future is installed, if not use included batteries
try:
import future
except ImportError:
import os.path as op
import sys
future_base = op.abspath(op.join(op.dirname(__file__), 'extlibs', 'future'))
sys.path.insert(0, op.join(future_base, 'py2_3'))
if sys.version_info[:2] < (3, 0):
sys.path.insert(0, op.join(future_base, 'py2'))
del future_base
del sys
del op
try:
import future
except ImportError:
print('Failed to get python-future')
raise
This task depends upon

Closed by  Eli Schwartz (eschwartz)
Friday, 09 March 2018, 06:18 GMT
Reason for closing:  Fixed
Additional comments about closing:  pyglet 1.3.1-1
Comment by Michel (xantares) - Monday, 27 November 2017, 20:31 GMT
edit: the code I pasted was some content of /usr/lib/python2.7/site-packages/pyglet/__init__.py
Comment by Eli Schwartz (eschwartz) - Monday, 27 November 2017, 20:39 GMT
It would be great if you could convince upstream to do the sane thing and make use of the install_requires keyword rather than vendoring garbage like this.
Comment by Eli Schwartz (eschwartz) - Tuesday, 28 November 2017, 15:38 GMT
python2-futures != python2-future

This package doesn't import concurrent.futures

Also python-pyglet seems to need python-future too.
Comment by Kyle Keen (keenerd) - Tuesday, 28 November 2017, 16:45 GMT
Just to reiterate, this bug affects nothing in the official repos, nothing in any piece of pyglet code I've ever written (for py2 or py3) and only affects one minor package in the AUR?

And it is probably an upstream issue, not a packaging issue at that.
Comment by Michel (xantares) - Tuesday, 28 November 2017, 16:50 GMT Comment by Eli Schwartz (eschwartz) - Tuesday, 28 November 2017, 16:54 GMT
Well, it is a packaging issue in that pointlessly vendored code is pretty ugly and we usually try to strip out vendored libs if possible... especially when upstream has specifically marked this as something that can use the system version if available.

I would actually suggest stripping out the vendored copies in addition to merely adding the dependency.
Comment by Michel (xantares) - Tuesday, 28 November 2017, 17:07 GMT

Loading...