Compare commits

...

65 Commits

Author SHA1 Message Date
RiotRobot
46b75e8c3c v1.5.0 2019-10-18 14:57:44 +01:00
RiotRobot
fd5bb40560 Prepare changelog for v1.5.0 2019-10-18 14:57:44 +01:00
RiotRobot
6d32d0b322 v1.5.0 2019-10-18 14:55:00 +01:00
RiotRobot
e275441701 Upgrade to JS SDK v2.4.2 and React SDK v1.7.0 2019-10-18 14:54:02 +01:00
J. Ryan Stinnett
748513aa9a Merge pull request #11158 from vector-im/jryans/v1.5.0/windows-signing
Port Windows signing to release
2019-10-18 14:26:57 +01:00
J. Ryan Stinnett
77731b5674 Merge 'dbkr/windows_signing' into v1.5.0 2019-10-18 14:24:57 +01:00
David Baker
94e721acf2 Update cert name & do bash globbing correctly 2019-10-18 10:31:45 +01:00
David Baker
3545b2751d typo
Co-Authored-By: Travis Ralston <travpc@gmail.com>
2019-10-18 10:08:43 +01:00
David Baker
d6884d5b0f Make window signing work
Almost certainly won't work for cert names with spaces in them
2019-10-11 16:08:04 +01:00
David Baker
1ff06c4be4 Missing space
also don't print the signing command line as it has the token password
2019-10-11 12:21:28 +01:00
David Baker
5a7efcd738 Sign the main executable on windows
and automate the signing of the installers
2019-10-11 12:01:50 +01:00
David Baker
071223120b Warn that this might be a while 2019-10-11 10:45:42 +01:00
David Baker
0259eb6419 Go back to upstream electron-notarize
It doesn't work as a github dependency because the typescript
doesn't get built.
2019-10-10 18:34:26 +01:00
David Baker
2bab328f8d Check everything's in place for the notarising dance
...before we start the build process.
2019-10-10 15:32:17 +01:00
David Baker
a7d1d9880b Use my fork of electron-notarize
if only to test it
2019-10-10 14:56:35 +01:00
David Baker
29f186bc18 add electron-notarize 2019-10-10 11:57:39 +01:00
David Baker
7faba49f66 fix quotes 2019-10-10 11:53:49 +01:00
RiotRobot
561d0c9a4c v1.5.0-rc.1 2019-10-09 17:37:00 +01:00
RiotRobot
358d27f2ba Prepare changelog for v1.5.0-rc.1 2019-10-09 17:37:00 +01:00
RiotRobot
f89fd9c888 v1.5.0-rc.1 2019-10-09 17:35:48 +01:00
RiotRobot
b18e4f079f js-sdk & react-sdk rc.1 2019-10-09 17:00:22 +01:00
David Baker
bad97db302 remove random spaces 2019-10-09 16:40:31 +01:00
David Baker
d120c3b93e Merge pull request #11104 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-10-09 16:37:30 +01:00
David Baker
ff70339aad Working branch for notarisation 2019-10-09 16:29:24 +01:00
Weblate
c7d8a24f4e Merge branch 'origin/develop' into Weblate. 2019-10-09 14:48:22 +00:00
David Baker
d903214ddf Merge pull request #11103 from vector-im/dbkr/olm_session_describe
Bump Olm to 3.1.4 for olm_session_describe
2019-10-09 15:48:18 +01:00
David Baker
b6d1d0bf5d Bump Olm to 3.1.4 for olm_session_describe 2019-10-09 15:40:25 +01:00
Weblate
4113d6a2f3 Merge branch 'origin/develop' into Weblate. 2019-10-09 14:05:40 +00:00
J. Ryan Stinnett
56c0d3ec33 Merge pull request #11098 from vector-im/jryans/start-js-prod-mode
Enable Webpack production mode for start:js:prod
2019-10-09 15:05:35 +01:00
Claus Conrad
1a36160c90 Translated using Weblate (Danish)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/da/
2019-10-09 11:52:02 +00:00
J. Ryan Stinnett
fce5b4dd78 Enable Webpack production mode for start:js:prod
The (rarely used) `start:js:prod` script for running production mode locally
failed to set Webpack into production mode, so things like minification would be
skipped.
2019-10-09 10:59:44 +01:00
Bruno Windels
57e597ec13 Merge pull request #9919 from vector-im/bwindels/settings-config-doc
add settingDefaults to sample config
2019-10-07 14:10:51 +00:00
Bruno Windels
259ca06f73 add example default setting 2019-10-07 14:46:50 +02:00
Travis Ralston
c0a148c018 Merge pull request #11062 from MichaelKohler/fix-readme-config-mention
Add config.json copy instruction to 'Development' as well
2019-10-06 09:55:15 -06:00
Michael Kohler
9e27cb713f Add config.json copy instruction to 'Development' as well 2019-10-06 13:04:20 +02:00
David Baker
644a46bdfd Merge pull request #11055 from vector-im/revert-11050-dbkr/yarn_upgrade_20191004
Revert "Run yarn upgrade"
2019-10-04 16:20:33 +01:00
David Baker
b99bdbcd4e Revert "Run yarn upgrade" 2019-10-04 16:19:29 +01:00
David Baker
e0c2131869 Merge pull request #11050 from vector-im/dbkr/yarn_upgrade_20191004
Run yarn upgrade
2019-10-04 15:08:26 +01:00
David Baker
9981f897a4 Merge pull request #11052 from vector-im/dbkr/persist_storage_on_desktop
Request persistent storage on Electron
2019-10-04 15:01:50 +01:00
David Baker
57672ad384 Request persistent storage on Electron
It's still not 100% clear whether storage is always persistent on
Electron, but we seem to be getting reports of it being deleted in
the wild on Electron, so let's try calling the API to request
persistent storage. It won't pop up a dialog on Electron. In the
worst case it will give us some logging so we know what the API calls
return.

We could do this on non-desktop too but it's a bit of a mess because
Firefox prompts the user but Chrome makes a decision itself based on
how much the user visits the site.
2019-10-04 12:17:01 +01:00
Bruno Windels
26cbd16b40 Merge pull request #11047 from vector-im/travis/enable-cider
Remove docs for CIDER feature
2019-10-04 10:24:57 +00:00
David Baker
64a961ec00 Run yarn upgrade 2019-10-04 11:13:03 +01:00
David Baker
af57c9e321 js-sdk & react-sdk develop 2019-10-04 11:08:08 +01:00
RiotRobot
685d913171 v1.4.2 2019-10-04 10:41:06 +01:00
RiotRobot
b41452162c Prepare changelog for v1.4.2 2019-10-04 10:41:06 +01:00
RiotRobot
ef473f930a v1.4.2 2019-10-04 10:40:15 +01:00
RiotRobot
b333058b57 released react-sdk 2019-10-04 10:39:53 +01:00
David Baker
7df140c164 electron version bump 2019-10-04 10:21:27 +01:00
David Baker
ef1fd9e428 Merge remote-tracking branch 'origin/develop' into release-v1.4.2 2019-10-04 10:17:56 +01:00
Travis Ralston
98b4681dc5 Remove docs for CIDER feature
See https://github.com/matrix-org/matrix-react-sdk/pull/3519
2019-10-03 23:21:52 -06:00
David Baker
b312b4d502 Merge pull request #11031 from vector-im/travis/mem-docs
Document troubleshooting for memory leaks and getting profiles
2019-10-03 11:04:39 +01:00
Travis Ralston
509ed81294 Document troubleshooting for memory leaks and getting profiles
People find this useful.
2019-10-02 09:06:13 -06:00
RiotRobot
1ba2731391 v1.4.2-rc.1 2019-10-02 10:33:37 +01:00
RiotRobot
e599fafdfd Prepare changelog for v1.4.2-rc.1 2019-10-02 10:33:37 +01:00
RiotRobot
caac5466ba v1.4.2-rc.1 2019-10-02 10:32:13 +01:00
David Baker
d83c942fe5 released js-sdk & react-sdk 2019-10-02 10:30:13 +01:00
Bruno Windels
c0a0466b6c Merge pull request #11017 from vector-im/bwindels/custom-themes-mvp
Custom themes MVP
2019-10-02 09:14:18 +00:00
Bruno Windels
31dc423d1d line wrap 2019-10-02 09:04:36 +02:00
Bruno Windels
beaf6b0e0d document settingsDefault now I'm using it and had to look it up again 2019-10-01 17:01:45 +02:00
Bruno Windels
4273f2cc55 add support for dark custom theme 2019-10-01 17:01:16 +02:00
Travis Ralston
6173841768 Merge pull request #11007 from vector-im/travis/permalinks
Document permalinkPrefix setting
2019-10-01 08:41:29 -06:00
J. Ryan Stinnett
f7a08e8d27 Change back to develop branch for deps 2019-10-01 13:32:36 +01:00
Travis Ralston
1aa48be01e Document permalinkPrefix setting
There's no sample config changes because we don't want to encourage people using this setting. It is for very limited scenarios only: unfederated servers.
2019-09-30 13:05:44 -06:00
Bruno Windels
5ead6554b3 add new theme to build 2019-09-30 11:00:14 +02:00
Bruno Windels
f1531d2b12 add settingDefaults to sample config 2019-05-31 14:52:29 +02:00
17 changed files with 304 additions and 47 deletions

View File

@@ -1,3 +1,54 @@
Changes in [1.5.0](https://github.com/vector-im/riot-web/releases/tag/v1.5.0) (2019-10-18)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.0-rc.1...v1.5.0)
* Upgrade to JS SDK v2.4.2 and React SDK v1.7.0
* Port Windows signing and macOS notarization to release
[\#11158](https://github.com/vector-im/riot-web/pull/11158)
* Sign main Windows executable
[\#11126](https://github.com/vector-im/riot-web/pull/11126)
* Notarise the macOS app
[\#11119](https://github.com/vector-im/riot-web/pull/11119)
Changes in [1.5.0-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.5.0-rc.1) (2019-10-09)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.4.2...v1.5.0-rc.1)
* Update from Weblate
[\#11104](https://github.com/vector-im/riot-web/pull/11104)
* Bump Olm to 3.1.4 for olm_session_describe
[\#11103](https://github.com/vector-im/riot-web/pull/11103)
* Enable Webpack production mode for start:js:prod
[\#11098](https://github.com/vector-im/riot-web/pull/11098)
* add settingDefaults to sample config
[\#9919](https://github.com/vector-im/riot-web/pull/9919)
* Add config.json copy instruction to 'Development' as well
[\#11062](https://github.com/vector-im/riot-web/pull/11062)
* Revert "Run yarn upgrade"
[\#11055](https://github.com/vector-im/riot-web/pull/11055)
* Run yarn upgrade
[\#11050](https://github.com/vector-im/riot-web/pull/11050)
* Request persistent storage on Electron
[\#11052](https://github.com/vector-im/riot-web/pull/11052)
* Remove docs for CIDER feature
[\#11047](https://github.com/vector-im/riot-web/pull/11047)
Changes in [1.4.2](https://github.com/vector-im/riot-web/releases/tag/v1.4.2) (2019-10-04)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.4.2-rc.1...v1.4.2)
* Document troubleshooting for memory leaks and getting profiles
[\#11031](https://github.com/vector-im/riot-web/pull/11031)
Changes in [1.4.2-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.4.2-rc.1) (2019-10-02)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.4.1...v1.4.2-rc.1)
* Custom themes MVP
[\#11017](https://github.com/vector-im/riot-web/pull/11017)
* Document permalinkPrefix setting
[\#11007](https://github.com/vector-im/riot-web/pull/11007)
Changes in [1.4.1](https://github.com/vector-im/riot-web/releases/tag/v1.4.1) (2019-10-01)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.4.0...v1.4.1)

View File

@@ -290,6 +290,9 @@ bundle.css.map 116 kB 0 [emitted] main
and rebuilds source files when they change. This development server also
disables caching, so do NOT use it in production.
Configure the app by copying `config.sample.json` to `config.json` and
modifying it. See the [configuration docs](docs/config.md) for details.
Open http://127.0.0.1:8080/ in your browser to see your newly built Riot.
___

View File

@@ -48,5 +48,8 @@
},
"enable_presence_by_hs_url": {
"https://matrix.org": false
},
"settingDefaults": {
"breadcrumbs": true
}
}

View File

@@ -80,8 +80,15 @@ For a good example, see https://riot.im/develop/config.json.
1. `defaultCountryCode`: The ISO 3166 alpha2 country code to use when showing
country selectors, like the phone number input on the registration page.
Defaults to `GB` if the given code is unknown or not provided.
1. `settingDefaults`: Defaults for settings that support the `config` level,
as an object mapping setting name to value (note that the "theme" setting
is special cased to the `default_theme` in the config file).
1. `disable_custom_urls`: disallow the user to change the
default homeserver when signing up or logging in.
1. `permalinkPrefix`: Used to change the URL that Riot generates permalinks with.
By default, this is "https://matrix.to" to generate matrix.to (spec) permalinks.
Set this to your Riot instance URL if you run an unfederated server (eg:
"https://riot.example.org").
Note that `index.html` also has an og:image meta tag that is set to an image
hosted on riot.im. This is the image used if links to your copy of Riot

View File

@@ -46,11 +46,6 @@ Once enabled, send a custom state event to a room to set values:
That's it. Now should see your new counter under the header.
## New simple composer (`feature_cider_composer`)
An experimental, faster, message composer which should be more reliable and less prone to problems when
using your chosen input method.
## Multiple integration managers (`feature_many_integration_managers`)
Exposes a way to access all the integration managers known to Riot. This is an implementation of [MSC1957](https://github.com/matrix-org/matrix-doc/pull/1957).

View File

@@ -0,0 +1,53 @@
## Memory leaks
Riot usually emits slow behaviour just before it is about to crash. Getting a
memory snapshot (below) just before that happens is ideal in figuring out what
is going wrong.
Common symptoms are clicking on a room and it feels like the tab froze and scrolling
becoming jumpy/staggered.
If you receive a white screen (electron) or the chrome crash page, it is likely
run out of memory and it is too late for a memory profile. Please do report when
this happens though so we can try and narrow down what might have gone wrong.
## Memory profiles/snapshots
When investigating memory leaks/problems it's usually important to compare snapshots
from different points in the Riot session lifecycle. Most importantly, a snapshot
to establish the baseline or "normal" memory usage is useful. Taking a snapshot
roughly 30-60 minutes after starting Riot is a good time to establish "normal"
memory usage for the app - anything after that is at risk of hiding the memory leak
and anything newer is still in the warmup stages of the app.
**Memory profiles can contain sensitive information.** If you are submitting a memory
profile to us for debugging purposes, please pick the appropriate Riot developer and
send them over an encrypted private message. *Do not share your memory profile in
public channels or with people you do not trust.*
### Taking a memory profile (Firefox)
1. Press CTRL+SHIFT+I (I as in eye).
2. Click the Memory tab.
3. Press the camera icon in the top left of the pane.
4. Wait a bit (coffee is a good option).
5. When the save button appears on the left side of the panel, click it to save the
profile locally.
6. Compress the file (gzip or regular zip) to make the file smaller.
7. Send the compressed file to whoever asked for it (if you trust them).
While the profile is in progress, the tab might be frozen or unresponsive.
### Taking a memory profile (Chrome/Desktop)
1. Press CTRL+SHIFT+I (I as in eye).
2. Click the Memory tab.
3. Select "Heap Snapshot" and the riot.im VM instance (not the indexeddb one).
4. Click "Take Snapshot".
5. Wait a bit (coffee is a good option).
6. When the save button appears on the left side of the panel, click it to save the
profile locally.
7. Compress the file (gzip or regular zip) to make the file smaller.
8. Send the compressed file to whoever asked for it (if you trust them).
While the profile is in progress, the tab might be frozen or unresponsive.

View File

@@ -2,7 +2,7 @@
"name": "riot-web",
"productName": "Riot",
"main": "src/electron-main.js",
"version": "1.4.1",
"version": "1.5.0",
"description": "A feature-rich client for Matrix.org",
"author": "New Vector Ltd.",
"dependencies": {

View File

@@ -0,0 +1 @@
export OSSLSIGNCODE_SIGNARGS='-pkcs11module /Library/Frameworks/eToken.framework/Versions/Current/libeToken.dylib -pkcs11engine /usr/local/lib/engines/engine_pkcs11.so -certs electron_app/riot.im/New_Vector_Ltd.pem -key 0a3271cbc1ec0fd8afb37f6bbe0cd65ba08d3b4d -t http://timestamp.comodoca.com -h sha256 -verbose'

View File

@@ -2,7 +2,7 @@
"name": "riot-web",
"productName": "Riot",
"main": "electron_app/src/electron-main.js",
"version": "1.4.1",
"version": "1.5.0",
"description": "A feature-rich client for Matrix.org",
"author": "New Vector Ltd.",
"repository": {
@@ -49,7 +49,7 @@
"electron": "yarn install:electron && electron .",
"start:res": "node scripts/copy-res.js -w",
"start:js": "webpack-dev-server --host=0.0.0.0 --output-filename=bundles/_dev_/[name].js --output-chunk-filename=bundles/_dev_/[name].js -w --progress --mode development",
"start:js:prod": "cross-env NODE_ENV=production webpack-dev-server -w --progress",
"start:js:prod": "cross-env NODE_ENV=production webpack-dev-server -w --progress --mode production",
"start:js-sdk": "node scripts/yarn-sub.js matrix-js-sdk start:watch",
"start:js-sdk:prod": "cross-env NODE_ENV=production node scripts/yarn-sub.js matrix-js-sdk start:watch",
"start:react-sdk": "node scripts/yarn-sub.js matrix-react-sdk start:all",
@@ -74,10 +74,10 @@
"gemini-scrollbar": "github:matrix-org/gemini-scrollbar#91e1e566",
"gfm.css": "^1.1.2",
"highlight.js": "^9.13.1",
"matrix-js-sdk": "2.4.1",
"matrix-react-sdk": "1.6.1",
"matrix-js-sdk": "2.4.2",
"matrix-react-sdk": "1.7.0",
"modernizr": "^3.6.0",
"olm": "https://packages.matrix.org/npm/olm/olm-3.1.0.tgz",
"olm": "https://packages.matrix.org/npm/olm/olm-3.1.4.tgz",
"prop-types": "^15.7.2",
"react": "^16.9.0",
"react-dom": "^16.9.0",
@@ -111,6 +111,7 @@
"electron-builder": "^21.2.0",
"electron-builder-squirrel-windows": "^21.2.0",
"electron-devtools-installer": "^2.2.4",
"electron-notarize": "^0.1.1",
"eslint": "^5.8.0",
"eslint-config-google": "^0.7.1",
"eslint-plugin-babel": "^4.1.2",
@@ -145,6 +146,7 @@
"postcss-simple-vars": "^4.1.0",
"postcss-strip-inline-comments": "^0.1.5",
"rimraf": "^2.4.3",
"shell-escape": "^0.2.0",
"source-map-loader": "^0.2.4",
"webpack": "^4.23.1",
"webpack-cli": "^3.1.2",
@@ -152,7 +154,7 @@
},
"build": {
"appId": "im.riot.app",
"electronVersion": "6.0.10",
"electronVersion": "6.0.11",
"files": [
"node_modules/**",
"src/**"
@@ -188,6 +190,7 @@
"buildResources": "electron_app/build",
"output": "electron_app/dist",
"app": "electron_app"
}
},
"afterSign": "scripts/electron_afterSign.js"
}
}

View File

@@ -28,7 +28,6 @@
"feature_sas": "labs",
"feature_room_breadcrumbs": "labs",
"feature_state_counters": "labs",
"feature_cider_composer": "labs",
"feature_many_integration_managers": "labs"
},
"welcomeUserId": "@riot-bot:matrix.org",

View File

@@ -1,26 +1,30 @@
#!/bin/bash
set -e
usage() {
echo "Usage: $0 -v <version> -c <config file> [-n]"
echo "Usage: $0 -v <version> -d <config directory> [-n]"
echo
echo "version: commit-ish to check out and build"
echo "config file: a path to a json config file to"
echo "ship with the build. In addition, update_base_url:"
echo "from this file is used to set up auto-update."
echo "config directory: a path to a directory containing"
echo "config.json, a json config file to ship with the build"
echo "and env.sh, a file to source environment variables"
echo "from."
echo "-n: build with no config file."
echo
echo "Values may also be passed as environment variables"
echo "The update_base_url value from config.json is used to set up auto-update."
echo
echo "Environment variables:"
echo " OSSLSIGNCODE_SIGNARGS: Arguments to pass to osslsigncode when signing"
echo " NOTARIZE_APPLE_ID: Apple ID to use for notarisation. The password for"
echo " this account must be set in NOTARIZE_CREDS in the keychain."
}
conffile=
confdir=
version=
skipcfg=0
while getopts "c:v:n" opt; do
while getopts "d:v:n" opt; do
case $opt in
c)
conffile=$OPTARG
d)
confdir=$OPTARG
;;
v)
version=$OPTARG
@@ -42,6 +46,8 @@ if [ -z "$version" ]; then
exit
fi
conffile="$confdir/config.json"
if [ -z "$conffile" ] && [ "$skipcfg" = 0 ]; then
echo "No config file given. Use -c to supply a config file or"
echo "-n to build with no config file (and no auto update)."
@@ -67,6 +73,31 @@ if [ ! -f package.json ]; then
exit
fi
[ -f "$confdir/env.sh" ] && . "$confdir/env.sh"
if [ -z "$NOTARIZE_APPLE_ID" ]; then
echo "NOTARIZE_APPLE_ID is not set"
exit
fi
osslsigncode -h 2> /dev/null
if [ $? -ne 255 ]; then # osslsigncode exits with 255 after printing usage...
echo "osslsigncode not found"
exit
fi
# Test that altool can get its credentials for notarising the mac app
xcrun altool -u "$NOTARIZE_APPLE_ID" -p '@keychain:NOTARIZE_CREDS' --list-apps || exit
# Get the token password: we'll need it later, but get it now so we fail early if it's not there
token_password=`security find-generic-password -s riot_signing_token -w`
if [ $? -ne 0 ]; then
echo "riot_signing_token not found in keychain"
exit
fi
set -e
echo "Building $version using Update base URL $update_base_url"
projdir=`pwd`
@@ -107,14 +138,12 @@ mkdir -p "$projdir/electron_app/dist/unsigned/"
mkdir -p "$pubdir/install/macos"
cp $distdir/*.dmg "$pubdir/install/macos/"
# Windows installers go to the dist dir because they need signing
# Windows installers need signing, this comes later
mkdir -p "$pubdir/install/win32/ia32/"
mkdir -p "$projdir/electron_app/dist/unsigned/ia32/"
cp $distdir/squirrel-windows-ia32/*.exe "$projdir/electron_app/dist/unsigned/ia32/"
mkdir -p "$pubdir/install/win32/x64/"
mkdir -p "$projdir/electron_app/dist/unsigned/x64/"
cp $distdir/squirrel-windows/*.exe "$projdir/electron_app/dist/unsigned/x64/"
# Packages for auto-update
mkdir -p "$pubdir/update/macos"
@@ -136,9 +165,21 @@ cp $distdir/squirrel-windows/RELEASES "$pubdir/update/win32/x64/"
# longer appears to work).
cp $distdir/*_amd64.deb "$projdir/electron_app/dist/"
# Now we sign the windows installer executables (as opposed to the main binary which
# is signed in the electron afteSign hook)
echo "Signing Windows installers..."
exe32=( "$distdir"/squirrel-windows-ia32/*.exe )
basename32=`basename "$exe32"`
osslsigncode sign $OSSLSIGNCODE_SIGNARGS -pass "$token_password" -in "$exe32" -out "$projdir/electron_app/pub/install/win32/ia32/$basename32"
exe64=( "$distdir"/squirrel-windows/*.exe )
basename64=`basename "$exe64"`
osslsigncode sign $OSSLSIGNCODE_SIGNARGS -pass "$token_password" -in "$exe64" -out "$projdir/electron_app/pub/install/win32/x64/$basename64"
echo "Installers signed"
rm -rf "$builddir"
echo "Unsigned Windows installers have been placed in electron_app/dist/unsigned/ - sign them,"
echo "or just copy them to "$pubdir/install/win32/\<arch\>/""
echo "Once you've done this, $pubdir can be hosted on your web server."
echo "$pubdir can now be hosted on your web server."
echo "deb archives are in electron_app/dist/ - these should be added into your debian repository"

View File

@@ -0,0 +1,76 @@
const { notarize } = require('electron-notarize');
const { exec, execFile } = require('child_process');
const fs = require('fs');
const shellescape = require('shell-escape');
exports.default = async function(context) {
const { electronPlatformName, appOutDir } = context;
if (electronPlatformName === 'darwin') {
const appName = context.packager.appInfo.productFilename;
// We get the password from keychain. The keychain stores
// user IDs too, but apparently altool can't get the user ID
// from the keychain, so we need to get it from the environment.
const userId = process.env.NOTARIZE_APPLE_ID;
if (userId === undefined) {
throw new Exception("User ID not found. Set NOTARIZE_APPLE_ID.");
}
console.log("Notarising macOS app. This may be some time.");
return await notarize({
appBundleId: 'im.riot.app',
appPath: `${appOutDir}/${appName}.app`,
appleId: userId,
appleIdPassword: '@keychain:NOTARIZE_CREDS',
});
} else if (electronPlatformName === 'win32') {
// This signs the actual Riot executable
const appName = context.packager.appInfo.productFilename;
// get the token passphrase from the keychain
const tokenPassphrase = await new Promise((resolve, reject) => {
execFile(
'security',
['find-generic-password', '-s', 'riot_signing_token', '-w'],
{},
(err, stdout) => {
if (err) {
reject(err);
} else {
resolve(stdout.trim());
}
},
);
});
return new Promise((resolve, reject) => {
let cmdLine = 'osslsigncode sign ';
if (process.env.OSSLSIGNCODE_SIGNARGS) {
cmdLine += process.env.OSSLSIGNCODE_SIGNARGS + ' ';
}
const tmpFile = 'tmp_' + Math.random().toString(36).substring(2, 15) + '.exe';
cmdLine += shellescape([
'-pass', tokenPassphrase,
'-in', `${appOutDir}/${appName}.exe`,
'-out', `${appOutDir}/${tmpFile}`,
]);
const signproc = exec(cmdLine, {}, (error, stdout) => {
console.log(stdout);
});
signproc.on('exit', (code) => {
if (code !== 0) {
reject("osslsigncode failed with code " + code);
return;
}
fs.rename(`${appOutDir}/${tmpFile}`, `${appOutDir}/${appName}.exe`, (err) => {
if (err) {
reject(err);
} else {
resolve();
}
});
});
});
}
};

View File

@@ -38,7 +38,7 @@
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Din Riot konfiguration indeholder ugyldig JSON. Venligst korrigér problemet og opdatér siden.",
"The message from the parser is: %(message)s": "Beskeden fra parseren er: %(message)s",
"Invalid JSON": "Ugyldig JSON",
"Your Riot is misconfigured": "Din Riot er fejlkonfigureret",
"Your Riot is misconfigured": "Din Riot er konfigureret forkert",
"Unexpected error preparing the app. See console for details.": "Uventet fejl ved forberedelse af appen. Se konsollen for detaljer.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ugyldig konfiguration: kan kun angive en af default_server_config, default_server_name eller default_hs_url.",
"Invalid configuration: no default server specified.": "Ugyldig konfiguration: ingen standardserver angivet.",

View File

@@ -100,6 +100,16 @@ export default class ElectronPlatform extends VectorBasePlatform {
this.startUpdateCheck = this.startUpdateCheck.bind(this);
this.stopUpdateCheck = this.stopUpdateCheck.bind(this);
this._tryPersistStorage();
}
async _tryPersistStorage() {
if (navigator.storage && navigator.storage.persist) {
const granted = await navigator.storage.persist();
const persisted = await navigator.storage.persisted();
console.log("Storage persist request granted: " + granted + " persisted: " + persisted);
}
}
async getConfig(): Promise<{}> {

View File

@@ -18,6 +18,8 @@ module.exports = {
// CSS themes
"theme-light": "./node_modules/matrix-react-sdk/res/themes/light/css/light.scss",
"theme-dark": "./node_modules/matrix-react-sdk/res/themes/dark/css/dark.scss",
"theme-light-custom": "./node_modules/matrix-react-sdk/res/themes/light-custom/css/light-custom.scss",
"theme-dark-custom": "./node_modules/matrix-react-sdk/res/themes/dark-custom/css/dark-custom.scss",
},
module: {
rules: [

View File

@@ -3134,6 +3134,14 @@ electron-devtools-installer@^2.2.4:
rimraf "^2.5.2"
semver "^5.3.0"
electron-notarize@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/electron-notarize/-/electron-notarize-0.1.1.tgz#c3563d70c5e7b3315f44e8495b30050a8c408b91"
integrity sha512-TpKfJcz4LXl5jiGvZTs5fbEx+wUFXV5u8voeG5WCHWfY/cdgdD8lDZIZRqLVOtR3VO+drgJ9aiSHIO9TYn/fKg==
dependencies:
debug "^4.1.1"
fs-extra "^8.0.1"
electron-publish@21.2.0:
version "21.2.0"
resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-21.2.0.tgz#cc225cb46aa62e74b899f2f7299b396c9802387d"
@@ -3175,7 +3183,7 @@ emoji-regex@^8.0.0:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
emojibase-data@^4.0.1:
emojibase-data@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/emojibase-data/-/emojibase-data-4.0.2.tgz#6b5ee0b6e8d04f9fcbca2c308c3341da8be47797"
integrity sha512-ezU6rqxbrsINFD+lg28IQwRsWLoSpwpt6TH65fBEx/GxIrPpbIP1ZvNu1jUkRD+oALspstjyujZvcv0VlJozhg==
@@ -4083,7 +4091,7 @@ fs-extra@^0.30.0:
path-is-absolute "^1.0.0"
rimraf "^2.2.8"
fs-extra@^8.1.0:
fs-extra@^8.0.1, fs-extra@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
@@ -5947,10 +5955,10 @@ math-random@^1.0.1:
resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c"
integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==
matrix-js-sdk@2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-2.4.1.tgz#f32f8ebb1f01fa26711a4cf6b78eae125156f455"
integrity sha512-5mOp396eOtvaMiuUD85TWvuxSP532PuvtH/QLugBGenI15FGwtnC40cTnVYviYWGBi340FPrOKWulc5ILRX6qQ==
matrix-js-sdk@2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-2.4.2.tgz#e9c3c929469e0d885463d22f927f7ac38ad5f209"
integrity sha512-DkkUk6IX56Pkz9S7RYLn2XeTRVMrLiFOAavZvzWHs/m+k8JFtjDmJ8JVJLDA12+kL9h6rXYDN80/99RfFZH3hA==
dependencies:
another-json "^0.2.0"
babel-runtime "^6.26.0"
@@ -5971,10 +5979,10 @@ matrix-mock-request@^1.2.3:
bluebird "^3.5.0"
expect "^1.20.2"
matrix-react-sdk@1.6.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/matrix-react-sdk/-/matrix-react-sdk-1.6.1.tgz#37608f7e6ecf5d8a57411c0e2d63e516f897f42c"
integrity sha512-+hjM+aGU/Rc39Ebu/SONLX8XJ/Y1Ig7uEOGTV5R+BJMRlLtpK/rYwJk24tpn1LiVMhPU5HJCApnmvpBv3Xo/GQ==
matrix-react-sdk@1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/matrix-react-sdk/-/matrix-react-sdk-1.7.0.tgz#122de621da6657cada90119fb40bd8685fe0ea45"
integrity sha512-NrvgA4yujSADHbkg4ZS9xEDzU+riEgQKX7XFNk1XaweZltjkl8WbYte3l3PkEKlB3yFhZ8i232eCz5RosVDDjA==
dependencies:
babel-plugin-syntax-dynamic-import "^6.18.0"
babel-runtime "^6.26.0"
@@ -5988,7 +5996,7 @@ matrix-react-sdk@1.6.1:
create-react-class "^15.6.0"
diff-dom "^4.1.3"
diff-match-patch "^1.0.4"
emojibase-data "^4.0.1"
emojibase-data "^4.0.2"
emojibase-regex "^3.0.0"
file-saver "^1.3.3"
filesize "3.5.6"
@@ -6005,7 +6013,7 @@ matrix-react-sdk@1.6.1:
linkifyjs "^2.1.6"
lodash "^4.17.14"
lolex "4.2"
matrix-js-sdk "2.4.1"
matrix-js-sdk "2.4.2"
optimist "^0.6.1"
pako "^1.0.5"
png-chunks-extract "^1.0.0"
@@ -6681,9 +6689,9 @@ obuf@^1.0.0, obuf@^1.1.2:
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
"olm@https://packages.matrix.org/npm/olm/olm-3.1.0.tgz":
version "3.1.0"
resolved "https://packages.matrix.org/npm/olm/olm-3.1.0.tgz#2c8fc2a42b7ea12febc31baa73ec03d9b601da16"
"olm@https://packages.matrix.org/npm/olm/olm-3.1.4.tgz":
version "3.1.4"
resolved "https://packages.matrix.org/npm/olm/olm-3.1.4.tgz#0f03128b7d3b2f614d2216409a1dfccca765fdb3"
on-finished@~2.3.0:
version "2.3.0"
@@ -8233,6 +8241,11 @@ shebang-regex@^1.0.0:
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
shell-escape@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/shell-escape/-/shell-escape-0.2.0.tgz#68fd025eb0490b4f567a027f0bf22480b5f84133"
integrity sha1-aP0CXrBJC09WegJ/C/IkgLX4QTM=
shell-quote@^1.6.1:
version "1.7.2"
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2"