Project

General

Profile

Feature #14594

Feature #14568: Additional Software Packages

Code & integration into Tails: Additional Software Packages GUI

Added by u 10 months ago. Updated 13 days ago.

Status:
In Progress
Priority:
Normal
Assignee:
Category:
-
Target version:
Start date:
12/11/2013
Due date:
% Done:

100%

QA Check:
Dev Needed
Feature Branch:
perl5lib:feature/14594-asp-gui, iuk:feature/14594-asp-gui, persistence-setup:feature/14594-asp-gui, feature/14594-asp-gui
Type of work:
Code
Starter:
Affected tool:
Additional Software Packages

Description

Until april 1st 2018 (B4)
Beta release planned for April 15th 2018.
Tails 3.6 is scheduled for May 1st 2018.

asp-chart.odg (20.4 KB) alant, 03/02/2018 12:22 PM

asp-chart.svg View (56.3 KB) alant, 03/02/2018 12:22 PM

asp-flow-installed.svg View (54.5 KB) alant, 03/02/2018 12:22 PM

asp-flow-removed.svg View (32.2 KB) alant, 03/02/2018 12:22 PM

asp-persistence-setup.svg View (45 KB) alant, 03/02/2018 12:22 PM


Subtasks

Feature #14595: Code for Additional Software Packages GUI: Persistence SetupResolvedintrigeri

Feature #6485: Support multiple persistent paths per preset in the persistent volume assistantResolvedintrigeri

Feature #15259: Add button in tails-persistence-setup to open the configuration interface of Additional SoftwareResolvedintrigeri

Bug #15275: Remove the GNOME Keyring persistent featureResolved

Feature #15280: Reorder persistence featuresResolvedintrigeri

Feature #15314: Replace custom widget button in persistent wizard with standard GNOME switchesResolvedintrigeri

Feature #15544: Use title capitalization consistently in persistence configurationResolved

Bug #15550: Attempting to delete an unlocked persistent volume does not tell the user anything usefulResolved

Bug #15380: ASP proposes me to add packages upgraded with Synaptic to my additional softwareResolvedalant

Bug #15382: APT hooks for ASP should be non-blockingResolvedalant

Bug #15385: "Additional Software" configuration window's title does not match the design and its menu entryResolvedalant

Feature #15386: Confusing UX due to Additional Software configuration GUI not refreshing packages listResolvedalant

Feature #15404: ASP: finish configuration window welcome screenResolvedalant

Feature #15405: ASP: implementat removal from the list in the configuration windowResolvedalant

Feature #15423: Clarify unspecified items of the interfaceResolved

Bug #15430: live-additional-software.conf is given wrong permissions when it's updated by tails-additional-softwareResolvedalant

Bug #15431: tails-synchronize-data-to-new-persistent-volume-on-shutdown.service does not save APT cache at the right placeResolved

Bug #15455: Synaptic error on openRejectedalant

Feature #15527: Adjust the UI strings of Additional Software to the ones designed in the wireframesResolved

Feature #15529: Button instead of link to "Create Persistent Storage" from Additional SoftwareResolved

Bug #15545: The buttons 'configure' and 'Show log' do nothing when clickedResolved


Related issues

Related to Tails - Feature #15313: Apply changes to persistent features without the need for a Save button Confirmed 02/15/2018
Blocked by Tails - Feature #14574: Design GUI for Additional Software packages Resolved 01/29/2018

Associated revisions

Revision ecb17128 (diff)
Added by intrigeri 9 months ago

Blueprint: mention PackageKit (refs: #14594).

Revision 202dfc87 (diff)
Added by alant 5 months ago

ASP: get installed/removed packages from apt

Refs: #14594

Revision fa6dd79e (diff)
Added by alant 5 months ago

ASP: get installed/removed packages from apt

Refs: #14594

Revision 1a9c32c8 (diff)
Added by alant 4 months ago

ASP: add notification helper

Refs: #14594

Revision 71ee1de1 (diff)
Added by alant 4 months ago

ASP: get installed/removed packages from apt

Refs: #14594

Revision 7d82dc05 (diff)
Added by alant 4 months ago

ASP: allow to mark the notification as urgent

Refs: #14594

Revision 3fb35d43 (diff)
Added by alant 4 months ago

ASP: connect to the right session bus to send the notification

Refs: #14594

Revision abe44396 (diff)
Added by alant 4 months ago

ASP: use custom notifications

Refs: #14594

Revision 68cdd2ad (diff)
Added by alant 4 months ago

ASP: detect locked and unlocked persistence

Refs: #14594

Revision 619953d2 (diff)
Added by alant 4 months ago

ASP: basic implementation if handle_installed_packages

Refs: #14594

Revision 631b965f (diff)
Added by alant 4 months ago

ASP: implement saving additional packages list

Refs: #14594

Revision 74acb46b (diff)
Added by alant 4 months ago

ASP: add notification helper

Refs: #14594

Revision c00d9b70 (diff)
Added by alant 4 months ago

ASP: get installed/removed packages from apt

Refs: #14594

Revision a6692f44 (diff)
Added by alant 4 months ago

ASP: allow to mark the notification as urgent

Refs: #14594

Revision 5ee99d36 (diff)
Added by alant 4 months ago

ASP: connect to the right session bus to send the notification

Refs: #14594

Revision d2ca305e (diff)
Added by alant 4 months ago

ASP: use custom notifications

Refs: #14594

Revision c7ef4ba7 (diff)
Added by alant 4 months ago

ASP: detect locked and unlocked persistence

Refs: #14594

Revision 3da243e2 (diff)
Added by alant 4 months ago

ASP: basic implementation if handle_installed_packages

Refs: #14594

Revision 3a36aa99 (diff)
Added by alant 4 months ago

ASP: implement saving additional packages list

Refs: #14594

Revision db6e909b (diff)
Added by bertagaz 4 months ago

ASP: fix packages list output in configuration file.

Missing EOLs after each package name.

Refs: #14594

Revision 70815447 (diff)
Added by bertagaz 4 months ago

ASP: return a list of manually installed packages.

In python3, filter() returns a filter object, it has to be turned into a
list to be handled later in the script.

Refs: #14594

Revision 6941efd5 (diff)
Added by alant 4 months ago

ASP: convert filter to list so we can sort it

Refs: #14594

Revision 3b36b42a (diff)
Added by alant 4 months ago

ASP: convert manually_installed_packages to set

The order really doesn't matter, so it's better than a list.

Refs: #14594

Revision a4decb77 (diff)
Added by alant 4 months ago

ASP: test if a package is already in ASP config

Refs: #14594

Revision 15465752 (diff)
Added by alant 4 months ago

ASP: implement remaining UX for package install

Refs: #14594

Revision 8afaa02d (diff)
Added by alant 4 months ago

ASP: implement UX for package removal

Refs: #14594

Revision 13d6de98 (diff)
Added by alant 4 months ago

ASP: move state file to its own directory

This prevents storing the state file in a world writable directory.

Refs: #14594

Revision e2290553 (diff)
Added by alant 4 months ago

ASP: add logging in APT hooks

Refs: #14594

Revision 7e457ca3 (diff)
Added by alant 4 months ago

ASP: remove basic logging now that we have finer one

Refs: #14594

Revision c87877a0 (diff)
Added by alant 4 months ago

ASP: rename state file to specify its content

We are going to use other state files, so we need to distinguish them.

Refs: #14594

Revision 7439acf6 (diff)
Added by alant 4 months ago

ASP: informs about installing tails on USB only once

Refs: #14594

Revision 5688b212 (diff)
Added by alant 4 months ago

ASP: implement new UX for install/upgrade

Refs: #14594

Revision 568c6709 (diff)
Added by alant 4 months ago

ASP: don't wait for user action on notifications without buttons

Refs: #14594

Revision 13d21f29 (diff)
Added by alant 4 months ago

ASP: close "Installing..." notification before showing "Installed..."

Refs: #14594

Revision 57ad2f07 (diff)
Added by alant 4 months ago

ASP: simplify code

Packages is always a list, so the test was useless.

Refs: #14594

Revision 5844f39c (diff)
Added by alant 4 months ago

ASP: remove useless line from apt.conf.d snippet

Refs: #14594

Revision 1a00e685 (diff)
Added by alant 4 months ago

ASP: exit from APT hooks if running inside live-build

Refs: #14594

Revision 95a35a42 (diff)
Added by alant 4 months ago

ASP: add default value for the notification body

Refs: #14594

Revision 7ba7134d (diff)
Added by alant 4 months ago

ASP: don't show configure button in success notification

In the proposed UX, there should be a configure button in the success
notification. However, the easy way to implement it makes the ASP process not
return until the notification is clicked. Let's remove the button for now.

Refs: #14594

Revision e74258fb (diff)
Added by alant 4 months ago

ASP: don't fail if notification can't be send

If the notification can't be send (e.g. because there is no notification server available)
we don't want APT to exit with a failure, but only to display a warning.

Refs: #14594

Revision ce472a40 (diff)
Added by alant 4 months ago

ASP: get_additional_packages returns a set

We don't care about the order and every item should be unique, so
it makes more sense.

Refs: #14594

Revision da3dfea6 (diff)
Added by alant 4 months ago

ASP: write config file atomically

Refs: #14594

Revision bde45023 (diff)
Added by alant 4 months ago

ASP: implement additional packages removal

Refs: #14594

Revision e198143e (diff)
Added by alant 4 months ago

ASP: implement opening tails documentation

Refs: #14594

Revision 761926b8 (diff)
Added by alant 4 months ago

ASP: implement interaction with persistence-setup

Refs: #14594

Revision 28185c6e (diff)
Added by alant 4 months ago

ASP: fix TypeError by converting set to list

This fixes commit ce472a408a.

Refs: #14594

Revision c8994a9d (diff)
Added by alant 4 months ago

ASP: fix python 3.5 compatibility

Encoding argument to subprocess.run was added in python 3.6.
universal_newlines ensures that file objects are opened in text
mode with io.TextIOWrapper default.

Fix commit e74258f.

Refs: #14594.

Revision abc7ee45 (diff)
Added by alant 4 months ago

ASP: fix notification helper arguments check

This fixes a bug introduced by e198143e1b.

Refs: #14594

Revision a25dbc6d (diff)
Added by alant 4 months ago

ASP: use notify return values that makes more sense

Return the number of the action clicked rater than True or False, because it's
more readeable to have:

if button_clicked  0

than:

if button_clicked  False

Refs: #14594

Revision 7a864365 (diff)
Added by alant 4 months ago

ASP: don't show system log if the user didn't click any button

Refs: #14594

Revision 008ad9bb (diff)
Added by alant 4 months ago

ASP: create state dir with systemd-tempfiles

This way we are sure it exists and has the right permissions.

Refs: #14594

Revision 5569e050 (diff)
Added by alant 4 months ago

ASP: don't clear all additional packages on removal

Fixes e19814e.

Refs #14594

Revision 5a3c2b41 (diff)
Added by alant 4 months ago

ASP: implicit conversion using list.extend

Fixes: 761926b8.

Refs: #14594

Revision 8fa9b872 (diff)
Added by alant 4 months ago

ASP: use the right user to launch persistence setup

Refs: #14594

Revision 36638a6c (diff)
Added by alant 4 months ago

ASP: fix set update operator

Refs: #14594

Revision af52bdec (diff)
Added by alant 4 months ago

ASP: call TPS with the right permissions and check for errors

Refs: #14594

Revision fd7aedc1 (diff)
Added by alant 4 months ago

ASP: fix syntax error if TPS fails

Refs: #14594

Revision ca6a253e (diff)
Added by alant 4 months ago

ASP: re-raise exception after logging if TPS fails

Refs: #14594

Revision 44a3e418 (diff)
Added by alant 4 months ago

ASP: fake implementation of tails_media_is_writable

Refs: #14594

Revision cede2ae9 (diff)
Added by alant 4 months ago

ASP: call TPS bootstrap to create persistence

Refs: #14594

Revision 4bec3365 (diff)
Added by alant 4 months ago

ASP: get uid from pwd database

Refs: #14594

Revision 967cb464 (diff)
Added by alant 4 months ago

ASP: fix documentation opening from the notification

Fixes: e198143e. Refs: #14594.

Revision 7bcc2898 (diff)
Added by alant 4 months ago

ASP: fix documentation link when offline

Refs: #14594.

Revision b7c7ad19 (diff)
Added by alant 4 months ago

ASP: add some logging

Refs: #14594.

Revision 5080bea5 (diff)
Added by alant 4 months ago

Allow persistence-setup to mount all devices

Else, when it's not run from amnesia, it can't mount persistence.

Refs: #14594

Revision 59672cab (diff)
Added by intrigeri 4 months ago

Add a tails-boot-device-can-have-persistence utility (refs: #14594)

/usr/local/sbin/tails-additional-software needs that to decide what the best
course of action is, at least when a package is being installed.

Revision 9c4b1568 (diff)
Added by alant 4 months ago

ASP: handle writing to the newly created persistence

When the persistence is created, it is not mounted in its canonical location.
Handle this case when saving/updating package lists.

Refs: #14594.

Revision 543f5138 (diff)
Added by alant 4 months ago

ASP: implement is_tails_media_writable

Refs: #14594

Revision 2f974252 (diff)
Added by alant 4 months ago

ASP: try to open the package list instead of checking before

Refs: #14594.

Revision e02ca2d6 (diff)
Added by alant 4 months ago

ASP: consistently check for the config file in both install and upgrade

Refs: #14594

Revision e42991fa (diff)
Added by alant 4 months ago

ASP: synchronize APT data to newly created persistence on shutdown

Refs: #14594

Revision b34e8a51 (diff)
Added by alant 4 months ago

ASP: update packages lists at synaptic startup

Refs: #12238 #14594

Revision 55bd0835 (diff)
Added by alant 4 months ago

ASP: split configuration file handling into pythonlib

Refs: #14594

Revision 98c03ae0 (diff)
Added by alant 4 months ago

ASP: fix has_unlocked_persistence in case there is no persistence

Refs: #14594

Revision 8db37f81 (diff)
Added by alant 4 months ago

ASP: fix typo in tails-synchronize-data-to-new-persistent-volume.service

Refs: #14594

Revision e7e0d048 (diff)
Added by alant 4 months ago

ASP: update tails python library

Refs: #14594

Revision 1d7790ca (diff)
Added by alant 3 months ago

ASP: roughtly implement configuration window

Refs: #14594

Revision 0f3866d6 (diff)
Added by alant 3 months ago

live-persist: allow configuring correct access rights

Refs: #14594

Revision 636fde21 (diff)
Added by alant 3 months ago

live-persist: ASP config file should be world-readable

Refs: #14594

Revision d3775c31 (diff)
Added by alant 3 months ago

ASP: make configuration window translatable

Refs: #14594

Revision 6ddf6c8d (diff)
Added by alant 3 months ago

ASP: add desktop file for configuration window

Refs: #14594

Revision da413753 (diff)
Added by alant 3 months ago

ASP: add separators between listbox items the right way

Refs: #14594

Revision 9caa39dc (diff)
Added by alant 3 months ago

ASP: fix punctuation in configuration window

Refs: #14594

Revision 91a52976 (diff)
Added by alant 3 months ago

ASP: make listbox scrollable

Also add a empty last line, else the last line has no separator with
the empty space at the bottom of the listbox created by the scrollable
window.

Refs: #14594

Revision 9304530e (diff)
Added by alant 3 months ago

ASP: fix package summary code

Refs: #14594

Revision acd4ee43 (diff)
Added by alant 3 months ago

ASP: fix synaptic launching

Refs: #14594

Revision 36b3d9ba (diff)
Added by alant 3 months ago

ASP: implement confirmation dialog for additional package removal

Refs: #14594

Revision 916420b8 (diff)
Added by alant 3 months ago

pythonlib: include subpackage additionalsoftware

Refs: #14594

Revision 932fcb9a (diff)
Added by alant 3 months ago

ASP: notify when ASP configuration fails

Refs: #14594.

Revision d868d613 (diff)
Added by alant 3 months ago

ASP: close install notification also in case of failure

Refs: #14594

Revision a135f906 (diff)
Added by alant 3 months ago

ASP: don't list upgraded packages

Refs: #15380 #14594

Revision 4f915131 (diff)
Added by alant 3 months ago

ASP: harmonize configuration window title with the design

Refs: #15385 #14594

Revision 8dd945ef (diff)
Added by bertagaz 3 months ago

ASP: install DPKG hooks at the end of the build hooks.

Commit 85d42412212002dd51e23d3775b56966e807f6cd reintroduce the cyclic
dependency where the ASP hooks are triggered when installing a package
while building the ISO. So let's install this ASP hooks at the very end
of the build hooks so that they don't interfere anymore in the build
process.

Refs: #14594

Revision 20bb1dc7 (diff)
Added by alant 3 months ago

ASP: install python3-setuptools with ensure_hook_dependency_is_installed

This in possible again since commit 8dd945e.
Refs: #14594.

Revision 15242ed4 (diff)
Added by alant 3 months ago

ASP: save disabled APT conf snippet in /etc/apt/apt.conf.d/

Save disabled APT conf snippet in /etc/apt/apt.conf.d/ but enable it in the end
of the build only. This makes the code more understandable for future
maintainers than creating the file from the build hook.

Refs: #14594.

Revision c3631c8b (diff)
Added by alant 3 months ago

ASP: remove code to exit if running from live build

Since commit 8dd945e the ASP dpkg hooks are installed in the end of the build,
making this code useless.

Refs: #14594

Revision 599409c0 (diff)
Added by alant 3 months ago

ASP: use logging instead of directly calling syslog

This is cleaner and will help implementing the "Show Log" button.

Refs: #14594

Revision 29580f02 (diff)
Added by alant 3 months ago

ASP: log to a file in addition to syslog

This with help implementing the "Show Log" button.

Refs: #14594.

Revision 8f93a8c8 (diff)
Added by alant 3 months ago

ASP: log more details if debugging is enabled

Refs: #14594

Revision 6d358800 (diff)
Added by alant 3 months ago

ASP: redirect xhost output to os.devnull

This prevent writing junk to stdout.

Refs: #14594

Revision 60c803e4 (diff)
Added by alant 3 months ago

ASP: factor out X application launching

Refs: #14594

Revision 896b18bd (diff)
Added by alant 3 months ago

ASP: implement showing log and configuration

Refs: #14594

Revision 582648f7 (diff)
Added by alant 3 months ago

ASP: fix buttons swapped in failure notification

Refs: #14594.

Revision 4851c247 (diff)
Added by alant 3 months ago

ASP: revert c3631c8b9a

Without this, the end of the build fails.

Refs: #14594.

Revision 1d1d1a45 (diff)
Added by alant 3 months ago

ASP: close the confirmation dialog when removing a package

Refs: #14594.

Revision f81dfd3b (diff)
Added by alant 3 months ago

ASP: implement the helper to remove additional software form the configuration

Refs: #14594.

Revision a42bbf43 (diff)
Added by alant 3 months ago

ASP: exit earlier if running inside live-build

Refs: #14594

Revision b38d9138 (diff)
Added by alant 3 months ago

ASP: don't hide OSError

Refs: #14594

Revision 6022d0b6 (diff)
Added by alant 3 months ago

ASP: only update packages list when file is readeable

Else, the update is triggered before the file gets the right permissions.

Refs: #14594

Revision af3f79ee (diff)
Added by bertagaz 3 months ago

Make ASP upgrade service create a state file after bootup.

Same than the install service. Is usefull to have a robust way to test
if the service started, and to chain things after.

Refs: #14594, #14596

Revision c089f27c (diff)
Added by bertagaz 3 months ago

Remove unicode character from ASP notification message.

It hits #12185.

Refs: #14594, #14596

Revision 21acad3d (diff)
Added by bertagaz 3 months ago

Test suite: Add a scenario for ASP, refine package hanling in the feature.

Refs: #14594

Revision 27e000b7 (diff)
Added by bertagaz 3 months ago

Test suite: remove workaround for #15430.

Fixed in ASP.

Refs: #14594, #15430

Revision 576e203f (diff)
Added by alant 3 months ago

Fix punctuation

Adds punctuation that was removed by c089f27c.

Refs: #14594.

Revision bce7961b (diff)
Added by bertagaz 3 months ago

ASP: give a try turning the 'Installing...' notification persistent.

It's otherwise very difficult to catch it sometimes, and makes the test
suite not so robust. Let see how it behaves when this is made
persistent, before asking others if we should turn it this way or not.

Refs: #14594, 14596

Revision 84d8b94d (diff)
Added by alant 2 months ago

ASP: move some generic code about persistence to tailslib

Refs: #14594

Revision ada264e2 (diff)
Added by alant 2 months ago

ASP: fix import after moving code in tailslib

Refs: #14594

Revision cf50c884 (diff)
Added by alant about 2 months ago

ASP: move launch_x_application and launch_persistence_setup to tailslib

Refs: #14594

Revision c36ea76f (diff)
Added by alant about 2 months ago

ASP: update package list after persistence creation

Refs: #14594

Revision 9216f5d1 (diff)
Added by alant about 2 months ago

ASP: import new tailslib

Refs: #14594

History

#2 Updated by u 10 months ago

  • Related to Feature #14595: Code for Additional Software Packages GUI: Persistence Setup added

#3 Updated by u 9 months ago

  • Description updated (diff)
  • Target version set to Tails_3.7

#5 Updated by intrigeri 9 months ago

  • Status changed from Confirmed to In Progress

#6 Updated by intrigeri 9 months ago

  • Related to deleted (Feature #14595: Code for Additional Software Packages GUI: Persistence Setup)

#7 Updated by intrigeri 9 months ago

  • Blocked by Feature #14574: Design GUI for Additional Software packages added

#8 Updated by alant 5 months ago

  • Feature Branch set to feature/14594-asp-gui
  • Blueprint set to https://tails.boum.org/blueprint/additional_software_packages/gui/

#9 Updated by alant 5 months ago

  • File asp-chart.svg added
  • File asp-persistence-setup.svg added

#10 Updated by alant 5 months ago

  • File asp-chart.odg added

#11 Updated by alant 5 months ago

  • File asp-chart.odg added
  • File asp-flowchart.svg added

#12 Updated by alant 4 months ago

  • File asp-chart-installed.svg added
  • File asp-chart-removed.svg added

#13 Updated by alant 4 months ago

  • File asp-chart.odg added
  • File asp-chart.svg added
  • File asp-persistence-setup.svg added

Update design according to review.

#14 Updated by alant 4 months ago

  • File asp-chart.svg added

#16 Updated by alant 4 months ago

  • File deleted (asp-chart.svg)

#17 Updated by alant 4 months ago

  • File deleted (asp-persistence-setup.svg)

#18 Updated by alant 4 months ago

  • File deleted (asp-chart.odg)

#19 Updated by alant 4 months ago

  • File deleted (asp-flowchart.svg)

#20 Updated by alant 4 months ago

  • File deleted (asp-chart.odg)

#21 Updated by alant 4 months ago

  • File deleted (asp-chart-installed.svg)

#22 Updated by alant 4 months ago

  • File deleted (asp-chart-removed.svg)

#23 Updated by alant 4 months ago

  • File deleted (asp-chart.odg)

#24 Updated by alant 4 months ago

  • File deleted (asp-chart.svg)

#25 Updated by alant 4 months ago

  • File deleted (asp-persistence-setup.svg)

#26 Updated by alant 4 months ago

  • File deleted (asp-chart.svg)

#27 Updated by intrigeri 4 months ago

  • Related to Feature #15313: Apply changes to persistent features without the need for a Save button added

#28 Updated by intrigeri 4 months ago

  • Feature Branch changed from feature/14594-asp-gui to perl5lib:feature/14594-asp-gui, iuk:feature/14594-asp-gui, persistence-setup:feature/14594-asp-gui, feature/14594-asp-gui

#29 Updated by alant 3 months ago

Most of the code and GUI is done. We mostly miss:

  • strings for uncommon case in the configuration window welcome screen
  • the implementation of removal from the list in the configuration window
  • notification of failure when adding/removing a package from the notification

Also there are probably lots of bugs, including:

  • when a package is installed from packagekitd, removal from ASP works, but adding ASP fails

#30 Updated by bertagaz 3 months ago

I do not mean to put pressure, but I have some and it seems the ISO fails to build with:

20:03:01 + ./refresh-translations
20:03:02 Files tails.pot.orig and tails.pot differ
20:03:02 Real changes in tails.pot: switching to the updated one
20:03:02 The following files contain translations and are currently not in use. Please
20:03:02 consider adding these to the POTFILES.in file, located in the po/ directory.
20:03:02 
20:03:02 config/chroot_local-includes/usr/share/tails/additional-software/configuration-window.ui
20:03:02 
20:03:02 If some of these files are left out on purpose then please add them to
20:03:02 POTFILES.skip instead of POTFILES.in. A file 'missing' containing this list
20:03:02 of left out files has been written in the current directory.

Should be easy to fix.

#31 Updated by intrigeri 3 months ago

bertagaz wrote:

it seems the ISO fails to build with:

Fixed but the build still FTBFS later on, in the 10-tbb hook, exactly like when the APT hook was run even in the live-build context. Looking at the diff since my last successful build, nothing obvious pops to mind. I bet that /usr/local/sbin/tails-additional-software fails before it had a chance to check whether it's running in the context of live-build. Might it be that from tailslib.additionalsoftware.config import […] fails?

#32 Updated by intrigeri 3 months ago

bertagaz wrote:

I do not mean to put pressure, but I have some and it seems the ISO fails to build with:

For your needs, I bet that the ISO from the last successful build is good enough.

#33 Updated by intrigeri 3 months ago

intrigeri wrote:

Fixed but the build still FTBFS later on, in the 10-tbb hook

Fixed! … at build time (646ae3cda18c22003cf33eea6f2be7f6e273de27). No idea if the breakage will affect runtime, I'll let Alan handle this.

#34 Updated by intrigeri 3 months ago

intrigeri wrote:

No idea if the breakage will affect runtime, I'll let Alan handle this.

tails-additional-software-config appears to be broken:

Mar 06 09:22:23 amnesia tails-persistence-setup.desktop[8283]: Traceback (most recent call last):
Mar 06 09:22:23 amnesia tails-persistence-setup.desktop[8283]:   File "/usr/local/bin/tails-additional-software-config", line 15, in <module>
Mar 06 09:22:23 amnesia tails-persistence-setup.desktop[8283]:     from tailslib.additionalsoftware.config import (            # NOQA: E402
Mar 06 09:22:23 amnesia tails-persistence-setup.desktop[8283]: ImportError: No module named 'tailslib.additionalsoftware'

#35 Updated by alant 3 months ago

intrigeri wrote:

No idea if the breakage will affect runtime, I'll let Alan handle this.

I think I fixed this, I forgot to update tailslib's setup.py.

#36 Updated by alant 3 months ago

  • notification of failure when adding/removing a package from the notification

Done.

I added subtickets for the other remaining subtasks.

#37 Updated by intrigeri 3 months ago

Alan, I've merged current devel into the branch, resolved conflicts, merged current master into your pythonlib branch, but the branch FTBFS:

08:23:15 Get:1 http://time-based.snapshots.deb.tails.boum.org/debian/2018031601 stretch/main amd64 python3-setuptools all 33.1.1-1 [215 kB]
08:23:17 Traceback (most recent call last):
08:23:17   File "/usr/local/sbin/tails-additional-software", line 15, in <module>
08:23:17     from tailslib.additionalsoftware.config import (
08:23:17 ImportError: No module named 'tailslib'

I think that's a cyclic dependency situation caused by the combination of the APT hooks you're introducing in this branch + e0b24a215182fe386ce2940639b115039cdfadaa. I've fixed it with 3ba1893b4a317071308d658d8dca47338fe46876, please take a look.

#38 Updated by alant 3 months ago

intrigeri wrote:

I think that's a cyclic dependency situation caused by the combination of the APT hooks you're introducing in this branch + e0b24a215182fe386ce2940639b115039cdfadaa. I've fixed it with 3ba1893b4a317071308d658d8dca47338fe46876, please take a look.

Your fix looks good, thanks!

However, I'm not convinced at all that using (not standard) setuptools to workaround a wierd apparmor behaviour is a good idea. I won't argue endlessly on that, but it looks to me like piling patches (because apparmor behaves wierdly, use setuptools. Then install setuptools and remove it wierdly...)

#39 Updated by intrigeri 3 months ago

However, I'm not convinced at all that using (not standard) setuptools to workaround a wierd apparmor behaviour is a good idea.

I agree it would have been preferable to fix the AppArmor policy but I also understand why segfault preferred to implement a solution that's closer to his comfort zone.

(Nitpicking: AppArmor was not behaving weirdly at all. It was doing exactly what the policy we ship says.)

#40 Updated by bertagaz 3 months ago

I've broken the build when I merged devel into the branch, I'll repair that ASAP.

#41 Updated by bertagaz 3 months ago

bertagaz wrote:

I've broken the build when I merged devel into the branch, I'll repair that ASAP.

I've pushed 8dd945efef3e4f47f11742862cf34b098ae42cc2 which fixes the build and sounds more robust for future changes in the build hooks. Please alant have a look.

#42 Updated by intrigeri 3 months ago

bertagaz wrote:

bertagaz wrote:

I've broken the build when I merged devel into the branch, I'll repair that ASAP.

I've pushed 8dd945efef3e4f47f11742862cf34b098ae42cc2 which fixes the build and sounds more robust for future changes in the build hooks. Please alant have a look.

LGTM but then:

  • 3ba1893b4a317071308d658d8dca47338fe46876 can probably be reverted
  • the code in t-a-s-p that detects a live-build environment should probably be removed
    *.Please rename the hook to s/DPKG/dpkg/ (AFAIK "DPKG" is not a thing :)

#43 Updated by alant 3 months ago

bertagaz wrote:

I've pushed 8dd945efef3e4f47f11742862cf34b098ae42cc2 which fixes the build and sounds more robust for future changes in the build hooks. Please alant have a look.

Thanks for fixing the build.

The commit looks good in terms of result. I agree that if we keep it we should revert the previous fix as well as the specific code in tails-additional-software (I can do that part).

However, I'm afraid that having the APT configuration saved inside a build hook will make it difficult to find when working on this feature later. I propose to have config/chroot_local-includes/etc/apt/apt.conf.d/80tails-additional-software.disabled contain the configuaration (man apt.conf says that it will be ignored by APT) and move it to config/chroot_local-includes/etc/apt/apt.conf.d/80tails-additional-software in the build hook. If you agree, I can implement that.

#44 Updated by alant 3 months ago

  • Assignee changed from alant to bertagaz
  • QA Check set to Info Needed

#45 Updated by intrigeri 3 months ago

  • Assignee changed from bertagaz to alant
  • QA Check changed from Info Needed to Dev Needed

I propose to have config/chroot_local-includes/etc/apt/apt.conf.d/80tails-additional-software.disabled contain the configuaration (man apt.conf says that it will be ignored by APT) and move it to config/chroot_local-includes/etc/apt/apt.conf.d/80tails-additional-software in the build hook. If you agree, I can implement that.

Sounds good! (And I don't think we need to wait for bertagaz' opinion on this topic.)

#46 Updated by bertagaz 3 months ago

alant wrote:

The commit looks good in terms of result. I agree that if we keep it we should revert the previous fix as well as the specific code in tails-additional-software (I can do that part).

I agree! I was busy with #15496 and just wanted the build to work, so I did not follow on that. If you want to do it, be my guest. :)

However, I'm afraid that having the APT configuration saved inside a build hook will make it difficult to find when working on this feature later. I propose to have config/chroot_local-includes/etc/apt/apt.conf.d/80tails-additional-software.disabled contain the configuaration (man apt.conf says that it will be ignored by APT) and move it to config/chroot_local-includes/etc/apt/apt.conf.d/80tails-additional-software in the build hook. If you agree, I can implement that.

OK, that sounds like a good idea. Please do that. :)

#47 Updated by alant 3 months ago

bertagaz wrote:

alant wrote:

The commit looks good in terms of result. I agree that if we keep it we should revert the previous fix

Done.

as well as the specific code in tails-additional-software (I can do that part).

This breaks the build. It seems the hooks are not the last part of the build process, and APT is needed after the last hook.

However, I'm afraid that having the APT configuration saved inside a build hook will make it difficult to find when working on this feature later. I propose to have config/chroot_local-includes/etc/apt/apt.conf.d/80tails-additional-software.disabled contain the configuaration (man apt.conf says that it will be ignored by APT) and move it to config/chroot_local-includes/etc/apt/apt.conf.d/80tails-additional-software in the build hook. If you agree, I can implement that.

OK, that sounds like a good idea. Please do that. :)

Done too.

#48 Updated by bertagaz 3 months ago

alant wrote:

as well as the specific code in tails-additional-software (I can do that part).

This breaks the build. It seems the hooks are not the last part of the build process, and APT is needed after the last hook.

ACK.

However, I'm afraid that having the APT configuration saved inside a build hook will make it difficult to find when working on this feature later. I propose to have config/chroot_local-includes/etc/apt/apt.conf.d/80tails-additional-software.disabled contain the configuaration (man apt.conf says that it will be ignored by APT) and move it to config/chroot_local-includes/etc/apt/apt.conf.d/80tails-additional-software in the build hook. If you agree, I can implement that.

Done too.

Awesome.

I've gone a good deal forward on #14596, and I have one remark: the 'Installing your additional software from persistent storage' notification is not permanent. It is closed when the APT command ends. I can understand the reason why: another notification is then showed up. But it makes this first notification hard to catch in the test suite.

So there's two options about it for #14596: either we ignore this notification (because its detection is not robust enough in the test suite), either we turn this notification in a more 'permanent' one.

I don't care much of the choice. I've pushed bce7961b in the feature/14596-automated-tests-for-ASP-gui-with-installing-notification that removes the _close_notification calls and function. It's running in Jenkins with the tests for #14596, just in case this option is chosen, to see if it's more robust.

I think it could be OK to set this notification as 'permanent' in the user point of view, that way they'll have a sort of full notification history in the notification area, which is a bit how I understood this area. But alant and sojolida are probably the best to make the final call about this.

#49 Updated by alant 2 months ago

I've gone a good deal forward on #14596, and I have one remark: the 'Installing your additional software from persistent storage' notification is not permanent. It is closed when the APT command ends. I can understand the reason why: another notification is then showed up. But it makes this first notification hard to catch in the test suite.

So there's two options about it for #14596: either we ignore this notification (because its detection is not robust enough in the test suite), either we turn this notification in a more 'permanent' one.

I don't care much of the choice. I've pushed bce7961b in the feature/14596-automated-tests-for-ASP-gui-with-installing-notification that removes the _close_notification calls and function. It's running in Jenkins with the tests for #14596, just in case this option is chosen, to see if it's more robust.

I think it could be OK to set this notification as 'permanent' in the user point of view, that way they'll have a sort of full notification history in the notification area, which is a bit how I understood this area. But alant and sojolida are probably the best to make the final call about this.

It would simplify the code to keep this notification as 'permanent'. This was what I did first when implementing the feature. But in terms of UX I was feeling it was wierd and then I implemented the closing. Unless Sajolida thinks the opposite I would be in favor of closing the notification like I do now, even if it can't be easily tested.

Also, would it be possible to listen to org.freedesktop.Notifications and test the call to Notifiy call? This looks robust to me.

#50 Updated by bertagaz 2 months ago

  • Assignee changed from alant to sajolida
  • QA Check changed from Dev Needed to Info Needed

alant wrote:

It would simplify the code to keep this notification as 'permanent'. This was what I did first when implementing the feature. But in terms of UX I was feeling it was wierd and then I implemented the closing. Unless Sajolida thinks the opposite I would be in favor of closing the notification like I do now, even if it can't be easily tested.

Ack, I got why it is closed and it makes sense. Let's assign temporary this ticket to sajolida so he gets it on his radar.

Also, would it be possible to listen to org.freedesktop.Notifications and test the call to Notifiy call? This looks robust to me.

Interesting, I did not think about this, I'll investigate this path and report.

#51 Updated by sajolida 2 months ago

Unless Sajolida thinks the opposite I would be in favor of closing the notification like I do now, even if it can't be easily tested.

I'm fine with that! Let's favor making the interface nicer to humans
over making it nicer to machines :)

#52 Updated by sajolida 2 months ago

  • Assignee changed from sajolida to bertagaz
  • QA Check changed from Info Needed to Dev Needed

#53 Updated by alant 2 months ago

  • Assignee changed from bertagaz to alant

#54 Updated by bertagaz about 1 month ago

  • Target version changed from Tails_3.7 to Tails_3.8

Also available in: Atom PDF