Build Maidsafe on Manjaro (Arch-based) linux

I’m having trouble building Maidsafe on Manjaro linux. So far my experience with Manjaro is great! I just have one requirement before I make it the distro for my main PC, it must be able to run Maidsafe.

It seems that I’m missing a library, can anyone point me to the right package?

Here is the full console output: Maidsafe compile on Manjaro - Pastebin.com

-- Extracting boost 1.57.0 to /home/james/Git/build_maidsafe/boost_unzip
-- Building b2 (bjam)
CMake Error at cmake_modules/add_boost.cmake:317 (message):
    For libicui18n.a, libicuuc.a & licudata.a must be installed to a standard location. on Ubuntu/Debian, run
    sudo apt-get install libicu-dev
Call Stack (most recent call first):
  src/third_party_libs/CMakeLists.txt:40 (include)


-- Configuring incomplete, errors occurred!
See also "/home/james/Git/build_maidsafe/CMakeFiles/CMakeOutput.log".
See also "/home/james/Git/build_maidsafe/CMakeFiles/CMakeError.log".
2 Likes

You haven’t shared your error log, so unless can tell you from experience, you won’t get a good answer.
Debian -- Details of package libicu-dev in sid shows there’s also icu-devtools, but this is a random guess.

1 Like

Maybe this thread might help > Installing icu-staticlibs on Arch, when icu is being needed

1 Like

Did you read the compile instructions page?

Also required are the ICU staticlibs, which are not compiled by default. You can, however, easily install them by installing the AUR package icu-staticlibs:

yaourt -S icu-staticlibs

I am on manjaro and did not run into the conflict described in the link posted by Ross.

2 Likes

I thought that I installed icu-staticlibs, but it seems that the build failed and I never noticed. I tried installing it again but it keeps giving me errors.

Here is the mess of output it gives me when I try to install if anyone is interested: Build icu-staticlibs-53.1-1 on Manjaro linux - Pastebin.com

Instead I followed the advice on this thread - thanks @Ross! - and commented out these lines:

#      endif()
#      set(Boost${CamelCaseComponent}Libs Boost${CamelCaseComponent} ${IconvLib})
#    elseif(UNIX)
#      if(BSD)
#        find_library(IconvLib libiconv.a)
#        if(NOT IconvLib)
#          set(Msg "libiconv.a must be installed to a standard location.")
#          set(Msg "  For ${Msg} on FreeBSD 10 or later, run\n  pkg install libiconv")
#          message(FATAL_ERROR "${Msg}")
#        endif()
#        set(Boost${CamelCaseComponent}Libs Boost${CamelCaseComponent} ${IconvLib})
#      elseif(NOT ANDROID_BUILD)
#        find_library(Icui18nLib libicui18n.a)
#        find_library(IcuucLib libicuuc.a)
#        find_library(IcudataLib libicudata.a)
#        if(NOT Icui18nLib OR NOT IcuucLib OR NOT IcudataLib)
#          set(Msg "libicui18n.a, libicuuc.a & licudata.a must be installed to a standard location.")
#          set(Msg "  For ${Msg} on Ubuntu/Debian, run\n  sudo apt-get install libicu-dev")
#          message(FATAL_ERROR "${Msg}")
#        endif()
#        set(Boost${CamelCaseComponent}Libs Boost${CamelCaseComponent} ${Icui18nLib} ${IcuucLib} ${Ic$
#      endif()
#    else()
#      set(Boost${CamelCaseComponent}Libs Boost${CamelCaseComponent})
#    endif()
#  endif()

It seems to be working now.

1 Like