2010-04-05 20:58:57 +02:00
|
|
|
RPMS_DIR=rpm/
|
2011-04-04 10:55:25 +02:00
|
|
|
|
2013-03-12 16:50:14 +01:00
|
|
|
VERSION := $(shell cat version)
|
2011-04-04 10:55:25 +02:00
|
|
|
|
2013-02-28 14:43:32 +01:00
|
|
|
DIST_DOM0 ?= fc18
|
2013-01-25 03:07:16 +01:00
|
|
|
|
2013-07-22 04:18:19 +02:00
|
|
|
OS ?= Linux
|
2017-01-20 12:40:00 +01:00
|
|
|
PYTHON ?= python3
|
2013-07-22 04:18:19 +02:00
|
|
|
|
2017-05-23 03:24:15 +02:00
|
|
|
ADMIN_API_METHODS_SIMPLE = \
|
|
|
|
admin.vmclass.List \
|
|
|
|
admin.Events \
|
|
|
|
admin.backup.Execute \
|
|
|
|
admin.backup.Info \
|
2017-07-20 03:07:46 +02:00
|
|
|
admin.backup.Cancel \
|
2017-05-23 03:24:15 +02:00
|
|
|
admin.label.Create \
|
|
|
|
admin.label.Get \
|
|
|
|
admin.label.List \
|
2017-06-27 01:55:17 +02:00
|
|
|
admin.label.Index \
|
2017-05-23 03:24:15 +02:00
|
|
|
admin.label.Remove \
|
|
|
|
admin.pool.Add \
|
|
|
|
admin.pool.Info \
|
|
|
|
admin.pool.List \
|
|
|
|
admin.pool.ListDrivers \
|
|
|
|
admin.pool.Remove \
|
2017-11-07 02:34:43 +01:00
|
|
|
admin.pool.Set.revisions_to_keep \
|
2017-05-23 03:24:15 +02:00
|
|
|
admin.pool.volume.Info \
|
|
|
|
admin.pool.volume.List \
|
|
|
|
admin.pool.volume.ListSnapshots \
|
|
|
|
admin.pool.volume.Resize \
|
|
|
|
admin.pool.volume.Revert \
|
2017-11-07 02:34:43 +01:00
|
|
|
admin.pool.volume.Set.revisions_to_keep \
|
2018-03-18 23:07:40 +01:00
|
|
|
admin.pool.volume.Set.rw \
|
2017-05-23 03:24:15 +02:00
|
|
|
admin.pool.volume.Snapshot \
|
|
|
|
admin.property.Get \
|
2017-10-20 01:37:20 +02:00
|
|
|
admin.property.GetDefault \
|
2017-05-23 03:24:15 +02:00
|
|
|
admin.property.Help \
|
|
|
|
admin.property.HelpRst \
|
|
|
|
admin.property.List \
|
|
|
|
admin.property.Reset \
|
|
|
|
admin.property.Set \
|
|
|
|
admin.vm.Create.AppVM \
|
|
|
|
admin.vm.Create.DispVM \
|
|
|
|
admin.vm.Create.StandaloneVM \
|
|
|
|
admin.vm.Create.TemplateVM \
|
|
|
|
admin.vm.CreateInPool.AppVM \
|
|
|
|
admin.vm.CreateInPool.DispVM \
|
|
|
|
admin.vm.CreateInPool.StandaloneVM \
|
|
|
|
admin.vm.CreateInPool.TemplateVM \
|
2017-08-06 12:35:35 +02:00
|
|
|
admin.vm.CreateDisposable \
|
2017-05-23 03:24:15 +02:00
|
|
|
admin.vm.Kill \
|
|
|
|
admin.vm.List \
|
|
|
|
admin.vm.Pause \
|
|
|
|
admin.vm.Remove \
|
|
|
|
admin.vm.Shutdown \
|
|
|
|
admin.vm.Start \
|
|
|
|
admin.vm.Unpause \
|
|
|
|
admin.vm.device.pci.Attach \
|
|
|
|
admin.vm.device.pci.Available \
|
|
|
|
admin.vm.device.pci.Detach \
|
|
|
|
admin.vm.device.pci.List \
|
2017-09-02 17:59:29 +02:00
|
|
|
admin.vm.device.pci.Set.persistent \
|
2017-05-23 03:24:15 +02:00
|
|
|
admin.vm.device.block.Attach \
|
|
|
|
admin.vm.device.block.Available \
|
|
|
|
admin.vm.device.block.Detach \
|
|
|
|
admin.vm.device.block.List \
|
2017-09-02 17:59:29 +02:00
|
|
|
admin.vm.device.block.Set.persistent \
|
2017-05-23 03:24:15 +02:00
|
|
|
admin.vm.device.mic.Attach \
|
|
|
|
admin.vm.device.mic.Available \
|
|
|
|
admin.vm.device.mic.Detach \
|
|
|
|
admin.vm.device.mic.List \
|
2017-09-02 17:59:29 +02:00
|
|
|
admin.vm.device.mic.Set.persistent \
|
2017-12-01 03:19:48 +01:00
|
|
|
admin.vm.feature.CheckWithNetvm \
|
2017-05-23 03:24:15 +02:00
|
|
|
admin.vm.feature.CheckWithTemplate \
|
2018-11-15 16:59:00 +01:00
|
|
|
admin.vm.feature.CheckWithAdminVM \
|
|
|
|
admin.vm.feature.CheckWithTemplateAndAdminVM \
|
2017-05-23 03:24:15 +02:00
|
|
|
admin.vm.feature.Get \
|
|
|
|
admin.vm.feature.List \
|
|
|
|
admin.vm.feature.Remove \
|
|
|
|
admin.vm.feature.Set \
|
|
|
|
admin.vm.firewall.Flush \
|
|
|
|
admin.vm.firewall.Get \
|
|
|
|
admin.vm.firewall.Set \
|
|
|
|
admin.vm.firewall.GetPolicy \
|
|
|
|
admin.vm.firewall.SetPolicy \
|
|
|
|
admin.vm.firewall.Reload \
|
|
|
|
admin.vm.property.Get \
|
2017-10-20 01:37:20 +02:00
|
|
|
admin.vm.property.GetDefault \
|
2017-05-23 03:24:15 +02:00
|
|
|
admin.vm.property.Help \
|
|
|
|
admin.vm.property.HelpRst \
|
|
|
|
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 \
|
2017-07-04 14:51:51 +02:00
|
|
|
admin.vm.volume.CloneFrom \
|
|
|
|
admin.vm.volume.CloneTo \
|
2017-05-23 03:24:15 +02:00
|
|
|
admin.vm.volume.Info \
|
|
|
|
admin.vm.volume.List \
|
|
|
|
admin.vm.volume.ListSnapshots \
|
|
|
|
admin.vm.volume.Resize \
|
|
|
|
admin.vm.volume.Revert \
|
2017-11-07 02:34:43 +01:00
|
|
|
admin.vm.volume.Set.revisions_to_keep \
|
2018-03-18 23:07:40 +01:00
|
|
|
admin.vm.volume.Set.rw \
|
2017-07-27 22:20:12 +02:00
|
|
|
admin.vm.Stats \
|
2017-05-23 03:24:15 +02:00
|
|
|
$(null)
|
|
|
|
|
2013-07-30 10:44:20 +02:00
|
|
|
ifeq ($(OS),Linux)
|
|
|
|
DATADIR ?= /var/lib/qubes
|
|
|
|
STATEDIR ?= /var/run/qubes
|
|
|
|
LOGDIR ?= /var/log/qubes
|
2013-08-02 20:27:33 +02:00
|
|
|
FILESDIR ?= /usr/share/qubes
|
2013-07-30 10:44:20 +02:00
|
|
|
else ifeq ($(OS),Windows_NT)
|
|
|
|
DATADIR ?= c:/qubes
|
|
|
|
STATEDIR ?= c:/qubes/state
|
|
|
|
LOGDIR ?= c:/qubes/log
|
2013-08-02 20:27:33 +02:00
|
|
|
FILESDIR ?= c:/program files/Invisible Things Lab/Qubes
|
2013-07-30 10:44:20 +02:00
|
|
|
endif
|
|
|
|
|
2010-04-05 20:58:57 +02:00
|
|
|
help:
|
2011-04-04 10:55:25 +02:00
|
|
|
@echo "make rpms -- generate binary rpm packages"
|
2012-11-14 01:41:21 +01:00
|
|
|
@echo "make rpms-dom0 -- generate binary rpm packages for Dom0"
|
2011-04-04 10:55:25 +02:00
|
|
|
@echo "make update-repo-current -- copy newly generated rpms to qubes yum repo"
|
2011-05-09 18:40:51 +02:00
|
|
|
@echo "make update-repo-current-testing -- same, but to -current-testing repo"
|
2011-04-04 10:55:25 +02:00
|
|
|
@echo "make update-repo-unstable -- same, but to -testing repo"
|
2011-04-06 15:35:30 +02:00
|
|
|
@echo "make update-repo-installer -- copy dom0 rpms to installer repo"
|
2011-04-04 10:55:25 +02:00
|
|
|
@echo "make clean -- cleanup"
|
2010-04-05 20:58:57 +02:00
|
|
|
|
2013-03-07 04:12:37 +01:00
|
|
|
rpms: rpms-dom0
|
2012-11-07 17:58:08 +01:00
|
|
|
|
2013-03-07 04:12:37 +01:00
|
|
|
rpms-vm:
|
|
|
|
@true
|
2012-11-14 13:12:51 +01:00
|
|
|
|
2013-03-16 19:54:22 +01:00
|
|
|
rpms-dom0:
|
2012-11-07 17:58:08 +01:00
|
|
|
rpmbuild --define "_rpmdir $(RPMS_DIR)" -bb rpm_spec/core-dom0.spec
|
2013-03-12 16:55:05 +01:00
|
|
|
rpmbuild --define "_rpmdir $(RPMS_DIR)" -bb rpm_spec/core-dom0-doc.spec
|
2012-11-07 17:58:08 +01:00
|
|
|
rpm --addsign \
|
2013-03-12 16:55:05 +01:00
|
|
|
$(RPMS_DIR)/x86_64/qubes-core-dom0-$(VERSION)*.rpm \
|
|
|
|
$(RPMS_DIR)/noarch/qubes-core-dom0-doc-$(VERSION)*rpm
|
2012-11-07 17:58:08 +01:00
|
|
|
|
2013-06-15 23:14:54 +02:00
|
|
|
all:
|
2017-01-20 12:40:00 +01:00
|
|
|
$(PYTHON) setup.py build
|
2017-05-23 03:24:15 +02:00
|
|
|
$(MAKE) -C qubes-rpc all
|
2013-07-22 04:18:19 +02:00
|
|
|
# Currently supported only on xen
|
2013-06-15 23:14:54 +02:00
|
|
|
|
|
|
|
install:
|
2013-07-22 04:18:19 +02:00
|
|
|
ifeq ($(OS),Linux)
|
2013-06-15 23:14:54 +02:00
|
|
|
$(MAKE) install -C linux/systemd
|
|
|
|
$(MAKE) install -C linux/aux-tools
|
|
|
|
$(MAKE) install -C linux/system-config
|
2013-07-22 04:18:19 +02:00
|
|
|
endif
|
2017-01-20 12:40:00 +01:00
|
|
|
$(PYTHON) setup.py install -O1 --skip-build --root $(DESTDIR)
|
2017-07-03 23:07:25 +02:00
|
|
|
ln -s qvm-device $(DESTDIR)/usr/bin/qvm-block
|
2016-09-03 03:25:52 +02:00
|
|
|
ln -s qvm-device $(DESTDIR)/usr/bin/qvm-pci
|
|
|
|
ln -s qvm-device $(DESTDIR)/usr/bin/qvm-usb
|
2018-01-11 03:44:53 +01:00
|
|
|
install -d $(DESTDIR)/usr/share/man/man1
|
|
|
|
ln -s qvm-device.1.gz $(DESTDIR)/usr/share/man/man1/qvm-block.1.gz
|
|
|
|
ln -s qvm-device.1.gz $(DESTDIR)/usr/share/man/man1/qvm-pci.1.gz
|
|
|
|
ln -s qvm-device.1.gz $(DESTDIR)/usr/share/man/man1/qvm-usb.1.gz
|
2015-01-13 23:52:19 +01:00
|
|
|
$(MAKE) install -C relaxng
|
2016-03-03 01:05:23 +01:00
|
|
|
mkdir -p $(DESTDIR)/etc/qubes
|
2013-07-22 04:18:19 +02:00
|
|
|
ifeq ($(BACKEND_VMM),xen)
|
|
|
|
# Currently supported only on xen
|
2015-10-01 22:14:35 +02:00
|
|
|
cp etc/qmemman.conf $(DESTDIR)/etc/qubes/
|
2013-07-22 04:18:19 +02:00
|
|
|
endif
|
2013-06-15 23:14:54 +02:00
|
|
|
mkdir -p $(DESTDIR)/etc/qubes-rpc/policy
|
2013-07-22 04:13:12 +02:00
|
|
|
mkdir -p $(DESTDIR)/usr/libexec/qubes
|
2016-05-17 18:12:24 +02:00
|
|
|
cp qubes-rpc-policy/qubes.FeaturesRequest.policy $(DESTDIR)/etc/qubes-rpc/policy/qubes.FeaturesRequest
|
2013-06-15 23:14:54 +02:00
|
|
|
cp qubes-rpc-policy/qubes.Filecopy.policy $(DESTDIR)/etc/qubes-rpc/policy/qubes.Filecopy
|
|
|
|
cp qubes-rpc-policy/qubes.OpenInVM.policy $(DESTDIR)/etc/qubes-rpc/policy/qubes.OpenInVM
|
2016-05-17 22:59:39 +02:00
|
|
|
cp qubes-rpc-policy/qubes.OpenURL.policy $(DESTDIR)/etc/qubes-rpc/policy/qubes.OpenURL
|
2013-06-15 23:14:54 +02:00
|
|
|
cp qubes-rpc-policy/qubes.VMShell.policy $(DESTDIR)/etc/qubes-rpc/policy/qubes.VMShell
|
2017-08-06 12:50:17 +02:00
|
|
|
cp qubes-rpc-policy/qubes.VMRootShell.policy $(DESTDIR)/etc/qubes-rpc/policy/qubes.VMRootShell
|
2013-06-15 23:14:54 +02:00
|
|
|
cp qubes-rpc-policy/qubes.NotifyUpdates.policy $(DESTDIR)/etc/qubes-rpc/policy/qubes.NotifyUpdates
|
|
|
|
cp qubes-rpc-policy/qubes.NotifyTools.policy $(DESTDIR)/etc/qubes-rpc/policy/qubes.NotifyTools
|
|
|
|
cp qubes-rpc-policy/qubes.GetImageRGBA.policy $(DESTDIR)/etc/qubes-rpc/policy/qubes.GetImageRGBA
|
2016-03-14 22:47:46 +01:00
|
|
|
cp qubes-rpc-policy/qubes.GetRandomizedTime.policy $(DESTDIR)/etc/qubes-rpc/policy/qubes.GetRandomizedTime
|
2016-05-17 18:12:24 +02:00
|
|
|
cp qubes-rpc-policy/qubes.NotifyTools.policy $(DESTDIR)/etc/qubes-rpc/policy/qubes.NotifyTools
|
|
|
|
cp qubes-rpc-policy/qubes.NotifyUpdates.policy $(DESTDIR)/etc/qubes-rpc/policy/qubes.NotifyUpdates
|
|
|
|
cp qubes-rpc-policy/qubes.OpenInVM.policy $(DESTDIR)/etc/qubes-rpc/policy/qubes.OpenInVM
|
2018-02-27 14:26:20 +01:00
|
|
|
cp qubes-rpc-policy/qubes.StartApp.policy $(DESTDIR)/etc/qubes-rpc/policy/qubes.StartApp
|
2016-05-17 18:12:24 +02:00
|
|
|
cp qubes-rpc-policy/qubes.VMShell.policy $(DESTDIR)/etc/qubes-rpc/policy/qubes.VMShell
|
2017-05-26 05:27:34 +02:00
|
|
|
cp qubes-rpc-policy/qubes.UpdatesProxy.policy $(DESTDIR)/etc/qubes-rpc/policy/qubes.UpdatesProxy
|
2017-07-06 23:37:26 +02:00
|
|
|
cp qubes-rpc-policy/qubes.GetDate.policy $(DESTDIR)/etc/qubes-rpc/policy/qubes.GetDate
|
2019-05-07 13:54:29 +02:00
|
|
|
cp qubes-rpc-policy/admin.vm.Console.policy $(DESTDIR)/etc/qubes-rpc/policy/admin.vm.Console
|
2017-11-30 00:17:59 +01:00
|
|
|
cp qubes-rpc-policy/policy.RegisterArgument.policy $(DESTDIR)/etc/qubes-rpc/policy/policy.RegisterArgument
|
2016-05-17 18:12:24 +02:00
|
|
|
cp qubes-rpc/qubes.FeaturesRequest $(DESTDIR)/etc/qubes-rpc/
|
2018-03-02 20:39:28 +01:00
|
|
|
cp qubes-rpc/qubes.GetDate $(DESTDIR)/etc/qubes-rpc/
|
2016-03-13 02:15:46 +01:00
|
|
|
cp qubes-rpc/qubes.GetRandomizedTime $(DESTDIR)/etc/qubes-rpc/
|
2016-05-17 18:12:24 +02:00
|
|
|
cp qubes-rpc/qubes.NotifyTools $(DESTDIR)/etc/qubes-rpc/
|
|
|
|
cp qubes-rpc/qubes.NotifyUpdates $(DESTDIR)/etc/qubes-rpc/
|
2017-11-30 00:17:59 +01:00
|
|
|
cp qubes-rpc/policy.RegisterArgument $(DESTDIR)/etc/qubes-rpc/
|
2017-05-23 03:24:15 +02:00
|
|
|
install qubes-rpc/qubesd-query-fast $(DESTDIR)/usr/libexec/qubes/
|
2017-08-14 02:26:34 +02:00
|
|
|
install -m 0755 qvm-tools/qubes-bug-report $(DESTDIR)/usr/bin/qubes-bug-report
|
|
|
|
install -m 0755 qvm-tools/qubes-hcl-report $(DESTDIR)/usr/bin/qubes-hcl-report
|
2017-07-06 23:37:26 +02:00
|
|
|
install -m 0755 qvm-tools/qvm-sync-clock $(DESTDIR)/usr/bin/qvm-sync-clock
|
2019-05-07 13:54:29 +02:00
|
|
|
install -m 0755 qvm-tools/qvm-console-dispvm $(DESTDIR)/usr/bin/qvm-console-dispvm
|
2017-05-23 03:24:15 +02:00
|
|
|
for method in $(ADMIN_API_METHODS_SIMPLE); do \
|
|
|
|
ln -s ../../usr/libexec/qubes/qubesd-query-fast \
|
2017-06-27 01:55:17 +02:00
|
|
|
$(DESTDIR)/etc/qubes-rpc/$$method || exit 1; \
|
2017-05-23 03:24:15 +02:00
|
|
|
done
|
2017-05-23 15:38:28 +02:00
|
|
|
install qubes-rpc/admin.vm.volume.Import $(DESTDIR)/etc/qubes-rpc/
|
2019-05-07 13:54:29 +02:00
|
|
|
install qubes-rpc/admin.vm.Console $(DESTDIR)/etc/qubes-rpc/
|
2017-06-27 01:55:17 +02:00
|
|
|
PYTHONPATH=.:test-packages qubes-rpc-policy/generate-admin-policy \
|
|
|
|
--destdir=$(DESTDIR)/etc/qubes-rpc/policy \
|
|
|
|
--exclude admin.vm.Create.AdminVM \
|
|
|
|
admin.vm.CreateInPool.AdminVM \
|
|
|
|
admin.vm.device.testclass.Attach \
|
|
|
|
admin.vm.device.testclass.Detach \
|
|
|
|
admin.vm.device.testclass.List \
|
2017-09-02 17:59:29 +02:00
|
|
|
admin.vm.device.testclass.Set.persistent \
|
2017-06-27 01:55:17 +02:00
|
|
|
admin.vm.device.testclass.Available
|
|
|
|
# sanity check
|
|
|
|
for method in $(DESTDIR)/etc/qubes-rpc/policy/admin.*; do \
|
|
|
|
ls $(DESTDIR)/etc/qubes-rpc/$$(basename $$method) >/dev/null || exit 1; \
|
2017-05-23 03:24:15 +02:00
|
|
|
done
|
|
|
|
install -d $(DESTDIR)/etc/qubes-rpc/policy/include
|
2017-06-27 01:55:17 +02:00
|
|
|
install -m 0644 qubes-rpc-policy/admin-local-ro \
|
|
|
|
qubes-rpc-policy/admin-local-rwx \
|
|
|
|
qubes-rpc-policy/admin-global-ro \
|
|
|
|
qubes-rpc-policy/admin-global-rwx \
|
2017-05-23 03:24:15 +02:00
|
|
|
$(DESTDIR)/etc/qubes-rpc/policy/include/
|
2015-10-01 22:14:35 +02:00
|
|
|
|
2013-08-02 20:27:33 +02:00
|
|
|
mkdir -p "$(DESTDIR)$(FILESDIR)"
|
2016-03-02 12:17:29 +01:00
|
|
|
cp -r templates "$(DESTDIR)$(FILESDIR)/templates"
|
|
|
|
rm -f "$(DESTDIR)$(FILESDIR)/templates/README"
|
2015-10-01 22:14:35 +02:00
|
|
|
|
2013-07-30 10:44:20 +02:00
|
|
|
mkdir -p $(DESTDIR)$(DATADIR)
|
|
|
|
mkdir -p $(DESTDIR)$(DATADIR)/vm-templates
|
|
|
|
mkdir -p $(DESTDIR)$(DATADIR)/appvms
|
|
|
|
mkdir -p $(DESTDIR)$(DATADIR)/servicevms
|
|
|
|
mkdir -p $(DESTDIR)$(DATADIR)/vm-kernels
|
|
|
|
mkdir -p $(DESTDIR)$(DATADIR)/backup
|
|
|
|
mkdir -p $(DESTDIR)$(DATADIR)/dvmdata
|
|
|
|
mkdir -p $(DESTDIR)$(STATEDIR)
|
|
|
|
mkdir -p $(DESTDIR)$(LOGDIR)
|
2013-06-15 23:14:54 +02:00
|
|
|
|
2013-09-26 22:28:37 +02:00
|
|
|
msi:
|
|
|
|
rm -rf destinstdir
|
|
|
|
mkdir -p destinstdir
|
|
|
|
$(MAKE) install \
|
|
|
|
DESTDIR=$(PWD)/destinstdir \
|
|
|
|
PYTHON_SITEPATH=/site-packages \
|
|
|
|
FILESDIR=/pfiles \
|
|
|
|
BINDIR=/bin \
|
|
|
|
DATADIR=/qubes \
|
|
|
|
STATEDIR=/qubes/state \
|
|
|
|
LOGDIR=/qubes/log
|
|
|
|
# icons placeholder
|
|
|
|
mkdir -p destinstdir/icons
|
|
|
|
for i in blue gray green yellow orange black purple red; do touch destinstdir/icons/$$i.png; done
|
|
|
|
candle -arch x64 -dversion=$(VERSION) installer.wxs
|
|
|
|
light -b destinstdir -o core-admin.msm installer.wixobj
|
|
|
|
rm -rf destinstdir
|
|
|
|
|