1
0
element-desktop/prepare.sh
Dominik Heidler ab9a392f30 - Version 1.11.67
##  Features
  * Tooltip: Improve the accessibility of the composer and the rich text editor (https://github.com/matrix-org/matrix-react-sdk/pull/12459). Contributed by @florianduros.
  * Allow explicit configuration of OIDC dynamic registration metadata (https://github.com/matrix-org/matrix-react-sdk/pull/12514). Contributed by @t3chguy.
  * Tooltip: improve accessibility for messages (https://github.com/matrix-org/matrix-react-sdk/pull/12487). Contributed by @florianduros.
  * Collapse UserSettings tabs to just icons on narrow screens (https://github.com/matrix-org/matrix-react-sdk/pull/12505). Contributed by @dbkr.
  * Add room topic to right panel room info (https://github.com/matrix-org/matrix-react-sdk/pull/12503). Contributed by @t3chguy.
  * OIDC: pass `id_token` via `id_token_hint` on Manage Account interaction (https://github.com/matrix-org/matrix-react-sdk/pull/12499). Contributed by @t3chguy.
  * Tooltip: improve accessibility in room (https://github.com/matrix-org/matrix-react-sdk/pull/12493). Contributed by @florianduros.
  * Tooltip: improve accessibility for call and voice messages (https://github.com/matrix-org/matrix-react-sdk/pull/12489). Contributed by @florianduros.
  * Move the active tab in user settings to the dialog title (https://github.com/matrix-org/matrix-react-sdk/pull/12481). Contributed by @dbkr.
  * Tooltip: improve accessibility of spaces (https://github.com/matrix-org/matrix-react-sdk/pull/12497). Contributed by @florianduros.
  * Tooltip: improve accessibility of the right panel (https://github.com/matrix-org/matrix-react-sdk/pull/12490). Contributed by @florianduros.
  * MSC3575 (Sliding Sync) add well-known proxy support (https://github.com/matrix-org/matrix-react-sdk/pull/12307). Contributed by @EdGeraghty.
  ## 🐛 Bug Fixes
  * Reuse single PlaybackWorker between Playback instances (https://github.com/matrix-org/matrix-react-sdk/pull/12520). Contributed by @t3chguy.
  * Fix well-known lookup for sliding sync labs check (https://github.com/matrix-org/matrix-react-sdk/pull/12519). Contributed by @t3chguy.
  * Fix `element-desktop-ssoid being` included in OIDC Authorization call (https://github.com/matrix-org/matrix-react-sdk/pull/12495). Contributed by @t3chguy.
  * Fix beta notifications reconciliation for intentional mentions push rules (https://github.com/matrix-org/matrix-react-sdk/pull/12510). Contributed by @t3chguy.
  * fix avatar stretched on 1:1 call (https://github.com/matrix-org/matrix-react-sdk/pull/12494). Contributed by @I-lander.
  * Check native sliding sync support against an unstable feature flag (https://github.com/matrix-org/matrix-react-sdk/pull/12498). Contributed by @turt2live.
  * Use OPTIONS for sliding sync detection poke (https://github.com/matrix-org/matrix-react-sdk/pull/12492). Contributed by @turt2live.
  * TAC: hide tooltip when the release announcement is displayed (https://github.com/matrix-org/matrix-react-sdk/pull/12472). Contributed by @florianduros.
Version 1.11.66
  ##  Features
  * Use a different error message for UTDs when you weren't in the room. (https://github.com/matrix-org/matrix-react-sdk/pull/12453). Contributed by @uhoreg.
  * Take the Threads Activity Centre out of labs (https://github.com/matrix-org/matrix-react-sdk/pull/12439). Contributed by @dbkr.
  * Expected UTDs: use a different message for UTDs sent before login (https://github.com/matrix-org/matrix-react-sdk/pull/12391). Contributed by @richvdh.
  * Add `Tooltip` to `AccessibleButton` (https://github.com/matrix-org/matrix-react-sdk/pull/12443). Contributed by @florianduros.
  * Add analytics to activity toggles (https://github.com/matrix-org/matrix-react-sdk/pull/12418). Contributed by @dbkr.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/element-desktop?expand=0&rev=61
2024-05-22 14:17:14 +00:00

102 lines
3.8 KiB
Bash

#!/bin/bash
set -ex
version=$1
sed -i -e "s/^\(Version: *\)[^ ]*$/\1${version}/" element-desktop.spec
oldwd="$(pwd)"
tmpdir="$(mktemp -d)"
#zypper install findutils file yarn cargo cargo-vendor-filterer moreutils jq
version=$(grep "Version:" element-desktop.spec | awk '{print $2}')
osc rm -f element-web-*.tar.gz ||:
osc rm -f element-desktop-*.tar.gz ||:
wget -c https://github.com/vector-im/element-desktop/archive/v${version}.tar.gz -O element-desktop-${version}.tar.gz
osc add -f element-desktop-*.tar.gz
cp element-desktop.spec "$tmpdir/"
cd "$tmpdir"
#dziobian: yarn has completely broken caching policy which first compiles the module and then caches the result.
#additionally, --ignore-scripts seems to be evaluated during caching, and not during install to node_modules.
#Mitigate this by resetting ~ to an empty directory
mkdir -pv "$tmpdir/home"
export HOME="$tmpdir/home"
tar -xzvvf "${oldwd}/element-desktop-${version}.tar.gz"
cd element-desktop-${version}
#These patches change results of things we want to execute below
patch -p1 --verbose < "${oldwd}/hak-remove-devdependencies.patch"
last_packaged_version=$(<"${oldwd}/element-desktop.spec" grep "^Version:" | awk '{print $NF}')
changes=$(grep "^Changes in \[$last_packaged_version\]" -B10000 CHANGELOG.md | head -n -2 | sed -e '/^==*$/d' -e 's/Changes in \[\([^\[]*\)\].*/Version \1/' -e 's/^\([^-].*\)$/ \1/' -e 's/\[.*\](\(.*\))/\1/g' -e 's/^ *Version /Version /g')
# This will vendor the packages but not execute any build scripts (but see caveat about caching above)
yarn install --frozen-lockfile --ignore-engines --ignore-platform --ignore-scripts --link-duplicates
export PATH="$PATH:node_modules/.bin"
#hak does not have version pinning, which is terrible.
#Therefore we manually pin the minimum versions specified in package.json
jq '.hakDependencies[]|= sub("^\\^";"";"i")' <package.json > package.json.new
diff --color=always -bup package.json{,.new} || true
mv package.json{.new,}
yarn run hak fetch
# prefetch cargo crates
pushd .hak/hakModules/matrix-seshat
mkdir -pv .cargo
cargo vendor-filterer --platform='*-unknown-linux-gnu' --platform='*-unknown-linux-gnueabihf' --all-features > .cargo/config
#remove vendored libraries
rm -rvf vendor/openssl-src/openssl
popd
#fetch node-addon-api for keytar. Unfortunately there is no package lock, therefore we use lowest supported version (for reproducility)
#we need to install it manuall in a separate directory wiithout a package.json. good that node-addon-api has no dependencies.
pushd .hak/hakModules/keytar
naa_version=$(jq -cj '.dependencies["node-addon-api"]' <package.json | sed 's/^\^//')
mkdir -pv "$tmpdir/naa"
pushd "$tmpdir/naa"
npm install --verbose --ignore-scripts --no-save node-addon-api@"${naa_version}"
popd
mv -v "$tmpdir/naa/node_modules" -t .
popd
#Remove non-free binaries, starting with a few common file extensions
find . -name '*.node' -print -delete
find . -name '*.jar' -print -delete
find . -name '*.dll' -print -delete
find . -name '*.exe' -print -delete
find . -name '*.dylib' -print -delete
find . -name '*.so' -print -delete
find . -name '*.o' -print -delete
find . -name '*.a' -print -delete
find . -name '*.wasm' -print -delete
#now detect the rest. This should catch all ELFs that may be executed. We use sponge to avoid a race condition between find and rm
find . -type f| sponge |\
xargs -P"$(nproc)" -- sh -c 'file -S "$@" | grep -v '\'': .*script'\'' | grep '\'': .*executable'\'' | tee /dev/stderr | sed '\''s/: .*//'\'' | xargs rm -fv'
rm -f "${oldwd}/vendor.tar.zst"
ZSTD_CLEVEL=19 ZSTD_NBTHREADS=$(nproc) tar --zstd --sort=name -vvScf "${oldwd}/vendor.tar.zst" .hak node_modules
cd "$oldwd"
echo rm -rf "$tmpdir"
echo -e "\n\nDONE creating npm offline dependencies archive 'vendor.tar.zst'"
read -p "Write changes?"
osc vc -m "${changes}" element-desktop.changes
dos2unix element-desktop.changes