Browse Source

Linux: Fix running AppImage on Debian 10+ (#231)

Modeled after https://github.com/electron-userland/electron-builder/issues/5371#issuecomment-791771150
but written with promised-based fs nodejs API.

This allows to drop the app-builder-lib .desktop patch, as
--no-sandbox is now part of all linux targets via the additional launcher script,
so the arg can be dropped from the .desktop file Exec line.

Manual workaround is removed from the README as well.
master
Christoph Settgast 10 months ago
committed by Saúl Ibarra Corretgé
parent
commit
4cc851dc75
  1. 4
      README.md
  2. 23
      linux-sandbox-fix.js
  3. 1
      package.json
  4. 13
      patches/app-builder-lib+22.10.5.patch

4
README.md

@ -150,12 +150,8 @@ Builtin auto-updates are not yet handled in macOS due to unsigned build.
### GNU/Linux
There is a known issue which prevents the app from starting on some Linux distributions: [#231](https://github.com/jitsi/jitsi-meet-electron/issues/231)
If after downloading it, you can't execute the file directly, try running `chmod u+x ./jitsi-meet-x86_64.AppImage`
The workaround for now is to launch the app like so: `./jitsi-meet-x86_64.AppImage --no-sandbox`
<details><summary>NOTE for old GNU/Linux distributions</summary>
You might get the following error:

23
linux-sandbox-fix.js

@ -0,0 +1,23 @@
const fs = require('fs').promises;
const path = require('path');
/**
* Workaround for https://github.com/electron-userland/electron-builder/issues/5371
*
* use as "afterPack": "./linux-sandbox-fix.js" in build section of package.json
*/
async function afterPack({ appOutDir, electronPlatformName, packager }) {
if (electronPlatformName !== 'linux') {
return;
}
const appName = packager.appInfo.productFilename;
const script = `#!/bin/bash\n"\${BASH_SOURCE%/*}"/${appName}.bin --no-sandbox "$@"`;
const scriptPath = path.join(appOutDir, appName);
await fs.rename(scriptPath, `${scriptPath}.bin`);
await fs.writeFile(scriptPath, script);
await fs.chmod(scriptPath, 0o755);
}
module.exports = afterPack;

1
package.json

@ -20,6 +20,7 @@
"appId": "org.jitsi.jitsi-meet",
"productName": "Jitsi Meet",
"generateUpdatesFilesForAllChannels": true,
"afterPack": "./linux-sandbox-fix.js",
"files": [
"**/*",
"resources",

13
patches/app-builder-lib+22.10.5.patch

@ -1,13 +0,0 @@
diff --git a/node_modules/app-builder-lib/out/targets/LinuxTargetHelper.js b/node_modules/app-builder-lib/out/targets/LinuxTargetHelper.js
index 0e56a1c..91180fc 100644
--- a/node_modules/app-builder-lib/out/targets/LinuxTargetHelper.js
+++ b/node_modules/app-builder-lib/out/targets/LinuxTargetHelper.js
@@ -134,7 +134,7 @@ class LinuxTargetHelper {
exec += executableArgs.join(" ");
}
- exec += " %U";
+ exec += " --no-sandbox %U";
}
const desktopMeta = {
Loading…
Cancel
Save