# Maintainer: Antoine Martin (ayakael) # Contributor: Antoine Martin (ayakael) pkgname=qubes-vm-gui subpackages=" qubes-vm-pulseaudio qubes-vm-pipewire $pkgname-openrc" pkgver=4.2.9 pkgrel=2 _gittag="v$pkgver" pkgdesc="The Qubes GUI Agent for AppVMs" arch="x86_64" url="https://github.com/QubesOS/qubes-gui-agent-linux" license="GPL" options="!check" # No testsuite depends=" libxcomposite py3-xcffib xinit zenity " makedepends=" autoconf automake gcc git libtool libxcomposite-dev libxt linux-pam-dev lsb-release-minimal make patch pixman pkgconf pipewire-dev pulseaudio-dev qubes-db-vm qubes-db-vm-dev qubes-libvchan-xen-dev qubes-vm-gui-dev xen-dev util-macros xorg-server-dev " source=" $pkgname-$_gittag.tar.gz::https://github.com/QubesOS/qubes-gui-agent-linux/archive/refs/tags/$_gittag.tar.gz 0001-musl-build.patch 0001-initd-fix.patch qubes-gui-agent.openrc qubes-sessions.sh qubes-gui-agent.pam qubes-sessions_do-not-use-systemd.patch " builddir="$srcdir"/qubes-gui-agent-linux-${_gittag/v} _qubes_backend_vmm=xen build() { local pa_ver=$(pkg-config --modversion libpulse 2>/dev/null | cut -f 1 -d "-") rm -f pulse/pulsecore ln -s pulsecore-$pa_ver pulse/pulsecore # Bug fixes : /var/run/console depends on pam_console, which is fedora specific # As a consequece, /var/run/console does not exists and qubes-gui-agent will always fail sed 's:ExecStartPre=/bin/touch:#ExecStartPre=/bin/touch:' -i appvm-scripts/qubes-gui-agent.service # Ensure that qubes-gui-agent starts after user autologin sed 's/After=\(.*\)qubes-misc-post.service/After=\1qubes-misc-post.service getty.target/' -i appvm-scripts/qubes-gui-agent.service make BACKEND_VMM="$_qubes_backend_vmm" appvm make appvm # replace all shebangs with /bin/sh as qubes expects bash # shellcheck disable=SC2013 for i in $(grep '/bin/sh' -Rl .); do sed -i 's|/bin/sh|/bin/bash|' "$i" done } package() { make install-rh-agent DESTDIR="$pkgdir" LIBDIR=/usr/lib USRLIBDIR=/usr/lib SYSLIBDIR=/lib install -Dm 755 "$srcdir"/qubes-gui-agent.openrc "$pkgdir"/etc/init.d/qubes-gui-agent # Starts qubes-session after X11 start install -Dm 755 "$srcdir"/qubes-sessions.sh "$pkgdir"/etc/X11/xinit/xinitrc.d/90-qubes-sessions.sh # Remove broken pam and replace with adequate install -Dm 644 "$srcdir"/qubes-gui-agent.pam "$pkgdir"/etc/pam.d/qubes-gui-agent } pulseaudio() { pkgdesc="Pulseaudio support for Qubes VM" depends=" alsa-lib alsa-utils pulseaudio pulseaudio-alsa " local pa_ver=$(pkg-config --modversion libpulse 2>/dev/null | cut -f 1 -d "-") cd "$builddir" make install-pulseaudio DESTDIR=$subpkgdir PA_VER=$pa_ver LIBDIR=/usr/lib USRLIBDIR=/usr/lib SYSLIBDIR=/lib } pipewire() { pkgdesc="PipeWire support for Qubes VM." depends="pipewire" cd "$builddir" make install-pipewire \ "DESTDIR=$subpkgdir" \ LIBDIR=/usr/lib \ USRLIBDIR=/usr/lib \ SYSLIBDIR=/usr/lib } sha512sums=" d73e04d867451f1f63a8f29531a68d820a068ae67c8c332bd76ab91696055d6e20adfebd5b40e7a2a31cecbc8293030ebb02e8c03a4f79f33b814c2076e5c1bb qubes-vm-gui-v4.2.9.tar.gz f0bbb936e14689d0cbced2f564b8911f9287c0217616f02f3bd0c3060e516d080ad538219f089f5841c2b9d18bb4ad8efb63516ddfd46c18b038218378996a7d 0001-musl-build.patch 01beace4c130200dc8d42248349ea858d2bec746aca2bdfa5948b6e7240bb3b832bbb8b324293fba6fd6aafb0a3d7a2e3928c7fd39d318ef4d5a18cfeb48cde6 0001-initd-fix.patch 68d01e594296e18d54d8eaa17863451c3ac121e4fcacf98b64db14166bdcf38aa66f1c3659c5014c0a9cc25b5368df66f8c642b8e7af59da8d2a5ad97da9a194 qubes-gui-agent.openrc bd707f7956f58c2bb24ccb9adad1381c069e70820fcb1b01b09dc88570d9df00e0dc92a9ac3b242f828314568d5487257566a6fc61e75e62e010b7e4871f9ea0 qubes-sessions.sh b512d691f2a6b11fc329bf91dd05ca9c589bbd444308b27d3c87c75262dedf6afc68a9739229249a4bd3d0c43cb1f871eecbb93c4fe559e0f38bdabbffd06ad7 qubes-gui-agent.pam 5d44bed65772e0300cfdb5960327ccff923159f1c0c6b980a3b37758a7330f5d8befa3c053990f6e5e7d2e71bf0eca047040439446a8b91bb1c2672e9e1497a0 qubes-sessions_do-not-use-systemd.patch "