diff --git a/install-dpkg.sh b/install-dpkg.sh new file mode 100644 index 000000000..a535945df --- /dev/null +++ b/install-dpkg.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +set -e + +if dpkg -s "gcm" &> /dev/null; then + echo "GCM already installed, nothing to do." + exit 1 +fi + +if [ "$EUID" -ne 0 ]; then + echo "This script must be run with sudo." + exit 1 +fi + +base_path=$(pwd) +linux_packaging_path="$base_path/src/linux/Packaging.Linux" +linux_out_packaging_debug_path="$base_path/out/linux/Packaging.Linux/Debug" +version="2.4.1" + +arch=$(uname -m) + +if [[ "$arch" == arm64* || "$arch" == aarch64 ]]; then + out_arch="arm64" +else + out_arch="amd64" +fi + +echo "Install dependencies" +apt install -y dotnet-sdk-7.0 dpkg-dev + +echo "Run layout script" +sudo -u "$SUDO_USER" "$linux_packaging_path/layout.sh" + +echo "Run pack script" +sudo -u "$SUDO_USER" "$linux_packaging_path/pack.sh" "--version=$version" "--payload=$linux_out_packaging_debug_path/payload" "--symbols=$linux_out_packaging_debug_path/payload.sym" + +echo "Install GCM" +dpkg -i "$linux_out_packaging_debug_path/deb/gcm-linux_$out_arch.$version.deb" + +if [[ "$(sudo -u "$SUDO_USER" git config --global credential.helper)" != "manager" ]]; then + echo "Configure Git to use GCM" + sudo -u "$SUDO_USER" git config --global credential.helper manager +fi diff --git a/src/linux/Packaging.Linux/layout.sh b/src/linux/Packaging.Linux/layout.sh index 5f3ba8ca8..8b44c2cf6 100755 --- a/src/linux/Packaging.Linux/layout.sh +++ b/src/linux/Packaging.Linux/layout.sh @@ -39,7 +39,14 @@ PROJ_OUT="$OUT/linux/Packaging.Linux" # Build parameters FRAMEWORK=net7.0 -RUNTIME=linux-x64 + +arch=$(uname -m) + +if [[ "$arch" == arm64* || "$arch" == aarch64 ]]; then + RUNTIME=linux-arm64 +else + RUNTIME=linux-x64 +fi # Perform pre-execution checks CONFIGURATION="${CONFIGURATION:=Debug}"