Author

Topic: Armory - Discussion Thread - page 209. (Read 521829 times)

legendary
Activity: 1764
Merit: 1002
March 23, 2012, 08:43:42 AM
eto, did u see my post above about having an old Powerbook if u want it?
newbie
Activity: 41
Merit: 0
March 23, 2012, 07:05:40 AM
It worked! Thanks Eto, I'll try to donate when I get some more bitcoins. Good luck on the RAM.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
March 23, 2012, 06:57:53 AM
@Red Emerald,

Fantastic!  It sounds like we're converging on something!  Unfortunately, I will have to compile it myself in order to release actual binaries.  But perhaps it's possible to make a script to do it.  I think I will have to split off compile directions, since the existing directions seem to work for some versions of OSX, but then need your directions for others. 

@Torus,

Did your problem go away?  I can see a very minor bug in the code that might cause that to happen rarely and randomly.  I don't see why that last commit would make a difference, and it should work if you just close and reopen it...?  Either way, I made the super-simple fix and will commit it with the next batch of bug-fixes.

@Everyone else:

Today is my day to do RAM-reduction.  I don't know if I can get it done today, but I have a solid 8 hours of uninterrupted time to dive into the blockchain utilities and get it done!
hero member
Activity: 742
Merit: 500
March 23, 2012, 02:49:05 AM
I use OSX 10.6.8 with Xcode 4.0.2

My guess is that Lion comes with Python 2.7 whereas Snow Leopard came with Python 2.6.
Thus I'm using Python 2.7 from Homebrew.

Maybe you can try to switch the OSX Python version with the one from Homebrew?
I got it loading!

Code:
sudo ln -s /usr/local/Cellar/python/2.7.2/lib/libpython2.7.dylib /usr/lib/libpython2.7.dylib

And then I had to rebuild bsddb3

Alright this is awesome. Now I just need to get my watching wallet on here.  I'll send another donation soon! Got to go to sleep now.


EDIT: Here is what I did.
Code:
Prerequisites:
Mac OS 10.7.3
Xcode 4.0.3
Homebrew (http://mxcl.github.com/homebrew/)

Install homebrew packages:
brew update
brew install ccache # optional
# set up your path for ccache by following homebrew's instructions
brew install python cryptopp swig sip qt pyqt berkeley-db

Create symlinks to the homebrew python installation:
sudo mv /usr/include/python2.7{,.orig}
sudo mv /usr/lib/python2.7{,.orig}
sudo mv /usr/lib/libpython2.7.dylib{,.orig}
sudo ln -s `brew --cellar python`/2.7.2/include/python2.7 /usr/include/python2.7
sudo ln -s `brew --cellar python`/2.7.2/lib/python2.7 /usr/lib/python2.7
sudo ln -s `brew --cellar python`/2.7.2/lib/libpython2.7.dylib /usr/lib/libpython2.7.dylib
========================================================
Install twisted:
`brew --prefix`/share/python/easy_install-2.7 twisted

Install bsddb3:
export BERKELEYDB_INCDIR=`brew --cellar berkeley-db`/5.3.15/include
`brew --prefix`/share/python/easy_install-2.7 bsddb3

Clone Armory source code:
cd ~
git clone git://github.com/etotheipi/BitcoinArmory.git
cd ~/BitcoinArmory

Make SWIG Modules
export PYTHONPATH=`brew --prefix`/lib/python2.7/site-packages:$PYTHONPATH
export CFLAGS=”-arch x86_64″
export ARCHFLAGS=”-arch x86_64″
cd ~/BitcoinArmory/cppForSwig
make swig

Run Armory:
cd ~/BitcoinArmory
python ArmoryQt.py

Too Awesome. Can't sleep.  I realized I can import my small satoshi wallet and so I sent you another coin.

EDIT: I ran 'py2applet --make-setup ArmoryQt.py' and then 'python setup.py py2app -A' and it makes ArmoryQt.app and it works! However, I can't get it to work without the -A flag, so it isn't actually distributable.

Code:
$ python setup.py py2app
running py2app
creating /Users/bwstitt/BitcoinArmory/build/bdist.macosx-10.4-x86_64/python2.7-standalone/app
creating /Users/bwstitt/BitcoinArmory/build/bdist.macosx-10.4-x86_64/python2.7-standalone/app/collect
creating /Users/bwstitt/BitcoinArmory/build/bdist.macosx-10.4-x86_64/python2.7-standalone/app/temp
creating /Users/bwstitt/BitcoinArmory/dist
creating build/bdist.macosx-10.4-x86_64/python2.7-standalone/app/lib-dynload
creating build/bdist.macosx-10.4-x86_64/python2.7-standalone/app/Frameworks
*** using recipe: virtualenv ***
error: /usr/local/bin/../Cellar/python/2.7.2/share/sip: No such file or directory

I know sip is needed for qt.

Code:
"""
This is a setup.py script generated by py2applet

Usage:
    python setup.py py2app
"""

from setuptools import setup

APP = ['ArmoryQt.py']
DATA_FILES = []
OPTIONS = {'argv_emulation': True, 'includes':['sip']}

setup(
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)

It builds now, but It crashes immediately.  So much for sleep Smiley
hero member
Activity: 619
Merit: 500
March 23, 2012, 02:42:43 AM
I use OSX 10.6.8 with Xcode 4.0.2

My guess is that Lion comes with Python 2.7 whereas Snow Leopard came with Python 2.6.
Thus I'm using Python 2.7 from Homebrew.

Maybe you can try to switch the OSX Python version with the one from Homebrew?
hero member
Activity: 742
Merit: 500
March 23, 2012, 02:37:34 AM
Pulled the changes.
Swig builds fine on my machine.
But ArmoryQt.py does abort with an error
...
You got further than I did. What kind of system are you running?

Code:
$ python ArmoryQt.py 
********************************************************************************
Loading Armory Engine:
   Armory Version:       0.60
   PyBtcAddress Version: 1.00
   PyBtcWallet  Version: 1.35
Detected Operating system: Mac/OSX
   User home-directory   : /Users/bwstitt/Library/Application Support
   Satoshi BTC directory : /Users/bwstitt/Library/Application Support/Bitcoin/
   Satoshi blk0001.dat   : /Users/bwstitt/Library/Application Support/Bitcoin/blk0001.dat
   Armory home dir       : /Users/bwstitt/Library/Application Support/Armory/
Fatal Python error: Interpreter not initialized (version mismatch?)
Abort trap: 6

This is as far as I got when I got the -I and -L flags added to the Makefile.  I followed the directions, except I am running Mac Os 10.7.3 and Xcode 4.0.3.

I was running Xcode 4.0.1 before (didn't notice there were updates), and updating that got bsddb3 to install.

I also have ccache installed, but that shouldn't make a difference. It just saves me lots of time when I recompile.

If you get the RAM requirement down, I'd almost rather run Armory in a VM.  brew is nice, but yum and apt are a lot better since they install the system libraries instead of competing with them.
hero member
Activity: 619
Merit: 500
March 23, 2012, 01:13:17 AM
Pulled the changes.
Swig builds fine on my machine.
But ArmoryQt.py does abort with an error
Code:
Number of wallets read in: 1
   Wallet (SfVQTBew):      "Public Wallet"    (Encrypted)
Internet connection is Available:
Traceback (most recent call last):
  File "ArmoryQt.py", line 1620, in
    ignoreblk=options.ignoreblk)
  File "ArmoryQt.py", line 65, in __init__
    self.setupNetworking()
  File "ArmoryQt.py", line 549, in setupNetworking
    print 'Internet connection is Available: ', self.internetAvail
AttributeError: 'ArmoryMainWindow' object has no attribute 'internetAvail'

It worked until the commit
Code:
commit e7dd944676ac505e982ae7e06ba9275549e30995
Author: etotheipi
Date:   Thu Mar 22 23:55:30 2012 -0400

    Fixed Armory-wallet-file import bug in 0.60
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
March 22, 2012, 10:55:41 PM
I had just finished fixing that crypto++ problem too. Smiley Ah well a little thinking never hurt anyone.
Anyways I was wondering if you could shed some light on this problem I'm having importing my wallets. Every time i try I just get this error:
Code:
...

Thanks in advance!

Ahh yes, I introduced a silly bug in 0.60 when adding the wallet-migration and it's a super-easy fix.  In fact, I just changed two lines and pushed it to the repo.  Do a pull and try again.

Hope that helps!
newbie
Activity: 41
Merit: 0
March 22, 2012, 10:26:14 PM
I had just finished fixing that crypto++ problem too. Smiley Ah well a little thinking never hurt anyone.
Anyways I was wondering if you could shed some light on this problem I'm having importing my wallets. Every time i try I just get this error:
Code:
allets with blockchain...
Advanced
Handshake finished, connection open!
Reading wallet file: /media/Music_3.22.2012/Armory/armory_8RNp9sEw_.wallet
/media/Music_3.22.2012/Armory/armory_8RNp9sEw_.wallet
Unhandled Error
Traceback (most recent call last):
  File "ArmoryQt.py", line 1637, in
    sys.exit(app.exec_())
  File "/home/evan/Bit/qt4reactor.py", line 231, in _iterate
    self.runUntilCurrent()
--- ---
  File "/usr/lib64/python2.7/site-packages/twisted/internet/base.py", line 793, in runUntilCurrent
    call.func(*call.args, **call.kw)
  File "ArmoryQt.py", line 465, in execIntroDialog
    self.execImportWallet()
  File "ArmoryQt.py", line 1331, in execImportWallet
    self.execGetImportWltName()
  File "ArmoryQt.py", line 1356, in execGetImportWltName
    fname = self.getUniqueWalletFilename(dlg.importFile)
exceptions.NameError: global name 'dlg' is not defined
f9beb4d9

Thanks in advance!
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
March 22, 2012, 09:40:33 PM
New cryptoppstatic branch for Linux & OSX!

This is for Linux & OSX:  Please do a fresh checkout of Armory and do a "git checkout cryptoppstatic" to switch to the new branch.  Just pull in the new changes and try it again (git pull).  You should be able to follow the instructions exactly the same as before, but there will be no dependence on libcryptopp.so/.dylib.  This should clear up some OSX issues, and in Linux you should no longer need the "LD_PRELOAD" command.  

It will take longer to build the first time, because crypto++ will be compiled (it wasn't, before).  Then when Armory is built, it will include libcryptopp.a in the compilation, and never has to look for any cryptopp-related dynamic libraries or shared objects ever again!  

So far, this works fine on my linux system:  nearly transparent except for the first compile time.  The downside is that it increases the final shared object from 2 MB to 11 MB.  But that's  pennies, and acceptable considering all the problems I'm fixing!  If I hear that this solves some problems with OSX, I will merge it into master.  

EDIT:  I just tested it in Ubuntu 11.10 and it works fine without the LD_PRELOAD command.  So far, I'm not finding a downside! 
EDIT2:  I just merged it into master.  So don't even bother switching branches!
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
March 22, 2012, 08:46:26 PM
The only .so or .dylib files that I could find are
Code:
$ ls -lah /usr/lib | grep crypto
-rwxr-xr-x    1 root  group   3.2M Jun 25  2010 libcrypto.0.9.7.dylib
-rwxr-xr-x    1 root  gtoup   4.1M Apr 23  2011 libcrypto.0.9.8.dylib
-rwxr-xr-x    1 root  group   786K May 29  2009 libcrypto.0.9.dylib
lrwxr-xr-x    1 root  group    21B Jun  2  2011 libcrypto.dylib -> libcrypto.0.9.8.dylib

Well, that's confusing.  Is there a .dylib in the Armory directory?  There must be something else going on that I don't understand.  To clarify (torus), it works on your system and you can't find a libcryptopp.dylib anywhere?  I wonder what it's linking against... Maybe it got compiled somehow?  

Sounds like I should stop talking about static linking and finally do it.  I'll make a new branch and see if I can get the Makefile to work for this purpose.  Sooooo many compilation problems will go away.  Especially easy since I actually have all the Crypto++ source code in the project because it's needed for Windows, so I might as use it for the other platforms too.  It shouldn't be too hard:  I'll work on that right now.
hero member
Activity: 619
Merit: 500
March 22, 2012, 08:42:48 PM
The only .so or .dylib files that I could find are
Code:
$ ls -lah /usr/lib | grep crypto
-rwxr-xr-x    1 root  group   3.2M Jun 25  2010 libcrypto.0.9.7.dylib
-rwxr-xr-x    1 root  gtoup   4.1M Apr 23  2011 libcrypto.0.9.8.dylib
-rwxr-xr-x    1 root  group   786K May 29  2009 libcrypto.0.9.dylib
lrwxr-xr-x    1 root  group    21B Jun  2  2011 libcrypto.dylib -> libcrypto.0.9.8.dylib
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
March 22, 2012, 12:00:35 PM
hero member
Activity: 742
Merit: 500
March 22, 2012, 11:43:38 AM
Files with the .a extension means statically linked.  I have been thinking about doing that to avoid these problems in the future, but haven't done it yet.  Until then, the project is setup to use the -l options, which requires a .so or .dylib.  

You can do a 'find . | grep crypto' from any directory to search the entire subdir tree for a file with that name.  
Well that would be a problem.

I ran the find command from my homebrew folder.
Code:
$ find . | grep crypto
./Cellar/cryptopp
./Cellar/cryptopp/5.6.1
./Cellar/cryptopp/5.6.1/include
./Cellar/cryptopp/5.6.1/include/cryptopp
./Cellar/cryptopp/5.6.1/include/cryptopp/3way.h
./Cellar/cryptopp/5.6.1/include/cryptopp/adler32.h
./Cellar/cryptopp/5.6.1/include/cryptopp/aes.h
./Cellar/cryptopp/5.6.1/include/cryptopp/algebra.h
./Cellar/cryptopp/5.6.1/include/cryptopp/algparam.h
./Cellar/cryptopp/5.6.1/include/cryptopp/arc4.h
./Cellar/cryptopp/5.6.1/include/cryptopp/argnames.h
./Cellar/cryptopp/5.6.1/include/cryptopp/asn.h
./Cellar/cryptopp/5.6.1/include/cryptopp/authenc.h
./Cellar/cryptopp/5.6.1/include/cryptopp/base32.h
./Cellar/cryptopp/5.6.1/include/cryptopp/base64.h
./Cellar/cryptopp/5.6.1/include/cryptopp/basecode.h
./Cellar/cryptopp/5.6.1/include/cryptopp/bench.h
./Cellar/cryptopp/5.6.1/include/cryptopp/blowfish.h
./Cellar/cryptopp/5.6.1/include/cryptopp/blumshub.h
./Cellar/cryptopp/5.6.1/include/cryptopp/camellia.h
./Cellar/cryptopp/5.6.1/include/cryptopp/cast.h
./Cellar/cryptopp/5.6.1/include/cryptopp/cbcmac.h
./Cellar/cryptopp/5.6.1/include/cryptopp/ccm.h
./Cellar/cryptopp/5.6.1/include/cryptopp/channels.h
./Cellar/cryptopp/5.6.1/include/cryptopp/cmac.h
./Cellar/cryptopp/5.6.1/include/cryptopp/config.h
./Cellar/cryptopp/5.6.1/include/cryptopp/cpu.h
./Cellar/cryptopp/5.6.1/include/cryptopp/crc.h
./Cellar/cryptopp/5.6.1/include/cryptopp/cryptlib.h
./Cellar/cryptopp/5.6.1/include/cryptopp/default.h
./Cellar/cryptopp/5.6.1/include/cryptopp/des.h
./Cellar/cryptopp/5.6.1/include/cryptopp/dh.h
./Cellar/cryptopp/5.6.1/include/cryptopp/dh2.h
./Cellar/cryptopp/5.6.1/include/cryptopp/dll.h
./Cellar/cryptopp/5.6.1/include/cryptopp/dmac.h
./Cellar/cryptopp/5.6.1/include/cryptopp/dsa.h
./Cellar/cryptopp/5.6.1/include/cryptopp/eax.h
./Cellar/cryptopp/5.6.1/include/cryptopp/ec2n.h
./Cellar/cryptopp/5.6.1/include/cryptopp/eccrypto.h
./Cellar/cryptopp/5.6.1/include/cryptopp/ecp.h
./Cellar/cryptopp/5.6.1/include/cryptopp/elgamal.h
./Cellar/cryptopp/5.6.1/include/cryptopp/emsa2.h
./Cellar/cryptopp/5.6.1/include/cryptopp/eprecomp.h
./Cellar/cryptopp/5.6.1/include/cryptopp/esign.h
./Cellar/cryptopp/5.6.1/include/cryptopp/factory.h
./Cellar/cryptopp/5.6.1/include/cryptopp/files.h
./Cellar/cryptopp/5.6.1/include/cryptopp/filters.h
./Cellar/cryptopp/5.6.1/include/cryptopp/fips140.h
./Cellar/cryptopp/5.6.1/include/cryptopp/fltrimpl.h
./Cellar/cryptopp/5.6.1/include/cryptopp/gcm.h
./Cellar/cryptopp/5.6.1/include/cryptopp/gf256.h
./Cellar/cryptopp/5.6.1/include/cryptopp/gf2_32.h
./Cellar/cryptopp/5.6.1/include/cryptopp/gf2n.h
./Cellar/cryptopp/5.6.1/include/cryptopp/gfpcrypt.h
./Cellar/cryptopp/5.6.1/include/cryptopp/gost.h
./Cellar/cryptopp/5.6.1/include/cryptopp/gzip.h
./Cellar/cryptopp/5.6.1/include/cryptopp/hex.h
./Cellar/cryptopp/5.6.1/include/cryptopp/hmac.h
./Cellar/cryptopp/5.6.1/include/cryptopp/hrtimer.h
./Cellar/cryptopp/5.6.1/include/cryptopp/ida.h
./Cellar/cryptopp/5.6.1/include/cryptopp/idea.h
./Cellar/cryptopp/5.6.1/include/cryptopp/integer.h
./Cellar/cryptopp/5.6.1/include/cryptopp/iterhash.h
./Cellar/cryptopp/5.6.1/include/cryptopp/lubyrack.h
./Cellar/cryptopp/5.6.1/include/cryptopp/luc.h
./Cellar/cryptopp/5.6.1/include/cryptopp/mars.h
./Cellar/cryptopp/5.6.1/include/cryptopp/md2.h
./Cellar/cryptopp/5.6.1/include/cryptopp/md4.h
./Cellar/cryptopp/5.6.1/include/cryptopp/md5.h
./Cellar/cryptopp/5.6.1/include/cryptopp/mdc.h
./Cellar/cryptopp/5.6.1/include/cryptopp/misc.h
./Cellar/cryptopp/5.6.1/include/cryptopp/modarith.h
./Cellar/cryptopp/5.6.1/include/cryptopp/modes.h
./Cellar/cryptopp/5.6.1/include/cryptopp/modexppc.h
./Cellar/cryptopp/5.6.1/include/cryptopp/mqueue.h
./Cellar/cryptopp/5.6.1/include/cryptopp/mqv.h
./Cellar/cryptopp/5.6.1/include/cryptopp/nbtheory.h
./Cellar/cryptopp/5.6.1/include/cryptopp/network.h
./Cellar/cryptopp/5.6.1/include/cryptopp/nr.h
./Cellar/cryptopp/5.6.1/include/cryptopp/oaep.h
./Cellar/cryptopp/5.6.1/include/cryptopp/oids.h
./Cellar/cryptopp/5.6.1/include/cryptopp/osrng.h
./Cellar/cryptopp/5.6.1/include/cryptopp/panama.h
./Cellar/cryptopp/5.6.1/include/cryptopp/pch.h
./Cellar/cryptopp/5.6.1/include/cryptopp/pkcspad.h
./Cellar/cryptopp/5.6.1/include/cryptopp/polynomi.h
./Cellar/cryptopp/5.6.1/include/cryptopp/pssr.h
./Cellar/cryptopp/5.6.1/include/cryptopp/pubkey.h
./Cellar/cryptopp/5.6.1/include/cryptopp/pwdbased.h
./Cellar/cryptopp/5.6.1/include/cryptopp/queue.h
./Cellar/cryptopp/5.6.1/include/cryptopp/rabin.h
./Cellar/cryptopp/5.6.1/include/cryptopp/randpool.h
./Cellar/cryptopp/5.6.1/include/cryptopp/rc2.h
./Cellar/cryptopp/5.6.1/include/cryptopp/rc5.h
./Cellar/cryptopp/5.6.1/include/cryptopp/rc6.h
./Cellar/cryptopp/5.6.1/include/cryptopp/resource.h
./Cellar/cryptopp/5.6.1/include/cryptopp/rijndael.h
./Cellar/cryptopp/5.6.1/include/cryptopp/ripemd.h
./Cellar/cryptopp/5.6.1/include/cryptopp/rng.h
./Cellar/cryptopp/5.6.1/include/cryptopp/rsa.h
./Cellar/cryptopp/5.6.1/include/cryptopp/rw.h
./Cellar/cryptopp/5.6.1/include/cryptopp/safer.h
./Cellar/cryptopp/5.6.1/include/cryptopp/salsa.h
./Cellar/cryptopp/5.6.1/include/cryptopp/seal.h
./Cellar/cryptopp/5.6.1/include/cryptopp/secblock.h
./Cellar/cryptopp/5.6.1/include/cryptopp/seckey.h
./Cellar/cryptopp/5.6.1/include/cryptopp/seed.h
./Cellar/cryptopp/5.6.1/include/cryptopp/serpent.h
./Cellar/cryptopp/5.6.1/include/cryptopp/serpentp.h
./Cellar/cryptopp/5.6.1/include/cryptopp/sha.h
./Cellar/cryptopp/5.6.1/include/cryptopp/shacal2.h
./Cellar/cryptopp/5.6.1/include/cryptopp/shark.h
./Cellar/cryptopp/5.6.1/include/cryptopp/simple.h
./Cellar/cryptopp/5.6.1/include/cryptopp/skipjack.h
./Cellar/cryptopp/5.6.1/include/cryptopp/smartptr.h
./Cellar/cryptopp/5.6.1/include/cryptopp/socketft.h
./Cellar/cryptopp/5.6.1/include/cryptopp/sosemanuk.h
./Cellar/cryptopp/5.6.1/include/cryptopp/square.h
./Cellar/cryptopp/5.6.1/include/cryptopp/stdcpp.h
./Cellar/cryptopp/5.6.1/include/cryptopp/strciphr.h
./Cellar/cryptopp/5.6.1/include/cryptopp/tea.h
./Cellar/cryptopp/5.6.1/include/cryptopp/tiger.h
./Cellar/cryptopp/5.6.1/include/cryptopp/trdlocal.h
./Cellar/cryptopp/5.6.1/include/cryptopp/trunhash.h
./Cellar/cryptopp/5.6.1/include/cryptopp/ttmac.h
./Cellar/cryptopp/5.6.1/include/cryptopp/twofish.h
./Cellar/cryptopp/5.6.1/include/cryptopp/validate.h
./Cellar/cryptopp/5.6.1/include/cryptopp/vmac.h
./Cellar/cryptopp/5.6.1/include/cryptopp/wait.h
./Cellar/cryptopp/5.6.1/include/cryptopp/wake.h
./Cellar/cryptopp/5.6.1/include/cryptopp/whrlpool.h
./Cellar/cryptopp/5.6.1/include/cryptopp/winpipes.h
./Cellar/cryptopp/5.6.1/include/cryptopp/words.h
./Cellar/cryptopp/5.6.1/include/cryptopp/xtr.h
./Cellar/cryptopp/5.6.1/include/cryptopp/xtrcrypt.h
./Cellar/cryptopp/5.6.1/include/cryptopp/zdeflate.h
./Cellar/cryptopp/5.6.1/include/cryptopp/zinflate.h
./Cellar/cryptopp/5.6.1/include/cryptopp/zlib.h
./Cellar/cryptopp/5.6.1/INSTALL_RECEIPT.json
./Cellar/cryptopp/5.6.1/lib
./Cellar/cryptopp/5.6.1/lib/libcryptopp.a
./Cellar/cryptopp/5.6.1/LICENSE
./Cellar/cryptopp/5.6.1/README
./Cellar/openssl/0.9.8r/include/openssl/crypto.h
./Cellar/openssl/0.9.8r/lib/libcrypto.0.9.8.dylib
./Cellar/openssl/0.9.8r/lib/libcrypto.a
./Cellar/openssl/0.9.8r/lib/libcrypto.dylib
./Cellar/openssl/0.9.8r/lib/pkgconfig/libcrypto.pc
./Cellar/openssl/0.9.8r/share/man/man3/crypto.3
./Cellar/openssl/0.9.8r/share/man/man3/ERR_load_crypto_strings.3
./Cellar/openssl/0.9.8s/include/openssl/crypto.h
./Cellar/openssl/0.9.8s/lib/libcrypto.0.9.8.dylib
./Cellar/openssl/0.9.8s/lib/libcrypto.a
./Cellar/openssl/0.9.8s/lib/libcrypto.dylib
./Cellar/openssl/0.9.8s/lib/pkgconfig/libcrypto.pc
./Cellar/openssl/0.9.8s/share/man/man3/crypto.3ssl
./Cellar/openssl/0.9.8s/share/man/man3/ERR_load_crypto_strings.3ssl
./Cellar/pyqt/4.9.1/share/sip/QtCore/qcryptographichash.sip
./Cellar/qt/4.8.0/lib/QtCore.framework/Versions/4/Headers/qcryptographichash.h
./include/cryptopp
./lib/libcryptopp.a
./Library/Aliases/libcryptopp
./Library/Formula/cryptopp.rb
./Library/LinkedKegs/cryptopp
Should I try linking to the ones installed with openssl? pkgconfig and libcrypto.dylib are there.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
March 22, 2012, 11:30:38 AM
Could this be the file we are looking for:
Code:
$ ls -lah /usr/local/lib | grep crypto
lrwxr-xr-x    1 user  group    42B Feb  5 20:00 libcryptopp.a -> ../Cellar/cryptopp/5.6.1/lib/libcryptopp.a

Do you have
Code:
/usr/local/lib
in your path?
Code:
$ cat /etc/paths

Files with the .a extension means statically linked.  I have been thinking about doing that to avoid these problems in the future, but haven't done it yet.  Until then, the project is setup to use the -l options, which requires a .so or .dylib. 

You can do a 'find . | grep crypto' from any directory to search the entire subdir tree for a file with that name. 
hero member
Activity: 619
Merit: 500
March 22, 2012, 11:05:50 AM
Could this be the file we are looking for:
Code:
$ ls -lah /usr/local/lib | grep crypto
lrwxr-xr-x    1 user  group    42B Feb  5 20:00 libcryptopp.a -> ../Cellar/cryptopp/5.6.1/lib/libcryptopp.a

Do you have
Code:
/usr/local/lib
in your path?
Code:
$ cat /etc/paths
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
March 22, 2012, 09:09:19 AM
I have not upgraded to Lion yet so I can't reproduce.
...
Why does your installation only compile EncryptionUtils.cpp?

Regarding bsddb3, what error do you get? Did you pull the latest commit?

It looks to me like Red Emerald had already tried a few compilation steps, so all the .cpp's had already been compiled.  For whatever reason, only EncryptionUtils needed to be recompiled on this step (did you change something in that .cpp file?).  The real issue you are running into here is that linking is failing when trying to find libcryptopp.so (or whatever extension it is in OSX).  My guess is that you need a "-L" option in the make file to tell it where to find this non-standard library.  If it was brewed/installed already, it probably exists somewhere like /usr/local/brew/cryptopp/libcryptopp.dylib, in which case you can modify the makefile to say:

Code:
-L/usr/local/brew/cryptopp -lcryptopp

That says that it needs to link with "cryptopp" (i.e. it should look for libcryptopp.dylib somewhere), and then the -L tells it where it might find it.  Figure out where it is, then plug in the correct path.  If it is a "default" location for cryptopp when using homebrew, then let me know where that is, I might be able to modify the makefile to accommodate...

Btw, a long time ago, Swift Geek helped me setup a cmake system for Armory.  It was still around version 0.51, and I don't know if it worked. It didn't solve the problem I had been working on that day, so I simply switched back to master and kept developing.  Who knows, maybe it will improve the OSX compiling.  If someone has some patience to try it with that branch, and it happens to resolve a lot of problems, I can look into merging it into master.
hero member
Activity: 619
Merit: 500
March 22, 2012, 08:13:51 AM
I have not upgraded to Lion yet so I can't reproduce.
The problem seems to be in the first few actions. This is how the log looks on my machine
Code:
$ make swig
g++  -c -O2 -pipe  -I/usr/include/cryptopp -Icryptopp -fPIC -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS  UniversalTimer.cpp
g++  -c -O2 -pipe  -I/usr/include/cryptopp -Icryptopp -fPIC -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS  BinaryData.cpp
g++  -c -O2 -pipe  -I/usr/include/cryptopp -Icryptopp -fPIC -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS  BtcUtils.cpp
g++  -c -O2 -pipe  -I/usr/include/cryptopp -Icryptopp -fPIC -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS  BlockObj.cpp
g++  -c -O2 -pipe  -I/usr/include/cryptopp -Icryptopp -fPIC -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS  BlockObjRef.cpp
g++  -c -O2 -pipe  -I/usr/include/cryptopp -Icryptopp -fPIC -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS  BlockUtils.cpp
g++  -c -O2 -pipe  -I/usr/include/cryptopp -Icryptopp -fPIC -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS  EncryptionUtils.cpp
swig -c++ -python -classic -outdir ../ -v CppBlockUtils.i
Language subdirectory: python

Why does your installation only compile EncryptionUtils.cpp?

Regarding bsddb3, what error do you get? Did you pull the latest commit?
hero member
Activity: 742
Merit: 500
March 21, 2012, 11:59:51 PM
TorusJKL just submitted a pull request, for a small change to the wallet-migration code that will allow it work on OSX.  I'll update and push that change, now.

In his pull request, I see that he created a paste:  Building Bitcoin Armory on Mac OS X 10.6.x using Homebrew.   It looks more complete than the instructions I have had posted, so it might be worth trying (Splatster!).   Please, someone look at that and tell me if it works!


No luck on Lion Sad

I can't get bsddb3 or cppForSwig to build

Quote
$ make swig
g++  -c -O2 -pipe  -I/usr/include/cryptopp -Icryptopp -fPIC -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS  EncryptionUtils.cpp
swig -c++ -python -classic -outdir ../ -v CppBlockUtils.i
Language subdirectory: python
Search paths:
   ./
   ./swig_lib/python/
   /Users/bwstitt/.homebrew/Cellar/swig/2.0.4/share/swig/2.0.4/python/
   ./swig_lib/
   /Users/bwstitt/.homebrew/Cellar/swig/2.0.4/share/swig/2.0.4/
Preprocessing...
Starting language-specific parse...
EncryptionUtils.h:178: Warning 362: operator= ignored
Processing types...
EncryptionUtils.h:133: Warning 402: Base class 'BinaryData' is incomplete.
BtcUtils.h:58: Warning 402: Only forward declaration 'BinaryData' was found.
C++ analysis...
Generating wrappers...
BlockObj.h:76: Warning 509: Overloaded method BlockHeader::BlockHeader(BinaryData const *) effectively ignored,
BlockObj.h:73: Warning 509: as it is shadowed by BlockHeader::BlockHeader(BinaryData const &).
BlockUtils.h:265: Warning 472: Overloaded method BtcAddress::BtcAddress(BinaryData) with no explicit typecheck typemap for arg 0 of type 'BinaryData'
BlockUtils.h:265: Warning 472: Overloaded method BtcAddress::BtcAddress(BinaryData) with no explicit typecheck typemap for arg 0 of type 'BinaryData'
BlockUtils.h:265: Warning 472: Overloaded method BtcAddress::BtcAddress(BinaryData) with no explicit typecheck typemap for arg 0 of type 'BinaryData'
BlockUtils.h:265: Warning 472: Overloaded method BtcAddress::BtcAddress(BinaryData) with no explicit typecheck typemap for arg 0 of type 'BinaryData'
BlockUtils.h:265: Warning 472: Overloaded method BtcAddress::BtcAddress(BinaryData) with no explicit typecheck typemap for arg 0 of type 'BinaryData'
BlockUtils.h:306: Warning 509: Overloaded method BtcAddress::addTxIO(TxIOPair &) effectively ignored,
BlockUtils.h:305: Warning 509: as it is shadowed by BtcAddress::addTxIO(TxIOPair *).
BlockUtils.h:305: Warning 509: Overloaded method BtcAddress::addTxIO(TxIOPair *,bool) effectively ignored,
BlockUtils.h:306: Warning 509: as it is shadowed by BtcAddress::addTxIO(TxIOPair &,bool).
BlockUtils.h:346: Warning 472: Overloaded method BtcWallet::addAddress(BinaryData) with no explicit typecheck typemap for arg 1 of type 'BinaryData'
BlockUtils.h:346: Warning 472: Overloaded method BtcWallet::addAddress(BinaryData) with no explicit typecheck typemap for arg 1 of type 'BinaryData'
BlockUtils.h:346: Warning 472: Overloaded method BtcWallet::addAddress(BinaryData) with no explicit typecheck typemap for arg 1 of type 'BinaryData'
BlockUtils.h:346: Warning 472: Overloaded method BtcWallet::addAddress(BinaryData) with no explicit typecheck typemap for arg 1 of type 'BinaryData'
BlockUtils.h:346: Warning 472: Overloaded method BtcWallet::addAddress(BinaryData) with no explicit typecheck typemap for arg 1 of type 'BinaryData'
BlockUtils.h:627: Warning 472: Overloaded method BlockDataManager_FullRAM::addNewBlockData(BinaryData) with no explicit typecheck typemap for arg 1 of type 'BinaryData'
BlockUtils.h:627: Warning 472: Overloaded method BlockDataManager_FullRAM::addNewBlockData(BinaryData) with no explicit typecheck typemap for arg 1 of type 'BinaryData'
BtcUtils.h:915: Warning 472: Overloaded method BtcUtils::verifyProofOfWork(BinaryDataRef,BinaryDataRef) with no explicit typecheck typemap for arg 0 of type 'BinaryData'
g++  -I/usr/include/python2.7 -c -O2 -pipe  -I/usr/include/cryptopp -Icryptopp -fPIC -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS  -lcryptopp -lpthread -lpython2.7 CppBlockUtils_wrap.cxx
i686-apple-darwin11-llvm-g++-4.2: -lcryptopp: linker input file unused because linking not done
i686-apple-darwin11-llvm-g++-4.2: -lpthread: linker input file unused because linking not done
i686-apple-darwin11-llvm-g++-4.2: -lpython2.7: linker input file unused because linking not done
In file included from /usr/include/python2.7/Python.h:127,
                 from CppBlockUtils_wrap.cxx:151:
/usr/include/python2.7/modsupport.h:27: warning: ‘PyArg_ParseTuple’ is an unrecognized format function type
i686-apple-darwin11-llvm-g++-4.2: -lcryptopp: linker input file unused because linking not done
i686-apple-darwin11-llvm-g++-4.2: -lpthread: linker input file unused because linking not done
i686-apple-darwin11-llvm-g++-4.2: -lpython2.7: linker input file unused because linking not done
#g++  -c -O2 -pipe  -I/usr/include/cryptopp -Icryptopp -fPIC -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS  -lcryptopp -lpthread -lpython2.7 ECDSA_cryptopp.cpp
#g++  -o ECDSA_test.out -I/usr/include/cryptopp -Icryptopp -fPIC -DUSE_CRYPTOPP -D__STDC_LIMIT_MACROS  -lcryptopp -lpthread -lpython2.7 ECDSA_cryptopp.cpp
g++ -shared -lcryptopp -lpthread -lpython2.7 UniversalTimer.o BinaryData.o BtcUtils.o BlockObj.o BlockObjRef.o BlockUtils.o EncryptionUtils.o CppBlockUtils_wrap.o -o ../_CppBlockUtils.so
ld: library not found for -lcryptopp
collect2: ld returned 1 exit status
make: *** [swig] Error 1


Also, bitcoinarmory.com's download page still points to .56-alpha, not .60-alpha
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
March 21, 2012, 09:00:56 PM
TorusJKL just submitted a pull request, for a small change to the wallet-migration code that will allow it work on OSX.  I'll update and push that change, now.

In his pull request, I see that he created a paste:  Building Bitcoin Armory on Mac OS X 10.6.x using Homebrew.   It looks more complete than the instructions I have had posted, so it might be worth trying (Splatster!).   Please, someone look at that and tell me if it works!

Jump to: