This turns out to be more complicated than I had expected.  Internally waf 
uses /usr/bin/env python (which still, of course, is /usr/bin/python vice 
python3), so it fails with python3 even though the upstream code appears to at 
least in part consider python3.

This I could fix with sed, something like:

        find -name "*.py" | xargs sed -i "s:\/usr\/bin\/env\ python:\/usr/bin\/
python3:g"
        sed -i "s:\/usr\/bin\/env\ python:\/usr/bin\/python3:g" waf
        sed -i "s:\/usr\/bin\/env\ python:\/usr/bin\/python3:g" wscript

Not pretty, but works.  But then waf exploads on me:

./waf distclean --nocache --prefix=/usr
Traceback (most recent call last):
  File "./diodon-1.8.0/waflib/Node.py", line 491, in ant_iter
    raise StopIteration
StopIteration

The above exception was the direct cause of the following exception:

Traceback (./diodon-1.8.0/waflib/Scripting.py", line 138, in waf_entry_point
    run_commands()
  File "./diodon-1.8.0/waflib/Scripting.py", line 225, in run_commands
    parse_options()
  File "./diodon-1.8.0/waflib/Scripting.py", line 186, in parse_options
    Context.create_context('options').execute()
  File "./diodon-1.8.0/waflib/Options.py", line 250, in execute
    super(OptionsContext, self).execute()
  File "./diodon-1.8.0/waflib/Context.py", line 216, in execute
    self.recurse([os.path.dirname(g_module.root_path)])
  File "./diodon-1.8.0/waflib/Context.py", line 294, in recurse
    user_function(self)
  File "./diodon-1.8.0/wscript", line 39, in options
    opt.tool_options('compiler_c')
  File "./diodon-1.8.0/waflib/Context.py", line 209, in load
    fun(self)
  File "./diodon-1.8.0/waflib/Tools/compiler_c.py", line 87, in options
    opt.load_special_tools('c_*.py', ban=['c_dumbpreproc.py'])
  File "./diodon-1.8.0/waflib/Context.py", line 515, in load_special_tools
    lst = self.root.find_node(waf_dir).find_node('waflib/extras').ant_glob(var)
  File "./diodon-1.8.0/waflib/Node.py", line 579, in ant_glob
    ret = [x for x in self.ant_iter(accept=accept, pats=[to_pat(incl), 
to_pat(excl)], maxdepth=25, dir=dir, src=src, remove=kw.get('remove', True))]
  File "./diodon-1.8.0/waflib/Node.py", line 579, in <listcomp>
    ret = [x for x in self.ant_iter(accept=accept, pats=[to_pat(incl), 
to_pat(excl)], maxdepth=25, dir=dir, src=src, remove=kw.get('remove', True))]
RuntimeError: generator raised StopIteration
make[1]: *** [debian/rules:18: override_dh_auto_clean] Error 2
make[1]: Leaving directory './diodon-1.8.0'
make: *** [debian/rules:10: clean] Error 2
dpkg-buildpackage: error: fakeroot debian/rules clean subprocess returned exit 
status 2

I don't know anything about waf, so that's not something I can troubleshoot.  
Not going to NMU.

Scott K

On Tuesday, September 17, 2019 1:46:07 PM EDT Oliver Sauder wrote:
> I currently do not have a lot of time at hand. So if you could follow up
> releasing your NMU debdiff that would be great (diff looks good to me).
> 
> Oliver
> 
> On 01.09.19 09:18, Scott Kitterman wrote:
> > On Fri, 30 Aug 2019 07:15:05 +0000 Matthias Klose <d...@debian.org> wrote:
> >> Package: src:diodon
> >> Version: 1.8.0-1
> >> Severity: normal
> >> Tags: sid bullseye
> >> User: debian-pyt...@lists.debian.org
> >> Usertags: py2removal
> >> 
> >> Python2 becomes end-of-live upstream, and Debian aims to remove
> >> Python2 from the distribution, as discussed in
> >> https://lists.debian.org/debian-python/2019/07/msg00080.html
> >> 
> >> Your package either build-depends, depends on Python2, or uses Python2
> >> in the autopkg tests.  Please stop using Python2, and fix this issue
> >> by one of the following actions.
> > 
> > I've attached a fix in the form of an NMU debdiff.  I don't currently plan
> > to NMU, but may later if this remains open.  Please fix.
> > 
> > Scott K

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to