2023-11-04 23:25:41 +03:00
|
|
|
|
warnings:
|
|
|
|
|
- vendored
|
2023-07-02 07:59:46 +03:00
|
|
|
|
|
|
|
|
|
versions:
|
2023-11-04 23:25:41 +03:00
|
|
|
|
github: cirruslabs/tart/releases
|
2023-07-02 07:59:46 +03:00
|
|
|
|
|
|
|
|
|
platforms:
|
2024-02-20 20:20:21 +03:00
|
|
|
|
- darwin
|
2023-07-02 07:59:46 +03:00
|
|
|
|
|
2023-11-04 23:25:41 +03:00
|
|
|
|
#FIXME proper system for re-using pre-built binaries
|
|
|
|
|
# we must require the vendor to provide signatures against a published public
|
|
|
|
|
# key. If they don’t then really we should build ourselves or warn the user
|
|
|
|
|
# about the fact.
|
|
|
|
|
# The thing is, we trust the sources implicitly currently because signing is
|
|
|
|
|
# so rare. The only way wide spread signing will occur is via our protocol.
|
|
|
|
|
|
|
|
|
|
# This only works on macOS, arm64, monterey and above. It requires xcode 14.1 to build
|
|
|
|
|
|
2023-07-02 07:59:46 +03:00
|
|
|
|
build:
|
2024-02-20 20:20:21 +03:00
|
|
|
|
dependencies:
|
|
|
|
|
curl.se: '*'
|
2023-07-02 07:59:46 +03:00
|
|
|
|
script:
|
2023-11-04 23:25:41 +03:00
|
|
|
|
- mkdir -p "{{prefix}}/bin"
|
2024-02-20 20:20:21 +03:00
|
|
|
|
- run: curl -LSs https://github.com/cirruslabs/tart/releases/download/{{version.tag}}/tart-$ARCH.tar.gz | tar -xzf -
|
|
|
|
|
if: '>=2.5'
|
|
|
|
|
- run: |
|
|
|
|
|
if test "{{hw.arch}}" = "aarch64"; then
|
|
|
|
|
curl -LSs https://github.com/cirruslabs/tart/releases/download/{{version.tag}}/tart.tar.gz | tar -xzf -
|
|
|
|
|
else
|
|
|
|
|
# not available on x86-64
|
|
|
|
|
false
|
|
|
|
|
fi
|
|
|
|
|
if: <2.5
|
2023-11-04 23:25:41 +03:00
|
|
|
|
- cp -a tart.app "{{prefix}}"
|
|
|
|
|
- cp props/tart-shim "{{prefix}}"/bin/tart
|
2024-02-20 20:20:21 +03:00
|
|
|
|
env:
|
|
|
|
|
aarch64:
|
|
|
|
|
ARCH: arm64
|
|
|
|
|
x86-64:
|
|
|
|
|
ARCH: amd64
|
2023-07-02 07:59:46 +03:00
|
|
|
|
|
|
|
|
|
provides:
|
|
|
|
|
- bin/tart
|
|
|
|
|
|
|
|
|
|
test:
|
|
|
|
|
script:
|
2024-02-20 20:29:27 +03:00
|
|
|
|
# FIXME: doesn't work on the older macOS versions we test with in CI, unfortunately
|
|
|
|
|
- run: test -e /usr/lib/swift/libswift_StringProcessing.dylib || exit 0
|
|
|
|
|
if: darwin/x86-64
|
|
|
|
|
|
2023-07-02 08:32:03 +03:00
|
|
|
|
- ': >empty.ispw'
|
2023-07-02 08:49:35 +03:00
|
|
|
|
- OUT=$(tart create
|
2023-11-04 23:25:41 +03:00
|
|
|
|
--from-ipsw empty.ipsw
|
|
|
|
|
test 2>&1 || true)
|
2023-07-02 08:49:35 +03:00
|
|
|
|
- 'test "$OUT" = "Error: The restore image failed to load. Unable to create sandbox extensions."'
|
2023-07-02 07:59:46 +03:00
|
|
|
|
env:
|
2023-11-04 23:25:41 +03:00
|
|
|
|
TART_HOME: $PWD
|