diff options
| -rwxr-xr-x | BuildParams | 31 | ||||
| -rwxr-xr-x | build.sh | 85 | ||||
| -rw-r--r-- | indra/cmake/00-Common.cmake | 2 | ||||
| -rw-r--r-- | indra/cmake/BuildPackagesInfo.cmake | 2 | ||||
| -rw-r--r-- | indra/media_plugins/cef/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | indra/newview/llappviewer.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/strings.xml | 2 | ||||
| -rwxr-xr-x | indra/newview/viewer_manifest.py | 2 | ||||
| -rwxr-xr-x | scripts/packages-formatter.py | 12 | 
9 files changed, 65 insertions, 76 deletions
| diff --git a/BuildParams b/BuildParams index 5adf249269..a991781c58 100755 --- a/BuildParams +++ b/BuildParams @@ -3,37 +3,16 @@  # Please refer to:  #  https://wiki.secondlife.com/wiki/Automated_Build_System - -# Global setting for now.... -Darwin.symbolfiles = "newview/Release/secondlife-symbols-darwin.tar.bz2" -CYGWIN.symbolfiles = "newview/Release/secondlife-symbols-windows.tar.bz2" -Linux.symbolfiles = "newview/secondlife-symbols-linux.tar.bz2" +# Variants (NOTE: 'Release' must be last for uploads to work correctly) +variants = "RelWithDebInfo Release"  # Use Public Upload Locations  public_build = true  build_docs = true -# disable all Debug builds (RelWithDebInfo is sufficient) -build_CYGWIN_Debug = false -build_Linux_Debug = false -build_Darwin_Debug = false -build_Debug = false -  # enable Doxygen building on Linux for TeamCity (it can be done manually on any platform)  build_Linux_Doxygen = true -# Update Public Inworld Build Status Indicators (setting should mirror "public_build") -email_status_this_is_os = true - -# Limit extent of codeticket updates to revisions after... -codeticket_since = 3.3.0-release - -# Override build system default toolchain -# Note that this will only affect automated builds. -Linux.distcc_version =  -Linux.gcc_version = /usr/bin/gcc-4.6 -Linux.cxx_version = /usr/bin/g++-4.6 -  # Need viewer-build-variables as well as other shared repositories  buildscripts_shared_more_NAMEs="build_variables"  build_variables_repostory_url = "https://bitbucket.org/lindenlab/viewer-build-variables" @@ -92,5 +71,9 @@ EDU_viewer_channel_suffix = "edu"  # Notifications - to configure email notices use the TeamCity parameter  # setting screen for your project or build configuration to set the  # environment variable 'email' to a space-separated list of email addresses +email="" - +# Global setting for now.... +Darwin.symbolfiles = "newview/Release/secondlife-symbols-darwin.tar.bz2" +CYGWIN.symbolfiles = "newview/Release/secondlife-symbols-windows.tar.bz2" +Linux.symbolfiles = "newview/secondlife-symbols-linux.tar.bz2" @@ -142,10 +142,14 @@ build()    local variant="$1"    if $build_viewer    then +    begin_section "autobuild $variant"      "$autobuild" build --no-configure -c $variant || fatal "failed building $variant" +    echo true >"$build_dir"/build_ok +    end_section "autobuild $variant" +    begin_section "extensions $variant"      # Run build extensions -    if [ $build_ok -eq 0 -a -d ${build_dir}/packages/build-extensions ] +    if [ -d ${build_dir}/packages/build-extensions ]      then          for extension in ${build_dir}/packages/build-extensions/*.sh          do @@ -157,10 +161,10 @@ build()      # *TODO: Make this a build extension.      package_llphysicsextensions_tpv || fatal "failed building llphysicsextensions packages" +    end_section "extensions $variant" -    echo true >"$build_dir"/build_ok    else -      echo "Skipping build due to configuration build_viewer=${build_viewer}" +      record_event "Skipping build due to configuration build_viewer=${build_viewer}"        echo true >"$build_dir"/build_ok    fi  } @@ -176,13 +180,9 @@ then      exit 1  fi -# Check to see if we're skipping the platform -if ! eval '$build_'"$arch" -then -    record_event "building on architecture $arch is disabled" -    pass -fi +initialize_build # provided by master buildscripts build.sh +begin_section "autobuild initialize"  # ensure AUTOBUILD is in native path form for child processes  AUTOBUILD="$(native_path "$AUTOBUILD")"  # set "$autobuild" to cygwin path form for use locally in this script @@ -194,7 +194,16 @@ then  fi  # load autobuild provided shell functions and variables -eval "$("$autobuild" --quiet source_environment)" +"$autobuild" --quiet source_environment > "$build_log_dir/source_environment" +begin_section "dump source environment commands" +cat "$build_log_dir/source_environment" +end_section "dump source environment commands" + +begin_section "execute source environment commands" +. "$build_log_dir/source_environment" +end_section "execute source environment commands" + +end_section "autobuild initialize"  # something about the additional_packages mechanism messes up buildscripts results.py on Linux  # since we don't care about those packages on Linux, just zero it out, yes - a HACK @@ -203,10 +212,9 @@ then      export additional_packages=  fi -# dump environment variables for debugging -begin_section "Environment" -env|sort -end_section "Environment" +python_cmd "$helpers/codeticket.py" addinput "Viewer Channel" "${viewer_channel}" + +initialize_version # provided by buildscripts build.sh; sets version id  # Now run the build  succeeded=true @@ -214,9 +222,6 @@ build_processes=  last_built_variant=  for variant in $variants  do -  eval '$build_'"$variant" || continue -  eval '$build_'"$arch"_"$variant" || continue -    # Only the last built arch is available for upload    last_built_variant="$variant" @@ -232,6 +237,9 @@ do    then        begin_section "Build $variant"        build "$variant" "$build_dir" +      end_section "Build $variant" + +      begin_section "post-build $variant"        if `cat "$build_dir/build_ok"`        then            case "$variant" in @@ -239,10 +247,10 @@ do                if [ -r "$build_dir/autobuild-package.xml" ]                then                    begin_section "Autobuild metadata" -                  upload_item docs "$build_dir/autobuild-package.xml" text/xml +                  python_cmd "$helpers/codeticket.py" addoutput "Autobuild Metadata" "$build_dir/autobuild-package.xml" --mimetype text/xml                    if [ "$arch" != "Linux" ]                    then -                      record_dependencies_graph # defined in buildscripts/hg/bin/build.sh +                      record_dependencies_graph "$build_dir/autobuild-package.xml" # defined in buildscripts/hg/bin/build.sh                    else                        record_event "TBD - no dependency graph for linux (probable python version dependency)"                    fi @@ -255,12 +263,12 @@ do                if [ -r "$build_dir/doxygen_warnings.log" ]                then                    record_event "Doxygen warnings generated; see doxygen_warnings.log" -                  upload_item log "$build_dir/doxygen_warnings.log" text/plain +                  python_cmd "$helpers/codeticket.py" addoutput "Doxygen Log" "$build_dir/doxygen_warnings.log" --mimetype text/plain ## TBD                fi                if [ -d "$build_dir/doxygen/html" ]                then                    tar -c -f "$build_dir/viewer-doxygen.tar.bz2" --strip-components 3  "$build_dir/doxygen/html" -                  upload_item docs "$build_dir/viewer-doxygen.tar.bz2" binary/octet-stream +                  python_cmd "$helpers/codeticket.py" addoutput "Doxygen Tarball" "$build_dir/viewer-doxygen.tar.bz2"                fi                ;;              *) @@ -270,7 +278,8 @@ do        else            record_failure "Build of \"$variant\" failed."        fi -      end_section "Build $variant" +      end_section "post-build $variant" +    else        record_event "configure for $variant failed: build skipped"    fi @@ -290,7 +299,7 @@ then      if $build_viewer_deb && [ "$last_built_variant" == "Release" ]      then        begin_section "Build Viewer Debian Package" -      have_private_repo=false +        # mangle the changelog        dch --force-bad-version \            --distribution unstable \ @@ -320,11 +329,12 @@ then        # upload debian package and create repository        begin_section "Upload Debian Repository"        for deb_file in `/bin/ls ../packages_public/*.deb ../*.deb 2>/dev/null`; do -        upload_item debian $deb_file binary/octet-stream +        deb_pkg=$(basename "$deb_file" | sed 's,_.*,,') +        python_cmd "$helpers/codeticket.py" addoutput "Debian $deb_pkg" $deb_file        done        for deb_file in `/bin/ls ../packages_private/*.deb 2>/dev/null`; do -        upload_item debian_private $deb_file binary/octet-stream -        have_private_repo=true +        deb_pkg=$(basename "$deb_file" | sed 's,_.*,,') +        python_cmd "$helpers/codeticket.py" addoutput "Debian $deb_pkg" "$deb_file" --private        done        create_deb_repo @@ -336,14 +346,6 @@ then            mv $build_log_dir/$debian_repo_type $build_log_dir/${debian_repo_type}_pushed          fi        done - -      if [ $have_private_repo = true ]; then -        eval "$python_command \"$redirect\" '\${private_S3PROXY_URL}${S3PREFIX}repo/$repo/rev/$revision/index.html'"\ -            >"$build_log_dir/private.html" || fatal generating redirect -        upload_item global_redirect "$build_log_dir/private.html" text/html -         -      fi -        end_section "Upload Debian Repository"      else @@ -359,7 +361,7 @@ if $succeeded  then    if $build_viewer    then -    begin_section Upload Installer +    begin_section "Uploads"      # Upload installer      package=$(installer_$arch)      if [ x"$package" = x ] || test -d "$package" @@ -368,9 +370,7 @@ then        succeeded=$build_coverity      else        # Upload base package. -      upload_item installer "$package" binary/octet-stream -      upload_item quicklink "$package" binary/octet-stream -      [ -f $build_dir/summary.json ] && upload_item installer $build_dir/summary.json text/plain +      python_cmd "$helpers/codeticket.py" addoutput Installer --output "$package"         # Upload additional packages.        for package_id in $additional_packages @@ -378,8 +378,7 @@ then          package=$(installer_$arch "$package_id")          if [ x"$package" != x ]          then -          upload_item installer "$package" binary/octet-stream -          upload_item quicklink "$package" binary/octet-stream +          python_cmd "$helpers/codeticket.py" addoutput "Installer $package_id" "$package"          else            record_failure "Failed to find additional package for '$package_id'."          fi @@ -390,7 +389,7 @@ then          # Upload crash reporter files          for symbolfile in $symbolfiles          do -          upload_item symbolfile "$build_dir/$symbolfile" binary/octet-stream +          python_cmd "$helpers/codeticket.py" addoutput "Symbolfile $(basename "$build_dir/$symbolfile")" "$build_dir/$symbolfile"          done          # Upload the llphysicsextensions_tpv package, if one was produced @@ -398,7 +397,7 @@ then          if [ -r "$build_dir/llphysicsextensions_package" ]          then              llphysicsextensions_package=$(cat $build_dir/llphysicsextensions_package) -            upload_item private_artifact "$llphysicsextensions_package" binary/octet-stream +            python_cmd "$helpers/codeticket.py" addoutput "Physics Extensions Package" "$llphysicsextensions_package" --private          fi          ;;        *) @@ -414,7 +413,7 @@ then            done        fi      fi -    end_section Upload Installer +    end_section "Uploads"    else      record_event "skipping upload of installer"    fi diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index 96ff9a645e..6734f9585c 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -67,7 +67,7 @@ if (WINDOWS)        "${CMAKE_CXX_FLAGS_RELEASE} ${LL_CXX_FLAGS} /O2 /Zi /Zo /MD /MP /Ob2 -D_SECURE_STL=0 -D_HAS_ITERATOR_DEBUGGING=0"        CACHE STRING "C++ compiler release options" FORCE)    # zlib has assembly-language object files incompatible with SAFESEH -  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LARGEADDRESSAWARE /SAFESEH:NO /NODEFAULTLIB:LIBCMT") +  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LARGEADDRESSAWARE /SAFESEH:NO /NODEFAULTLIB:LIBCMT /IGNORE:4099")    set(CMAKE_CXX_STANDARD_LIBRARIES "")    set(CMAKE_C_STANDARD_LIBRARIES "") diff --git a/indra/cmake/BuildPackagesInfo.cmake b/indra/cmake/BuildPackagesInfo.cmake index 367511bfb7..26ce77b803 100644 --- a/indra/cmake/BuildPackagesInfo.cmake +++ b/indra/cmake/BuildPackagesInfo.cmake @@ -13,5 +13,5 @@ add_custom_command(OUTPUT packages-info.txt    DEPENDS ${CMAKE_SOURCE_DIR}/../scripts/packages-formatter.py    COMMAND ${PYTHON_EXECUTABLE}            ${CMAKE_SOURCE_DIR}/cmake/run_build_test.py -DAUTOBUILD_ADDRSIZE=${ADDRESS_SIZE} -          ${CMAKE_SOURCE_DIR}/../scripts/packages-formatter.py > packages-info.txt +          ${CMAKE_SOURCE_DIR}/../scripts/packages-formatter.py "${VIEWER_CHANNEL}" "${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}" > packages-info.txt    ) diff --git a/indra/media_plugins/cef/CMakeLists.txt b/indra/media_plugins/cef/CMakeLists.txt index 5db0a8fbfd..711e870ee4 100644 --- a/indra/media_plugins/cef/CMakeLists.txt +++ b/indra/media_plugins/cef/CMakeLists.txt @@ -97,8 +97,8 @@ if (WINDOWS)    set_target_properties(      media_plugin_cef      PROPERTIES -    LINK_FLAGS "/MANIFEST:NO /SAFESEH:NO /LTCG /NODEFAULTLIB:LIBCMT" -    LINK_FLAGS_DEBUG "/MANIFEST:NO /SAFESEH:NO /NODEFAULTLIB:LIBCMTD" +    LINK_FLAGS "/MANIFEST:NO /SAFESEH:NO /LTCG /NODEFAULTLIB:LIBCMT /IGNORE:4099" +    LINK_FLAGS_DEBUG "/MANIFEST:NO /SAFESEH:NO /NODEFAULTLIB:LIBCMTD /IGNORE:4099"      )  endif (WINDOWS) diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index a0ebae119e..c125924fa7 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -3284,6 +3284,7 @@ LLSD LLAppViewer::getViewerInfo() const      if (build_config != "Release")      {          info["BUILD_CONFIG"] = build_config; +        info["ADDRESS_SIZE"] = ADDRESS_SIZE;      }  	// return a URL to the release notes for this viewer, such as: diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index dcb259f2bb..a45c697ddb 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -25,7 +25,7 @@  [APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2].[VIEWER_VERSION_3] ([CHANNEL])  [[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]  	</string> -    <string name="BuildConfig">Build Configuration [BUILD_CONFIG]</string> +    <string name="BuildConfig">Build Configuration [BUILD_CONFIG] [ADDRESS_SIZE] bits</string>  	<string name="AboutPosition">  You are at [POSITION_LOCAL_0,number,1], [POSITION_LOCAL_1,number,1], [POSITION_LOCAL_2,number,1] in [REGION] located at <nolink>[HOSTNAME]</nolink> ([HOSTIP]) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 589d74a014..d9c4cf1b9e 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -669,7 +669,7 @@ class WindowsManifest(ViewerManifest):          while (not installer_created) and (nsis_attempts > 0):              try:                  nsis_attempts-=1; -                self.run_command('"' + NSIS_path + '" ' + self.dst_path_of(tempfile)) +                self.run_command('"' + NSIS_path + '" /V2 ' + self.dst_path_of(tempfile))                  installer_created=True # if no exception was raised, the codesign worked              except ManifestError, err:                  if nsis_attempts: diff --git a/scripts/packages-formatter.py b/scripts/packages-formatter.py index 928d340b69..f91f5819b7 100755 --- a/scripts/packages-formatter.py +++ b/scripts/packages-formatter.py @@ -29,6 +29,12 @@ import sys  import errno  import re  import subprocess +import argparse + +parser = argparse.ArgumentParser(description='Format dependency version and copyright information for the viewer About box content') +parser.add_argument('channel', help='viewer channel name') +parser.add_argument('version', help='viewer version number') +args = parser.parse_args()  _autobuild=os.getenv('AUTOBUILD', 'autobuild') @@ -50,9 +56,8 @@ def autobuild(*args):              # Don't attempt to interpret anything but ENOENT              raise          # Here it's ENOENT: subprocess can't find the autobuild executable. -        print >>sys.stderr, "packages-formatter on %s: can't run autobuild:\n%s\n%s" % \ -              (sys.platform, ' '.join(command), err) -        sys.exit(1) +        sys.exit("packages-formatter on %s: can't run autobuild:\n%s\n%s" % \ +                 (sys.platform, ' '.join(command), err))      # no exceptions yet, let caller read stdout      return child.stdout @@ -84,6 +89,7 @@ for line in copyrights:      else:          sys.exit("Unrecognized --copyrights output: %s" % line) +print "%s %s" % (args.channel, args.version)  print viewer_copyright  for pkg in sorted(version):      print ': '.join([pkg, version[pkg]]) | 
