Bug #15945

Drop Python 2 in Tails 5.0

Added by intrigeri 2018-09-12 07:01:48 . Updated 2019-08-31 14:03:14 .

Status:
Confirmed
Priority:
Normal
Assignee:
Category:
Target version:
Start date:
2015-08-24
Due date:
% Done:

80%

Feature Branch:
Type of work:
Code
Blueprint:

Starter:
Affected tool:
Deliverable for:

Description


Files


Subtasks

Feature #5958: Port our custom software to Python 3 In Progress

80


Related issues

Related to Tails - Feature #15291: Remove less popular packages that users could install themselves Resolved 2018-04-17
Blocks Tails - Feature #16209: Core work: Foundations Team Confirmed

History

#1 Updated by lamby 2019-01-06 11:11:00

See attached image for the current packages blocking this removal.

#2 Updated by hefee 2019-01-06 12:09:01

From the screenshot you sent I searched for entries in the tails-common.list that we surly want to keep:

  • bookletimposer - GTK interface for pdfimposer
  • gnome-control-center
  • ibus-pinyin - chinese input method
  • tails-installer
  • inkscape
  • scribus (scribus-ng also still depdends on Python2)
  • mat
  • monkeysign
  • python-dogtail - our test suite needs this

All in all it looks not achievable for buster to get rid of Python2.

apt install python- bookletimposer gnome-control-center ibus-pinyin tails-installer inkscape scribus-ng mat monkeysign python-dogtail
Reading package lists... Done
Building dependency tree       
Reading state information... Done
bookletimposer is already the newest version (0.2-5).
gnome-control-center is already the newest version (1:3.30.2-2).
ibus-pinyin is already the newest version (1.5.0-5).
inkscape is already the newest version (0.92.3-7).
mat is already the newest version (0.6.1-5).
monkeysign is already the newest version (2.2.4).
python-dogtail is already the newest version (0.9.9-2).
scribus-ng is already the newest version (1.5.4+dfsg-3).
tails-installer is already the newest version (5.0.13+dfsg-0tails1).
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 bookletimposer : Depends: python-pypdf2 but it is not going to be installed
                  Depends: python:any (< 2.8)
                  Depends: python:any (>= 2.7.5-5~)
                  Depends: python-gi but it is not going to be installed
 ibus-pinyin : Depends: python-gi but it is not going to be installed
               Depends: python-xdg but it is not going to be installed
               Depends: python:any
 inkscape : Depends: python:any
 mat : Depends: python-mutagen but it is not going to be installed
       Depends: python-pdfrw but it is not going to be installed
       Depends: python:any (< 2.8)
       Depends: python:any (>= 2.7~)
       Depends: python-gi but it is not going to be installed
 monkeysign : Depends: python-socks but it is not going to be installed
              Depends: python:any (< 2.8)
              Depends: python:any (>= 2.7.5-5~)
              Depends: python-pkg-resources but it is not going to be installed
 python-dogtail : Depends: python-apt (>= 0.7.93) but it is not going to be installed
                  Depends: python-gi but it is not going to be installed
                  Depends: python-gi-cairo but it is not going to be installed
                  Depends: python-pyatspi but it is not going to be installed
                  Depends: python (< 2.8) but it is not going to be installed
                  Depends: python (>= 2.7) but it is not going to be installed
                  Depends: python:any (>= 2.6.6-7~)
 python-talloc : Depends: python (< 2.8) but it is not going to be installed
                 Depends: python (>= 2.7~) but it is not going to be installed
                 Depends: python:any (< 2.8)
                 Depends: python:any (>= 2.7~)
 scribus-ng : Depends: python-tk but it is not going to be installed
              Depends: scribus-ng-data (= 1.5.4+dfsg-3) but it is not going to be installed
              Depends: libopenscenegraph-3.4-131 but it is not going to be installed
 tails-installer : Depends: python (< 2.8) but it is not going to be installed
                   Depends: python (>= 2.7) but it is not going to be installed
                   Depends: python:any (>= 2.6.6-7~)
                   Depends: python-configobj but it is not going to be installed
                   Depends: python-gi but it is not going to be installed
                   Depends: python-urlgrabber but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

#3 Updated by hefee 2019-01-06 12:10:12

  • Status changed from Confirmed to Rejected

#4 Updated by intrigeri 2019-01-06 12:44:49

> From the screenshot you sent I searched for entries in the tails-common.list that we surly want to keep:

> * bookletimposer - GTK interface for pdfimposer

Let’s report a bug (+ forward upstream) to get it ported to Python 3. Either way, could be removed IMO, I’m pretty sure very few users need it and now we have a good Additional Software feature.

> * gnome-control-center

I’m curious how this (transitively?) depends on Python 2.

> * tails-installer

Should be relatively easy to port, modulo text encoding.

> * inkscape

Could be removed IMO → Additional Software.

> * scribus (scribus-ng also still depdends on Python2)

Could be removed IMO → Additional Software.

> * mat

Deprecated. Should be replaced by mat2 which is Python 3, see Debian BTS for the last blocker.

> * monkeysign

Abandoned upstream, could be removed IMO: Feature #11240.

> * python-dogtail - our test suite needs this

Feature #12185

> All in all it looks not achievable for buster to get rid of Python2.

Given the above, apart of gnome-control-center which remains to be researched and might be a blocker, the blockers seem to be:

  • dogtail → mostly Debian packaging work that we could do ourselves (not sure what’s going on there: Feature #12185#note-31); needs one new binary package, has to go through NEW
  • mat2 → mostly Debian packaging work that we could do ourselves; not trivial though, one package needs to be split, has to go through NEW
  • Tails Installer: Python coding work
  • reach an agreement about “yes we can stop shipping packages X and Y by default”

We could surely do this in time for 4.0 if we focused on it now (so things are done before the freeze) but I agree it’s not cheap.

I propose we 1. file bugs wherever relevant to ensure things are fixed in time for Bullseye (clearly we’re starting this too late this time); 2. postpone to Tails 5.0.

#5 Updated by intrigeri 2019-01-06 13:01:31

  • Status changed from Rejected to In Progress
  • Assignee changed from hefee to intrigeri

> I propose we 1. file bugs wherever relevant to ensure things are fixed in time for Bullseye (clearly we’re starting this too late this time); 2. postpone to Tails 5.0.

I’ll do that — unless hefee wants it — because I’d rather not be in almost the same situation in 2 years.

#6 Updated by intrigeri 2019-04-02 14:37:33

  • related to Feature #15291: Remove less popular packages that users could install themselves added

#7 Updated by intrigeri 2019-04-02 14:40:05

The Nautilus extension for MAT2 in Buster is Python 2 and there’s no way this changes. But for Bullseye hopefully python-nautilus will support Python 3.

#8 Updated by intrigeri 2019-04-02 14:43:26

  • Subject changed from Drop Python 2 in Tails 4.0 if it's cheap to Drop Python 2 in Tails 5.0

Next steps:

  1. ensure we have a ticket about porting tails-installer to Python3
  2. file an upstream bug about bookletimposer
  3. postpone this ticket to 5.0

#9 Updated by intrigeri 2019-04-02 14:52:18

  • Type of work changed from Test to Code

#10 Updated by intrigeri 2019-04-02 15:02:09

  • Assignee deleted (intrigeri)
  • Priority changed from Low to Normal
  • Target version changed from Tails_4.0 to Tails_5.0

intrigeri wrote:
> Next steps:
>
> # ensure we have a ticket about porting tails-installer to Python3

Feature #10085, which is now a subtask of this very ticket.

> # file an upstream bug about bookletimposer

Filed https://bugs.debian.org/926244, Cc’ing the upstream author.

> # postpone this ticket to 5.0

Boom!

#11 Updated by intrigeri 2019-08-31 14:03:14

  • Status changed from In Progress to Confirmed

#12 Updated by intrigeri 2019-12-01 08:26:52