Qubes DispVM technical discussion

Wow, what a mess. I started writing wiki. You never realize how messy something is until you have to explain it to someone else…

  1. I think proper term for dvm is savefile but I’d like to just call it a “dispVM template” because people have a better idea what a template is - this is nothing like any savefile that most people are used to. Although “templateVM” and “dispVM template” could be confusing also.

  2. If /home/user/.qubes-dispvm-customized is present, does that mean that any file that is different from the underlying templateVM will be preserved? Or only files in certain directories? If the templateVM gets a package update that changes a file that has been customized by the user, which version will it keep?

  3. I just realized I’m making guesses on some things I’ve written because I can’t test them myself without disrupting my own dispVM template. I actually only know one way to update Tor Browser in a dispVM - the way I do it. launch torbrowser in dvm-template, use tb internal updater, then qvm-create-default-dvm. I need to know what happens in the following situation:

~ user creates new dispVM template.
~ first-boot-home-population will copy TBB to /home/user/.tb
~ and touch first-boot-home-population.done
~ the .done file is inherited by new dispVMs so TBB is not copied for each individual dispVM

~ now new version of TBB is released and tb-updater is updated in whonix-ws
~ but no changes will be made to dispVM template

~ now user runs qvm-create-default-dvm whonix-ws
~ since .qubes-dispvm-customized is not present, the existing TBB & .done file are discarded and a new dispVM template is created
~ repeat from the top and new dispVM template has new TBB

Correct?

And this doesn’t work for users that have customized dispVM template, because the .done file persists and whonix-ws will not copy over the new TBB.