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