# # spec file for package element-desktop # # Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %global _debugsource_template %{nil} Name: element-desktop Version: 1.11.58 Release: 3%{?dist} Summary: A glossy Matrix collaboration client - desktop License: Apache-2.0 URL: https://github.com/vector-im/element-desktop Source0: https://github.com/vector-im/element-desktop/archive/v%{version}.tar.gz#/element-desktop-%{version}.tar.gz Source2: npm-packages-offline-cache.tar.gz Source3: io.element.Element.desktop Source4: element-desktop.sh Source5: prepare.sh Source6: hak.tar.gz #BuildRequires: element-web = %%{version} BuildRequires: fdupes BuildRequires: hicolor-icon-theme BuildRequires: jq BuildRequires: moreutils BuildRequires: nodejs BuildRequires: nodejs-electron-devel BuildRequires: yarnpkg BuildRequires: rust BuildRequires: cargo BuildRequires: python3 BuildRequires: sqlcipher-devel BuildRequires: libsecret-devel BuildRequires: gcc-c++ BuildRequires: ccache BuildRequires: zlib-devel Requires: element-web = %{version} Requires: nodejs-electron # hak*.tar.gz only available for those architectures ExclusiveArch: x86_64 aarch64 %description A glossy Matrix collaboration client - desktop %prep %setup -q -a2 -a6 %autopatch -p1 SYSTEM_ELECTRON_VERSION=$(<%{_libdir}/electron/version) jq -c '.build["electronVersion"]="'$SYSTEM_ELECTRON_VERSION'" | .build["electronDist"]="%{_libdir}/electron"' < package.json | sponge package.json jq -c '.build["linux"]["target"]="dir"' < package.json | sponge package.json cat package.json jq '.piwik=false | .update_base_url=null' < element.io/release/config.json | sponge element.io/release/config.json # build tools expect python3 interpreter behind "python" mkdir -p $HOME/bin ln -sf /usr/bin/python3 $HOME/bin/python %ifarch aarch64 mv -v .hak/matrix-seshat/x86_64-unknown-linux-gnu .hak/matrix-seshat/aarch64-unknown-linux-gnu mv -v .hak/keytar/x86_64-unknown-linux-gnu .hak/keytar/aarch64-unknown-linux-gnu %endif %build echo 'yarn-offline-mirror "./npm-packages-offline-cache"' >> .yarnrc echo 'nodedir %{_includedir}/electron' >> .yarnrc export ELECTRON_SKIP_BINARY_DOWNLOAD=1 export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 #export NODE_OPTIONS=--openssl-legacy-provider yarn install --offline --pure-lockfile export PATH="$(pwd)/node_modules/.bin:${HOME}/bin:${PATH}" #export ELECTRON_BUILDER_CACHE="$(pwd)/electron-builder-offline-cache/" yarn run hak build yarn run hak copyandlink yarn run build:native yarn run build:universal pushd dist/linux-universal-unpacked/resources/ # repackage the asar file with the pre 1.11.54 format asar e app.asar app.asar.repak cp -av app.asar.repak/.hak/hakModules/* app.asar.repak/node_modules/ # 930M => 15M mkdir new/ # app.asar only needs package.json, lib and node_modules mv app.asar.repak/package.json app.asar.repak/lib/ app.asar.repak/node_modules/ new/ asar p new/ app.asar rm -r app.asar.repak/ rm -r new/ popd %install # Install the app content, replace the webapp with a symlink to the system package install -d -m 0755 %{buildroot}%{_datadir}/element/ cp -av dist/linux-universal-unpacked/resources/* %{buildroot}%{_datadir}/element/ cp -av res/img %{buildroot}%{_datadir}/element/img # Config file install -m 0755 -d %{buildroot}%{_sysconfdir}/element install -m 0644 element.io/release/config.json %{buildroot}%{_sysconfdir}/element/config.json install -m 0755 -d %{buildroot}%{_datadir}/element/webapp ln -s ../../../../%{_sysconfdir}/element/config.json %{buildroot}%{_datadir}/element/webapp/config.json # Required extras install -d -m 0755 %{buildroot}%{_datadir}/applications/ install -m 0644 %{SOURCE3} %{buildroot}%{_datadir}/applications/io.element.Element.desktop install -d -m 0755 %{buildroot}%{_bindir}/ install -m 0755 %{SOURCE4} %{buildroot}%{_bindir}/%{name} # Icons for i in 16 24 48 64 96 128 256 512; do install -d -m 0755 %{buildroot}%{_datadir}/icons/hicolor/${i}x${i}/apps/ install -m 0644 build/icons/${i}x${i}.png %{buildroot}%{_datadir}/icons/hicolor/${i}x${i}/apps/io.element.Element.png done %fdupes %{buildroot}%{_datadir} %files %license LICENSE %dir %{_sysconfdir}/element/ %config(noreplace) %{_sysconfdir}/element/config.json %{_bindir}/%{name} %{_datadir}/element/ %{_datadir}/applications/io.element.Element.desktop %{_datadir}/icons/hicolor/*/apps/io.element.Element.png %changelog * Wed Feb 21 2024 Sérgio Basto - 1.11.58-3 - update * Sun Feb 18 2024 Sérgio Basto - 1.11.58-2 - 1.11.58