aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview
diff options
context:
space:
mode:
authorAleric Inglewood2010-10-08 22:43:56 +0200
committerAleric Inglewood2010-10-08 23:08:31 +0200
commita3cffd06a0e7aa92e1b6c28e7bad655b7085296c (patch)
tree9a75a4f34df3cb8963a1f1e9d130164011f49756 /linden/indra/newview
parentMerge remote branch 'remote-twoway/weekly' into weekly (diff)
downloadmeta-impy-a3cffd06a0e7aa92e1b6c28e7bad655b7085296c.zip
meta-impy-a3cffd06a0e7aa92e1b6c28e7bad655b7085296c.tar.gz
meta-impy-a3cffd06a0e7aa92e1b6c28e7bad655b7085296c.tar.bz2
meta-impy-a3cffd06a0e7aa92e1b6c28e7bad655b7085296c.tar.xz
RED-429: Link against prebuilt libraries / always use gtk-related system libs (linux)
This patch fixes the problem that there were no 'developer' symlinks for the prebuilt packages (which is not needed for runtim), causing the casual user that tries to compile the viewer on linux (without using --standalone) to link against their system libs (while using the header files of the prebuilt versions), often causing linker errors. It also fixes the fact that a few libraries were completely missing, most notably the dbusglib package only had header files and not a library at all! libgio and libpangocairo where missing from the link command line so that the wrong libraries were picked up, if any at all. Finally, the last GTK related prebuilt libraries have simply been removed from the packaging: linux has those installed (or else the users will know how to install them as soon as they see that the viewer complains about a missing library). This is much more stable, as all those libraries more or less form a whole. Or rather, the libraries that use glib, as especially that one gives a problem at the moment since the latest glib has new g_malloc_n functions that don't exist in the prebuilt glib. Note the difference between a USER compiling her own viewer, and the imprudence team compiling a release: When the imprudence team compiles a release we need to create a portable binary that runs on many versions of linux. In order to achieve that we link against "old" library versions, so that the viewer still works on old operating systems, and (hopefull) also on newer systems, since libraries with the same SONAME are backwards compatible. With g_malloc_n as example: our viewer binary doesn't use that function, so a user that links with their own glib will never have a problem, whether or not his library provides this function. On the other hand, when a user gets the sources and compiles his own viewer he wants to use the LATEST library versions: his own operating system ones. The best way to achieve this is to configure with --standalone, but that currently demands that ALL libraries are installed on her system, including a few very-hard-to-get libraries. If she therefore chooses to configure without --standalone, she suddenly gets all the old library versions, forcing her to at least link against those at compile time (in order to minimize the risk of version incompatibilities). A better solution for the do-it-yourself user would be to have a --semi-standalone configuration that only uses the hard-to-get prebuilt libs and further uses as much the operating system libraries as possible. For most of the hard-to-get libraries this is no problem since they all only depend on libc and similar stable ABI libs.
Diffstat (limited to 'linden/indra/newview')
-rwxr-xr-xlinden/indra/newview/viewer_manifest.py30
1 files changed, 16 insertions, 14 deletions
diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py
index 4a17cd0..7563268 100755
--- a/linden/indra/newview/viewer_manifest.py
+++ b/linden/indra/newview/viewer_manifest.py
@@ -938,18 +938,19 @@ class Linux_i686Manifest(LinuxManifest):
938 self.path("libalut.so.0") 938 self.path("libalut.so.0")
939 939
940 # GTK+ and dependencies 940 # GTK+ and dependencies
941 self.path("libatk-1.0.so.0") 941 ## Lets just use the system libraries for all of these:
942 self.path("libcairo.so.2") 942 ##self.path("libatk-1.0.so.0")
943 self.path("libfontconfig.so.1") 943 ##self.path("libcairo.so.2")
944 self.path("libfreetype.so.6") 944 ##self.path("libfontconfig.so.1")
945 ##self.path("libfreetype.so.6")
945 # self.path("libgdk_pixbuf-2.0.so.0") # see linux64 why 946 # self.path("libgdk_pixbuf-2.0.so.0") # see linux64 why
946 self.path("libgdk-x11-2.0.so.0") 947 ##self.path("libgdk-x11-2.0.so.0")
947 self.path("libgtk-x11-2.0.so.0") 948 ##self.path("libgtk-x11-2.0.so.0")
948 # self.path("libpango-1.0.so.0") # dto. 949 # self.path("libpango-1.0.so.0") # dto.
949 # self.path("libpangoft2-1.0.so.0") 950 # self.path("libpangoft2-1.0.so.0")
950 # self.path("libpangox-1.0.so.0") 951 # self.path("libpangox-1.0.so.0")
951 # self.path("libpangoxft-1.0.so.0") 952 # self.path("libpangoxft-1.0.so.0")
952 self.path("libpixman-1.so.0") 953 ##self.path("libpixman-1.so.0")
953 954
954 # Gstreamer libs 955 # Gstreamer libs
955 self.path("libgstbase-0.10.so.0") 956 self.path("libgstbase-0.10.so.0")
@@ -1067,18 +1068,19 @@ class Linux_x86_64Manifest(LinuxManifest):
1067 self.path("libalut.so.0") 1068 self.path("libalut.so.0")
1068 1069
1069 # GTK+ and dependencies 1070 # GTK+ and dependencies
1070 self.path("libatk-1.0.so.0") 1071 ## Lets just use the system libraries for all of these:
1071 self.path("libcairo.so.2") 1072 ##self.path("libatk-1.0.so.0")
1072 self.path("libfontconfig.so.1") 1073 ##self.path("libcairo.so.2")
1073 self.path("libfreetype.so.6") 1074 ##self.path("libfontconfig.so.1")
1075 ##self.path("libfreetype.so.6")
1074# self.path("libgdk_pixbuf-2.0.so.0") # use systems gdk pixbufs instead 1076# self.path("libgdk_pixbuf-2.0.so.0") # use systems gdk pixbufs instead
1075 self.path("libgdk-x11-2.0.so.0") 1077 ##self.path("libgdk-x11-2.0.so.0")
1076 self.path("libgtk-x11-2.0.so.0") 1078 ##self.path("libgtk-x11-2.0.so.0")
1077# self.path("libpango-1.0.so.0") # use systems pango instead 1079# self.path("libpango-1.0.so.0") # use systems pango instead
1078# self.path("libpangoft2-1.0.so.0") # Both gdk pixbufs and pango would load systems modules 1080# self.path("libpangoft2-1.0.so.0") # Both gdk pixbufs and pango would load systems modules
1079# self.path("libpangox-1.0.so.0") # and crash if not compatible or present. 1081# self.path("libpangox-1.0.so.0") # and crash if not compatible or present.
1080# self.path("libpangoxft-1.0.so.0") # So we depend system gdk pixbufs and pango anyway. 1082# self.path("libpangoxft-1.0.so.0") # So we depend system gdk pixbufs and pango anyway.
1081 self.path("libpixman-1.so.0") 1083 ##self.path("libpixman-1.so.0")
1082 1084
1083 # Gstreamer libs 1085 # Gstreamer libs
1084 self.path("libgstbase-0.10.so.0") 1086 self.path("libgstbase-0.10.so.0")