mirror of
https://git.quad4.io/RNS-Things/MeshChatX.git
synced 2026-06-07 21:01:35 +00:00
chore(build): update Electron Forge configuration with support for Snap and Flatpak packaging, update .gitignore for new build artifacts, and modify package scripts for local execution
This commit is contained in:
@@ -27,6 +27,15 @@ env.bak/
|
||||
venv.bak/
|
||||
.venv/
|
||||
|
||||
# Legacy Electron Forge in-repo temp (see scripts/electron-forge-local-tmp.js)
|
||||
.forge-tmp/
|
||||
|
||||
# flatpak-builder / snapcraft working trees (large; may contain root-owned cache)
|
||||
.flatpak-builder/
|
||||
parts/
|
||||
prime/
|
||||
stage/
|
||||
|
||||
# Build files
|
||||
/build/
|
||||
/dist/
|
||||
|
||||
@@ -1,5 +1,21 @@
|
||||
const { FusesPlugin } = require("@electron-forge/plugin-fuses");
|
||||
const { FuseV1Options, FuseVersion } = require("@electron/fuses");
|
||||
const which = require("which");
|
||||
|
||||
function hasExecutable(name) {
|
||||
return which.sync(name, { nothrow: true }) !== null;
|
||||
}
|
||||
|
||||
const forgeSnapExplicit =
|
||||
process.env.FORGE_MAKE_SNAP === "1" || process.env.FORGE_MAKE_SNAP === "true";
|
||||
const forgeFlatpakExplicit =
|
||||
process.env.FORGE_MAKE_FLATPAK === "1" ||
|
||||
process.env.FORGE_MAKE_FLATPAK === "true";
|
||||
|
||||
const forgeSnapEnabled = hasExecutable("snapcraft") || forgeSnapExplicit;
|
||||
const forgeFlatpakEnabled =
|
||||
(hasExecutable("flatpak-builder") && hasExecutable("eu-strip")) ||
|
||||
forgeFlatpakExplicit;
|
||||
|
||||
const platform = process.env.PLATFORM || process.platform;
|
||||
const arch = process.env.ARCH || process.arch;
|
||||
@@ -13,6 +29,13 @@ if (platform === "win32" || platform === "win") {
|
||||
module.exports = {
|
||||
packagerConfig: {
|
||||
asar: true,
|
||||
ignore: [
|
||||
/^\/\.flatpak-builder(\/|$)/,
|
||||
/^\/\.snapcraft(\/|$)/,
|
||||
/^\/parts(\/|$)/,
|
||||
/^\/prime(\/|$)/,
|
||||
/^\/stage(\/|$)/,
|
||||
],
|
||||
extraResource: [extraResourceDir],
|
||||
executableName: "reticulum-meshchatx",
|
||||
name: "Reticulum MeshChatX",
|
||||
@@ -46,8 +69,24 @@ module.exports = {
|
||||
name: "@electron-forge/maker-rpm",
|
||||
config: {},
|
||||
},
|
||||
{
|
||||
name: "@electron-forge/maker-snap",
|
||||
enabled: forgeSnapEnabled,
|
||||
config: {
|
||||
summary: "Mesh networking chat client",
|
||||
description:
|
||||
"A simple mesh network communications app powered by the Reticulum Network Stack",
|
||||
confinement: "strict",
|
||||
grade: "devel",
|
||||
features: {
|
||||
audio: true,
|
||||
webgl: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "@electron-forge/maker-flatpak",
|
||||
enabled: forgeFlatpakEnabled,
|
||||
config: {
|
||||
options: {
|
||||
categories: ["Network"],
|
||||
@@ -56,6 +95,19 @@ module.exports = {
|
||||
sdk: "org.freedesktop.Sdk",
|
||||
base: "org.electronjs.Electron2.BaseApp",
|
||||
baseVersion: "24.08",
|
||||
finishArgs: [
|
||||
"--share=ipc",
|
||||
"--share=network",
|
||||
"--socket=x11",
|
||||
"--socket=wayland",
|
||||
"--device=dri",
|
||||
"--allow=bluetooth",
|
||||
"--filesystem=home",
|
||||
"--talk-name=org.freedesktop.Notifications",
|
||||
"--env=TMPDIR=/var/tmp",
|
||||
"--socket=pulseaudio",
|
||||
],
|
||||
extraFlatpakBuilderArgs: ["--verbose"],
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
+8
-4
@@ -39,15 +39,17 @@
|
||||
"dist:windows": "pnpm run electron-postinstall && cross-env PLATFORM=win32 pnpm run build && electron-builder --win portable nsis --publish=never",
|
||||
"dist:win-x64": "pnpm run electron-postinstall && cross-env PLATFORM=win32 ARCH=x64 pnpm run build && electron-builder --win portable nsis --x64 --publish=never",
|
||||
"dist:win-arm64": "pnpm run electron-postinstall && cross-env PLATFORM=win32 ARCH=arm64 pnpm run build && electron-builder --win portable nsis --arm64 --publish=never",
|
||||
"dist:zip": "pnpm run electron-postinstall && pnpm run build && electron-forge make --targets @electron-forge/maker-zip",
|
||||
"dist:zip": "pnpm run electron-postinstall && pnpm run build && node scripts/electron-forge-local-tmp.js make --targets @electron-forge/maker-zip",
|
||||
"dist-prebuilt": "pnpm run electron-postinstall && pnpm run build-backend && electron-builder --publish=never",
|
||||
"dist:windows-prebuilt": "pnpm run electron-postinstall && cross-env PLATFORM=win32 pnpm run version:sync && cross-env PLATFORM=win32 pnpm run build-backend && electron-builder --win portable nsis --publish=never",
|
||||
"dist:linux-prebuilt": "pnpm run electron-postinstall && cross-env PLATFORM=linux pnpm run version:sync && cross-env PLATFORM=linux pnpm run build-backend && electron-builder --linux AppImage deb --publish=never",
|
||||
"dist:mac-arm64": "pnpm run electron-postinstall && pnpm run build && electron-builder --mac --arm64 --publish=never",
|
||||
"dist:mac-universal": "bash scripts/build-macos-universal.sh",
|
||||
"start": "pnpm run build && electron-forge start",
|
||||
"package": "pnpm run build && electron-forge package",
|
||||
"make": "pnpm run build && electron-forge make"
|
||||
"start": "pnpm run build && node scripts/electron-forge-local-tmp.js start",
|
||||
"package": "pnpm run build && node scripts/electron-forge-local-tmp.js package",
|
||||
"make": "pnpm run build && node scripts/electron-forge-local-tmp.js make",
|
||||
"make:snap": "pnpm run electron-postinstall && pnpm run build && cross-env FORGE_MAKE_SNAP=1 node scripts/electron-forge-local-tmp.js make --targets @electron-forge/maker-snap",
|
||||
"make:flatpak": "pnpm run electron-postinstall && pnpm run build && cross-env DEBUG=@malept/flatpak-bundler*,electron-installer-flatpak* FORGE_MAKE_FLATPAK=1 node scripts/electron-forge-local-tmp.js make --targets @electron-forge/maker-flatpak"
|
||||
},
|
||||
"license": "0BSD AND MIT",
|
||||
"engines": {
|
||||
@@ -59,6 +61,7 @@
|
||||
"@electron-forge/maker-deb": "^7.11.1",
|
||||
"@electron-forge/maker-flatpak": "^7.11.1",
|
||||
"@electron-forge/maker-rpm": "^7.11.1",
|
||||
"@electron-forge/maker-snap": "^7.11.1",
|
||||
"@electron-forge/maker-squirrel": "^7.11.1",
|
||||
"@electron-forge/maker-zip": "^7.11.1",
|
||||
"@electron-forge/plugin-auto-unpack-natives": "^7.11.1",
|
||||
@@ -106,6 +109,7 @@
|
||||
"tmp": ">=0.2.4",
|
||||
"tar": ">=7.5.7",
|
||||
"minimatch": ">=10.2.1",
|
||||
"@electron/asar>minimatch": "3.1.2",
|
||||
"serialize-javascript": ">=7.0.3",
|
||||
"flatted": ">=3.4.2"
|
||||
}
|
||||
|
||||
Generated
+97
-1
@@ -12,6 +12,7 @@ overrides:
|
||||
tmp: '>=0.2.4'
|
||||
tar: '>=7.5.7'
|
||||
minimatch: '>=10.2.1'
|
||||
'@electron/asar>minimatch': 3.1.2
|
||||
serialize-javascript: '>=7.0.3'
|
||||
flatted: '>=3.4.2'
|
||||
|
||||
@@ -95,6 +96,9 @@ importers:
|
||||
'@electron-forge/maker-rpm':
|
||||
specifier: ^7.11.1
|
||||
version: 7.11.1
|
||||
'@electron-forge/maker-snap':
|
||||
specifier: ^7.11.1
|
||||
version: 7.11.1
|
||||
'@electron-forge/maker-squirrel':
|
||||
specifier: ^7.11.1
|
||||
version: 7.11.1
|
||||
@@ -314,6 +318,10 @@ packages:
|
||||
resolution: {integrity: sha512-iEfJPRQQyaTqk2EbUfZgulChNWvxGXeYUH0xBX/r5cj1pL4vcJXt3jLMQBVn3mk/0Ytv9UWRs8R/XuNWX6sf2w==}
|
||||
engines: {node: '>= 16.4.0'}
|
||||
|
||||
'@electron-forge/maker-snap@7.11.1':
|
||||
resolution: {integrity: sha512-VNWSLH+eT8OctTWL3Q7VMSlu0mIiaa2aSJFFXBJZWgpBgYjQdeT6i1RWRD/FsuYkk1naix68LeRzb9V4TlShKA==}
|
||||
engines: {node: '>= 16.4.0'}
|
||||
|
||||
'@electron-forge/maker-squirrel@7.11.1':
|
||||
resolution: {integrity: sha512-oSg7fgad6l+X0DjtRkSpMzB0AjzyDO4mb2gzM4kTodkP1ADeiMi08bxy0ZeCESqLm5+fG72cAPmEr3BAPvI1yw==}
|
||||
engines: {node: '>= 16.4.0'}
|
||||
@@ -1160,6 +1168,9 @@ packages:
|
||||
arg@5.0.2:
|
||||
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
|
||||
|
||||
argparse@1.0.10:
|
||||
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
|
||||
|
||||
argparse@2.0.1:
|
||||
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
|
||||
|
||||
@@ -1203,6 +1214,9 @@ packages:
|
||||
peerDependencies:
|
||||
postcss: ^8.1.0
|
||||
|
||||
balanced-match@1.0.2:
|
||||
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
|
||||
|
||||
balanced-match@4.0.4:
|
||||
resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
|
||||
engines: {node: 18 || 20 || >=22}
|
||||
@@ -1238,6 +1252,9 @@ packages:
|
||||
resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
|
||||
brace-expansion@1.1.14:
|
||||
resolution: {integrity: sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==}
|
||||
|
||||
brace-expansion@5.0.5:
|
||||
resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==}
|
||||
engines: {node: 18 || 20 || >=22}
|
||||
@@ -1437,6 +1454,9 @@ packages:
|
||||
compressorjs@1.3.0:
|
||||
resolution: {integrity: sha512-TsvzkRgDm/6mIRUdxJbrTH7kfSW3oJzOw8b1xU60fziQSosTML5TczpO6Z4H1LGF0yRmTotk6r5UNhuRxEwA1A==}
|
||||
|
||||
concat-map@0.0.1:
|
||||
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
|
||||
|
||||
config-chain@1.1.13:
|
||||
resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
|
||||
|
||||
@@ -1621,6 +1641,11 @@ packages:
|
||||
os: [darwin, linux]
|
||||
hasBin: true
|
||||
|
||||
electron-installer-snap@5.2.0:
|
||||
resolution: {integrity: sha512-SRm7pCpNHMXV545JjScV8fLC9NhFli5r8L8Ju4EHdXwRh76+mwrJoUEDLItixBudZ5Mcgz1SJcDPJfWpEQWX7Q==}
|
||||
engines: {node: '>= 10.0'}
|
||||
hasBin: true
|
||||
|
||||
electron-prompt@1.7.0:
|
||||
resolution: {integrity: sha512-IfqJYEgcRO6NuyPROo8AtdkAiZ6N9I1lQEf4dJAkPuhV5YgOHdmLqZJf6OXumZJfzrjpzCM5jHeYOrhGdgbnEA==}
|
||||
|
||||
@@ -1781,6 +1806,11 @@ packages:
|
||||
resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
esprima@4.0.1:
|
||||
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
|
||||
engines: {node: '>=4'}
|
||||
hasBin: true
|
||||
|
||||
esquery@1.7.0:
|
||||
resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==}
|
||||
engines: {node: '>=0.10'}
|
||||
@@ -2300,6 +2330,10 @@ packages:
|
||||
js-tokens@10.0.0:
|
||||
resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==}
|
||||
|
||||
js-yaml@3.14.2:
|
||||
resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==}
|
||||
hasBin: true
|
||||
|
||||
js-yaml@4.1.1:
|
||||
resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==}
|
||||
hasBin: true
|
||||
@@ -2595,6 +2629,9 @@ packages:
|
||||
resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==}
|
||||
engines: {node: 18 || 20 || >=22}
|
||||
|
||||
minimatch@3.1.2:
|
||||
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
|
||||
|
||||
minimist@1.2.8:
|
||||
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
|
||||
|
||||
@@ -3330,6 +3367,9 @@ packages:
|
||||
spdx-license-ids@3.0.23:
|
||||
resolution: {integrity: sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==}
|
||||
|
||||
sprintf-js@1.0.3:
|
||||
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
|
||||
|
||||
sprintf-js@1.1.3:
|
||||
resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
|
||||
|
||||
@@ -4153,6 +4193,16 @@ snapshots:
|
||||
- bluebird
|
||||
- supports-color
|
||||
|
||||
'@electron-forge/maker-snap@7.11.1':
|
||||
dependencies:
|
||||
'@electron-forge/maker-base': 7.11.1
|
||||
'@electron-forge/shared-types': 7.11.1
|
||||
optionalDependencies:
|
||||
electron-installer-snap: 5.2.0
|
||||
transitivePeerDependencies:
|
||||
- bluebird
|
||||
- supports-color
|
||||
|
||||
'@electron-forge/maker-squirrel@7.11.1':
|
||||
dependencies:
|
||||
'@electron-forge/maker-base': 7.11.1
|
||||
@@ -4279,7 +4329,7 @@ snapshots:
|
||||
dependencies:
|
||||
commander: 5.1.0
|
||||
glob: 7.2.3
|
||||
minimatch: 10.2.5
|
||||
minimatch: 3.1.2
|
||||
|
||||
'@electron/fuses@1.8.0':
|
||||
dependencies:
|
||||
@@ -5292,6 +5342,11 @@ snapshots:
|
||||
|
||||
arg@5.0.2: {}
|
||||
|
||||
argparse@1.0.10:
|
||||
dependencies:
|
||||
sprintf-js: 1.0.3
|
||||
optional: true
|
||||
|
||||
argparse@2.0.1: {}
|
||||
|
||||
assert-plus@1.0.0:
|
||||
@@ -5327,6 +5382,8 @@ snapshots:
|
||||
postcss: 8.5.10
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
balanced-match@1.0.2: {}
|
||||
|
||||
balanced-match@4.0.4: {}
|
||||
|
||||
base64-js@1.5.1: {}
|
||||
@@ -5354,6 +5411,11 @@ snapshots:
|
||||
boolean@3.2.0:
|
||||
optional: true
|
||||
|
||||
brace-expansion@1.1.14:
|
||||
dependencies:
|
||||
balanced-match: 1.0.2
|
||||
concat-map: 0.0.1
|
||||
|
||||
brace-expansion@5.0.5:
|
||||
dependencies:
|
||||
balanced-match: 4.0.4
|
||||
@@ -5588,6 +5650,8 @@ snapshots:
|
||||
blueimp-canvas-to-blob: 3.29.0
|
||||
is-blob: 2.1.0
|
||||
|
||||
concat-map@0.0.1: {}
|
||||
|
||||
config-chain@1.1.13:
|
||||
dependencies:
|
||||
ini: 1.3.8
|
||||
@@ -5825,6 +5889,22 @@ snapshots:
|
||||
- supports-color
|
||||
optional: true
|
||||
|
||||
electron-installer-snap@5.2.0:
|
||||
dependencies:
|
||||
'@malept/cross-spawn-promise': 1.1.1
|
||||
debug: 4.4.3
|
||||
electron-installer-common: 0.10.4
|
||||
fs-extra: 9.1.0
|
||||
js-yaml: 3.14.2
|
||||
lodash: 4.18.1
|
||||
semver: 7.7.4
|
||||
tmp-promise: 3.0.3
|
||||
which: 2.0.2
|
||||
yargs: 16.2.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
optional: true
|
||||
|
||||
electron-prompt@1.7.0: {}
|
||||
|
||||
electron-publish@26.8.1:
|
||||
@@ -6012,6 +6092,9 @@ snapshots:
|
||||
acorn-jsx: 5.3.2(acorn@8.16.0)
|
||||
eslint-visitor-keys: 4.2.1
|
||||
|
||||
esprima@4.0.1:
|
||||
optional: true
|
||||
|
||||
esquery@1.7.0:
|
||||
dependencies:
|
||||
estraverse: 5.3.0
|
||||
@@ -6562,6 +6645,12 @@ snapshots:
|
||||
|
||||
js-tokens@10.0.0: {}
|
||||
|
||||
js-yaml@3.14.2:
|
||||
dependencies:
|
||||
argparse: 1.0.10
|
||||
esprima: 4.0.1
|
||||
optional: true
|
||||
|
||||
js-yaml@4.1.1:
|
||||
dependencies:
|
||||
argparse: 2.0.1
|
||||
@@ -6853,6 +6942,10 @@ snapshots:
|
||||
dependencies:
|
||||
brace-expansion: 5.0.5
|
||||
|
||||
minimatch@3.1.2:
|
||||
dependencies:
|
||||
brace-expansion: 1.1.14
|
||||
|
||||
minimist@1.2.8: {}
|
||||
|
||||
minipass-collect@1.0.2:
|
||||
@@ -7544,6 +7637,9 @@ snapshots:
|
||||
|
||||
spdx-license-ids@3.0.23: {}
|
||||
|
||||
sprintf-js@1.0.3:
|
||||
optional: true
|
||||
|
||||
sprintf-js@1.1.3:
|
||||
optional: true
|
||||
|
||||
|
||||
Reference in New Issue
Block a user