124 lines
3.8 KiB
Text
124 lines
3.8 KiB
Text
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
|
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
|
|
|
pkgname=qubes-vm-gui
|
|
subpackages="
|
|
qubes-vm-pulseaudio
|
|
qubes-vm-pipewire
|
|
$pkgname-openrc"
|
|
pkgver=4.2.8
|
|
pkgrel=0
|
|
_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
|
|
"
|
|
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
|
|
# 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
|
|
|
|
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
|
|
}
|
|
|
|
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. This replaces the legacy PulseAudio module."
|
|
depends="pipewire"
|
|
provides="qubes-vm-pulseaudio=$pkgver-r$pkgrel"
|
|
|
|
cd "$builddir"
|
|
make install-pipewire \
|
|
"DESTDIR=$subpkgdir" \
|
|
LIBDIR=/usr/lib \
|
|
USRLIBDIR=/usr/lib \
|
|
SYSLIBDIR=/usr/lib
|
|
}
|
|
|
|
sha512sums="
|
|
a6e1ed0ca640b25b27caa209c7027c44c9e745ac56cbde05b4b4c6f48bd5ae923e727f2debd3244fc1172c6430eaba5661316666b9cfa14fdc202124b37c4efe qubes-vm-gui-v4.2.8.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
|
|
"
|