SHA256
3
0
forked from pool/meson

Accepting request 419793 from devel:tools:building

OBS-URL: https://build.opensuse.org/request/show/419793
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/meson?expand=0&rev=9
This commit is contained in:
Dominique Leuenberger 2016-08-20 10:27:06 +00:00 committed by Git OBS Bridge
commit 5f23055880
8 changed files with 163 additions and 21 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2e8c06136da01607364cbcd8a719f0f60441a9a4c5f1426e88a3c6a8444331ac
size 468346

View File

@ -1,17 +0,0 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJXVIdDAAoJEDv0aTv+65QoVYcQAKI8inZYCRHs2djglRrypK8o
IXAxXI3Y0jti59Amw7OQ0iMsqCxe5gmQ8rLW0DqYXB3FMuNrl00gylt0y0CqIBGA
C7F+6yNRSbdLXNa5/jreobbTAOTBGNbGVFggO5bjsFMh6soYRvEmPts0SMcoPFuf
AHUR17fFkQvZccDbx6xPFS5to8zHxp3UDklfW+3VxK86FB+nEelYqJ39Ir79F9tf
HBVPVcWkszO8M+UEgni99wi/zebK0vOvpnxwDcVTcNKdSuQunj7E1Hcv5D1vKjRP
jZ6bh7Aw3dmVM/X/lBVvJ7IAhNRnjN0mYxdusMqiAAgQFWJZPMx1YwswodlU3ofc
A7dS1uMrk6ms7OQmg7P4CeucOK/SkRzeksW4i5/9tIvgF1mfcb9KhBHCJ1hcQGcA
oO/S8Gw3L3zfPSSo522jATzqyRnyr7zbzschQ7Bm0NLL1p3gcCza1H7m3KJWMCsk
sQcmWgvu6N0DIZqFwilow84zee37xf7xKqENJKaEdmUSHLG6kV4bSDH9mDkh7PaL
TPtwg8BckfIsvp1sU6WSj9BjjPybOiqdPvirL9Hat6lCTBgBovItK7nxS9cdYs1A
YoIlFfefQWiVJBbbGb5yxMrplLrXs0V2Mte0EBFFmSCkDOw1Pi2967QrJWQhaZmp
hXFQJgzTu/2Y9gOwj2Ki
=jWu7
-----END PGP SIGNATURE-----

3
meson-0.33.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c3a5bfe863b3a041469bccee9ad5b4fd7c8d451d633381fe40102731cec5b294
size 482217

17
meson-0.33.0.tar.gz.asc Normal file
View File

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJXnQE5AAoJEDv0aTv+65QoRTIQAJ5FNydWlg/fH+ClJ8EqAffE
pejBz8/gxnp87z2nWsvJQNqz2oCk2HJx6VmcaZv5RUvWpyz3aq6R4OR8m8F0HMLU
hSAXten62GlEy9jz2zL9k+VmC+kxnBWMqAD5zSbddVRDeeJqt6/iSq/XK1lhE1ol
YSz2uhxZ3diouKlE9YCTq2kBpEnC6G1Q4p7F5QIfLkxLJvhHaE/toMrn/eijTev6
zMvSSgCNzdjl61xYj0kaur04wM2B1RlHeZ7UOa2Q1g5dHjf16WLKMAwr8B3rxDwj
SNIyEO9ytOP2BD/Oa+Vcp71ym+euJqSj+NmUvi77CtHVWH7hF+DfAkw7ccZx0NrC
XyA/xLI3QlW9nUW1CDo5PVwTuRx5WJ1kHyUHtwKjGEFfEB2Z+FPu53JkubRLEuMv
hUCLg0NVAZA7HtdxbA0yJl1DJ78LRRRM2mt3Gsn4sYUClUml1jybTqfPT4ydT2z7
2dsix1/y/lRvLklSkWoXMQu6vzLYKEnVm/PRTx7+KO+wmNDupWByVlU0pPvHzFRm
3ci2rMaX4gwVbwd5OVGqtvsH3MU4g6Sh572NfQk4ARHoSN+Mf31wvVGUC5FMLR6k
OLinhO8PbmIHnCr9uOGsuRqoDsWUYvk+6cy7SZW8HG18l/Qq/EkTeVTE5RUpi7/j
k+S5sef2G0zSDGY3Cgx2
=+Twl
-----END PGP SIGNATURE-----

96
meson-633.patch Normal file
View File

@ -0,0 +1,96 @@
From 3671c40a4b8ea0c0e7899caf27074f604cb95bcf Mon Sep 17 00:00:00 2001
From: Jussi Pakkanen <jpakkane@gmail.com>
Date: Tue, 2 Aug 2016 21:45:45 +0300
Subject: [PATCH] Handle both DT_RPATH as well as DT_RUNPATH when fixing rpath
settings.
---
mesonbuild/scripts/depfixer.py | 30 +++++++++++++++++++++++-------
1 file changed, 23 insertions(+), 7 deletions(-)
diff --git a/mesonbuild/scripts/depfixer.py b/mesonbuild/scripts/depfixer.py
index 8ff0dd1..cb136f4 100644
--- a/mesonbuild/scripts/depfixer.py
+++ b/mesonbuild/scripts/depfixer.py
@@ -20,6 +20,7 @@
SHT_STRTAB = 3
DT_NEEDED = 1
DT_RPATH = 15
+DT_RUNPATH = 29
DT_STRTAB = 5
DT_SONAME = 14
@@ -211,21 +212,29 @@ def print_soname(self):
self.bf.seek(strtab.val + soname.val)
print(self.read_str())
- def get_rpath_offset(self):
+ def get_entry_offset(self, entrynum):
sec = self.find_section(b'.dynstr')
for i in self.dynamic:
- if i.d_tag == DT_RPATH:
+ if i.d_tag == entrynum:
return sec.sh_offset + i.val
return None
def print_rpath(self):
- offset = self.get_rpath_offset()
+ offset = self.get_entry_offset(DT_RPATH)
if offset is None:
print("This file does not have an rpath.")
else:
self.bf.seek(offset)
print(self.read_str())
+ def print_runpath(self):
+ offset = self.get_entry_offset(DT_RUNPATH)
+ if offset is None:
+ print("This file does not have a runpath.")
+ else:
+ self.bf.seek(offset)
+ print(self.read_str())
+
def print_deps(self):
sec = self.find_section(b'.dynstr')
deps = []
@@ -257,9 +266,15 @@ def fix_deps(self, prefix):
self.bf.write(newname)
def fix_rpath(self, new_rpath):
+ # The path to search for can be either rpath or runpath.
+ # Fix both of them to be sure.
+ self.fix_rpathtype_entry(new_rpath, DT_RPATH)
+ self.fix_rpathtype_entry(new_rpath, DT_RUNPATH)
+
+ def fix_rpathtype_entry(self, new_rpath, entrynum):
if isinstance(new_rpath, str):
new_rpath = new_rpath.encode('utf8')
- rp_off = self.get_rpath_offset()
+ rp_off = self.get_entry_offset(entrynum)
if rp_off is None:
if self.verbose:
print('File does not have rpath. It should be a fully static executable.')
@@ -272,12 +287,12 @@ def fix_rpath(self, new_rpath):
self.bf.write(new_rpath)
self.bf.write(b'\0'*(len(old_rpath) - len(new_rpath) + 1))
if len(new_rpath) == 0:
- self.remove_rpath_entry()
+ self.remove_rpath_entry(entrynum)
- def remove_rpath_entry(self):
+ def remove_rpath_entry(self, entrynum):
sec = self.find_section(b'.dynamic')
for (i, entry) in enumerate(self.dynamic):
- if entry.d_tag == DT_RPATH:
+ if entry.d_tag == entrynum:
rpentry = self.dynamic[i]
rpentry.d_tag = 0
self.dynamic = self.dynamic[:i] + self.dynamic[i+1:] + [rpentry]
@@ -296,6 +311,7 @@ def run(args):
e = Elf(args[0])
if len(args) == 1:
e.print_rpath()
+ e.print_runpath()
else:
new_rpath = args[1]
e.fix_rpath(new_rpath)

View File

@ -0,0 +1,27 @@
From 660c872422be4ed7fb4499d1263793fb0e976141 Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Mon, 4 Jul 2016 12:29:56 +0200
Subject: [PATCH] gnome.py: typelib files should be installed in libdir
The typelib files should be installed in libdir, even on debian (which
has them in /usr/lib/x86_64-linux-gnu/girepository-1.0/).
---
mesonbuild/modules/gnome.py | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
index 2c37655..037b1f5 100644
--- a/mesonbuild/modules/gnome.py
+++ b/mesonbuild/modules/gnome.py
@@ -228,9 +228,7 @@ def generate_gir(self, state, args, kwargs):
kwargs['output'] = typelib_output
kwargs['command'] = typelib_cmd
- # Note that this can't be libdir, because e.g. on Debian it points to
- # lib/x86_64-linux-gnu but the girepo dir is always under lib.
- kwargs['install_dir'] = 'lib/girepository-1.0'
+ kwargs['install_dir'] = os.path.join(state.environment.get_libdir(), 'girepository-1.0')
typelib_target = TypelibTarget(typelib_output, state.subdir, kwargs)
return [scan_target, typelib_target]

View File

@ -1,3 +1,16 @@
-------------------------------------------------------------------
Wed Aug 17 15:43:57 UTC 2016 - dimstar@opensuse.org
- Update to version 0.33.0:
+ Correctly install .typelib files to libdir.
+ Add option for as-needed link option.
+ Print the CFLAGS/LDFLAGS/etc inherited from the environment.
+ Only append compile flags to the link flags when appropriate.
- Add meson-633.patch: Handle both DT_RPATH as well as DT_RUNPATH
when fixing rpath settings (gh#mesonbuild/meson#663).
- Add meson-typelib-install.patch: Fix installation path for
gpobject introspection typelib files.
-------------------------------------------------------------------
Sat Jul 23 16:15:39 UTC 2016 - sor.alexei@meowr.ru

View File

@ -18,7 +18,7 @@
%define _name mesonbuild
Name: meson
Version: 0.32.0
Version: 0.33.0
Release: 0
Summary: High productivity build system
License: Apache-2.0
@ -27,6 +27,10 @@ Url: http://mesonbuild.com/
Source: https://github.com/%{_name}/%{name}/releases/download/%{version}/%{name}-%{version}.tar.gz
Source1: https://github.com/%{_name}/%{name}/releases/download/%{version}/%{name}-%{version}.tar.gz.asc
Source2: %{name}.keyring
# PATCH-FIX-UPSTREAM meson-633.patch dimstar@opensuse.org -- Handle both DT_RPATH as well as DT_RUNPATH when fixing rpath settings
Patch0: meson-633.patch
# PATCH-FIX-UPSTREAM meson-typelib-install.patch dimstar@opensuse.org -- Correct install path for gi typelibs, taken from upstream git
Patch1: meson-typelib-install.patch
BuildRequires: bison
BuildRequires: boost-devel
BuildRequires: flex
@ -68,6 +72,8 @@ and the like.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
# Lack of gtest, gmock, gnustep.
rm -rf "test cases/frameworks/2 gtest" \