Closed Bug 1384894 Opened 7 years ago Closed 7 years ago

Add switch to disable/enable new MAR compression and signing format

Categories

(Firefox Build System :: General, enhancement)

enhancement
Not set
normal

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 641212

People

(Reporter: rail, Unassigned)

References

Details

In bug 641212 and friends we are going to land LZMA compression and SHA384 signing support. Landing these features discontinues support of bz2 and sha1 in the mar.exe and updater.exe binaries. As a result the generated complete.mar files will be incompatible with the older updater.exe and won't apply.

As a workaround we thought about adding a new CLI switch or a mozconfig variable which would change the behavior of the build system:

 * build everything as is except generating complete.mar
 * fetch the old mar (and maybe mbsdiff) binaries from tooltool
 * Modify https://dxr.mozilla.org/mozilla-central/rev/7d2e89fb92331d7e4296391213c1e63db628e046/tools/update-packaging/Makefile.in#22-23 to use the old (tooltool) binaries instead of the built ones

We also should verify that l10n repacks use the same approach.

We will need to keep this feature around until we switch ESR59 to LZMA/SHA384.

I'd appreciate any help from the build team here, because we wanted to land this before 56.0b1.
In bug 641212 I've managed to make both the mbsdiff and mar binaries backwards compatible for everything except mar signing. So, the patches generated with mbsdiff will be the same and the compression of the patches and the files will be the only difference. Mars created with the old and the new mar binary are also compatible. The signing will need to be done using the signmar binary for the associated certificate (e.g. sha1 or sha384).

I also change the mar generation scripts in bug 641212 so they will generate mars using lzma by default and they will create a mar using bzip2 when an env var with the name MAR_OLD_FORMAT is present.
Rail, do you know if that Makefile is still actually used?
https://dxr.mozilla.org/mozilla-central/rev/7d2e89fb92331d7e4296391213c1e63db628e046/tools/update-packaging/Makefile.in#22-23

It seems that mar.py is what is used on oak and it would be good to verify if that Makefile is used since the Windows build system don't have xz in the path like the Linux and Mac build systems. I modified mar.py so the mar scripts can find xz.
Oh, nice. Sounds much better now! So many changes in less than a day! :)

We can probably close this bug in favour of your work in bug 641212.

I'm not sure if we still use that makefile though...
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → DUPLICATE
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.