Browse Source

fix arch detection on i386 (native packages) (#15218)

Ilya Mashchenko 1 year ago
parent
commit
428113b202
2 changed files with 79 additions and 82 deletions
  1. 76 80
      contrib/debian/install_go.sh
  2. 3 2
      netdata.spec.in

+ 76 - 80
contrib/debian/install_go.sh

@@ -7,92 +7,88 @@ LIBEXEC_DIR="$3"
 # ############################################################
 # Package Go within netdata (TBD: Package it separately)
 safe_sha256sum() {
-	# Within the context of the installer, we only use -c option that is common between the two commands
-	# We will have to reconsider if we start non-common options
-	if command -v sha256sum >/dev/null 2>&1; then
-		sha256sum $@
-	elif command -v shasum >/dev/null 2>&1; then
-		shasum -a 256 $@
-	else
-		fatal "I could not find a suitable checksum binary to use"
-	fi
+  # Within the context of the installer, we only use -c option that is common between the two commands
+  # We will have to reconsider if we start non-common options
+  if command -v sha256sum >/dev/null 2>&1; then
+    sha256sum $@
+  elif command -v shasum >/dev/null 2>&1; then
+    shasum -a 256 $@
+  else
+    fatal "I could not find a suitable checksum binary to use"
+  fi
 }
 
 download_go() {
-	url="${1}"
-	dest="${2}"
-
-	if command -v curl >/dev/null 2>&1; then
-		curl -sSL --connect-timeout 10 --retry 3 "${url}" > "${dest}"
-	elif command -v wget >/dev/null 2>&1; then
-		wget -T 15 -O - "${url}" > "${dest}"
-	else
-		echo >&2
-		echo >&2 "Downloading go.d plugin from '${url}' failed because of missing mandatory packages."
-		echo >&2 "Either add packages or disable it by issuing '--disable-go' in the installer"
-		echo >&2
-		exit 1
-	fi
+  url="${1}"
+  dest="${2}"
+
+  if command -v curl >/dev/null 2>&1; then
+    curl -sSL --connect-timeout 10 --retry 3 "${url}" >"${dest}"
+  elif command -v wget >/dev/null 2>&1; then
+    wget -T 15 -O - "${url}" >"${dest}"
+  else
+    echo >&2
+    echo >&2 "Downloading go.d plugin from '${url}' failed because of missing mandatory packages."
+    echo >&2 "Either add packages or disable it by issuing '--disable-go' in the installer"
+    echo >&2
+    exit 1
+  fi
 }
 
 install_go() {
-	ARCH_MAP=(
-		'i386::386'
-		'i686::386'
-		'x86_64::amd64'
-		'aarch64::arm64'
-		'armv64::arm64'
-		'armv6l::arm'
-		'armv7l::arm'
-		'armv5tel::arm'
-	)
-
-	if [ -z "${NETDATA_DISABLE_GO+x}" ]; then
-		echo >&2 "Install go.d.plugin"
-		ARCH=$(uname -m)
-		OS=$(uname -s | tr '[:upper:]' '[:lower:]')
-
-		for index in "${ARCH_MAP[@]}" ; do
-			KEY="${index%%::*}"
-			VALUE="${index##*::}"
-			if [ "$KEY" = "$ARCH" ]; then
-				ARCH="${VALUE}"
-				break
-			fi
-		done
-		tmp=$(mktemp -d /tmp/netdata-go-XXXXXX)
-		GO_PACKAGE_BASENAME="go.d.plugin-${GO_PACKAGE_VERSION}.${OS}-${ARCH}.tar.gz"
-		download_go "https://github.com/netdata/go.d.plugin/releases/download/${GO_PACKAGE_VERSION}/${GO_PACKAGE_BASENAME}" "${tmp}/${GO_PACKAGE_BASENAME}"
-		download_go "https://github.com/netdata/go.d.plugin/releases/download/${GO_PACKAGE_VERSION}/config.tar.gz" "${tmp}/config.tar.gz"
-
-		if [ ! -f "${tmp}/${GO_PACKAGE_BASENAME}" ] || [ ! -f "${tmp}/config.tar.gz" ] || [ ! -s "${tmp}/config.tar.gz" ] || [ ! -s "${tmp}/${GO_PACKAGE_BASENAME}" ]; then
-			echo >&2 "Either check the error or consider disabling it by issuing '--disable-go' in the installer"
-			echo >&2
-			return 1
-		fi
-
-		grep "${GO_PACKAGE_BASENAME}\$" "packaging/go.d.checksums" > "${tmp}/sha256sums.txt" 2>/dev/null
-		grep "config.tar.gz" "packaging/go.d.checksums" >> "${tmp}/sha256sums.txt" 2>/dev/null
-
-		# Checksum validation
-		if ! (cd "${tmp}" && safe_sha256sum -c "sha256sums.txt"); then
-
-			echo >&2 "go.d plugin checksum validation failure."
-			echo >&2 "Either check the error or consider disabling it by issuing '--disable-go' in the installer"
-			echo >&2
-
-			echo "go.d.plugin package files checksum validation failed."
-			exit 1
-		fi
-
-		# Install files
-		tar -xf "${tmp}/config.tar.gz" -C "${LIB_DIR}/conf.d/"
-		tar xf "${tmp}/${GO_PACKAGE_BASENAME}"
-		mv "${GO_PACKAGE_BASENAME/\.tar\.gz/}" "${LIBEXEC_DIR}/plugins.d/go.d.plugin"
-
-		rm -rf "${tmp}"
-	fi
-	return 0
+  ARCH_MAP=(
+    'i386::386'
+    'armhf::arm'
+  )
+  if [ -z "${NETDATA_DISABLE_GO+x}" ]; then
+    ARCH="${DEB_TARGET_ARCH}"
+
+    for index in "${ARCH_MAP[@]}" ; do
+      KEY="${index%%::*}"
+      VALUE="${index##*::}"
+      if [ "$KEY" = "$ARCH" ]; then
+        ARCH="${VALUE}"
+        break
+      fi
+    done
+
+    OS=$(uname -s | tr '[:upper:]' '[:lower:]')
+
+    echo >&2 "Install go.d.plugin (ARCH=${ARCH}, OS=${OS})"
+
+    tmp=$(mktemp -d /tmp/netdata-go-XXXXXX)
+    GO_PACKAGE_BASENAME="go.d.plugin-${GO_PACKAGE_VERSION}.${OS}-${ARCH}.tar.gz"
+    download_go "https://github.com/netdata/go.d.plugin/releases/download/${GO_PACKAGE_VERSION}/${GO_PACKAGE_BASENAME}" "${tmp}/${GO_PACKAGE_BASENAME}"
+    download_go "https://github.com/netdata/go.d.plugin/releases/download/${GO_PACKAGE_VERSION}/config.tar.gz" "${tmp}/config.tar.gz"
+
+    if [ ! -f "${tmp}/${GO_PACKAGE_BASENAME}" ] || [ ! -f "${tmp}/config.tar.gz" ] || [ ! -s "${tmp}/config.tar.gz" ] || [ ! -s "${tmp}/${GO_PACKAGE_BASENAME}" ]; then
+      echo >&2 "Either check the error or consider disabling it by issuing '--disable-go' in the installer"
+      echo >&2
+      return 1
+    fi
+
+    grep "${GO_PACKAGE_BASENAME}\$" "packaging/go.d.checksums" >"${tmp}/sha256sums.txt" 2>/dev/null
+    grep "config.tar.gz" "packaging/go.d.checksums" >>"${tmp}/sha256sums.txt" 2>/dev/null
+
+    # Checksum validation
+    if ! (cd "${tmp}" && safe_sha256sum -c "sha256sums.txt"); then
+
+      echo >&2 "go.d plugin checksum validation failure."
+      echo >&2 "Either check the error or consider disabling it by issuing '--disable-go' in the installer"
+      echo >&2
+
+      echo "go.d.plugin package files checksum validation failed."
+      exit 1
+    fi
+
+    # Install files
+    tar -xf "${tmp}/config.tar.gz" -C "${LIB_DIR}/conf.d/"
+    tar xf "${tmp}/${GO_PACKAGE_BASENAME}"
+    mv "${GO_PACKAGE_BASENAME/\.tar\.gz/}" "${LIBEXEC_DIR}/plugins.d/go.d.plugin"
+
+    rm -rf "${tmp}"
+  fi
+  return 0
 }
 
 install_go

+ 3 - 2
netdata.spec.in

@@ -393,10 +393,11 @@ install_go() {
 	)
 
 	if [ -z "${NETDATA_DISABLE_GO+x}" ]; then
-		echo >&2 "Install go.d.plugin"
-		ARCH=$(uname -m)
+		ARCH="%{_arch}"
 		OS=$(uname -s | tr '[:upper:]' '[:lower:]')
 
+		echo >&2 "Install go.d.plugin (ARCH=${ARCH}, OS=${OS})"
+
 		for index in "${ARCH_MAP[@]}" ; do
 			KEY="${index%%::*}"
 			VALUE="${index##*::}"