diff --git a/CHANGELOGS.md b/CHANGELOGS.md index a04fdb8..e24600e 100644 --- a/CHANGELOGS.md +++ b/CHANGELOGS.md @@ -1,5 +1,15 @@ ## CHANGELOGS +## 02 January 2026 + +- Updated: + - `update-hyprland.sh` pinned to v0.52.2 + - Currently only Debian testing and SID branches build v0.53+ + - Added `--force-update` to refresh the pacakge versions if pinned + - This is only for debian testing+ versions + - `update-hyprland.sh` added `-/--help` + - documentation for updating hyprland + ## 10 December 2025 - Updated: diff --git a/CHANGES_SUMMARY.md b/CHANGES_SUMMARY.md deleted file mode 100644 index 76b4a45..0000000 --- a/CHANGES_SUMMARY.md +++ /dev/null @@ -1,247 +0,0 @@ -# Install Script Updates - Summary of Changes - -## Files Modified -- `install.sh` - Main installation script - -## Files Created -- `INSTALL_METHOD_GUIDE.md` - Comprehensive documentation -- `QUICK_START.txt` - Quick reference guide -- `CHANGES_SUMMARY.md` - This file - -## Key Additions to install.sh - -### 1. Package Source Variable (Line 4-6) -```bash -# Source location for pre-built Debian packages (can be local or network share) -# Set this variable to the path containing .deb files, or leave empty to build from source -DEB_PACKAGES_SOURCE="/mnt/nas/Projects/Jak/debian-pkg/build/debs" -``` - -**Purpose:** Configurable location for pre-built .deb packages -**Default:** `/mnt/nas/Projects/Jak/debian-pkg/build/debs` -**Can be modified to:** Any local path or network share with .deb files - -### 2. clean_existing_hyprland() Function (Lines 123-160) -**Purpose:** Remove conflicting installations before installing from packages - -**Operations:** -- Removes all .deb packages using `apt-get remove` -- Deletes source-built binaries from /usr/bin and /usr/local/bin -- Removes development files from /usr/local/include and /usr/local/lib -- Updates library cache with `ldconfig` - -**Packages Cleaned:** -- hyprland, hyprutils, hyprgraphics, hyprcursor, hyprtoolkit -- hyprland-guiutils, hyprwire, aquamarine, hypridle, hyprlock -- hyprpolkitagent, hyprpicker, xdg-desktop-portal-hyprland, hyprland-plugins - -**Binaries Cleaned:** -- /usr/local/bin/Hyprland, /usr/local/bin/hyprland -- /usr/bin/Hyprland, /usr/bin/hyprland - -**Development Files Cleaned:** -- /usr/local/include/hyprland* -- /usr/local/lib/libhypr* -- /usr/local/lib/libaquamarine* -- /usr/local/lib/libypr* - -### 3. install_from_packages() Function (Lines 162-197) -**Purpose:** Install Hyprland from pre-built .deb packages - -**Steps:** -1. Validate DEB_PACKAGES_SOURCE exists -2. Count available .deb files -3. Call clean_existing_hyprland() for cleanup -4. Update package cache with `apt-get update` -5. Install all .deb files with `dpkg -i` -6. Fix dependencies with `apt-get install -f -y` - -### 4. Build Method Selection (Lines 206-231) -**Purpose:** Allow user to choose between source build and package installation - -**Logic:** -- Detects if packages are available at DEB_PACKAGES_SOURCE -- If yes, prompts user with whiptail dialog - - YES: Install from pre-built packages - - NO: Build from source -- If no packages found, defaults to source build - -**User Prompts:** -- "Build Method" dialog shows package location and options -- "Proceed with Installation?" dialog shows selected method and instructions - -### 5. Installation Flow Modification (Lines 429-490) -**Purpose:** Execute selected build method with proper conditional logic - -**Changes:** -- Added if/else condition checking `build_method` variable -- If "packages": Calls install_from_packages() -- If "source": Executes original build scripts - -**Original Behavior:** Always builds from source -**New Behavior:** Offers choice, defaults to source if packages unavailable - -## Benefits - -### For Users -- **Faster Installation:** 5-10 minutes vs 1-2 hours with pre-built packages -- **Simpler Setup:** No build tools required for package installation -- **Flexibility:** Can choose between speed (packages) or latest code (source) -- **Safety:** Automatic cleanup prevents conflicts between methods -- **Testing Ready:** Can quickly test pre-built packages on shared network - -### For Testing/Development -- **Network Share Support:** Can test on NAS without compiling -- **Version Control:** Easy to test different package versions -- **Quick Iteration:** Fast install/uninstall cycles for testing -- **Shared Resources:** Multiple users can share pre-built packages - -## Configuration - -### Default Setup (Current) -```bash -DEB_PACKAGES_SOURCE="/mnt/nas/Projects/Jak/debian-pkg/build/debs" -``` - -### To Disable Package Installation (Always Source) -```bash -DEB_PACKAGES_SOURCE="" -``` - -### To Use Different Package Location -```bash -DEB_PACKAGES_SOURCE="/path/to/your/packages" -``` - -## Usage Examples - -### Quick Install from Packages -```bash -./install.sh -# Select YES when prompted -# ~5-10 minutes -``` - -### Build from Source -```bash -./install.sh -# Select NO when prompted -# ~1-2 hours -``` - -### Force Package Location -```bash -DEB_PACKAGES_SOURCE="/custom/path" ./install.sh -``` - -## Backward Compatibility - -✓ **Fully backward compatible** -- If DEB_PACKAGES_SOURCE not found, script defaults to source build -- Original source build scripts still work unchanged -- Existing workflows not disrupted - -## Testing Notes - -**Test Scenario 1:** Fresh installation from packages -``` -Expected: 5-10 minute install -Actual: [To be tested] -``` - -**Test Scenario 2:** Switch from source to packages -``` -Expected: Automatic cleanup, fresh install -Actual: [To be tested] -``` - -**Test Scenario 3:** Switch from packages to source -``` -Expected: Cleanup, source build -Actual: [To be tested] -``` - -## Files Included - -| File | Purpose | -|------|---------| -| install.sh | Modified main script with build method options | -| INSTALL_METHOD_GUIDE.md | Comprehensive documentation | -| QUICK_START.txt | Quick reference for users | -| CHANGES_SUMMARY.md | This file | - -## Lines Changed in install.sh - -| Section | Lines | Change Type | -|---------|-------|------------| -| Package source config | 4-6 | New variable | -| clean_existing_hyprland() | 123-160 | New function | -| install_from_packages() | 162-197 | New function | -| Build method selection | 206-231 | New conditional | -| Installation flow | 429-490 | Modified logic | - -## Documentation Created - -1. **INSTALL_METHOD_GUIDE.md** (303 lines) - - Comprehensive user guide - - Installation flows - - Troubleshooting - - Environment variables - - Performance comparison - -2. **QUICK_START.txt** (Plain text format) - - Quick reference - - Common questions - - Troubleshooting - - Ready-to-use commands - -## Pre-built Package Information - -**Location:** `/mnt/nas/Projects/Jak/debian-pkg/build/debs` -**Count:** 59 .deb files -**Version:** Hyprland 0.52.2 -**Date Built:** 2025-12-13 - -### Package Breakdown -- Core packages: 5 -- Utilities: 5 -- Extensions: 5 -- Development files: 7 -- Debug symbols: 24 -- Binary packages: 28 - -## Known Limitations - -1. **Package Availability**: Requires packages to exist at DEB_PACKAGES_SOURCE -2. **Network Dependency**: Remote packages need accessible network path -3. **Version Pinning**: Pre-built packages are fixed version (no live updates) -4. **Space Requirements**: 59 .deb files require ~1-2GB total - -## Future Enhancements - -Potential improvements for future versions: -- Package version selection dialog -- Automatic package generation option -- Package download from repository -- Package cache management -- Mirror support for distributed testing - -## Support & Maintenance - -For issues or questions: -1. Check INSTALL_METHOD_GUIDE.md -2. Review Install-Logs/ directory -3. Verify DEB_PACKAGES_SOURCE accessibility -4. Run `apt-get update` manually if needed - -## Version History - -| Date | Version | Changes | -|------|---------|---------| -| 2025-12-13 | 1.0 | Initial release with package installation support | - ---- - -**Script Updated:** 2025-12-13 -**Compatible with:** Debian Trixie / SiD -**Build System:** dpkg-buildpackage diff --git a/Debian-Hyprland-Install-Upgrade.es.md b/Debian-Hyprland-Install-Upgrade.es.md index daffb9b..50577c2 100644 --- a/Debian-Hyprland-Install-Upgrade.es.md +++ b/Debian-Hyprland-Install-Upgrade.es.md @@ -42,6 +42,12 @@ chmod +x ./update-hyprland.sh ./update-hyprland.sh --help # Ver todas las opciones ``` +Flags clave: +- --fetch-latest: obtiene las últimas etiquetas desde GitHub +- --force-update: sobrescribe valores fijados en hypr-tags.env (equivalente a FORCE=1) +- --dry-run / --install: solo compilar o compilar+instalar +- --only / --skip: limitar qué módulos se ejecutan + #### dry-run-build.sh Herramienta de pruebas que compila componentes sin instalarlos: ```bash @@ -100,6 +106,9 @@ Ahora, este método automáticamente: ```bash # Obtiene últimas versiones de GitHub e instala ./update-hyprland.sh --fetch-latest --install + +# Si tu hypr-tags.env tiene valores fijados y deseas sobrescribirlos: +./update-hyprland.sh --fetch-latest --force-update --install ``` ### Método 4: Instalación con Preset @@ -116,8 +125,11 @@ Enlace rápido: [Actualización 0.49/0.50.x → 0.51.1](#actualización-049050x- #### Opción A: Descubrimiento Automático ```bash -# Obtiene las últimas etiquetas e instala +# Obtiene las últimas etiquetas e instala (respeta versiones fijadas en hypr-tags.env) ./update-hyprland.sh --fetch-latest --install + +# Forzar la actualización de todas las etiquetas (mismo efecto que ejecutar refresh con FORCE=1) +./update-hyprland.sh --fetch-latest --force-update --install ``` #### Opción B: Versión Específica @@ -254,6 +266,14 @@ find Install-Logs/ -name "*.log" -mtime +30 -delete ### Gestión de Versiones +#### Forzar la Actualización de Todas las Etiquetas +```bash +# Sobrescribe valores fijados en hypr-tags.env con las últimas versiones +./update-hyprland.sh --fetch-latest --force-update --dry-run +# Instalar si la dry-run es exitosa +./update-hyprland.sh --force-update --install +``` + #### Copia de Seguridad y Restauración ```bash # Las etiquetas se respaldan automáticamente cuando cambian diff --git a/Debian-Hyprland-Install-Upgrade.md b/Debian-Hyprland-Install-Upgrade.md index f057561..5cf20c9 100644 --- a/Debian-Hyprland-Install-Upgrade.md +++ b/Debian-Hyprland-Install-Upgrade.md @@ -42,6 +42,12 @@ chmod +x ./update-hyprland.sh ./update-hyprland.sh --help # View all options ``` +Key flags: +- --fetch-latest: pull latest release tags from GitHub +- --force-update: override pinned values in hypr-tags.env (equivalent to FORCE=1) +- --dry-run / --install: compile-only or compile+install +- --only / --skip: limit which modules run + #### dry-run-build.sh A testing tool that compiles components without installing: ```bash @@ -100,6 +106,9 @@ This method now automatically: ```bash # Fetch latest GitHub releases and install ./update-hyprland.sh --fetch-latest --install + +# If your hypr-tags.env has pinned values and you want to override them: +./update-hyprland.sh --fetch-latest --force-update --install ``` ### Method 4: Preset-Based Installation @@ -116,8 +125,11 @@ Quick link: [Upgrade 0.49/0.50.x → 0.51.1](#upgrade-049050x--0511) #### Option A: Automatic Discovery ```bash -# Fetch latest tags and install +# Fetch latest tags and install (respects pins in hypr-tags.env) ./update-hyprland.sh --fetch-latest --install + +# Force-override pinned values (same effect as running refresh with FORCE=1) +./update-hyprland.sh --fetch-latest --force-update --install ``` #### Option B: Specific Version @@ -254,6 +266,14 @@ find Install-Logs/ -name "*.log" -mtime +30 -delete ### Tag Management +#### Force Update All Tags +```bash +# Override pinned values in hypr-tags.env to the latest releases +./update-hyprland.sh --fetch-latest --force-update --dry-run +# Install if the dry-run succeeds +./update-hyprland.sh --force-update --install +``` + #### Backup and Restore ```bash # Tags are automatically backed up on changes diff --git a/hypr-tags.env b/hypr-tags.env index e3c4ca3..81c0404 100644 --- a/hypr-tags.env +++ b/hypr-tags.env @@ -1,13 +1,15 @@ +# 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_TAG=v0.52.2 AQUAMARINE_TAG=v0.10.0 -HYPRGRAPHICS_TAG=v0.5.0 -HYPRLAND_GUIUTILS_TAG=v0.2.0 +HYPRUTILS_TAG=v0.10.4 +HYPRLANG_TAG=v0.6.7 +HYPRGRAPHICS_TAG=v0.4.0 +HYPRTOOLKIT_TAG=v0.4.1 +HYPRWAYLAND_SCANNER_TAG=v0.4.5 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 +HYPRLAND_GUIUTILS_TAG=v0.2.0 WAYLAND_PROTOCOLS_TAG=1.46 diff --git a/hypr-tags.env-v.053 b/hypr-tags.env-v.053 new file mode 100644 index 0000000..e3c4ca3 --- /dev/null +++ b/hypr-tags.env-v.053 @@ -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 diff --git a/update-hyprland.sh b/update-hyprland.sh index e8f3ec4..c742510 100755 --- a/update-hyprland.sh +++ b/update-hyprland.sh @@ -17,6 +17,8 @@ # ./update-hyprland.sh --skip aquamarine --install # ./update-hyprland.sh --with-deps --dry-run # ./update-hyprland.sh --fetch-latest --via-helper # use dry-run-build.sh for a summary-only run +# ./update-hyprland.sh --force-update --install # override pinned versions (equivalent to FORCE=1) +# ./update-hyprland.sh --help # show this help # # Notes: # - Requires curl; for --fetch-latest, jq is recommended (installed by 00-dependencies.sh) @@ -58,12 +60,33 @@ NO_FETCH=0 USE_SYSTEM_LIBS=1 AUTO_FALLBACK=0 MINIMAL=0 +FORCE_UPDATE=0 ONLY_LIST="" SKIP_LIST="" SET_ARGS=() usage() { - sed -n '2,120p' "$0" | sed -n '/^# /p' | sed 's/^# \{0,1\}//' + # Print the header comments (quick reference) followed by explicit flags overview + sed -n '2,140p' "$0" | sed -n '/^# /p' | sed 's/^# \{0,1\}//' + cat <