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
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