[Whonix-devel] whonix-setup-wizard interface - status, done, skip files - was: misc qubes-whonix 11 code review

Patrick Schleizer adrelanos at riseup.net
Thu Jun 4 16:59:48 CEST 2015

Jason Mehring:
> On 06/04/2015 07:41 AM, Patrick Schleizer wrote:
> In future, I do find it useful, and maybe less confusing to provide
> comments on github.  You are able to comment at each line of code.  Not
> sure if you are interested in doing this?

I can try this. Wasn't fan of commit discussions yet. Easy to loose
track of what has been addressed and what not, since there is no list of

> Also, I will include Joanna on this reply, but not future ones.  I have
> been taught not to include her in developer speak types of conversations
> since she already receives way too much email.
> Even Marek would not need to be included until its ready for merge or we
> have some question that needs his input.


>> Also not sure it's needed at all, because if
>> - /var/cache/whonix-setup-wizard/status-files/whonixsetup.done exists +
>> - /etc/tor/torrc contains 'DisableNetwork 0',
>> then on Whonix-Gateway by Whonix / whonix-setup-wizard default, the
>> following is started anyhow:
>> 'whonix-setup-wizard setup'
> I don't understand this point.  The current whonix-setup-wizard is
> over-ridden and runs manually in qubes-whonixsetup when needed.  This is
> something that may be able to be re-enabled due to recent improvements
> of whonix-setup-wizard.  As you can already see I have managed to remove
> most manual depends within that file.

Trying to address thise below.

>>>     # Repository setup should only be run in template
>>>     if [ ! -e /var/cache/whonix-setup-wizard/status-files/whonix_repository.done ]; then
>>>         sudo touch /var/cache/whonix-setup-wizard/status-files/whonix_repository.done
>>>     fi
>> Drop sudo? Runs as root anyhow?
>> Any reason for not
>> '/var/cache/whonix-setup-wizard/status-files/whonix_repository.done' ->
>> '/var/cache/whonix-setup-wizard/status-files/whonix_repository.skip'?
> I can't remember off hand.  At some point I had issues with whonixsetup
> not running unless certain status-files existed.

Report upstream. We're quick to fix those.

>> Also rather than 'touch
>> /var/cache/whonix-setup-wizard/status-files/whonix_repository.skip' I
>> think it would be best just ship the file
>> var/cache/whonix-setup-wizard/status-files/whonix_repository.skip in the
>> package.
>> From usr/lib/qubes-whonix/qubes-whonixsetup you would still be able to
>> run /usr/bin/whonix-setup-wizard repository as you're doing now. [No
>> modification of usr/lib/qubes-whonix/qubes-whonixsetup required for this.]
> There is a good reason for using 'touch' :)  If I provide that in the
> package, the setting gets written to the TemplateVM and then the
> TemplateVM will have the setting which means a user would not be
> prompted to enable repo ever.  This setting is only set in the AppVM and
> when set only persists in the AppVM and therefore can not be set in the
> package.

I think we're starting to overload use cases for status files. Needing
to use 'touch' is a bit weird.

This whole whonix-setup-wizard thing - when to show which wizard page vs
skip / done status files vs runs in Qubes vs Qubes-Whonix - seems to
cause great confusion. At least on my side. Maybe let's try to
define/refactor a better whonix-setup-wizard interface so it can lead to
a clean, hack-free solution.

Before we start, can you please help fill out this table which pages we
want to show in Qubes-Whonix and which not?


Please try to eliminate all the '?' (as in very unsure how to handle
this) on https://www.whonix.org/wiki/Dev/whonixsetup.

It tried to define the supposed functionality of a skip / done file.
Feel free to rewrite these and/or to state any other requirements you
have for (not) starting whonix-setup-wizard page(s).

The problem is, the 'setup' argument, 'whonix-setup-wizard setup' is too

I think the "need to 'touch' that file so whonix-setup-wizard does [not]
show the repository page" could maybe avoided by a separate
'whonix-setup-wizard connection_page' command.

The 'setup' is more like "autostart logic, decide what still needs to be
answered by the user". What you want/need for Qubes-Whonix is more like
start 'whonix-setup-wizard connection_page', really, now?

I would like to modify whonix-setup-wizard so the qubes-whonix package
requires only a very few single lines to start whatever page you need in
whatever situation. https://www.whonix.org/wiki/Dev/whonixsetup is
supposed to be a collaboratively written proposal before implementing
these changes.


More information about the Whonix-devel mailing list