mirror of
https://github.com/JaKooLit/Debian-Hyprland.git
synced 2026-02-05 09:40:14 +01:00
Compare commits
No commits in common. "c2a7c16cf4804f29a859b629be470fd6aac6659b" and "131fc3b37036690ab7a6e156b57bff2aa259dbbc" have entirely different histories.
c2a7c16cf4
...
131fc3b370
@ -3,16 +3,14 @@
|
|||||||
## 02 January 2026
|
## 02 January 2026
|
||||||
|
|
||||||
- Updated:
|
- Updated:
|
||||||
- Default Hyprland stack versions now target 0.53.1 (see `hypr-tags.env`)
|
- `update-hyprland.sh` pinned to v0.52.2
|
||||||
- Added trixie compatibility mode flags:
|
- Currently only Debian testing and SID branches build v0.53+
|
||||||
- `--build-trixie` / `--no-trixie` (auto-detected on Debian 13)
|
- Added `--force-update` to refresh the pacakge versions if pinned
|
||||||
- Added `--force-update` to refresh pinned package versions
|
- This is only for debian testing+ versions
|
||||||
- `update-hyprland.sh` added `-/--help`
|
- `update-hyprland.sh` added `-/--help`
|
||||||
- Documentation for updating hyprland
|
- documentation for updating hyprland
|
||||||
- Added:
|
- Added: version update to `refresh-tags` and `update-hyprland` script
|
||||||
- Version refresh improvements for `refresh-hypr-tags.sh` (accepts `--get-latest`, retries transient GitHub errors)
|
- Fixed: `--force-update` implies `--fetch-latest`
|
||||||
- Fixed:
|
|
||||||
- `--force-update` implies `--fetch-latest`
|
|
||||||
|
|
||||||
## 10 December 2025
|
## 10 December 2025
|
||||||
|
|
||||||
|
|||||||
@ -6,15 +6,13 @@ Esta guía cubre los flujos de instalación y actualización mejorados para el p
|
|||||||
|
|
||||||
1. [Resumen](#resumen)
|
1. [Resumen](#resumen)
|
||||||
2. [Nuevas Funciones](#nuevas-funciones)
|
2. [Nuevas Funciones](#nuevas-funciones)
|
||||||
3. [Referencia de Flags](#referencia-de-flags)
|
3. [Gestión Central de Versiones](#gestión-central-de-versiones)
|
||||||
4. [Modo de Compatibilidad Debian 13 (Trixie)](#modo-de-compatibilidad-debian-13-trixie)
|
4. [Métodos de Instalación](#métodos-de-instalación)
|
||||||
5. [Gestión Central de Versiones](#gestión-central-de-versiones)
|
5. [Flujos de Actualización](#flujos-de-actualización)
|
||||||
6. [Métodos de Instalación](#métodos-de-instalación)
|
6. [Pruebas con Dry-Run](#pruebas-con-dry-run)
|
||||||
7. [Flujos de Actualización](#flujos-de-actualización)
|
7. [Gestión de Logs](#gestión-de-logs)
|
||||||
8. [Pruebas con Dry-Run](#pruebas-con-dry-run)
|
8. [Uso Avanzado](#uso-avanzado)
|
||||||
9. [Gestión de Logs](#gestión-de-logs)
|
9. [Solución de Problemas](#solución-de-problemas)
|
||||||
10. [Uso Avanzado](#uso-avanzado)
|
|
||||||
11. [Solución de Problemas](#solución-de-problemas)
|
|
||||||
|
|
||||||
## Resumen
|
## Resumen
|
||||||
|
|
||||||
@ -29,7 +27,6 @@ El proyecto Debian-Hyprland ahora incluye herramientas de automatización y gest
|
|||||||
## Nuevas Funciones
|
## Nuevas Funciones
|
||||||
|
|
||||||
### install.sh mejorado
|
### install.sh mejorado
|
||||||
|
|
||||||
El script original ahora:
|
El script original ahora:
|
||||||
|
|
||||||
- **Unifica versiones**: Lee `hypr-tags.env` y exporta variables de versión a todos los módulos
|
- **Unifica versiones**: Lee `hypr-tags.env` y exporta variables de versión a todos los módulos
|
||||||
@ -39,126 +36,48 @@ El script original ahora:
|
|||||||
### Nuevos Scripts
|
### Nuevos Scripts
|
||||||
|
|
||||||
#### update-hyprland.sh
|
#### update-hyprland.sh
|
||||||
|
|
||||||
Herramienta enfocada para gestionar y compilar solo el stack de Hyprland:
|
Herramienta enfocada para gestionar y compilar solo el stack de Hyprland:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
chmod +x ./update-hyprland.sh
|
chmod +x ./update-hyprland.sh
|
||||||
./update-hyprland.sh --help # Ver todas las opciones
|
./update-hyprland.sh --help # Ver todas las opciones
|
||||||
```
|
```
|
||||||
|
|
||||||
Flags clave:
|
Flags clave:
|
||||||
|
|
||||||
- --fetch-latest: obtiene las últimas etiquetas desde GitHub
|
- --fetch-latest: obtiene las últimas etiquetas desde GitHub
|
||||||
- --force-update: sobrescribe valores fijados en hypr-tags.env (equivalente a FORCE=1)
|
- --force-update: sobrescribe valores fijados en hypr-tags.env (equivalente a FORCE=1)
|
||||||
- --dry-run / --install: solo compilar o compilar+instalar
|
- --dry-run / --install: solo compilar o compilar+instalar
|
||||||
- --only / --skip: limitar qué módulos se ejecutan
|
- --only / --skip: limitar qué módulos se ejecutan
|
||||||
- --build-trixie / --no-trixie: habilita/deshabilita el modo de compatibilidad Debian 13 (auto-detectado por defecto)
|
|
||||||
|
|
||||||
#### dry-run-build.sh
|
#### dry-run-build.sh
|
||||||
|
|
||||||
Herramienta de pruebas que compila componentes sin instalarlos:
|
Herramienta de pruebas que compila componentes sin instalarlos:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
chmod +x ./dry-run-build.sh
|
chmod +x ./dry-run-build.sh
|
||||||
./dry-run-build.sh --help # Ver todas las opciones
|
./dry-run-build.sh --help # Ver todas las opciones
|
||||||
```
|
```
|
||||||
|
|
||||||
#### wayland-protocols-src.sh
|
#### wayland-protocols-src.sh
|
||||||
|
|
||||||
Módulo que compila wayland-protocols desde el origen para satisfacer los requisitos de Hyprland 0.51.x.
|
Módulo que compila wayland-protocols desde el origen para satisfacer los requisitos de Hyprland 0.51.x.
|
||||||
|
|
||||||
## Referencia de Flags
|
|
||||||
|
|
||||||
Este repo incluye varios "flags de control" que afectan cómo se compila/instala el stack.
|
|
||||||
|
|
||||||
### Flags de update-hyprland.sh
|
|
||||||
|
|
||||||
- `--install` / `--dry-run`: compilar+instalar vs solo compilar
|
|
||||||
- `--only <lista>` / `--skip <lista>`: ejecutar solo un subconjunto de módulos
|
|
||||||
- `--fetch-latest`: consulta GitHub Releases y refresca etiquetas
|
|
||||||
- `--force-update`: sobrescribe valores fijados en `hypr-tags.env` (equivalente a `FORCE=1`)
|
|
||||||
- `--build-trixie` / `--no-trixie`: habilita/deshabilita modo de compatibilidad Debian 13
|
|
||||||
|
|
||||||
Notas:
|
|
||||||
- Cuando el modo trixie está habilitado, `update-hyprland.sh` exporta `HYPR_BUILD_TRIXIE=1` y reenvía `--build-trixie` a los scripts de módulos.
|
|
||||||
|
|
||||||
### Flags de install.sh
|
|
||||||
|
|
||||||
- `--preset <archivo>`: ejecutar con elecciones predefinidas
|
|
||||||
- `--build-trixie` / `--no-trixie`: habilita/deshabilita modo de compatibilidad Debian 13
|
|
||||||
|
|
||||||
También puedes forzar por variable de entorno:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
HYPR_BUILD_TRIXIE=1 ./install.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
### Flags de refresh-hypr-tags.sh
|
|
||||||
|
|
||||||
- `--get-latest`: refresca etiquetas a las últimas releases de GitHub (alias)
|
|
||||||
- `--force-update`: forzar sobrescritura de valores fijados
|
|
||||||
|
|
||||||
Equivalente con variable de entorno:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
FORCE=1 ./refresh-hypr-tags.sh --get-latest
|
|
||||||
```
|
|
||||||
|
|
||||||
## Modo de Compatibilidad Debian 13 (Trixie)
|
|
||||||
|
|
||||||
Versiones nuevas de Hyprland (0.53.x+) pueden requerir shims de compatibilidad en Debian 13 (trixie) debido a diferencias del toolchain/stdlib.
|
|
||||||
|
|
||||||
- Por defecto es **auto-detectado** (vía `/etc/os-release`): si `ID=debian` y `VERSION_CODENAME=trixie`, el modo se habilita.
|
|
||||||
- Puedes forzarlo ON/OFF:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Forzar ON
|
|
||||||
./update-hyprland.sh --build-trixie --install
|
|
||||||
|
|
||||||
# Forzar OFF
|
|
||||||
./update-hyprland.sh --no-trixie --install
|
|
||||||
```
|
|
||||||
|
|
||||||
## Gestión Central de Versiones
|
## Gestión Central de Versiones
|
||||||
|
|
||||||
### hypr-tags.env
|
### hypr-tags.env
|
||||||
|
|
||||||
Archivo con etiquetas de versión para todos los componentes de Hyprland:
|
Archivo con etiquetas de versión para todos los componentes de Hyprland:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Versiones actuales (ejemplo)
|
# Versiones actuales (ejemplo)
|
||||||
HYPRLAND_TAG=v0.53.1
|
HYPRLAND_TAG=v0.51.1
|
||||||
AQUAMARINE_TAG=v0.10.0
|
AQUAMARINE_TAG=v0.9.3
|
||||||
HYPRUTILS_TAG=v0.11.0
|
HYPRUTILS_TAG=v0.8.2
|
||||||
HYPRLANG_TAG=v0.6.8
|
HYPRLANG_TAG=v0.6.4
|
||||||
HYPRGRAPHICS_TAG=v0.5.0
|
HYPRGRAPHICS_TAG=v0.1.5
|
||||||
HYPRTOOLKIT_TAG=v0.4.1
|
|
||||||
HYPRWAYLAND_SCANNER_TAG=v0.4.5
|
HYPRWAYLAND_SCANNER_TAG=v0.4.5
|
||||||
HYPRLAND_PROTOCOLS_TAG=v0.7.0
|
HYPRLAND_PROTOCOLS_TAG=v0.6.4
|
||||||
HYPRLAND_QT_SUPPORT_TAG=v0.1.0
|
HYPRLAND_QT_SUPPORT_TAG=v0.1.0
|
||||||
HYPRLAND_QTUTILS_TAG=v0.1.5
|
HYPRLAND_QTUTILS_TAG=v0.1.4
|
||||||
HYPRLAND_GUIUTILS_TAG=v0.2.0
|
WAYLAND_PROTOCOLS_TAG=1.45
|
||||||
HYPRWIRE_TAG=v0.2.1
|
|
||||||
WAYLAND_PROTOCOLS_TAG=1.46
|
|
||||||
```
|
|
||||||
|
|
||||||
### Refrescar etiquetas (últimas releases)
|
|
||||||
|
|
||||||
Puedes refrescar `hypr-tags.env` a las últimas etiquetas publicadas en GitHub:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Actualiza solo claves en auto/latest (o sin valor)
|
|
||||||
./refresh-hypr-tags.sh --get-latest
|
|
||||||
|
|
||||||
# Forzar sobrescritura de valores fijados
|
|
||||||
FORCE=1 ./refresh-hypr-tags.sh --get-latest
|
|
||||||
# o
|
|
||||||
./refresh-hypr-tags.sh --force-update
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Prioridad de Sobrescritura de Versiones
|
### Prioridad de Sobrescritura de Versiones
|
||||||
|
|
||||||
1. Variables de entorno (exportadas)
|
1. Variables de entorno (exportadas)
|
||||||
2. Valores en el archivo `hypr-tags.env`
|
2. Valores en el archivo `hypr-tags.env`
|
||||||
3. Valores por defecto en cada módulo
|
3. Valores por defecto en cada módulo
|
||||||
@ -166,7 +85,6 @@ FORCE=1 ./refresh-hypr-tags.sh --get-latest
|
|||||||
## Métodos de Instalación
|
## Métodos de Instalación
|
||||||
|
|
||||||
### Método 1: Instalación Completa Original
|
### Método 1: Instalación Completa Original
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Instalación estándar con todos los componentes
|
# Instalación estándar con todos los componentes
|
||||||
chmod +x install.sh
|
chmod +x install.sh
|
||||||
@ -174,20 +92,17 @@ chmod +x install.sh
|
|||||||
```
|
```
|
||||||
|
|
||||||
Ahora, este método automáticamente:
|
Ahora, este método automáticamente:
|
||||||
|
|
||||||
- Carga versiones desde `hypr-tags.env`
|
- Carga versiones desde `hypr-tags.env`
|
||||||
- Instala wayland-protocols desde el origen antes de Hyprland
|
- Instala wayland-protocols desde el origen antes de Hyprland
|
||||||
- Mantiene el orden correcto de dependencias
|
- Mantiene el orden correcto de dependencias
|
||||||
|
|
||||||
### Método 2: Solo el Stack de Hyprland
|
### Método 2: Solo el Stack de Hyprland
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Instala solo Hyprland y componentes esenciales
|
# Instala solo Hyprland y componentes esenciales
|
||||||
./update-hyprland.sh --install
|
./update-hyprland.sh --install
|
||||||
```
|
```
|
||||||
|
|
||||||
### Método 3: Instalación Nueva con Últimas Versiones
|
### Método 3: Instalación Nueva con Últimas Versiones
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Obtiene últimas versiones de GitHub e instala
|
# Obtiene últimas versiones de GitHub e instala
|
||||||
./update-hyprland.sh --fetch-latest --install
|
./update-hyprland.sh --fetch-latest --install
|
||||||
@ -197,7 +112,6 @@ Ahora, este método automáticamente:
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Método 4: Instalación con Preset
|
### Método 4: Instalación con Preset
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Usa un preset para elecciones automáticas
|
# Usa un preset para elecciones automáticas
|
||||||
./install.sh --preset ./preset.sh
|
./install.sh --preset ./preset.sh
|
||||||
@ -210,7 +124,6 @@ Enlace rápido: [Actualización 0.49/0.50.x → 0.51.1](#actualización-049050x-
|
|||||||
### Actualizar a la Última Versión de Hyprland
|
### Actualizar a la Última Versión de Hyprland
|
||||||
|
|
||||||
#### Opción A: Descubrimiento Automático
|
#### Opción A: Descubrimiento Automático
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Obtiene las últimas etiquetas e instala (respeta versiones fijadas en hypr-tags.env)
|
# Obtiene las últimas etiquetas e instala (respeta versiones fijadas en hypr-tags.env)
|
||||||
./update-hyprland.sh --fetch-latest --install
|
./update-hyprland.sh --fetch-latest --install
|
||||||
@ -220,14 +133,12 @@ Enlace rápido: [Actualización 0.49/0.50.x → 0.51.1](#actualización-049050x-
|
|||||||
```
|
```
|
||||||
|
|
||||||
#### Opción B: Versión Específica
|
#### Opción B: Versión Específica
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Establece una versión específica de Hyprland
|
# Establece una versión específica de Hyprland
|
||||||
./update-hyprland.sh --set HYPRLAND=v0.51.1 --install
|
./update-hyprland.sh --set HYPRLAND=v0.51.1 --install
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Opción C: Probar Antes de Instalar
|
#### Opción C: Probar Antes de Instalar
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Prueba la compilación primero, luego instala si es exitoso
|
# Prueba la compilación primero, luego instala si es exitoso
|
||||||
./update-hyprland.sh --fetch-latest --dry-run
|
./update-hyprland.sh --fetch-latest --dry-run
|
||||||
@ -260,7 +171,6 @@ Enlace rápido: [Actualización 0.49/0.50.x → 0.51.1](#actualización-049050x-
|
|||||||
Si actualmente estás en Hyprland 0.49 o 0.50.x, puedes actualizar directamente a 0.51.1 sin una reinstalación completa.
|
Si actualmente estás en Hyprland 0.49 o 0.50.x, puedes actualizar directamente a 0.51.1 sin una reinstalación completa.
|
||||||
|
|
||||||
Ruta recomendada:
|
Ruta recomendada:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Asegura que hypr-tags.env apunte a la versión objetivo (omitir si ya es v0.51.1)
|
# Asegura que hypr-tags.env apunte a la versión objetivo (omitir si ya es v0.51.1)
|
||||||
./update-hyprland.sh --set HYPRLAND=v0.51.1
|
./update-hyprland.sh --set HYPRLAND=v0.51.1
|
||||||
@ -270,17 +180,13 @@ Ruta recomendada:
|
|||||||
```
|
```
|
||||||
|
|
||||||
Notas:
|
Notas:
|
||||||
|
|
||||||
- El comando garantiza y ejecuta, según sea necesario: wayland-protocols-src, hyprland-protocols, hyprutils, hyprlang, aquamarine y luego hyprland.
|
- El comando garantiza y ejecuta, según sea necesario: wayland-protocols-src, hyprland-protocols, hyprutils, hyprlang, aquamarine y luego hyprland.
|
||||||
- No es necesario usar install.sh para esta actualización, a menos que también quieras instalar/actualizar módulos opcionales (p. ej., SDDM, Bluetooth, Thunar, AGS, dotfiles) o estés recuperándote de una instalación fallida/parcial.
|
- No es necesario usar install.sh para esta actualización, a menos que también quieras instalar/actualizar módulos opcionales (p. ej., SDDM, Bluetooth, Thunar, AGS, dotfiles) o estés recuperándote de una instalación fallida/parcial.
|
||||||
- Opcional: agrega --with-deps para reinstalar dependencias primero:
|
- Opcional: agrega --with-deps para reinstalar dependencias primero:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./update-hyprland.sh --with-deps --install --only hyprland
|
./update-hyprland.sh --with-deps --install --only hyprland
|
||||||
```
|
```
|
||||||
|
|
||||||
- Puedes hacer un dry-run primero para validar:
|
- Puedes hacer un dry-run primero para validar:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./update-hyprland.sh --dry-run --only hyprland
|
./update-hyprland.sh --dry-run --only hyprland
|
||||||
```
|
```
|
||||||
@ -288,7 +194,6 @@ Notas:
|
|||||||
## Pruebas con Dry-Run
|
## Pruebas con Dry-Run
|
||||||
|
|
||||||
### ¿Por qué usar Dry-Run?
|
### ¿Por qué usar Dry-Run?
|
||||||
|
|
||||||
- Probar compatibilidad de compilación antes de instalar
|
- Probar compatibilidad de compilación antes de instalar
|
||||||
- Validar combinaciones de versiones
|
- Validar combinaciones de versiones
|
||||||
- Depurar problemas de compilación sin cambios en el sistema
|
- Depurar problemas de compilación sin cambios en el sistema
|
||||||
@ -321,7 +226,6 @@ Notas:
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Limitaciones de Dry-Run
|
### Limitaciones de Dry-Run
|
||||||
|
|
||||||
- **Las dependencias se instalan**: apt se ejecuta para asegurar la compilación
|
- **Las dependencias se instalan**: apt se ejecuta para asegurar la compilación
|
||||||
- **Requisitos de pkg-config**: Algunos componentes necesitan requisitos instalados en el sistema
|
- **Requisitos de pkg-config**: Algunos componentes necesitan requisitos instalados en el sistema
|
||||||
- **Sin cambios en el sistema**: No instala archivos en /usr/local o /usr
|
- **Sin cambios en el sistema**: No instala archivos en /usr/local o /usr
|
||||||
@ -329,9 +233,7 @@ Notas:
|
|||||||
## Gestión de Logs
|
## Gestión de Logs
|
||||||
|
|
||||||
### Ubicación de Logs
|
### Ubicación de Logs
|
||||||
|
|
||||||
Todas las actividades de construcción generan logs con sello de tiempo en:
|
Todas las actividades de construcción generan logs con sello de tiempo en:
|
||||||
|
|
||||||
```
|
```
|
||||||
Install-Logs/
|
Install-Logs/
|
||||||
├── 01-Hyprland-Install-Scripts-YYYY-MM-DD-HHMMSS.log # Log principal de instalación
|
├── 01-Hyprland-Install-Scripts-YYYY-MM-DD-HHMMSS.log # Log principal de instalación
|
||||||
@ -341,7 +243,6 @@ Install-Logs/
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Análisis de Logs
|
### Análisis de Logs
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Ver el log de instalación más reciente
|
# Ver el log de instalación más reciente
|
||||||
ls -t Install-Logs/*.log | head -1 | xargs less
|
ls -t Install-Logs/*.log | head -1 | xargs less
|
||||||
@ -354,10 +255,8 @@ cat Install-Logs/build-dry-run-*.log
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Retención de Logs
|
### Retención de Logs
|
||||||
|
|
||||||
- Los logs se acumulan con el tiempo para referencia histórica
|
- Los logs se acumulan con el tiempo para referencia histórica
|
||||||
- Se recomienda limpieza manual periódica:
|
- Se recomienda limpieza manual periódica:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Mantener solo logs de los últimos 30 días
|
# Mantener solo logs de los últimos 30 días
|
||||||
find Install-Logs/ -name "*.log" -mtime +30 -delete
|
find Install-Logs/ -name "*.log" -mtime +30 -delete
|
||||||
@ -368,7 +267,6 @@ find Install-Logs/ -name "*.log" -mtime +30 -delete
|
|||||||
### Gestión de Versiones
|
### Gestión de Versiones
|
||||||
|
|
||||||
#### Forzar la Actualización de Todas las Etiquetas
|
#### Forzar la Actualización de Todas las Etiquetas
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Sobrescribe valores fijados en hypr-tags.env con las últimas versiones
|
# Sobrescribe valores fijados en hypr-tags.env con las últimas versiones
|
||||||
./update-hyprland.sh --fetch-latest --force-update --dry-run
|
./update-hyprland.sh --fetch-latest --force-update --dry-run
|
||||||
@ -377,7 +275,6 @@ find Install-Logs/ -name "*.log" -mtime +30 -delete
|
|||||||
```
|
```
|
||||||
|
|
||||||
#### Copia de Seguridad y Restauración
|
#### Copia de Seguridad y Restauración
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Las etiquetas se respaldan automáticamente cuando cambian
|
# Las etiquetas se respaldan automáticamente cuando cambian
|
||||||
# Restaurar la copia más reciente
|
# Restaurar la copia más reciente
|
||||||
@ -385,7 +282,6 @@ find Install-Logs/ -name "*.log" -mtime +30 -delete
|
|||||||
```
|
```
|
||||||
|
|
||||||
#### Múltiples Conjuntos de Versiones
|
#### Múltiples Conjuntos de Versiones
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Guardar configuración actual
|
# Guardar configuración actual
|
||||||
cp hypr-tags.env hypr-tags-stable.env
|
cp hypr-tags.env hypr-tags-stable.env
|
||||||
@ -400,7 +296,6 @@ cp hypr-tags-stable.env hypr-tags.env
|
|||||||
### Integración con el Entorno
|
### Integración con el Entorno
|
||||||
|
|
||||||
#### PKG_CONFIG_PATH personalizado
|
#### PKG_CONFIG_PATH personalizado
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Asegurar que /usr/local tenga prioridad
|
# Asegurar que /usr/local tenga prioridad
|
||||||
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:${PKG_CONFIG_PATH:-}"
|
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:${PKG_CONFIG_PATH:-}"
|
||||||
@ -408,7 +303,6 @@ export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:${PK
|
|||||||
```
|
```
|
||||||
|
|
||||||
#### Compilaciones en Paralelo
|
#### Compilaciones en Paralelo
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Controlar el paralelismo (por defecto: todos los núcleos)
|
# Controlar el paralelismo (por defecto: todos los núcleos)
|
||||||
export MAKEFLAGS="-j4"
|
export MAKEFLAGS="-j4"
|
||||||
@ -418,7 +312,6 @@ export MAKEFLAGS="-j4"
|
|||||||
### Flujo de Trabajo de Desarrollo
|
### Flujo de Trabajo de Desarrollo
|
||||||
|
|
||||||
#### Probar Nuevos Lanzamientos
|
#### Probar Nuevos Lanzamientos
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. Crear entorno de pruebas
|
# 1. Crear entorno de pruebas
|
||||||
cp hypr-tags.env hypr-tags.backup
|
cp hypr-tags.env hypr-tags.backup
|
||||||
@ -434,7 +327,6 @@ cp hypr-tags.env hypr-tags.backup
|
|||||||
```
|
```
|
||||||
|
|
||||||
#### Desarrollo de Componentes
|
#### Desarrollo de Componentes
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Solo instalar dependencias
|
# Solo instalar dependencias
|
||||||
./update-hyprland.sh --with-deps --dry-run
|
./update-hyprland.sh --with-deps --dry-run
|
||||||
@ -451,11 +343,9 @@ tail -f Install-Logs/install-*hyprland*.log
|
|||||||
### Problemas Comunes
|
### Problemas Comunes
|
||||||
|
|
||||||
#### Falla de Configuración con CMake
|
#### Falla de Configuración con CMake
|
||||||
|
|
||||||
**Síntomas**: "Package dependency requirement not satisfied"
|
**Síntomas**: "Package dependency requirement not satisfied"
|
||||||
|
|
||||||
**Soluciones**:
|
**Soluciones**:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Instalar requisitos faltantes
|
# Instalar requisitos faltantes
|
||||||
./update-hyprland.sh --install --only wayland-protocols-src,hyprutils,hyprlang
|
./update-hyprland.sh --install --only wayland-protocols-src,hyprutils,hyprlang
|
||||||
@ -468,11 +358,9 @@ rm -rf hyprland aquamarine hyprutils hyprlang
|
|||||||
```
|
```
|
||||||
|
|
||||||
#### Errores de Compilación
|
#### Errores de Compilación
|
||||||
|
|
||||||
**Síntomas**: "too many errors emitted"
|
**Síntomas**: "too many errors emitted"
|
||||||
|
|
||||||
**Soluciones**:
|
**Soluciones**:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Actualizar dependencias núcleo primero
|
# Actualizar dependencias núcleo primero
|
||||||
./update-hyprland.sh --fetch-latest --install --only hyprutils,hyprlang
|
./update-hyprland.sh --fetch-latest --install --only hyprutils,hyprlang
|
||||||
@ -482,11 +370,9 @@ grep -A5 -B5 "error:" Install-Logs/install-*hyprland*.log
|
|||||||
```
|
```
|
||||||
|
|
||||||
#### Etiqueta No Encontrada
|
#### Etiqueta No Encontrada
|
||||||
|
|
||||||
**Síntomas**: "Remote branch X not found"
|
**Síntomas**: "Remote branch X not found"
|
||||||
|
|
||||||
**Soluciones**:
|
**Soluciones**:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Ver etiquetas disponibles
|
# Ver etiquetas disponibles
|
||||||
git ls-remote --tags https://github.com/hyprwm/Hyprland
|
git ls-remote --tags https://github.com/hyprwm/Hyprland
|
||||||
@ -498,34 +384,31 @@ git ls-remote --tags https://github.com/hyprwm/Hyprland
|
|||||||
### Pasos de Depuración
|
### Pasos de Depuración
|
||||||
|
|
||||||
1. **Verificar compatibilidad del sistema**:
|
1. **Verificar compatibilidad del sistema**:
|
||||||
|
```bash
|
||||||
```bash
|
# Verificar versión de Debian
|
||||||
# Verificar versión de Debian
|
cat /etc/os-release
|
||||||
cat /etc/os-release
|
|
||||||
|
# Asegurar deb-src habilitado
|
||||||
# Asegurar deb-src habilitado
|
grep -E "^deb-src" /etc/apt/sources.list
|
||||||
grep -E "^deb-src" /etc/apt/sources.list
|
```
|
||||||
```
|
|
||||||
|
|
||||||
2. **Verificar entorno**:
|
2. **Verificar entorno**:
|
||||||
|
```bash
|
||||||
```bash
|
# Ver etiquetas actuales
|
||||||
# Ver etiquetas actuales
|
cat hypr-tags.env
|
||||||
cat hypr-tags.env
|
|
||||||
|
# Probar dry-run primero
|
||||||
# Probar dry-run primero
|
./update-hyprland.sh --dry-run --only hyprland
|
||||||
./update-hyprland.sh --dry-run --only hyprland
|
```
|
||||||
```
|
|
||||||
|
|
||||||
3. **Analizar logs**:
|
3. **Analizar logs**:
|
||||||
|
```bash
|
||||||
```bash
|
# Errores más recientes
|
||||||
# Errores más recientes
|
grep -i "error\|fail" Install-Logs/*.log | tail -20
|
||||||
grep -i "error\|fail" Install-Logs/*.log | tail -20
|
|
||||||
|
# Problemas por módulo
|
||||||
# Problemas por módulo
|
ls -la Install-Logs/install-*[component]*.log
|
||||||
ls -la Install-Logs/install-*[component]*.log
|
```
|
||||||
```
|
|
||||||
|
|
||||||
### Obtener Ayuda
|
### Obtener Ayuda
|
||||||
|
|
||||||
@ -537,7 +420,6 @@ git ls-remote --tags https://github.com/hyprwm/Hyprland
|
|||||||
## Migración desde Versiones Previas
|
## Migración desde Versiones Previas
|
||||||
|
|
||||||
### Instalaciones Existentes
|
### Instalaciones Existentes
|
||||||
|
|
||||||
Las nuevas herramientas funcionan junto a instalaciones existentes:
|
Las nuevas herramientas funcionan junto a instalaciones existentes:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@ -549,7 +431,6 @@ Las nuevas herramientas funcionan junto a instalaciones existentes:
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Convertir a Gestión por Etiquetas
|
### Convertir a Gestión por Etiquetas
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Las versiones actuales se guardan en hypr-tags.env automáticamente
|
# Las versiones actuales se guardan en hypr-tags.env automáticamente
|
||||||
# Verificar con:
|
# Verificar con:
|
||||||
|
|||||||
@ -6,15 +6,13 @@ This guide covers the enhanced installation and upgrade workflows for KooL's Deb
|
|||||||
|
|
||||||
1. [Overview](#overview)
|
1. [Overview](#overview)
|
||||||
2. [New Features](#new-features)
|
2. [New Features](#new-features)
|
||||||
3. [Flags Reference](#flags-reference)
|
3. [Central Version Management](#central-version-management)
|
||||||
4. [Debian 13 (Trixie) Compatibility Mode](#debian-13-trixie-compatibility-mode)
|
4. [Installation Methods](#installation-methods)
|
||||||
5. [Central Version Management](#central-version-management)
|
5. [Upgrade Workflows](#upgrade-workflows)
|
||||||
6. [Installation Methods](#installation-methods)
|
6. [Dry-Run Testing](#dry-run-testing)
|
||||||
7. [Upgrade Workflows](#upgrade-workflows)
|
7. [Log Management](#log-management)
|
||||||
8. [Dry-Run Testing](#dry-run-testing)
|
8. [Advanced Usage](#advanced-usage)
|
||||||
9. [Log Management](#log-management)
|
9. [Troubleshooting](#troubleshooting)
|
||||||
10. [Advanced Usage](#advanced-usage)
|
|
||||||
11. [Troubleshooting](#troubleshooting)
|
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
@ -29,7 +27,6 @@ The Debian-Hyprland project now includes enhanced automation and management tool
|
|||||||
## New Features
|
## New Features
|
||||||
|
|
||||||
### Enhanced install.sh
|
### Enhanced install.sh
|
||||||
|
|
||||||
The original install.sh script now includes:
|
The original install.sh script now includes:
|
||||||
|
|
||||||
- **Tag consistency**: Reads `hypr-tags.env` and exports version variables to all modules
|
- **Tag consistency**: Reads `hypr-tags.env` and exports version variables to all modules
|
||||||
@ -39,126 +36,48 @@ The original install.sh script now includes:
|
|||||||
### New Scripts
|
### New Scripts
|
||||||
|
|
||||||
#### update-hyprland.sh
|
#### update-hyprland.sh
|
||||||
|
|
||||||
A focused tool for managing and building just the Hyprland stack:
|
A focused tool for managing and building just the Hyprland stack:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
chmod +x ./update-hyprland.sh
|
chmod +x ./update-hyprland.sh
|
||||||
./update-hyprland.sh --help # View all options
|
./update-hyprland.sh --help # View all options
|
||||||
```
|
```
|
||||||
|
|
||||||
Key flags:
|
Key flags:
|
||||||
|
|
||||||
- --fetch-latest: pull latest release tags from GitHub
|
- --fetch-latest: pull latest release tags from GitHub
|
||||||
- --force-update: override pinned values in hypr-tags.env (equivalent to FORCE=1)
|
- --force-update: override pinned values in hypr-tags.env (equivalent to FORCE=1)
|
||||||
- --dry-run / --install: compile-only or compile+install
|
- --dry-run / --install: compile-only or compile+install
|
||||||
- --only / --skip: limit which modules run
|
- --only / --skip: limit which modules run
|
||||||
- --build-trixie / --no-trixie: enable/disable Debian 13 (trixie) compatibility mode (auto-detected by default)
|
|
||||||
|
|
||||||
#### dry-run-build.sh
|
#### dry-run-build.sh
|
||||||
|
|
||||||
A testing tool that compiles components without installing:
|
A testing tool that compiles components without installing:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
chmod +x ./dry-run-build.sh
|
chmod +x ./dry-run-build.sh
|
||||||
./dry-run-build.sh --help # View all options
|
./dry-run-build.sh --help # View all options
|
||||||
```
|
```
|
||||||
|
|
||||||
#### wayland-protocols-src.sh
|
#### wayland-protocols-src.sh
|
||||||
|
|
||||||
A new module that builds wayland-protocols from source to satisfy Hyprland 0.51.x requirements.
|
A new module that builds wayland-protocols from source to satisfy Hyprland 0.51.x requirements.
|
||||||
|
|
||||||
## Flags Reference
|
|
||||||
|
|
||||||
This repo provides several "control flags" that affect how the stack is built. These are intentionally consistent across tools.
|
|
||||||
|
|
||||||
### update-hyprland.sh flags
|
|
||||||
|
|
||||||
- `--install` / `--dry-run`: compile+install vs compile-only
|
|
||||||
- `--only <list>` / `--skip <list>`: run a subset of modules
|
|
||||||
- `--fetch-latest`: query GitHub Releases and refresh tags
|
|
||||||
- `--force-update`: override pinned values in `hypr-tags.env` (equivalent to `FORCE=1`)
|
|
||||||
- `--build-trixie` / `--no-trixie`: enable/disable Debian 13 compatibility mode
|
|
||||||
|
|
||||||
Notes:
|
|
||||||
- When trixie mode is enabled, `update-hyprland.sh` exports `HYPR_BUILD_TRIXIE=1` and forwards `--build-trixie` to module scripts.
|
|
||||||
|
|
||||||
### install.sh flags
|
|
||||||
|
|
||||||
- `--preset <file>`: run unattended-ish using preset choices
|
|
||||||
- `--build-trixie` / `--no-trixie`: enable/disable Debian 13 compatibility mode
|
|
||||||
|
|
||||||
You can also force via env:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
HYPR_BUILD_TRIXIE=1 ./install.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
### refresh-hypr-tags.sh flags
|
|
||||||
|
|
||||||
- `--get-latest`: refresh tags to latest GitHub releases (alias; refresh always checks latest)
|
|
||||||
- `--force-update`: force-override pinned values
|
|
||||||
|
|
||||||
Equivalent env form:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
FORCE=1 ./refresh-hypr-tags.sh --get-latest
|
|
||||||
```
|
|
||||||
|
|
||||||
## Debian 13 (Trixie) Compatibility Mode
|
|
||||||
|
|
||||||
Newer Hyprland versions (0.53.x+) may require source-level compatibility shims on Debian 13 (trixie) due to toolchain / standard-library feature gaps.
|
|
||||||
|
|
||||||
- Default behavior is **auto-detect** (via `/etc/os-release`): if `ID=debian` and `VERSION_CODENAME=trixie`, compatibility mode turns on.
|
|
||||||
- You can force it on/off:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Force ON
|
|
||||||
./update-hyprland.sh --build-trixie --install
|
|
||||||
|
|
||||||
# Force OFF
|
|
||||||
./update-hyprland.sh --no-trixie --install
|
|
||||||
```
|
|
||||||
|
|
||||||
## Central Version Management
|
## Central Version Management
|
||||||
|
|
||||||
### hypr-tags.env
|
### hypr-tags.env
|
||||||
|
|
||||||
This file contains version tags for all Hyprland components:
|
This file contains version tags for all Hyprland components:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Current versions (example)
|
# Current versions (example)
|
||||||
HYPRLAND_TAG=v0.53.1
|
HYPRLAND_TAG=v0.51.1
|
||||||
AQUAMARINE_TAG=v0.10.0
|
AQUAMARINE_TAG=v0.9.3
|
||||||
HYPRUTILS_TAG=v0.11.0
|
HYPRUTILS_TAG=v0.8.2
|
||||||
HYPRLANG_TAG=v0.6.8
|
HYPRLANG_TAG=v0.6.4
|
||||||
HYPRGRAPHICS_TAG=v0.5.0
|
HYPRGRAPHICS_TAG=v0.1.5
|
||||||
HYPRTOOLKIT_TAG=v0.4.1
|
|
||||||
HYPRWAYLAND_SCANNER_TAG=v0.4.5
|
HYPRWAYLAND_SCANNER_TAG=v0.4.5
|
||||||
HYPRLAND_PROTOCOLS_TAG=v0.7.0
|
HYPRLAND_PROTOCOLS_TAG=v0.6.4
|
||||||
HYPRLAND_QT_SUPPORT_TAG=v0.1.0
|
HYPRLAND_QT_SUPPORT_TAG=v0.1.0
|
||||||
HYPRLAND_QTUTILS_TAG=v0.1.5
|
HYPRLAND_QTUTILS_TAG=v0.1.4
|
||||||
HYPRLAND_GUIUTILS_TAG=v0.2.0
|
WAYLAND_PROTOCOLS_TAG=1.45
|
||||||
HYPRWIRE_TAG=v0.2.1
|
|
||||||
WAYLAND_PROTOCOLS_TAG=1.46
|
|
||||||
```
|
|
||||||
|
|
||||||
### Refreshing tags (latest releases)
|
|
||||||
|
|
||||||
You can refresh `hypr-tags.env` to the latest GitHub release tags:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Update only keys set to auto/latest (or unset)
|
|
||||||
./refresh-hypr-tags.sh --get-latest
|
|
||||||
|
|
||||||
# Force-override pinned keys
|
|
||||||
FORCE=1 ./refresh-hypr-tags.sh --get-latest
|
|
||||||
# or
|
|
||||||
./refresh-hypr-tags.sh --force-update
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Version Override Priority
|
### Version Override Priority
|
||||||
|
|
||||||
1. Environment variables (exported)
|
1. Environment variables (exported)
|
||||||
2. hypr-tags.env file values
|
2. hypr-tags.env file values
|
||||||
3. Default hardcoded values in each module
|
3. Default hardcoded values in each module
|
||||||
@ -166,7 +85,6 @@ FORCE=1 ./refresh-hypr-tags.sh --get-latest
|
|||||||
## Installation Methods
|
## Installation Methods
|
||||||
|
|
||||||
### Method 1: Original Full Installation
|
### Method 1: Original Full Installation
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Standard installation with all components
|
# Standard installation with all components
|
||||||
chmod +x install.sh
|
chmod +x install.sh
|
||||||
@ -174,20 +92,17 @@ chmod +x install.sh
|
|||||||
```
|
```
|
||||||
|
|
||||||
This method now automatically:
|
This method now automatically:
|
||||||
|
|
||||||
- Loads versions from `hypr-tags.env`
|
- Loads versions from `hypr-tags.env`
|
||||||
- Installs wayland-protocols from source before Hyprland
|
- Installs wayland-protocols from source before Hyprland
|
||||||
- Maintains proper dependency ordering
|
- Maintains proper dependency ordering
|
||||||
|
|
||||||
### Method 2: Hyprland Stack Only
|
### Method 2: Hyprland Stack Only
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Install only Hyprland and essential components
|
# Install only Hyprland and essential components
|
||||||
./update-hyprland.sh --install
|
./update-hyprland.sh --install
|
||||||
```
|
```
|
||||||
|
|
||||||
### Method 3: Fresh Installation with Latest Versions
|
### Method 3: Fresh Installation with Latest Versions
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Fetch latest GitHub releases and install
|
# Fetch latest GitHub releases and install
|
||||||
./update-hyprland.sh --fetch-latest --install
|
./update-hyprland.sh --fetch-latest --install
|
||||||
@ -197,7 +112,6 @@ This method now automatically:
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Method 4: Preset-Based Installation
|
### Method 4: Preset-Based Installation
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Use preset file for automated choices
|
# Use preset file for automated choices
|
||||||
./install.sh --preset ./preset.sh
|
./install.sh --preset ./preset.sh
|
||||||
@ -210,7 +124,6 @@ Quick link: [Upgrade 0.49/0.50.x → 0.51.1](#upgrade-049050x--0511)
|
|||||||
### Upgrading to Latest Hyprland Release
|
### Upgrading to Latest Hyprland Release
|
||||||
|
|
||||||
#### Option A: Automatic Discovery
|
#### Option A: Automatic Discovery
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Fetch latest tags and install (respects pins in hypr-tags.env)
|
# Fetch latest tags and install (respects pins in hypr-tags.env)
|
||||||
./update-hyprland.sh --fetch-latest --install
|
./update-hyprland.sh --fetch-latest --install
|
||||||
@ -220,14 +133,12 @@ Quick link: [Upgrade 0.49/0.50.x → 0.51.1](#upgrade-049050x--0511)
|
|||||||
```
|
```
|
||||||
|
|
||||||
#### Option B: Specific Version
|
#### Option B: Specific Version
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Set specific Hyprland version
|
# Set specific Hyprland version
|
||||||
./update-hyprland.sh --set HYPRLAND=v0.51.1 --install
|
./update-hyprland.sh --set HYPRLAND=v0.51.1 --install
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Option C: Test Before Installing
|
#### Option C: Test Before Installing
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Test compilation first, then install if successful
|
# Test compilation first, then install if successful
|
||||||
./update-hyprland.sh --fetch-latest --dry-run
|
./update-hyprland.sh --fetch-latest --dry-run
|
||||||
@ -260,7 +171,6 @@ Quick link: [Upgrade 0.49/0.50.x → 0.51.1](#upgrade-049050x--0511)
|
|||||||
If you’re currently on Hyprland 0.49 or 0.50.x, you can upgrade directly to 0.51.1 without a full reinstall.
|
If you’re currently on Hyprland 0.49 or 0.50.x, you can upgrade directly to 0.51.1 without a full reinstall.
|
||||||
|
|
||||||
Recommended path:
|
Recommended path:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Ensure hypr-tags.env pins the target version (skip if already v0.51.1)
|
# Ensure hypr-tags.env pins the target version (skip if already v0.51.1)
|
||||||
./update-hyprland.sh --set HYPRLAND=v0.51.1
|
./update-hyprland.sh --set HYPRLAND=v0.51.1
|
||||||
@ -270,17 +180,13 @@ Recommended path:
|
|||||||
```
|
```
|
||||||
|
|
||||||
Notes:
|
Notes:
|
||||||
|
|
||||||
- The command will automatically ensure and run, as needed: wayland-protocols-src, hyprland-protocols, hyprutils, hyprlang, aquamarine, then hyprland.
|
- The command will automatically ensure and run, as needed: wayland-protocols-src, hyprland-protocols, hyprutils, hyprlang, aquamarine, then hyprland.
|
||||||
- Full install via install.sh is not required for this upgrade unless you also want to install/refresh optional modules (e.g., SDDM, Bluetooth, Thunar, AGS, dotfiles) or you’re recovering from a failed/partial setup.
|
- Full install via install.sh is not required for this upgrade unless you also want to install/refresh optional modules (e.g., SDDM, Bluetooth, Thunar, AGS, dotfiles) or you’re recovering from a failed/partial setup.
|
||||||
- Optional: add --with-deps to re-run dependency installation first:
|
- Optional: add --with-deps to re-run dependency installation first:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./update-hyprland.sh --with-deps --install --only hyprland
|
./update-hyprland.sh --with-deps --install --only hyprland
|
||||||
```
|
```
|
||||||
|
|
||||||
- You can dry-run first to validate:
|
- You can dry-run first to validate:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./update-hyprland.sh --dry-run --only hyprland
|
./update-hyprland.sh --dry-run --only hyprland
|
||||||
```
|
```
|
||||||
@ -288,7 +194,6 @@ Notes:
|
|||||||
## Dry-Run Testing
|
## Dry-Run Testing
|
||||||
|
|
||||||
### Why Use Dry-Run?
|
### Why Use Dry-Run?
|
||||||
|
|
||||||
- Test compilation compatibility before installing
|
- Test compilation compatibility before installing
|
||||||
- Validate version combinations
|
- Validate version combinations
|
||||||
- Debug build issues without system changes
|
- Debug build issues without system changes
|
||||||
@ -321,7 +226,6 @@ Notes:
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Dry-Run Limitations
|
### Dry-Run Limitations
|
||||||
|
|
||||||
- **Dependencies still install**: apt operations run to ensure compilation succeeds
|
- **Dependencies still install**: apt operations run to ensure compilation succeeds
|
||||||
- **pkg-config requirements**: Some components need system-installed prerequisites
|
- **pkg-config requirements**: Some components need system-installed prerequisites
|
||||||
- **No system changes**: No files installed to /usr/local or /usr
|
- **No system changes**: No files installed to /usr/local or /usr
|
||||||
@ -329,9 +233,7 @@ Notes:
|
|||||||
## Log Management
|
## Log Management
|
||||||
|
|
||||||
### Log Location
|
### Log Location
|
||||||
|
|
||||||
All build activities generate timestamped logs in:
|
All build activities generate timestamped logs in:
|
||||||
|
|
||||||
```
|
```
|
||||||
Install-Logs/
|
Install-Logs/
|
||||||
├── 01-Hyprland-Install-Scripts-YYYY-MM-DD-HHMMSS.log # Main install log
|
├── 01-Hyprland-Install-Scripts-YYYY-MM-DD-HHMMSS.log # Main install log
|
||||||
@ -341,7 +243,6 @@ Install-Logs/
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Log Analysis
|
### Log Analysis
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# View most recent install log
|
# View most recent install log
|
||||||
ls -t Install-Logs/*.log | head -1 | xargs less
|
ls -t Install-Logs/*.log | head -1 | xargs less
|
||||||
@ -354,10 +255,8 @@ cat Install-Logs/build-dry-run-*.log
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Log Retention
|
### Log Retention
|
||||||
|
|
||||||
- Logs accumulate over time for historical reference
|
- Logs accumulate over time for historical reference
|
||||||
- Manual cleanup recommended periodically:
|
- Manual cleanup recommended periodically:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Keep only logs from last 30 days
|
# Keep only logs from last 30 days
|
||||||
find Install-Logs/ -name "*.log" -mtime +30 -delete
|
find Install-Logs/ -name "*.log" -mtime +30 -delete
|
||||||
@ -368,7 +267,6 @@ find Install-Logs/ -name "*.log" -mtime +30 -delete
|
|||||||
### Tag Management
|
### Tag Management
|
||||||
|
|
||||||
#### Force Update All Tags
|
#### Force Update All Tags
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Override pinned values in hypr-tags.env to the latest releases
|
# Override pinned values in hypr-tags.env to the latest releases
|
||||||
./update-hyprland.sh --fetch-latest --force-update --dry-run
|
./update-hyprland.sh --fetch-latest --force-update --dry-run
|
||||||
@ -377,7 +275,6 @@ find Install-Logs/ -name "*.log" -mtime +30 -delete
|
|||||||
```
|
```
|
||||||
|
|
||||||
#### Backup and Restore
|
#### Backup and Restore
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Tags are automatically backed up on changes
|
# Tags are automatically backed up on changes
|
||||||
# Restore most recent backup
|
# Restore most recent backup
|
||||||
@ -385,7 +282,6 @@ find Install-Logs/ -name "*.log" -mtime +30 -delete
|
|||||||
```
|
```
|
||||||
|
|
||||||
#### Multiple Version Sets
|
#### Multiple Version Sets
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Save current configuration
|
# Save current configuration
|
||||||
cp hypr-tags.env hypr-tags-stable.env
|
cp hypr-tags.env hypr-tags-stable.env
|
||||||
@ -400,7 +296,6 @@ cp hypr-tags-stable.env hypr-tags.env
|
|||||||
### Environment Integration
|
### Environment Integration
|
||||||
|
|
||||||
#### Custom PKG_CONFIG_PATH
|
#### Custom PKG_CONFIG_PATH
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Ensure /usr/local takes precedence
|
# Ensure /usr/local takes precedence
|
||||||
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:${PKG_CONFIG_PATH:-}"
|
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:${PKG_CONFIG_PATH:-}"
|
||||||
@ -408,7 +303,6 @@ export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:${PK
|
|||||||
```
|
```
|
||||||
|
|
||||||
#### Parallel Builds
|
#### Parallel Builds
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Control build parallelism (default: all cores)
|
# Control build parallelism (default: all cores)
|
||||||
export MAKEFLAGS="-j4"
|
export MAKEFLAGS="-j4"
|
||||||
@ -418,7 +312,6 @@ export MAKEFLAGS="-j4"
|
|||||||
### Development Workflow
|
### Development Workflow
|
||||||
|
|
||||||
#### Testing New Releases
|
#### Testing New Releases
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. Create test environment
|
# 1. Create test environment
|
||||||
cp hypr-tags.env hypr-tags.backup
|
cp hypr-tags.env hypr-tags.backup
|
||||||
@ -434,7 +327,6 @@ cp hypr-tags.env hypr-tags.backup
|
|||||||
```
|
```
|
||||||
|
|
||||||
#### Component Development
|
#### Component Development
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Install dependencies only
|
# Install dependencies only
|
||||||
./update-hyprland.sh --with-deps --dry-run
|
./update-hyprland.sh --with-deps --dry-run
|
||||||
@ -451,11 +343,9 @@ tail -f Install-Logs/install-*hyprland*.log
|
|||||||
### Common Issues
|
### Common Issues
|
||||||
|
|
||||||
#### CMake Configuration Fails
|
#### CMake Configuration Fails
|
||||||
|
|
||||||
**Symptoms**: "Package dependency requirement not satisfied"
|
**Symptoms**: "Package dependency requirement not satisfied"
|
||||||
|
|
||||||
**Solutions**:
|
**Solutions**:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Install missing prerequisites
|
# Install missing prerequisites
|
||||||
./update-hyprland.sh --install --only wayland-protocols-src,hyprutils,hyprlang
|
./update-hyprland.sh --install --only wayland-protocols-src,hyprutils,hyprlang
|
||||||
@ -468,11 +358,9 @@ rm -rf hyprland aquamarine hyprutils hyprlang
|
|||||||
```
|
```
|
||||||
|
|
||||||
#### Compilation Errors
|
#### Compilation Errors
|
||||||
|
|
||||||
**Symptoms**: "too many errors emitted"
|
**Symptoms**: "too many errors emitted"
|
||||||
|
|
||||||
**Solutions**:
|
**Solutions**:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Update core dependencies first
|
# Update core dependencies first
|
||||||
./update-hyprland.sh --fetch-latest --install --only hyprutils,hyprlang
|
./update-hyprland.sh --fetch-latest --install --only hyprutils,hyprlang
|
||||||
@ -482,11 +370,9 @@ grep -A5 -B5 "error:" Install-Logs/install-*hyprland*.log
|
|||||||
```
|
```
|
||||||
|
|
||||||
#### Tag Not Found
|
#### Tag Not Found
|
||||||
|
|
||||||
**Symptoms**: "Remote branch X not found"
|
**Symptoms**: "Remote branch X not found"
|
||||||
|
|
||||||
**Solutions**:
|
**Solutions**:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Check available tags
|
# Check available tags
|
||||||
git ls-remote --tags https://github.com/hyprwm/Hyprland
|
git ls-remote --tags https://github.com/hyprwm/Hyprland
|
||||||
@ -498,34 +384,31 @@ git ls-remote --tags https://github.com/hyprwm/Hyprland
|
|||||||
### Debug Steps
|
### Debug Steps
|
||||||
|
|
||||||
1. **Check system compatibility**:
|
1. **Check system compatibility**:
|
||||||
|
```bash
|
||||||
```bash
|
# Verify Debian version
|
||||||
# Verify Debian version
|
cat /etc/os-release
|
||||||
cat /etc/os-release
|
|
||||||
|
# Ensure deb-src enabled
|
||||||
# Ensure deb-src enabled
|
grep -E "^deb-src" /etc/apt/sources.list
|
||||||
grep -E "^deb-src" /etc/apt/sources.list
|
```
|
||||||
```
|
|
||||||
|
|
||||||
2. **Verify environment**:
|
2. **Verify environment**:
|
||||||
|
```bash
|
||||||
```bash
|
# Check current tags
|
||||||
# Check current tags
|
cat hypr-tags.env
|
||||||
cat hypr-tags.env
|
|
||||||
|
# Test dry-run first
|
||||||
# Test dry-run first
|
./update-hyprland.sh --dry-run --only hyprland
|
||||||
./update-hyprland.sh --dry-run --only hyprland
|
```
|
||||||
```
|
|
||||||
|
|
||||||
3. **Analyze logs**:
|
3. **Analyze logs**:
|
||||||
|
```bash
|
||||||
```bash
|
# Most recent errors
|
||||||
# Most recent errors
|
grep -i "error\|fail" Install-Logs/*.log | tail -20
|
||||||
grep -i "error\|fail" Install-Logs/*.log | tail -20
|
|
||||||
|
# Module-specific issues
|
||||||
# Module-specific issues
|
ls -la Install-Logs/install-*[component]*.log
|
||||||
ls -la Install-Logs/install-*[component]*.log
|
```
|
||||||
```
|
|
||||||
|
|
||||||
### Getting Help
|
### Getting Help
|
||||||
|
|
||||||
@ -537,7 +420,6 @@ git ls-remote --tags https://github.com/hyprwm/Hyprland
|
|||||||
## Migration from Previous Versions
|
## Migration from Previous Versions
|
||||||
|
|
||||||
### Existing Installations
|
### Existing Installations
|
||||||
|
|
||||||
The new tools work alongside existing installations:
|
The new tools work alongside existing installations:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@ -549,7 +431,6 @@ The new tools work alongside existing installations:
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Converting to Tag Management
|
### Converting to Tag Management
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Current versions are saved to hypr-tags.env automatically
|
# Current versions are saved to hypr-tags.env automatically
|
||||||
# Verify with:
|
# Verify with:
|
||||||
@ -559,4 +440,4 @@ cat hypr-tags.env
|
|||||||
./update-hyprland.sh --set HYPRLAND=v0.51.1
|
./update-hyprland.sh --set HYPRLAND=v0.51.1
|
||||||
```
|
```
|
||||||
|
|
||||||
The enhanced workflow provides better control, testing capabilities, and automation while maintaining full compatibility with the original installation process.
|
The enhanced workflow provides better control, testing capabilities, and automation while maintaining full compatibility with the original installation process.
|
||||||
@ -89,9 +89,9 @@ sudo nano /etc/apt/sources.list
|
|||||||
- 10 October 2025 Update!
|
- 10 October 2025 Update!
|
||||||
- Hyprland-Debian nows builds 0.51.1 from source!
|
- Hyprland-Debian nows builds 0.51.1 from source!
|
||||||
- The installer now can be used to install newer releases later
|
- The installer now can be used to install newer releases later
|
||||||
- If you are currently running 0.49, or 0.50, you can upgrade to 0.51.1
|
- If you are currently running 0.49, or 0.50, you can upgrade to 0.51.1
|
||||||
> Note: Newer Hyprland versions (0.53.x+) may require compatibility shims on Debian 13 (Trixie).
|
> Note: At this time Debian 13 (Trixie) can't compile v0.52.2+
|
||||||
> Use the provided update/install scripts with `--build-trixie` if needed.
|
> Debian Testing and SID can
|
||||||
- You do not have to re-install everything, but re-running `install.sh` works also
|
- You do not have to re-install everything, but re-running `install.sh` works also
|
||||||
- Instructions are available in English and Spanish
|
- Instructions are available in English and Spanish
|
||||||
|
|
||||||
|
|||||||
@ -2,17 +2,14 @@
|
|||||||
# You can edit these values or let update-hyprland.sh manage them.
|
# You can edit these values or let update-hyprland.sh manage them.
|
||||||
# Each module script reads its TAG from these environment variables if set.
|
# Each module script reads its TAG from these environment variables if set.
|
||||||
|
|
||||||
# Hyprland 0.53.x stack (includes hyprwire)
|
HYPRLAND_TAG=v0.52.2
|
||||||
HYPRLAND_TAG=v0.53.1
|
|
||||||
AQUAMARINE_TAG=v0.10.0
|
AQUAMARINE_TAG=v0.10.0
|
||||||
HYPRUTILS_TAG=v0.11.0
|
HYPRUTILS_TAG=v0.10.4
|
||||||
HYPRLANG_TAG=v0.6.8
|
HYPRLANG_TAG=v0.6.7
|
||||||
HYPRGRAPHICS_TAG=v0.5.0
|
HYPRGRAPHICS_TAG=v0.4.0
|
||||||
HYPRTOOLKIT_TAG=v0.4.1
|
HYPRTOOLKIT_TAG=v0.4.1
|
||||||
HYPRWAYLAND_SCANNER_TAG=v0.4.5
|
HYPRWAYLAND_SCANNER_TAG=v0.4.5
|
||||||
HYPRLAND_PROTOCOLS_TAG=v0.7.0
|
HYPRLAND_PROTOCOLS_TAG=v0.7.0
|
||||||
HYPRLAND_QT_SUPPORT_TAG=v0.1.0
|
HYPRLAND_QT_SUPPORT_TAG=v0.1.0
|
||||||
HYPRLAND_QTUTILS_TAG=v0.1.5
|
|
||||||
HYPRLAND_GUIUTILS_TAG=v0.2.0
|
HYPRLAND_GUIUTILS_TAG=v0.2.0
|
||||||
HYPRWIRE_TAG=v0.2.1
|
|
||||||
WAYLAND_PROTOCOLS_TAG=1.46
|
WAYLAND_PROTOCOLS_TAG=1.46
|
||||||
|
|||||||
13
hypr-tags.env-v.053
Normal file
13
hypr-tags.env-v.053
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
AQUAMARINE_TAG=v0.10.0
|
||||||
|
HYPRGRAPHICS_TAG=v0.5.0
|
||||||
|
HYPRLAND_GUIUTILS_TAG=v0.2.0
|
||||||
|
HYPRLAND_PROTOCOLS_TAG=v0.7.0
|
||||||
|
HYPRLAND_QT_SUPPORT_TAG=v0.1.0
|
||||||
|
HYPRLAND_QTUTILS_TAG=v0.1.5
|
||||||
|
HYPRLAND_TAG=v0.53.0
|
||||||
|
HYPRLANG_TAG=v0.6.7
|
||||||
|
HYPRTOOLKIT_TAG=v0.4.1
|
||||||
|
HYPRUTILS_TAG=v0.11.0
|
||||||
|
HYPRWAYLAND_SCANNER_TAG=v0.4.5
|
||||||
|
HYPRWIRE_TAG=v0.2.1
|
||||||
|
WAYLAND_PROTOCOLS_TAG=1.46
|
||||||
@ -72,14 +72,7 @@ fi
|
|||||||
printf "${INFO} Installing ${YELLOW}hyprland-guiutils $tag${RESET} ...\n"
|
printf "${INFO} Installing ${YELLOW}hyprland-guiutils $tag${RESET} ...\n"
|
||||||
if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-guiutils.git; then
|
if git clone --recursive -b $tag https://github.com/hyprwm/hyprland-guiutils.git; then
|
||||||
cd hyprland-guiutils || exit 1
|
cd hyprland-guiutils || exit 1
|
||||||
# Prefer /usr/local Hypr* libs so we don't accidentally link against copies in /lib.
|
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build
|
||||||
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:${PKG_CONFIG_PATH:-}"
|
|
||||||
export CMAKE_PREFIX_PATH="/usr/local:${CMAKE_PREFIX_PATH:-}"
|
|
||||||
export LD_LIBRARY_PATH="/usr/local/lib:${LD_LIBRARY_PATH:-}"
|
|
||||||
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`
|
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
|
||||||
if [ $DO_INSTALL -eq 1 ]; then
|
if [ $DO_INSTALL -eq 1 ]; then
|
||||||
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||||
|
|||||||
@ -118,16 +118,6 @@ EOF
|
|||||||
sed -ri 's|^\s*#embed\s+"\.{0,2}/\.{0,2}/example/hyprland\.conf"\s*$|#include "defaultConfig.bytes.inc"|g' src/config/defaultConfig.hpp || true
|
sed -ri 's|^\s*#embed\s+"\.{0,2}/\.{0,2}/example/hyprland\.conf"\s*$|#include "defaultConfig.bytes.inc"|g' src/config/defaultConfig.hpp || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Compatibility: some toolchains/libstdc++ do not support std::string operator+ with std::string_view.
|
|
||||||
# Hyprland hyprctl uses a std::string_view filename; ensure it is converted explicitly.
|
|
||||||
HYPRCTL_MAIN="$(pwd)/hyprctl/src/main.cpp"
|
|
||||||
if [ -f "$HYPRCTL_MAIN" ] && grep -q "std::string socketPath" "$HYPRCTL_MAIN"; then
|
|
||||||
# Only patch if we see a "+ filename" concatenation.
|
|
||||||
if grep -qE '\+\s*filename\s*;' "$HYPRCTL_MAIN"; then
|
|
||||||
sed -ri 's/\+\s*filename\s*;/+ std::string(filename);/g' "$HYPRCTL_MAIN" || true
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Apply patch only if it applies cleanly; otherwise skip
|
# Apply patch only if it applies cleanly; otherwise skip
|
||||||
if [ -f ../assets/0001-fix-hyprland-compile-issue.patch ]; then
|
if [ -f ../assets/0001-fix-hyprland-compile-issue.patch ]; then
|
||||||
if patch -p1 --dry-run <../assets/0001-fix-hyprland-compile-issue.patch >/dev/null 2>&1; then
|
if patch -p1 --dry-run <../assets/0001-fix-hyprland-compile-issue.patch >/dev/null 2>&1; then
|
||||||
|
|||||||
@ -12,33 +12,10 @@ if [ -z "${HYPRWIRE_TAG:-}" ]; then
|
|||||||
fi
|
fi
|
||||||
if [ -n "${HYPRWIRE_TAG:-}" ]; then tag="$HYPRWIRE_TAG"; fi
|
if [ -n "${HYPRWIRE_TAG:-}" ]; then tag="$HYPRWIRE_TAG"; fi
|
||||||
|
|
||||||
# Dry-run support + shim controls
|
# Dry-run support
|
||||||
DO_INSTALL=1
|
DO_INSTALL=1
|
||||||
FORCE_SHIM=0
|
if [ "$1" = "--dry-run" ] || [ "${DRY_RUN}" = "1" ] || [ "${DRY_RUN}" = "true" ]; then
|
||||||
NO_SHIM=0
|
|
||||||
|
|
||||||
for arg in "$@"; do
|
|
||||||
case "$arg" in
|
|
||||||
--dry-run)
|
|
||||||
DO_INSTALL=0
|
|
||||||
;;
|
|
||||||
# Force the compatibility shim used on Debian 13 (trixie) toolchains.
|
|
||||||
# This is intentionally distro-named so it's obvious what it does for most users.
|
|
||||||
--build-trixie|--force-shim)
|
|
||||||
FORCE_SHIM=1
|
|
||||||
;;
|
|
||||||
# For testing/sid (or any toolchain that supports std::vector::append_range), allow opting out.
|
|
||||||
--no-shim)
|
|
||||||
NO_SHIM=1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ "${DRY_RUN}" = "1" ] || [ "${DRY_RUN}" = "true" ]; then
|
|
||||||
DO_INSTALL=0
|
DO_INSTALL=0
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $DO_INSTALL -eq 0 ]; then
|
|
||||||
echo "${NOTE} DRY RUN: install step will be skipped."
|
echo "${NOTE} DRY RUN: install step will be skipped."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -71,71 +48,30 @@ fi
|
|||||||
if git clone --recursive -b "$tag" https://github.com/hyprwm/hyprwire.git; then
|
if git clone --recursive -b "$tag" https://github.com/hyprwm/hyprwire.git; then
|
||||||
cd hyprwire || exit 1
|
cd hyprwire || exit 1
|
||||||
|
|
||||||
# Decide whether we need the append_range compatibility shim.
|
# Temporary compatibility shim for compilers/libstdc++ without std::vector::append_range
|
||||||
# On Debian 13 (trixie), libstdc++ typically lacks std::vector::append_range, so we patch.
|
cat > append_range_compat.hpp <<'EOF'
|
||||||
# On newer toolchains (testing/sid), prefer building upstream unmodified.
|
|
||||||
NEED_SHIM=0
|
|
||||||
if [ "$NO_SHIM" -eq 1 ]; then
|
|
||||||
NEED_SHIM=0
|
|
||||||
elif [ "$FORCE_SHIM" -eq 1 ]; then
|
|
||||||
NEED_SHIM=1
|
|
||||||
else
|
|
||||||
CXX_TEST="${CXX:-c++}"
|
|
||||||
TMPD="$(mktemp -d)"
|
|
||||||
cat >"$TMPD/append_range_test.cpp" <<'EOF'
|
|
||||||
#include <vector>
|
|
||||||
int main() {
|
|
||||||
std::vector<unsigned char> v;
|
|
||||||
v.append_range(std::vector<unsigned char>{1,2,3});
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
if "$CXX_TEST" -std=c++23 -c "$TMPD/append_range_test.cpp" -o /dev/null >/dev/null 2>&1; then
|
|
||||||
NEED_SHIM=0
|
|
||||||
else
|
|
||||||
NEED_SHIM=1
|
|
||||||
fi
|
|
||||||
rm -rf "$TMPD"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$NEED_SHIM" -eq 1 ]; then
|
|
||||||
echo "${NOTE} Applying append_range compatibility shim (use --no-shim to disable; --build-trixie to force)."
|
|
||||||
|
|
||||||
# Temporary compatibility shim for toolchains where libstdc++ lacks std::vector::append_range (C++23 library feature).
|
|
||||||
# Note: append_range in upstream accepts temporaries (e.g. encodeVarInt(...) returns a temporary vector). To support that,
|
|
||||||
# we bind the expression to a named auto&& first.
|
|
||||||
cat > append_range_compat.hpp <<'EOF'
|
|
||||||
#pragma once
|
#pragma once
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
|
#define APPEND_RANGE(vec, ...) (vec).insert((vec).end(), std::begin(__VA_ARGS__), std::end(__VA_ARGS__))
|
||||||
// Append any begin/end range to a container, supporting temporaries by binding to auto&&.
|
|
||||||
#define APPEND_RANGE(vec, ...) do { \
|
|
||||||
auto&& _r = (__VA_ARGS__); \
|
|
||||||
(vec).insert((vec).end(), std::begin(_r), std::end(_r)); \
|
|
||||||
} while(0)
|
|
||||||
EOF
|
EOF
|
||||||
|
# Replace X.append_range(Y) -> APPEND_RANGE(X, Y) only where it appears
|
||||||
# Replace X.(.|->)append_range(Y) -> APPEND_RANGE(X, Y) only where it appears
|
PATCH_FILES=$(grep -RIl --exclude-dir=.git 'append_range\(' . || true)
|
||||||
PATCH_FILES=$(grep -RIl --exclude-dir=.git -F 'append_range(' . || true)
|
if [ -n "$PATCH_FILES" ]; then
|
||||||
if [ -n "$PATCH_FILES" ]; then
|
# Replace LHS .append_range(arg...) with APPEND_RANGE(LHS, arg...)
|
||||||
# LHS: identifiers and common member/ptr chains (this->obj, ns::obj.member)
|
# LHS: identifiers and common member/ptr chains (this->obj, ns::obj.member)
|
||||||
echo "$PATCH_FILES" | xargs -r sed -ri 's/([A-Za-z_][A-Za-z0-9_:>.\-]+)\s*(\.|->)\s*append_range\s*\(/APPEND_RANGE(\1, /g'
|
echo "$PATCH_FILES" | xargs -r sed -ri 's/([A-Za-z_][A-Za-z0-9_:\->\.]+)\s*\.\s*append_range\s*\(/APPEND_RANGE(\1, /g'
|
||||||
# Show any remaining occurrences
|
# Show any remaining occurrences
|
||||||
REMAIN=$(grep -RIn --exclude-dir=.git -E '(\.|->)[[:space:]]*append_range[[:space:]]*\(' $PATCH_FILES || true)
|
REMAIN=$(grep -RIn --exclude-dir=.git '\.\s*append_range\s*\(' $PATCH_FILES || true)
|
||||||
if [ -n "$REMAIN" ]; then
|
if [ -n "$REMAIN" ]; then
|
||||||
echo "[WARN] Some append_range() calls remain unpatched:" >&2
|
echo "[WARN] Some append_range() calls remain unpatched:" >&2
|
||||||
echo "$REMAIN" >&2
|
echo "$REMAIN" >&2
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 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}"
|
|
||||||
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
|
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 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 --build build -j "$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)"
|
cmake --build build -j "$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)"
|
||||||
if [ $DO_INSTALL -eq 1 ]; then
|
if [ $DO_INSTALL -eq 1 ]; then
|
||||||
if sudo cmake --install build 2>&1 | tee -a "$MLOG" ; then
|
if sudo cmake --install build 2>&1 | tee -a "$MLOG" ; then
|
||||||
|
|||||||
@ -29,7 +29,6 @@ if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_xdph.log"
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_xdph.log"
|
||||||
MLOG="install-$(date +%d-%H%M%S)_xdph2.log"
|
|
||||||
|
|
||||||
# Check if the file exists and remove it
|
# Check if the file exists and remove it
|
||||||
[[ -f "/usr/lib/xdg-desktop-portal-hyprland" ]] && sudo rm "/usr/lib/xdg-desktop-portal-hyprland"
|
[[ -f "/usr/lib/xdg-desktop-portal-hyprland" ]] && sudo rm "/usr/lib/xdg-desktop-portal-hyprland"
|
||||||
@ -59,12 +58,11 @@ if git clone --recursive -b $tag "https://github.com/hyprwm/xdg-desktop-portal-h
|
|||||||
cmake -DCMAKE_INSTALL_LIBEXECDIR=/usr/lib -DCMAKE_INSTALL_PREFIX=/usr -B build
|
cmake -DCMAKE_INSTALL_LIBEXECDIR=/usr/lib -DCMAKE_INSTALL_PREFIX=/usr -B build
|
||||||
cmake --build build
|
cmake --build build
|
||||||
if sudo cmake --install build 2>&1 | tee -a "$MLOG"; then
|
if sudo cmake --install build 2>&1 | tee -a "$MLOG"; then
|
||||||
printf "${OK} ${MAGENTA}xdph $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
printf "${OK} ${MAGENTA}xdph $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
else
|
else
|
||||||
echo -e "${ERROR} Installation failed for ${YELLOW}xdph $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
echo -e "${ERROR} Installation failed for ${YELLOW}xdph $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||||
fi
|
fi
|
||||||
# Move the additional logs to Install-Logs directory
|
mv $MLOG ../Install-Logs/ || true
|
||||||
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/ || true
|
|
||||||
cd ..
|
cd ..
|
||||||
else
|
else
|
||||||
echo -e "${ERROR} Download failed for ${YELLOW}xdph $tag${RESET}" 2>&1 | tee -a "$LOG"
|
echo -e "${ERROR} Download failed for ${YELLOW}xdph $tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||||
|
|||||||
76
install.sh
76
install.sh
@ -105,60 +105,6 @@ if is_ubuntu; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Debian Trixie compatibility mode
|
|
||||||
# Some Hypr* components need source-level shims on Debian 13 (trixie) toolchains.
|
|
||||||
# Default: auto-detect via /etc/os-release
|
|
||||||
# Overrides:
|
|
||||||
# --build-trixie / --no-trixie
|
|
||||||
# HYPR_BUILD_TRIXIE=1|0 (env)
|
|
||||||
TRIXIE_MODE="auto"
|
|
||||||
PRESET_FILE=""
|
|
||||||
|
|
||||||
# Parse a small set of supported CLI args (order-independent)
|
|
||||||
# NOTE: install.sh historically used "$1"/"$2" for --preset; this keeps that working.
|
|
||||||
args=("$@")
|
|
||||||
for ((i=0; i<${#args[@]}; i++)); do
|
|
||||||
case "${args[$i]}" in
|
|
||||||
--build-trixie)
|
|
||||||
TRIXIE_MODE="on"
|
|
||||||
;;
|
|
||||||
--no-trixie)
|
|
||||||
TRIXIE_MODE="off"
|
|
||||||
;;
|
|
||||||
--preset)
|
|
||||||
if [ $((i+1)) -lt ${#args[@]} ]; then
|
|
||||||
PRESET_FILE="${args[$((i+1))]}"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
# If env explicitly sets HYPR_BUILD_TRIXIE, honor it.
|
|
||||||
if [ -n "${HYPR_BUILD_TRIXIE+x}" ]; then
|
|
||||||
if [ "${HYPR_BUILD_TRIXIE}" = "1" ]; then
|
|
||||||
TRIXIE_MODE="on"
|
|
||||||
elif [ "${HYPR_BUILD_TRIXIE}" = "0" ]; then
|
|
||||||
TRIXIE_MODE="off"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Resolve auto-detection
|
|
||||||
if [ "$TRIXIE_MODE" = "auto" ]; then
|
|
||||||
HYPR_BUILD_TRIXIE=0
|
|
||||||
if [ -f /etc/os-release ]; then
|
|
||||||
# shellcheck disable=SC1091
|
|
||||||
. /etc/os-release || true
|
|
||||||
if [ "${ID:-}" = "debian" ] && [ "${VERSION_CODENAME:-}" = "trixie" ]; then
|
|
||||||
HYPR_BUILD_TRIXIE=1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
elif [ "$TRIXIE_MODE" = "on" ]; then
|
|
||||||
HYPR_BUILD_TRIXIE=1
|
|
||||||
else
|
|
||||||
HYPR_BUILD_TRIXIE=0
|
|
||||||
fi
|
|
||||||
export HYPR_BUILD_TRIXIE
|
|
||||||
|
|
||||||
# install whiptails if detected not installed. Necessary for this version
|
# install whiptails if detected not installed. Necessary for this version
|
||||||
if ! command -v whiptail >/dev/null; then
|
if ! command -v whiptail >/dev/null; then
|
||||||
echo "${NOTE} - whiptail is not installed. Installing..." | tee -a "$LOG"
|
echo "${NOTE} - whiptail is not installed. Installing..." | tee -a "$LOG"
|
||||||
@ -323,13 +269,7 @@ execute_script() {
|
|||||||
if [ -f "$script_path" ]; then
|
if [ -f "$script_path" ]; then
|
||||||
chmod +x "$script_path"
|
chmod +x "$script_path"
|
||||||
if [ -x "$script_path" ]; then
|
if [ -x "$script_path" ]; then
|
||||||
# Pass --build-trixie to all module scripts when in trixie compatibility mode.
|
env "$script_path"
|
||||||
# Scripts that don't care should simply ignore unknown args.
|
|
||||||
if [ "${HYPR_BUILD_TRIXIE:-0}" = "1" ]; then
|
|
||||||
env HYPR_BUILD_TRIXIE=1 "$script_path" --build-trixie
|
|
||||||
else
|
|
||||||
env HYPR_BUILD_TRIXIE=0 "$script_path"
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
echo "Failed to make script '$script' executable." | tee -a "$LOG"
|
echo "Failed to make script '$script' executable." | tee -a "$LOG"
|
||||||
fi
|
fi
|
||||||
@ -383,9 +323,9 @@ load_preset() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check if --preset argument is passed (order-independent)
|
# Check if --preset argument is passed
|
||||||
if [ -n "${PRESET_FILE:-}" ]; then
|
if [[ "$1" == "--preset" && -n "$2" ]]; then
|
||||||
load_preset "$PRESET_FILE"
|
load_preset "$2"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# List of services to check for active login managers
|
# List of services to check for active login managers
|
||||||
@ -618,14 +558,6 @@ else
|
|||||||
execute_script "hypridle.sh"
|
execute_script "hypridle.sh"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Ensure /usr/local/lib is in the dynamic linker search path.
|
|
||||||
# Many Hypr* components install shared libraries into /usr/local/lib; without this,
|
|
||||||
# tools like hyprctl can fail to load (e.g. missing libhyprwire.so.*).
|
|
||||||
if ! sudo grep -qxF "/usr/local/lib" /etc/ld.so.conf.d/usr-local.conf 2>/dev/null; then
|
|
||||||
echo "/usr/local/lib" | sudo tee -a /etc/ld.so.conf.d/usr-local.conf >/dev/null
|
|
||||||
fi
|
|
||||||
sudo ldconfig 2>/dev/null || true
|
|
||||||
|
|
||||||
#execute_script "imagemagick.sh" #this is for compiling from source. 07 Sep 2024
|
#execute_script "imagemagick.sh" #this is for compiling from source. 07 Sep 2024
|
||||||
# execute_script "waybar-git.sh" only if waybar on repo is old
|
# execute_script "waybar-git.sh" only if waybar on repo is old
|
||||||
|
|
||||||
|
|||||||
@ -11,61 +11,20 @@ mkdir -p "$LOG_DIR"
|
|||||||
TS=$(date +%F-%H%M%S)
|
TS=$(date +%F-%H%M%S)
|
||||||
SUMMARY_LOG="$LOG_DIR/refresh-tags-$TS.log"
|
SUMMARY_LOG="$LOG_DIR/refresh-tags-$TS.log"
|
||||||
|
|
||||||
usage() {
|
|
||||||
cat <<'EOF'
|
|
||||||
refresh-hypr-tags.sh
|
|
||||||
Refresh hypr-tags.env with latest GitHub release tags.
|
|
||||||
|
|
||||||
Usage:
|
|
||||||
./refresh-hypr-tags.sh
|
|
||||||
FORCE=1 ./refresh-hypr-tags.sh
|
|
||||||
./refresh-hypr-tags.sh --force-update
|
|
||||||
./refresh-hypr-tags.sh --get-latest
|
|
||||||
|
|
||||||
Notes:
|
|
||||||
- By default, only updates keys set to auto/latest (or unset).
|
|
||||||
- Use FORCE=1 or --force-update to override pinned values.
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
# Arg parsing (minimal/backwards compatible)
|
|
||||||
FORCE=${FORCE:-0}
|
|
||||||
for arg in "$@"; do
|
|
||||||
case "$arg" in
|
|
||||||
-h|--help)
|
|
||||||
usage
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
--force-update|--force)
|
|
||||||
FORCE=1
|
|
||||||
;;
|
|
||||||
# Alias for user ergonomics; refresh always checks latest tags.
|
|
||||||
--get-latest|--fetch-latest)
|
|
||||||
:
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "[WARN] Unknown argument ignored: $arg" | tee -a "$SUMMARY_LOG"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
# Ensure tags file exists
|
# Ensure tags file exists
|
||||||
if [[ ! -f "$TAGS_FILE" ]]; then
|
if [[ ! -f "$TAGS_FILE" ]]; then
|
||||||
cat > "$TAGS_FILE" <<'EOF'
|
cat > "$TAGS_FILE" <<'EOF'
|
||||||
# Default Hyprland stack versions
|
HYPRLAND_TAG=v0.51.1
|
||||||
HYPRLAND_TAG=v0.53.1
|
AQUAMARINE_TAG=v0.9.3
|
||||||
AQUAMARINE_TAG=v0.10.0
|
HYPRUTILS_TAG=v0.8.2
|
||||||
HYPRUTILS_TAG=v0.11.0
|
HYPRLANG_TAG=v0.6.4
|
||||||
HYPRLANG_TAG=v0.6.8
|
HYPRGRAPHICS_TAG=v0.1.5
|
||||||
HYPRGRAPHICS_TAG=v0.5.0
|
|
||||||
HYPRTOOLKIT_TAG=v0.4.1
|
|
||||||
HYPRWAYLAND_SCANNER_TAG=v0.4.5
|
HYPRWAYLAND_SCANNER_TAG=v0.4.5
|
||||||
HYPRLAND_PROTOCOLS_TAG=v0.7.0
|
HYPRLAND_PROTOCOLS_TAG=v0.6.4
|
||||||
HYPRLAND_QT_SUPPORT_TAG=v0.1.0
|
HYPRLAND_QT_SUPPORT_TAG=v0.1.0
|
||||||
HYPRLAND_QTUTILS_TAG=v0.1.5
|
HYPRLAND_QTUTILS_TAG=v0.1.4
|
||||||
HYPRLAND_GUIUTILS_TAG=v0.2.0
|
HYPRWIRE_TAG=auto
|
||||||
HYPRWIRE_TAG=v0.2.1
|
WAYLAND_PROTOCOLS_TAG=1.45
|
||||||
WAYLAND_PROTOCOLS_TAG=1.46
|
|
||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -79,19 +38,16 @@ if ! command -v curl >/dev/null 2>&1; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Map of env var -> repo
|
# Map of env var -> repo
|
||||||
# (Some modules may not publish GitHub releases; in that case the tag may not refresh.)
|
|
||||||
declare -A repos=(
|
declare -A repos=(
|
||||||
[HYPRLAND_TAG]="hyprwm/Hyprland"
|
[HYPRLAND_TAG]="hyprwm/Hyprland"
|
||||||
[AQUAMARINE_TAG]="hyprwm/aquamarine"
|
[AQUAMARINE_TAG]="hyprwm/aquamarine"
|
||||||
[HYPRUTILS_TAG]="hyprwm/hyprutils"
|
[HYPRUTILS_TAG]="hyprwm/hyprutils"
|
||||||
[HYPRLANG_TAG]="hyprwm/hyprlang"
|
[HYPRLANG_TAG]="hyprwm/hyprlang"
|
||||||
[HYPRGRAPHICS_TAG]="hyprwm/hyprgraphics"
|
[HYPRGRAPHICS_TAG]="hyprwm/hyprgraphics"
|
||||||
[HYPRTOOLKIT_TAG]="hyprwm/hyprtoolkit"
|
|
||||||
[HYPRWAYLAND_SCANNER_TAG]="hyprwm/hyprwayland-scanner"
|
[HYPRWAYLAND_SCANNER_TAG]="hyprwm/hyprwayland-scanner"
|
||||||
[HYPRLAND_PROTOCOLS_TAG]="hyprwm/hyprland-protocols"
|
[HYPRLAND_PROTOCOLS_TAG]="hyprwm/hyprland-protocols"
|
||||||
[HYPRLAND_QT_SUPPORT_TAG]="hyprwm/hyprland-qt-support"
|
[HYPRLAND_QT_SUPPORT_TAG]="hyprwm/hyprland-qt-support"
|
||||||
[HYPRLAND_QTUTILS_TAG]="hyprwm/hyprland-qtutils"
|
[HYPRLAND_QTUTILS_TAG]="hyprwm/hyprland-qtutils"
|
||||||
[HYPRLAND_GUIUTILS_TAG]="hyprwm/hyprland-guiutils"
|
|
||||||
[HYPRWIRE_TAG]="hyprwm/hyprwire"
|
[HYPRWIRE_TAG]="hyprwm/hyprwire"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -103,18 +59,13 @@ while IFS='=' read -r k v; do
|
|||||||
done < "$TAGS_FILE"
|
done < "$TAGS_FILE"
|
||||||
|
|
||||||
# Fetch latest, but only update keys set to 'auto' or 'latest' unless forced
|
# Fetch latest, but only update keys set to 'auto' or 'latest' unless forced
|
||||||
|
FORCE=${FORCE:-0}
|
||||||
changes=()
|
changes=()
|
||||||
for key in "${!repos[@]}"; do
|
for key in "${!repos[@]}"; do
|
||||||
repo="${repos[$key]}"
|
repo="${repos[$key]}"
|
||||||
url="https://api.github.com/repos/$repo/releases/latest"
|
url="https://api.github.com/repos/$repo/releases/latest"
|
||||||
echo "[INFO] Checking latest tag for $repo" | tee -a "$SUMMARY_LOG"
|
echo "[INFO] Checking latest tag for $repo" | tee -a "$SUMMARY_LOG"
|
||||||
|
body=$(curl -fsSL "$url" || true)
|
||||||
# Be resilient to transient GitHub API errors (e.g. 5xx).
|
|
||||||
body=$(curl -fsSL \
|
|
||||||
--retry 3 --retry-all-errors --retry-delay 1 \
|
|
||||||
-H 'Accept: application/vnd.github+json' \
|
|
||||||
"$url" || true)
|
|
||||||
|
|
||||||
[[ -z "$body" ]] && { echo "[WARN] Empty response for $repo" | tee -a "$SUMMARY_LOG"; continue; }
|
[[ -z "$body" ]] && { echo "[WARN] Empty response for $repo" | tee -a "$SUMMARY_LOG"; continue; }
|
||||||
if command -v jq >/dev/null 2>&1; then
|
if command -v jq >/dev/null 2>&1; then
|
||||||
tag=$(printf '%s' "$body" | jq -r '.tag_name // empty')
|
tag=$(printf '%s' "$body" | jq -r '.tag_name // empty')
|
||||||
|
|||||||
@ -65,12 +65,6 @@ ONLY_LIST=""
|
|||||||
SKIP_LIST=""
|
SKIP_LIST=""
|
||||||
SET_ARGS=()
|
SET_ARGS=()
|
||||||
|
|
||||||
# Trixie compatibility mode
|
|
||||||
# - auto: enable on Debian trixie (useful for toolchain/library shims)
|
|
||||||
# - on: force enable via --build-trixie
|
|
||||||
# - off: force disable via --no-trixie
|
|
||||||
TRIXIE_MODE="auto"
|
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
# Print the header comments (quick reference) followed by explicit flags overview
|
# Print the header comments (quick reference) followed by explicit flags overview
|
||||||
sed -n '2,140p' "$0" | sed -n '/^# /p' | sed 's/^# \{0,1\}//'
|
sed -n '2,140p' "$0" | sed -n '/^# /p' | sed 's/^# \{0,1\}//'
|
||||||
@ -91,8 +85,6 @@ Options:
|
|||||||
--via-helper Use dry-run-build.sh to summarize a dry-run
|
--via-helper Use dry-run-build.sh to summarize a dry-run
|
||||||
--minimal Build minimal stack before hyprland
|
--minimal Build minimal stack before hyprland
|
||||||
--no-fetch Do not auto-fetch tags on install
|
--no-fetch Do not auto-fetch tags on install
|
||||||
--build-trixie Force Debian 13 (trixie) compatibility mode (enables needed shims)
|
|
||||||
--no-trixie Disable trixie compatibility mode
|
|
||||||
--set K=V [...] Set one or more tags (e.g., HYPRLAND=v0.53.0)
|
--set K=V [...] Set one or more tags (e.g., HYPRLAND=v0.53.0)
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
@ -101,18 +93,16 @@ ensure_tags_file() {
|
|||||||
if [[ ! -f "$TAGS_FILE" ]]; then
|
if [[ ! -f "$TAGS_FILE" ]]; then
|
||||||
echo "[INFO] Creating default tags file: $TAGS_FILE" | tee -a "$SUMMARY_LOG"
|
echo "[INFO] Creating default tags file: $TAGS_FILE" | tee -a "$SUMMARY_LOG"
|
||||||
cat >"$TAGS_FILE" <<'EOF'
|
cat >"$TAGS_FILE" <<'EOF'
|
||||||
# Default Hyprland stack versions
|
HYPRLAND_TAG=v0.50.1
|
||||||
# (You can override any of these via --set or by editing hypr-tags.env.)
|
AQUAMARINE_TAG=v0.9.2
|
||||||
HYPRLAND_TAG=v0.53.1
|
HYPRUTILS_TAG=v0.8.2
|
||||||
AQUAMARINE_TAG=v0.10.0
|
HYPRLANG_TAG=v0.6.4
|
||||||
HYPRUTILS_TAG=v0.11.0
|
HYPRGRAPHICS_TAG=v0.1.5
|
||||||
HYPRLANG_TAG=v0.6.8
|
|
||||||
HYPRGRAPHICS_TAG=v0.5.0
|
|
||||||
HYPRWAYLAND_SCANNER_TAG=v0.4.5
|
HYPRWAYLAND_SCANNER_TAG=v0.4.5
|
||||||
HYPRLAND_PROTOCOLS_TAG=v0.7.0
|
HYPRLAND_PROTOCOLS_TAG=v0.6.4
|
||||||
HYPRLAND_QT_SUPPORT_TAG=v0.1.0
|
HYPRLAND_QT_SUPPORT_TAG=v0.1.0
|
||||||
HYPRLAND_QTUTILS_TAG=v0.1.5
|
HYPRLAND_QTUTILS_TAG=v0.1.4
|
||||||
HYPRWIRE_TAG=v0.2.1
|
HYPRWIRE_TAG=auto
|
||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -291,20 +281,6 @@ run_stack() {
|
|||||||
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:${PKG_CONFIG_PATH:-}"
|
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:${PKG_CONFIG_PATH:-}"
|
||||||
export CMAKE_PREFIX_PATH="/usr/local:${CMAKE_PREFIX_PATH:-}"
|
export CMAKE_PREFIX_PATH="/usr/local:${CMAKE_PREFIX_PATH:-}"
|
||||||
|
|
||||||
# Auto-detect Debian trixie unless explicitly overridden.
|
|
||||||
if [[ "$TRIXIE_MODE" == "auto" ]] && [[ -f /etc/os-release ]]; then
|
|
||||||
# shellcheck disable=SC1091
|
|
||||||
. /etc/os-release || true
|
|
||||||
if [[ "${ID:-}" == "debian" ]] && [[ "${VERSION_CODENAME:-}" == "trixie" ]]; then
|
|
||||||
TRIXIE_MODE="on"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [[ "$TRIXIE_MODE" == "on" ]]; then
|
|
||||||
export HYPR_BUILD_TRIXIE=1
|
|
||||||
else
|
|
||||||
export HYPR_BUILD_TRIXIE=0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Propagate system/bundled selection to hyprland.sh
|
# Propagate system/bundled selection to hyprland.sh
|
||||||
if [[ $USE_SYSTEM_LIBS -eq 1 ]]; then
|
if [[ $USE_SYSTEM_LIBS -eq 1 ]]; then
|
||||||
export USE_SYSTEM_HYPRLIBS=1
|
export USE_SYSTEM_HYPRLIBS=1
|
||||||
@ -520,33 +496,13 @@ run_stack() {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
chmod +x "$script" || true
|
chmod +x "$script" || true
|
||||||
|
|
||||||
# Extra args for module scripts
|
|
||||||
# Most scripts ignore unknown flags, so this is safe and lets us add future
|
|
||||||
# trixie-specific shims without changing update-hyprland.sh again.
|
|
||||||
extra_args=()
|
|
||||||
if [[ "${HYPR_BUILD_TRIXIE:-0}" == "1" ]]; then
|
|
||||||
extra_args+=("--build-trixie")
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $DO_DRY_RUN -eq 1 ]]; then
|
if [[ $DO_DRY_RUN -eq 1 ]]; then
|
||||||
if DRY_RUN=1 "$script" "${extra_args[@]}"; then results[$mod]="PASS"; else results[$mod]="FAIL"; fi
|
if DRY_RUN=1 "$script"; then results[$mod]="PASS"; else results[$mod]="FAIL"; fi
|
||||||
else
|
else
|
||||||
if "$script" "${extra_args[@]}"; then results[$mod]="INSTALLED"; else results[$mod]="FAIL"; fi
|
if "$script"; then results[$mod]="INSTALLED"; else results[$mod]="FAIL"; fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Ensure /usr/local/lib is in the dynamic linker search path after installs.
|
|
||||||
# Many Hypr* components install shared libraries into /usr/local/lib; without this,
|
|
||||||
# tools like hyprctl can fail to load (e.g. missing libhyprwire.so.*).
|
|
||||||
if [[ $DO_INSTALL -eq 1 ]]; then
|
|
||||||
echo "[INFO] Ensuring /usr/local/lib is in dynamic linker path" | tee -a "$SUMMARY_LOG"
|
|
||||||
if ! sudo grep -qxF "/usr/local/lib" /etc/ld.so.conf.d/usr-local.conf 2>/dev/null; then
|
|
||||||
echo "/usr/local/lib" | sudo tee -a /etc/ld.so.conf.d/usr-local.conf >/dev/null
|
|
||||||
fi
|
|
||||||
sudo ldconfig || true
|
|
||||||
fi
|
|
||||||
|
|
||||||
{
|
{
|
||||||
printf "\nSummary:\n"
|
printf "\nSummary:\n"
|
||||||
for mod in "${modules[@]}"; do
|
for mod in "${modules[@]}"; do
|
||||||
@ -612,14 +568,6 @@ while [[ $# -gt 0 ]]; do
|
|||||||
NO_FETCH=1
|
NO_FETCH=1
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
--build-trixie)
|
|
||||||
TRIXIE_MODE="on"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--no-trixie)
|
|
||||||
TRIXIE_MODE="off"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--only)
|
--only)
|
||||||
ONLY_LIST=${2:-}
|
ONLY_LIST=${2:-}
|
||||||
shift 2
|
shift 2
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user