Project

General

Profile

Feature #15283

Feature #15281: Stack one single SquashFS diff when upgrading

Implement the "one single SquashFS diff" scheme in Tails Upgrader

Added by anonym about 2 years ago. Updated 3 months ago.

Status:
Resolved
Priority:
High
Assignee:
Category:
Installation
Target version:
Start date:
Due date:
% Done:

100%

Feature Branch:
feature/15281-single-squashfs-diff, iuk:feature/15281-single-squashfs-diff, perl5lib:feature/15281-single-squashfs-diff
Type of work:
Code
Blueprint:
Starter:
Affected tool:
Upgrader

Description

Tails Upgrader: make it remove previous IUKs and fix the module file.
UDF generation: initial-install-version

Assuming we want to ship this change in Tails version N, the cheapest testing strategy anonym & intrigeri could think of is:

  1. release these changes in N~beta1, that we prepare as cheaply as we can
  2. issue a dedicated call for testing; possibly count it as "manual testing" work for the members of our internal QA process
  3. once enough folks run N~beta1, prepare N~beta2, as cheaply as we can
  4. again, issue a dedicated call for testing
  5. schedule some time here to: wait for feedback and if something is broken, fix it in time for Tails N final
  6. ship the bugfixes (untested this time) in Tails N

Subtasks

Feature #6876: Have the incremental upgrade process use less RAMResolved

Feature #17152: Port tails-iuk to a more lightweight set of dependenciesResolved


Related issues

Blocked by Tails - Feature #15286: Adapt automated test suite for the "one single SquashFS diff" upgrade scheme Resolved 02/05/2018
Blocks Tails - Feature #16209: Core work: Foundations Team Confirmed
Blocked by Tails - Feature #17262: Make the build of overlayfs-based IUKs reproducible Resolved

Associated revisions

Revision 94e8ee90 (diff)
Added by intrigeri 3 months ago

Remove dead code (refs: #15283)

Revision 4644ebf0 (diff)
Added by intrigeri 3 months ago

Update list of commands that tails-install-iuk can run with sudo (refs: #15283)

Revision d2436999 (diff)
Added by intrigeri 3 months ago

Upgrader: drop temporary directory management (refs: #15283)

It was only needed for extracting nested archives.
Now that we can simply mount the IUK, we don't use this anymore.

Revision e5e98537
Added by segfault 3 months ago

Merge branch 'feature/15281-single-squashfs-diff' into stable (Closes: #15281, #15279, #15283, #15286)

History

#1 Updated by anonym about 2 years ago

Let's pick the relevant bits from tails-iuk's feature/11131-endless-upgrade branch and push them as a new one, maybe feature/15281-1bigiuk.

#2 Updated by anonym about 2 years ago

  • Parent task set to #15281

#3 Updated by anonym about 2 years ago

  • Feature Branch set to tails:feature/15281-1bigiuk installer:?

#4 Updated by intrigeri about 2 years ago

  • Subject changed from Adapt tails-iuk for 1BigIUK to Adapt Tails Upgrader for the "one single SquashFS diff" upgrade scheme
  • Feature Branch changed from tails:feature/15281-1bigiuk installer:? to iuk:feature/11131-endless-upgrade, perl5lib:feature/11131-endless-upgrade

#5 Updated by intrigeri about 2 years ago

  • Blocked by Feature #15286: Adapt automated test suite for the "one single SquashFS diff" upgrade scheme added

#6 Updated by intrigeri about 2 years ago

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

This works fine already in the context of the upgrader's own test suite. Next step is to revert the unrelated changes from the branch, wait for #15286, test it that way + manually.

#7 Updated by intrigeri about 2 years ago

  • Subject changed from Adapt Tails Upgrader for the "one single SquashFS diff" upgrade scheme to Implement the "one single SquashFS diff" scheme in Tails Upgrader

#8 Updated by anonym about 2 years ago

  • % Done changed from 10 to 30
  • QA Check set to Dev Needed
  • Feature Branch changed from iuk:feature/11131-endless-upgrade, perl5lib:feature/11131-endless-upgrade to feature/15281-single-squashfs-diff, iuk:feature/15281-single-squashfs-diff, perl5lib:feature/15281-single-squashfs-diff

intrigeri wrote:

Next step is to revert the unrelated changes from the branch, wait for #15286, test it that way + manually.

Done, + that I've imported the changes to tails-iuk and tails-perl5lib into the Tails feature branch, as a patch.

So the scenario we already had (now called Upgrading a pristine Tails via an IUK) passes, but the two new scenarios don't. They deal with the cases where one or more incremental upgrades already have been installed, and that's why these scenarios fail; old SquashFS deltas are neither removed from the filesystem nor from live/Tails.module's contents.

#9 Updated by anonym about 2 years ago

Even in the original feature/11131-endless-upgrade branch the last commit was:

commit 0b99b3826521417fbf08246c9af18fcd2b40e6ae
Author: intrigeri <intrigeri@boum.org>
Date:   Sun Feb 4 15:00:30 2018 +0000

    Test suite: check that old IUKs are deleted after installing a new one.

    (TDD, this is not implemented yet.)

so there's no code for deletnig old SquashFS diff:s! If you actually wrote that code, I guess you forgot to push.

#10 Updated by intrigeri about 2 years ago

anonym wrote:

Even in the original feature/11131-endless-upgrade branch the last commit was:
[...]
so there's no code for deletnig old SquashFS diff:s! If you actually wrote that code, I guess you forgot to push.

commit 6c7c72119ba2738414ec8600c593501ee308de61 (HEAD -> feature/11131-endless-upgrade, origin/feature/11131-endless-upgrade)
Author: intrigeri <intrigeri@boum.org>
Date:   Sun Feb 4 17:18:28 2018 +0000

    Delete all SquashFS diffs except the one(s) we've just installed (refs: #11831).

Note origin/feature/11131-endless-upgrade. So I guess you forgot to fetch before renaming my branch. I see you've deleted it, so I've pushed it again.

#11 Updated by intrigeri about 2 years ago

  • Assignee changed from intrigeri to anonym
  • QA Check changed from Dev Needed to Ready for QA

#12 Updated by intrigeri about 2 years ago

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

#13 Updated by intrigeri about 2 years ago

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

#14 Updated by intrigeri almost 2 years ago

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

#15 Updated by intrigeri almost 2 years ago

  • Target version changed from Tails_3.10.1 to Tails_3.11

#16 Updated by intrigeri over 1 year ago

  • Assignee changed from anonym to intrigeri

#17 Updated by intrigeri over 1 year ago

#18 Updated by intrigeri over 1 year ago

  • Target version changed from Tails_3.11 to Tails_3.12

#19 Updated by intrigeri over 1 year ago

  • Target version changed from Tails_3.12 to Tails_3.13

#20 Updated by intrigeri over 1 year ago

  • QA Check deleted (Ready for QA)

We have to change the IUK format (see #6876) so I'll need to go back to the drawing board. I think I have already some WIP about this, that could be salvaged, in the (obsolete) feature/11131-endless-upgrade branch of tails.git and iuk.git.

#21 Updated by intrigeri over 1 year ago

#22 Updated by intrigeri over 1 year ago

#23 Updated by intrigeri about 1 year ago

  • Target version changed from Tails_3.13 to 2019

#24 Updated by intrigeri about 1 year ago

#25 Updated by intrigeri about 1 year ago

#26 Updated by intrigeri 12 months ago

  • Assignee deleted (intrigeri)

#27 Updated by intrigeri 12 months ago

  • Assignee set to intrigeri

Most of the work will happen in tails-iuk so it would be rather wasteful to ask anyone else to do it.

#28 Updated by intrigeri 5 months ago

  • Description updated (diff)

#29 Updated by intrigeri 4 months ago

  • Target version changed from 2019 to Tails_4.2

#30 Updated by intrigeri 4 months ago

  • Priority changed from Normal to High

#31 Updated by intrigeri 4 months ago

  • Blocked by Feature #17262: Make the build of overlayfs-based IUKs reproducible added

#32 Updated by intrigeri 3 months ago

  • Status changed from In Progress to Needs Validation

#33 Updated by intrigeri 3 months ago

  • Assignee changed from intrigeri to segfault

#34 Updated by segfault 3 months ago

  • Status changed from Needs Validation to Resolved

Also available in: Atom PDF