blob: 2d3c2ba6805923481475fa636ca3f7aec10a3269 (
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
74
75
76
77
78
79
80
81
82
83
84
85
|
# Maintainer: Omar Pakker <archlinux@opakker.nl>
pkgbase=looking-glass
pkgname=("${pkgbase}"
"${pkgbase}-module-dkms"
"${pkgbase}-host"
"obs-plugin-${pkgbase}")
epoch=2
pkgver=B6
pkgrel=9
pkgdesc="An extremely low latency KVMFR (KVM FrameRelay) implementation for guests with VGA PCI Passthrough"
url="https://looking-glass.io/"
arch=('x86_64')
license=('GPL2')
makedepends=('cmake' 'fontconfig' 'libpipewire' 'libpulse'
'libsamplerate' 'libxi' 'libxpresent' 'libxss' 'obs-studio'
'spice-protocol' 'wayland-protocols')
source=("looking-glass-${pkgver}.tar.gz::https://looking-glass.io/artifact/${pkgver}/source"
"module-kernel-64.patch"
"https://github.com/gnif/LookingGlass/pull/1124.patch")
sha512sums=('558981d6b32098076ef0775a748da349941551352cbef836e37310e43e5cd6072df3dec6fa2418a9abecc7729ef0c1c6869e3168d05a3d76bea46c6eb8c4e82c'
'562c6714f480cbbc144fd4a2e9ca9047292ca89800425e627f7e2d87cb0ba8741ad31e88d70952c381196fd70368308c9d8f8bf9cba0c4fec7431f37307d5bf5'
'424876dc04a4738b6b0309bd2dbaac39f951e18491101c0717d0fbeb69a0c088e4ba9476394ebf92eb4bef3d8ac7d2eaad0b6dd7babe49c06073565f4d413138')
_lgdir="${pkgbase}-${pkgver}"
prepare() {
cd "${srcdir}/${_lgdir}"
for patch in "${srcdir}"/*.patch; do
patch -p1 < "${patch}"
done
sed -i '1 i\#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"' \
"host/platform/Linux/capture/pipewire/src/portal.c"
}
build() {
cd "${srcdir}/${_lgdir}"
for b in {client,host,obs}/build; do
mkdir "${b}"
pushd "${b}"
cmake -DCMAKE_INSTALL_PREFIX=/usr ..
make
popd
done
}
package_looking-glass() {
pkgdesc="A client application for accessing the LookingGlass IVSHMEM device of a VM"
depends=('binutils' 'fontconfig' 'gcc-libs' 'glibc' 'gmp' 'libegl' 'libgl'
'libpipewire' 'libpulse' 'libsamplerate' 'libx11' 'libxcursor'
'libxfixes' 'libxi' 'libxinerama' 'libxkbcommon' 'libxpresent'
'libxss' 'nettle' 'wayland' 'zlib' 'zstd')
cd "${srcdir}/${_lgdir}/client/build"
make DESTDIR="${pkgdir}" install
}
package_looking-glass-module-dkms() {
pkgdesc="A kernel module that implements a basic interface to the IVSHMEM device for when using LookingGlass in VM->VM mode"
depends=('dkms')
cd "${srcdir}/${_lgdir}/module"
install -Dm644 -t "${pkgdir}/usr/src/${pkgbase}-${pkgver}" \
Makefile \
dkms.conf \
kvmfr.{h,c}
}
package_looking-glass-host() {
pkgdesc="Linux host application for pushing frame data to the LookingGlass IVSHMEM device"
depends=('binutils' 'gcc-libs' 'glib2' 'glibc'
'libpipewire' 'libxcb' 'zlib' 'zstd')
cd "${srcdir}/${_lgdir}/host/build"
make DESTDIR="${pkgdir}" install
}
package_obs-plugin-looking-glass() {
pkgdesc="Plugin for OBS Studio to stream directly from Looking Glass without having to record the Looking Glass client"
depends=('glibc' 'obs-studio')
install -Dm644 -t "${pkgdir}/usr/lib/obs-plugins" \
"${srcdir}/${_lgdir}/obs/build/liblooking-glass-obs.so"
}
|