Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package meson for openSUSE:Factory checked in at 2022-11-25 13:11:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/meson (Old) and /work/SRC/openSUSE:Factory/.meson.new.1597 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "meson" Fri Nov 25 13:11:08 2022 rev:90 rq:1037578 version:0.64.1 Changes: -------- --- /work/SRC/openSUSE:Factory/meson/meson.changes 2022-11-23 09:47:30.714855351 +0100 +++ /work/SRC/openSUSE:Factory/.meson.new.1597/meson.changes 2022-11-25 13:11:09.959682125 +0100 @@ -1,0 +2,11 @@ +Wed Nov 23 09:03:45 UTC 2022 - Dominique Leuenberger <dims...@opensuse.org> + +- Update to version 0.64.1: + + Target python 3.10 as the mypy language version. + + hotdoc module: use less confusing names. + + Fix deprecation message, the function name is fs.copyfile(). + + fix deprecated use of meson builddir/ in testsuite. + + tests: fix edge case where non-default python is used, by + skipping it. + +------------------------------------------------------------------- Old: ---- meson-0.64.0.tar.gz meson-0.64.0.tar.gz.asc New: ---- meson-0.64.1.tar.gz meson-0.64.1.tar.gz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ meson.spec ++++++ --- /var/tmp/diff_new_pack.ZWormX/_old 2022-11-25 13:11:11.351689900 +0100 +++ /var/tmp/diff_new_pack.ZWormX/_new 2022-11-25 13:11:11.359689944 +0100 @@ -30,7 +30,7 @@ %define _name mesonbuild %{!?vim_data_dir:%global vim_data_dir %{_datadir}/vim} Name: meson%{name_ext} -Version: 0.64.0 +Version: 0.64.1 Release: 0 Summary: Python-based build system License: Apache-2.0 ++++++ meson-0.64.0.tar.gz -> meson-0.64.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-0.64.0/PKG-INFO new/meson-0.64.1/PKG-INFO --- old/meson-0.64.0/PKG-INFO 2022-11-06 15:14:45.022642400 +0100 +++ new/meson-0.64.1/PKG-INFO 2022-11-22 22:04:22.415355700 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: meson -Version: 0.64.0 +Version: 0.64.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-0.64.0/man/meson.1 new/meson-0.64.1/man/meson.1 --- old/meson-0.64.0/man/meson.1 2022-11-06 14:42:09.000000000 +0100 +++ new/meson-0.64.1/man/meson.1 2022-11-22 18:23:53.000000000 +0100 @@ -1,4 +1,4 @@ -.TH MESON "1" "November 2022" "meson 0.64.0" "User Commands" +.TH MESON "1" "November 2022" "meson 0.64.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-0.64.0/meson.egg-info/PKG-INFO new/meson-0.64.1/meson.egg-info/PKG-INFO --- old/meson-0.64.0/meson.egg-info/PKG-INFO 2022-11-06 15:14:42.000000000 +0100 +++ new/meson-0.64.1/meson.egg-info/PKG-INFO 2022-11-22 22:04:21.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: meson -Version: 0.64.0 +Version: 0.64.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-0.64.0/meson.egg-info/SOURCES.txt new/meson-0.64.1/meson.egg-info/SOURCES.txt --- old/meson-0.64.0/meson.egg-info/SOURCES.txt 2022-11-06 15:14:42.000000000 +0100 +++ new/meson-0.64.1/meson.egg-info/SOURCES.txt 2022-11-22 22:04:21.000000000 +0100 @@ -3307,6 +3307,8 @@ test cases/unit/107 new subproject on reconfigure/subprojects/foo/meson.build test cases/unit/108 configure same noop/meson.build test cases/unit/108 configure same noop/meson_options.txt +test cases/unit/109 freeze/freeze.c +test cases/unit/109 freeze/meson.build test cases/unit/11 cross prog/meson.build test cases/unit/11 cross prog/some_cross_tool.py test cases/unit/11 cross prog/sometool.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-0.64.0/mesonbuild/backend/ninjabackend.py new/meson-0.64.1/mesonbuild/backend/ninjabackend.py --- old/meson-0.64.0/mesonbuild/backend/ninjabackend.py 2022-11-01 20:00:11.000000000 +0100 +++ new/meson-0.64.1/mesonbuild/backend/ninjabackend.py 2022-11-21 20:54:10.000000000 +0100 @@ -1878,8 +1878,8 @@ args.extend(rustc.get_linker_always_args()) args += self.generate_basic_compiler_args(target, rustc, False) - # This matches rustc's default behavior. - args += ['--crate-name', target.name.replace('-', '_')] + # Rustc replaces - with _. spaces are not allowed, so we replace them with underscores + args += ['--crate-name', target.name.replace('-', '_').replace(' ', '_')] depfile = os.path.join(target.subdir, target.name + '.d') args += ['--emit', f'dep-info={depfile}', '--emit', 'link'] args += target.get_extra_args('rust') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-0.64.0/mesonbuild/backend/vs2010backend.py new/meson-0.64.1/mesonbuild/backend/vs2010backend.py --- old/meson-0.64.0/mesonbuild/backend/vs2010backend.py 2022-10-24 21:25:24.000000000 +0200 +++ new/meson-0.64.1/mesonbuild/backend/vs2010backend.py 2022-11-21 20:54:10.000000000 +0100 @@ -1029,7 +1029,7 @@ file_args[l] += compilers.get_base_compile_args( target.get_options(), comp) file_args[l] += comp.get_option_compile_args( - self.environment.coredata.options) + target.get_options()) # Add compile args added using add_project_arguments() for l, args in self.build.projects_args[target.for_machine].get(target.subproject, {}).items(): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-0.64.0/mesonbuild/build.py new/meson-0.64.1/mesonbuild/build.py --- old/meson-0.64.0/mesonbuild/build.py 2022-11-01 20:00:11.000000000 +0100 +++ new/meson-0.64.1/mesonbuild/build.py 2022-11-21 20:54:10.000000000 +0100 @@ -36,7 +36,7 @@ extract_as_list, typeslistify, stringlistify, classify_unity_sources, get_filenames_templates_dict, substitute_values, has_path_sep, OptionKey, PerMachineDefaultable, OptionOverrideProxy, - MesonBugException, EnvironmentVariables + MesonBugException, EnvironmentVariables, pickle_load, ) from .compilers import ( is_object, clink_langs, sort_clink, all_languages, @@ -1784,7 +1784,7 @@ typename = 'executable' def __init__(self, name: str, subdir: str, subproject: str, for_machine: MachineChoice, - sources: T.List[File], structured_sources: T.Optional['StructuredSources'], + sources: T.List[SourceOutputs], structured_sources: T.Optional['StructuredSources'], objects, environment: environment.Environment, compilers: T.Dict[str, 'Compiler'], kwargs): key = OptionKey('b_pie') @@ -1913,7 +1913,7 @@ typename = 'static library' def __init__(self, name: str, subdir: str, subproject: str, for_machine: MachineChoice, - sources: T.List[File], structured_sources: T.Optional['StructuredSources'], + sources: T.List[SourceOutputs], structured_sources: T.Optional['StructuredSources'], objects, environment: environment.Environment, compilers: T.Dict[str, 'Compiler'], kwargs): self.prelink = kwargs.get('prelink', False) @@ -1985,7 +1985,7 @@ typename = 'shared library' def __init__(self, name: str, subdir: str, subproject: str, for_machine: MachineChoice, - sources: T.List[File], structured_sources: T.Optional['StructuredSources'], + sources: T.List[SourceOutputs], structured_sources: T.Optional['StructuredSources'], objects, environment: environment.Environment, compilers: T.Dict[str, 'Compiler'], kwargs): self.soversion = None @@ -2324,7 +2324,7 @@ typename = 'shared module' def __init__(self, name: str, subdir: str, subproject: str, for_machine: MachineChoice, - sources: T.List[File], structured_sources: T.Optional['StructuredSources'], + sources: T.List[SourceOutputs], structured_sources: T.Optional['StructuredSources'], objects, environment: environment.Environment, compilers: T.Dict[str, 'Compiler'], kwargs): if 'version' in kwargs: @@ -2694,7 +2694,7 @@ typename = 'jar' def __init__(self, name: str, subdir: str, subproject: str, for_machine: MachineChoice, - sources: T.List[File], structured_sources: T.Optional['StructuredSources'], + sources: T.List[SourceOutputs], structured_sources: T.Optional['StructuredSources'], objects, environment: environment.Environment, compilers: T.Dict[str, 'Compiler'], kwargs): super().__init__(name, subdir, subproject, for_machine, sources, structured_sources, objects, @@ -2900,24 +2900,11 @@ def load(build_dir: str) -> Build: filename = os.path.join(build_dir, 'meson-private', 'build.dat') - load_fail_msg = f'Build data file {filename!r} is corrupted. Try with a fresh build tree.' - nonexisting_fail_msg = f'No such build data file as "{filename!r}".' try: - with open(filename, 'rb') as f: - obj = pickle.load(f) + return pickle_load(filename, 'Build data', Build) except FileNotFoundError: - raise MesonException(nonexisting_fail_msg) - except (pickle.UnpicklingError, EOFError): - raise MesonException(load_fail_msg) - except AttributeError: - raise MesonException( - f"Build data file {filename!r} references functions or classes that don't " - "exist. This probably means that it was generated with an old " - "version of meson. Try running from the source directory " - f"meson setup {build_dir} --wipe") - if not isinstance(obj, Build): - raise MesonException(load_fail_msg) - return obj + raise MesonException(f'No such build data file as {filename!r}.') + def save(obj: Build, filename: str) -> None: with open(filename, 'wb') as f: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-0.64.0/mesonbuild/coredata.py new/meson-0.64.1/mesonbuild/coredata.py --- old/meson-0.64.0/mesonbuild/coredata.py 2022-11-06 14:42:09.000000000 +0100 +++ new/meson-0.64.1/mesonbuild/coredata.py 2022-11-22 18:23:53.000000000 +0100 @@ -53,7 +53,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 = '0.64.0' +version = '0.64.1' backendlist = ['ninja', 'vs', 'vs2010', 'vs2012', 'vs2013', 'vs2015', 'vs2017', 'vs2019', 'vs2022', 'xcode'] @@ -1035,9 +1035,9 @@ def format_cmd_line_options(options: argparse.Namespace) -> str: cmdline = ['-D{}={}'.format(str(k), v) for k, v in options.cmd_line_options.items()] if options.cross_file: - cmdline += [f'--cross-file {f}' for f in options.cross_file] + cmdline += [f'--cross-file={f}' for f in options.cross_file] if options.native_file: - cmdline += [f'--native-file {f}' for f in options.native_file] + cmdline += [f'--native-file={f}' for f in options.native_file] return ' '.join([shlex.quote(x) for x in cmdline]) def major_versions_differ(v1: str, v2: str) -> bool: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-0.64.0/mesonbuild/interpreter/interpreter.py new/meson-0.64.1/mesonbuild/interpreter/interpreter.py --- old/meson-0.64.0/mesonbuild/interpreter/interpreter.py 2022-11-01 20:00:11.000000000 +0100 +++ new/meson-0.64.1/mesonbuild/interpreter/interpreter.py 2022-11-21 20:54:10.000000000 +0100 @@ -664,7 +664,7 @@ raise InvalidArguments(f'Module "{ext_module.INFO.name}" has not been stabilized, and must be imported as unstable-{ext_module.INFO.name}') ext_module = NotFoundExtensionModule(real_modname) else: - mlog.warning(f'Module {ext_module.INFO.name} has no backwards or forwards compatibility and might not exist in future releases.', location=node) + mlog.warning(f'Module {ext_module.INFO.name} has no backwards or forwards compatibility and might not exist in future releases.', location=node, fatal=False) self.modules[real_modname] = ext_module return ext_module @@ -2459,7 +2459,7 @@ ), KwargInfo( 'copy', bool, default=False, since='0.47.0', - deprecated='0.64.0', deprecated_message='Use fs.copy instead', + deprecated='0.64.0', deprecated_message='Use fs.copyfile instead', ), KwargInfo('encoding', str, default='utf-8', since='0.47.0'), KwargInfo('format', str, default='meson', since='0.46.0', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-0.64.0/mesonbuild/linkers/linkers.py new/meson-0.64.1/mesonbuild/linkers/linkers.py --- old/meson-0.64.0/mesonbuild/linkers/linkers.py 2022-10-24 21:25:24.000000000 +0200 +++ new/meson-0.64.1/mesonbuild/linkers/linkers.py 2022-11-21 20:54:10.000000000 +0100 @@ -208,8 +208,12 @@ return self.can_rsp def get_std_link_args(self, env: 'Environment', is_thin: bool) -> T.List[str]: - # FIXME: osx ld rejects this: "file built for unknown-unsupported file format" - if is_thin and not env.machines[self.for_machine].is_darwin(): + # Thin archives are a GNU extension not supported by the system linkers + # on Mac OS X, Solaris, or illumos, so don't build them on those OSes. + # OS X ld rejects with: "file built for unknown-unsupported file format" + # illumos/Solaris ld rejects with: "unknown file type" + if is_thin and not env.machines[self.for_machine].is_darwin() \ + and not env.machines[self.for_machine].is_sunos(): return self.std_thin_args else: return self.std_args diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-0.64.0/mesonbuild/modules/hotdoc.py new/meson-0.64.1/mesonbuild/modules/hotdoc.py --- old/meson-0.64.0/mesonbuild/modules/hotdoc.py 2022-10-24 21:28:05.000000000 +0200 +++ new/meson-0.64.1/mesonbuild/modules/hotdoc.py 2022-11-22 18:23:53.000000000 +0100 @@ -23,7 +23,10 @@ from . import ModuleReturnValue, ModuleInfo from . import ExtensionModule from ..dependencies import Dependency, InternalDependency -from ..interpreterbase import InvalidArguments, noPosargs, noKwargs, typed_kwargs, ContainerTypeInfo, KwargInfo, typed_pos_args +from ..interpreterbase import ( + InvalidArguments, noPosargs, noKwargs, typed_kwargs, FeatureDeprecated, + ContainerTypeInfo, KwargInfo, typed_pos_args +) from ..interpreter import CustomTargetHolder from ..interpreter.type_checking import NoneType from ..programs import ExternalProgram @@ -61,7 +64,7 @@ self._extra_extension_paths = set() self.extra_assets = set() - self._dependencies = [] + self.extra_depends = [] self._subprojects = [] def process_known_arg(self, option, argname=None, value_processor=None): @@ -185,7 +188,7 @@ elif isinstance(dep, Dependency): cflags.update(dep.get_compile_args()) elif isinstance(dep, (build.StaticLibrary, build.SharedLibrary)): - self._dependencies.append(dep) + self.extra_depends.append(dep) for incd in dep.get_include_dirs(): cflags.update(incd.get_incdirs()) elif isinstance(dep, HotdocTarget): @@ -197,9 +200,9 @@ self.cmd += ['--extra-assets=' + p for p in dep.extra_assets] self.add_extension_paths(dep.extra_extension_paths) elif isinstance(dep, (build.CustomTarget, build.BuildTarget)): - self._dependencies.append(dep) + self.extra_depends.append(dep) elif isinstance(dep, build.CustomTargetIndex): - self._dependencies.append(dep.target) + self.extra_depends.append(dep.target) return [f.strip('-I') for f in cflags] @@ -228,10 +231,10 @@ continue elif isinstance(arg, (build.BuildTarget, build.CustomTarget)): - self._dependencies.append(arg) + self.extra_depends.append(arg) arg = self.interpreter.backend.get_target_filename_abs(arg) elif isinstance(arg, build.CustomTargetIndex): - self._dependencies.append(arg.target) + self.extra_depends.append(arg.target) arg = self.interpreter.backend.get_target_filename_abs(arg) cmd.append(arg) @@ -290,6 +293,7 @@ self.process_extra_assets() self.add_extension_paths(self.kwargs.pop('extra_extension_paths')) self.process_subprojects() + self.extra_depends.extend(self.kwargs.pop('depends')) install = self.kwargs.pop('install') self.process_extra_args() @@ -329,7 +333,7 @@ extra_assets=self._extra_assets, subprojects=self._subprojects, command=target_cmd, - extra_depends=self._dependencies, + extra_depends=self.extra_depends, outputs=[fullname], sources=[], depfile=os.path.basename(depfile), @@ -415,10 +419,18 @@ # --c-include-directories KwargInfo( 'dependencies', - ContainerTypeInfo(list, (Dependency, build.StaticLibrary, build.SharedLibrary)), + ContainerTypeInfo(list, (Dependency, build.StaticLibrary, build.SharedLibrary, + build.CustomTarget, build.CustomTargetIndex)), listify=True, default=[], ), + KwargInfo( + 'depends', + ContainerTypeInfo(list, (build.CustomTarget, build.CustomTargetIndex)), + listify=True, + default=[], + since='0.64.1', + ), KwargInfo('gi_c_source_roots', ContainerTypeInfo(list, str), listify=True, default=[]), KwargInfo('extra_assets', ContainerTypeInfo(list, str), listify=True, default=[]), KwargInfo('extra_extension_paths', ContainerTypeInfo(list, str), listify=True, default=[]), @@ -428,6 +440,9 @@ ) def generate_doc(self, state, args, kwargs): project_name = args[0] + if any(isinstance(x, (build.CustomTarget, build.CustomTargetIndex)) for x in kwargs['dependencies']): + FeatureDeprecated.single_use('hotdoc.generate_doc dependencies argument with custom_target', + '0.64.1', state.subproject, 'use `depends`', state.current_node) builder = HotdocTargetBuilder(project_name, state, self.hotdoc, self.interpreter, kwargs) target, install_script = builder.make_targets() targets = [target] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-0.64.0/mesonbuild/modules/rust.py new/meson-0.64.1/mesonbuild/modules/rust.py --- old/meson-0.64.0/mesonbuild/modules/rust.py 2022-10-24 21:25:24.000000000 +0200 +++ new/meson-0.64.1/mesonbuild/modules/rust.py 2022-11-22 18:23:53.000000000 +0100 @@ -1,4 +1,4 @@ -# Copyright © 2020 Intel Corporation +# Copyright © 2020-2022 Intel Corporation # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -147,9 +147,12 @@ new_target_kwargs['install'] = False new_target_kwargs['dependencies'] = new_target_kwargs.get('dependencies', []) + kwargs['dependencies'] + sources = T.cast('T.List[SourceOutputs]', base_target.sources.copy()) + sources.extend(base_target.generated) + new_target = Executable( name, base_target.subdir, state.subproject, base_target.for_machine, - base_target.sources, base_target.structured_sources, + sources, base_target.structured_sources, base_target.objects, base_target.environment, base_target.compilers, new_target_kwargs ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-0.64.0/mesonbuild/mtest.py new/meson-0.64.1/mesonbuild/mtest.py --- old/meson-0.64.0/mesonbuild/mtest.py 2022-10-24 21:25:13.000000000 +0200 +++ new/meson-0.64.1/mesonbuild/mtest.py 2022-11-21 20:54:10.000000000 +0100 @@ -1265,14 +1265,14 @@ # Make sure the termination signal actually kills the process # group, otherwise retry with a SIGKILL. - with suppress(TimeoutError): + with suppress(asyncio.TimeoutError): await asyncio.wait_for(p.wait(), timeout=0.5) if p.returncode is not None: return None os.killpg(p.pid, signal.SIGKILL) - with suppress(TimeoutError): + with suppress(asyncio.TimeoutError): await asyncio.wait_for(p.wait(), timeout=1) if p.returncode is not None: return None @@ -1281,7 +1281,7 @@ # Try to kill it one last time with a direct call. # If the process has spawned children, they will remain around. p.kill() - with suppress(TimeoutError): + with suppress(asyncio.TimeoutError): await asyncio.wait_for(p.wait(), timeout=1) if p.returncode is not None: return None diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-0.64.0/mesonbuild/scripts/env2mfile.py new/meson-0.64.1/mesonbuild/scripts/env2mfile.py --- old/meson-0.64.0/mesonbuild/scripts/env2mfile.py 2022-10-24 21:25:24.000000000 +0200 +++ new/meson-0.64.1/mesonbuild/scripts/env2mfile.py 2022-11-22 18:24:06.000000000 +0100 @@ -58,6 +58,7 @@ self.properties: T.Dict[str, T.Union[str, T.List[str]]] = {} self.compile_args: T.Dict[str, T.List[str]] = {} self.link_args: T.Dict[str, T.List[str]] = {} + self.cmake: T.Dict[str, T.Union[str, T.List[str]]] = {} self.system: T.Optional[str] = None self.cpu: T.Optional[str] = None @@ -84,12 +85,15 @@ return [f] raise ValueError("%s not found on $PATH" % program) -def write_args_line(ofile: T.TextIO, name: str, args: T.List[str]) -> None: +def write_args_line(ofile: T.TextIO, name: str, args: T.Union[str, T.List[str]]) -> None: if len(args) == 0: return - ostr = name + ' = [' - ostr += ', '.join("'" + i + "'" for i in args) - ostr += ']\n' + if isinstance(args, str): + ostr = name + "= '" + args + "'\n" + else: + ostr = name + ' = [' + ostr += ', '.join("'" + i + "'" for i in args) + ostr += ']\n' ofile.write(ostr) def get_args_from_envvars(infos: MachineInfo) -> None: @@ -130,7 +134,19 @@ cpu_family_map = dict(mips64el="mips64", i686='x86') cpu_map = dict(armhf="arm7hlf", - mips64el="mips64",) + mips64el="mips64", + powerpc64le="ppc64", + ) + +def deb_detect_cmake(infos: MachineInfo, data: T.Dict[str, str]) -> None: + system_name_map = dict(linux="Linux", kfreebsd="kFreeBSD", hurd="GNU") + system_processor_map = dict(arm='armv7l', mips64el='mips64', powerpc64le='ppc64le') + + infos.cmake["CMAKE_C_COMPILER"] = infos.compilers['c'] + infos.cmake["CMAKE_CXX_COMPILER"] = infos.compilers['cpp'] + infos.cmake["CMAKE_SYSTEM_NAME"] = system_name_map[data['DEB_HOST_ARCH_OS']] + infos.cmake["CMAKE_SYSTEM_PROCESSOR"] = system_processor_map.get(data['DEB_HOST_GNU_CPU'], + data['DEB_HOST_GNU_CPU']) def deb_compiler_lookup(infos: MachineInfo, compilerstems: T.List[T.Tuple[str, str]], host_arch: str, gccsuffix: str) -> None: for langname, stem in compilerstems: @@ -176,6 +192,11 @@ infos.binaries['objcopy'] = locate_path("%s-objcopy" % host_arch) infos.binaries['ld'] = locate_path("%s-ld" % host_arch) try: + infos.binaries['cmake'] = locate_path("cmake") + deb_detect_cmake(infos, data) + except ValueError: + pass + try: infos.binaries['pkgconfig'] = locate_path("%s-pkg-config" % host_arch) except ValueError: pass # pkg-config is optional @@ -215,8 +236,16 @@ write_args_line(ofile, lang + '_args', infos.compile_args[lang]) if lang in infos.link_args: write_args_line(ofile, lang + '_link_args', infos.link_args[lang]) + for k, v in infos.properties.items(): + write_args_line(ofile, k, v) ofile.write('\n') + if infos.cmake: + ofile.write('[cmake]\n\n') + for k, v in infos.cmake.items(): + write_args_line(ofile, k, v) + ofile.write('\n') + if write_system_info: ofile.write('[host_machine]\n') ofile.write(f"cpu = '{infos.cpu}'\n") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-0.64.0/mesonbuild/utils/universal.py new/meson-0.64.1/mesonbuild/utils/universal.py --- old/meson-0.64.0/mesonbuild/utils/universal.py 2022-11-06 14:39:24.000000000 +0100 +++ new/meson-0.64.1/mesonbuild/utils/universal.py 2022-11-21 20:54:10.000000000 +0100 @@ -2289,16 +2289,21 @@ except (pickle.UnpicklingError, EOFError): raise MesonException(load_fail_msg) except (TypeError, ModuleNotFoundError, AttributeError): + build_dir = os.path.dirname(os.path.dirname(filename)) raise MesonException( f"{object_name} file {filename!r} references functions or classes that don't " "exist. This probably means that it was generated with an old " - "version of meson.") + "version of meson. Try running from the source directory " + f'meson setup {build_dir} --wipe') if not isinstance(obj, object_type): raise MesonException(load_fail_msg) from ..coredata import version as coredata_version from ..coredata import major_versions_differ, MesonVersionMismatchException - if major_versions_differ(obj.version, coredata_version): - raise MesonVersionMismatchException(obj.version, coredata_version) + version = getattr(obj, 'version', None) + if version is None: + version = obj.environment.coredata.version + if major_versions_differ(version, coredata_version): + raise MesonVersionMismatchException(version, coredata_version) return obj diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-0.64.0/run_meson_command_tests.py new/meson-0.64.1/run_meson_command_tests.py --- old/meson-0.64.0/run_meson_command_tests.py 2022-10-24 21:25:24.000000000 +0200 +++ new/meson-0.64.1/run_meson_command_tests.py 2022-11-21 20:54:10.000000000 +0100 @@ -132,13 +132,17 @@ bindir = (self.tmpdir / 'bin') bindir.mkdir() (bindir / 'meson').symlink_to(self.src_root / 'meson.py') + (bindir / 'python3').symlink_to(python_command[0]) os.environ['PATH'] = str(bindir) + os.pathsep + os.environ['PATH'] + # use our overridden PATH-compatible python + path_resolved_meson_command = resolved_meson_command.copy() + path_resolved_meson_command[0] = str(bindir / 'python3') # See if it works! meson_py = 'meson' meson_setup = [meson_py, 'setup'] meson_command = meson_setup + self.meson_args stdo = self._run(meson_command + [self.testdir, builddir]) - self.assertMesonCommandIs(stdo.split('\n')[0], resolved_meson_command) + self.assertMesonCommandIs(stdo.split('\n')[0], path_resolved_meson_command) def test_meson_installed(self): # Install meson diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-0.64.0/run_project_tests.py new/meson-0.64.1/run_project_tests.py --- old/meson-0.64.0/run_project_tests.py 2022-10-24 21:28:10.000000000 +0200 +++ new/meson-0.64.1/run_project_tests.py 2022-11-21 20:54:10.000000000 +0100 @@ -1407,7 +1407,7 @@ meson_commands = mesonlib.python_command + [get_meson_script()] with TemporaryDirectoryWinProof(prefix='b ', dir=None if use_tmpdir else '.') as build_dir: print('Checking that configuring works...') - gen_cmd = meson_commands + [testdir, build_dir] + backend_flags + extra_args + gen_cmd = meson_commands + ['setup' , testdir, build_dir] + backend_flags + extra_args pc, o, e = Popen_safe(gen_cmd) if pc.returncode != 0: raise RuntimeError(f'Failed to configure {testdir!r}:\n{e}\n{o}') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' "old/meson-0.64.0/test cases/frameworks/4 qt/meson.build" "new/meson-0.64.1/test cases/frameworks/4 qt/meson.build" --- "old/meson-0.64.0/test cases/frameworks/4 qt/meson.build" 2022-09-15 00:37:12.000000000 +0200 +++ "new/meson-0.64.1/test cases/frameworks/4 qt/meson.build" 2022-11-21 20:54:10.000000000 +0100 @@ -83,7 +83,7 @@ translations_cpp = qtmodule.compile_translations(qresource: qt+'_lang.qrc') # unity builds suck and definitely cannot handle two qrc embeds in one compilation unit - unityproof_translations = static_library(qt+'unityproof_translations', translations_cpp) + unityproof_translations = static_library(qt+'unityproof_translations', translations_cpp, dependencies: qtdep) extra_cpp_args += '-DQT="@0@"'.format(qt) qexe = executable(qt + 'app', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' "old/meson-0.64.0/test cases/python/2 extmodule/meson.build" "new/meson-0.64.1/test cases/python/2 extmodule/meson.build" --- "old/meson-0.64.0/test cases/python/2 extmodule/meson.build" 2022-09-15 00:36:22.000000000 +0200 +++ "new/meson-0.64.1/test cases/python/2 extmodule/meson.build" 2022-11-21 20:54:10.000000000 +0100 @@ -34,10 +34,17 @@ py3_pkg_dep = dependency('python3', method: 'pkg-config', required : false) if py3_pkg_dep.found() - python_lib_dir = py3_pkg_dep.get_pkgconfig_variable('libdir') + py3_dep_majver = py3_pkg_dep.version().split('.') + py3_dep_majver = py3_dep_majver[0] + '.' + py3_dep_majver[1] + message(f'got two pythons: pkg-config is @py3_dep_majver@, and module is', py.language_version()) + if py3_dep_majver != py.language_version() + message('skipped python3 pkg-config test because the default python3 is different from Meson\'s') + else + python_lib_dir = py3_pkg_dep.get_pkgconfig_variable('libdir') - # Check we can apply a version constraint - dependency('python3', version: '>=@0@'.format(py_dep.version())) + # Check we can apply a version constraint + dependency('python3', version: '>=@0@'.format(py_dep.version())) + endif else - message('Skipped python3 pkg-config test') + message('Skipped python3 pkg-config test because it was not found') endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' "old/meson-0.64.0/test cases/python3/3 cython/meson.build" "new/meson-0.64.1/test cases/python3/3 cython/meson.build" --- "old/meson-0.64.0/test cases/python3/3 cython/meson.build" 2022-09-15 00:36:19.000000000 +0200 +++ "new/meson-0.64.1/test cases/python3/3 cython/meson.build" 2022-11-21 20:54:10.000000000 +0100 @@ -6,8 +6,14 @@ if cython.found() and py3_dep.found() py3_dep = dependency('python3') + py3_dep_majver = py3_dep.version().split('.') + py3_dep_majver = py3_dep_majver[0] + '.' + py3_dep_majver[1] py3_mod = import('python3') py3 = py3_mod.find_python() + if py3_dep_majver != py3_mod.language_version() + v = py3_mod.language_version() + error('MESON_SKIP_TEST: deprecated python3 module is non-functional when default python3 is different from Meson\'s', v) + endif subdir('libdir') test('cython tester', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' "old/meson-0.64.0/test cases/unit/109 freeze/freeze.c" "new/meson-0.64.1/test cases/unit/109 freeze/freeze.c" --- "old/meson-0.64.0/test cases/unit/109 freeze/freeze.c" 1970-01-01 01:00:00.000000000 +0100 +++ "new/meson-0.64.1/test cases/unit/109 freeze/freeze.c" 2022-11-21 20:54:10.000000000 +0100 @@ -0,0 +1,21 @@ +#include<stdio.h> +#include <signal.h> +#include <string.h> +#include <stdlib.h> + +static void do_nothing(int signo, siginfo_t *info, void *context) { +} + +int main(int argc, char **argv) { + struct sigaction sa; + memset(&sa, 0, sizeof(struct sigaction)); + sa.sa_sigaction = do_nothing; + if (sigaction(SIGTERM, &sa, NULL) == -1) { + printf("Could not set up signal handler.\n"); + return 1; + } + printf("Freezing forever.\n"); + while(1) { + } + return 0; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' "old/meson-0.64.0/test cases/unit/109 freeze/meson.build" "new/meson-0.64.1/test cases/unit/109 freeze/meson.build" --- "old/meson-0.64.0/test cases/unit/109 freeze/meson.build" 1970-01-01 01:00:00.000000000 +0100 +++ "new/meson-0.64.1/test cases/unit/109 freeze/meson.build" 2022-11-21 20:54:10.000000000 +0100 @@ -0,0 +1,4 @@ +project('freeze', 'c') + +e = executable('freeze', 'freeze.c') +test('freeze', e, timeout: 1) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-0.64.0/unittests/allplatformstests.py new/meson-0.64.1/unittests/allplatformstests.py --- old/meson-0.64.0/unittests/allplatformstests.py 2022-11-06 14:39:24.000000000 +0100 +++ new/meson-0.64.1/unittests/allplatformstests.py 2022-11-21 20:54:10.000000000 +0100 @@ -4352,7 +4352,8 @@ self.init(testdir, extra_args=['--werror'], override_envvars={'RUSTC': 'clippy-driver'}) with self.assertRaises(subprocess.CalledProcessError) as cm: self.build() - self.assertIn('error: use of a blacklisted/placeholder name `foo`', cm.exception.stdout) + self.assertTrue('error: use of a blacklisted/placeholder name `foo`' in cm.exception.stdout or + 'error: use of a disallowed/placeholder name `foo`' in cm.exception.stdout) @skip_if_not_language('rust') def test_rust_rlib_linkage(self) -> None: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/meson-0.64.0/unittests/linuxliketests.py new/meson-0.64.1/unittests/linuxliketests.py --- old/meson-0.64.0/unittests/linuxliketests.py 2022-11-01 20:00:11.000000000 +0100 +++ new/meson-0.64.1/unittests/linuxliketests.py 2022-11-21 20:54:10.000000000 +0100 @@ -182,7 +182,7 @@ for name in {'ct', 'ct0'}: ct_dep = PkgConfigDependency(name, env, kwargs) self.assertTrue(ct_dep.found()) - self.assertIn('-lct', ct_dep.get_link_args()) + self.assertIn('-lct', ct_dep.get_link_args(raw=True)) def test_pkgconfig_gen_deps(self): ''' @@ -1820,3 +1820,11 @@ default_symlinks.append(symlink) os.symlink(default_dirs[i], symlink) self.assertFalse(cpp.compiler_args([f'-isystem{symlink}' for symlink in default_symlinks]).to_native()) + + def test_freezing(self): + testdir = os.path.join(self.unit_test_dir, '109 freeze') + self.init(testdir) + self.build() + with self.assertRaises(subprocess.CalledProcessError) as e: + self.run_tests() + self.assertNotIn('Traceback', e.exception.output)