mirror of
https://github.com/JaKooLit/Debian-Hyprland.git
synced 2026-02-05 01:30:13 +01:00
Fixed ver mismatch in FF Pinned stable to 53.2 create build dir
Now the code will compile in build directory vs. base directory Easier to clean up On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: Debian-Hyprland-Install-Upgrade.es.md modified: Debian-Hyprland-Install-Upgrade.md modified: README.md modified: hypr-tags.env modified: install-scripts/Global_functions.sh modified: install-scripts/ags.sh modified: install-scripts/aquamarine.sh modified: install-scripts/hyprcursor.sh modified: install-scripts/hyprgraphics.sh modified: install-scripts/hypridle.sh modified: install-scripts/hyprland-guiutils.sh modified: install-scripts/hyprland-protocols.sh modified: install-scripts/hyprland-qt-support.sh modified: install-scripts/hyprland.sh modified: install-scripts/hyprlang.sh modified: install-scripts/hyprlock.sh modified: install-scripts/hyprpolkitagent.sh modified: install-scripts/hyprtoolkit.sh modified: install-scripts/hyprutils.sh modified: install-scripts/hyprwayland-scanner.sh modified: install-scripts/hyprwire.sh modified: install-scripts/quickshell.sh modified: install-scripts/rofi-wayland.sh modified: install-scripts/wayland-protocols-src.sh modified: install-scripts/xdph.sh modified: install-scripts/xkbcommon.sh modified: refresh-hypr-tags.sh modified: update-hyprland.sh
This commit is contained in:
parent
d26848d307
commit
48e4f067d9
@ -19,7 +19,7 @@
|
||||
|
||||
## 02 January 2026
|
||||
|
||||
### > Note: Support for Hyprland v0.53.1 is now available for Debian Stable (Trixie)
|
||||
### > Note: Support for Hyprland v0.53.2 is now available for Debian Stable (Trixie)
|
||||
|
||||
### > At this time it should be considered BETA, not for production use
|
||||
|
||||
@ -28,7 +28,7 @@
|
||||
### > Only Intel, AMD, and in VMs
|
||||
|
||||
- Updated:
|
||||
- Default Hyprland stack versions now target 0.53.1 (see `hypr-tags.env`)
|
||||
- Default Hyprland stack versions now target 0.53.2 (see `hypr-tags.env`)
|
||||
- Added trixie compatibility mode flags:
|
||||
- `--build-trixie` / `--no-trixie` (auto-detected on Debian 13)
|
||||
- Added `--force-update` to refresh pinned package versions
|
||||
|
||||
@ -128,7 +128,7 @@ Archivo con etiquetas de versión para todos los componentes de Hyprland:
|
||||
|
||||
```bash
|
||||
# Versiones actuales (ejemplo)
|
||||
HYPRLAND_TAG=v0.53.1
|
||||
HYPRLAND_TAG=v0.53.2
|
||||
AQUAMARINE_TAG=v0.10.0
|
||||
HYPRUTILS_TAG=v0.11.0
|
||||
HYPRLANG_TAG=v0.6.8
|
||||
|
||||
@ -128,7 +128,7 @@ This file contains version tags for all Hyprland components:
|
||||
|
||||
```bash
|
||||
# Current versions (example)
|
||||
HYPRLAND_TAG=v0.53.1
|
||||
HYPRLAND_TAG=v0.53.2
|
||||
AQUAMARINE_TAG=v0.10.0
|
||||
HYPRUTILS_TAG=v0.11.0
|
||||
HYPRLANG_TAG=v0.6.8
|
||||
|
||||
@ -102,14 +102,14 @@ sudo nano /etc/apt/sources.list
|
||||
[Debian-Hyprland Changelogs](https://github.com/JaKooLit/Debian-Hyprland/blob/main/CHANGELOGS.md)
|
||||
|
||||
- 10 January 2026 Update!
|
||||
- Debian now builds Hyprland v0.53.1!
|
||||
- Debian now builds Hyprland v0.53.2!
|
||||
- This requires the just released `Debian-Hyprland v2.9.4` installer
|
||||
- Debian 13 (`Trixie`, aka `Stable`)
|
||||
- While it does now support v0.53.1
|
||||
- While it does now support v0.53.2
|
||||
- At this time it should not be used for production
|
||||
- Testing is on going but NVIDIA GPUs have not been tested
|
||||
- Intel, AMD, and in VMs only so far
|
||||
- Debian Testing (`Forky`) and Unstable (`SID`) - Build and run Hyprland v0.53.1 without issue
|
||||
- Debian Testing (`Forky`) and Unstable (`SID`) - Build and run Hyprland v0.53.2 without issue
|
||||
|
||||
- 10 October 2025 Update!
|
||||
- Hyprland-Debian nows builds 0.51.1 from source!
|
||||
|
||||
@ -1,18 +1,13 @@
|
||||
# Central tag overrides for the Hyprland stack
|
||||
# You can edit these values or let update-hyprland.sh manage them.
|
||||
# Each module script reads its TAG from these environment variables if set.
|
||||
|
||||
# Hyprland 0.53.x stack (includes hyprwire)
|
||||
HYPRLAND_TAG=v0.53.1
|
||||
AQUAMARINE_TAG=v0.10.0
|
||||
HYPRUTILS_TAG=v0.11.0
|
||||
HYPRLANG_TAG=v0.6.8
|
||||
HYPRGRAPHICS_TAG=v0.5.0
|
||||
HYPRTOOLKIT_TAG=v0.4.1
|
||||
HYPRWAYLAND_SCANNER_TAG=v0.4.5
|
||||
HYPRLAND_GUIUTILS_TAG=v0.2.1
|
||||
HYPRLAND_PROTOCOLS_TAG=v0.7.0
|
||||
HYPRLAND_QT_SUPPORT_TAG=v0.1.0
|
||||
HYPRLAND_QTUTILS_TAG=v0.1.5
|
||||
HYPRLAND_GUIUTILS_TAG=v0.2.0
|
||||
HYPRLAND_TAG=v0.53.2
|
||||
HYPRLANG_TAG=v0.6.8
|
||||
HYPRTOOLKIT_TAG=v0.5.3
|
||||
HYPRUTILS_TAG=v0.11.0
|
||||
HYPRWAYLAND_SCANNER_TAG=v0.4.5
|
||||
HYPRWIRE_TAG=v0.2.1
|
||||
WAYLAND_PROTOCOLS_TAG=1.46
|
||||
|
||||
@ -25,6 +25,10 @@ if [ ! -d Install-Logs ]; then
|
||||
mkdir Install-Logs
|
||||
fi
|
||||
|
||||
# Shared build output root (override with BUILD_ROOT env)
|
||||
BUILD_ROOT="${BUILD_ROOT:-$PWD/build}"
|
||||
mkdir -p "$BUILD_ROOT"
|
||||
|
||||
# Show progress function
|
||||
show_progress() {
|
||||
local pid=$1
|
||||
|
||||
@ -109,9 +109,11 @@ printf "\n%.0s" {1..1}
|
||||
# Clone repository with the specified tag and capture git output into MLOG
|
||||
if git clone --depth=1 https://github.com/JaKooLit/ags_v1.9.0.git; then
|
||||
cd ags_v1.9.0 || exit 1
|
||||
BUILD_DIR="$BUILD_ROOT/ags_v1.9.0"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
npm install
|
||||
meson setup build
|
||||
if sudo meson install -C build 2>&1 | tee -a "$MLOG"; then
|
||||
meson setup "$BUILD_DIR"
|
||||
if sudo meson install -C "$BUILD_DIR" 2>&1 | tee -a "$MLOG"; then
|
||||
printf "\n${OK} ${YELLOW}Aylur's GTK shell $ags_tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
|
||||
# Patch installed AGS launchers to ensure GI typelibs in /usr/local/lib are discoverable in GJS ESM
|
||||
|
||||
@ -50,10 +50,12 @@ fi
|
||||
printf "${INFO} Installing ${YELLOW}aquamarine $tag${RESET} ...\n"
|
||||
if git clone --recursive -b "$tag" https://github.com/hyprwm/aquamarine.git; then
|
||||
cd aquamarine || exit 1
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B ./build
|
||||
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
|
||||
BUILD_DIR="$BUILD_ROOT/aquamarine"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B "$BUILD_DIR"
|
||||
cmake --build "$BUILD_DIR" --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
|
||||
if [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
|
||||
printf "${OK} ${MAGENTA}aquamarine $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo -e "${ERROR} Installation failed for ${YELLOW}aquamarine $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||
|
||||
@ -55,9 +55,11 @@ fi
|
||||
printf "${NOTE} Installing hyprcursor...\n"
|
||||
if git clone --recursive -b $tag https://github.com/hyprwm/hyprcursor.git; then
|
||||
cd hyprcursor || exit 1
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build
|
||||
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
|
||||
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||
BUILD_DIR="$BUILD_ROOT/hyprcursor"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B "$BUILD_DIR"
|
||||
cmake --build "$BUILD_DIR" --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
|
||||
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
|
||||
printf "${OK} hyprcursor installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo -e "${ERROR} Installation failed for hyprcursor." 2>&1 | tee -a "$MLOG"
|
||||
|
||||
@ -62,10 +62,12 @@ fi
|
||||
printf "${INFO} Installing ${YELLOW}hyprgraphics $tag${RESET} ...\n"
|
||||
if git clone --recursive -b $tag https://github.com/hyprwm/hyprgraphics.git; then
|
||||
cd hyprgraphics || exit 1
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build
|
||||
cmake --build ./build --config Release --target hyprgraphics -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
|
||||
BUILD_DIR="$BUILD_ROOT/hyprgraphics"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B "$BUILD_DIR"
|
||||
cmake --build "$BUILD_DIR" --config Release --target hyprgraphics -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
|
||||
if [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
|
||||
printf "${OK} ${MAGENTA}hyprgraphics $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo -e "${ERROR} Installation failed for ${YELLOW}hyprgraphics $graphics${RESET}" 2>&1 | tee -a "$MLOG"
|
||||
|
||||
@ -46,9 +46,11 @@ fi
|
||||
printf "${INFO} Installing ${YELLOW}hypridle $tag${RESET} ...\n"
|
||||
if git clone --recursive -b $tag https://github.com/hyprwm/hypridle.git; then
|
||||
cd hypridle || exit 1
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B ./build
|
||||
cmake --build ./build --config Release --target hypridle -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
|
||||
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||
BUILD_DIR="$BUILD_ROOT/hypridle"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B "$BUILD_DIR"
|
||||
cmake --build "$BUILD_DIR" --config Release --target hypridle -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
|
||||
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
|
||||
printf "${OK} ${MAGENTA}hypridle $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo -e "${ERROR} Installation failed for ${YELLOW}hypridle $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||
|
||||
@ -79,10 +79,12 @@ if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-guiutils.git
|
||||
export LDFLAGS="-L/usr/local/lib -Wl,-rpath,/usr/local/lib -Wl,-rpath-link,/usr/local/lib ${LDFLAGS:-}"
|
||||
export CPPFLAGS="-I/usr/local/include ${CPPFLAGS:-}"
|
||||
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B ./build
|
||||
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
|
||||
BUILD_DIR="$BUILD_ROOT/hyprland-guiutils"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B "$BUILD_DIR"
|
||||
cmake --build "$BUILD_DIR" --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
|
||||
if [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
|
||||
printf "${OK} ${MAGENTA}hyprland-guiutils $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo -e "${ERROR} Installation failed for ${YELLOW}hyprland-guiutils $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||
|
||||
@ -50,9 +50,11 @@ fi
|
||||
printf "${INFO} Installing ${YELLOW}hyprland-protocols $tag${RESET} ...\n"
|
||||
if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-protocols.git; then
|
||||
cd hyprland-protocols || exit 1
|
||||
meson setup build
|
||||
BUILD_DIR="$BUILD_ROOT/hyprland-protocols"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
meson setup "$BUILD_DIR"
|
||||
if [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo meson install -C build 2>&1 | tee -a "$MLOG" ; then
|
||||
if sudo meson install -C "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
|
||||
printf "${OK} ${MAGENTA}hyprland-protocols $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo -e "${ERROR} Installation failed for ${YELLOW}hyprland-protocols $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||
|
||||
@ -70,10 +70,12 @@ fi
|
||||
printf "${INFO} Installing ${YELLOW}hyprland-qt-support $tag${RESET} ...\n"
|
||||
if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-qt-support.git; then
|
||||
cd hyprland-qt-support || exit 1
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build
|
||||
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
|
||||
BUILD_DIR="$BUILD_ROOT/hyprland-qt-support"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B "$BUILD_DIR"
|
||||
cmake --build "$BUILD_DIR" --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
|
||||
if [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
|
||||
printf "${OK} ${MAGENTA}hyprland-qt-support $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo -e "${ERROR} Installation failed for ${YELLOW}hyprland-qt-support $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
# Main Hyprland Package#
|
||||
|
||||
#specific branch or release
|
||||
tag="v0.53.0"
|
||||
tag="v0.53.2"
|
||||
# Auto-source centralized tags if env is unset
|
||||
if [ -z "${HYPRLAND_TAG:-}" ]; then
|
||||
TAGS_FILE="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)/hypr-tags.env"
|
||||
@ -81,6 +81,8 @@ fi
|
||||
|
||||
if git clone --recursive -b $tag "https://github.com/hyprwm/Hyprland"; then
|
||||
cd "Hyprland" || exit 1
|
||||
BUILD_DIR="$BUILD_ROOT/hyprland"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
|
||||
# Compatibility shim for toolchains without std::vector::{insert_range,append_range}
|
||||
RANGE_HDR="$(pwd)/hypr_range_compat.hpp"
|
||||
@ -179,17 +181,27 @@ EOF
|
||||
-DCMAKE_CXX_FLAGS="-Wno-unknown-warning-option -include ${RANGE_HDR}"
|
||||
"${SYSTEM_FLAGS[@]}"
|
||||
)
|
||||
cmake -S . -B build "${CONFIG_FLAGS[@]}"
|
||||
cmake --build build -j "$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)"
|
||||
cmake -S . -B "$BUILD_DIR" "${CONFIG_FLAGS[@]}"
|
||||
cmake --build "$BUILD_DIR" -j "$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)"
|
||||
|
||||
if [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo cmake --install build 2>&1 | tee -a "$MLOG"; then
|
||||
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG"; then
|
||||
printf "${OK} ${MAGENTA}Hyprland tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
|
||||
# Update version header file for tools like fastfetch that read it at runtime
|
||||
printf "${NOTE} Updating system version header for Hyprland...\n"
|
||||
if [ -f ./build/hyprland ]; then
|
||||
VER_OUTPUT=$(./build/hyprland --version)
|
||||
VER_OUTPUT=""
|
||||
if [ -x "$BUILD_DIR/Hyprland" ]; then
|
||||
VER_OUTPUT=$("$BUILD_DIR/Hyprland" --version)
|
||||
elif [ -x "$BUILD_DIR/hyprland" ]; then
|
||||
VER_OUTPUT=$("$BUILD_DIR/hyprland" --version)
|
||||
elif command -v Hyprland >/dev/null 2>&1; then
|
||||
VER_OUTPUT=$(Hyprland --version)
|
||||
elif command -v hyprctl >/dev/null 2>&1; then
|
||||
VER_OUTPUT=$(hyprctl version)
|
||||
fi
|
||||
|
||||
if [ -n "$VER_OUTPUT" ]; then
|
||||
VERSION=$(printf '%s' "$VER_OUTPUT" | head -n1 | awk '{print $2}')
|
||||
COMMIT=$(printf '%s' "$VER_OUTPUT" | grep -oP 'commit \K[a-f0-9]+' | head -1)
|
||||
TAG=$(printf '%s' "$VER_OUTPUT" | grep -oP 'Tag: \K[^,]+' | head -1)
|
||||
@ -247,13 +259,35 @@ EOF
|
||||
printf '%s\n' "#define HYPRUTILS_VERSION \"$HYPRUTILS_VER\"" >> /tmp/version_header.h.tmp
|
||||
printf '%s\n' "#define HYPRCURSOR_VERSION \"$HYPRCURSOR_VER\"" >> /tmp/version_header.h.tmp
|
||||
printf '%s\n' "#define HYPRGRAPHICS_VERSION \"$HYPRGRAPHICS_VER\"" >> /tmp/version_header.h.tmp
|
||||
|
||||
if sudo mv /tmp/version_header.h.tmp /usr/include/hyprland/src/version.h 2>&1 | tee -a "$MLOG"; then
|
||||
|
||||
TARGETS=()
|
||||
if [ -f /usr/local/include/hyprland/src/version.h ]; then
|
||||
TARGETS+=(/usr/local/include/hyprland/src/version.h)
|
||||
fi
|
||||
if [ -f /usr/include/hyprland/src/version.h ]; then
|
||||
# If both exist, keep /usr/include in sync to avoid fastfetch mismatch.
|
||||
TARGETS+=(/usr/include/hyprland/src/version.h)
|
||||
fi
|
||||
if [ ${#TARGETS[@]} -eq 0 ]; then
|
||||
# Default to /usr/local if neither header exists yet.
|
||||
TARGETS+=(/usr/local/include/hyprland/src/version.h)
|
||||
fi
|
||||
|
||||
UPDATED=0
|
||||
for tgt in "${TARGETS[@]}"; do
|
||||
if sudo install -d "$(dirname "$tgt")" && sudo cp /tmp/version_header.h.tmp "$tgt" 2>&1 | tee -a "$MLOG"; then
|
||||
UPDATED=1
|
||||
fi
|
||||
done
|
||||
|
||||
if [ $UPDATED -eq 1 ]; then
|
||||
printf "${OK} System version header updated to $VERSION\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
printf "${NOTE} Could not update system version header (non-critical)\n" 2>&1 | tee -a "$MLOG"
|
||||
fi
|
||||
rm -f /tmp/version_header.h.tmp
|
||||
else
|
||||
printf "${NOTE} Could not determine Hyprland version output for header update (non-critical)\n" 2>&1 | tee -a "$MLOG"
|
||||
fi
|
||||
else
|
||||
echo -e "${ERROR} Installation failed for ${YELLOW}Hyprland $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||
|
||||
@ -50,10 +50,12 @@ fi
|
||||
printf "${INFO} Installing ${YELLOW}hyprlang $tag${RESET} ...\n"
|
||||
if git clone --recursive -b $tag https://github.com/hyprwm/hyprlang.git; then
|
||||
cd hyprlang || exit 1
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B ./build
|
||||
cmake --build ./build --config Release --target hyprlang -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
|
||||
BUILD_DIR="$BUILD_ROOT/hyprlang"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B "$BUILD_DIR"
|
||||
cmake --build "$BUILD_DIR" --config Release --target hyprlang -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
|
||||
if [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
|
||||
printf "${OK} ${MAGENTA}hyprlang tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo -e "${ERROR} Installation failed for ${YELLOW}hyprlang $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||
|
||||
@ -55,9 +55,11 @@ fi
|
||||
printf "${INFO} Installing ${YELLOW}hyprlock $tag${RESET} ...\n"
|
||||
if git clone --recursive -b $tag https://github.com/hyprwm/hyprlock.git; then
|
||||
cd hyprlock || exit 1
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B ./build
|
||||
cmake --build ./build --config Release --target hyprlock -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
|
||||
if sudo cmake --install build 2>&1 | tee -a "$MLOG" ; then
|
||||
BUILD_DIR="$BUILD_ROOT/hyprlock"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B "$BUILD_DIR"
|
||||
cmake --build "$BUILD_DIR" --config Release --target hyprlock -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
|
||||
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
|
||||
printf "${OK} ${YELLOW}hyprlock $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo -e "${ERROR} Installation failed for ${YELLOW}hyprlock $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||
|
||||
@ -53,9 +53,11 @@ fi
|
||||
printf "${NOTE} Installing hyprpolkitagent...\n"
|
||||
if git clone --recursive -b $tag https://github.com/hyprwm/hyprpolkitagent.git; then
|
||||
cd hyprpolkitagent || exit 1
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build
|
||||
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
|
||||
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||
BUILD_DIR="$BUILD_ROOT/hyprpolkitagent"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B "$BUILD_DIR"
|
||||
cmake --build "$BUILD_DIR" --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
|
||||
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
|
||||
printf "${OK} hyprpolkitagent installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo -e "${ERROR} Installation failed for hyprpolkitagent." 2>&1 | tee -a "$MLOG"
|
||||
|
||||
@ -48,10 +48,12 @@ fi
|
||||
|
||||
if git clone -b $tag "https://github.com/hyprwm/hyprtoolkit.git"; then
|
||||
cd "hyprtoolkit" || exit 1
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B ./build
|
||||
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
|
||||
BUILD_DIR="$BUILD_ROOT/hyprtoolkit"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B "$BUILD_DIR"
|
||||
cmake --build "$BUILD_DIR" --config Release --target all -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
|
||||
if [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo cmake --install build 2>&1 | tee -a "$MLOG"; then
|
||||
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG"; then
|
||||
printf "${OK} hyprtoolkit installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo -e "${ERROR} Installation failed for hyprtoolkit." 2>&1 | tee -a "$MLOG"
|
||||
|
||||
@ -51,10 +51,12 @@ fi
|
||||
|
||||
if git clone -b $tag "https://github.com/hyprwm/hyprutils.git"; then
|
||||
cd "hyprutils" || exit 1
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B ./build
|
||||
cmake --build ./build --config Release --target all -j$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)
|
||||
BUILD_DIR="$BUILD_ROOT/hyprutils"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B "$BUILD_DIR"
|
||||
cmake --build "$BUILD_DIR" --config Release --target all -j$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)
|
||||
if [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo cmake --install build 2>&1 | tee -a "$MLOG"; then
|
||||
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG"; then
|
||||
printf "${OK} hyprutils installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo -e "${ERROR} Installation failed for hyprutils." 2>&1 | tee -a "$MLOG"
|
||||
|
||||
@ -65,10 +65,12 @@ fi
|
||||
printf "${NOTE} Installing hyprwayland-scanner...\n"
|
||||
if git clone --recursive -b $tag https://github.com/hyprwm/hyprwayland-scanner.git; then
|
||||
cd hyprwayland-scanner || exit 1
|
||||
cmake -DCMAKE_INSTALL_PREFIX=/usr -B build
|
||||
cmake --build build -j `nproc`
|
||||
BUILD_DIR="$BUILD_ROOT/hyprwayland-scanner"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
cmake -DCMAKE_INSTALL_PREFIX=/usr -B "$BUILD_DIR"
|
||||
cmake --build "$BUILD_DIR" -j `nproc`
|
||||
if [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo cmake --install build 2>&1 | tee -a "$MLOG" ; then
|
||||
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
|
||||
printf "${OK} hyprwayland-scanner installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo -e "${ERROR} Installation failed for hyprwayland-scanner." 2>&1 | tee -a "$MLOG"
|
||||
|
||||
@ -70,6 +70,8 @@ fi
|
||||
# Clone and build
|
||||
if git clone --recursive -b "$tag" https://github.com/hyprwm/hyprwire.git; then
|
||||
cd hyprwire || exit 1
|
||||
BUILD_DIR="$BUILD_ROOT/hyprwire"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
|
||||
# Decide whether we need the append_range compatibility shim.
|
||||
# On Debian 13 (trixie), libstdc++ typically lacks std::vector::append_range, so we patch.
|
||||
@ -131,14 +133,14 @@ EOF
|
||||
# Absolute path for forced include
|
||||
APPEND_HDR="$(pwd)/append_range_compat.hpp"
|
||||
|
||||
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_STANDARD=23 -DCMAKE_CXX_FLAGS="-include ${APPEND_HDR}"
|
||||
cmake -S . -B "$BUILD_DIR" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_STANDARD=23 -DCMAKE_CXX_FLAGS="-include ${APPEND_HDR}"
|
||||
else
|
||||
echo "${NOTE} Toolchain supports std::vector::append_range; building hyprwire without shim."
|
||||
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_STANDARD=23
|
||||
cmake -S . -B "$BUILD_DIR" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_STANDARD=23
|
||||
fi
|
||||
cmake --build build -j "$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)"
|
||||
cmake --build "$BUILD_DIR" -j "$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)"
|
||||
if [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo cmake --install build 2>&1 | tee -a "$MLOG" ; then
|
||||
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
|
||||
printf "${OK} hyprwire $tag installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo -e "${ERROR} Installation failed for hyprwire $tag" 2>&1 | tee -a "$MLOG"
|
||||
|
||||
@ -183,32 +183,33 @@ fi
|
||||
# Configure with Ninja; enable RelWithDebInfo, leave features ON (deps installed above)
|
||||
CMAKE_FLAGS=(
|
||||
-GNinja
|
||||
-B build
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo
|
||||
-DDISTRIBUTOR="Debian-Hyprland installer"
|
||||
)
|
||||
|
||||
note "Configuring Quickshell (CMake)..."
|
||||
# Use explicit source/build dirs and preserve cmake exit code with pipefail
|
||||
if ! cmake -S . -B build "${CMAKE_FLAGS[@]}" 2>&1 | tee -a "$MLOG"; then
|
||||
BUILD_DIR="$BUILD_ROOT/quickshell"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
if ! cmake -S . -B "$BUILD_DIR" "${CMAKE_FLAGS[@]}" 2>&1 | tee -a "$MLOG"; then
|
||||
echo "${ERROR} CMake configure failed. See log: $MLOG" | tee -a "$LOG"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Ensure build files exist before invoking ninja
|
||||
if [ ! -f build/build.ninja ]; then
|
||||
if [ ! -f "$BUILD_DIR/build.ninja" ]; then
|
||||
echo "${ERROR} build/build.ninja not generated; aborting build." | tee -a "$LOG"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
note "Building Quickshell (Ninja)..."
|
||||
if ! cmake --build build 2>&1 | tee -a "$MLOG"; then
|
||||
if ! cmake --build "$BUILD_DIR" 2>&1 | tee -a "$MLOG"; then
|
||||
echo "${ERROR} Build failed. See log: $MLOG" | tee -a "$LOG"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
note "Installing Quickshell..."
|
||||
if ! sudo cmake --install build 2>&1 | tee -a "$MLOG"; then
|
||||
if ! sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG"; then
|
||||
echo "${ERROR} Installation failed. See log: $MLOG" | tee -a "$LOG"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@ -85,8 +85,10 @@ fi
|
||||
cd rofi-$rofi_tag || exit 1
|
||||
|
||||
# Proceed with the installation steps
|
||||
if meson setup build && ninja -C build ; then
|
||||
if sudo ninja -C build install 2>&1 | tee -a "$MLOG"; then
|
||||
BUILD_DIR="$BUILD_ROOT/rofi-$rofi_tag"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
if meson setup "$BUILD_DIR" && ninja -C "$BUILD_DIR" ; then
|
||||
if sudo ninja -C "$BUILD_DIR" install 2>&1 | tee -a "$MLOG"; then
|
||||
printf "${OK} rofi-wayland installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo -e "${ERROR} Installation failed for ${YELLOW}rofi-wayland $rofi_tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||
|
||||
@ -67,10 +67,12 @@ if git clone --depth=1 --filter=blob:none "$repo_url" wayland-protocols; then
|
||||
exit 1
|
||||
fi
|
||||
# Install to /usr/local so pkg-config can prefer it over distro /usr
|
||||
meson setup build --prefix=/usr/local
|
||||
meson compile -C build -j"$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)"
|
||||
BUILD_DIR="$BUILD_ROOT/wayland-protocols"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
meson setup "$BUILD_DIR" --prefix=/usr/local
|
||||
meson compile -C "$BUILD_DIR" -j"$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)"
|
||||
if [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo meson install -C build 2>&1 | tee -a "$MLOG" ; then
|
||||
if sudo meson install -C "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
|
||||
printf "${OK} ${MAGENTA}wayland-protocols $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo -e "${ERROR} Installation failed for ${YELLOW}wayland-protocols $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||
|
||||
@ -56,9 +56,11 @@ fi
|
||||
|
||||
if git clone --recursive -b $tag "https://github.com/hyprwm/xdg-desktop-portal-hyprland.git"; then
|
||||
cd "xdg-desktop-portal-hyprland" || exit 1
|
||||
cmake -DCMAKE_INSTALL_LIBEXECDIR=/usr/lib -DCMAKE_INSTALL_PREFIX=/usr -B build
|
||||
cmake --build build
|
||||
if sudo cmake --install build 2>&1 | tee -a "$MLOG"; then
|
||||
BUILD_DIR="$BUILD_ROOT/xdg-desktop-portal-hyprland"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
cmake -DCMAKE_INSTALL_LIBEXECDIR=/usr/lib -DCMAKE_INSTALL_PREFIX=/usr -B "$BUILD_DIR"
|
||||
cmake --build "$BUILD_DIR"
|
||||
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG"; then
|
||||
printf "${OK} ${MAGENTA}xdph $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo -e "${ERROR} Installation failed for ${YELLOW}xdph $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||
|
||||
@ -50,9 +50,11 @@ fi
|
||||
printf "${NOTE} Installing xkbcommon...\n"
|
||||
if git clone --recursive -b $tag https://github.com/xkbcommon/libxkbcommon.git; then
|
||||
cd libxkbcommon || exit 1
|
||||
meson setup build --libdir=/usr/local/lib
|
||||
meson compile -C build
|
||||
if sudo meson install -C build 2>&1 | tee -a "$MLOG" ; then
|
||||
BUILD_DIR="$BUILD_ROOT/libxkbcommon"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
meson setup "$BUILD_DIR" --libdir=/usr/local/lib
|
||||
meson compile -C "$BUILD_DIR"
|
||||
if sudo meson install -C "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
|
||||
printf "${OK} xkbcommon installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo -e "${ERROR} Installation failed for xkbcommon." 2>&1 | tee -a "$MLOG"
|
||||
|
||||
@ -53,7 +53,7 @@ done
|
||||
if [[ ! -f "$TAGS_FILE" ]]; then
|
||||
cat > "$TAGS_FILE" <<'EOF'
|
||||
# Default Hyprland stack versions
|
||||
HYPRLAND_TAG=v0.53.1
|
||||
HYPRLAND_TAG=v0.53.2
|
||||
AQUAMARINE_TAG=v0.10.0
|
||||
HYPRUTILS_TAG=v0.11.0
|
||||
HYPRLANG_TAG=v0.6.8
|
||||
|
||||
@ -103,7 +103,7 @@ ensure_tags_file() {
|
||||
cat >"$TAGS_FILE" <<'EOF'
|
||||
# Default Hyprland stack versions
|
||||
# (You can override any of these via --set or by editing hypr-tags.env.)
|
||||
HYPRLAND_TAG=v0.53.1
|
||||
HYPRLAND_TAG=v0.53.2
|
||||
AQUAMARINE_TAG=v0.10.0
|
||||
HYPRUTILS_TAG=v0.11.0
|
||||
HYPRLANG_TAG=v0.6.8
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user