From ff9251f6792891c251dd56a7e3ca054909c7ca8f Mon Sep 17 00:00:00 2001 From: fsLeg Date: Fri, 5 Dec 2025 16:44:09 +0300 Subject: [PATCH] element-desktop: use bundled yarn --- element-desktop/README | 2 -- element-desktop/element-desktop.SlackBuild | 6 ++++++ element-desktop/element-desktop.info | 4 ++-- element-desktop/mkvendor.sh | 13 ++++++++++++- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/element-desktop/README b/element-desktop/README index 986b552..602c959 100644 --- a/element-desktop/README +++ b/element-desktop/README @@ -11,5 +11,3 @@ WARNING: vendored-sources.tar.xz is over 800 Mb and the building process requires about 5 GB of space. If you're hard-pressed on space, consider installing element-desktop-bin instead. -WARNING: this script's build dependency is nodejs24-bin which conflicts -with nodejs. diff --git a/element-desktop/element-desktop.SlackBuild b/element-desktop/element-desktop.SlackBuild index 4250048..0c28853 100644 --- a/element-desktop/element-desktop.SlackBuild +++ b/element-desktop/element-desktop.SlackBuild @@ -79,6 +79,8 @@ export YARN_YARN_OFFLINE_MIRROR=$BASE_TMP_DIR/vendor export YARN_CACHE_FOLDER=$BASE_TMP_DIR/cache export npm_config_cache=$YARN_CACHE_FOLDER export npm_config_nodedir=/usr +export COREPACK_HOME=$BASE_TMP_DIR/corepack +export COREPACK_ENABLE_NETWORK=0 export XDG_CACHE_HOME=$BASE_TMP_DIR/electron-cache export CARGO_HOME=$BASE_TMP_DIR/cargo export CFLAGS="$SLKCFLAGS" @@ -101,6 +103,10 @@ find -L . \ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; sed -i 's|yarn |yarn --offline |g' package.json + +corepack install --global --cache-only $COREPACK_HOME/yarn.tgz +export PATH=$COREPACK_HOME/v1/yarn/$(corepack yarn --version)/bin:$PATH + yarn install --frozen-lockfile \ --ignore-engines \ --no-fund \ diff --git a/element-desktop/element-desktop.info b/element-desktop/element-desktop.info index 6b682c5..8dbab3e 100644 --- a/element-desktop/element-desktop.info +++ b/element-desktop/element-desktop.info @@ -8,7 +8,7 @@ DOWNLOAD_x86_64="https://github.com/element-hq/element-desktop/archive/v1.12.6/e https://sbo.t-rg.ws/element-desktop-1.12.6-vendored-sources.tar.xz" MD5SUM_x86_64="c36286cf87e80641db5b64e27602f512 \ fc2f5530b8afb857ca8980106365450e \ - 664fda8217864dab0633144c7118ee81" -REQUIRES="sqlcipher yarn rust-opt nodejs24-bin" + 104d78c8a4503300306cd0aa48799196" +REQUIRES="sqlcipher rust-opt nodejs24-bin" MAINTAINER="Vladislav 'fsLeg' Borisov" EMAIL="fsleg@t-rg.ws" diff --git a/element-desktop/mkvendor.sh b/element-desktop/mkvendor.sh index 4d31e95..58f0da6 100644 --- a/element-desktop/mkvendor.sh +++ b/element-desktop/mkvendor.sh @@ -30,11 +30,19 @@ export npm_config_cache="$YARN_CACHE_FOLDER" export npm_config_nodedir=/usr export XDG_CACHE_HOME="$BASE_TMP_DIR/electron-cache" export CARGO_HOME="$BASE_TMP_DIR/cargo" +export COREPACK_HOME="$BASE_TMP_DIR/corepack" mkdir -p "$YARN_YARN_OFFLINE_MIRROR" # element-web cd "element-web-$VERSION" + +# set up yarn +corepack pack -o "$COREPACK_HOME/yarn.tgz" +# when "properly" calling yarn through corepack, it fails to pick up +# vendored tarballs, so we call it directly +export PATH=$COREPACK_HOME/v1/yarn/$(corepack yarn --version)/bin:$PATH + # this `yarn install` is actually a two step process. the second step # doesn't like wrap-ansi that was cached during the first step, however we # aren't interested in cache, we are interested in vendor directory, so we @@ -124,6 +132,8 @@ directory = 'vendor' EOF cd ../../../.. +corepack cache clean + # vendor everything cd .. @@ -134,6 +144,7 @@ fi tar cfJ "$OUTPUT/$PRGNAM-$VERSION-vendored-sources.tar.xz" \ "$PRGNAM-$VERSION/vendor" \ "$PRGNAM-$VERSION/.hak" \ - "$PRGNAM-$VERSION/electron-cache" + "$PRGNAM-$VERSION/electron-cache" \ + "$PRGNAM-$VERSION/corepack/yarn.tgz" cd "$CWD" rm -rv "$TMP" -- 2.46.4