From 0269501d4f7038cfc0b45692e1b157dc9f6b9ac1 Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Wed, 20 May 2020 16:16:57 -0600 Subject: [PATCH 01/29] Enforce sandbox on all spawned BrowserWindow objects The docs (https://www.atom.pe/docs/api/sandbox-option/) say we should be using the browser-native `window.open` implementation, but in practice that appears very much false. Electron, no matter our set of options, appears to always make a hit to the ipcRenderer with `window.open` calls, causing the calling code to explode due to the sandbox making that impossible. By using `app.enableSandbox()`, it puts the sandbox in place over all BrowserWindow objects, including the temporary ones which empirically are being created for `window.open`. We do not need to specify `sandbox: true` to the BrowserWindow with this approach, though uncommenting and therefore reintroducing the flag causes our lovely ipcRenderer error again. As far as I can tell, the sandbox does actually get applied to the window though the fact that `sandbox: true` still does things despite the docs saying otherwise leaves me a bit uncomfortable. Fixes https://github.com/vector-im/riot-web/issues/13719 --- src/electron-main.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/electron-main.js b/src/electron-main.js index 8843f68..b4ceb0a 100644 --- a/src/electron-main.js +++ b/src/electron-main.js @@ -615,6 +615,17 @@ protocol.registerSchemesAsPrivileged([{ }, }]); +// Turn the sandbox on for *all* windows we might generate. Doing this means we don't +// have to specify a `sandbox: true` to each BrowserWindow. +// +// This also fixes an issue with window.open where if we only specified the sandbox +// on the main window we'd run into cryptic "ipc_renderer be broke" errors. Turns out +// it's trying to jump the sandbox and make some calls into electron, which it can't +// do when half of it is sandboxed. By turning on the sandbox for everything, the new +// window (no matter how temporary it may be) is also sandboxed, allowing for a clean +// transition into the user's browser. +app.enableSandbox(); + app.on('ready', async () => { try { await setupGlobals(); @@ -725,7 +736,7 @@ app.on('ready', async () => { webPreferences: { preload: preloadScript, nodeIntegration: false, - sandbox: true, + //sandbox: true, // We enable sandboxing from app.enableSandbox() above enableRemoteModule: false, // We don't use this: it's useful for the preload script to // share a context with the main page so we can give select From ba0518005e3f760308a226c46bb7e51d7871da80 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sat, 23 May 2020 08:48:29 +0100 Subject: [PATCH 02/29] Update Modular hosting link Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- riot.im/nightly/config.json | 2 +- riot.im/release/config.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/riot.im/nightly/config.json b/riot.im/nightly/config.json index eca0371..58d752c 100644 --- a/riot.im/nightly/config.json +++ b/riot.im/nightly/config.json @@ -11,7 +11,7 @@ "https://scalar-staging.vector.im/api", "https://scalar-staging.riot.im/scalar/api" ], - "hosting_signup_link": "https://modular.im/?utm_source=riot-web&utm_medium=web", + "hosting_signup_link": "https://modular.im/services/matrix-hosting-riot?utm_source=riot-web&utm_medium=web", "bug_report_endpoint_url": "https://riot.im/bugreports/submit", "features": { "feature_pinning": "labs", diff --git a/riot.im/release/config.json b/riot.im/release/config.json index 9342151..b92f11e 100644 --- a/riot.im/release/config.json +++ b/riot.im/release/config.json @@ -11,7 +11,7 @@ "https://scalar-staging.vector.im/api", "https://scalar-staging.riot.im/scalar/api" ], - "hosting_signup_link": "https://modular.im/?utm_source=riot-web&utm_medium=web", + "hosting_signup_link": "https://modular.im/services/matrix-hosting-riot?utm_source=riot-web&utm_medium=web", "bug_report_endpoint_url": "https://riot.im/bugreports/submit", "roomDirectory": { "servers": [ From 66d92045781608e2abea7cb80f20b90c07ff5592 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sat, 23 May 2020 11:52:49 +0100 Subject: [PATCH 03/29] Run before-quit on updates too to flush rageshake Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/electron-main.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/electron-main.js b/src/electron-main.js index 8843f68..f8bc0da 100644 --- a/src/electron-main.js +++ b/src/electron-main.js @@ -790,12 +790,15 @@ app.on('activate', () => { mainWindow.show(); }); -app.on('before-quit', () => { +function beforeQuit() { global.appQuitting = true; if (mainWindow) { mainWindow.webContents.send('before-quit'); } -}); +} + +app.on('before-quit', beforeQuit); +app.on('before-quit-for-update', beforeQuit); app.on('second-instance', (ev, commandLine, workingDirectory) => { // If other instance launched with --hidden then skip showing window From 19edcd436e5290ff2f50c09b435605212c32c0c6 Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Thu, 28 May 2020 15:07:39 -0400 Subject: [PATCH 04/29] use keytar to store pickle keys --- hak/keytar/build.js | 45 ++++++++++++++++++++++++++++++++ hak/keytar/check.js | 58 +++++++++++++++++++++++++++++++++++++++++ hak/keytar/fetchDeps.js | 26 ++++++++++++++++++ hak/keytar/hak.json | 12 +++++++++ package.json | 3 ++- src/electron-main.js | 46 ++++++++++++++++++++++++++++++++ 6 files changed, 189 insertions(+), 1 deletion(-) create mode 100644 hak/keytar/build.js create mode 100644 hak/keytar/check.js create mode 100644 hak/keytar/fetchDeps.js create mode 100644 hak/keytar/hak.json diff --git a/hak/keytar/build.js b/hak/keytar/build.js new file mode 100644 index 0000000..335149e --- /dev/null +++ b/hak/keytar/build.js @@ -0,0 +1,45 @@ +/* +Copyright 2020 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +const path = require('path'); +const childProcess = require('child_process'); + +const mkdirp = require('mkdirp'); +const fsExtra = require('fs-extra'); + +module.exports = async function(hakEnv, moduleInfo) { + await buildKeytar(hakEnv, moduleInfo); +}; + +async function buildKeytar(hakEnv, moduleInfo) { + const env = hakEnv.makeGypEnv(); + + console.log("Running yarn with env", env); + await new Promise((resolve, reject) => { + const proc = childProcess.spawn( + path.join(moduleInfo.nodeModuleBinDir, 'node-gyp' + (hakEnv.isWin() ? '.cmd' : '')), + ['rebuild'], + { + cwd: moduleInfo.moduleBuildDir, + env, + stdio: 'inherit', + }, + ); + proc.on('exit', (code) => { + code ? reject(code) : resolve(); + }); + }); +} diff --git a/hak/keytar/check.js b/hak/keytar/check.js new file mode 100644 index 0000000..921e0e4 --- /dev/null +++ b/hak/keytar/check.js @@ -0,0 +1,58 @@ +/* +Copyright 2020 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +const childProcess = require('child_process'); + +module.exports = async function(hakEnv, moduleInfo) { + // of course tcl doesn't have a --version + if (!hakEnv.isLinux()) { + await new Promise((resolve, reject) => { + const proc = childProcess.spawn('tclsh', [], { + stdio: ['pipe', 'ignore', 'ignore'], + }); + proc.on('exit', (code) => { + if (code !== 0) { + reject("Can't find tclsh - have you installed TCL?"); + } else { + resolve(); + } + }); + proc.stdin.end(); + }); + } + + const tools = [['python', '--version']]; // node-gyp uses python for reasons beyond comprehension + if (hakEnv.isWin()) { + tools.push(['nmake', '/?']); + } else { + tools.push(['make', '--version']); + } + + for (const tool of tools) { + await new Promise((resolve, reject) => { + const proc = childProcess.spawn(tool[0], tool.slice(1), { + stdio: ['ignore'], + }); + proc.on('exit', (code) => { + if (code !== 0) { + reject("Can't find " + tool); + } else { + resolve(); + } + }); + }); + } +}; diff --git a/hak/keytar/fetchDeps.js b/hak/keytar/fetchDeps.js new file mode 100644 index 0000000..8d27a6f --- /dev/null +++ b/hak/keytar/fetchDeps.js @@ -0,0 +1,26 @@ +/* +Copyright 2020 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +const path = require('path'); +const childProcess = require('child_process'); + +const fs = require('fs'); +const fsProm = require('fs').promises; +const needle = require('needle'); +const tar = require('tar'); + +module.exports = async function(hakEnv, moduleInfo) { +}; diff --git a/hak/keytar/hak.json b/hak/keytar/hak.json new file mode 100644 index 0000000..6c9fe99 --- /dev/null +++ b/hak/keytar/hak.json @@ -0,0 +1,12 @@ +{ + "scripts": { + "check": "check.js", + "fetchDeps": "fetchDeps.js", + "build": "build.js" + }, + "prune": "native", + "copy": "build/Release/keytar.node", + "dependencies": { + "libsecret": "0.20.3" + } +} diff --git a/package.json b/package.json index cb72b09..7ff4982 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,8 @@ "tar": "^6.0.1" }, "hakDependencies": { - "matrix-seshat": "^1.3.3" + "matrix-seshat": "^1.3.3", + "keytar": "^5.6.0" }, "build": { "appId": "im.riot.app", diff --git a/src/electron-main.js b/src/electron-main.js index 34a6a5a..f66dfea 100644 --- a/src/electron-main.js +++ b/src/electron-main.js @@ -43,6 +43,18 @@ const Store = require('electron-store'); const fs = require('fs'); const afs = fs.promises; +const crypto = require('crypto'); +let keytar; +try { + keytar = require('keytar'); +} catch (e) { + if (e.code === "MODULE_NOT_FOUND") { + console.log("Keytar isn't installed; secure key storage is disabled."); + } else { + console.warn("Keytar unexpected error:", e); + } +} + let seshatSupported = false; let Seshat; let SeshatRecovery; @@ -365,6 +377,40 @@ ipcMain.on('ipcCall', async function(ev, payload) { recordSSOSession(args[0]); break; + case 'getPickleKey': + try { + ret = await keytar.getPassword("riot.im", `${args[0]}|${args[1]}`); + } catch (e) { + // if an error is thrown (e.g. keytar can't connect to the keychain), + // then return null, which means the default pickle key will be used + ret = null; + } + break; + + case 'createPickleKey': + try { + const randomArray = await new Promise((resolve, reject) => { + crypto.randomBytes(32, (err, buf) => { + if (err) + reject(err); + else + resolve(buf); + }); + }); + const pickleKey = randomArray.toString("base64").replace(/=+$/g, ''); + await keytar.setPassword("riot.im", `${args[0]}|${args[1]}`, pickleKey); + ret = pickleKey; + } catch (e) { + ret = null; + } + break; + + case 'destroyPickleKey': + try { + await keytar.deletePassword("riot.im", `${args[0]}|${args[1]}`); + } catch (e) {} + break; + default: mainWindow.webContents.send('ipcReply', { id: payload.id, From b366dbb460324fe8c39990721d29d51612874f54 Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Thu, 28 May 2020 15:30:00 -0400 Subject: [PATCH 05/29] fix lint errors and add copyright info --- hak/keytar/build.js | 3 --- hak/keytar/fetchDeps.js | 26 -------------------------- hak/keytar/hak.json | 1 - src/electron-main.js | 1 + 4 files changed, 1 insertion(+), 30 deletions(-) delete mode 100644 hak/keytar/fetchDeps.js diff --git a/hak/keytar/build.js b/hak/keytar/build.js index 335149e..39319ef 100644 --- a/hak/keytar/build.js +++ b/hak/keytar/build.js @@ -17,9 +17,6 @@ limitations under the License. const path = require('path'); const childProcess = require('child_process'); -const mkdirp = require('mkdirp'); -const fsExtra = require('fs-extra'); - module.exports = async function(hakEnv, moduleInfo) { await buildKeytar(hakEnv, moduleInfo); }; diff --git a/hak/keytar/fetchDeps.js b/hak/keytar/fetchDeps.js deleted file mode 100644 index 8d27a6f..0000000 --- a/hak/keytar/fetchDeps.js +++ /dev/null @@ -1,26 +0,0 @@ -/* -Copyright 2020 The Matrix.org Foundation C.I.C. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -const path = require('path'); -const childProcess = require('child_process'); - -const fs = require('fs'); -const fsProm = require('fs').promises; -const needle = require('needle'); -const tar = require('tar'); - -module.exports = async function(hakEnv, moduleInfo) { -}; diff --git a/hak/keytar/hak.json b/hak/keytar/hak.json index 6c9fe99..28ee722 100644 --- a/hak/keytar/hak.json +++ b/hak/keytar/hak.json @@ -1,7 +1,6 @@ { "scripts": { "check": "check.js", - "fetchDeps": "fetchDeps.js", "build": "build.js" }, "prune": "native", diff --git a/src/electron-main.js b/src/electron-main.js index f66dfea..5144682 100644 --- a/src/electron-main.js +++ b/src/electron-main.js @@ -3,6 +3,7 @@ Copyright 2016 Aviral Dasgupta Copyright 2016 OpenMarket Ltd Copyright 2018, 2019 New Vector Ltd Copyright 2017, 2019 Michael Telatynski <7t3chguy@gmail.com> +Copyright 2020 The Matrix.org Foundation C.I.C. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. From 188190888b11fb06abbdd0874ae348e48bc4331e Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Thu, 28 May 2020 15:36:06 -0400 Subject: [PATCH 06/29] more lint --- src/electron-main.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/electron-main.js b/src/electron-main.js index 5144682..e7f261b 100644 --- a/src/electron-main.js +++ b/src/electron-main.js @@ -392,10 +392,11 @@ ipcMain.on('ipcCall', async function(ev, payload) { try { const randomArray = await new Promise((resolve, reject) => { crypto.randomBytes(32, (err, buf) => { - if (err) + if (err) { reject(err); - else + } else { resolve(buf); + } }); }); const pickleKey = randomArray.toString("base64").replace(/=+$/g, ''); From c6620735b48076e80eae3da1b40a850a4738594f Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sun, 31 May 2020 12:23:23 +0100 Subject: [PATCH 07/29] Fix electron context menu copy/save-as Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/webcontents-handler.js | 41 ++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/src/webcontents-handler.js b/src/webcontents-handler.js index 8030646..47ffac7 100644 --- a/src/webcontents-handler.js +++ b/src/webcontents-handler.js @@ -35,10 +35,27 @@ function onWindowOrNavigate(ev, target) { safeOpenURL(target); } +function writeNativeImage(filePath, img) { + switch (filePath.split('.').pop().toLowerCase()) { + case "jpg": + case "jpeg": + return fs.promises.writeFile(filePath, img.toJPEG(100)); + case "bmp": + return fs.promises.writeFile(filePath, img.toBitmap()); + case "png": + default: + return fs.promises.writeFile(filePath, img.toPNG()); + } +} + + function onLinkContextMenu(ev, params) { let url = params.linkURL || params.srcURL; if (url.startsWith('vector://vector/webapp')) { + // Avoid showing a context menu for app icons + if (params.hasImageContents) return; + // Rewrite URL so that it can be used outside of the app url = "https://riot.im/app/" + url.substring(23); } @@ -53,22 +70,13 @@ function onLinkContextMenu(ev, params) { })); } - let addSaveAs = false; - if (params.mediaType && params.mediaType === 'image' && !url.startsWith('file://')) { + if (params.hasImageContents) { popupMenu.append(new MenuItem({ label: '&Copy image', click() { - if (url.startsWith('data:')) { - clipboard.writeImage(nativeImage.createFromDataURL(url)); - } else { - ev.sender.copyImageAt(params.x, params.y); - } + ev.sender.copyImageAt(params.x, params.y); }, })); - - // We want the link to be ordered below the copy stuff, but don't want to duplicate - // the `if` statement, so use a flag. - addSaveAs = true; } // No point offering to copy a blob: URL either @@ -91,12 +99,15 @@ function onLinkContextMenu(ev, params) { } } - if (addSaveAs) { + // XXX: We cannot easily save a blob from the main process as only the renderer can resolve them so don't give + // the user an option to. One possible workaround was using copyImageAt but there was no way of knowing when + // the image would be in the clipboard, it depended on its size. + if (params.hasImageContents && !url.startsWith('blob:')) { popupMenu.append(new MenuItem({ label: 'Sa&ve image as...', - click() { + async click() { const targetFileName = params.titleText || "image.png"; - const filePath = dialog.showSaveDialog({ + const {filePath} = await dialog.showSaveDialog({ defaultPath: targetFileName, }); @@ -104,7 +115,7 @@ function onLinkContextMenu(ev, params) { try { if (url.startsWith("data:")) { - fs.writeFileSync(filePath, nativeImage.createFromDataURL(url)); + await writeNativeImage(filePath, nativeImage.createFromDataURL(url)); } else { request.get(url).pipe(fs.createWriteStream(filePath)); } From 20fb0f477bd4c45d76862fd240ffdb8ba7798940 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sun, 31 May 2020 12:28:15 +0100 Subject: [PATCH 08/29] tidy comment Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/webcontents-handler.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/webcontents-handler.js b/src/webcontents-handler.js index 47ffac7..00f971c 100644 --- a/src/webcontents-handler.js +++ b/src/webcontents-handler.js @@ -99,9 +99,8 @@ function onLinkContextMenu(ev, params) { } } - // XXX: We cannot easily save a blob from the main process as only the renderer can resolve them so don't give - // the user an option to. One possible workaround was using copyImageAt but there was no way of knowing when - // the image would be in the clipboard, it depended on its size. + // XXX: We cannot easily save a blob from the main process as + // only the renderer can resolve them so don't give the user an option to. if (params.hasImageContents && !url.startsWith('blob:')) { popupMenu.append(new MenuItem({ label: 'Sa&ve image as...', From c82c80a2e0da6f5963c84bd7d570646512e548d9 Mon Sep 17 00:00:00 2001 From: drlellinger <39723641+drlellinger@users.noreply.github.com> Date: Sun, 31 May 2020 18:25:26 +0200 Subject: [PATCH 09/29] Fixed error in User-specified config.json A / was missing --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3072cb7..14e643b 100644 --- a/README.md +++ b/README.md @@ -129,7 +129,7 @@ User-specified config.json + `%APPDATA%\$NAME\config.json` on Windows + `$XDG_CONFIG_HOME\$NAME\config.json` or `~/.config/$NAME/config.json` on Linux -+ `~Library/Application Support/$NAME/config.json` on macOS ++ `~/Library/Application Support/$NAME/config.json` on macOS In the paths above, `$NAME` is typically `Riot`, unless you use `--profile $PROFILE` in which case it becomes `Riot-$PROFILE`. From 00cf95e86b6c6525f2b592a3ce06f7262adbbda7 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 2 Jun 2020 13:53:28 +0100 Subject: [PATCH 10/29] Upgrade matrix-js-sdk to 6.2.0-rc.1 --- package.json | 2 +- yarn.lock | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 8a634de..5c33dd7 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "find-npm-prefix": "^1.0.2", "fs-extra": "^8.1.0", "glob": "^7.1.6", - "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop", + "matrix-js-sdk": "6.2.0-rc.1", "mkdirp": "^1.0.3", "needle": "^2.3.2", "node-pre-gyp": "^0.14.0", diff --git a/yarn.lock b/yarn.lock index 4e766f2..6f1363e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2862,9 +2862,10 @@ map-age-cleaner@^0.1.1: dependencies: p-defer "^1.0.0" -"matrix-js-sdk@github:matrix-org/matrix-js-sdk#develop": - version "6.1.0" - resolved "https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/a4a7097c103da42075f2c70e070fd01fa6fb0d48" +matrix-js-sdk@6.2.0-rc.1: + version "6.2.0-rc.1" + resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-6.2.0-rc.1.tgz#467cc1dc9f59a95573da8bc5f9eeef76e5fdd792" + integrity sha512-bAg8muF2xP6kXLpbDSSWRTvkxV7QoF8H14RmMxAu4IWuQg/WB7BFcG7JZyGwyOD7gmPVPMIw8mHXGkUuh1mKtA== dependencies: "@babel/runtime" "^7.8.3" another-json "^0.2.0" From b9d00395ed46dbd610f3bf6cea276f4365e21be5 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 2 Jun 2020 13:58:26 +0100 Subject: [PATCH 11/29] Prepare changelog for v1.6.3-rc.1 --- CHANGELOG.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index eb7521e..b3acfb6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,30 @@ +Changes in [1.6.3-rc.1](https://github.com/vector-im/riot-desktop/releases/tag/v1.6.3-rc.1) (2020-06-02) +======================================================================================================== +[Full Changelog](https://github.com/vector-im/riot-desktop/compare/v1.6.2...v1.6.3-rc.1) + + * Fix electron context menu copy/save-as + [\#96](https://github.com/vector-im/riot-desktop/pull/96) + * Fixed error in README.md/User-specified config.json + [\#97](https://github.com/vector-im/riot-desktop/pull/97) + * Update Modular hosting link + [\#92](https://github.com/vector-im/riot-desktop/pull/92) + * Enforce sandbox on all spawned BrowserWindow objects + [\#91](https://github.com/vector-im/riot-desktop/pull/91) + * Run before-quit on updates too to flush rageshake + [\#93](https://github.com/vector-im/riot-desktop/pull/93) + * Enable new room list labs flag + [\#87](https://github.com/vector-im/riot-desktop/pull/87) + * Add asar-webapp script + [\#59](https://github.com/vector-im/riot-desktop/pull/59) + * Bump acorn from 6.4.0 to 6.4.1 + [\#50](https://github.com/vector-im/riot-desktop/pull/50) + * Enable font scaling flag for nightly + [\#89](https://github.com/vector-im/riot-desktop/pull/89) + * Enable IRC UI labs flag in nightly + [\#88](https://github.com/vector-im/riot-desktop/pull/88) + * Update help message to fix broken url to electron docs + [\#86](https://github.com/vector-im/riot-desktop/pull/86) + Changes in [1.6.2](https://github.com/vector-im/riot-desktop/releases/tag/v1.6.2) (2020-05-22) ============================================================================================== [Full Changelog](https://github.com/vector-im/riot-desktop/compare/v1.6.1...v1.6.2) From aaa3e7107782faeb7364741a88717588b7a753b4 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 2 Jun 2020 13:58:27 +0100 Subject: [PATCH 12/29] v1.6.3-rc.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5c33dd7..3a6f453 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "riot-desktop", "productName": "Riot", "main": "src/electron-main.js", - "version": "1.6.2", + "version": "1.6.3-rc.1", "description": "A feature-rich client for Matrix.org", "author": "New Vector Ltd.", "repository": { From b4af8d9ce59caa163025007eb54c4f6fab49412f Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Wed, 3 Jun 2020 16:47:09 -0400 Subject: [PATCH 13/29] remove unneeded stuff --- hak/keytar/check.js | 22 ---------------------- hak/keytar/hak.json | 1 - 2 files changed, 23 deletions(-) diff --git a/hak/keytar/check.js b/hak/keytar/check.js index 921e0e4..8fcb788 100644 --- a/hak/keytar/check.js +++ b/hak/keytar/check.js @@ -17,29 +17,7 @@ limitations under the License. const childProcess = require('child_process'); module.exports = async function(hakEnv, moduleInfo) { - // of course tcl doesn't have a --version - if (!hakEnv.isLinux()) { - await new Promise((resolve, reject) => { - const proc = childProcess.spawn('tclsh', [], { - stdio: ['pipe', 'ignore', 'ignore'], - }); - proc.on('exit', (code) => { - if (code !== 0) { - reject("Can't find tclsh - have you installed TCL?"); - } else { - resolve(); - } - }); - proc.stdin.end(); - }); - } - const tools = [['python', '--version']]; // node-gyp uses python for reasons beyond comprehension - if (hakEnv.isWin()) { - tools.push(['nmake', '/?']); - } else { - tools.push(['make', '--version']); - } for (const tool of tools) { await new Promise((resolve, reject) => { diff --git a/hak/keytar/hak.json b/hak/keytar/hak.json index 28ee722..7597052 100644 --- a/hak/keytar/hak.json +++ b/hak/keytar/hak.json @@ -3,7 +3,6 @@ "check": "check.js", "build": "build.js" }, - "prune": "native", "copy": "build/Release/keytar.node", "dependencies": { "libsecret": "0.20.3" From d106d23e2ed4289ee51e23e3b0d6aa9f1ce1ad75 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Thu, 4 Jun 2020 15:06:20 +0100 Subject: [PATCH 14/29] Upgrade matrix-js-sdk to 6.2.0 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 3a6f453..4e47902 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "find-npm-prefix": "^1.0.2", "fs-extra": "^8.1.0", "glob": "^7.1.6", - "matrix-js-sdk": "6.2.0-rc.1", + "matrix-js-sdk": "6.2.0", "mkdirp": "^1.0.3", "needle": "^2.3.2", "node-pre-gyp": "^0.14.0", diff --git a/yarn.lock b/yarn.lock index 6f1363e..34020cd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2862,10 +2862,10 @@ map-age-cleaner@^0.1.1: dependencies: p-defer "^1.0.0" -matrix-js-sdk@6.2.0-rc.1: - version "6.2.0-rc.1" - resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-6.2.0-rc.1.tgz#467cc1dc9f59a95573da8bc5f9eeef76e5fdd792" - integrity sha512-bAg8muF2xP6kXLpbDSSWRTvkxV7QoF8H14RmMxAu4IWuQg/WB7BFcG7JZyGwyOD7gmPVPMIw8mHXGkUuh1mKtA== +matrix-js-sdk@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-6.2.0.tgz#b1aa6f23858ab3ee4b66be25d3e854f6e287d36b" + integrity sha512-dpx1EuJ98HtqE2YUeliTe9xjMOJlicJGRXa06Gr8RAL6WJM7buPgodOk0tRs461LzeilxmymqcGaB4og6o9RxA== dependencies: "@babel/runtime" "^7.8.3" another-json "^0.2.0" From e4aab364282c8713fbb1d17267eddf0d3278cdf8 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Thu, 4 Jun 2020 15:19:32 +0100 Subject: [PATCH 15/29] Prepare changelog for v1.6.3 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b3acfb6..6dcc6bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +Changes in [1.6.3](https://github.com/vector-im/riot-desktop/releases/tag/v1.6.3) (2020-06-04) +============================================================================================== +[Full Changelog](https://github.com/vector-im/riot-desktop/compare/v1.6.3-rc.1...v1.6.3) + + Changes in [1.6.3-rc.1](https://github.com/vector-im/riot-desktop/releases/tag/v1.6.3-rc.1) (2020-06-02) ======================================================================================================== [Full Changelog](https://github.com/vector-im/riot-desktop/compare/v1.6.2...v1.6.3-rc.1) From cf2925853cc2744c9122669fb1a45f18755259d4 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Thu, 4 Jun 2020 15:19:33 +0100 Subject: [PATCH 16/29] v1.6.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4e47902..d7a2ccc 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "riot-desktop", "productName": "Riot", "main": "src/electron-main.js", - "version": "1.6.3-rc.1", + "version": "1.6.3", "description": "A feature-rich client for Matrix.org", "author": "New Vector Ltd.", "repository": { From ffe9121589fb9e678e0ed688bac69d6e9b41f913 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Thu, 4 Jun 2020 15:21:41 +0100 Subject: [PATCH 17/29] Reset matrix-js-sdk back to develop branch --- package.json | 2 +- yarn.lock | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 4da3f89..a23c06d 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "find-npm-prefix": "^1.0.2", "fs-extra": "^8.1.0", "glob": "^7.1.6", - "matrix-js-sdk": "6.2.0", + "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop", "mkdirp": "^1.0.3", "needle": "^2.3.2", "node-pre-gyp": "^0.14.0", diff --git a/yarn.lock b/yarn.lock index 34020cd..c9aa637 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2862,10 +2862,9 @@ map-age-cleaner@^0.1.1: dependencies: p-defer "^1.0.0" -matrix-js-sdk@6.2.0: +"matrix-js-sdk@github:matrix-org/matrix-js-sdk#develop": version "6.2.0" - resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-6.2.0.tgz#b1aa6f23858ab3ee4b66be25d3e854f6e287d36b" - integrity sha512-dpx1EuJ98HtqE2YUeliTe9xjMOJlicJGRXa06Gr8RAL6WJM7buPgodOk0tRs461LzeilxmymqcGaB4og6o9RxA== + resolved "https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/ef1d5e3d765bc4dc133c0637434c2ca9941ff97b" dependencies: "@babel/runtime" "^7.8.3" another-json "^0.2.0" From ece904024718ae2441b6a9b7bde718163eb7f36d Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Fri, 5 Jun 2020 15:13:04 +0100 Subject: [PATCH 18/29] Upgrade matrix-js-sdk to 6.2.1 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d7a2ccc..b209383 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "find-npm-prefix": "^1.0.2", "fs-extra": "^8.1.0", "glob": "^7.1.6", - "matrix-js-sdk": "6.2.0", + "matrix-js-sdk": "6.2.1", "mkdirp": "^1.0.3", "needle": "^2.3.2", "node-pre-gyp": "^0.14.0", diff --git a/yarn.lock b/yarn.lock index 34020cd..225b0ca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2862,10 +2862,10 @@ map-age-cleaner@^0.1.1: dependencies: p-defer "^1.0.0" -matrix-js-sdk@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-6.2.0.tgz#b1aa6f23858ab3ee4b66be25d3e854f6e287d36b" - integrity sha512-dpx1EuJ98HtqE2YUeliTe9xjMOJlicJGRXa06Gr8RAL6WJM7buPgodOk0tRs461LzeilxmymqcGaB4og6o9RxA== +matrix-js-sdk@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-6.2.1.tgz#d5f76491a650c0a36fcdd078cff59f2da96edd7b" + integrity sha512-X12Y2SMg8MOJwE5P3VMsMV/mnQHOmyJkF+FZRida124w4B4tBJouaNxteYyYaH34w+wyaKGxuqEBXecfSpfvbw== dependencies: "@babel/runtime" "^7.8.3" another-json "^0.2.0" From 2f0b6ee9840caca92bb239b3798a7447b7cbae0e Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Fri, 5 Jun 2020 15:13:36 +0100 Subject: [PATCH 19/29] Prepare changelog for v1.6.4 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6dcc6bc..159c6e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +Changes in [1.6.4](https://github.com/vector-im/riot-desktop/releases/tag/v1.6.4) (2020-06-05) +============================================================================================== +[Full Changelog](https://github.com/vector-im/riot-desktop/compare/v1.6.3...v1.6.4) + + Changes in [1.6.3](https://github.com/vector-im/riot-desktop/releases/tag/v1.6.3) (2020-06-04) ============================================================================================== [Full Changelog](https://github.com/vector-im/riot-desktop/compare/v1.6.3-rc.1...v1.6.3) From edb8b671f3bf17c133dbd680f1df0bbc743447c6 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Fri, 5 Jun 2020 15:13:36 +0100 Subject: [PATCH 20/29] v1.6.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b209383..acb63ff 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "riot-desktop", "productName": "Riot", "main": "src/electron-main.js", - "version": "1.6.3", + "version": "1.6.4", "description": "A feature-rich client for Matrix.org", "author": "New Vector Ltd.", "repository": { From 1ca51ced9c13ff882847d244981772cd03d92521 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Fri, 5 Jun 2020 15:17:55 +0100 Subject: [PATCH 21/29] Reset matrix-js-sdk back to develop branch --- package.json | 2 +- yarn.lock | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index a4facbc..8fdeca1 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "find-npm-prefix": "^1.0.2", "fs-extra": "^8.1.0", "glob": "^7.1.6", - "matrix-js-sdk": "6.2.1", + "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop", "mkdirp": "^1.0.3", "needle": "^2.3.2", "node-pre-gyp": "^0.14.0", diff --git a/yarn.lock b/yarn.lock index 225b0ca..dbe4fca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2862,10 +2862,9 @@ map-age-cleaner@^0.1.1: dependencies: p-defer "^1.0.0" -matrix-js-sdk@6.2.1: +"matrix-js-sdk@github:matrix-org/matrix-js-sdk#develop": version "6.2.1" - resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-6.2.1.tgz#d5f76491a650c0a36fcdd078cff59f2da96edd7b" - integrity sha512-X12Y2SMg8MOJwE5P3VMsMV/mnQHOmyJkF+FZRida124w4B4tBJouaNxteYyYaH34w+wyaKGxuqEBXecfSpfvbw== + resolved "https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/ebe66bdd6e0f6edbc60be1612c5a1fc0c9ea092c" dependencies: "@babel/runtime" "^7.8.3" another-json "^0.2.0" From 799ccc6197da44097cdd71d4dbb44dba1768fb79 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Fri, 5 Jun 2020 18:36:10 +0100 Subject: [PATCH 22/29] Electron recall latest downloaded update for when the user manually checks for updates Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/electron-main.js | 11 ----------- src/updater.js | 24 ++++++++++++++++++++---- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/electron-main.js b/src/electron-main.js index 9965b70..923f594 100644 --- a/src/electron-main.js +++ b/src/electron-main.js @@ -254,17 +254,6 @@ ipcMain.on('app_onAction', function(ev, payload) { } }); -autoUpdater.on('update-downloaded', (ev, releaseNotes, releaseName, releaseDate, updateURL) => { - if (!mainWindow) return; - // forward to renderer - mainWindow.webContents.send('update-downloaded', { - releaseNotes, - releaseName, - releaseDate, - updateURL, - }); -}); - ipcMain.on('ipcCall', async function(ev, payload) { if (!mainWindow) return; diff --git a/src/updater.js b/src/updater.js index f5917f8..7946ca1 100644 --- a/src/updater.js +++ b/src/updater.js @@ -69,15 +69,31 @@ ipcMain.on('install_update', installUpdate); ipcMain.on('check_updates', pollForUpdates); function ipcChannelSendUpdateStatus(status) { - if (global.mainWindow) { - global.mainWindow.webContents.send('check_updates', status); - } + if (!global.mainWindow) return; + global.mainWindow.webContents.send('check_updates', status); } +// cache the latest update which has been downloaded as electron offers no api to read it +let latestUpdateDownloaded; autoUpdater.on('update-available', function() { ipcChannelSendUpdateStatus(true); }).on('update-not-available', function() { - ipcChannelSendUpdateStatus(false); + if (latestUpdateDownloaded) { + // the only time we will get `update-not-available` if `latestUpdateDownloaded` is already set + // is if the user used the Manual Update check and there is no update newer than the one we + // have downloaded, so show it to them as the latest again. + ipcChannelSendUpdateStatus(true); + mainWindow.webContents.send('update-downloaded', latestUpdateDownloaded); + } else { + ipcChannelSendUpdateStatus(false); + } }).on('error', function(error) { ipcChannelSendUpdateStatus(error.message); }); + +autoUpdater.on('update-downloaded', (ev, releaseNotes, releaseName, releaseDate, updateURL) => { + if (!global.mainWindow) return; + // forward to renderer + latestUpdateDownloaded = { releaseNotes, releaseName, releaseDate, updateURL }; + mainWindow.webContents.send('update-downloaded', latestUpdateDownloaded); +}); From 861c90c3d851e7ef0dee90d64de6f09af357b7ea Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Fri, 5 Jun 2020 18:41:29 +0100 Subject: [PATCH 23/29] delint Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/updater.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/updater.js b/src/updater.js index 7946ca1..edb23eb 100644 --- a/src/updater.js +++ b/src/updater.js @@ -83,7 +83,7 @@ autoUpdater.on('update-available', function() { // is if the user used the Manual Update check and there is no update newer than the one we // have downloaded, so show it to them as the latest again. ipcChannelSendUpdateStatus(true); - mainWindow.webContents.send('update-downloaded', latestUpdateDownloaded); + global.mainWindow.webContents.send('update-downloaded', latestUpdateDownloaded); } else { ipcChannelSendUpdateStatus(false); } @@ -95,5 +95,5 @@ autoUpdater.on('update-downloaded', (ev, releaseNotes, releaseName, releaseDate, if (!global.mainWindow) return; // forward to renderer latestUpdateDownloaded = { releaseNotes, releaseName, releaseDate, updateURL }; - mainWindow.webContents.send('update-downloaded', latestUpdateDownloaded); + global.mainWindow.webContents.send('update-downloaded', latestUpdateDownloaded); }); From c2ecef12f26280e6b8a22c7bb9ea2b58fbd8ab6d Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sun, 7 Jun 2020 13:18:33 +0100 Subject: [PATCH 24/29] Fix riot-desktop manual update check getting stuck on Downloading... Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/updater.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/updater.js b/src/updater.js index edb23eb..8f9d0f4 100644 --- a/src/updater.js +++ b/src/updater.js @@ -82,7 +82,7 @@ autoUpdater.on('update-available', function() { // the only time we will get `update-not-available` if `latestUpdateDownloaded` is already set // is if the user used the Manual Update check and there is no update newer than the one we // have downloaded, so show it to them as the latest again. - ipcChannelSendUpdateStatus(true); + if (!global.mainWindow) return; global.mainWindow.webContents.send('update-downloaded', latestUpdateDownloaded); } else { ipcChannelSendUpdateStatus(false); From 0beda0bb1953d4241f5723cfc18a43fe80a9b70e Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 16 Jun 2020 11:10:50 +0100 Subject: [PATCH 25/29] Upgrade matrix-js-sdk to 6.2.2 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index acb63ff..7878aba 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "find-npm-prefix": "^1.0.2", "fs-extra": "^8.1.0", "glob": "^7.1.6", - "matrix-js-sdk": "6.2.1", + "matrix-js-sdk": "6.2.2", "mkdirp": "^1.0.3", "needle": "^2.3.2", "node-pre-gyp": "^0.14.0", diff --git a/yarn.lock b/yarn.lock index 225b0ca..f6167a4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2862,10 +2862,10 @@ map-age-cleaner@^0.1.1: dependencies: p-defer "^1.0.0" -matrix-js-sdk@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-6.2.1.tgz#d5f76491a650c0a36fcdd078cff59f2da96edd7b" - integrity sha512-X12Y2SMg8MOJwE5P3VMsMV/mnQHOmyJkF+FZRida124w4B4tBJouaNxteYyYaH34w+wyaKGxuqEBXecfSpfvbw== +matrix-js-sdk@6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-6.2.2.tgz#103d951f61945217b110962f55ae43996756f615" + integrity sha512-uTXmKVzl7GXM3R70cl2E87H+mtwN3ILqPeB80Z/2ITN9Vaf9pMURCCAuHePEBXbhnD7DOZj7Cke42uP+ByR6Hw== dependencies: "@babel/runtime" "^7.8.3" another-json "^0.2.0" From 289101904456dc61ec0bd41a321a26d30d83ad48 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 16 Jun 2020 11:14:38 +0100 Subject: [PATCH 26/29] Prepare changelog for v1.6.5 --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 159c6e7..434d21b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,20 @@ +Changes in [1.6.5](https://github.com/vector-im/riot-desktop/releases/tag/v1.6.5) (2020-06-16) +============================================================================================== +[Full Changelog](https://github.com/vector-im/riot-desktop/compare/v1.6.4...v1.6.5) + + * No changes since 1.6.4 + Changes in [1.6.4](https://github.com/vector-im/riot-desktop/releases/tag/v1.6.4) (2020-06-05) ============================================================================================== [Full Changelog](https://github.com/vector-im/riot-desktop/compare/v1.6.3...v1.6.4) + * No changes since 1.6.3 Changes in [1.6.3](https://github.com/vector-im/riot-desktop/releases/tag/v1.6.3) (2020-06-04) ============================================================================================== [Full Changelog](https://github.com/vector-im/riot-desktop/compare/v1.6.3-rc.1...v1.6.3) + * No changes since rc.1 Changes in [1.6.3-rc.1](https://github.com/vector-im/riot-desktop/releases/tag/v1.6.3-rc.1) (2020-06-02) ======================================================================================================== From a5b809ab06c71f56910cef686b99fc8c7bd99fd1 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 16 Jun 2020 11:14:38 +0100 Subject: [PATCH 27/29] v1.6.5 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7878aba..f9a5ebd 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "riot-desktop", "productName": "Riot", "main": "src/electron-main.js", - "version": "1.6.4", + "version": "1.6.5", "description": "A feature-rich client for Matrix.org", "author": "New Vector Ltd.", "repository": { From f9d928a534f776fe5aa4629e3059c3972361bc2d Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 16 Jun 2020 11:16:49 +0100 Subject: [PATCH 28/29] Reset matrix-js-sdk back to develop branch --- package.json | 2 +- yarn.lock | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index cad5ac5..82c2a0b 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "find-npm-prefix": "^1.0.2", "fs-extra": "^8.1.0", "glob": "^7.1.6", - "matrix-js-sdk": "6.2.2", + "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop", "mkdirp": "^1.0.3", "needle": "^2.3.2", "node-pre-gyp": "^0.14.0", diff --git a/yarn.lock b/yarn.lock index f6167a4..b400413 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2862,10 +2862,9 @@ map-age-cleaner@^0.1.1: dependencies: p-defer "^1.0.0" -matrix-js-sdk@6.2.2: +"matrix-js-sdk@github:matrix-org/matrix-js-sdk#develop": version "6.2.2" - resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-6.2.2.tgz#103d951f61945217b110962f55ae43996756f615" - integrity sha512-uTXmKVzl7GXM3R70cl2E87H+mtwN3ILqPeB80Z/2ITN9Vaf9pMURCCAuHePEBXbhnD7DOZj7Cke42uP+ByR6Hw== + resolved "https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/1c194e81637fb07fe6ad67cda33be0d5d4c10115" dependencies: "@babel/runtime" "^7.8.3" another-json "^0.2.0" From d0d14e80ceae38992921194e3e2a4f6d7d2fafc1 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 16 Jun 2020 12:41:58 +0100 Subject: [PATCH 29/29] Upgrade needle to avoid bugs with modern Node Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- package.json | 4 ++-- yarn.lock | 32 ++++++++++++++++++++++---------- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 82c2a0b..9a456e1 100644 --- a/package.json +++ b/package.json @@ -50,8 +50,8 @@ "glob": "^7.1.6", "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop", "mkdirp": "^1.0.3", - "needle": "^2.3.2", - "node-pre-gyp": "^0.14.0", + "needle": "^2.5.0", + "node-pre-gyp": "^0.15.0", "npm": "^6.13.7", "rimraf": "^3.0.2", "semver": "^7.1.3", diff --git a/yarn.lock b/yarn.lock index b400413..ec03441 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2958,6 +2958,11 @@ minimist@^1.2.0, minimist@^1.2.3: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.3.tgz#3db5c0765545ab8637be71f333a104a965a9ca3f" integrity sha512-+bMdgqjMN/Z77a6NlY/I3U5LlRDbnmaAk6lDveAPKwSpcPM4tKAuYsvYF8xjhOPXhOYGe/73vVLVez5PW+jqhw== +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" @@ -3011,6 +3016,13 @@ mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: dependencies: minimist "0.0.8" +mkdirp@^0.5.3: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + mkdirp@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.3.tgz#4cf2e30ad45959dddea53ad97d518b6c8205e1ea" @@ -3053,10 +3065,10 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -needle@^2.2.1, needle@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.2.tgz#3342dea100b7160960a450dc8c22160ac712a528" - integrity sha512-DUzITvPVDUy6vczKKYTnWc/pBZ0EnjMJnQ3y+Jo5zfKFimJs7S3HFCxCRZYB9FUZcrzUQr3WsmvZgddMEIZv6w== +needle@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.5.0.tgz#e6fc4b3cc6c25caed7554bd613a5cf0bac8c31c0" + integrity sha512-o/qITSDR0JCyCKEQ1/1bnUXMmznxabbwi/Y4WwJElf+evwJNFNwIDMCCt5IigFVxgeGBJESLohGtIS9gEzo1fA== dependencies: debug "^3.2.6" iconv-lite "^0.4.4" @@ -3093,14 +3105,14 @@ node-gyp@^5.0.2, node-gyp@^5.0.7: tar "^4.4.12" which "^1.3.1" -node-pre-gyp@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" - integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== +node-pre-gyp@^0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.15.0.tgz#c2fc383276b74c7ffa842925241553e8b40f1087" + integrity sha512-7QcZa8/fpaU/BKenjcaeFF9hLz2+7S9AqyXFhlH/rilsQ/hPZKK32RtR5EQHJElgu+q5RfbJ34KriI79UWaorA== dependencies: detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" + mkdirp "^0.5.3" + needle "^2.5.0" nopt "^4.0.1" npm-packlist "^1.1.6" npmlog "^4.0.2"