144 lines
4.9 KiB
Markdown
144 lines
4.9 KiB
Markdown
# 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
|