forked from pool/element-desktop
- Build with native extensons
- keytar for talking to system keyring - seshat for maintaining encrypted sqlite db for msg search OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/element-desktop?expand=0&rev=36
This commit is contained in:
parent
18725a37fe
commit
26b596b3a6
@ -1,3 +1,10 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Jun 15 13:12:37 UTC 2023 - Dominik Heidler <dheidler@suse.de>
|
||||||
|
|
||||||
|
- Build with native extensons
|
||||||
|
- keytar for talking to system keyring
|
||||||
|
- seshat for maintaining encrypted sqlite db for msg search
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Jun 7 09:53:04 UTC 2023 - Dominik Heidler <dheidler@suse.de>
|
Wed Jun 7 09:53:04 UTC 2023 - Dominik Heidler <dheidler@suse.de>
|
||||||
|
|
||||||
|
@ -28,6 +28,7 @@ Source2: npm-packages-offline-cache.tar.gz
|
|||||||
Source3: io.element.Element.desktop
|
Source3: io.element.Element.desktop
|
||||||
Source4: element-desktop.sh
|
Source4: element-desktop.sh
|
||||||
Source5: prepare.sh
|
Source5: prepare.sh
|
||||||
|
Source6: hak.tar.gz
|
||||||
BuildRequires: element-web = %{version}
|
BuildRequires: element-web = %{version}
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: hicolor-icon-theme
|
BuildRequires: hicolor-icon-theme
|
||||||
@ -35,10 +36,15 @@ BuildRequires: jq
|
|||||||
BuildRequires: moreutils
|
BuildRequires: moreutils
|
||||||
BuildRequires: nodejs-electron-devel
|
BuildRequires: nodejs-electron-devel
|
||||||
BuildRequires: yarn
|
BuildRequires: yarn
|
||||||
|
BuildRequires: rust
|
||||||
|
BuildRequires: cargo
|
||||||
|
BuildRequires: python3
|
||||||
|
BuildRequires: sqlcipher-devel
|
||||||
|
BuildRequires: openssh-fips
|
||||||
|
BuildRequires: libsecret-devel
|
||||||
|
BuildRequires: gcc-c++
|
||||||
Requires: element-web = %{version}
|
Requires: element-web = %{version}
|
||||||
Requires: nodejs-electron
|
Requires: nodejs-electron
|
||||||
#Element contains no native code
|
|
||||||
BuildArch: noarch
|
|
||||||
%if 0%{?suse_version} <= 1540
|
%if 0%{?suse_version} <= 1540
|
||||||
BuildRequires: nodejs18
|
BuildRequires: nodejs18
|
||||||
%endif
|
%endif
|
||||||
@ -47,7 +53,7 @@ BuildRequires: nodejs18
|
|||||||
A glossy Matrix collaboration client - desktop
|
A glossy Matrix collaboration client - desktop
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -a1 -a2
|
%setup -q -a1 -a2 -a6
|
||||||
%autopatch -p1
|
%autopatch -p1
|
||||||
SYSTEM_ELECTRON_VERSION=$(<%{_libdir}/electron/version)
|
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["electronVersion"]="'$SYSTEM_ELECTRON_VERSION'" | .build["electronDist"]="%{_libdir}/electron"' < package.json | sponge package.json
|
||||||
@ -55,6 +61,10 @@ jq -c '.build["linux"]["target"]="dir"' < package.json | sponge package.json
|
|||||||
cat package.json
|
cat package.json
|
||||||
jq '.piwik=false | .update_base_url=null' < element.io/release/config.json | sponge element.io/release/config.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
|
||||||
|
|
||||||
%build
|
%build
|
||||||
echo 'yarn-offline-mirror "./npm-packages-offline-cache"' >> .yarnrc
|
echo 'yarn-offline-mirror "./npm-packages-offline-cache"' >> .yarnrc
|
||||||
echo 'nodedir %{_includedir}/electron' >> .yarnrc
|
echo 'nodedir %{_includedir}/electron' >> .yarnrc
|
||||||
@ -64,18 +74,28 @@ export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
|||||||
|
|
||||||
yarn install --offline --pure-lockfile
|
yarn install --offline --pure-lockfile
|
||||||
|
|
||||||
export PATH="$(pwd)/node_modules/.bin:${PATH}"
|
export PATH="$(pwd)/node_modules/.bin:${HOME}/bin:${PATH}"
|
||||||
#export ELECTRON_BUILDER_CACHE="$(pwd)/electron-builder-offline-cache/"
|
#export ELECTRON_BUILDER_CACHE="$(pwd)/electron-builder-offline-cache/"
|
||||||
#yarn run build:native
|
|
||||||
|
yarn run hak build
|
||||||
|
yarn run hak copyandlink
|
||||||
|
|
||||||
|
yarn run build:native
|
||||||
yarn run build:universal
|
yarn run build:universal
|
||||||
|
|
||||||
%install
|
%install
|
||||||
|
|
||||||
# Install the app content, replace the webapp with a symlink to the system package
|
# Install the app content, replace the webapp with a symlink to the system package
|
||||||
install -d -m 0755 "%{buildroot}%{_datadir}/element/"
|
install -d -m 0755 "%{buildroot}%{_datadir}/element/"
|
||||||
cp -av dist/linux-universal-unpacked/resources/* "%{buildroot}%{_datadir}/element/"
|
cp -av dist/linux-universal-unpacked/resources/* "%{buildroot}%{_datadir}/element/"
|
||||||
ln -s %{_datadir}/webapps/element "%{buildroot}%{_datadir}/element/webapp"
|
ln -s %{_datadir}/webapps/element "%{buildroot}%{_datadir}/element/webapp"
|
||||||
|
|
||||||
|
# Install binaries to /usr/lib
|
||||||
|
install -d -m 0755 "%{buildroot}%{_prefix}/lib/element/"
|
||||||
|
install -m0755 dist/linux-universal-unpacked/resources/app.asar.unpacked/node_modules/keytar/build/Release/keytar.node "%{buildroot}%{_prefix}/lib/element/keytar.node"
|
||||||
|
install -m0755 dist/linux-universal-unpacked/resources/app.asar.unpacked/node_modules/matrix-seshat/index.node "%{buildroot}%{_prefix}/lib/element/matrix-seshat.node"
|
||||||
|
ln -sfv "%{_prefix}/lib/element/keytar.node" "%{buildroot}%{_datadir}/element/app.asar.unpacked/node_modules/keytar/build/Release/keytar.node"
|
||||||
|
ln -sfv "%{_prefix}/lib/element/matrix-seshat.node" "%{buildroot}%{_datadir}/element/app.asar.unpacked/node_modules/matrix-seshat/index.node"
|
||||||
|
|
||||||
# Config file
|
# Config file
|
||||||
install -m 0755 -d %{buildroot}%{_sysconfdir}/element
|
install -m 0755 -d %{buildroot}%{_sysconfdir}/element
|
||||||
install -m 0644 element.io/release/config.json "%{buildroot}%{_sysconfdir}/element/config.json"
|
install -m 0644 element.io/release/config.json "%{buildroot}%{_sysconfdir}/element/config.json"
|
||||||
@ -106,6 +126,7 @@ done
|
|||||||
%license LICENSE
|
%license LICENSE
|
||||||
%{_bindir}/%{name}
|
%{_bindir}/%{name}
|
||||||
%{_datadir}/element/
|
%{_datadir}/element/
|
||||||
|
%{_prefix}/lib/element/
|
||||||
%config(noreplace) %{_sysconfdir}/element/config.json
|
%config(noreplace) %{_sysconfdir}/element/config.json
|
||||||
%{_sysconfdir}/webapps/element/config.json
|
%{_sysconfdir}/webapps/element/config.json
|
||||||
%{_datadir}/webapps/element/config.json
|
%{_datadir}/webapps/element/config.json
|
||||||
|
3
hak.tar.gz
Normal file
3
hak.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:a595a63de72cb140e9fff09c76677108f053e2572b79c6593441740852442e49
|
||||||
|
size 131179308
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:6a848008acc8cb8cf5d210557fe458c2fc56689711a2898a6a5d757d381c31ba
|
oid sha256:710408fb641a2a2ec7672c77b5172a62a6bbc346c6371d46232346e276bf0171
|
||||||
size 94143435
|
size 153625215
|
||||||
|
55
prepare.sh
55
prepare.sh
@ -24,24 +24,46 @@ cd element-desktop-${version}
|
|||||||
|
|
||||||
changes=$(grep "^=============" -B10000 -m2 CHANGELOG.md | head -n -3 | tail -n +4)
|
changes=$(grep "^=============" -B10000 -m2 CHANGELOG.md | head -n -3 | tail -n +4)
|
||||||
|
|
||||||
#sed -i 's@"electronVersion": "11.2.3"@"electronVersion": "13.1.2"@g' package.json
|
|
||||||
#sed -i 's@"https://packages.riot.im/desktop/update/"@null@g' element.io/release/config.json
|
|
||||||
|
|
||||||
echo 'yarn-offline-mirror "./npm-packages-offline-cache"' > .yarnrc
|
echo 'yarn-offline-mirror "./npm-packages-offline-cache"' > .yarnrc
|
||||||
yarn cache clean
|
yarn cache clean
|
||||||
rm -rf node_modules/
|
rm -rf node_modules/
|
||||||
yarn install --pure-lockfile || : # this will download tha packages into the offline cache
|
yarn install --pure-lockfile || : # this will download tha packages into the offline cache
|
||||||
|
|
||||||
#mkdir -p electron-builder-offline-cache
|
export PATH="$PATH:node_modules/.bin"
|
||||||
#export ELECTRON_BUILDER_CACHE="$(pwd)/electron-builder-offline-cache/"
|
yarn run hak check
|
||||||
#export PATH="$PATH:node_modules/.bin"
|
yarn run hak fetch
|
||||||
#yarn run build
|
|
||||||
|
# prefetch cargo crates
|
||||||
|
pushd .hak/matrix-seshat/x86_64-unknown-linux-gnu/build
|
||||||
|
cargo vendor
|
||||||
|
mkdir -p .cargo
|
||||||
|
cat > .cargo/config.toml <<EOF
|
||||||
|
[source.crates-io]
|
||||||
|
replace-with = "vendored-sources"
|
||||||
|
|
||||||
|
[source.vendored-sources]
|
||||||
|
directory = "vendor"
|
||||||
|
EOF
|
||||||
|
popd
|
||||||
|
|
||||||
|
patch -p0 <<EOF
|
||||||
|
--- .hak/keytar/x86_64-unknown-linux-gnu/build/node_modules/node-gyp/gyp/pylib/gyp/input.py 2023-06-15 12:09:05.127000000 +0200
|
||||||
|
+++ .hak/keytar/x86_64-unknown-linux-gnu/build/node_modules/node-gyp/gyp/pylib/gyp/input.py 2023-06-15 13:34:18.969088855 +0200
|
||||||
|
@@ -1190,7 +1190,7 @@
|
||||||
|
else:
|
||||||
|
ast_code = compile(cond_expr_expanded, "<string>", "eval")
|
||||||
|
cached_conditions_asts[cond_expr_expanded] = ast_code
|
||||||
|
- env = {"__builtins__": {}, "v": StrictVersion}
|
||||||
|
+ env = {"__builtins__": {"openssl_fips": ""}, "v": StrictVersion}
|
||||||
|
if eval(ast_code, env, variables):
|
||||||
|
return true_dict
|
||||||
|
return false_dict
|
||||||
|
EOF
|
||||||
|
|
||||||
tar czf npm-packages-offline-cache.tar.gz ./npm-packages-offline-cache
|
tar czf npm-packages-offline-cache.tar.gz ./npm-packages-offline-cache
|
||||||
cp -v npm-packages-offline-cache.tar.gz "$oldwd/"
|
tar czf hak.tar.gz ./.hak
|
||||||
|
cp -v npm-packages-offline-cache.tar.gz hak.tar.gz "$oldwd/"
|
||||||
|
|
||||||
#tar czf electron-builder-offline-cache.tar.gz ./electron-builder-offline-cache/
|
|
||||||
#cp electron-builder-offline-cache.tar.gz "$oldwd/"
|
|
||||||
cd "$oldwd"
|
cd "$oldwd"
|
||||||
echo rm -rf "$tmpdir"
|
echo rm -rf "$tmpdir"
|
||||||
echo -e "\n\nDONE creating npm dependency offline cache file 'npm-packages-offline-cache.tar.gz'"
|
echo -e "\n\nDONE creating npm dependency offline cache file 'npm-packages-offline-cache.tar.gz'"
|
||||||
@ -49,16 +71,3 @@ echo -e "\n\nDONE creating npm dependency offline cache file 'npm-packages-offli
|
|||||||
|
|
||||||
read -p "Write changes?"
|
read -p "Write changes?"
|
||||||
osc vc -m "Version ${version}\n${changes}" element-desktop.changes
|
osc vc -m "Version ${version}\n${changes}" element-desktop.changes
|
||||||
|
|
||||||
|
|
||||||
#yarn install
|
|
||||||
#export PATH="$PATH:node_modules/.bin"
|
|
||||||
#yarn run build:native
|
|
||||||
#yarn run build
|
|
||||||
#tar czvf ../dist.tar.gz dist/linux-unpacked/resources/
|
|
||||||
#cd ..
|
|
||||||
#cp dist.tar.gz "$oldwd/"
|
|
||||||
#cd "$oldwd"
|
|
||||||
#rm -rf "$tmpdir"
|
|
||||||
#rm -rf "element-desktop-${version}"
|
|
||||||
#echo -e "\n\nDONE creating output file 'dist.tar.gz'"
|
|
||||||
|
Loading…
Reference in New Issue
Block a user