From: "Fabio Rossi" <rossi.f@inwind.net>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/vmware:master commit in: app-emulation/vmware-workstation/
Date: Sun, 3 Apr 2016 13:23:03 +0000 (UTC) [thread overview]
Message-ID: <1459684087.050003bb7077b9121a81452e28779c343d1f0004.fabio@gentoo> (raw)
commit: 050003bb7077b9121a81452e28779c343d1f0004
Author: Fabio Rossi <rossi.f <AT> inwind <DOT> it>
AuthorDate: Sun Apr 3 11:37:09 2016 +0000
Commit: Fabio Rossi <rossi.f <AT> inwind <DOT> net>
CommitDate: Sun Apr 3 11:48:07 2016 +0000
URL: https://gitweb.gentoo.org/proj/vmware.git/commit/?id=050003bb
app-emulation/vmware-workstation: other workarounds for bundled-libs
Commit 052215b3c1e4b532b9d7a7872a0f46ecdb10f4cb has drastically reduced the
amount of not needed deps... introducing other problems.
1) The removal of gnome-base/librsvg exposes a problem with
libconf/lib/gtk-2.0/2.10.0/loaders/svg_loader.so (only with
bundled-libs), which is not able to find the bundled librsvg-2.so.2.
2) Some binaries (bin/vmware-vmx*) depends on libXinerama.so.1 and libXcursor.so.1
but with bundled-libs they are not able to find the embedded version and
fail if those libs are not installed in the system. patchelf --set-rpath doesn't work
with bin/vmware-vmw-debug so I moved the deps on libXinerama and libXcursor
to be always set.
Moreover, with gcc-5, bundled-libs is mandatory otherwise there is a problem
with symbols (https://bugs.gentoo.org/show_bug.cgi?id=578070#c8). Even
with VMWARE_USE_SHIPPED_LIBS set, appLoader tries to dynamically load at
runtime the best version of glib and fontconfig leading to a mix of
system/bundled libs. Let's fix some rpath to be sure that with
bundled-libs only the libs embedded with vmware are used!
Tested both on amd64 and ~amd64 systems.
.../vmware-workstation-12.1.0.3272444-r2.ebuild | 91 ++++++++++++++--------
1 file changed, 58 insertions(+), 33 deletions(-)
diff --git a/app-emulation/vmware-workstation/vmware-workstation-12.1.0.3272444-r2.ebuild b/app-emulation/vmware-workstation/vmware-workstation-12.1.0.3272444-r2.ebuild
index 96a7061..110bce2 100644
--- a/app-emulation/vmware-workstation/vmware-workstation-12.1.0.3272444-r2.ebuild
+++ b/app-emulation/vmware-workstation/vmware-workstation-12.1.0.3272444-r2.ebuild
@@ -111,10 +111,8 @@ BUNDLED_LIB_DEPENDS="
x11-libs/gtk+:2
x11-libs/libXau
x11-libs/libXcomposite
- x11-libs/libXcursor
x11-libs/libXdamage
x11-libs/libXfixes
- x11-libs/libXinerama
x11-libs/libXrandr
x11-libs/libXrender
x11-libs/pango
@@ -127,8 +125,10 @@ RDEPEND="
media-libs/alsa-lib
net-print/cups
x11-libs/libX11
+ x11-libs/libXcursor
x11-libs/libXext
x11-libs/libXi
+ x11-libs/libXinerama
x11-libs/libXtst
x11-libs/startup-notification
x11-themes/hicolor-icon-theme
@@ -186,35 +186,62 @@ src_unpack() {
}
clean_bundled_libs() {
- einfo "Removing bundled libraries"
- for libname in ${BUNDLED_LIBS} ; do
- rm -rv "${S}"/lib/lib/${libname} || die "Failed removing bundled ${libname}"
- done
+ if ! use bundled-libs ; then
+ einfo "Removing bundled libraries"
+ for libname in ${BUNDLED_LIBS} ; do
+ rm -rv "${S}"/lib/lib/${libname} || die "Failed removing bundled ${libname}"
+ done
- rm -rv "${S}"/lib/libconf || die "Failed removing bundled gtk conf libs"
-
- # Among the bundled libs there are libcrypto.so.1.0.1 and libssl.so.1.0.1
- # (needed by libcds.so) which seem to be compiled from openssl-1.0.1h.
- # Upstream real sonames are *so.1.0.0 so it's necessary to fix DT_NEEDED link
- # in libcds.so to be able to use system libs.
- pushd >/dev/null .
- einfo "Patching libcds.so"
- cd "${S}"/lib/lib/libcds.so || die
- patchelf --replace-needed libssl.so.1.0.{1,0} \
- --replace-needed libcrypto.so.1.0.{1,0} \
- libcds.so || die
- popd >/dev/null
-
- # vmware-workstation seems to use a custom version of libgksu2.so, for this reason
- # we leave the bundled version. The libvmware-gksu.so library declares simply DT_NEEDED
- # libgksu2.so.0 but it uses at runtime the bundled version, patch the lib to avoid portage
- # preserve-libs mechanism to be triggered when a system lib is available (but not required)
- pushd >/dev/null .
- einfo "Patching libvmware-gksu.so"
- cd "${S}"/lib/lib/libvmware-gksu.so || die
- patchelf --set-rpath "\$ORIGIN/../libgksu2.so.0" \
- libvmware-gksu.so || die
- popd >/dev/null
+ rm -rv "${S}"/lib/libconf || die "Failed removing bundled gtk conf libs"
+
+ # Among the bundled libs there are libcrypto.so.1.0.1 and libssl.so.1.0.1
+ # (needed by libcds.so) which seem to be compiled from openssl-1.0.1h.
+ # Upstream real sonames are *so.1.0.0 so it's necessary to fix DT_NEEDED link
+ # in libcds.so to be able to use system libs.
+ pushd >/dev/null .
+ einfo "Patching libcds.so"
+ cd "${S}"/lib/lib/libcds.so || die
+ patchelf --replace-needed libssl.so.1.0.{1,0} \
+ --replace-needed libcrypto.so.1.0.{1,0} \
+ libcds.so || die
+ popd >/dev/null
+
+ # vmware-workstation seems to use a custom version of libgksu2.so, for this reason
+ # we leave the bundled version. The libvmware-gksu.so library declares simply DT_NEEDED
+ # libgksu2.so.0 but it uses at runtime the bundled version, patch the lib to avoid portage
+ # preserve-libs mechanism to be triggered when a system lib is available (but not required)
+ pushd >/dev/null .
+ einfo "Patching libvmware-gksu.so"
+ cd "${S}"/lib/lib/libvmware-gksu.so || die
+ patchelf --set-rpath "\$ORIGIN/../libgksu2.so.0" \
+ libvmware-gksu.so || die
+ popd >/dev/null
+ else
+ # if librsvg is not installed in the system then vmware doesn't start
+ pushd >/dev/null .
+ einfo "Patching svg_loader.so"
+ cd "${S}"/lib/libconf/lib/gtk-2.0/2.10.0/loaders || die
+ patchelf --set-rpath "\$ORIGIN/../../../../../lib/librsvg-2.so.2" \
+ svg_loader.so || die
+ popd >/dev/null
+
+ # vmware, even with VMWARE_USE_SHIPPED_LIBS set, uses the system lib
+ # for glib and fontconfig when a newer version is found. Let's force to use
+ # always the bundled versions to avoid a mix of system and bundled libs ...
+ pushd >/dev/null .
+ einfo "Patching appLoader"
+ cd "${S}"/lib/bin || die
+ patchelf --set-rpath "\$ORIGIN/../lib/libglib-2.0.so.0:\$ORIGIN/../lib/libfontconfig.so.1" \
+ appLoader || die
+ popd >/dev/null
+ # ... this depends on previous appLoader patching, probably it is not mandatory but cleans the log
+ pushd >/dev/null .
+ einfo "Patching libfontconfig.so.1"
+ cd "${S}"/lib/lib/libfontconfig.so.1 || die
+ patchelf --set-rpath "\$ORIGIN/../libexpat.so.0" \
+ libfontconfig.so.1 || die
+ popd >/dev/null
+ fi
}
src_prepare() {
@@ -227,9 +254,7 @@ src_prepare() {
rm -f vmware-workstation-server/bin/{openssl,configure-hostd.sh}
fi
- if ! use bundled-libs ; then
- clean_bundled_libs
- fi
+ clean_bundled_libs
DOC_CONTENTS="
/etc/env.d is updated during ${PN} installation. Please run:\n
next reply other threads:[~2016-04-03 13:23 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-03 13:23 Fabio Rossi [this message]
-- strict thread matches above, loose matches on Subject: below --
2016-04-26 22:00 [gentoo-commits] proj/vmware:master commit in: app-emulation/vmware-workstation/ Fabio Rossi
2016-03-20 18:43 Andreas Hüttel
2016-03-20 18:43 Andreas Hüttel
2016-03-20 18:06 Andreas Hüttel
2016-03-19 21:06 Andreas Hüttel
2016-03-19 17:36 Andreas Hüttel
2016-03-19 17:23 Andreas Hüttel
2016-01-09 22:47 Andreas Hüttel
2015-11-14 21:48 Andreas Hüttel
2015-11-14 21:48 Andreas Hüttel
2015-11-14 21:48 Andreas Hüttel
2015-11-14 21:48 Andreas Hüttel
2015-11-14 21:24 Andreas Hüttel
2015-10-10 20:30 Andreas Hüttel
2015-09-26 21:26 Andreas Hüttel
2015-09-22 22:01 Andreas Hüttel
2015-09-12 20:05 Andreas Hüttel
2015-09-12 20:05 Andreas Hüttel
2015-09-12 18:17 Andreas Hüttel
2015-09-08 20:05 Andreas Hüttel
2015-09-08 20:03 Andreas Hüttel
2015-07-11 4:21 Evan Teran
2015-05-10 11:48 Andreas Hüttel
2015-05-09 23:58 Andreas Hüttel
2013-06-22 22:45 Andreas Hüttel
2012-09-15 12:54 Vadim Kuznetsov
2012-09-15 12:28 Vadim Kuznetsov
2012-06-17 0:17 Vadim Kuznetsov
2012-06-16 14:52 Vadim Kuznetsov
2012-06-15 3:49 Matt Whitlock
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1459684087.050003bb7077b9121a81452e28779c343d1f0004.fabio@gentoo \
--to=rossi.f@inwind.net \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox