From 40f7791b31b727bf90956294af43ba33aebcd765 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Mon, 10 Nov 2025 22:51:18 -0500 Subject: [PATCH] Hyprland 0.52.1 build fixes:\n- hyprutils -> main (hyprtester uses setStdinFD)\n- build libxkbcommon from source and wire into stack\n- add LIBXKBCOMMON_TAG to tag file/repo mapping\n- expose BUILD_HYPRTESTER toggle in hyprland cmake --- hypr-tags.env | 6 +++++- install-scripts/hyprland.sh | 1 + install.sh | 3 +++ update-hyprland.sh | 12 ++++++++---- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/hypr-tags.env b/hypr-tags.env index 6a4f534..14f4993 100644 --- a/hypr-tags.env +++ b/hypr-tags.env @@ -4,7 +4,9 @@ HYPRLAND_TAG=v0.52.1 AQUAMARINE_TAG=v0.9.3 -HYPRUTILS_TAG=v0.8.3 +# Hyprland 0.52.1's hyprtester uses CProcess::setStdinFD, available on hyprutils main. +# Pin to main to avoid API mismatch build errors. +HYPRUTILS_TAG=main HYPRLANG_TAG=v0.6.4 HYPRGRAPHICS_TAG=v0.1.6 HYPRWAYLAND_SCANNER_TAG=v0.4.5 @@ -12,3 +14,5 @@ HYPRLAND_PROTOCOLS_TAG=v0.6.4 HYPRLAND_QT_SUPPORT_TAG=v0.1.0 HYPRLAND_GUIUTILS_TAG=v0.1.4 WAYLAND_PROTOCOLS_TAG=1.45 +# libxkbcommon >= 1.9.0 required; build from source when Debian's version is older. +LIBXKBCOMMON_TAG=xkbcommon-1.13.0 diff --git a/install-scripts/hyprland.sh b/install-scripts/hyprland.sh index 3085b7a..0c90825 100755 --- a/install-scripts/hyprland.sh +++ b/install-scripts/hyprland.sh @@ -110,6 +110,7 @@ USE_SYSTEM=${USE_SYSTEM_HYPRLIBS:-1} -DCMAKE_CXX_STANDARD=26 -DCMAKE_CXX_STANDARD_REQUIRED=ON -DCMAKE_CXX_EXTENSIONS=ON + -DBUILD_HYPRTESTER=${BUILD_HYPRTESTER:-ON} "${SYSTEM_FLAGS[@]}" ) cmake -S . -B build "${CONFIG_FLAGS[@]}" diff --git a/install.sh b/install.sh index 8e568bf..561ec92 100755 --- a/install.sh +++ b/install.sh @@ -396,6 +396,9 @@ execute_script "hyprwayland-scanner.sh" sleep 1 execute_script "hyprgraphics.sh" sleep 1 +# Ensure libxkbcommon is up-to-date for Hyprland >= 0.52.1 +execute_script "libxkbcommon.sh" +sleep 1 execute_script "aquamarine.sh" sleep 1 execute_script "hyprland-qt-support.sh" diff --git a/update-hyprland.sh b/update-hyprland.sh index 554ef4d..7cba55b 100755 --- a/update-hyprland.sh +++ b/update-hyprland.sh @@ -38,6 +38,7 @@ DEFAULT_MODULES=( wayland-protocols-src aquamarine hyprgraphics + libxkbcommon hyprwayland-scanner hyprland-protocols hyprland-qt-support @@ -64,15 +65,16 @@ ensure_tags_file() { if [[ ! -f "$TAGS_FILE" ]]; then echo "[INFO] Creating default tags file: $TAGS_FILE" | tee -a "$SUMMARY_LOG" cat >"$TAGS_FILE" <<'EOF' -HYPRLAND_TAG=v0.50.1 -AQUAMARINE_TAG=v0.9.2 -HYPRUTILS_TAG=v0.8.2 +HYPRLAND_TAG=v0.52.1 +AQUAMARINE_TAG=v0.9.3 +HYPRUTILS_TAG=main HYPRLANG_TAG=v0.6.4 HYPRGRAPHICS_TAG=v0.1.6 HYPRWAYLAND_SCANNER_TAG=v0.4.5 HYPRLAND_PROTOCOLS_TAG=v0.6.4 HYPRLAND_QT_SUPPORT_TAG=v0.1.0 HYPRLAND_GUIUTILS_TAG=v0.1.4 +LIBXKBCOMMON_TAG=xkbcommon-1.13.0 EOF fi } @@ -115,6 +117,7 @@ set_tags_from_args() { HYPRLAND_PROTOCOLS | hyprland-protocols | hyprland_protocols) key=HYPRLAND_PROTOCOLS_TAG ;; HYPRLAND_QT_SUPPORT | hyprland-qt-support | hyprland_qt_support) key=HYPRLAND_QT_SUPPORT_TAG ;; HYPRLAND_GUIUTILS | hyprland-guiutils | hyprland_guiutils) key=HYPRLAND_GUIUTILS_TAG ;; + LIBXKBCOMMON | libxkbcommon) key=LIBXKBCOMMON_TAG ;; esac map[$key]="$val" done @@ -154,6 +157,7 @@ fetch_latest_tags() { [HYPRLAND_PROTOCOLS_TAG]="hyprwm/hyprland-protocols" [HYPRLAND_QT_SUPPORT_TAG]="hyprwm/hyprland-qt-support" [HYPRLAND_GUIUTILS_TAG]="hyprwm/hyprland-guiutils" + [LIBXKBCOMMON_TAG]="xkbcommon/libxkbcommon" ) declare -A tags @@ -207,7 +211,7 @@ run_stack() { # shellcheck disable=SC1090 source "$TAGS_FILE" # Export tags so child scripts inherit them - export HYPRLAND_TAG AQUAMARINE_TAG HYPRUTILS_TAG HYPRLANG_TAG HYPRGRAPHICS_TAG HYPRWAYLAND_SCANNER_TAG HYPRLAND_PROTOCOLS_TAG HYPRLAND_QT_SUPPORT_TAG HYPRLAND_GUIUTILS_TAG WAYLAND_PROTOCOLS_TAG + export HYPRLAND_TAG AQUAMARINE_TAG HYPRUTILS_TAG HYPRLANG_TAG HYPRGRAPHICS_TAG HYPRWAYLAND_SCANNER_TAG HYPRLAND_PROTOCOLS_TAG HYPRLAND_QT_SUPPORT_TAG HYPRLAND_GUIUTILS_TAG WAYLAND_PROTOCOLS_TAG LIBXKBCOMMON_TAG # Optionally install dependencies (not dry-run) if [[ $WITH_DEPS -eq 1 ]]; then