summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/contributions.txt3
-rw-r--r--indra/cmake/Variables.cmake3
-rw-r--r--indra/lib/python/indra/util/llmanifest.py7
-rw-r--r--indra/newview/CMakeLists.txt7
-rw-r--r--indra/newview/viewer_manifest.py10
5 files changed, 29 insertions, 1 deletions
diff --git a/doc/contributions.txt b/doc/contributions.txt
index df504e4a8a..7aa76e0003 100644
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -400,6 +400,7 @@ Gaberoonie Zanzibar
Ganymedes Costagravas
Geenz Spad
STORM-1823
+ STORM-1900
Gene Frostbite
GeneJ Composer
Geneko Nemeth
@@ -654,6 +655,8 @@ Kage Pixel
VWR-11
Kagehi Kohn
Kaimen Takahe
+Katharine Berry
+ STORM-1900
Keklily Longfall
Ken Lavender
Ken March
diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake
index e9837a7bf1..df9755c0ec 100644
--- a/indra/cmake/Variables.cmake
+++ b/indra/cmake/Variables.cmake
@@ -145,6 +145,9 @@ set(VIEWER ON CACHE BOOL "Build Second Life viewer.")
set(VIEWER_CHANNEL "LindenDeveloper" CACHE STRING "Viewer Channel Name")
set(VIEWER_LOGIN_CHANNEL ${VIEWER_CHANNEL} CACHE STRING "Fake login channel for A/B Testing")
+set(ENABLE_SIGNING OFF CACHE BOOL "Enable signing the viewer")
+set(SIGNING_IDENTITY "" CACHE STRING "Specifies the signing identity to use, if necessary.")
+
set(VERSION_BUILD "0" CACHE STRING "Revision number passed in from the outside")
set(STANDALONE OFF CACHE BOOL "Do not use Linden-supplied prebuilt libraries.")
set(UNATTENDED OFF CACHE BOOL "Should be set to ON for building with VC Express editions.")
diff --git a/indra/lib/python/indra/util/llmanifest.py b/indra/lib/python/indra/util/llmanifest.py
index a4fb77357c..bfcb259709 100644
--- a/indra/lib/python/indra/util/llmanifest.py
+++ b/indra/lib/python/indra/util/llmanifest.py
@@ -167,7 +167,12 @@ ARGUMENTS=[
dict(name='version',
description="""This specifies the version of Second Life that is
being packaged up.""",
- default=get_default_version)
+ default=get_default_version),
+ dict(name='signature',
+ description="""This specifies an identity to sign the viewer with, if any.
+ If no value is supplied, the default signature will be used, if any. Currently
+ only used on Mac OS X.""",
+ default=None)
]
def usage(srctree=""):
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 9783601696..3ce40187b0 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -1900,6 +1900,12 @@ if (DARWIN)
)
add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit mac-updater mac-crash-logger)
+
+ if (ENABLE_SIGNING)
+ set(SIGNING_SETTING "--signature=${SIGNING_IDENTITY}")
+ else (ENABLE_SIGNING)
+ set(SIGNING_SETTING "")
+ endif (ENABLE_SIGNING)
if (PACKAGE)
add_custom_target(package ALL DEPENDS ${VIEWER_BINARY_NAME})
@@ -1919,6 +1925,7 @@ if (DARWIN)
--login_channel=${VIEWER_LOGIN_CHANNEL}
--source=${CMAKE_CURRENT_SOURCE_DIR}
--touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched
+ ${SIGNING_SETTING}
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
)
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index d1c952ac3b..587d708e86 100644
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -816,6 +816,16 @@ class DarwinManifest(ViewerManifest):
self.run_command("chmod +x %r" % os.path.join(self.get_dst_prefix(), script))
def package_finish(self):
+ # Sign the app if requested.
+ if 'signature' in self.args:
+ identity = self.args['signature']
+ if identity == '':
+ identity = 'Developer ID Application'
+ self.run_command('codesign --force --sign %(identity)r %(bundle)r' % {
+ 'identity': identity,
+ 'bundle': self.get_dst_prefix()
+ })
+
channel_standin = 'Second Life Viewer' # hah, our default channel is not usable on its own
if not self.default_channel():
channel_standin = self.channel()