Update package and setup to fully support GNOME 44 and below

This commit is contained in:
wheaney 2024-08-17 12:39:12 -07:00
parent f924fdde3b
commit b0e0b224cc
2 changed files with 32 additions and 12 deletions

View File

@ -11,23 +11,40 @@ if [ "$(id -u)" == "0" ]; then
exit 1
fi
start_dir=$(pwd)
check_command() {
if ! command -v "$1" &>/dev/null; then
echo "Please install \"$1\" and make sure it's available in your \$PATH, then rerun the setup."
exit 1
fi
}
check_command "gnome-shell"
ARCH=$(uname -m)
FILE_NAME="breezyGNOME-$ARCH.tar.gz"
if [ "$(gnome-shell --version | cut -d' ' -f3 | cut -d'.' -f1)" -lt 45 ]; then
echo "Performing setup for GNOME 44 and below ($ARCH)"
FILE_NAME="breezyGNOME-44-max-$ARCH.tar.gz"
else
echo "Performing setup for GNOME 45 and up ($ARCH)"
fi
start_dir=$(pwd)
# create temp directory
tmp_dir=$(mktemp -d -t breezy-gnome-XXXXXXXXXX)
pushd $tmp_dir > /dev/null
echo "Created temp directory: ${tmp_dir}"
binary_download_url="https://github.com/wheaney/breezy-desktop/releases/latest/download/breezyGNOME-$ARCH.tar.gz"
binary_download_url="https://github.com/wheaney/breezy-desktop/releases/latest/download/$FILE_NAME"
if [ "$1" = "-v" ]
then
metrics_version="$2"
binary_path_arg="$3"
elif [ "$1" = "--tag" ] && [ -n "$2" ]
then
binary_download_url="https://github.com/wheaney/breezy-desktop/releases/download/$2/breezyGNOME-$ARCH.tar.gz"
binary_download_url="https://github.com/wheaney/breezy-desktop/releases/download/$2/$FILE_NAME"
else
binary_path_arg="$1"
fi
@ -35,10 +52,10 @@ fi
if [ -z "$binary_path_arg" ]
then
# download and unzip the binary
echo "Downloading to: ${tmp_dir}/breezyGNOME-$ARCH.tar.gz"
echo "Downloading to: ${tmp_dir}/$FILE_NAME"
curl -L -O $binary_download_url
binary_path_arg="breezyGNOME-$ARCH.tar.gz"
else
FILE_NAME=$(basename $binary_path_arg)
if [[ "$binary_path_arg" = /* ]]; then
abs_path="$binary_path_arg"
else
@ -49,7 +66,7 @@ else
fi
echo "Extracting to: ${tmp_dir}/breezy_gnome"
tar -xf $(basename $binary_path_arg)
tar -xf $FILE_NAME
pushd breezy_gnome > /dev/null

View File

@ -4,23 +4,26 @@
set -e
ARCH=${ARCH:-$(uname -m)}
echo "Building Breezy GNOME for $ARCH"
# https://stackoverflow.com/a/246128
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
ROOT_DIR=$(realpath $SCRIPT_DIR/..)
VULKAN_DIR=$ROOT_DIR/vulkan
# if GNOME_44_MAX is not set
if [ -z "$GNOME_44_MAX" ]; then
# standard build for GNOME 45 and up
echo "Building Breezy GNOME for $ARCH, GNOME versions 45 and up"
GNOME_DIR=$ROOT_DIR/gnome
BUILD_FILE_NAME=breezyGNOME-$ARCH.tar.gz
else
# special patched build for GNOME 44 and below
echo "Building Breezy GNOME for $ARCH, GNOME versions 44 and below"
# use a special directory for the GNOME 44 max build, ignored by git
GNOME_DIR=$ROOT_DIR/gnome-44-max
rm -rf $GNOME_DIR
mkdir $GNOME_DIR
BUILD_FILE_NAME=breezyGNOME.44-max.$ARCH.tar.gz
BUILD_FILE_NAME=breezyGNOME-44-max-$ARCH.tar.gz
# copy the GNOME extension source code to the new directory and apply
# a patch that makes it compatible with GNOME 44 and below
@ -81,11 +84,11 @@ rm -rf $TMP_DIR
cp $XR_DRIVER_BINARY $PACKAGE_DIR/xrDriver.tar.gz
cp $XR_DRIVER_DIR/bin/xr_driver_setup $PACKAGE_DIR/bin
gnome/bin/package_extension
cp gnome/out/breezydesktop@xronlinux.com.shell-extension.zip $PACKAGE_DIR
$GNOME_DIR/bin/package_extension
cp $GNOME_DIR/out/breezydesktop@xronlinux.com.shell-extension.zip $PACKAGE_DIR
# create a checksum that combines the checksums of all files in the directory
pushd gnome/src
pushd $GNOME_DIR/src
GNOME_MANIFEST_LINE=$(find -L . -type f ! -name "*.compiled" -exec sha256sum {} \; | sort | sha256sum | sed 's/ .*//')
popd