--- /dev/null
+#!/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\""
--- /dev/null
+#!/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\""
--- /dev/null
+#!/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"
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
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
## 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
--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
# 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
--- /dev/null
+#!/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
--- /dev/null
+#!/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"
--- /dev/null
+#!/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"