* according to rollups type definitions, the output option property is
ignored by rollup.rollup, so it moved to bundle.write
* we don't use commonjs deps in the desktop bundle anymore, so the
commonjs plugin can go away from DesktopBuilder
[build] remove some unnecessary rollup plugins
[build] unify the native plugins
[build] vendor keytar
[build] vendor better-sqlite3 deps and restrict module resolution
it's now checked in and can be updated with buildSrc/updateLibs.js
close#4213
DatabaseKeyFactory, used from worker and main, was
in a bundle that also includes code calling
assertMainOrNode()
removed rollup visualizer plugin dependency
because it requires rollup 2
fix db90ac26abfix#5065
5.3.0 couldn't handle windows machines with a restricted powershell.
6.0.0 fixed that, but the alpha that's currently available does not
work on linux because it's opening the child process wrong.
We previously used a .png because of rendering issues, but this new
icon file should not have these problems.
This means Windows won't need to use nearest scaling, making the
application icon look better on the desktop.
Fixes#4235
The database key is stored and encrypted alongside the user's stored credentials
we depend on our own fork of Signal's fork of better-sqlite3 which replaces sqlite3 with sqlcipher. Our fork was necessary in order to obtain the newest version of better-sqlite-3. This fork also has a modification that makes it not try to resolve the nativeBindingPath into an absolute path, because otherwise it was not possible to make it load the native module from within the bundled app
In Desktop, we don't know what kind of storage to use until the use is logging in, so we want to delay initialisation until then by using a proxy storage implementation. The loginfacade may not use the cache in this case.
This commit not only sets up the build for windows on jenkins,
it also consolidates how we get prebuilt binaries for native modules i.e. keytar and better-sqlite3
and generally has some refactorings
Compiling keytar in postinstall is problematic because we need node-gyp
to successfully finish installation. Because of that it is hard to
depend on tutanota-3 (e.g. in admin client).
Doing this on demand avoids the issue.
The dist build was refactored in commit:
916ee1ed1d
The format of the desktop options was changed from a raw object to a map,
but the usages in DesktopBuilder weren't adapted. This change adapts them
and also tidies it up a bit.
reviewed with sas
previously, the exe was located via its GUID/AppID.
this ID is different for test/snapshot/release.
now, the exe registers itself next to the dll path
#2968
- pin electron-builder to v22.11.4 because of incompatibilities with node 16
- use fs.rm instead of fs.rmdir because of deprecation
- fetch prebuild keytar if cross-platform build is detected
close#3196
to create these signatures, run the dist script with the environment
variable DEBUG_SIGN set to a directory containing a self-signed code
signing cert file test.p12
close#2918