From 9e5e40801c67f387fb6d9dbb5ade603a715d2d5e Mon Sep 17 00:00:00 2001 From: Mishal Shah Date: Fri, 20 Nov 2015 17:01:54 -0800 Subject: [PATCH 1/9] Add support to create xctoolchain with code sign --- utils/build-presets.ini | 6 ++++++ utils/build-script-impl | 30 ++++++++++++++++++++++++++++++ utils/toolchain-codesign | 6 ++++++ utils/toolchain-installer | 11 +++++++++++ 4 files changed, 53 insertions(+) create mode 100755 utils/toolchain-codesign create mode 100755 utils/toolchain-installer diff --git a/utils/build-presets.ini b/utils/build-presets.ini index 854cb0f652a95..3e400b8ed26c4 100644 --- a/utils/build-presets.ini +++ b/utils/build-presets.ini @@ -595,3 +595,9 @@ installable-package=%(installable_package)s # Path to the .tar.gz symbols package symbols-package=%(symbols_package)s + +# Info.plist +toolchain-bundle-identifier=%(toolchain_bundle_identifier)s +toolchain-display-name=%(toolchain_display_name)s +toolchain-name=%(toolchain_xctoolchain_name)s +toolchain-version=$(toolchain_version)s diff --git a/utils/build-script-impl b/utils/build-script-impl index c41d7c722f9d3..25b1c4565428c 100755 --- a/utils/build-script-impl +++ b/utils/build-script-impl @@ -175,6 +175,14 @@ KNOWN_SETTINGS=( swift-runtime-enable-dtrace "0" "Enable runtime dtrace support" swift-runtime-enable-leak-checker "0" "Enable leaks checking routines in the runtime" use-gold-linker "" "Enable using the gold linker" + toolchain-bundle-identifier "" "CFBundleIdentifier for xctoolchain info plist" + toolchain-display-name "" "Display Name for xctoolcain info plist" + toolchain-name "" "File name for xctoolchain" + toolchain-version "" "Version for xctoolchain info plist and installer pkg" + toolchain-application-cert "" "Application Cert name to codesign xctoolchain" + toolchain-installer-cert "" "Installer Cert name to create installer pkg" + toolchain-installer-package "" "The path to installer pkg" + ) function toupper() { @@ -2114,6 +2122,28 @@ if [[ "${INSTALLABLE_PACKAGE}" ]] ; then echo "--- Copy swift-stdlib-tool ---" cp "${SWIFT_SOURCE_DIR}/utils/swift-stdlib-tool-substitute" "${INSTALL_DESTDIR}/${INSTALL_PREFIX}/bin/swift-stdlib-tool" fi + + #Create plist for xctoolchain + echo "-- Create Info.plist --" + PLISTBUDDY_BIN="/usr/libexec/PlistBuddy" + TOOLCHAIN_INSTALL_LOCATION="/Library/Developer/Toolchains/${TOOLCHAIN_NAME}.xctoolchain/usr/lib" + + ${PLISTBUDDY_BIN} -c "Add DisplayName string '${TOOLCHAIN_DISPLAY_NAME}'" "${TOOLCHAIN_PREFIX}/Info.plist" + ${PLISTBUDDY_BIN} -c "Add Version string '${TOOLCHAIN_VERSION}'" "${TOOLCHAIN_PREFIX}/Info.plist" + ${PLISTBUDDY_BIN} -c "Add CFBundleIdentifier string '${TOOLCHAIN_BUNDLE_IDENTIFIER}'" "${TOOLCHAIN_PREFIX}/Info.plist" + ${PLISTBUDDY_BIN} -c "Add ReportProblemURL string 'https://bugs.swift.com/'" "${TOOLCHAIN_PREFIX}/Info.plist" + ${PLISTBUDDY_BIN} -c "Add OverrideEnvironment::DYLD_LIBRARY_PATH string '${TOOLCHAIN_INSTALL_LOCATION}/usr/lib'" "${TOOLCHAIN_PREFIX}/Info.plist" + chmod a+r "${TOOLCHAIN_PREFIX}/Info.plist" + + if [[ "${APPLICATION_CERT}" ]] ; then + echo "-- Codesign xctoolchain --" + "${SWIFT_SOURCE_DIR}/utils/toolchain-codesign" "${TOOLCHAIN_APPLICATION_CERT}" "${TOOLCHAIN_PREFIX}" + fi + if [[ "${INSTALLER_PACKAGE}" ]] ; then + echo "-- Create Installer --" + "${SWIFT_SOURCE_DIR}/utils/toolchain-installer" "${TOOLCHAIN_PREFIX}" "${TOOLCHAIN_BUNDLE_IDENTIFIER}" "${TOOLCHAIN_INSTALLER_CERT}" "${TOOLCHAIN_INSTALLER_PACKAGE}" "${TOOLCHAIN_INSTALL_LOCATION}" "${TOOLCHAIN_VERSION}" + fi + (cd "${INSTALL_DESTDIR}" && tar -c -z -f "${INSTALLABLE_PACKAGE}" "${TOOLCHAIN_PREFIX/#\/}") else diff --git a/utils/toolchain-codesign b/utils/toolchain-codesign new file mode 100755 index 0000000000000..93fdc5629c600 --- /dev/null +++ b/utils/toolchain-codesign @@ -0,0 +1,6 @@ +#!/bin/bash + +TOOLCHAIN_APPLICATION_CERT=$1 +TOOLCHAIN_PREFIX=$2 + +codesign -f --deep -s "${TOOLCHAIN_APPLICATION_CERT}" "${TOOLCHAIN_PREFIX}" \ No newline at end of file diff --git a/utils/toolchain-installer b/utils/toolchain-installer new file mode 100755 index 0000000000000..8e6c2c7cc89d9 --- /dev/null +++ b/utils/toolchain-installer @@ -0,0 +1,11 @@ +#!/bin/bash + +TOOLCHAIN_PREFIX=$1 +BUNDLE_IDENTIFIER=$2 +INSTALLER_CERT=$3 +INSTALLER_PACKAGE=$4 +TOOLCHAIN_INSTALL_LOCATION=$5 +TOOLCHAIN_VERSION=$6 + +pkgbuild --root "${TOOLCHAIN_PREFIX}" --install-location "${TOOLCHAIN_INSTALL_LOCATION}" "${INSTALLER_PACKAGE}" \ + --version "${TOOLCHAIN_VERSION}" --identifier "${BUNDLE_IDENTIFIER}" --sign "${INSTALLER_CERT}" \ No newline at end of file From 7885cc0080e98a4d9fd5db90a02d5d878d65341a Mon Sep 17 00:00:00 2001 From: Mishal Shah Date: Fri, 20 Nov 2015 18:20:02 -0800 Subject: [PATCH 2/9] Add darwin prefix to toolchain var in build script --- utils/build-presets.ini | 8 ++++---- utils/build-script-impl | 36 +++++++++++++++++++----------------- utils/toolchain-codesign | 4 ++-- utils/toolchain-installer | 14 +++++++------- 4 files changed, 32 insertions(+), 30 deletions(-) diff --git a/utils/build-presets.ini b/utils/build-presets.ini index 3e400b8ed26c4..8418796e518c3 100644 --- a/utils/build-presets.ini +++ b/utils/build-presets.ini @@ -597,7 +597,7 @@ installable-package=%(installable_package)s symbols-package=%(symbols_package)s # Info.plist -toolchain-bundle-identifier=%(toolchain_bundle_identifier)s -toolchain-display-name=%(toolchain_display_name)s -toolchain-name=%(toolchain_xctoolchain_name)s -toolchain-version=$(toolchain_version)s +darwin-toolchain-bundle-identifier=%(toolchain_bundle_identifier)s +darwin-toolchain-display-name=%(toolchain_display_name)s +darwin-toolchain-name=%(toolchain_xctoolchain_name)s +darwin-toolchain-version=$(toolchain_version)s diff --git a/utils/build-script-impl b/utils/build-script-impl index 25b1c4565428c..5b865853615d7 100755 --- a/utils/build-script-impl +++ b/utils/build-script-impl @@ -175,13 +175,13 @@ KNOWN_SETTINGS=( swift-runtime-enable-dtrace "0" "Enable runtime dtrace support" swift-runtime-enable-leak-checker "0" "Enable leaks checking routines in the runtime" use-gold-linker "" "Enable using the gold linker" - toolchain-bundle-identifier "" "CFBundleIdentifier for xctoolchain info plist" - toolchain-display-name "" "Display Name for xctoolcain info plist" - toolchain-name "" "File name for xctoolchain" - toolchain-version "" "Version for xctoolchain info plist and installer pkg" - toolchain-application-cert "" "Application Cert name to codesign xctoolchain" - toolchain-installer-cert "" "Installer Cert name to create installer pkg" - toolchain-installer-package "" "The path to installer pkg" + darwin-toolchain-bundle-identifier "" "CFBundleIdentifier for xctoolchain info plist" + darwin-toolchain-display-name "" "Display Name for xctoolcain info plist" + darwin-toolchain-name "" "Directory name for xctoolchain" + darwin-toolchain-version "" "Version for xctoolchain info plist and installer pkg" + darwin-toolchain-application-cert "" "Application Cert name to codesign xctoolchain" + darwin-toolchain-installer-cert "" "Installer Cert name to create installer pkg" + darwin-toolchain-installer-package "" "The path to installer pkg" ) @@ -2126,22 +2126,24 @@ if [[ "${INSTALLABLE_PACKAGE}" ]] ; then #Create plist for xctoolchain echo "-- Create Info.plist --" PLISTBUDDY_BIN="/usr/libexec/PlistBuddy" - TOOLCHAIN_INSTALL_LOCATION="/Library/Developer/Toolchains/${TOOLCHAIN_NAME}.xctoolchain/usr/lib" + TOOLCHAIN_INSTALL_LOCATION="/Library/Developer/Toolchains/${DARWIN_TOOLCHAIN_NAME}.xctoolchain" - ${PLISTBUDDY_BIN} -c "Add DisplayName string '${TOOLCHAIN_DISPLAY_NAME}'" "${TOOLCHAIN_PREFIX}/Info.plist" - ${PLISTBUDDY_BIN} -c "Add Version string '${TOOLCHAIN_VERSION}'" "${TOOLCHAIN_PREFIX}/Info.plist" - ${PLISTBUDDY_BIN} -c "Add CFBundleIdentifier string '${TOOLCHAIN_BUNDLE_IDENTIFIER}'" "${TOOLCHAIN_PREFIX}/Info.plist" - ${PLISTBUDDY_BIN} -c "Add ReportProblemURL string 'https://bugs.swift.com/'" "${TOOLCHAIN_PREFIX}/Info.plist" - ${PLISTBUDDY_BIN} -c "Add OverrideEnvironment::DYLD_LIBRARY_PATH string '${TOOLCHAIN_INSTALL_LOCATION}/usr/lib'" "${TOOLCHAIN_PREFIX}/Info.plist" + ${PLISTBUDDY_BIN} -c "Add DisplayName string '${DARWIN_TOOLCHAIN_DISPLAY_NAME}'" "${TOOLCHAIN_PREFIX}/Info.plist" + ${PLISTBUDDY_BIN} -c "Add Version string '${DARWIN_TOOLCHAIN_VERSION}'" "${TOOLCHAIN_PREFIX}/Info.plist" + ${PLISTBUDDY_BIN} -c "Add CFBundleIdentifier string '${DARWIN_TOOLCHAIN_BUNDLE_IDENTIFIER}'" "${TOOLCHAIN_PREFIX}/Info.plist" + ${PLISTBUDDY_BIN} -c "Add ReportProblemURL string 'https://bugs.swift.org/'" "${TOOLCHAIN_PREFIX}/Info.plist" + ${PLISTBUDDY_BIN} -c "Add OverrideEnvironment::DYLD_LIBRARY_PATH string '${DARWIN_TOOLCHAIN_INSTALL_LOCATION}/usr/lib'" "${TOOLCHAIN_PREFIX}/Info.plist" chmod a+r "${TOOLCHAIN_PREFIX}/Info.plist" - if [[ "${APPLICATION_CERT}" ]] ; then + if [[ "${DARWIN_TOOLCHAIN_APPLICATION_CERT}" ]] ; then echo "-- Codesign xctoolchain --" - "${SWIFT_SOURCE_DIR}/utils/toolchain-codesign" "${TOOLCHAIN_APPLICATION_CERT}" "${TOOLCHAIN_PREFIX}" + "${SWIFT_SOURCE_DIR}/utils/toolchain-codesign" "${DARWIN_TOOLCHAIN_APPLICATION_CERT}" "${TOOLCHAIN_PREFIX}" fi - if [[ "${INSTALLER_PACKAGE}" ]] ; then + if [[ "${DARWIN_TOOLCHAIN_INSTALLER_PACKAGE}" ]] ; then echo "-- Create Installer --" - "${SWIFT_SOURCE_DIR}/utils/toolchain-installer" "${TOOLCHAIN_PREFIX}" "${TOOLCHAIN_BUNDLE_IDENTIFIER}" "${TOOLCHAIN_INSTALLER_CERT}" "${TOOLCHAIN_INSTALLER_PACKAGE}" "${TOOLCHAIN_INSTALL_LOCATION}" "${TOOLCHAIN_VERSION}" + "${SWIFT_SOURCE_DIR}/utils/toolchain-installer" "${TOOLCHAIN_PREFIX}" "${DARWIN_TOOLCHAIN_BUNDLE_IDENTIFIER}" \ + "${DARWIN_TOOLCHAIN_INSTALLER_CERT}" "${DARWIN_TOOLCHAIN_INSTALLER_PACKAGE}" "${DARWIN_TOOLCHAIN_INSTALL_LOCATION}" \ + "${DARWIN_TOOLCHAIN_VERSION}" fi (cd "${INSTALL_DESTDIR}" && diff --git a/utils/toolchain-codesign b/utils/toolchain-codesign index 93fdc5629c600..eac37075236d5 100755 --- a/utils/toolchain-codesign +++ b/utils/toolchain-codesign @@ -1,6 +1,6 @@ #!/bin/bash -TOOLCHAIN_APPLICATION_CERT=$1 +DARWIN_TOOLCHAIN_APPLICATION_CERT=$1 TOOLCHAIN_PREFIX=$2 -codesign -f --deep -s "${TOOLCHAIN_APPLICATION_CERT}" "${TOOLCHAIN_PREFIX}" \ No newline at end of file +codesign -f --deep -s "${DARWIN_TOOLCHAIN_APPLICATION_CERT}" "${TOOLCHAIN_PREFIX}" diff --git a/utils/toolchain-installer b/utils/toolchain-installer index 8e6c2c7cc89d9..b01d5e1e35b79 100755 --- a/utils/toolchain-installer +++ b/utils/toolchain-installer @@ -1,11 +1,11 @@ #!/bin/bash TOOLCHAIN_PREFIX=$1 -BUNDLE_IDENTIFIER=$2 -INSTALLER_CERT=$3 -INSTALLER_PACKAGE=$4 -TOOLCHAIN_INSTALL_LOCATION=$5 -TOOLCHAIN_VERSION=$6 +DARWIN_BUNDLE_IDENTIFIER=$2 +DARWIN_INSTALLER_CERT=$3 +DARWIN_INSTALLER_PACKAGE=$4 +DARWIN_TOOLCHAIN_INSTALL_LOCATION=$5 +DARWIN_TOOLCHAIN_VERSION=$6 -pkgbuild --root "${TOOLCHAIN_PREFIX}" --install-location "${TOOLCHAIN_INSTALL_LOCATION}" "${INSTALLER_PACKAGE}" \ - --version "${TOOLCHAIN_VERSION}" --identifier "${BUNDLE_IDENTIFIER}" --sign "${INSTALLER_CERT}" \ No newline at end of file +pkgbuild --root "${TOOLCHAIN_PREFIX}" --install-location "${DARWIN_TOOLCHAIN_INSTALL_LOCATION}" "${DARWIN_INSTALLER_PACKAGE}" \ + --version "${DARWIN_TOOLCHAIN_VERSION}" --identifier "${DARWIN_BUNDLE_IDENTIFIER}" --sign "${DARWIN_INSTALLER_CERT}" From ffcfca62857e74f51bcb7f5213ecd30aff2553a0 Mon Sep 17 00:00:00 2001 From: Mishal Shah Date: Fri, 20 Nov 2015 19:40:33 -0800 Subject: [PATCH 3/9] Fix Toolchain path in build script --- utils/build-script-impl | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/utils/build-script-impl b/utils/build-script-impl index 5b865853615d7..ce7fc055e2bf3 100755 --- a/utils/build-script-impl +++ b/utils/build-script-impl @@ -2128,20 +2128,20 @@ if [[ "${INSTALLABLE_PACKAGE}" ]] ; then PLISTBUDDY_BIN="/usr/libexec/PlistBuddy" TOOLCHAIN_INSTALL_LOCATION="/Library/Developer/Toolchains/${DARWIN_TOOLCHAIN_NAME}.xctoolchain" - ${PLISTBUDDY_BIN} -c "Add DisplayName string '${DARWIN_TOOLCHAIN_DISPLAY_NAME}'" "${TOOLCHAIN_PREFIX}/Info.plist" - ${PLISTBUDDY_BIN} -c "Add Version string '${DARWIN_TOOLCHAIN_VERSION}'" "${TOOLCHAIN_PREFIX}/Info.plist" - ${PLISTBUDDY_BIN} -c "Add CFBundleIdentifier string '${DARWIN_TOOLCHAIN_BUNDLE_IDENTIFIER}'" "${TOOLCHAIN_PREFIX}/Info.plist" - ${PLISTBUDDY_BIN} -c "Add ReportProblemURL string 'https://bugs.swift.org/'" "${TOOLCHAIN_PREFIX}/Info.plist" - ${PLISTBUDDY_BIN} -c "Add OverrideEnvironment::DYLD_LIBRARY_PATH string '${DARWIN_TOOLCHAIN_INSTALL_LOCATION}/usr/lib'" "${TOOLCHAIN_PREFIX}/Info.plist" - chmod a+r "${TOOLCHAIN_PREFIX}/Info.plist" + ${PLISTBUDDY_BIN} -c "Add DisplayName string '${DARWIN_TOOLCHAIN_DISPLAY_NAME}'" "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" + ${PLISTBUDDY_BIN} -c "Add Version string '${DARWIN_TOOLCHAIN_VERSION}'" "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" + ${PLISTBUDDY_BIN} -c "Add CFBundleIdentifier string '${DARWIN_TOOLCHAIN_BUNDLE_IDENTIFIER}'" "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" + ${PLISTBUDDY_BIN} -c "Add ReportProblemURL string 'https://bugs.swift.org/'" "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" + ${PLISTBUDDY_BIN} -c "Add OverrideEnvironment::DYLD_LIBRARY_PATH string '${DARWIN_TOOLCHAIN_INSTALL_LOCATION}/usr/lib'" "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" + chmod a+r "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" if [[ "${DARWIN_TOOLCHAIN_APPLICATION_CERT}" ]] ; then echo "-- Codesign xctoolchain --" - "${SWIFT_SOURCE_DIR}/utils/toolchain-codesign" "${DARWIN_TOOLCHAIN_APPLICATION_CERT}" "${TOOLCHAIN_PREFIX}" + "${SWIFT_SOURCE_DIR}/utils/toolchain-codesign" "${DARWIN_TOOLCHAIN_APPLICATION_CERT}" "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}" fi if [[ "${DARWIN_TOOLCHAIN_INSTALLER_PACKAGE}" ]] ; then echo "-- Create Installer --" - "${SWIFT_SOURCE_DIR}/utils/toolchain-installer" "${TOOLCHAIN_PREFIX}" "${DARWIN_TOOLCHAIN_BUNDLE_IDENTIFIER}" \ + "${SWIFT_SOURCE_DIR}/utils/toolchain-installer" "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}" "${DARWIN_TOOLCHAIN_BUNDLE_IDENTIFIER}" \ "${DARWIN_TOOLCHAIN_INSTALLER_CERT}" "${DARWIN_TOOLCHAIN_INSTALLER_PACKAGE}" "${DARWIN_TOOLCHAIN_INSTALL_LOCATION}" \ "${DARWIN_TOOLCHAIN_VERSION}" fi From 4cd1a6f46e29c5e7fee42ebde8e16d5086f9a5af Mon Sep 17 00:00:00 2001 From: Mishal Shah Date: Fri, 20 Nov 2015 20:23:11 -0800 Subject: [PATCH 4/9] Fix typo in preset --- utils/build-presets.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/build-presets.ini b/utils/build-presets.ini index 8418796e518c3..223d8639eafa0 100644 --- a/utils/build-presets.ini +++ b/utils/build-presets.ini @@ -600,4 +600,4 @@ symbols-package=%(symbols_package)s darwin-toolchain-bundle-identifier=%(toolchain_bundle_identifier)s darwin-toolchain-display-name=%(toolchain_display_name)s darwin-toolchain-name=%(toolchain_xctoolchain_name)s -darwin-toolchain-version=$(toolchain_version)s +darwin-toolchain-version=%(toolchain_version)s From 970a0a29aa75b8adf1878342eb2336cd815edee8 Mon Sep 17 00:00:00 2001 From: Mishal Shah Date: Sun, 22 Nov 2015 01:12:17 -0800 Subject: [PATCH 5/9] Remove the old Info.plist if it already exists before creating new one --- utils/build-script-impl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/utils/build-script-impl b/utils/build-script-impl index ce7fc055e2bf3..24bf7f6f01eac 100755 --- a/utils/build-script-impl +++ b/utils/build-script-impl @@ -2127,7 +2127,10 @@ if [[ "${INSTALLABLE_PACKAGE}" ]] ; then echo "-- Create Info.plist --" PLISTBUDDY_BIN="/usr/libexec/PlistBuddy" TOOLCHAIN_INSTALL_LOCATION="/Library/Developer/Toolchains/${DARWIN_TOOLCHAIN_NAME}.xctoolchain" - + if [[ -f "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" ]] ; then + echo "-- Removing: ${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" + rm "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" + fi ${PLISTBUDDY_BIN} -c "Add DisplayName string '${DARWIN_TOOLCHAIN_DISPLAY_NAME}'" "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" ${PLISTBUDDY_BIN} -c "Add Version string '${DARWIN_TOOLCHAIN_VERSION}'" "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" ${PLISTBUDDY_BIN} -c "Add CFBundleIdentifier string '${DARWIN_TOOLCHAIN_BUNDLE_IDENTIFIER}'" "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" From 4c0c8dfe402a422a4226b92b5a61fb12bc1867d7 Mon Sep 17 00:00:00 2001 From: Mishal Shah Date: Sun, 22 Nov 2015 02:03:07 -0800 Subject: [PATCH 6/9] Add DARWIN prefix to TOOLCHAIN_INSTALL_LOCATION --- utils/build-script-impl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/build-script-impl b/utils/build-script-impl index 24bf7f6f01eac..ca9cc92214154 100755 --- a/utils/build-script-impl +++ b/utils/build-script-impl @@ -2126,7 +2126,7 @@ if [[ "${INSTALLABLE_PACKAGE}" ]] ; then #Create plist for xctoolchain echo "-- Create Info.plist --" PLISTBUDDY_BIN="/usr/libexec/PlistBuddy" - TOOLCHAIN_INSTALL_LOCATION="/Library/Developer/Toolchains/${DARWIN_TOOLCHAIN_NAME}.xctoolchain" + DARWIN_TOOLCHAIN_INSTALL_LOCATION="/Library/Developer/Toolchains/${DARWIN_TOOLCHAIN_NAME}.xctoolchain" if [[ -f "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" ]] ; then echo "-- Removing: ${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" rm "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" From cba563c7d61e8df2f1eeb4340505d0e86887dcf1 Mon Sep 17 00:00:00 2001 From: Mishal Shah Date: Mon, 23 Nov 2015 17:52:17 -0800 Subject: [PATCH 7/9] Cleaning up code: - Add darwin_ prefix to preset variables - Add license header to utils/toolchain-codesign and utils/toolchain-installer - Simplify the logic to remove Info.plist --- utils/build-presets.ini | 8 ++++---- utils/build-script-impl | 25 ++++++++++++++----------- utils/toolchain-codesign | 11 +++++++++++ utils/toolchain-installer | 11 +++++++++++ 4 files changed, 40 insertions(+), 15 deletions(-) diff --git a/utils/build-presets.ini b/utils/build-presets.ini index 223d8639eafa0..0a9d5cd2c68f7 100644 --- a/utils/build-presets.ini +++ b/utils/build-presets.ini @@ -597,7 +597,7 @@ installable-package=%(installable_package)s symbols-package=%(symbols_package)s # Info.plist -darwin-toolchain-bundle-identifier=%(toolchain_bundle_identifier)s -darwin-toolchain-display-name=%(toolchain_display_name)s -darwin-toolchain-name=%(toolchain_xctoolchain_name)s -darwin-toolchain-version=%(toolchain_version)s +darwin-toolchain-bundle-identifier=%(darwin_toolchain_bundle_identifier)s +darwin-toolchain-display-name=%(darwin_toolchain_display_name)s +darwin-toolchain-name=%(darwin_toolchain_xctoolchain_name)s +darwin-toolchain-version=%(darwin_toolchain_version)s diff --git a/utils/build-script-impl b/utils/build-script-impl index ca9cc92214154..a48b78cc30f7f 100755 --- a/utils/build-script-impl +++ b/utils/build-script-impl @@ -2123,20 +2123,23 @@ if [[ "${INSTALLABLE_PACKAGE}" ]] ; then cp "${SWIFT_SOURCE_DIR}/utils/swift-stdlib-tool-substitute" "${INSTALL_DESTDIR}/${INSTALL_PREFIX}/bin/swift-stdlib-tool" fi - #Create plist for xctoolchain + # Create plist for xctoolchain echo "-- Create Info.plist --" PLISTBUDDY_BIN="/usr/libexec/PlistBuddy" + DARWIN_TOOLCHAIN_INSTALL_LOCATION="/Library/Developer/Toolchains/${DARWIN_TOOLCHAIN_NAME}.xctoolchain" - if [[ -f "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" ]] ; then - echo "-- Removing: ${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" - rm "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" - fi - ${PLISTBUDDY_BIN} -c "Add DisplayName string '${DARWIN_TOOLCHAIN_DISPLAY_NAME}'" "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" - ${PLISTBUDDY_BIN} -c "Add Version string '${DARWIN_TOOLCHAIN_VERSION}'" "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" - ${PLISTBUDDY_BIN} -c "Add CFBundleIdentifier string '${DARWIN_TOOLCHAIN_BUNDLE_IDENTIFIER}'" "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" - ${PLISTBUDDY_BIN} -c "Add ReportProblemURL string 'https://bugs.swift.org/'" "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" - ${PLISTBUDDY_BIN} -c "Add OverrideEnvironment::DYLD_LIBRARY_PATH string '${DARWIN_TOOLCHAIN_INSTALL_LOCATION}/usr/lib'" "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" - chmod a+r "${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" + DARWIN_TOOLCHAIN_INFO_PLIST="${INSTALL_DESTDIR}/${TOOLCHAIN_PREFIX}/Info.plist" + DARWIN_TOOLCHAIN_REPORT_URL="https://bugs.swift.org/" + + echo "-- Removing: ${DARWIN_TOOLCHAIN_INFO_PLIST}" + rm -f ${DARWIN_TOOLCHAIN_INFO_PLIST} + + ${PLISTBUDDY_BIN} -c "Add DisplayName string '${DARWIN_TOOLCHAIN_DISPLAY_NAME}'" "${DARWIN_TOOLCHAIN_INFO_PLIST}" + ${PLISTBUDDY_BIN} -c "Add Version string '${DARWIN_TOOLCHAIN_VERSION}'" "${DARWIN_TOOLCHAIN_INFO_PLIST}" + ${PLISTBUDDY_BIN} -c "Add CFBundleIdentifier string '${DARWIN_TOOLCHAIN_BUNDLE_IDENTIFIER}'" "${DARWIN_TOOLCHAIN_INFO_PLIST}" + ${PLISTBUDDY_BIN} -c "Add ReportProblemURL string '${DARWIN_TOOLCHAIN_REPORT_URL}'" "${DARWIN_TOOLCHAIN_INFO_PLIST}" + ${PLISTBUDDY_BIN} -c "Add OverrideEnvironment::DYLD_LIBRARY_PATH string '${DARWIN_TOOLCHAIN_INSTALL_LOCATION}/usr/lib'" "${DARWIN_TOOLCHAIN_INFO_PLIST}" + chmod a+r "${DARWIN_TOOLCHAIN_INFO_PLIST}" if [[ "${DARWIN_TOOLCHAIN_APPLICATION_CERT}" ]] ; then echo "-- Codesign xctoolchain --" diff --git a/utils/toolchain-codesign b/utils/toolchain-codesign index eac37075236d5..6e37f3e871a14 100755 --- a/utils/toolchain-codesign +++ b/utils/toolchain-codesign @@ -1,4 +1,15 @@ #!/bin/bash +#===--- build-script-impl - Implementation details of build-script ---------===# +# +## This source file is part of the Swift.org open source project +## +## Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors +## Licensed under Apache License v2.0 with Runtime Library Exception +## +## See http://swift.org/LICENSE.txt for license information +## See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors +# +#===------------------------------------------------------------------------===# DARWIN_TOOLCHAIN_APPLICATION_CERT=$1 TOOLCHAIN_PREFIX=$2 diff --git a/utils/toolchain-installer b/utils/toolchain-installer index b01d5e1e35b79..7d3ad1f8dbaa8 100755 --- a/utils/toolchain-installer +++ b/utils/toolchain-installer @@ -1,4 +1,15 @@ #!/bin/bash +#===--- build-script-impl - Implementation details of build-script ---------===# +# +## This source file is part of the Swift.org open source project +## +## Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors +## Licensed under Apache License v2.0 with Runtime Library Exception +## +## See http://swift.org/LICENSE.txt for license information +## See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors +# +#===------------------------------------------------------------------------===# TOOLCHAIN_PREFIX=$1 DARWIN_BUNDLE_IDENTIFIER=$2 From cbb3bab383d8d8ff81efaaee757c2af3ac8f7d74 Mon Sep 17 00:00:00 2001 From: Mishal Shah Date: Mon, 23 Nov 2015 18:18:19 -0800 Subject: [PATCH 8/9] Updating license header --- utils/toolchain-codesign | 2 +- utils/toolchain-installer | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/toolchain-codesign b/utils/toolchain-codesign index 6e37f3e871a14..81c7b364d2689 100755 --- a/utils/toolchain-codesign +++ b/utils/toolchain-codesign @@ -1,5 +1,5 @@ #!/bin/bash -#===--- build-script-impl - Implementation details of build-script ---------===# +#===--- toolchain-codesign - Creates code signed xctoolchain ---------------===# # ## This source file is part of the Swift.org open source project ## diff --git a/utils/toolchain-installer b/utils/toolchain-installer index 7d3ad1f8dbaa8..d178b6791355e 100755 --- a/utils/toolchain-installer +++ b/utils/toolchain-installer @@ -1,5 +1,5 @@ #!/bin/bash -#===--- build-script-impl - Implementation details of build-script ---------===# +#===--- toolchain-installer - Creates installer pkg for OS X ---------------===# # ## This source file is part of the Swift.org open source project ## From 891f9e8bddd61cf1878502f7de92fd0226a8f998 Mon Sep 17 00:00:00 2001 From: Mishal Shah Date: Mon, 23 Nov 2015 19:54:54 -0800 Subject: [PATCH 9/9] Fix comment --- utils/build-script-impl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/build-script-impl b/utils/build-script-impl index a48b78cc30f7f..4026b0e2fe243 100755 --- a/utils/build-script-impl +++ b/utils/build-script-impl @@ -2123,7 +2123,7 @@ if [[ "${INSTALLABLE_PACKAGE}" ]] ; then cp "${SWIFT_SOURCE_DIR}/utils/swift-stdlib-tool-substitute" "${INSTALL_DESTDIR}/${INSTALL_PREFIX}/bin/swift-stdlib-tool" fi - # Create plist for xctoolchain + # Create plist for xctoolchain. echo "-- Create Info.plist --" PLISTBUDDY_BIN="/usr/libexec/PlistBuddy"