1*4882a593SmuzhiyunFrom b85ba8c3ff3fb9ae708576ccef03434d2ef73054 Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Martin Jansa <Martin.Jansa@gmail.com> 3*4882a593SmuzhiyunDate: Tue, 14 Jun 2022 09:54:18 +0000 4*4882a593SmuzhiyunSubject: [PATCH] waflib: fix compatibility with python-3.11 5*4882a593SmuzhiyunMIME-Version: 1.0 6*4882a593SmuzhiyunContent-Type: text/plain; charset=UTF-8 7*4882a593SmuzhiyunContent-Transfer-Encoding: 8bit 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun* https://docs.python.org/3.11/whatsnew/3.11.html#changes-in-the-python-api 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun open(), io.open(), codecs.open() and fileinput.FileInput no longer 12*4882a593Smuzhiyun accept 'U' (“universal newline”) in the file mode. This flag was 13*4882a593Smuzhiyun deprecated since Python 3.3. In Python 3, the “universal newline” is 14*4882a593Smuzhiyun used by default when a file is open in text mode. The newline parameter 15*4882a593Smuzhiyun of open() controls how universal newlines works. (Contributed by Victor 16*4882a593Smuzhiyun Stinner in bpo-37330.) 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun* fixes: 19*4882a593SmuzhiyunWaf: The wscript in '/OE/build/luneos-langdale/webos-ports/tmp-glibc/work/core2-64-webos-linux/glmark2/2021.12-r0/git' is unreadable 20*4882a593SmuzhiyunTraceback (most recent call last): 21*4882a593Smuzhiyun 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 22*4882a593Smuzhiyun set_main_module(os.path.normpath(os.path.join(Context.run_dir,Context.WSCRIPT_FILE))) 23*4882a593Smuzhiyun ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 24*4882a593Smuzhiyun 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 25*4882a593Smuzhiyun Context.g_module=Context.load_module(file_path) 26*4882a593Smuzhiyun ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 27*4882a593Smuzhiyun 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 28*4882a593Smuzhiyun code=Utils.readf(path,m='rU',encoding=encoding) 29*4882a593Smuzhiyun ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 30*4882a593Smuzhiyun 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 31*4882a593Smuzhiyun f=open(fname,m) 32*4882a593Smuzhiyun ^^^^^^^^^^^^^ 33*4882a593SmuzhiyunValueError: invalid mode: 'rUb' 34*4882a593Smuzhiyun 35*4882a593SmuzhiyunUpstream-Status: Submitted [https://github.com/glmark2/glmark2/pull/178] 36*4882a593SmuzhiyunSigned-off-by: Martin Jansa <Martin.Jansa@gmail.com> 37*4882a593Smuzhiyun--- 38*4882a593Smuzhiyun waflib/ConfigSet.py | 2 +- 39*4882a593Smuzhiyun waflib/Context.py | 4 ++-- 40*4882a593Smuzhiyun 2 files changed, 3 insertions(+), 3 deletions(-) 41*4882a593Smuzhiyun 42*4882a593Smuzhiyundiff --git a/waflib/ConfigSet.py b/waflib/ConfigSet.py 43*4882a593Smuzhiyunindex 16142a2..87de4ad 100644 44*4882a593Smuzhiyun--- a/waflib/ConfigSet.py 45*4882a593Smuzhiyun+++ b/waflib/ConfigSet.py 46*4882a593Smuzhiyun@@ -140,7 +140,7 @@ class ConfigSet(object): 47*4882a593Smuzhiyun Utils.writef(filename,''.join(buf)) 48*4882a593Smuzhiyun def load(self,filename): 49*4882a593Smuzhiyun tbl=self.table 50*4882a593Smuzhiyun- code=Utils.readf(filename,m='rU') 51*4882a593Smuzhiyun+ code=Utils.readf(filename,m='r') 52*4882a593Smuzhiyun for m in re_imp.finditer(code): 53*4882a593Smuzhiyun g=m.group 54*4882a593Smuzhiyun tbl[g(2)]=eval(g(3)) 55*4882a593Smuzhiyundiff --git a/waflib/Context.py b/waflib/Context.py 56*4882a593Smuzhiyunindex 8f2cbfb..f3e35ae 100644 57*4882a593Smuzhiyun--- a/waflib/Context.py 58*4882a593Smuzhiyun+++ b/waflib/Context.py 59*4882a593Smuzhiyun@@ -109,7 +109,7 @@ class Context(ctx): 60*4882a593Smuzhiyun cache[node]=True 61*4882a593Smuzhiyun self.pre_recurse(node) 62*4882a593Smuzhiyun try: 63*4882a593Smuzhiyun- function_code=node.read('rU',encoding) 64*4882a593Smuzhiyun+ function_code=node.read('r',encoding) 65*4882a593Smuzhiyun exec(compile(function_code,node.abspath(),'exec'),self.exec_dict) 66*4882a593Smuzhiyun finally: 67*4882a593Smuzhiyun self.post_recurse(node) 68*4882a593Smuzhiyun@@ -340,7 +340,7 @@ def load_module(path,encoding=None): 69*4882a593Smuzhiyun pass 70*4882a593Smuzhiyun module=imp.new_module(WSCRIPT_FILE) 71*4882a593Smuzhiyun try: 72*4882a593Smuzhiyun- code=Utils.readf(path,m='rU',encoding=encoding) 73*4882a593Smuzhiyun+ code=Utils.readf(path,encoding=encoding) 74*4882a593Smuzhiyun except EnvironmentError: 75*4882a593Smuzhiyun raise Errors.WafError('Could not read the file %r'%path) 76*4882a593Smuzhiyun module_dir=os.path.dirname(path) 77