<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <font size="2"><font face="Courier New, Courier, monospace">Hi
        developers,<br>
        <br>
        I am trying to understand some errors I get while building
        either QGIS 3.26 or the latest main branch from GitHub in
        openSUSE Tumbleweed. I normally compile the latest source every
        few weeks and normally things go fine. Last few times I compiled
        Python was 3.8 and 3.9 and there were no problems. However,
        recently this distribution I use has made Python3 = 3.10.5. SIP
        is 6.6.2. To my knowledge all other dependencies are satisfied.
        I wonder if the change in Python or SIP versions may have
        introduced some known incompatibility. Errors are listed below.
        Any hint is appreciated.<br>
        <br>
        Thanks in advance<br>
        <br>
        /H.<br>
        <br>
        sip-build: An internal error occurred...<br>
        Traceback (most recent call last):<br>
          File "/bin/sip-build", line 33, in <module><br>
            sys.exit(load_entry_point('sip==6.6.2', 'console_scripts',
        'sip-build')())<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/tools/build.py",
        line 37, in main<br>
            handle_exception(e)<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/exceptions.py",
        line 81, in handle_exception<br>
            raise e<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/tools/build.py",
        line 34, in main<br>
            project.build()<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/project.py", line
        244, in build<br>
            self.builder.build()<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/builder.py", line
        48, in build<br>
            self._generate_bindings()<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/builder.py", line
        277, in _generate_bindings<br>
            buildable = bindings.generate()<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/bindings.py", line
        166, in generate<br>
            spec, sip_files = parse(self.sip_file, SIP_VERSION,
        encoding,<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/parser.py",
        line 35, in parse<br>
            protected_is_public, include_dirs, strict).parse(sip_file)<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/parser_manager.py",
        line 1507, in parse<br>
            self._parser.parse(self._read(sip_file, raw_sip_file),<br>
          File "/usr/lib/python3.10/site-packages/ply/yacc.py", line
        331, in parse<br>
            return self.parseopt(input, lexer, debug, tracking,
        tokenfunc)<br>
          File "/usr/lib/python3.10/site-packages/ply/yacc.py", line
        823, in parseopt<br>
            p.callable(pslice)<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/rules.py",
        line 3029, in p_typedef_decl<br>
            instantiated = pm.instantiate_class_template(p, name_symbol,<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/parser_manager.py",
        line 1480, in instantiate_class_template<br>
            instantiate_class(p, symbol, fq_cpp_name, tmpl_names,
        proto_class,<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
        line 131, in instantiate_class<br>
            i_class.ctors = _instantiate_ctors(tmpl_names, proto_class,
        template,<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
        line 235, in _instantiate_ctors<br>
            i_ctor.py_signature =
        _instantiate_signature(proto_ctor.py_signature,<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
        line 368, in _instantiate_signature<br>
            i_arg = _instantiate_argument(proto_arg, proto_class,
        tmpl_names,<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
        line 191, in _instantiate_argument<br>
            i_arg.default_value = [_instantiate_value(v, expansions)<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
        line 191, in <listcomp><br>
            i_arg.default_value = [_instantiate_value(v, expansions)<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
        line 437, in _instantiate_value<br>
            i_name = ScopedName.parse(template_string(proto_name,
        expansions))<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/generator/templates.py",
        line 201, in template_string<br>
            proto_str = proto_str.replace(name, value)<br>
        AttributeError: 'ScopedName' object has no attribute 'replace'<br>
        make[2]: ***
        [python/CMakeFiles/python_module_qgis__analysis.dir/build.make:853:
        python/analysis/build/_analysis/sip_analysispart0.cpp] Error 1<br>
        make[1]: *** [CMakeFiles/Makefile2:5790:
        python/CMakeFiles/python_module_qgis__analysis.dir/all] Error 2<br>
        make[1]: *** Waiting for unfinished jobs....<br>
        <br>
        <br>
        sip-build: An internal error occurred...<br>
        Traceback (most recent call last):<br>
          File "/bin/sip-build", line 33, in <module><br>
            sys.exit(load_entry_point('sip==6.6.2', 'console_scripts',
        'sip-build')())<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/tools/build.py",
        line 37, in main<br>
            handle_exception(e)<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/exceptions.py",
        line 81, in handle_exception<br>
            raise e<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/tools/build.py",
        line 34, in main<br>
            project.build()<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/project.py", line
        244, in build<br>
            self.builder.build()<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/builder.py", line
        48, in build<br>
            self._generate_bindings()<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/builder.py", line
        277, in _generate_bindings<br>
            buildable = bindings.generate()<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/bindings.py", line
        166, in generate<br>
            spec, sip_files = parse(self.sip_file, SIP_VERSION,
        encoding,<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/parser.py",
        line 35, in parse<br>
            protected_is_public, include_dirs, strict).parse(sip_file)<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/parser_manager.py",
        line 1507, in parse<br>
            self._parser.parse(self._read(sip_file, raw_sip_file),<br>
          File "/usr/lib/python3.10/site-packages/ply/yacc.py", line
        331, in parse<br>
            return self.parseopt(input, lexer, debug, tracking,
        tokenfunc)<br>
          File "/usr/lib/python3.10/site-packages/ply/yacc.py", line
        823, in parseopt<br>
            p.callable(pslice)<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/rules.py",
        line 3029, in p_typedef_decl<br>
            instantiated = pm.instantiate_class_template(p, name_symbol,<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/parser_manager.py",
        line 1480, in instantiate_class_template<br>
            instantiate_class(p, symbol, fq_cpp_name, tmpl_names,
        proto_class,<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
        line 131, in instantiate_class<br>
            i_class.ctors = _instantiate_ctors(tmpl_names, proto_class,
        template,<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
        line 235, in _instantiate_ctors<br>
            i_ctor.py_signature =
        _instantiate_signature(proto_ctor.py_signature,<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
        line 368, in _instantiate_signature<br>
            i_arg = _instantiate_argument(proto_arg, proto_class,
        tmpl_names,<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
        line 191, in _instantiate_argument<br>
            i_arg.default_value = [_instantiate_value(v, expansions)<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
        line 191, in <listcomp><br>
            i_arg.default_value = [_instantiate_value(v, expansions)<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
        line 437, in _instantiate_value<br>
            i_name = ScopedName.parse(template_string(proto_name,
        expansions))<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/generator/templates.py",
        line 201, in template_string<br>
            proto_str = proto_str.replace(name, value)<br>
        AttributeError: 'ScopedName' object has no attribute 'replace'<br>
        make[2]: ***
        [python/CMakeFiles/python_module_qgis__core.dir/build.make:804:
        python/core/build/_core/sip_corepart0.cpp] Error 1<br>
        make[1]: *** [CMakeFiles/Makefile2:5683:
        python/CMakeFiles/python_module_qgis__core.dir/all] Error 2<br>
        <br>
        <br>
        sip-build: An internal error occurred...<br>
        Traceback (most recent call last):<br>
          File "/bin/sip-build", line 33, in <module><br>
            sys.exit(load_entry_point('sip==6.6.2', 'console_scripts',
        'sip-build')())<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/tools/build.py",
        line 37, in main<br>
            handle_exception(e)<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/exceptions.py",
        line 81, in handle_exception<br>
            raise e<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/tools/build.py",
        line 34, in main<br>
            project.build()<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/project.py", line
        244, in build<br>
            self.builder.build()<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/builder.py", line
        48, in build<br>
            self._generate_bindings()<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/builder.py", line
        277, in _generate_bindings<br>
            buildable = bindings.generate()<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/bindings.py", line
        166, in generate<br>
            spec, sip_files = parse(self.sip_file, SIP_VERSION,
        encoding,<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/parser.py",
        line 35, in parse<br>
            protected_is_public, include_dirs, strict).parse(sip_file)<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/parser_manager.py",
        line 1507, in parse<br>
            self._parser.parse(self._read(sip_file, raw_sip_file),<br>
          File "/usr/lib/python3.10/site-packages/ply/yacc.py", line
        331, in parse<br>
            return self.parseopt(input, lexer, debug, tracking,
        tokenfunc)<br>
          File "/usr/lib/python3.10/site-packages/ply/yacc.py", line
        823, in parseopt<br>
            p.callable(pslice)<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/rules.py",
        line 3029, in p_typedef_decl<br>
            instantiated = pm.instantiate_class_template(p, name_symbol,<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/parser_manager.py",
        line 1480, in instantiate_class_template<br>
            instantiate_class(p, symbol, fq_cpp_name, tmpl_names,
        proto_class,<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
        line 131, in instantiate_class<br>
            i_class.ctors = _instantiate_ctors(tmpl_names, proto_class,
        template,<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
        line 235, in _instantiate_ctors<br>
            i_ctor.py_signature =
        _instantiate_signature(proto_ctor.py_signature,<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
        line 368, in _instantiate_signature<br>
            i_arg = _instantiate_argument(proto_arg, proto_class,
        tmpl_names,<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
        line 191, in _instantiate_argument<br>
            i_arg.default_value = [_instantiate_value(v, expansions)<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
        line 191, in <listcomp><br>
            i_arg.default_value = [_instantiate_value(v, expansions)<br>
          File
"/usr/lib64/python3.10/site-packages/sipbuild/generator/parser/instantiations.py",
        line 437, in _instantiate_value<br>
            i_name = ScopedName.parse(template_string(proto_name,
        expansions))<br>
          File
        "/usr/lib64/python3.10/site-packages/sipbuild/generator/templates.py",
        line 201, in template_string<br>
            proto_str = proto_str.replace(name, value)<br>
        AttributeError: 'ScopedName' object has no attribute 'replace'<br>
        make[2]: ***
        [python/CMakeFiles/python_module_qgis__gui.dir/build.make:1253:
        python/gui/build/_gui/sip_guipart0.cpp] Error 1<br>
        make[1]: *** [CMakeFiles/Makefile2:5737:
        python/CMakeFiles/python_module_qgis__gui.dir/all] Error 2<br>
        make: *** [Makefile:156: all] Error 2<br>
      </font></font>
  </body>
</html>