diff --git a/README.md b/README.md index 3fec66740df7b2ca35c4aed906c986b7b0189cde..858677828712c692381c73a7a42366d7a343b5df 100644 --- a/README.md +++ b/README.md @@ -20,9 +20,9 @@ This script will run Cesium Desktop, taking care of installing Cesium + Nw.js if The release script use some Vagrant, and a VM running into VirtualBox. -- Install VirtualBox +- Install VirtualBox version 6 (not tested under version 7) - Install the VirtualBox Extension Pack (need by OSx build, for USB support). -- Install vagrant : `sudo apt-get install vagrant` +- Install vagrant : `sudo apt install vagrant` ### Execute release script diff --git a/arch/linux/Vagrantfile b/arch/linux/Vagrantfile index cb70dda3e43fa609d3bb7d6a5886a8c87fe653d7..40e3b353c932676f13f3639e0b35846f8bb14bda 100644 --- a/arch/linux/Vagrantfile +++ b/arch/linux/Vagrantfile @@ -2,9 +2,8 @@ # vi: set ft=ruby : Vagrant.configure("2") do |config| - config.vm.define "cesium-release-ubuntu" - config.vm.box = "duniter/cesium_trusty64" - config.vm.box_url = "https://s3.eu-central-1.amazonaws.com/duniter/vagrant/duniter_trusty64.box" + config.vm.define "cesium-release-debian" + config.vm.box = "debian/bookworm64" config.vm.provision :shell, path: "bootstrap.sh" diff --git a/arch/linux/appimage/appimage.yml b/arch/linux/appimage/appimage.yml new file mode 100644 index 0000000000000000000000000000000000000000..64442523624d213ad2e2202b68441822c203d314 --- /dev/null +++ b/arch/linux/appimage/appimage.yml @@ -0,0 +1,24 @@ +app: cesium-desktop + +ingredients: + script: + - rm -rf cesium-desktop.AppDir/opt/cesium + - mkdir -p cesium-desktop.AppDir/opt/cesium + - TGZ_FILE=$(ls ../cesium-desktop-v*-linux-x64.tar.gz | sort -V | tail -n 1) + - tar xzf $TGZ_FILE -C cesium-desktop.AppDir/opt/cesium +script: + - cat > cesium.desktop <<EOF + - [Desktop Entry] + - Type=Application + - Name=Cesium Äž1 + - Exec=cesium + - StartupNotify=true + - Icon=cesium + - Categories=Utility; + - EOF + - ln -s opt/cesium/nw/nw usr/bin/cesium + - mkdir -p usr/share/icons/hicolor/256x256/apps + - cp opt/cesium/nw/cesium/img/logo_256px.png usr/share/icons/hicolor/256x256/apps/cesium.png + - cp usr/share/icons/hicolor/256x256/apps/cesium.png ./app.png + - chmod ugo+r -R opt/cesium + - chmod ugo+x -R opt/cesium/nw/nw opt/cesium/nw/lib opt/cesium/nw/locales diff --git a/arch/linux/appimage/pkg2appimage b/arch/linux/appimage/pkg2appimage new file mode 100755 index 0000000000000000000000000000000000000000..e0ace5993867ed1d07a863ee31b498f4243abee5 --- /dev/null +++ b/arch/linux/appimage/pkg2appimage @@ -0,0 +1,490 @@ +#!/usr/bin/env bash + +HERE="$(dirname "$(readlink -f "${0}")")" + +export PATH="${HERE}"/usr/bin/:"${HERE}"/usr/sbin/:"${HERE}"/usr/games/:"${HERE}"/bin/:"${HERE}"/sbin/:"${PATH}" +export LD_LIBRARY_PATH="${HERE}"/usr/lib/:"${HERE}"/usr/lib/i386-linux-gnu/:"${HERE}"/usr/lib/x86_64-linux-gnu/:"${HERE}"/usr/lib32/:"${HERE}"/usr/lib64/:"${HERE}"/lib/:"${HERE}"/lib/i386-linux-gnu/:"${HERE}"/lib/x86_64-linux-gnu/:"${HERE}"/lib32/:"${HERE}"/lib64/:"${LD_LIBRARY_PATH}" +export XDG_DATA_DIRS="${HERE}"/usr/share/:"${XDG_DATA_DIRS}" + + +# Specify a certain commit if you do not want to use master +# by using: +# export PKG2AICOMMIT=<git sha> +if [ -z "$PKG2AICOMMIT" ] ; then + PKG2AICOMMIT=master +fi + +usage() { + if [ -z "$APPIMAGE" ] ; then + MYSELF="$0" + else + MYSELF="$APPIMAGE" + fi + echo "usage:" + echo " $MYSELF [--di] META-NAME|YAMLFILE" + echo "" + echo "options:" + echo " --di enable legacy desktop integration (unsupported)" + exit 1 +} + +check_dependencies() { + for executable in $@; do + which "${executable}" >/dev/null 2>&1 || { + (echo "${executable} missing"; exit 1) + } + done +} + +if [ $# -eq 0 ] || [ "x${!#}" = "x--di" ] ; then + usage +fi +if [ $# -eq 2 ] && [ "x$1" != "x--di" ] ; then + usage +fi + +if [ "x$1" = "x--di" ] ; then + ENABLE_DI="yes" +else + ENABLE_DI="no" +fi + +# Halt on errors +set -e +set -x + +# Check dependencies +check_dependencies \ + dpkg \ + dpkg-deb \ + convert \ + wget \ + grep \ + sed \ + cut \ + file \ + desktop-file-validate \ + strings + +# If the yaml file doesn't exist locally, get it from GitHub +if [ ! -f "${!#}" ] ; then + YAMLFILE=/tmp/_recipe.yml + rm -f "$YAMLFILE" + wget -q "https://github.com/AppImage/AppImages/raw/${PKG2AICOMMIT}/recipes/${!#}.yml" -O "$YAMLFILE" +else + YAMLFILE=$(readlink -f "${!#}") +fi + +# Lightweight bash-only dpkg-scanpackages replacement +scanpackages() { + for deb in *.deb ; do + dpkg -I $deb | sed 's/^ *//g' | grep -i -E '(package|version|installed-size|architecture|depends|priority):' + echo "Filename: $(readlink -f $deb)" + echo "MD5sum: $(md5sum -b $deb | cut -d' ' -f1)" + echo "SHA1: $(sha1sum -b $deb | cut -d' ' -f1)" + echo "SHA256: $(sha256sum -b $deb | cut -d' ' -f1)" + echo + done +} + +# Function to parse yaml +# https://gist.github.com/epiloque/8cf512c6d64641bde388 +# based on https://gist.github.com/pkuczynski/8665367 +parse_yaml() { + local prefix=$2 + local s + local w + local fs + s='[[:blank:]]*' + w='[a-zA-Z0-9_]*' + fs="$(echo @|tr @ '\034')" + sed -ne "s|^\($s\)\($w\)$s:$s\"\(.*\)\"$s\$|\1$fs\2$fs\3|p" \ + -e "s|^\($s\)\($w\)$s[:-]$s\(.*\)$s\$|\1$fs\2$fs\3|p" "$1" | + awk -F"$fs" '{ + indent = length($1)/2; + vname[indent] = $2; + for (i in vname) {if (i > indent) {delete vname[i]}} + if (length($3) > 0) { + vn=""; for (i=0; i<indent; i++) {vn=(vn)(vname[i])("_")} + printf("%s%s%s=(\"%s\")\n", "'"$prefix"'",vn, $2, $3); + } + }' | sed 's/_=/+=/g' +} + +# Read yaml file +parse_yaml $YAMLFILE "_" +eval $(parse_yaml $YAMLFILE "_") + +if [ ! -z $_enable_di ]; then + ENABLE_DI="$_enable_di" +fi + +# Execute multiple script lines together as one +# shell_execute filename key_of_group_of_commands +shell_execute() { + if [ -f /tmp/recipe_script ] ; then + rm /tmp/recipe_script + fi + parse_yaml $YAMLFILE "_" | grep "^$2+=" > /tmp/recipe_script + sed -i -e 's|^'$2'+=("||g' /tmp/recipe_script + sed -i -e 's|")$||g' /tmp/recipe_script + bash -ex /tmp/recipe_script + rm /tmp/recipe_script +} + +APP=$_app +LOWERAPP=${APP,,} +if [ ! -z $_lowerapp ] ; then + LOWERAPP=$_lowerapp +fi + +mkdir -p ./$APP/$APP.AppDir/usr/lib +cd ./$APP/ + +if [ -d "./$APP.AppDir/" ] ; then + rm -rf ./$APP.AppDir/ +fi + +# Source the bundled functions.sh if it exists +# in "${HERE}/usr/share/pkg2appimage/functions.sh" +# or source a user-provided functions.sh if the environment +# variable FUNCTIONS_SH was set and the file exists +if [ -e "${HERE}/usr/share/pkg2appimage/functions.sh" ] ; then + . "${HERE}/usr/share/pkg2appimage/functions.sh" +elif [ -z "$FUNCTIONS_SH" ] ; then + if [ ! -e functions.sh ] ; then + wget -q https://github.com/AppImage/AppImages/raw/${PKG2AICOMMIT}/functions.sh -O ./functions.sh + fi + . ./functions.sh +else + if [ -e "$FUNCTIONS_SH" ] ; then + . "$FUNCTIONS_SH" + fi +fi + +# If there is an ARCH environment variable, then use that +# architecture to for apt-get. Not that for the AppImage to be +# operable, we also need to embed a matching AppImage runtime +# and ingredients of that architecture. Debian packages +# should be available for most architectures, e.g., oldstable +# has "armhf" +if [ ! -z "$ARCH" ] ; then + OPTIONS="$OPTIONS -o APT::Architecture=$ARCH" +fi + +if [ ! -z "${_ingredients_ghreleases[0]}" ] ; then + for GHREPO in "${_ingredients_ghreleases[@]}" ; do + wget -q "https://github.com/${GHREPO}/releases/" -O /tmp/gh-release.html + DEB=$(cat /tmp/gh-release.html | grep ".deb" | grep x86_64 | head -n 1 | cut -d '"' -f 2) + if [ -z "$DEB" ] ; then + DEB=$(cat /tmp/gh-release.html | grep ".deb" | grep amd64 | head -n 1 | cut -d '"' -f 2) + fi + if [ -z "$DEB" ] ; then + DEB=$(cat /tmp/gh-release.html | grep ".deb" | grep x64 | head -n 1 | cut -d '"' -f 2) + fi + if [ -z "$DEB" ] ; then + DEB=$(cat /tmp/gh-release.html | grep ".deb" | grep linux64 | head -n 1 | cut -d '"' -f 2) + fi + rm /tmp/gh-release.html + wget -c "https://github.com/${DEB}" + done +fi + +if [ ! -z "${_ingredients_dist}" ] ; then + rm status 2>/dev/null || true + generate_status + + # Some packages depend on packages which we do not want to bundle, + # in addition to the global excludes defined in excludedeblist. + # Use + # ingredients: + # exclude: + # - packagename + if [ ! -z "${_ingredients_exclude[0]}" ] ; then + for PACKAGE in "${_ingredients_exclude[@]}" ; do + printf "Package: $PACKAGE\nStatus: install ok installed\nArchitecture: all\nVersion: 9:999.999.999\n\n" >> status + done + fi + + # Some packages depend on an exact version of a dependency to be installed. + # Use + # ingredients: + # pretend: + # - packagename version_to_be_pretended + if [ ! -z "${_ingredients_pretend[0]}" ] ; then + for PRETEND in "${_ingredients_pretend[@]}" ; do + P_PKG=$(echo "$PRETEND" | cut -d " " -f 1) + P_VER=$(echo "$PRETEND" | cut -d " " -f 2) + cat status | tr '\n' '@' | sed -e 's|@@|\n\n|g' | sed -e 's|Package: '"$P_PKG"'@Status: install ok installed@Architecture: all@Version: 9:999.999.999|Package: '"$P_PKG"'@Status: install ok installed@Architecture: all@Version: '"$P_VER"'|g' | sed -e 's|@|\n|g' > status.temp + mv status.temp status + done + fi + + if [ -e sources.list ] ; then + rm sources.list + fi + for PPA in "${_ingredients_ppas[@]}" ; do + echo "deb http://ppa.launchpad.net/${PPA}/ubuntu/ ${_ingredients_dist} main" >> sources.list + done + for SOURCE in "${_ingredients_sources[@]}" ; do + echo "${SOURCE}" >> sources.list + done + for DEBFILE in "${_ingredients_debs[@]}" ; do + cp ${DEBFILE} . + done + # Use libcurl-slim to reduce AppImage size, thanks darealshinji + # Not really compiled on xenial but CentOS 6, https://github.com/AppImage/AppImages/issues/187 + echo "deb http://ppa.launchpad.net/djcj/libcurl-slim/ubuntu xenial main" >> sources.list + # Use gnutls-patched to have libgnutls look in various distributions' places for certificates, + # https://github.com/darealshinji/vlc-AppImage/issues/1#issuecomment-321041496 + # echo "deb http://ppa.launchpad.net/djcj/gnutls-patched/ubuntu ${_ingredients_dist} main" >> sources.list + ### echo "deb http://ppa.launchpad.net/djcj/gnutls-patched/ubuntu trusty main" >> sources.list # https://github.com/AppImage/pkg2appimage/issues/345 +fi + +if [ ! -z "${_ingredients_script[0]}" ] ; then + # Execute extra steps defined in recipe + shell_execute $YAMLFILE _ingredients_script +fi + +if [ ! -z "${_ingredients_dist}" ] ; then + # Some projects provide raw .deb files without a repository + # hence we create our own local repository as part of + # the AppImage creation process in order to "install" + # the package using apt-get as normal + if [ ! -z "${_ingredients_debs[0]}" ] ; then + for DEB in "${_ingredients_debs[@]}" ; do + if [ ! -f $(basename "$DEB") ] ; then + wget -c $DEB + fi + done + fi + scanpackages | gzip -9c > Packages.gz + echo "deb file:$(readlink -e $PWD) ./" >> sources.list + + INSTALL=$LOWERAPP + if [ ! -z "${_ingredients_package}" ] ; then + INSTALL="${_ingredients_package}" + fi + if [ ! -z "${_ingredients_packages}" ] ; then + INSTALL="" + fi + + # If packages are specifically listed, only install these, not a package with the name of the app + if [ ! -z "${_ingredients_packages[0]}" ] ; then + INSTALL=${_ingredients_packages[@]} + fi + +# apt-get -o Acquire::AllowInsecureRepositories=true -o Acquire::Languages="none" -o Acquire::AllowDowngradeToInsecureRepositories=true $OPTIONS update || true +# URLS=$(apt-get --allow-unauthenticated -o Apt::Get::AllowUnauthenticated=true $OPTIONS -y install --print-uris $INSTALL | cut -d "'" -f 2 | grep -e "^http") || true +# if which aria2c &>/dev/null; then +# dltool=aria2c +# else +# dltool=wget +# fi + +# $dltool -c -i- <<<"$URLS" + set +x + apt-get.update + + INSTALL=$(echo "${INSTALL}" | sed "s| |\n|g") + + for pkg in ${INSTALL}; do + apt-get.do-download ${pkg} + done + set -x +fi + +if [ ! -z "${_ingredients_post_script[0]}" ] ; then + # Execute extra steps defined in recipe + shell_execute $YAMLFILE _ingredients_post_script +fi + +mkdir -p ./$APP.AppDir/ +cd ./$APP.AppDir/ + +mkdir -p usr/bin usr/lib +find ../*.deb -exec dpkg-deb -X {} . \; || true + +unset LD_PRELOAD + +# Try to copy icons to standard locations where appimaged can pick them up +mkdir -p usr/share/icons/hicolor/{22x22,24x24,32x32,48x48,64x64,128x128,256x256,512x512}/apps/ +find . -path *icons* -path *22* -name "*$LOWERAPP*" -exec cp {} usr/share/icons/hicolor/22x22/apps/ \; || true +find . -path *icons* -path *24* -name "*$LOWERAPP*" -exec cp {} usr/share/icons/hicolor/24x24/apps/ \; || true +find . -path *icons* -path *32* -name "*$LOWERAPP*" -exec cp {} usr/share/icons/hicolor/32x32/apps/ \; || true +find . -path *icons* -path *48* -name "*$LOWERAPP*" -exec cp {} usr/share/icons/hicolor/48x48/apps/ \; || true +find . -path *icons* -path *64* -name "*$LOWERAPP*" -exec cp {} usr/share/icons/hicolor/64x64/apps/ \; || true +find . -path *icons* -path *128* -name "*$LOWERAPP*" -exec cp {} usr/share/icons/hicolor/128x128/apps/ \; || true +find . -path *icons* -path *256* -name "*$LOWERAPP*" -exec cp {} usr/share/icons/hicolor/256x256/apps/ \; || true +find . -path *icons* -path *512* -name "*$LOWERAPP*" -exec cp {} usr/share/icons/hicolor/512x512/apps/ \; || true + +get_icon + +if [ -z "${_union}" ] ; then + get_apprun +else +cat > AppRun <<\EOF +#!/bin/sh +HERE="$(dirname "$(readlink -f "${0}")")" +export UNION_PRELOAD="${HERE}" +export LD_PRELOAD="${HERE}/libunionpreload.so" +export PATH="${HERE}"/usr/bin/:"${HERE}"/usr/sbin/:"${HERE}"/usr/games/:"${HERE}"/bin/:"${HERE}"/sbin/:"${PATH}" +export LD_LIBRARY_PATH="${HERE}"/usr/lib/:"${HERE}"/usr/lib/i386-linux-gnu/:"${HERE}"/usr/lib/x86_64-linux-gnu/:"${HERE}"/usr/lib32/:"${HERE}"/usr/lib64/:"${HERE}"/lib/:"${HERE}"/lib/i386-linux-gnu/:"${HERE}"/lib/x86_64-linux-gnu/:"${HERE}"/lib32/:"${HERE}"/lib64/:"${LD_LIBRARY_PATH}" +export PYTHONPATH="${HERE}"/usr/share/pyshared/:"${PYTHONPATH}" +export PYTHONHOME="${HERE}"/usr/ +export XDG_DATA_DIRS="${HERE}"/usr/share/:"${XDG_DATA_DIRS}" +export PERLLIB="${HERE}"/usr/share/perl5/:"${HERE}"/usr/lib/perl5/:"${PERLLIB}" +export GSETTINGS_SCHEMA_DIR="${HERE}"/usr/share/glib-2.0/schemas/:"${GSETTINGS_SCHEMA_DIR}" +export QT_PLUGIN_PATH="${HERE}"/usr/lib/qt4/plugins/:"${HERE}"/usr/lib/i386-linux-gnu/qt4/plugins/:"${HERE}"/usr/lib/x86_64-linux-gnu/qt4/plugins/:"${HERE}"/usr/lib32/qt4/plugins/:"${HERE}"/usr/lib64/qt4/plugins/:"${HERE}"/usr/lib/qt5/plugins/:"${HERE}"/usr/lib/i386-linux-gnu/qt5/plugins/:"${HERE}"/usr/lib/x86_64-linux-gnu/qt5/plugins/:"${HERE}"/usr/lib32/qt5/plugins/:"${HERE}"/usr/lib64/qt5/plugins/:"${QT_PLUGIN_PATH}" +EXEC=$(grep -e '^Exec=.*' "${HERE}"/*.desktop | head -n 1 | cut -d "=" -f 2- | sed -e 's|%.||g') +exec ${EXEC} "$@" +EOF +chmod a+x AppRun +fi + +get_desktop + +# Prevent Qt from loading plugins from the system +unset QTPATH +QTPATH=$(find usr/lib -type d -name qt4 -or -name qt5 | sed -e 's|usr/|../|g') +if [ ! -z $QTPATH ] ; then +cat > usr/bin/qt.conf <<EOF +[Paths] +Prefix = $QTPATH +EOF +fi + +# http://www.mono-project.com/docs/advanced/assemblies-and-the-gac/ +# At runtime, Mono looks in three places for assemblies necessary +# to run a program. It first searches the location of the executing assembly. +# For this to work without setting $MONO_PATH, we need to move the +# main *.exe to usr/lib/mono/exe, because we move all "assemblies" (sic) +# there in this script + +if [ -e usr/lib/mono ] ; then + # Force all so files referenced in config files into LD_LIBRARY_PATH + find . -name "*.dll.config" -exec cat {} > temp \; + # Remove all absolute paths + sed -i -E 's|target=\"\/(.*\/)([a-z0-9].*?)>|target=\"\2>|g' temp + SONAMES=$(cat temp | cut -d '"' -f 4 | grep ".so" || true) + if [ "" != "$SONAMES" ] ; then + for SONAME in $SONAMES; do + find . -name "$SONAME" -exec mv {} usr/lib \; + done + fi + rm temp + PATH_OF_THE_EXE="usr/lib/mono/exe" + mkdir -p "$PATH_OF_THE_EXE" + # Force all dll files into PATH_OF_THE_EXE (or MONO_PATH which we would have to set) + find . -name "*.dll" -and -not -name "mscorlib.dll" -exec mv {} "$PATH_OF_THE_EXE" \; + # Edit all config files in place to remove absolute paths + find . -name "*.dll.config" -exec sed -i -E 's|target=\"\/(.*\/)([a-z0-9].*?)>|target=\"\2>|g' {} \; + # Force all config files into the PATH_OF_THE_EXE (or MONO_PATH which we would have to set) + find . -name "*.dll.config" -exec mv {} "$PATH_OF_THE_EXE" \; + # Remove gac, we are not using it since it is convoluted + rm -rf usr/lib/mono/gac/ +fi + +if [ -d "./usr/lib/x86_64-linux-gnu/gstreamer-1.0/" ] ; then + mv ./usr/lib/x86_64-linux-gnu/gstreamer-1.0/* ./usr/lib/x86_64-linux-gnu/ + rm -r ./usr/lib/x86_64-linux-gnu/gstreamer-1.0 +fi + +if [ -d "./usr/lib/x86_64-linux-gnu/pulseaudio/" ] ; then + mv ./usr/lib/x86_64-linux-gnu/pulseaudio/* ./usr/lib/x86_64-linux-gnu/ + rm -r ./usr/lib/x86_64-linux-gnu/pulseaudio +fi + +# Execute extra steps defined in recipe +if [ ! -z "${_script}" ] ; then + shell_execute $YAMLFILE _script +fi + +DESKTOP=$(find . -name '*.desktop' | sort | head -n 1) + +# desktop-file-validate complains about missing trailing semicolons for some +# keys although the format definition says that they are optional +fix_desktop "$DESKTOP" + +# Some non-distribution provided applications have an absolute +# path in the Exec= line which we remove for relocateability +if [ -z "$DESKTOP" ] ; then + echo "desktop file not found, aborting" + exit 1 +else + desktop-file-validate "$DESKTOP" || exit 1 + ORIG=$(grep -o "^Exec=.*$" "${DESKTOP}" | head -n 1| cut -d " " -f 1) + REPL=$(basename $(grep -o "^Exec=.*$" "${DESKTOP}" | head -n 1 | cut -d " " -f 1 | sed -e 's|Exec=||g')) + sed -i -e 's|'"${ORIG}"'|Exec='"${REPL}"'|g' "${DESKTOP}" +fi + +# Compile GLib schemas if the subdirectory is present in the AppImage +# AppRun has to export GSETTINGS_SCHEMA_DIR for this to work +if [ -d usr/share/glib-2.0/schemas/ ] ; then + ( cd usr/share/glib-2.0/schemas/ ; glib-compile-schemas . ) +fi + +if [ -f ../VERSION ] ; then + VERSION=$(cat ../VERSION) +else + get_version || true +fi + +# patch_usr +# Patching only the executable files seems not to be enough for some apps +if [ ! -z "${_binpatch}" ] ; then + find usr/ -type f -exec sed -i -e 's|/usr|././|g' {} \; + find usr/ -type f -exec sed -i -e 's@././/bin/env@/usr/bin/env@g' {} \; +fi + +# Don't suffer from NIH; use LD_PRELOAD to override calls to /usr paths +if [ ! -z "${_union}" ] ; then + mkdir -p usr/src/ + wget -q "https://raw.githubusercontent.com/mikix/deb2snap/master/src/preload.c" -O - | \ + sed -e 's|SNAPPY|UNION|g' | sed -e 's|SNAPP|UNION|g' | sed -e 's|SNAP|UNION|g' | \ + sed -e 's|snappy|union|g' > usr/src/libunionpreload.c + gcc -shared -fPIC usr/src/libunionpreload.c -o libunionpreload.so -ldl -DUNION_LIBNAME=\"libunionpreload.so\" + strip libunionpreload.so +fi + +delete_blacklisted + +if [ "$ENABLE_DI" = "yes" ] ; then + get_desktopintegration $LOWERAPP +fi + +# Fix desktop files that have file endings for icons +sed -i -e 's|\.png||g' *.desktop || true +sed -i -e 's|\.svg||g' *.desktop || true +sed -i -e 's|\.svgz||g' *.desktop || true +sed -i -e 's|\.xpm||g' *.desktop || true + +# Setting PYTHONHOME instead +# Fix Python imports, +# https://github.com/AppImage/AppImages/issues/172 +# SITECUSTOMIZEFILES=$(find . -name "sitecustomize.py") +# for SITECUSTOMIZEFILE in $SITECUSTOMIZEFILES ; do +# rm $SITECUSTOMIZEFILE # Remove symlinks, replace by files +# cat > $SITECUSTOMIZEFILE <<\EOF +# import sys,os +# if sys.version_info[0] < 3: +# prefix = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(sys.path[0])))) +# sys.path = [ prefix+s for s in sys.path if not s.startswith(prefix) ] +# EOF +# done + +# Execute extra steps defined in recipe +if [ ! -z "${_post_script[0]}" ] ; then + shell_execute $YAMLFILE _post_script +fi + +# Go out of AppImage +cd .. + +if [ -z "${_updateinformation}" ] ; then + generate_type2_appimage +else + generate_type2_appimage -u "${_updateinformation}" +fi + +ls -lh ../out/*.AppImage diff --git a/arch/linux/bootstrap.sh b/arch/linux/bootstrap.sh old mode 100644 new mode 100755 index b2a874495bf99af946a7283a898f33404f9b81fd..37003997b3b606816d47b1e26a6174059f716636 --- a/arch/linux/bootstrap.sh +++ b/arch/linux/bootstrap.sh @@ -1,12 +1,11 @@ #!/bin/bash -# Yarn -curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - -echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list - # System tools -apt-get update -apt-get install --yes git curl yarn python-minimal zip +apt update +# Deps need for tar.gz and .deb build +apt install --yes git curl python3-minimal zip fakeroot +# Deps need for AppImage build +apt install --yes imagemagick desktop-file-utils binutils # User installation sudo su vagrant -c "bash /vagrant/user-bootstrap.sh" diff --git a/arch/linux/build-deb.sh b/arch/linux/build-deb.sh old mode 100644 new mode 100755 index 2fd4a9569005018ecd4cef87b784bf1b760fdbac..19f639fcea0b14b0205cd48b0eaac9db48dff798 --- a/arch/linux/build-deb.sh +++ b/arch/linux/build-deb.sh @@ -10,7 +10,7 @@ export NVM_DIR="$HOME/.nvm" # Prepare NVER=$(node -v) -NW_VERSION=0.42.2 +NW_VERSION=0.83.0 NW_RELEASE=v${NW_VERSION} NW_BASENAME=nwjs #NW_BASENAME=nwjs-sdk @@ -37,7 +37,7 @@ if [ ! -d "${DOWNLOADS}/${PROJECT_NAME}_src" ]; then cd ${PROJECT_NAME}_src else cd ${PROJECT_NAME}_src - git fetch origin + git fetch origin --tags git reset HEAD fi @@ -58,10 +58,10 @@ fi if [ ! -d "${DOWNLOADS}/${WEB_ZIP_FILE}" ]; then cd ${DOWNLOADS} echo "Downloading ${WEB_ZIP_FILE} into ${DOWNLOADS} ..." - wget -kL "${REPO_PUBLIC_URL}/releases/download/v${PROJECT_VERSION}/${WEB_ZIP_FILE}" + wget -q "${REPO_PUBLIC_URL}/releases/download/v${PROJECT_VERSION}/${WEB_ZIP_FILE}" - rm -rf ${PROJECT_NAME} && mkdir -p ${PROJECT_NAME} ||Â exit 1 - unzip -o ${WEB_ZIP_FILE} -d "${DOWNLOADS}/${PROJECT_NAME}" + rm -rf ${PROJECT_NAME} && mkdir -p ${PROJECT_NAME} || exit 1 + unzip -q -o ${WEB_ZIP_FILE} -d "${DOWNLOADS}/${PROJECT_NAME}" rm ${WEB_ZIP_FILE} fi @@ -69,8 +69,8 @@ fi if [[ ! -d "${DOWNLOADS}/${NW}" ]]; then cd ${DOWNLOADS} echo "Downloading ${NW_GZ}..." - wget -kL http://dl.nwjs.io/${NW_RELEASE}/${NW_GZ} - tar xvzf ${NW_GZ} + wget -q "http://dl.nwjs.io/${NW_RELEASE}/${NW_GZ}" + tar xzf ${NW_GZ} fi # ----------- @@ -78,15 +78,16 @@ fi # ----------- # Clean previous artifacts -rm -rf "/vagrant/${OUTPUT_BASENAME}.deb" rm -rf "/vagrant/${OUTPUT_BASENAME}.tar.gz" +rm -rf "/vagrant/${OUTPUT_BASENAME}.deb" +rm -rf "/vagrant/${OUTPUT_BASENAME}.AppImage" # Clean previous releases directory rm -rf "${RELEASES}" mkdir -p "${RELEASES}" # Releases builds -mv "${DOWNLOADS}/${PROJECT_NAME}" "${RELEASES}/" && cd "${RELEASES}/${PROJECT_NAME}" ||Â exit 1 +mv "${DOWNLOADS}/${PROJECT_NAME}" "${RELEASES}/" && cd "${RELEASES}/${PROJECT_NAME}" || exit 1 # Remove git files rm -Rf .git @@ -112,10 +113,10 @@ cp -r "${RELEASES}/${PROJECT_NAME}" "${RELEASES}/desktop_release/nw/" ls "${RELEASES}/desktop_release/nw/" # Copy Cesium desktop sources files -cp -r /vagrant/package.json "${RELEASES}/desktop_release/nw/" -cp -r /vagrant/yarn.lock "${RELEASES}/desktop_release/nw/" cp -r /vagrant/cesium-desktop.js "${RELEASES}/desktop_release/nw" cp -r /vagrant/splash.html "${RELEASES}/desktop_release/nw" +cp -r /vagrant/package.json "${RELEASES}/desktop_release/nw/" +cp -r /vagrant/package-lock.json "${RELEASES}/desktop_release/nw/" # Injection sed -i 's/<script src="config.js"[^>]*><\/script>/<script src="config.js"><\/script><script src="..\/cesium-desktop.js"><\/script>/' ${RELEASES}/desktop_release/nw/${PROJECT_NAME}/index*.html || exit 1 @@ -125,9 +126,8 @@ cd "${RELEASES}/desktop_release/nw" npm install # Releases -cp -R "${RELEASES}/desktop_release" "${RELEASES}/desktop_release_tgz" -cd "${RELEASES}/desktop_release_tgz" -tar czf /vagrant/${OUTPUT_BASENAME}.tar.gz * --exclude ".git" --exclude "coverage" --exclude "test" +cd "${RELEASES}/desktop_release" +tar czf "/vagrant/${OUTPUT_BASENAME}.tar.gz" * # ------------------------------------------------- # Build Desktop version .deb @@ -138,15 +138,30 @@ cp -r "/vagrant/package" "${RELEASES}/${PROJECT_NAME}-x64" || exit 1 mkdir -p "${RELEASES}/${PROJECT_NAME}-x64/opt/${PROJECT_NAME}/" || exit 1 chmod 755 ${RELEASES}/${PROJECT_NAME}-x64/DEBIAN/post* chmod 755 ${RELEASES}/${PROJECT_NAME}-x64/DEBIAN/pre* -sed -i "s/Version:.*/Version:${PROJECT_VERSION}/g" ${RELEASES}/${PROJECT_NAME}-x64/DEBIAN/control || exit 1 +sed -i "s/Version:.*/Version: ${PROJECT_VERSION}/g" "${RELEASES}/${PROJECT_NAME}-x64/DEBIAN/control" || exit 1 +gzip --best -n ${RELEASES}/${PROJECT_NAME}-x64/usr/share/doc/${PROJECT_NAME}-desktop/changelog.* || exit 1 + cd "${RELEASES}/desktop_release/nw" || exit 1 zip -qr "${RELEASES}/${PROJECT_NAME}-x64/opt/${PROJECT_NAME}/nw.nwb" * -sed -i "s/Package: .*/Package: ${PROJECT_NAME}-desktop/g" "${RELEASES}/${PROJECT_NAME}-x64/DEBIAN/control" || exit 1 -cd ${RELEASES}/ || exit 1 +cd "${RELEASES}/" || exit 1 fakeroot dpkg-deb --build "${PROJECT_NAME}-x64" || exit 1 mv "${PROJECT_NAME}-x64.deb" "/vagrant/${OUTPUT_BASENAME}.deb" || exit 1 +rm -rf "${RELEASES}/${PROJECT_NAME}-x64" || exit 1 + +# ------------------------------------------------- +# Build Desktop version .AppImage +# ------------------------------------------------- + +cp -f /vagrant/appimage/* "${RELEASES}/" || exit 1 +cp -f /vagrant/${OUTPUT_BASENAME}.tar.gz "${RELEASES}/" || exit 1 +cd "${RELEASES}" +bash -ex ./pkg2appimage appimage.yml || exit 1 + +OUTPUT_APPIMAGE=$(ls "./out/*.AppImage" | sort -V | tail -n 1) +mv "${OUTPUT_APPIMAGE}" "/vagrant/${OUTPUT_BASENAME}.AppImage" || exit 1 + # ------------------------------------------------- # Build Desktop sha256 files # ------------------------------------------------- @@ -154,3 +169,10 @@ mv "${PROJECT_NAME}-x64.deb" "/vagrant/${OUTPUT_BASENAME}.deb" || exit 1 cd "/vagrant" || exit 1 sha256sum ${OUTPUT_BASENAME}.tar.gz > ${OUTPUT_BASENAME}.tar.gz.sha256 sha256sum ${OUTPUT_BASENAME}.deb > ${OUTPUT_BASENAME}.deb.sha256 +sha256sum ${OUTPUT_BASENAME}.AppImage > ${OUTPUT_BASENAME}.AppImage.sha256 + +# ------------------------------------------------- +# Clean release files +# ------------------------------------------------- + +rm -rf "${RELEASES}" diff --git a/arch/linux/package/DEBIAN/conffiles b/arch/linux/package/DEBIAN/conffiles new file mode 100644 index 0000000000000000000000000000000000000000..cd7e3f611e2ef561f2e58b1a91c417921ac799aa --- /dev/null +++ b/arch/linux/package/DEBIAN/conffiles @@ -0,0 +1 @@ +/usr/share/metainfo/cesium.metainfo.xml diff --git a/arch/linux/package/DEBIAN/control b/arch/linux/package/DEBIAN/control index 8116e66d2fb7e3ccc3709ae8cd5e3ccd775f5689..b29634ef88fc4d696d018f1af118279f6226291c 100644 --- a/arch/linux/package/DEBIAN/control +++ b/arch/linux/package/DEBIAN/control @@ -1,12 +1,17 @@ -Package: cesium -Version: 1.4.0 -Section: misc -Priority: optional +Package: cesium-desktop +Version: 1.7.12 Architecture: all -Installed-Size: 235351 Maintainer: Duniter Team <contact@duniter.org> +Installed-Size: 235351 +Depends: libgconf-2-4 (>= 3.2.0), libatomic1 +Conflicts: cesium, cesium-desktop +Replaces: cesium, cesium-desktop +Provides: cesium-desktop +Section: contrib/misc +Priority: optional +Homepage: https://www.cesium.app +Package-Type: deb Description: Cesium Wallet for G1 currency Cesium is a wallet (client-software) for G1 a libre currency. Please visit https://www.duniter.org for more information on G1 and libre currencies. -Depends: libgconf-2-4 (>= 3.2.0), libatomic1 -Homepage: https://www.cesium.app + License AGPL-3 diff --git a/arch/linux/package/DEBIAN/postinst b/arch/linux/package/DEBIAN/postinst index 083d22b83ba6bbaf1514181edccb2587dc457a94..f23125c1e8e766273e08110dd4f4dc5b67acad63 100755 --- a/arch/linux/package/DEBIAN/postinst +++ b/arch/linux/package/DEBIAN/postinst @@ -1,34 +1,33 @@ #!/bin/bash CESIUM_ROOT=/opt/cesium -CESIUM_G1_TEST=/opt/cesium-g1-test -CESIUM_NW=$CESIUM_ROOT/nw - -if [[ -f $CESIUM_ROOT/nw.nwb ]]; then - unzip -q -d $CESIUM_NW $CESIUM_ROOT/nw.nwb - chmod +x $CESIUM_NW/nw $CESIUM_NW/lib $CESIUM_NW/locales - ln -s $CESIUM_NW/nw /usr/bin/cesium -fi +CESIUM_TEST=/opt/cesium-test chmod +r -R $CESIUM_ROOT +if [[ -f "$CESIUM_ROOT/nw.nwb" ]]; then + echo "Unpack nw.nwb ..." + unzip -q -d "$CESIUM_ROOT/nw" "$CESIUM_ROOT/nw.nwb" + chmod +x $CESIUM_ROOT/nw/nw $CESIUM_ROOT/nw/lib $CESIUM_ROOT/nw/locales + ln -s $CESIUM_ROOT/nw/nw /usr/bin/cesium +fi + # Create a Cesium for G1-Test cd /opt -cp -r "$CESIUM_ROOT" "$CESIUM_G1_TEST" -cd "$CESIUM_G1_TEST/nw/" -sed -i 's/"cesium"/"cesium-g1-test"/g' package.json -ln -s "$CESIUM_G1_TEST/nw/nw" /usr/bin/cesium-g1-test +cp -r "$CESIUM_ROOT" "$CESIUM_TEST" +cd "$CESIUM_TEST/nw/" +sed -i 's/"cesium"/"cesium-test"/g' package.json +ln -s "$CESIUM_TEST/nw/nw" /usr/bin/cesium-test # Change title of Cesium test sed -i 's/Cesium/Cesium Äž1-Test/g' splash.html sed -i 's/Cesium/Cesium Äž1-Test/g' cesium/index.html -#sed -i 's/config\.js/config-test.js/g' cesium/index.html -sed -i 's/g1\.duniter/g1-test.duniter/g' cesium/config.js -sed -i 's/g1\.data/g1-test.data/g' cesium/config.js -sed -i 's/"g1"/"g1-test"/g' cesium-desktop.js -sed -i 's/.config\/cesium\//.config\/cesium-g1-test\//g' cesium-desktop.js +sed -i 's/config\.js/config-test.js/g' cesium/index.html +sed -i 's/"cesium"/"cesium-test"/g' cesium-desktop.js +sed -i 's/"Cesium"/"Cesium Äž1-Test"/g' cesium-desktop.js # Change title of Cesium classic cd "$CESIUM_ROOT/nw/" sed -i 's/Cesium/Cesium Äž1/g' splash.html sed -i 's/Cesium/Cesium Äž1/g' cesium/index.html +sed -i 's/"Cesium"/"Cesium Äž1"/g' cesium-desktop.js diff --git a/arch/linux/package/DEBIAN/prerm b/arch/linux/package/DEBIAN/prerm index ec1572df4c25254e9f9fa5e0ac967b2c471ab339..34290dd55bb68bca05353d7747807e8c0b07ada6 100755 --- a/arch/linux/package/DEBIAN/prerm +++ b/arch/linux/package/DEBIAN/prerm @@ -1,7 +1,6 @@ #!/bin/bash [[ -f /usr/bin/cesium ]] && rm /usr/bin/cesium -[[ -f /usr/bin/cesium-g1-test ]] && rm /usr/bin/cesium-g1-test -[[ -f /usr/bin/cesium-desktop ]] && rm -f /usr/bin/cesium-desktop +[[ -f /usr/bin/cesium-test ]] && rm /usr/bin/cesium-test [[ -d /opt/cesium ]] && rm -Rf /opt/cesium -[[ -d /opt/cesium-g1-test ]] && rm -Rf /opt/cesium-g1-test +[[ -d /opt/cesium-test ]] && rm -Rf /opt/cesium-test diff --git a/arch/linux/package/usr/share/applications/cesium-g1-test.desktop b/arch/linux/package/usr/share/applications/cesium-test.desktop similarity index 84% rename from arch/linux/package/usr/share/applications/cesium-g1-test.desktop rename to arch/linux/package/usr/share/applications/cesium-test.desktop index 06784418a353c397d9cd6b5886fb7e8a10528afa..5ce5dc48bba522d503812caf798ca96e62b76c46 100644 --- a/arch/linux/package/usr/share/applications/cesium-g1-test.desktop +++ b/arch/linux/package/usr/share/applications/cesium-test.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Name=Cesium Äž1-Test -Exec=cesium-g1-test +Exec=cesium-test Icon=/opt/cesium/nw/cesium/img/logo.png Type=Application Categories=Utility diff --git a/arch/linux/package/usr/share/applications/cesium.desktop b/arch/linux/package/usr/share/applications/cesium.desktop index e47053f3e70fddbda99a5b67e08fe2fd4e6a927e..6e21e9667d3d3429635238a9b9647d8285c699a5 100644 --- a/arch/linux/package/usr/share/applications/cesium.desktop +++ b/arch/linux/package/usr/share/applications/cesium.desktop @@ -1,6 +1,6 @@ [Desktop Entry] +Type=Application Name=Cesium Äž1 Exec=cesium Icon=/opt/cesium/nw/cesium/img/logo.png -Type=Application Categories=Utility diff --git a/arch/linux/package/usr/share/doc/cesium-desktop/changelog.Debian b/arch/linux/package/usr/share/doc/cesium-desktop/changelog.Debian new file mode 100644 index 0000000000000000000000000000000000000000..80817c41b202235b90bbdc3b807ec009ac0a181c --- /dev/null +++ b/arch/linux/package/usr/share/doc/cesium-desktop/changelog.Debian @@ -0,0 +1,6 @@ +cesium-desktop (1.7.12) stable; urgency=low + + [ Duniter Team ] + * Upgrade to NW.js v0.83.0 (Chromium 120) + + -- Duniter Team <contact@duniter.org> Wed, 3 Jan 2024 11:30:00 +0100 diff --git a/arch/linux/package/usr/share/doc/cesium-desktop/copyright b/arch/linux/package/usr/share/doc/cesium-desktop/copyright new file mode 100644 index 0000000000000000000000000000000000000000..2035c6e1c3af8b1507eddb89a6c2b8fa671a204f --- /dev/null +++ b/arch/linux/package/usr/share/doc/cesium-desktop/copyright @@ -0,0 +1,14 @@ +cesium-desktop + +Copyright: 2024 Duniter Team <contact@duniter.org> + +2024-01-01 + +The entire code base may be distributed under the terms of the GNU General +Public License (GPL), which appears immediately below. Alternatively, all +of the source code as any code derived from that code may instead be +distributed under the GNU Lesser General Public License (LGPL), at the +choice of the distributor. The complete text of the LGPL appears at the +bottom of this file. + +See /usr/share/common-licenses/GPL-3 diff --git a/arch/linux/package/usr/share/doc/cesium/copyright b/arch/linux/package/usr/share/doc/cesium/copyright deleted file mode 100644 index 4b006016d087f0ad09d02714db29c724b4b39412..0000000000000000000000000000000000000000 --- a/arch/linux/package/usr/share/doc/cesium/copyright +++ /dev/null @@ -1,7 +0,0 @@ -Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: Cesium -Upstream-Contact: Duniter Team <contact@duniter.org> -Source: https://git.duniter.org/clients/cesium-grp/cesium -Copyright: 2017-2020 Benoit Lavenier -License: GPL-3+ -Files: * diff --git a/arch/linux/package/usr/share/metainfo/cesium.metainfo.xml b/arch/linux/package/usr/share/metainfo/cesium.metainfo.xml new file mode 100644 index 0000000000000000000000000000000000000000..570d263d644f74cf14b745498a4fa31d7b8b3488 --- /dev/null +++ b/arch/linux/package/usr/share/metainfo/cesium.metainfo.xml @@ -0,0 +1,62 @@ +<?xml version="1.0" encoding="UTF-8"?> +<component type="desktop"> + <id>cesium-desktop</id> + <launchable type="desktop-id">cesium.desktop</launchable> + <metadata_license>GPL-3.0+ o GFDL-1.3-only</metadata_license> + <project_license>GPL-3.0+</project_license> + + <name>Cesium</name> + <summary>Wallet for Äž1 Currency</summary> + <description> + <p> + Cesium is a wallet (client-software) for Äž1, a libre currency. It allows + users to manage their G1 accounts, send and receive transactions, and view + the history of their operations. Please visit https://www.duniter.org for + more information on G1 and libre currencies. + </p> + </description> + + <screenshots> + <screenshot type="default"> + <image>https://cesium.app/i18n/en_GB/contents/home/Cesium-G1-mockup.png</image> + <caption>Main interface</caption> + </screenshot> + <screenshot> + <image>https://cesium.app/i18n/en_GB/contents/features/signup.png</image> + <caption>Create your account</caption> + </screenshot> + <screenshot> + <image>https://cesium.app/i18n/en_GB/contents/features/receive-libre-money.png</image> + <caption>Receive</caption> + </screenshot> + <screenshot> + <image>https://cesium.app/i18n/en_GB/contents/features/send-libre-money.png</image> + <caption>Send</caption> + </screenshot> + </screenshots> + + <url type="homepage">https://cesium.app</url> + <url type="bugtracker">https://git.duniter.org/clients/cesium-grp/cesium/issues</url> + <url type="help">https://forum.duniter.org/c/support/cesium/37</url> + <url type="donation">https://cesium.app/en/merci</url> + <project_group>DUNITER</project_group> + <developer_name>Duniter Team</developer_name> + <update_contact>contact@duniter.org</update_contact> + <content_rating type="oars-1.1" /> + + <categories> + <category>Utility</category> + <category>Finance</category> + </categories> + + <releases> + <release version="1.7.12" date="2024-01-01"> + <description> + <p>New features in Cesium 1.7.12:</p> + <ul> + <li>Upgrade to NW.js v0.83.0 (Chromium 120).</li> + </ul> + </description> + </release> + </releases> +</component> diff --git a/arch/linux/user-bootstrap.sh b/arch/linux/user-bootstrap.sh old mode 100644 new mode 100755 index 22d46e07b89427e90b9ed988c591d51186d8aa92..51338d1b05e91c48b36cc93e05fc36ffc2722192 --- a/arch/linux/user-bootstrap.sh +++ b/arch/linux/user-bootstrap.sh @@ -1,12 +1,12 @@ #!/bin/bash # NVM -curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm # Node.js -nvm install 10 +nvm install 16 # node-pre-gyp npm install -g nw-gyp node-pre-gyp diff --git a/release.sh b/release.sh index 6888a7339256907c57f4b67d696f547baa12fb9e..3d00c3a58ff2817ea7f7d05dcb56a4bb434a142c 100755 --- a/release.sh +++ b/release.sh @@ -3,7 +3,7 @@ PROJECT_NAME=cesium REPO="duniter/cesium" REPO_PUBLIC_URL="https://github.com/${REPO}" -NODEJS_VERSION=10 +NODEJS_VERSION=16 TAG="$1" TAG_NAME="v$1" ARCH=`uname -m` @@ -23,9 +23,7 @@ if [[ -z $TAG ]]; then echo "" echo "Examples:" echo "" - echo " release.sh 1.2.3" - echo " release.sh 1.4.0" - echo " release.sh 1.4.1" + echo " release.sh 1.7.12" echo "" exit 1 fi @@ -78,16 +76,14 @@ ZIP_BASENAME="${PROJECT_NAME}-${REMOTE_TAG}-web" if [[ ! -f "${DOWNLOADS}/${ZIP_BASENAME}.zip" ]]; then echo "Downloading ${PROJECT_NAME} web release..." mkdir -p ${DOWNLOADS} && cd ${DOWNLOADS} || exit 1 - wget "${REPO_PUBLIC_URL}/releases/download/${REMOTE_TAG}/${ZIP_BASENAME}.zip" - if [[ $? -ne 0 ]]; then - exit 2 - fi + wget -q "${REPO_PUBLIC_URL}/releases/download/${REMOTE_TAG}/${ZIP_BASENAME}.zip" || exit 2 cd ${ROOT} fi if [[ "_$EXPECTED_ASSETS" == "_" ]]; then - EXPECTED_ASSETS="${PROJECT_NAME}-desktop-$REMOTE_TAG-linux-x64.deb -${PROJECT_NAME}-desktop-$REMOTE_TAG-linux-x64.tar.gz + EXPECTED_ASSETS="${PROJECT_NAME}-desktop-$REMOTE_TAG-linux-x64.tar.gz +${PROJECT_NAME}-desktop-$REMOTE_TAG-linux-x64.deb +${PROJECT_NAME}-desktop-$REMOTE_TAG-linux-x64.AppImage ${PROJECT_NAME}-desktop-$REMOTE_TAG-windows-x64.exe" fi @@ -104,7 +100,7 @@ for ASSET_BASENAME in $EXPECTED_ASSETS; do if [[ -z `echo $ASSETS | grep -F "$ASSET_BASENAME"` ]]; then # Debian - if [[ $ASSET_BASENAME == *"linux-x64.deb" ]] || [[ $ASSET_BASENAME == *"linux-x64.tar.gz" ]]; then + if [[ $ASSET_BASENAME == *"linux-x64.deb" ]] || [[ $ASSET_BASENAME == *"linux-x64.tar.gz" ]] || [[ $ASSET_BASENAME == *"linux-x64.AppImage" ]]; then if [[ $ARCH == "x86_64" ]]; then ASSET_PATH="$PWD/arch/linux/$ASSET_BASENAME" @@ -125,6 +121,7 @@ for ASSET_BASENAME in $EXPECTED_ASSETS; do # Upload sha256 (if exists) if [[ -f "${ASSET_PATH}.sha256" ]]; then + echo "--- Uploading '${ASSET_BASENAME}.sha256' to github ..." node ./scripts/upload-release.js ${REMOTE_TAG} ${ASSET_PATH}.sha256 fi else diff --git a/src/package.json b/src/package.json index f395e572f3c6aad59de76e5983eb4475dbd8bcf5..7ba40870de131fc650e4c0717d66c17d2208c8e7 100644 --- a/src/package.json +++ b/src/package.json @@ -17,10 +17,6 @@ "dependencies": { "bs58": "^4.0.1", "cli-color": "^2.0.3", - "js-yaml": "^3.14.1", - "co": "^4.6.0", - "request": "^2.88.2", - "request-promise": "^4.2.6", - "stringstream": "^0.0.6" + "js-yaml": "^3.14.1" } } diff --git a/src/yarn.lock b/src/yarn.lock deleted file mode 100644 index f3573298589a08b4e605c75a94ba2339e909b092..0000000000000000000000000000000000000000 --- a/src/yarn.lock +++ /dev/null @@ -1,532 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -ajv@^6.5.5: - version "6.12.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" - integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-regex@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" - integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== - -base-x@^3.0.2: - version "3.0.8" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.8.tgz#1e1106c2537f0162e8b52474a557ebb09000018d" - integrity sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA== - dependencies: - safe-buffer "^5.0.1" - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -bluebird@^3.5.0: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bs58@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= - dependencies: - base-x "^3.0.2" - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -cli-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-2.0.0.tgz#11ecfb58a79278cf6035a60c54e338f9d837897c" - integrity sha512-a0VZ8LeraW0jTuCkuAGMNufareGHhyZU9z8OGsW0gXd1hZGi1SRuNRXdbGkraBBKnhyUhyebFWnRbp+dIn0f0A== - dependencies: - ansi-regex "^2.1.1" - d "^1.0.1" - es5-ext "^0.10.51" - es6-iterator "^2.0.3" - memoizee "^0.4.14" - timers-ext "^0.1.7" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -es5-ext@^0.10.35, es5-ext@^0.10.45, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.51, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: - version "0.10.53" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" - integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.3" - next-tick "~1.0.0" - -es6-iterator@^2.0.3, es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-symbol@^3.1.1, es6-symbol@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - -es6-weak-map@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" - integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== - dependencies: - d "1" - es5-ext "^0.10.46" - es6-iterator "^2.0.3" - es6-symbol "^3.1.1" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -event-emitter@^0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= - dependencies: - d "1" - es5-ext "~0.10.14" - -ext@^1.1.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" - integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== - dependencies: - type "^2.0.0" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fast-deep-equal@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" - integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== - dependencies: - ajv "^6.5.5" - har-schema "^2.0.0" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -is-promise@^2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" - integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -js-yaml@^3.13.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -lodash@^4.17.15: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== - -lru-queue@0.1: - version "0.1.0" - resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" - integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM= - dependencies: - es5-ext "~0.10.2" - -memoizee@^0.4.14: - version "0.4.14" - resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.14.tgz#07a00f204699f9a95c2d9e77218271c7cd610d57" - integrity sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg== - dependencies: - d "1" - es5-ext "^0.10.45" - es6-weak-map "^2.0.2" - event-emitter "^0.3.5" - is-promise "^2.1" - lru-queue "0.1" - next-tick "1" - timers-ext "^0.1.5" - -mime-db@1.44.0: - version "1.44.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" - integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== - -mime-types@^2.1.12, mime-types@~2.1.19: - version "2.1.27" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" - integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== - dependencies: - mime-db "1.44.0" - -next-tick@1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" - integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== - -next-tick@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -request-promise-core@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" - integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== - dependencies: - lodash "^4.17.15" - -request-promise@^4.2.5: - version "4.2.5" - resolved "https://registry.yarnpkg.com/request-promise/-/request-promise-4.2.5.tgz#186222c59ae512f3497dfe4d75a9c8461bd0053c" - integrity sha512-ZgnepCykFdmpq86fKGwqntyTiUrHycALuGggpyCZwMvGaZWgxW6yagT0FHkgo5LzYvOaCNvxYwWYIjevSH1EDg== - dependencies: - bluebird "^3.5.0" - request-promise-core "1.1.3" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" - -request@^2.88.2: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -safe-buffer@^5.0.1, safe-buffer@^5.1.2: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== - -safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stealthy-require@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= - -stringstream@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.6.tgz#7880225b0d4ad10e30927d167a1d6f2fd3b33a72" - integrity sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA== - -timers-ext@^0.1.5, timers-ext@^0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" - integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== - dependencies: - es5-ext "~0.10.46" - next-tick "1" - -tough-cookie@^2.3.3, tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" - integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0"