From 6dfb60cd4b7ceeb30561eec1d58ce92a7438b1f08c0f63ce707deecd647126b0 Mon Sep 17 00:00:00 2001 From: Alexei Sorokin Date: Wed, 17 Aug 2016 16:48:47 +0000 Subject: [PATCH] Accepting request 419792 from GNOME:Next - 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. OBS-URL: https://build.opensuse.org/request/show/419792 OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/meson?expand=0&rev=15 --- meson-0.32.0.tar.gz | 3 -- meson-0.32.0.tar.gz.asc | 17 ------- meson-0.33.0.tar.gz | 3 ++ meson-0.33.0.tar.gz.asc | 17 +++++++ meson-633.patch | 96 +++++++++++++++++++++++++++++++++++++ meson-typelib-install.patch | 27 +++++++++++ meson.changes | 13 +++++ meson.spec | 8 +++- 8 files changed, 163 insertions(+), 21 deletions(-) delete mode 100644 meson-0.32.0.tar.gz delete mode 100644 meson-0.32.0.tar.gz.asc create mode 100644 meson-0.33.0.tar.gz create mode 100644 meson-0.33.0.tar.gz.asc create mode 100644 meson-633.patch create mode 100644 meson-typelib-install.patch diff --git a/meson-0.32.0.tar.gz b/meson-0.32.0.tar.gz deleted file mode 100644 index 9edf55e..0000000 --- a/meson-0.32.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2e8c06136da01607364cbcd8a719f0f60441a9a4c5f1426e88a3c6a8444331ac -size 468346 diff --git a/meson-0.32.0.tar.gz.asc b/meson-0.32.0.tar.gz.asc deleted file mode 100644 index 65834b4..0000000 --- a/meson-0.32.0.tar.gz.asc +++ /dev/null @@ -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----- diff --git a/meson-0.33.0.tar.gz b/meson-0.33.0.tar.gz new file mode 100644 index 0000000..b00d249 --- /dev/null +++ b/meson-0.33.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3a5bfe863b3a041469bccee9ad5b4fd7c8d451d633381fe40102731cec5b294 +size 482217 diff --git a/meson-0.33.0.tar.gz.asc b/meson-0.33.0.tar.gz.asc new file mode 100644 index 0000000..327dedc --- /dev/null +++ b/meson-0.33.0.tar.gz.asc @@ -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----- diff --git a/meson-633.patch b/meson-633.patch new file mode 100644 index 0000000..76686f3 --- /dev/null +++ b/meson-633.patch @@ -0,0 +1,96 @@ +From 3671c40a4b8ea0c0e7899caf27074f604cb95bcf Mon Sep 17 00:00:00 2001 +From: Jussi Pakkanen +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) diff --git a/meson-typelib-install.patch b/meson-typelib-install.patch new file mode 100644 index 0000000..cdcb275 --- /dev/null +++ b/meson-typelib-install.patch @@ -0,0 +1,27 @@ +From 660c872422be4ed7fb4499d1263793fb0e976141 Mon Sep 17 00:00:00 2001 +From: Wim Taymans +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] + + diff --git a/meson.changes b/meson.changes index d965955..5e698be 100644 --- a/meson.changes +++ b/meson.changes @@ -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 diff --git a/meson.spec b/meson.spec index 4a7e3c1..b676ba0 100644 --- a/meson.spec +++ b/meson.spec @@ -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" \