200 PTS - Mac OS X Keyhotee Packaging Script [PAID]

Started by bytemaster, January 04, 2014, 03:41:42 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Stan

Quote from: bytemaster on January 19, 2014, 08:31:06 PM
Quote from: wackou on January 19, 2014, 07:02:43 PM
Got it!

so the crashes were most certainly due to mixing libc++ and libstdc++ in the same binary (which was only possible in the first place because libc++ uses an inline namespace on std), especially when passing std::string as arg to functions as std::strings are not binary compatible between both c++ libs, one uses refcounting and the other uses the small string optimization (see http://stackoverflow.com/questions/8454329/why-cant-clang-with-libc-in-c0x-mode-link-this-boostprogram-options-examp)

From here, there were only 2 solutions possible:
- compile everything with clang
- compile everything with gcc (Qt5 included, which is not in macports...)

So I went with the first solution (which is also the cleanest solution in the long term, as we use the platform's native compiler) and decided to fix compilation with clang. The resulting pull requests are here:

https://github.com/InvictusInnovations/fc/pull/3
https://github.com/InvictusInnovations/BitShares/pull/16


with this done, it is now possible to build a portable .dmg using the same instructions as in linux, ie:

git clone https://github.com/InvictusInnovations/keyhotee
cd keyhotee
git clone https://github.com/InvictusInnovations/BitShares
cd BitShares
git clone https://github.com/InvictusInnovations/fc
cd ..

export QTDIR=/usr/local/Cellar/qt5/5.2.0
cmake . && make
cd bin && $QTDIR/bin/macdeployqt Keyhotee.app -dmg


no need to fiddle anymore with compiler flags, etc. (note: this still assumes you have brew installed and installed the deps with it, ie: qt5, boost, icu)

I think this one should work everywhere now,

Updated .dmg: https://www.dropbox.com/s/ngq8c9hsbypxsvv/Keyhotee.dmg

Fantastic work wackou!   Please provide a PTS address you have earned it.

This is GREAT!  I have finally been able to register my own ID without having to stoop to using a PC!

PROMISED ANNOUNCEMENT

ERUDITE and SOPHISTICATED MAC USERS CAN NOW REGISTER THEIR FOUNDER IDs
Quote
er·u·dite
ˈer(y)əˌdīt/Submit
adjective
1.  having or showing great knowledge or learning.
synonyms:   learned, scholarly, educated, knowledgeable, well-read, well-informed, intellectual;
Anything said on these forums does not constitute an intent to create a legal obligation or contract of any kind.   These are merely my opinions which I reserve the right to change at any time.

bytemaster

Quote from: wackou on January 19, 2014, 07:02:43 PM
Got it!

so the crashes were most certainly due to mixing libc++ and libstdc++ in the same binary (which was only possible in the first place because libc++ uses an inline namespace on std), especially when passing std::string as arg to functions as std::strings are not binary compatible between both c++ libs, one uses refcounting and the other uses the small string optimization (see http://stackoverflow.com/questions/8454329/why-cant-clang-with-libc-in-c0x-mode-link-this-boostprogram-options-examp)

From here, there were only 2 solutions possible:
- compile everything with clang
- compile everything with gcc (Qt5 included, which is not in macports...)

So I went with the first solution (which is also the cleanest solution in the long term, as we use the platform's native compiler) and decided to fix compilation with clang. The resulting pull requests are here:

https://github.com/InvictusInnovations/fc/pull/3
https://github.com/InvictusInnovations/BitShares/pull/16


with this done, it is now possible to build a portable .dmg using the same instructions as in linux, ie:

git clone https://github.com/InvictusInnovations/keyhotee
cd keyhotee
git clone https://github.com/InvictusInnovations/BitShares
cd BitShares
git clone https://github.com/InvictusInnovations/fc
cd ..

export QTDIR=/usr/local/Cellar/qt5/5.2.0
cmake . && make
cd bin && $QTDIR/bin/macdeployqt Keyhotee.app -dmg


no need to fiddle anymore with compiler flags, etc. (note: this still assumes you have brew installed and installed the deps with it, ie: qt5, boost, icu)

I think this one should work everywhere now,

Updated .dmg: https://www.dropbox.com/s/ngq8c9hsbypxsvv/Keyhotee.dmg

Fantastic work wackou!   Please provide a PTS address you have earned it.
For the latest updates checkout my blog: [url="http://bytemaster.bitshares.org"]http://bytemaster.bitshares.org[/url]
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

wackou

Got it!

so the crashes were most certainly due to mixing libc++ and libstdc++ in the same binary (which was only possible in the first place because libc++ uses an inline namespace on std), especially when passing std::string as arg to functions as std::strings are not binary compatible between both c++ libs, one uses refcounting and the other uses the small string optimization (see http://stackoverflow.com/questions/8454329/why-cant-clang-with-libc-in-c0x-mode-link-this-boostprogram-options-examp)

From here, there were only 2 solutions possible:
- compile everything with clang
- compile everything with gcc (Qt5 included, which is not in macports...)

So I went with the first solution (which is also the cleanest solution in the long term, as we use the platform's native compiler) and decided to fix compilation with clang. The resulting pull requests are here:

https://github.com/InvictusInnovations/fc/pull/3
https://github.com/InvictusInnovations/BitShares/pull/16


with this done, it is now possible to build a portable .dmg using the same instructions as in linux, ie:

git clone https://github.com/InvictusInnovations/keyhotee
cd keyhotee
git clone https://github.com/InvictusInnovations/BitShares
cd BitShares
git clone https://github.com/InvictusInnovations/fc
cd ..

export QTDIR=/usr/local/Cellar/qt5/5.2.0
cmake . && make
cd bin && $QTDIR/bin/macdeployqt Keyhotee.app -dmg


no need to fiddle anymore with compiler flags, etc. (note: this still assumes you have brew installed and installed the deps with it, ie: qt5, boost, icu)

I think this one should work everywhere now,

Updated .dmg: https://www.dropbox.com/s/ngq8c9hsbypxsvv/Keyhotee.dmg
Please vote for witness wackou! More info at [url="http://digitalgaia.io"]http://digitalgaia.io[/url]

bg002h

Quote from: wackou on January 17, 2014, 05:06:41 PM
apparently it does crash a lot when linking libstdc++ and libgcc_s statically (not too sure why...) so I updated the script to link dynamically and resolve the links properly.

Here's an updated .dmg: https://www.dropbox.com/s/ngq8c9hsbypxsvv/Keyhotee.dmg

I can confirm that this works fine for me (on Mavericks; I tried to compile on my own over the last few weeks and have all sorts of extra libs all over the place though).  I get the same public key as I did on the day 1 version of the PC keyhotee software.

smiley35


bytemaster

Quote from: smiley35 on January 19, 2014, 02:40:56 AM
Quote from: bytemaster on January 19, 2014, 02:10:17 AM
Quote from: smiley35 on January 19, 2014, 01:57:28 AM
Hey, running the OSX client. This may be a stupid question but how do I know my public key? and I can create multiple identities within keyhotee?

You can create multiple identities.  New Identity menu.

If they are for different people, then you will want multiple profiles rather than 2 identities for one person.

So after running keyhotee I need to create my first identity, which will be my founders address. how do I generate a public key? If I hit new identity is asks me for a public key and a founders code.... I have neither.

Enter your ID and it should fill in the public key for you based upon your ID.
For the latest updates checkout my blog: [url="http://bytemaster.bitshares.org"]http://bytemaster.bitshares.org[/url]
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

smiley35

Quote from: bytemaster on January 19, 2014, 02:10:17 AM
Quote from: smiley35 on January 19, 2014, 01:57:28 AM
Hey, running the OSX client. This may be a stupid question but how do I know my public key? and I can create multiple identities within keyhotee?

You can create multiple identities.  New Identity menu.

If they are for different people, then you will want multiple profiles rather than 2 identities for one person.

So after running keyhotee I need to create my first identity, which will be my founders address. how do I generate a public key? If I hit new identity is asks me for a public key and a founders code.... I have neither.

bytemaster

I will get around to evaluating this submitted script and paying out the bounty after the Miami conference.
For the latest updates checkout my blog: [url="http://bytemaster.bitshares.org"]http://bytemaster.bitshares.org[/url]
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

bytemaster

Quote from: smiley35 on January 19, 2014, 01:57:28 AM
Hey, running the OSX client. This may be a stupid question but how do I know my public key? and I can create multiple identities within keyhotee?

You can create multiple identities.  New Identity menu.

If they are for different people, then you will want multiple profiles rather than 2 identities for one person.

For the latest updates checkout my blog: [url="http://bytemaster.bitshares.org"]http://bytemaster.bitshares.org[/url]
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

smiley35

Hey, running the OSX client. This may be a stupid question but how do I know my public key? and I can create multiple identities within keyhotee?

bitcoinba

I have this working on my Macbook Air with 10.9.

The issue is that I am not able to send a message. I can compose, but the send button is not active.

wackou

still crashes a lot (although less than before), will investigate a bit more and report my findings...
Please vote for witness wackou! More info at [url="http://digitalgaia.io"]http://digitalgaia.io[/url]

wackou

Please vote for witness wackou! More info at [url="http://digitalgaia.io"]http://digitalgaia.io[/url]

wackou

apparently it does crash a lot when linking libstdc++ and libgcc_s statically (not too sure why...) so I updated the script to link dynamically and resolve the links properly.

Here's an updated .dmg: https://www.dropbox.com/s/ngq8c9hsbypxsvv/Keyhotee.dmg
Please vote for witness wackou! More info at [url="http://digitalgaia.io"]http://digitalgaia.io[/url]

kmtan

i can reach to the profile creation page...
it quite late here...will continue registration tomorrow