fix(gnome-extensions): Fly-Pie extension not working

It requires hard-coded compiled schema to be in extension UUID folder, else it fails.

Rest of the explanation can be seen in code comments.
This commit is contained in:
fiftydinar 2024-06-02 00:27:33 +02:00
parent 63503c5574
commit f50b02db2b

View file

@ -82,8 +82,19 @@ if [[ ${#INSTALL[@]} -gt 0 ]]; then
# Install schema
if [[ -d "${TMP_DIR}/schemas" ]]; then
echo "Installing schema extension file"
install -d -m 0755 "/usr/share/glib-2.0/schemas/"
install -D -p -m 0644 "${TMP_DIR}/schemas/"*.gschema.xml "/usr/share/glib-2.0/schemas/"
# Workaround for extensions, which explicitly require compiled schema to be in extension UUID directory (rare scenario due to how extension is programmed in non-standard way)
# Error code example:
# GLib.FileError: Failed to open file “/usr/share/gnome-shell/extensions/flypie@schneegans.github.com/schemas/gschemas.compiled”: open() failed: No such file or directory
# If any extension produces this error, it can be added in if statement below to solve the problem
if [[ "${INSTALL_EXT}" == "Fly-Pie" ]]; then
install -d -m 0755 "/usr/share/gnome-shell/extensions/${EXT_UUID}/schemas/"
install -D -p -m 0644 "${TMP_DIR}/schemas/"*.gschema.xml "/usr/share/gnome-shell/extensions/${EXT_UUID}/schemas/"
install -D -p -m 0644 "${TMP_DIR}/schemas/gschemas.compiled" "/usr/share/gnome-shell/extensions/${EXT_UUID}/schemas/"
else
# Regular schema installation
install -d -m 0755 "/usr/share/glib-2.0/schemas/"
install -D -p -m 0644 "${TMP_DIR}/schemas/"*.gschema.xml "/usr/share/glib-2.0/schemas/"
fi
fi
# Install languages
# Locale is not crucial for extensions to work, as they will fallback to gschema.xml
@ -146,8 +157,19 @@ if [[ ${#INSTALL[@]} -gt 0 ]] && ! "${LEGACY}"; then
# Install schema
if [[ -d "${TMP_DIR}/schemas" ]]; then
echo "Installing schema extension file"
install -d -m 0755 "/usr/share/glib-2.0/schemas/"
install -D -p -m 0644 "${TMP_DIR}/schemas/"*.gschema.xml "/usr/share/glib-2.0/schemas/"
# Workaround for extensions, which explicitly require compiled schema to be in extension UUID directory (rare scenario due to how extension is programmed in non-standard way)
# Error code example:
# GLib.FileError: Failed to open file “/usr/share/gnome-shell/extensions/flypie@schneegans.github.com/schemas/gschemas.compiled”: open() failed: No such file or directory
# If any extension produces this error, it can be added in if statement below to solve the problem
if [[ "${INSTALL_EXT}" == "Fly-Pie" ]]; then
install -d -m 0755 "/usr/share/gnome-shell/extensions/${EXT_UUID}/schemas/"
install -D -p -m 0644 "${TMP_DIR}/schemas/"*.gschema.xml "/usr/share/gnome-shell/extensions/${EXT_UUID}/schemas/"
install -D -p -m 0644 "${TMP_DIR}/schemas/gschemas.compiled" "/usr/share/gnome-shell/extensions/${EXT_UUID}/schemas/"
else
# Regular schema installation
install -d -m 0755 "/usr/share/glib-2.0/schemas/"
install -D -p -m 0644 "${TMP_DIR}/schemas/"*.gschema.xml "/usr/share/glib-2.0/schemas/"
fi
fi
# Install languages
# Locale is not crucial for extensions to work, as they will fallback to gschema.xml