diff options
| author | Nat Goodspeed <nat@lindenlab.com> | 2016-12-20 21:27:40 -0500 | 
|---|---|---|
| committer | Nat Goodspeed <nat@lindenlab.com> | 2016-12-20 21:27:40 -0500 | 
| commit | 1cbdfce396f165ab3ac18373901c0563088202df (patch) | |
| tree | 40d19d5b2298fc12cd3442062e2d648c44dac5a6 /indra | |
| parent | 7359ec3ed8bef0eca971f380e6d0a28a26705bf9 (diff) | |
DRTVWR-418: Avoid constructing symlink cycle for CEF framework.
Diffstat (limited to 'indra')
| -rwxr-xr-x | indra/newview/viewer_manifest.py | 26 | 
1 files changed, 19 insertions, 7 deletions
| diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index f259826443..89c98a1cb3 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -853,7 +853,9 @@ class DarwinManifest(ViewerManifest):                      # (notice, not @executable_path/../Frameworks/etc.)                      # So we'll create a symlink (below) from there back to the                      # Frameworks directory nested under SLPlugin.app. -                    helperframeworkpath = self.dst_path_of('LLCefLib Helper.app/Contents/MacOS/Frameworks') +                    helperframeworkpath = \ +                        self.dst_path_of('LLCefLib Helper.app/Contents/MacOS/' +                                         'Frameworks/Chromium Embedded Framework.framework')                      self.end_prefix() @@ -882,13 +884,20 @@ class DarwinManifest(ViewerManifest):                  # this symlink, Second Life web media can't possibly work.                  # Real Framework folder:                  #   Second Life.app/Contents/Frameworks/Chromium Embedded Framework.framework/ -                # Location of symlink and why it'ds relative  +                # Location of symlink and why it's relative                   #   Second Life.app/Contents/Resources/SLPlugin.app/Contents/Frameworks/Chromium Embedded Framework.framework/                  # Real Frameworks folder, with the symlink inside the bundled SLPlugin.app (and why it's relative)                  #   <top level>.app/Contents/Frameworks/Chromium Embedded Framework.framework/                  #   <top level>.app/Contents/Resources/SLPlugin.app/Contents/Frameworks/Chromium Embedded Framework.framework -> -                frameworkdir  = os.path.join(os.pardir, os.pardir, os.pardir, os.pardir, "Frameworks") -                frameworkpath = os.path.join(frameworkdir, "Chromium Embedded Framework.framework") +                # It might seem simpler just to create a symlink Frameworks to +                # the parent of Chromimum Embedded Framework.framework. But +                # that would create a symlink cycle, which breaks our +                # packaging step. So make a symlink from Chromium Embedded +                # Framework.framework to the directory of the same name, which +                # is NOT an ancestor of the symlink. +                frameworkpath = os.path.join(os.pardir, os.pardir, os.pardir, +                                             os.pardir, "Frameworks", +                                             "Chromium Embedded Framework.framework")                  try:                      # from SLPlugin.app/Contents/Frameworks/Chromium Embedded                      # Framework.framework back to Second @@ -896,9 +905,12 @@ class DarwinManifest(ViewerManifest):                      origin, target = pluginframeworkpath, frameworkpath                      symlinkf(target, origin)                      # from SLPlugin.app/Contents/Frameworks/LLCefLib -                    # Helper.app/Contents/MacOS/Frameworks back to -                    # SLPlugin.app/Contents/Frameworks -                    origin, target = helperframeworkpath, frameworkdir +                    # Helper.app/Contents/MacOS/Frameworks/Chromium Embedded +                    # Framework.framework back to +                    # SLPlugin.app/Contents/Frameworks/Chromium Embedded Framework.framework +                    self.cmakedirs(os.path.dirname(helperframeworkpath)) +                    origin = helperframeworkpath +                    target = os.path.join(os.pardir, frameworkpath)                      symlinkf(target, origin)                  except OSError as err:                      print "Can't symlink %s -> %s: %s" % (origin, target, err) | 
