Bug 1593029

Summary: python-wxpython4 FTBFS on Python 3.7
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: python-wxpython4Assignee: Scott Talbert <swt>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: swt
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-06-20 21:07:20 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1565020    

Description Miro Hrončok 2018-06-19 22:00:58 UTC
fedpkg build --target=f29-python

https://koji.fedoraproject.org/koji/taskinfo?taskID=27740623

Version-Release number of selected component (if applicable): python-wxpython4-4.0.1-5.fc29


Running command: build_py
Checking for /builddir/build/BUILD/python-wxpython4-4.0.1/python3/bin/waf-1.7.15-p1...
"/usr/bin/python3" /builddir/build/BUILD/python-wxpython4-4.0.1/python3/bin/waf-1.7.15-p1 --wx_config=wx-config-3.0 --gtk3 --python="/usr/bin/python3" --out=build/waf/3.7/gtk3 configure build 
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-wxpython4-4.0.1/python3/bin/.waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b/waflib/Node.py", line 282, in ant_iter
    raise StopIteration
StopIteration
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-wxpython4-4.0.1/python3/bin/.waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b/waflib/Scripting.py", line 97, in waf_entry_point
    run_commands()
  File "/builddir/build/BUILD/python-wxpython4-4.0.1/python3/bin/.waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b/waflib/Scripting.py", line 149, in run_commands
    parse_options()
  File "/builddir/build/BUILD/python-wxpython4-4.0.1/python3/bin/.waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b/waflib/Scripting.py", line 127, in parse_options
    Context.create_context('options').execute()
  File "/builddir/build/BUILD/python-wxpython4-4.0.1/python3/bin/.waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b/waflib/Options.py", line 134, in execute
    super(OptionsContext,self).execute()
  File "/builddir/build/BUILD/python-wxpython4-4.0.1/python3/bin/.waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b/waflib/Context.py", line 84, in execute
    self.recurse([os.path.dirname(g_module.root_path)])
  File "/builddir/build/BUILD/python-wxpython4-4.0.1/python3/bin/.waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b/waflib/Context.py", line 125, in recurse
    user_function(self)
  File "/builddir/build/BUILD/python-wxpython4-4.0.1/python3/wscript", line 33, in options
    opt.load('compiler_cc compiler_cxx')
  File "/builddir/build/BUILD/python-wxpython4-4.0.1/python3/bin/.waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b/waflib/Context.py", line 81, in load
    fun(self)
  File "/builddir/build/BUILD/python-wxpython4-4.0.1/python3/bin/.waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b/waflib/Tools/compiler_c.py", line 31, in options
    opt.load_special_tools('c_*.py',ban=['c_dumbpreproc.py'])
  File "/builddir/build/BUILD/python-wxpython4-4.0.1/python3/bin/.waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b/waflib/Context.py", line 261, in load_special_tools
    lst=self.root.find_node(waf_dir).find_node('waflib/extras').ant_glob(var)
  File "/builddir/build/BUILD/python-wxpython4-4.0.1/python3/bin/.waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b/waflib/Node.py", line 331, in ant_glob
    ret=[x for x in self.ant_iter(accept=accept,pats=[to_pat(incl),to_pat(excl)],maxdepth=kw.get('maxdepth',25),dir=dir,src=src,remove=kw.get('remove',True))]
  File "/builddir/build/BUILD/python-wxpython4-4.0.1/python3/bin/.waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b/waflib/Node.py", line 331, in <listcomp>
    ret=[x for x in self.ant_iter(accept=accept,pats=[to_pat(incl),to_pat(excl)],maxdepth=kw.get('maxdepth',25),dir=dir,src=src,remove=kw.get('remove',True))]
RuntimeError: generator raised StopIteration

Additional info:
https://docs.python.org/3.7/whatsnew/3.7.html#changes-in-python-behavior
https://www.python.org/dev/peps/pep-0479/

Similar bugs/fixes:
https://bugzilla.redhat.com/show_bug.cgi?id=1583818
https://bitbucket.org/ianb/paste/pull-requests/41/python-37-support/diff
https://github.com/erikrose/more-itertools/commit/e38574428c952b143fc4e0e42cb99b242c7b7977
https://github.com/drkjam/netaddr/pull/167



If you fix this, please build in the Python 3.7 side tag with: fedpkg build --target=f29-python

Comment 1 Miro Hrončok 2018-06-19 22:03:30 UTC
https://wxpython.org/news/wxpython-4.0.2-release/index.html

> Updated the waf tool used by the build to version 2.0.7. This fixes problems with building for Python 3.7.


Please either update (I've seen that's blocked) or backport the fixer.

Comment 2 Scott Talbert 2018-06-20 21:07:20 UTC
Fixed in f29-python tag.