Compare commits

..

81 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
RiotRobot be0b4e9072 v1.4.1 2019-10-01 11:52:23 +01:00
RiotRobot 57e4e4ee0d Prepare changelog for v1.4.1 2019-10-01 11:52:22 +01:00
RiotRobot 2bb24892df v1.4.1 2019-10-01 11:48:11 +01:00
RiotRobot 55fe24e72c Upgrade to React SDK 1.6.1 and JS SDK 2.4.1 2019-10-01 11:47:44 +01:00
J. Ryan Stinnett 1add492a11 Merge pull request #11010 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-10-01 11:22:16 +01:00
Sava Radoš 3de2b7fe43 Translated using Weblate (Serbian)
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/sr/
2019-10-01 10:21:04 +00: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
David Baker ae7ccb613e Merge pull request #11001 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-09-30 09:17:51 +01:00
Hello World 8cbac6207d Translated using Weblate (Thai)
Currently translated at 75.0% (18 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/th/
2019-09-30 08:14:16 +00:00
Sava Radoš 6e70c5faf6 Translated using Weblate (Serbian)
Currently translated at 79.2% (19 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sr/
2019-09-30 08:14:15 +00:00
Bruno P. Kinoshita c555516f29 Translated using Weblate (Portuguese (Brazil))
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/pt_BR/
2019-09-30 08:14:15 +00:00
Nils J. Haugen 55491d1198 Translated using Weblate (Norwegian Nynorsk)
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/nn/
2019-09-30 08:14:15 +00:00
Claus Conrad a06358779c 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-09-30 08:14:15 +00:00
J. Ryan Stinnett c7d3740cbb Merge pull request #10980 from vector-im/jryans/deps-2019-09-27
Upgrade deps
2019-09-27 16:02:03 +01:00
J. Ryan Stinnett ee827c917e Upgrade deps 2019-09-27 15:18:47 +01:00
J. Ryan Stinnett 6094b8be9a Change back to develop branch for deps 2019-09-27 14:46:05 +01:00
J. Ryan Stinnett 54767b5a65 Clean Yarn cache during Electron builds 2019-09-27 12:49:13 +01:00
Bruno Windels f1531d2b12 add settingDefaults to sample config 2019-05-31 14:52:29 +02:00
21 changed files with 1037 additions and 451 deletions
+65
View File
@@ -1,3 +1,68 @@
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)
* Upgrade to React SDK 1.6.1 to fix critical
[blank screen issue](https://github.com/vector-im/riot-web/issues/10983)
* Upgrade to JS SDK 2.4.1 to to ignore crypto events with empty content
* Update from Weblate
[\#11010](https://github.com/vector-im/riot-web/pull/11010)
* Update from Weblate
[\#11001](https://github.com/vector-im/riot-web/pull/11001)
* Upgrade deps
[\#10980](https://github.com/vector-im/riot-web/pull/10980)
Changes in [1.4.0](https://github.com/vector-im/riot-web/releases/tag/v1.4.0) (2019-09-27)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.4.0-rc.2...v1.4.0)
+3
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.
___
+3
View File
@@ -48,5 +48,8 @@
},
"enable_presence_by_hs_url": {
"https://matrix.org": false
},
"settingDefaults": {
"breadcrumbs": true
}
}
+7
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
-5
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).
+53
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.
+1 -1
View File
@@ -2,7 +2,7 @@
"name": "riot-web",
"productName": "Riot",
"main": "src/electron-main.js",
"version": "1.4.0",
"version": "1.5.0",
"description": "A feature-rich client for Matrix.org",
"author": "New Vector Ltd.",
"dependencies": {
+1
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'
+10 -7
View File
@@ -2,7 +2,7 @@
"name": "riot-web",
"productName": "Riot",
"main": "electron_app/src/electron-main.js",
"version": "1.4.0",
"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.0",
"matrix-react-sdk": "1.6.0",
"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"
}
}
-1
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",
+63 -17
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`
@@ -85,6 +116,11 @@ if [ -n "$conffile" ]; then
pushd "$builddir"
fi
# We use Git branch / commit dependencies for some packages, and Yarn seems
# to have a hard time getting that right. See also
# https://github.com/yarnpkg/yarn/issues/4734. As a workaround, we clean the
# global cache here to ensure we get the right thing.
yarn cache clean
yarn install
yarn build:electron
@@ -102,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"
@@ -131,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"
+76
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();
}
});
});
});
}
};
+15 -1
View File
@@ -34,5 +34,19 @@
"Support for those using, running and writing other bridges": "Hjælp til dem der bruger, driver og skriver andre bridges",
"Contributing code to Matrix and Riot": "Biddrag med kode til Matrix og Riot",
"Dev chat for the Riot/Web dev team": "Udviklerchat til Riot/Web udviklerholdet",
"Dev chat for the Dendrite dev team": "Udviklerchat til Dendrite udviklerholdet"
"Dev chat for the Dendrite dev team": "Udviklerchat til Dendrite udviklerholdet",
"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 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.",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Du kan bruge de brugertilpassede serverindstillinger til at logge på andre Matrix servere ved at angive en anden homeserver URL. Dette giver dig mulighed for at bruge Riot med en eksisterende Matrix konto på en anden homeserver.",
"You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "Du kan også indstille en brugertilpasset identitetsserver, men så vil du ikke kunne invitere brugere pr. e-mail eller selv kunne inviteres pr. e-mail.",
"Sign In": "Log på",
"Create Account": "Opret konto",
"Need help?": "Brug for hjælp?",
"Explore rooms": "Udforsk rum",
"Room Directory": "Rumliste"
}
+10 -3
View File
@@ -34,13 +34,20 @@
"Dev chat for the Riot/Web dev team": "Utviklar-prat for Riot/Web-utviklargruppa",
"Dev chat for the Dendrite dev team": "Utviklar-prat for Dendrite-utviklargruppa",
"Co-ordination for Riot translators": "Samordning for Riot-omsetjare",
"Custom Server Options": "Eigentenar-innstillingar",
"Custom Server Options": "Tilpassa tenar-innstillingar",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Du kan bruka eigentenarinnstillingar til å logga inn på andre Matrixtenarar ved å oppgje ein annan Heimtenar-URL. <br/>Dette gjer at du kan bruka Riot med ein Matrixbrukar som allereie finst på ein annan heimtenar.<br/><br/>Du kan òg setja ein eigen identitetstenar men du kjem i so fall ikkje til å kunna byda brukare inn med epost, eller å sjølv verta boden inn med epost.",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Du kan nytta dei eigendefinerte tenarinstillingane for å logga inn på andre Matrix-tenarar ved å uppgje ein annan heimtenar-URL. Dette lèt deg bruka Riot med ein Matrix-konto som allereie finst på ein annan heimtenar.",
"You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "Du kan òg velja ein eigendefinert identitetstenar, men då kjem du ikkje til å innvitere brukarar gjennom e-post, eller verta invitert med e-post sjølv.",
"Sign In": "Logg inn",
"Create Account": "Lag brukar",
"Need help?": "Treng du hjelp?",
"Explore rooms": "Vert kjend med romma",
"Room Directory": "Romutval"
"Explore rooms": "Utforsk romma",
"Room Directory": "Romkatalog",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Riot-konfigurasjonen din har invalid JSON-kode. Korriger dette og last inn sida på nytt.",
"The message from the parser is: %(message)s": "Meldingen frå kodetolkaren er: %(message)s",
"Invalid JSON": "Ugyldig JSON",
"Your Riot is misconfigured": "Riot-klienten din er feilkonfiguert",
"Unexpected error preparing the app. See console for details.": "Uforventa feil under lasting av programmet. Sjå konsollet for detaljar.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ugyldig konfigurasjon berre muleg å berre spesifiere ein av default_server_config, default_server_name eller default_hs_url.",
"Invalid configuration: no default server specified.": "Ugyldig konfigurasjon: \"default server\" er uspesifisert."
}
+8 -1
View File
@@ -42,5 +42,12 @@
"Create Account": "Criar Conta",
"Need help?": "Precisa de ajuda?",
"Explore rooms": "Explore as salas",
"Room Directory": "Diretório de salas"
"Room Directory": "Diretório de salas",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Sua configuração do Riot contém JSON inválido. Por favor corrija o erro e atualize a página.",
"The message from the parser is: %(message)s": "A mensagem do parser é: %(message)s",
"Invalid JSON": "JSON inválido",
"Your Riot is misconfigured": "Riot possui um erro de configuração",
"Unexpected error preparing the app. See console for details.": "Erro inesperado preparando o aplicativo. Veja o console para mais detalhes.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuração inválida: somente se pode especificar um valor entre default_server_config, default_server_name, ou default_hs_url.",
"Invalid configuration: no default server specified.": "Configuração inválida: servidor padrão não especificado."
}
+8 -1
View File
@@ -42,5 +42,12 @@
"Explore rooms": "Истражи собе",
"Room Directory": "Фасцикла са собама",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Можете користити опције прилагођеног сервера да бисте се пријавили на друге Матрикс сервере тако што ћете навести другачију адресу кућног сервера. Ово вам омогућава да користите Riot са постојећим Матрикс налогом на другом кућном серверу.",
"You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "Такође, можете подесити прилагођени сервер идентитета али у том случају нећете моћи да позивате кориснике преко мејла адресе или да сами будете позвани преко мејл адресе."
"You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "Такође, можете подесити прилагођени сервер идентитета али у том случају нећете моћи да позивате кориснике преко мејла адресе или да сами будете позвани преко мејл адресе.",
"Your Riot is misconfigured": "Ваш Riot није добро подешен",
"Invalid configuration: no default server specified.": "Погрешно подешавање: подразумевани сервер није наведен.",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Ваша Riot конфигурација садржи погрешан JSON. Молим исправите проблем и поново учитајте страну.",
"The message from the parser is: %(message)s": "Порука из парсера: %(message)s",
"Invalid JSON": "Погрешан JSON",
"Unexpected error preparing the app. See console for details.": "Неочекивана грешка приликом припреме апликације. Погледајте конзолу за више детаља.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Погрешно подешавање: можете навести само један вредност од default_server_config, default_server_name, or default_hs_url."
}
+10 -2
View File
@@ -4,7 +4,7 @@
"Dismiss": "ไม่สนใจ",
"Unknown device": "อุปกรณ์ที่ไม่รู้จัก",
"You need to be using HTTPS to place a screen-sharing call.": "คุณต้องใช้ HTTPS เพื่อเริ่มติดต่อแบบแบ่งปันหน้าจอ",
"Riot Desktop on %(platformName)s": "Riot เดสก์ทอปบน %(platformName)s",
"Riot Desktop on %(platformName)s": "Riot Desktop บน %(platformName)s",
"Riot is not supported on mobile web. Install the app?": "Riot ไม่รองรับเว็บบนอุปกรณ์พกพา ติดตั้งแอป?",
"Custom Server Options": "กำหนดเซิร์ฟเวอร์เอง",
"Welcome to Riot.im": "ยินดีต้อนรับสู่ Riot.im",
@@ -33,5 +33,13 @@
"Design and implementation of E2E in Matrix": "การออกแบบและใช้งาน E2E ใน Matrix",
"Discussion of the Identity Service API": "พูดคุยเกี่ยวกับ Identity Service API",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "ระบบแชทและประสานงาน ไร้ศูนย์กลางและเข้ารหัสได้ โดยใช้เทคโนโลยีจาก [matrix]",
"General discussion about Matrix and Riot": "พูดคุยเรื่องทั่วไป ทั้ง Matrix และ Riot"
"General discussion about Matrix and Riot": "พูดคุยเรื่องทั่วไป ทั้ง Matrix และ Riot",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "การตั้งค่า Riot ของคุณมี JSON ที่ไม่ถูกต้อง โปรดแก้ปัญหาและโหลดเพจอีกครั้ง",
"The message from the parser is: %(message)s": "ข้อความจากparserคือ:%(message)s",
"Invalid JSON": "JSON ไม่ถูกต้อง",
"Your Riot is misconfigured": "Riotของคุณตั้งค่าไม่ถูกต้อง",
"Sign In": "เข้าสู่ระบบ",
"Create Account": "สร้างบัญชี",
"Need help?": "ต้องการความช่วยเหลือ?",
"Explore rooms": "สำรวจห้อง"
}
+10
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<{}> {
+2
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: [
+692 -412
View File
File diff suppressed because it is too large Load Diff