summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO31
-rw-r--r--.gitignore5
-rw-r--r--Dockerfile14
-rw-r--r--PKGBUILD91
-rw-r--r--build-libusb-and-hidapi.sh20
-rw-r--r--build-tezos.sh25
-rw-r--r--docker-static-build.patch22
-rw-r--r--docker-static-build.sh53
-rw-r--r--protocols.json26
-rw-r--r--static_libs.patch142
-rw-r--r--systemd_sysusers.d_tezos.conf2
-rw-r--r--tezos-node.service15
-rw-r--r--tezos-serokell.install21
-rwxr-xr-xupdate-scripts.sh18
14 files changed, 485 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..8fdc2a84d6fc
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,31 @@
+pkgbase = tezos-serokell
+ pkgdesc = Build Tezos from source in a local Podman container using the build scripts by Serokell.
+ pkgver = 11.0
+ pkgrel = 1
+ url = https://github.com/serokell/tezos-packaging
+ install = tezos-serokell.install
+ arch = x86_64
+ license = MIT
+ makedepends = podman
+ provides = tezos
+ conflicts = tezos
+ source = docker-static-build.sh
+ source = protocols.json
+ source = Dockerfile
+ source = build-libusb-and-hidapi.sh
+ source = build-tezos.sh
+ source = static_libs.patch
+ source = systemd_sysusers.d_tezos.conf
+ source = tezos-node.service
+ source = tezos-serokell.install
+ sha256sums = c9955a43a7cb6811b9f2ced2f4fc757092c5959405298ca887c189acec24f352
+ sha256sums = 552c9b3f54049d92f59d649f3b3220b1a4070745204ea7e71d77b4ba3def62a2
+ sha256sums = c2c670ec6017f649a5c758fe53d9dcfe40607914a87a543b0c3c3fc1744c9742
+ sha256sums = 3efaeb530efbfee94eb842176a120335cf3dfe8aa1d1473922a5e0d709e10c90
+ sha256sums = c944539ccc4478b25b2fa18396ec76a38e58c28d6a97c68891317ed2aa80b93d
+ sha256sums = 8314fdf62ba8440a11a3bdc408cf7e3f5874dced84a0209a7a05075f42a8291b
+ sha256sums = ef749a4f8cb69da8e400918c3d3e46b3c76743ad876d4a75e6fb1d85d12d2592
+ sha256sums = f6c661a12e0ee6cb5df7ba847998d9dcd3cb357494c8de2f770454874a94d274
+ sha256sums = a55713bc79b71d56b73db458ab20c0b07750a846d2c7a528f7b04573e0be4c46
+
+pkgname = tezos-serokell
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..7386183b92f3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+pkg/
+src/
+*.tar.gz
+*.tar.gz.asc
+*.tar.zst
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 000000000000..f73aa964421b
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,14 @@
+# SPDX-FileCopyrightText: 2020 TQ Tezos <https://tqtezos.com/>
+#
+# SPDX-License-Identifier: LicenseRef-MIT-TQ
+FROM alpine:3.12
+RUN apk update
+RUN apk --no-cache --virtual add rsync git m4 build-base patch unzip \
+ bubblewrap wget pkgconfig gmp-dev libev-dev hidapi-dev eudev-dev perl opam libusb-dev bash \
+ autoconf automake libtool linux-headers cargo libffi-dev zlib-static
+COPY ./build/build-libusb-and-hidapi.sh /build-libusb-and-hidapi.sh
+RUN /build-libusb-and-hidapi.sh
+COPY ./build/static_libs.patch /static.patch
+ARG TEZOS_VERSION
+COPY ./build/build-tezos.sh /build-tezos.sh
+RUN /build-tezos.sh ${TEZOS_VERSION}
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..b7a17abd7357
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,91 @@
+# Maintainer: Danilo Bargen <aur ät dbrgn döt ch>
+#
+# Note: This assumes that you have a local podman installation configured.
+# Alternatively, if you have a Docker installation where your local user
+# is in the `docker` group (which is potentially dangerous!), remove the
+# `podman` makedependency and remove the `export USE_PODMAN=True` line.
+
+pkgname=tezos-serokell
+pkgver=11.0
+_distver=$pkgver-1
+pkgrel=1
+pkgdesc='Build Tezos from source in a local Podman container using the build scripts by Serokell.'
+arch=('x86_64')
+url='https://github.com/serokell/tezos-packaging'
+license=('MIT')
+provides=('tezos')
+conflicts=('tezos')
+makedepends=('podman')
+options=()
+depends=()
+source=(
+ # Dir: docker/
+ 'docker-static-build.sh'
+ 'protocols.json'
+ # Dir: docker/build/
+ 'Dockerfile'
+ 'build-libusb-and-hidapi.sh'
+ 'build-tezos.sh'
+ 'static_libs.patch'
+ # Other files
+ 'systemd_sysusers.d_tezos.conf'
+ 'tezos-node.service'
+ 'tezos-serokell.install'
+)
+sha256sums=('c9955a43a7cb6811b9f2ced2f4fc757092c5959405298ca887c189acec24f352'
+ '552c9b3f54049d92f59d649f3b3220b1a4070745204ea7e71d77b4ba3def62a2'
+ 'c2c670ec6017f649a5c758fe53d9dcfe40607914a87a543b0c3c3fc1744c9742'
+ '3efaeb530efbfee94eb842176a120335cf3dfe8aa1d1473922a5e0d709e10c90'
+ 'c944539ccc4478b25b2fa18396ec76a38e58c28d6a97c68891317ed2aa80b93d'
+ '8314fdf62ba8440a11a3bdc408cf7e3f5874dced84a0209a7a05075f42a8291b'
+ 'ef749a4f8cb69da8e400918c3d3e46b3c76743ad876d4a75e6fb1d85d12d2592'
+ 'f6c661a12e0ee6cb5df7ba847998d9dcd3cb357494c8de2f770454874a94d274'
+ 'a55713bc79b71d56b73db458ab20c0b07750a846d2c7a528f7b04573e0be4c46')
+install=${pkgname}.install
+
+build() {
+ cd "$srcdir"
+
+ # Config
+ export USE_PODMAN=True
+ export TEZOS_VERSION="v${pkgver}"
+
+ # Set up build scripts
+ DIR="docker"
+ mkdir -p "$DIR/build/"
+ cp docker-static-build.sh "$DIR/"
+ cp protocols.json "$DIR/"
+ cp Dockerfile "$DIR/build/"
+ cp build-libusb-and-hidapi.sh "$DIR/build/"
+ cp build-tezos.sh "$DIR/build/"
+ cp static_libs.patch "$DIR/build/"
+ chmod +x "$DIR/build/build-libusb-and-hidapi.sh"
+ chmod +x "$DIR/build/build-tezos.sh"
+
+ # Build
+ cd "$DIR"
+ bash ./docker-static-build.sh
+}
+
+package() {
+ # Install binaries
+ mkdir -p "$pkgdir"/usr/bin/
+ cp "$srcdir"/docker/tezos-* "$pkgdir"/usr/bin/
+ chown root:root "$pkgdir"/usr/bin/*
+ chmod 755 "$pkgdir"/usr/bin/*
+
+ # Install zcash params
+ mkdir -p "$pkgdir"/usr/share/zcash-params
+ install -o root -g root -m 644 "$srcdir"/docker/sapling-output.params "$pkgdir"/usr/share/zcash-params
+ install -o root -g root -m 644 "$srcdir"/docker/sapling-spend.params "$pkgdir"/usr/share/zcash-params
+
+ # Install systemd service
+ install -Dm644 "$srcdir"/tezos-node.service \
+ "$pkgdir"/usr/lib/systemd/system/tezos-node.service
+
+ # Install sysusers hook
+ install -Dm644 "$srcdir"/systemd_sysusers.d_tezos.conf \
+ "$pkgdir"/usr/lib/sysusers.d/tezos.conf
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/build-libusb-and-hidapi.sh b/build-libusb-and-hidapi.sh
new file mode 100644
index 000000000000..5ecfa1a4c1ab
--- /dev/null
+++ b/build-libusb-and-hidapi.sh
@@ -0,0 +1,20 @@
+#! /usr/bin/env bash
+
+# SPDX-FileCopyrightText: 2020 TQ Tezos <https://tqtezos.com/>
+#
+# SPDX-License-Identifier: LicenseRef-MIT-TQ
+
+# This script builds and installs libusb and hidapi libraries. It's required since alpine
+# doesn't provide static versions for these libraries, thus we have to compile it ourselves.
+set -euo pipefail
+
+git clone --single-branch --branch v1.0.23 https://github.com/libusb/libusb.git --depth 1
+cd libusb
+autoreconf -fvi && ./configure && make && make install
+
+git clone --single-branch --branch hidapi-0.9.0 https://github.com/libusb/hidapi.git --depth 1
+
+cd hidapi
+autoreconf -fvi && ./bootstrap && ./configure && make && make install
+
+rm -rf libusb hidapi
diff --git a/build-tezos.sh b/build-tezos.sh
new file mode 100644
index 000000000000..900b2ebd8f50
--- /dev/null
+++ b/build-tezos.sh
@@ -0,0 +1,25 @@
+#! /usr/bin/env bash
+
+# SPDX-FileCopyrightText: 2020 TQ Tezos <https://tqtezos.com/>
+#
+# SPDX-License-Identifier: LicenseRef-MIT-TQ
+
+# This script builds static tezos binaries. It expects patches required for static building to be
+# in parent directory, it also accepts tezos version as an argument.
+set -euo pipefail
+
+tezos_version="$1"
+git clone --single-branch --branch "$tezos_version" https://gitlab.com/tezos/tezos.git --depth 1
+cd tezos
+
+git apply ../static.patch
+export OPAMYES="true"
+wget https://sh.rustup.rs/rustup-init.sh
+chmod +x rustup-init.sh
+./rustup-init.sh --profile minimal --default-toolchain 1.52.1 -y
+source "$HOME/.cargo/env"
+
+opam init --bare --disable-sandboxing
+make build-deps
+eval "$(opam env)" && PROFILE="static" make build && make build-sandbox
+chmod +w tezos-*
diff --git a/docker-static-build.patch b/docker-static-build.patch
new file mode 100644
index 000000000000..89eacde2d0a1
--- /dev/null
+++ b/docker-static-build.patch
@@ -0,0 +1,22 @@
+diff --unified --recursive --text docker.orig/docker-static-build.sh docker.new/docker-static-build.sh
+--- docker.orig/docker-static-build.sh 2021-12-06 12:18:10.154949959 +0100
++++ docker.new/docker-static-build.sh 2021-12-06 12:13:44.724949629 +0100
+@@ -10,8 +10,9 @@
+ set -euo pipefail
+
+ binaries=("tezos-admin-client" "tezos-client" "tezos-node" "tezos-signer" "tezos-codec" "tezos-sandbox")
++zcash_params=("sapling-output.params" "sapling-spend.params")
+
+-for proto in $(jq -r ".active | .[]" ../protocols.json); do
++for proto in $(jq -r ".active | .[]" protocols.json); do
+ binaries+=("tezos-accuser-$proto" "tezos-baker-$proto" "tezos-endorser-$proto")
+ done
+
+@@ -46,4 +47,7 @@
+ for b in "${binaries[@]}"; do
+ "$virtualisation_engine" cp "$container_id:/tezos/$b" "$b"
+ done
++for p in "${zcash_params[@]}"; do
++ "$virtualisation_engine" cp "$container_id:/tezos/_opam/share/zcash-params/$p" "$p"
++done
+ "$virtualisation_engine" rm -v "$container_id"
diff --git a/docker-static-build.sh b/docker-static-build.sh
new file mode 100644
index 000000000000..8abec36b50ae
--- /dev/null
+++ b/docker-static-build.sh
@@ -0,0 +1,53 @@
+#! /usr/bin/env bash
+
+# SPDX-FileCopyrightText: 2020 TQ Tezos <https://tqtezos.com/>
+#
+# SPDX-License-Identifier: LicenseRef-MIT-TQ
+
+# This script builds static tezos-binaries using custom alpine image.
+# It expects docker or podman to be installed and configured.
+
+set -euo pipefail
+
+binaries=("tezos-admin-client" "tezos-client" "tezos-node" "tezos-signer" "tezos-codec" "tezos-sandbox")
+zcash_params=("sapling-output.params" "sapling-spend.params")
+
+for proto in $(jq -r ".active | .[]" protocols.json); do
+ binaries+=("tezos-accuser-$proto" "tezos-baker-$proto" "tezos-endorser-$proto")
+done
+
+if [[ "${USE_PODMAN-}" == "True" ]]; then
+ virtualisation_engine="podman"
+else
+ virtualisation_engine="docker"
+fi
+
+arch="host"
+
+if [[ -n "${1-}" ]]; then
+ arch="$1"
+fi
+
+if [[ $arch == "host" ]]; then
+ docker_file=build/Dockerfile
+elif [[ $arch == "aarch64" ]]; then
+ docker_file=build/Dockerfile.aarch64
+else
+ echo "Unsupported architecture: $arch"
+ echo "Only 'host' and 'aarch64' are currently supported"
+ exit 1
+fi
+
+if [[ $arch == "aarch64" && $(uname -m) != "x86_64" ]]; then
+ echo "Compiling for aarch64 is supported only from aarch64 and x86_64"
+fi
+
+"$virtualisation_engine" build -t alpine-tezos -f "$docker_file" --build-arg TEZOS_VERSION="$TEZOS_VERSION" .
+container_id="$("$virtualisation_engine" create alpine-tezos)"
+for b in "${binaries[@]}"; do
+ "$virtualisation_engine" cp "$container_id:/tezos/$b" "$b"
+done
+for p in "${zcash_params[@]}"; do
+ "$virtualisation_engine" cp "$container_id:/tezos/_opam/share/zcash-params/$p" "$p"
+done
+"$virtualisation_engine" rm -v "$container_id"
diff --git a/protocols.json b/protocols.json
new file mode 100644
index 000000000000..ea60d10290ec
--- /dev/null
+++ b/protocols.json
@@ -0,0 +1,26 @@
+{
+ "ignored": [
+ "demo-counter"
+ ],
+ "allowed": [
+ "alpha",
+ "genesis",
+ "genesis-carthagenet",
+ "000-Ps9mPmXa",
+ "001-PtCJ7pwo",
+ "002-PsYLVpVv",
+ "003-PsddFKi3",
+ "004-Pt24m4xi",
+ "005-PsBABY5H",
+ "005-PsBabyM1",
+ "006-PsCARTHA",
+ "007-PsDELPH1",
+ "008-PtEdoTez",
+ "008-PtEdo2Zk",
+ "009-PsFLoren"
+ ],
+ "active": [
+ "010-PtGRANAD",
+ "011-PtHangz2"
+ ]
+}
diff --git a/static_libs.patch b/static_libs.patch
new file mode 100644
index 000000000000..aed05ad1924b
--- /dev/null
+++ b/static_libs.patch
@@ -0,0 +1,142 @@
+# SPDX-FileCopyrightText: 2020 TQ Tezos <https://tqtezos.com/>
+#
+# SPDX-License-Identifier: LicenseRef-MIT-TQ
+diff --git a/src/bin_client/dune b/src/bin_client/dune
+index 00fb3a632..923739d2b 100644
+--- a/src/bin_client/dune
++++ b/src/bin_client/dune
+@@ -76,7 +76,9 @@
+ -open Tezos_client_commands
+ -open Tezos_mockup_commands
+ -open Tezos_client_base_unix
+- -linkall)))
++ -linkall
++ -ccopt -static
++ -cclib "-lusb-1.0 -lhidapi-libusb -ludev")))
+
+ (rule
+ (action
+diff --git a/src/bin_codec/dune b/src/bin_codec/dune
+index f7577c4e5..949d2cbc4 100644
+--- a/src/bin_codec/dune
++++ b/src/bin_codec/dune
+@@ -33,7 +33,9 @@
+ -open Tezos_clic
+ -open Tezos_stdlib_unix
+ -open Tezos_event_logging
+- -linkall)))
++ -linkall
++ -ccopt -static
++ -cclib "-lusb-1.0 -lhidapi-libusb -ludev")))
+
+ (rule
+ (action
+diff --git a/src/bin_node/dune b/src/bin_node/dune
+index 95a8d1af7..ce2ac8e3e 100644
+--- a/src/bin_node/dune
++++ b/src/bin_node/dune
+@@ -96,7 +96,8 @@
+ -open Tezos_shell_context
+ -open Tezos_workers
+ -open Tezos_protocol_updater
+- -linkall)))
++ -linkall
++ -ccopt -static)))
+
+ (rule
+ (action
+diff --git a/src/bin_signer/dune b/src/bin_signer/dune
+index 26c1fa638..029a50c07 100644
+--- a/src/bin_signer/dune
++++ b/src/bin_signer/dune
+@@ -21,4 +21,6 @@
+ -open Tezos_rpc_http_server
+ -open Tezos_rpc_http_client_unix
+ -open Tezos_stdlib_unix
+- -open Tezos_stdlib)))
++ -open Tezos_stdlib
++ -ccopt -static
++ -cclib "-lusb-1.0 -lhidapi-libusb -ludev")))
+diff --git a/src/proto_010_PtGRANAD/bin_accuser/dune b/src/proto_010_PtGRANAD/bin_accuser/dune
+index 11c77973e3..43515f16ed 100644
+--- a/src/proto_010_PtGRANAD/bin_accuser/dune
++++ b/src/proto_010_PtGRANAD/bin_accuser/dune
+@@ -10,4 +10,6 @@
+ -open Tezos_client_commands
+ -open Tezos_baking_010_PtGRANAD_commands
+ -open Tezos_stdlib_unix
+- -open Tezos_client_base_unix)))
++ -open Tezos_client_base_unix
++ -ccopt -static
++ -cclib "-lusb-1.0 -lhidapi-libusb -ludev")))
+diff --git a/src/proto_010_PtGRANAD/bin_baker/dune b/src/proto_010_PtGRANAD/bin_baker/dune
+index 0535edf13c..f0c85ad447 100644
+--- a/src/proto_010_PtGRANAD/bin_baker/dune
++++ b/src/proto_010_PtGRANAD/bin_baker/dune
+@@ -10,4 +10,6 @@
+ -open Tezos_client_commands
+ -open Tezos_baking_010_PtGRANAD_commands
+ -open Tezos_stdlib_unix
+- -open Tezos_client_base_unix)))
++ -open Tezos_client_base_unix
++ -ccopt -static
++ -cclib "-lusb-1.0 -lhidapi-libusb -ludev")))
+diff --git a/src/proto_010_PtGRANAD/bin_endorser/dune b/src/proto_010_PtGRANAD/bin_endorser/dune
+index c19a310a8f..6c38226293 100644
+--- a/src/proto_010_PtGRANAD/bin_endorser/dune
++++ b/src/proto_010_PtGRANAD/bin_endorser/dune
+@@ -10,4 +10,6 @@
+ -open Tezos_client_commands
+ -open Tezos_baking_010_PtGRANAD_commands
+ -open Tezos_stdlib_unix
+- -open Tezos_client_base_unix)))
++ -open Tezos_client_base_unix
++ -ccopt -static
++ -cclib "-lusb-1.0 -lhidapi-libusb -ludev")))
+diff --git a/src/proto_011_PtHangz2/bin_accuser/dune b/src/proto_011_PtHangz2/bin_accuser/dune
+index 11c77973e3..43515f16ed 100644
+--- a/src/proto_011_PtHangz2/bin_accuser/dune
++++ b/src/proto_011_PtHangz2/bin_accuser/dune
+@@ -10,4 +10,6 @@
+ -open Tezos_client_commands
+ -open Tezos_baking_011_PtHangz2_commands
+ -open Tezos_stdlib_unix
+- -open Tezos_client_base_unix)))
++ -open Tezos_client_base_unix
++ -ccopt -static
++ -cclib "-lusb-1.0 -lhidapi-libusb -ludev")))
+diff --git a/src/proto_011_PtHangz2/bin_baker/dune b/src/proto_011_PtHangz2/bin_baker/dune
+index 0535edf13c..f0c85ad447 100644
+--- a/src/proto_011_PtHangz2/bin_baker/dune
++++ b/src/proto_011_PtHangz2/bin_baker/dune
+@@ -10,4 +10,6 @@
+ -open Tezos_client_commands
+ -open Tezos_baking_011_PtHangz2_commands
+ -open Tezos_stdlib_unix
+- -open Tezos_client_base_unix)))
++ -open Tezos_client_base_unix
++ -ccopt -static
++ -cclib "-lusb-1.0 -lhidapi-libusb -ludev")))
+diff --git a/src/proto_011_PtHangz2/bin_endorser/dune b/src/proto_011_PtHangz2/bin_endorser/dune
+index c19a310a8f..6c38226293 100644
+--- a/src/proto_011_PtHangz2/bin_endorser/dune
++++ b/src/proto_011_PtHangz2/bin_endorser/dune
+@@ -10,4 +10,6 @@
+ -open Tezos_client_commands
+ -open Tezos_baking_011_PtHangz2_commands
+ -open Tezos_stdlib_unix
+- -open Tezos_client_base_unix)))
++ -open Tezos_client_base_unix
++ -ccopt -static
++ -cclib "-lusb-1.0 -lhidapi-libusb -ludev")))
+diff --git a/src/bin_sandbox/dune b/src/bin_sandbox/dune
+index 6289c6d124..aa2eb20a29 100644
+--- a/src/bin_sandbox/dune
++++ b/src/bin_sandbox/dune
+@@ -2,4 +2,5 @@
+ (names main)
+ (libraries tezos-base
+ tezos-base.unix
+- flextesa))
++ flextesa)
++ (flags :standard -ccopt -static))
diff --git a/systemd_sysusers.d_tezos.conf b/systemd_sysusers.d_tezos.conf
new file mode 100644
index 000000000000..157ee239a6da
--- /dev/null
+++ b/systemd_sysusers.d_tezos.conf
@@ -0,0 +1,2 @@
+#Type Name ID GECOS Home Shell
+u tezos - "Tezos Node user" /usr/share/tezos /bin/sh
diff --git a/tezos-node.service b/tezos-node.service
new file mode 100644
index 000000000000..9f624d4d0537
--- /dev/null
+++ b/tezos-node.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Tezos node in RPC mode in RPC mode on 127.0.0.1.
+
+[Service]
+Type=simple
+User=tezos
+Group=tezos
+ExecStart=/usr/bin/tezos-node run --rpc-addr=127.0.0.1
+TimeoutStartSec=5
+TimeoutStopSec=180
+Restart=on-failure
+KillSignal=SIGINT
+
+[Install]
+WantedBy=multi-user.target
diff --git a/tezos-serokell.install b/tezos-serokell.install
new file mode 100644
index 000000000000..8ac35344a82b
--- /dev/null
+++ b/tezos-serokell.install
@@ -0,0 +1,21 @@
+post_upgrade() {
+ if [ ! -d "/usr/share/tezos" ]; then
+ echo "Creating directory /usr/share/tezos..."
+ mkdir -p -m755 /usr/share/tezos
+ chown tezos:tezos /usr/share/tezos
+ fi
+ if [ ! -f "/usr/share/tezos/.tezos-node/identity.json" ]; then
+ echo -e "To create a tezos node identity, run\n"
+ echo -e " $ sudo -u tezos tezos-node identity generate\n"
+ else
+ echo ""
+ fi
+ echo -e "To start the tezos node on localhost, run\n"
+ echo -e " $ sudo systemctl start tezos-node\n"
+ echo -e "To automatically start it on system start:\n"
+ echo -e " $ sudo systemctl enable tezos-node\n"
+}
+
+post_install() {
+ post_upgrade
+}
diff --git a/update-scripts.sh b/update-scripts.sh
new file mode 100755
index 000000000000..32c09727de71
--- /dev/null
+++ b/update-scripts.sh
@@ -0,0 +1,18 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+# Config
+VERSION="11.0-1"
+
+# Download build scripts
+curl -o docker-static-build.sh https://raw.githubusercontent.com/serokell/tezos-packaging/v$VERSION/docker/docker-static-build.sh
+curl -o Dockerfile https://raw.githubusercontent.com/serokell/tezos-packaging/v$VERSION/docker/build/Dockerfile
+curl -o build-libusb-and-hidapi.sh https://raw.githubusercontent.com/serokell/tezos-packaging/v$VERSION/docker/build/build-libusb-and-hidapi.sh
+curl -o build-tezos.sh https://raw.githubusercontent.com/serokell/tezos-packaging/v$VERSION/docker/build/build-tezos.sh
+curl -o static_libs.patch https://raw.githubusercontent.com/serokell/tezos-packaging/v$VERSION/docker/build/static_libs.patch
+
+# Download protocols.json
+curl -o protocols.json https://raw.githubusercontent.com/serokell/tezos-packaging/v$VERSION/protocols.json
+
+# Patch docker-static-build.patch
+patch --forward --strip=1 --input="docker-static-build.patch"