Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package meson for openSUSE:Factory checked 
in at 2023-10-25 18:02:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/meson (Old)
 and      /work/SRC/openSUSE:Factory/.meson.new.24901 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "meson"

Wed Oct 25 18:02:11 2023 rev:101 rq:1120001 version:1.2.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/meson/meson.changes      2023-10-05 
20:02:25.273126552 +0200
+++ /work/SRC/openSUSE:Factory/.meson.new.24901/meson.changes   2023-10-25 
18:03:00.226808430 +0200
@@ -1,0 +2,16 @@
+Mon Oct 23 09:17:22 UTC 2023 - Dominique Leuenberger <dims...@opensuse.org>
+
+- Update to version 1.2.3:
+  + Allow share/cmake/ as cmake_prefix_path.
+  + find_tool: don't assume the pkgconfig variable is a valid
+    command.
+  + python dependency: ensure that setuptools doesn't inject
+    itself into distutils.
+  + Allow c++23 in gcc-11.
+  + Revert "rust: apply global, project, and environment C args to
+    bindgen".
+- Drop
+  0007-Revert-rust-apply-global-project-and-environment-C-a.patch:
+  fixed upstream.
+
+-------------------------------------------------------------------

Old:
----
  0007-Revert-rust-apply-global-project-and-environment-C-a.patch
  meson-1.2.2.tar.gz
  meson-1.2.2.tar.gz.asc

New:
----
  meson-1.2.3.tar.gz
  meson-1.2.3.tar.gz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ meson.spec ++++++
--- /var/tmp/diff_new_pack.E7QXQv/_old  2023-10-25 18:03:00.926831973 +0200
+++ /var/tmp/diff_new_pack.E7QXQv/_new  2023-10-25 18:03:00.930832107 +0200
@@ -15,7 +15,6 @@
 # Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
-
 %if 0%{?sle_version} >= 150400 && 0%{?sle_version} < 160000
 %global pythons python311
 %else
@@ -35,7 +34,7 @@
 %bcond_with     setuptools
 %bcond_without  mono
 Name:           meson%{name_ext}
-Version:        1.2.2
+Version:        1.2.3
 Release:        0
 Summary:        Python-based build system
 License:        Apache-2.0
@@ -50,8 +49,6 @@
 Patch1:         extend-test-timeout-on-qemu-builds.patch
 # PATCH-FIX-OPENSUSE meson-distutils.patch -- meson is ring0 and therefor 
setuptools is not available
 Patch2:         meson-distutils.patch
-# PATCH-FIX-UPSTREAM 
0007-Revert-rust-apply-global-project-and-environment-C-a.patch 
gh#mesonbuild/meson#12326 -- Fix Mesa build
-Patch3:         0007-Revert-rust-apply-global-project-and-environment-C-a.patch
 
 BuildRequires:  %{python_module base >= 3.7}
 BuildRequires:  fdupes
@@ -175,7 +172,6 @@
 %if !%{with setuptools}
 %patch2 -p1
 %endif
-%patch3 -p1
 
 %if 0%{?sle_version} >= 150400 && 0%{?sle_version} < 160000
 # AddressSanitizer fails here because of ulimit.

++++++ meson-1.2.2.tar.gz -> meson-1.2.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/meson-1.2.2/PKG-INFO new/meson-1.2.3/PKG-INFO
--- old/meson-1.2.2/PKG-INFO    2023-09-29 11:27:47.044486300 +0200
+++ new/meson-1.2.3/PKG-INFO    2023-10-20 20:19:31.307721600 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: meson
-Version: 1.2.2
+Version: 1.2.3
 Summary: A high performance build system
 Home-page: https://mesonbuild.com
 Author: Jussi Pakkanen
@@ -23,6 +23,7 @@
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
 Classifier: Topic :: Software Development :: Build Tools
 Requires-Python: >=3.7
 Provides-Extra: ninja
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/meson-1.2.2/man/meson.1 new/meson-1.2.3/man/meson.1
--- old/meson-1.2.2/man/meson.1 2023-09-29 11:27:20.000000000 +0200
+++ new/meson-1.2.3/man/meson.1 2023-10-20 20:19:23.000000000 +0200
@@ -1,4 +1,4 @@
-.TH MESON "1" "September 2023" "meson 1.2.2" "User Commands"
+.TH MESON "1" "October 2023" "meson 1.2.3" "User Commands"
 .SH NAME
 meson - a high productivity build system
 .SH DESCRIPTION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/meson-1.2.2/meson.egg-info/PKG-INFO 
new/meson-1.2.3/meson.egg-info/PKG-INFO
--- old/meson-1.2.2/meson.egg-info/PKG-INFO     2023-09-29 11:27:37.000000000 
+0200
+++ new/meson-1.2.3/meson.egg-info/PKG-INFO     2023-10-20 20:19:29.000000000 
+0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: meson
-Version: 1.2.2
+Version: 1.2.3
 Summary: A high performance build system
 Home-page: https://mesonbuild.com
 Author: Jussi Pakkanen
@@ -23,6 +23,7 @@
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
 Classifier: Topic :: Software Development :: Build Tools
 Requires-Python: >=3.7
 Provides-Extra: ninja
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/meson-1.2.2/meson.egg-info/SOURCES.txt 
new/meson-1.2.3/meson.egg-info/SOURCES.txt
--- old/meson-1.2.2/meson.egg-info/SOURCES.txt  2023-09-29 11:27:37.000000000 
+0200
+++ new/meson-1.2.3/meson.egg-info/SOURCES.txt  2023-10-20 20:19:29.000000000 
+0200
@@ -961,9 +961,6 @@
 test cases/common/153 wrap file should not 
failed/subprojects/foo-1.0/meson.build
 test cases/common/153 wrap file should not 
failed/subprojects/foo-1.0-patchdir/foo.c
 test cases/common/153 wrap file should not 
failed/subprojects/foo-1.0-patchdir/meson.build
-test cases/common/153 wrap file should not 
failed/subprojects/foo-1.0-patchfile/.meson-subproject-wrap-hash.txt
-test cases/common/153 wrap file should not 
failed/subprojects/foo-1.0-patchfile/foo.c
-test cases/common/153 wrap file should not 
failed/subprojects/foo-1.0-patchfile/meson.build
 test cases/common/153 wrap file should not 
failed/subprojects/packagecache/foo-1.0-patch.tar.xz
 test cases/common/153 wrap file should not 
failed/subprojects/packagecache/foo-1.0.tar.xz
 test cases/common/153 wrap file should not 
failed/subprojects/packagecache/zlib-1.2.8-8-wrap.zip
@@ -1461,7 +1458,6 @@
 test cases/common/257 generated header dep/foo.c
 test cases/common/257 generated header dep/meson.build
 test cases/common/258 subsubproject inplace/meson.build
-test cases/common/258 subsubproject inplace/subprojects/subsub.wrap
 test cases/common/258 subsubproject inplace/subprojects/sub/meson.build
 test cases/common/258 subsubproject 
inplace/subprojects/sub/subprojects/subsub.wrap
 test cases/common/258 subsubproject 
inplace/subprojects/sub/subprojects/subsub-1.0/meson.build
@@ -1883,7 +1879,6 @@
 test cases/common/98 subproject subdir/prog.c
 test cases/common/98 subproject subdir/test.json
 test cases/common/98 subproject subdir/subprojects/sub_implicit.wrap
-test cases/common/98 subproject subdir/subprojects/subsubsub.wrap
 test cases/common/98 subproject subdir/subprojects/sub/meson.build
 test cases/common/98 subproject subdir/subprojects/sub/lib/meson.build
 test cases/common/98 subproject subdir/subprojects/sub/lib/sub.c
@@ -1896,8 +1891,6 @@
 test cases/common/98 subproject 
subdir/subprojects/sub_implicit/subprojects/subsub/subprojects/packagefiles/subsubsub-1.0.zip
 test cases/common/98 subproject subdir/subprojects/sub_novar/meson.build
 test cases/common/98 subproject subdir/subprojects/sub_static/meson.build
-test cases/common/98 subproject 
subdir/subprojects/subsubsub-1.0/.meson-subproject-wrap-hash.txt
-test cases/common/98 subproject subdir/subprojects/subsubsub-1.0/meson.build
 test cases/common/99 postconf/meson.build
 test cases/common/99 postconf/postconf.py
 test cases/common/99 postconf/prog.c
@@ -3272,9 +3265,6 @@
 test cases/rust/12 bindgen/dependencies/meson.build
 test cases/rust/12 bindgen/include/other.h
 test cases/rust/12 bindgen/src/gen_header.py
-test cases/rust/12 bindgen/src/global-project.h
-test cases/rust/12 bindgen/src/global.c
-test cases/rust/12 bindgen/src/global.rs
 test cases/rust/12 bindgen/src/header.h
 test cases/rust/12 bindgen/src/main.rs
 test cases/rust/12 bindgen/src/main2.rs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/meson-1.2.2/mesonbuild/backend/ninjabackend.py 
new/meson-1.2.3/mesonbuild/backend/ninjabackend.py
--- old/meson-1.2.2/mesonbuild/backend/ninjabackend.py  2023-09-29 
11:27:20.000000000 +0200
+++ new/meson-1.2.3/mesonbuild/backend/ninjabackend.py  2023-10-20 
20:19:23.000000000 +0200
@@ -237,8 +237,10 @@
         return ninja_quote(qf(str(x)))
 
     def write(self, outfile: T.TextIO) -> None:
+        rspfile_args = self.args
         if self.rspfile_quote_style is RSPFileSyntax.MSVC:
             rspfile_quote_func = cmd_quote
+            rspfile_args = [NinjaCommandArg('$in_newline', arg.quoting) if 
arg.s == '$in' else arg for arg in rspfile_args]
         else:
             rspfile_quote_func = gcc_rsp_quote
 
@@ -253,7 +255,7 @@
             if rsp == '_RSP':
                 outfile.write(' command = {} @$out.rsp\n'.format(' 
'.join([self._quoter(x) for x in self.command])))
                 outfile.write(' rspfile = $out.rsp\n')
-                outfile.write(' rspfile_content = {}\n'.format(' 
'.join([self._quoter(x, rspfile_quote_func) for x in self.args])))
+                outfile.write(' rspfile_content = {}\n'.format(' 
'.join([self._quoter(x, rspfile_quote_func) for x in rspfile_args])))
             else:
                 outfile.write(' command = {}\n'.format(' 
'.join([self._quoter(x) for x in self.command + self.args])))
             if self.deps:
@@ -636,7 +638,7 @@
             key = OptionKey('b_coverage')
             if (key in self.environment.coredata.options and
                     self.environment.coredata.options[key].value):
-                gcovr_exe, gcovr_version, lcov_exe, genhtml_exe, _ = 
environment.find_coverage_tools()
+                gcovr_exe, gcovr_version, lcov_exe, lcov_version, genhtml_exe, 
_ = environment.find_coverage_tools()
                 if gcovr_exe or (lcov_exe and genhtml_exe):
                     self.add_build_comment(NinjaComment('Coverage rules'))
                     self.generate_coverage_rules(gcovr_exe, gcovr_version)
@@ -2364,7 +2366,12 @@
                 # ranlib, not to ar
                 cmdlist.extend(args)
                 args = []
-                cmdlist.extend(['&&', 'ranlib', '-c', '$out'])
+                # Ensure that we use the user-specified ranlib if any, and
+                # fallback to just picking up some ranlib otherwise
+                ranlib = self.environment.lookup_binary_entry(for_machine, 
'ranlib')
+                if ranlib is None:
+                    ranlib = ['ranlib']
+                cmdlist.extend(['&&'] + ranlib + ['-c', '$out'])
             description = 'Linking static target $out'
             if num_pools > 0:
                 pool = 'pool = link_pool'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/meson-1.2.2/mesonbuild/compilers/cpp.py 
new/meson-1.2.3/mesonbuild/compilers/cpp.py
--- old/meson-1.2.2/mesonbuild/compilers/cpp.py 2023-09-29 11:27:13.000000000 
+0200
+++ new/meson-1.2.3/mesonbuild/compilers/cpp.py 2023-10-20 20:19:23.000000000 
+0200
@@ -154,6 +154,8 @@
             'gnu++17': 'gnu++1z',
             'c++20': 'c++2a',
             'gnu++20': 'gnu++2a',
+            'c++23': 'c++2b',
+            'gnu++23': 'gnu++2b',
         }
 
         # Currently, remapping is only supported for Clang, Elbrus and GCC
@@ -222,6 +224,9 @@
 
 
 class ClangCPPCompiler(_StdCPPLibMixin, ClangCompiler, CPPCompiler):
+
+    _CPP23_VERSION = '>=12.0.0'
+
     def __init__(self, ccache: T.List[str], exelist: T.List[str], version: 
str, for_machine: MachineChoice, is_cross: bool,
                  info: 'MachineInfo', exe_wrapper: 
T.Optional['ExternalProgram'] = None,
                  linker: T.Optional['DynamicLinker'] = None,
@@ -248,11 +253,15 @@
             ),
             key.evolve('rtti'): coredata.UserBooleanOption('Enable RTTI', 
True),
         })
-        opts[key.evolve('std')].choices = [
+        cppstd_choices = [
             'none', 'c++98', 'c++03', 'c++11', 'c++14', 'c++17', 'c++1z',
             'c++2a', 'c++20', 'gnu++11', 'gnu++14', 'gnu++17', 'gnu++1z',
             'gnu++2a', 'gnu++20',
         ]
+        if version_compare(self.version, self._CPP23_VERSION):
+            cppstd_choices.append('c++23')
+            cppstd_choices.append('gnu++23')
+        opts[key.evolve('std')].choices = cppstd_choices
         if self.info.is_windows() or self.info.is_cygwin():
             opts.update({
                 key.evolve('winlibs'): coredata.UserArrayOption(
@@ -294,7 +303,8 @@
 
 
 class AppleClangCPPCompiler(ClangCPPCompiler):
-    pass
+
+    _CPP23_VERSION = '>=13.0.0'
 
 
 class EmscriptenCPPCompiler(EmscriptenMixin, ClangCPPCompiler):
@@ -411,7 +421,7 @@
             'c++2a', 'c++20', 'gnu++03', 'gnu++11', 'gnu++14', 'gnu++17',
             'gnu++1z', 'gnu++2a', 'gnu++20',
         ]
-        if version_compare(self.version, '>=12.2.0'):
+        if version_compare(self.version, '>=11.0.0'):
             cppstd_choices.append('c++23')
             cppstd_choices.append('gnu++23')
         opts[key].choices = cppstd_choices
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/meson-1.2.2/mesonbuild/coredata.py 
new/meson-1.2.3/mesonbuild/coredata.py
--- old/meson-1.2.2/mesonbuild/coredata.py      2023-09-29 11:27:20.000000000 
+0200
+++ new/meson-1.2.3/mesonbuild/coredata.py      2023-10-20 20:19:23.000000000 
+0200
@@ -59,7 +59,7 @@
 #
 # Pip requires that RCs are named like this: '0.1.0.rc1'
 # But the corresponding Git tag needs to be '0.1.0rc1'
-version = '1.2.2'
+version = '1.2.3'
 
 # The next stable version when we are in dev. This is used to allow projects to
 # require meson version >=1.2.0 when using 1.1.99. FeatureNew won't warn when
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/meson-1.2.2/mesonbuild/dependencies/cmake.py 
new/meson-1.2.3/mesonbuild/dependencies/cmake.py
--- old/meson-1.2.2/mesonbuild/dependencies/cmake.py    2023-09-29 
11:27:20.000000000 +0200
+++ new/meson-1.2.3/mesonbuild/dependencies/cmake.py    2023-10-20 
20:19:23.000000000 +0200
@@ -225,7 +225,7 @@
         module_paths = [x for x in module_paths if os.path.isdir(x)]
         archs = temp_parser.get_cmake_var('MESON_ARCH_LIST')
 
-        common_paths = ['lib', 'lib32', 'lib64', 'libx32', 'share']
+        common_paths = ['lib', 'lib32', 'lib64', 'libx32', 'share', '']
         for i in archs:
             common_paths += [os.path.join('lib', i)]
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/meson-1.2.2/mesonbuild/dependencies/dub.py 
new/meson-1.2.3/mesonbuild/dependencies/dub.py
--- old/meson-1.2.2/mesonbuild/dependencies/dub.py      2023-05-30 
17:42:56.000000000 +0200
+++ new/meson-1.2.3/mesonbuild/dependencies/dub.py      2023-10-20 
20:19:23.000000000 +0200
@@ -53,7 +53,7 @@
             self.is_found = False
             return
 
-        (self.dubbin, dubver) = DubDependency.class_dubbin
+        (self.dubbin, dubver) = DubDependency.class_dubbin  # pylint: 
disable=unpacking-non-sequence
 
         assert isinstance(self.dubbin, ExternalProgram)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/meson-1.2.2/mesonbuild/dependencies/python.py 
new/meson-1.2.3/mesonbuild/dependencies/python.py
--- old/meson-1.2.2/mesonbuild/dependencies/python.py   2023-09-29 
11:27:13.000000000 +0200
+++ new/meson-1.2.3/mesonbuild/dependencies/python.py   2023-10-20 
20:19:23.000000000 +0200
@@ -113,7 +113,9 @@
 
         with importlib.resources.path('mesonbuild.scripts', 'python_info.py') 
as f:
             cmd = self.get_command() + [str(f)]
-            p, stdout, stderr = mesonlib.Popen_safe(cmd)
+            env = os.environ.copy()
+            env['SETUPTOOLS_USE_DISTUTILS'] = 'stdlib'
+            p, stdout, stderr = mesonlib.Popen_safe(cmd, env=env)
 
         try:
             info = json.loads(stdout)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/meson-1.2.2/mesonbuild/environment.py 
new/meson-1.2.3/mesonbuild/environment.py
--- old/meson-1.2.2/mesonbuild/environment.py   2023-09-29 11:27:20.000000000 
+0200
+++ new/meson-1.2.3/mesonbuild/environment.py   2023-10-20 20:19:23.000000000 
+0200
@@ -96,6 +96,20 @@
         return gcovr_exe, found
     return None, None
 
+def detect_lcov(log: bool = False):
+    lcov_exe = 'lcov'
+    try:
+        p, found = Popen_safe([lcov_exe, '--version'])[0:2]
+    except (FileNotFoundError, PermissionError):
+        # Doesn't exist in PATH or isn't executable
+        return None, None
+    found = search_version(found)
+    if p.returncode == 0 and found:
+        if log:
+            mlog.log('Found lcov-{} at {}'.format(found, 
quote_arg(shutil.which(lcov_exe))))
+        return lcov_exe, found
+    return None, None
+
 def detect_llvm_cov():
     tools = get_llvm_tool_names('llvm-cov')
     for tool in tools:
@@ -103,20 +117,18 @@
             return tool
     return None
 
-def find_coverage_tools() -> T.Tuple[T.Optional[str], T.Optional[str], 
T.Optional[str], T.Optional[str], T.Optional[str]]:
+def find_coverage_tools() -> T.Tuple[T.Optional[str], T.Optional[str], 
T.Optional[str], T.Optional[str], T.Optional[str], T.Optional[str]]:
     gcovr_exe, gcovr_version = detect_gcovr()
 
     llvm_cov_exe = detect_llvm_cov()
 
-    lcov_exe = 'lcov'
+    lcov_exe, lcov_version = detect_lcov()
     genhtml_exe = 'genhtml'
 
-    if not mesonlib.exe_exists([lcov_exe, '--version']):
-        lcov_exe = None
     if not mesonlib.exe_exists([genhtml_exe, '--version']):
         genhtml_exe = None
 
-    return gcovr_exe, gcovr_version, lcov_exe, genhtml_exe, llvm_cov_exe
+    return gcovr_exe, gcovr_version, lcov_exe, lcov_version, genhtml_exe, 
llvm_cov_exe
 
 def detect_ninja(version: str = '1.8.2', log: bool = False) -> T.List[str]:
     r = detect_ninja_command_and_version(version, log)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/meson-1.2.2/mesonbuild/modules/__init__.py 
new/meson-1.2.3/mesonbuild/modules/__init__.py
--- old/meson-1.2.2/mesonbuild/modules/__init__.py      2023-09-29 
11:27:20.000000000 +0200
+++ new/meson-1.2.3/mesonbuild/modules/__init__.py      2023-10-20 
20:19:23.000000000 +0200
@@ -112,7 +112,7 @@
         if dep.found() and dep.type_name == 'pkgconfig':
             value = dep.get_variable(pkgconfig=varname)
             if value:
-                return ExternalProgram(name, [value])
+                return ExternalProgram(value)
 
         # Normal program lookup
         return self.find_program(name, required=required, wanted=wanted)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/meson-1.2.2/mesonbuild/modules/rust.py 
new/meson-1.2.3/mesonbuild/modules/rust.py
--- old/meson-1.2.2/mesonbuild/modules/rust.py  2023-09-29 11:27:20.000000000 
+0200
+++ new/meson-1.2.3/mesonbuild/modules/rust.py  2023-10-20 20:19:23.000000000 
+0200
@@ -232,12 +232,6 @@
                 elif isinstance(s, CustomTarget):
                     depends.append(s)
 
-        clang_args.extend(state.global_args.get('c', []))
-        clang_args.extend(state.project_args.get('c', []))
-        cargs = state.get_option('args', state.subproject, lang='c')
-        assert isinstance(cargs, list), 'for mypy'
-        clang_args.extend(cargs)
-
         if self._bindgen_bin is None:
             self._bindgen_bin = state.find_program('bindgen')
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/meson-1.2.2/mesonbuild/msubprojects.py 
new/meson-1.2.3/mesonbuild/msubprojects.py
--- old/meson-1.2.2/mesonbuild/msubprojects.py  2023-09-29 11:27:20.000000000 
+0200
+++ new/meson-1.2.3/mesonbuild/msubprojects.py  2023-10-20 20:19:23.000000000 
+0200
@@ -153,6 +153,11 @@
         try:
             wrapdb_version = self.wrap.get('wrapdb_version')
             branch, revision = wrapdb_version.split('-', 1)
+        except ValueError:
+            if not options.force:
+                self.log('  ->', mlog.red('Malformed wrapdb_version field, use 
--force to update anyway'))
+                return False
+            branch = revision = None
         except WrapException:
             # Fallback to parsing the patch URL to determine current version.
             # This won't work for projects that have upstream Meson support.
@@ -161,7 +166,7 @@
                 branch, revision = parse_patch_url(patch_url)
             except WrapException:
                 if not options.force:
-                    self.log('  ->', mlog.red('Could not determine current 
version, use --force to update any way'))
+                    self.log('  ->', mlog.red('Could not determine current 
version, use --force to update anyway'))
                     return False
                 branch = revision = None
 
@@ -229,7 +234,9 @@
         try:
             self.git_output(['-c', 'rebase.autoStash=true', 'rebase', 
'FETCH_HEAD'])
         except GitException as e:
-            self.log('  -> Could not rebase', mlog.bold(self.repo_dir), 
'onto', mlog.bold(revision))
+            self.git_output(['-c', 'rebase.autoStash=true', 'rebase', 
'--abort'])
+            self.log('  -> Could not rebase', mlog.bold(self.repo_dir), 
'onto', mlog.bold(revision),
+                     '-- aborted')
             self.log(mlog.red(e.output))
             self.log(mlog.red(str(e)))
             return False
@@ -283,6 +290,19 @@
             success = self.git_rebase(revision)
         return success
 
+    def git_branch_has_upstream(self, urls: set) -> bool:
+        cmd = ['rev-parse', '--abbrev-ref', '--symbolic-full-name', 
'@{upstream}']
+        ret, upstream = quiet_git(cmd, self.repo_dir)
+        if not ret:
+            return False
+        try:
+            remote = upstream.split('/', maxsplit=1)[0]
+        except IndexError:
+            return False
+        cmd = ['remote', 'get-url', remote]
+        ret, remote_url = quiet_git(cmd, self.repo_dir)
+        return remote_url.strip() in urls
+
     def update_git(self) -> bool:
         options = T.cast('UpdateArguments', self.options)
         if not os.path.exists(os.path.join(self.repo_dir, '.git')):
@@ -374,12 +394,16 @@
                 success = self.git_rebase(revision)
         else:
             # We are in another branch, either the user created their own 
branch and
-            # we should rebase it, or revision changed in the wrap file and we 
need
-            # to checkout the new branch.
+            # we should rebase it, or revision changed in the wrap file (we
+            # know this when the current branch has an upstream) and we need to
+            # checkout the new branch.
             if options.reset:
                 success = self.git_checkout_and_reset(revision)
             else:
-                success = self.git_rebase(revision)
+                if self.git_branch_has_upstream({url, push_url}):
+                    success = self.git_checkout_and_rebase(revision)
+                else:
+                    success = self.git_rebase(revision)
         if success:
             self.update_git_done()
         return success
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/meson-1.2.2/mesonbuild/scripts/coverage.py 
new/meson-1.2.3/mesonbuild/scripts/coverage.py
--- old/meson-1.2.2/mesonbuild/scripts/coverage.py      2023-05-23 
17:20:09.000000000 +0200
+++ new/meson-1.2.3/mesonbuild/scripts/coverage.py      2023-10-20 
20:19:23.000000000 +0200
@@ -22,7 +22,7 @@
     outfiles = []
     exitcode = 0
 
-    (gcovr_exe, gcovr_version, lcov_exe, genhtml_exe, llvm_cov_exe) = 
environment.find_coverage_tools()
+    (gcovr_exe, gcovr_version, lcov_exe, lcov_version, genhtml_exe, 
llvm_cov_exe) = environment.find_coverage_tools()
 
     # load config files for tools if available in the source tree
     # - lcov requires manually specifying a per-project config
@@ -35,6 +35,11 @@
     else:
         lcov_config = []
 
+    if lcov_exe and mesonlib.version_compare(lcov_version, '>=2.0'):
+        lcov_exe_rc_branch_coverage = ['--rc', 'branch_coverage=1']
+    else:
+        lcov_exe_rc_branch_coverage = ['--rc', 'lcov_branch_coverage=1']
+
     gcovr_config = ['-e', re.escape(subproject_root)]
 
     # gcovr >= 4.2 requires a different syntax for out of source builds
@@ -90,6 +95,9 @@
             initial_tracefile = covinfo + '.initial'
             run_tracefile = covinfo + '.run'
             raw_tracefile = covinfo + '.raw'
+            lcov_subpoject_exclude = []
+            if os.path.exists(subproject_root):
+                lcov_subpoject_exclude.append(os.path.join(subproject_root, 
'*'))
             if use_llvm_cov:
                 # Create a shim to allow using llvm-cov as a gcov tool.
                 if mesonlib.is_windows():
@@ -117,26 +125,26 @@
                                    '--capture',
                                    '--output-file', run_tracefile,
                                    '--no-checksum',
-                                   '--rc', 'lcov_branch_coverage=1'] +
+                                   *lcov_exe_rc_branch_coverage] +
                                   lcov_config +
                                   gcov_tool_args)
             # Join initial and test results.
             subprocess.check_call([lcov_exe,
                                    '-a', initial_tracefile,
                                    '-a', run_tracefile,
-                                   '--rc', 'lcov_branch_coverage=1',
+                                   *lcov_exe_rc_branch_coverage,
                                    '-o', raw_tracefile] + lcov_config)
             # Remove all directories outside the source_root from the covinfo
             subprocess.check_call([lcov_exe,
                                    '--extract', raw_tracefile,
                                    os.path.join(source_root, '*'),
-                                   '--rc', 'lcov_branch_coverage=1',
+                                   *lcov_exe_rc_branch_coverage,
                                    '--output-file', covinfo] + lcov_config)
             # Remove all directories inside subproject dir
             subprocess.check_call([lcov_exe,
                                    '--remove', covinfo,
-                                   os.path.join(subproject_root, '*'),
-                                   '--rc', 'lcov_branch_coverage=1',
+                                   *lcov_subpoject_exclude,
+                                   *lcov_exe_rc_branch_coverage,
                                    '--output-file', covinfo] + lcov_config)
             subprocess.check_call([genhtml_exe,
                                    '--prefix', build_root,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/meson-1.2.2/mesonbuild/scripts/python_info.py 
new/meson-1.2.3/mesonbuild/scripts/python_info.py
--- old/meson-1.2.2/mesonbuild/scripts/python_info.py   2023-09-29 
11:27:13.000000000 +0200
+++ new/meson-1.2.3/mesonbuild/scripts/python_info.py   2023-10-20 
20:19:23.000000000 +0200
@@ -13,7 +13,6 @@
     del sys.path[0]
 
 import json, os, sysconfig
-import distutils.command.install
 
 def get_distutils_paths(scheme=None, prefix=None):
     import distutils.dist
@@ -37,24 +36,51 @@
 # default scheme to a custom one pointing to /usr/local and replacing
 # site-packages with dist-packages.
 # See https://github.com/mesonbuild/meson/issues/8739.
-# XXX: We should be using sysconfig, but Debian only patches distutils.
+#
+# We should be using sysconfig, but before 3.10.3, Debian only patches 
distutils.
+# So we may end up falling back.
+
+def get_install_paths():
+    if sys.version_info >= (3, 10):
+        scheme = sysconfig.get_default_scheme()
+    else:
+        scheme = sysconfig._get_default_scheme()
+
+    if sys.version_info >= (3, 10, 3):
+        if 'deb_system' in sysconfig.get_scheme_names():
+            scheme = 'deb_system'
+    else:
+        import distutils.command.install
+        if 'deb_system' in distutils.command.install.INSTALL_SCHEMES:
+            paths = get_distutils_paths(scheme='deb_system')
+            install_paths = get_distutils_paths(scheme='deb_system', prefix='')
+            return paths, install_paths
 
-if 'deb_system' in distutils.command.install.INSTALL_SCHEMES:
-    paths = get_distutils_paths(scheme='deb_system')
-    install_paths = get_distutils_paths(scheme='deb_system', prefix='')
-else:
-    paths = sysconfig.get_paths()
+    paths = sysconfig.get_paths(scheme=scheme)
     empty_vars = {'base': '', 'platbase': '', 'installed_base': ''}
-    install_paths = sysconfig.get_paths(vars=empty_vars)
+    install_paths = sysconfig.get_paths(scheme=scheme, vars=empty_vars)
+    return paths, install_paths
+
+paths, install_paths = get_install_paths()
 
 def links_against_libpython():
-    from distutils.core import Distribution, Extension
-    cmd = Distribution().get_command_obj('build_ext')
-    cmd.ensure_finalized()
-    return bool(cmd.get_libraries(Extension('dummy', [])))
+    # on versions supporting python-embed.pc, this is the non-embed lib
+    #
+    # PyPy is not yet up to 3.12 and work is still pending to export the
+    # relevant information (it doesn't automatically provide arbitrary
+    # Makefile vars)
+    if sys.version_info >= (3, 8) and not is_pypy:
+        variables = sysconfig.get_config_vars()
+        return bool(variables.get('LIBPYTHON', 'yes'))
+    else:
+        from distutils.core import Distribution, Extension
+        cmd = Distribution().get_command_obj('build_ext')
+        cmd.ensure_finalized()
+        return bool(cmd.get_libraries(Extension('dummy', [])))
 
 variables = sysconfig.get_config_vars()
 variables.update({'base_prefix': getattr(sys, 'base_prefix', sys.prefix)})
+is_pypy = '__pypy__' in sys.builtin_module_names
 
 if sys.version_info < (3, 0):
     suffix = variables.get('SO')
@@ -72,7 +98,7 @@
   'install_paths': install_paths,
   'version': sysconfig.get_python_version(),
   'platform': sysconfig.get_platform(),
-  'is_pypy': '__pypy__' in sys.builtin_module_names,
+  'is_pypy': is_pypy,
   'is_venv': sys.prefix != variables['base_prefix'],
   'link_libpython': links_against_libpython(),
   'suffix': suffix,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/meson-1.2.2/mesonbuild/wrap/wrap.py 
new/meson-1.2.3/mesonbuild/wrap/wrap.py
--- old/meson-1.2.2/mesonbuild/wrap/wrap.py     2023-09-29 11:27:20.000000000 
+0200
+++ new/meson-1.2.3/mesonbuild/wrap/wrap.py     2023-10-20 20:19:23.000000000 
+0200
@@ -547,7 +547,10 @@
         if 'lead_directory_missing' in self.wrap.values:
             os.mkdir(self.dirname)
             extract_dir = self.dirname
-        shutil.unpack_archive(path, extract_dir)
+        try:
+            shutil.unpack_archive(path, extract_dir)
+        except OSError as e:
+            raise WrapException(f'failed to unpack archive with error: 
{str(e)}') from e
 
     def get_git(self) -> None:
         if not GIT:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/meson-1.2.2/packaging/createmsi.py 
new/meson-1.2.3/packaging/createmsi.py
--- old/meson-1.2.2/packaging/createmsi.py      2023-08-08 00:54:24.000000000 
+0200
+++ new/meson-1.2.3/packaging/createmsi.py      2023-10-20 20:19:23.000000000 
+0200
@@ -291,7 +291,7 @@
                 })
 
         for dirname in cur_node.dirs:
-            dir_id = os.path.join(current_dir, dirname).replace('\\', 
'_').replace('/', '_')
+            dir_id = os.path.join(current_dir, dirname).replace('\\', 
'_').replace('/', '_').replace('-', '_')
             dir_node = ET.SubElement(parent_xml_node, 'Directory', {
                 'Id': dir_id,
                 'Name': dirname,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/meson-1.2.2/setup.cfg new/meson-1.2.3/setup.cfg
--- old/meson-1.2.2/setup.cfg   2023-09-29 11:27:47.044486300 +0200
+++ new/meson-1.2.3/setup.cfg   2023-10-20 20:19:31.311721600 +0200
@@ -30,6 +30,7 @@
        Programming Language :: Python :: 3.9
        Programming Language :: Python :: 3.10
        Programming Language :: Python :: 3.11
+       Programming Language :: Python :: 3.12
        Topic :: Software Development :: Build Tools
 long_description = Meson is a cross-platform build system designed to be both 
as fast and as user friendly as possible. It supports many languages and 
compilers, including GCC, Clang, PGI, Intel, and Visual Studio. Its build 
definitions are written in a simple non-Turing complete DSL.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' "old/meson-1.2.2/test cases/common/153 wrap file should 
not failed/subprojects/foo-1.0-patchfile/.meson-subproject-wrap-hash.txt" 
"new/meson-1.2.3/test cases/common/153 wrap file should not 
failed/subprojects/foo-1.0-patchfile/.meson-subproject-wrap-hash.txt"
--- "old/meson-1.2.2/test cases/common/153 wrap file should not 
failed/subprojects/foo-1.0-patchfile/.meson-subproject-wrap-hash.txt"   
2023-02-01 22:59:26.000000000 +0100
+++ "new/meson-1.2.3/test cases/common/153 wrap file should not 
failed/subprojects/foo-1.0-patchfile/.meson-subproject-wrap-hash.txt"   
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-0af7983865d151deb48307cc86e9631767501d73016dcf6193523e306caa5485
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' "old/meson-1.2.2/test cases/common/153 wrap file should 
not failed/subprojects/foo-1.0-patchfile/foo.c" "new/meson-1.2.3/test 
cases/common/153 wrap file should not 
failed/subprojects/foo-1.0-patchfile/foo.c"
--- "old/meson-1.2.2/test cases/common/153 wrap file should not 
failed/subprojects/foo-1.0-patchfile/foo.c"     2023-02-01 22:59:26.000000000 
+0100
+++ "new/meson-1.2.3/test cases/common/153 wrap file should not 
failed/subprojects/foo-1.0-patchfile/foo.c"     1970-01-01 01:00:00.000000000 
+0100
@@ -1,7 +0,0 @@
-int dummy_func(void) {
-    return 44;
-}
-
-int main(void) {
-    return dummy_func() == 44 ? 0 : 1;
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' "old/meson-1.2.2/test cases/common/153 wrap file should 
not failed/subprojects/foo-1.0-patchfile/meson.build" "new/meson-1.2.3/test 
cases/common/153 wrap file should not 
failed/subprojects/foo-1.0-patchfile/meson.build"
--- "old/meson-1.2.2/test cases/common/153 wrap file should not 
failed/subprojects/foo-1.0-patchfile/meson.build"       2023-02-01 
22:59:26.000000000 +0100
+++ "new/meson-1.2.3/test cases/common/153 wrap file should not 
failed/subprojects/foo-1.0-patchfile/meson.build"       1970-01-01 
01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-project('static lib patchdir', 'c')
-foo_exe = executable('foo', 'foo.c')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' "old/meson-1.2.2/test cases/common/258 subsubproject 
inplace/subprojects/subsub.wrap" "new/meson-1.2.3/test cases/common/258 
subsubproject inplace/subprojects/subsub.wrap"
--- "old/meson-1.2.2/test cases/common/258 subsubproject 
inplace/subprojects/subsub.wrap"       2023-02-01 23:00:54.000000000 +0100
+++ "new/meson-1.2.3/test cases/common/258 subsubproject 
inplace/subprojects/subsub.wrap"       1970-01-01 01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-[wrap-redirect]
-filename = sub/subprojects/subsub.wrap
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' "old/meson-1.2.2/test cases/common/98 subproject 
subdir/subprojects/subsubsub-1.0/.meson-subproject-wrap-hash.txt" 
"new/meson-1.2.3/test cases/common/98 subproject 
subdir/subprojects/subsubsub-1.0/.meson-subproject-wrap-hash.txt"
--- "old/meson-1.2.2/test cases/common/98 subproject 
subdir/subprojects/subsubsub-1.0/.meson-subproject-wrap-hash.txt"  2023-07-21 
22:12:17.000000000 +0200
+++ "new/meson-1.2.3/test cases/common/98 subproject 
subdir/subprojects/subsubsub-1.0/.meson-subproject-wrap-hash.txt"  1970-01-01 
01:00:00.000000000 +0100
@@ -1 +0,0 @@
-0fd8007dd44a1a5eb5c01af4c138f0993c6cb44da194b36db04484212eff591b
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' "old/meson-1.2.2/test cases/common/98 subproject 
subdir/subprojects/subsubsub-1.0/meson.build" "new/meson-1.2.3/test 
cases/common/98 subproject subdir/subprojects/subsubsub-1.0/meson.build"
--- "old/meson-1.2.2/test cases/common/98 subproject 
subdir/subprojects/subsubsub-1.0/meson.build"      2023-07-21 
22:12:17.000000000 +0200
+++ "new/meson-1.2.3/test cases/common/98 subproject 
subdir/subprojects/subsubsub-1.0/meson.build"      1970-01-01 
01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-project('subsubsub')
-
-meson.override_dependency('subsubsub', declare_dependency())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' "old/meson-1.2.2/test cases/common/98 subproject 
subdir/subprojects/subsubsub.wrap" "new/meson-1.2.3/test cases/common/98 
subproject subdir/subprojects/subsubsub.wrap"
--- "old/meson-1.2.2/test cases/common/98 subproject 
subdir/subprojects/subsubsub.wrap" 2023-07-21 22:14:40.000000000 +0200
+++ "new/meson-1.2.3/test cases/common/98 subproject 
subdir/subprojects/subsubsub.wrap" 1970-01-01 01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-[wrap-redirect]
-filename = sub_implicit/subprojects/subsub/subprojects/subsubsub.wrap
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' "old/meson-1.2.2/test cases/frameworks/15 
llvm/meson.build" "new/meson-1.2.3/test cases/frameworks/15 llvm/meson.build"
--- "old/meson-1.2.2/test cases/frameworks/15 llvm/meson.build" 2023-06-28 
16:48:20.000000000 +0200
+++ "new/meson-1.2.3/test cases/frameworks/15 llvm/meson.build" 2023-10-20 
20:19:23.000000000 +0200
@@ -8,6 +8,11 @@
   error('MESON_SKIP_TEST llvm not found.')
 endif
 
+if method != 'config-tool' and d.version().startswith('17.0') and 
host_machine.system() == 'windows'
+  # 
https://github.com/llvm/llvm-project/commit/e7fc7540daa9333f0be4f380fc9c619236d17f57#r130257253
+  error('MESON_SKIP_TEST broken llvm cmake files on MSYS2')
+endif
+
 modules_to_find = [
   'bitwriter', 'asmprinter', 'executionengine', 'mcjit', 'target',
   'nativecodegen', 'amdgpu', 'engine'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' "old/meson-1.2.2/test cases/frameworks/15 
llvm/test.json" "new/meson-1.2.3/test cases/frameworks/15 llvm/test.json"
--- "old/meson-1.2.2/test cases/frameworks/15 llvm/test.json"   2023-05-23 
17:20:02.000000000 +0200
+++ "new/meson-1.2.3/test cases/frameworks/15 llvm/test.json"   2023-10-20 
20:19:23.000000000 +0200
@@ -2,9 +2,9 @@
   "matrix": {
     "options": {
       "method": [
-        { "val": "config-tool", "skip_on_jobname": ["msys2-gcc"]},
-        { "val": "cmake", "skip_on_jobname": ["msys2-gcc"] },
-        { "val": "combination", "skip_on_jobname": ["msys2-gcc"]}
+        { "val": "config-tool", "skip_on_jobname": ["msys2-gcc"] },
+        { "val": "cmake", "skip_on_jobname": ["msys2"] },
+        { "val": "combination", "skip_on_jobname": ["msys2"] }
       ],
       "link-static": [
         { "val": true, "skip_on_jobname": ["opensuse"] },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' "old/meson-1.2.2/test cases/nasm/2 asm 
language/meson.build" "new/meson-1.2.3/test cases/nasm/2 asm 
language/meson.build"
--- "old/meson-1.2.2/test cases/nasm/2 asm language/meson.build"        
2023-05-23 17:20:02.000000000 +0200
+++ "new/meson-1.2.3/test cases/nasm/2 asm language/meson.build"        
2023-10-20 20:19:23.000000000 +0200
@@ -7,6 +7,8 @@
 
 if host_machine.system() == 'windows'
   error('MESON_SKIP_TEST: this test asm is not made for Windows')
+elif host_machine.system() == 'sunos'
+  error('MESON_SKIP_TEST: this test asm is not made for Solaris or illumos')
 endif
 
 if meson.backend().startswith('vs')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' "old/meson-1.2.2/test cases/python/5 modules 
kwarg/meson.build" "new/meson-1.2.3/test cases/python/5 modules 
kwarg/meson.build"
--- "old/meson-1.2.2/test cases/python/5 modules kwarg/meson.build"     
2023-02-01 23:04:44.000000000 +0100
+++ "new/meson-1.2.3/test cases/python/5 modules kwarg/meson.build"     
2023-10-20 20:19:23.000000000 +0200
@@ -1,7 +1,7 @@
 project('python kwarg')
 
 py = import('python')
-prog_python = py.find_installation('python3', modules : ['distutils'])
+prog_python = py.find_installation('python3', modules : ['os', 'sys', 're'])
 assert(prog_python.found() == true, 'python not found when should be')
 prog_python = py.find_installation('python3', modules : 
['thisbetternotexistmod'], required : false)
 assert(prog_python.found() == false, 'python not found but reported as found')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' "old/meson-1.2.2/test cases/rust/12 bindgen/meson.build" 
"new/meson-1.2.3/test cases/rust/12 bindgen/meson.build"
--- "old/meson-1.2.2/test cases/rust/12 bindgen/meson.build"    2023-09-29 
11:27:20.000000000 +0200
+++ "new/meson-1.2.3/test cases/rust/12 bindgen/meson.build"    2023-10-20 
20:19:23.000000000 +0200
@@ -8,9 +8,6 @@
   error('MESON_SKIP_TEST bindgen not found')
 endif
 
-add_project_arguments('-DPROJECT_ARG', language : 'c')
-add_global_arguments('-DGLOBAL_ARG', language : 'c')
-
 # This seems to happen on windows when libclang.dll is not in path or is not
 # valid. We must try to process a header file for this to work.
 #
@@ -84,18 +81,3 @@
 
 subdir('sub')
 subdir('dependencies')
-
-gp = rust.bindgen(
-  input : 'src/global-project.h',
-  output : 'global-project.rs',
-)
-
-gp_lib = static_library('gp_lib', 'src/global.c')
-
-gp_exe = executable(
-  'gp_exe',
-  structured_sources(['src/global.rs', gp]),
-  link_with : gp_lib,
-)
-
-test('global and project arguments', gp_exe)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' "old/meson-1.2.2/test cases/rust/12 
bindgen/src/global-project.h" "new/meson-1.2.3/test cases/rust/12 
bindgen/src/global-project.h"
--- "old/meson-1.2.2/test cases/rust/12 bindgen/src/global-project.h"   
2023-09-29 11:27:20.000000000 +0200
+++ "new/meson-1.2.3/test cases/rust/12 bindgen/src/global-project.h"   
1970-01-01 01:00:00.000000000 +0100
@@ -1,10 +0,0 @@
-#ifndef GLOBAL_ARG
-char * success(void);
-#endif
-#ifndef PROJECT_ARG
-char * success(void);
-#endif
-#ifndef CMD_ARG
-char * success(void);
-#endif
-int success(void);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' "old/meson-1.2.2/test cases/rust/12 
bindgen/src/global.c" "new/meson-1.2.3/test cases/rust/12 bindgen/src/global.c"
--- "old/meson-1.2.2/test cases/rust/12 bindgen/src/global.c"   2023-09-29 
11:27:20.000000000 +0200
+++ "new/meson-1.2.3/test cases/rust/12 bindgen/src/global.c"   1970-01-01 
01:00:00.000000000 +0100
@@ -1,5 +0,0 @@
-#include "src/global-project.h"
-
-int success(void) {
-    return 0;
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' "old/meson-1.2.2/test cases/rust/12 
bindgen/src/global.rs" "new/meson-1.2.3/test cases/rust/12 
bindgen/src/global.rs"
--- "old/meson-1.2.2/test cases/rust/12 bindgen/src/global.rs"  2023-09-29 
11:27:20.000000000 +0200
+++ "new/meson-1.2.3/test cases/rust/12 bindgen/src/global.rs"  1970-01-01 
01:00:00.000000000 +0100
@@ -1,14 +0,0 @@
-// SPDX-license-identifer: Apache-2.0
-// Copyright © 2023 Intel Corporation
-
-#![allow(non_upper_case_globals)]
-#![allow(non_camel_case_types)]
-#![allow(non_snake_case)]
-
-include!("global-project.rs");
-
-fn main() {
-    unsafe {
-        std::process::exit(success());
-    };
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' "old/meson-1.2.2/test cases/rust/12 bindgen/test.json" 
"new/meson-1.2.3/test cases/rust/12 bindgen/test.json"
--- "old/meson-1.2.2/test cases/rust/12 bindgen/test.json"      2023-09-29 
11:27:20.000000000 +0200
+++ "new/meson-1.2.3/test cases/rust/12 bindgen/test.json"      2023-10-20 
20:19:23.000000000 +0200
@@ -1,10 +1,7 @@
 {
-  "env": {
-    "CFLAGS": "-DCMD_ARG"
-  },
   "stdout": [
     {
-      "line": "test cases/rust/12 bindgen/meson.build:30: WARNING: Project 
targets '>= 0.63' but uses feature introduced in '1.0.0': \"rust.bindgen\" 
keyword argument \"include_directories\" of type array[str]."
+      "line": "test cases/rust/12 bindgen/meson.build:27: WARNING: Project 
targets '>= 0.63' but uses feature introduced in '1.0.0': \"rust.bindgen\" 
keyword argument \"include_directories\" of type array[str]."
     }
   ]
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/meson-1.2.2/unittests/linuxliketests.py 
new/meson-1.2.3/unittests/linuxliketests.py
--- old/meson-1.2.2/unittests/linuxliketests.py 2023-09-29 11:27:13.000000000 
+0200
+++ new/meson-1.2.3/unittests/linuxliketests.py 2023-10-20 20:19:23.000000000 
+0200
@@ -517,6 +517,12 @@
         has_cpp20 = (compiler.get_id() not in {'clang', 'gcc'} or
                      compiler.get_id() == 'clang' and 
_clang_at_least(compiler, '>=10.0.0', None) or
                      compiler.get_id() == 'gcc' and 
version_compare(compiler.version, '>=10.0.0'))
+        has_cpp2b = (compiler.get_id() not in {'clang', 'gcc'} or
+                     compiler.get_id() == 'clang' and 
_clang_at_least(compiler, '>=12.0.0', None) or
+                     compiler.get_id() == 'gcc' and 
version_compare(compiler.version, '>=11.0.0'))
+        has_cpp23 = (compiler.get_id() not in {'clang', 'gcc'} or
+                     compiler.get_id() == 'clang' and 
_clang_at_least(compiler, '>=17.0.0', None) or
+                     compiler.get_id() == 'gcc' and 
version_compare(compiler.version, '>=11.0.0'))
         has_c18 = (compiler.get_id() not in {'clang', 'gcc'} or
                    compiler.get_id() == 'clang' and _clang_at_least(compiler, 
'>=8.0.0', '>=11.0') or
                    compiler.get_id() == 'gcc' and 
version_compare(compiler.version, '>=8.0.0'))
@@ -533,6 +539,10 @@
                 continue
             elif '++20' in v and not has_cpp20:
                 continue
+            elif '++2b' in v and not has_cpp2b:
+                continue
+            elif '++23' in v and not has_cpp23:
+                continue
             # now C
             elif '17' in v and not has_cpp2a_c17:
                 continue

Reply via email to