mirror of
https://github.com/JaKooLit/Debian-Hyprland.git
synced 2026-02-05 01:30:13 +01:00
* Testing build from debian packages
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
new file: BUILD_METHOD_OPTIONS.md
new file: CHANGES_SUMMARY.md
new file: GIT_STATUS.md
new file: INSTALL_METHOD_GUIDE.md
new file: QUICK_START.txt
modified: install.sh
* Fix package installation: skip plugins and debug symbols by default, improve dependency handling
* Add comprehensive troubleshooting guide for package installation issues
* Fix package installation path handling: use full paths instead of cd to preserve working directory
* Removed files related to debian pacakge building
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
deleted: BUILD_METHOD_OPTIONS.md
deleted: GIT_STATUS.md
deleted: INSTALL_METHOD_GUIDE.md
deleted: PACKAGE_INSTALL_TROUBLESHOOTING.md
deleted: QUICK_START.txt
* Ported ubuntu quickshell install script to debian
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
new file: install-scripts/quickshell.sh
* Forgot to add quickshell as install option
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install.sh
* Added missing depdendencies to debian quickshell
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/quickshell.sh
* Fixing QML import pathing
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/quickshell.sh
* Adding shim for missing QML properies
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/quickshell.sh
* Added check for debian trixie in quickshell install
Trixe doesn't support overview seems like the QT libs are too old
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/quickshell.sh
* Fixed typo in script
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: refresh-hypr-tags.sh
* libmuparser-dev is now needed
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/00-dependencies.sh
modified: install-scripts/hyprland.sh
* Adding hyprwire depdency
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hypr-tags.env
new file: install-scripts/hyprwire.sh
modified: install.sh
modified: refresh-hypr-tags.sh
modified: update-hyprland.sh
* Updating hyprwire build order
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/hyprland.sh
* Fixing script permissions
* fixing hyprwire build error
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hyprwire.sh
* Still fixing hyprwire build errors
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hyprwire.sh
* Fixing SED error. (I Hate sed)
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hyprwire.sh
* Still getting append errors trying another fix
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hyprwire.sh
* Updated tags for 0.53.0
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: ../hypr-tags.env
modified: hyprland.sh
* Fixing build error on hyprland
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hyprland.sh
* Still getting build errors with hyprland
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/hyprland.sh
* More build errors to fix
On branch development
Your branch is ahead of 'origin/development' by 1 commit.
(use "git push" to publish your local commits)
Changes to be committed:
modified: install-scripts/hyprland.sh
* Fixind SED error
* Hyprland tag set to 52.2
* Scripts has hardcoded versions vs. pulling hypr-env
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/aquamarine.sh
modified: install-scripts/hyprcursor.sh
modified: install-scripts/hyprgraphics.sh
modified: install-scripts/hyprland-guiutils.sh
modified: install-scripts/hyprland-protocols.sh
modified: install-scripts/hyprland-qt-support.sh
modified: install-scripts/hyprland.sh
modified: install-scripts/hyprlang.sh
modified: install-scripts/hyprtoolkit.sh
modified: install-scripts/hyprutils.sh
modified: install-scripts/hyprwayland-scanner.sh
modified: install-scripts/hyprwire.sh
modified: install-scripts/wayland-protocols-src.sh
* Fixing update-hyprland to support tags
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/hyprutils.sh
modified: update-hyprland.sh
* Fixing update-hyprland (again) to use env-tags
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: update-hyprland.sh
* Fixing update-hyprland
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: update-hyprland.sh
* Trying to get trixie to build
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/hyprland.sh
* Updated README re: NVIDIA drivers & HL 0.52.2+ on Trixie
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: README.md
* UPD: Before ubunmtu was out-of-date, now can run HL dots
previsously ubuntu was older HL. Now it's up to date and can
also run current dotfiles. Removed old statement saying ubuntu could not
run current dotfiles.
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: README.md
* 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
* Fixed update-hyprland refresh-hypr-tags --force-override
It now assumes --fetch-latest
Small formatting fixes
Now shows version to upgrade too and pause to allow review
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: CHANGELOGS.md
modified: Debian-Hyprland-Install-Upgrade.es.md
modified: Debian-Hyprland-Install-Upgrade.md
modified: dry-run-build.sh
modified: refresh-hypr-tags.sh
modified: update-hyprland.sh
* Fixing build scrpt to work onm debian stable
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/hyprland-guiutils.sh
* Added selectable shim for hyprwire to allow building on trixie
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hyprwire.sh
* Fixed hyprland 0.53 build for trixie found bug in xdph script
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hyprland.sh
modified: xdph.sh
modified: ../install.sh
modified: ../update-hyprland.sh
* Major Update Debian trixie 0.53.1 support new build flags
Trixie needs small patches to build vs. testing+
Script now detects that. But some debian based distros might mask name
There is a flag `--force-trixie` to include the fixes
Updated the Install-Upgrade documents with the specifics
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: CHANGELOGS.md
modified: Debian-Hyprland-Install-Upgrade.es.md
modified: Debian-Hyprland-Install-Upgrade.md
modified: README.md
modified: hypr-tags.env
deleted: hypr-tags.env-v.053
modified: install.sh
modified: refresh-hypr-tags.sh
modified: update-hyprland.sh
* Updated CHANGELOG with note about debian stable support
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
renamed: CHANGELOGS.md -> CHANGELOG.md
* Sync README/CHANGELOG with main
* Updated CHANGELOG and README re: debian trixie upgrades to Forky+
You must recompile Hyprland
`update-hyprland --install --with-deps`
Otherwise hyprland won't start
You will be returned to the login manager
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: CHANGELOG.md
modified: README.md
* Fixed install script to pull current headers for versioning
Fastfetch was showing wrong version duo to header files from 52.2
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/hyprland.sh
* Improved syncing versioning
Gets commit hash, tag, date, commit count, dirty state from hyprland --version.
Pulls library versions from hyprland --version first, and falls back to hypr-tags.env if missing.
Writes those values into /usr/include/hyprland/src/version.h.
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/hyprland.sh
* Fixed ver mismatch in FF Pinned stable to 53.2 create build dir
Now the code will compile in build directory vs. base directory
Easier to clean up
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: CHANGELOG.md
modified: Debian-Hyprland-Install-Upgrade.es.md
modified: Debian-Hyprland-Install-Upgrade.md
modified: README.md
modified: hypr-tags.env
modified: install-scripts/Global_functions.sh
modified: install-scripts/ags.sh
modified: install-scripts/aquamarine.sh
modified: install-scripts/hyprcursor.sh
modified: install-scripts/hyprgraphics.sh
modified: install-scripts/hypridle.sh
modified: install-scripts/hyprland-guiutils.sh
modified: install-scripts/hyprland-protocols.sh
modified: install-scripts/hyprland-qt-support.sh
modified: install-scripts/hyprland.sh
modified: install-scripts/hyprlang.sh
modified: install-scripts/hyprlock.sh
modified: install-scripts/hyprpolkitagent.sh
modified: install-scripts/hyprtoolkit.sh
modified: install-scripts/hyprutils.sh
modified: install-scripts/hyprwayland-scanner.sh
modified: install-scripts/hyprwire.sh
modified: install-scripts/quickshell.sh
modified: install-scripts/rofi-wayland.sh
modified: install-scripts/wayland-protocols-src.sh
modified: install-scripts/xdph.sh
modified: install-scripts/xkbcommon.sh
modified: refresh-hypr-tags.sh
modified: update-hyprland.sh
* Moved source and builds to build dir
Cleanup is now just removing the build directory and install-logs
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/Global_functions.sh
modified: install-scripts/ags.sh
modified: install-scripts/aquamarine.sh
modified: install-scripts/dotfiles-branch.sh
modified: install-scripts/gtk_themes.sh
modified: install-scripts/hyprcursor.sh
modified: install-scripts/hyprgraphics.sh
modified: install-scripts/hypridle.sh
modified: install-scripts/hyprland-guiutils.sh
modified: install-scripts/hyprland-protocols.sh
modified: install-scripts/hyprland-qt-support.sh
modified: install-scripts/hyprland.sh
modified: install-scripts/hyprlang.sh
modified: install-scripts/hyprlock.sh
modified: install-scripts/hyprpolkitagent.sh
modified: install-scripts/hyprtoolkit.sh
modified: install-scripts/hyprutils.sh
modified: install-scripts/hyprwayland-scanner.sh
modified: install-scripts/hyprwire.sh
modified: install-scripts/quickshell.sh
modified: install-scripts/rofi-wayland.sh
modified: install-scripts/rog.sh
modified: install-scripts/sddm_theme.sh
modified: install-scripts/swww.sh
modified: install-scripts/wayland-protocols-src.sh
modified: install-scripts/xdph.sh
modified: install-scripts/xkbcommon.sh
modified: install-scripts/zsh_pokemon.sh
* Fixed build error with hyprtoolkit
* Updated docs for new build dir layout and how to clean up after
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: Debian-Hyprland-Install-Upgrade.es.md
modified: Debian-Hyprland-Install-Upgrade.md
* Updated CHANGELOG with build dir change and fixes
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: CHANGELOG.md
577 lines
14 KiB
Markdown
577 lines
14 KiB
Markdown
# Debian-Hyprland Install & Upgrade Guide
|
||
|
||
This guide covers the enhanced installation and upgrade workflows for KooL's Debian-Hyprland project, including new automation features, centralized version management, and dry-run capabilities.
|
||
|
||
## Table of Contents
|
||
|
||
1. [Overview](#overview)
|
||
2. [New Features](#new-features)
|
||
3. [Flags Reference](#flags-reference)
|
||
4. [Debian 13 (Trixie) Compatibility Mode](#debian-13-trixie-compatibility-mode)
|
||
5. [Central Version Management](#central-version-management)
|
||
6. [Installation Methods](#installation-methods)
|
||
7. [Upgrade Workflows](#upgrade-workflows)
|
||
8. [Dry-Run Testing](#dry-run-testing)
|
||
9. [Log Management](#log-management)
|
||
10. [Advanced Usage](#advanced-usage)
|
||
11. [Troubleshooting](#troubleshooting)
|
||
|
||
## Overview
|
||
|
||
The Debian-Hyprland project now includes enhanced automation and management tools while maintaining backward compatibility with the original install.sh script. The key additions are:
|
||
|
||
- **Centralized version management** via `hypr-tags.env`
|
||
- **Automated dependency ordering** for Hyprland 0.51.x requirements
|
||
- **Dry-run compilation testing** without system modifications
|
||
- **Selective component updates** via `update-hyprland.sh`
|
||
- **GitHub latest tag fetching** for automatic version discovery
|
||
|
||
## New Features
|
||
|
||
### Enhanced install.sh
|
||
|
||
The original install.sh script now includes:
|
||
|
||
- **Tag consistency**: Reads `hypr-tags.env` and exports version variables to all modules
|
||
- **Automatic wayland-protocols**: Installs wayland-protocols from source (≥1.45) before Hyprland
|
||
- **Robust dependency ordering**: Ensures prerequisites are built in the correct sequence
|
||
|
||
### New Scripts
|
||
|
||
#### update-hyprland.sh
|
||
|
||
A focused tool for managing and building just the Hyprland stack:
|
||
|
||
```bash
|
||
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
|
||
- --build-trixie / --no-trixie: enable/disable Debian 13 (trixie) compatibility mode (auto-detected by default)
|
||
|
||
#### dry-run-build.sh
|
||
|
||
A testing tool that compiles components without installing:
|
||
|
||
```bash
|
||
chmod +x ./dry-run-build.sh
|
||
./dry-run-build.sh --help # View all options
|
||
```
|
||
|
||
#### wayland-protocols-src.sh
|
||
|
||
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
|
||
|
||
### hypr-tags.env
|
||
|
||
This file contains version tags for all Hyprland components:
|
||
|
||
```bash
|
||
# Current versions (example)
|
||
HYPRLAND_TAG=v0.53.2
|
||
AQUAMARINE_TAG=v0.10.0
|
||
HYPRUTILS_TAG=v0.11.0
|
||
HYPRLANG_TAG=v0.6.8
|
||
HYPRGRAPHICS_TAG=v0.5.0
|
||
HYPRTOOLKIT_TAG=v0.4.1
|
||
HYPRWAYLAND_SCANNER_TAG=v0.4.5
|
||
HYPRLAND_PROTOCOLS_TAG=v0.7.0
|
||
HYPRLAND_QT_SUPPORT_TAG=v0.1.0
|
||
HYPRLAND_QTUTILS_TAG=v0.1.5
|
||
HYPRLAND_GUIUTILS_TAG=v0.2.0
|
||
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
|
||
|
||
1. Environment variables (exported)
|
||
2. hypr-tags.env file values
|
||
3. Default hardcoded values in each module
|
||
|
||
## Installation Methods
|
||
|
||
### Method 1: Original Full Installation
|
||
|
||
```bash
|
||
# Standard installation with all components
|
||
chmod +x install.sh
|
||
./install.sh
|
||
```
|
||
|
||
This method now automatically:
|
||
|
||
- Loads versions from `hypr-tags.env`
|
||
- Installs wayland-protocols from source before Hyprland
|
||
- Maintains proper dependency ordering
|
||
|
||
### Method 2: Hyprland Stack Only
|
||
|
||
```bash
|
||
# Install only Hyprland and essential components
|
||
./update-hyprland.sh --install
|
||
```
|
||
|
||
### Method 3: Fresh Installation with Latest Versions
|
||
|
||
```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
|
||
|
||
```bash
|
||
# Use preset file for automated choices
|
||
./install.sh --preset ./preset.sh
|
||
```
|
||
|
||
## Upgrade Workflows
|
||
|
||
Quick link: [Upgrade 0.49/0.50.x → 0.51.1](#upgrade-049050x--0511)
|
||
|
||
### Upgrading to Latest Hyprland Release
|
||
|
||
#### Option A: Automatic Discovery
|
||
|
||
```bash
|
||
# 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
|
||
|
||
```bash
|
||
# Set specific Hyprland version
|
||
./update-hyprland.sh --set HYPRLAND=v0.51.1 --install
|
||
```
|
||
|
||
#### Option C: Test Before Installing
|
||
|
||
```bash
|
||
# Test compilation first, then install if successful
|
||
./update-hyprland.sh --fetch-latest --dry-run
|
||
# If successful:
|
||
./update-hyprland.sh --install
|
||
```
|
||
|
||
### Upgrading Individual Components
|
||
|
||
```bash
|
||
# Update only core libraries (often needed for new Hyprland versions)
|
||
./update-hyprland.sh --fetch-latest --install --only hyprutils,hyprlang
|
||
|
||
# Update aquamarine specifically
|
||
./update-hyprland.sh --set AQUAMARINE=v0.9.3 --install --only aquamarine
|
||
```
|
||
|
||
### Selective Updates
|
||
|
||
```bash
|
||
# Install everything except Qt components
|
||
./update-hyprland.sh --install --skip hyprland-qt-support,hyprland-qtutils
|
||
|
||
# Install only specific components
|
||
./update-hyprland.sh --install --only hyprland,aquamarine
|
||
```
|
||
|
||
### Upgrade: 0.49/0.50.x ➜ 0.51.1
|
||
|
||
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:
|
||
|
||
```bash
|
||
# Ensure hypr-tags.env pins the target version (skip if already v0.51.1)
|
||
./update-hyprland.sh --set HYPRLAND=v0.51.1
|
||
|
||
# Upgrade Hyprland (prerequisites are auto-included and ordered)
|
||
./update-hyprland.sh --install --only hyprland
|
||
```
|
||
|
||
Notes:
|
||
|
||
- 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.
|
||
- Optional: add --with-deps to re-run dependency installation first:
|
||
|
||
```bash
|
||
./update-hyprland.sh --with-deps --install --only hyprland
|
||
```
|
||
|
||
- You can dry-run first to validate:
|
||
|
||
```bash
|
||
./update-hyprland.sh --dry-run --only hyprland
|
||
```
|
||
|
||
## Dry-Run Testing
|
||
|
||
### Why Use Dry-Run?
|
||
|
||
- Test compilation compatibility before installing
|
||
- Validate version combinations
|
||
- Debug build issues without system changes
|
||
- CI/CD pipeline integration
|
||
|
||
### Basic Dry-Run Usage
|
||
|
||
```bash
|
||
# Test current tag configuration
|
||
./update-hyprland.sh --dry-run
|
||
|
||
# Test with latest GitHub releases
|
||
./update-hyprland.sh --fetch-latest --dry-run
|
||
|
||
# Test specific version
|
||
./update-hyprland.sh --set HYPRLAND=v0.51.1 --dry-run
|
||
```
|
||
|
||
### Advanced Dry-Run Testing
|
||
|
||
```bash
|
||
# Use alternative summary format
|
||
./update-hyprland.sh --via-helper
|
||
|
||
# Test with dependencies installation
|
||
./dry-run-build.sh --with-deps
|
||
|
||
# Test only specific components
|
||
./dry-run-build.sh --only hyprland,aquamarine
|
||
```
|
||
|
||
### Dry-Run Limitations
|
||
|
||
- **Dependencies still install**: apt operations run to ensure compilation succeeds
|
||
- **pkg-config requirements**: Some components need system-installed prerequisites
|
||
- **No system changes**: No files installed to /usr/local or /usr
|
||
|
||
## Log Management
|
||
## Build Artifacts & Cleanup
|
||
|
||
All source clones and build outputs now live under `~/Debian-Hyprland/build/`:
|
||
|
||
- **Sources:** `build/src/<project>`
|
||
- **Build output:** `build/<project>`
|
||
|
||
This keeps the repo root clean. To remove all build artifacts:
|
||
|
||
```bash
|
||
rm -rf ~/Debian-Hyprland/build
|
||
```
|
||
|
||
Note: This only removes build artifacts and downloaded sources; it does not uninstall anything from your system.
|
||
|
||
### Log Location
|
||
|
||
All build activities generate timestamped logs in:
|
||
|
||
```
|
||
Install-Logs/
|
||
├── 01-Hyprland-Install-Scripts-YYYY-MM-DD-HHMMSS.log # Main install log
|
||
├── install-DD-HHMMSS_module-name.log # Per-module logs
|
||
├── build-dry-run-YYYY-MM-DD-HHMMSS.log # Dry-run summary
|
||
└── update-hypr-YYYY-MM-DD-HHMMSS.log # Update tool summary
|
||
```
|
||
|
||
### Log Analysis
|
||
|
||
```bash
|
||
# View most recent install log
|
||
ls -t Install-Logs/*.log | head -1 | xargs less
|
||
|
||
# Check for errors in specific module
|
||
grep -i error Install-Logs/install-*hyprland*.log
|
||
|
||
# View dry-run summary
|
||
cat Install-Logs/build-dry-run-*.log
|
||
```
|
||
|
||
### Log Retention
|
||
|
||
- Logs accumulate over time for historical reference
|
||
- Manual cleanup recommended periodically:
|
||
|
||
```bash
|
||
# Keep only logs from last 30 days
|
||
find Install-Logs/ -name "*.log" -mtime +30 -delete
|
||
```
|
||
|
||
## Advanced Usage
|
||
|
||
### 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
|
||
# Restore most recent backup
|
||
./update-hyprland.sh --restore --dry-run
|
||
```
|
||
|
||
#### Multiple Version Sets
|
||
|
||
```bash
|
||
# Save current configuration
|
||
cp hypr-tags.env hypr-tags-stable.env
|
||
|
||
# Try experimental versions
|
||
./update-hyprland.sh --fetch-latest --dry-run
|
||
|
||
# Restore stable if needed
|
||
cp hypr-tags-stable.env hypr-tags.env
|
||
```
|
||
|
||
### Environment Integration
|
||
|
||
#### Custom PKG_CONFIG_PATH
|
||
|
||
```bash
|
||
# Ensure /usr/local takes precedence
|
||
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:${PKG_CONFIG_PATH:-}"
|
||
./update-hyprland.sh --install
|
||
```
|
||
|
||
#### Parallel Builds
|
||
|
||
```bash
|
||
# Control build parallelism (default: all cores)
|
||
export MAKEFLAGS="-j4"
|
||
./update-hyprland.sh --install
|
||
```
|
||
|
||
### Development Workflow
|
||
|
||
#### Testing New Releases
|
||
|
||
```bash
|
||
# 1. Create test environment
|
||
cp hypr-tags.env hypr-tags.backup
|
||
|
||
# 2. Test new version
|
||
./update-hyprland.sh --set HYPRLAND=v0.52.0 --dry-run
|
||
|
||
# 3. Install if successful
|
||
./update-hyprland.sh --install
|
||
|
||
# 4. Rollback if issues
|
||
./update-hyprland.sh --restore --install
|
||
```
|
||
|
||
#### Component Development
|
||
|
||
```bash
|
||
# Install dependencies only
|
||
./update-hyprland.sh --with-deps --dry-run
|
||
|
||
# Manual module testing
|
||
DRY_RUN=1 ./install-scripts/hyprland.sh
|
||
|
||
# Check logs for specific module
|
||
tail -f Install-Logs/install-*hyprland*.log
|
||
```
|
||
|
||
## Troubleshooting
|
||
|
||
### Common Issues
|
||
|
||
#### CMake Configuration Fails
|
||
|
||
**Symptoms**: "Package dependency requirement not satisfied"
|
||
|
||
**Solutions**:
|
||
|
||
```bash
|
||
# Install missing prerequisites
|
||
./update-hyprland.sh --install --only wayland-protocols-src,hyprutils,hyprlang
|
||
|
||
# Clear build cache
|
||
rm -rf hyprland aquamarine hyprutils hyprlang
|
||
|
||
# Retry installation
|
||
./update-hyprland.sh --install --only hyprland
|
||
```
|
||
|
||
#### Compilation Errors
|
||
|
||
**Symptoms**: "too many errors emitted"
|
||
|
||
**Solutions**:
|
||
|
||
```bash
|
||
# Update core dependencies first
|
||
./update-hyprland.sh --fetch-latest --install --only hyprutils,hyprlang
|
||
|
||
# Check for API mismatches in logs
|
||
grep -A5 -B5 "error:" Install-Logs/install-*hyprland*.log
|
||
```
|
||
|
||
#### Tag Not Found
|
||
|
||
**Symptoms**: "Remote branch X not found"
|
||
|
||
**Solutions**:
|
||
|
||
```bash
|
||
# Check available tags
|
||
git ls-remote --tags https://github.com/hyprwm/Hyprland
|
||
|
||
# Use confirmed existing tag
|
||
./update-hyprland.sh --set HYPRLAND=v0.50.1 --install
|
||
```
|
||
|
||
### Debug Steps
|
||
|
||
1. **Check system compatibility**:
|
||
|
||
```bash
|
||
# Verify Debian version
|
||
cat /etc/os-release
|
||
|
||
# Ensure deb-src enabled
|
||
grep -E "^deb-src" /etc/apt/sources.list
|
||
```
|
||
|
||
2. **Verify environment**:
|
||
|
||
```bash
|
||
# Check current tags
|
||
cat hypr-tags.env
|
||
|
||
# Test dry-run first
|
||
./update-hyprland.sh --dry-run --only hyprland
|
||
```
|
||
|
||
3. **Analyze logs**:
|
||
|
||
```bash
|
||
# Most recent errors
|
||
grep -i "error\|fail" Install-Logs/*.log | tail -20
|
||
|
||
# Module-specific issues
|
||
ls -la Install-Logs/install-*[component]*.log
|
||
```
|
||
|
||
### Getting Help
|
||
|
||
1. **Check logs**: Always review Install-Logs/ for detailed error information
|
||
2. **Test dry-run**: Use --dry-run to validate before installing
|
||
3. **Community support**: Submit issues with relevant log excerpts
|
||
4. **Documentation**: Refer to main project README.md for base requirements
|
||
|
||
## Migration from Previous Versions
|
||
|
||
### Existing Installations
|
||
|
||
The new tools work alongside existing installations:
|
||
|
||
```bash
|
||
# Update existing installation
|
||
./update-hyprland.sh --install
|
||
|
||
# Test without affecting current system
|
||
./update-hyprland.sh --dry-run
|
||
```
|
||
|
||
### Converting to Tag Management
|
||
|
||
```bash
|
||
# Current versions are saved to hypr-tags.env automatically
|
||
# Verify with:
|
||
cat hypr-tags.env
|
||
|
||
# Modify versions as needed:
|
||
./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.
|