Skip to content

Commit

Permalink
Consistently set macOS min version (#13070)
Browse files Browse the repository at this point in the history
Set the macOS deployment target, ensuring that statically linked libfido2 `tsh`
builds run correctly on older macOS versions.

#9160

* Consistently set macOS min version
* Bump min macOS version to 10.13
  • Loading branch information
codingllama authored Jun 2, 2022
1 parent c3736c7 commit 8b104d1
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
11 changes: 7 additions & 4 deletions build.assets/build-fido2-macos.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,14 @@
# Written mainly for macOS builders.
set -eu

readonly MACOS_VERSION_MIN=10.13

# Note: versions are the same as the corresponding git tags for each repo.
readonly CBOR_VERSION=v0.9.0
readonly CRYPTO_VERSION=OpenSSL_1_1_1o
readonly FIDO2_VERSION=1.11.0

readonly LIB_CACHE="/tmp/teleport-fido2-cache"

readonly PKGFILE_DIR="$LIB_CACHE/fido2-${FIDO2_VERSION}_cbor-${CBOR_VERSION}_crypto-${CRYPTO_VERSION}"

fetch_and_build() {
Expand All @@ -32,7 +33,7 @@ fetch_and_build() {
tmp="$(mktemp -d "$LIB_CACHE/build.XXXXXX")"
# Early expansion on purpose.
#shellcheck disable=SC2064
trap "rm -fr '$tmp'" exit
trap "rm -fr '$tmp'" EXIT

local fullname="$name-$version"
local install_path="$tmp/$fullname"
Expand Down Expand Up @@ -66,6 +67,7 @@ cbor_build() {
-DCBOR_CUSTOM_ALLOC=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="$dest" \
-DCMAKE_OSX_DEPLOYMENT_TARGET="$MACOS_VERSION_MIN" \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DWITH_EXAMPLES=OFF \
-G "Unix Makefiles" \
Expand All @@ -86,7 +88,7 @@ crypto_build() {
cd "$src"

./config \
-mmacosx-version-min=10.12 \
-mmacosx-version-min="$MACOS_VERSION_MIN" \
--prefix="$dest" \
--openssldir="$dest/[email protected]" \
no-shared \
Expand Down Expand Up @@ -119,6 +121,7 @@ fido2_build() {
-DBUILD_TOOLS=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="$dest" \
-DCMAKE_OSX_DEPLOYMENT_TARGET="$MACOS_VERSION_MIN" \
-G "Unix Makefiles" \
.
make
Expand Down Expand Up @@ -174,7 +177,7 @@ Description: A FIDO2 library
URL: https://github.com/yubico/libfido2
Version: $FIDO2_VERSION
Libs: -framework CoreFoundation -framework IOKit \${libdir}/libfido2.a $cbor/lib/libcbor.a $crypto/lib/libcrypto.a
Cflags: -I\${includedir} -I$cbor/include -I$crypto/include
Cflags: -I\${includedir} -I$cbor/include -I$crypto/include -mmacosx-version-min="$MACOS_VERSION_MIN"
EOF

# Move .pc file to expected path.
Expand Down
2 changes: 1 addition & 1 deletion lib/auth/touchid/api_darwin.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

package touchid

// #cgo CFLAGS: -Wall -xobjective-c -fblocks -fobjc-arc -mmacosx-version-min=10.12
// #cgo CFLAGS: -Wall -xobjective-c -fblocks -fobjc-arc -mmacosx-version-min=10.13
// #cgo LDFLAGS: -framework CoreFoundation -framework Foundation -framework LocalAuthentication -framework Security
// #include <stdlib.h>
// #include "authenticate.h"
Expand Down

0 comments on commit 8b104d1

Please sign in to comment.