diff --git a/srcpkgs/element-desktop/files/element-desktop b/srcpkgs/element-desktop/files/element-desktop index bf3f41f39d5..b264e267498 100644 --- a/srcpkgs/element-desktop/files/element-desktop +++ b/srcpkgs/element-desktop/files/element-desktop @@ -1,2 +1,2 @@ #!/bin/sh -exec electron12 /usr/lib/element-desktop/resources/app.asar "$@" +exec electron13 /usr/lib/element-desktop/resources/app.asar "$@" diff --git a/srcpkgs/element-desktop/patches/0001-support-more-architectures.patch b/srcpkgs/element-desktop/patches/0001-support-more-architectures.patch new file mode 100644 index 00000000000..2482b46ffd7 --- /dev/null +++ b/srcpkgs/element-desktop/patches/0001-support-more-architectures.patch @@ -0,0 +1,158 @@ +commit 6253d67b13db2bd075fb6f17e8fffc92efd7fdee +Author: Jan Christian Grünhage +Date: Tue Aug 17 17:33:02 2021 +0200 + + Fixes compilation on a bunch of targets + + Considering that this changes generated files, I've not submitted this + patch directly. Instead, the original source has received a PR over at + https://github.com/vector-im/element-builder/pull/58. + +diff --git a/package.json b/package.json +index 4dd59aa..141705b 100644 +--- a/package.json ++++ b/package.json +@@ -57,6 +57,7 @@ + "allchange": "^1.0.0", + "asar": "^2.0.1", + "chokidar": "^3.5.2", ++ "detect-libc": "^1.0.3", + "electron": "^13.1.9", + "electron-builder": "22.11.4", + "electron-builder-squirrel-windows": "22.11.4", +diff --git a/scripts/hak/target.js b/scripts/hak/target.js +index 0a965fc..07349fc 100644 +--- a/scripts/hak/target.js ++++ b/scripts/hak/target.js +@@ -25,11 +25,26 @@ limitations under the License. + + Object.defineProperty(exports, "__esModule", { value: true }); + exports.isHost = exports.isHostId = exports.getHost = exports.ENABLED_TARGETS = exports.TARGETS = void 0; ++const detect_libc_1 = require("detect-libc"); + const aarch64AppleDarwin = { + id: 'aarch64-apple-darwin', + platform: 'darwin', + arch: 'arm64', + }; ++const x8664AppleDarwin = { ++ id: 'x86_64-apple-darwin', ++ platform: 'darwin', ++ arch: 'x64', ++}; ++const universalAppleDarwin = { ++ id: 'universal-apple-darwin', ++ platform: 'darwin', ++ arch: 'universal', ++ subtargets: [ ++ aarch64AppleDarwin, ++ x8664AppleDarwin, ++ ], ++}; + const i686PcWindowsMsvc = { + id: 'i686-pc-windows-msvc', + platform: 'win32', +@@ -42,34 +57,81 @@ const x8664PcWindowsMsvc = { + arch: 'x64', + vcVarsArch: 'amd64', + }; +-const x8664AppleDarwin = { +- id: 'x86_64-apple-darwin', +- platform: 'darwin', +- arch: 'x64', +-}; + const x8664UnknownLinuxGnu = { + id: 'x86_64-unknown-linux-gnu', + platform: 'linux', + arch: 'x64', ++ libC: 'glibc', ++}; ++const x8664UnknownLinuxMusl = { ++ id: 'x86_64-unknown-linux-musl', ++ platform: 'linux', ++ arch: 'x64', ++ libC: 'musl', ++}; ++const i686UnknownLinuxGnu = { ++ id: 'i686-unknown-linux-gnu', ++ platform: 'linux', ++ arch: 'ia32', ++ libC: 'glibc', ++}; ++const i686UnknownLinuxMusl = { ++ id: 'i686-unknown-linux-musl', ++ platform: 'linux', ++ arch: 'ia32', ++ libC: 'musl', ++}; ++const aarch64UnknownLinuxGnu = { ++ id: 'aarch64-unknown-linux-gnu', ++ platform: 'linux', ++ arch: 'arm64', ++ libC: 'glibc', ++}; ++const aarch64UnknownLinuxMusl = { ++ id: 'aarch64-unknown-linux-musl', ++ platform: 'linux', ++ arch: 'arm64', ++ libC: 'musl', ++}; ++const powerpc64leUnknownLinuxGnu = { ++ id: 'powerpc64le-unknown-linux-gnu', ++ platform: 'linux', ++ arch: 'ppc64', ++ libC: 'glibc', ++}; ++const powerpc64leUnknownLinuxMusl = { ++ id: 'powerpc64le-unknown-linux-musl', ++ platform: 'linux', ++ arch: 'ppc64', ++ libC: 'musl', + }; + exports.TARGETS = { + 'aarch64-apple-darwin': aarch64AppleDarwin, ++ 'x86_64-apple-darwin': x8664AppleDarwin, ++ 'universal-apple-darwin': universalAppleDarwin, + 'i686-pc-windows-msvc': i686PcWindowsMsvc, + 'x86_64-pc-windows-msvc': x8664PcWindowsMsvc, +- 'x86_64-apple-darwin': x8664AppleDarwin, ++ 'i686-unknown-linux-musl': i686UnknownLinuxMusl, ++ 'i686-unknown-linux-gnu': i686UnknownLinuxGnu, ++ 'x86_64-unknown-linux-musl': x8664UnknownLinuxMusl, + 'x86_64-unknown-linux-gnu': x8664UnknownLinuxGnu, ++ 'aarch64-unknown-linux-musl': aarch64UnknownLinuxMusl, ++ 'aarch64-unknown-linux-gnu': aarch64UnknownLinuxGnu, ++ 'powerpc64le-unknown-linux-musl': powerpc64leUnknownLinuxMusl, ++ 'powerpc64le-unknown-linux-gnu': powerpc64leUnknownLinuxGnu, + }; + // The set of targets we build by default, sorted by increasing complexity so + // that we fail fast when the native host target fails. + exports.ENABLED_TARGETS = [ +- exports.TARGETS['x86_64-apple-darwin'], +- exports.TARGETS['aarch64-apple-darwin'], ++ exports.TARGETS['universal-apple-darwin'], + exports.TARGETS['x86_64-unknown-linux-gnu'], +- exports.TARGETS['i686-pc-windows-msvc'], ++ exports.TARGETS['x86_64-pc-windows-msvc'], + ]; + function getHost() { + return Object.values(exports.TARGETS).find(target => (target.platform === process.platform && +- target.arch === process.arch)); ++ target.arch === process.arch && ++ (process.platform !== 'linux' || ++ target.libC === detect_libc_1.family))); + } + exports.getHost = getHost; + function isHostId(id) { +diff --git a/yarn.lock b/yarn.lock +index 37690bb..7e112a8 100644 +--- a/yarn.lock ++++ b/yarn.lock +@@ -1775,7 +1775,7 @@ deprecation@^2.0.0, deprecation@^2.3.1: + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + +-detect-libc@^1.0.2: ++detect-libc@^1.0.2, detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= diff --git a/srcpkgs/element-desktop/template b/srcpkgs/element-desktop/template index 70841f8e242..40d06208f9d 100644 --- a/srcpkgs/element-desktop/template +++ b/srcpkgs/element-desktop/template @@ -1,6 +1,6 @@ # Template file for 'element-desktop' pkgname=element-desktop -version=1.7.30 +version=1.8.4 revision=1 wrksrc="element-web-${version}" conf_files="/etc/${pkgname}/config.json" @@ -9,7 +9,7 @@ hostmakedepends="git yarn nodejs rust cargo python3 curl app-builder" makedepends="libsecret-devel" depends="c-ares ffmpeg gtk+3 http-parser libevent - libxslt minizip nss re2 snappy sqlcipher electron12" + libxslt minizip nss re2 snappy sqlcipher electron13" short_desc="Glossy Matrix collaboration client, desktop version" maintainer="projectmoon " license="Apache-2.0" @@ -18,14 +18,28 @@ _ghpage="https://github.com/vector-im" _archive="archive/v${version}.tar.gz" distfiles="${_ghpage}/element-desktop/${_archive}>element-desktop.tar.gz ${_ghpage}/element-web/${_archive}>element-web.tar.gz" -checksum="dfa46e98b52c20b431dc62be3c7dc3c960b1aba6d98af7e2aa0c06ce4e076c9e - 86b07a8510cda86ce489b376b2069415579a3576100ddddd8ddcd1f2c29ac025" +checksum="3a972531c40da5de922824667ea048f16ee407800b26327542cac1d81357b44f + 2752b88227c17dfcd3b207db88aba08375f9751851f2ea549115fac7a517a18a" + +patch_args="-Np1 -d ../${pkgname}-${version}" export USE_SYSTEM_APP_BUILDER=true +pre_patch() { + ln -s ../element-web-${version}/0001-support-more-architectures.patch ../element-desktop-${version}/ +} + pre_build() { + # since element 1.8.x it's necessary to force the npm arch + # to x86, otherwise it will fail in electron js stuff on + # platforms officially unsupported by electron (ppc64le...) + local carch=x64 + case "$XBPS_TARGET_MACHINE" in + i686*) carch=ia32 ;; + esac + # Build dependencies for element-web - yarn install + npm_config_arch=$carch yarn install # Build dependencies and alterations for element-desktop cd ../element-desktop-${version} @@ -33,19 +47,23 @@ pre_build() { # Disable auto-updating sed -i 's@https://packages.riot.im/desktop/update/@null@g' element.io/release/config.json sed -i 's/"target": "deb"/"target": "dir"/g' package.json - yarn install + npm_config_arch=$carch yarn install } do_build() { yarn build cd ../element-desktop-${version} - yarn run build:native + if [ "$CROSS_BUILD" ]; then + yarn run build:native --target ${XBPS_CROSS_RUST_TARGET} + else + yarn run build:native + fi # normally just "yarn run build" would be okay, but at least on ppc64 # we need to force x86_64 arch as electron-builder does not support # ppc64 and fails on arch detection; ARM is supported so just use build case "$XBPS_TARGET_MACHINE" in - x86_64*|ppc64*) yarn run build64 ;; - i686*) yarn run build32 ;; + x86_64*|ppc64*) yarn run build:64 ;; + i686*) yarn run build:32 ;; *) yarn run build ;; esac }