From e108271de0ae975fb81d0788841f000d166c93bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Pierret=20=28fepitre=29?= Date: Tue, 16 Jun 2020 10:48:14 +0200 Subject: [PATCH 1/5] qubes-run-xephyr: debian has another path for shmoverride.so QubesOS/qubes-issues#4186 --- appvm-scripts/usrbin/qubes-run-xephyr | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/appvm-scripts/usrbin/qubes-run-xephyr b/appvm-scripts/usrbin/qubes-run-xephyr index 9ad9af91..4a25ca7b 100644 --- a/appvm-scripts/usrbin/qubes-run-xephyr +++ b/appvm-scripts/usrbin/qubes-run-xephyr @@ -2,4 +2,10 @@ DISPLAY_XEPHYR="$1" OPTIONS_XEPHYR="-no-host-grab -fullscreen" -LD_PRELOAD=/usr/lib64/qubes-gui-daemon/shmoverride.so /usr/bin/Xephyr $OPTIONS_XEPHYR "$DISPLAY_XEPHYR" > ~/.xephyr-errors 2>&1 +if [ -e /etc/debian_version ]; then + SHMOVERRIDE=/usr/lib/x86_64-linux-gnu/qubes-gui-daemon/shmoverride.so +else + SHMOVERRIDE=/usr/lib64/qubes-gui-daemon/shmoverride.so +fi + +LD_PRELOAD=$SHMOVERRIDE /usr/bin/Xephyr $OPTIONS_XEPHYR "$DISPLAY_XEPHYR" > ~/.xephyr-errors 2>&1 From e197f1b17472756bb9127a54c207213380d80e64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Pierret=20=28fepitre=29?= Date: Tue, 16 Jun 2020 13:45:19 +0200 Subject: [PATCH 2/5] Makefile: add clean of pkgs and debian changelog.* --- .gitignore | 2 ++ Makefile | 2 ++ pkgs/.gitignore | 1 - 3 files changed, 4 insertions(+), 1 deletion(-) delete mode 100644 pkgs/.gitignore diff --git a/.gitignore b/.gitignore index a87ae376..c7ea199b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ *.o tags deb/ +pkgs +debian/changelog.* diff --git a/Makefile b/Makefile index c36df135..daaf8598 100644 --- a/Makefile +++ b/Makefile @@ -87,6 +87,8 @@ clean: $(MAKE) -C xf86-qubes-common clean (cd xf86-input-mfndev; if [ -e Makefile ] ; then \ $(MAKE) distclean; fi; ./bootstrap --clean || echo ) + rm -rf debian/changelog.* + rm -rf pkgs install: install-rh-agent install-pulseaudio diff --git a/pkgs/.gitignore b/pkgs/.gitignore deleted file mode 100644 index 72e8ffc0..00000000 --- a/pkgs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -* From 40482e42af4f42649e864c35fdb1b1e1a4412e4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Pierret=20=28fepitre=29?= Date: Wed, 17 Jun 2020 22:37:58 +0200 Subject: [PATCH 3/5] debian: add xfce subpackage for VM - Few adjustements of scripts, makefile and spec - Update travis --- .travis.yml | 22 ++++--------------- Makefile | 10 ++++----- .../etc/X11/Xsession.d/25xdg-qubes-settings | 7 ++++++ .../50guivm-windows-prefix} | 0 .../60xfce-desktop} | 2 +- .../xinit/xinitrc.d/50guivm-windows-prefix.sh | 1 + .../etc/X11/xinit/xinitrc.d/60xfce-desktop.sh | 1 + debian/control | 8 +++++++ debian/pulseaudio-qubes.install | 1 + debian/qubes-gui-agent-xfce.install | 1 + debian/qubes-gui-agent.install | 13 ++++++++--- rpm_spec/gui-agent.spec.in | 6 ++--- 12 files changed, 41 insertions(+), 31 deletions(-) rename appvm-scripts/etc/X11/{xinit/xinitrc.d/50-guivm-windows-prefix.sh => Xsession.d/50guivm-windows-prefix} (100%) rename appvm-scripts/etc/X11/{xinit/xinitrc.d/50-xfce-desktop.sh => Xsession.d/60xfce-desktop} (95%) create mode 120000 appvm-scripts/etc/X11/xinit/xinitrc.d/50guivm-windows-prefix.sh create mode 120000 appvm-scripts/etc/X11/xinit/xinitrc.d/60xfce-desktop.sh create mode 100644 debian/qubes-gui-agent-xfce.install diff --git a/.travis.yml b/.travis.yml index 2a3756b9..82ca37c5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,18 +1,4 @@ -sudo: required -dist: bionic -language: generic -install: git clone https://github.com/QubesOS/qubes-builder ~/qubes-builder -script: ~/qubes-builder/scripts/travis-build -env: - - DIST_DOM0=fc31 USE_QUBES_REPO_VERSION=4.1 USE_QUBES_REPO_TESTING=1 - - DISTS_VM=fc30 USE_QUBES_REPO_VERSION=4.1 USE_QUBES_REPO_TESTING=1 - - DISTS_VM=fc31 USE_QUBES_REPO_VERSION=4.1 USE_QUBES_REPO_TESTING=1 - - DISTS_VM=stretch USE_QUBES_REPO_VERSION=4.1 USE_QUBES_REPO_TESTING=1 - - DISTS_VM=buster USE_QUBES_REPO_VERSION=4.1 USE_QUBES_REPO_TESTING=1 - - DISTS_VM=centos7 USE_QUBES_REPO_VERSION=4.1 USE_QUBES_REPO_TESTING=1 - -# don't build tags which are meant for code signing only -branches: - except: - - /.*_.*/ - - build +import: + - source: QubesOS/qubes-continuous-integration:R4.1/travis-base-r4.1.yml + - source: QubesOS/qubes-continuous-integration:R4.1/travis-dom0-r4.1.yml + - source: QubesOS/qubes-continuous-integration:R4.1/travis-vms-r4.1.yml diff --git a/Makefile b/Makefile index daaf8598..afa12bf7 100644 --- a/Makefile +++ b/Makefile @@ -104,10 +104,10 @@ install-rh-agent: appvm install-common $(DESTDIR)/etc/X11/xinit/xinitrc.d/20qt-x11-no-mitshm.sh install -D appvm-scripts/etc/X11/xinit/xinitrc.d/20qt-gnome-desktop-session-id.sh \ $(DESTDIR)/etc/X11/xinit/xinitrc.d/20qt-gnome-desktop-session-id.sh - -install-xfce: - install -D appvm-scripts/etc/X11/xinit/xinitrc.d/50-xfce-desktop.sh \ - $(DESTDIR)/etc/X11/xinit/xinitrc.d/50-xfce-desktop.sh + install -D appvm-scripts/etc/X11/xinit/xinitrc.d/50guivm-windows-prefix.sh \ + $(DESTDIR)/etc/X11/xinit/xinitrc.d/50guivm-windows-prefix.sh + install -D appvm-scripts/etc/X11/xinit/xinitrc.d/60xfce-desktop.sh \ + $(DESTDIR)/etc/X11/xinit/xinitrc.d/60xfce-desktop.sh install-debian: appvm install-common install-pulseaudio install -d $(DESTDIR)/etc/X11/Xsession.d @@ -165,8 +165,6 @@ install-common: $(DESTDIR)/$(USRLIBDIR)/tmpfiles.d/qubes-session.conf install -m 0644 -D appvm-scripts/etc/securitylimits.d/90-qubes-gui.conf \ $(DESTDIR)/etc/security/limits.d/90-qubes-gui.conf - install -D appvm-scripts/etc/X11/xinit/xinitrc.d/50-guivm-windows-prefix.sh \ - $(DESTDIR)/etc/X11/xinit/xinitrc.d/50-guivm-windows-prefix.sh ifneq ($(shell lsb_release -is), Ubuntu) install -m 0644 -D appvm-scripts/etc/xdg/Trolltech.conf \ $(DESTDIR)/etc/xdg/Trolltech.conf diff --git a/appvm-scripts/etc/X11/Xsession.d/25xdg-qubes-settings b/appvm-scripts/etc/X11/Xsession.d/25xdg-qubes-settings index b279660a..83dec523 100755 --- a/appvm-scripts/etc/X11/Xsession.d/25xdg-qubes-settings +++ b/appvm-scripts/etc/X11/Xsession.d/25xdg-qubes-settings @@ -1,5 +1,10 @@ # This file is sourced by Xsession(5), not executed. +# shellcheck disable=SC1091 +. /usr/lib/qubes/init/functions + +if ! qsvc guivm-gui-agent; then + installConfigurationFile() { file="${1}" @@ -16,3 +21,5 @@ if [ -x /usr/bin/xsettingsd ]; then installConfigurationFile "Xresources" /usr/bin/xsettingsd & fi + +fi \ No newline at end of file diff --git a/appvm-scripts/etc/X11/xinit/xinitrc.d/50-guivm-windows-prefix.sh b/appvm-scripts/etc/X11/Xsession.d/50guivm-windows-prefix similarity index 100% rename from appvm-scripts/etc/X11/xinit/xinitrc.d/50-guivm-windows-prefix.sh rename to appvm-scripts/etc/X11/Xsession.d/50guivm-windows-prefix diff --git a/appvm-scripts/etc/X11/xinit/xinitrc.d/50-xfce-desktop.sh b/appvm-scripts/etc/X11/Xsession.d/60xfce-desktop similarity index 95% rename from appvm-scripts/etc/X11/xinit/xinitrc.d/50-xfce-desktop.sh rename to appvm-scripts/etc/X11/Xsession.d/60xfce-desktop index 4a5b195b..57000ad1 100755 --- a/appvm-scripts/etc/X11/xinit/xinitrc.d/50-xfce-desktop.sh +++ b/appvm-scripts/etc/X11/Xsession.d/60xfce-desktop @@ -26,5 +26,5 @@ fi export QT_QPA_PLATFORMTHEME=qt5ct -xfsettingsd & +xfsettingsd --replace& fi \ No newline at end of file diff --git a/appvm-scripts/etc/X11/xinit/xinitrc.d/50guivm-windows-prefix.sh b/appvm-scripts/etc/X11/xinit/xinitrc.d/50guivm-windows-prefix.sh new file mode 120000 index 00000000..096a7392 --- /dev/null +++ b/appvm-scripts/etc/X11/xinit/xinitrc.d/50guivm-windows-prefix.sh @@ -0,0 +1 @@ +../../Xsession.d/50guivm-windows-prefix \ No newline at end of file diff --git a/appvm-scripts/etc/X11/xinit/xinitrc.d/60xfce-desktop.sh b/appvm-scripts/etc/X11/xinit/xinitrc.d/60xfce-desktop.sh new file mode 120000 index 00000000..797580d8 --- /dev/null +++ b/appvm-scripts/etc/X11/xinit/xinitrc.d/60xfce-desktop.sh @@ -0,0 +1 @@ +../../Xsession.d/60xfce-desktop \ No newline at end of file diff --git a/debian/control b/debian/control index d3bb3a3b..5020476f 100644 --- a/debian/control +++ b/debian/control @@ -104,3 +104,11 @@ Replaces: qubes-gui-agent (<< 4.0.0-1) Breaks: qubes-gui-agent (<< 4.0.0-1) Description: Audio support for Qubes VM Pulseaudio module to enable sound support in Qubes VM + +Package: qubes-gui-agent-xfce +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends} +Description: XFCE desktop support for Qubes VM + XFCE desktop support for Qubes VM \ No newline at end of file diff --git a/debian/pulseaudio-qubes.install b/debian/pulseaudio-qubes.install index 255b852d..92ea115b 100644 --- a/debian/pulseaudio-qubes.install +++ b/debian/pulseaudio-qubes.install @@ -2,3 +2,4 @@ etc/pulse/qubes-default.pa etc/xdg/autostart/qubes-pulseaudio.desktop usr/bin/start-pulseaudio-with-vchan usr/lib/pulse-*/modules/module-vchan-sink.so +usr/lib/tmpfiles.d/qubes-pulseaudio.conf \ No newline at end of file diff --git a/debian/qubes-gui-agent-xfce.install b/debian/qubes-gui-agent-xfce.install new file mode 100644 index 00000000..b701d8c7 --- /dev/null +++ b/debian/qubes-gui-agent-xfce.install @@ -0,0 +1 @@ +etc/X11/Xsession.d/60xfce-desktop \ No newline at end of file diff --git a/debian/qubes-gui-agent.install b/debian/qubes-gui-agent.install index 85f370c7..ec9a3775 100644 --- a/debian/qubes-gui-agent.install +++ b/debian/qubes-gui-agent.install @@ -1,5 +1,12 @@ -etc/X11/* -etc/profile.d/* +etc/X11/Xsession.d/90qubes-keymap +etc/X11/Xsession.d/20qt-gnome-desktop-session-id +etc/X11/Xsession.d/20qt-x11-no-mitshm +etc/X11/Xsession.d/25xdg-qubes-settings +etc/X11/Xsession.d/50guivm-windows-prefix +etc/X11/xorg-qubes.conf.template +etc/profile.d/qubes-gui.sh +etc/profile.d/qubes-gui.csh +etc/profile.d/qubes-session.sh etc/pam.d/qubes-gui-agent etc/security/limits.d/90-qubes-gui.conf etc/qubes-rpc/qubes.SetMonitorLayout @@ -21,7 +28,7 @@ usr/bin/qubes-session usr/bin/qubes-set-monitor-layout usr/lib/qubes/icon-sender usr/lib/sysctl.d/30-qubes-gui-agent.conf -usr/lib/tmpfiles.d/* +usr/lib/tmpfiles.d/qubes-session.conf usr/lib/qubes/qubes-gui-agent-pre.sh usr/share/glib-2.0/schemas/20_qubes-gui-vm.gschema.override var/log/qubes diff --git a/rpm_spec/gui-agent.spec.in b/rpm_spec/gui-agent.spec.in index d3eebf95..f092e68b 100644 --- a/rpm_spec/gui-agent.spec.in +++ b/rpm_spec/gui-agent.spec.in @@ -106,7 +106,7 @@ make BACKEND_VMM=@BACKEND_VMM@ appvm %install rm -rf $RPM_BUILD_ROOT -make install install-xfce DESTDIR=$RPM_BUILD_ROOT \ +make install DESTDIR=$RPM_BUILD_ROOT \ LIBDIR=%{_libdir} \ DATADIR=%{_datadir} \ PA_VER_FULL=%{pa_ver_full} @@ -167,7 +167,7 @@ rm -f %{name}-%{version} /etc/X11/xinit/xinitrc.d/qubes-keymap.sh /etc/X11/xinit/xinitrc.d/20qt-x11-no-mitshm.sh /etc/X11/xinit/xinitrc.d/20qt-gnome-desktop-session-id.sh -/etc/X11/xinit/xinitrc.d/50-guivm-windows-prefix.sh +/etc/X11/xinit/xinitrc.d/50guivm-windows-prefix.sh /etc/qubes-rpc/qubes.SetMonitorLayout /etc/qubes/post-install.d/20-qubes-guivm-gui-agent.sh %config /etc/sysconfig/desktop @@ -190,7 +190,7 @@ rm -f %{name}-%{version} /etc/xdg/autostart/qubes-pulseaudio.desktop %files xfce -/etc/X11/xinit/xinitrc.d/50-xfce-desktop.sh +/etc/X11/xinit/xinitrc.d/60xfce-desktop.sh %changelog @CHANGELOG@ From eef53e4631325a5090d4c4ecbec15d922e1f9f13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Pierret=20=28fepitre=29?= Date: Sat, 20 Jun 2020 09:07:04 +0200 Subject: [PATCH 4/5] Check if shmoverride.so exists directly --- appvm-scripts/usrbin/qubes-run-xephyr | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appvm-scripts/usrbin/qubes-run-xephyr b/appvm-scripts/usrbin/qubes-run-xephyr index 4a25ca7b..8e9269bf 100644 --- a/appvm-scripts/usrbin/qubes-run-xephyr +++ b/appvm-scripts/usrbin/qubes-run-xephyr @@ -2,9 +2,9 @@ DISPLAY_XEPHYR="$1" OPTIONS_XEPHYR="-no-host-grab -fullscreen" -if [ -e /etc/debian_version ]; then +if [ -e /usr/lib/x86_64-linux-gnu/qubes-gui-daemon/shmoverride.so ]; then SHMOVERRIDE=/usr/lib/x86_64-linux-gnu/qubes-gui-daemon/shmoverride.so -else +elif [ -e /usr/lib64/qubes-gui-daemon/shmoverride.so ]; then SHMOVERRIDE=/usr/lib64/qubes-gui-daemon/shmoverride.so fi From 0d678f3636cae25bce3bb7e0ee2441b81fac457b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Pierret=20=28fepitre=29?= Date: Sun, 21 Jun 2020 14:57:29 +0200 Subject: [PATCH 5/5] debian: fix conflict with newer location of pulseaudio conf --- debian/control | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/debian/control b/debian/control index 5020476f..b86b4a41 100644 --- a/debian/control +++ b/debian/control @@ -100,8 +100,8 @@ Depends: ${shlibs:Depends}, ${pulse:Depends}, ${misc:Depends} -Replaces: qubes-gui-agent (<< 4.0.0-1) -Breaks: qubes-gui-agent (<< 4.0.0-1) +Replaces: qubes-gui-agent (<< 4.1.9-1) +Breaks: qubes-gui-agent (<< 4.1.9-1) Description: Audio support for Qubes VM Pulseaudio module to enable sound support in Qubes VM @@ -111,4 +111,4 @@ Depends: ${shlibs:Depends}, ${misc:Depends} Description: XFCE desktop support for Qubes VM - XFCE desktop support for Qubes VM \ No newline at end of file + XFCE desktop support for Qubes VM