66# - assumes all keys are available, and signs everything
77# This script, for other builders:
88# - builds all reproducible binaries,
9- # - downloads binaries built by the release manager (from airlock), compares and signs them,
10- # - and then uploads sigs
9+ # - downloads binaries built by the release manager (from airlock if SFTPUSER, else from website),
10+ # compares and signs them,
11+ # - and then uploads sigs (if SFTPUSER), else they can be submitted as PR to spesmilo/electrum-signatures
1112# Note: the .dmg should be built separately beforehand and copied into dist/
1213# (as it is built on a separate machine)
1314#
@@ -57,7 +58,6 @@ if [ -z "$GPGUSER" ]; then
5758 fail " usage: $0 gpg_username"
5859fi
5960
60- export SSHUSER=" $GPGUSER "
6161RELEASEMANAGER=" "
6262if [ " $GPGUSER " == " ThomasV" ]; then
6363 PUBKEY=" --local-user 6694D8DE7BE8EE5631BED9502BD5824B7F9470E6"
@@ -68,6 +68,8 @@ elif [ "$GPGUSER" == "sombernight_releasekey" ]; then
6868 export SSHUSER=sombernight
6969else
7070 warn " unexpected GPGUSER=$GPGUSER "
71+ PUBKEY=" "
72+ export SSHUSER=" "
7173fi
7274
7375
@@ -208,13 +210,41 @@ if [ -z "$RELEASEMANAGER" ] ; then
208210 rm -rf " $PROJECT_ROOT /dist/releasemanager"
209211 mkdir --parent " $PROJECT_ROOT /dist/releasemanager"
210212 cd " $PROJECT_ROOT /dist/releasemanager"
211- # TODO check somehow that RM had finished uploading
212- sftp -oBatchMode=no -b - " $SSHUSER @uploadserver" << !
213- cd electrum-downloads-airlock
214- cd "$VERSION "
215- mget *
216- bye
217- !
213+
214+ if [ -z " $SSHUSER " ]; then
215+ info " No SFTP access, downloading binaries from website"
216+ BASE_URL=" https://download.electrum.org/$VERSION "
217+ FILES_TO_DOWNLOAD=(
218+ " $tarball "
219+ " $srctarball "
220+ " $appimage "
221+ " $win1 "
222+ " $win2 "
223+ " $win3 "
224+ " $apk1 "
225+ " $apk2 "
226+ " $apk3 "
227+ " $dmg "
228+ )
229+
230+ for filename in " ${FILES_TO_DOWNLOAD[@]} " ; do
231+ if [ ! -f " $filename " ]; then
232+ info " Downloading $filename ..."
233+ wget -q " $BASE_URL /$filename " -O " $filename " || fail " Failed to download $filename "
234+ else
235+ info " File already exists: $filename "
236+ fi
237+ done
238+ else
239+ # TODO check somehow that RM had finished uploading
240+ sftp -oBatchMode=no -b - " $SSHUSER @uploadserver" << -EOF
241+ cd electrum-downloads-airlock
242+ cd "$VERSION "
243+ mget *
244+ bye
245+ EOF
246+ fi
247+
218248 # check we have each binary
219249 test -f " $tarball " || fail " tarball not found among sftp downloads"
220250 test -f " $srctarball " || fail " srctarball not found among sftp downloads"
@@ -254,8 +284,14 @@ if [ -z "$RELEASEMANAGER" ] ; then
254284 signame=" $fname .$GPGUSER .asc"
255285 gpg --sign --armor --detach $PUBKEY --output " $PROJECT_ROOT /dist/sigs/$signame " " $fname "
256286 done
257- # upload sigs
258- ELECBUILD_UPLOADFROM=" $PROJECT_ROOT /dist/sigs/" " $CONTRIB /upload.sh"
287+
288+ if [ -z " $SSHUSER " ]; then
289+ info " Signing successfully, now open a pull request with your signatures to spesmilo/electrum-signatures"
290+ exit 0
291+ else
292+ # upload sigs
293+ ELECBUILD_UPLOADFROM=" $PROJECT_ROOT /dist/sigs/" " $CONTRIB /upload.sh"
294+ fi
259295
260296else
261297 # ONLY release manager
0 commit comments