Richard Laager via devel <[email protected]>: > Let me start over now that I've reviewed the specifics of the NTPsec > scripts and build system again: > > We are currently using "#!/usr/bin/env python" in all the scripts, and > waf uses the same. The minimum to do to drop Python 2 is: > > 1. Change waf's shebang: > -#!/usr/bin/env python > +#!/usr/bin/env python3 > > That way, on systems where python is Python 2, waf will get Python 3. > While there is a lot of baggage around whether "python" is Python 2, > Python 3, or neither (i.e. doesn't exist), python3 existing is pretty > universal. [Discussion 1] > > 2. Change the other scripts the same way. > > 3. Update the docs and CI accordingly.
I'm in favor of this simple, brute-force approach.
If nobody comes up with a good argument for retaining Python 2
support, I will ask Mark to include in the release notes that this
is our *last* release with Python 2 support. Then we'll rip out the
Python 2 code paths before the next one.
> An additional improvement (which we could do separately from the Python
> 2 vs Python 3 discussion) would be to allow the user to customize the
> shebang with a build flag. It turns out we already have `./waf configure
> --python` which defaults to sys.executable. This is stock waf behavior.
> We are already running the Python scripts through subst. We just aren't
> doing the last piece of using @PYTHON@ as the shebang. So we could either:
>
> A. Change the Python shebangs to:
> #!@PYTHON@
> I just tested that on one and it works as expected.
> B. Leave them as "/usr/bin/env python3" and write a custom subst
> function to replace that (and do the usual subst).
>
> Option A is trivial. I could have that patch done in 10 minutes.
>
> Option B is a little bit more work, but keeps the scripts directly
> executable from the source tree, which could be helpful for development.
> (The other substitutions aren't typically critical, as they are things
> like @NTPSEC_VERSION_EXTENDED@.) Is this something people care about?
I don't want to go down this road. I have ugly memories associated
with a smiliar hack in gpsd, long ago.
> python3 exists on Debian and derivatives as well as RedHat and
> derivatives. Ubuntu 20.04 optionally allows python to point to
> python3, but always still has python3. I use Debian, Ubuntu, and
> RedHat, so I have personal knowledge here.
Yes. To the best of my knowledge every current Unix-like thing
does right with python3 in the shebang line. That makes hacking those
shebangs as unnecessary as it would be hazardous.
--
<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>
signature.asc
Description: PGP signature
_______________________________________________ devel mailing list [email protected] http://lists.ntpsec.org/mailman/listinfo/devel
