Bug #8862

Display version number of destination device in Tails Installer

Added by sajolida 2015-02-04 22:23:25 . Updated 2019-06-12 09:53:27 .

Status:
Confirmed
Priority:
Low
Assignee:
Category:
Installation
Target version:
Start date:
2015-02-04
Due date:
% Done:

0%

Feature Branch:
Type of work:
Code
Starter:
Affected tool:
Installer
Deliverable for:

Description

When upgrade a destination device it would be super nice to display the version number of the destination device.

I mean here displaying in the list of target USB stick that a USB stick has Tails installed already and which version it is.


Subtasks

Bug #8863: Investigate embedding the version number in some GPT parameter Confirmed

0


Related issues

Related to Tails - Feature #8860: Tails Installer should autodetect if Tails is installed on the destination device Resolved 2015-02-04
Related to Tails - Feature #16796: Display the Tails version number during boot (Boot Loader Menu or Tails Greeter) Confirmed
Blocks Tails - Bug #14958: Tails Installer 5.0 proposes to upgrade even if the destination stick is already up-to-date Confirmed 2017-11-11

History

#1 Updated by sajolida 2015-02-04 22:25:33

  • related to Feature #8860: Tails Installer should autodetect if Tails is installed on the destination device added

#2 Updated by sajolida 2016-05-10 08:58:27

  • Blueprint set to https://tails.boum.org/blueprint/bootstrapping/installer#simplify

#3 Updated by sajolida 2018-01-19 15:54:05

  • related to Bug #14958: Tails Installer 5.0 proposes to upgrade even if the destination stick is already up-to-date added

#4 Updated by sajolida 2018-01-19 16:31:32

  • Description updated
  • Assignee set to intrigeri
  • QA Check set to Info Needed

I see that we have no notes yet on how this could be implemented.

Reading Bug #14622#note-11, I’m wondering if we could do that without requiring to mount the USB sticks that are meant to appear in the list of target USB sticks. Because I’m afraid that mounting stuff would lead to other problems or limitations down the road.

For example, could this be done with a GPT flag? It would have to be set by both Tails Installer and Tails Upgrader.

Could this also differentiate nightly, RC, and other builds that are not official releases?

#5 Updated by intrigeri 2018-01-19 17:25:34

  • Assignee changed from intrigeri to sajolida

> Reading Bug #14622#note-11, I’m wondering if we could do that without requiring to mount the USB sticks that are meant to appear in the list of target USB sticks. Because I’m afraid that mounting stuff would lead to other problems or limitations down the road.

This would be very nice indeed!

> For example, could this be done with a GPT flag? It would have to be set by both Tails Installer and Tails Upgrader.

We have only 16 bits (48–63) available in the system partition’s attribute flags entry for our own use, assuming the ESP itself does not need any (didn’t check yet). It’s doable but it’s tight and at some point it’ll require a painful transition once we’re close to overflowing. We could do for example (assuming 3.18.2):

  • 2 bits to encode the version of this encoding scheme (so we can change how we version our releases later or fix what follows if needed, or reset the counter when we overflow); 2 bits is not great but it’ll have to do
  • 4 bits to encode the major number (3) ⇒ we can go up to 16 (or cheat and start at 3, then we can go up to 19)
  • 5 bits to encode the minor number (18) ⇒ we can go up to 32
  • 3 bits to encode the type of release (emergency) ⇒ we can have 8 types like stable, emergency, RC, beta, alpha, nightly, etc.
  • 2 bits to encode a number whose meaning is specific to that type of release (1) ⇒ we can go up to 4 as an integer for a RC/alpha/beta/emergency; not sure about nightlies

This is already ugly because I had to cheat and compress stuff which is why I treat emergency releases like a special kind of release, even though they really are stable, in order to store the “.2” in the last field. I’m not saying these numbers are the best ones but in principle this demonstrates the feasibility: it can fit into 16 bits.

Details:

> Could this also differentiate nightly, RC, and other builds that are not official releases?

Apparently yes if my assumptions are correct.

My main concern with this is that we need to keep a close eye on when we’ll overflow.

I wonder if we could instead encode this info in the partition label. I don’t know if we rely on that label to be “Tails” anywhere, but surely it’s doable to require that it starts with “Tails” instead. But then it will be visible in various places (Files, Disks, etc.). What do you think?

#6 Updated by sajolida 2018-01-19 19:01:55

  • Assignee deleted (sajolida)
  • QA Check deleted (Info Needed)

At first sight it sounds very cool to have the version number in the partition label! And it wouldn’t come with the 16-bit restriction.

#7 Updated by sajolida 2018-03-27 11:50:18

  • related to deleted (Bug #14958: Tails Installer 5.0 proposes to upgrade even if the destination stick is already up-to-date)

#8 Updated by sajolida 2018-03-27 11:50:29

  • blocks Bug #14958: Tails Installer 5.0 proposes to upgrade even if the destination stick is already up-to-date added

#9 Updated by sajolida 2019-06-12 09:53:27

  • Priority changed from Normal to Low

#10 Updated by sajolida 2019-06-12 09:53:37

  • related to Feature #16796: Display the Tails version number during boot (Boot Loader Menu or Tails Greeter) added