summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 693e22f5efe5f0b9e5a8fcd5b111e243c5768af5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# Maintainer: Mark Karlinsky <mark.devnull@gmail.com>
pkgname=niri-dinit
pkgver=0.1.10.1
pkgrel=1
pkgdesc="A scrollable-tiling Wayland compositor (with dinit dependency instead of systemd)"
arch=('x86_64')
url="https://github.com/YaLTeR/niri"
license=('GPL-3.0-or-later')
depends=(
    'libpipewire'
    'pango'
    'glib2'
    'cairo'
    'libdisplay-info'
    'mesa'
    'libseat.so'
    'libudev.so'
    'libinput'
    'pixman'
    'libxkbcommon'
    'gcc-libs'
)
makedepends=(
    'git'
    'cargo'
    'clang'
)
optdepends=(
  'alacritty: suggested cross-platform OpenGL terminal emulator'
  'fuzzel: suggested Wayland application launcher'
  'gnome-keyring: org.freedesktop.secrets portal implementation'
  'mako: suggested Wayland notification daemon'
  'swaybg: suggested Wayland wallpaper tool'
  'swaylock: suggested Wayland screen locking utility'
  'swayidle: suggested Wayland idle management daemon'
  'waybar: suggested Wayland highly customizable desktop bar'
  'xdg-desktop-portal-gtk: XDG desktop portal that implements most functionality'
  'xdg-desktop-portal-gnome: XDG desktop portal that supports screencasting'
)
provides=("niri=${pkgver}")
conflicts=("niri")
options=(!lto)
_tag=c167ec7fed88fecd6dbc24954b89550b65750fac # git rev-parse "v$pkgver"
source=("git+${url}.git#tag=${_tag}")
sha256sums=('bb1e3358fba10e10c27909e45fad998452902747e6877246d33f3dee4036fce6')

prepare() {
    cd "$srcdir/niri"
    export RUSTUP_TOOLCHAIN=stable
    export CARGO_HOME="$(pwd)/.cargo"
    cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
}

build() {
    cd "$srcdir/niri"
    export RUSTFLAGS="--remap-path-prefix=$srcdir=/"
    export RUSTUP_TOOLCHAIN=stable
    export CARGO_HOME="$(pwd)/.cargo"
    export CARGO_TARGET_DIR=target
    export LDFLAGS="$LDFLAGS -Wl,-z,cet-report=error"
    cargo build --frozen --release --no-default-features --features dinit,dbus,xdp-gnome-screencast
}

package() {
    cd "$srcdir/niri"
    install -Dm755 "target/release/niri"           -t "$pkgdir/usr/bin/"
    install -Dm755 "resources/niri-session"        -t "$pkgdir/usr/bin/"
    install -Dm644 "resources/niri.desktop"        -t "$pkgdir/usr/share/wayland-sessions/"
    install -Dm644 "resources/niri-portals.conf"   -t "$pkgdir/usr/share/xdg-desktop-portal/"
    install -Dm644 "resources/dinit/niri"          -t "$pkgdir/usr/lib/dinit.d/user/"
    install -Dm644 "resources/dinit/niri-shutdown" -t "$pkgdir/usr/lib/dinit.d/user/"
    install -Dm644 "resources/default-config.kdl"  -t "$pkgdir/usr/share/doc/$pkgname/"
}