|
1 | 1 | # Template file for 'element-desktop' |
2 | 2 | pkgname=element-desktop |
3 | | -version=1.12.10 |
4 | | -revision=2 |
| 3 | +version=1.12.21 |
| 4 | +revision=1 |
5 | 5 | _electronver=35 |
6 | 6 | create_wrksrc=yes |
7 | 7 | build_helper="rust" |
8 | 8 | conf_files="/etc/element-desktop/config.json" |
9 | | -hostmakedepends="git yarn nodejs rust cargo python3 curl |
10 | | - sqlcipher-devel libnotify-devel pkg-config electron-tasje" |
11 | | -makedepends="libsecret-devel electron${_electronver}-devel" |
| 9 | +hostmakedepends="git nodejs rust cargo python3 curl |
| 10 | + pnpm sqlcipher-devel libnotify-devel pkg-config |
| 11 | + electron-tasje yarn app-builder" |
| 12 | +makedepends="libsecret-devel electron${_electronver}-devel openssl-devel" |
12 | 13 | depends="c-ares http-parser libevent |
13 | 14 | libxslt minizip nss snappy sqlcipher electron${_electronver}" |
14 | 15 | short_desc="Glossy Matrix collaboration client, desktop version" |
15 | 16 | maintainer="Orphaned <orphan@voidlinux.org>" |
16 | 17 | license="Apache-2.0" |
17 | 18 | homepage="https://element.io" |
18 | 19 | changelog="https://raw.githubusercontent.com/element-hq/element-desktop/develop/CHANGELOG.md" |
19 | | -distfiles="https://github.com/element-hq/element-desktop/archive/v${version}.tar.gz>element-desktop-v${version}.tar.gz |
20 | | - https://github.com/element-hq/element-web/archive/v${version}.tar.gz>element-web-v${version}.tar.gz" |
21 | | -checksum="2aa491d4601b0af20c36fff0133ea19a3585b16d9217d3ec9df9fe256d6167dd |
22 | | - 17f6253497879f70f9c23729a25d77f0259ec7a9a43a33eeaebc45686922912b" |
| 20 | +distfiles="https://github.com/element-hq/element-web/archive/v${version}.tar.gz>element-web-v${version}.tar.gz" |
| 21 | +checksum="bbf87817f7f60ee034e58acba1f937954137f0fbc4527885ae38851f3757512c" |
23 | 22 | replaces="riot-desktop>=0" |
24 | 23 |
|
25 | 24 | export USE_SYSTEM_APP_BUILDER=true |
26 | 25 |
|
27 | 26 | post_extract() { |
28 | | - mv "element-desktop-${version}" element-desktop |
29 | 27 | mv "element-web-${version}" element-web |
30 | 28 | } |
31 | 29 |
|
32 | | -post_patch() { |
33 | | - # Disable auto-updating |
34 | | - vsed -e 's|"https://packages.element.io/desktop/update/"|null|' -i element-desktop/element.io/release/config.json |
35 | | -} |
36 | | - |
37 | 30 | pre_build() { |
38 | | - # since element 1.8.x it's necessary to force the npm arch |
39 | | - # to x86, otherwise it will fail in electron js stuff on |
40 | | - # platforms officially unsupported by electron (ppc64le...) |
41 | | - local carch=x64 |
42 | | - case "$XBPS_TARGET_MACHINE" in |
43 | | - i686*) carch=ia32 ;; |
44 | | - esac |
45 | | - |
46 | 31 | cd element-web |
47 | | - yarn install --no-fund --frozen-lockfile |
| 32 | + pnpm install |
48 | 33 |
|
49 | | - cd ../element-desktop |
50 | | - yarn install --no-fund --frozen-lockfile |
| 34 | + cd apps/desktop |
| 35 | + pnpm install |
51 | 36 | } |
52 | 37 |
|
53 | 38 | do_build() { |
54 | | - cd element-web |
55 | | - NODE_ENV=production VERSION=${version} yarn build |
56 | | - |
57 | | - cd ../element-desktop |
58 | | - |
59 | | - yarn asar-webapp |
60 | | - |
61 | | - # add "optional" native dependencies |
62 | | - # hak stands for hack |
63 | | - yarn run hak |
64 | | - |
65 | | - yarn build:ts |
66 | | - |
67 | | - yarn build:res |
68 | | - |
69 | | - cat <<-EOF >tsconfig.electron-builder.json |
70 | | - { |
71 | | - "compilerOptions": { |
72 | | - "module": "node16", |
73 | | - "moduleResolution": "node16", |
74 | | - "esModuleInterop": true, |
75 | | - "resolveJsonModule": true, |
76 | | - "skipLibCheck": true, |
77 | | - "strict": true, |
78 | | - "target": "es2019", |
79 | | - "sourceMap": false, |
80 | | - "noImplicitAny": false, |
81 | | - "noEmitOnError": true, |
82 | | - }, |
83 | | - "files": ["electron-builder.ts"] |
84 | | - } |
85 | | - EOF |
86 | | - yarn tsc -p tsconfig.electron-builder.json |
87 | | - 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 |
| 39 | + cd element-web/apps/web |
| 40 | + VERSION=${version} pnpm run build |
88 | 41 |
|
89 | | - yarn install --frozen-lockfile --ignore-scripts --production |
90 | | - npm rebuild keytar-forked --nodedir=/usr/include/electron35/node_headers --build-from-source |
91 | | - |
92 | | - # stripping in build because it gets into asar |
93 | | - /usr/bin/$STRIP .hak/hakModules/matrix-seshat/index.node |
94 | | - |
95 | | - tasje -c ./electron-builder.json pack |
| 42 | + cd ../desktop |
| 43 | + pnpm run build:native |
| 44 | + pnpm run build --publish never |
96 | 45 | } |
97 | 46 |
|
98 | 47 | do_install() { |
99 | | - vmkdir usr/lib/element-desktop/resources |
100 | | - |
101 | | - cd element-web |
102 | | - |
103 | | - vcopy webapp usr/lib/element-desktop/resources |
104 | | - |
105 | | - vinstall webapp/themes/element/img/logos/element-logo.svg 644 /usr/share/icons/hicolor/scalable/apps/ element-desktop.svg |
106 | | - |
107 | | - vinstall config.sample.json 644 etc/element-desktop config.json |
108 | | - ln -s /etc/element-desktop/config.json $DESTDIR/usr/lib/element-desktop/resources/webapp/config.json |
109 | | - |
110 | | - cd ../element-desktop |
111 | | - vinstall webapp.asar 644 usr/lib/element-desktop |
112 | | - vinstall dist/resources/app.asar 644 usr/lib/element-desktop/resources |
113 | | - |
114 | | - vcopy build usr/lib/element-desktop/resources |
115 | | - vinstall dist/element-desktop.desktop 644 usr/share/applications |
116 | | - echo '' >> dist/icons/size-list |
117 | | - while read -r size; do |
118 | | - if [ -n "$size" ]; then |
119 | | - vinstall dist/icons/$size.png 644 "usr/share/icons/hicolor/$size/apps" element-desktop.png |
120 | | - fi |
121 | | - done <dist/icons/size-list |
| 48 | + vmkdir usr/share/webapps/element-desktop |
| 49 | + |
| 50 | + cd element-web/apps/web |
| 51 | + vcopy webapp/* usr/share/webapps/element-desktop/ |
| 52 | + vinstall config.sample.json 644 etc/webapps/element-desktop/ |
| 53 | + ln -sf /etc/webapps/element-desktop/config.json ${DESTDIR}/usr/share/webapps/element-desktop/ |
| 54 | + |
| 55 | + cd ../desktop |
| 56 | + vcopy dist/linux-unpacked/resources/ usr/lib/element-desktop/ |
| 57 | + ln -s /usr/share/webapps/element-desktop ${DESTDIR}/usr/lib/element-desktop/webapp |
| 58 | + ln -s /etc/element-desktop/config.json ${DESTDIR}/etc/webapps/element-desktop/config.json |
| 59 | + vinstall element.io/release/config.json 644 etc/element-desktop |
| 60 | + vinstall ${FILESDIR}/io.element.desktop 644 usr/share/applications/ |
| 61 | + vbin ${FILESDIR}/element-desktop |
| 62 | + vinstall ../web/res/themes/element/img/logos/element-logo.svg 644 usr/share/icons/hicolor/scalable/apps/ io.element.Element.svg |
| 63 | + vinstall build/icon.png 644 usr/share/icons/hicolor/512x512/apps/ io.element.Element.png |
122 | 64 |
|
123 | | - cat <<-EOF > element-desktop |
124 | | - #!/bin/sh |
125 | | - exec electron${_electronver} /usr/lib/element-desktop/resources/app.asar "\$@" |
126 | | - EOF |
127 | | - vbin element-desktop |
128 | | - ln -s element-desktop "${DESTDIR}/usr/bin/riot-desktop" |
129 | 65 | } |
130 | 66 |
|
131 | 67 | riot-desktop_package() { |
|
0 commit comments