diff options
author | Pacho Ramos <pacho@gentoo.org> | 2016-08-06 08:47:53 +0200 |
---|---|---|
committer | Pacho Ramos <pacho@gentoo.org> | 2016-08-06 09:05:08 +0200 |
commit | 288a728fc408f7a20cff8422f4660749eaf1091f (patch) | |
tree | 656222cb63270a7e56cef27aac317df7e6c4af5a /dev-util/meson | |
parent | app-text/calibre: version bump to 2.63.0 (diff) | |
download | gentoo-288a728fc408f7a20cff8422f4660749eaf1091f.tar.gz gentoo-288a728fc408f7a20cff8422f4660749eaf1091f.tar.bz2 gentoo-288a728fc408f7a20cff8422f4660749eaf1091f.zip |
dev-util/meson: new package needed by gst-transcoder (and probably needed by more gstreamer stuff in the future).
Package-Manager: portage-2.3.0
Diffstat (limited to 'dev-util/meson')
-rw-r--r-- | dev-util/meson/Manifest | 1 | ||||
-rw-r--r-- | dev-util/meson/files/meson-0.33.0-runpath.patch | 96 | ||||
-rw-r--r-- | dev-util/meson/meson-0.33.0.ebuild | 36 | ||||
-rw-r--r-- | dev-util/meson/metadata.xml | 8 |
4 files changed, 141 insertions, 0 deletions
diff --git a/dev-util/meson/Manifest b/dev-util/meson/Manifest new file mode 100644 index 000000000000..10dce1e5c43c --- /dev/null +++ b/dev-util/meson/Manifest @@ -0,0 +1 @@ +DIST meson-0.33.0.tar.gz 482221 SHA256 2417fd27cbb1e9b1006fe9e5a1f3896285d4c925ffffdf9478638b5fe3ea7fc5 SHA512 de4bdc40574dfbbc5a29861c32984dc1c97d28992e849c32f1ec0e314d3c69861768583c29eea2b9708ec6b734759d7eac60a53015fd321e29f1e9b1dbbffc22 WHIRLPOOL f12522765dcdf035f873625c3f8dca3d5800e7f12907ac80e65b76d6f7dd54469cd91060d5b89e16b1ca088c94808901706aa98a1d53ff65429bf1b733246dcf diff --git a/dev-util/meson/files/meson-0.33.0-runpath.patch b/dev-util/meson/files/meson-0.33.0-runpath.patch new file mode 100644 index 000000000000..2081cd3a8fbe --- /dev/null +++ b/dev-util/meson/files/meson-0.33.0-runpath.patch @@ -0,0 +1,96 @@ +From b42c0555ca35ebf6e97438ef414a3de62eaa2ced 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) diff --git a/dev-util/meson/meson-0.33.0.ebuild b/dev-util/meson/meson-0.33.0.ebuild new file mode 100644 index 000000000000..56c2ab92e14e --- /dev/null +++ b/dev-util/meson/meson-0.33.0.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 +PYTHON_COMPAT=( python3_{3,4,5} ) + +inherit distutils-r1 + +DESCRIPTION="Open source build system" +HOMEPAGE="http://mesonbuild.com/" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +DEPEND="${PYTHON_DEPS} + dev-util/ninja +" +RDEPEND="${DEPEND}" + +DOCS=( authors.txt contributing.txt ) + +PATCHES=( + # https://github.com/mesonbuild/meson/pull/663 + "${FILESDIR}"/${P}-runpath.patch +) + +src_install() { + distutils-r1_src_install + for i in mesonconf mesonintrospect meson wraptool; do + dosym "${i}.py" "/usr/bin/${i}" + done +} diff --git a/dev-util/meson/metadata.xml b/dev-util/meson/metadata.xml new file mode 100644 index 000000000000..fb1ea7216a80 --- /dev/null +++ b/dev-util/meson/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="project"> + <email>gstreamer@gentoo.org</email> + <name>GStreamer package maintainers</name> +</maintainer> +</pkgmetadata> |