Resolves: tdf#148985 crash on searching for non-existing prefix
[LibreOffice.git] / onlineupdate / README.md
blob0162776a618cd9d36cc1e8204bcb4bc84976f577
1 # Online Update
3 Online update implementation based on Mozilla's MAR format + update mechanism
5 Parts of this code are copied from the mozilla repository, and adapted to
6 LibreOffice needs:
8 `firefox/modules/libmar` -> `onlineupdate/source/libmar`
9 `firefox/toolkit/mozapps/update` -> `onlineupdate/source/update`
11 The source/service directory contains the code for the silent windows updater that avoids the
12 repeated administrator check for an update.
14 ## Note
16 The updater executable should not depend on any other dynamic library in the LibreOffice
17 installation as we would need to copy that one also to a temporary directory during update. We can't
18 update any library or executable that is currently in use. For the updater executable we solve this
19 problem by copying the updater before using it to a temporary directory.
21 On Windows we use the system to provide us with a crypto library whereas on Linux we use NSS.
23 ## Update Procedure
25 The updater executable is run two times. In a first run, the current installation is copied to an
26 `update` directory and the update is applied in this `update` directory. During the next run, a
27 replacement request is executed. The replacement request removes the old installation directory and
28 replaces it with the content of the `update` directory.
30 ### User Profile in the Installation Directory
32 The archive based installations have the user profile by default inside of the installation
33 directory. During the update process this causes some problems that need special handling in the
34 updater.
36 * The `update` directory is inside of the user profile resulting in recursive copying.
37 * During the replacement request the updater log is in the user profile, which changes location from
38 the actual location to a backup location.