Feature #14594

Code & integration into Tails: Additional Software Packages GUI

Added by Anonymous 2017-09-04 17:06:52 . Updated 2018-07-17 13:34:44 .

Status:
Resolved
Priority:
Normal
Assignee:
alant
Category:
Target version:
Start date:
2013-12-11
Due date:
% Done:

100%

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
Deliverable for:
299

Description

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


Files


Subtasks

Feature #14595: Code for Additional Software Packages GUI: Persistence Setup Resolved intrigeri

100

Bug #15380: ASP proposes me to add packages upgraded with Synaptic to my additional software Resolved alant

100

Bug #15382: APT hooks for ASP should be non-blocking Resolved alant

100

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

100

Feature #15386: Confusing UX due to Additional Software configuration GUI not refreshing packages list Resolved alant

100

Feature #15404: ASP: finish configuration window welcome screen Resolved alant

100

Feature #15405: ASP: implementat removal from the list in the configuration window Resolved alant

100

Feature #15423: Clarify unspecified items of the interface Resolved

100

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

100

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

100

Bug #15455: Synaptic error on open Rejected alant

0

Feature #15527: Adjust the UI strings of Additional Software to the ones designed in the wireframes Resolved sajolida

80

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

100

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

100


Related issues

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

History

#2 Updated by Anonymous 2017-09-04 17:11:24

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

#3 Updated by Anonymous 2017-09-07 08:35:17

  • Description updated
  • Target version set to Tails_3.7

#4 Updated by Anonymous 2017-09-07 08:35:27

  • Deliverable for changed from 277 to 299

#5 Updated by intrigeri 2017-09-16 10:39:52

  • Status changed from Confirmed to In Progress

Applied in changeset commit:ecb171284086931fe7276d3b04e6cadca5705568.

#6 Updated by intrigeri 2017-09-29 17:48:20

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

#7 Updated by intrigeri 2017-09-29 17:49:43

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

#8 Updated by alant 2018-01-29 10:07:56

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

#9 Updated by alant 2018-01-29 14:48:41

  • File <del>missing: asp-chart.svg</del> added
  • File <del>missing: asp-persistence-setup.svg</del> added

#10 Updated by alant 2018-01-29 14:54:25

  • File <del>missing: asp-chart.odg</del> added

#11 Updated by alant 2018-01-29 15:24:33

  • File <del>missing: asp-chart.odg</del> added
  • File <del>missing: asp-flowchart.svg</del> added

#12 Updated by alant 2018-02-04 22:08:59

  • File <del>missing: asp-chart-installed.svg</del> added
  • File <del>missing: asp-chart-removed.svg</del> added

#13 Updated by alant 2018-02-24 19:34:22

  • File <del>missing: asp-chart.odg</del> added
  • File <del>missing: asp-chart.svg</del> added
  • File <del>missing: asp-persistence-setup.svg</del> added

Update design according to review.

#14 Updated by alant 2018-02-24 19:40:43

  • File <del>missing: asp-chart.svg</del> added

#15 Updated by alant 2018-03-02 12:22:52

#16 Updated by alant 2018-03-02 12:23:08

  • File deleted (asp-chart.svg)

#17 Updated by alant 2018-03-02 12:23:16

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

#18 Updated by alant 2018-03-02 12:23:18

  • File deleted (asp-chart.odg)

#19 Updated by alant 2018-03-02 12:23:26

  • File deleted (asp-flowchart.svg)

#20 Updated by alant 2018-03-02 12:23:33

  • File deleted (asp-chart.odg)

#21 Updated by alant 2018-03-02 12:23:41

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

#22 Updated by alant 2018-03-02 12:23:46

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

#23 Updated by alant 2018-03-02 12:23:52

  • File deleted (asp-chart.odg)

#24 Updated by alant 2018-03-02 12:24:07

  • File deleted (asp-chart.svg)

#25 Updated by alant 2018-03-02 12:24:15

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

#26 Updated by alant 2018-03-02 12:24:22

  • File deleted (asp-chart.svg)

#27 Updated by intrigeri 2018-03-04 13:21:20

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

#28 Updated by intrigeri 2018-03-05 10:25:42

  • 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 2018-03-05 22:24:59

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 2018-03-05 23:25:14

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 2018-03-06 07:33:35

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 2018-03-06 07:35:35

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 2018-03-06 07:58:57

intrigeri wrote:
> Fixed but the build still FTBFS later on, in the 10-tbb hook

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

#34 Updated by intrigeri 2018-03-06 09:38:03

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 2018-03-06 10:32:47

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 2018-03-13 13:41:20

> * notification of failure when adding/removing a package from the notification
>
Done.

I added subtickets for the other remaining subtasks.

#37 Updated by intrigeri 2018-03-16 09:37:33

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 + commit:e0b24a215182fe386ce2940639b115039cdfadaa. I’ve fixed it with commit:3ba1893b4a317071308d658d8dca47338fe46876, please take a look.

#38 Updated by alant 2018-03-18 10:42:52

intrigeri wrote:
> I think that’s a cyclic dependency situation caused by the combination of the APT hooks you’re introducing in this branch + commit:e0b24a215182fe386ce2940639b115039cdfadaa. I’ve fixed it with commit: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 2018-03-18 11:26:23

> 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 2018-03-19 15:35:07

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

#41 Updated by bertagaz 2018-03-20 13:16:28

bertagaz wrote:
> I’ve broken the build when I merged devel into the branch, I’ll repair that ASAP.

I’ve pushed commit: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 2018-03-21 14:24:05

bertagaz wrote:
> bertagaz wrote:
> > I’ve broken the build when I merged devel into the branch, I’ll repair that ASAP.
>
> I’ve pushed commit:8dd945efef3e4f47f11742862cf34b098ae42cc2 which fixes the build and sounds more robust for future changes in the build hooks. Please alant have a look.

LGTM but then:

  • commit: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 2018-03-22 23:54:56

bertagaz wrote:
> I’ve pushed commit: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 2018-03-22 23:55:35

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

#45 Updated by intrigeri 2018-03-23 05:30:29

  • 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 2018-03-23 12:43:00

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 Feature #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 2018-03-26 00:18:34

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 2018-04-03 12:50:52

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 Feature #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 Feature #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 commit: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 Feature #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 2018-04-05 12:43:10

> I’ve gone a good deal forward on Feature #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 Feature #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 commit: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 Feature #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 2018-04-05 13:04:58

  • 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 2018-04-07 09:57:08

> 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 2018-04-07 09:58:00

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

#53 Updated by alant 2018-04-15 21:07:09

  • Assignee changed from bertagaz to alant

#54 Updated by bertagaz 2018-05-10 11:09:25

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

#55 Updated by intrigeri 2018-06-26 16:28:01

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

#56 Updated by alant 2018-07-02 16:32:34

  • Status changed from In Progress to Resolved