Federico Justus Denkena
9140324d01
Signed-off-by: Federico Justus Denkena <federico.denkena@posteo.de>
117 lines
3.2 KiB
Bash
117 lines
3.2 KiB
Bash
# Maintainer: Frédéric Pierret <frederic.pierret@qubes-os.org>
|
|
|
|
EAPI=7
|
|
|
|
PYTHON_COMPAT=( python3_{10..13} )
|
|
|
|
inherit git-r3 multilib distutils-r1 qubes
|
|
|
|
if [[ ${PV} == *9999 ]]; then
|
|
EGIT_COMMIT=HEAD
|
|
else
|
|
EGIT_COMMIT="v${PV}"
|
|
fi
|
|
|
|
EGIT_REPO_URI="https://github.com/QubesOS/qubes-gui-agent-linux.git"
|
|
|
|
KEYWORDS="amd64"
|
|
DESCRIPTION="The Qubes GUI Agent for AppVMs"
|
|
HOMEPAGE="http://www.qubes-os.org"
|
|
LICENSE="GPL-2"
|
|
|
|
SLOT="0"
|
|
IUSE="xfce"
|
|
|
|
DEPEND="app-emulation/qubes-libvchan-xen
|
|
app-emulation/qubes-db
|
|
app-emulation/qubes-gui-common
|
|
x11-apps/xprop
|
|
x11-apps/xsetroot
|
|
x11-apps/xrandr
|
|
x11-apps/setxkbmap
|
|
x11-base/xorg-server:=
|
|
x11-libs/libXdamage
|
|
x11-apps/xinit
|
|
x11-libs/libXcomposite
|
|
dev-python/xcffib[${PYTHON_USEDEP}]
|
|
dev-python/pygobject[${PYTHON_USEDEP}]
|
|
dev-python/pyxdg[${PYTHON_USEDEP}]
|
|
media-libs/alsa-lib
|
|
media-sound/alsa-utils
|
|
media-libs/libpulse
|
|
media-video/pipewire
|
|
${PYTHON_DEPS}
|
|
"
|
|
RDEPEND="${DEPEND}"
|
|
PDEPEND=""
|
|
|
|
src_prepare() {
|
|
qubes_verify_sources_git "${EGIT_COMMIT}"
|
|
default
|
|
}
|
|
|
|
src_compile() {
|
|
# Fix PAM
|
|
sed -i 's/postlogin/system-auth/g' appvm-scripts/etc/pam.d/qubes-gui-agent
|
|
|
|
pa_ver=$((pkg-config --modversion libpulse 2>/dev/null || echo 0.0) | 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
|
|
|
|
myopt="${myopt} DESTDIR="${D}" SYSTEMD=1 BACKEND_VMM=xen LIBDIR=/usr/$(get_libdir)"
|
|
emake ${myopt} appvm
|
|
}
|
|
|
|
src_install() {
|
|
emake ${myopt} install
|
|
|
|
insopts -m 0755
|
|
insinto /etc/X11/Sessions/
|
|
doins "${FILESDIR}/Qubes"
|
|
|
|
insopts -m 0664
|
|
insinto /etc/env.d/
|
|
doins "${FILESDIR}/90xsession"
|
|
}
|
|
|
|
pkg_postinst() {
|
|
# With pulseaudio 15.0, the module directory was changed to
|
|
# /usr/$(get_libdir)/${PN}/modules
|
|
pa_ver=$((pkg-config --modversion libpulse 2>/dev/null || echo 0.0) | cut -f 1 -d "-")
|
|
pa_ver_short=$(echo "${pa_ver}" | cut -f 1 -d".")
|
|
if [[ "${pa_ver_short}" -ge 15 ]]; then
|
|
mv /usr/$(get_libdir)/pulse-${pa_ver}/modules/module-vchan-sink.so /usr/$(get_libdir)/pulseaudio/modules
|
|
rmdir /usr/$(get_libdir)/pulse-${pa_ver}/modules
|
|
rmdir /usr/$(get_libdir)/pulse-${pa_ver}
|
|
fi
|
|
|
|
systemctl enable qubes-gui-agent.service
|
|
|
|
# Remove useless file from install-rh-agent
|
|
rm -f /etc/sysconfig/desktop
|
|
|
|
# Only for XFCE desktop flavor
|
|
if ! use xfce; then
|
|
rm -f /etc/X11/xinit/xinitrc.d/60xfce-desktop.sh
|
|
fi
|
|
|
|
sed -i '/^autospawn/d' /etc/pulse/client.conf
|
|
echo autospawn=no >> /etc/pulse/client.conf
|
|
|
|
# We added 90xsession providing XSESSION variable
|
|
# in env.d so an update is required
|
|
env-update
|
|
}
|
|
|
|
pkg_prerm() {
|
|
systemctl disable qubes-gui-agent.service
|
|
}
|
|
|