From d35a68d2d1b2220f25f63d7b1298b419ea76d318 Mon Sep 17 00:00:00 2001 From: SomberNight Date: Mon, 19 Jul 2021 21:48:47 +0200 Subject: [PATCH] release.sh: fix bugs discovered during last release --- contrib/osx/compare_dmg | 1 + contrib/release.sh | 25 +++++++++++++++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/contrib/osx/compare_dmg b/contrib/osx/compare_dmg index 7f4e0bcd5..c617e0dc6 100755 --- a/contrib/osx/compare_dmg +++ b/contrib/osx/compare_dmg @@ -46,6 +46,7 @@ echo "Applying extracted signatures to unsigned app..." QUIET="1" "$CONTRIB_OSX/apply_sigs.sh" "$DMG_UNSIGNED_UNPACKED"/Electrum.app mac_extracted_sigs.tar.gz rm mac_extracted_sigs.tar.gz +rm -rf "$DMG_UNSIGNED_UNPACKED" diff=$(diff -qr "$WORKSPACE/signed_app" "$DMG_RELEASE_UNPACKED") || diff="diff errored" echo $diff diff --git a/contrib/release.sh b/contrib/release.sh index 71f3e04eb..2e9e73706 100755 --- a/contrib/release.sh +++ b/contrib/release.sh @@ -48,7 +48,7 @@ fi GPGUSER=$1 if [ -z "$GPGUSER" ]; then - fail "usage: release.sh gpg_username" + fail "usage: $0 gpg_username" fi export SSHUSER="$GPGUSER" @@ -106,17 +106,21 @@ if test -f "dist/$win1"; then else pushd . ./contrib/build-wine/build.sh + cd contrib/build-wine/ if [ ! -z "$RELEASEMANAGER" ] ; then - cd contrib/build-wine/ ./sign.sh cp ./signed/*.exe "$PROJECT_ROOT/dist/" + else + cp ./dist/*.exe "$PROJECT_ROOT/dist/" fi popd fi # android apk1="Electrum-$VERSION.0-armeabi-v7a-release.apk" +apk1_unsigned="Electrum-$VERSION.0-armeabi-v7a-release-unsigned.apk" apk2="Electrum-$VERSION.0-arm64-v8a-release.apk" +apk2_unsigned="Electrum-$VERSION.0-arm64-v8a-release-unsigned.apk" if test -f "dist/$apk1"; then info "file exists: $apk1" else @@ -124,12 +128,21 @@ else ./contrib/android/build.sh release else ./contrib/android/build.sh release-unsigned + mv "$apk1_unsigned" "$apk1" + mv "$apk2_unsigned" "$apk2" fi fi # the macos binary is built on a separate machine. +# the file that needs to be copied over is the codesigned release binary (regardless of builder role) dmg=electrum-$VERSION.dmg -test -f "dist/$dmg" || fail "dmg is missing, aborting. Please build the dmg on a mac and copy it over." +if ! test -f "dist/$dmg"; then + if [ ! -z "$RELEASEMANAGER" ] ; then # RM + fail "dmg is missing, aborting. Please build and codesign the dmg on a mac and copy it over." + else # other builders + fail "dmg is missing, aborting. Please build the unsigned dmg on a mac, compare it with file built by RM, and if matches, copy RM's dmg." + fi +fi # now that we have all binaries, if we are the RM, sign them. if [ ! -z "$RELEASEMANAGER" ] ; then @@ -188,12 +201,12 @@ if [ -z "$RELEASEMANAGER" ] ; then # compare downloaded binaries against ones we built cmp --silent "$tarball" "$PROJECT_ROOT/dist/$tarball" || fail "files are different. tarball." cmp --silent "$appimage" "$PROJECT_ROOT/dist/$appimage" || fail "files are different. appimage." - mkdir --parents "$CONTRIB/build-wine/signed/" + rm -rf "$CONTRIB/build-wine/signed/" && mkdir --parents "$CONTRIB/build-wine/signed/" cp -f "$win1" "$win2" "$win3" "$CONTRIB/build-wine/signed/" "$CONTRIB/build-wine/unsign.sh" || fail "files are different. windows." "$CONTRIB/android/apkdiff.py" "$apk1" "$PROJECT_ROOT/dist/$apk1" || fail "files are different. android." "$CONTRIB/android/apkdiff.py" "$apk2" "$PROJECT_ROOT/dist/$apk2" || fail "files are different. android." - "$CONTRIB/osx/compare_dmg" "$PROJECT_ROOT/dist/$dmg" "$dmg" || fail "files are different. macos." + cmp --silent "$dmg" "$PROJECT_ROOT/dist/$dmg" || fail "files are different. macos." # all files matched. sign them. rm -rf "$PROJECT_ROOT/dist/sigs/" mkdir --parents "$PROJECT_ROOT/dist/sigs/" @@ -213,7 +226,7 @@ else ./contrib/make_download $WWW_DIR info "signing the version announcement file" sig=`./run_electrum -o signmessage $ELECTRUM_SIGNING_ADDRESS $VERSION -w $ELECTRUM_SIGNING_WALLET` - info "{ \"version\":\"$VERSION\", \"signatures\":{ \"$ELECTRUM_SIGNING_ADDRESS\":\"$sig\"}}" > $WWW_DIR/version + echo "{ \"version\":\"$VERSION\", \"signatures\":{ \"$ELECTRUM_SIGNING_ADDRESS\":\"$sig\"}}" > $WWW_DIR/version if [ $REV != $VERSION ]; then