Skip to content

Commit a067437

Browse files
author
James
committed
Update git deploy keys
1 parent b8ae7f3 commit a067437

File tree

4 files changed

+273
-27
lines changed

4 files changed

+273
-27
lines changed

.travis.yml

Lines changed: 22 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -12,61 +12,56 @@ matrix:
1212
language: ruby
1313
osx_image: xcode7.3
1414
- os: linux
15-
python: "3.4"
15+
python: '3.4'
1616
services:
1717
- docker
1818
- if: NOT tag =~ .+
1919
os: linux
20-
python: "3.5"
20+
python: '3.5'
2121
- if: NOT tag =~ .+
2222
os: linux
23-
python: "3.6"
23+
python: '3.6'
2424
before_install:
2525
- source contrib/zclassic/travis/electrum_zclassic_version_env.sh
2626
- echo electrum-zclassic version is $ELECTRUM_ZCL_VERSION
2727
- mkdir -p build && cp contrib/zclassic/travis/* ./build/
28-
- if [[ -n $TRAVIS_TAG ]] && [[ $TRAVIS_OS_NAME == 'osx' ]]; then
29-
./build/before_install-osx.sh;
30-
fi
31-
- if [[ -n $TRAVIS_TAG ]] && [[ $TRAVIS_OS_NAME == 'linux' ]] && [[ $TRAVIS_PYTHON_VERSION == '3.4' ]]; then
32-
./build/before_install-linux.sh;
33-
fi
34-
- if [[ -n $TRAVIS_TAG ]] && [[ $TRAVIS_OS_NAME == 'linux' ]] && [[ $TRAVIS_PYTHON_VERSION == '3.5' ]]; then
35-
./build/before_install-linux-apk.sh;
28+
- if [[ -n $TRAVIS_TAG ]] && [[ $TRAVIS_OS_NAME == 'osx' ]]; then ./build/before_install-osx.sh;
3629
fi
30+
- if [[ -n $TRAVIS_TAG ]] && [[ $TRAVIS_OS_NAME == 'linux' ]] && [[ $TRAVIS_PYTHON_VERSION
31+
== '3.4' ]]; then ./build/before_install-linux.sh; fi
32+
- if [[ -n $TRAVIS_TAG ]] && [[ $TRAVIS_OS_NAME == 'linux' ]] && [[ $TRAVIS_PYTHON_VERSION
33+
== '3.5' ]]; then ./build/before_install-linux-apk.sh; fi
3734
install:
38-
- if [[ -z $TRAVIS_TAG ]] && [[ $TRAVIS_OS_NAME == 'linux' ]]; then
39-
pip install tox; pip install tox-travis;
40-
fi
35+
- if [[ -z $TRAVIS_TAG ]] && [[ $TRAVIS_OS_NAME == 'linux' ]]; then pip install tox;
36+
pip install tox-travis; fi
4137
script:
42-
- if [[ -n $TRAVIS_TAG ]] && [[ $TRAVIS_OS_NAME == 'osx' ]]; then
43-
./build/travis-build-osx.sh ;
44-
fi
45-
- if [[ -n $TRAVIS_TAG ]] && [[ $TRAVIS_OS_NAME == 'linux' ]] && [[ $TRAVIS_PYTHON_VERSION == '3.4' ]]; then
46-
./build/travis-build-linux.sh;
47-
fi
48-
- if [[ -n $TRAVIS_TAG ]] && [[ $TRAVIS_OS_NAME == 'linux' ]] && [[ $TRAVIS_PYTHON_VERSION == '3.5' ]]; then
49-
./build/travis-build-linux-apk.sh;
50-
fi
38+
- if [[ -n $TRAVIS_TAG ]] && [[ $TRAVIS_OS_NAME == 'osx' ]]; then ./build/travis-build-osx.sh
39+
; fi
40+
- if [[ -n $TRAVIS_TAG ]] && [[ $TRAVIS_OS_NAME == 'linux' ]] && [[ $TRAVIS_PYTHON_VERSION
41+
== '3.4' ]]; then ./build/travis-build-linux.sh; fi
42+
- if [[ -n $TRAVIS_TAG ]] && [[ $TRAVIS_OS_NAME == 'linux' ]] && [[ $TRAVIS_PYTHON_VERSION
43+
== '3.5' ]]; then ./build/travis-build-linux-apk.sh; fi
5144
deploy:
5245
- provider: releases
5346
api_key:
54-
secure: G+TcxPJSQQ2bTNhkTX4aofnsiNFrzbuFTGty/+jIKDb/IQ69etXS9Ulu8KGD71VjEdXugFWdus+2a8fFSCSg79+AvrSxKa1ztXQ2q6tmovRkUcnF5Bkbc+ORLm3+FMZhonvMg+MLnHS3hnvJL/CZU0Pn2dkfODn7/t+MsGs99MN0G44qimq+FCu+YHaKVcGgiTs1I6nextIH+lnPw5qE6VxTQKdFp4PTHqY1qZJWamReVvtyMnfGpa+QwcKf43dXzZrHMLfFprfzEi1DExrhRi0a8RZlFWmAtkwH9zzJXzqOEmivniLfeALJzWkBJG4I2Fu7QSQhvPllhnt5uGdV3pgmHZUxL1DZckrqVG5b6P/Cnmbu0hWXbkPpZ7sXQ4X7wGhAVgH2sRPF1SfE9XvqDsmKvpspdKGmI+9yKoaWekbt8igfJ8jRBK4yRJAt+F/waeXkj7HJhSPIYg9wNvYCnCmoih4brRcTE4nyJBo/ySY3DVocflS3QGoClOrBpwXGgzwaUzBamRhJeCUe9ockPJyUs9DkuBIdsPfhq0nZfZFMhNBtpzm1hPGE92NojUi+DcI12WqweUqDWZzY/02MmfHLeN6mGgjTWvgOwnq1fvc6s7sVy7nANtA6UseWF2KUBYfuMKAxTU4WadpZ102znz4XiL4B7TILKJMU+Ht+a+c=
47+
secure: n0KT+T49e1mOIV64wpVmf4bYga4KArHQnY9ZQ3u2DImLRGmhMkpa/OC6/oboDdzdyC+IhpcdwX7uCu2lxlsFBfP2zyuprEQThxeW8gL6pFaTMoJJ201lNjppFmCpbS2VqxDJWIap3E+RHwoQZpo+b8Lt2xoOzB1VZFdxm4qVCb/I4jl5ZWouibYxMwb9IsqdakTK7ZTmCN+YMthsbgvRpjbb1s5vuE5I3AjVx3dFOR2YYvfdwjfknSY9Ej7xfUqmkraRdd4kRQrznVDdB5i9gvPTF1hxtGGusxsDHEYAe6pUdDKk6XZ6esM/MhZDHnxWMt0wUKNrdIIlL9gI767AHiP+VQ5SAfbbVZrkCVIQ4d8s7dH4AbFlW0dsj5OuLb00Mp99FPxYpmMkdz6agWQmFky83Hc++DiGaRGZQr3eQUnKUkuGsWjueXCh5AC4uYNNYnXlaz2mkrKxenWgXscAa7XlyVcdZMAilMeOVOjZdjkjhN0bPz905NOm0sCSkOiR6v0iJmFsw2KKZwGNBG/DQV4bBWzbEu3G5ehCP4WkbXh0Cfjxqi56LkZt4YXbkFIHY+qj0gE6tRQbc42lad8+aLGbi4mKnttCuLZbN70E+c1Y++VAaYAOCqF9VlDD5/4OIizeRYW9hC18wD0+T3GWK+mezpWKrWdkdIEEVvt1SyQ=
5548
file:
5649
- build/electrum-zclassic/dist/electrum-zclassic-$ELECTRUM_ZCL_VERSION-macosx.dmg
5750
on:
5851
repo: ZclassicCommunity/electrum-zclassic
59-
tags: true
52+
tags: false
6053
condition: "$TRAVIS_OS_NAME = osx"
54+
draft: true
6155
- provider: releases
6256
api_key:
63-
secure: G+TcxPJSQQ2bTNhkTX4aofnsiNFrzbuFTGty/+jIKDb/IQ69etXS9Ulu8KGD71VjEdXugFWdus+2a8fFSCSg79+AvrSxKa1ztXQ2q6tmovRkUcnF5Bkbc+ORLm3+FMZhonvMg+MLnHS3hnvJL/CZU0Pn2dkfODn7/t+MsGs99MN0G44qimq+FCu+YHaKVcGgiTs1I6nextIH+lnPw5qE6VxTQKdFp4PTHqY1qZJWamReVvtyMnfGpa+QwcKf43dXzZrHMLfFprfzEi1DExrhRi0a8RZlFWmAtkwH9zzJXzqOEmivniLfeALJzWkBJG4I2Fu7QSQhvPllhnt5uGdV3pgmHZUxL1DZckrqVG5b6P/Cnmbu0hWXbkPpZ7sXQ4X7wGhAVgH2sRPF1SfE9XvqDsmKvpspdKGmI+9yKoaWekbt8igfJ8jRBK4yRJAt+F/waeXkj7HJhSPIYg9wNvYCnCmoih4brRcTE4nyJBo/ySY3DVocflS3QGoClOrBpwXGgzwaUzBamRhJeCUe9ockPJyUs9DkuBIdsPfhq0nZfZFMhNBtpzm1hPGE92NojUi+DcI12WqweUqDWZzY/02MmfHLeN6mGgjTWvgOwnq1fvc6s7sVy7nANtA6UseWF2KUBYfuMKAxTU4WadpZ102znz4XiL4B7TILKJMU+Ht+a+c=
57+
secure: n0KT+T49e1mOIV64wpVmf4bYga4KArHQnY9ZQ3u2DImLRGmhMkpa/OC6/oboDdzdyC+IhpcdwX7uCu2lxlsFBfP2zyuprEQThxeW8gL6pFaTMoJJ201lNjppFmCpbS2VqxDJWIap3E+RHwoQZpo+b8Lt2xoOzB1VZFdxm4qVCb/I4jl5ZWouibYxMwb9IsqdakTK7ZTmCN+YMthsbgvRpjbb1s5vuE5I3AjVx3dFOR2YYvfdwjfknSY9Ej7xfUqmkraRdd4kRQrznVDdB5i9gvPTF1hxtGGusxsDHEYAe6pUdDKk6XZ6esM/MhZDHnxWMt0wUKNrdIIlL9gI767AHiP+VQ5SAfbbVZrkCVIQ4d8s7dH4AbFlW0dsj5OuLb00Mp99FPxYpmMkdz6agWQmFky83Hc++DiGaRGZQr3eQUnKUkuGsWjueXCh5AC4uYNNYnXlaz2mkrKxenWgXscAa7XlyVcdZMAilMeOVOjZdjkjhN0bPz905NOm0sCSkOiR6v0iJmFsw2KKZwGNBG/DQV4bBWzbEu3G5ehCP4WkbXh0Cfjxqi56LkZt4YXbkFIHY+qj0gE6tRQbc42lad8+aLGbi4mKnttCuLZbN70E+c1Y++VAaYAOCqF9VlDD5/4OIizeRYW9hC18wD0+T3GWK+mezpWKrWdkdIEEVvt1SyQ=
6458
file:
6559
- build/electrum-zclassic/dist/Electrum-Zclassic-$ELECTRUM_ZCL_VERSION.tar.gz
6660
- build/electrum-zclassic/dist/electrum-zclassic-$ELECTRUM_ZCL_VERSION-setup-win32.exe
6761
- build/electrum-zclassic/dist/electrum-zclassic-$ELECTRUM_ZCL_VERSION-setup-win64.exe
6862
- build/electrum-zclassic/bin/Electrum_Zclassic-$ELECTRUM_ZCL_APK_VERSION-release-unsigned.apk
6963
on:
7064
repo: ZclassicCommunity/electrum-zclassic
71-
tags: true
65+
tags: false
7266
condition: "$TRAVIS_OS_NAME = linux"
67+
draft: true

deterministic.spec

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
# -*- mode: python -*-
2+
import sys
3+
from PyInstaller.utils.hooks import collect_data_files, collect_submodules
4+
5+
6+
for i, x in enumerate(sys.argv):
7+
if x == '--name':
8+
cmdline_name = sys.argv[i+1]
9+
break
10+
else:
11+
raise Exception('no name')
12+
13+
hiddenimports = collect_submodules('trezorlib')
14+
hiddenimports += collect_submodules('btchip')
15+
hiddenimports += collect_submodules('keepkeylib')
16+
hiddenimports += collect_submodules('websocket')
17+
hiddenimports += [
18+
'lib',
19+
'lib.base_wizard',
20+
'lib.plot',
21+
'lib.qrscanner',
22+
'lib.websockets',
23+
'gui.qt',
24+
25+
'plugins',
26+
27+
'plugins.hw_wallet.qt',
28+
29+
'plugins.audio_modem.qt',
30+
'plugins.cosigner_pool.qt',
31+
'plugins.digitalbitbox.qt',
32+
'plugins.email_requests.qt',
33+
'plugins.keepkey.qt',
34+
'plugins.labels.qt',
35+
'plugins.trezor.qt',
36+
'plugins.ledger.qt',
37+
'plugins.virtualkeyboard.qt',
38+
]
39+
40+
datas = [
41+
('lib/servers.json', 'electrum_zclassic'),
42+
('lib/servers_testnet.json', 'electrum_zclassic'),
43+
('lib/servers_regtest.json', 'electrum_zclassic'),
44+
('lib/currencies.json', 'electrum_zclassic'),
45+
('lib/locale', 'electrum_zclassic/locale'),
46+
('lib/wordlist', 'electrum_zclassic/wordlist'),
47+
('C:\\zbarw', '.'),
48+
]
49+
datas += collect_data_files('trezorlib')
50+
datas += collect_data_files('btchip')
51+
datas += collect_data_files('keepkeylib')
52+
53+
binaries = [('C:/Python34/libusb-1.0.dll', '.')]
54+
55+
# https://github.com/pyinstaller/pyinstaller/wiki/Recipe-remove-tkinter-tcl
56+
sys.modules['FixTk'] = None
57+
excludes = ['FixTk', 'tcl', 'tk', '_tkinter', 'tkinter', 'Tkinter']
58+
excludes += [
59+
'PyQt5.QtCLucene',
60+
'PyQt5.Qt5CLucene',
61+
'PyQt5.QtDesigner',
62+
'PyQt5.QtDesignerComponents',
63+
'PyQt5.QtHelp',
64+
'PyQt5.QtLocation',
65+
'PyQt5.QtMultimedia',
66+
'PyQt5.QtMultimediaQuick_p',
67+
'PyQt5.QtMultimediaWidgets',
68+
'PyQt5.QtNetwork',
69+
'PyQt5.QtOpenGL',
70+
'PyQt5.QtPositioning',
71+
'PyQt5.QtPrintSupport',
72+
'PyQt5.QtQml',
73+
'PyQt5.QtQuick',
74+
'PyQt5.QtQuickParticles',
75+
'PyQt5.QtQuickWidgets',
76+
'PyQt5.QtSensors',
77+
'PyQt5.QtSerialPort',
78+
'PyQt5.QtSql',
79+
'PyQt5.Qt5Sql',
80+
'PyQt5.QtTest',
81+
'PyQt5.QtWebChannel',
82+
'PyQt5.QtWebKit',
83+
'PyQt5.QtWebKitWidgets',
84+
'PyQt5.QtWebSockets',
85+
'PyQt5.QtXml',
86+
'PyQt5.QtXmlPatterns',
87+
'PyQt5.QtWebProcess',
88+
'PyQt5.QtWinExtras',
89+
]
90+
91+
a = Analysis(['electrum-zclassic'],
92+
pathex=['plugins'],
93+
hiddenimports=hiddenimports,
94+
datas=datas,
95+
binaries=binaries,
96+
excludes=excludes,
97+
runtime_hooks=['pyi_runtimehook.py'])
98+
99+
# http://stackoverflow.com/questions/19055089/
100+
for d in a.datas:
101+
if 'pyconfig' in d[0]:
102+
a.datas.remove(d)
103+
break
104+
105+
# Add TOC to electrum_zclassic, electrum_zclassic_gui, electrum_zclassic_plugins
106+
for p in sorted(a.pure):
107+
if p[0].startswith('lib') and p[2] == 'PYMODULE':
108+
a.pure += [('electrum_zclassic%s' % p[0][3:] , p[1], p[2])]
109+
if p[0].startswith('gui') and p[2] == 'PYMODULE':
110+
a.pure += [('electrum_zclassic_gui%s' % p[0][3:] , p[1], p[2])]
111+
if p[0].startswith('plugins') and p[2] == 'PYMODULE':
112+
a.pure += [('electrum_zclassic_plugins%s' % p[0][7:] , p[1], p[2])]
113+
114+
pyz = PYZ(a.pure)
115+
116+
exe = EXE(pyz,
117+
a.scripts,
118+
exclude_binaries=True,
119+
debug=False,
120+
strip=False,
121+
upx=False,
122+
console=False,
123+
icon='icons/electrum-zclassic.ico',
124+
name=os.path.join('build\\pyi.win32\\electrum', cmdline_name))
125+
126+
# exe with console output
127+
conexe = EXE(pyz,
128+
a.scripts,
129+
exclude_binaries=True,
130+
debug=False,
131+
strip=False,
132+
upx=False,
133+
console=True,
134+
icon='icons/electrum-zclassic.ico',
135+
name=os.path.join('build\\pyi.win32\\electrum',
136+
'console-%s' % cmdline_name))
137+
138+
# trezorctl separate executable
139+
tctl_a = Analysis(['C:/Python34/Scripts/trezorctl'],
140+
hiddenimports=['pkgutil'],
141+
excludes=excludes,
142+
runtime_hooks=['pyi_tctl_runtimehook.py'])
143+
144+
tctl_pyz = PYZ(tctl_a.pure)
145+
146+
tctl_exe = EXE(tctl_pyz,
147+
tctl_a.scripts,
148+
exclude_binaries=True,
149+
debug=False,
150+
strip=False,
151+
upx=False,
152+
console=True,
153+
name=os.path.join('build\\pyi.win32\\electrum', 'trezorctl.exe'))
154+
155+
coll = COLLECT(exe, conexe, tctl_exe,
156+
a.binaries,
157+
a.datas,
158+
strip=False,
159+
upx=False,
160+
name=os.path.join('dist', 'electrum-zclassic'))

pyi_runtimehook.py

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# -*- coding: utf-8 -*-
2+
"""PyInstaller runtime hook"""
3+
import imp
4+
import sys
5+
import pkgutil
6+
7+
8+
_old_find_module = imp.find_module
9+
def _new_find_module(name, *args, **kwargs):
10+
if name in ['lib', 'gui', 'plugins']:
11+
return (None, name, ('', '', 5))
12+
else:
13+
return _old_find_module(name, *args, **kwargs)
14+
imp.find_module = _new_find_module
15+
16+
17+
_old_load_module = imp.load_module
18+
def _new_load_module(name, file, pathname, description):
19+
if pathname in ['lib', 'gui', 'plugins']:
20+
return __import__(name)
21+
else:
22+
return _old_load_module(name, file, pathname, description)
23+
imp.load_module = _new_load_module
24+
25+
26+
PLUGINS_PREFIX = 'electrum_zclassic_plugins'
27+
28+
KEYSTORE_PLUGINS = [
29+
'hw_wallet',
30+
'digitalbitbox',
31+
'keepkey',
32+
'ledger',
33+
'trezor',
34+
]
35+
36+
OTHER_PLUGINS= [
37+
'audio_modem',
38+
'cosigner_pool',
39+
'email_requests',
40+
'labels',
41+
'virtualkeyboard',
42+
]
43+
44+
OTHER_PLUGINS = list(map(lambda p: '%s.%s' % (PLUGINS_PREFIX, p), OTHER_PLUGINS))
45+
46+
PLUGINS = KEYSTORE_PLUGINS + OTHER_PLUGINS
47+
48+
49+
class PluginsImporter(object):
50+
def find_module(self, name):
51+
return self
52+
53+
def load_module(self, name):
54+
if name in KEYSTORE_PLUGINS:
55+
return getattr(__import__('%s.%s' % (PLUGINS_PREFIX, name)), name)
56+
elif name in OTHER_PLUGINS:
57+
return getattr(__import__(name), name.split('.')[-1])
58+
elif name.endswith('.qt'):
59+
split = name.split('.')
60+
if split[0] != split[1]:
61+
plugin_module = getattr(__import__(name), split[-2])
62+
return getattr(plugin_module, 'qt')
63+
else:
64+
path = '.'.join(split[1:])
65+
plugin_module = getattr(__import__(path), split[-2])
66+
return getattr(plugin_module, 'qt')
67+
else:
68+
raise Exception('Can not import %s' % name)
69+
70+
71+
_old_find_loader = pkgutil.find_loader
72+
def _new_find_loader(fullname):
73+
if fullname.startswith('%s.' % PLUGINS_PREFIX):
74+
return PluginsImporter()
75+
else:
76+
return _old_find_loader(fullname)
77+
pkgutil.find_loader = _new_find_loader
78+
79+
80+
_old_iter_modules = pkgutil.iter_modules
81+
def _new_iter_modules(path=None, prefix=''):
82+
if path and len(path) == 1 and path[0].endswith(PLUGINS_PREFIX):
83+
for p in PLUGINS:
84+
yield PluginsImporter(), p, True
85+
else:
86+
for loader, name, ispkg in _old_iter_modules(path, prefix):
87+
yield loader, name, ispkg
88+
pkgutil.iter_modules = _new_iter_modules

pyi_tctl_runtimehook.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# -*- coding: utf-8 -*-
2+
"""PyInstaller runtime hook for trezorctl"""
3+
from sys import exit

0 commit comments

Comments
 (0)