Richard Laager via devel <devel@ntpsec.org>: > 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 devel@ntpsec.org http://lists.ntpsec.org/mailman/listinfo/devel