1
0
Files
electrum/contrib/build-linux/sdist/make_sdist.sh
2022-08-15 12:00:00 +00:00

74 lines
2.4 KiB
Bash
Executable File

#!/bin/bash
set -e
PROJECT_ROOT="$(dirname "$(readlink -e "$0")")/../../.."
CONTRIB="$PROJECT_ROOT/contrib"
CONTRIB_SDIST="$CONTRIB/build-linux/sdist"
DISTDIR="$PROJECT_ROOT/dist"
LOCALE="$PROJECT_ROOT/electrum/locale"
. "$CONTRIB"/build_tools_util.sh
# note that at least py3.7 is needed, to have https://bugs.python.org/issue30693
python3 --version || fail "python interpreter not found"
break_legacy_easy_install
# upgrade to modern pip so that it knows the flags we need.
# (make_packages will later install a pinned version of pip in a venv)
python3 -m pip install --upgrade pip
if ([ "$OMIT_UNCLEAN_FILES" != 1 ]); then
"$CONTRIB"/make_packages || fail "make_packages failed"
fi
git submodule update --init
(
# By default, include both source (.po) and compiled (.mo) locale files in the source dist.
# Set option OMIT_UNCLEAN_FILES=1 to exclude the compiled locale files
# see https://askubuntu.com/a/144139 (also see MANIFEST.in)
rm -rf "$LOCALE"
cp -r "$CONTRIB/deterministic-build/electrum-locale/locale/" "$LOCALE/"
if ([ "$OMIT_UNCLEAN_FILES" != 1 ]); then
"$CONTRIB/build_locale.sh" "$LOCALE"
fi
)
if ([ "$OMIT_UNCLEAN_FILES" = 1 ]); then
rm "$PROJECT_ROOT/electrum/paymentrequest_pb2.py"
fi
(
cd "$PROJECT_ROOT"
find -exec touch -h -d '2000-11-11T11:11:11+00:00' {} +
# note: .zip sdists would not be reproducible due to https://bugs.python.org/issue40963
if ([ "$OMIT_UNCLEAN_FILES" = 1 ])
then PY_DISTDIR="dist/_sourceonly" # The DISTDIR variable of this script is only used to find where the output is *finally* placed.
else PY_DISTDIR="dist"
fi
TZ=UTC faketime -f '2000-11-11 11:11:11' python3 setup.py --quiet sdist --format=gztar --dist-dir="$PY_DISTDIR"
if ([ "$OMIT_UNCLEAN_FILES" = 1 ]); then
for fn in "$DISTDIR/_sourceonly/"*; do
# Since ELECTRUM_VERSION is not available to us in this script, we have to use a regex.
# Expression 1: Electrum-X.Y.Z.tar.gz -> Electrum-sourceonly-X.Y.Z.tar.gz
# Capture group \1 = Electrum
# Capture group \2 = X.Y.Z.tar.gz
# Expression 2: dist/_sourceonly/X.tar.gz -> dist/X.tar.gz
mv "$fn" $(sed \
-e 's/\(.*\)-\([^-]*\)/\1-sourceonly-\2/' \
-e 's/\/_sourceonly//' \
<<< "$fn")
done
rmdir "$PY_DISTDIR"
fi
)
info "done."
ls -la "$DISTDIR"
sha256sum "$DISTDIR"/*