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
signature.asc
Description: This is a digitally signed message part.