Showing with 163 additions and 70 deletions.
  1. +111 −40 archlinux/PKGBUILD.in
  2. +16 −0 debian/changelog
  3. +25 −26 debian/control
  4. +9 −3 misc/qvm-features-request
  5. +1 −0 qubes-rpc/nautilus/Makefile
  6. +1 −1 version
151 changes: 111 additions & 40 deletions archlinux/PKGBUILD.in
Original file line number Diff line number Diff line change
@@ -1,26 +1,27 @@
# Maintainer: Frédéric Pierret (fepitre) <frederic@invisiblethingslab.com>

pkgname=(qubes-vm-core qubes-vm-networking qubes-vm-keyring qubes-vm-passwordless-root qubes-vm-dom0-updates)
pkgname=(qubes-vm-core qubes-vm-networking qubes-vm-keyring qubes-vm-caja qubes-vm-nautilus qubes-vm-passwordless-root qubes-vm-thunar qubes-vm-dom0-updates)
pkgver=@VERSION@
pkgrel=@REL@
pkgdesc="The Qubes core files for installation inside a Qubes VM."
arch=("x86_64")
url="https://qubes-os.org/"
license=('GPL')
license=('GPL-2.0-or-later')
makedepends=(
gcc
make
pkg-config

desktop-file-utils
libx11
python
python-setuptools
lsb-release
pandoc
pkg-config
python
python-setuptools
shared-mime-info
desktop-file-utils
qubes-vm-utils
qubes-libvchan
qubes-db-vm
qubes-libvchan
qubes-vm-utils
qubes-vm-xen
)
_pkgnvr="${pkgname}-${pkgver}-${pkgrel}"
Expand Down Expand Up @@ -56,36 +57,43 @@ package_qubes-vm-core() {
conflicts=('pulseaudio-qubes<4.2.0')
release=${BASH_REMATCH[1]}.${BASH_REMATCH[2]}
depends=(
qubes-vm-utils
qubes-libvchan
qubes-db-vm
'qubes-vm-qrexec>=4.2.19'
python
python-xdg
ntp
iproute2
dconf
fakeroot
gawk
gnome-packagekit
graphicsmagick
fakeroot
notification-daemon
dconf
zenity
haveged
python-gobject
python-dbus
xdg-utils
notification-daemon
gawk
sed
procps-ng
iproute2
librsvg
socat
notification-daemon
ntp
pacman-contrib
parted
procps-ng
# Block updating if there is a major python update as the python API will be in the wrong PYTHONPATH
'python<3.14'
python-dbus
python-gobject
python-xdg
qubes-db-vm
qubes-libvchan
'qubes-vm-qrexec>=4.2.19'
qubes-vm-utils
sed
socat
xdg-utils
zenity
)
optdepends=(
gnome-keyring
gnome-settings-daemon
gpk-update-viewer
qubes-vm-caja
qubes-vm-keyring
qubes-vm-nautilus
qubes-vm-networking
qubes-vm-thunar
)
optdepends=(gnome-keyring gnome-settings-daemon python-caja python-nautilus gpk-update-viewer qubes-vm-networking qubes-vm-keyring)
install="archlinux/PKGBUILD.install"

cd "${_pkgnvr}"
Expand All @@ -96,10 +104,7 @@ package_qubes-vm-core() {
make -C app-menu install DESTDIR="$pkgdir" install LIBDIR=/usr/lib SYSLIBDIR=/usr/lib
make -C misc install DESTDIR="$pkgdir" install LIBDIR=/usr/lib SYSLIBDIR=/usr/lib
make -C qubes-rpc DESTDIR="$pkgdir" install
make -C qubes-rpc/caja DESTDIR="$pkgdir" install
make -C qubes-rpc/kde DESTDIR="$pkgdir" install
make -C qubes-rpc/nautilus DESTDIR="$pkgdir" install
make -C qubes-rpc/thunar DESTDIR="$pkgdir" install
make -C filesystem DESTDIR="$pkgdir" install

# Adjust fstab for Arch
Expand Down Expand Up @@ -155,16 +160,16 @@ EOF
package_qubes-vm-networking() {
pkgdesc="Qubes OS tools allowing to use a Qubes VM as a NetVM/ProxyVM"
depends=(
qubes-vm-core
qubes-vm-utils
qubes-db-vm
python
conntrack-tools
iproute2
networkmanager
network-manager-applet
tinyproxy
nftables
conntrack-tools
python
qubes-db-vm
qubes-vm-core
qubes-vm-utils
tinyproxy
)
install="archlinux/PKGBUILD-networking.install"

Expand Down Expand Up @@ -200,6 +205,72 @@ package_qubes-vm-keyring() {
install -m0644 "archlinux/PKGBUILD-keyring-revoked" "${pkgdir}/usr/share/pacman/keyrings/qubesos-vm-revoked"
}

package_qubes-vm-caja() {
pkgdesc="Qubes OS Caja addons for inter-VM file copy/move/open"
conflicts=('qubes-vm-core<4.3.26')
depends=(
bash
python-caja
qubes-vm-qrexec
)

cd "${_pkgnvr}"
make -C qubes-rpc/caja install \
DESTDIR="$pkgdir" \
SBINDIR=/usr/bin \
LIBDIR=/usr/lib \
SYSLIBDIR=/usr/lib \
SYSTEM_DROPIN_DIR=/usr/lib/systemd/system \
USER_DROPIN_DIR=/usr/lib/systemd/user \
DIST=archlinux
}

package_qubes-vm-thunar() {
pkgdesc="Qubes OS Thunar addons for inter-VM file copy/move/open"
conflicts=('qubes-vm-core<4.3.26')
depends=(
bash
qubes-vm-qrexec
thunar
)
optdepends=(
qubes-img-converter
qubes-pdf-converter
)

cd "${_pkgnvr}"
make -C qubes-rpc/thunar install \
DESTDIR="$pkgdir" \
SBINDIR=/usr/bin \
LIBDIR=/usr/lib \
SYSLIBDIR=/usr/lib \
SYSTEM_DROPIN_DIR=/usr/lib/systemd/system \
USER_DROPIN_DIR=/usr/lib/systemd/user \
DIST=archlinux
}

package_qubes-vm-nautilus() {
pkgdesc="Qubes OS Nautilus addons for inter-VM file copy/move/open"
conflicts=('qubes-vm-core<4.3.26')
depends=(
bash
python-gobject
python-nautilus
qubes-vm-core
qubes-vm-qrexec
)

cd "${_pkgnvr}"
make -C qubes-rpc/nautilus install \
DESTDIR="$pkgdir" \
SBINDIR=/usr/bin \
LIBDIR=/usr/lib \
SYSLIBDIR=/usr/lib \
SYSTEM_DROPIN_DIR=/usr/lib/systemd/system \
USER_DROPIN_DIR=/usr/lib/systemd/user \
DIST=archlinux
}

package_qubes-vm-passwordless-root() {
pkgdesc="Qubes OS Passwordless root access from normal user"

Expand All @@ -217,10 +288,10 @@ package_qubes-vm-passwordless-root() {
package_qubes-vm-dom0-updates() {
pkgdesc="Qubes OS tools for fetching dom0 updates"
depends=(
dnf5
python
qubes-vm-core
qubes-vm-networking
python
dnf5
)

cd "${_pkgnvr}"
Expand Down
16 changes: 16 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
qubes-core-agent (4.3.27-1) unstable; urgency=medium

[ 3np ]
* arch: fix SPDX license
* chore(debian): remove duplicate depends
* chore(arch): remove duplicate depends
* qvm-features-request: unverbose logging of erroring qrexec calls
* arch: sort dependencies alphabetically
* debian: sort dependencies alphabetically
* arch: break out qubes-vm-nautilus from qubes-vm-core
* arch: bump qubes-vm-nautilus conflicts qubes-vm-core<4.3.26
* arch: break out qubes-vm-caja from qubes-vm-core
* arch: break out qubes-vm-thunar from qubes-vm-core

-- Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> Thu, 03 Jul 2025 16:00:41 +0200

qubes-core-agent (4.3.26-1) unstable; urgency=medium

[ Ben Grande ]
Expand Down
51 changes: 25 additions & 26 deletions debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,23 @@ Section: admin
Priority: extra
Maintainer: unman <unman@thirdeyesecurity.org>
Build-Depends:
config-package-dev,
debhelper,
desktop-file-utils,
dh-python,
libpam0g-dev,
libqubes-pure-dev (>= 4.3.2),
libqubes-rpc-filecopy-dev (>= 4.3.2),
libvchan-xen-dev,
python3,
python3-setuptools,
quilt,
libxen-dev,
pkg-config,
dh-python,
lsb-release,
xserver-xorg-dev,
config-package-dev,
pandoc,
pkg-config,
python3,
python3-setuptools,
quilt,
shared-mime-info,
desktop-file-utils,
xserver-xorg-dev,
Standards-Version: 4.4.0.1
Homepage: https://www.qubes-os.org
Vcs-Git: https://github.com/QubesOS/qubes-core-agent-linux
Expand All @@ -29,36 +29,36 @@ Architecture: any
Depends:
apt-transport-https,
dconf-cli,
dmsetup,
distro-info-data,
dmsetup,
e2fsprogs,
gawk,
graphicsmagick,
init-system-helpers,
initscripts | sysvinit-utils,
librsvg2-bin,
locales,
ncurses-term,
psmisc,
procps,
util-linux,
e2fsprogs,
parted,
python3-qubesdb,
procps,
psmisc,
python3-dbus,
python3-gi,
python3-qubesdb,
python3-xdg,
python3-dbus,
qubes-utils (>= 3.1.3),
qubes-core-qrexec (>= 4.2.19),
qubes-utils (>= 3.1.3),
qubesdb-vm,
systemd,
util-linux,
xdg-user-dirs,
xdg-utils,
xenstore-utils,
xen-utils-common,
xen-utils-guest,
xenstore-utils,
${python3:Depends},
${shlibs:Depends},
${misc:Depends}
${misc:Depends},
Recommends:
cups,
gnome-terminal,
Expand All @@ -68,20 +68,20 @@ Recommends:
locales-all,
mate-notification-daemon,
ntpdate,
system-config-printer,
qubes-core-agent-nautilus,
qubes-core-agent-networking,
qubes-core-agent-network-manager,
system-config-printer,
x11-xserver-utils,
xinit,
xserver-xorg-core,
xsettingsd,
xterm
xterm,
Conflicts:
pulseaudio-qubes (<< 4.2.0-1),
qubes-core-agent-linux,
qubes-core-vm-sysvinit,
qubes-gui-agent (<< 4.1.6-1),
pulseaudio-qubes (<< 4.2.0-1),
Description: Qubes core agent
This package includes various daemons necessary for qubes domU support,
such as qrexec services.
Expand Down Expand Up @@ -119,13 +119,13 @@ Description: Qubes integration for Thunar
Package: qubes-core-agent-dom0-updates
Architecture: any
Depends:
fakeroot,
rpm,
curl,
dnf | yum,
dnf | yum-utils,
curl,
fakeroot,
qubes-core-qrexec,
qubes-repo-templates,
rpm,
Replaces: qubes-core-agent (<< 4.1.28-1)
Breaks: qubes-core-agent (<< 4.1.28-1)
Description: Scripts required to handle dom0 updates.
Expand All @@ -136,14 +136,13 @@ Package: qubes-core-agent-networking
Architecture: any
Depends:
qubes-core-agent (= ${binary:Version}),
tinyproxy,
nftables,
conntrack,
socat,
tinyproxy,
iproute2,
${python3:Depends},
${misc:Depends}
${misc:Depends},
Replaces: qubes-core-agent (<< 4.0.0-1)
Breaks: qubes-core-agent (<< 4.0.0-1)
Description: Networking support for Qubes VM
Expand Down
12 changes: 9 additions & 3 deletions misc/qvm-features-request
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,15 @@ def main(args=None):

if args.commit:
devnull = os.open(os.devnull, os.O_RDWR)
subprocess.check_call(
['qrexec-client-vm', 'dom0', 'qubes.FeaturesRequest'],
stdin=devnull, stdout=devnull)
cmd = ['qrexec-client-vm', 'dom0', 'qubes.FeaturesRequest']
try:
subprocess.check_call(cmd, stdin=devnull, stdout=devnull)
except subprocess.CalledProcessError as e:
print(
f"Error: Command `{' '.join(cmd)}` returned exit code {e.returncode}",
file=sys.stderr
)
any_error = True

if any_error:
return 1
Expand Down
Loading