mirror of
https://github.com/enso-org/enso.git
synced 2024-12-11 13:32:54 +03:00
Enable build signing for macOS and Windows binaries. (https://github.com/enso-org/ide/pull/1366)
Original commit: 0c339d8b59
This commit is contained in:
parent
f06d137783
commit
68801e11ff
23
gui/.github/workflows/gui-ci.yml
vendored
23
gui/.github/workflows/gui-ci.yml
vendored
@ -243,7 +243,17 @@ jobs:
|
||||
rm -r $WASMPACKDIR
|
||||
shell: bash
|
||||
if: startsWith(matrix.os,'ubuntu')
|
||||
- uses: actions/setup-java@v2
|
||||
with:
|
||||
distribution: adopt
|
||||
java-version: '11'
|
||||
- name: Build (macos)
|
||||
env:
|
||||
CSC_LINK: ${{secrets.APPLE_CODE_SIGNING_CERT}}
|
||||
CSC_KEY_PASSWORD: ${{secrets.APPLE_CODE_SIGNING_CERT_PASSWORD}}
|
||||
CSC_IDENTITY_AUTO_DISCOVERY: true
|
||||
APPLEID: ${{secrets.APPLE_NOTARIZATION_USERNAME}}
|
||||
APPLEIDPASS: ${{secrets.APPLE_NOTARIZATION_PASSWORD}}
|
||||
run: node ./run dist --skip-version-validation --target macos
|
||||
if: startsWith(matrix.os,'macos')
|
||||
if: >-
|
||||
@ -315,10 +325,23 @@ jobs:
|
||||
rm -r $WASMPACKDIR
|
||||
shell: bash
|
||||
if: startsWith(matrix.os,'ubuntu')
|
||||
- uses: actions/setup-java@v2
|
||||
with:
|
||||
distribution: adopt
|
||||
java-version: '11'
|
||||
- name: Build (macos)
|
||||
env:
|
||||
CSC_LINK: ${{secrets.APPLE_CODE_SIGNING_CERT}}
|
||||
CSC_KEY_PASSWORD: ${{secrets.APPLE_CODE_SIGNING_CERT_PASSWORD}}
|
||||
CSC_IDENTITY_AUTO_DISCOVERY: true
|
||||
APPLEID: ${{secrets.APPLE_NOTARIZATION_USERNAME}}
|
||||
APPLEIDPASS: ${{secrets.APPLE_NOTARIZATION_PASSWORD}}
|
||||
run: node ./run dist --skip-version-validation --target macos
|
||||
if: startsWith(matrix.os,'macos')
|
||||
- name: Build (win)
|
||||
env:
|
||||
WIN_CSC_LINK: ${{secrets.MICROSOFT_CODE_SIGNING_CERT}}
|
||||
WIN_CSC_KEY_PASSWORD: ${{secrets.MICROSOFT_CODE_SIGNING_CERT_PASSWORD}}
|
||||
run: node ./run dist --skip-version-validation --target win
|
||||
if: startsWith(matrix.os,'windows')
|
||||
- name: Build (linux)
|
||||
|
@ -10,6 +10,8 @@
|
||||
clicking with mouse or selecting and pressing enter, a new unnamed project
|
||||
will be created and opened in the application. Then you can give a name to
|
||||
this project.
|
||||
- [Signed builds.][1366] Our builds are signed and will avoid warnings from the
|
||||
operating system about being untrusted.
|
||||
|
||||
#### EnsoGL (rendering engine)
|
||||
|
||||
@ -39,6 +41,7 @@ If you're interested in the enhancements and fixes made to the Enso compiler,
|
||||
you can find their release notes
|
||||
[here](https://github.com/enso-org/enso/blob/main/RELEASES.md).
|
||||
|
||||
[1366]: https://github.com/enso-org/ide/pull/1366
|
||||
[1541]: https://github.com/enso-org/ide/pull/1541
|
||||
[1538]: https://github.com/enso-org/ide/pull/1538
|
||||
[1524]: https://github.com/enso-org/ide/pull/1524
|
||||
|
475
gui/build/package-lock.json
generated
475
gui/build/package-lock.json
generated
@ -1,8 +1,481 @@
|
||||
{
|
||||
"name": "build-script",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 1,
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "build-script",
|
||||
"version": "1.0.0",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"glob": "^7.1.6",
|
||||
"js-yaml": "4.0.0",
|
||||
"ncp": "^2.0.0",
|
||||
"semver": "7.3.4",
|
||||
"yargs": "^15.3.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"prettier": "2.2.0",
|
||||
"prettier-plugin-toml": "0.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@toml-tools/lexer": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@toml-tools/lexer/-/lexer-0.3.1.tgz",
|
||||
"integrity": "sha512-CCKHQb5OWpgFu47MQ2rcql4AnE9GaehNk/c1oJOyOBovED6XmdzQPXsvPSu+NJ9lToqJNoX+nLXQsB8WyQGdzQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"chevrotain": "4.1.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@toml-tools/parser": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@toml-tools/parser/-/parser-0.3.1.tgz",
|
||||
"integrity": "sha512-vadwVx5TkgByt19dbp/rfIUKPkDdn5werANYvziiGK9wHlqPA0BWnvOloQw/dPDxF31+Ag0+zarXJpPDdRsPPg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@toml-tools/lexer": "^0.3.1",
|
||||
"chevrotain": "4.1.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/color-name": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
|
||||
"integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ=="
|
||||
},
|
||||
"node_modules/ansi-regex": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
|
||||
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/ansi-styles": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
|
||||
"integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
|
||||
"dependencies": {
|
||||
"@types/color-name": "^1.1.1",
|
||||
"color-convert": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/argparse": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
|
||||
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
|
||||
},
|
||||
"node_modules/balanced-match": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
||||
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
|
||||
},
|
||||
"node_modules/brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
||||
"dependencies": {
|
||||
"balanced-match": "^1.0.0",
|
||||
"concat-map": "0.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/camelcase": {
|
||||
"version": "5.3.1",
|
||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
|
||||
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/chevrotain": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-4.1.1.tgz",
|
||||
"integrity": "sha512-NQky1HQyiAzxsxpq4Ppt47SYO2U3JLtmfs85QPf3kYSzGBjjp5AA8kqjH8hCjGFRpaQ781QOk1ragQIOkBgUTA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"regexp-to-ast": "0.3.5"
|
||||
}
|
||||
},
|
||||
"node_modules/cliui": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
|
||||
"integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
|
||||
"dependencies": {
|
||||
"string-width": "^4.2.0",
|
||||
"strip-ansi": "^6.0.0",
|
||||
"wrap-ansi": "^6.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/color-convert": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
||||
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
||||
"dependencies": {
|
||||
"color-name": "~1.1.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/color-name": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
|
||||
},
|
||||
"node_modules/concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
|
||||
},
|
||||
"node_modules/decamelize": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
|
||||
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/emoji-regex": {
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
||||
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
|
||||
},
|
||||
"node_modules/find-up": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
|
||||
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
|
||||
"dependencies": {
|
||||
"locate-path": "^5.0.0",
|
||||
"path-exists": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
|
||||
},
|
||||
"node_modules/get-caller-file": {
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
|
||||
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
|
||||
"engines": {
|
||||
"node": "6.* || 8.* || >= 10.*"
|
||||
}
|
||||
},
|
||||
"node_modules/glob": {
|
||||
"version": "7.1.6",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
|
||||
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
|
||||
"dependencies": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
"inherits": "2",
|
||||
"minimatch": "^3.0.4",
|
||||
"once": "^1.3.0",
|
||||
"path-is-absolute": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/inflight": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
||||
"dependencies": {
|
||||
"once": "^1.3.0",
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"node_modules/inherits": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
||||
},
|
||||
"node_modules/is-fullwidth-code-point": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
|
||||
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/js-yaml": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz",
|
||||
"integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==",
|
||||
"dependencies": {
|
||||
"argparse": "^2.0.1"
|
||||
},
|
||||
"bin": {
|
||||
"js-yaml": "bin/js-yaml.js"
|
||||
}
|
||||
},
|
||||
"node_modules/locate-path": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
|
||||
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
|
||||
"dependencies": {
|
||||
"p-locate": "^4.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/lru-cache": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
||||
"dependencies": {
|
||||
"yallist": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/minimatch": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
||||
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
||||
"dependencies": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/ncp": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
|
||||
"integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=",
|
||||
"bin": {
|
||||
"ncp": "bin/ncp"
|
||||
}
|
||||
},
|
||||
"node_modules/once": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||
"dependencies": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"node_modules/p-limit": {
|
||||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
|
||||
"integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
|
||||
"dependencies": {
|
||||
"p-try": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/p-locate": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
|
||||
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
|
||||
"dependencies": {
|
||||
"p-limit": "^2.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/p-try": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
|
||||
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/path-exists": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
|
||||
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/path-is-absolute": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
||||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/prettier": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.0.tgz",
|
||||
"integrity": "sha512-yYerpkvseM4iKD/BXLYUkQV5aKt4tQPqaGW6EsZjzyu0r7sVZZNPJW4Y8MyKmicp6t42XUPcBVA+H6sB3gqndw==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"prettier": "bin-prettier.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.13.0"
|
||||
}
|
||||
},
|
||||
"node_modules/prettier-plugin-toml": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/prettier-plugin-toml/-/prettier-plugin-toml-0.3.1.tgz",
|
||||
"integrity": "sha512-j47DEO/dN/acU1nSL/B7q4A4Z2SYJhpWPCLPkcmfAXIQC6A5GD6Ao/bi9HRHZ8ueIDOauqjuAQbnvRxLXMjazA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@toml-tools/parser": "^0.3.1",
|
||||
"prettier": "^1.16.0"
|
||||
}
|
||||
},
|
||||
"node_modules/prettier-plugin-toml/node_modules/prettier": {
|
||||
"version": "1.19.1",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
|
||||
"integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"prettier": "bin-prettier.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/regexp-to-ast": {
|
||||
"version": "0.3.5",
|
||||
"resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.3.5.tgz",
|
||||
"integrity": "sha512-1CJygtdvsfNFwiyjaMLBWtg2tfEqx/jSZ8S6TV+GlNL8kiH8rb4cm5Pb7A/C2BpyM/fA8ZJEudlCwi/jvAY+Ow==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/require-directory": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
|
||||
"integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/require-main-filename": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
|
||||
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
|
||||
},
|
||||
"node_modules/semver": {
|
||||
"version": "7.3.4",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz",
|
||||
"integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==",
|
||||
"dependencies": {
|
||||
"lru-cache": "^6.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"semver": "bin/semver.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/set-blocking": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
|
||||
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
|
||||
},
|
||||
"node_modules/string-width": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
|
||||
"integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
|
||||
"dependencies": {
|
||||
"emoji-regex": "^8.0.0",
|
||||
"is-fullwidth-code-point": "^3.0.0",
|
||||
"strip-ansi": "^6.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/strip-ansi": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
|
||||
"integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
|
||||
"dependencies": {
|
||||
"ansi-regex": "^5.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/which-module": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
|
||||
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
|
||||
},
|
||||
"node_modules/wrap-ansi": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
|
||||
"integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
|
||||
"dependencies": {
|
||||
"ansi-styles": "^4.0.0",
|
||||
"string-width": "^4.1.0",
|
||||
"strip-ansi": "^6.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
||||
},
|
||||
"node_modules/y18n": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
|
||||
"integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
|
||||
},
|
||||
"node_modules/yallist": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
|
||||
},
|
||||
"node_modules/yargs": {
|
||||
"version": "15.3.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.0.tgz",
|
||||
"integrity": "sha512-g/QCnmjgOl1YJjGsnUg2SatC7NUYEiLXJqxNOQU9qSpjzGtGXda9b+OKccr1kLTy8BN9yqEyqfq5lxlwdc13TA==",
|
||||
"dependencies": {
|
||||
"cliui": "^6.0.0",
|
||||
"decamelize": "^1.2.0",
|
||||
"find-up": "^4.1.0",
|
||||
"get-caller-file": "^2.0.1",
|
||||
"require-directory": "^2.1.1",
|
||||
"require-main-filename": "^2.0.0",
|
||||
"set-blocking": "^2.0.0",
|
||||
"string-width": "^4.2.0",
|
||||
"which-module": "^2.0.0",
|
||||
"y18n": "^4.0.0",
|
||||
"yargs-parser": "^18.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/yargs-parser": {
|
||||
"version": "18.1.3",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
|
||||
"integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
|
||||
"dependencies": {
|
||||
"camelcase": "^5.0.0",
|
||||
"decamelize": "^1.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@toml-tools/lexer": {
|
||||
"version": "0.3.1",
|
||||
|
@ -143,23 +143,43 @@ let installWasmPackOnLinux = installWasmPackOn('Linux','ubuntu','unknown-linux
|
||||
// We could use cargo install wasm-pack, but that takes 3.5 minutes compared to few seconds.
|
||||
let installWasmPack = [installWasmPackOnMacOS, installWasmPackOnWindows, installWasmPackOnLinux]
|
||||
|
||||
const installJava = {
|
||||
uses: 'actions/setup-java@v2',
|
||||
with: {
|
||||
distribution: 'adopt',
|
||||
'java-version': '11',
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
|
||||
// =============================
|
||||
// === Build, Lint, and Test ===
|
||||
// =============================
|
||||
|
||||
function buildOn(name,sys) {
|
||||
return {
|
||||
name: `Build (${name})`,
|
||||
run: `node ./run dist --skip-version-validation --target ${name}`,
|
||||
if: `startsWith(matrix.os,'${sys}')`
|
||||
function buildOn(target,sys,env) {
|
||||
const name = `Build (${target})`
|
||||
const run = `node ./run dist --skip-version-validation --target ${target}`
|
||||
const _if = `startsWith(matrix.os,'${sys}')`
|
||||
if (env) {
|
||||
return {name,env,run,if:_if}
|
||||
} else {
|
||||
return {name,run,if:_if}
|
||||
}
|
||||
}
|
||||
|
||||
buildOnMacOS = buildOn('macos','macos')
|
||||
buildOnWindows = buildOn('win','windows')
|
||||
buildOnLinux = buildOn('linux','ubuntu')
|
||||
buildOnMacOS = buildOn('macos', 'macos', {
|
||||
CSC_LINK: '${{secrets.APPLE_CODE_SIGNING_CERT}}',
|
||||
CSC_KEY_PASSWORD: '${{secrets.APPLE_CODE_SIGNING_CERT_PASSWORD}}',
|
||||
CSC_IDENTITY_AUTO_DISCOVERY: true,
|
||||
APPLEID:'${{secrets.APPLE_NOTARIZATION_USERNAME}}',
|
||||
APPLEIDPASS:'${{secrets.APPLE_NOTARIZATION_PASSWORD}}',
|
||||
})
|
||||
buildOnWindows = buildOn('win', 'windows', {
|
||||
WIN_CSC_LINK: '${{secrets.MICROSOFT_CODE_SIGNING_CERT}}',
|
||||
WIN_CSC_KEY_PASSWORD: '${{secrets.MICROSOFT_CODE_SIGNING_CERT_PASSWORD}}',
|
||||
})
|
||||
buildOnLinux = buildOn('linux', 'ubuntu')
|
||||
|
||||
let lintMarkdown = {
|
||||
name: "Lint Markdown sources",
|
||||
@ -451,13 +471,16 @@ let workflow = {
|
||||
installNode,
|
||||
installRust,
|
||||
installWasmPack,
|
||||
installJava,
|
||||
buildOnMacOS,
|
||||
],{if:`!(${buildCondition})`}),
|
||||
]),
|
||||
build: job_on_all_platforms("Build", [
|
||||
getCurrentReleaseChangelogInfo,
|
||||
installNode,
|
||||
installRust,
|
||||
installWasmPack,
|
||||
// Needed for package signing on macOS.
|
||||
installJava,
|
||||
buildOnMacOS,
|
||||
buildOnWindows,
|
||||
buildOnLinux,
|
||||
|
81
gui/package-lock.json
generated
81
gui/package-lock.json
generated
@ -1,61 +1,32 @@
|
||||
{
|
||||
"name": "ide",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"lockfileVersion": 1,
|
||||
"packages": {
|
||||
"": {
|
||||
"devDependencies": {
|
||||
"prettier": "2.2.1"
|
||||
}
|
||||
},
|
||||
"node_modules/prettier": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz",
|
||||
"integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"prettier": "bin-prettier.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.13.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"agent-base": {
|
||||
"version": "6.0.2",
|
||||
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
|
||||
"integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
|
||||
"requires": {
|
||||
"debug": "4"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
|
||||
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
|
||||
"requires": {
|
||||
"ms": "2.1.2"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"https-proxy-agent": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
|
||||
"integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
|
||||
"requires": {
|
||||
"agent-base": "6",
|
||||
"debug": "4"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
|
||||
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
|
||||
"requires": {
|
||||
"ms": "2.1.2"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"mixpanel": {
|
||||
"version": "0.13.0",
|
||||
"resolved": "https://registry.npmjs.org/mixpanel/-/mixpanel-0.13.0.tgz",
|
||||
"integrity": "sha512-YOWmpr/o4+zJ8LPjuLUkWLc2ImFeIkX6hF1t62Wlvq6loC6e8EK8qieYO4gYPTPxxtjAryl7xmIvf/7qnPwjrQ==",
|
||||
"requires": {
|
||||
"https-proxy-agent": "5.0.0"
|
||||
}
|
||||
"prettier": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz",
|
||||
"integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
25
gui/src/js/lib/client/entitlements.mac.plist
Normal file
25
gui/src/js/lib/client/entitlements.mac.plist
Normal file
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
This file is required for the macOS notarisation. To get notarised we need to run with a
|
||||
hardened runtime, which restricts some things our application can do. Since we actually need
|
||||
some of the restricted features (for example, JIT) we need to specify the entitlements we
|
||||
require.
|
||||
|
||||
See https://developer.apple.com/documentation/security/hardened_runtime for more background
|
||||
information.
|
||||
-->
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.cs.allow-jit</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.disable-executable-page-protection</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.disable-library-validation</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
@ -30,8 +30,9 @@ let config = {
|
||||
"copy-webpack-plugin": "^5.1.1",
|
||||
"devtron": "^1.4.0",
|
||||
"electron": "11.1.1",
|
||||
"electron-builder": "^22.9.1",
|
||||
"crypto-js": "4.0.0"
|
||||
"electron-builder": "^22.10.5",
|
||||
"crypto-js": "4.0.0",
|
||||
"electron-notarize" : "1.0.0",
|
||||
},
|
||||
|
||||
scripts: {
|
||||
@ -53,6 +54,16 @@ config.build = {
|
||||
category: 'public.app-category.developer-tools',
|
||||
darkModeSupport: true,
|
||||
type: 'distribution',
|
||||
// The following settings are required for macOS signing and notarisation.
|
||||
// The hardened runtime is required to be able to notarise the application.
|
||||
hardenedRuntime: true,
|
||||
// This is a custom check that is not working correctly, so we disable it. See for more
|
||||
// details https://kilianvalkhof.com/2019/electron/notarizing-your-electron-application/
|
||||
gatekeeperAssess: false,
|
||||
// Location of the entitlements files with the entitlements we need to run our application
|
||||
// in the hardened runtime.
|
||||
entitlements: './entitlements.mac.plist',
|
||||
entitlementsInherit: './entitlements.mac.plist',
|
||||
},
|
||||
win: {
|
||||
// We do not use compression as the build time is huge and file size saving is almost zero.
|
||||
@ -82,27 +93,34 @@ config.build = {
|
||||
output: paths.dist.client,
|
||||
},
|
||||
nsis: {
|
||||
// Disables "block map" generation during electron building. Block maps
|
||||
// Disables "block map" generation during electron building. Block maps
|
||||
// can be used for incremental package update on client-side. However,
|
||||
// their generation can take long time (even 30 mins), so we removed it
|
||||
// for now. Moreover, we may probably never need them, as our updates
|
||||
// are handled by us. More info:
|
||||
// are handled by us. More info:
|
||||
// https://github.com/electron-userland/electron-builder/issues/2851
|
||||
// https://github.com/electron-userland/electron-builder/issues/2900
|
||||
differentialPackage: false
|
||||
},
|
||||
dmg: {
|
||||
// Disables "block map" generation during electron building. Block maps
|
||||
// Disables "block map" generation during electron building. Block maps
|
||||
// can be used for incremental package update on client-side. However,
|
||||
// their generation can take long time (even 30 mins), so we removed it
|
||||
// for now. Moreover, we may probably never need them, as our updates
|
||||
// are handled by us. More info:
|
||||
// are handled by us. More info:
|
||||
// https://github.com/electron-userland/electron-builder/issues/2851
|
||||
// https://github.com/electron-userland/electron-builder/issues/2900
|
||||
writeUpdateInfo: false
|
||||
writeUpdateInfo: false,
|
||||
// Disable code signing of the final dmg as this triggers an issue
|
||||
// with Apple’s Gatekeeper. Since the DMG contains a signed and
|
||||
// notarised application it will still be detected as trusted.
|
||||
// For more details see step (4) at
|
||||
// https://kilianvalkhof.com/2019/electron/notarizing-your-electron-application/
|
||||
sign: false
|
||||
},
|
||||
publish: [],
|
||||
afterAllArtifactBuild: 'tasks/computeHashes.js'
|
||||
afterAllArtifactBuild: 'tasks/computeHashes.js',
|
||||
afterSign: "tasks/notarize.js",
|
||||
}
|
||||
|
||||
module.exports = {config}
|
||||
|
25
gui/src/js/lib/client/tasks/notarize.js
Normal file
25
gui/src/js/lib/client/tasks/notarize.js
Normal file
@ -0,0 +1,25 @@
|
||||
/// This script will trigger the notarisation process for macOS and trigger our pre-processing
|
||||
/// and signing of the engine.
|
||||
require('dotenv').config();
|
||||
const { notarize } = require('electron-notarize');
|
||||
|
||||
exports.default = async function notarizing(context) {
|
||||
const { electronPlatformName, appOutDir } = context;
|
||||
if (electronPlatformName !== 'darwin') {
|
||||
return;
|
||||
}
|
||||
// We need to manually re-sign our build artifacts before notarisation.
|
||||
// See the script for more information.
|
||||
console.log(" • Performing additional signing of dependencies.")
|
||||
await require("./signArchives").default()
|
||||
|
||||
// Notarize the application.
|
||||
const appName = context.packager.appInfo.productFilename;
|
||||
console.log(" • Notarizing.")
|
||||
return await notarize({
|
||||
appBundleId: 'com.enso.ide',
|
||||
appPath: `${appOutDir}/${appName}.app`,
|
||||
appleId: process.env.APPLEID,
|
||||
appleIdPassword: process.env.APPLEIDPASS,
|
||||
});
|
||||
};
|
265
gui/src/js/lib/client/tasks/signArchives.js
Normal file
265
gui/src/js/lib/client/tasks/signArchives.js
Normal file
@ -0,0 +1,265 @@
|
||||
/**
|
||||
This script signs the content of all archives that we have for macOS. For this to work this needs
|
||||
to run on macOS with `codesign`, and a JDK installed. `codesign` is needed to sign the files,
|
||||
while the JDK is needed for correct packing and unpacking of java archives.
|
||||
|
||||
We require this extra step as our dependencies contain files that require us to re-sign jar
|
||||
contents that cannot be opened as pure zip archives, but require a java toolchain to extract
|
||||
and re-assemble to preserve manifest information. This functionality is not provided by
|
||||
`electron-osx-sign` out of the box.
|
||||
|
||||
This code is based on https://github.com/electron/electron-osx-sign/pull/231 but our use-case
|
||||
is unlikely to be supported by electron-osx-sign as it adds a java toolchain as additional
|
||||
dependency.
|
||||
This script should be removed once the engine is signed.
|
||||
**/
|
||||
const path = require('path')
|
||||
const child_process = require('child_process')
|
||||
const { dist } = require('../../../../../build/paths')
|
||||
|
||||
const contentRoot = path.join(dist.root, 'client', 'mac', 'Enso.app', 'Contents')
|
||||
const resRoot = path.join(contentRoot, 'Resources')
|
||||
|
||||
// TODO: Refactor this once we have a better wau to get the used engine version.
|
||||
// See the tracking issue for more information https://github.com/enso-org/ide/issues/1359
|
||||
const ENGINE = '0.2.11'
|
||||
const ID = '"Developer ID Application: New Byte Order Sp. z o. o. (NM77WTZJFQ)"'
|
||||
// Placeholder name for temporary archives.
|
||||
const tmpArchive = 'temporary_archive.zip'
|
||||
|
||||
// Helper to execute a command in a given directory and return the output.
|
||||
const run = (cmd, cwd) => child_process.execSync(cmd, { shell: true, cwd }).toString()
|
||||
|
||||
// Run the signing command.
|
||||
function sign(targetPath, cwd) {
|
||||
console.log(`Signing ${targetPath} in ${cwd}`)
|
||||
const entitlements_path = path.resolve('./', 'entitlements.mac.plist')
|
||||
return run(
|
||||
`codesign -vvv --entitlements ${entitlements_path} --force --options=runtime `
|
||||
+ `--sign ${ID} ${targetPath}`,
|
||||
cwd
|
||||
)
|
||||
}
|
||||
|
||||
// Create and return an empty directory in the current folder. The directory will be named `.temp`.
|
||||
// If it already exists all content will be deleted.
|
||||
function getTmpDir() {
|
||||
const workingDir = '.temp'
|
||||
run(`rm -rf ${workingDir}`)
|
||||
run(`mkdir ${workingDir}`)
|
||||
return path.resolve(workingDir)
|
||||
}
|
||||
|
||||
/**
|
||||
* Sign content of an archive. This function extracts the archive, signs the required files,
|
||||
* re-packages the archive and replaces the original.
|
||||
*
|
||||
* @param {string} archivePath - folder the archive is located in.
|
||||
* @param {string} archiveName - file name of the archive
|
||||
* @param {string[]} binPaths - paths of files to be signed. Must be relative to archive root.
|
||||
*/
|
||||
function signArchive(archivePath, archiveName, binPaths) {
|
||||
const sourceArchive = path.join(archivePath, archiveName)
|
||||
const workingDir = getTmpDir()
|
||||
try {
|
||||
const isJar = archiveName.endsWith(`jar`)
|
||||
|
||||
if (isJar) {
|
||||
run(`jar xf ${sourceArchive}`, workingDir)
|
||||
} else {
|
||||
run(`unzip -d${workingDir} ${sourceArchive}`)
|
||||
}
|
||||
|
||||
for (let binary of binPaths) {
|
||||
sign(binary, workingDir)
|
||||
}
|
||||
|
||||
if (isJar) {
|
||||
if (archiveName.includes(`runner`)) {
|
||||
run(`jar -cfm ${tmpArchive} META-INF/MANIFEST.MF . `, workingDir)
|
||||
} else {
|
||||
run(`jar -cf ${tmpArchive} . `, workingDir)
|
||||
}
|
||||
} else {
|
||||
run(`zip -rm ${tmpArchive} . `, workingDir)
|
||||
}
|
||||
|
||||
console.log(run(`/bin/mv ${workingDir}/${tmpArchive} ${sourceArchive}`))
|
||||
run(`rm -R ${workingDir}`)
|
||||
console.log(
|
||||
`Successfully repacked ${sourceArchive} to handle signing inner native dependency.`
|
||||
)
|
||||
} catch (error) {
|
||||
run(`rm -R ${workingDir}`)
|
||||
console.error(
|
||||
`Could not repackage ${archiveName}. Please check the "signArchives.js" task in ` +
|
||||
`client/tasks to ensure that it's working. This jar has to be treated specially` +
|
||||
` because it has a native library and apple's codesign does not sign inner ` +
|
||||
`native libraries correctly for jar files`
|
||||
)
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
// Archives, and their content that need to be signed in an extra step. If a new archive is added
|
||||
// to the engine dependencies this also needs to be added here. If an archive is not added here, it
|
||||
// will show up as a failure to notarise the IDE. The offending archive will be named in the error
|
||||
// message provided by Apple and can then be added here.
|
||||
const toSign = [
|
||||
{
|
||||
jarDir:
|
||||
`enso/dist/${ENGINE}/std-lib/Standard/polyglot/java`,
|
||||
jarName: 'sqlite-jdbc-3.34.0.jar',
|
||||
jarContent: [
|
||||
'org/sqlite/native/Mac/aarch64/libsqlitejdbc.jnilib',
|
||||
'org/sqlite/native/Mac/x86_64/libsqlitejdbc.jnilib',
|
||||
],
|
||||
},
|
||||
{
|
||||
jarDir:
|
||||
`enso/dist/${ENGINE}/component`,
|
||||
jarName: 'runner.jar',
|
||||
jarContent: [
|
||||
'org/sqlite/native/Mac/x86_64/libsqlitejdbc.jnilib',
|
||||
'com/sun/jna/darwin/libjnidispatch.jnilib',
|
||||
],
|
||||
},
|
||||
{
|
||||
jarDir:
|
||||
'enso/runtime/graalvm-ce-java11-21.0.0.2/Contents/Home/jmods',
|
||||
jarName: 'jdk.jartool.jmod',
|
||||
jarContent: ['bin/jarsigner', 'bin/jar'],
|
||||
},
|
||||
{
|
||||
jarDir:
|
||||
'enso/runtime/graalvm-ce-java11-21.0.0.2/Contents/Home/jmods',
|
||||
jarName: 'jdk.jdeps.jmod',
|
||||
jarContent: ['bin/javap', 'bin/jdeprscan', 'bin/jdeps'],
|
||||
},
|
||||
{
|
||||
jarDir:
|
||||
'enso/runtime/graalvm-ce-java11-21.0.0.2/Contents/Home/jmods',
|
||||
jarName: 'jdk.jstatd.jmod',
|
||||
jarContent: ['bin/jstatd'],
|
||||
},
|
||||
{
|
||||
jarDir:
|
||||
'enso/runtime/graalvm-ce-java11-21.0.0.2/Contents/Home/jmods',
|
||||
jarName: 'jdk.pack.jmod',
|
||||
jarContent: ['bin/unpack200', 'bin/pack200'],
|
||||
},
|
||||
{
|
||||
jarDir:
|
||||
'enso/runtime/graalvm-ce-java11-21.0.0.2/Contents/Home/jmods',
|
||||
jarName: 'jdk.hotspot.agent.jmod',
|
||||
jarContent: ['bin/jhsdb'],
|
||||
},
|
||||
{
|
||||
jarDir:
|
||||
'enso/runtime/graalvm-ce-java11-21.0.0.2/Contents/Home/jmods',
|
||||
jarName: 'jdk.jfr.jmod',
|
||||
jarContent: ['bin/jfr'],
|
||||
},
|
||||
{
|
||||
jarDir:
|
||||
'enso/runtime/graalvm-ce-java11-21.0.0.2/Contents/Home/jmods',
|
||||
jarName: 'jdk.rmic.jmod',
|
||||
jarContent: ['bin/rmic'],
|
||||
},
|
||||
{
|
||||
jarDir:
|
||||
'enso/runtime/graalvm-ce-java11-21.0.0.2/Contents/Home/jmods',
|
||||
jarName: 'java.rmi.jmod',
|
||||
jarContent: ['bin/rmid', 'bin/rmiregistry'],
|
||||
},
|
||||
{
|
||||
jarDir:
|
||||
'enso/runtime/graalvm-ce-java11-21.0.0.2/Contents/Home/jmods',
|
||||
jarName: 'java.base.jmod',
|
||||
jarContent: ['bin/java', 'bin/keytool', 'lib/jspawnhelper'],
|
||||
},
|
||||
{
|
||||
jarDir:
|
||||
'enso/runtime/graalvm-ce-java11-21.0.0.2/Contents/Home/jmods',
|
||||
jarName: 'jdk.jlink.jmod',
|
||||
jarContent: ['bin/jmod', 'bin/jlink', 'bin/jimage'],
|
||||
},
|
||||
{
|
||||
jarDir:
|
||||
'enso/runtime/graalvm-ce-java11-21.0.0.2/Contents/Home/jmods',
|
||||
jarName: 'jdk.scripting.nashorn.shell.jmod',
|
||||
jarContent: ['bin/jjs'],
|
||||
},
|
||||
{
|
||||
jarDir:
|
||||
'enso/runtime/graalvm-ce-java11-21.0.0.2/Contents/Home/jmods',
|
||||
jarName: 'jdk.jcmd.jmod',
|
||||
jarContent: ['bin/jstack', 'bin/jcmd', 'bin/jps', 'bin/jmap', 'bin/jstat', 'bin/jinfo'],
|
||||
},
|
||||
{
|
||||
jarDir:
|
||||
'enso/runtime/graalvm-ce-java11-21.0.0.2/Contents/Home/jmods',
|
||||
jarName: 'jdk.jshell.jmod',
|
||||
jarContent: ['bin/jshell'],
|
||||
},
|
||||
{
|
||||
jarDir:
|
||||
'enso/runtime/graalvm-ce-java11-21.0.0.2/Contents/Home/jmods',
|
||||
jarName: 'jdk.compiler.jmod',
|
||||
jarContent: ['bin/javac', 'bin/serialver'],
|
||||
},
|
||||
{
|
||||
jarDir:
|
||||
'enso/runtime/graalvm-ce-java11-21.0.0.2/Contents/Home/jmods',
|
||||
jarName: 'java.scripting.jmod',
|
||||
jarContent: ['bin/jrunscript'],
|
||||
},
|
||||
{
|
||||
jarDir:
|
||||
'enso/runtime/graalvm-ce-java11-21.0.0.2/Contents/Home/jmods',
|
||||
jarName: 'jdk.jdi.jmod',
|
||||
jarContent: ['bin/jdb'],
|
||||
},
|
||||
{
|
||||
jarDir:
|
||||
'enso/runtime/graalvm-ce-java11-21.0.0.2/Contents/Home/jmods',
|
||||
jarName: 'jdk.javadoc.jmod',
|
||||
jarContent: ['bin/javadoc'],
|
||||
},
|
||||
{
|
||||
jarDir:
|
||||
'enso/runtime/graalvm-ce-java11-21.0.0.2/Contents/Home/jmods',
|
||||
jarName: 'jdk.jconsole.jmod',
|
||||
jarContent: ['bin/jconsole'],
|
||||
},
|
||||
{
|
||||
jarDir:
|
||||
'enso/runtime/graalvm-ce-java11-21.0.0.2/Contents/Home/jmods',
|
||||
jarName: 'jdk.javadoc.jmod',
|
||||
jarContent: ['bin/javadoc'],
|
||||
},
|
||||
]
|
||||
|
||||
// Extra files that need to be signed.
|
||||
const extra = [
|
||||
'enso/runtime/graalvm-ce-java11-21.0.0.2/Contents/MacOS/libjli.dylib',
|
||||
'enso/runtime/graalvm-ce-java11-21.0.0.2/Contents/Home/languages/llvm/native/bin/ld.lld',
|
||||
]
|
||||
|
||||
exports.default = async function () {
|
||||
// Sign archives.
|
||||
for (let toSignData of toSign) {
|
||||
const jarDir = path.join(resRoot, toSignData.jarDir)
|
||||
const jarName = toSignData.jarName
|
||||
const jarContent = toSignData.jarContent
|
||||
console.log({ jarDir, jarName, jarContent })
|
||||
signArchive(jarDir, jarName, jarContent)
|
||||
}
|
||||
// Sign single binaries.
|
||||
for (let toSign of extra) {
|
||||
const target = path.join(resRoot, toSign)
|
||||
sign(target)
|
||||
}
|
||||
// Finally re-sign the top-level enso.
|
||||
sign(path.join(contentRoot, 'MacOs/Enso'))
|
||||
}
|
29
gui/src/js/package-lock.json
generated
29
gui/src/js/package-lock.json
generated
@ -7038,8 +7038,7 @@
|
||||
"integrity": "sha512-hI4m7udfV04OcjleOmDaR4gwXnH4xumxN+ZmywHDiKf2CmAzsT9SVYe7Y4pdnQbyZfXwAQyrElykbE5PrPRfmQ==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"cli-truncate": "^1.1.0",
|
||||
"node-addon-api": "^1.6.3"
|
||||
"cli-truncate": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"iconv-lite": {
|
||||
@ -9049,10 +9048,9 @@
|
||||
}
|
||||
},
|
||||
"node-addon-api": {
|
||||
"version": "1.7.2",
|
||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz",
|
||||
"integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==",
|
||||
"optional": true
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz",
|
||||
"integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw=="
|
||||
},
|
||||
"node-fetch": {
|
||||
"version": "2.6.1",
|
||||
@ -11208,11 +11206,6 @@
|
||||
"yallist": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"node-addon-api": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz",
|
||||
"integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw=="
|
||||
},
|
||||
"semver": {
|
||||
"version": "7.3.5",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
|
||||
@ -13860,20 +13853,12 @@
|
||||
"requires": {
|
||||
"sax": ">=0.6.0",
|
||||
"xmlbuilder": "~11.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"xmlbuilder": {
|
||||
"version": "11.0.1",
|
||||
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
|
||||
"integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"xmlbuilder": {
|
||||
"version": "15.1.1",
|
||||
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz",
|
||||
"integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==",
|
||||
"optional": true
|
||||
"version": "11.0.1",
|
||||
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
|
||||
"integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="
|
||||
},
|
||||
"xmldom": {
|
||||
"version": "0.5.0",
|
||||
|
Loading…
Reference in New Issue
Block a user