KVM 14.0.1.1.7 Testing

Positive:
*/etc/resolv.conf matches the ip in last stable version: 10.152.152.10
*Apt functions normally
*/var/libdpkg/available is present
*Browser connects and IP/DNS leaktests pass
*nslookup and dig return expected results.

Bugs:
whonixcheck (and its leaktest) no longer starts. PAM module restriction error.


@Patrick have you discovered anything serious between that version and the Qubes release that needed patching? If not I’ll remove the warning.

1 Like

Not there yet.

Could be quite be serious. Could be something that is not fixable or too difficult to fix by package upgrades.

Easier to just trash this one and build a newer version.

What dev version is Qubes-Whonix 14 (4.0.1-201901231238) based on? Does whonixcheck work normally there?

1 Like

Not fixed in newer version. Cause unknown so can’t fix.

None. It’s build using Qubes Builder / GitHub - Whonix/qubes-template-whonix: https://www.whonix.org/wiki/Imprint. Not using Whonix build script. It’s build from Whonix repository stretch-proposed-updates.

Yes.

Is using something like strace any good?

1 Like

No.

Here is the Bash -x output for whonixcheck. Unfortunately the terminal truncates the log if it gets too big. The GUI instance does not show up at all and running from the commandline gives:

 root@host:/home/user# whonixcheck
 sudo: pam_open_session: Module is unknown
 sudo: policy plugin failed session initialization
 root@host:/home/user# 


What do you make of this debug log? Is it actually working?

 ++ '[' install = '' ']'
 ++ for unwanted_package in $whonixcheck_unwanted_package
 +++ dpkg-query --show '--showformat=${Status}\n' canonical-census
 ++ dpkg_query_result=
 ++ true
 ++ read -r first _
 ++ '[' install = '' ']'
 ++ for unwanted_package in $whonixcheck_unwanted_package
 +++ dpkg-query --show '--showformat=${Status}\n' unity-lens-shopping
 ++ dpkg_query_result=
 ++ true
 ++ read -r first _
 ++ '[' install = '' ']'
 ++ for unwanted_package in $whonixcheck_unwanted_package
 +++ dpkg-query --show '--showformat=${Status}\n' unity-scope-video-remote
 ++ dpkg_query_result=
 ++ true
 ++ read -r first _
 ++ '[' install = '' ']'
 ++ for unwanted_package in $whonixcheck_unwanted_package
 +++ dpkg-query --show '--showformat=${Status}\n' unity-scope-musicstores
 ++ dpkg_query_result=
 ++ true
 ++ read -r first _
 ++ '[' install = '' ']'
 ++ for unwanted_package in $whonixcheck_unwanted_package
 +++ dpkg-query --show '--showformat=${Status}\n' bts
 ++ dpkg_query_result=
 ++ true
 ++ read -r first _
 ++ '[' install = '' ']'
 ++ for unwanted_package in $whonixcheck_unwanted_package
 +++ dpkg-query --show '--showformat=${Status}\n' wnpp-check
 ++ dpkg_query_result=
 ++ true
 ++ read -r first _
 ++ '[' install = '' ']'
 ++ for unwanted_package in $whonixcheck_unwanted_package
 +++ dpkg-query --show '--showformat=${Status}\n' python-pip
 ++ dpkg_query_result=
 ++ true
 ++ read -r first _
 ++ '[' install = '' ']'
 ++ for unwanted_package in $whonixcheck_unwanted_package
 +++ dpkg-query --show '--showformat=${Status}\n' gnome-calculator
 ++ dpkg_query_result=
 ++ true
 ++ read -r first _
 ++ '[' install = '' ']'
 ++ for unwanted_package in $whonixcheck_unwanted_package
 +++ dpkg-query --show '--showformat=${Status}\n' chrony
 ++ dpkg_query_result=
 ++ true
 ++ read -r first _
 ++ '[' install = '' ']'
 ++ for unwanted_package in $whonixcheck_unwanted_package
 +++ dpkg-query --show '--showformat=${Status}\n' ntp
 ++ dpkg_query_result=
 ++ true
 ++ read -r first _
 ++ '[' install = '' ']'
 ++ for unwanted_package in $whonixcheck_unwanted_package
 +++ dpkg-query --show '--showformat=${Status}\n' ntpdate
 ++ dpkg_query_result=
 ++ true
 ++ read -r first _
 ++ '[' install = '' ']'
 ++ for unwanted_package in $whonixcheck_unwanted_package
 +++ dpkg-query --show '--showformat=${Status}\n' unattended-upgrades
 ++ dpkg_query_result=
 ++ true
 ++ read -r first _
 ++ '[' install = '' ']'
 ++ for unwanted_package in $whonixcheck_unwanted_package
 +++ dpkg-query --show '--showformat=${Status}\n' kdeconnect
 ++ dpkg_query_result=
 ++ true
 ++ read -r first _
 ++ '[' install = '' ']'
 ++ '[' 0 = 0 ']'
 ++ local 'MSG=<pWhonix Unwanted Packages Test Result: None found.</p'
 ++ '[' 0 -ge 1 ']'
 ++ return 0
 + whonixcheck_progress_main 1
 + '[' '' = '' ']'
 + PROGRESS_MAIN=0
 + local increment
 + increment=1
 + PROGRESS_MAIN=1
 + whonixcheck_move_progress_bar_to_percent 1
 + '[' 0 -ge 3 ']'
 + true --progressbaridx 32b7ccbd-b490-4795-bca9-c2efb73e27d6 --progressx 1
 + whonixcheck_run_function check_initializer
 + case $whonixcheck_skip_functions in
 + true 'INFO: Running check_initializer, because whonixcheck_skip_functions does not include it.'
 + eval check_initializer
 ++ check_initializer
 ++ local log_file start_file done_file done_file_compatiblity skip_file todo_file fail_file
 ++ log_file=/var/lib/whonix-initializer/status-files/first_run_initializer.log
 ++ start_file=/var/lib/whonix-initializer/status-files/first_run_initializer.start
 ++ done_file=/var/lib/whonix-initializer/status-files/first_run_initializer.done
 ++ done_file_compatiblity=/root/.whonix/first_run_initializer.done
 ++ skip_file=/var/lib/whonix-initializer/status-files/first_run_initializer.skip
 ++ todo_file=/var/lib/whonix-initializer/status-files/first_run_initializer.todo
 ++ fail_file=/var/lib/whonix-initializer/status-files/first_run_initializer.fail
 ++ '[' -f /var/lib/whonix-initializer/status-files/first_run_initializer.fail ']'
 ++ '[' 0 -ge 1 ']'
 + whonixcheck_progress_main 1
 + '[' 1 = '' ']'
 + local increment
 + increment=1
 + PROGRESS_MAIN=2
 + whonixcheck_move_progress_bar_to_percent 2
 + '[' 0 -ge 3 ']'
 + true --progressbaridx 32b7ccbd-b490-4795-bca9-c2efb73e27d6 --progressx 2
 + whonixcheck_run_function check_virtualizer
 + case $whonixcheck_skip_functions in
 + true 'INFO: Running check_virtualizer, because whonixcheck_skip_functions does not include it.'
 + eval check_virtualizer
 ++ check_virtualizer
 ++ '[' -n '' ']'
 ++ whonixcheck_virt_detection_tool=systemd-detect-virt
 ++ command -v systemd-detect-virt
 +++ systemd-detect-virt
 ++ whonixcheck_virtualizer_detected=qemu
 ++ local 'MSG=<pCheck Virtualizer Result (debug): qubes_detected: <ufalse</u, continuing.</p'
 ++ '[' 0 -ge 1 ']'
 ++ '[' qemu = '' ']'
 ++ '[' qemu = none ']'
 ++ '[' qemu = oracle ']'
 ++ '[' qemu = kvm ']'
 ++ '[' qemu = qemu ']'
 ++ local 'MSG=<pCheck Virtualizer Result: Supported Virtualizer <uqemu</u (KVM?) detected, continuing.
 <br</brsystemd-detect-virt result: <codeqemu</code</p'
 ++ '[' 0 -ge 1 ']'
 ++ return 0
 + whonixcheck_progress_main 1
 + '[' 2 = '' ']'
 + local increment
 + increment=1
 + PROGRESS_MAIN=3
 + whonixcheck_move_progress_bar_to_percent 3
 + '[' 0 -ge 3 ']'
 + true --progressbaridx 32b7ccbd-b490-4795-bca9-c2efb73e27d6 --progressx 3
 + whonixcheck_run_function check_pvclock
 + case $whonixcheck_skip_functions in
 + true 'INFO: Running check_pvclock, because whonixcheck_skip_functions does not include it.'
 + eval check_pvclock
 ++ check_pvclock
 ++ '[' -f /var/run/qubes-whonix/qubes.SetDateTime ']'
 ++ '[' '!' -f /sys/devices/system/clocksource/clocksource0/current_clocksource ']'
 ++ local current_clocksource available_clocksource
 +++ cat /sys/devices/system/clocksource/clocksource0/current_clocksource
 ++ current_clocksource=tsc
 +++ cat /sys/devices/system/clocksource/clocksource0/available_clocksource
 ++ available_clocksource='tsc acpi_pm '
 ++ '[' tsc = xen ']'
 ++ '[' qemu = kvm ']'
 ++ local 'MSG=<pPVClock Result: <code/sys/devices/system/clocksource/clocksource0/current_clocksource</code exist, is <codetsc</code.</p'
 ++ '[' 0 -ge 1 ']'
 ++ return 0
 + whonixcheck_progress_main 1
 + '[' 3 = '' ']'
 + local increment
 + increment=1
 + PROGRESS_MAIN=4
 + whonixcheck_move_progress_bar_to_percent 4
 + '[' 0 -ge 3 ']'
 + true --progressbaridx 32b7ccbd-b490-4795-bca9-c2efb73e27d6 --progressx 4
 + whonixcheck_run_function check_timezone
 + case $whonixcheck_skip_functions in
 + true 'INFO: Running check_timezone, because whonixcheck_skip_functions does not include it.'
 + eval check_timezone
 ++ check_timezone
 ++ local timezone_file_location timezone_file_expected_content timezone_file_actual_content timezone_status_code timezone_check_result
 ++ local localtime_file_etc localtime_result localtime_status_code
 ++ timezone_check_result=true
 ++ timezone_status_code=0
 ++ timezone_file_location=/etc/timezone
 ++ timezone_file_expected_content=Etc/UTC
 ++ localtime_status_code=0
 ++ localtime_file_etc=/etc/localtime
 ++ localtime_file_usr=/usr/share/zoneinfo/Etc/UTC
 ++ '[' -f /etc/timezone ']'
 +++ cat /etc/timezone
 ++ timezone_file_actual_content=Etc/UTC
 ++ '[' Etc/UTC = Etc/UTC ']'
 ++ local 'MSG=<pCheck Timezone Result: <code/etc/timezone</code, <codeEtc/UTC</code matches <codeEtc/UTC</code, ok.</p'
 ++ '[' 0 -ge 1 ']'
 ++ '[' '!' 0 = 0 ']'
 ++ '[' -f /etc/localtime ']'
 ++ '[' -f /usr/share/zoneinfo/Etc/UTC ']'
 +++ diff /usr/share/zoneinfo/Etc/UTC /etc/localtime
 ++ localtime_result=
 ++ '[' 0 = 0 ']'
 ++ local 'MSG=<pCheck Timezone Result: <code/usr/share/zoneinfo/Etc/UTC</code matches <code/etc/localtime</code, ok.</p'
 ++ '[' 0 -ge 1 ']'
 ++ '[' '!' 0 = 0 ']'
 ++ '[' true = false ']'
 + whonixcheck_progress_main 1
 + '[' 4 = '' ']'
 + local increment
 + increment=1
 + PROGRESS_MAIN=5
 + whonixcheck_move_progress_bar_to_percent 5
 + '[' 0 -ge 3 ']'
 + true --progressbaridx 32b7ccbd-b490-4795-bca9-c2efb73e27d6 --progressx 5
 + whonixcheck_run_function check_ip_forwarding_disabled
 + case $whonixcheck_skip_functions in
 + true 'INFO: Running check_ip_forwarding_disabled, because whonixcheck_skip_functions does not include it.'
 + eval check_ip_forwarding_disabled
 ++ check_ip_forwarding_disabled
 ++ '[' '!' -f /usr/share/anon-gw-base-files/gateway ']'
 ++ local 'MSG=<pIP Forwarding Result: not running on Whonix-Gatway, skipping, ok.</p'
 ++ '[' 0 -ge 1 ']'
 ++ return 0
 + whonixcheck_progress_main 1
 + '[' 5 = '' ']'
 + local increment
 + increment=1
 + PROGRESS_MAIN=6
 + whonixcheck_move_progress_bar_to_percent 6
 + '[' 0 -ge 3 ']'
 + true --progressbaridx 32b7ccbd-b490-4795-bca9-c2efb73e27d6 --progressx 6
 + whonixcheck_run_function disclaimer
 + case $whonixcheck_skip_functions in
 + true 'INFO: Running disclaimer, because whonixcheck_skip_functions does not include it.'
 + eval disclaimer
 ++ disclaimer
 ++ '[' false = true ']'
 ++ '[' 0 -ge 1 ']'
 ++ '[' 0 = 1 ']'
 ++ local 'MSG=<pWhonix is produced independently of, with no guarantee from, The Tor Project. Whonix is experimental software. Do not rely on it for strong anonymity. <a href=https://www.whonix.orghttps://www.whonix.org</a</p'
 ++ true --messagex --typex info --message '<pWhonix is produced independently of, with no guarantee from, The Tor Project. Whonix is experimental software. Do not rely on it for strong anonymity. <a href=https://www.whonix.orghttps://www.whonix.org</a</p'
 ++ output_func_cli --messagecli --typecli info --message '<pWhonix is produced independently of, with no guarantee from, The Tor Project. Whonix is experimental software. Do not rely on it for strong anonymity. <a href=https://www.whonix.orghttps://www.whonix.org</a</p'
 ++ '[' '' = true ']'
 ++ true 'output_func_cli: injecting --onlyecho.'
 ++ output_func --onlyecho --messagecli --typecli info --message '<pWhonix is produced independently of, with no guarantee from, The Tor Project. Whonix is experimental software. Do not rely on it for strong anonymity. <a href=https://www.whonix.orghttps://www.whonix.org</a</p'
 ++ '[' -n user ']'
 ++ '[' '' = true ']'
 ++ /usr/lib/msgcollector/msgcollector --identifier whonixcheck --whoami user --onlyecho --messagecli --typecli info --message '<pWhonix is produced independently of, with no guarantee from, The Tor Project. Whonix is experimental software. Do not rely on it for strong anonymity. <a href=https://www.whonix.orghttps://www.whonix.org</a</p'
 [INFO] [whonixcheck] Whonix is produced independently of, with no guarantee from, The Tor Project. Whonix is experimental software. Do not rely on it for strong anonymity. https://www.whonix.org
 ++ return 0
 + whonixcheck_progress_main 1
 + '[' 6 = '' ']'
 + local increment
 + increment=1
 + PROGRESS_MAIN=7
 + whonixcheck_move_progress_bar_to_percent 7
 + '[' 0 -ge 3 ']'
 + true --progressbaridx 32b7ccbd-b490-4795-bca9-c2efb73e27d6 --progressx 7
 + whonixcheck_run_function check_logs
 + case $whonixcheck_skip_functions in
 + true 'INFO: Running check_logs, because whonixcheck_skip_functions does not include it.'
 + eval check_logs
 ++ check_logs
 ++ '[' '!' 0 -ge 1 ']'
 ++ true 'Skipping check_logs, because variable verbose is not set to 1.'
 ++ return 0
 + whonixcheck_progress_main 1
 + '[' 7 = '' ']'
 + local increment
 + increment=1
 + PROGRESS_MAIN=8
 + whonixcheck_move_progress_bar_to_percent 8
 + '[' 0 -ge 3 ']'
 + true --progressbaridx 32b7ccbd-b490-4795-bca9-c2efb73e27d6 --progressx 8
 + whonixcheck_run_function check_hostname
 + case $whonixcheck_skip_functions in
 + true 'INFO: Running check_hostname, because whonixcheck_skip_functions does not include it.'
 + eval check_hostname
 ++ check_hostname
 ++ local hostname_exit_code_was_non_zero=false
 ++ local hostname_discouraged_setting_detected=false
 ++ local hostname_exit_code=0
 +++ hostname --fqdn
 ++ hostname_fqdn_output=host.localdomain
 ++ '[' '!' 0 = 0 ']'
 ++ '[' host.localdomain = host.localdomain ']'
 ++ local 'MSG=<pCheck Hostname Result: "hostname --fqdn" output is "host.localdomain", ok.</p'
 ++ '[' 0 -ge 1 ']'
 ++ local hostname_exit_code=0
 +++ hostname
 ++ hostname_output=host
 ++ '[' '!' 0 = 0 ']'
 ++ '[' host = host ']'
 ++ local 'MSG=<pCheck Hostname Result: "hostname" output is "host", ok.</p'
 ++ '[' 0 -ge 1 ']'
 ++ local hostname_exit_code=0
 +++ hostname --ip-address
 ++ hostname_ip_address_output=127.0.0.1
 ++ '[' '!' 0 = 0 ']'
 ++ '[' 127.0.0.1 = 127.0.0.1 ']'
 ++ local 'MSG=<pCheck Hostname Result: "hostname --ip-address" output is "127.0.0.1", ok.</p'
 ++ '[' 0 -ge 1 ']'
 ++ local hostname_exit_code=0
 +++ hostname --domain
 ++ hostname_domain_output=localdomain
 ++ '[' '!' 0 = 0 ']'
 ++ '[' localdomain = localdomain ']'
 ++ local 'MSG=<pCheck Hostname Result: "hostname --ip-address" output is "localdomain", ok.</p'
 ++ '[' 0 -ge 1 ']'
 ++ '[' false = true ']'
 ++ '[' false = true ']'
 + whonixcheck_progress_main 1
 + '[' 8 = '' ']'
 + local increment
 + increment=1
 + PROGRESS_MAIN=9
 + whonixcheck_move_progress_bar_to_percent 9
 + '[' 0 -ge 3 ']'
 + true --progressbaridx 32b7ccbd-b490-4795-bca9-c2efb73e27d6 --progressx 9
 + whonixcheck_run_function check_entropy
 + case $whonixcheck_skip_functions in
 + true 'INFO: Running check_entropy, because whonixcheck_skip_functions does not include it.'
 + eval check_entropy
 ++ check_entropy
 ++ local entropy_file entropy_size
 ++ entropy_file=/proc/sys/kernel/random/entropy_avail
 +++ cat /proc/sys/kernel/random/entropy_avail
 ++ entropy_size=1176
 ++ '[' 1176 -lt 112 ']'
 ++ local 'MSG=<pEntropy Available Check Result: ok. <code/proc/sys/kernel/random/entropy_avail</code: <code1176</code</p'
 ++ '[' 0 -ge 1 ']'
 + whonixcheck_progress_main 1
 + '[' 9 = '' ']'
 + local increment
 + increment=1
 + PROGRESS_MAIN=10
 + whonixcheck_move_progress_bar_to_percent 10
 + '[' 0 -ge 3 ']'
 + true --progressbaridx 32b7ccbd-b490-4795-bca9-c2efb73e27d6 --progressx 10
 + whonixcheck_run_function check_nonfree
 + case $whonixcheck_skip_functions in
 + true 'INFO: Running check_nonfree, because whonixcheck_skip_functions does not include it.'
 + eval check_nonfree
 ++ check_nonfree
 ++ local vrms_output vrms_result line expected_package check_nonfree_result continue
 +++ vrms
 ++ vrms_output='
 No non-free or contrib packages installed on host!  rms would be proud.'
 +++ /usr/lib/msgcollector/br_add '
 No non-free or contrib packages installed on host!  rms would be proud.'
 ++ vrms_output='<br /
 No non-free or contrib packages installed on host!  rms would be proud.'
 +++ vrms --quiet --sparse
 ++ vrms_result=
 ++ check_nonfree_result=free
 ++ local 'nonfreelink=<a href=https://www.whonix.org/wiki/Avoid_nonfree_softwarehttps://www.whonix.org/wiki/Avoid_nonfree_software</a'
 ++ '[' free = free ']'
 ++ local 'MSG=<pCheck nonfree Result: Ok, no nonfree packages found. For more information, see:
 <br /<a href=https://www.whonix.org/wiki/Avoid_nonfree_softwarehttps://www.whonix.org/wiki/Avoid_nonfree_software</a</p'
 ++ '[' 0 -ge 1 ']'
 + whonixcheck_progress_main 1
 + '[' 10 = '' ']'
 + local increment
 + increment=1
 + PROGRESS_MAIN=11
 + whonixcheck_move_progress_bar_to_percent 11
 + '[' 0 -ge 3 ']'
 + true --progressbaridx 32b7ccbd-b490-4795-bca9-c2efb73e27d6 --progressx 11
 + whonixcheck_run_function check_whonix_apt_repository
 + case $whonixcheck_skip_functions in
 + true 'INFO: Running check_whonix_apt_repository, because whonixcheck_skip_functions does not include it.'
 + eval check_whonix_apt_repository
 ++ check_whonix_apt_repository
 ++ '[' 0 -ge 4 ']'
 ++ local 'temp_x_tool=<blockquoteStart Menu - Applications - System - Whonix Repository</blockquote'
 ++ local 'temp_cli_tool=<code<blockquotesudo whonix_repository</blockquote</code'
 ++ local 'temp_base_msg_enabled=<pWhonix APT Repository: Enabled.
 When the Whonix team releases STRETCH updates,
 they will be AUTOMATICALLY installed (when you run apt-get dist-upgrade)
 along with updated packages from the Debian team. Please
 read <a href=https://www.whonix.org/wiki/Trusthttps://www.whonix.org/wiki/Trust</a to understand the risk.
 If you want to change this, use:</p'
 ++ local 'temp_base_msg_disabled=<pWhonix APT Repository: Disabled.
 When the Whonix team releases an update, it will be NOT be installed.
 Please read <a href=https://www.whonix.org/wiki/Trusthttps://www.whonix.org/wiki/Trust</a to understand the risk.
 You will still be notified when updated Whonix packages are released by
 whonixcheck'\''s Whonix News. You are free to manually update from source code.
 If you want to change this, use:</p'
 ++ '[' -f /etc/apt/sources.list.d/whonix.list ']'
 ++ local 'MSG=<pWhonix APT Repository: Enabled.
 When the Whonix team releases STRETCH updates,
 they will be AUTOMATICALLY installed (when you run apt-get dist-upgrade)
 along with updated packages from the Debian team. Please
 read <a href=https://www.whonix.org/wiki/Trusthttps://www.whonix.org/wiki/Trust</a to understand the risk.
 If you want to change this, use:</p
     <blockquoteStart Menu - Applications - System - Whonix Repository</blockquote'
 ++ '[' 0 -ge 3 ']'
 ++ true --messagex --typex info --message '<pWhonix APT Repository: Enabled.
 When the Whonix team releases STRETCH updates,
 they will be AUTOMATICALLY installed (when you run apt-get dist-upgrade)
 along with updated packages from the Debian team. Please
 read <a href=https://www.whonix.org/wiki/Trusthttps://www.whonix.org/wiki/Trust</a to understand the risk.
 If you want to change this, use:</p
     <blockquoteStart Menu - Applications - System - Whonix Repository</blockquote'
 ++ '[' -f /etc/apt/sources.list.d/whonix.list ']'
 ++ local 'MSG=<pWhonix APT Repository: Enabled.
 When the Whonix team releases STRETCH updates,
 they will be AUTOMATICALLY installed (when you run apt-get dist-upgrade)
 along with updated packages from the Debian team. Please
 read <a href=https://www.whonix.org/wiki/Trusthttps://www.whonix.org/wiki/Trust</a to understand the risk.
 If you want to change this, use:</p
     <code<blockquotesudo whonix_repository</blockquote</code'
 ++ output_func_cli --messagecli --typecli info --message '<pWhonix APT Repository: Enabled.
 When the Whonix team releases STRETCH updates,
 they will be AUTOMATICALLY installed (when you run apt-get dist-upgrade)
 along with updated packages from the Debian team. Please
 read <a href=https://www.whonix.org/wiki/Trusthttps://www.whonix.org/wiki/Trust</a to understand the risk.
 If you want to change this, use:</p
     <code<blockquotesudo whonix_repository</blockquote</code'
 ++ '[' '' = true ']'
 ++ true 'output_func_cli: injecting --onlyecho.'
 ++ output_func --onlyecho --messagecli --typecli info --message '<pWhonix APT Repository: Enabled.
 When the Whonix team releases STRETCH updates,
 they will be AUTOMATICALLY installed (when you run apt-get dist-upgrade)
 along with updated packages from the Debian team. Please
 read <a href=https://www.whonix.org/wiki/Trusthttps://www.whonix.org/wiki/Trust</a to understand the risk.
 If you want to change this, use:</p
     <code<blockquotesudo whonix_repository</blockquote</code'
 ++ '[' -n user ']'
 ++ '[' '' = true ']'
 ++ /usr/lib/msgcollector/msgcollector --identifier whonixcheck --whoami user --onlyecho --messagecli --typecli info --message '<pWhonix APT Repository: Enabled.
 When the Whonix team releases STRETCH updates,
 they will be AUTOMATICALLY installed (when you run apt-get dist-upgrade)
 along with updated packages from the Debian team. Please
 read <a href=https://www.whonix.org/wiki/Trusthttps://www.whonix.org/wiki/Trust</a to understand the risk.
 If you want to change this, use:</p
     <code<blockquotesudo whonix_repository</blockquote</code'
 [INFO] [whonixcheck] Whonix APT Repository: Enabled.
 When the Whonix team releases STRETCH updates,
 they will be AUTOMATICALLY installed (when you run apt-get dist-upgrade)
 along with updated packages from the Debian team. Please
 read https://www.whonix.org/wiki/Trust to understand the risk.
 If you want to change this, use:
     sudo whonix_repository
 ++ return 0
 + whonixcheck_progress_main 1
 + '[' 11 = '' ']'
 + local increment
 + increment=1
 + PROGRESS_MAIN=12
 + whonixcheck_move_progress_bar_to_percent 12
 + '[' 0 -ge 3 ']'
 + true --progressbaridx 32b7ccbd-b490-4795-bca9-c2efb73e27d6 --progressx 12
 + whonixcheck_run_function check_qubes_update_proxy
 + case $whonixcheck_skip_functions in
 + true 'INFO: Running check_qubes_update_proxy, because whonixcheck_skip_functions does not include it.'
 + eval check_qubes_update_proxy
 ++ check_qubes_update_proxy
 ++ '[' '!' 0 -ge 1 ']'
 ++ return 0
 + whonixcheck_progress_main 3
 + '[' 12 = '' ']'
 + local increment
 + increment=3
 + PROGRESS_MAIN=15
 + whonixcheck_move_progress_bar_to_percent 15
 + '[' 0 -ge 3 ']'
 + true --progressbaridx 32b7ccbd-b490-4795-bca9-c2efb73e27d6 --progressx 15
 + whonixcheck_run_function check_tor_socks_port
 + case $whonixcheck_skip_functions in
 + true 'INFO: Running check_tor_socks_port, because whonixcheck_skip_functions does not include it.'
 + eval check_tor_socks_port
 ++ check_tor_socks_port
 ++ check_tor_socks_or_trans_port SocksPort
 ++ '[' '!' '' = true ']'
 ++ local 'MSG=<pcheck_tor_socks_or_trans_port SocksPort: Skipped, because not using <code--leak-tests</code (<code--show-ip</code), ok.</p'
 ++ '[' 0 -ge 1 ']'
 ++ return 0
 + whonixcheck_progress_main 15
 + '[' 15 = '' ']'
 + local increment
 + increment=15
 + PROGRESS_MAIN=30
 + whonixcheck_move_progress_bar_to_percent 30
 + '[' 0 -ge 3 ']'
 + true --progressbaridx 32b7ccbd-b490-4795-bca9-c2efb73e27d6 --progressx 30
 + whonixcheck_run_function check_tor_trans_port
 + case $whonixcheck_skip_functions in
 + true 'INFO: Running check_tor_trans_port, because whonixcheck_skip_functions does not include it.'
 + eval check_tor_trans_port
 ++ check_tor_trans_port
 ++ check_tor_socks_or_trans_port TransPort
 ++ '[' '!' '' = true ']'
 ++ local 'MSG=<pcheck_tor_socks_or_trans_port TransPort: Skipped, because not using <code--leak-tests</code (<code--show-ip</code), ok.</p'
 ++ '[' 0 -ge 1 ']'
 ++ return 0
 + whonixcheck_progress_main 15
 + '[' 30 = '' ']'
 + local increment
 + increment=15
 + PROGRESS_MAIN=45
 + whonixcheck_move_progress_bar_to_percent 45
 + '[' 0 -ge 3 ']'
 + true --progressbaridx 32b7ccbd-b490-4795-bca9-c2efb73e27d6 --progressx 45
 + whonixcheck_run_function check_qubes_updates_proxy
 + case $whonixcheck_skip_functions in
 + true 'INFO: Running check_qubes_updates_proxy, because whonixcheck_skip_functions does not include it.'
 + eval check_qubes_updates_proxy
 ++ check_qubes_updates_proxy
 ++ '[' '!' false = true ']'
 ++ return 0
 + whonixcheck_progress_main 15
 + '[' 45 = '' ']'
 + local increment
 + increment=15
 + PROGRESS_MAIN=60
 + whonixcheck_move_progress_bar_to_percent 60
 + '[' 0 -ge 3 ']'
 + true --progressbaridx 32b7ccbd-b490-4795-bca9-c2efb73e27d6 --progressx 60
 + whonixcheck_run_function check_stream_isolation
 + case $whonixcheck_skip_functions in
 + true 'INFO: Running check_stream_isolation, because whonixcheck_skip_functions does not include it.'
 + eval check_stream_isolation
 ++ check_stream_isolation
 ++ '[' '!' '' = true ']'
 ++ local 'MSG=<pcheck_stream_isolation : Skipped, because not using <code--leak-tests</code (<code--show-ip</code), ok.</p'
 ++ '[' 0 -ge 1 ']'
 ++ return 0
 + whonixcheck_progress_main 15
 + '[' 60 = '' ']'
 + local increment
 + increment=15
 + PROGRESS_MAIN=75
 + whonixcheck_move_progress_bar_to_percent 75
 + '[' 0 -ge 3 ']'
 + true --progressbaridx 32b7ccbd-b490-4795-bca9-c2efb73e27d6 --progressx 75
 + whonixcheck_run_function check_operating_system
 + case $whonixcheck_skip_functions in
 + true 'INFO: Running check_operating_system, because whonixcheck_skip_functions does not include it.'
 + eval check_operating_system
 ++ check_operating_system
 ++ '[' 0 -ge 3 ']'
 ++ local 'update_documentation_link_x=<a href=https://www.whonix.org/wiki/UpdateDebian Package Update</a'
 ++ local 'update_documentation_link_cli=( Documentation: https://www.whonix.org/wiki/Update )'
 ++ local update_command
 ++ command -v apt-get-update-plus
 ++ update_command='sudo apt-get-update-plus dist-upgrade'
 ++ local 'MSG=Debian Package Update Check: Checking for software updates via apt-get... ( Documentation: https://www.whonix.org/wiki/Update )'
 ++ output_func_cli --messagecli --typecli info --message 'Debian Package Update Check: Checking for software updates via apt-get... ( Documentation: https://www.whonix.org/wiki/Update )'
 ++ '[' '' = true ']'
 ++ true 'output_func_cli: injecting --onlyecho.'
 ++ output_func --onlyecho --messagecli --typecli info --message 'Debian Package Update Check: Checking for software updates via apt-get... ( Documentation: https://www.whonix.org/wiki/Update )'
 ++ '[' -n user ']'
 ++ '[' '' = true ']'
 ++ /usr/lib/msgcollector/msgcollector --identifier whonixcheck --whoami user --onlyecho --messagecli --typecli info --message 'Debian Package Update Check: Checking for software updates via apt-get... ( Documentation: https://www.whonix.org/wiki/Update )'
 [INFO] [whonixcheck] Debian Package Update Check: Checking for software updates via apt-get... ( Documentation: https://www.whonix.org/wiki/Update )
 ++ return 0
 ++ local apt_get_exit_code
 ++ apt_get_exit_code=0
 ++ apt_get_update_pid=1876
 ++ wait 1876
 ++ sudo --non-interactive /usr/lib/security-misc/apt-get-update
 ++ unset apt_get_update_pid
 ++ '[' false = true ']'
 ++ local debugging_information
 ++ '[' 0 = 124 ']'
 ++ '[' 0 = 137 ']'
 ++ debugging_information='(apt-get code: 0)'
 ++ '[' '!' 0 = 0 ']'
 ++ local check_os_output
 +++ /usr/lib/anon-shared-helper-scripts/apt-get-update-simulate
 ++ check_os_output='NOTE: This is only a simulation!
       apt-get needs root privileges for real execution.
       Keep also in mind that locking is deactivated,
       so don'\''t depend on the relevance to the real current situation!
 Reading package lists...
 Building dependency tree...
 Reading state information...
 Calculating upgrade...
 The following packages will be upgraded:
   libqt5core5a libqt5dbus5 libqt5gui5 libqt5network5 libqt5printsupport5
   libqt5sql5 libqt5test5 libqt5widgets5 libqt5xml5
 9 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
 Inst libqt5core5a [5.7.1+dfsg-3+b1] (5.7.1+dfsg-3+deb9u1 Debian-Security:9/stable [amd64])
 Inst libqt5dbus5 [5.7.1+dfsg-3+b1] (5.7.1+dfsg-3+deb9u1 Debian-Security:9/stable [amd64])
 Inst libqt5network5 [5.7.1+dfsg-3+b1] (5.7.1+dfsg-3+deb9u1 Debian-Security:9/stable [amd64])
 Inst libqt5gui5 [5.7.1+dfsg-3+b1] (5.7.1+dfsg-3+deb9u1 Debian-Security:9/stable [amd64])
 Inst libqt5widgets5 [5.7.1+dfsg-3+b1] (5.7.1+dfsg-3+deb9u1 Debian-Security:9/stable [amd64])
 Inst libqt5printsupport5 [5.7.1+dfsg-3+b1] (5.7.1+dfsg-3+deb9u1 Debian-Security:9/stable [amd64])
 Inst libqt5sql5 [5.7.1+dfsg-3+b1] (5.7.1+dfsg-3+deb9u1 Debian-Security:9/stable [amd64])
 Inst libqt5test5 [5.7.1+dfsg-3+b1] (5.7.1+dfsg-3+deb9u1 Debian-Security:9/stable [amd64])
 Inst libqt5xml5 [5.7.1+dfsg-3+b1] (5.7.1+dfsg-3+deb9u1 Debian-Security:9/stable [amd64])
 Conf libqt5core5a (5.7.1+dfsg-3+deb9u1 Debian-Security:9/stable [amd64])
 Conf libqt5dbus5 (5.7.1+dfsg-3+deb9u1 Debian-Security:9/stable [amd64])
 Conf libqt5network5 (5.7.1+dfsg-3+deb9u1 Debian-Security:9/stable [amd64])
 Conf libqt5gui5 (5.7.1+dfsg-3+deb9u1 Debian-Security:9/stable [amd64])
 Conf libqt5widgets5 (5.7.1+dfsg-3+deb9u1 Debian-Security:9/stable [amd64])
 Conf libqt5printsupport5 (5.7.1+dfsg-3+deb9u1 Debian-Security:9/stable [amd64])
 Conf libqt5sql5 (5.7.1+dfsg-3+deb9u1 Debian-Security:9/stable [amd64])
 Conf libqt5test5 (5.7.1+dfsg-3+deb9u1 Debian-Security:9/stable [amd64])
 Conf libqt5xml5 (5.7.1+dfsg-3+deb9u1 Debian-Security:9/stable [amd64])'
 ++ local number_upgraded line first_char
 ++ OIFS=' 	
 '
 ++ IFS='
 '
 ++ for line in $check_os_output
 ++ IFS=' 	
 '
 ++ true 'line: NOTE: This is only a simulation!'
 ++ first_char=N
 ++ [[ N = '' ]]
 ++ [[ N != *[!0-9]* ]]
 ++ for line in $check_os_output
 ++ IFS=' 	
 '
 ++ true 'line:       apt-get needs root privileges for real execution.'
 ++ first_char=' '
 ++ [[   = '' ]]
 ++ [[   != *[!0-9]* ]]
 ++ for line in $check_os_output
 ++ IFS=' 	
 '
 ++ true 'line:       Keep also in mind that locking is deactivated,'
 ++ first_char=' '
 ++ [[   = '' ]]
 ++ [[   != *[!0-9]* ]]
 ++ for line in $check_os_output
 ++ IFS=' 	
 '
 ++ true 'line:       so don'\''t depend on the relevance to the real current situation!'
 ++ first_char=' '
 ++ [[   = '' ]]
 ++ [[   != *[!0-9]* ]]
 ++ for line in $check_os_output
 ++ IFS=' 	
 '
 ++ true 'line: Reading package lists...'
 ++ first_char=R
 ++ [[ R = '' ]]
 ++ [[ R != *[!0-9]* ]]
 ++ for line in $check_os_output
 ++ IFS=' 	
 '
 ++ true 'line: Building dependency tree...'
 ++ first_char=B
 ++ [[ B = '' ]]
 ++ [[ B != *[!0-9]* ]]
 ++ for line in $check_os_output
 ++ IFS=' 	
 '
 ++ true 'line: Reading state information...'
 ++ first_char=R
 ++ [[ R = '' ]]
 ++ [[ R != *[!0-9]* ]]
 ++ for line in $check_os_output
 ++ IFS=' 	
 '
 ++ true 'line: Calculating upgrade...'
 ++ first_char=C
 ++ [[ C = '' ]]
 ++ [[ C != *[!0-9]* ]]
 ++ for line in $check_os_output
 ++ IFS=' 	
 '
 ++ true 'line: The following packages will be upgraded:'
 ++ first_char=T
 ++ [[ T = '' ]]
 ++ [[ T != *[!0-9]* ]]
 ++ for line in $check_os_output
 ++ IFS=' 	
 '
 ++ true 'line:   libqt5core5a libqt5dbus5 libqt5gui5 libqt5network5 libqt5printsupport5'
 ++ first_char=' '
 ++ [[   = '' ]]
 ++ [[   != *[!0-9]* ]]
 ++ for line in $check_os_output
 ++ IFS=' 	
 '
 ++ true 'line:   libqt5sql5 libqt5test5 libqt5widgets5 libqt5xml5'
 ++ first_char=' '
 ++ [[   = '' ]]
 ++ [[   != *[!0-9]* ]]
 ++ for line in $check_os_output
 ++ IFS=' 	
 '
 ++ true 'line: 9 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.'
 ++ first_char=9
 ++ [[ 9 = '' ]]
 ++ [[ 9 != *[!0-9]* ]]
 ++ true ''\''9'\'' is strictly numeric.'
 ++ read -r number_upgraded _
 ++ true 'number_upgraded: 9'
 ++ break
 ++ IFS=' 	
 '
 ++ '[' 9 = 0 ']'
 ++ '[' false = true ']'
 ++ local 'MSG=<p<a href=https://www.whonix.org/wiki/UpdateDebian Package Update</a Check Result: <bapt-get reports that packages can be updated.</b
 <br</brPlease update Whonix-Gateway and Whonix-Workstation:
 <br</br(Open a terminal, Start Menu - Applications - System - Terminal.)
 <code<blockquotesudo apt-get-update-plus dist-upgrade</blockquote</code</p'
 ++ true --messagex --typex warning --message '<p<a href=https://www.whonix.org/wiki/UpdateDebian Package Update</a Check Result: <bapt-get reports that packages can be updated.</b
 <br</brPlease update Whonix-Gateway and Whonix-Workstation:
 <br</br(Open a terminal, Start Menu - Applications - System - Terminal.)
 <code<blockquotesudo apt-get-update-plus dist-upgrade</blockquote</code</p'
 ++ output_func_cli --messagecli --typecli warning --message '<p<a href=https://www.whonix.org/wiki/UpdateDebian Package Update</a Check Result: <bapt-get reports that packages can be updated.</b
 <br</brPlease update Whonix-Gateway and Whonix-Workstation:
 <br</br(Open a terminal, Start Menu - Applications - System - Terminal.)
 <code<blockquotesudo apt-get-update-plus dist-upgrade</blockquote</code</p'
 ++ '[' '' = true ']'
 ++ true 'output_func_cli: injecting --onlyecho.'
 ++ output_func --onlyecho --messagecli --typecli warning --message '<p<a href=https://www.whonix.org/wiki/UpdateDebian Package Update</a Check Result: <bapt-get reports that packages can be updated.</b
 <br</brPlease update Whonix-Gateway and Whonix-Workstation:
 <br</br(Open a terminal, Start Menu - Applications - System - Terminal.)
 <code<blockquotesudo apt-get-update-plus dist-upgrade</blockquote</code</p'
 ++ '[' -n user ']'
 ++ '[' '' = true ']'
 ++ /usr/lib/msgcollector/msgcollector --identifier whonixcheck --whoami user --onlyecho --messagecli --typecli warning --message '<p<a href=https://www.whonix.org/wiki/UpdateDebian Package Update</a Check Result: <bapt-get reports that packages can be updated.</b
 <br</brPlease update Whonix-Gateway and Whonix-Workstation:
 <br</br(Open a terminal, Start Menu - Applications - System - Terminal.)
 <code<blockquotesudo apt-get-update-plus dist-upgrade</blockquote</code</p'
 [WARNING] [whonixcheck] Debian Package Update Check Result: apt-get reports that packages can be updated.
 Please update Whonix-Gateway and Whonix-Workstation:
 (Open a terminal, Start Menu - Applications - System - Terminal.)
 sudo apt-get-update-plus dist-upgrade
 ++ return 0
 + whonixcheck_progress_main 15
 + '[' 75 = '' ']'
 + local increment
 + increment=15
 + PROGRESS_MAIN=90
 + whonixcheck_move_progress_bar_to_percent 90
 + '[' 0 -ge 3 ']'
 + true --progressbaridx 32b7ccbd-b490-4795-bca9-c2efb73e27d6 --progressx 90
 + whonixcheck_run_function donate
 + case $whonixcheck_skip_functions in
 + true 'INFO: Running donate, because whonixcheck_skip_functions does not include it.'
 + eval donate
 ++ donate
 ++ '[' '' = 1 ']'
 ++ local output_status_exit_code
 ++ output_func_general --identifier whonixcheck --status --messagex
 ++ output_func --identifier whonixcheck --status --messagex
 ++ '[' -n user ']'
 ++ '[' '' = true ']'
 ++ /usr/lib/msgcollector/msgcollector --identifier whonixcheck --whoami user --identifier whonixcheck --status --messagex
 ++ return 1
 ++ return 1
 ++ output_status_exit_code=1
 ++ true
 ++ '[' '!' 1 = 0 ']'
 ++ true 'No messages for --messagex in the queue. Not adding donation message.'
 ++ return 0
 + whonixcheck_progress_main 1
 + '[' 90 = '' ']'
 + local increment
 + increment=1
 + PROGRESS_MAIN=91
 + whonixcheck_move_progress_bar_to_percent 91
 + '[' 0 -ge 3 ']'
 + true --progressbaridx 32b7ccbd-b490-4795-bca9-c2efb73e27d6 --progressx 91
 + whonixcheck_run_function whonixcheck_completed
 + case $whonixcheck_skip_functions in
 + true 'INFO: Running whonixcheck_completed, because whonixcheck_skip_functions does not include it.'
 + eval whonixcheck_completed
 ++ whonixcheck_completed
 ++ local LASTRUN
 +++ date +%s
 ++ LASTRUN=1548898333
 ++ tee /var/lib/whonixcheck/whonixcheck_lastrun
 ++ echo 1548898333
 + whonixcheck_run_function cleanup
 + case $whonixcheck_skip_functions in
 + true 'INFO: Running cleanup, because whonixcheck_skip_functions does not include it.'
 + eval cleanup
 ++ cleanup
 ++ true cleanup...
 ++ touch /var/run/whonixcheck/whonixcheck_done
 ++ sync
 ++ SIGNAL_TYPE=NONE
 ++ cd ..
 ++ ex_funct
 ++ '[' -n output_func_cli ']'
 ++ '[' -n true ']'
 ++ '[' -n output_func_general ']'
 ++ '[' '!' NONE = NONE ']'
 ++ trap - SIGTERM
 ++ trap - SIGINT
 ++ trap - SIGUSR2
 ++ maybe_kill_apt_get_update
 ++ '[' '' = '' ']'
 ++ return 0
 ++ command -v process_killer_helper
 ++ process_killer_helper
 +++ type -t error_handler
 ++ '[' function = function ']'
 ++ trap error_handler ERR
 ++ '[' 1480 = '' ']'
 ++ local ps_p_exit_code
 ++ ps_p_exit_code=0
 ++ ps -p 1480
 ++ ps_p_exit_code=1
 ++ true
 ++ '[' '!' 1 = 0 ']'
 ++ return 0
 ++ lastpid=
 ++ process_killer_helper
 +++ type -t error_handler
 ++ '[' function = function ']'
 ++ trap error_handler ERR
 ++ '[' '' = '' ']'
 ++ return 0
 ++ cleanup_files
 ++ '[' '' = false ']'
 ++ '[' -d /tmp/tmp.6XVvmxk2SL ']'
 ++ rm --recursive /tmp/tmp.6XVvmxk2SL
 ++ rm --force /var/run/whonixcheck/whonixcheck_running
 ++ rm --force /var/run/whonixcheck/whonixcheck_waiting
 ++ local command_v_output_exit_code
 ++ command_v_output_exit_code=0
 ++ command -v output_func
 ++ '[' 0 = 0 ']'
 ++ local output_status_exit_code
 ++ output_status_exit_code=0
 ++ output_func_general --identifier whonixcheck --status --messagecli
 ++ output_func --identifier whonixcheck --status --messagecli
 ++ '[' -n user ']'
 ++ '[' '' = true ']'
 ++ /usr/lib/msgcollector/msgcollector --identifier whonixcheck --whoami user --identifier whonixcheck --status --messagecli
 ++ return 1
 ++ return 1
 ++ output_status_exit_code=1
 ++ true
 ++ '[' '!' 1 = 1 ']'
 ++ '[' '!' 32b7ccbd-b490-4795-bca9-c2efb73e27d6 = '' ']'
 ++ local progress_bar_open
 ++ progress_bar_open=0
 ++ output_func_general --identifier whonixcheck --status --progressbaridx 32b7ccbd-b490-4795-bca9-c2efb73e27d6 --progressbarxprogresstxtexisting
 ++ output_func --identifier whonixcheck --status --progressbaridx 32b7ccbd-b490-4795-bca9-c2efb73e27d6 --progressbarxprogresstxtexisting
 ++ '[' -n user ']'
 ++ '[' '' = true ']'
 ++ /usr/lib/msgcollector/msgcollector --identifier whonixcheck --whoami user --identifier whonixcheck --status --progressbaridx 32b7ccbd-b490-4795-bca9-c2efb73e27d6 --progressbarxprogresstxtexisting
 ++ return 1
 ++ return 1
 ++ progress_bar_open=1
 ++ true
 ++ '[' NONE = SIGUSR2 ']'
 ++ '[' 1 = 0 ']'
 ++ true 'No progress bar open. No need to send progress 100 to close progress bar.'
 ++ '[' 'whonixcheck | Whonix-Workstation' = '' ']'
 ++ '[' ' | Whonix-Workstation | Thu Jan 31 01:29:11 UTC 2019' = '' ']'
 ++ true --titlex 'whonixcheck | Whonix-Workstation'
 ++ output_func_cli --titlecli ' | Whonix-Workstation | Thu Jan 31 01:29:11 UTC 2019'
 ++ '[' '' = true ']'
 ++ true 'output_func_cli: injecting --onlyecho.'
 ++ output_func --onlyecho --titlecli ' | Whonix-Workstation | Thu Jan 31 01:29:11 UTC 2019'
 ++ '[' -n user ']'
 ++ '[' '' = true ']'
 ++ /usr/lib/msgcollector/msgcollector --identifier whonixcheck --whoami user --onlyecho --titlecli ' | Whonix-Workstation | Thu Jan 31 01:29:11 UTC 2019'
 ++ return 0
 ++ '[' '!' NONE = NONE ']'
 ++ '[' '' = '' ']'
 ++ local TYPE
 +++ output_func_general --identifier whonixcheck --status --typexstatus
 +++ output_func --identifier whonixcheck --status --typexstatus
 +++ '[' -n user ']'
 +++ '[' '' = true ']'
 +++ /usr/lib/msgcollector/msgcollector --identifier whonixcheck --whoami user --identifier whonixcheck --status --typexstatus
 +++ return 0
 +++ return 0
 ++ TYPE=
 ++ '[' '' = warning ']'
 ++ '[' '' = error ']'
 ++ true --messagex --done
 ++ output_func_cli --messagecli --done
 ++ '[' '' = true ']'
 ++ true 'output_func_cli: injecting --onlyecho.'
 ++ output_func --onlyecho --messagecli --done
 ++ '[' -n user ']'
 ++ '[' '' = true ']'
 ++ /usr/lib/msgcollector/msgcollector --identifier whonixcheck --whoami user --onlyecho --messagecli --done
 ++ return 0
 ++ '[' '' = '' ']'
 ++ EXIT_CODE=1
 ++ exit 1
 user@host:~$
  • Please use forum code rather than quote.
  • xfce4-terminal can be set to unlimited scrollback.
  • After installing upgrades, whonixcheck exit code should change to 0.
  • Don’t run whonixcheck as root.
  • Don’t run GUI applications as root as per Install Additional Software Safely.
  • whonixcheck run from command line by default doesn’t start a gui. Use:
    • whonixcheck --gui --cli

sudo: pam_open_session: Module is unknown
sudo: policy plugin failed session initialization

This is bad. Could break various things.

As per linux - Unable to use sudo command because pam_open_session module is unknown - Stack Overflow

Could you please diff or meld old Whonix version’s /etc/pam.conf with new Whonix version /etc/pam.conf?

Contents exactly identical and so are those of /etc/pam.d

1 Like

Explanation for sudo issue included in this post:

[FIXED] Apt RCE announced. New Whonix images needed. Whonix build NOT safe at the moment. - #16 by Patrick