Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package meson for openSUSE:Factory checked in at 2024-01-05 21:40:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/meson (Old) and /work/SRC/openSUSE:Factory/.meson.new.28375 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "meson" Fri Jan 5 21:40:59 2024 rev:105 rq:1136898 version:1.3.1 Changes: -------- --- /work/SRC/openSUSE:Factory/meson/meson.changes 2023-12-14 22:02:20.222328413 +0100 +++ /work/SRC/openSUSE:Factory/.meson.new.28375/meson.changes 2024-01-05 21:41:20.466121640 +0100 @@ -1,0 +2,10 @@ +Thu Jan 4 16:37:38 UTC 2024 - Dominique Leuenberger <dims...@opensuse.org> + +- Update to version 1.3.1: + + Make the Requires.private line in generated .pkgconfig files + reproducible. + + Always use posix paths when retrieving link name. + + dependencies/llvm: strip default include dirs also for + config-tool version. + +------------------------------------------------------------------- Old: ---- meson-1.3.0.tar.gz meson-1.3.0.tar.gz.asc New: ---- meson-1.3.1.tar.gz meson-1.3.1.tar.gz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ meson.spec ++++++ --- /var/tmp/diff_new_pack.j3gtdf/_old 2024-01-05 21:41:22.522196820 +0100 +++ /var/tmp/diff_new_pack.j3gtdf/_new 2024-01-05 21:41:22.542197551 +0100 @@ -1,7 +1,7 @@ # # spec file # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -35,7 +35,7 @@ %bcond_with setuptools %bcond_without mono Name: meson%{name_ext} -Version: 1.3.0 +Version: 1.3.1 Release: 0 Summary: Python-based build system License: Apache-2.0 ++++++ meson-1.3.0.tar.gz -> meson-1.3.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-1.3.0/PKG-INFO new/meson-1.3.1/PKG-INFO --- old/meson-1.3.0/PKG-INFO 2023-11-19 20:58:43.744429600 +0100 +++ new/meson-1.3.1/PKG-INFO 2023-12-26 18:30:55.094429700 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: meson -Version: 1.3.0 +Version: 1.3.1 Summary: A high performance build system Home-page: https://mesonbuild.com Author: Jussi Pakkanen diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-1.3.0/man/meson.1 new/meson-1.3.1/man/meson.1 --- old/meson-1.3.0/man/meson.1 2023-11-05 23:48:04.000000000 +0100 +++ new/meson-1.3.1/man/meson.1 2023-12-26 17:05:14.000000000 +0100 @@ -1,4 +1,4 @@ -.TH MESON "1" "November 2023" "meson 1.3.0" "User Commands" +.TH MESON "1" "December 2023" "meson 1.3.1" "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.3.0/meson.egg-info/PKG-INFO new/meson-1.3.1/meson.egg-info/PKG-INFO --- old/meson-1.3.0/meson.egg-info/PKG-INFO 2023-11-19 20:58:37.000000000 +0100 +++ new/meson-1.3.1/meson.egg-info/PKG-INFO 2023-12-26 18:30:49.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: meson -Version: 1.3.0 +Version: 1.3.1 Summary: A high performance build system Home-page: https://mesonbuild.com Author: Jussi Pakkanen diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-1.3.0/meson.egg-info/SOURCES.txt new/meson-1.3.1/meson.egg-info/SOURCES.txt --- old/meson-1.3.0/meson.egg-info/SOURCES.txt 2023-11-19 20:58:37.000000000 +0100 +++ new/meson-1.3.1/meson.egg-info/SOURCES.txt 2023-12-26 18:30:49.000000000 +0100 @@ -1685,6 +1685,7 @@ test cases/common/52 object generator/source.c test cases/common/52 object generator/source2.c test cases/common/52 object generator/source3.c +test cases/common/52 object generator/source4.c test cases/common/53 install script/customtarget.py test cases/common/53 install script/meson.build test cases/common/53 install script/myinstall.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-1.3.0/mesonbuild/backend/backends.py new/meson-1.3.1/mesonbuild/backend/backends.py --- old/meson-1.3.0/mesonbuild/backend/backends.py 2023-11-19 18:43:28.000000000 +0100 +++ new/meson-1.3.1/mesonbuild/backend/backends.py 2023-12-26 17:05:14.000000000 +0100 @@ -358,16 +358,16 @@ # In AIX, if we archive .so, the blibpath must link to archived shared library otherwise to the .so file. if mesonlib.is_aix() and target.aix_so_archive: link_lib = re.sub('[.][a]([.]?([0-9]+))*([.]?([a-z]+))*', '.a', link_lib.replace('.so', '.a')) - return os.path.join(self.get_target_dir(target), link_lib) + return Path(self.get_target_dir(target), link_lib).as_posix() elif isinstance(target, build.StaticLibrary): - return os.path.join(self.get_target_dir(target), target.get_filename()) + return Path(self.get_target_dir(target), target.get_filename()).as_posix() elif isinstance(target, (build.CustomTarget, build.CustomTargetIndex)): if not target.is_linkable_target(): raise MesonException(f'Tried to link against custom target "{target.name}", which is not linkable.') - return os.path.join(self.get_target_dir(target), target.get_filename()) + return Path(self.get_target_dir(target), target.get_filename()).as_posix() elif isinstance(target, build.Executable): if target.import_filename: - return os.path.join(self.get_target_dir(target), target.get_import_filename()) + return Path(self.get_target_dir(target), target.get_import_filename()).as_posix() else: return None raise AssertionError(f'BUG: Tried to link to {target!r} which is not linkable') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-1.3.0/mesonbuild/backend/vs2010backend.py new/meson-1.3.1/mesonbuild/backend/vs2010backend.py --- old/meson-1.3.0/mesonbuild/backend/vs2010backend.py 2023-10-26 18:04:31.000000000 +0200 +++ new/meson-1.3.1/mesonbuild/backend/vs2010backend.py 2023-12-26 17:05:14.000000000 +0100 @@ -893,18 +893,6 @@ ET.SubElement(parent_node, "AdditionalIncludeDirectories").text = ';'.join(dirs) @staticmethod - def has_objects(objects, additional_objects, generated_objects): - # Ignore generated objects, those are automatically used by MSBuild because they are part of - # the CustomBuild Outputs. - return len(objects) + len(additional_objects) > 0 - - @staticmethod - def add_generated_objects(node, generated_objects): - # Do not add generated objects to project file. Those are automatically used by MSBuild, because - # they are part of the CustomBuild Outputs. - return - - @staticmethod def escape_preprocessor_define(define: str) -> str: # See: https://msdn.microsoft.com/en-us/library/bb383819.aspx table = str.maketrans({'%': '%25', '$': '%24', '@': '%40', @@ -1777,17 +1765,20 @@ for o in custom_objs: additional_objects.append(o) + # VS automatically links CustomBuild outputs whose name ends in .obj or .res, + # but the others need to be included explicitly + explicit_link_gen_objs = [obj for obj in gen_objs if not obj.endswith(('.obj', '.res'))] + previous_objects = [] - if self.has_objects(objects, additional_objects, gen_objs): + if len(objects) + len(additional_objects) + len(explicit_link_gen_objs) > 0: inc_objs = ET.SubElement(root, 'ItemGroup') for s in objects: relpath = os.path.join(proj_to_build_root, s.rel_to_builddir(self.build_to_src)) if path_normalize_add(relpath, previous_objects): ET.SubElement(inc_objs, 'Object', Include=relpath) - for s in additional_objects: + for s in additional_objects + explicit_link_gen_objs: if path_normalize_add(s, previous_objects): ET.SubElement(inc_objs, 'Object', Include=s) - self.add_generated_objects(inc_objs, gen_objs) ET.SubElement(root, 'Import', Project=r'$(VCTargetsPath)\Microsoft.Cpp.targets') self.add_regen_dependency(root) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-1.3.0/mesonbuild/cmake/tracetargets.py new/meson-1.3.1/mesonbuild/cmake/tracetargets.py --- old/meson-1.3.0/mesonbuild/cmake/tracetargets.py 2023-10-26 18:04:24.000000000 +0200 +++ new/meson-1.3.1/mesonbuild/cmake/tracetargets.py 2023-12-26 17:05:14.000000000 +0100 @@ -55,7 +55,11 @@ # CMake brute-forces a combination of prefix/suffix combinations to find the # right library. Assume any bare argument passed which is not also a CMake # target must be a system library we should try to link against. - res.libraries += clib_compiler.find_library(curr, env, []) + flib = clib_compiler.find_library(curr, env, []) + if flib is not None: + res.libraries += flib + else: + not_found_warning(curr) else: not_found_warning(curr) continue diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-1.3.0/mesonbuild/compilers/mixins/clike.py new/meson-1.3.1/mesonbuild/compilers/mixins/clike.py --- old/meson-1.3.0/mesonbuild/compilers/mixins/clike.py 2023-10-26 18:04:31.000000000 +0200 +++ new/meson-1.3.1/mesonbuild/compilers/mixins/clike.py 2023-12-26 17:05:14.000000000 +0100 @@ -1,4 +1,4 @@ -# Copyright 2012-2022 The Meson development team +# Copyright 2012-2023 The Meson development team # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -64,7 +64,7 @@ # NOTE: not thorough. A list of potential corner cases can be found in # https://github.com/mesonbuild/meson/pull/4593#pullrequestreview-182016038 - dedup1_prefixes = ('-l', '-Wl,-l', '-Wl,--export-dynamic') + dedup1_prefixes = ('-l', '-Wl,-l', '-Wl,--export-dynamic', '-Wl,-rpath') dedup1_suffixes = ('.lib', '.dll', '.so', '.dylib', '.a') dedup1_args = ('-c', '-S', '-E', '-pipe', '-pthread') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-1.3.0/mesonbuild/coredata.py new/meson-1.3.1/mesonbuild/coredata.py --- old/meson-1.3.0/mesonbuild/coredata.py 2023-11-19 20:43:55.000000000 +0100 +++ new/meson-1.3.1/mesonbuild/coredata.py 2023-12-26 17:05:14.000000000 +0100 @@ -61,7 +61,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.3.0' +version = '1.3.1' # 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.3.0/mesonbuild/dependencies/base.py new/meson-1.3.1/mesonbuild/dependencies/base.py --- old/meson-1.3.0/mesonbuild/dependencies/base.py 2023-10-26 18:04:24.000000000 +0200 +++ new/meson-1.3.1/mesonbuild/dependencies/base.py 2023-12-26 17:05:14.000000000 +0100 @@ -39,15 +39,34 @@ ) from ..interpreter.type_checking import PkgConfigDefineType + _MissingCompilerBase = Compiler +else: + _MissingCompilerBase = object + class DependencyException(MesonException): '''Exceptions raised while trying to find dependencies''' -class MissingCompiler: +class MissingCompiler(_MissingCompilerBase): """Represent a None Compiler - when no tool chain is found. replacing AttributeError with DependencyException""" + # These are needed in type checking mode to avoid errors, but we don't want + # the extra overhead at runtime + if T.TYPE_CHECKING: + def __init__(self) -> None: + pass + + def get_optimization_args(self, optimization_level: str) -> T.List[str]: + return [] + + def get_output_args(self, outputname: str) -> T.List[str]: + return [] + + def sanity_check(self, work_dir: str, environment: 'Environment') -> None: + return None + def __getattr__(self, item: str) -> T.Any: if item.startswith('__'): raise AttributeError() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-1.3.0/mesonbuild/dependencies/dev.py new/meson-1.3.1/mesonbuild/dependencies/dev.py --- old/meson-1.3.0/mesonbuild/dependencies/dev.py 2023-09-29 12:50:20.000000000 +0200 +++ new/meson-1.3.1/mesonbuild/dependencies/dev.py 2023-12-26 17:05:14.000000000 +0100 @@ -232,6 +232,7 @@ cargs = mesonlib.OrderedSet(self.get_config_value(['--cppflags'], 'compile_args')) self.compile_args = list(cargs.difference(self.__cpp_blacklist)) + self.compile_args = strip_system_includedirs(environment, self.for_machine, self.compile_args) if version_compare(self.version, '>= 3.9'): self._set_new_link_args(environment) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-1.3.0/mesonbuild/dependencies/python.py new/meson-1.3.1/mesonbuild/dependencies/python.py --- old/meson-1.3.0/mesonbuild/dependencies/python.py 2023-10-26 18:04:24.000000000 +0200 +++ new/meson-1.3.1/mesonbuild/dependencies/python.py 2023-12-26 17:05:14.000000000 +0100 @@ -245,14 +245,15 @@ self.is_found = True def get_windows_python_arch(self) -> T.Optional[str]: - if self.platform == 'mingw': - pycc = self.variables.get('CC') - if pycc.startswith('x86_64'): + if self.platform.startswith('mingw'): + if 'x86_64' in self.platform: return 'x86_64' - elif pycc.startswith(('i686', 'i386')): + elif 'i686' in self.platform: return 'x86' + elif 'aarch64' in self.platform: + return 'aarch64' else: - mlog.log(f'MinGW Python built with unknown CC {pycc!r}, please file a bug') + mlog.log(f'MinGW Python built with unknown platform {self.platform!r}, please file a bug') return None elif self.platform == 'win32': return 'x86' @@ -309,7 +310,7 @@ ''')) # base_prefix to allow for virtualenvs. lib = Path(self.variables.get('base_prefix')) / libpath - elif self.platform == 'mingw': + elif self.platform.startswith('mingw'): if self.static: libname = self.variables.get('LIBRARY') else: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-1.3.0/mesonbuild/linkers/detect.py new/meson-1.3.1/mesonbuild/linkers/detect.py --- old/meson-1.3.0/mesonbuild/linkers/detect.py 2023-10-26 18:04:24.000000000 +0200 +++ new/meson-1.3.1/mesonbuild/linkers/detect.py 2023-12-26 17:05:14.000000000 +0100 @@ -185,8 +185,9 @@ v = search_version(o) linker = linkers.LLVMDynamicLinker(compiler, for_machine, comp_class.LINKER_PREFIX, override, version=v) - # first might be apple clang, second is for real gcc, the third is icc - elif e.endswith('(use -v to see invocation)\n') or 'macosx_version' in e or 'ld: unknown option:' in e: + # First might be apple clang, second is for real gcc, the third is icc. + # Note that "ld: unknown option: " sometimes instead is "ld: unknown options:". + elif e.endswith('(use -v to see invocation)\n') or 'macosx_version' in e or 'ld: unknown option' in e: if isinstance(comp_class.LINKER_PREFIX, str): cmd = compiler + [comp_class.LINKER_PREFIX + '-v'] + extra_args else: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-1.3.0/mesonbuild/linkers/linkers.py new/meson-1.3.1/mesonbuild/linkers/linkers.py --- old/meson-1.3.0/mesonbuild/linkers/linkers.py 2023-10-26 18:04:24.000000000 +0200 +++ new/meson-1.3.1/mesonbuild/linkers/linkers.py 2023-12-26 17:05:14.000000000 +0100 @@ -792,7 +792,15 @@ return ['-fsanitize=' + value] def no_undefined_args(self) -> T.List[str]: - return self._apply_prefix('-undefined,error') + # We used to emit -undefined,error, but starting with Xcode 15 / + # Sonoma, doing so triggers "ld: warning: -undefined error is + # deprecated". Given that "-undefined error" is documented to be the + # linker's default behaviour, this warning seems ill advised. However, + # it does create a lot of noise. As "-undefined error" is the default + # behaviour, the least bad way to deal with this seems to be to just + # not emit anything here. Of course that only works as long as nothing + # else injects -undefined dynamic_lookup, or such. Complain to Apple. + return [] def headerpad_args(self) -> T.List[str]: return self._apply_prefix('-headerpad_max_install_names') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-1.3.0/mesonbuild/mlog.py new/meson-1.3.1/mesonbuild/mlog.py --- old/meson-1.3.0/mesonbuild/mlog.py 2023-10-26 18:04:24.000000000 +0200 +++ new/meson-1.3.1/mesonbuild/mlog.py 2023-12-26 17:05:14.000000000 +0100 @@ -190,7 +190,7 @@ try: self.log_pager.stdin.flush() self.log_pager.stdin.close() - except BrokenPipeError: + except OSError: pass self.log_pager.wait() self.log_pager = None diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-1.3.0/mesonbuild/modules/pkgconfig.py new/meson-1.3.1/mesonbuild/modules/pkgconfig.py --- old/meson-1.3.0/mesonbuild/modules/pkgconfig.py 2023-10-26 18:04:31.000000000 +0200 +++ new/meson-1.3.1/mesonbuild/modules/pkgconfig.py 2023-12-26 17:05:14.000000000 +0100 @@ -307,7 +307,7 @@ for name in reqs: vreqs = self.version_reqs.get(name, None) if vreqs: - result += [name + ' ' + self.format_vreq(vreq) for vreq in vreqs] + result += [name + ' ' + self.format_vreq(vreq) for vreq in sorted(vreqs)] else: result += [name] return ', '.join(result) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-1.3.0/mesonbuild/scripts/coverage.py new/meson-1.3.1/mesonbuild/scripts/coverage.py --- old/meson-1.3.0/mesonbuild/scripts/coverage.py 2023-10-20 20:19:23.000000000 +0200 +++ new/meson-1.3.1/mesonbuild/scripts/coverage.py 2023-12-26 17:05:14.000000000 +0100 @@ -145,6 +145,7 @@ '--remove', covinfo, *lcov_subpoject_exclude, *lcov_exe_rc_branch_coverage, + '--ignore-errors', 'unused', '--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.3.0/mesonbuild/utils/universal.py new/meson-1.3.1/mesonbuild/utils/universal.py --- old/meson-1.3.0/mesonbuild/utils/universal.py 2023-10-26 18:04:31.000000000 +0200 +++ new/meson-1.3.1/mesonbuild/utils/universal.py 2023-12-26 17:05:14.000000000 +0100 @@ -1210,7 +1210,7 @@ var, _ = confdata.get(varname) if isinstance(var, str): var_str = var - elif isinstance(var, bool): + elif variable_format.startswith("cmake") and isinstance(var, bool): var_str = str(int(var)) elif isinstance(var, int): var_str = str(var) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' "old/meson-1.3.0/test cases/common/173 as-needed/meson.build" "new/meson-1.3.1/test cases/common/173 as-needed/meson.build" --- "old/meson-1.3.0/test cases/common/173 as-needed/meson.build" 2023-10-27 17:46:46.000000000 +0200 +++ "new/meson-1.3.1/test cases/common/173 as-needed/meson.build" 2023-12-11 18:01:54.000000000 +0100 @@ -11,3 +11,10 @@ main_exe = executable('C', 'main.cpp', link_with : [libA, libB]) test('main test', main_exe) + +# Since Sonoma / Xcode 15 the macos linker considers the dependency via the +# initializer sufficient to pull in the other other library. There's no good +# way to detect the linker version here, so just skip the on macos. +if host_machine.system() == 'darwin' + error('MESON_SKIP_TEST: the macos linker is too smart for this test') +endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' "old/meson-1.3.0/test cases/common/197 function attributes/meson.build" "new/meson-1.3.1/test cases/common/197 function attributes/meson.build" --- "old/meson-1.3.0/test cases/common/197 function attributes/meson.build" 2023-11-05 21:54:51.000000000 +0100 +++ "new/meson-1.3.1/test cases/common/197 function attributes/meson.build" 2023-12-11 18:01:54.000000000 +0100 @@ -91,6 +91,11 @@ attributes += 'alloc_size' endif +# gcc doesn't support constructor_priority on darwin +if c.get_id() == 'gcc' and host_machine.system() == 'darwin' + expected += {'constructor_priority': false} +endif + if ['gcc', 'intel'].contains(c.get_id()) # not supported by clang as of 5.0.0 (at least up to 6.0.1) attributes += 'artificial' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' "old/meson-1.3.0/test cases/common/52 object generator/meson.build" "new/meson-1.3.1/test cases/common/52 object generator/meson.build" --- "old/meson-1.3.0/test cases/common/52 object generator/meson.build" 2023-10-27 17:44:56.000000000 +0200 +++ "new/meson-1.3.1/test cases/common/52 object generator/meson.build" 2023-12-11 18:01:54.000000000 +0100 @@ -29,6 +29,14 @@ arguments : [comp, cc, '@INPUT@', '@OUTPUT0@']) generated2 = gen2.process(['source3.c']) -e = executable('prog', 'prog.c', generated, generated2) +# Generate an object file ending with .o even on Windows. +# The VS backend needs to handle .o objects differently from .obj objects. +gen3 = generator(python, + output : '@BASENAME@.o', + arguments : [comp, cc, '@INPUT@', '@OUTPUT@']) + +generated3 = gen3.process(['source4.c']) + +e = executable('prog', 'prog.c', generated, generated2, generated3) test('objgen', e) \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' "old/meson-1.3.0/test cases/common/52 object generator/prog.c" "new/meson-1.3.1/test cases/common/52 object generator/prog.c" --- "old/meson-1.3.0/test cases/common/52 object generator/prog.c" 2023-10-26 18:32:40.000000000 +0200 +++ "new/meson-1.3.1/test cases/common/52 object generator/prog.c" 2023-12-11 18:01:54.000000000 +0100 @@ -1,7 +1,8 @@ int func1_in_obj(void); int func2_in_obj(void); int func3_in_obj(void); +int func4_in_obj(void); int main(void) { - return func1_in_obj() + func2_in_obj() + func3_in_obj(); + return func1_in_obj() + func2_in_obj() + func3_in_obj() + func4_in_obj(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' "old/meson-1.3.0/test cases/common/52 object generator/source4.c" "new/meson-1.3.1/test cases/common/52 object generator/source4.c" --- "old/meson-1.3.0/test cases/common/52 object generator/source4.c" 1970-01-01 01:00:00.000000000 +0100 +++ "new/meson-1.3.1/test cases/common/52 object generator/source4.c" 2023-12-11 18:01:54.000000000 +0100 @@ -0,0 +1,3 @@ +int func4_in_obj(void) { + return 0; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' "old/meson-1.3.0/test cases/osx/5 extra frameworks/meson.build" "new/meson-1.3.1/test cases/osx/5 extra frameworks/meson.build" --- "old/meson-1.3.0/test cases/osx/5 extra frameworks/meson.build" 2023-10-26 18:04:24.000000000 +0200 +++ "new/meson-1.3.1/test cases/osx/5 extra frameworks/meson.build" 2023-12-11 18:01:54.000000000 +0100 @@ -7,7 +7,7 @@ assert(dep_main.type_name() == 'extraframeworks', 'type_name is ' + dep_main.type_name()) # https://github.com/mesonbuild/meson/issues/10002 -ldap_dep = dependency('ldap', method : 'extraframework') +ldap_dep = dependency('LDAP', method : 'extraframework') assert(ldap_dep.type_name() == 'extraframeworks', 'type_name is ' + ldap_dep.type_name()) stlib = static_library('stat', 'stat.c', install : true, dependencies: [opengl_dep, ldap_dep]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-1.3.0/unittests/darwintests.py new/meson-1.3.1/unittests/darwintests.py --- old/meson-1.3.0/unittests/darwintests.py 2023-10-26 19:03:09.000000000 +0200 +++ new/meson-1.3.1/unittests/darwintests.py 2023-12-26 17:05:14.000000000 +0100 @@ -151,5 +151,5 @@ def test_darwin_get_object_archs(self): from mesonbuild.mesonlib import darwin_get_object_archs - archs = darwin_get_object_archs('/System/Library/CoreServices/Encodings/libSymbolConverter.dylib') + archs = darwin_get_object_archs('/bin/cat') self.assertEqual(archs, ['x86_64', 'aarch64']) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-1.3.0/unittests/internaltests.py new/meson-1.3.1/unittests/internaltests.py --- old/meson-1.3.0/unittests/internaltests.py 2023-10-26 19:03:09.000000000 +0200 +++ new/meson-1.3.1/unittests/internaltests.py 2023-12-26 17:05:14.000000000 +0100 @@ -618,7 +618,8 @@ out = name.with_suffix('.o') with src.open('w', encoding='utf-8') as f: f.write('int meson_foobar (void) { return 0; }') - subprocess.check_call(['clang', '-c', str(src), '-o', str(out)]) + # use of x86_64 is hardcoded in run_tests.py:get_fake_env() + subprocess.check_call(['clang', '-c', str(src), '-o', str(out), '-arch', 'x86_64']) subprocess.check_call(['ar', 'csr', str(name), str(out)]) with tempfile.TemporaryDirectory() as tmpdir: @@ -1012,19 +1013,30 @@ def test_validate_json(self) -> None: """Validate the json schema for the test cases.""" try: - from jsonschema import validate, ValidationError + from fastjsonschema import compile, JsonSchemaValueException as JsonSchemaFailure + fast = True except ImportError: - if is_ci(): - raise - raise unittest.SkipTest('Python jsonschema module not found.') + try: + from jsonschema import validate, ValidationError as JsonSchemaFailure + fast = False + except: + if is_ci(): + raise + raise unittest.SkipTest('neither Python fastjsonschema nor jsonschema module not found.') + + with open('data/test.schema.json', 'r', encoding='utf-8') as f: + data = json.loads(f.read()) - schema = json.loads(Path('data/test.schema.json').read_text(encoding='utf-8')) + if fast: + schema_validator = compile(data) + else: + schema_validator = lambda x: validate(x, schema=data) errors: T.List[T.Tuple[Path, Exception]] = [] for p in Path('test cases').glob('**/test.json'): try: - validate(json.loads(p.read_text(encoding='utf-8')), schema=schema) - except ValidationError as e: + schema_validator(json.loads(p.read_text(encoding='utf-8'))) + except JsonSchemaFailure as e: errors.append((p.resolve(), e)) for f, e in errors: