aa494c9e28ecc24c7d471d099aa11c5682344f2e
[mirror/qt/qt5.git] / coin / provisioning / qtci-osx-10.11-x86_64 / 035-openssl.sh
1 #!/bin/bash
2
3 #############################################################################
4 ##
5 ## Copyright (C) 2017 The Qt Company Ltd.
6 ## Contact: http://www.qt.io/licensing/
7 ##
8 ## This file is part of the provisioning scripts of the Qt Toolkit.
9 ##
10 ## $QT_BEGIN_LICENSE:LGPL21$
11 ## Commercial License Usage
12 ## Licensees holding valid commercial Qt licenses may use this file in
13 ## accordance with the commercial license agreement provided with the
14 ## Software or, alternatively, in accordance with the terms contained in
15 ## a written agreement between you and The Qt Company. For licensing terms
16 ## and conditions see http://www.qt.io/terms-conditions. For further
17 ## information use the contact form at http://www.qt.io/contact-us.
18 ##
19 ## GNU Lesser General Public License Usage
20 ## Alternatively, this file may be used under the terms of the GNU Lesser
21 ## General Public License version 2.1 or version 3 as published by the Free
22 ## Software Foundation and appearing in the file LICENSE.LGPLv21 and
23 ## LICENSE.LGPLv3 included in the packaging of this file. Please review the
24 ## following information to ensure the GNU Lesser General Public License
25 ## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
26 ## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
27 ##
28 ## As a special exception, The Qt Company gives you certain additional
29 ## rights. These rights are described in The Qt Company LGPL Exception
30 ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
31 ##
32 ## $QT_END_LICENSE$
33 ##
34 #############################################################################
35
36 # This script install OpenSSL
37
38 # shellcheck source=../common/try_catch.sh
39 source "${BASH_SOURCE%/*}/../common/try_catch.sh"
40 # shellcheck source=../common/InstallFromCompressedFileFromURL.sh
41 source "${BASH_SOURCE%/*}/../common/InstallFromCompressedFileFromURL.sh"
42
43 opensslVersion="1.0.2k"
44 opensslFile="openssl-$opensslVersion.tar.gz"
45 opensslDlUrl="http://ci-files01-hki.intra.qt.io/input/openssl/$opensslFile"
46 opensslAltDlUrl="https://www.openssl.org/source/$opensslFile"
47 opensslSha1="5f26a624479c51847ebd2f22bb9f84b3b44dcb44"
48
49 # Below target location has been hard coded into Coin.
50 # QTQAINFRA-1195
51 opensslTargetLocation="/usr/local/opt/openssl"
52
53 ExceptionCD=100
54 ExceptionConfig=101
55 ExceptionMake=102
56 ExceptionInstall=103
57 ExceptionLN=104
58 ExceptionCertificate=105
59 ExceptionCleanup=106
60
61 try
62 (
63     InstallFromCompressedFileFromURL "$opensslDlUrl" "$opensslAltDlUrl" "$opensslSha1" "/tmp/openssl-$opensslVersion" "openssl-$opensslVersion"
64     cd "/tmp/openssl-$opensslVersion" || throw $ExceptionCD
65     sudo ./config --prefix=/usr/local/openssl-$opensslVersion || throw $ExceptionConfig
66     echo "Running 'make' for OpenSSL"
67     sudo make --silent > /tmp/openssl_make.log 2>&1 || throw $ExceptionMake
68     echo "Running 'make install' for OpenSSL"
69     sudo make --silent install > /tmp/openssl_make_install.log 2>&1 || throw $ExceptionInstall
70
71     path=$(echo "$opensslTargetLocation" | sed -E 's/(.*)\/.*$/\1/')
72     sudo mkdir -p "$path"
73     sudo ln -s /usr/local/openssl-$opensslVersion $opensslTargetLocation || throw $ExceptionLN
74
75     echo "export PATH=\"$opensslTargetLocation/bin:\$PATH\"" >> ~/.bashrc
76     echo "export MANPATH=\"$opensslTargetLocation/share/man:\$MANPATH\"" >> ~/.bashrc
77
78     security find-certificate -a -p /Library/Keychains/System.keychain | sudo tee -a $opensslTargetLocation/ssl/cert.pem || throw $ExceptionCertificate
79     security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain | sudo tee -a $opensslTargetLocation/ssl/cert.pem || throw $ExceptionCertificate
80
81     sudo rm -rf /tmp/openssl-$opensslVersion || throw $ExceptionCleanup
82
83     echo "OpenSSL = $opensslVersion" >> ~/versions.txt
84 )
85 catch || {
86     case $ex_code in
87         $ExceptionCD)
88             echo "Failed to change directory to /tmp/openssl-$opensslVersion."
89             exit 1;
90         ;;
91         $ExceptionConfig)
92             echo "Failed to run config for OpenSSL."
93             exit 1;
94         ;;
95         $ExceptionMake)
96             echo "Failed to run 'make' for OpenSSL."
97             exit 1;
98         ;;
99         $ExceptionInstall)
100             echo "Failed to run 'make install' for OpenSSL."
101             exit 1;
102         ;;
103         $ExceptionLN)
104             echo "Failed to create a soft link for OpenSSL."
105             exit 1;
106         ;;
107         $ExceptionCertificate)
108             echo "Failed to install Certificate for OpenSSL."
109             exit 1;
110         ;;
111         $ExceptionCleanup)
112             echo "Failed to clean up /tmp/openssl-$opensslVersion."
113             exit 1;
114         ;;
115     esac
116 }