mirror of
https://github.com/xcp-ng/xenadmin.git
synced 2024-11-23 20:36:33 +01:00
Merge pull request #803 from MihaelaStoica/CP-15405
CP-15405: Signing and packaging changes
This commit is contained in:
commit
6cff4d546a
@ -35,7 +35,7 @@
|
||||
<?define ProductCode="{65AE1345-A520-456D-8A19-2F52D43D3A09}"?>
|
||||
<Product Id="$(var.ProductCode)" Name="@BRANDING_COMPANY_NAME_SHORT@ @BRANDING_BRAND_CONSOLE@" Language="$(env.WixLangId)" Version="$(var.ProductVersion)" Manufacturer="@BRANDING_COMPANY_NAME_LEGAL@" UpgradeCode="$(var.UpgradeCode)">
|
||||
- <Package Description="@BRANDING_COMPANY_NAME_SHORT@ @BRANDING_BRAND_CONSOLE@" Comments="none." InstallerVersion="200" Compressed="yes" />
|
||||
+ <Package Languages="1033,1041,2052,1028" Description="@BRANDING_COMPANY_NAME_SHORT@ @BRANDING_BRAND_CONSOLE@" Comments="none." InstallerVersion="200" Compressed="yes" />
|
||||
+ <Package Description="@BRANDING_COMPANY_NAME_SHORT@ @BRANDING_BRAND_CONSOLE@" Comments="none." InstallerVersion="200" Compressed="yes" />
|
||||
<Media Id="1" Cabinet="XenCenter.cab" EmbedCab="yes" />
|
||||
<Directory Id="TARGETDIR" Name="SourceDir">
|
||||
<Directory Id="ProgramFilesFolder">
|
||||
|
51
mk/archive-unsigned.sh
Normal file
51
mk/archive-unsigned.sh
Normal file
@ -0,0 +1,51 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright (c) Citrix Systems Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms,
|
||||
# with or without modification, are permitted provided
|
||||
# that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above
|
||||
# copyright notice, this list of conditions and the
|
||||
# following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above
|
||||
# copyright notice, this list of conditions and the
|
||||
# following disclaimer in the documentation and/or other
|
||||
# materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
|
||||
set -eu
|
||||
|
||||
ZIP="zip -q"
|
||||
|
||||
#copy all dotNetInstaller files
|
||||
DOTNETINSTALLER_FILEPATH="$(which dotNetInstaller.exe)"
|
||||
DOTNETINSTALLER_DIRPATH=${DOTNETINSTALLER_FILEPATH%/*}
|
||||
cp -R "${DOTNETINSTALLER_DIRPATH}"/* ${DOTNETINST}
|
||||
|
||||
#archive unsigned artifacts
|
||||
mkdir_clean ${OUTPUT_DIR}/XenAdminUnsigned
|
||||
cp -R ${REPO}/* ${OUTPUT_DIR}/XenAdminUnsigned
|
||||
|
||||
cd ${OUTPUT_DIR} && ${ZIP} -r XenAdminUnsigned.zip XenAdminUnsigned
|
||||
rm -rf ${OUTPUT_DIR}/XenAdminUnsigned
|
||||
|
||||
echo "Unsigned artifacts archived"
|
||||
|
||||
set +u
|
149
mk/build-installers.sh
Normal file
149
mk/build-installers.sh
Normal file
@ -0,0 +1,149 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright (c) Citrix Systems Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms,
|
||||
# with or without modification, are permitted provided
|
||||
# that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above
|
||||
# copyright notice, this list of conditions and the
|
||||
# following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above
|
||||
# copyright notice, this list of conditions and the
|
||||
# following disclaimer in the documentation and/or other
|
||||
# materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
|
||||
set -eu
|
||||
|
||||
#sign applications
|
||||
for file in XenCenterMain.exe CommandLib.dll MSTSCLib.dll XenCenterLib.dll XenCenterVNC.dll XenModel.dll XenOvf.dll XenOvfTransport.dll
|
||||
do
|
||||
cd ${REPO}/XenAdmin/bin/Release && ${REPO}/sign.bat ${file}
|
||||
done
|
||||
|
||||
cd ${REPO}/XenAdmin/bin/Release && ${REPO}/sign.bat ${BRANDING_BRAND_CONSOLE}.exe
|
||||
|
||||
cd ${REPO}/xe/bin/Release && ${REPO}/sign.bat xe.exe
|
||||
cd ${REPO}/xva_verify/bin/Release && ${REPO}/sign.bat xva_verify.exe
|
||||
|
||||
for file in Microsoft.ReportViewer.Common.dll Microsoft.ReportViewer.ProcessingObjectModel.dll Microsoft.ReportViewer.WinForms.dll
|
||||
do
|
||||
cd ${REPO}/XenAdmin/ReportViewer && ${REPO}/sign.bat ${file}
|
||||
done
|
||||
|
||||
for file in VNCControl.dll XenCenterLib.dll XenCenterVNC.dll XenServer.dll
|
||||
do
|
||||
cd ${REPO}/VNCControl/bin/Release && ${REPO}/sign.bat ${file}
|
||||
done
|
||||
|
||||
cd ${REPO}/XenAdmin/bin/Release && ${REPO}/sign.bat CookComputing.XmlRpcV2.dll "XML-RPC.NET by Charles Cook, signed by ${BRANDING_COMPANY_NAME_SHORT}"
|
||||
cd ${REPO}/XenAdmin/bin/Release && ${REPO}/sign.bat log4net.dll "Log4Net by The Apache Software Foundation, signed by ${BRANDING_COMPANY_NAME_SHORT}"
|
||||
cd ${REPO}/XenAdmin/bin/Release && ${REPO}/sign.bat ICSharpCode.SharpZipLib.dll "SharpZipLib by IC#Code, signed by ${BRANDING_COMPANY_NAME_SHORT}"
|
||||
cd ${REPO}/XenAdmin/bin/Release && ${REPO}/sign.bat DiscUtils.dll "DiscUtils by Kenneth Bell, signed by ${BRANDING_COMPANY_NAME_SHORT}"
|
||||
cd ${REPO}/XenAdmin/bin/Release && ${REPO}/sign.bat Ionic.Zip.dll "OSS, signed by ${BRANDING_COMPANY_NAME_SHORT}"
|
||||
cd ${REPO}/XenAdmin/bin/Release && ${REPO}/sign.bat putty.exe "PuTTY by Simon Tatham, signed by ${BRANDING_COMPANY_NAME_SHORT}"
|
||||
|
||||
#create installers
|
||||
compile_installer()
|
||||
{
|
||||
if [ "$2" = "ja-jp" ]
|
||||
then
|
||||
langid=1041
|
||||
name=$1.$2
|
||||
elif [ "$2" = "zh-cn" ]
|
||||
then
|
||||
langid=2052
|
||||
name=$1.$2
|
||||
else
|
||||
langid=1033
|
||||
name=$1
|
||||
fi
|
||||
|
||||
cd ${WIX}
|
||||
mkdir -p obj${name}
|
||||
Branding=${BRANDING_BRAND_CONSOLE} WixLangId=${langid} ${CANDLE} -ext WiXNetFxExtension -out obj${name}/ $1.wxs
|
||||
|
||||
mkdir -p out${name}
|
||||
|
||||
if [ "${name}" = "VNCControl" ]
|
||||
then
|
||||
${LIGHT} -nologo obj${name}/$1.wixobj lib/WixUI_InstallDir.wixlib -loc wixlib/wixui_$2.wxl -ext WiXNetFxExtension -out out${name}/${name}.msi
|
||||
else
|
||||
${LIGHT} -nologo obj${name}/$1.wixobj lib/WixUI_InstallDir.wixlib -loc wixlib/wixui_$2.wxl -loc $2.wxl -ext WiXNetFxExtension -out out${name}/${name}.msi
|
||||
fi
|
||||
}
|
||||
|
||||
sign_msi()
|
||||
{
|
||||
cd ${WIX}/out$1 && chmod a+rw $1.msi && ${REPO}/sign.bat $1.msi
|
||||
}
|
||||
|
||||
#create just english msi
|
||||
if [ "XenCenter" != "${BRANDING_BRAND_CONSOLE}" ]
|
||||
then
|
||||
mv XenCenter.wxs ${BRANDING_BRAND_CONSOLE}.wxs
|
||||
mv XenCenter.l10n.wxs ${BRANDING_BRAND_CONSOLE}.l10n.wxs
|
||||
fi
|
||||
|
||||
compile_installer "${BRANDING_BRAND_CONSOLE}" "en-us" && sign_msi "${BRANDING_BRAND_CONSOLE}"
|
||||
|
||||
#then create l10n msi containing all resources
|
||||
compile_installer "${BRANDING_BRAND_CONSOLE}.l10n" "en-us" && sign_msi "${BRANDING_BRAND_CONSOLE}.l10n"
|
||||
compile_installer "${BRANDING_BRAND_CONSOLE}.l10n" "ja-jp" && sign_msi "${BRANDING_BRAND_CONSOLE}.l10n.ja-jp"
|
||||
compile_installer "${BRANDING_BRAND_CONSOLE}.l10n" "zh-cn" && sign_msi "${BRANDING_BRAND_CONSOLE}.l10n.zh-cn"
|
||||
|
||||
cp ${WIX}/out${BRANDING_BRAND_CONSOLE}.l10n/${BRANDING_BRAND_CONSOLE}.l10n.msi \
|
||||
${WIX}/out${BRANDING_BRAND_CONSOLE}.l10n.ja-jp/${BRANDING_BRAND_CONSOLE}.l10n.ja-jp.msi \
|
||||
${WIX}/out${BRANDING_BRAND_CONSOLE}.l10n.zh-cn/${BRANDING_BRAND_CONSOLE}.l10n.zh-cn.msi \
|
||||
${WIX}
|
||||
|
||||
cd ${WIX} && cp ${BRANDING_BRAND_CONSOLE}.l10n.msi ${BRANDING_BRAND_CONSOLE}.l10n.zh-tw.msi
|
||||
cd ${WIX} && cscript /nologo CodePageChange.vbs ZH-TW ${BRANDING_BRAND_CONSOLE}.l10n.zh-tw.msi
|
||||
|
||||
#create localised mst files and then embed them into l10n msi
|
||||
cd ${WIX} && wscript msidiff.js ${BRANDING_BRAND_CONSOLE}.l10n.msi ${BRANDING_BRAND_CONSOLE}.l10n.ja-jp.msi ja-jp.mst
|
||||
cd ${WIX} && wscript msidiff.js ${BRANDING_BRAND_CONSOLE}.l10n.msi ${BRANDING_BRAND_CONSOLE}.l10n.zh-cn.msi zh-cn.mst
|
||||
cd ${WIX} && wscript msidiff.js ${BRANDING_BRAND_CONSOLE}.l10n.msi ${BRANDING_BRAND_CONSOLE}.l10n.zh-tw.msi zh-tw.mst
|
||||
cd ${WIX} && wscript WiSubStg.vbs ${BRANDING_BRAND_CONSOLE}.l10n.msi ja-jp.mst 1041
|
||||
cd ${WIX} && wscript WiSubStg.vbs ${BRANDING_BRAND_CONSOLE}.l10n.msi zh-cn.mst 2052
|
||||
cd ${WIX} && wscript WiSubStg.vbs ${BRANDING_BRAND_CONSOLE}.l10n.msi zh-tw.mst 1028
|
||||
#sign again the combined msi because it seems the embedding breaks the signature
|
||||
cd ${WIX} && chmod a+rw ${BRANDING_BRAND_CONSOLE}.l10n.msi && ${REPO}/sign.bat ${BRANDING_BRAND_CONSOLE}.l10n.msi
|
||||
|
||||
#create bundle exe installers - msi installers embedded
|
||||
cp ${WIX}/out${BRANDING_BRAND_CONSOLE}/${BRANDING_BRAND_CONSOLE}.msi ${DOTNETINST}
|
||||
cp ${WIX}/${BRANDING_BRAND_CONSOLE}.l10n.msi ${DOTNETINST}
|
||||
|
||||
cd ${DOTNETINST} && ./InstallerLinker.exe "/Output:${BRANDING_BRAND_CONSOLE}Setup.exe" "/Template:dotNetInstaller.exe" "/Configuration:XenCenterSetupBootstrapper.xml" "/e+" "/v+"
|
||||
cd ${DOTNETINST} && ./InstallerLinker.exe "/Output:${BRANDING_BRAND_CONSOLE}Setup.l10n.exe" "/Template:dotNetInstaller.exe" "/Configuration:XenCenterSetupBootstrapper_l10n.xml" "/e+" "/v+"
|
||||
|
||||
sign_files()
|
||||
{
|
||||
for file in $1
|
||||
do
|
||||
chmod a+rw ${file} && ${REPO}/sign.bat ${file}
|
||||
done
|
||||
}
|
||||
sign_files "${BRANDING_BRAND_CONSOLE}Setup.exe ${BRANDING_BRAND_CONSOLE}Setup.l10n.exe"
|
||||
|
||||
#create VNCCntrol installer
|
||||
compile_installer "VNCControl" "en-us" && sign_msi "VNCControl"
|
||||
|
||||
set +u
|
77
mk/package-and-sign.sh
Normal file
77
mk/package-and-sign.sh
Normal file
@ -0,0 +1,77 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright (c) Citrix Systems Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms,
|
||||
# with or without modification, are permitted provided
|
||||
# that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above
|
||||
# copyright notice, this list of conditions and the
|
||||
# following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above
|
||||
# copyright notice, this list of conditions and the
|
||||
# following disclaimer in the documentation and/or other
|
||||
# materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
|
||||
set -eu
|
||||
|
||||
ROOT="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )/../.." && pwd )"
|
||||
XENADMIN_DIR="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )/.." && pwd )"
|
||||
|
||||
REPO=${XENADMIN_DIR}
|
||||
OUTPUT_DIR=${ROOT}/output
|
||||
DOTNETINST=${REPO}/dotNetInstaller
|
||||
|
||||
source ${REPO}/Branding/branding.sh
|
||||
|
||||
WIX=${REPO}/WixInstaller
|
||||
WIX_BIN=${WIX}/bin
|
||||
|
||||
CANDLE="candle.exe -nologo"
|
||||
LIT="lit.exe -nologo"
|
||||
LIGHT="light.exe -nologo"
|
||||
|
||||
mkdir_clean()
|
||||
{
|
||||
rm -rf $1 && mkdir -p $1
|
||||
}
|
||||
|
||||
#overwrite sign file
|
||||
SIGN_FILE=${ROOT}/sign.bat
|
||||
if [ -f ${SIGN_FILE} ]; then
|
||||
cp ${SIGN_FILE} ${REPO}
|
||||
fi
|
||||
|
||||
#build and sign the installers
|
||||
. ${REPO}/mk/build-installers.sh
|
||||
|
||||
#collect output and extra files to the OUTPUT_DIR
|
||||
EN_CD_DIR=${OUTPUT_DIR}/CD_FILES.main/client_install
|
||||
mkdir_clean ${EN_CD_DIR}
|
||||
cp ${DOTNETINST}/${BRANDING_BRAND_CONSOLE}Setup.exe ${EN_CD_DIR}
|
||||
cp ${REPO}/Branding/Images/AppIcon.ico ${EN_CD_DIR}/${BRANDING_BRAND_CONSOLE}.ico
|
||||
L10N_CD_DIR=${OUTPUT_DIR}/client_install
|
||||
mkdir_clean ${L10N_CD_DIR}
|
||||
cp ${DOTNETINST}/${BRANDING_BRAND_CONSOLE}Setup.l10n.exe ${L10N_CD_DIR}
|
||||
|
||||
echo "INFO: Build phase succeeded at "
|
||||
date
|
||||
|
||||
set +u
|
@ -70,13 +70,13 @@ MICROSOFT_DOTNET_FRAMEWORK_INSTALLER_DIR=${REPO}/dotNetFx452_web_setup
|
||||
PUTTY_DIR=${REPO}/putty
|
||||
|
||||
wget ${WGET_OPT} -O "${SCRATCH_DIR}/dotnet-packages-manifest" "${WEB_DOTNET}/manifest"
|
||||
mkdir_clean ${XMLRPC_DIR} && wget ${WGET_OPT} -P ${XMLRPC_DIR} ${WEB_DOTNET}/CookComputing.XmlRpcV2.dll
|
||||
mkdir_clean ${LOG4NET_DIR} && wget ${WGET_OPT} -P ${LOG4NET_DIR} ${WEB_DOTNET}/log4net.dll
|
||||
mkdir_clean ${SHARPZIPLIB_DIR} && wget ${WGET_OPT} -P ${SHARPZIPLIB_DIR} ${WEB_DOTNET}/ICSharpCode.SharpZipLib.dll
|
||||
mkdir_clean ${DOTNETZIP_DIR} && wget ${WGET_OPT} -P ${DOTNETZIP_DIR} ${WEB_DOTNET}/Ionic.Zip.dll
|
||||
mkdir_clean ${DISCUTILS_DIR} && wget ${WGET_OPT} -P ${DISCUTILS_DIR} ${WEB_DOTNET}/DiscUtils.dll
|
||||
mkdir_clean ${XMLRPC_DIR} && wget ${WGET_OPT} -P ${XMLRPC_DIR} ${WEB_DOTNET}/UNSIGNED/CookComputing.XmlRpcV2.dll
|
||||
mkdir_clean ${LOG4NET_DIR} && wget ${WGET_OPT} -P ${LOG4NET_DIR} ${WEB_DOTNET}/UNSIGNED/log4net.dll
|
||||
mkdir_clean ${SHARPZIPLIB_DIR} && wget ${WGET_OPT} -P ${SHARPZIPLIB_DIR} ${WEB_DOTNET}/UNSIGNED/ICSharpCode.SharpZipLib.dll
|
||||
mkdir_clean ${DOTNETZIP_DIR} && wget ${WGET_OPT} -P ${DOTNETZIP_DIR} ${WEB_DOTNET}/UNSIGNED/Ionic.Zip.dll
|
||||
mkdir_clean ${DISCUTILS_DIR} && wget ${WGET_OPT} -P ${DISCUTILS_DIR} ${WEB_DOTNET}/UNSIGNED/DiscUtils.dll
|
||||
mkdir_clean ${MICROSOFT_DOTNET_FRAMEWORK_INSTALLER_DIR} && wget ${WGET_OPT} -P "${MICROSOFT_DOTNET_FRAMEWORK_INSTALLER_DIR}" "${WEB_DOTNET}/NDP452-KB2901954-Web.exe"
|
||||
mkdir_clean ${PUTTY_DIR} && wget ${WGET_OPT} -P "${PUTTY_DIR}" "${WEB_DOTNET}/putty.exe"
|
||||
mkdir_clean ${PUTTY_DIR} && wget ${WGET_OPT} -P "${PUTTY_DIR}" "${WEB_DOTNET}/UNSIGNED/putty.exe"
|
||||
|
||||
wget ${WGET_OPT} -P "${REPO}" "${WEB_DOTNET}/sign.bat" && chmod a+x ${REPO}/sign.bat
|
||||
|
||||
@ -109,29 +109,6 @@ $MSBUILD VNCControl/VNCControl.sln
|
||||
SOLUTIONDIR=$(cygpath.exe -w "${REPO}/XenAdmin")
|
||||
$MSBUILD /p:SolutionDir="$SOLUTIONDIR" splash/splash.vcxproj
|
||||
|
||||
#sign
|
||||
for file in XenCenterMain.exe CommandLib.dll MSTSCLib.dll XenCenterLib.dll XenCenterVNC.dll XenModel.dll XenOvf.dll XenOvfTransport.dll
|
||||
do
|
||||
cd ${REPO}/XenAdmin/bin/Release && ${REPO}/sign.bat ${file}
|
||||
done
|
||||
|
||||
cd ${REPO}/XenAdmin/bin/Release && ${REPO}/sign.bat ${BRANDING_BRAND_CONSOLE}.exe
|
||||
|
||||
cd ${REPO}/xe/bin/Release && ${REPO}/sign.bat xe.exe
|
||||
cd ${REPO}/xva_verify/bin/Release && ${REPO}/sign.bat xva_verify.exe
|
||||
|
||||
for file in Microsoft.ReportViewer.Common.dll Microsoft.ReportViewer.ProcessingObjectModel.dll Microsoft.ReportViewer.WinForms.dll
|
||||
do
|
||||
cd ${REPO}/XenAdmin/ReportViewer && ${REPO}/sign.bat ${file}
|
||||
done
|
||||
|
||||
for file in VNCControl.dll XenCenterLib.dll XenCenterVNC.dll XenServer.dll
|
||||
do
|
||||
cd ${REPO}/VNCControl/bin/Release && ${REPO}/sign.bat ${file}
|
||||
done
|
||||
|
||||
cd ${REPO}/XenServerHealthCheck/bin/Release && ${REPO}/sign.bat XenServerHealthCheck.exe
|
||||
|
||||
#prepare wix
|
||||
|
||||
WIX=${REPO}/WixInstaller
|
||||
@ -164,40 +141,10 @@ mkdir -p lib
|
||||
|
||||
${LIT} -out lib/WixUI_InstallDir.wixlib obj/WixUI_InstallDir.wixobj obj/WixUI_FeatureTree.wixobj obj/BrowseDlg.wixobj obj/CancelDlg.wixobj obj/Common.wixobj obj/CustomizeDlg.wixobj obj/CustomizeStdDlg.wixobj obj/DiskCostDlg.wixobj obj/ErrorDlg.wixobj obj/ErrorProgressText.wixobj obj/ExitDialog.wixobj obj/FatalError.wixobj obj/FilesInUse.wixobj obj/InstallDirDlg.wixobj obj/InvalidDirDlg.wixobj obj/LicenseAgreementDlg.wixobj obj/MaintenanceTypeDlg.wixobj obj/MaintenanceWelcomeDlg.wixobj obj/MsiRMFilesInUse.wixobj obj/OutOfDiskDlg.wixobj obj/OutOfRbDiskDlg.wixobj obj/PrepareDlg.wixobj obj/ProgressDlg.wixobj obj/ResumeDlg.wixobj obj/SetupTypeDlg.wixobj obj/UserExit.wixobj obj/VerifyReadyDlg.wixobj obj/WaitForCostingDlg.wixobj obj/WelcomeDlg.wixobj
|
||||
|
||||
compile_installer()
|
||||
{
|
||||
if [ "$2" = "ja-jp" ]
|
||||
then
|
||||
langid=1041
|
||||
name=$1.$2
|
||||
elif [ "$2" = "zh-cn" ]
|
||||
then
|
||||
langid=2052
|
||||
name=$1.$2
|
||||
else
|
||||
langid=1033
|
||||
name=$1
|
||||
fi
|
||||
|
||||
cd ${WIX}
|
||||
mkdir -p obj${name}
|
||||
Branding=${BRANDING_BRAND_CONSOLE} WixLangId=${langid} ${CANDLE} -ext WiXNetFxExtension -out obj${name}/ $1.wxs
|
||||
|
||||
mkdir -p out${name}
|
||||
|
||||
if [ "${name}" = "VNCControl" ]
|
||||
then
|
||||
${LIGHT} -nologo obj${name}/$1.wixobj lib/WixUI_InstallDir.wixlib -loc wixlib/wixui_$2.wxl -ext WiXNetFxExtension -out out${name}/${name}.msi
|
||||
else
|
||||
${LIGHT} -nologo obj${name}/$1.wixobj lib/WixUI_InstallDir.wixlib -loc wixlib/wixui_$2.wxl -loc $2.wxl -ext WiXNetFxExtension -out out${name}/${name}.msi
|
||||
fi
|
||||
}
|
||||
|
||||
sign_msi()
|
||||
{
|
||||
cd ${WIX}/out$1 && chmod a+rw $1.msi && ${REPO}/sign.bat $1.msi
|
||||
}
|
||||
#create mui wxs file
|
||||
cd ${WIX} && patch --binary --output XenCenter.l10n.wxs XenCenter.wxs XenCenter.l10n.diff
|
||||
|
||||
#version installers
|
||||
version_installer()
|
||||
{
|
||||
sed -e "s/${WIX_INSTALLER_DEFAULT_GUID}/${PRODUCT_GUID}/g" \
|
||||
@ -205,70 +152,32 @@ version_installer()
|
||||
$1 > $1.tmp
|
||||
mv -f $1.tmp $1
|
||||
}
|
||||
|
||||
#create mui wxs file
|
||||
cd ${WIX} && patch --binary --output XenCenter.l10n.wxs XenCenter.wxs XenCenter.l10n.diff
|
||||
|
||||
version_vnccontrol_installer()
|
||||
{
|
||||
sed -e "s/${WIX_INSTALLER_DEFAULT_GUID_VNCCONTROL}/${PRODUCT_GUID_VNCCONTROL}/g" \
|
||||
-e "s/${WIX_INSTALLER_DEFAULT_VERSION}/${BRANDING_XC_PRODUCT_VERSION}/g" \
|
||||
$1 > $1.tmp
|
||||
mv -f $1.tmp $1
|
||||
}
|
||||
version_installer ${WIX}/XenCenter.wxs
|
||||
version_installer ${WIX}/XenCenter.l10n.wxs
|
||||
version_vnccontrol_installer ${WIX}/vnccontrol.wxs
|
||||
|
||||
#create just english msi
|
||||
if [ "XenCenter" != "${BRANDING_BRAND_CONSOLE}" ]
|
||||
then
|
||||
mv XenCenter.wxs ${BRANDING_BRAND_CONSOLE}.wxs
|
||||
mv XenCenter.l10n.wxs ${BRANDING_BRAND_CONSOLE}.l10n.wxs
|
||||
fi
|
||||
|
||||
compile_installer "${BRANDING_BRAND_CONSOLE}" "en-us" && sign_msi "${BRANDING_BRAND_CONSOLE}"
|
||||
|
||||
#then create l10n msi containing all resources
|
||||
compile_installer "${BRANDING_BRAND_CONSOLE}.l10n" "en-us" && sign_msi "${BRANDING_BRAND_CONSOLE}.l10n"
|
||||
compile_installer "${BRANDING_BRAND_CONSOLE}.l10n" "ja-jp" && sign_msi "${BRANDING_BRAND_CONSOLE}.l10n.ja-jp"
|
||||
compile_installer "${BRANDING_BRAND_CONSOLE}.l10n" "zh-cn" && sign_msi "${BRANDING_BRAND_CONSOLE}.l10n.zh-cn"
|
||||
|
||||
cp ${WIX}/out${BRANDING_BRAND_CONSOLE}.l10n/${BRANDING_BRAND_CONSOLE}.l10n.msi \
|
||||
${WIX}/out${BRANDING_BRAND_CONSOLE}.l10n.ja-jp/${BRANDING_BRAND_CONSOLE}.l10n.ja-jp.msi \
|
||||
${WIX}/out${BRANDING_BRAND_CONSOLE}.l10n.zh-cn/${BRANDING_BRAND_CONSOLE}.l10n.zh-cn.msi \
|
||||
${WIX}
|
||||
|
||||
cd ${WIX} && cp ${BRANDING_BRAND_CONSOLE}.l10n.msi ${BRANDING_BRAND_CONSOLE}.l10n.zh-tw.msi
|
||||
cd ${WIX} && cscript /nologo CodePageChange.vbs ZH-TW ${BRANDING_BRAND_CONSOLE}.l10n.zh-tw.msi
|
||||
|
||||
#create localised mst files and then embed them into l10n msi
|
||||
cd ${WIX} && wscript msidiff.js ${BRANDING_BRAND_CONSOLE}.l10n.msi ${BRANDING_BRAND_CONSOLE}.l10n.ja-jp.msi ja-jp.mst
|
||||
cd ${WIX} && wscript msidiff.js ${BRANDING_BRAND_CONSOLE}.l10n.msi ${BRANDING_BRAND_CONSOLE}.l10n.zh-cn.msi zh-cn.mst
|
||||
cd ${WIX} && wscript msidiff.js ${BRANDING_BRAND_CONSOLE}.l10n.msi ${BRANDING_BRAND_CONSOLE}.l10n.zh-tw.msi zh-tw.mst
|
||||
cd ${WIX} && wscript WiSubStg.vbs ${BRANDING_BRAND_CONSOLE}.l10n.msi ja-jp.mst 1041
|
||||
cd ${WIX} && wscript WiSubStg.vbs ${BRANDING_BRAND_CONSOLE}.l10n.msi zh-cn.mst 2052
|
||||
cd ${WIX} && wscript WiSubStg.vbs ${BRANDING_BRAND_CONSOLE}.l10n.msi zh-tw.mst 1028
|
||||
#sign again the combined msi because it seems the embedding breaks the signature
|
||||
cd ${WIX} && chmod a+rw ${BRANDING_BRAND_CONSOLE}.l10n.msi && ${REPO}/sign.bat ${BRANDING_BRAND_CONSOLE}.l10n.msi
|
||||
|
||||
#create bundle exe installers - msi installers embedded
|
||||
#copy dotNetInstaller files
|
||||
DOTNETINST=${REPO}/dotNetInstaller
|
||||
cp ${MICROSOFT_DOTNET_FRAMEWORK_INSTALLER_DIR}/NDP452-KB2901954-Web.exe ${DOTNETINST}
|
||||
cp ${WIX}/out${BRANDING_BRAND_CONSOLE}/${BRANDING_BRAND_CONSOLE}.msi ${DOTNETINST}
|
||||
cp ${WIX}/${BRANDING_BRAND_CONSOLE}.l10n.msi ${DOTNETINST}
|
||||
|
||||
cp "$(which dotNetInstaller.exe)" ${DOTNETINST}
|
||||
cd ${DOTNETINST} && InstallerLinker.exe "/Output:${BRANDING_BRAND_CONSOLE}Setup.exe" "/Template:dotNetInstaller.exe" "/Configuration:XenCenterSetupBootstrapper.xml" "/e+" "/v+"
|
||||
cd ${DOTNETINST} && InstallerLinker.exe "/Output:${BRANDING_BRAND_CONSOLE}Setup.l10n.exe" "/Template:dotNetInstaller.exe" "/Configuration:XenCenterSetupBootstrapper_l10n.xml" "/e+" "/v+"
|
||||
cp "$(which InstallerLinker.exe)" ${DOTNETINST}
|
||||
|
||||
sign_files()
|
||||
{
|
||||
for file in $1
|
||||
do
|
||||
chmod a+rw ${file} && ${REPO}/sign.bat ${file}
|
||||
done
|
||||
}
|
||||
sign_files "${BRANDING_BRAND_CONSOLE}Setup.exe ${BRANDING_BRAND_CONSOLE}Setup.l10n.exe"
|
||||
# Collect the unsigned files, if the COLLECT_UNSIGNED_FILES is defined
|
||||
# (the variable can be set from the jenkins ui by putting "export COLLECT_UNSIGNED_FILES=1" above the call for build script)
|
||||
if [ -n "${COLLECT_UNSIGNED_FILES+x}" ]; then
|
||||
echo "INFO: Collect unsigned files..."
|
||||
${REPO}/mk/archive-unsigned.sh
|
||||
fi
|
||||
|
||||
#create VNCCntrol installer
|
||||
sed -e "s/${WIX_INSTALLER_DEFAULT_GUID_VNCCONTROL}/${PRODUCT_GUID_VNCCONTROL}/g" \
|
||||
-e "s/${WIX_INSTALLER_DEFAULT_VERSION}/${BRANDING_XC_PRODUCT_VERSION}/g" \
|
||||
${WIX}/vnccontrol.wxs > ${WIX}/vnccontrol.wxs.tmp
|
||||
mv -f ${WIX}/vnccontrol.wxs.tmp ${WIX}/vnccontrol.wxs
|
||||
compile_installer "VNCControl" "en-us" && sign_msi "VNCControl"
|
||||
#build and sign the installers
|
||||
. ${REPO}/mk/build-installers.sh
|
||||
|
||||
#build the tests
|
||||
echo "INFO: Build the tests..."
|
||||
|
Loading…
Reference in New Issue
Block a user