• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

inc/H07-Oct-2020-317181

qa/H07-Oct-2020-7252

source/H07-Oct-2020-17,21112,531

workben/H07-Oct-2020-4027

CustomTarget_generated.mkH A D07-Oct-20201.5 KiB3317

Executable_mar.mkH A D07-Oct-20201.2 KiB5031

Executable_mbsdiff.mkH A D07-Oct-2020772 3316

Executable_test_updater_dialog.mkH A D07-Oct-20201.6 KiB6441

Executable_update_service.mkH A D07-Oct-20201.6 KiB5941

Executable_updater.mkH A D07-Oct-20202.1 KiB8659

MakefileH A D07-Oct-2020478 152

Module_onlineupdate.mkH A D07-Oct-2020784 3016

READMEH A D07-Oct-20201.7 KiB2615

StaticLibrary_libmar.mkH A D07-Oct-2020807 2813

StaticLibrary_libmarverify.mkH A D07-Oct-2020878 3317

StaticLibrary_updatehelper.mkH A D07-Oct-2020999 3217

WinResTarget_updater.mkH A D07-Oct-2020449 1612

astyle.optionsH A D07-Oct-2020111 87

README

1Online update implementation based on Mozilla's MAR format + update mechanism
2
3Parts of this code are copied from the mozilla repository, and adapted to
4LibreOffice needs:
5
6firefox/modules/libmar -> onlineupdate/source/libmar
7firefox/toolkit/mozapps/update -> onlineupdate/source/update
8
9The source/service directory contains the code for the silent windows updater that avoids the repeated administrator check for an update.
10
11== NOTE ==
12The updater executable should not depend on any other dynamic library in the LibreOffice installation as we would need to copy that one also to a temporary directory during update. We can't update any library or executable that is currently in use. For the updater executable we solve this problem by copying the updater before using it to a temporary directory.
13
14On Windows we use the system to provide us with a crypto library whereas on Linux we use NSS.
15
16== Update procedure ==
17
18The updater executable is run two times. In a first run, the current installation is copied to a "update" directory and the update is applied in this "update" directory. During the next run, a replacement request is executed. The replacement request removes the old installation directory and replaces it with the content of the "update" directory.
19
20=== User profile in the installation directory ===
21
22The archive based installations have the user profile by default inside of the installation directory. During the update process this causes some problems that need special handling in the updater.
23
24* The "update" directory is inside of the user profile resulting in recursive copying.
25* During the replacement request the updater log is in the user profile, which changes location from the actual location to a backup location.
26