diff options
Diffstat (limited to 'tools/macos_pkg.sh')
-rwxr-xr-x | tools/macos_pkg.sh | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tools/macos_pkg.sh b/tools/macos_pkg.sh new file mode 100755 index 0000000..4313c27 --- /dev/null +++ b/tools/macos_pkg.sh | |||
@@ -0,0 +1,44 @@ | |||
1 | #!/bin/bash -e | ||
2 | # Copyright (c) 2019 Yubico AB. All rights reserved. | ||
3 | # Use of this source code is governed by a BSD-style | ||
4 | # license that can be found in the LICENSE file. | ||
5 | |||
6 | if [[ "$#" -ne 2 ]]; then | ||
7 | echo usage: $0 version directory 1>&2 | ||
8 | exit 1 | ||
9 | fi | ||
10 | |||
11 | V=$1 | ||
12 | D=$2 | ||
13 | |||
14 | FIDO_PATH=$(realpath ${D}/lib/libfido2.${V}.dylib) | ||
15 | CBOR_PATH=$(otool -L "${FIDO_PATH}" | grep cbor | awk '{ print $1 }') | ||
16 | CRYPTO_PATH=$(otool -L "${FIDO_PATH}" | grep crypto | awk '{ print $1 }') | ||
17 | |||
18 | cp -p "${CBOR_PATH}" "${CRYPTO_PATH}" "${D}/lib" | ||
19 | chmod 755 "${D}/lib/"*dylib | ||
20 | rm "${D}/lib/pkgconfig/libfido2.pc" | ||
21 | rmdir "${D}/lib/pkgconfig" | ||
22 | |||
23 | CBOR_NAME=$(echo "${CBOR_PATH}" | grep -o 'libcbor.*dylib') | ||
24 | CRYPTO_NAME=$(echo "${CRYPTO_PATH}" | grep -o 'libcrypto.*dylib') | ||
25 | FIDO_NAME="libfido2.${V}.dylib" | ||
26 | |||
27 | install_name_tool -id "@loader_path/${CBOR_NAME}" "${D}/lib/${CBOR_NAME}" | ||
28 | install_name_tool -id "@loader_path/${CRYPTO_NAME}" "${D}/lib/${CRYPTO_NAME}" | ||
29 | install_name_tool -id "@loader_path/libfido2.${V}.dylib" "${FIDO_PATH}" | ||
30 | |||
31 | install_name_tool -change "${CBOR_PATH}" "@loader_path/${CBOR_NAME}" \ | ||
32 | "${FIDO_PATH}" | ||
33 | install_name_tool -change "${CRYPTO_PATH}" "@loader_path/${CRYPTO_NAME}" \ | ||
34 | "${FIDO_PATH}" | ||
35 | |||
36 | for f in $(find "${D}/bin" -type f); do | ||
37 | FIDO_PATH=$(otool -L "${f}" | grep libfido2 | awk '{ print $1 }') | ||
38 | install_name_tool -change "${CBOR_PATH}" \ | ||
39 | "@executable_path/../lib/${CBOR_NAME}" "${f}" | ||
40 | install_name_tool -change "${CRYPTO_PATH}" \ | ||
41 | "@executable_path/../lib/${CRYPTO_NAME}" "${f}" | ||
42 | install_name_tool -change "${FIDO_PATH}" \ | ||
43 | "@executable_path/../lib/${FIDO_NAME}" "${f}" | ||
44 | done | ||