-
-
Notifications
You must be signed in to change notification settings - Fork 35
Expand file tree
/
Copy pathdownload-dependencies.sh
More file actions
executable file
·63 lines (51 loc) · 2.2 KB
/
download-dependencies.sh
File metadata and controls
executable file
·63 lines (51 loc) · 2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/bash
set -e
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
HOST_OS="$(uname -s)"
IMAGE_ARCHIVE_NAME="linux-aarch64-Images-v6.12.62-anylinuxfs.tar.gz"
RELEASE_URL="https://github.com/nohajc/libkrunfw/releases/download/v6.12.62-rev1"
IMAGE_ARCHIVE_URL="${RELEASE_URL}/${IMAGE_ARCHIVE_NAME}"
MODULES_ARCHIVE_NAME="modules.squashfs"
MODULES_ARCHIVE_URL="${RELEASE_URL}/${MODULES_ARCHIVE_NAME}"
INIT_BSD="init-freebsd"
INIT_BSD_URL="https://github.com/nohajc/libkrun/releases/download/v1.17.0-init-bsd/${INIT_BSD}"
if [[ "$HOST_OS" == "Darwin" ]]; then
GVPROXY_VERSION="0.8.8"
GVPROXY_URL="https://github.com/containers/gvisor-tap-vsock/releases/download/v${GVPROXY_VERSION}/gvproxy-darwin"
VMNET_HELPER_VERSION="0.11.0"
VMNET_HELPER_URL="https://github.com/nirs/vmnet-helper/releases/download/v${VMNET_HELPER_VERSION}/vmnet-helper.tar.gz"
fi
cd "$SCRIPT_DIR"
curl -L -o "$IMAGE_ARCHIVE_NAME" "$IMAGE_ARCHIVE_URL"
mkdir -p "libexec"
tar xzf "$IMAGE_ARCHIVE_NAME" -C "libexec"
rm "$IMAGE_ARCHIVE_NAME"
curl -LO "$MODULES_ARCHIVE_URL"
mkdir -p "lib"
mv ${MODULES_ARCHIVE_NAME} lib/
curl -LO "$INIT_BSD_URL"
mv "$INIT_BSD" "libexec/"
chmod +x "libexec/$INIT_BSD"
if [[ "$HOST_OS" == "Darwin" ]]; then
curl -L -o libexec/gvproxy "$GVPROXY_URL"
chmod +x libexec/gvproxy
else
# Build gvproxy from a pinned commit on upstream. The vfkit-mode patch we
# needed is merged but not in a tagged release yet; switch back to a
# tagged tarball once a release ships.
GVPROXY_COMMIT="c09fb7d0a9e08260d238066c3c4311498d15311e"
GVPROXY_TMP="$(mktemp -d "$SCRIPT_DIR/.gvproxy-build.XXXXXX")"
git -C "$GVPROXY_TMP" init -q
git -C "$GVPROXY_TMP" remote add origin https://github.com/containers/gvisor-tap-vsock.git
git -C "$GVPROXY_TMP" fetch --depth=1 origin "$GVPROXY_COMMIT"
git -C "$GVPROXY_TMP" checkout -q FETCH_HEAD
(cd "$GVPROXY_TMP" && make)
cp "$GVPROXY_TMP/bin/gvproxy" libexec/gvproxy
chmod +x libexec/gvproxy
rm -rf "$GVPROXY_TMP"
fi
if [[ "$HOST_OS" == "Darwin" ]]; then
curl -LO "$VMNET_HELPER_URL"
tar xzf vmnet-helper.tar.gz -C libexec --strip-components=4 ./opt/vmnet-helper/bin/vmnet-helper
rm vmnet-helper.tar.gz
fi