From 0eba83f40f5a299c079167c557882740b693d836 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Apr 17 2019 11:37:52 +0000 Subject: Update to 0.50.1 Signed-off-by: Igor Gnatenko --- diff --git a/.gitignore b/.gitignore index 6af0a44..fe01e63 100644 --- a/.gitignore +++ b/.gitignore @@ -54,3 +54,4 @@ /meson-0.49.1.tar.gz /meson-0.49.2.tar.gz /meson-0.50.0.tar.gz +/meson-0.50.1.tar.gz diff --git a/0002-Fix-5046.patch b/0002-Fix-5046.patch deleted file mode 100644 index 4578b24..0000000 --- a/0002-Fix-5046.patch +++ /dev/null @@ -1,43 +0,0 @@ -From d4257000014ade5d8dc2e7baf281ceababf11a36 Mon Sep 17 00:00:00 2001 -From: Ninja-Koala -Date: Sun, 17 Mar 2019 15:31:14 +0100 -Subject: [PATCH 1/2] Fix #5046 - ---- - mesonbuild/modules/gnome.py | 11 ++++++----- - 1 file changed, 6 insertions(+), 5 deletions(-) - -diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py -index 4473bcbf..8833a214 100644 ---- a/mesonbuild/modules/gnome.py -+++ b/mesonbuild/modules/gnome.py -@@ -189,9 +189,13 @@ class GnomeModule(ExtensionModule): - gresource_ld_binary = True - - gresource = kwargs.pop('gresource_bundle', False) -- if gresource or gresource_ld_binary: -+ -+ if gresource: - g_output = args[0] + '.gresource' - g_name = args[0] + '_gresource' -+ elif gresource_ld_binary: -+ g_output = args[0] + '_ld_binary.gresource' -+ g_name = args[0] + '_ld_binary_gresource' - - output = args[0] + '.c' - name = args[0] + '_c' -@@ -240,10 +244,7 @@ class GnomeModule(ExtensionModule): - if gresource or gresource_ld_binary: - target_g = GResourceTarget(g_name, state.subdir, state.subproject, g_kwargs) - if gresource: # Only one target for .gresource files -- if target_g.get_id() not in self.interpreter.build.targets: -- return ModuleReturnValue(target_g, [target_g]) -- else: -- return ModuleReturnValue(target_g, []) -+ return ModuleReturnValue(target_g, [target_g]) - - target_c = GResourceTarget(name, state.subdir, state.subproject, kwargs) - --- -2.21.0 - diff --git a/0003-Revert-gnome.compile_resources-Add-ld-binary-method.patch b/0003-Revert-gnome.compile_resources-Add-ld-binary-method.patch deleted file mode 100644 index ee1723d..0000000 --- a/0003-Revert-gnome.compile_resources-Add-ld-binary-method.patch +++ /dev/null @@ -1,252 +0,0 @@ -From 4ccd9782386b646b99007c1472ab28a61b52bb5d Mon Sep 17 00:00:00 2001 -From: Jussi Pakkanen -Date: Mon, 25 Mar 2019 20:33:55 +0200 -Subject: [PATCH 2/2] Revert "gnome.compile_resources: Add ld binary method" - -This reverts commit 59791fc56966901038aaaac23942bc8ac6e11494, reversing -changes made to e26b5a119e0b3f76cc93f65ecf4251dc6d52ecfe. ---- - mesonbuild/modules/__init__.py | 4 - - mesonbuild/modules/gnome.py | 158 +++------------------------------ - 2 files changed, 14 insertions(+), 148 deletions(-) - -diff --git a/mesonbuild/modules/__init__.py b/mesonbuild/modules/__init__.py -index 2df4d7c3..6b6aa8ba 100644 ---- a/mesonbuild/modules/__init__.py -+++ b/mesonbuild/modules/__init__.py -@@ -58,10 +58,6 @@ class GResourceHeaderTarget(build.CustomTarget): - def __init__(self, name, subdir, subproject, kwargs): - super().__init__(name, subdir, subproject, kwargs) - --class GResourceObjectTarget(build.CustomTarget): -- def __init__(self, name, subdir, subproject, kwargs): -- super().__init__(name, subdir, subproject, kwargs) -- - class GirTarget(build.CustomTarget): - def __init__(self, name, subdir, subproject, kwargs): - super().__init__(name, subdir, subproject, kwargs) -diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py -index 8833a214..2d169560 100644 ---- a/mesonbuild/modules/gnome.py -+++ b/mesonbuild/modules/gnome.py -@@ -16,8 +16,6 @@ - functionality such as gobject-introspection, gresources and gtk-doc''' - - import os --import re --import sys - import copy - import shlex - import subprocess -@@ -27,7 +25,7 @@ from .. import mlog - from .. import mesonlib - from .. import compilers - from .. import interpreter --from . import GResourceTarget, GResourceHeaderTarget, GResourceObjectTarget, GirTarget, TypelibTarget, VapiTarget -+from . import GResourceTarget, GResourceHeaderTarget, GirTarget, TypelibTarget, VapiTarget - from . import get_include_args - from . import ExtensionModule - from . import ModuleReturnValue -@@ -44,8 +42,6 @@ from ..interpreterbase import noKwargs, permittedKwargs, FeatureNew, FeatureNewK - # https://bugzilla.gnome.org/show_bug.cgi?id=774368 - gresource_dep_needed_version = '>= 2.51.1' - --gresource_ld_binary_needed_version = '>= 2.60' -- - native_glib_version = None - girwarning_printed = False - gdbuswarning_printed = False -@@ -170,10 +166,7 @@ class GnomeModule(ExtensionModule): - cmd += ['--sourcedir', source_dir] - - if 'c_name' in kwargs: -- c_name = kwargs.pop('c_name') -- cmd += ['--c-name', c_name] -- else: -- c_name = None -+ cmd += ['--c-name', kwargs.pop('c_name')] - export = kwargs.pop('export', False) - if not export: - cmd += ['--internal'] -@@ -182,23 +175,13 @@ class GnomeModule(ExtensionModule): - - cmd += mesonlib.stringlistify(kwargs.pop('extra_args', [])) - -- gresource_ld_binary = False -- if mesonlib.is_linux() and mesonlib.version_compare(glib_version, gresource_ld_binary_needed_version) and not state.environment.is_cross_build(): -- ld_obj = self.interpreter.find_program_impl('ld', required=False) -- if ld_obj.found(): -- gresource_ld_binary = True -- - gresource = kwargs.pop('gresource_bundle', False) -- - if gresource: -- g_output = args[0] + '.gresource' -- g_name = args[0] + '_gresource' -- elif gresource_ld_binary: -- g_output = args[0] + '_ld_binary.gresource' -- g_name = args[0] + '_ld_binary_gresource' -- -- output = args[0] + '.c' -- name = args[0] + '_c' -+ output = args[0] + '.gresource' -+ name = args[0] + '_gresource' -+ else: -+ output = args[0] + '.c' -+ name = args[0] + '_c' - - if kwargs.get('install', False) and not gresource: - raise MesonException('The install kwarg only applies to gresource bundles, see install_header') -@@ -212,42 +195,19 @@ class GnomeModule(ExtensionModule): - kwargs['input'] = args[1] - kwargs['output'] = output - kwargs['depends'] = depends -- if gresource or gresource_ld_binary: -- g_kwargs = copy.deepcopy(kwargs) -- g_kwargs['input'] = args[1] -- g_kwargs['output'] = g_output -- g_kwargs['depends'] = depends - if not mesonlib.version_compare(glib_version, gresource_dep_needed_version): - # This will eventually go out of sync if dependencies are added - kwargs['depend_files'] = depend_files -- if gresource_ld_binary: -- kwargs['command'] = copy.copy(cmd) + ['--external-data'] -- else: -- kwargs['command'] = cmd -- if gresource or gresource_ld_binary: -- # This will eventually go out of sync if dependencies are added -- g_kwargs['depend_files'] = depend_files -- g_kwargs['command'] = cmd -+ kwargs['command'] = cmd - else: - depfile = kwargs['output'] + '.d' -- if gresource_ld_binary: -- depfile2 = kwargs['output'] + '.2.d' -- kwargs['depfile'] = depfile2 -- kwargs['command'] = copy.copy(cmd) + ['--external-data', '--dependency-file', '@DEPFILE@'] -- else: -- kwargs['depfile'] = depfile -- kwargs['command'] = copy.copy(cmd) + ['--dependency-file', '@DEPFILE@'] -- if gresource or gresource_ld_binary: -- g_kwargs['depfile'] = depfile -- g_kwargs['command'] = copy.copy(cmd) + ['--dependency-file', '@DEPFILE@'] -- -- if gresource or gresource_ld_binary: -- target_g = GResourceTarget(g_name, state.subdir, state.subproject, g_kwargs) -- if gresource: # Only one target for .gresource files -- return ModuleReturnValue(target_g, [target_g]) -- -+ kwargs['depfile'] = depfile -+ kwargs['command'] = copy.copy(cmd) + ['--dependency-file', '@DEPFILE@'] - target_c = GResourceTarget(name, state.subdir, state.subproject, kwargs) - -+ if gresource: # Only one target for .gresource files -+ return ModuleReturnValue(target_c, [target_c]) -+ - h_kwargs = { - 'command': cmd, - 'input': args[1], -@@ -262,99 +222,9 @@ class GnomeModule(ExtensionModule): - h_kwargs['install_dir'] = kwargs.get('install_dir', - state.environment.coredata.get_builtin_option('includedir')) - target_h = GResourceHeaderTarget(args[0] + '_h', state.subdir, state.subproject, h_kwargs) -- -- if gresource_ld_binary: -- return self._create_gresource_ld_binary_targets(args, state, ifile, ld_obj, c_name, target_g, g_output, target_c, target_h) -- else: -- rv = [target_c, target_h] -- -+ rv = [target_c, target_h] - return ModuleReturnValue(rv, rv) - -- def _create_gresource_ld_binary_targets(self, args, state, ifile, ld_obj, c_name, target_g, g_output, target_c, target_h): -- if c_name is None: -- # Create proper c identifier from filename in the way glib-compile-resources does -- c_name = os.path.basename(ifile).partition('.')[0] -- c_name = c_name.replace('-', '_') -- c_name = re.sub(r'^([^(_a-zA-Z)])+', '', c_name) -- c_name = re.sub(r'([^(_a-zA-Z0-9)])', '', c_name) -- -- c_name_no_underscores = re.sub(r'^_+', '', c_name) -- -- ld = ld_obj.get_command() -- objcopy_object = self.interpreter.find_program_impl('objcopy', required=False) -- if objcopy_object.found(): -- objcopy = objcopy_object.get_command() -- else: -- objcopy = None -- -- o_kwargs = { -- 'command': [ld, '-r', '-b', 'binary', '@INPUT@', '-o', '@OUTPUT@'], -- 'input': target_g, -- 'output': args[0] + '1.o' -- } -- -- target_o = GResourceObjectTarget(args[0] + '1_o', state.subdir, state.subproject, o_kwargs) -- -- builddir = os.path.join(state.environment.get_build_dir(), state.subdir) -- linkerscript_name = args[0] + '_map.ld' -- linkerscript_path = os.path.join(builddir, linkerscript_name) -- linkerscript_file = open(linkerscript_path, 'w') -- -- # Create symbol name the way bfd does -- binary_name = os.path.join(state.subdir, g_output) -- encoding = sys.getfilesystemencoding() -- symbol_name = re.sub(rb'([^(_a-zA-Z0-9)])', b'_', binary_name.encode(encoding)).decode(encoding) -- -- linkerscript_string = '''SECTIONS --{{ -- .gresource.{} : ALIGN(8) -- {{ -- {}_resource_data = _binary_{}_start; -- }} -- .data : -- {{ -- *(.data) -- }} --}}'''.format(c_name_no_underscores, c_name, symbol_name) -- -- linkerscript_file.write(linkerscript_string) -- -- o2_kwargs = { -- 'command': [ld, '-r', '-T', os.path.join(state.subdir, linkerscript_name), '@INPUT@', '-o', '@OUTPUT@'], -- 'input': target_o, -- 'output': args[0] + '2.o', -- } -- target_o2 = GResourceObjectTarget(args[0] + '2_o', state.subdir, state.subproject, o2_kwargs) -- -- if objcopy is not None: -- objcopy_cmd = [objcopy, '--set-section-flags', '.gresource.' + c_name + '=readonly,alloc,load,data'] -- objcopy_cmd += ['-N', '_binary_' + symbol_name + '_start'] -- objcopy_cmd += ['-N', '_binary_' + symbol_name + '_end'] -- objcopy_cmd += ['-N', '_binary_' + symbol_name + '_size'] -- objcopy_cmd += ['@INPUT@', '@OUTPUT@'] -- -- o3_kwargs = { -- 'command': objcopy_cmd, -- 'input': target_o2, -- 'output': args[0] + '3.o' -- } -- -- target_o3 = GResourceObjectTarget(args[0] + '3_o', state.subdir, state.subproject, o3_kwargs) -- -- rv1 = [target_c, target_h, target_o3] -- if target_g.get_id() not in self.interpreter.build.targets: -- rv2 = rv1 + [target_g, target_o, target_o2] -- else: -- rv2 = rv1 + [target_o, target_o2] -- else: -- rv1 = [target_c, target_h, target_o2] -- if target_g.get_id() not in self.interpreter.build.targets: -- rv2 = rv1 + [target_g, target_o] -- else: -- rv2 = rv1 + [target_o] -- -- return ModuleReturnValue(rv1, rv2) -- - def _get_gresource_dependencies(self, state, input_file, source_dirs, dependencies): - - cmd = ['glib-compile-resources', --- -2.21.0 - diff --git a/meson.spec b/meson.spec index 69ad929..c17c216 100644 --- a/meson.spec +++ b/meson.spec @@ -1,8 +1,8 @@ %global libname mesonbuild Name: meson -Version: 0.50.0 -Release: 4%{?dist} +Version: 0.50.1 +Release: 1%{?dist} Summary: High productivity build system License: ASL 2.0 @@ -10,22 +10,13 @@ URL: http://mesonbuild.com/ Source: https://github.com/mesonbuild/meson/archive/%{version}/%{name}-%{version}.tar.gz # https://github.com/mesonbuild/meson/commit/d88bf0eb80e2531a8017de4efd4eb02f1e3081ec Patch0001: 0001-compilers-n_debug-if-release-and-buildtype-plain-sho.patch -# https://github.com/mesonbuild/meson/pull/5095 -# https://github.com/mesonbuild/meson/issues/5046 -# needed for the next patch to apply cleanly, fixes a bug anyway -Patch0002: 0002-Fix-5046.patch -# https://github.com/mesonbuild/meson/pull/5144 , but the real reason -# for this revert in Fedora is this execstack problem: -# https://github.com/mesonbuild/meson/issues/5268 -# https://bugzilla.redhat.com/show_bug.cgi?id=1699099 -Patch0003: 0003-Revert-gnome.compile_resources-Add-ld-binary-method.patch BuildArch: noarch Obsoletes: %{name}-gui < 0.31.0-3 BuildRequires: python3-devel BuildRequires: python3-setuptools -Requires: python3-setuptools +Requires: python%{python3_version}dist(setuptools) Requires: ninja-build %description @@ -58,6 +49,9 @@ install -Dpm0644 -t %{buildroot}%{rpmmacrodir} data/macros.%{name} %{_datadir}/polkit-1/actions/com.mesonbuild.install.policy %changelog +* Wed Apr 17 2019 Igor Gnatenko - 0.50.1-1 +- Update to 0.50.1 + * Mon Apr 15 2019 Adam Williamson - 0.50.0-4 - Backport patch to revert ld binary method change (#1699099) diff --git a/sources b/sources index 4da0b71..d664e71 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (meson-0.50.0.tar.gz) = 3f3cd927b6a86815edc16fff66f4dcd960a82c049f94ddfbb210f594a8cc077f24dda539a0b8b212c1419efd8c9ca8d195c60808b5cf3853ab32718be5f8ff3a +SHA512 (meson-0.50.1.tar.gz) = 44d07204e8971c3e78f189c912d3c1e4fe48084335eb7cd15c7cb6d87d034b852181f0fbb2f8a07fbeb56f7312233157e9d575204d3e1f6d46d6bc076e4c67fc