# Hyprland for debian Here we have a number of scripts to build the dependencies for hyprland tiling wayland compositor. Our goal is to have a 'debian' way to build these packages using gitbuildpackage to update from upstream, apply patches in a patch queue branch and output debian packages which can be added to the gitea package repo using the automate/utils helper scripts. NB. We have a working example from salsa in [/space/code_repositories/hyprland/](https://salsa.debian.org/debian/hyprland/) that successfully built the 0.36 and upgraded to 0.39.1 using these watch files which were missing from the salsa [hyperland](https://salsa.debian.org/debian/hyprland) and [hyperlang](https://salsa.debian.org/debian/hyprlang) repos: ```bash conf_print_debian-watch_hyprland() { cat <<-'EOF' version=4 opts=filenamemangle=s/.+\/v?(\d\S*)\.tar\.gz/hyprland-$1\.tar\.gz/ \ https://github.com/hyprwm/hyprland/tags .*/v?(\d\S*)\.tar\.gz EOF } # conf_print_debian-watch_hyprland | sudo tee debian/watch ``` This is now included in the salsa hyperlang repo: ```bash conf_print_debian-watch_hyprlang() { cat <<-'EOF' | tee debian/watch version=4 opts=filenamemangle=s/.+\/v?(\d\S*)\.tar\.gz/hyprlang-$1\.tar\.gz/ \ https://github.com/hyprwm/hyprlang/tags .*/v?(\d\S*)\.tar\.gz EOF } # conf_print_debian-watch_hyprlang | sudo tee debian/watch ``` From phind: ```bash version=4 opts="searchmode=html, filenamemangle=s/.+\/v?(\d+\.\d+)\.tar\.gz/hyprland-protocols-$1.tar.gz/" https://github.com/hyprwm/hyprland-protocols/tags .*/v?(\d+\.\d+)\.tar\.gz ``` From salsa repo: ```bash version=4 opts="searchmode=html" \ https://github.com/hyprwm/hyprland-protocols/tags \ https://github.com/hyprwm/hyprland-protocols/archive/refs/tags/v(\d+)\.(\d+).tar\.gz ``` This did not work for 0.4.0 or 0.4.1 ## resulting packages the hyprland build provides: - hyprland - hyprland-common - hyprland-completitions (locally added) - hyprland-dev the hyperlang build provides: - hyprlang - libhyprlang-dev - libhyprlang2 dpkg -i libudis86-0_0+20221013-1_amd64.deb dpkg -i udcli_0+20221013-1_amd64.deb dpkg -i hyprwayland-scanner_0.3.10-1_amd64.deb dpkg -i libhyprlang2_0.5.2-1_amd64.deb dpkg -i libhyprcursor0_0.1.9-1_amd64.deb dpkg -i libhyprutils0_0.1.5-1_amd64.deb dpkg -i hyprcursor-util_0.1.9-1_amd64.deb dpkg -i hyprland-protocols_0.3.0-1_all.deb dpkg -i hyprland_0.41.2+ds-1_amd64.deb dpkg -i hyprland-backgrounds_0.41.2+ds-1_all.deb dpkg -i hyprpaper_0.7.0-1_amd64.deb so far we have manually updated these from the debian source directory with uscan command from the devscripts package: ```bash conf_print_debian-watch_hyprland | sudo tee debian/watch uscan --no-download --verbose uscan while dquilt push; do dquilt refresh; done dch ``` ```bash UPSTREAM_VERSION="0.3.0" LOCAL_VERSION="1" gbp import-orig --uscan gbp pqapply gbp dch -N ${UPSTREAM_VERSION}-${LOCAL_VERSION} -R git add . git commit -m "Update debian/changelog for version ${UPSTREAM_VERSION)-${LOCAL_VERSION}" ``` ## build sequence for build from git NB these scripts only build a debianized upstream git packages, better to fix the salsa packages. - [hyprwayland-scanner](https://salsa.debian.org/debian/hyprland-protocols) - available in debian unstable 001_hyprwayland-scanner.sh [hyprwayland-scanner - A Hyprland implementation of wayland-scanner, in and for C++.](https://github.com/hyprwm/hyprwayland-scanner) - [hyprutils](https://salsa.debian.org/NyxTrail/hyprutils) available in debian 003_hyprutils.sh [hyprutils - Hyprutils is a small C++ library for utilities used across the Hypr\* ecosystem.](https://github.com/hyprwm/hyprutils) - [hyprlang](https://salsa.debian.org/NyxTrail/hyprlang) available in debian 005_hyprlang.sh [hyprlang - The official implementation library for the hypr config language.](https://github.com/hyprwm/hyprlang) - [hypcursor](https://salsa.debian.org/NyxTrail/hyprcursor) available in debian 007_hyprcursor.sh [hyprcursor - The hyprland cursor format, library and utilities.](https://github.com/hyprwm/hyprcursor) - [hyprland-protocols](https://salsa.debian.org/debian/hyprland-protocols) - available in debian unstable 010_hyprland-protocols.sh [hyprland-protocols - Wayland protocol extensions for Hyprland](https://github.com/hyprwm/hyprland-protocols) - [hyprland](https://salsa.debian.org/NyxTrail/hyprland) available in debian 020_hyprland.sh [Hyprland - Hyprland is a highly customizable dynamic tiling Wayland compositor that doesn't sacrifice on its looks.](https://github.com/hyprwm/Hyprland) And a bonus - dot files to configure a pretty hypr (not working yet): - [hyprpaper](https://github.com/hyprwm/hyprpaper) - wallpaper utility for Hyprland with the ability to dynamically change wallpapers through sockets. - hyprdots 025_hyprland-hyprdots.sh [hyprland dotfiles to be converted from arch.](https://github.com/prasanthrangan/hyprdots) ### gitbuildpackage script automate/020_hyprland.sh