Building on Fedora x86_64 - current errors

People,

After some work had been done on fixing GitHub issues, I decided to give this build another go - the previous error was to do with leveldb. I am not making it as far this time with the make (55% instead of 73%) but it is a different error now. Here is my current README file for this exercise:

git clone git@github.com:maidsafe/MaidSafe
git -C MaidSafe submodule update --init
vim ./MaidSafe/cmake_modules/add_boost.cmake
Change:
find_library(Icui18nLib libicui18n.a)
find_library(IcuucLib libicuuc.a)
find_library(IcudataLib libicudata.a)
to:
.so
cmake -HMaidSafe -Bbuild_maidsafe -DCMAKE_BUILD_TYPE=Debug
cmake.sh # Removes “toolset=gcc-4.8;” from cmake files
cd build_maidsafe
make

and the error I get now is:

[ 55%] Building CXX object src/third_party_libs/sqlite/CMakeFiles/sqlite_test.dir/src/sqlite_test.cc.o
/home/phil/src/c++/MaidSafe/src/third_party_libs/sqlite/src/sqlite_test.cc:27:35: fatal error: maidsafe/common/error.h: No such file or directory
#include “maidsafe/common/error.h”
^
compilation terminated.
make[2]: *** [src/third_party_libs/sqlite/CMakeFiles/sqlite_test.dir/src/sqlite_test.cc.o] Error 1
make[1]: *** [src/third_party_libs/sqlite/CMakeFiles/sqlite_test.dir/all] Error 2
make: *** [all] Error 2

  • I have the sqlite and sqlite-devel RPMs installed.

Suggestions about how to proceed?

Thanks,
Phil.

We will get a fedora machine added to CI hopefully this week (every platform we add moves launch further away, but it is the cost of trying to support everyone). That will be way faster than trying to talk though it remotely, changing the .a file to .so will definitely cause issue though. These links tell you how to install static versions of icu

http://rpm.pbone.net/index.php3/stat/4/idpl/9522843/dir/fedora_1/com/libicu-devel-2.6.2-1.rhfc1.dag.i386.rpm.html
http://particlephysicsandcode.com/2013/03/11/installing-boost-1-52-ubuntu-12-04-fedora/

The reason we have icu static issues if because gcc less than 4.9 had a buggy regex, that is fixed now so we could up the minimum requirement to gcc 4.9 (clang and msvc are ok) but folks will get annoyed at that to (the joys of software leading edge). This is all due to c++11 and now c++14 (which fixes many c++11 shortfalls), but the cost is well well worth it as the code is significantly simpler and generally much faster.

What version of gcc do you have (gcc --version ?)

David,

gcc-4.8.3-7.fc20.x86_64
gcc-c+±4.8.3-7.fc20.x86_64

It looks like 4.9 is available in Rawhide and F21 - which is what I would be building the new machine with anyway in a month or two. However, if you are going to do your own Fedora machine I might wait again to see how you go!

Regards,
Phil.

Yes thats 2 issues, support fedora and also support old regex so a double whammy for us ;-( do you think it acceptable we forced fedora 21 ?

David,

I’d be fine with F21 as a minimum system - it doesn’t look like there are a lot of other Fedora people here at the moment anyway but I think it is important that Fedora is supported properly in the future of course. In fact if you mandated a minimum of F21, I would probably not wait for my new hardware but update my existing system now - the F21 final release is in a week or so.

P.

David,

I updated to Fedora 21 on my current server this morning (includes gcc 4.9.2) but am getting exactly the same problems as before . . so it looks like I wait for you to get your server going . .

P.

We just removed libicu dependent parts of the code and going through Qa right now. That should make new targets much easier as libicu is a complete PITA but very powerful as well.

OK, will wait with bated breath!

You can track that task here > https://maidsafe.atlassian.net/browse/MAID-523
I also have on my list to add a Fedora box into our CI - I shall update this thread with progress :slight_smile:

I moved to Fedora21 Desktop a few weeks ago from Ubuntu 14.04 and I’m liking it.

Project Atomic is Fedora based and I hope to test docker vaults on it, so I’m glad this has been actioned.

Chris,

I have played around a little with Docker containers in the past and I have been watching the Project Atomic stuff on the lists. I will have to try it out soon when I get some time - let me know how you go if you start trying it out.

Regards,
Phil.

1 Like

Ross,

I see the status is “QA REVIEW” - I had a look at the flow diagram too. It is a bit hard for me to tell from that what the likely ETA of that bit of work being completed is - it doesn’t look like a lot but looks can be deceptive of course.

Hi yes I made the changes and have submit them in 3 Pull Requests (you can see these in JIRA) - Ben already pushed them back to me as you can see I have updated them and pushed them back to QA - It will be on Ben’s list to QA again. Sorry I can’t commit to an ETA :frowning: - this task is competing with many, many others on our to-do list.

If you are comfortable applying the Pull Requests feel free to test them out and feed back your findings all help is welcome.

Ross,

How does the QA testing happen? - is there a set of automatic tests or something?

I couldn’t actually apply the Pull requests and test them if I can’t get a build going could I? Happy to help where I can.

P.

1 Like

Yes there are a whole bunch of different machines set up to test multiple os’s compilers etc. as well as a bunch of manual checks.

The pull request in github has directions for trying these out manually on your machine (see the command line link in the pull request).

1 Like

@philip_rhoades firstly very sorry for the slow response on this one, it is on the list but keeps getting bumped down :frowning:
I made some time today to set-up a Fedora 20 CI machine, mostly thanks to tips I gleened from your posts on this forum.
GCC kicks out some build errors > http://dash.maidsafe.net/viewBuildError.php?buildid=93018 - which will require further investigation - when time permits, however using Clang looks a lot better > http://dash.maidsafe.net/viewTest.php?onlypassed&buildid=93020 and I am currently doing a full build and running all the tests - it has built everything and is still running the tests which will take a few hours to complete - it will post the results to the dashboard when complete.
I am not sure if you have tried clang and had any sucess?
I shall add this box into our Jenkins pool and include it in our CI runs.

http://dash.maidsafe.net/viewTest.php?buildid=93054
No build errors and similar test results to other Linux systems.

2 Likes

@Ross,

Excellent news! I am in the middle of moving house at the moment but as soon as I settle in I will be onto this and trying to reproduce this positive result.

Many thanks!

Regards,
Phil.

@Ross,

Success! I got all the way to 100% for the build! However, I still had to do:

vim ./MaidSafe/cmake_modules/add_boost.cmake

Change:

find_library(Icui18nLib libicui18n.a)                                                                                                                                  
find_library(IcuucLib libicuuc.a)                                                                                                                                      
find_library(IcudataLib libicudata.a)          

to:

.so

to get past the same errors as before with these libs.

There are lots of tests in the resultant dir - I ran lots of them individually (there was one core dump) but is there a script somewhere that will systematically run all the tests? - I couldn’t see one . .

Thanks,

Phil.

Nice one!

make Experimental

Will build and run everything.