From b85ba8c3ff3fb9ae708576ccef03434d2ef73054 Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Tue, 14 Jun 2022 09:54:18 +0000 Subject: [PATCH] waflib: fix compatibility with python-3.11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * https://docs.python.org/3.11/whatsnew/3.11.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. (Contributed by Victor Stinner in bpo-37330.) * fixes: Waf: The wscript in '/OE/build/luneos-langdale/webos-ports/tmp-glibc/work/core2-64-webos-linux/glmark2/2021.12-r0/git' is unreadable Traceback (most recent call last): File "/OE/build/luneos-langdale/webos-ports/tmp-glibc/work/core2-64-webos-linux/glmark2/2021.12-r0/git/waflib/Scripting.py", line 104, in waf_entry_point set_main_module(os.path.normpath(os.path.join(Context.run_dir,Context.WSCRIPT_FILE))) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/OE/build/luneos-langdale/webos-ports/tmp-glibc/work/core2-64-webos-linux/glmark2/2021.12-r0/git/waflib/Scripting.py", line 135, in set_main_module Context.g_module=Context.load_module(file_path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/OE/build/luneos-langdale/webos-ports/tmp-glibc/work/core2-64-webos-linux/glmark2/2021.12-r0/git/waflib/Context.py", line 343, in load_module code=Utils.readf(path,m='rU',encoding=encoding) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/OE/build/luneos-langdale/webos-ports/tmp-glibc/work/core2-64-webos-linux/glmark2/2021.12-r0/git/waflib/Utils.py", line 117, in readf f=open(fname,m) ^^^^^^^^^^^^^ ValueError: invalid mode: 'rUb' Upstream-Status: Submitted [https://github.com/glmark2/glmark2/pull/178] Signed-off-by: Martin Jansa --- waflib/ConfigSet.py | 2 +- waflib/Context.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/waflib/ConfigSet.py b/waflib/ConfigSet.py index 16142a2..87de4ad 100644 --- a/waflib/ConfigSet.py +++ b/waflib/ConfigSet.py @@ -140,7 +140,7 @@ class ConfigSet(object): Utils.writef(filename,''.join(buf)) def load(self,filename): tbl=self.table - code=Utils.readf(filename,m='rU') + code=Utils.readf(filename,m='r') for m in re_imp.finditer(code): g=m.group tbl[g(2)]=eval(g(3)) diff --git a/waflib/Context.py b/waflib/Context.py index 8f2cbfb..f3e35ae 100644 --- a/waflib/Context.py +++ b/waflib/Context.py @@ -109,7 +109,7 @@ class Context(ctx): cache[node]=True self.pre_recurse(node) try: - function_code=node.read('rU',encoding) + function_code=node.read('r',encoding) exec(compile(function_code,node.abspath(),'exec'),self.exec_dict) finally: self.post_recurse(node) @@ -340,7 +340,7 @@ def load_module(path,encoding=None): pass module=imp.new_module(WSCRIPT_FILE) try: - code=Utils.readf(path,m='rU',encoding=encoding) + code=Utils.readf(path,encoding=encoding) except EnvironmentError: raise Errors.WafError('Could not read the file %r'%path) module_dir=os.path.dirname(path)