From 435290841e3d5e53f83a9df78bac1ede95044b4e Mon Sep 17 00:00:00 2001 From: fsLeg Date: Sat, 16 Aug 2025 21:39:30 +0300 Subject: [PATCH] Included scripts to make vendored tarballs --- amneziawg-go/mkvendor.sh | 24 +++++++++++++++ buf/mkvendor.sh | 24 +++++++++++++++ dart-sass/mkvendor.sh | 24 +++++++++++++++ element-desktop/mkvendor.sh | 60 ++++++++++++++++++------------------ helix/mkvendor.sh | 51 ++++++++++++++++++++++++++++++ popcorntime/mkvendor.sh | 59 +++++++++++++++++++++++++++++++++++ shadowsocks-rust/mkvendor.sh | 49 +++++++++++++++++++++++++++++ 7 files changed, 261 insertions(+), 30 deletions(-) create mode 100644 amneziawg-go/mkvendor.sh create mode 100644 buf/mkvendor.sh create mode 100644 dart-sass/mkvendor.sh mode change 100755 => 100644 element-desktop/mkvendor.sh create mode 100644 helix/mkvendor.sh create mode 100644 popcorntime/mkvendor.sh create mode 100644 shadowsocks-rust/mkvendor.sh diff --git a/amneziawg-go/mkvendor.sh b/amneziawg-go/mkvendor.sh new file mode 100644 index 0000000..c1b372e --- /dev/null +++ b/amneziawg-go/mkvendor.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +set -e + +CWD="$(pwd)" +TMP="${TMP:-$(mktemp -d)}" +source "$CWD/amneziawg-go.info" +OUTPUT="${OUTPUT:-$CWD}" +export GOPATH="$TMP/cache" +export GOCACHE="$TMP/cache" + +tar xf "$CWD/$PRGNAM-$VERSION.tar.gz" -C "$TMP" +cd "$TMP/$PRGNAM-$VERSION" + +go mod vendor + +if [ -f "$OUTPUT/$PRGNAM-$VERSION-vendored-sources.tar" ]; then + rm "$OUTPUT/$PRGNAM-$VERSION-vendored-sources.tar" +fi + +tar cfJ "$OUTPUT/$PRGNAM-$VERSION-vendored-sources.tar.xz" vendor/ + +cd "$CWD" +su -c "rm -rf \"$TMP\"" diff --git a/buf/mkvendor.sh b/buf/mkvendor.sh new file mode 100644 index 0000000..4006245 --- /dev/null +++ b/buf/mkvendor.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +set -e + +CWD="$(pwd)" +TMP="${TMP:-$(mktemp -d)}" +source "$CWD/buf.info" +OUTPUT="${OUTPUT:-$CWD}" +export GOPATH="$TMP/cache" +export GOCACHE="$TMP/cache" + +tar xf "$CWD/$PRGNAM-$VERSION.tar.gz" -C "$TMP" +cd "$TMP/$PRGNAM-$VERSION" + +go mod vendor + +if [ -f "$OUTPUT/$PRGNAM-$VERSION-vendored-sources.tar" ]; then + rm "$OUTPUT/$PRGNAM-$VERSION-vendored-sources.tar" +fi + +tar cfJ "$OUTPUT/$PRGNAM-$VERSION-vendored-sources.tar.xz" vendor/ + +cd "$CWD" +su -c "rm -rf \"$TMP\"" diff --git a/dart-sass/mkvendor.sh b/dart-sass/mkvendor.sh new file mode 100644 index 0000000..4eb96e2 --- /dev/null +++ b/dart-sass/mkvendor.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +set -e + +CWD="$(pwd)" +TMP="${TMP:-$(mktemp -d)}" +source "$CWD/dart-sass.info" +OUTPUT="${OUTPUT:-$CWD}" +export PUB_CACHE="$TMP/vendor/pub-cache" + +tar xf "$CWD/$PRGNAM-$VERSION.tar.gz" -C "$TMP" +cd "$TMP/$PRGNAM-$VERSION" + +dart --disable-analytics +dart pub get + +if [ -f "$OUTPUT/$PRGNAM-$VERSION-vendored-sources.tar" ]; then + rm "$OUTPUT/$PRGNAM-$VERSION-vendored-sources.tar" +fi + +tar cfJ "$OUTPUT/$PRGNAM-$VERSION-vendored-sources.tar.xz" -C "$TMP" vendor/ + +cd "$CWD" +rm -rf "$TMP" diff --git a/element-desktop/mkvendor.sh b/element-desktop/mkvendor.sh old mode 100755 new mode 100644 index 01ac108..b13e267 --- a/element-desktop/mkvendor.sh +++ b/element-desktop/mkvendor.sh @@ -7,10 +7,10 @@ if [ ! -x "$(which jq)" -o ! -x "$(which 7z)" ]; then exit 1 fi -source element-desktop.info - -CWD=$(pwd) -TMP=$(mktemp -d) +CWD="$(pwd)" +TMP="${TMP:-$(mktemp -d)}" +source "$CWD/element-desktop.info" +OUTPUT="${OUTPUT:-$CWD}" export PATH="/opt/rust/bin:$PATH" if [ -z "$LD_LIBRARY_PATH" ]; then @@ -19,19 +19,19 @@ else export LD_LIBRARY_PATH="/opt/rust/lib64:$LD_LIBRARY_PATH" fi -cd $TMP -tar xf $CWD/element-desktop-$VERSION.tar.gz -tar xf $CWD/element-web-$VERSION.tar.gz +cd "$TMP" +tar xf "$CWD/element-desktop-$VERSION.tar.gz" +tar xf "$CWD/element-web-$VERSION.tar.gz" -BASE_TMP_DIR=$TMP/element-desktop-$VERSION -export YARN_YARN_OFFLINE_MIRROR=$BASE_TMP_DIR/vendor -export YARN_CACHE_FOLDER=$BASE_TMP_DIR/cache -export npm_config_cache=$YARN_CACHE_FOLDER +BASE_TMP_DIR="$TMP/element-desktop-$VERSION" +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 XDG_CACHE_HOME=$BASE_TMP_DIR/electron-cache -export CARGO_HOME=$BASE_TMP_DIR/cargo +export XDG_CACHE_HOME="$BASE_TMP_DIR/electron-cache" +export CARGO_HOME="$BASE_TMP_DIR/cargo" -mkdir -p $YARN_YARN_OFFLINE_MIRROR +mkdir -p "$YARN_YARN_OFFLINE_MIRROR" # element-web cd element-web-$VERSION @@ -46,11 +46,11 @@ cd ../element-desktop-$VERSION ## pre-built electron EVERSION=$(jq --raw-output '.devDependencies.electron' < package.json) -mkdir -p $XDG_CACHE_HOME/electron{,-builder} -if [ -e $CWD/electron-v$EVERSION-linux-x64.zip ]; then - cp $CWD/electron-v$EVERSION-linux-x64.zip $XDG_CACHE_HOME/electron/ +mkdir -p "$XDG_CACHE_HOME"/electron{,-builder} +if [ -e "$CWD/electron-v$EVERSION-linux-x64.zip" ]; then + cp "$CWD/electron-v$EVERSION-linux-x64.zip" "$XDG_CACHE_HOME/electron/" else - wget --directory-prefix=$XDG_CACHE_HOME/electron --tries=0 --retry-on-http-error=503 https://github.com/electron/electron/releases/download/v$EVERSION/electron-v$EVERSION-linux-x64.zip + wget --directory-prefix="$XDG_CACHE_HOME/electron" --tries=0 --retry-on-http-error=503 https://github.com/electron/electron/releases/download/v$EVERSION/electron-v$EVERSION-linux-x64.zip fi ## element-desktop itself @@ -59,28 +59,28 @@ yarn install --frozen-lockfile \ --no-fund \ --update-checksums yarn cache clean -EDIR=$(find $XDG_CACHE_HOME/electron -type d -mindepth 1 -maxdepth 1) -rm $EDIR/electron-v$EVERSION-linux-x64.zip -ln -s ../electron-v$EVERSION-linux-x64.zip $EDIR/ +EDIR="$(find $XDG_CACHE_HOME/electron -type d -mindepth 1 -maxdepth 1)" +rm "$EDIR/electron-v$EVERSION-linux-x64.zip" +ln -s ../electron-v$EVERSION-linux-x64.zip "$EDIR/" ## pre-built ruby for electron-builder FPM_RUBY=$(grep linux-amd64 node_modules/app-builder-lib/out/targets/tools.js | head -1 | cut -d'"' -f2) FPM_RUBY_TAG=$(grep 'const fpmPath' node_modules/app-builder-lib/out/targets/tools.js | head -1 | cut -d'"' -f2) -mkdir -p $XDG_CACHE_HOME/electron-builder/$FPM_RUBY_TAG/$FPM_RUBY_TAG-${FPM_RUBY%.7z} -if [ -e $CWD/$FPM_RUBY ]; then - cp $CWD/$FPM_RUBY $XDG_CACHE_HOME/electron-builder/ +mkdir -p "$XDG_CACHE_HOME/electron-builder/$FPM_RUBY_TAG/$FPM_RUBY_TAG-${FPM_RUBY%.7z}" +if [ -e "$CWD/$FPM_RUBY" ]; then + cp "$CWD/$FPM_RUBY" "$XDG_CACHE_HOME/electron-builder/" else - wget --directory-prefix=$XDG_CACHE_HOME/electron-builder/ --tries=0 --retry-on-http-error=503 https://github.com/electron-userland/electron-builder-binaries/releases/download/$FPM_RUBY_TAG/$FPM_RUBY + wget --directory-prefix="$XDG_CACHE_HOME/electron-builder/" --tries=0 --retry-on-http-error=503 https://github.com/electron-userland/electron-builder-binaries/releases/download/$FPM_RUBY_TAG/$FPM_RUBY fi -7z x -o$XDG_CACHE_HOME/electron-builder/$FPM_RUBY_TAG/$FPM_RUBY_TAG-${FPM_RUBY%.7z} $XDG_CACHE_HOME/electron-builder/$FPM_RUBY -rm $XDG_CACHE_HOME/electron-builder/$FPM_RUBY +7z x -o"$XDG_CACHE_HOME/electron-builder/$FPM_RUBY_TAG/$FPM_RUBY_TAG-${FPM_RUBY%.7z}" "$XDG_CACHE_HOME/electron-builder/$FPM_RUBY" +rm "$XDG_CACHE_HOME/electron-builder/$FPM_RUBY" ## matrix-seshat RUST_PLATFORM=$(rustc -Vv | awk '/host/ {print $2}') SESHATVERSION=$(jq --raw-output '.hakDependencies."matrix-seshat"' < package.json | tr -d '^') mkdir -p .hak/hakModules .hak/matrix-seshat/$RUST_PLATFORM -if [ -e $CWD/seshat-$SESHATVERSION.tar.gz ]; then - cp $CWD/seshat-$SESHATVERSION.tar.gz .hak/ +if [ -e "$CWD/seshat-$SESHATVERSION.tar.gz" ]; then + cp "$CWD/seshat-$SESHATVERSION.tar.gz" .hak/ else wget --directory-prefix=.hak --tries=0 --retry-on-http-error=503 https://github.com/matrix-org/seshat/archive/$SESHATVERSION/seshat-$SESHATVERSION.tar.gz fi @@ -119,7 +119,7 @@ cd ../../../.. # vendor everything cd .. -tar cfJ $CWD/element-desktop-$VERSION-vendored-sources.tar.xz \ +tar cfJ "$OUTPUT/element-desktop-$VERSION-vendored-sources.tar.xz" \ element-desktop-$VERSION/vendor \ element-desktop-$VERSION/.hak \ element-desktop-$VERSION/electron-cache diff --git a/helix/mkvendor.sh b/helix/mkvendor.sh new file mode 100644 index 0000000..1ed2ad9 --- /dev/null +++ b/helix/mkvendor.sh @@ -0,0 +1,51 @@ +#!/bin/sh + +set -e + +CWD=$(pwd) +TMP=$(mktemp -d) +source $CWD/helix.info +OUTPUT=${OUTPUT:-$CWD} +export CARGO_HOME=$TMP + +export PATH="/opt/rust/bin:$PATH" +if [ -z "$LD_LIBRARY_PATH" ]; then + export LD_LIBRARY_PATH="/opt/rust/lib64" +else + export LD_LIBRARY_PATH="/opt/rust/lib64:$LD_LIBRARY_PATH" +fi + +mkdir -p $TMP/$PRGNAM-$VERSION +tar xf $CWD/$PRGNAM-$VERSION-source.tar.xz -C $TMP/$PRGNAM-$VERSION +cd $TMP/$PRGNAM-$VERSION + +# configure cargo-vendor-filterer +# the [package] definition and existing src/main.rs file are required for vendoring to work +mkdir -p src +touch src/main.rs +cat << EOF >> Cargo.toml +[package.metadata.vendor-filter] +platforms = ["x86_64-unknown-linux-gnu", "i686-unknown-linux-gnu", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabihf"] +all-features = true +exclude-crate-paths = [ + { name = "openssl-src", exclude = "openssl" }, +] +[package] +name = "$PRGNAM" +EOF + +cargo-vendor-filterer || cargo vendor --locked + +mkdir -p .cargo +cat << EOF > .cargo/config.toml +[source.crates-io] +replace-with = "vendored-sources" + +[source.vendored-sources] +directory = "vendor" +EOF + +tar cfJ $OUTPUT/$PRGNAM-$VERSION-vendored-sources.tar.xz .cargo/ vendor/ + +cd $CWD +rm -rf $TMP diff --git a/popcorntime/mkvendor.sh b/popcorntime/mkvendor.sh new file mode 100644 index 0000000..e6f3317 --- /dev/null +++ b/popcorntime/mkvendor.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +set -e + +CWD="$(pwd)" +TMP="${TMP:-$(mktemp -d)}" +source "$CWD/popcorntime.info" +TARNAM=popcorn-desktop +OUTPUT="${OUTPUT:-$CWD}" +export YARN_CACHE_FOLDER="$TMP/cache" +export npm_config_cache="$YARN_CACHE_FOLDER" +export YARN_YARN_OFFLINE_MIRROR="$TMP/vendor" + +tar xf "$CWD/$TARNAM-$VERSION.tar.gz" -C "$TMP" +cd "$TMP/$TARNAM-$VERSION" + +# fix links for some dependencies +# https://aur.archlinux.org/cgit/aur.git/tree/yarn_lock-fixes.patch?h=popcorntime +cat << EOF > yarn_lock-fixes.patch +diff --git a/yarn.lock b/yarn.lock +index 9764d06ef..d7e51c545 100644 +--- a/yarn.lock ++++ b/yarn.lock +@@ -7227,7 +7227,7 @@ teex@^1.0.1: + + "temp@github:adam-lynch/node-temp#remove_tmpdir_dep": + version "0.8.3" +- resolved "git+ssh://git@github.com/adam-lynch/node-temp.git#279c1350cb7e4f02515d91da9e35d39a40774016" ++ resolved "git+https://github.com/adam-lynch/node-temp.git#279c1350cb7e4f02515d91da9e35d39a40774016" + dependencies: + rimraf "~2.2.6" + +@@ -7994,7 +7994,7 @@ vinyl@^3.0.0: + + "vtt.js@git+https://github.com/gkatsev/vtt.js.git#vjs-v0.12.1": + version "0.12.1" +- resolved "git+ssh://git@github.com/gkatsev/vtt.js.git#8ea664e257ec7b5c092f58ac989e3134ff536a7a" ++ resolved "git+https://github.com/gkatsev/vtt.js.git#8ea664e257ec7b5c092f58ac989e3134ff536a7a" + + w-json@^1.3.10: + version "1.3.10" +EOF +patch -p1 < yarn_lock-fixes.patch + +mkdir -p "$YARN_YARN_OFFLINE_MIRROR" +yarn install --frozen-lockfile \ + --ignore-engines \ + --ignore-scripts \ + --no-fund \ + --production + +if [ -f "$OUTPUT/$PRGNAM-$VERSION-vendored-sources.tar" ]; then + rm "$OUTPUT/$PRGNAM-$VERSION-vendored-sources.tar" +fi + +tar cf "$OUTPUT/$PRGNAM-$VERSION-vendored-sources.tar" -C "$TMP" vendor/ + +cd "$CWD" +rm -rf "$TMP" diff --git a/shadowsocks-rust/mkvendor.sh b/shadowsocks-rust/mkvendor.sh new file mode 100644 index 0000000..c3ca2d7 --- /dev/null +++ b/shadowsocks-rust/mkvendor.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +set -e + +CWD="$(pwd)" +TMP="${TMP:-$(mktemp -d)}" +source "$CWD/shadowsocks-rust.info" +OUTPUT="${OUTPUT:-$CWD}" +export CARGO_HOME="$TMP" + +export PATH="/opt/rust/bin:$PATH" +if [ -z "$LD_LIBRARY_PATH" ]; then + export LD_LIBRARY_PATH="/opt/rust/lib64" +else + export LD_LIBRARY_PATH="/opt/rust/lib64:$LD_LIBRARY_PATH" +fi + +tar xf "$CWD/$PRGNAM-$VERSION.tar.gz" -C "$TMP" +cd "$TMP/$PRGNAM-$VERSION" + +# configure cargo-vendor-filterer +cat << EOF >> Cargo.toml +[package.metadata.vendor-filter] +platforms = ["x86_64-unknown-linux-gnu", "i686-unknown-linux-gnu", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabihf"] +all-features = true +exclude-crate-paths = [ + { name = "openssl-src", exclude = "openssl" }, +] +EOF + +cargo-vendor-filterer || cargo vendor --locked + +mkdir -p .cargo +cat << EOF > .cargo/config.toml +[source.crates-io] +replace-with = "vendored-sources" + +[source.vendored-sources] +directory = "vendor" +EOF + +if [ -f "$OUTPUT/$PRGNAM-$VERSION-vendored-sources.tar.xz" ]; then + rm "$OUTPUT/$PRGNAM-$VERSION-vendored-sources.tar.xz" +fi + +tar cfJ "$OUTPUT/$PRGNAM-$VERSION-vendored-sources.tar.xz" .cargo/ vendor/ + +cd "$CWD" +rm -rf "$TMP" -- 2.46.4