gridcoin-community / Gridcoin-Research

Gridcoin-Research
MIT License
588 stars 173 forks source link

Can't built the latest version (3.5.8.9) on Arch #305

Closed Steffov closed 7 years ago

Steffov commented 7 years ago

Hi,

qmake gridcoinresearch.pro USE_QRCODE=1 NO_UPGRADE=1

Gave me this output...

Project MESSAGE: Building without Upgrader
Project MESSAGE: Building with UPNP support
Project MESSAGE: Building with DBUS (Freedesktop notifications) support
Project MESSAGE: Building without self-upgrade support
Removed plural forms as the target language has less forms.
If this sounds wrong, possibly the target language is not set or recognized.
Removed plural forms as the target language has less forms.
If this sounds wrong, possibly the target language is not set or recognized.
Removed plural forms as the target language has less forms.
If this sounds wrong, possibly the target language is not set or recognized.
Project ERROR: Unknown module(s) in QT: charts

Do we need any new package for compiling the latest version?

Kind regards, Steffov

denravonska commented 7 years ago

Yeah, on arch the charts module is a separate package. Not sure of the exact name though.

Steffov commented 7 years ago

Okay. Do you now the package name for debian?

Steffov commented 7 years ago

Found the package for Arch now: qt5-charts qmake gridcoinresearch.pro USE_QRCODE=1 NO_UPGRADE=1 Run's quite well... but make makes trouble...

src/bignum.h: In Funktion »bool operator>(const CBigNum&, const CBigNum&)«:
src/bignum.h:720:83: Fehler: »const CBigNum*« kann nicht nach »const BIGNUM* {aka const bignum_st*}« für Argument »1« nach »int BN_cmp(const BIGNUM*, const BIGNUM*)« umgewandelt werden
 inline bool operator>(const CBigNum& a, const CBigNum& b)  { return (BN_cmp(&a, &b) > 0); }
                                                                                   ^
make: *** [Makefile:1661: build/txdb-leveldb.o] Fehler 1

So, still I can't built the latest Version. :/

denravonska commented 7 years ago

@caraka Is that the same error you got?

denravonska commented 7 years ago

@Steffov I think that has been fixed in #185 but @caraka needs to verify.

caraka commented 7 years ago

This looks very much like the error I got in Debian Stretch for the latest master branch. Note that I did not encounter this error in Debian Jessie or any of the Ubuntu flavours I built. I don't know if it is relevant, but Stretch is using the latest g++: gcc version 6.3.0 20170425 (Debian 6.3.0-16) Using Qt version 5.7.1, although my build never got anywhere near QT.

skcin commented 7 years ago

@Steffov have you tried @Tahvok's AUR package? It applies #185 as a patch, so that should work.

Steffov commented 7 years ago

That's strange because I had no trouble with building the previous version (3.5.8.8). That would more indicate that something has change in the source. Is't it?

@skcin I'm using the same dependencies like Tahavok in his AUR package but don't try to build with his AUR, by now. But I don't understand how to applies the #185 patch?!

BTW: I updated my qt wallet on my Debian Jessie test environment without any issue.

Do I need anything more than the new package "qt5-charts"? Do anyone has an idea how to fix this issue?

Packages I use on Arch: boost-libs libzip miniupnpc curl boost db git qrencode qt5-base qt5-tools qt5-charts (Qt Version 5.8.0.) (gcc-Version 6.3.1 20170306)

My output of qmake gridcoinresearch.pro USE_QRCODE=1 NO_UPGRADE=1 is:

Project MESSAGE: Building with QRCode support Project MESSAGE: Building without Upgrader Project MESSAGE: Building with UPNP support Project MESSAGE: Building with DBUS (Freedesktop notifications) support Project MESSAGE: Building without self-upgrade support

If this sounds wrong, possibly the target language is not set or recognized.
Removed plural forms as the target language has less forms.
If this sounds wrong, possibly the target language is not set or recognized.
Removed plural forms as the target language has less forms.
If this sounds wrong, possibly the target language is not set or recognized.
denravonska commented 7 years ago

@steffov Can you still build the .8 version? That error looks suspiciously like what you got when compiling the wallet with OpenSSL 1.1.x.

skcin commented 7 years ago

@Steffov Arch recently switched to a newer openssl version, that caused issues. I think you need to create the patch via git and then apply it to your source. Or you download it from @Tahvok's aur package. You can also see how he applies the patch in the PKBUILD in the prepare() function: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=gridcoinresearch-qt

Tahvok commented 7 years ago

I confirm, I have checked the .8 version myself, and it did not compile with recent move to openssl 1.1.x on Arch. That patch is required. @denravonska has also said that he may merge the patch in the next staging merge - so we may remove the patch in the future.

Steffov commented 7 years ago

Thank you very much guys! I overlooked the new openssl version on my machine.

What I did now: I tracked down from where the changed files comes: https://github.com/gridcoin/Gridcoin-Research/pull/185/files ... and just copied these into my git source folder. Thanks @denravonska for providing that fix!

I hope it's also correct to do it in this way. Build process finishes now without any error and I'm with v3.5.8.9. :)

Voting functionality is online as well, very nice. Thanks @skcin

Tahvok commented 7 years ago

@Steffov This is the commit in development branch: https://github.com/gridcoin/Gridcoin-Research/commit/2c9259cea74bd7848c7eabc791a303f7ca7747d5

So, perhaps the proper way would be to cherry-pick the commit. This worked for me:

git clone git@github.com:gridcoin/Gridcoin-Research.git
cd Gridcoin-Research/
git cherry-pick 2c9259cea74bd7848c7eabc791a303f7ca7747d5
Steffov commented 7 years ago

Okay that's the more elegant way, of course. Thanks for this great Git lesson @Tahvok!

denravonska commented 7 years ago

The fix is scheduled to be merged to staging to mature after some of the open PRs have been merged. This will ensure it's included in the next release.