From afea10ebc94b8009b96b0b1771e6c0f614f406dd Mon Sep 17 00:00:00 2001
From: Nat Goodspeed <nat@lindenlab.com>
Date: Wed, 2 Sep 2009 17:38:46 -0400
Subject: [PATCH] On Mac, move SLPlugin executable to the same directory as the
 viewer executable. Change LLDir_Mac::getLLPluginLauncher() to look in the
 viewer's executable dir instead of in the plugins dir. Change
 viewer_manifest.py's DarwinManifest.construct() to put SLPlugin in the new
 location. SLPlugin is being linked with our new libllcommon.dylib, which
 self-identifies as being findable via
 @executable_path/../Resources/libllcommon.dylib. This doesn't work from the
 Resources/llplugin subdir -- the above relative path ends up looking in the
 nonexistent Resources/Resources subdirectory. Putting SLPlugin in the
 Contents/MacOS directory with the viewer executable solves the problem.

---
 indra/llvfs/lldir_mac.cpp        | 2 +-
 indra/newview/viewer_manifest.py | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/indra/llvfs/lldir_mac.cpp b/indra/llvfs/lldir_mac.cpp
index 9be787df11f..3e296831ae6 100644
--- a/indra/llvfs/lldir_mac.cpp
+++ b/indra/llvfs/lldir_mac.cpp
@@ -424,7 +424,7 @@ BOOL LLDir_Mac::fileExists(const std::string &filename) const
 
 /*virtual*/ std::string LLDir_Mac::getLLPluginLauncher()
 {
-	return gDirUtilp->getLLPluginDir() + gDirUtilp->getDirDelimiter() +
+	return gDirUtilp->getExecutableDir() + gDirUtilp->getDirDelimiter() +
 		"SLPlugin";
 }
 
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index 1b9acc7ac2a..a27c4a7fb72 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -427,6 +427,9 @@ def construct(self):
 
             # copy additional libs in <bundle>/Contents/MacOS/
             self.path("../../libraries/universal-darwin/lib_release/libndofdev.dylib", dst="MacOS/libndofdev.dylib")
+            self.path(os.path.join(os.pardir, "llplugin", "slplugin", self.args['configuration'],
+                                   "SLPlugin"),
+                      os.path.join("MacOS", "SLPlugin"))
 
             # most everything goes in the Resources directory
             if self.prefix(src="", dst="Resources"):
@@ -507,7 +510,6 @@ def construct(self):
 
                 # plugins
                 if self.prefix(src="", dst="llplugin"):
-                    self.path("../llplugin/slplugin/" + self.args['configuration'] + "/SLPlugin", "SLPlugin")
                     self.path("../media_plugins/quicktime/" + self.args['configuration'] + "/media_plugin_quicktime.dylib", "media_plugin_quicktime.dylib")
                     self.path("../media_plugins/webkit/" + self.args['configuration'] + "/media_plugin_webkit.dylib", "media_plugin_webkit.dylib")
                     self.path("../../libraries/universal-darwin/lib_release/libllqtwebkit.dylib", "libllqtwebkit.dylib")
-- 
GitLab