From 11dc3fb9c827fb20a31b3e774b54dd4fab8322c1 Mon Sep 17 00:00:00 2001 From: Zhihe Li Date: Fri, 22 Sep 2023 17:42:48 -0400 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Fix=20usage=20of=20spawn?= =?UTF-8?q?=20statements=20with=20boundary=20and=20node-pty=20(#1917)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../electron-app/config/forge.config.js | 22 +++-- ui/desktop/electron-app/package.json | 1 - ui/desktop/electron-app/src/cli/path.js | 2 +- ui/desktop/electron-app/yarn.lock | 87 ------------------- 4 files changed, 16 insertions(+), 96 deletions(-) diff --git a/ui/desktop/electron-app/config/forge.config.js b/ui/desktop/electron-app/config/forge.config.js index 0b6d7be85..6d9c906f0 100644 --- a/ui/desktop/electron-app/config/forge.config.js +++ b/ui/desktop/electron-app/config/forge.config.js @@ -20,14 +20,22 @@ module.exports = { 'entitlements-inherit': './assets/macos/entitlements.plist', 'signature-flags': 'library', }, - asar: true, - }, - plugins: [ - { - name: '@electron-forge/plugin-auto-unpack-natives', - config: {}, + asar: { + // We need to unpack node-pty helpers so we have them available + // outside of the ASAR when they are called + unpack: '**/node_modules/node-pty/build/Release/*', }, - ], + beforeAsar: [ + async (buildPath, electronVersion, platform, arch, done) => { + // Delete the boundary CLI before we build the ASAR as it gets copied outside + // in the resources folder + const cliPath = path.join(buildPath, 'cli'); + await fs.promises.rm(cliPath, { recursive: true, force: true }); + done(); + }, + ], + extraResource: ['./cli'], + }, makers: [ { name: '@electron-forge/maker-zip', diff --git a/ui/desktop/electron-app/package.json b/ui/desktop/electron-app/package.json index 7243b3fc7..01cd4c1c9 100644 --- a/ui/desktop/electron-app/package.json +++ b/ui/desktop/electron-app/package.json @@ -37,7 +37,6 @@ "@electron-forge/maker-dmg": "^6.1.1", "@electron-forge/maker-squirrel": "^6.1.1", "@electron-forge/maker-zip": "^6.1.1", - "@electron-forge/plugin-auto-unpack-natives": "^6.4.2", "decompress": "^4.2.1", "electron": "26.2.1" }, diff --git a/ui/desktop/electron-app/src/cli/path.js b/ui/desktop/electron-app/src/cli/path.js index d0da32251..f37b6e9e3 100644 --- a/ui/desktop/electron-app/src/cli/path.js +++ b/ui/desktop/electron-app/src/cli/path.js @@ -10,6 +10,6 @@ module.exports = { // Returns boundary cli path path: () => { const name = isWindows() ? 'boundary.exe' : 'boundary'; - return path.resolve(__dirname, '..', '..', 'cli', name); + return path.resolve(process.resourcesPath, 'cli', name); }, }; diff --git a/ui/desktop/electron-app/yarn.lock b/ui/desktop/electron-app/yarn.lock index bd4b972bc..0a911f544 100644 --- a/ui/desktop/electron-app/yarn.lock +++ b/ui/desktop/electron-app/yarn.lock @@ -124,14 +124,6 @@ fs-extra "^10.0.0" got "^11.8.5" -"@electron-forge/plugin-auto-unpack-natives@^6.4.2": - version "6.4.2" - resolved "https://registry.yarnpkg.com/@electron-forge/plugin-auto-unpack-natives/-/plugin-auto-unpack-natives-6.4.2.tgz#8c8b0066d352b2b5983c4ca3b47818b7b8f9bc1c" - integrity sha512-AXmPQc2nUFuh/xFC+Qsebg/eg3M+5GQV6MOzMvTBZ9N1w49XtZbtvEGAdISnZWERExNRcwH+j+zuSAGtm6Y2Yw== - dependencies: - "@electron-forge/plugin-base" "6.4.2" - "@electron-forge/shared-types" "6.4.2" - "@electron-forge/plugin-base@6.1.1": version "6.1.1" resolved "https://registry.yarnpkg.com/@electron-forge/plugin-base/-/plugin-base-6.1.1.tgz#73f4688654cd29591af533be53c2a3a656405331" @@ -139,13 +131,6 @@ dependencies: "@electron-forge/shared-types" "6.1.1" -"@electron-forge/plugin-base@6.4.2": - version "6.4.2" - resolved "https://registry.yarnpkg.com/@electron-forge/plugin-base/-/plugin-base-6.4.2.tgz#65054f841728688cc31edeb94479e6bd4bc07782" - integrity sha512-g6AAtQ7fZ94djBmwcnWasQ8xgaNVNjgaQ00GLK0NkmQ7n0PNbsnlMDuw9vdfTiL6WaLg5nxNSYc9bFJP/rtyeA== - dependencies: - "@electron-forge/shared-types" "6.4.2" - "@electron-forge/publisher-base@6.1.1": version "6.1.1" resolved "https://registry.yarnpkg.com/@electron-forge/publisher-base/-/publisher-base-6.1.1.tgz#45e53554613b9ff9bca18cd2b4c8aab5ba85f099" @@ -162,15 +147,6 @@ electron-packager "^17.1.1" listr2 "^5.0.3" -"@electron-forge/shared-types@6.4.2": - version "6.4.2" - resolved "https://registry.yarnpkg.com/@electron-forge/shared-types/-/shared-types-6.4.2.tgz#ffc25a21d1bc7e6cb8fcf8dc1e1767c6a8c52d02" - integrity sha512-DKOUMsdTXZIq8XiqY0Hi3C+dam/JKUnvfBjwcUeyZqPdgEE1qry8xZmmjorXuLrRf1Jq8rhxYGQInSK4af0QYw== - dependencies: - "@electron/rebuild" "^3.2.10" - electron-packager "^17.1.2" - listr2 "^5.0.3" - "@electron-forge/template-base@6.1.1": version "6.1.1" resolved "https://registry.yarnpkg.com/@electron-forge/template-base/-/template-base-6.1.1.tgz#ff6f32735491a235f404bf0cb069c8737fbfc4d4" @@ -256,18 +232,6 @@ minimist "^1.2.6" plist "^3.0.5" -"@electron/osx-sign@^1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@electron/osx-sign/-/osx-sign-1.0.5.tgz#0af7149f2fce44d1a8215660fd25a9fb610454d8" - integrity sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww== - dependencies: - compare-version "^0.1.2" - debug "^4.3.4" - fs-extra "^10.0.0" - isbinaryfile "^4.0.8" - minimist "^1.2.6" - plist "^3.0.5" - "@electron/rebuild@^3.2.10": version "3.2.10" resolved "https://registry.yarnpkg.com/@electron/rebuild/-/rebuild-3.2.10.tgz#adc9443179709d4e4b93a68fac6a08b9a3b9e5e6" @@ -1210,31 +1174,6 @@ electron-packager@^17.1.1: semver "^7.1.3" yargs-parser "^21.1.1" -electron-packager@^17.1.2: - version "17.1.2" - resolved "https://registry.yarnpkg.com/electron-packager/-/electron-packager-17.1.2.tgz#18030b28024d242b706d0a8a67ed4cd1a57311aa" - integrity sha512-XofXdikjYI7MVBcnXeoOvRR+yFFFHOLs3J7PF5KYQweigtgLshcH4W660PsvHr4lYZ03JBpLyEcUB8DzHZ+BNw== - dependencies: - "@electron/asar" "^3.2.1" - "@electron/get" "^2.0.0" - "@electron/notarize" "^1.2.3" - "@electron/osx-sign" "^1.0.5" - "@electron/universal" "^1.3.2" - cross-spawn-windows-exe "^1.2.0" - debug "^4.0.1" - extract-zip "^2.0.0" - filenamify "^4.1.0" - fs-extra "^11.1.0" - galactus "^1.0.0" - get-package-info "^1.0.0" - junk "^3.1.0" - parse-author "^2.0.0" - plist "^3.0.0" - rcedit "^3.0.1" - resolve "^1.1.6" - semver "^7.1.3" - yargs-parser "^21.1.1" - electron-squirrel-startup@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/electron-squirrel-startup/-/electron-squirrel-startup-1.0.0.tgz#19b4e55933fa0ef8f556784b9c660f772546a0b8" @@ -1461,14 +1400,6 @@ flora-colossus@^1.0.0: debug "^4.1.1" fs-extra "^7.0.0" -flora-colossus@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/flora-colossus/-/flora-colossus-2.0.0.tgz#af1e85db0a8256ef05f3fb531c1235236c97220a" - integrity sha512-dz4HxH6pOvbUzZpZ/yXhafjbR2I8cenK5xL0KtBFb7U2ADsR+OwXifnxZjij/pZWF775uSCMzWVd+jDik2H2IA== - dependencies: - debug "^4.3.4" - fs-extra "^10.1.0" - fmix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/fmix/-/fmix-0.1.0.tgz#c7bbf124dec42c9d191cfb947d0a9778dd986c0c" @@ -1498,15 +1429,6 @@ fs-extra@^10.0.0, fs-extra@^10.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^11.1.0: - version "11.1.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" - integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-extra@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" @@ -1589,15 +1511,6 @@ galactus@^0.2.1: flora-colossus "^1.0.0" fs-extra "^4.0.0" -galactus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/galactus/-/galactus-1.0.0.tgz#c2615182afa0c6d0859b92e56ae36d052827db7e" - integrity sha512-R1fam6D4CyKQGNlvJne4dkNF+PvUUl7TAJInvTGa9fti9qAv95quQz29GXapA4d8Ec266mJJxFVh82M4GIIGDQ== - dependencies: - debug "^4.3.4" - flora-colossus "^2.0.0" - fs-extra "^10.1.0" - gar@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/gar/-/gar-1.0.4.tgz#f777bc7db425c0572fdeb52676172ca1ae9888b8"