core-admin/rpm_spec/core-dom0.spec.in

554 lines
17 KiB
RPMSpec
Raw Normal View History

#
# This is the SPEC file for creating binary RPMs for the Dom0.
#
#
# The Qubes OS Project, http://www.qubes-os.org
#
# Copyright (C) 2010 Joanna Rutkowska <joanna@invisiblethingslab.com>
# Copyright (C) 2010 Rafal Wojtczuk <rafal@invisiblethingslab.com>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, see <https://www.gnu.org/licenses/>.
#
#
%define _dracutmoddir /usr/lib/dracut/modules.d
2018-04-02 20:06:53 +02:00
%define backend_vmm @BACKEND_VMM@
Name: qubes-core-dom0
2018-01-25 11:55:39 +01:00
Version: @VERSION@
2014-04-15 04:09:13 +02:00
Release: 1%{dist}
Summary: The Qubes core files (Dom0-side)
Group: Qubes
Vendor: Invisible Things Lab
License: GPL
URL: http://www.qubes-os.org
2015-01-13 18:23:04 +01:00
# because we have "#!/usr/bin/env python" shebangs, RPM puts
# "Requires: $(which # python)" dependency, which, depending on $PATH order,
# may point to /usr/bin/python or /bin/python (because Fedora has this stupid
# /bin -> usr/bin symlink). python*.rpm provides only /usr/bin/python.
AutoReq: no
BuildArch: noarch
BuildRequires: ImageMagick
BuildRequires: systemd-units
BuildRequires: systemd
2015-01-13 18:23:04 +01:00
BuildRequires: python3-devel
2015-01-13 18:23:04 +01:00
# for building documentation
BuildRequires: python3-sphinx
BuildRequires: python3-lxml
BuildRequires: libvirt-python3
BuildRequires: python3-dbus
BuildRequires: python3-PyYAML
2019-11-22 14:47:23 +01:00
BuildRequires: python3-xen
2015-01-13 18:23:04 +01:00
Requires(post): systemd-units
Requires(preun): systemd-units
Requires(postun): systemd-units
Requires: python3
#Requires: python3-aiofiles
Requires: python3-docutils
Requires: python3-jinja2
Requires: python3-lxml
Requires: python3-qubesdb
Requires: python3-setuptools
Requires: python3-PyYAML
Requires: python3-xen
Requires: libvirt-python3
Requires: pciutils
2018-02-20 01:18:15 +01:00
Requires: qubes-core-dom0-linux >= 4.0.11
# policy (daemon) using changed qubesd socket protocol
Requires: qubes-core-qrexec-dom0 >= 4.1.8
Requires: qubes-db-dom0
2013-03-16 02:39:30 +01:00
# TODO: R: qubes-gui-dom0 >= 2.1.11
Conflicts: qubes-gui-dom0 < 1.1.13
2013-05-16 02:01:52 +02:00
%if x%{?backend_vmm} == xxen
Requires: xen-runtime
Requires: xen-hvm
Requires: xen-hvm-stubdom-linux >= 1.0.13
Requires: libvirt-daemon-xen >= 3.3.0-7
2013-05-16 02:01:52 +02:00
%endif
2012-01-30 16:27:12 +01:00
Requires: cronie
Requires: scrypt
# for qubes-hcl-report
Requires: dmidecode
# qubesd socket protocol
Conflicts: python3-qubesadmin < 4.1.6
# Required for qvm-console* tools
Requires: socat
%{?systemd_requires}
Obsoletes: qubes-core-dom0-doc <= 4.0
Provides: qubes-core-dom0-doc
# Prevent preupgrade from installation (it pretend to provide distribution upgrade)
Obsoletes: preupgrade < 2.0
Provides: preupgrade = 2.0
2018-01-25 11:55:39 +01:00
Source0: %{name}-%{version}.tar.gz
%description
The Qubes core files for installation on Dom0.
%prep
2018-01-25 11:55:39 +01:00
%setup -q
%build
make all
make -C doc PYTHON=%{__python3} SPHINXBUILD=sphinx-build-%{python3_version} man
%install
make install \
DESTDIR=$RPM_BUILD_ROOT \
2018-09-29 02:40:28 +02:00
BACKEND_VMM=%{backend_vmm} \
UNITDIR=%{_unitdir} \
PYTHON_SITEPATH=%{python3_sitelib} \
SYSCONFDIR=%{_sysconfdir}
make -C doc DESTDIR=$RPM_BUILD_ROOT \
PYTHON=%{__python3} SPHINXBUILD=sphinx-build-%{python3_version} \
install
mkdir -p $RPM_BUILD_ROOT/etc/qubes/backup
%post
%systemd_post qubes-core.service
%systemd_post qubes-qmemman.service
%systemd_post qubesd.service
sed '/^autoballoon=/d;/^lockfile=/d' -i /etc/xen/xl.conf
echo 'autoballoon=0' >> /etc/xen/xl.conf
echo 'lockfile="/var/run/qubes/xl-lock"' >> /etc/xen/xl.conf
if [ -e /etc/sysconfig/prelink ]; then
2011-10-07 21:28:26 +02:00
sed 's/^PRELINKING\s*=.*/PRELINKING=no/' -i /etc/sysconfig/prelink
fi
2011-10-07 21:28:26 +02:00
# Conflicts with libxl stack, so disable it
systemctl --no-reload disable xend.service >/dev/null 2>&1
systemctl --no-reload disable xendomains.service >/dev/null 2>&1
2013-05-04 04:33:07 +02:00
systemctl daemon-reload >/dev/null 2>&1 || :
if ! [ -e /var/lib/qubes/qubes.xml ]; then
# echo "Initializing Qubes DB..."
umask 007; sg qubes -c 'qubes-create --offline-mode'
fi
%clean
rm -rf $RPM_BUILD_ROOT
rm -f %{name}-%{version}
%pre
if ! grep -q ^qubes: /etc/group ; then
groupadd qubes
fi
%triggerin -- xen-runtime
2013-03-14 15:06:19 +01:00
/usr/lib/qubes/fix-dir-perms.sh
%preun
%systemd_preun qubes-core.service
%systemd_preun qubes-qmemman.service
%systemd_preun qubesd.service
if [ "$1" = 0 ] ; then
# no more packages left
service qubes_netvm stop
service qubes_core stop
fi
%postun
%systemd_postun qubes-core.service
%systemd_postun_with_restart qubes-qmemman.service
%systemd_postun_with_restart qubesd.service
if [ "$1" = 0 ] ; then
# no more packages left
chgrp root /etc/xen
chmod 700 /etc/xen
groupdel qubes
fi
%posttrans
# Preserve user-modified legacy policy at original location, revert rpm adding
# .rpmsave suffix. This needs to be done in %%posttrans, to be run after
# uninstalling the old package.
# List policy files explicitly, to not touch files from other packages.
SERVICES="
admin.Events
admin.backup.Cancel
admin.backup.Execute
admin.backup.Info
admin.deviceclass.List
admin.label.Create
admin.label.Get
admin.label.Index
admin.label.List
admin.label.Remove
admin.pool.Add
admin.pool.Info
admin.pool.List
admin.pool.ListDrivers
admin.pool.Remove
admin.pool.Set.revisions_to_keep
admin.pool.UsageDetails
admin.pool.volume.List
admin.property.Get
admin.property.GetAll
admin.property.GetDefault
admin.property.Help
admin.property.List
admin.property.Reset
admin.property.Set
admin.vm.Console
admin.vm.Create.AppVM
admin.vm.Create.DispVM
admin.vm.Create.StandaloneVM
admin.vm.Create.TemplateVM
admin.vm.CreateDisposable
admin.vm.CreateInPool.AppVM
admin.vm.CreateInPool.DispVM
admin.vm.CreateInPool.StandaloneVM
admin.vm.CreateInPool.TemplateVM
admin.vm.CurrentState
admin.vm.Kill
admin.vm.List
admin.vm.Pause
admin.vm.Remove
admin.vm.Shutdown
admin.vm.Start
admin.vm.Stats
admin.vm.Unpause
admin.vm.device.block.Attach
admin.vm.device.block.Available
admin.vm.device.block.Detach
admin.vm.device.block.List
admin.vm.device.block.Set.persistent
admin.vm.device.pci.Attach
admin.vm.device.pci.Available
admin.vm.device.pci.Detach
admin.vm.device.pci.List
admin.vm.device.pci.Set.persistent
admin.vm.feature.CheckWithAdminVM
admin.vm.feature.CheckWithNetvm
admin.vm.feature.CheckWithTemplate
admin.vm.feature.CheckWithTemplateAndAdminVM
admin.vm.feature.Get
admin.vm.feature.List
admin.vm.feature.Remove
admin.vm.feature.Set
admin.vm.firewall.Get
admin.vm.firewall.Reload
admin.vm.firewall.Set
admin.vm.property.Get
admin.vm.property.GetAll
admin.vm.property.GetDefault
admin.vm.property.Help
admin.vm.property.List
admin.vm.property.Reset
admin.vm.property.Set
admin.vm.tag.Get
admin.vm.tag.List
admin.vm.tag.Remove
admin.vm.tag.Set
admin.vm.volume.CloneFrom
admin.vm.volume.CloneTo
admin.vm.volume.Import
admin.vm.volume.ImportWithSize
admin.vm.volume.Info
admin.vm.volume.List
admin.vm.volume.ListSnapshots
admin.vm.volume.Resize
admin.vm.volume.Revert
admin.vm.volume.Set.revisions_to_keep
admin.vm.volume.Set.rw
admin.vmclass.List
include/admin-global-ro
include/admin-global-rwx
include/admin-local-ro
include/admin-local-rwx
policy.RegisterArgument
qubes.ConnectTCP
qubes.FeaturesRequest
qubes.Filecopy
qubes.GetDate
qubes.GetImageRGBA
qubes.GetRandomizedTime
qubes.NotifyTools
qubes.NotifyUpdates
qubes.OpenInVM
qubes.OpenURL
qubes.StartApp
qubes.UpdatesProxy
qubes.VMExec
qubes.VMExecGUI
qubes.VMRootShell
qubes.VMShell
"
for service in $SERVICES; do
if [ -f "/etc/qubes-rpc/policy/$service.rpmsave" ] && \
! [ -e "/etc/qubes-rpc/policy/$service" ]; then
mv -n "/etc/qubes-rpc/policy/$service.rpmsave" \
"/etc/qubes-rpc/policy/$service"
fi
done
# Take extra care about policy files in include/ - if any of them is gone
# (because unmodified) but user still reference them anywhere, the policy
# loading will be broken. Check for this case, and avoid the issue by creating
# a symlink to the new policy.
INCLUDES="admin-global-ro admin-global-rwx admin-local-ro admin-local-rwx"
for include in $INCLUDES; do
if grep -qr "include/$include" /etc/qubes-rpc && \
! [ -e "/etc/qubes-rpc/policy/include/$include" ]; then
ln -s "../../../qubes/policy.d/include/$include" \
"/etc/qubes-rpc/policy/include/$include"
fi
done
%files
%defattr(-,root,root,-)
2012-03-29 16:17:10 +02:00
%config(noreplace) %attr(0664,root,qubes) %{_sysconfdir}/qubes/qmemman.conf
%config(noreplace) /etc/logrotate.d/qubes
%attr(770,root,qubes) %dir /etc/qubes/backup
/usr/bin/qvm-*
/usr/bin/qubes-*
/usr/bin/qmemmand
/usr/bin/qubesd*
2015-01-13 18:23:04 +01:00
%{_mandir}/man1/qubes*.1*
%{_mandir}/man1/qvm-*.1*
%dir %{python3_sitelib}/qubes-*.egg-info
%{python3_sitelib}/qubes-*.egg-info/*
%dir %{python3_sitelib}/qubes
%dir %{python3_sitelib}/qubes/__pycache__
%{python3_sitelib}/qubes/__pycache__/*
%{python3_sitelib}/qubes/__init__.py
%{python3_sitelib}/qubes/app.py
%{python3_sitelib}/qubes/backup.py
%{python3_sitelib}/qubes/config.py
%{python3_sitelib}/qubes/devices.py
%{python3_sitelib}/qubes/dochelpers.py
%{python3_sitelib}/qubes/events.py
%{python3_sitelib}/qubes/exc.py
%{python3_sitelib}/qubes/features.py
2017-02-02 13:03:08 +01:00
%{python3_sitelib}/qubes/firewall.py
%{python3_sitelib}/qubes/log.py
%{python3_sitelib}/qubes/rngdoc.py
%{python3_sitelib}/qubes/tarwriter.py
%{python3_sitelib}/qubes/utils.py
%dir %{python3_sitelib}/qubes/api
%dir %{python3_sitelib}/qubes/api/__pycache__
%{python3_sitelib}/qubes/api/__pycache__/*
%{python3_sitelib}/qubes/api/__init__.py
%{python3_sitelib}/qubes/api/admin.py
%{python3_sitelib}/qubes/api/internal.py
%{python3_sitelib}/qubes/api/misc.py
%dir %{python3_sitelib}/qubes/vm
%dir %{python3_sitelib}/qubes/vm/__pycache__
%{python3_sitelib}/qubes/vm/__pycache__/*
%{python3_sitelib}/qubes/vm/__init__.py
%{python3_sitelib}/qubes/vm/adminvm.py
%{python3_sitelib}/qubes/vm/appvm.py
%{python3_sitelib}/qubes/vm/dispvm.py
%{python3_sitelib}/qubes/vm/qubesvm.py
%{python3_sitelib}/qubes/vm/standalonevm.py
%{python3_sitelib}/qubes/vm/templatevm.py
%dir %{python3_sitelib}/qubes/vm/mix
%dir %{python3_sitelib}/qubes/vm/mix/__pycache__
%{python3_sitelib}/qubes/vm/mix/__pycache__/*
%{python3_sitelib}/qubes/vm/mix/__init__.py
%{python3_sitelib}/qubes/vm/mix/net.py
%dir %{python3_sitelib}/qubes/storage
%dir %{python3_sitelib}/qubes/storage/__pycache__
%{python3_sitelib}/qubes/storage/__pycache__/*
%{python3_sitelib}/qubes/storage/__init__.py
%{python3_sitelib}/qubes/storage/file.py
file-reflink, a storage driver optimized for CoW filesystems This adds the file-reflink storage driver. It is never selected automatically for pool creation, especially not the creation of 'varlibqubes' (though it can be used if set up manually). The code is quite small: reflink.py lvm.py file.py + block-snapshot sloccount 334 lines 447 (134%) 570 (171%) Background: btrfs and XFS (but not yet ZFS) support instant copies of individual files through the 'FICLONE' ioctl behind 'cp --reflink'. Which file-reflink uses to snapshot VM image files without an extra device-mapper layer. All the snapshots are essentially freestanding; there's no functional origin vs. snapshot distinction. In contrast to 'file'-on-btrfs, file-reflink inherently avoids CoW-on-CoW. Which is a bigger issue now on R4.0, where even AppVMs' private volumes are CoW. (And turning off the lower, filesystem-level CoW for 'file'-on-btrfs images would turn off data checksums too, i.e. protection against bit rot.) Also in contrast to 'file', all storage features are supported, including - any number of revisions_to_keep - volume.revert() - volume.is_outdated - online fstrim/discard Example tree of a file-reflink pool - *-dirty.img are connected to Xen: - /var/lib/testpool/appvms/foo/volatile-dirty.img - /var/lib/testpool/appvms/foo/root-dirty.img - /var/lib/testpool/appvms/foo/root.img - /var/lib/testpool/appvms/foo/private-dirty.img - /var/lib/testpool/appvms/foo/private.img - /var/lib/testpool/appvms/foo/private.img@2018-01-02T03:04:05Z - /var/lib/testpool/appvms/foo/private.img@2018-01-02T04:05:06Z - /var/lib/testpool/appvms/foo/private.img@2018-01-02T05:06:07Z - /var/lib/testpool/appvms/bar/... - /var/lib/testpool/appvms/... - /var/lib/testpool/template-vms/fedora-26/... - /var/lib/testpool/template-vms/... It looks similar to a 'file' pool tree, and in fact file-reflink is drop-in compatible: $ qvm-shutdown --all --wait $ systemctl stop qubesd $ sed 's/ driver="file"/ driver="file-reflink"/g' -i.bak /var/lib/qubes/qubes.xml $ systemctl start qubesd $ sudo rm -f /path/to/pool/*/*/*-cow.img* If the user tries to create a fresh file-reflink pool on a filesystem that doesn't support reflinks, qvm-pool will abort and mention the 'setup_check=no' option. Which can be passed to force a fallback on regular sparse copies, with of course lots of time/space overhead. The same fallback code is also used when initially cloning a VM from a foreign pool, or from another file-reflink pool on a different mountpoint. 'journalctl -fu qubesd' will show all file-reflink copy/rename/remove operations on VM creation/startup/shutdown/etc.
2018-02-12 22:20:05 +01:00
%{python3_sitelib}/qubes/storage/reflink.py
%{python3_sitelib}/qubes/storage/kernels.py
%{python3_sitelib}/qubes/storage/lvm.py
%dir %{python3_sitelib}/qubes/tools
%dir %{python3_sitelib}/qubes/tools/__pycache__
%{python3_sitelib}/qubes/tools/__pycache__/*
%{python3_sitelib}/qubes/tools/__init__.py
%{python3_sitelib}/qubes/tools/qmemmand.py
%{python3_sitelib}/qubes/tools/qubes_create.py
2017-02-02 13:03:08 +01:00
%{python3_sitelib}/qubes/tools/qubesd.py
%{python3_sitelib}/qubes/tools/qubesd_query.py
%dir %{python3_sitelib}/qubes/ext
%dir %{python3_sitelib}/qubes/ext/__pycache__
%{python3_sitelib}/qubes/ext/__pycache__/*
%{python3_sitelib}/qubes/ext/__init__.py
2017-06-23 10:26:04 +02:00
%{python3_sitelib}/qubes/ext/admin.py
%{python3_sitelib}/qubes/ext/backup_restore.py
%{python3_sitelib}/qubes/ext/block.py
%{python3_sitelib}/qubes/ext/core_features.py
%{python3_sitelib}/qubes/ext/gui.py
2020-02-27 10:31:27 +01:00
%{python3_sitelib}/qubes/ext/audio.py
%{python3_sitelib}/qubes/ext/pci.py
%{python3_sitelib}/qubes/ext/r3compatibility.py
%{python3_sitelib}/qubes/ext/services.py
%{python3_sitelib}/qubes/ext/windows.py
%dir %{python3_sitelib}/qubes/tests
%dir %{python3_sitelib}/qubes/tests/__pycache__
%{python3_sitelib}/qubes/tests/__pycache__/*
%{python3_sitelib}/qubes/tests/__init__.py
%{python3_sitelib}/qubes/tests/run.py
%{python3_sitelib}/qubes/tests/extra.py
%{python3_sitelib}/qubes/tests/api.py
%{python3_sitelib}/qubes/tests/api_admin.py
%{python3_sitelib}/qubes/tests/api_internal.py
%{python3_sitelib}/qubes/tests/api_misc.py
%{python3_sitelib}/qubes/tests/app.py
%{python3_sitelib}/qubes/tests/devices.py
%{python3_sitelib}/qubes/tests/devices_block.py
%{python3_sitelib}/qubes/tests/events.py
%{python3_sitelib}/qubes/tests/ext.py
%{python3_sitelib}/qubes/tests/firewall.py
%{python3_sitelib}/qubes/tests/init.py
%{python3_sitelib}/qubes/tests/rpc_import.py
%{python3_sitelib}/qubes/tests/storage.py
%{python3_sitelib}/qubes/tests/storage_file.py
%{python3_sitelib}/qubes/tests/storage_reflink.py
%{python3_sitelib}/qubes/tests/storage_kernels.py
%{python3_sitelib}/qubes/tests/storage_lvm.py
%{python3_sitelib}/qubes/tests/tarwriter.py
%dir %{python3_sitelib}/qubes/tests/vm
%dir %{python3_sitelib}/qubes/tests/vm/__pycache__
%{python3_sitelib}/qubes/tests/vm/__pycache__/*
%{python3_sitelib}/qubes/tests/vm/__init__.py
%{python3_sitelib}/qubes/tests/vm/init.py
%{python3_sitelib}/qubes/tests/vm/adminvm.py
%{python3_sitelib}/qubes/tests/vm/appvm.py
%{python3_sitelib}/qubes/tests/vm/dispvm.py
%{python3_sitelib}/qubes/tests/vm/qubesvm.py
%dir %{python3_sitelib}/qubes/tests/vm/mix
%dir %{python3_sitelib}/qubes/tests/vm/mix/__pycache__
%{python3_sitelib}/qubes/tests/vm/mix/__pycache__/*
%{python3_sitelib}/qubes/tests/vm/mix/__init__.py
%{python3_sitelib}/qubes/tests/vm/mix/net.py
%dir %{python3_sitelib}/qubes/tests/tools
%dir %{python3_sitelib}/qubes/tests/tools/__pycache__
%{python3_sitelib}/qubes/tests/tools/__pycache__/*
%{python3_sitelib}/qubes/tests/tools/__init__.py
%dir %{python3_sitelib}/qubes/tests/integ
%dir %{python3_sitelib}/qubes/tests/integ/__pycache__
%{python3_sitelib}/qubes/tests/integ/__pycache__/*
%{python3_sitelib}/qubes/tests/integ/__init__.py
%{python3_sitelib}/qubes/tests/integ/backup.py
%{python3_sitelib}/qubes/tests/integ/backupcompatibility.py
%{python3_sitelib}/qubes/tests/integ/basic.py
%{python3_sitelib}/qubes/tests/integ/devices_block.py
%{python3_sitelib}/qubes/tests/integ/devices_pci.py
%{python3_sitelib}/qubes/tests/integ/dispvm.py
%{python3_sitelib}/qubes/tests/integ/dom0_update.py
%{python3_sitelib}/qubes/tests/integ/vm_update.py
%{python3_sitelib}/qubes/tests/integ/mime.py
%{python3_sitelib}/qubes/tests/integ/network.py
%{python3_sitelib}/qubes/tests/integ/network_ipv6.py
%{python3_sitelib}/qubes/tests/integ/grub.py
%{python3_sitelib}/qubes/tests/integ/salt.py
%{python3_sitelib}/qubes/tests/integ/qrexec.py
%{python3_sitelib}/qubes/tests/integ/storage.py
%{python3_sitelib}/qubes/tests/integ/vm_qrexec_gui.py
%dir %{python3_sitelib}/qubes/tests/integ/tools
%dir %{python3_sitelib}/qubes/tests/integ/tools/__pycache__
%{python3_sitelib}/qubes/tests/integ/tools/__pycache__/*
%{python3_sitelib}/qubes/tests/integ/tools/__init__.py
%{python3_sitelib}/qubes/tests/integ/tools/qubes_create.py
%dir %{python3_sitelib}/qubes/qmemman
%dir %{python3_sitelib}/qubes/qmemman/__pycache__
%{python3_sitelib}/qubes/qmemman/__pycache__/*
%{python3_sitelib}/qubes/qmemman/__init__.py
%{python3_sitelib}/qubes/qmemman/algo.py
%{python3_sitelib}/qubes/qmemman/client.py
2015-01-13 18:23:04 +01:00
2013-03-14 15:06:19 +01:00
/usr/lib/qubes/cleanup-dispvms
/usr/lib/qubes/fix-dir-perms.sh
/usr/lib/qubes/startup-misc.sh
%{_unitdir}/lvm2-pvscan@.service.d/30_qubes.conf
%{_unitdir}/qubes-core.service
%{_unitdir}/qubes-qmemman.service
2013-11-20 02:57:17 +01:00
%{_unitdir}/qubes-vm@.service
2017-02-02 13:03:08 +01:00
%{_unitdir}/qubesd.service
%attr(2770,root,qubes) %dir /var/lib/qubes
%attr(2770,root,qubes) %dir /var/lib/qubes/vm-templates
%attr(2770,root,qubes) %dir /var/lib/qubes/appvms
%attr(2770,root,qubes) %dir /var/lib/qubes/servicevms
%attr(2770,root,qubes) %dir /var/lib/qubes/backup
%attr(2770,root,qubes) %dir /var/lib/qubes/dvmdata
%attr(2770,root,qubes) %dir /var/lib/qubes/vm-kernels
2016-03-02 12:17:29 +01:00
/usr/share/qubes/templates/libvirt/xen.xml
/usr/share/qubes/templates/libvirt/devices/block.xml
/usr/share/qubes/templates/libvirt/devices/pci.xml
/usr/share/qubes/templates/libvirt/devices/net.xml
/usr/lib/tmpfiles.d/qubes.conf
/etc/xen/scripts/block-snapshot
/etc/xen/scripts/block-origin
/etc/xen/scripts/vif-route-qubes
%attr(0664,root,qubes) %config(noreplace) /etc/qubes/policy.d/85-admin-backup-restore.policy
%attr(0664,root,qubes) %config(noreplace) /etc/qubes/policy.d/90-admin-default.policy
%attr(0664,root,qubes) %config(noreplace) /etc/qubes/policy.d/90-default.policy
%attr(0664,root,qubes) %config(noreplace) /etc/qubes/policy.d/include/admin-global-ro
%attr(0664,root,qubes) %config(noreplace) /etc/qubes/policy.d/include/admin-global-rwx
%attr(0664,root,qubes) %config(noreplace) /etc/qubes/policy.d/include/admin-local-ro
%attr(0664,root,qubes) %config(noreplace) /etc/qubes/policy.d/include/admin-local-rwx
/etc/qubes-rpc/admin.*
/etc/qubes-rpc/qubes.FeaturesRequest
/etc/qubes-rpc/qubes.GetDate
/etc/qubes-rpc/qubes.GetRandomizedTime
/etc/qubes-rpc/qubes.NotifyTools
/etc/qubes-rpc/qubes.NotifyUpdates
/etc/qubes-rpc/qubes.ConnectTCP
%attr(2770,root,qubes) %dir /var/log/qubes
%attr(0770,root,qubes) %dir /var/run/qubes
2015-01-13 23:52:19 +01:00
/usr/share/doc/qubes/relaxng/*.rng
2018-04-03 21:30:15 +02:00
%changelog
@CHANGELOG@