commit:     52e6f6885bc2ad773632576a5262b5f51509c4cc
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 19 18:36:55 2020 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Fri Jun 19 18:37:36 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=52e6f688

dev-util/meson-0.54.2: fix installing binaries on Prefix

Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>

 .../files/0.54.2-prefix-dont-strip-rpath.patch     | 25 ++++++++++++++++++++++
 dev-util/meson/meson-0.54.2.ebuild                 |  2 ++
 dev-util/meson/meson-9999.ebuild                   |  2 ++
 3 files changed, 29 insertions(+)

diff --git a/dev-util/meson/files/0.54.2-prefix-dont-strip-rpath.patch 
b/dev-util/meson/files/0.54.2-prefix-dont-strip-rpath.patch
new file mode 100644
index 00000000000..1fe2e1ac4cc
--- /dev/null
+++ b/dev-util/meson/files/0.54.2-prefix-dont-strip-rpath.patch
@@ -0,0 +1,25 @@
+https://bz-attachments.freebsd.org/attachment.cgi?id=204611
+https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=238128
+
+Stripping RPATH on Prefix is really bad, because it means the default
+RPATH entries disappear, and any installed binaries don't work (get
+kernel traps).
+
+Extracted the minstall patch from the FreeBSD full patch.
+
+--- a/mesonbuild/minstall.py
++++ b/mesonbuild/minstall.py
+@@ -488,8 +488,11 @@
+                         printed_symlink_error = True
+             if os.path.isfile(outname):
+                 try:
+-                    depfixer.fix_rpath(outname, install_rpath, final_path,
+-                                       install_name_mappings, verbose=False)
++                    if install_rpath:
++                        depfixer.fix_rpath(outname, install_rpath, final_path,
++                                           install_name_mappings, 
verbose=False)
++                    else:
++                        print("RPATH changes at install time disabled")
+                 except SystemExit as e:
+                     if isinstance(e.code, int) and e.code == 0:
+                         pass

diff --git a/dev-util/meson/meson-0.54.2.ebuild 
b/dev-util/meson/meson-0.54.2.ebuild
index 7f1a4c1f652..eee417491e8 100644
--- a/dev-util/meson/meson-0.54.2.ebuild
+++ b/dev-util/meson/meson-0.54.2.ebuild
@@ -60,6 +60,8 @@ python_prepare_all() {
        # Broken due to python2 script created by python_wrapper_setup
        rm -r "test cases/frameworks/1 boost" || die
 
+       use prefix && eapply "${FILESDIR}"/0.54.2-prefix-dont-strip-rpath.patch
+
        distutils-r1_python_prepare_all
 }
 

diff --git a/dev-util/meson/meson-9999.ebuild b/dev-util/meson/meson-9999.ebuild
index 5cd9c5f13bb..edbd30f5116 100644
--- a/dev-util/meson/meson-9999.ebuild
+++ b/dev-util/meson/meson-9999.ebuild
@@ -56,6 +56,8 @@ python_prepare_all() {
        # Broken due to python2 script created by python_wrapper_setup
        rm -r "test cases/frameworks/1 boost" || die
 
+       use prefix && eapply "${FILESDIR}"/0.54.2-prefix-dont-strip-rpath.patch
+
        distutils-r1_python_prepare_all
 }
 

Reply via email to