Building MaidSafe on B3

Got problems with your B2 or B3? Share and get helped!
Post Reply
theWebalyst
Posts: 96
Joined: 27 May 2010, 14:53

Building MaidSafe on B3

Post by theWebalyst » 11 Apr 2014, 16:11

Hi All,

I am trying to build MaidSafe (a secure, decentralised, storage network which will be launched soon) and am not sure how to get hold of some packages.

For info: MaidSafe is an exciting project and a great thing to participate in using Excito servers - get in touch or check out http://maidsafe.net if interested. I've been following it for a while and keen to get involved. Its an opportunity to fix the internet, doing away with surveillance, DoS, botnets, email spam etc., and replace centralised commercial services (facebook, Dropbox etc) with decentralised free alternatives. People can contribute servers or build apps to earn "SafeCoin", or just invest, as well as fixing the internet for everyone! :-)

Step one is to prepare the build environment, and this is where I am getting to:

Code: Select all

sudo apt-get install build-essential libpython-all-dev python-psutil python-requests libfuse-dev git-all cmake libicu-dev g++-4.8 valgrind binutils-gold

Reading package lists... Done
Building dependency tree
Reading state information... Done
Package binutils-gold is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
  binutils

Package valgrind is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Unable to locate package libpython-all-dev
E: Unable to locate package python-requests
E: Unable to locate package g++-4.8
E: Couldn't find any package by regex 'g++-4.8'
E: Package 'valgrind' has no installation candidate
E: Package 'binutils-gold' has no installation candidate
Is there a way for me to get these packages on B3? I'm not familiar with repositories or building on Debian, so pointers or an example would be very helpful.

Additional Info: full build instructions for MaidSafe

Thanks,

Mark

Gordon
Posts: 1384
Joined: 10 Aug 2011, 03:18

Re: Building MaidSafe on B3

Post by Gordon » 12 Apr 2014, 10:42

From what I understand Debian does not distribute these binaries for ARM, so you'll have to build them yourself from (Debian) source.

This Superuser item should help

theWebalyst
Posts: 96
Joined: 27 May 2010, 14:53

Re: Building MaidSafe on B3

Post by theWebalyst » 02 May 2014, 12:55

UPDATE:

I've managed to build quite a lot but am now hitting a compile error that seems to be related to B3's ARMv5 architecture as it works on other ARM devices (tested by the MaidSafe guys).

HELP: It would be great if someone else with a B3 could try replicating this problem to make sure it is B3 and not something I've messed up.

Below is the procedure for building MaidSafe on B3 as far as I have it.

Code: Select all

sudo apt-get update
sudo apt-get install build-essential git-all python-dev python-psutil libfuse-dev libicu-dev
Debian squeeze doesn't have gc++4.8, required by MaidSafe, so install gc++4.8 from Debian Jesse testing. See http://unix.stackexchange.com/questions ... for-debian

Code: Select all

sudo su -
Create a file /etc/apt/sources.list.d/myname.list containing:
	deb ftp://ftp.uk.debian.org/debian/ jessie main
	
Append the following to /etc/apt/preferences
	# Get later gcc version from jessie - see http://unix.stackexchange.com/questions/36388/get-newest-gcc-for-debian
	Package: *
	Pin: release n=jessie
	Pin-Priority: 200#

# Save that and now execute the following commands:
apt-get update
apt-get --target-release testing install gcc-4.8 g++-4.8
cd /usr/bin
sudo ln -s g++-4.8 g++

# Also get other packages not available or recent enough builds (in squeeze):
apt-get --target-release testing install python-requests
apt-get --target-release testing install cmake
Get the source code (see: https://github.com/maidsafe/MaidSafe/wi ... ource-code)

Code: Select all

git clone git@github.com:maidsafe/MaidSafe
git -C MaidSafe submodule update --init
Now, from somewhere outside the MaidSafe source code folder:

Code: Select all

cmake -H<path to MaidSafe root> -Bbuild_maidsafe -DCMAKE_BUILD_TYPE=Debug
cd build_maidsafe
make All
After this point on my B3 I get a long way (a few hours from memory) with lots of stuff built successfully, but eventually the build trips over a compiler error. The MaidSafe guys and I would like to know if this happens to anyone else with B3, or if anything different happens, so if you try this, please post your results.

Build Errors
If you get an error when the system runs ./protoc let me know as I may have a fix but I think I only hit this because I had earlier tried building g++ from source.

Compiler Errors

I get several errors of the following kind (these are generated using a more verbose build setting, but you should recognise the error from this if it also happens to you):

Code: Select all

In file included from /home/mrh/MaidSafe/src/common/src/maidsafe/common/data_stores/data_buffer.cc:19:0:
/home/mrh/MaidSafe/src/common/include/maidsafe/common/data_stores/data_buffer.h:194:21: error: field 'worker_' has incomplete type
   std::future<void> worker_;

If you try building, please post your results.

failed compiling maidsafe/common/profiler.cc

Post Reply