diff --git a/README b/README index 86d1a37..faa8140 100644 --- a/README +++ b/README @@ -14,7 +14,8 @@ so the first step is to get a working copy of Riot. There are a few ways of doin ``` # Fetch the prebuilt release Riot package from the riot.im GitHub releases page. The version # fetched will be the same as the local riot-desktop package. -yarn run fetch --noverify +# We're explicitly asking for no config, so the package Riot will have no config.json. +yarn run fetch --noverify --cfgdir '' ``` ...or if you'd like to use GPG to verify the downloaded package: @@ -24,14 +25,14 @@ yarn run fetch --noverify # once. yarn run fetch --importkey # Fetch the package and verify the signature -yarn run fetch +yarn run fetch --cfgdir '' ``` ...or either of the above, but fetching a specific version of Riot: ``` # Fetch the prebuilt release Riot package from the riot.im GitHub releases page. The version # fetched will be the same as the local riot-desktop package. -yarn run fetch --noverify v1.5.6 +yarn run fetch --noverify --cfgdir '' v1.5.6 ``` If you only want to run the app locally and don't need to build packages, you can @@ -75,3 +76,16 @@ If you'd just like to run the electron app locally for development: yarn add electron yarn start ``` + +Config +====== +If you'd like the packaged Riot to have a configuration file, you can create a +config directory and place `config.json` in there, then specify this directory +with the `--cfgdir` option to `yarn run fetch`, eg: +``` +mkdir myconfig +cp /path/to/my/config.json myconfig/ +yarn run fetch --cfgdir myconfig +``` +The config dir for the official Riot.im app is in `riot.im`. If you use this, +your app will auto-update itself using builds from Riot.im. diff --git a/package.json b/package.json index c28c794..6e04e17 100644 --- a/package.json +++ b/package.json @@ -18,9 +18,9 @@ "start": "electron .", "lint": "eslint src/", "build": "yarn run setversion && electron-builder", - "indocker": "scripts/indocker.sh", - "docker:build": "yarn run indocker yarn run build", - "docker:install": "yarn run indocker yarn install", + "in-docker": "scripts/in-docker.sh", + "docker:build": "yarn run in-docker yarn run build", + "docker:install": "yarn run in-docker yarn install", "debrepo": "scripts/mkrepo.sh", "clean": "rimraf webapp.asar dist packages deploys" }, diff --git a/pkg/control.template b/pkg/control.template index 8835e61..6a7d9fd 100644 --- a/pkg/control.template +++ b/pkg/control.template @@ -7,7 +7,7 @@ Depends: libgtk-3-0, libnotify4, libnss3, libxss1, libxtst6, xdg-utils, libatspi Provides: riot-web Conflicts: riot-web Replaces: riot-web -Section: default +Section: net Priority: extra Homepage: https://riot.im/ Description: diff --git a/scripts/electron_afterSign.js b/scripts/electron_afterSign.js index 5952976..5307eaa 100644 --- a/scripts/electron_afterSign.js +++ b/scripts/electron_afterSign.js @@ -10,7 +10,11 @@ exports.default = async function(context) { // from the keychain, so we need to get it from the environment. const userId = process.env.NOTARIZE_APPLE_ID; if (userId === undefined) { - throw new Error("User ID not found. Set NOTARIZE_APPLE_ID."); + console.log("*************************************"); + console.log("* NOTARIZE_APPLE_ID is not set. *"); + console.log("* This build will NOT be notarised. *"); + console.log("*************************************"); + return; } console.log("Notarising macOS app. This may be some time."); diff --git a/scripts/fetch-package.js b/scripts/fetch-package.js index 04efce1..106db3b 100755 --- a/scripts/fetch-package.js +++ b/scripts/fetch-package.js @@ -58,6 +58,7 @@ async function main() { let importkey = false; let pkgDir = 'packages'; let deployDir = 'deploys'; + let cfgDir; let targetVersion; while (process.argv.length > 2) { @@ -76,6 +77,11 @@ async function main() { process.argv.shift(); deployDir = process.argv[2]; break; + case '--cfgdir': + case '-d': + process.argv.shift(); + cfgDir = process.argv[2]; + break; default: targetVersion = process.argv[2]; } @@ -118,6 +124,13 @@ async function main() { }); return 0; } + + if (cfgDir === undefined) { + console.log("No config directory set"); + console.log("Specify a config directory with --cfgdir or -d"); + console.log("To build with no config (and no auto-update), pass the empty string (-d '')"); + return 1; + } if (verify && !haveGpg) { console.log("No working GPG binary: install GPG or pass --noverify to skip verification"); @@ -186,6 +199,15 @@ async function main() { } catch (e) { } + if (cfgDir.length) { + const configJsonSource = path.join(cfgDir, 'config.json'); + const configJsonDest = path.join(expectedDeployDir, 'config.json'); + console.log(configJsonSource + ' -> ' + configJsonDest); + await fsPromises.copyFile(configJsonSource, configJsonDest); + } else { + console.log("Skipping config file"); + } + console.log("Pack " + expectedDeployDir + " -> " + ASAR_PATH); await asar.createPackage(expectedDeployDir, ASAR_PATH); console.log("Done!"); diff --git a/scripts/indocker.sh b/scripts/in-docker.sh similarity index 100% rename from scripts/indocker.sh rename to scripts/in-docker.sh