[graphical gui] Whonix Setup Wizard / Anon Connection Wizard - Technical Discussion

It can not be reproduced when starting Tor with command: tor rather than systemd.

I will do a further investigation on it.

1 Like

All the try/except blocks could use a catch-all exception at the end to handle unforeseen issues causing crashes.

except:
    print "Unexpected error:", sys.exc_info()[0]

(Not just print to console, also showing the error in the gui window to make debugging easier. Initially first perhaps verbatim, later perhaps with a “debugging information” drop-down button.)

1 Like

https://github.com/Whonix/whonix-setup-wizard/pull/4

  1. replace connection page with anon-connection-wizard
  2. Remove FinishPage
  3. Remove unused variables and logics
  4. Avoid showing up empty page
1 Like

Currently, there are three options use in whonix-setup-wizard: setup, repository, locale_settings.

Shall we run whonixcheck after the GUI configurations for each option? Specifically, does it make sense to run whonixcheck even after user simply change locale_settings?

1 Like

TODO for whonix-setup-wizard:

  1. better man and help page
  2. autocompletion for different command line arguments
1 Like

For long term, separate locale_settings into a standalone application.

( Hi @troubadour ! Are you interested in implementing this?! )

This may be good for Whonix internationalization in the future.

1 Like

iry:

Currently, there are three options use in whonix-setup-wizard: setup, repository, locale_settings.

Shall we run whonixcheck after the GUI configurations for each option?

No. Only useful after setup.

Any maybe after repository? (Due to whonixcheck apt-get update check?)

Specifically, does it make sense to run whonixcheck even after user simply change locale_settings?

I don’t see how this makes sense.

1 Like

It looks like anon-connection-wizard is broken in the last Whonix update.
At line 1456, there is a f.write('\n') which crash the script when pressing the Next button.

Yes, why not. But this might be really long term.

2 Likes

Possible Whonix 14 blocker:

After https://github.com/Whonix/whonix-setup-wizard/pull/4 do we now effectively auto start whonixcheck unconditionally at first boot through whonix-setup-wizard?

  • This very very much unwanted by Qubes for Whonix-Workstation by Joanna. (Too many popups.)
  • Also in Non-Qubes-Whonix we shouldn’t introduce autostart of whonixcheck in Whonix-Workstation through whonix-setup-wizard (wsw).

Minor:

https://github.com/Whonix/whonix-setup-wizard/commit/497c4aaa3f438fedf1778e10aa70a4fc4c5f75b3

1 Like

from whonix_setup_wizard.tor_status import tor_status is a bug.

Untested fix.

https://github.com/Whonix/whonix-setup-wizard/commit/d61cbd76eb17c74011e41d24608ca09a2b5543dd

Please review. This may or may not also be the cause of not auto-starting acw on gateway at first boot.

        if (tor_status == 'tor_disabled' or tor_status == 'no_torrc'
or tor_status == 'bad_torrc'):

Would if not tor_status == 'tor_enabled' make sense?

We should probably remove if not whonix_setup_wizard == "":? If whonix-setup-wizard binary is no where to be found but the whonixsetup_check_for_start (same package) script is running, we should probably error out with a unhandled python exception rather than doing nothing?

Please review.

https://github.com/Whonix/whonix-setup-wizard/commit/9f897a781fd20c0d6a08121ac2fa8d2bd0f82a8c

    else:
        command = '/usr/lib/whonixsetup_cli_start_maybe'
        call(command, shell = True)

Seems wrong. Outdated. Will remove.

(Up to package whonixsetup file /etc/profile.d/30_setup.sh.)

1 Like

Addresses some of above points. Please review https://github.com/Whonix/whonix-setup-wizard/blob/master/usr/lib/whonix-setup-wizard/whonixsetup_check_for_start.

Currently https://github.com/Whonix/whonix-setup-wizard/blob/master/usr/lib/whonix-setup-wizard/whonixsetup_check_for_start does not auto start acw if Tor is enabled in Tor config but Tor’s systemd unit failed to start for some reason. This is because tor_status reports tor_enabled. (And likely tor_status should not look into systemd state?)

Where would the “is Tor’s systemd unit running” code fit best? (In essence running systemctl --no-pager status tor@default and checking exit code?) A new importable function in tor_status.py? Or should be just implemented in whonixsetup_check_for_start?

Implemented this as comment only in whonixsetup_check_for_start. Too complex/late for Whonix 15 since this might result in false positives. See TODO (which is not easy to resolve).

( Similar to ⚓ T424 fix /etc/xdg/autostart vs systemd race condition )

https://github.com/Whonix/whonix-setup-wizard/commit/cf1d3dbd16767e8d4fb5531b5f525099491fd9e2

Done:

https://github.com/Whonix/whonix-setup-wizard/pull/5

1 Like

Thank you so reporting this! It has been fixed. :slight_smile:

1 Like

Sounds great! I am looking forward to that! :slight_smile:

1 Like