-
-
Notifications
You must be signed in to change notification settings - Fork 4.1k
Expand file tree
/
Copy pathtermux_setup_golang.sh
More file actions
62 lines (54 loc) · 2.08 KB
/
termux_setup_golang.sh
File metadata and controls
62 lines (54 loc) · 2.08 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
# Utility function for golang-using packages to setup a go toolchain.
termux_setup_golang() {
export GOPATH="${TERMUX_COMMON_CACHEDIR}/go-path" GOCACHE="${TERMUX_COMMON_CACHEDIR}/go-build"
mkdir -p "$GOPATH" "$GOCACHE"
if [ "$TERMUX_ON_DEVICE_BUILD" = "false" ]; then
local TERMUX_GO_VERSION=go1.26.1
local TERMUX_GO_SHA256=031f088e5d955bab8657ede27ad4e3bc5b7c1ba281f05f245bcc304f327c987a
local TERMUX_GO_PLATFORM=linux-amd64
local TERMUX_BUILDGO_FOLDER
if [ "${TERMUX_PACKAGES_OFFLINE-false}" = "true" ]; then
TERMUX_BUILDGO_FOLDER=${TERMUX_SCRIPTDIR}/build-tools/${TERMUX_GO_VERSION}
else
TERMUX_BUILDGO_FOLDER=${TERMUX_COMMON_CACHEDIR}/${TERMUX_GO_VERSION}
fi
TERMUX_BUILDGO_FOLDER+="-r1"
export GOROOT=$TERMUX_BUILDGO_FOLDER
export PATH=${GOROOT}/bin:${PATH}
if [ -d "$TERMUX_BUILDGO_FOLDER" ]; then return; fi
local TERMUX_BUILDGO_TAR=$TERMUX_COMMON_CACHEDIR/${TERMUX_GO_VERSION}.${TERMUX_GO_PLATFORM}.tar.gz
rm -Rf "$TERMUX_COMMON_CACHEDIR/go" "$TERMUX_BUILDGO_FOLDER"
termux_download https://go.dev/dl/${TERMUX_GO_VERSION}.${TERMUX_GO_PLATFORM}.tar.gz \
"$TERMUX_BUILDGO_TAR" \
"$TERMUX_GO_SHA256"
(
cd "$TERMUX_COMMON_CACHEDIR"
tar xf "$TERMUX_BUILDGO_TAR"
mv go "$TERMUX_BUILDGO_FOLDER"
rm "$TERMUX_BUILDGO_TAR"
)
(
cd "$TERMUX_BUILDGO_FOLDER"
. "${TERMUX_SCRIPTDIR}/packages/golang/patch-script/fix-hardcoded-etc-resolv-conf.sh"
. "${TERMUX_SCRIPTDIR}/packages/golang/patch-script/remove-pidfd.sh"
. "${TERMUX_SCRIPTDIR}/packages/golang/patch-script/remove-futex_time64.sh"
)
else
if [[ "$TERMUX_APP_PACKAGE_MANAGER" = "apt" && "$(dpkg-query -W -f '${db:Status-Status}\n' golang 2>/dev/null)" != "installed" ]] ||
[[ "$TERMUX_APP_PACKAGE_MANAGER" = "pacman" && ! "$(pacman -Q golang 2>/dev/null)" ]]; then
echo "Package 'golang' is not installed."
echo "You can install it with"
echo
echo " pkg install golang"
echo
echo " pacman -S golang"
echo
echo "or build it from source with"
echo
echo " ./build-package.sh golang"
echo
exit 1
fi
export GOROOT="$TERMUX__PREFIX__LIB_DIR/go"
fi
}