Browse code

hack: Restore rootlesskit and tini installers

Revert a part of 9e72c44daea2cbc485dd0c3d43c161c3fe156711

These are still used by packaging scripts.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>

Paweł Gronowski authored on 2025/12/16 20:50:53
Showing 3 changed files
1 1
new file mode 100755
... ...
@@ -0,0 +1,39 @@
0
+#!/bin/bash
1
+
2
+set -e
3
+set -x
4
+
5
+RM_GOPATH=0
6
+
7
+TMP_GOPATH=${TMP_GOPATH:-""}
8
+
9
+: ${PREFIX:="/usr/local/bin"}
10
+
11
+if [ -z "$TMP_GOPATH" ]; then
12
+	export GOPATH="$(mktemp -d)"
13
+	RM_GOPATH=1
14
+else
15
+	export GOPATH="$TMP_GOPATH"
16
+fi
17
+case "$(go env GOARCH)" in
18
+	mips* | ppc64)
19
+		# pie build mode is not supported on mips architectures
20
+		export GO_BUILDMODE=""
21
+		;;
22
+	*)
23
+		export GO_BUILDMODE="-buildmode=pie"
24
+		;;
25
+esac
26
+
27
+dir="$(dirname $0)"
28
+
29
+bin=$1
30
+shift
31
+
32
+if [ ! -f "${dir}/${bin}.installer" ]; then
33
+	echo "Could not find installer for \"$bin\""
34
+	exit 1
35
+fi
36
+
37
+. ${dir}/${bin}.installer
38
+install_${bin} "$@"
0 39
new file mode 100755
... ...
@@ -0,0 +1,31 @@
0
+#!/bin/sh
1
+
2
+# When updating, also update go.mod and Dockerfile accordingly.
3
+: "${ROOTLESSKIT_VERSION:=v2.3.5}"
4
+
5
+install_rootlesskit() {
6
+	case "$1" in
7
+		"dynamic")
8
+			install_rootlesskit_dynamic
9
+			return
10
+			;;
11
+		"")
12
+			export CGO_ENABLED=0
13
+			_install_rootlesskit
14
+			;;
15
+		*)
16
+			echo 'Usage: $0 [dynamic]'
17
+			;;
18
+	esac
19
+}
20
+
21
+install_rootlesskit_dynamic() {
22
+	export ROOTLESSKIT_LDFLAGS="-linkmode=external" install_rootlesskit
23
+	export BUILD_MODE=${GO_BUILDMODE}
24
+	_install_rootlesskit
25
+}
26
+
27
+_install_rootlesskit() (
28
+	echo "Install rootlesskit version ${ROOTLESSKIT_VERSION}"
29
+	GOBIN="${PREFIX}" go install ${BUILD_MODE} -ldflags="$ROOTLESSKIT_LDFLAGS" "github.com/rootless-containers/rootlesskit/v2/cmd/rootlesskit@${ROOTLESSKIT_VERSION}"
30
+)
0 31
new file mode 100755
... ...
@@ -0,0 +1,17 @@
0
+#!/bin/sh
1
+
2
+# TINI_VERSION specifies the version of tini (docker-init) to build, and install
3
+# from the https://github.com/krallin/tini repository. This binary is used
4
+# when starting containers with the `--init` option.
5
+: "${TINI_VERSION:=v0.19.0}"
6
+
7
+install_tini() {
8
+	echo "Install tini version $TINI_VERSION"
9
+	git clone https://github.com/krallin/tini.git "$GOPATH/tini"
10
+	cd "$GOPATH/tini"
11
+	git checkout -q "$TINI_VERSION"
12
+	cmake .
13
+	make tini-static
14
+	mkdir -p "${PREFIX}"
15
+	cp tini-static "${PREFIX}/docker-init"
16
+}