Mon, 07 Mar 2016 18:42:17 +0200
Merge fix for MAINT-5360
autobuild.xml | file | annotate | diff | revisions |
1.1 --- a/BuildParams Thu Mar 03 00:15:33 2016 +0200 1.2 +++ b/BuildParams Mon Mar 07 18:42:17 2016 +0200 1.3 @@ -70,15 +70,12 @@ 1.4 # the viewer_channel_suffix is prefixed by a blank and then appended to the viewer_channel 1.5 # for the package in a setting that overrides the compiled-in value 1.6 ################################################################ 1.7 -## Removed 2015-07-02 (MAINT-5360) until we fix packaging step in Team City 1.8 -## additional_packages = "EDU" 1.9 +additional_packages = "EDU" 1.10 1.11 # The EDU package allows us to create a separate release channel whose expirations 1.12 # are synchronized as much as possible with the academic year 1.13 -## Removed 2015-07-02 (MAINT-5360) until we fix packaging step in Team City 1.14 -## EDU_sourceid = "" 1.15 -## Removed 2015-07-02 (MAINT-5360) until we fix packaging step in Team City 1.16 -## EDU_viewer_channel_suffix = "edu" 1.17 +EDU_sourceid = "" 1.18 +EDU_viewer_channel_suffix = "edu" 1.19 1.20 # Notifications - to configure email notices, add a setting like this: 1.21 # <username>_<reponame>.email = <email-address>
2.1 --- a/indra/llcorehttp/CMakeLists.txt Thu Mar 03 00:15:33 2016 +0200 2.2 +++ b/indra/llcorehttp/CMakeLists.txt Mon Mar 07 18:42:17 2016 +0200 2.3 @@ -141,6 +141,43 @@ 2.4 "${CMAKE_CURRENT_SOURCE_DIR}/tests/test_llcorehttp_peer.py" 2.5 ) 2.6 2.7 +if (DARWIN) 2.8 + # Path inside the app bundle where we'll need to copy libraries 2.9 + set(LL_TEST_DESTINATION_DIR 2.10 + ${CMAKE_SOURCE_DIR}/../build-darwin-i386/sharedlibs/Resources 2.11 + ) 2.12 + 2.13 + # Create the Contents/Resources directory 2.14 + add_custom_command( 2.15 + TARGET INTEGRATION_TEST_llcorehttp PRE_BUILD 2.16 + COMMAND ${CMAKE_COMMAND} 2.17 + ARGS 2.18 + -E 2.19 + make_directory 2.20 + ${LL_TEST_DESTINATION_DIR} 2.21 + COMMENT "Creating Resources directory in app bundle." 2.22 + ) 2.23 + 2.24 + # Copy the required libraries to the package app 2.25 + add_custom_command(TARGET INTEGRATION_TEST_llcorehttp PRE_BUILD 2.26 + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/../build-darwin-i386/packages/lib/release/libapr-1.0.dylib ${LL_TEST_DESTINATION_DIR} 2.27 + DEPENDS ${CMAKE_SOURCE_DIR}/../build-darwin-i386/packages/lib/release/libapr-1.0.dylib 2.28 + ) 2.29 + add_custom_command(TARGET INTEGRATION_TEST_llcorehttp PRE_BUILD 2.30 + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/../build-darwin-i386/packages/lib/release/libaprutil-1.0.dylib ${LL_TEST_DESTINATION_DIR} 2.31 + DEPENDS ${CMAKE_SOURCE_DIR}/../build-darwin-i386/packages/lib/release/libaprutil-1.0.dylib 2.32 + ) 2.33 + add_custom_command(TARGET INTEGRATION_TEST_llcorehttp PRE_BUILD 2.34 + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/../build-darwin-i386/packages/lib/release/libexception_handler.dylib ${LL_TEST_DESTINATION_DIR} 2.35 + DEPENDS ${CMAKE_SOURCE_DIR}/../build-darwin-i386/packages/lib/release/libexception_handler.dylib 2.36 + ) 2.37 + add_custom_command(TARGET INTEGRATION_TEST_llcorehttp PRE_BUILD 2.38 + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/../build-darwin-i386/packages/lib/release/libexpat.1.5.2.dylib ${LL_TEST_DESTINATION_DIR} 2.39 + DEPENDS ${CMAKE_SOURCE_DIR}/../build-darwin-i386/packages/lib/release/libexpat.1.5.2.dylib 2.40 + ) 2.41 + 2.42 +endif (DARWIN) 2.43 + 2.44 # 2.45 # Example Programs 2.46 #
3.1 --- a/indra/media_plugins/cef/CMakeLists.txt Thu Mar 03 00:15:33 2016 +0200 3.2 +++ b/indra/media_plugins/cef/CMakeLists.txt Mon Mar 07 18:42:17 2016 +0200 3.3 @@ -114,4 +114,12 @@ 3.4 LINK_FLAGS "-exported_symbols_list ${CMAKE_CURRENT_SOURCE_DIR}/../base/media_plugin_base.exp" 3.5 ) 3.6 3.7 + add_custom_command(TARGET media_plugin_cef 3.8 + POST_BUILD COMMAND ${CMAKE_INSTALL_NAME_TOOL} -change "@executable_path/Chromium Embedded Framework" 3.9 + "@executable_path/../../../../Frameworks/Chromium Embedded Framework.framework/Chromium Embedded Framework" 3.10 + "$<TARGET_FILE:media_plugin_cef>" 3.11 + VERBATIM 3.12 + COMMENT "Fixing path to CEF Framework" 3.13 + ) 3.14 + 3.15 endif (DARWIN)
4.1 --- a/indra/newview/viewer_manifest.py Thu Mar 03 00:15:33 2016 +0200 4.2 +++ b/indra/newview/viewer_manifest.py Mon Mar 07 18:42:17 2016 +0200 4.3 @@ -28,6 +28,7 @@ 4.4 """ 4.5 import sys 4.6 import os.path 4.7 +import shutil 4.8 import errno 4.9 import re 4.10 import tarfile 4.11 @@ -855,14 +856,17 @@ 4.12 # This code constructs a relative path from the 4.13 # target framework folder back to the location of the symlink. 4.14 # It needs to be relative so that the symlink still works when 4.15 - # (as is normal) the user moves the app bunlde out of the DMG 4.16 + # (as is normal) the user moves the app bundle out of the DMG 4.17 # and into the /Applications folder. Note we also call 'raise' 4.18 # to terminate the process if we get an error since without 4.19 # this symlink, Second Life web media can't possibly work. 4.20 # Real Framework folder: 4.21 # Second Life.app/Contents/Frameworks/Chromium Embedded Framework.framework/ 4.22 - # Location of symlink and why it'ds relavie 4.23 + # Location of symlink and why it'ds relative 4.24 # Second Life.app/Contents/Resources/SLPlugin.app/Contents/Frameworks/Chromium Embedded Framework.framework/ 4.25 + # Real Frameworks folder, with the symlink inside the bundled SLPlugin.app (and why it's relative) 4.26 + # <top level>.app/Contents/Frameworks/Chromium Embedded Framework.framework/ 4.27 + # <top level>.app/Contents/Resources/SLPlugin.app/Contents/Frameworks/Chromium Embedded Framework.framework -> 4.28 frameworkpath = os.path.join(os.pardir, os.pardir, os.pardir, os.pardir, "Frameworks", "Chromium Embedded Framework.framework") 4.29 try: 4.30 symlinkf(frameworkpath, pluginframeworkpath) 4.31 @@ -872,10 +876,6 @@ 4.32 4.33 self.end_prefix("Contents") 4.34 4.35 - # fix up media_plugin.dylib so it knows where to look for CEF files it needs 4.36 - self.run_command('install_name_tool -change "@executable_path/Chromium Embedded Framework" "@executable_path/../Frameworks/Chromium Embedded Framework.framework/Chromium Embedded Framework" "%(config)s/Second Life.app/Contents/Resources/llplugin/media_plugin_cef.dylib"' % 4.37 - { 'config' : self.args['configuration'] }) 4.38 - 4.39 # NOTE: the -S argument to strip causes it to keep enough info for 4.40 # annotated backtraces (i.e. function names in the crash log). 'strip' with no 4.41 # arguments yields a slightly smaller binary but makes crash logs mostly useless. 4.42 @@ -1247,12 +1247,33 @@ 4.43 # file, but that strategy doesn't work so well if we don't have 4.44 # permissions to remove it. Check to see if it's already the 4.45 # symlink we want, which is the usual reason for EEXIST. 4.46 - if not (os.path.islink(dst) and os.readlink(dst) == src): 4.47 - # Here either dst isn't a symlink or it's the wrong symlink. 4.48 - # Remove and recreate. Caller will just have to deal with any 4.49 - # exceptions at this stage. 4.50 + elif os.path.islink(dst): 4.51 + if os.readlink(dst) == src: 4.52 + # the requested link already exists 4.53 + pass 4.54 + else: 4.55 + # dst is the wrong symlink; attempt to remove and recreate it 4.56 + os.remove(dst) 4.57 + os.symlink(src, dst) 4.58 + elif os.path.isdir(dst): 4.59 + print "Requested symlink (%s) exists but is a directory; replacing" % dst 4.60 + shutil.rmtree(dst) 4.61 + os.symlink(src, dst) 4.62 + elif os.path.exists(dst): 4.63 + print "Requested symlink (%s) exists but is a file; replacing" % dst 4.64 os.remove(dst) 4.65 os.symlink(src, dst) 4.66 + else: 4.67 + # see if the problem is that the parent directory does not exist 4.68 + # and try to explain what is missing 4.69 + (parent, tail) = os.path.split(dst) 4.70 + while not os.path.exists(parent): 4.71 + (parent, tail) = os.path.split(parent) 4.72 + if tail: 4.73 + raise Exception("Requested symlink (%s) cannot be created because %s does not exist" 4.74 + % os.path.join(parent, tail)) 4.75 + else: 4.76 + raise 4.77 4.78 if __name__ == "__main__": 4.79 main()