diff --git a/automation/build-bin.ts b/automation/build-bin.ts index 08dda7ff..7df8b5ab 100644 --- a/automation/build-bin.ts +++ b/automation/build-bin.ts @@ -20,7 +20,7 @@ import type { JsonVersions } from '../lib/commands/version/index'; import { run as oclifRun } from '@oclif/core'; import * as archiver from 'archiver'; import * as Bluebird from 'bluebird'; -import { execFile } from 'child_process'; +import { exec, execFile } from 'child_process'; import * as filehound from 'filehound'; import { Stats } from 'fs'; import * as fs from 'fs-extra'; @@ -41,6 +41,7 @@ import { } from './utils'; const execFileAsync = promisify(execFile); +const execAsync = promisify(exec); export const packageJSON = loadPackageJson(); export const version = 'v' + packageJSON.version; @@ -60,9 +61,13 @@ const standaloneZips: PathByPlatform = { win32: dPath(`balena-cli-${version}-windows-${arch}-standalone.zip`), }; -const oclifInstallers: PathByPlatform = { - darwin: dPath('macos', `balena-${version}.pkg`), - win32: dPath('win32', `balena-${version}-${arch}.exe`), +const getOclifInstallersOriginalNames = async (): Promise => { + const { stdout } = await execAsync('git rev-parse --short HEAD'); + const sha = stdout.trim(); + return { + darwin: dPath('macos', `balena-${version}-${sha}-${arch}.pkg`), + win32: dPath('win32', `balena-${version}-${sha}-${arch}.exe`), + }; }; const renamedOclifInstallers: PathByPlatform = { @@ -421,6 +426,7 @@ export async function buildStandaloneZip() { } async function renameInstallerFiles() { + const oclifInstallers = await getOclifInstallersOriginalNames(); if (await fs.pathExists(oclifInstallers[process.platform])) { await fs.rename( oclifInstallers[process.platform], diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index dc23cc05..b1924758 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -5538,9 +5538,9 @@ "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" }, "node_modules/aws4-axios": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/aws4-axios/-/aws4-axios-3.3.1.tgz", - "integrity": "sha512-z3r+enHMfNE7ZipsAx/sSTLICg6V4LGAnZeu0P8x9azbmHcygWheGFl1fxbAQwnJ7Am6X6VeMfNiF92d0XkC9Q==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/aws4-axios/-/aws4-axios-3.3.2.tgz", + "integrity": "sha512-uJXEe1Zp5FjG31r3x7sZ2N9uIe7obVV48eEOhbDr7c2mEY613nmurvjZlRAwFoLDgpCJR1ZKxQyBZYjRgH/PCA==", "dependencies": { "@aws-sdk/client-sts": "^3.4.1", "aws4": "^1.12.0" @@ -7802,9 +7802,9 @@ } }, "node_modules/date-fns": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.3.1.tgz", - "integrity": "sha512-y8e109LYGgoQDveiEBD3DYXKba1jWf5BA8YU1FL5Tvm0BTdEfy54WLCwnuYWZNnzzvALy/QQ4Hov+Q9RVRv+Zw==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.4.0.tgz", + "integrity": "sha512-Akz4R8J9MXBsOgF1QeWeCsbv6pntT5KCPjU0Q9prBxVmWJYPLhwAIsNg3b0QAdr0ttiozYLD3L/af7Ra0jqYXw==", "funding": { "type": "github", "url": "https://github.com/sponsors/kossnocorp" @@ -9476,9 +9476,9 @@ } }, "node_modules/etcher-sdk/node_modules/drivelist": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/drivelist/-/drivelist-11.2.1.tgz", - "integrity": "sha512-6QO94SWxKxTXCpIvHpBk8NhIK+ZcgGjm9CclciB8cu7iND8JaQQk1+a4jwh8gSpIc8Uv2MTrfE+xCzI/+4O4QA==", + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/drivelist/-/drivelist-11.2.2.tgz", + "integrity": "sha512-shzkC4h3Q6sVkF9v9lbT1j49LN47O7h0GJk9E4VtJe81Xp6GF1O36gpnWpqRL6VvFya086eu4XcBEOwSXHHjeQ==", "hasInstallScript": true, "dependencies": { "bindings": "^1.5.0", @@ -19223,9 +19223,9 @@ } }, "node_modules/resin-cli-visuals/node_modules/drivelist": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/drivelist/-/drivelist-11.2.1.tgz", - "integrity": "sha512-6QO94SWxKxTXCpIvHpBk8NhIK+ZcgGjm9CclciB8cu7iND8JaQQk1+a4jwh8gSpIc8Uv2MTrfE+xCzI/+4O4QA==", + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/drivelist/-/drivelist-11.2.2.tgz", + "integrity": "sha512-shzkC4h3Q6sVkF9v9lbT1j49LN47O7h0GJk9E4VtJe81Xp6GF1O36gpnWpqRL6VvFya086eu4XcBEOwSXHHjeQ==", "hasInstallScript": true, "dependencies": { "bindings": "^1.5.0", @@ -29555,9 +29555,9 @@ "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" }, "aws4-axios": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/aws4-axios/-/aws4-axios-3.3.1.tgz", - "integrity": "sha512-z3r+enHMfNE7ZipsAx/sSTLICg6V4LGAnZeu0P8x9azbmHcygWheGFl1fxbAQwnJ7Am6X6VeMfNiF92d0XkC9Q==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/aws4-axios/-/aws4-axios-3.3.2.tgz", + "integrity": "sha512-uJXEe1Zp5FjG31r3x7sZ2N9uIe7obVV48eEOhbDr7c2mEY613nmurvjZlRAwFoLDgpCJR1ZKxQyBZYjRgH/PCA==", "requires": { "@aws-sdk/client-sts": "^3.4.1", "aws4": "^1.12.0" @@ -31340,9 +31340,9 @@ } }, "date-fns": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.3.1.tgz", - "integrity": "sha512-y8e109LYGgoQDveiEBD3DYXKba1jWf5BA8YU1FL5Tvm0BTdEfy54WLCwnuYWZNnzzvALy/QQ4Hov+Q9RVRv+Zw==" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.4.0.tgz", + "integrity": "sha512-Akz4R8J9MXBsOgF1QeWeCsbv6pntT5KCPjU0Q9prBxVmWJYPLhwAIsNg3b0QAdr0ttiozYLD3L/af7Ra0jqYXw==" }, "dateformat": { "version": "4.6.3", @@ -32641,9 +32641,9 @@ "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==" }, "drivelist": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/drivelist/-/drivelist-11.2.1.tgz", - "integrity": "sha512-6QO94SWxKxTXCpIvHpBk8NhIK+ZcgGjm9CclciB8cu7iND8JaQQk1+a4jwh8gSpIc8Uv2MTrfE+xCzI/+4O4QA==", + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/drivelist/-/drivelist-11.2.2.tgz", + "integrity": "sha512-shzkC4h3Q6sVkF9v9lbT1j49LN47O7h0GJk9E4VtJe81Xp6GF1O36gpnWpqRL6VvFya086eu4XcBEOwSXHHjeQ==", "requires": { "bindings": "^1.5.0", "debug": "^4.3.4", @@ -40153,9 +40153,9 @@ "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==" }, "drivelist": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/drivelist/-/drivelist-11.2.1.tgz", - "integrity": "sha512-6QO94SWxKxTXCpIvHpBk8NhIK+ZcgGjm9CclciB8cu7iND8JaQQk1+a4jwh8gSpIc8Uv2MTrfE+xCzI/+4O4QA==", + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/drivelist/-/drivelist-11.2.2.tgz", + "integrity": "sha512-shzkC4h3Q6sVkF9v9lbT1j49LN47O7h0GJk9E4VtJe81Xp6GF1O36gpnWpqRL6VvFya086eu4XcBEOwSXHHjeQ==", "requires": { "bindings": "^1.5.0", "debug": "^4.3.4", diff --git a/package.json b/package.json index 836a7046..114bea64 100644 --- a/package.json +++ b/package.json @@ -111,7 +111,7 @@ ], "macos": { "identifier": "io.balena.cli", - "sign": "Developer ID Installer: Balena Ltd (66H43P8FRG)" + "sign": "\"Developer ID Installer: Balena Ltd (66H43P8FRG)\"" } }, "devDependencies": { diff --git a/patches/all/oclif+3.17.2.dev.patch b/patches/all/oclif+3.17.2.dev.patch index 669f21c3..2c556d41 100644 --- a/patches/all/oclif+3.17.2.dev.patch +++ b/patches/all/oclif+3.17.2.dev.patch @@ -1,17 +1,3 @@ -diff --git a/node_modules/oclif/lib/commands/pack/macos.js b/node_modules/oclif/lib/commands/pack/macos.js -index d06d0b3..c571fe3 100644 ---- a/node_modules/oclif/lib/commands/pack/macos.js -+++ b/node_modules/oclif/lib/commands/pack/macos.js -@@ -177,7 +177,8 @@ class PackMacos extends core_1.Command { - if (process.env.OSX_KEYCHAIN) - args.push('--keychain', process.env.OSX_KEYCHAIN); - args.push(dist); -- await exec(`pkgbuild ${args.join(' ')}`); -+ console.error(`[debug] oclif pkgbuild "${args.join('" "')}"`); -+ await exec(`pkgbuild "${args.join('" "')}"`); - }; - const arches = _.uniq(buildConfig.targets - .filter(t => t.platform === 'darwin') diff --git a/node_modules/oclif/lib/commands/pack/win.js b/node_modules/oclif/lib/commands/pack/win.js index c0926bd..e4f645c 100644 --- a/node_modules/oclif/lib/commands/pack/win.js @@ -160,22 +146,3 @@ index 216759d..cab0e6e 100644 if (target && target.platform) return path.join(base, [target.platform, target.arch].join('-'), (0, upload_util_1.templateShortKey)('baseDir', { bin: config.bin })); return path.join(base, (0, upload_util_1.templateShortKey)('baseDir', { bin: config.bin })); -diff --git a/node_modules/oclif/lib/upload-util.js b/node_modules/oclif/lib/upload-util.js -index 6963e4d..430472d 100644 ---- a/node_modules/oclif/lib/upload-util.js -+++ b/node_modules/oclif/lib/upload-util.js -@@ -31,10 +31,10 @@ options = { root: '.' }) { - const templates = { - baseDir: '<%- bin %>', - unversioned: '<%- bin %>-<%- platform %>-<%- arch %><%- ext %>', -- versioned: '<%- bin %>-v<%- version %>-<%- sha %>-<%- platform %>-<%- arch %><%- ext %>', -- manifest: '<%- bin %>-v<%- version %>-<%- sha %>-<%- platform %>-<%- arch %>-buildmanifest', -- macos: '<%- bin %>-v<%- version %>-<%- sha %>-<%- arch %>.pkg', -- win32: '<%- bin %>-v<%- version %>-<%- sha %>-<%- arch %>.exe', -+ versioned: '<%- bin %>-v<%- version %>-<%- platform %>-<%- arch %><%- ext %>', -+ manifest: '<%- bin %>-v<%- version %>-<%- platform %>-<%- arch %>-buildmanifest', -+ macos: '<%- bin %>-v<%- version %>.pkg', -+ win32: '<%- bin %>-v<%- version %>-<%- arch %>.exe', - deb: '<%- bin %>_<%- versionShaRevision %>_<%- arch %>.deb', - }; - return _.template(templates[type])(Object.assign({}, options));