Not a member of Pastebin yet?
                        Sign Up,
                        it unlocks many cool features!                    
                - BUILDING BITCOIN ARMORY ON THE MAC
 - Requirements (tested ones)
 - - Mac OS X 10.6.7 (MacOSXUpdCombo10.6.7.dmg)
 - - Xcode 4.2 (xcode_4.2_and_ios_5_sdk_for_snow_leopard.dmg)
 - Screenshots:
 - http://imageshack.us/g/717/screenshot20120201at113.png/
 - Dependencies:
 - OS X versions 10.5 and greater ship with python, zope and twisted installed.
 - (see http://twistedmatrix.com/trac/wiki/Downloads)
 - Xcode 4 installs git by default (see /Developer/usr/bin).
 - How to build:
 - cd ~
 - git clone git://github.com/etotheipi/BitcoinArmory.git
 - cd ~/BitcoinArmory
 - git checkout qtdev
 - cd ~/BitcoinArmory/cppForSwig/cryptopp
 - make libcryptopp.a
 - sudo make install
 - cd ~/BitcoinArmory/cppForSwig
 - make swig
 - Download and install QT:
 - http://get.qt.nokia.com/qt/source/qt-mac-cocoa-opensource-4.7.4.dmg
 - Download, unpack and build SIP and PyQT4:
 - http://www.riverbankcomputing.co.uk/static/Downloads/sip4/sip-4.13.1.tar.gz
 - http://www.riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-mac-gpl-4.9.tar.gz
 - cd <source dir>
 - python configure.py
 - make
 - sudo make install
 - run armory:
 - cd ~/BitcoinArmory
 - python ArmoryQt.py
 - PATCHES (for 02 Feb 2012, supposedly platform-independent)
 - [!] UniversalTimer.cpp:1: error: bad value (native) for -march= switch
 - You have to remove -march=native from COMPILER_OPTS
 - e.g. using /Applications/TextEdit.app/Contents/MacOS/TextEdit Makefile
 - [!] 686-apple-darwin10-llvm-g++-4.2: -lcryptopp: linker input file unused because linking not done
 - Happens due to using -c and -l together. You should remove $(LIBRARY_OPTS) from compiler lines.
 - e.g:
 - -$(COMPILER) $(COMPILER_OPTS) $(INCLUDE_OPTS) $(LIBRARY_OPTS) UniversalTimer.cpp
 - +$(COMPILER) $(COMPILER_OPTS) $(INCLUDE_OPTS) UniversalTimer.cpp
 - [!] ld: library not found for -lcryptopp
 - You should make cryptopp (it comes along with the armory from git).
 - cd ~/BitcoinArmory/cppForSwig/cryptopp
 - make libcryptopp.a (could take a while)
 - sudo make install
 - While installing cryptopp: cp: *.so: No such file or directory
 - Skip it, it's okay - we don't need *.so, we need *.a.
 - [!] Undefined symbols for architecture i386: "_Py_InitModule4"
 - Add -lpython2.6 to the linker opts of cppForSwig/Makefile.
 - [!] Armory incorrectly determines OSX data path and refuses to run.
 - see armoryengine.py:36 and armoryengine.py:775
 - OS_WINDOWS = 'win' in opsys.lower()
 - OS_LINUX = 'nix' in opsys.lower() or 'nux' in opsys.lower()
 - OS_MACOSX = 'mac' in opsys.lower() or 'osx' in opsys.lower()
 - There's a mess between 'win' and lowercase 'Darwin'. Use patches below.
 - Actual patches:
 - 1) Makefile patch:
 - --- Makefile.orig Sun Jan 22 05:11:09 2012
 - +++ Makefile Thu Feb 2 01:34:41 2012
 - @@ -1,6 +1,6 @@
 - COMPILER = g++
 - #COMPILER_OPTS = -c -g -Wall -D_DEBUG
 - -COMPILER_OPTS = -c -march=native -O2 -pipe
 - +COMPILER_OPTS = -c -O2 -pipe
 - LINKER = g++
 - @@ -19,8 +19,10 @@
 - ifneq (exists, $(shell [ -d /usr/include/python2.7 ] && echo exists ))
 - SWIG_INC = -I/usr/include/python2.6
 - + LIBRARY_OPTS = -lcryptopp -lpthread -lpython2.6
 - ifneq (exists, $(shell [ -d /usr/include/python2.6 ] && echo exists ))
 - SWIG_INC = -I/usr/include/python2.5
 - + LIBRARY_OPTS = -lcryptopp -lpthread -lpython2.5
 - endif
 - endif
 - @@ -38,25 +40,25 @@
 - # Rules for performing the compilation of each individual object file.
 - UniversalTimer.o: UniversalTimer.h UniversalTimer.cpp
 - - $(COMPILER) $(COMPILER_OPTS) $(INCLUDE_OPTS) $(LIBRARY_OPTS) UniversalTimer.cpp
 - + $(COMPILER) $(COMPILER_OPTS) $(INCLUDE_OPTS) UniversalTimer.cpp
 - BinaryData.o: BinaryData.h BinaryData.cpp BtcUtils.h
 - - $(COMPILER) $(COMPILER_OPTS) $(INCLUDE_OPTS) $(LIBRARY_OPTS) BinaryData.cpp
 - + $(COMPILER) $(COMPILER_OPTS) $(INCLUDE_OPTS) BinaryData.cpp
 - BtcUtils.o: BtcUtils.h BtcUtils.cpp
 - - $(COMPILER) $(COMPILER_OPTS) $(INCLUDE_OPTS) $(LIBRARY_OPTS) BtcUtils.cpp
 - + $(COMPILER) $(COMPILER_OPTS) $(INCLUDE_OPTS) BtcUtils.cpp
 - BlockObj.o: BinaryData.h BtcUtils.h BlockObjRef.h BlockObj.h BlockObj.cpp
 - - $(COMPILER) $(COMPILER_OPTS) $(INCLUDE_OPTS) $(LIBRARY_OPTS) BlockObj.cpp
 - + $(COMPILER) $(COMPILER_OPTS) $(INCLUDE_OPTS) BlockObj.cpp
 - BlockObjRef.o: BinaryData.h BtcUtils.h BlockObj.h BlockObjRef.h BlockObjRef.cpp
 - - $(COMPILER) $(COMPILER_OPTS) $(INCLUDE_OPTS) $(LIBRARY_OPTS) BlockObjRef.cpp
 - + $(COMPILER) $(COMPILER_OPTS) $(INCLUDE_OPTS) BlockObjRef.cpp
 - BlockUtils.o: BlockUtils.h BinaryData.h UniversalTimer.h BlockUtils.cpp
 - - $(COMPILER) $(COMPILER_OPTS) $(INCLUDE_OPTS) $(LIBRARY_OPTS) BlockUtils.cpp
 - + $(COMPILER) $(COMPILER_OPTS) $(INCLUDE_OPTS) BlockUtils.cpp
 - EncryptionUtils.o: BtcUtils.h BinaryData.h EncryptionUtils.h EncryptionUtils.cpp
 - - $(COMPILER) $(COMPILER_OPTS) $(INCLUDE_OPTS) $(LIBRARY_OPTS) EncryptionUtils.cpp
 - + $(COMPILER) $(COMPILER_OPTS) $(INCLUDE_OPTS) EncryptionUtils.cpp
 - CppBlockUtils_wrap.cxx: BlockUtils.h BinaryData.h BlockObj.h BlockObjRef.h UniversalTimer.h BlockUtils.h BlockUtils.cpp CppBlockUtils.i
 - swig $(SWIG_OPTS) -outdir ../ -v CppBlockUtils.i
 - 2) armoryengine.py patch:
 - --- armoryengine.py.orig Sun Jan 22 05:11:09 2012
 - +++ armoryengine.py Thu Feb 2 00:24:34 2012
 - @@ -106,9 +106,9 @@
 - # Get the host operating system
 - import platform
 - opsys = platform.system()
 - -OS_WINDOWS = 'win' in opsys.lower()
 - +OS_WINDOWS = 'win32' in opsys.lower() or 'windows' in opsys.lower()
 - OS_LINUX = 'nix' in opsys.lower() or 'nux' in opsys.lower()
 - -OS_MACOSX = 'mac' in opsys.lower() or 'osx' in opsys.lower()
 - +OS_MACOSX = 'darwin' in opsys.lower() or 'osx' in opsys.lower()
 - # Figure out the default directories for Satoshi client, and BicoinArmory
 - OS_NAME = ''
 - @@ -761,21 +761,12 @@
 - computed. Access to any information in the blockchain can be found via
 - the bdm object.
 - """
 - + global BTC_HOME_DIR
 - if blkfile==None:
 - if not USE_TESTNET:
 - - if 'win' in opsys.lower():
 - - blkfile = os.path.join(os.getenv('APPDATA'), 'Bitcoin', 'blk0001.dat')
 - - if 'nix' in opsys.lower() or 'nux' in opsys.lower():
 - - blkfile = os.path.join(os.getenv('HOME'), '.bitcoin', 'blk0001.dat')
 - - if 'mac' in opsys.lower() or 'osx' in opsys.lower():
 - - blkfile = os.path.expanduser('~/Library/Application Support/Bitcoin/blk0001.dat')
 - + blkfile = os.path.join(BTC_HOME_DIR, 'blk0001.dat')
 - else:
 - - if 'win' in opsys.lower():
 - - blkfile = os.path.join(os.getenv('APPDATA'), 'Bitcoin/testnet', 'blk0001.dat')
 - - if 'nix' in opsys.lower() or 'nux' in opsys.lower():
 - - blkfile = os.path.join(os.getenv('HOME'), '.bitcoin/testnet', 'blk0001.dat')
 - - if 'mac' in opsys.lower() or 'osx' in opsys.lower():
 - - blkfile = os.path.expanduser('~/Library/Application Support/Bitcoin/testnet/blk0001.dat')
 - + blkfile = os.path.join(BTC_HOME_DIR, 'testnet', 'blk0001.dat')
 - if not os.path.exists(blkfile):
 - raise FileExistsError, ('File does not exist: %s' % blkfile)
 
Advertisement
 
                    Add Comment                
                
                        Please, Sign In to add comment