From 7677854fd2a6a43dd587c15efcf7acb67ebe1f9b Mon Sep 17 00:00:00 2001 From: Marek Marczykowski Date: Sat, 4 Aug 2012 00:37:14 +0200 Subject: [PATCH 1/5] dom0/core: make verbose parameter of create_appmenus optional --- dom0/qvm-core/qubes.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/dom0/qvm-core/qubes.py b/dom0/qvm-core/qubes.py index 2fb702b7..26cd3972 100755 --- a/dom0/qvm-core/qubes.py +++ b/dom0/qvm-core/qubes.py @@ -1010,7 +1010,7 @@ class QubesVm(object): print >> sys.stderr, "--> Creating icon symlink: {0} -> {1}".format(self.icon_path, self.label.icon_path) os.symlink (self.label.icon_path, self.icon_path) - def create_appmenus(self, verbose, source_template = None): + def create_appmenus(self, verbose=False, source_template = None): if source_template is None: source_template = self.template @@ -1099,7 +1099,7 @@ class QubesVm(object): shutil.copy(src_vm.icon_path, self.icon_path) # Create appmenus - self.create_appmenus(verbose) + self.create_appmenus(verbose=verbose) def remove_appmenus(self): vmtype = None @@ -1642,7 +1642,7 @@ class QubesTemplateVm(QubesVm): # Create root-cow.img self.commit_changes(verbose=verbose) - def create_appmenus(self, verbose, source_template = None): + def create_appmenus(self, verbose=False, source_template = None): if source_template is None: source_template = self.template @@ -1658,7 +1658,7 @@ class QubesTemplateVm(QubesVm): self.remove_appmenus() def post_rename(self, old_name): - self.create_appmenus(False) + self.create_appmenus(verbose=False) old_dirpath = os.path.dirname(self.dir_path) + '/' + old_name self.clean_volatile_img = self.clean_volatile_img.replace(old_dirpath, self.dir_path) @@ -1896,7 +1896,7 @@ class QubesNetVm(QubesVm): self.dir_path + '/' + qubes_whitelisted_appmenus) if not self.internal: - self.create_appmenus (verbose, source_template=source_template) + self.create_appmenus (verbose=verbose, source_template=source_template) def remove_from_disk(self): if dry_run: @@ -2204,7 +2204,7 @@ class QubesAppVm(QubesVm): super(QubesAppVm, self).create_on_disk(verbose, source_template=source_template) if not self.internal: - self.create_appmenus (verbose, source_template=source_template) + self.create_appmenus (verbose=verbose, source_template=source_template) def remove_from_disk(self): if dry_run: @@ -2217,7 +2217,7 @@ class QubesAppVm(QubesVm): self.remove_appmenus() def post_rename(self, old_name): - self.create_appmenus(False) + self.create_appmenus(verbose=False) class QubesVmCollection(dict): From fa17c541af6eff1e4de80b19155afbaaa7eacb3a Mon Sep 17 00:00:00 2001 From: Marek Marczykowski Date: Sat, 4 Aug 2012 00:57:34 +0200 Subject: [PATCH 2/5] dom0: cleanup dead DispVMs at system startup (#648) --- dom0/init.d/qubes_core | 2 ++ rpm_spec/core-dom0.spec | 2 ++ 2 files changed, 4 insertions(+) diff --git a/dom0/init.d/qubes_core b/dom0/init.d/qubes_core index 870da372..76ecf582 100755 --- a/dom0/init.d/qubes_core +++ b/dom0/init.d/qubes_core @@ -30,6 +30,8 @@ start() xl sched-credit -d 0 -w 512 cp /var/lib/qubes/qubes.xml /var/lib/qubes/backup/qubes-$(date +%F-%T).xml + /usr/lib/qubes/cleanup_dispvms + /usr/lib/qubes/qmemman_daemon.py MEM_CHANGE_THRESHOLD_KB=30000 MEMINFO_DELAY_USEC=100000 diff --git a/rpm_spec/core-dom0.spec b/rpm_spec/core-dom0.spec index bc0cc918..8c60a54d 100644 --- a/rpm_spec/core-dom0.spec +++ b/rpm_spec/core-dom0.spec @@ -102,6 +102,7 @@ cp aux-tools/convert_apptemplate2vm.sh $RPM_BUILD_ROOT/usr/lib/qubes cp aux-tools/convert_dirtemplate2vm.sh $RPM_BUILD_ROOT/usr/lib/qubes cp aux-tools/create_apps_for_appvm.sh $RPM_BUILD_ROOT/usr/lib/qubes cp aux-tools/remove_appvm_appmenus.sh $RPM_BUILD_ROOT/usr/lib/qubes +cp aux-tools/cleanup_dispvms $RPM_BUILD_ROOT/usr/lib/qubes cp qmemman/server.py $RPM_BUILD_ROOT/usr/lib/qubes/qmemman_daemon.py cp ../misc/meminfo-writer $RPM_BUILD_ROOT/usr/lib/qubes/ cp ../qrexec/qrexec_daemon $RPM_BUILD_ROOT/usr/lib/qubes/ @@ -344,6 +345,7 @@ fi /usr/lib/qubes/patch_appvm_initramfs.sh /usr/lib/qubes/unbind_pci_device.sh /usr/lib/qubes/unbind_all_network_devices +/usr/lib/qubes/cleanup_dispvms /usr/lib/qubes/convert_apptemplate2vm.sh /usr/lib/qubes/convert_dirtemplate2vm.sh /usr/lib/qubes/create_apps_for_appvm.sh From e1404a2d4f1e0e43c1cdd09f1c01447902910cf3 Mon Sep 17 00:00:00 2001 From: Marek Marczykowski Date: Wed, 1 Aug 2012 01:01:37 +0200 Subject: [PATCH 3/5] dom0/qvm-run: do not break --all when run in one VM failed --- dom0/qvm-tools/qvm-run | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dom0/qvm-tools/qvm-run b/dom0/qvm-tools/qvm-run index 8292e0cd..6ed9f747 100755 --- a/dom0/qvm-tools/qvm-run +++ b/dom0/qvm-tools/qvm-run @@ -91,8 +91,8 @@ def vm_run_cmd(vm, cmd, options): if options.tray: tray_notify_error(str(err)) notify_error_qubes_manager(vm.name, str(err)) - print >> sys.stderr, "ERROR: %s" % str(err) - exit(1) + print >> sys.stderr, "ERROR(%s): %s" % (str(vm.name), str(err)) + return 1 def main(): usage = "usage: %prog [options] [] []" From 4f56cf420a8d53ffe5162f1361ea6f996b538f05 Mon Sep 17 00:00:00 2001 From: Marek Marczykowski Date: Mon, 6 Aug 2012 14:57:30 +0200 Subject: [PATCH 4/5] dom0/core: add missing "cleanup_dispvms" file (#648) --- dom0/aux-tools/cleanup_dispvms | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100755 dom0/aux-tools/cleanup_dispvms diff --git a/dom0/aux-tools/cleanup_dispvms b/dom0/aux-tools/cleanup_dispvms new file mode 100755 index 00000000..7123e2fb --- /dev/null +++ b/dom0/aux-tools/cleanup_dispvms @@ -0,0 +1,16 @@ +#!/usr/bin/python + +from qubes.qubes import QubesVmCollection + +def main(): + qvm_collection = QubesVmCollection() + qvm_collection.lock_db_for_writing() + qvm_collection.load() + for vm in qvm_collection.values(): + if vm.is_disposablevm() and not vm.is_running(): + qvm_collection.pop(vm.qid) + qvm_collection.save() + qvm_collection.unlock_db() + + +main() From 038933789d2afc83c1dca5ebf30151415e38d0ac Mon Sep 17 00:00:00 2001 From: Marek Marczykowski Date: Mon, 6 Aug 2012 14:59:10 +0200 Subject: [PATCH 5/5] vm/updates-proxy: fix regexp (#643) --- network/filter-qubes-yum | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/network/filter-qubes-yum b/network/filter-qubes-yum index ee5c777f..2e712ddf 100644 --- a/network/filter-qubes-yum +++ b/network/filter-qubes-yum @@ -1,4 +1,4 @@ -.*/repodata/[A-Za-z0-9-]*\(primary\|filelist\|comps\(-[a-z0-9]*\)\?\|other\|prestodelta\|updateinfo\)\.\(sqlite\|xml\)\(\.bz2\|\.gz\)\?$ +.*/repodata/[A-Za-z0-9-]*\(primary\|filelists\|comps\(-[a-z0-9]*\)\?\|other\|prestodelta\|updateinfo\)\.\(sqlite\|xml\)\(\.bz2\|\.gz\)\?$ .*/repodata/repomd\.xml$ .*\.rpm$ .*\.drpm$