Skip to content
Snippets Groups Projects
Verified Commit def43146 authored by LN Liberda's avatar LN Liberda Committed by alice
Browse files

testing/element-desktop: new aport

parent 41651f02
No related branches found
No related tags found
2 merge requests!39304[3.16] main/expat: security upgrade to 2.4.9,!37111testing/element-desktop: new aport
Pipeline #130765 passed
# Contributor: Lauren N. Liberda <lauren@selfisekai.rocks>
# Maintainer: Lauren N. Liberda <lauren@selfisekai.rocks>
pkgname=element-desktop
pkgver=1.11.1
pkgrel=0
pkgdesc="Secure and independent communication, connected via Matrix"
url="https://element.io/"
arch="aarch64 x86_64" # same as electron
license="Apache-2.0"
depends="electron"
makedepends="
cargo
electron-dev
libsecret-dev
nodejs
npm
python3
sqlcipher-dev
yarn
"
source="
https://github.com/vector-im/element-desktop/archive/refs/tags/v$pkgver/element-desktop-$pkgver.tar.gz
https://github.com/vector-im/element-web/archive/refs/tags/v$pkgver/element-web-$pkgver.tar.gz
desktop-add-alpine-target.patch
desktop-use-system-headers.patch
element-desktop
element-desktop.desktop
"
options="!check" # broken
# used by buildscripts (at least web's webpack)
export VERSION=$pkgver
export CARGO_PROFILE_RELEASE_PANIC=abort
export CARGO_PROFILE_RELEASE_CODEGEN_UNITS=1
export CARGO_PROFILE_RELEASE_OPT_LEVEL=2
export CARGO_PROFILE_RELEASE_STRIP="symbols"
prepare() {
msg "Applying patches"
for x in $source; do
case "$x" in
web-*.patch)
msg "$x"
patch -p1 -i "$srcdir"/$x -d "$srcdir"/element-web-$pkgver
;;
desktop-*.patch)
msg "$x"
patch -p1 -i "$srcdir"/$x -d "$srcdir"/element-desktop-$pkgver
;;
esac
done
(
cd "$srcdir"/element-web-$pkgver
msg "Fetch element-web dependencies"
yarn install --frozen-lockfile --ignore-scripts
cp config.sample.json config.json
)
ln -s "$srcdir"/element-web-$pkgver/webapp webapp
msg "Fetch element-desktop dependencies"
yarn install --frozen-lockfile --ignore-scripts
}
build() {
(
cd "$srcdir"/element-web-$pkgver
msg "Build element-web"
NODE_ENV=production yarn build
)
msg "Build element-desktop"
yarn asar-webapp
# add "optional" native dependencies
# hak stands for hack
yarn run hak --target "$(uname -m)-alpine-linux-musl"
# stripping in build because it gets into asar
strip node_modules/keytar/build/Release/keytar.node
yarn build:ts
yarn build:res
yarn electron-builder \
--config.directories.output=release \
--linux=dir
}
check() {
(
cd "$srcdir"/element-web-$pkgver
yarn test
)
}
package() {
mkdir -p "$pkgdir"/usr/lib/element-desktop/img
local path_arch=''
if [ "$(uname -m)" == "aarch64" ]; then
path_arch='-arm64'
fi
local resources="release/linux$path_arch-unpacked/resources"
install -Dm644 $resources/app.asar "$pkgdir"/usr/lib/element-desktop/
install -Dm644 $resources/webapp.asar "$pkgdir"/usr/lib/element-desktop/
cp -r $resources/app.asar.unpacked "$pkgdir"/usr/lib/element-desktop/
install -Dm644 $resources/img/* "$pkgdir"/usr/lib/element-desktop/img/
install -Dm755 "$srcdir"/$pkgname "$pkgdir"/usr/bin/$pkgname
install -Dm644 "$srcdir"/$pkgname.desktop "$pkgdir"/usr/share/applications/$pkgname.desktop
for i in 16 24 48 64 96 128 256; do
install -Dm644 "$builddir"/build/icons/${i}x$i.png "$pkgdir"/usr/share/icons/hicolor/${i}x$i/apps/element.png
done
}
sha512sums="
dafc60b4dea4870bba359ded9ef51ef1d4510d197bdb3f1b56329d670bd92556cdd8b6ac1d538add1acb913f56616da1fa09a9d258783c94fccfa08f0509c2a2 element-desktop-1.11.1.tar.gz
d425eead81fe15f3e45c495fc418eccec58af6ddf8a5e08823290c2b30a76c361bd81e26d8196f8fe40a343fd1ad15416f1d133cdeaeb85194f13c11908badb2 element-web-1.11.1.tar.gz
00e15ad47fe025c7f8c25df4593916bb095526aa8388d5a1e5d12bba866ca60c647a406bb046a29aedda264c9d681dcc8a8aaa66ebfe643c68f5dc1913d7f0ec desktop-add-alpine-target.patch
3b85022104893344188790642095b8bd548545efa88ec2641002c3768f79783f3db220ea5d39b77bbc0cea38257ee9d3358ec04fd5e4bc64b698b68e52eb8778 desktop-use-system-headers.patch
bb65e4ddcb8542f7190db03a6bda9ce2f39044e34304fe0d16b1940a78594f66ea8a7ab447f39229d894c0d2a8cb160eef0c8dce6d36949da70aa899311bf333 element-desktop
d4f88f2652e3ac88cf1c218e0fa72d63caf65441a713b09b318943bac9b51eff8e37c48d3452faf2409545406ea0be438b03bd21bf9857ea1955843958e302b6 element-desktop.desktop
"
--- a/scripts/hak/target.ts
+++ b/scripts/hak/target.ts
@@ -28,8 +28,10 @@
'i686-unknown-linux-musl' |
'i686-unknown-linux-gnu' |
'x86_64-unknown-linux-musl' |
+ 'x86_64-alpine-linux-musl' |
'x86_64-unknown-linux-gnu' |
'aarch64-unknown-linux-musl' |
+ 'aarch64-alpine-linux-musl' |
'aarch64-unknown-linux-gnu' |
'powerpc64le-unknown-linux-musl' |
'powerpc64le-unknown-linux-gnu';
@@ -118,6 +120,13 @@
libC: 'musl',
};
+const x8664AlpineLinuxMusl: LinuxTarget = {
+ id: 'x86_64-alpine-linux-musl',
+ platform: 'linux',
+ arch: 'x64',
+ libC: 'musl',
+};
+
const i686UnknownLinuxGnu: LinuxTarget = {
id: 'i686-unknown-linux-gnu',
platform: 'linux',
@@ -146,6 +155,13 @@
libC: 'musl',
};
+const aarch64AlpineLinuxMusl: LinuxTarget = {
+ id: 'aarch64-alpine-linux-musl',
+ platform: 'linux',
+ arch: 'arm64',
+ libC: 'musl',
+};
+
const powerpc64leUnknownLinuxGnu: LinuxTarget = {
id: 'powerpc64le-unknown-linux-gnu',
platform: 'linux',
@@ -172,8 +188,10 @@
'i686-unknown-linux-musl': i686UnknownLinuxMusl,
'i686-unknown-linux-gnu': i686UnknownLinuxGnu,
'x86_64-unknown-linux-musl': x8664UnknownLinuxMusl,
+ 'x86_64-alpine-linux-musl': x8664AlpineLinuxMusl,
'x86_64-unknown-linux-gnu': x8664UnknownLinuxGnu,
'aarch64-unknown-linux-musl': aarch64UnknownLinuxMusl,
+ 'aarch64-alpine-linux-musl': aarch64AlpineLinuxMusl,
'aarch64-unknown-linux-gnu': aarch64UnknownLinuxGnu,
'powerpc64le-unknown-linux-musl': powerpc64leUnknownLinuxMusl,
'powerpc64le-unknown-linux-gnu': powerpc64leUnknownLinuxGnu,
--- a/scripts/hak/hakEnv.ts
+++ b/scripts/hak/hakEnv.ts
@@ -99,11 +99,10 @@
return Object.assign({}, process.env, {
npm_config_arch: this.target.arch,
npm_config_target_arch: this.target.arch,
- npm_config_disturl: 'https://electronjs.org/headers',
+ npm_config_nodedir: '/usr/include/electron/node_headers',
npm_config_runtime: this.runtime,
npm_config_target: this.runtimeVersion,
npm_config_build_from_source: true,
- npm_config_devdir: path.join(os.homedir(), ".electron-gyp"),
});
}
#!/bin/sh
exec electron /usr/lib/element-desktop/app.asar
[Desktop Entry]
Name=Element
Exec=/usr/bin/element-desktop %U
Terminal=false
Type=Application
Icon=element-desktop
StartupWMClass=element
Comment=A feature-rich client for Matrix
MimeType=x-scheme-handler/element;
Categories=Network;InstantMessaging;Chat;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment