From c7c063f129afb4963ec40638b114217123f20087 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 15 May 2023 09:40:39 +0100 Subject: [PATCH] Simplify element builder workflow (#898) --- .github/workflows/build_linux.yaml | 9 ----- element.io/nightly/control.template | 12 ------- .../DEBIAN/control | 9 ----- element.io/release/control.template | 14 -------- .../riot-desktop_1.7.0_all/DEBIAN/control | 9 ----- package.json | 35 +++++++++++++++++-- scripts/generate-builder-config.ts | 35 +++++++++---------- 7 files changed, 49 insertions(+), 74 deletions(-) delete mode 100644 element.io/nightly/control.template delete mode 100644 element.io/nightly/riot-nightly_2020071502_all/DEBIAN/control delete mode 100644 element.io/release/control.template delete mode 100644 element.io/release/riot-desktop_1.7.0_all/DEBIAN/control diff --git a/.github/workflows/build_linux.yaml b/.github/workflows/build_linux.yaml index 392bb14..0c72bdd 100644 --- a/.github/workflows/build_linux.yaml +++ b/.github/workflows/build_linux.yaml @@ -118,15 +118,6 @@ jobs: echo "config-args=--deb-changelog changelog.Debian" >> $GITHUB_OUTPUT fi - cat "$DIR/control.template" | grep -v "Architecture: " > debcontrol - echo "Architecture: $ARCHITECTURE" >> debcontrol - VERSION=${INPUT_VERSION:-$(cat package.json | jq -r .version)} - echo "Version: $VERSION" >> debcontrol - env: - DIR: ${{ inputs.config }} - INPUT_VERSION: ${{ inputs.version }} - ARCHITECTURE: ${{ inputs.arch }} - - name: Build App run: | npx ts-node scripts/generate-builder-config.ts \ diff --git a/element.io/nightly/control.template b/element.io/nightly/control.template deleted file mode 100644 index fde117b..0000000 --- a/element.io/nightly/control.template +++ /dev/null @@ -1,12 +0,0 @@ -Package: element-nightly -License: Apache-2.0 -Vendor: support@element.io -Architecture: amd64 -Maintainer: support@element.io -Depends: libgtk-3-0, libnotify4, libnss3, libxss1, libxtst6, xdg-utils, libatspi2.0-0, libuuid1, libsecret-1-0, libasound2, libgbm1 -Recommends: libsqlcipher0, element-io-archive-keyring -Section: net -Priority: extra -Homepage: https://element.io/ -Description: - riot.im A feature-rich client for Matrix.org (nightly unstable build). diff --git a/element.io/nightly/riot-nightly_2020071502_all/DEBIAN/control b/element.io/nightly/riot-nightly_2020071502_all/DEBIAN/control deleted file mode 100644 index 5da0b67..0000000 --- a/element.io/nightly/riot-nightly_2020071502_all/DEBIAN/control +++ /dev/null @@ -1,9 +0,0 @@ -Package: riot-nightly -Version: 2020071502 -Depends: element-nightly -Maintainer: packages@element.io -Architecture: all -Priority: optional -Section: oldlibs -Description: transitional package - This is a transitional package. It can safely be removed. diff --git a/element.io/release/control.template b/element.io/release/control.template deleted file mode 100644 index 5a83e10..0000000 --- a/element.io/release/control.template +++ /dev/null @@ -1,14 +0,0 @@ -Package: element-desktop -License: Apache-2.0 -Vendor: support@element.io -Architecture: amd64 -Maintainer: support@element.io -Depends: libgtk-3-0, libnotify4, libnss3, libxss1, libxtst6, xdg-utils, libatspi2.0-0, libuuid1, libsecret-1-0, libasound2, libgbm1 -Recommends: libsqlcipher0, element-io-archive-keyring -Replaces: riot-desktop (<< 1.7.0), riot-web (<< 1.7.0) -Breaks: riot-desktop (<< 1.7.0), riot-web (<< 1.7.0) -Section: net -Priority: extra -Homepage: https://element.io/ -Description: - A feature-rich client for Matrix.org diff --git a/element.io/release/riot-desktop_1.7.0_all/DEBIAN/control b/element.io/release/riot-desktop_1.7.0_all/DEBIAN/control deleted file mode 100644 index 979c578..0000000 --- a/element.io/release/riot-desktop_1.7.0_all/DEBIAN/control +++ /dev/null @@ -1,9 +0,0 @@ -Package: riot-desktop -Version: 1.7.0 -Depends: element-desktop -Maintainer: packages@element.io -Architecture: all -Priority: optional -Section: oldlibs -Description: transitional package - This is a transitional package. It can safely be removed. diff --git a/package.json b/package.json index 54021b4..781f071 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "version": "1.11.31", "description": "A feature-rich client for Matrix.org", "author": "Element", + "homepage": "https://element.io", "repository": { "type": "git", "url": "https://github.com/vector-im/element-desktop" @@ -145,17 +146,45 @@ "deb" ], "category": "Network;InstantMessaging;Chat", - "maintainer": "support@element.io" + "maintainer": "support@element.io", + "icon": "build/icons" + }, + "deb": { + "packageCategory": "net", + "depends": [ + "libgtk-3-0", + "libnotify4", + "libnss3", + "libxss1", + "libxtst6", + "xdg-utils", + "libatspi2.0-0", + "libuuid1", + "libsecret-1-0", + "libasound2", + "libgbm1" + ], + "recommends": [ + "libsqlcipher0", + "element-io-archive-keyring" + ] }, "mac": { "category": "public.app-category.social-networking", "darkModeSupport": true, - "gatekeeperAssess": true + "hardenedRuntime": true, + "gatekeeperAssess": true, + "entitlements": "./build/entitlements.mac.plist", + "icon": "build/icons/icon.icns" }, "win": { "target": [ "squirrel" - ] + ], + "signingHashAlgorithms": [ + "sha256" + ], + "icon": "build/icons/icon.ico" }, "directories": { "output": "dist" diff --git a/scripts/generate-builder-config.ts b/scripts/generate-builder-config.ts index 7168fa7..36da6a6 100755 --- a/scripts/generate-builder-config.ts +++ b/scripts/generate-builder-config.ts @@ -13,6 +13,7 @@ * On Linux: * Replaces spaces in the product name with dashes as spaces in paths can cause issues * Passes --deb-custom-control to build.deb.fpm if specified + * Removes libsqlcipher0 recommended dependency if env SQLCIPHER_BUNDLED is asserted. */ import parseArgs from "minimist"; @@ -30,17 +31,9 @@ const argv = parseArgs<{ "signtool-thumbprint"?: string; "signtool-subject-name"?: string; "notarytool-team-id"?: string; - "deb-custom-control"?: string; "deb-changelog"?: string; }>(process.argv.slice(2), { - string: [ - "nightly", - "deb-custom-control", - "deb-changelog", - "signtool-thumbprint", - "signtool-subject-name", - "notarytool-team-id", - ], + string: ["nightly", "deb-changelog", "signtool-thumbprint", "signtool-subject-name", "notarytool-team-id"], }); type DeepWriteable = { -readonly [P in keyof T]: DeepWriteable }; @@ -50,12 +43,14 @@ interface PackageBuild extends DeepWriteable { @@ -66,6 +61,7 @@ async function main(): Promise { ...pkg.build, extraMetadata: { productName: pkg.productName, + description: pkg.description, }, }; @@ -73,6 +69,7 @@ async function main(): Promise { cfg.appId = NIGHTLY_APP_ID; cfg.extraMetadata!.productName += " Nightly"; cfg.extraMetadata!.name = NIGHTLY_APP_NAME; + cfg.extraMetadata!.description += " (nightly unstable build)"; let version = argv.nightly; if (os.platform() === "win32") { @@ -84,10 +81,13 @@ async function main(): Promise { version = "0.0.1-nightly." + version; } cfg.extraMetadata!.version = version; + } else { + if (!cfg.deb!.fpm) cfg.deb!.fpm = []; + cfg.deb!.fpm!.push("--deb-field", "Replaces: riot-desktop (<< 1.7.0), riot-web (<< 1.7.0)"); + cfg.deb!.fpm!.push("--deb-field", "Breaks: riot-desktop (<< 1.7.0), riot-web (<< 1.7.0)"); } if (argv["signtool-thumbprint"] && argv["signtool-subject-name"]) { - cfg.win!.signingHashAlgorithms = ["sha256"]; cfg.win!.certificateSubjectName = argv["signtool-subject-name"]; cfg.win!.certificateSha1 = argv["signtool-thumbprint"]; } @@ -103,15 +103,14 @@ async function main(): Promise { // https://github.com/vector-im/element-web/issues/13171 cfg.extraMetadata!.productName = cfg.extraMetadata!.productName!.replace(/ /g, "-"); - cfg.deb = { - fpm: [], - }; - - if (argv["deb-custom-control"]) { - cfg.deb.fpm!.push(`--deb-custom-control=${argv["deb-custom-control"]}`); - } if (argv["deb-changelog"]) { - cfg.deb.fpm!.push(`--deb-changelog=${argv["deb-changelog"]}`); + if (!cfg.deb!.fpm) cfg.deb!.fpm = []; + cfg.deb!.fpm!.push(`--deb-changelog=${argv["deb-changelog"]}`); + } + + if (process.env.SQLCIPHER_BUNDLED) { + // Remove sqlcipher dependency when using bundled + cfg.deb!.recommends = cfg.deb!.recommends?.filter((d) => d !== "libsqlcipher0"); } }