Project

General

Profile

Bug #10539

Feature #7544: Have a multiplatform Installer

Feature #8550: Make Tails Installer work on Windows

Feature #8558: Study feasibility of porting Tails Installer to Windows

"Clone and upgrade" on Jessie pretends my Tails was not installed with our Installer

Added by intrigeri about 4 years ago. Updated almost 4 years ago.

Status:
Resolved
Priority:
High
Assignee:
-
Category:
Installation
Target version:
Start date:
11/12/2015
Due date:
% Done:

100%

Feature Branch:
451f:liveusb-creator/feature/jessie and 451f:liveusb-creator/tails/jessie
Type of work:
Code
Blueprint:
Starter:
Affected tool:
Installer

Description

I start from DVD a Tails built from feature/jessie today, "clone and install" it to a USB drive, reboot the same Tails from DVD, attempt "clone and upgrade" to the same USB drive, and I'm told:

It is impossible to upgrade the device QEMU QEMU HARDDISK (4.3 GB QEMU-QEMU-HARDDISK-1-0000:00:07.7-1) - /dev/sda1 because it was not created using Tails Installer. You should instead use "Clone & Install" to upgrade Tails on this device.

I think this worked on the GTK3 installer recently, and I suspect this is a regression introduced when merging master.


Related issues

Related to Tails - Feature #5623: Tails Installer should refuse upgrading a device that hasn't Tails installed Resolved
Blocks Tails - Feature #8557: Have Tails Installer uploaded and accepted into Debian Resolved 01/06/2015
Blocks Tails - Feature #7563: Update the automated test suite for Jessie ISO images Resolved 11/26/2014 01/15/2016

History

#2 Updated by intrigeri about 4 years ago

Note that this only affects Tails, so it's not blocking the upload to Debian. But it breaks some of the automated test suite, that's high prio for 1.8.

#3 Updated by intrigeri about 4 years ago

  • Related to Feature #5623: Tails Installer should refuse upgrading a device that hasn't Tails installed added

#4 Updated by intrigeri almost 4 years ago

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

#5 Updated by intrigeri almost 4 years ago

intrigeri wrote:

Note that this only affects Tails

Tested for real, and I was wrong.

#6 Updated by intrigeri almost 4 years ago

  • Blocks Feature #7563: Update the automated test suite for Jessie ISO images added

#7 Updated by u almost 4 years ago

  • Assignee changed from u to intrigeri
  • QA Check set to Ready for QA
  • Feature Branch set to 451f:feature/jessie

The function which tests if the USB device used is a Tails, does not do more than check the partition table, filesystem and disk label. The latter did not work correctly. I pushed a fix for this to feature/jessie, and built and tested tails-installer-4.4.3.
This latest deb package also contains Alan's latest UI improvements.

#8 Updated by intrigeri almost 4 years ago

  • Assignee changed from intrigeri to u
  • QA Check changed from Ready for QA to Info Needed

The function which tests if the USB device used is a Tails, does not do more than check the partition table, filesystem and disk label.

It checks the GPT partition label vs. the one we want (and the one we want is in self.label which could be reused, but for some reason it's hardcoded 'Tails' here. Whatever).

I pushed a fix for this to feature/jessie,

Assuming you mean:

-           and device['label'] == 'Tails':
+           and self.label == 'Tails':

... my understanding is that this updated condition will always be verified: self.label is initialized to config['branding']['partition_label'] (== 'Tails') on top of class TailsInstallerCreator, and I don't think it's modified anywhere else. So what this test now does is essentially 'Tails' == 'Tails', no?

I may be wrong, but it looks like device_can_be_upgraded will now return True if all other conditions are met, regardless of the target GPT partition label.

and built and tested tails-installer-4.4.3.

I assume you tested that the bug I reported is fixed by essentially dropping the test. I'd like to make sure you also test that we're not replacing this regression with another one (namely: Tails Installer allows "upgrading" a device that does not contain a Tails, which is what this code was supposed to guard against (#5623)).

I admit I'm doing lots of guesswork here, and didn't actually verify anything. If you actually tested this and think I'm wrong, just let me know and I'll do my homework :)

#9 Updated by u almost 4 years ago

  • Assignee changed from u to intrigeri
  • QA Check changed from Info Needed to Ready for QA
  • Feature Branch changed from 451f:feature/jessie to 451f:liveusb-creator/feature/jessie and 451f:liveusb-creator/tails/jessie

I've added the correct partition label property, as worked out earlier today. Thanks for your help on that one. Please review.

#10 Updated by u almost 4 years ago

intrigeri wrote:

... my understanding is that this updated condition will always be verified: self.label is initialized to config['branding']['partition_label'] (== 'Tails') on top of class TailsInstallerCreator, and I don't think it's modified anywhere else. So what this test now does is essentially 'Tails' == 'Tails', no?

FTR, this is absolutely correct, my testing was only half well done.
FTR again, what helped was udisksctl dump and running tails-installer with DEBUG=1.

#11 Updated by u almost 4 years ago

Also, after retesting again, please note that now we check for the partition name and not the filesystem label. If I modify the latter to something !Tails, the code will still work, as it checks the partition label.

#12 Updated by intrigeri almost 4 years ago

  • Status changed from Confirmed to In Progress
  • % Done changed from 0 to 50

I indeed can't reproduce the bug in tails-installer_4.4.4 :) Not tested other use cases manually, so more confidence will come when running the test suite => I'll upload a .deb soonish, tht should fix both #10538 and this very ticket.

#13 Updated by intrigeri almost 4 years ago

tails-installer 4.4.4+dfsg-0tails2 uploaded to feature-jessie

#14 Updated by intrigeri almost 4 years ago

  • Status changed from In Progress to Resolved
  • Assignee deleted (intrigeri)
  • % Done changed from 50 to 100
  • QA Check changed from Ready for QA to Pass

Tested manually because #10660 breaks the corresponding automated tests => works! :)

Also available in: Atom PDF