Closed Bug 1950060 Opened 1 year ago Closed 1 year ago

Add Linux and macOS support for our zucchini vendoring

Categories

(Toolkit :: Application Update, task, P3)

task

Tracking

()

RESOLVED FIXED
143 Branch
Tracking Status
firefox-esr140 --- fixed
firefox143 --- fixed

People

(Reporter: yannis, Assigned: yannis)

References

(Blocks 1 open bug)

Details

Attachments

(4 external files, 1 obsolete file)

As part of bug 1632374, once we have Windows-only support for zucchini patch application and zucchini compilation after bug 1950055, we can start supporting other platforms. This will remain behind a compilation flag for the moment, because we don't want it in official builds.

This patch adds the upstream definitions required to build and use
zucchini on Linux and macOS platforms.

Attachment #9494619 - Attachment is obsolete: true

This patch adds the upstream definitions required to build and use
zucchini on Linux and macOS platforms.

This patch makes our updater support zucchini patches if present in a
mar file. This does not mean that we need to start shipping zucchini
patches right now. bspatch support is preserved and the updater is able
to consume both kinds of patches.

This will let us benchmark zucchini patch application in updater.exe,
and experiment with zucchini rollouts that target a small portion of the
population so we can catch any issue ahead of a global rollout.

This patch also adds the zucchini equivalents for our tests that use a
bspatch-based mar.

Priority: -- → P3
Attachment #9494626 - Attachment description: WIP: Bug 1950060 - Add Linux and macOS support for zucchini. r=bobowen → Bug 1950060 - Add Linux and macOS support for zucchini. r=bobowen!,#firefox-build-system-reviewers!
Attachment #9494657 - Attachment description: WIP: Bug 1950060 - Enable zucchini support in the updater. r=#application-update-reviewers → Bug 1950060 - Enable zucchini support in the updater. r=#application-update-reviewers!,#firefox-build-system-reviewers!
See Also: → 1976038
Blocks: 1976038
See Also: 1976038 →
Blocks: 1977383
Pushed by yjuglaret@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/5e0b5fafef5e https://hg.mozilla.org/integration/autoland/rev/cd61e2ca04dc Add Linux and macOS support for zucchini. r=bobowen,firefox-build-system-reviewers,glandium https://github.com/mozilla-firefox/firefox/commit/a3cd4c7b93a5 https://hg.mozilla.org/integration/autoland/rev/c0ccc048a791 Enable zucchini support in the updater. r=application-update-reviewers,firefox-build-system-reviewers,bytesized,glandium

Reverted this because it was causing zucchini related build bustages.

  • Revert link
  • Push with failures
  • Failure Log
  • Failure line: /builds/worker/checkouts/gecko/third_party/zucchini/chromium/base/files/file_posix.cc:60:5: error: unused function 'CallFutimes' [-Werror,-Wunused-function]
Flags: needinfo?(yjuglaret)
Pushed by yjuglaret@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/81ed1eb72fc3 https://hg.mozilla.org/integration/autoland/rev/404e9279c28a Add Linux and macOS support for zucchini. r=bobowen,firefox-build-system-reviewers,glandium https://github.com/mozilla-firefox/firefox/commit/a714df5cd9fc https://hg.mozilla.org/integration/autoland/rev/c658e5593deb Enable zucchini support in the updater. r=application-update-reviewers,firefox-build-system-reviewers,bytesized,glandium
Flags: needinfo?(yjuglaret)
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 143 Branch
QA Whiteboard: [qa-triage-done-c144/b143]

This patch adds the upstream definitions required to build and use
zucchini on Linux and macOS platforms. We also remove zucchini support
in mingwclang builds (32-bit and 64-bit) because of the lack of SEH
support in the 32-bit compiler (bug 1975960).

Original Revision: https://phabricator.services.mozilla.com/D253663

Attachment #9526197 - Flags: approval-mozilla-esr140?

This patch makes our updater support zucchini patches if present in a
mar file. This does not mean that we need to start shipping zucchini
patches right now. bspatch support is preserved and the updater is able
to consume both kinds of patches.

This will let us benchmark zucchini patch application in updater.exe,
and experiment with zucchini rollouts that target a small portion of the
population so we can catch any issue ahead of a global rollout.

This patch also adds the zucchini equivalents for our tests that use a
bspatch-based mar.

Original Revision: https://phabricator.services.mozilla.com/D253687

Attachment #9526198 - Flags: approval-mozilla-esr140?

Copied from bug 1987589

firefox-esr140 Uplift Approval Request

  • User impact if declined: Uplifting zucchini support to ESR140 will ensure that users can apply partial updates to ESR153 in July 2026, given that these partial updates will most likely be released as zucchini-based MAR files.
  • Code covered by automated testing: yes
  • Fix verified in Nightly: no
  • Needs manual QE test: no
  • Steps to reproduce for manual QE testing:
  • Risk associated with taking this patch: low
  • Explanation of risk level: The uplifted code will mostly be dead code for the lifetime of ESR140. It will only get used once we start shipping ESR153 in July 2026. By this time we will have a better idea of the trust level we can place in zucchini support, that will help inform our decision whether to use zucchini-based partials for the ESR140 to ESR153 update.
  • String changes made/needed: No
  • Is Android affected?: no
Attachment #9526197 - Flags: approval-mozilla-esr140? → approval-mozilla-esr140+
Attachment #9526198 - Flags: approval-mozilla-esr140? → approval-mozilla-esr140+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: