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 <[email protected]> wrote:
> >> Package: src:diodon
> >> Version: 1.8.0-1
> >> Severity: normal
> >> Tags: sid bullseye
> >> User: [email protected]
> >> 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
signature.asc
Description: This is a digitally signed message part.

