Project Number Date
test_Tails_ISO_devel 4162 13 Jan 2026, 16:27

Feature Report

Steps Scenarios Features
Feature Passed Failed Skipped Pending Undefined Total Passed Failed Total Duration Status
Additional software 66 1 17 0 0 84 5 1 6 18:19.889 Failed
Feature Additional software
As a Tails user I may want to install software not shipped in Tails And have them installed automatically when I enable persistence in the Greeter
2:32.258
Before features/support/hooks.rb:266 0.000
Before features/support/hooks.rb:273 0.003
Before features/support/hooks.rb:519 0.003
Given I have started Tails from DVD and logged in with an administration password and the network is connected 1:58.938
And I update APT using apt 10.044
When I install "popularity-contest" using apt 7.159
Then I am notified I can not use Additional Software for "popularity-contest" 4.391
And I can open the Additional Software documentation from the notification 11.724
After features/support/hooks.rb:527 13.308
After features/support/hooks.rb:331 1.653
After features/support/hooks.rb:100 0.004
3:29.147
Before features/support/hooks.rb:266 0.000
Before features/support/hooks.rb:273 0.019
Before features/support/hooks.rb:519 0.022
Given I start Tails from a freshly installed USB drive with an administration password and the network is plugged and I login 1:1.687
And I update APT using apt 6.169
And I install "popularity-contest" using apt 6.309
Then I am proposed to add the "popularity-contest" package to my Additional Software 4.288
When I create a persistent storage and activate the Additional Software feature 22.633
Then Additional Software is correctly configured for package "popularity-contest" 2.375
When I shutdown Tails and wait for the computer to power off 9.662
And I start Tails from USB drive "__internal" with network unplugged 45.164
And I enable persistence 24.912
And I log in to a new session 12.509
And the Additional Software installation service has started 10.278
Then I am notified that the installation succeeded 2.015
And Additional Software is correctly configured for package "popularity-contest" 0.901
And the package "popularity-contest" is installed after Additional Software has been started 0.239
After features/support/hooks.rb:527 12.358
After features/support/hooks.rb:331 1.698
After features/support/hooks.rb:100 0.013
1:50.112
Before features/support/hooks.rb:266 0.000
Before features/support/hooks.rb:273 0.005
Before features/support/hooks.rb:519 0.005
Given a computer 0.173
And I start Tails from USB drive "__internal" and I login with an administration password 1:32.775
And I update APT using apt 5.976
When I install "ripgrep" using apt 6.824
Then the Additional Software dpkg hook has been run for package "ripgrep" and notices the persistence is locked 4.293
And the package "ripgrep" is installed 0.067
After features/support/hooks.rb:527 13.617
After features/support/hooks.rb:331 6.622
After features/support/hooks.rb:100 0.014
2:5.846
Scenario My Additional Software list is configurable through a GUI or through notifications when I install or remove packages with APT or Synaptic
Before features/support/hooks.rb:266 0.000
Before features/support/hooks.rb:273 0.004
Before features/support/hooks.rb:519 0.005
Steps
Given a computer 0.184
And I start Tails from USB drive "__internal" and I login with persistence enabled and an administration password 2:5.661
try_for() timeout expired
Last ignored exception was: Test::Unit::AssertionFailedError: <Dogtail::Failure> exception expected but was
<#<Class:0x00007fd633b51c40>(<execution expired>)
/var/lib/jenkins/workspace/test_Tails_ISO_devel/features/support/helpers/remote_shell.rb:56:in `read'
/var/lib/jenkins/workspace/test_Tails_ISO_devel/features/support/helpers/remote_shell.rb:56:in `block (3 levels) in communicate'
/usr/lib/ruby/3.3.0/timeout.rb:186:in `block in timeout'
/usr/lib/ruby/3.3.0/timeout.rb:193:in `timeout'
/var/lib/jenkins/workspace/test_Tails_ISO_devel/features/support/helpers/remote_shell.rb:55:in `block (2 levels) in communicate'
<internal:kernel>:187:in `loop'
/var/lib/jenkins/workspace/test_Tails_ISO_devel/features/support/helpers/remote_shell.rb:42:in `block in communicate'
/usr/lib/ruby/3.3.0/timeout.rb:186:in `block in timeout'
/usr/lib/ruby/3.3.0/timeout.rb:193:in `timeout'
/var/lib/jenkins/workspace/test_Tails_ISO_devel/features/support/helpers/remote_shell.rb:37:in `communicate'
/var/lib/jenkins/workspace/test_Tails_ISO_devel/features/support/helpers/remote_shell.rb:174:in `execute'
/var/lib/jenkins/workspace/test_Tails_ISO_devel/features/support/helpers/remote_shell.rb:185:in `initialize'
/var/lib/jenkins/workspace/test_Tails_ISO_devel/features/support/helpers/dogtail.rb:89:in `new'
/var/lib/jenkins/workspace/test_Tails_ISO_devel/features/support/helpers/dogtail.rb:89:in `run'
/var/lib/jenkins/workspace/test_Tails_ISO_devel/features/support/helpers/dogtail.rb:70:in `initialize'
/var/lib/jenkins/workspace/test_Tails_ISO_devel/features/step_definitions/usb.rb:108:in `new'
/var/lib/jenkins/workspace/test_Tails_ISO_devel/features/step_definitions/usb.rb:108:in `greeter'
/var/lib/jenkins/workspace/test_Tails_ISO_devel/features/step_definitions/common_steps.rb:547:in `block (2 levels) in wait_for_welcome_screen_settings_to_vanish'
/usr/share/rubygems-integration/all/gems/test-unit-3.6.2/lib/test/unit/assertions.rb:1961:in `block (2 levels) in _assert_raise'
/usr/share/rubygems-integration/all/gems/test-unit-3.6.2/lib/test/unit/assertions.rb:55:in `block in assert_block'
/usr/share/rubygems-integration/all/gems/test-unit-3.6.2/lib/test/unit/assertions.rb:1913:in `_wrap_assertion'
/usr/share/rubygems-integration/all/gems/test-unit-3.6.2/lib/test/unit/assertions.rb:54:in `assert_block'
/usr/share/rubygems-integration/all/gems/test-unit-3.6.2/lib/test/unit/assertions.rb:1959:in `block in _assert_raise'
/usr/share/rubygems-integration/all/gems/test-unit-3.6.2/lib/test/unit/assertions.rb:1918:in `_wrap_assertion'
/usr/share/rubygems-integration/all/gems/test-unit-3.6.2/lib/test/unit/assertions.rb:1945:in `_assert_raise'
/usr/share/rubygems-integration/all/gems/test-unit-3.6.2/lib/test/unit/assertions.rb:287:in `assert_raise'
/var/lib/jenkins/workspace/test_Tails_ISO_devel/features/step_definitions/common_steps.rb:546:in `block in wait_for_welcome_screen_settings_to_vanish'
/var/lib/jenkins/workspace/test_Tails_ISO_devel/features/support/helpers/misc_helpers.rb:78:in `block (2 levels) in try_for'
<internal:kernel>:187:in `loop'
/var/lib/jenkins/workspace/test_Tails_ISO_devel/features/support/helpers/misc_helpers.rb:66:in `block in try_for'
/usr/lib/ruby/3.3.0/timeout.rb:186:in `block in timeout'
/usr/lib/ruby/3.3.0/timeout.rb:193:in `timeout'
/var/lib/jenkins/workspace/test_Tails_ISO_devel/features/support/helpers/misc_helpers.rb:65:in `try_for'
/var/lib/jenkins/workspace/test_Tails_ISO_devel/features/step_definitions/common_steps.rb:545:in `wait_for_welcome_screen_settings_to_vanish'
/var/lib/jenkins/workspace/test_Tails_ISO_devel/features/step_definitions/common_steps.rb:567:in `block in <top (required)>'
/usr/lib/ruby/vendor_ruby/cucumber/core_ext/instance_exec.rb:25:in `instance_exec'
/usr/lib/ruby/vendor_ruby/cucumber/core_ext/instance_exec.rb:25:in `block in cucumber_instance_exec'
/usr/lib/ruby/vendor_ruby/cucumber/core_ext/instance_exec.rb:42:in `cucumber_run_with_backtrace_filtering'
/usr/lib/ruby/vendor_ruby/cucumber/core_ext/instance_exec.rb:13:in `cucumber_instance_exec'
/usr/lib/ruby/vendor_ruby/cucumber/rb_support/rb_step_definition.rb:102:in `invoke'
/usr/lib/ruby/vendor_ruby/cucumber/step_match.rb:27:in `invoke'
/usr/lib/ruby/vendor_ruby/cucumber/runtime/support_code.rb:78:in `invoke_dynamic_step'
/usr/lib/ruby/3.3.0/forwardable.rb:240:in `invoke_dynamic_step'
/usr/lib/ruby/vendor_ruby/cucumber/rb_support/rb_world.rb:40:in `step'
/var/lib/jenkins/workspace/test_Tails_ISO_devel/features/step_definitions/common_steps.rb:245:in `block in <top (required)>'
/usr/lib/ruby/vendor_ruby/cucumber/core_ext/instance_exec.rb:25:in `instance_exec'
/usr/lib/ruby/vendor_ruby/cucumber/core_ext/instance_exec.rb:25:in `block in cucumber_instance_exec'
/usr/lib/ruby/vendor_ruby/cucumber/core_ext/instance_exec.rb:42:in `cucumber_run_with_backtrace_filtering'
/usr/lib/ruby/vendor_ruby/cucumber/core_ext/instance_exec.rb:13:in `cucumber_instance_exec'
/usr/lib/ruby/vendor_ruby/cucumber/rb_support/rb_step_definition.rb:102:in `invoke'
/usr/lib/ruby/vendor_ruby/cucumber/step_match.rb:27:in `invoke'
/usr/lib/ruby/vendor_ruby/cucumber/step_match.rb:20:in `block in activate'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/action.rb:23:in `execute'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/step.rb:31:in `execute'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/runner.rb:104:in `execute'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/runner.rb:51:in `execute'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/runner.rb:26:in `test_step'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/step.rb:16:in `describe_to'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/case.rb:26:in `block (3 levels) in describe_to'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/case.rb:25:in `each'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/case.rb:25:in `block (2 levels) in describe_to'
/usr/lib/ruby/vendor_ruby/cucumber/filters/prepare_world.rb:22:in `block in test_case'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/around_hook.rb:16:in `execute'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/runner.rb:104:in `execute'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/runner.rb:51:in `execute'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/runner.rb:33:in `around_hook'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/around_hook.rb:11:in `describe_to'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/case.rb:106:in `block (2 levels) in compose_around_hooks'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/case.rb:107:in `compose_around_hooks'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/case.rb:24:in `block in describe_to'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/runner.rb:18:in `test_case'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/case.rb:23:in `describe_to'
/usr/lib/ruby/vendor_ruby/cucumber/filters/prepare_world.rb:11:in `test_case'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/case.rb:23:in `describe_to'
/usr/lib/ruby/vendor_ruby/cucumber/filters/apply_around_hooks.rb:8:in `test_case'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/case.rb:23:in `describe_to'
/usr/lib/ruby/vendor_ruby/cucumber/filters/apply_after_hooks.rb:5:in `test_case'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/case.rb:23:in `describe_to'
/usr/lib/ruby/vendor_ruby/cucumber/filters/apply_before_hooks.rb:5:in `test_case'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/case.rb:23:in `describe_to'
/usr/lib/ruby/vendor_ruby/cucumber/filters/apply_after_step_hooks.rb:8:in `test_case'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/case.rb:23:in `describe_to'
/usr/lib/ruby/vendor_ruby/cucumber/filters/activate_steps.rb:11:in `test_case'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/case.rb:23:in `describe_to'
/usr/lib/ruby/vendor_ruby/cucumber/filters/quit.rb:11:in `test_case'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/case.rb:23:in `describe_to'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/filters/locations_filter.rb:17:in `block in done'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/filters/locations_filter.rb:16:in `each'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/filters/locations_filter.rb:16:in `done'
/usr/lib/ruby/vendor_ruby/cucumber/core/filter.rb:61:in `done'
/usr/lib/ruby/vendor_ruby/cucumber/core/test/filters/tag_filter.rb:18:in `done'
/usr/lib/ruby/vendor_ruby/cucumber/core/compiler.rb:23:in `done'
/usr/lib/ruby/vendor_ruby/cucumber/core/gherkin/parser.rb:35:in `done'
/usr/lib/ruby/vendor_ruby/cucumber/core.rb:29:in `parse'
/usr/lib/ruby/vendor_ruby/cucumber/core.rb:18:in `compile'
/usr/lib/ruby/vendor_ruby/cucumber/runtime.rb:67:in `run!'
/usr/lib/ruby/vendor_ruby/cucumber/cli/main.rb:32:in `execute!'
/usr/bin/cucumber:7:in `<main>'
>.
./features/step_definitions/common_steps.rb:546:in `block in wait_for_welcome_screen_settings_to_vanish'
./features/support/helpers/misc_helpers.rb:78:in `block (2 levels) in try_for'
<internal:kernel>:187:in `loop'
./features/support/helpers/misc_helpers.rb:66:in `block in try_for'
./features/support/helpers/misc_helpers.rb:65:in `try_for'
./features/step_definitions/common_steps.rb:545:in `wait_for_welcome_screen_settings_to_vanish'
./features/step_definitions/common_steps.rb:567:in `block in <top (required)>'
./features/step_definitions/common_steps.rb:245:in `block in <top (required)>' (Timeout::Error)
./features/support/helpers/misc_helpers.rb:145:in `rescue in try_for'
./features/support/helpers/misc_helpers.rb:51:in `try_for'
./features/step_definitions/common_steps.rb:545:in `wait_for_welcome_screen_settings_to_vanish'
./features/step_definitions/common_steps.rb:567:in `/^I set an administration password$/'
./features/step_definitions/common_steps.rb:245:in `/^I start Tails from (.+?) drive "(.+?)"( with network unplugged)?( and I login( with persistence enabled)?( with the changed persistence passphrase)?( (?:and|with) an administration password)?)?$/'
features/additional_software_packages.feature:55:in `And I start Tails from USB drive "__internal" and I login with persistence enabled and an administration password'
When I uninstall "popularity-contest" using apt 0.000
And I accept removing "popularity-contest" from Additional Software 0.000
Then "popularity-contest" is not in the list of Additional Software 0.000
When I start Synaptic 0.000
And I update APT using Synaptic 0.000
And I install "cowsay" using Synaptic 0.000
And I accept adding "cowsay" to Additional Software 0.000
Then Additional Software is correctly configured for package "cowsay" 0.000
When I uninstall "cowsay" using apt 0.000
And I refuse removing "cowsay" from Additional Software 0.000
Then Additional Software is correctly configured for package "cowsay" 0.000
When I start "Additional Software" via GNOME Activities Overview 0.000
And I remove "cowsay" from the list of Additional Software using Additional Software GUI 0.000
Then "cowsay" is not in the list of Additional Software 0.000
When I install "cowsay" using apt 0.000
And I refuse adding "cowsay" to Additional Software 0.000
Then "cowsay" is not in the list of Additional Software 0.000
After features/support/hooks.rb:527 0.052
After features/support/hooks.rb:331 5.812

SCENARIO FAILED: 'My Additional Software list is configurable through a GUI or through notifications when I install or remove packages with APT or Synaptic' (at time 01:07:43)

Exception thrown while trying to save /tmp/TailsToaster/artifact.file_content_run_live-additional-software_log: RemoteShell::ServerFailure: FileNotFoundError: [Errno 2] No such file or directory: '/run/live-additional-software/log'

Boot log: https://jenkins.tails.boum.org/job/test_Tails_ISO_devel/4162/artifact/build-artifacts/01:07:43_My_Additional_Software_list_is_configurable_through_a_GUI_or_through_notifications_when_I_install_or_remove_packages_with_APT_or_Synaptic.file_content_var_log_boot.log

Output of ls -la --full-time /live/persistence/tailsdata_unlocked: https://jenkins.tails.boum.org/job/test_Tails_ISO_devel/4162/artifact/build-artifacts/01:07:43_My_Additional_Software_list_is_configurable_through_a_GUI_or_through_notifications_when_I_install_or_remove_packages_with_APT_or_Synaptic.cmd_output_persistent_volume

Output of ls -lar --full-time /var/cache/apt: https://jenkins.tails.boum.org/job/test_Tails_ISO_devel/4162/artifact/build-artifacts/01:07:43_My_Additional_Software_list_is_configurable_through_a_GUI_or_through_notifications_when_I_install_or_remove_packages_with_APT_or_Synaptic.cmd_output_var_cache_apt

Output of ls -lar --full-time /var/lib/apt: https://jenkins.tails.boum.org/job/test_Tails_ISO_devel/4162/artifact/build-artifacts/01:07:43_My_Additional_Software_list_is_configurable_through_a_GUI_or_through_notifications_when_I_install_or_remove_packages_with_APT_or_Synaptic.cmd_output_var_lib_apt

Output of mount: https://jenkins.tails.boum.org/job/test_Tails_ISO_devel/4162/artifact/build-artifacts/01:07:43_My_Additional_Software_list_is_configurable_through_a_GUI_or_through_notifications_when_I_install_or_remove_packages_with_APT_or_Synaptic.cmd_output_mount

Screenshot: https://jenkins.tails.boum.org/job/test_Tails_ISO_devel/4162/artifact/build-artifacts/01:07:43_My_Additional_Software_list_is_configurable_through_a_GUI_or_through_notifications_when_I_install_or_remove_packages_with_APT_or_Synaptic.png

Video: https://jenkins.tails.boum.org/job/test_Tails_ISO_devel/4162/artifact/build-artifacts/01:07:43_My_Additional_Software_list_is_configurable_through_a_GUI_or_through_notifications_when_I_install_or_remove_packages_with_APT_or_Synaptic.mkv

Systemd journal: https://jenkins.tails.boum.org/job/test_Tails_ISO_devel/4162/artifact/build-artifacts/01:07:43_My_Additional_Software_list_is_configurable_through_a_GUI_or_through_notifications_when_I_install_or_remove_packages_with_APT_or_Synaptic.journal

After features/support/hooks.rb:100 0.012
7:2.129
Before features/support/hooks.rb:266 0.000
Before features/support/hooks.rb:273 0.004
Before features/support/hooks.rb:519 0.004
Given a computer 29.564
And I start Tails from USB drive "__internal" and I login with persistence enabled and an administration password 2:19.527
And I configure APT to prefer an old version of cowsay 0.028
When I install an old version "3.03+dfsg2-1" of the cowsay package using apt 9.979
And I accept adding "cowsay" to Additional Software 2.678
And Additional Software is correctly configured for package "cowsay" 0.687
And I shutdown Tails and wait for the computer to power off 22.943
And I start Tails from USB drive "__internal" with network unplugged 43.731
And I enable persistence 8.948
# We need to add back this custom APT source for the Additional Software
# install step, as it was not saved in persistence
And I configure APT to prefer an old version of cowsay 0.021
# Prevent the "Warning: virtual machine detected!" notification from racing
# with the one we'll be interacting with below.
And I disable the tails-virt-notify-user.service user unit 0.094
And I log in to a new session 11.864
And the installed version of package "cowsay" is "3.03+dfsg2-1" after Additional Software has been started 10.341
And I revert the APT tweaks that made it prefer an old version of cowsay 0.044
# We remove the newest package after it has been downloaded and before
# it is installed, so that the upgrade process fails
And I prepare the Additional Software upgrade process to fail 0.069
And the network is plugged 0.059
And Tor is ready 13.140
And available upgrades have been checked 1.141
And I see the "The upgrade of your additional software failed" notification after at most 300 seconds 1.957
And I can open the Additional Software configuration window from the notification 2.917
And I shutdown Tails and wait for the computer to power off 23.416
And I start Tails from USB drive "__internal" with network unplugged 42.494
And I enable persistence 8.590
# We need to add back this custom APT source for the Additional Software
# install step, as it was not saved in persistence
And I configure APT to prefer an old version of cowsay 0.019
And I log in to a new session 13.115
And the installed version of package "cowsay" is "3.03+dfsg2-1" after Additional Software has been started 10.695
And I revert the APT tweaks that made it prefer an old version of cowsay 0.054
And the network is plugged 0.056
And Tor is ready 23.705
Then the Additional Software upgrade service has started 0.161
And the installed version of package "cowsay" is newer than "3.03+dfsg2-1" 0.076
After features/support/hooks.rb:527 1.808
After features/support/hooks.rb:331 0.624
After features/support/hooks.rb:100 0.026
1:20.395
Before features/support/hooks.rb:266 0.000
Before features/support/hooks.rb:273 0.004
Before features/support/hooks.rb:519 0.004
Given a computer 0.148
And I start Tails from USB drive "__internal" with network unplugged 46.092
And I enable persistence 9.202
And I remove the "cowsay" deb files from the APT cache 0.049
# Prevent the "Warning: virtual machine detected!" notification from racing
# with the one we'll be interacting with below.
And I disable the tails-virt-notify-user.service user unit 0.065
And I log in to a new session 12.041
Then I see the "The installation of your additional software failed" notification after at most 300 seconds 8.321
And I can open the Additional Software log file from the notification 4.035
And the package "cowsay" is not installed 0.439
After features/support/hooks.rb:527 0.102
After features/support/hooks.rb:331 1.053
After features/support/hooks.rb:100 0.014