#!/usr/bin/python import sys, re, shutil, os, hashlib import imp import getpass if __name__ == '__main__': d = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), os.pardir)) os.chdir(d) v = imp.load_source('version', 'lib/version.py') version = v.ELECTRUM_VERSION print "version", version # copy dependencies into 'packages' directory deps = [ 'aes', 'ecdsa', 'pbkdf2', 'requests', # note: requests-2.5.1 is needed to build with pyinstaller 'qrcode', 'google/protobuf', 'dns', 'six', ] # don't use /usr/lib sys.path = ['/usr/local/lib/python2.7/dist-packages'] for module in deps: f, pathname, descr = imp.find_module(module) target = 'packages/' + module + descr[0] if os.path.exists(target): continue d = os.path.dirname(target) if d and not (os.path.exists(d)): os.makedirs(d) if descr[0]: shutil.copy(pathname, target) else: shutil.copytree(pathname, target, ignore=shutil.ignore_patterns('*.pyc')) # fix google/__init__.py needed by pyinstaller n = 'packages/google/__init__.py' if not os.path.exists(n): os.system("echo \# do not remove>%s"%n) os.system("pyrcc4 icons.qrc -o gui/qt/icons_rc.py") os.system("python setup.py sdist --format=zip,gztar") _tgz="Electrum-%s.tar.gz"%version _zip="Electrum-%s.zip"%version os.chdir("dist") password = getpass.getpass("Password:") for f in [_tgz,_zip]: os.system( "gpg --sign --armor --detach --passphrase \"%s\" %s"%(password, f) ) md5_tgz = hashlib.md5(file(_tgz, 'r').read()).digest().encode('hex') md5_zip = hashlib.md5(file(_zip, 'r').read()).digest().encode('hex') os.chdir("..") print "" print "Packages are ready:" print "dist/%s "%_tgz, md5_tgz print "dist/%s "%_zip, md5_zip print "To make a release, upload the files to the server, and update the webpages in branch gh-pages"