From f6a1fcd88b822db88200565c8e836b93f968a486 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20H=C3=A4usler?= Date: Sun, 30 Jan 2022 12:35:37 +0100 Subject: [PATCH] Bump version to v0.17.0-rc1 (#2952) Add workaround to remove debug information from Electron production binaries on Linux. --- .electron-vue/electron-builder/afterPack.js | 51 +++++++++++++++++++++ electron-builder.yml | 1 + package.json | 2 +- 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 .electron-vue/electron-builder/afterPack.js diff --git a/.electron-vue/electron-builder/afterPack.js b/.electron-vue/electron-builder/afterPack.js new file mode 100644 index 00000000..7f4a10e8 --- /dev/null +++ b/.electron-vue/electron-builder/afterPack.js @@ -0,0 +1,51 @@ +'use strict' +const fs = require('fs') +const path = require('path') +const { exec: execNode } = require("child_process") +const util = require('util') + +const exec = util.promisify(execNode) + +// interface AfterPackContext { +// outDir: string +// appOutDir: string +// packager: PlatformPackager +// electronPlatformName: string +// arch: Arch +// targets: Array +// } + +/** + * + * @param {AfterPackContext} context + */ +const afterPack = async (context) => { + // Workaround to remove debug information from production binaries on Linux (Electron#32669). + if (context.packager.platform.name === 'linux') { + console.log('[afterPack] Removing Electron debug information on Linux') + + const { appOutDir } = context + const chromeCrashpadHandlerPath = path.join(appOutDir, 'chrome_crashpad_handler') + const libvkPath = path.join(appOutDir, 'libvk_swiftshader.so') + + if (fs.existsSync(chromeCrashpadHandlerPath)) { + const { err } = await exec(`strip "${chromeCrashpadHandlerPath}"`) + if (err) { + console.log('[afterPack] Unable to strip "chrome_crashpad_handler".') + } + } else { + console.log(`[afterPack] "chrome_crashpad_handler" doesn't exists: "${chromeCrashpadHandlerPath}".`) + } + + if (fs.existsSync(libvkPath)) { + const { err } = await exec(`strip "${libvkPath}"`) + if (err) { + console.log('[afterPack] Unable to strip "libvk_swiftshader.so".') + } + } else { + console.log(`[afterPack] "libvk_swiftshader.so" doesn't exists: "${libvkPath}".`) + } + } +} + +exports.default = afterPack diff --git a/electron-builder.yml b/electron-builder.yml index 09837fee..cdce1034 100755 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -58,6 +58,7 @@ extraResources: to: "hunspell_dictionaries/" filter: - "!**/LICENSE-hunspell.txt" +afterPack: './.electron-vue/electron-builder/afterPack.js' fileAssociations: - ext: diff --git a/package.json b/package.json index da1a402c..2c0c6a11 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "marktext", - "version": "0.16.3", + "version": "0.17.0-rc.1", "homepage": "https://marktext.app/", "description": "Next generation markdown editor", "license": "MIT",