Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion srcpkgs/element-desktop/files/element-desktop
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
#!/bin/sh
exec electron35 /usr/lib/element-desktop/resources/app.asar "$@"
exec electron35 /usr/lib/element-desktop/app.asar "$@"
10 changes: 10 additions & 0 deletions srcpkgs/element-desktop/files/io.element.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[Desktop Entry]
Name=Element
Comment=Feature-rich client for Matrix
Exec=/usr/bin/element-desktop %u
Terminal=false
Type=Application
Icon=io.element.Element
StartupWMClass=Element
Categories=Network;InstantMessaging;Chat;IRCClient
MimeType=x-scheme-handler/element;x-scheme-handler/io.element.desktop;
11 changes: 11 additions & 0 deletions srcpkgs/element-desktop/patches/disable-deb-packaging.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- a/element-web/apps/desktop/electron-builder.ts
+++ b/element-web/apps/desktop/electron-builder.ts
@@ -128,7 +128,7 @@
electron_protocol: variant.protocols[0],
},
linux: {
- target: ["tar.gz", "deb"],
+ target: ["dir"],
category: "Network;InstantMessaging;Chat",
icon: "icon.png",
executableName: variant.name, // element-desktop or element-desktop-nightly
15 changes: 15 additions & 0 deletions srcpkgs/element-desktop/patches/remove-pnpm-version-check.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
--- /element-web/package.json
+++ /element-web/package.json
@@ -49,12 +49,5 @@
"engines": {
"node": ">=22.18"
},
- "devEngines": {
- "packageManager": {
- "name": "pnpm",
- "version": "11.2.2+sha512.36e6621fad506178936455e70247b8808ef4ec25797a9f437a93281a020484e2607f6a469a22e982987c3dbb8866e3071514ab10a4a1749e06edcd1ec118436f",
- "onFail": "error"
- }
- },
"private": true
}
21 changes: 0 additions & 21 deletions srcpkgs/element-desktop/patches/tasje-one-hak.patch

This file was deleted.

128 changes: 32 additions & 96 deletions srcpkgs/element-desktop/template
Original file line number Diff line number Diff line change
@@ -1,131 +1,67 @@
# Template file for 'element-desktop'
pkgname=element-desktop
version=1.12.10
revision=2
version=1.12.21
revision=1
_electronver=35
create_wrksrc=yes
build_helper="rust"
conf_files="/etc/element-desktop/config.json"
hostmakedepends="git yarn nodejs rust cargo python3 curl
sqlcipher-devel libnotify-devel pkg-config electron-tasje"
makedepends="libsecret-devel electron${_electronver}-devel"
hostmakedepends="git nodejs rust cargo python3 curl
pnpm sqlcipher-devel libnotify-devel pkg-config
electron-tasje yarn app-builder"
makedepends="libsecret-devel electron${_electronver}-devel openssl-devel"
depends="c-ares http-parser libevent
libxslt minizip nss snappy sqlcipher electron${_electronver}"
short_desc="Glossy Matrix collaboration client, desktop version"
maintainer="Orphaned <orphan@voidlinux.org>"
license="Apache-2.0"
homepage="https://element.io"
changelog="https://raw.githubusercontent.com/element-hq/element-desktop/develop/CHANGELOG.md"
distfiles="https://github.com/element-hq/element-desktop/archive/v${version}.tar.gz>element-desktop-v${version}.tar.gz
https://github.com/element-hq/element-web/archive/v${version}.tar.gz>element-web-v${version}.tar.gz"
checksum="2aa491d4601b0af20c36fff0133ea19a3585b16d9217d3ec9df9fe256d6167dd
17f6253497879f70f9c23729a25d77f0259ec7a9a43a33eeaebc45686922912b"
distfiles="https://github.com/element-hq/element-web/archive/v${version}.tar.gz>element-web-v${version}.tar.gz"
checksum="bbf87817f7f60ee034e58acba1f937954137f0fbc4527885ae38851f3757512c"
replaces="riot-desktop>=0"

export USE_SYSTEM_APP_BUILDER=true

post_extract() {
mv "element-desktop-${version}" element-desktop
mv "element-web-${version}" element-web
}

post_patch() {
# Disable auto-updating
vsed -e 's|"https://packages.element.io/desktop/update/"|null|' -i element-desktop/element.io/release/config.json
}

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

cd element-web
yarn install --no-fund --frozen-lockfile
pnpm install

cd ../element-desktop
yarn install --no-fund --frozen-lockfile
cd apps/desktop
pnpm install
}

do_build() {
cd element-web
NODE_ENV=production VERSION=${version} yarn build

cd ../element-desktop

yarn asar-webapp

# add "optional" native dependencies
# hak stands for hack
yarn run hak

yarn build:ts

yarn build:res

cat <<-EOF >tsconfig.electron-builder.json
{
"compilerOptions": {
"module": "node16",
"moduleResolution": "node16",
"esModuleInterop": true,
"resolveJsonModule": true,
"skipLibCheck": true,
"strict": true,
"target": "es2019",
"sourceMap": false,
"noImplicitAny": false,
"noEmitOnError": true,
},
"files": ["electron-builder.ts"]
}
EOF
yarn tsc -p tsconfig.electron-builder.json
ELECTRON_RUN_AS_NODE=1 IS_TASJE=1 node -e 'console.log(JSON.stringify(require("./electron-builder.js").default))' | awk '/^{/{x=1} x' >electron-builder.json
cd element-web/apps/web
VERSION=${version} pnpm run build

yarn install --frozen-lockfile --ignore-scripts --production
npm rebuild keytar-forked --nodedir=/usr/include/electron35/node_headers --build-from-source

# stripping in build because it gets into asar
/usr/bin/$STRIP .hak/hakModules/matrix-seshat/index.node

tasje -c ./electron-builder.json pack
cd ../desktop
pnpm run build:native
pnpm run build --publish never
}

do_install() {
vmkdir usr/lib/element-desktop/resources

cd element-web

vcopy webapp usr/lib/element-desktop/resources

vinstall webapp/themes/element/img/logos/element-logo.svg 644 /usr/share/icons/hicolor/scalable/apps/ element-desktop.svg

vinstall config.sample.json 644 etc/element-desktop config.json
ln -s /etc/element-desktop/config.json $DESTDIR/usr/lib/element-desktop/resources/webapp/config.json

cd ../element-desktop
vinstall webapp.asar 644 usr/lib/element-desktop
vinstall dist/resources/app.asar 644 usr/lib/element-desktop/resources

vcopy build usr/lib/element-desktop/resources
vinstall dist/element-desktop.desktop 644 usr/share/applications
echo '' >> dist/icons/size-list
while read -r size; do
if [ -n "$size" ]; then
vinstall dist/icons/$size.png 644 "usr/share/icons/hicolor/$size/apps" element-desktop.png
fi
done <dist/icons/size-list
vmkdir usr/share/webapps/element-desktop

cd element-web/apps/web
vcopy webapp/* usr/share/webapps/element-desktop/
vinstall config.sample.json 644 etc/webapps/element-desktop/
ln -sf /etc/webapps/element-desktop/config.json ${DESTDIR}/usr/share/webapps/element-desktop/

cd ../desktop
vcopy dist/linux-unpacked/resources/ usr/lib/element-desktop/
ln -s /usr/share/webapps/element-desktop ${DESTDIR}/usr/lib/element-desktop/webapp
ln -s /etc/element-desktop/config.json ${DESTDIR}/etc/webapps/element-desktop/config.json
vinstall element.io/release/config.json 644 etc/element-desktop
vinstall ${FILESDIR}/io.element.desktop 644 usr/share/applications/
vbin ${FILESDIR}/element-desktop
vinstall ../web/res/themes/element/img/logos/element-logo.svg 644 usr/share/icons/hicolor/scalable/apps/ io.element.Element.svg
vinstall build/icon.png 644 usr/share/icons/hicolor/512x512/apps/ io.element.Element.png

cat <<-EOF > element-desktop
#!/bin/sh
exec electron${_electronver} /usr/lib/element-desktop/resources/app.asar "\$@"
EOF
vbin element-desktop
ln -s element-desktop "${DESTDIR}/usr/bin/riot-desktop"
}

riot-desktop_package() {
Expand Down