Skip to content

Commit

Permalink
Deprecate i386 builds for macOS (#145)
Browse files Browse the repository at this point in the history
* Update VMImage to macOS 15

* Update version of xcode

* Remove Install MacOS headers Step

* Remove 32-bit builds for MacOS

Also stop building OpenSSL universal binaries, since we don't need them

Co-authored-by: bsiegel <96068+bsiegel@users.noreply.github.com>
  • Loading branch information
chidozieononiwu and bsiegel committed Mar 2, 2020
1 parent c98f471 commit 88dec46
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 71 deletions.
19 changes: 5 additions & 14 deletions .azure-pipelines/client.openssl.yml
Expand Up @@ -2,27 +2,18 @@ trigger: none
pr: none

variables:
OpenSSLVersion: '1.0.2t'
OpenSSLVersion: '1.0.2u'
MacOSXDeploymentTarget: '10.9'

jobs:
- job: 'OpenSSL'

pool:
vmImage: 'macOS-10.14'

strategy:
matrix:
MacOS 10.6:
MacOSXDeploymentTarget: '10.6'
MacOS 10.9:
MacOSXDeploymentTarget: '10.9'
vmImage: 'macOS-10.15'

steps:
- script: sudo xcode-select --switch /Applications/Xcode_9.4.1.app
displayName: 'Select Xcode 9.4.1'

- script: sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
displayName: 'Install MacOS headers'
- script: sudo xcode-select --switch /Applications/Xcode_11.3.1.app
displayName: 'Select Xcode 11.3.1'

- script: source ./build_openssl_osx.sh
displayName: 'Build OpenSSL'
Expand Down
21 changes: 7 additions & 14 deletions .azure-pipelines/client.test.live.yml
Expand Up @@ -119,39 +119,35 @@ jobs:
timeoutInMinutes: 120

pool:
vmImage: 'macOS-10.14'
vmImage: 'macOS-10.15'

strategy:
maxParallel: 1
matrix:
Python 2.7:
MacOSXDeploymentTarget: '10.6'
PythonBin: 'python2'
PythonVersion: '$(PythonVersion27)'
Python 3.5:
MacOSXDeploymentTarget: '10.6'
PythonBin: 'python3'
PythonVersion: '$(PythonVersion35)'
Python 3.6:
MacOSXDeploymentTarget: '10.6'
PythonBin: 'python3'
PythonVersion: '$(PythonVersion36)'
Python 3.7:
MacOSXDeploymentTarget: '10.6'
PythonBin: 'python3'
PythonVersion: '$(PythonVersion37)'
Python 3.8:
MacOSXDeploymentTarget: '10.9'
PythonBin: 'python3'
PythonVersion: '$(PythonVersion38)'

variables:
MacOSXDeploymentTarget: '10.9'
OpenSSLDir: $(Agent.BuildDirectory)/openssl-macosx$(MacOSXDeploymentTarget)
PythonVersion27: '2.7.17'
PythonVersion35: '3.5.4'
PythonVersion36: '3.6.8'
PythonVersion37: '3.7.5'
PythonVersion38: '3.8.0'
PythonVersion37: '3.7.6'
PythonVersion38: '3.8.2'

steps:
- task: DownloadPipelineArtifact@1
Expand All @@ -164,11 +160,8 @@ jobs:
pipeline: 119 # azure-uamqp-python - openssl
project: '29ec6040-b234-4e31-b139-33dc4287b756' # public

- script: sudo xcode-select --switch /Applications/Xcode_9.4.1.app
displayName: 'Select Xcode 9.4.1'

- script: sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
displayName: 'Install MacOS headers'
- script: sudo xcode-select --switch /Applications/Xcode_11.3.1.app
displayName: 'Select Xcode 11.3.1'

- script: source ./install_python_osx.sh
displayName: 'Install Official Python'
Expand All @@ -191,7 +184,7 @@ jobs:
displayName: 'Build uAMQP Wheel'
env:
CFLAGS: -mmacosx-version-min=$(MacOSXDeploymentTarget) -I$(OpenSSLDir)/include
CMAKE_OSX_ARCHITECTURES: 'i386;x86_64'
CMAKE_OSX_ARCHITECTURES: 'x86_64'
CMAKE_OSX_DEPLOYMENT_TARGET: $(MacOSXDeploymentTarget)
LDFLAGS: -mmacosx-version-min=$(MacOSXDeploymentTarget) -L$(OpenSSLDir)/lib
MACOSX_DEPLOYMENT_TARGET: $(MacOSXDeploymentTarget)
Expand Down
21 changes: 7 additions & 14 deletions .azure-pipelines/client.yml
Expand Up @@ -46,38 +46,34 @@ jobs:
- job: 'MacOS'

pool:
vmImage: 'macOS-10.14'
vmImage: 'macOS-10.15'

strategy:
matrix:
Python 2.7:
MacOSXDeploymentTarget: '10.6'
PythonBin: 'python2'
PythonVersion: '$(PythonVersion27)'
Python 3.5:
MacOSXDeploymentTarget: '10.6'
PythonBin: 'python3'
PythonVersion: '$(PythonVersion35)'
Python 3.6:
MacOSXDeploymentTarget: '10.6'
PythonBin: 'python3'
PythonVersion: '$(PythonVersion36)'
Python 3.7:
MacOSXDeploymentTarget: '10.6'
PythonBin: 'python3'
PythonVersion: '$(PythonVersion37)'
Python 3.8:
MacOSXDeploymentTarget: '10.9'
PythonBin: 'python3'
PythonVersion: '$(PythonVersion38)'

variables:
MacOSXDeploymentTarget: '10.9'
OpenSSLDir: $(Agent.BuildDirectory)/openssl-macosx$(MacOSXDeploymentTarget)
PythonVersion27: '2.7.17'
PythonVersion35: '3.5.4'
PythonVersion36: '3.6.8'
PythonVersion37: '3.7.5'
PythonVersion38: '3.8.0'
PythonVersion37: '3.7.6'
PythonVersion38: '3.8.2'

steps:
- task: DownloadPipelineArtifact@1
Expand All @@ -90,11 +86,8 @@ jobs:
pipeline: 119 # azure-uamqp-python - openssl
project: '29ec6040-b234-4e31-b139-33dc4287b756' # public

- script: sudo xcode-select --switch /Applications/Xcode_9.4.1.app
displayName: 'Select Xcode 9.4.1'

- script: sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
displayName: 'Install MacOS headers'
- script: sudo xcode-select --switch /Applications/Xcode_11.3.1.app
displayName: 'Select Xcode 11.3.1'

- script: source ./install_python_osx.sh
displayName: 'Install Official Python'
Expand All @@ -117,7 +110,7 @@ jobs:
displayName: 'Build uAMQP Wheel'
env:
CFLAGS: -mmacosx-version-min=$(MacOSXDeploymentTarget) -I$(OpenSSLDir)/include
CMAKE_OSX_ARCHITECTURES: 'i386;x86_64'
CMAKE_OSX_ARCHITECTURES: 'x86_64'
CMAKE_OSX_DEPLOYMENT_TARGET: $(MacOSXDeploymentTarget)
LDFLAGS: -mmacosx-version-min=$(MacOSXDeploymentTarget) -L$(OpenSSLDir)/lib
MACOSX_DEPLOYMENT_TARGET: $(MacOSXDeploymentTarget)
Expand Down
25 changes: 5 additions & 20 deletions build_openssl_osx.sh
@@ -1,34 +1,19 @@
#!/bin/bash

# Modified from https://gist.github.com/tmiz/1441111

# Acquire sources
curl -sSO https://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz
tar -xzf openssl-$OPENSSL_VERSION.tar.gz
rm -f openssl-$OPENSSL_VERSION.tar.gz

# Set up two build environments
cp -R openssl-$OPENSSL_VERSION openssl_i386_src
mv openssl-$OPENSSL_VERSION openssl_x86_64_src

# Compile i386
cd openssl_i386_src
./Configure darwin-i386-cc no-ssl2 no-ssl3 no-zlib no-shared no-comp --prefix=$DEST/openssl --openssldir=$DEST/openssl
make depend
make
make install_sw
mv $DEST/openssl $DEST/openssl_i386
mv openssl-$OPENSSL_VERSION openssl_src

# Compile x86_64
cd ../openssl_x86_64_src
cd ../openssl_src
./Configure darwin64-x86_64-cc enable-ec_nistp_64_gcc_128 no-ssl2 no-ssl3 no-zlib no-shared no-comp --prefix=$DEST/openssl --openssldir=$DEST/openssl
make depend
make
make install_sw
mv $DEST/openssl $DEST/openssl_x86_64

# Move files into place and generate universal binaries
# Move files into place
cd $DEST
cp -a ./openssl_x86_64/. ./openssl/
lipo -create openssl_i386/lib/libcrypto.a openssl_x86_64/lib/libcrypto.a -output openssl/lib/libazcrypto.a
lipo -create openssl_i386/lib/libssl.a openssl_x86_64/lib/libssl.a -output openssl/lib/libazssl.a
mv openssl/lib/libcrypto.a openssl/lib/libazcrypto.a
mv openssl/lib/libssl.a openssl/lib/libazssl.a
10 changes: 5 additions & 5 deletions build_osx.sh
@@ -1,15 +1,15 @@
#!/bin/bash
set -e
export MACOSX_DEPLOYMENT_TARGET=10.6
export CMAKE_OSX_DEPLOYMENT_TARGET=10.6
export CMAKE_OSX_ARCHITECTURES="i386;x86_64"
export MACOSX_DEPLOYMENT_TARGET=10.9
export CMAKE_OSX_DEPLOYMENT_TARGET=10.9
export CMAKE_OSX_ARCHITECTURES="x86_64"
export UAMQP_USE_OPENSSL=True
export UAMQP_REBUILD_PYX=True
export UAMQP_SUPPRESS_LINK_FLAGS=True
export OPENSSL_ROOT_DIR="/tmp/openssl"
export OPENSSL_INCLUDE_DIR="/tmp/openssl/include"
export LDFLAGS="-mmacosx-version-min=10.6 -L/tmp/openssl/lib"
export CFLAGS="-mmacosx-version-min=10.6 -I/tmp/openssl/include"
export LDFLAGS="-mmacosx-version-min=10.9 -L/tmp/openssl/lib"
export CFLAGS="-mmacosx-version-min=10.9 -I/tmp/openssl/include"

python2.7 setup.py bdist_wheel
python3.4 setup.py bdist_wheel
Expand Down
8 changes: 4 additions & 4 deletions install_python_osx.sh
@@ -1,9 +1,9 @@
#!/bin/bash

# Python 3.8+ are only build for OSX 10.9+
PACKAGE_TYPE="macosx10.6"
if [[ "$PYTHONVERSION" =~ ^3.8 ]]; then
PACKAGE_TYPE="macosx10.9"
# Python 3.5 is only built for OSX 10.6+
PACKAGE_TYPE="macosx10.9"
if [[ "$PYTHONVERSION" =~ ^3.5 ]]; then
PACKAGE_TYPE="macosx10.6"
fi

# Handle prerelease versions
Expand Down

0 comments on commit 88dec46

Please sign in to comment.