Author Topic: 200 PTS - Mac OS X Keyhotee Packaging Script [PAID]  (Read 20897 times)

0 Members and 1 Guest are viewing this topic.

Offline Stan

  • Hero Member
  • *****
  • Posts: 2908
  • You need to think BIGGER, Pinky...
    • View Profile
    • Cryptonomex
  • BitShares: Stan
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.

Offline bytemaster

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: http://bytemaster.bitshares.org
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.

Offline 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 http://digitalgaia.io

Offline bg002h

  • Jr. Member
  • **
  • Posts: 24
    • View Profile
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.

Offline smiley35

  • Full Member
  • ***
  • Posts: 168
    • View Profile

Offline bytemaster

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: http://bytemaster.bitshares.org
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.

Offline smiley35

  • Full Member
  • ***
  • Posts: 168
    • View Profile
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.

Offline 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: http://bytemaster.bitshares.org
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.

Offline bytemaster

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: http://bytemaster.bitshares.org
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.

Offline smiley35

  • Full Member
  • ***
  • Posts: 168
    • View Profile
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?

Offline bitcoinba

  • Full Member
  • ***
  • Posts: 193
    • View Profile
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.

Offline 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 http://digitalgaia.io

Offline wackou

Please vote for witness wackou! More info at http://digitalgaia.io

Offline 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 http://digitalgaia.io

Offline kmtan

  • Full Member
  • ***
  • Posts: 55
    • View Profile
i can reach to the profile creation page...
it quite late here...will continue registration tomorrow