Pinned version to 52.2 for debian stable support

On branch development
 Your branch is up to date with 'origin/development'.

 Changes to be committed:
	modified:   CHANGELOGS.md
	deleted:    CHANGES_SUMMARY.md
	modified:   Debian-Hyprland-Install-Upgrade.es.md
	modified:   Debian-Hyprland-Install-Upgrade.md
	modified:   hypr-tags.env
	new file:   hypr-tags.env-v.053
	modified:   update-hyprland.sh
This commit is contained in:
Don Williams 2026-01-02 19:32:19 -05:00
parent 7434ceac25
commit 7afba04e3a
7 changed files with 116 additions and 261 deletions

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

13
hypr-tags.env-v.053 Normal file
View 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

View File

@ -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 <<EOF
Options:
-h, --help Show this help and exit
--with-deps Install build dependencies before running
--dry-run Compile only; do not install
--install Compile and install
--fetch-latest Fetch latest releases from GitHub
--force-update Override pinned values in hypr-tags.env (equivalent to FORCE=1)
--restore Restore most recent hypr-tags.env backup
--only LIST Comma-separated subset to build (e.g., hyprland,hyprutils)
--skip LIST Comma-separated modules to skip
--bundled Build Hyprland with bundled hypr* subprojects
--system Prefer system-installed hypr* libraries (default)
--via-helper Use dry-run-build.sh to summarize a dry-run
--minimal Build minimal stack before hyprland
--no-fetch Do not auto-fetch tags on install
--set K=V [...] Set one or more tags (e.g., HYPRLAND=v0.53.0)
EOF
}
ensure_tags_file() {
@ -195,10 +218,15 @@ fetch_latest_tags() {
done <"$TAGS_FILE"
for k in "${!tags[@]}"; do
# Only override if pinned value is 'auto' or 'latest'
if [[ $FORCE_UPDATE -eq 1 ]]; then
# Force override regardless of current value (matches FORCE=1 behavior in refresh-hypr-tags.sh)
map[$k]="${tags[$k]}"
else
# Only override if pinned value is 'auto' or 'latest' (or unset)
if [[ "${existing[$k]:-}" =~ ^(auto|latest)$ ]] || [[ -z "${existing[$k]:-}" ]]; then
map[$k]="${tags[$k]}"
fi
fi
done
{
@ -489,6 +517,10 @@ while [[ $# -gt 0 ]]; do
FETCH_LATEST=1
shift
;;
--force-update)
FORCE_UPDATE=1
shift
;;
--restore)
RESTORE=1
shift
@ -547,6 +579,11 @@ fi
ensure_tags_file
# Env compatibility: honor FORCE=1 as alias for --force-update
if [[ ${FORCE:-0} -eq 1 ]]; then
FORCE_UPDATE=1
fi
# Apply tag operations
if [[ $RESTORE -eq 1 ]]; then
restore_tags