mirror of https://github.com/ethereum/go-ethereum
parent
e189758d55
commit
405c0ca4b0
@ -1,106 +0,0 @@ |
||||
mode: set |
||||
github.com/ethereum/go-ethereum/abi/abi.go:27.39,31.32 4 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:35.2,37.8 2 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:31.32,34.3 2 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:40.29,42.2 1 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:51.53,57.16 3 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:61.2,62.16 2 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:65.2,67.12 2 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:57.16,59.3 1 0 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:62.16,64.3 1 0 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:79.71,83.25 3 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:94.2,94.17 1 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:83.25,87.17 3 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:90.3,90.31 1 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:87.17,89.4 1 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:102.71,104.12 2 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:109.2,109.36 1 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:113.2,114.16 2 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:119.2,122.20 3 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:104.12,106.3 1 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:109.36,111.3 1 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:114.16,116.3 1 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:125.50,127.55 2 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:131.2,132.33 2 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:136.2,136.12 1 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:127.55,129.3 1 0 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:132.33,134.3 1 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:139.42,143.41 3 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:147.2,147.17 1 1 |
||||
github.com/ethereum/go-ethereum/abi/abi.go:143.41,145.3 1 0 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:39.30,41.2 1 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:43.30,46.32 3 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:56.2,56.12 1 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:46.32,47.25 1 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:47.25,48.14 1 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:52.4,52.9 1 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:48.14,50.13 2 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:59.30,61.2 1 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:63.29,65.2 1 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:67.51,68.36 1 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:91.2,91.12 1 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:69.2,70.19 1 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:75.2,76.19 1 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:81.2,83.19 1 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:70.19,72.4 1 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:72.4,74.4 1 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:76.19,78.4 1 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:78.4,80.4 1 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:83.19,85.4 1 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:85.4,87.4 1 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:94.37,95.18 1 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:101.2,101.14 1 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:96.2,97.14 1 1 |
||||
github.com/ethereum/go-ethereum/abi/numbers.go:98.2,99.14 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:32.46,35.16 2 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:38.2,43.9 3 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:55.2,56.16 2 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:60.2,64.55 4 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:69.2,69.13 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:111.2,113.8 2 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:35.16,37.3 1 0 |
||||
github.com/ethereum/go-ethereum/abi/type.go:44.2,47.17 2 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:48.2,50.12 2 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:51.2,52.60 1 0 |
||||
github.com/ethereum/go-ethereum/abi/type.go:56.16,58.3 1 0 |
||||
github.com/ethereum/go-ethereum/abi/type.go:64.55,67.3 2 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:69.13,72.16 3 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:73.3,74.21 1 0 |
||||
github.com/ethereum/go-ethereum/abi/type.go:75.3,76.22 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:77.3,78.66 1 0 |
||||
github.com/ethereum/go-ethereum/abi/type.go:80.3,81.16 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:82.3,86.17 4 0 |
||||
github.com/ethereum/go-ethereum/abi/type.go:87.3,91.18 4 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:92.3,93.27 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:94.3,95.30 1 0 |
||||
github.com/ethereum/go-ethereum/abi/type.go:96.3,100.21 4 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:101.3,104.17 3 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:107.3,108.60 1 0 |
||||
github.com/ethereum/go-ethereum/abi/type.go:104.17,106.5 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:116.37,118.2 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:126.51,128.36 2 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:179.2,179.20 1 0 |
||||
github.com/ethereum/go-ethereum/abi/type.go:129.2,130.23 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:133.3,133.34 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:134.2,135.23 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:138.3,138.34 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:139.2,142.49 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:145.3,145.34 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:146.2,147.42 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:150.3,150.60 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:151.2,152.42 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:157.3,157.23 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:162.3,162.78 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:166.3,167.36 2 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:170.3,170.21 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:171.2,172.19 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:130.23,132.4 1 0 |
||||
github.com/ethereum/go-ethereum/abi/type.go:135.23,137.4 1 0 |
||||
github.com/ethereum/go-ethereum/abi/type.go:142.49,144.4 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:147.42,149.4 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:152.42,154.4 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:157.23,159.4 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:162.78,164.4 1 0 |
||||
github.com/ethereum/go-ethereum/abi/type.go:167.36,169.4 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:172.19,174.4 1 1 |
||||
github.com/ethereum/go-ethereum/abi/type.go:174.4,176.4 1 0 |
@ -1,16 +0,0 @@ |
||||
# See http://help.github.com/ignore-files/ for more about ignoring files. |
||||
# |
||||
# If you find yourself ignoring temporary files generated by your text editor |
||||
# or operating system, you probably want to add a global ignore instead: |
||||
# git config --global core.excludesfile ~/.gitignore_global |
||||
|
||||
/tmp |
||||
*/**/*un~ |
||||
*un~ |
||||
.DS_Store |
||||
*/**/.DS_Store |
||||
ethereum/ethereum |
||||
ethereal/ethereal |
||||
osx/Mist.app |
||||
osx/__MACOSX |
||||
osx/Mist.dmg |
@ -1,55 +0,0 @@ |
||||
go-build |
||||
======== |
||||
|
||||
Build scripts for Ethereum Mist. |
||||
|
||||
### OS X |
||||
Install all build dependencies. |
||||
|
||||
* brew install go gmp readline |
||||
* npm install -g appdmg |
||||
* go get -u github.com/ethereum/go-ethereum/cmd/mist |
||||
* Open build.py and edit the (macdeployqt) paths. |
||||
* python build.py |
||||
|
||||
If everything went ok you should now have a Mist.dmg file in your current folder. |
||||
|
||||
### Windows |
||||
|
||||
Install all build dependencies. |
||||
|
||||
* [Golang](http://golang.org/dl/) 1.2 or higher (32-bit required) |
||||
* Install [Git](http://git-scm.com/) and [Mercurial](http://mercurial.selenic.com/) |
||||
* [MinGW32](http://www.mingw.org/) (add X:\MinGW\bin directory to your PATH) |
||||
* Use mingw32-get to install *gmp* packages |
||||
* Install [Qt5 for Windows 32-bit MinGW](http://qt-project.org/downloads) (5.2.1 at the moment of writing) |
||||
* Install [pkg-config](http://www.freedesktop.org/wiki/Software/pkg-config/) somewhere in your PATH. (read the [instructions](http://stackoverflow.com/questions/1710922/how-to-install-pkg-config-in-windows) here) |
||||
* Install [NSIS](http://nsis.sourceforge.net/) |
||||
|
||||
After all these things have been satisfied ```go get -u github.com/ethereum/go-ethereum/cmd/mist``` |
||||
|
||||
Once the compilation is completed you can create a setup binary. |
||||
- Edit build.bat and change qtPath and mingwPath to the paths of your installed versions. |
||||
- right-click the nsi file and select "Compile NSIS Script". |
||||
|
||||
If everything went well you should now have a windows-setup file. |
||||
|
||||
|
||||
#### Troubleshooting |
||||
|
||||
Now it will be a miracle if the windows build works in one go. |
||||
So here are some possible solutions for things that can go wrong: |
||||
|
||||
*Expected unqualified-id* |
||||
``` |
||||
qopenglversionfunctions.h:785:43: error: expected unqualified-id before ')' token |
||||
void (QOPENGLF_APIENTRYP MemoryBarrier)(GLbitfield barriers); |
||||
``` |
||||
|
||||
See [this ticket](https://github.com/go-qml/qml/issues/56) for a couple of solutions. |
||||
|
||||
*pkg-config path* |
||||
|
||||
pkg-config might complain about the config path. Setup an environment value `PKG_CONFIG_PATH` and set it to `C:\Qt\Qt5.2.1\5.2.1\mingw48_32\lib\pkgconfig`. Adopted to your QT version. |
||||
|
||||
If there are any build problems please create an issue. |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 1020 KiB |
Before Width: | Height: | Size: 1020 KiB |
@ -1,238 +0,0 @@ |
||||
import sys, os, argparse, logging, shutil, subprocess, stat,glob |
||||
from os.path import isfile |
||||
|
||||
# TODO handle icns |
||||
# TODO create dmg |
||||
# TODO Add client qml files and png files |
||||
# CHMOD +x the main binary |
||||
|
||||
logging.basicConfig( |
||||
stream=sys.stdout, |
||||
format='%(asctime)s : %(levelname)s\t : %(message)s', |
||||
datefmt='%m/%d/%Y %I:%M:%S %p', |
||||
level=logging.DEBUG |
||||
) |
||||
|
||||
XML_PLIST = """ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
||||
<plist version="1.0"> |
||||
<dict> |
||||
<key>CFBundleGetInfoString</key> |
||||
<string>Mist</string> |
||||
<key>CFBundleExecutable</key> |
||||
<string>Mist</string> |
||||
<key>CFBundleIdentifier</key> |
||||
<string>com.ethereum.mist</string> |
||||
<key>CFBundleName</key> |
||||
<string>Mist</string> |
||||
<key>CFBundleIconFile</key> |
||||
<string>Mist.icns</string> |
||||
<key>CFBundleShortVersionString</key> |
||||
<string>POC8</string> |
||||
<key>CFBundleInfoDictionaryVersion</key> |
||||
<string>POC8</string> |
||||
<key>CFBundlePackageType</key> |
||||
<string>APPL</string> |
||||
<key>IFMajorVersion</key> |
||||
<integer>0</integer> |
||||
<key>IFMinorVersion</key> |
||||
<integer>5</integer> |
||||
</dict> |
||||
</plist> |
||||
""" |
||||
|
||||
RUN_SCRIPT =""" |
||||
#!/bin/bash |
||||
cd "${0%/*}" |
||||
./go-ethereum |
||||
""" |
||||
|
||||
class AppBundler: |
||||
def copytree(self, src, dst, symlinks=False, ignore=None): |
||||
for item in os.listdir(src): |
||||
s = os.path.join(src, item) |
||||
d = os.path.join(dst, item) |
||||
if os.path.isdir(s): |
||||
shutil.copytree(s, d, symlinks, ignore) |
||||
else: |
||||
shutil.copy2(s, d) |
||||
|
||||
# If macdeployqt handles qmldir then runs on app |
||||
def runMacDeployQT(self): |
||||
exe = '/usr/local/opt/qt5/bin/macdeployqt' |
||||
if not os.path.exists(exe): exe = 'macdeployqt' |
||||
p = subprocess.Popen(exe, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) |
||||
handles_qml = False |
||||
for line in p.stdout.readlines(): |
||||
if '-qmldir=<path>' in line: |
||||
handles_qml = True |
||||
break |
||||
if handles_qml and self.go_path is not None: |
||||
qml_path = os.path.join(self.go_path, 'src/github.com/ethereum/go-ethereum/cmd/mist/assets/qml/') #TODO this is terrible |
||||
out = os.path.join(self.output_dir + '/Mist.app') |
||||
command = exe + ' ' + out + ' -executable='+out+'/Contents/MacOS/Mist' + ' -qmldir=' + qml_path #TODO this is terrible |
||||
logging.info('Running macdeployqt with options') |
||||
p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) |
||||
for line in p.stdout.readlines(): |
||||
logging.info('macdeployqt: ' + line.strip()) |
||||
else: |
||||
logging.error('Your version of macdeployqt does not handle qmldir') |
||||
|
||||
# Add ICNS file to |
||||
def insertICNS(self): |
||||
path = os.path.join(self.output_dir, 'Mist.app/Contents/Resources/Mist.icns') |
||||
|
||||
try: |
||||
shutil.copyfile('./Mist.icns',path) # TODO this is horrible |
||||
logging.info('Inserted Mist.icns') |
||||
except Exception as e: |
||||
logging.error(str(e)) |
||||
|
||||
def insertQMLnPNG(self): |
||||
pass # TODO |
||||
|
||||
#def signApp(self): |
||||
# after macdeployqt copy /usr/local/opt/qt5/lib/QtCore.framework/Contents/Info.plist to .app/Contents/Resources/QtCore.framework/Resources/Info.plist |
||||
# codesign --verbose --force --sign "Developer ID Application: <<INSERT DETAILS HERE>>" /Users/_/Dropbox/Experiments/EthereumBuild/Ethereal.app/Contents/Frameworks/QtCore.framework |
||||
# do for rest |
||||
# codesign --verbose --deep --force --sign "Developer ID Application: <<INSERT DETAILS HERE>>" Ethereal.app |
||||
# codesign --verify --verbose=4 Ethereal.app |
||||
|
||||
def insertAssets(self): |
||||
asset_path = os.path.join(self.go_path, 'src/github.com/ethereum/go-ethereum/cmd/mist/assets') |
||||
self.copytree(asset_path,"Mist.app/Contents/Resources/") |
||||
# Copy mnemonic word list |
||||
#shutil.copy(os.path.join(self.go_path, 'src/github.com/ethereum/eth-go/ethcrypto/mnemonic.words.lst'),"Mist.app/Contents/Resources/") |
||||
|
||||
# Insert all QML files and other resource files Mist needs |
||||
def insertResources(self): |
||||
qml_path = os.path.join(self.go_path, 'src/github.com/ethereum/go-ethereum/cmd/mist/assets/qml/') |
||||
target_folder = "Mist.app/Contents/Resources/" |
||||
target_folder_qml = target_folder + "qml/" |
||||
|
||||
os.makedirs(target_folder_qml) |
||||
|
||||
files = glob.glob(qml_path) |
||||
for f in files: |
||||
print "Copying %s to %s" % (f, target_folder_qml) |
||||
if isfile(f): |
||||
shutil.copy(f, target_folder_qml) |
||||
else: |
||||
self.copytree(f, target_folder_qml) |
||||
|
||||
files = glob.glob(os.path.join(self.go_path, 'src/github.com/ethereum/go-ethereum/cmd/mist/assets/*')) |
||||
for f in files: |
||||
print "Copying %s to %s" % (f, target_folder) |
||||
if isfile(f): |
||||
shutil.copy(f, target_folder) |
||||
else: |
||||
self.copytree(f, target_folder) |
||||
# Finds go-etherum binary and copies to app bundle |
||||
|
||||
def insertGoBinary(self): |
||||
if self.go_path is not None: |
||||
binary = os.path.join(self.go_path, 'bin/mist') |
||||
if os.path.exists(binary): |
||||
try: |
||||
shutil.copyfile(binary, os.path.join(self.output_dir, 'Mist.app/Contents/MacOS/Mist')) # TODO this is horrible |
||||
os.chmod(os.path.join(self.output_dir, 'Mist.app/Contents/MacOS/Mist'), 0711) |
||||
logging.info('Inserted go-ethereum binary') |
||||
except Exception as e: |
||||
logging.error(str(e)) |
||||
else: |
||||
logging.error('Cannot find go-etherum binary') |
||||
if self.handleHumanInput('Run "go get -u github.com/ethereum/go-ethereum" ?'): |
||||
logging.debug('Not Implemented') |
||||
pass |
||||
else: |
||||
logging.error('GOPATH not found, cannot continue') |
||||
|
||||
# Write the Info.plist |
||||
def writePList(self): |
||||
try: |
||||
with open(os.path.join(self.output_dir, 'Mist.app/Contents/Info.plist'), 'wb') as f: # TODO this is horrible |
||||
f.write(XML_PLIST) |
||||
f.close() |
||||
logging.info('Info.plist written') |
||||
except Exception as e: |
||||
logging.error(str(e)) |
||||
|
||||
# Building out directory structure |
||||
def buildStructure(self, root, structure): |
||||
if root is not self.output_dir: |
||||
try: |
||||
os.mkdir(root) |
||||
logging.info('Created ' + root) |
||||
except Exception as e: |
||||
logging.error(str(e)) |
||||
if self.handleHumanInput('Remove Directory?'): |
||||
try: |
||||
shutil.rmtree(root) |
||||
self.buildStructure(root, structure) |
||||
return |
||||
except Exception as e: |
||||
logging.error(str(e)) |
||||
for item in structure.keys(): |
||||
self.buildStructure( |
||||
os.path.join(root, item), |
||||
structure[item] |
||||
) |
||||
|
||||
# Convert human input to boolean |
||||
def handleHumanInput(self, question=''): |
||||
if self.force: return True |
||||
try: |
||||
answer = raw_input(question + " [Y/n]: ").lower() |
||||
except: |
||||
return True |
||||
if answer is '' or answer[0:1] == 'y': return True |
||||
return False |
||||
|
||||
logging.info('Copying QTWebProcess') |
||||
libexec_path = self.output_dir + '/Mist.app/Contents/libexec' |
||||
try: |
||||
os.mkdir(libexec_path) |
||||
shutil.copy2(path, libexec_path) |
||||
return True |
||||
except OSError as e: |
||||
print("Problem getting QTWebprocess on path %s. Error: %s" % (path, e)) |
||||
return False |
||||
|
||||
# Setup Variables |
||||
def __init__(self, args): |
||||
self.force = args['force'] |
||||
self.output_dir = args['output'] |
||||
self.app_name = "".join(x for x in args['name'] if x.isalnum()) # Simple Santize |
||||
self.app_structure = { |
||||
'%s.app' % self.app_name : { |
||||
'Contents' : { |
||||
'MacOS' : {}, |
||||
'Resources' : {} |
||||
} |
||||
} |
||||
} |
||||
self.go_path = os.environ.get('GOPATH') |
||||
self.buildStructure(self.output_dir, self.app_structure) |
||||
self.writePList() |
||||
self.insertICNS() |
||||
self.insertGoBinary() |
||||
self.insertAssets() |
||||
|
||||
#self.insertResources() |
||||
|
||||
self.runMacDeployQT() |
||||
os.system("sh script.sh " + self.output_dir + "/Mist.app/Contents") |
||||
os.system("appdmg dmg_spec.json Mist.dmg") |
||||
|
||||
logging.info("fin'") |
||||
|
||||
|
||||
if __name__ == "__main__": |
||||
parser = argparse.ArgumentParser(description='Standalone Mist Go Client App Bundler') |
||||
parser.add_argument('-n','--name', help='Name of app bundle', default='Mist', required=False) |
||||
parser.add_argument('-q','--qtwebpath', help='Location of QtWebProcess', default='Mist', required=False) |
||||
parser.add_argument('-o','--output', help='Directory to write app bundle', default=os.getcwd(), required=False) |
||||
parser.add_argument('-f','--force', help='Force Fresh Build', default=False, required=False) |
||||
args = vars(parser.parse_args()) |
||||
AppBundler(args) |
@ -1,10 +0,0 @@ |
||||
{ |
||||
"title": "Mist Installer", |
||||
"icon": "Mist.icns", |
||||
"background": "background.png", |
||||
"icon-size": 144, |
||||
"contents": [ |
||||
{ "x": 900, "y": 244, "type": "link", "path": "/Applications" }, |
||||
{ "x": 140, "y": 244, "type": "file", "path": "Mist.app" } |
||||
] |
||||
} |
@ -1,35 +0,0 @@ |
||||
#!/bin/bash |
||||
|
||||
BUILD_FOLDER_PATH=$1 |
||||
BUILD_QML_FOLDER_PATH="$BUILD_FOLDER_PATH/Resources/qml" |
||||
BUILD_PLUGINS_FOLDER_PATH="$BUILD_FOLDER_PATH/PlugIns" |
||||
|
||||
declare -a BROKEN_FILES; |
||||
k=0; |
||||
for j in $(find ${BUILD_QML_FOLDER_PATH} -name *.dylib); do |
||||
BROKEN_FILES[${k}]=$j |
||||
|
||||
((k=k+1)) |
||||
done |
||||
|
||||
|
||||
for i in "${BROKEN_FILES[@]}"; do |
||||
REPLACE_STRING="$BUILD_FOLDER_PATH/" |
||||
APP_CONTENT_FILE=${i//$REPLACE_STRING/""} |
||||
IFS='/' read -a array <<< "$APP_CONTENT_FILE" |
||||
LENGTH=${#array[@]} |
||||
LAST_ITEM_INDEX=$((LENGTH-1)) |
||||
FILE=${array[${LENGTH} - 1]} |
||||
|
||||
ORIGINE_PATH=$(find ${BUILD_PLUGINS_FOLDER_PATH} -name ${FILE}) |
||||
ORIGINE_PATH=${ORIGINE_PATH//$REPLACE_STRING/""} |
||||
s="" |
||||
for((l=0;l<${LAST_ITEM_INDEX};l++)) do |
||||
s=$s"../" |
||||
done |
||||
s=$s$ORIGINE_PATH |
||||
echo "s: $s" |
||||
|
||||
REMOVE_BROKEN_ALIAS=$(rm -rf $i) |
||||
RESULT=$(ln -s $s $i) |
||||
done |
@ -1,39 +0,0 @@ |
||||
@ECHO off |
||||
set origin=%GOPATH%\src\github.com\ethereum\go-ethereum\cmd\mist |
||||
set ethgo=%GOPATH%\src\github.com\ethereum\eth-go |
||||
set target=%GOPATH%\pkg\ethereum\ |
||||
set qtPath=C:\Qt\Qt5.2.1\5.2.1\mingw48_32 |
||||
set mingwPath=C:\MingW\ |
||||
|
||||
ECHO "Setting up Windows binaries" |
||||
|
||||
ECHO "Copying assets from %GOPATH%" |
||||
xcopy /s %origin%\assets %target%assets |
||||
|
||||
ECHO "Copying mnemonic words" |
||||
copy %ethgo%\ethcrypto\mnemonic.words.lst %target% |
||||
|
||||
ECHO "Compiling Mist" |
||||
cd %origin% |
||||
go install |
||||
|
||||
ECHO "Copying to source folder" |
||||
copy %GOPATH%\bin\mist.exe %target% |
||||
|
||||
ECHO "Running QT Deploy" |
||||
cd %target% |
||||
windeployqt --webkit2 --qmldir=assets\qml\ . |
||||
|
||||
echo "Copy missing DLLs & Others" |
||||
|
||||
copy %qtPath%\bin\QtWebProcess.exe %target% |
||||
copy %qtPath%\bin\Qt5MultimediaWidgets.dll %target% |
||||
copy %qtPath%\bin\Qt5PrintSupport.dll %target% |
||||
copy %qtPath%\bin\Qt5OpenGL.dll %target% |
||||
copy %qtPath%\bin\Qt5WebKitWidgets.dll %target% |
||||
|
||||
copy %qtPath%\bin\libgcc_s_dw2-1.dll %target% |
||||
copy "%qtPath%\bin\libstdc++-6.dll" %target% |
||||
copy %qtPath%\bin\libwinpthread-1.dll %target% |
||||
|
||||
copy %mingwPath%\bin\libgmp-10.dll %target% |
@ -1,111 +0,0 @@ |
||||
;-------------------------------- |
||||
;Include Modern UI |
||||
|
||||
!include "MUI2.nsh" |
||||
|
||||
;-------------------------------- |
||||
;General |
||||
|
||||
;Name and file |
||||
Name "Mist" |
||||
OutFile "mist-setup.exe" |
||||
|
||||
;Default installation folder |
||||
InstallDir "$PROGRAMFILES\Mist" |
||||
|
||||
;Get installation folder from registry if available |
||||
InstallDirRegKey HKCU "Software\Mist" "" |
||||
|
||||
;Request application privileges for Windows Vista |
||||
RequestExecutionLevel admin |
||||
|
||||
SetCompressor /SOLID lzma ; had the strongest compression rate for Mist |
||||
|
||||
;-------------------------------- |
||||
;Variables |
||||
|
||||
;-------------------------------- |
||||
;Interface Settings |
||||
|
||||
|
||||
!define MUI_ICON "logo.ico" |
||||
!define MUI_HEADERIMAGE |
||||
!define MUI_HEADERIMAGE_BITMAP "ethereum.bmp" |
||||
!define MUI_HEADERIMAGE_RIGHT |
||||
!define MUI_ABORTWARNING |
||||
|
||||
;-------------------------------- |
||||
;Pages |
||||
|
||||
;!insertmacro MUI_PAGE_LICENSE "tmp/LICENCE" |
||||
;!insertmacro MUI_PAGE_COMPONENTS |
||||
!insertmacro MUI_PAGE_DIRECTORY |
||||
|
||||
;Start Menu Folder Page Configuration |
||||
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" |
||||
!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Mist" |
||||
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" |
||||
|
||||
;!insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder |
||||
|
||||
!insertmacro MUI_PAGE_INSTFILES |
||||
|
||||
!insertmacro MUI_UNPAGE_CONFIRM |
||||
!insertmacro MUI_UNPAGE_INSTFILES |
||||
|
||||
;-------------------------------- |
||||
;Languages |
||||
|
||||
!insertmacro MUI_LANGUAGE "English" |
||||
|
||||
;-------------------------------- |
||||
;Installer Sections |
||||
|
||||
Section |
||||
|
||||
SetOutPath "$INSTDIR" |
||||
|
||||
file /r $%GOPATH%\pkg\ethereum\*.* |
||||
file logo.ico |
||||
|
||||
;Store installation folder |
||||
WriteRegStr HKCU "Software\Mist" "" $INSTDIR |
||||
|
||||
;Create uninstaller |
||||
WriteUninstaller "$INSTDIR\Uninstall.exe" |
||||
|
||||
|
||||
CreateShortCut "$DESKTOP\Mist.lnk" "$INSTDIR\mist.exe" "" "$INSTDIR\logo.ico" 0 |
||||
|
||||
;create start-menu items |
||||
CreateDirectory "$SMPROGRAMS\Mist" |
||||
CreateShortCut "$SMPROGRAMS\Mist\Uninstall.lnk" "$INSTDIR\Uninstall.exe" "" "$INSTDIR\Uninstall.exe" 0 |
||||
CreateShortCut "$SMPROGRAMS\Mist\Mist.lnk" "$INSTDIR\mist.exe" "" "$INSTDIR\logo.ico" 0 |
||||
|
||||
SectionEnd |
||||
|
||||
;-------------------------------- |
||||
;Descriptions |
||||
|
||||
;Assign language strings to sections |
||||
;!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN |
||||
; !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) |
||||
;!insertmacro MUI_FUNCTION_DESCRIPTION_END |
||||
|
||||
;-------------------------------- |
||||
;Uninstaller Section |
||||
|
||||
Section "Uninstall" |
||||
|
||||
;ADD YOUR OWN FILES HERE... |
||||
RMDir /r "$INSTDIR\*.*" |
||||
|
||||
RMDir "$INSTDIR" |
||||
|
||||
Delete "$DESKTOP\Mist.lnk" |
||||
Delete "$SMPROGRAMS\Mist\*.*" |
||||
RmDir "$SMPROGRAMS\Mist" |
||||
|
||||
DeleteRegKey /ifempty HKCU "Software\Mist" |
||||
|
||||
SectionEnd |
Before Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 361 KiB |
Loading…
Reference in new issue