samba fails to build with Python 3.9.0a3. Traceback (most recent call last): File "/builddir/build/BUILD/samba-4.12.0rc1/third_party/waf/waflib/Scripting.py", line 159, in waf_entry_point run_commands() File "/builddir/build/BUILD/samba-4.12.0rc1/third_party/waf/waflib/Scripting.py", line 255, in run_commands ctx = run_command(cmd_name) File "/builddir/build/BUILD/samba-4.12.0rc1/third_party/waf/waflib/Scripting.py", line 239, in run_command ctx.execute() File "/builddir/build/BUILD/samba-4.12.0rc1/third_party/waf/waflib/Configure.py", line 159, in execute super(ConfigurationContext, self).execute() File "/builddir/build/BUILD/samba-4.12.0rc1/third_party/waf/waflib/Context.py", line 204, in execute self.recurse([os.path.dirname(g_module.root_path)]) File "/builddir/build/BUILD/samba-4.12.0rc1/third_party/waf/waflib/Context.py", line 286, in recurse user_function(self) File "/builddir/build/BUILD/samba-4.12.0rc1/wscript", line 233, in configure conf.PROCESS_SEPARATE_RULE('system_mitkrb5') File "./buildtools/wafsamba/samba_utils.py", line 685, in PROCESS_SEPARATE_RULE function_code = node.read('rU', None) File "/builddir/build/BUILD/samba-4.12.0rc1/third_party/waf/waflib/Node.py", line 185, in read return Utils.readf(self.abspath(), flags, encoding) File "/builddir/build/BUILD/samba-4.12.0rc1/third_party/waf/waflib/Utils.py", line 237, in readf with open(fname, m) as f: ValueError: invalid mode: 'rUb' See https://docs.python.org/3.9/whatsnew/3.9.html#changes-in-the-python-api "open(), io.open(), codecs.open() and fileinput.FileInput no longer accept 'U' (“universal newline”) in the file mode. This flag was deprecated since Python 3.3. In Python 3, the “universal newline” is used by default when a file is open in text mode. The newline parameter of open() controls how universal newlines works."
Created attachment 15775 [details] patch for 4.12
Comment on attachment 15775 [details] patch for 4.12 LGTM.
Karolin, please apply the patch to 4.12. Thanks!
(In reply to Andreas Schneider from comment #3) Pushed to autobuild-v4-12-test.
(In reply to Karolin Seeger from comment #4) Pushed to v4-12-test. Closing out bug report. Thanks!
This should also be pushed back to older versions, so that we can build older versions on modern systems in the future. I'll upload patches.
Created attachment 15802 [details] patch for Samba 4.11 (cherry-picked from master patch)
Created attachment 15806 [details] patch for Samba 4.10 (cherry-picked from master patch)
Comment on attachment 15802 [details] patch for Samba 4.11 (cherry-picked from master patch) LGTM
Comment on attachment 15806 [details] patch for Samba 4.10 (cherry-picked from master patch) LGTM
BTW, I've also complained on https://bugs.python.org/issue37330
Pushed to autobuild-v4-{10,11}-test.
(In reply to Karolin Seeger from comment #12) Pushed to both branches. Closing out bug report. Thanks!
Also, in good news the Python folks will be putting off their breaking change till 3.10, the inclusion of this patch will ensure we are better prepared by then. https://bugs.python.org/issue37330 https://bugs.python.org/issue39674 https://github.com/python/cpython/commit/942f7a2dea2e95a0fa848329565c0d0288d92e47