Update to 0.50.1
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
This commit is contained in:
parent
37cd007c74
commit
0eba83f40f
1
.gitignore
vendored
1
.gitignore
vendored
@ -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
|
||||
|
@ -1,43 +0,0 @@
|
||||
From d4257000014ade5d8dc2e7baf281ceababf11a36 Mon Sep 17 00:00:00 2001
|
||||
From: Ninja-Koala <mail@ninjakoa.la>
|
||||
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
|
||||
|
@ -1,252 +0,0 @@
|
||||
From 4ccd9782386b646b99007c1472ab28a61b52bb5d Mon Sep 17 00:00:00 2001
|
||||
From: Jussi Pakkanen <jpakkane@gmail.com>
|
||||
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
|
||||
|
18
meson.spec
18
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 <ignatenkobrain@fedoraproject.org> - 0.50.1-1
|
||||
- Update to 0.50.1
|
||||
|
||||
* Mon Apr 15 2019 Adam Williamson <awilliam@redhat.com> - 0.50.0-4
|
||||
- Backport patch to revert ld binary method change (#1699099)
|
||||
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (meson-0.50.0.tar.gz) = 3f3cd927b6a86815edc16fff66f4dcd960a82c049f94ddfbb210f594a8cc077f24dda539a0b8b212c1419efd8c9ca8d195c60808b5cf3853ab32718be5f8ff3a
|
||||
SHA512 (meson-0.50.1.tar.gz) = 44d07204e8971c3e78f189c912d3c1e4fe48084335eb7cd15c7cb6d87d034b852181f0fbb2f8a07fbeb56f7312233157e9d575204d3e1f6d46d6bc076e4c67fc
|
||||
|
Loading…
Reference in New Issue
Block a user