Feature #8980

Port Tails Installer to GTK 3

Added by intrigeri 2015-02-28 10:16:39 . Updated 2015-08-04 03:21:18 .

Status:
Resolved
Priority:
Normal
Assignee:
Category:
Installation
Target version:
Start date:
2015-07-13
Due date:
% Done:

100%

Feature Branch:
feature/8980-gtk3-installer, liveusb-creator:feature/gtk3
Type of work:
Code
Blueprint:

Starter:
Affected tool:
Installer
Deliverable for:

Description

The Debian Qt team is actively working on dropping Qt 4, so I guess a package that relies on it won’t be accepted into testing/sid. Note that Qt 5 is in wheezy-backports, but pyqt5 is not.


Subtasks

Feature #9734: Tails Installer should notify when too small USB drives are not listed on gtk3 Resolved

100


Related issues

Blocks Tails - Feature #8557: Have Tails Installer uploaded and accepted into Debian Resolved 2015-01-06

History

#1 Updated by intrigeri 2015-02-28 10:16:54

  • blocks #8538 added

#2 Updated by intrigeri 2015-02-28 10:17:06

  • blocks Feature #8557: Have Tails Installer uploaded and accepted into Debian added

#3 Updated by intrigeri 2015-02-28 10:19:28

  • Target version changed from Tails_1.4 to Tails_1.4.1

#5 Updated by intrigeri 2015-03-01 21:37:57

  • Subject changed from Port Tails Installer to Qt 5 to Port Tails Installer to Qt 5 or GTK 3

#6 Updated by intrigeri 2015-03-19 17:06:40

A feature/new-ui branch was just pushed to upstream Git, and ports their code to Qt5. Not sure the port is finished, but it could push in favour of sticking to Qt for the time being.

#7 Updated by intrigeri 2015-05-02 04:19:23

That port to Qt5 is apparently using Qt Quick 2 and QML. I wasn’t able to find the bits needed to run it in Debian => emailed the Debian Qt maintainers, asking for advice / ETA / plans.

#8 Updated by intrigeri 2015-05-02 04:41:56

If “upstream” port to Qt 5 is done in a way that we can’t package it in Debian yet, or in a way that we can’t backport it for Jessie, then GTK 3 is getting more tempting again.

However, it’s not obvious to me that Python + GTK 3 is the best choice long-term wise, considering we want to port Tails Installer to Windows and OSX at some point. Regarding deploying Python + GTK 3 apps on Windows, my understanding is that:

  • according to https://blogs.gnome.org/kittykat/2014/01/29/developing-gtk-3-apps-with-python-on-windows/:
    • there’s no official installer for GTK, GObject and friends
    • there’s a third-party installer for those; depending on the version, it’s between 100 and 260MB; it depends on Python being already installed
  • it seems possible to bundle stuff with py2exe, but:
    • it’s unclear what exactly gets bundled: Python, GTK3, GObject?
    • is Python 3 supported by py2exe?
    • another source reports success, but it doesn’t see exactly straightforward, and seem to require quite a lot of hand-tuning if one doesn’t want a 180MB Windows installer
    • after reading another report, it’s not clear to me if/how one can generate the .exe from GNU/Linux; it seems that it would at least require installing lots of Windows-specific stuff somewhere, so that py2exe can bundle the DLLs etc.

#9 Updated by Anonymous 2015-06-28 10:02:32

  • Target version changed from Tails_1.4.1 to Tails_1.7

#10 Updated by intrigeri 2015-06-28 12:31:06

  • Target version changed from Tails_1.7 to Tails_1.5

Tails 1.6 will be out much too late for our deadline wrt. inclusion in Debian.

#11 Updated by intrigeri 2015-06-28 13:44:40

JFTR, regarding Qt 5 (even if it’s now been more or less decided to go with GTK 3 instead): the Debian KDE folks pointed me at http://pkg-kde.alioth.debian.org/qmlmodulesnaming.html, and wrote “Check for packages like qml-module-quick or alike”.

#12 Updated by intrigeri 2015-07-04 10:25:42

  • Subject changed from Port Tails Installer to Qt 5 or GTK 3 to Port Tails Installer to GTK 3
  • Status changed from Confirmed to In Progress
  • Feature Branch set to liveusb-creator:feature/gtk3

#13 Updated by intrigeri 2015-07-04 10:32:54

As of commit a11b4b4:

  • One should make sure that the log file keeps containing a superset of what’s on stderr: e.g. perhaps the newly introduced traceback.print_exc() breaks this assumption.
  • When running the installer from a Git checkout, no logo is displayed.
  • When the text doesn’t fit anymore in the status area, it’s not visible anymore as this thing doesn’t auto-scroll to the end.
  • When the “There are no device suitable to install Tails on” (sic) notification is shown in the infobar, the “close” (cross icon) button in the infobar has no effect.
  • One cannot move to the “Install” button with TAB: the status text area is editable, and then pressing TAB in there inserts, well, a TAB.

#14 Updated by intrigeri 2015-07-04 10:40:28

  • Assignee set to alant

#15 Updated by alant 2015-07-04 12:10:48

> * When the text doesn’t fit anymore in the status area, it’s not visible anymore as this thing doesn’t auto-scroll to the end.

Fixed in 1b70682 Scroll the log view to always display the last enty

> * When the “There are no device suitable to install Tails on” (sic) notification is shown in the infobar, the “close” (cross icon) button in the infobar has no effect.

Fixed in 80a6fb0 Render the infobar closable

> * One cannot move to the “Install” button with TAB: the status text area is editable, and then pressing TAB in there inserts, well, a TAB.

Fixed in 61bb71a Fix the log view editability and margins

#16 Updated by alant 2015-07-04 12:36:11

> * One should make sure that the log file keeps containing a superset of what’s on stderr: e.g. perhaps the newly introduced traceback.print_exc() breaks this assumption.

Fixed in 7968107 Also log traceback to log file

> * When running the installer from a Git checkout, no logo is displayed.

This was a local misconfiguration on the test machine

All these bugs are fixed!

#17 Updated by intrigeri 2015-07-04 12:54:27

  • Feature Branch changed from liveusb-creator:feature/gtk3 to feature/8980-gtk3-installer, liveusb-creator:feature/gtk3

#18 Updated by intrigeri 2015-07-05 03:38:41

I confirm all these bugs are fixed (congrats!), except:

alant wrote:
> > * When the text doesn’t fit anymore in the status area, it’s not visible anymore as this thing doesn’t auto-scroll to the end.
>
> Fixed in 1b70682 Scroll the log view to always display the last enty

I just saw the “Installation completed” (or similar) final line being truncated vertically, so this doesn’t seem to be fully fixed yet.

#19 Updated by intrigeri 2015-07-06 08:42:52

Here’s a new (minor) bug: lines that don’t fit in the status log area are not wrapped, and there’s a horizontal scrolling bar. IMO they should be wrapped instead.

#20 Updated by intrigeri 2015-07-06 08:45:14

intrigeri wrote:
> Here’s a new (minor) bug: lines that don’t fit in the status log area are not wrapped, and there’s a horizontal scrolling bar. IMO they should be wrapped instead.

I might have fixed in with commit 3412aca.

#21 Updated by intrigeri 2015-07-06 09:45:38

intrigeri wrote:
> intrigeri wrote:
> > Here’s a new (minor) bug: lines that don’t fit in the status log area are not wrapped, and there’s a horizontal scrolling bar. IMO they should be wrapped instead.
>
> I might have fixed in with commit 3412aca.

Confirmed, except the Git server is down right now so I can’t push.

#22 Updated by alant 2015-07-06 14:47:30

intrigeri wrote:
> I confirm all these bugs are fixed (congrats!), except:
>
> alant wrote:
> > > * When the text doesn’t fit anymore in the status area, it’s not visible anymore as this thing doesn’t auto-scroll to the end.
> >
> > Fixed in 1b70682 Scroll the log view to always display the last enty
>
> I just saw the “Installation completed” (or similar) final line being truncated vertically, so this doesn’t seem to be fully fixed yet.

This should be fixed in commit a9d2d50, but I can’t push either.

#23 Updated by intrigeri 2015-07-08 12:17:48

FTR, it now passes all the relevant bits of our automated test suite. So once each of us has been able to push their latest stuff to Git, I plan to merge into feature/jessie (both in the liveusb-creator and in main Tails repositories).

#24 Updated by intrigeri 2015-07-11 08:35:12

  • Status changed from In Progress to Resolved
  • % Done changed from 25 to 100

Applied in changeset commit:4d86420eb90602b88d1ecdbbc32559eb1e90fe40.

#25 Updated by intrigeri 2015-07-11 08:35:45

  • Assignee deleted (alant)
  • QA Check set to Pass