From 4f81ce3e43058ba71ff48e5f692cf0e48587b273 Mon Sep 17 00:00:00 2001 From: Aleric Inglewood Date: Fri, 8 Oct 2010 22:43:56 +0200 Subject: IMP-429: Link against prebuilt libraries / always use gtk-related system libs (linux) (cherry picked from commit a3cffd06a0e7aa92e1b6c28e7bad655b7085296c) --- linden/doc/contributions.txt | 22 +++++++++++++++++++--- linden/indra/cmake/GStreamer.cmake | 2 ++ linden/indra/cmake/UI.cmake | 2 ++ linden/indra/newview/viewer_manifest.py | 30 ++++++++++++++++-------------- linden/install.xml | 4 ++-- linden/scripts/install.py | 24 ++++++++++++++++++++++++ 6 files changed, 65 insertions(+), 19 deletions(-) (limited to 'linden') diff --git a/linden/doc/contributions.txt b/linden/doc/contributions.txt index a1e46fd..57745e2 100644 --- a/linden/doc/contributions.txt +++ b/linden/doc/contributions.txt @@ -46,6 +46,25 @@ Aleric Inglewood VWR-10759 VWR-10837 IMP-581 + SNOW-800 + RED-429 + RED-552 + RED-553 + RED-554 + RED-556 + RED-560 + RED-561 + RED-562 + RED-565 + RED-566 + RED-567 + RED-573 + RED-575 + RED-576 + RED-577 + RED-578 + RED-579 + RED-581 Alissa Sabre VWR-81 VWR-83 @@ -87,11 +106,8 @@ Alissa Sabre VWR-7087 VWR-7153 VWR-7168 -<<<<<<< HEAD -======= VWR-7087 VWR-7086 ->>>>>>> origin/next VWR-9190 VWR-10728 VWR-12620 diff --git a/linden/indra/cmake/GStreamer.cmake b/linden/indra/cmake/GStreamer.cmake index f5f9c03..19349ca 100644 --- a/linden/indra/cmake/GStreamer.cmake +++ b/linden/indra/cmake/GStreamer.cmake @@ -80,6 +80,7 @@ else (WINDOWS) gmodule-2.0 gthread-2.0 glib-2.0 + gio-2.0 xml2.2 ) @@ -99,6 +100,7 @@ else (WINDOWS) gthread-2.0 rt glib-2.0 + gio-2.0 ) endif (DARWIN) diff --git a/linden/indra/cmake/UI.cmake b/linden/indra/cmake/UI.cmake index b70a531..9d068c4 100644 --- a/linden/indra/cmake/UI.cmake +++ b/linden/indra/cmake/UI.cmake @@ -39,6 +39,7 @@ else (STANDALONE) gdk-x11-2.0 gdk_pixbuf-2.0 glib-2.0 + gio-2.0 gmodule-2.0 gobject-2.0 gthread-2.0 @@ -48,6 +49,7 @@ else (STANDALONE) pangox-1.0 pangoxft-1.0 pixman-1 + pangocairo-1.0 ) endif (LINUX) diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py index b16226a..c5a4e98 100755 --- a/linden/indra/newview/viewer_manifest.py +++ b/linden/indra/newview/viewer_manifest.py @@ -931,18 +931,19 @@ class Linux_i686Manifest(LinuxManifest): self.path("libalut.so.0") # GTK+ and dependencies - self.path("libatk-1.0.so.0") - self.path("libcairo.so.2") - self.path("libfontconfig.so.1") - self.path("libfreetype.so.6") + ## Lets just use the system libraries for all of these: + ##self.path("libatk-1.0.so.0") + ##self.path("libcairo.so.2") + ##self.path("libfontconfig.so.1") + ##self.path("libfreetype.so.6") # self.path("libgdk_pixbuf-2.0.so.0") # see linux64 why - self.path("libgdk-x11-2.0.so.0") - self.path("libgtk-x11-2.0.so.0") + ##self.path("libgdk-x11-2.0.so.0") + ##self.path("libgtk-x11-2.0.so.0") # self.path("libpango-1.0.so.0") # dto. # self.path("libpangoft2-1.0.so.0") # self.path("libpangox-1.0.so.0") # self.path("libpangoxft-1.0.so.0") - self.path("libpixman-1.so.0") + ##self.path("libpixman-1.so.0") # Gstreamer libs self.path("libgstbase-0.10.so.0") @@ -1058,18 +1059,19 @@ class Linux_x86_64Manifest(LinuxManifest): self.path("libalut.so.0") # GTK+ and dependencies - self.path("libatk-1.0.so.0") - self.path("libcairo.so.2") - self.path("libfontconfig.so.1") - self.path("libfreetype.so.6") + ## Lets just use the system libraries for all of these: + ##self.path("libatk-1.0.so.0") + ##self.path("libcairo.so.2") + ##self.path("libfontconfig.so.1") + ##self.path("libfreetype.so.6") # self.path("libgdk_pixbuf-2.0.so.0") # use systems gdk pixbufs instead - self.path("libgdk-x11-2.0.so.0") - self.path("libgtk-x11-2.0.so.0") + ##self.path("libgdk-x11-2.0.so.0") + ##self.path("libgtk-x11-2.0.so.0") # self.path("libpango-1.0.so.0") # use systems pango instead # self.path("libpangoft2-1.0.so.0") # Both gdk pixbufs and pango would load systems modules # self.path("libpangox-1.0.so.0") # and crash if not compatible or present. # self.path("libpangoxft-1.0.so.0") # So we depend system gdk pixbufs and pango anyway. - self.path("libpixman-1.so.0") + ##self.path("libpixman-1.so.0") # Gstreamer libs self.path("libgstbase-0.10.so.0") diff --git a/linden/install.xml b/linden/install.xml index e5f42b6..332a49b 100755 --- a/linden/install.xml +++ b/linden/install.xml @@ -334,9 +334,9 @@ linux64 md5sum - 9738472b94191fae2b0fe3fce8df17b0 + 09be41e3145e1a960e50f2f9ce0a5e7d url - http://imprudenceviewer.org/download/libs/dbusglib-linux64-20091129.tar.bz2 + http://imprudenceviewer.org/download/libs/dbusglib-linux64-20101007.tar.bz2 diff --git a/linden/scripts/install.py b/linden/scripts/install.py index 1db9bb3..931968a 100755 --- a/linden/scripts/install.py +++ b/linden/scripts/install.py @@ -35,6 +35,7 @@ $/LicenseInfo$ import sys import os.path +import re # Look for indra/lib/python in all possible parent directories ... # This is an improvement over the setup-path.py method used previously: @@ -563,6 +564,29 @@ windows/i686/vs/2003 -- specify a windows visual studio 2003 package""" tar.extractall(path=install_dir) except AttributeError: _extractall(tar, path=install_dir) + if _get_platform() == 'linux' or _get_platform() == 'linux64': + first = 1 + for tfile in tar.getnames(): + if tfile.find('.so.') > 0: + LINK = re.sub(r'\.so\.[0-9.]*$', '.so', tfile) + link_name = "../" + LINK + if not os.path.exists(link_name): + if first == 1: + first = 0 + print "Adding missing symlink(s) for package %s:" % ifile.filename + target = os.path.basename(tfile) + soname = os.popen("readelf -d \"../%(tfile)s\" " + " | grep SONAME " + " | sed -e 's/.*\[//;s/\].*//'" % {"tfile": tfile}).read() + soname = soname.strip() + if soname: # not empty + tmpfname = os.path.dirname(LINK) + "/" + soname + if os.path.exists("../" + tmpfname): + target = soname + else: + print "WARNING: SONAME %s doesn't exist!" % tmpfname + os.symlink(target, link_name) + print " %s --> %s" % (LINK, target) if ifile.pkgname in self._installed: self._installed[ifile.pkgname].add_files( ifile.url, -- cgit v1.1