Whonix-ws-16-dvm ignores default DispVM template

OK. On my (up-to-date) 4.1.2 system the directory is python3.8 (not 3.11). I don’t know if that matters. Just mentioning it.

So, I added print(default_dispvm) inside on_domain_add function, properly indented, right after all the checks related to its assignment, and ran:

user@dom0:~ > qvm-run -v -q -a --service --dispvm=whonix-ws-16-dvm -- qubes.StartApp+janondisttorbrowser
Running 'qubes.StartApp+janondisttorbrowser' on $dispvm:whonix-ws-16-dvm

IOW, it doesn’t output anything. I don’t know how output is handled internally among those Python scripts but it obviously doesn’t show on CLI.

Then I tried hard coding default_dispvm and logging it by adding this at the very end of on_domain_add:

             default_dispvm = 'd12-m-dvm'
             vm.log(default_dispvm)

Even that didn’t help. The value of default_dispvm is not visible in any log either and the default dispvm is still whonix-16-ws-dvm.

Another thing which caught my attention is that this script refers to template.features. I don’t know if that “features” is the same “features” which qvm-features manipulates but it seems worth noting because qvm-features doesn’t seem able to change default_dispvm. Only qvm-create and qvm-prefs can do that and there is no “craete” or “prefs” anywhere in the Python script.

So far, the only way through which I was able to manipulate this successfully is through the bash script for creating RAM based disposables which does it through qvm-create.

Please let me know if there is a way to fix that Python stuff.

1 Like