Pages:
Author

Topic: Building Armory on OSX - page 4. (Read 32281 times)

hero member
Activity: 742
Merit: 500
December 04, 2012, 04:07:18 PM
Bug report:
OS: Mac OSX 10.8.2
Armory Version:       0.85
PyBtcWallet  Version: 1.35

Armory just loses connected and it seems like it is infinite loop, that just keeps printing this out over and over, but it never crashes completely and sometimes after 10mins of this it will reconnect and work with no problem.
 
Code:
ERROR) armoryengine.py:10344 - Waiting for BDM output that didn't come after 10s.
(ERROR) armoryengine.py:10345 - BDM state is currently: BlockchainReady
(ERROR) armoryengine.py:10346 - Called from: armoryengine.py:10471 (30189323)
(ERROR) armoryengine.py:10347 - BDM currently doing: ReadBlkUpdate (30189323)
(ERROR) armoryengine.py:10348 - Direct traceback
  File "/usr/local/share/armory/ArmoryQt.py", line 3629, in
    os._exit(QAPP.exec_())
  File "/usr/local/Cellar/armory-qt/beta/share/armory/qt4reactor.py", line 231, in _iterate
    self.runUntilCurrent()
  File "/usr/local/lib/python2.7/site-packages/twisted/internet/base.py", line 800, in runUntilCurrent
    call.func(*call.args, **call.kw)
  File "/usr/local/share/armory/ArmoryQt.py", line 3247, in Heartbeat
    newBlocks = TheBDM.readBlkFileUpdate(wait=True)
  File "/usr/local/Cellar/armory-qt/beta/share/armory/armoryengine.py", line 10471, in readBlkFileUpdate
    return self.waitForOutputIfNecessary(expectOutput, rndID)
  File "/usr/local/Cellar/armory-qt/beta/share/armory/armoryengine.py", line 10349, in waitForOutputIfNecessary
    traceback.print_stack()
(ERROR) armoryengine.py:10350 - Traceback:
Traceback (most recent call last):
  File "/usr/local/Cellar/armory-qt/beta/share/armory/armoryengine.py", line 10340, in waitForOutputIfNecessary
    return self.outputQueue.get(True, MT_WAIT_TIME_SEC)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/Queue.py", line 176, in get
    raise Empty
Empty
What version of bitcoind?  Was bitcoind doing anything at the time? Was it responsive (to a command like getinfo) while this was happening?
legendary
Activity: 1498
Merit: 1000
December 04, 2012, 03:50:28 PM
Bug report:
OS: Mac OSX 10.8.2
Armory Version:       0.85
PyBtcWallet  Version: 1.35

Armory just loses connected and it seems like it is infinite loop, that just keeps printing this out over and over, but it never crashes completely and sometimes after 10mins of this it will reconnect and work with no problem.
 
Code:
ERROR) armoryengine.py:10344 - Waiting for BDM output that didn't come after 10s.
(ERROR) armoryengine.py:10345 - BDM state is currently: BlockchainReady
(ERROR) armoryengine.py:10346 - Called from: armoryengine.py:10471 (30189323)
(ERROR) armoryengine.py:10347 - BDM currently doing: ReadBlkUpdate (30189323)
(ERROR) armoryengine.py:10348 - Direct traceback
  File "/usr/local/share/armory/ArmoryQt.py", line 3629, in
    os._exit(QAPP.exec_())
  File "/usr/local/Cellar/armory-qt/beta/share/armory/qt4reactor.py", line 231, in _iterate
    self.runUntilCurrent()
  File "/usr/local/lib/python2.7/site-packages/twisted/internet/base.py", line 800, in runUntilCurrent
    call.func(*call.args, **call.kw)
  File "/usr/local/share/armory/ArmoryQt.py", line 3247, in Heartbeat
    newBlocks = TheBDM.readBlkFileUpdate(wait=True)
  File "/usr/local/Cellar/armory-qt/beta/share/armory/armoryengine.py", line 10471, in readBlkFileUpdate
    return self.waitForOutputIfNecessary(expectOutput, rndID)
  File "/usr/local/Cellar/armory-qt/beta/share/armory/armoryengine.py", line 10349, in waitForOutputIfNecessary
    traceback.print_stack()
(ERROR) armoryengine.py:10350 - Traceback:
Traceback (most recent call last):
  File "/usr/local/Cellar/armory-qt/beta/share/armory/armoryengine.py", line 10340, in waitForOutputIfNecessary
    return self.outputQueue.get(True, MT_WAIT_TIME_SEC)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/Queue.py", line 176, in get
    raise Empty
Empty
hero member
Activity: 742
Merit: 500
December 04, 2012, 01:51:10 PM
It does not look like making an app is that hard - I made one by accident the other day Smiley

While looking for a solution to the printing problem in Mac OS X, I found a small test example showing a similar problem.  The test example consists of three small source files, bulding into a .app !

You can find the files print.pro, print.h and main.cpp here: https://bugreports.qt-project.org/browse/QTBUG-17913
Then you just type "qmake" at the command line, and qmake writes a Makefile.  The Makefile then builds print.app

It should be possible to work out how the Makefile does it, at least if you cheat and look in the print.app directory as well.  The "Application Bundle" (.app) is a directory that MacOS insists on showing like a file.  I don't know if it is the .app suffix or a special file attribute that does the hiding.


Thanks.  I'll play with this later tonight.  It's easy to build a generic .app, but it becomes harder when it has to include python and pyqt.

The .app suffix is just a suffix.  You can name any folder.app and if it has the right structure, it will run.

Just tried Red Emerald's brew tap.  It works as expected, thanks a lot!

Regarding the trust chain:  I think it would be a good idea if etotheipi publishes the SHA hash of Red Emerald's brew script on his web page.  Then users can verify that script, and as the script contains the SHA of the downloaded tar file, that is automatically verified as well.  The only remaining attack vector is then malicious code put into some of the dependencies, but that would then almost have to be done by somebody outside the bitcoin ecosystem.  I am not sufficiently paranoid to worry about that.

Of course etotheipi or Red Emerald could SHA sign all the dependencies as well, but that would honestly be a PITA since they are updated without warning.

Glad it worked for you!

A hash of the formula could work.  That would be easy to verify.  I'm hesitant to write a script to do all of the validation since it seems like if someone is in place to maliciously modify a package, they might also be able to modify the check script.  Of course if it's something as simple as fetching a signed hash from etotheipi's site and making sure it matches the local hash, this should be easy to do in a single line.

Code:
$ brew fetch --deps Wysenynja/bitcoin/armory-qt
Fetching: armory-qt, cryptopp, pcre, swig, sip, libpng, qt, pyqt
==> Downloading https://github.com/etotheipi/BitcoinArmory/archive/v0.85-beta.tar.gz
Already downloaded: /Library/Caches/Homebrew/armory-qt-v0.85-beta.tar.gz
MD5:  762e5d0f5c4816cc1686aecd32c9a2a8
SHA1: 26354bdb5096ea4a9aeccbf1c80e103fb89c72a1
SHA256: 2102ad70e05567de07a985dc53a1b41d373649a8a5e7c82387d2ef4192d5c3fb
==> Downloading http://downloads.sourceforge.net/project/cryptopp/cryptopp/5.6.1/cryptopp561.zip
######################################################################## 100.0%
Downloaded to: /Library/Caches/Homebrew/cryptopp-5.6.1.zip
MD5:  96cbeba0907562b077e26bcffb483828
SHA1: 31dbb456c21f50865218c57b7eaf4c955a222ba1
SHA256: 98e74d8cb17a38033354519ac8ba9c5d98a6dc00bf5d1ec3c533c2e8ec86f268
==> Downloading ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.31.tar.bz2
Already downloaded: /Library/Caches/Homebrew/pcre-8.31.tar.bz2
MD5:  1c9a276af932b5599157f96e945391f0
SHA1: 1132276bb8bea7cb0662210fb812fbef7791621f
SHA256: 5778a02535473c7ee7838ea598c19f451e63cf5eec0bf0307a688301c9078c3c
==> Downloading http://downloads.sourceforge.net/project/swig/swig/swig-2.0.8/swig-2.0.8.tar.gz
Already downloaded: /Library/Caches/Homebrew/swig-2.0.8.tar.gz
MD5:  69f917e870efc0712c06ab53217b28d1
SHA1: 763305da320163903c69c1cdfbf9a942117d9ace
SHA256: aeeefa20bbe1c03bacf23f0af9e7d6193e8b807b7585470615b71b1ee0c8ca4f
==> Downloading http://www.riverbankcomputing.co.uk/hg/sip/archive/4.13.3.tar.gz
Already downloaded: /Library/Caches/Homebrew/sip-4.13.3.tar.gz
MD5:  b5740125c635f796a72c140f2a2e48c5
SHA1: 672f0bd9c13860979ab2a7753b2bf91475a4deeb
SHA256: baedbc8ba8657ded7e8831c35a6af118e50a9d95f9c90c0fa39cc3c392ddaf1a
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/libpng-1.5.13.mountainlion.bottle.tar.gz
Already downloaded: /Library/Caches/Homebrew/libpng-1.5.13.mountainlion.bottle.tar.gz
MD5:  18dae128d2cb1b7d23b5d08b008d1f8b
SHA1: 382eb757c38a4c326410a42deab8b4a8c22a6c13
SHA256: 88e5015ac3858cdc39431f1ce781c89bf1bffe09963573b8df83125095a65f23
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/qt-4.8.3.mountainlion.bottle.tar.gz
Already downloaded: /Library/Caches/Homebrew/qt-4.8.3.mountainlion.bottle.tar.gz
MD5:  0878f24da24c8398574a41d86fc6ef14
SHA1: ff488747325cd6771fbf0b79156fd3833ff3af63
SHA256: 47943315ea7cca39075611cdfb35fe6b1ab451436bda099c00c02ca2d291928d
==> Downloading http://downloads.sf.net/project/pyqt/PyQt4/PyQt-4.9.4/PyQt-mac-gpl-4.9.4.tar.gz
Already downloaded: /Library/Caches/Homebrew/pyqt-4.9.4.tar.gz
MD5:  e31dae8ff5294086ed5de6b9a4215b1b
SHA1: 3fe827fed91ec710746fa980f433313dfec2d5fd
SHA256: f7c21007277fb8e8e90f1d55ed96bda8d5f08f1c2b78cf39928416bcdb24b70e
Brew does make this pretty easy.  Etotheipi or I could sign that, but it would change a lot as brew updates VERY frequently.  It also wouldn't catch a malicious formula (although as I said earlier, that is extremely paranoid).
hero member
Activity: 547
Merit: 500
Decor in numeris
December 04, 2012, 06:13:56 AM
Just tried Red Emerald's brew tap.  It works as expected, thanks a lot!

Regarding the trust chain:  I think it would be a good idea if etotheipi publishes the SHA hash of Red Emerald's brew script on his web page.  Then users can verify that script, and as the script contains the SHA of the downloaded tar file, that is automatically verified as well.  The only remaining attack vector is then malicious code put into some of the dependencies, but that would then almost have to be done by somebody outside the bitcoin ecosystem.  I am not sufficiently paranoid to worry about that.

Of course etotheipi or Red Emerald could SHA sign all the dependencies as well, but that would honestly be a PITA since they are updated without warning.
hero member
Activity: 547
Merit: 500
Decor in numeris
December 04, 2012, 05:23:39 AM
It does not look like making an app is that hard - I made one by accident the other day Smiley

While looking for a solution to the printing problem in Mac OS X, I found a small test example showing a similar problem.  The test example consists of three small source files, bulding into a .app !

You can find the files print.pro, print.h and main.cpp here: https://bugreports.qt-project.org/browse/QTBUG-17913
Then you just type "qmake" at the command line, and qmake writes a Makefile.  The Makefile then builds print.app

It should be possible to work out how the Makefile does it, at least if you cheat and look in the print.app directory as well.  The "Application Bundle" (.app) is a directory that MacOS insists on showing like a file.  I don't know if it is the .app suffix or a special file attribute that does the hiding.
hero member
Activity: 742
Merit: 500
December 04, 2012, 03:21:48 AM
Okay.  I've added a lot more detail to the gist.  Let me know if I should add more.

https://gist.github.com/4200620
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
December 04, 2012, 02:21:21 AM
Brew and xcode need to be installed first.  I can add that to the directions, if you think I should.

You should link to this gist rather than the forum post: https://gist.github.com/4200620

I'll keep it up to date, and its easier for people to see changes there.

Yeah, I think it should be there.  I want there to be a clear path to success for anyone who is determined.  I don't expect all OSX users to type commands into this mysitical black box (terminal) to get some program they've only heard about -- but I want it to be as straightforward as possible -- no missing steps -- for users who are determined to get Armory, but have no experience with this stuff.

It's probably just a transient solution.  I'm sure we'll find a way to bundle it up...eventually.  On that note, here is a message that jim618 (creator of Multibit) sent me after I requested some help.  I apologize in advance for posting a PM in a public thread without permission, but I'm sure he'll forgive me Smiley

Quote from: jim618
The packaging for OSX is not too bad. I have not done the app developer signing yet but here is how I have done the basic packaging.

The 'app' file that users double click to start your application is just a directory in a very particular format specified by Apple.
The easiest way to get one working is to simply reverse engineer an existing one and tweak it.
In my build I have a skeleton app in source control and then just add the built MultiBit jar as a 'payload'.

The skeleton is here:
https://github.com/jim618/multibit/tree/v0.5/src/app-resources

Also the app configuration and metadata is in the /Contents/Info.plist - that is the place to put the bitcoin URI binding etc.

You can create your app directory manually and get it to work, and then you have something concrete for your build to create. That's what I did.

Once you have an Armory app directory in the correct format (OSX shows it as a single file but it is really a directory) you have your working app. You could actually distribute it like that but the Mac convention is to have a disk image (a DMG file) with:
1) the app
2) a shortcut to the applications dir so that the user can drag the app in
3) readme/ licensing/ whatever

To create the DMG file I use the command 'hdiutil' in my project build file:
https://github.com/jim618/multibit/blob/v0.5/pom.xml

if you search for 'create-mac-dmg'. It is all unix commands wrapped up in ant so you can probably do something similar.
hero member
Activity: 742
Merit: 500
December 04, 2012, 02:02:15 AM
Do your commands work on a fresh install of OSX without having brew or xcode previously installed?  It looks like they depend on brew being installed already (I had actually installed it in my VM before, which is why it worked).  Just need a reminder of how to get those pre-reqs installed...

Perhaps you could also keep the almost-top post updated with the latest instructions and I'll just link to that from the BitcoinArmory.com page.  They wouldn't have to be updated often (and I'll remind you when they do Smiley).  I just want something to link to from the building-from-source page, and I don't think it makes sense for me to maintain it, if you don't mind doing it yourself.  It also makes sure users are aware that it didn't come directly from me...


Brew and xcode need to be installed first.  I can add that to the directions, if you think I should.

You should link to this gist rather than the forum post: https://gist.github.com/4200620

I'll keep it up to date, and its easier for people to see changes there.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
December 04, 2012, 01:50:27 AM
Do your commands work on a fresh install of OSX without having brew or xcode previously installed?  It looks like they depend on brew being installed already (I had actually installed it in my VM before, which is why it worked).  Just need a reminder of how to get those pre-reqs installed...

Perhaps you could also keep the almost-top post updated with the latest instructions and I'll just link to that from the BitcoinArmory.com page.  They wouldn't have to be updated often (and I'll remind you when they do Smiley).  I just want something to link to from the building-from-source page, and I don't think it makes sense for me to maintain it, if you don't mind doing it yourself.  It also makes sure users are aware that it didn't come directly from me...

hero member
Activity: 742
Merit: 500
December 04, 2012, 01:10:27 AM
Some users still want to exercise some degree of due diligence on the install process for sanity's sake.  Not to mention, they may be using this script to setup an soon-to-be-offline OSX system...
Definitely a good idea to be paranoid with financial software.  I imagine the number of offline osx systems is going to be tiny.  Seems like linux would make more sense for the paranoid since it's possible to audit the entire codebase.

Quote
I just need to dig in a bit more to see what it's doing before I can "bless it".  On that note, I just ran your 4-5 commands in my OSX VM ... slow as dirt (I think it's the VM), but it did work.  I'm looking at an Armory wallet and a couple tx in OSX.  I was at least able to get into the paper backup dialog so I could copy down the characters by hand, if necessary.
Sounds good.  Let me know if you have any questions.  Brew formula are pretty simple.  No need to know Ruby or really even how to program.  VMs are almost always slower than a native machine.  It should work to test though.  I still have a problem where the text is cropped a bit until I resize the window.  I'm sure its one of many OSX pyqt bugs that has little to do with your code, but you should be able to see the weird UI issues on your VM.

Quote
Very cool!  Thanks for doing this Red Emerald.  You have made it possible for even-mildly-determined users to get access to Armory!  (maybe I'll change the donation address to point to you when OS_MACOSX is detected, for one release cycle Smiley)
Thanks for the awesome client!  Without armory I'm not sure how I would store my savings securely.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
December 04, 2012, 12:53:57 AM
Do you think it would be [reasonably] possible to create a .dmg with all the dependencies?  Or is it a s***load of code to bundle?  It sounds like the script that goes and picks up the dependencies from brew is ideal, efficiency-wise, but does leave open subtle attack vectors (poisoning brew modules?).  I don't know ... I really want to support OSX users, but I have so little OSX experience...
The dmg isn't the hard part.  Getting it into an app is the hard part.  I haven't experimented too much recently, but it was a PITA previously and I never really got it working.  I'll look at how electrum does it and try it again when I get the time.

I think a poisoned brew formula is highly unlikely.  The security paranoid could check hashes for all of the modules if they wish.  Brew can output a list of all the dependencies and you could check all of their hashes.  A script could feasibly be written to do this, but IMHO, it doesn't really matter.  Any significant amount of funds should be on an offline computer.

Some users still want to exercise some degree of due diligence on the install process for sanity's sake.  Not to mention, they may be using this script to setup an soon-to-be-offline OSX system...

I just need to dig in a bit more to see what it's doing before I can "bless it".  On that note, I just ran your 4-5 commands in my OSX VM ... slow as dirt (I think it's the VM), but it did work.  I'm looking at an Armory wallet and a couple tx in OSX.  I was at least able to get into the paper backup dialog so I could copy down the characters by hand, if necessary.

Very cool!  Thanks for doing this Red Emerald.  You have made it possible for even-mildly-determined users to get access to Armory!  (maybe I'll change the donation address to point to you when OS_MACOSX is detected, for one release cycle Smiley)

hero member
Activity: 742
Merit: 500
December 04, 2012, 12:39:30 AM
The instructions you have posted on your website under "User “Red Emerald” provided the following variant for Mac OSX 10.7.3 with Xcode 4.0.3."  are from Lion and involve making symlinks and such which since then I've decided are a bad idea and they also still reference berkeley-db.

I posted updated instructions that work on Mountain Lion and probably Lion and anywhere else brew runs.  These should definitely replace the Lion instructions you have from me.  The segfault I mention is that broken wallet I sent you that I still haven't had time to dig into.

Oh, I forgot about the building-from-source page, there.  I updated the "Get Armory" page to link to one of your posts, but that should be updated as well.  I'm wondering if there is a more auto-up-to-date way we can have your solution linked from that page.

Also, I should investigate if there's a way for me to "approve" of a particular version of your build scripts.  Perhaps, a "formula" that I can manually verify is getting the code from github, and compiling everything from brew, and then put my GPG signature on it.  Not that I don't trust you, but I'm sure that you understand I don't want to sign a script that has an arbitrary download link on it that could be swapped out from under me/you/us (besides github links).

Or maybe you could help figure out a way to bundle it in a more-convenient way.  It's a lot easier for me to verify a solution, than it is to come up with it from scratch...
If you `brew cat wysenynja/bitcoin/armory-qt` you can see what the (very short) formula does.  It even has the hash of the tar.gz from github in it so if someone changes the link, brew will give an error.

If you `brew fetch wysenynja/bitcoin/armory-qt` it will output the url and the hashes for the downloaded file without installing it.

You could also fork my bitcoin tap and use git to sign those release commits.

Do you think it would be [reasonably] possible to create a .dmg with all the dependencies?  Or is it a s***load of code to bundle?  It sounds like the script that goes and picks up the dependencies from brew is ideal, efficiency-wise, but does leave open subtle attack vectors (poisoning brew modules?).  I don't know ... I really want to support OSX users, but I have so little OSX experience...
The dmg isn't the hard part.  Getting it into an app is the hard part.  I haven't experimented too much recently, but it was a PITA previously and I never really got it working.  I'll look at how electrum does it and try it again when I get the time.

I think a poisoned brew formula is highly unlikely.  The security paranoid could check hashes for all of the modules if they wish.  Brew can output a list of all the dependencies and you could check all of their hashes.  A script could feasibly be written to do this, but IMHO, it doesn't really matter.  Any significant amount of funds should be on an offline computer.

Here is a gist with my osx instructions for the people that want to do it all by hand. https://gist.github.com/4200620

I would definitely recommend the brew tap though as it is much easier and sets up a nice "ArmoryQt.command" for you
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
December 04, 2012, 12:21:27 AM
The instructions you have posted on your website under "User “Red Emerald” provided the following variant for Mac OSX 10.7.3 with Xcode 4.0.3."  are from Lion and involve making symlinks and such which since then I've decided are a bad idea and they also still reference berkeley-db.

I posted updated instructions that work on Mountain Lion and probably Lion and anywhere else brew runs.  These should definitely replace the Lion instructions you have from me.  The segfault I mention is that broken wallet I sent you that I still haven't had time to dig into.

Oh, I forgot about the building-from-source page, there.  I updated the "Get Armory" page to link to one of your posts, but that should be updated as well.  I'm wondering if there is a more auto-up-to-date way we can have your solution linked from that page.

Also, I should investigate if there's a way for me to "approve" of a particular version of your build scripts.  Perhaps, a "formula" that I can manually verify is getting the code from github, and compiling everything from brew, and then put my GPG signature on it.  Not that I don't trust you, but I'm sure that you understand I don't want to sign a script that has an arbitrary download link on it that could be swapped out from under me/you/us (besides github links).

Or maybe you could help figure out a way to bundle it in a more-convenient way.  It's a lot easier for me to verify a solution, than it is to come up with it from scratch...
If you `brew cat wysenynja/bitcoin/armory-qt` you can see what the (very short) formula does.  It even has the hash of the tar.gz from github in it so if someone changes the link, brew will give an error.

If you `brew fetch wysenynja/bitcoin/armory-qt` it will output the url and the hashes for the downloaded file without installing it.

You could also fork my bitcoin tap and use git to sign those release commits.

Do you think it would be [reasonably] possible to create a .dmg with all the dependencies?  Or is it a s***load of code/binaries to bundle?  It sounds like the script that goes and picks up the dependencies from brew is ideal, efficiency-wise, but does leave open subtle attack vectors (poisoning brew modules?).  I don't know ... I really want to support OSX users, but I have so little OSX experience...
hero member
Activity: 742
Merit: 500
December 04, 2012, 12:18:01 AM
The instructions you have posted on your website under "User “Red Emerald” provided the following variant for Mac OSX 10.7.3 with Xcode 4.0.3."  are from Lion and involve making symlinks and such which since then I've decided are a bad idea and they also still reference berkeley-db.

I posted updated instructions that work on Mountain Lion and probably Lion and anywhere else brew runs.  These should definitely replace the Lion instructions you have from me.  The segfault I mention is that broken wallet I sent you that I still haven't had time to dig into.

Oh, I forgot about the building-from-source page, there.  I updated the "Get Armory" page to link to one of your posts, but that should be updated as well.  I'm wondering if there is a more auto-up-to-date way we can have your solution linked from that page.

Also, I should investigate if there's a way for me to "approve" of a particular version of your build scripts.  Perhaps, a "formula" that I can manually verify is getting the code from github, and compiling everything from brew, and then put my GPG signature on it.  Not that I don't trust you, but I'm sure that you understand I don't want to sign a script that has an arbitrary download link on it that could be swapped out from under me/you/us (besides github links).

Or maybe you could help figure out a way to bundle it in a more-convenient way.  It's a lot easier for me to verify a solution, than it is to come up with it from scratch...
If you `brew cat wysenynja/bitcoin/armory-qt` you can see what the (very short) formula does.  It even has the hash of the tar.gz from github in it so if someone changes the link, brew will give an error.

If you `brew fetch wysenynja/bitcoin/armory-qt` it will output the url and the hashes for the downloaded file without installing it.

You could also fork my bitcoin tap and use git to sign those release commits.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
December 03, 2012, 11:42:57 PM
The instructions you have posted on your website under "User “Red Emerald” provided the following variant for Mac OSX 10.7.3 with Xcode 4.0.3."  are from Lion and involve making symlinks and such which since then I've decided are a bad idea and they also still reference berkeley-db.

I posted updated instructions that work on Mountain Lion and probably Lion and anywhere else brew runs.  These should definitely replace the Lion instructions you have from me.  The segfault I mention is that broken wallet I sent you that I still haven't had time to dig into.

Oh, I forgot about the building-from-source page, there.  I updated the "Get Armory" page to link to one of your posts, but that should be updated as well.  I'm wondering if there is a more auto-up-to-date way we can have your solution linked from that page.

Also, I should investigate if there's a way for me to "approve" of a particular version of your build scripts.  Perhaps, a "formula" that I can manually verify is getting the code from github, and compiling everything from brew, and then put my GPG signature on it.  Not that I don't trust you, but I'm sure that you understand I don't want to sign a script that has an arbitrary download link on it that could be swapped out from under me/you/us (besides github links).

Or maybe you could help figure out a way to bundle it in a more-convenient way.  It's a lot easier for me to verify a solution, than it is to come up with it from scratch...
hero member
Activity: 742
Merit: 500
December 03, 2012, 11:20:09 PM
ok that worked and just for anyone else it did keep my wallets in tack after I uninstalled and reinstalled, even thou I still backed them up before the process
The wallets and other user-specific files are kept in a folder in ~/Library/Application Support/Armory IIRC.  Brew installs the program to /usr/local/Cellar, so there is no risk of losing any of your data.

Good thing to mention though.
hero member
Activity: 742
Merit: 500
December 03, 2012, 11:13:05 PM
I've updated my brew tap to point to master! Let me know if it works!

Code:
brew doctor
brew tap WyseNynja/bitcoin
brew install --HEAD wysenynja/bitcoin/armory-qt

From there it's incredibly easy to run (assuming you have brew's bin on your path, which you probably do).

Code:
ArmoryQt.command

If you need bitcoind, it is in my tap, too.

Code:
brew install wysenynja/bitcoin/bitcoind

Once etotheipi tags a stable version, I'll setup the formula so you don't have to use "--HEAD"


There's already a tag for "v0.85-beta".  Though I accidentally tagged it on the threading branch, I don't think that matters.  Simply referencing that tag should get you there, regardless of what branch you're on.
Done!

You should probably update the instructions on bitcoinarmory.com to match.

I'll keep "--HEAD" on whatever branch you are developing and make the default install your most recent stable tag/branch.

Code:
brew doctor
brew tap WyseNynja/bitcoin
brew install wysenynja/bitcoin/armory-qt
ArmoryQt.command

Master branch is the correct place for it.  That's intended to house only the most stable releases.  All other intermediate and feature-testing versions will always be on a branch.  It just might be worth documenting how to modify it if the user wishes to switch to a different branch.
If someone wants to build a weird branch, they should just git clone it and make it themselves.  No need for the brew tap to handle those cases.

Quote
Also, I'm not sure what needs modifying in the instructions...?  HEAD on Master is actually identical to v0.85-beta, I just happened to tag it before I did the merge threading->master but after I merged master->threading (so they are the same).

The instructions you have posted on your website under "User “Red Emerald” provided the following variant for Mac OSX 10.7.3 with Xcode 4.0.3."  are from Lion and involve making symlinks and such which since then I've decided are a bad idea and they also still reference berkeley-db.

I posted updated instructions that work on Mountain Lion and probably Lion and anywhere else brew runs.  These should definitely replace the Lion instructions you have from me.  The segfault I mention is that broken wallet I sent you that I still haven't had time to dig into.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
December 03, 2012, 10:59:19 PM
I've updated my brew tap to point to master! Let me know if it works!

Code:
brew doctor
brew tap WyseNynja/bitcoin
brew install --HEAD wysenynja/bitcoin/armory-qt

From there it's incredibly easy to run (assuming you have brew's bin on your path, which you probably do).

Code:
ArmoryQt.command

If you need bitcoind, it is in my tap, too.

Code:
brew install wysenynja/bitcoin/bitcoind

Once etotheipi tags a stable version, I'll setup the formula so you don't have to use "--HEAD"


There's already a tag for "v0.85-beta".  Though I accidentally tagged it on the threading branch, I don't think that matters.  Simply referencing that tag should get you there, regardless of what branch you're on.
Done!

You should probably update the instructions on bitcoinarmory.com to match.

I'll keep "--HEAD" on whatever branch you are developing and make the default install your most recent stable tag/branch.

Code:
brew doctor
brew tap WyseNynja/bitcoin
brew install wysenynja/bitcoin/armory-qt
ArmoryQt.command


Master branch is the correct place for it.  That's intended to house only the most stable releases.  All other intermediate and feature-testing versions will always be on a branch.  It just might be worth documenting how to modify it if the user wishes to switch to a different branch.

Also, I'm not sure what needs modifying in the instructions...?  HEAD on Master is actually identical to v0.85-beta, I just happened to tag it before I did the merge threading->master but after I merged master->threading (so they are the same).
legendary
Activity: 1498
Merit: 1000
December 03, 2012, 10:53:56 PM
ok that worked and just for anyone else it did keep my wallets in tack after I uninstalled and reinstalled, even thou I still backed them up before the process
hero member
Activity: 742
Merit: 500
December 03, 2012, 10:46:51 PM
I did brew update and it did list it as one of the forumlas it did update
Code:
% brew install wysenynja/bitcoin/armory-qt
Error: armory-qt-HEAD already installed
Looks like you need to uninstall the version you have.  It considers a "HEAD" version the newest no matter what.  Run this and then retry.

Code:
brew uninstall armory-qt

You don't need the "wysenynja/bitcoin/" part when uninstalling for some reason (although it doesn't hurt).

EDIT: Oh yeah. and `brew update` again. i just set the version number explicitly in the formula. It was autodetecting just "beta" before.
Pages:
Jump to: