'make local_network_controller' fails when trying to include leveldb/db.h

‘make local_network_controller’ fails with message

[ 67%] Building CXX object src/vault/CMakeFiles/maidsafe_vault_version_handler.dir/src/maidsafe/vault/version_handler/dispatcher.cc.o
In file included from /home/juboxi/installs/MaidSafe/src/vault/src/maidsafe/vault/version_handler/dispatcher.h:30:0,
from /home/juboxi/installs/MaidSafe/src/vault/src/maidsafe/vault/version_handler/dispatcher.cc:20:
/home/juboxi/installs/MaidSafe/src/vault/src/maidsafe/vault/utils.h:25:24: fatal error: leveldb/db.h: No such file or directory
#include “leveldb/db.h”

Full log at http://pastebin.com/0WY5eg2k for a month

Are you using next branches (default) or master. This is weird if next as it was removed a couple of weeks back. We removed leveldb as it was not consistent in all OS’s and sqlite was used instead. That will be replaced in rUDP2 as well with a mem mapped implementation that can be memory aligned and interprocess safe as well.

What does the for a month thing mean in the pastebin comment?

I followed the instructions at the wiki ( can’t find the URL now )

I run
’make ExperCommon’ followed by a
’make local_network_controller’

and this gave me the error

( 30 days is the expiration time for the pastebin post )

http://dash.maidsafe.net/viewSite.php?siteid=639&project=1&currenttime=1413244800 is the machine I’m trying to get to run the 12 node local network setup

Maybe you are on master in the root of the project type

git submodule foreach "git checkout next; git pull
git checkout next; git pull

Then you are on next and all should be well.

Running either line of commands gives

‘fatal: Not a git repository (or any of the parent directories): .git’

Which directory am I supposed to run the git commands?
Also: there is a mismatch in the quotation marks. Does that matter?

https://github.com/maidsafe/MaidSafe/wiki/CMake-Details instructs to run
’cmake . -DCMAKE_BUILD_TYPE=Release’

previously I just run ‘cmake .’ should the “Next” replace “Release” or what?

You need to run the command from the project root. That dir is generally called MaidSafe.

I run ‘cmake -H/home/juboxi/installs/MaidSafe -Bbuild_maidsafe -DCMAKE_BUILD_TYPE=Next’. Previously I had “Debug” in the -DCMAKE_BUILD_TYPE=Debug

I now try repeating the next steps and I get the original error when I run ‘make local_network_controller’

This will do nothing, unfortunately you must type the commands I gave i the project root. This BUILD_TYPE sets the build type (Debug Release Asan Tsan etc.)

git checkout next; git pull```

I checked out the next branch and now I get error when running ‘make local_network_controller’:

Scanning dependencies of target maidsafe_routing
[ 53%] Building CXX object src/routing/CMakeFiles/maidsafe_routing.dir/src/maidsafe/routing/cache_manager.cc.o
[ 55%] Building CXX object src/routing/CMakeFiles/maidsafe_routing.dir/src/maidsafe/routing/random_node_helper.cc.o
[ 55%] Building CXX object src/routing/CMakeFiles/maidsafe_routing.dir/src/maidsafe/routing/utils.cc.o
[ 55%] Building CXX object src/routing/CMakeFiles/maidsafe_routing.dir/src/maidsafe/routing/rpcs.cc.o
[ 55%] Building CXX object src/routing/CMakeFiles/maidsafe_routing.dir/src/maidsafe/routing/message_handler.cc.o
[ 55%] Building CXX object src/routing/CMakeFiles/maidsafe_routing.dir/src/maidsafe/routing/message.cc.o
[ 55%] Building CXX object src/routing/CMakeFiles/maidsafe_routing.dir/src/maidsafe/routing/bootstrap_utils.cc.o
[ 55%] Building CXX object src/routing/CMakeFiles/maidsafe_routing.dir/src/maidsafe/routing/routing_api.cc.o
[ 55%] Building CXX object src/routing/CMakeFiles/maidsafe_routing.dir/src/maidsafe/routing/bootstrap_file_operations.cc.o
[ 55%] Building CXX object src/routing/CMakeFiles/maidsafe_routing.dir/src/maidsafe/routing/response_handler.cc.o
[ 55%] Building CXX object src/routing/CMakeFiles/maidsafe_routing.dir/src/maidsafe/routing/node_info.cc.o
[ 55%] Building CXX object src/routing/CMakeFiles/maidsafe_routing.dir/src/maidsafe/routing/firewall.cc.o
/home/juboxi/installs/MaidSafe/src/routing/src/maidsafe/routing/firewall.cc: In lambda function:
/home/juboxi/installs/MaidSafe/src/routing/src/maidsafe/routing/firewall.cc:59:63: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
return (lhs.birth_time - rhs.birth_time < Parameters::firewall_message_life_in_seconds);
cc1plus: all warnings being treated as errors
make[3]: *** [src/routing/CMakeFiles/maidsafe_routing.dir/src/maidsafe/routing/firewall.cc.o] Error 1
make[2]: *** [src/routing/CMakeFiles/maidsafe_routing.dir/all] Error 2
make[1]: *** [src/vault_manager/CMakeFiles/local_network_controller.dir/rule] Error 2
make: *** [local_network_controller] Error 2

Ah gcc bug it is real and there is an update that will work, it’s in Qa right now, but if you follow these instructions it will get around that compile error (we make warnings errors)

git pull git@github.com:breese/MaidSafe-Routing.git next```

The full fix and explanation is here https://github.com/maidsafe/MaidSafe-Routing/pull/33

Sorry about the hassle  we are super close to fully automated Qa and have a backlog right now. This is a temp fix and will be merged to next very soon.

I should say you need to be in MaidSafe/src/routing to issue these commands.

Give me a minute to try and see if I can recreate this. Can you type gcc --version and show me the output please.

Changed category to from “network” to “development”.

1 Like

Advice to be in the correct directory when running the git clone to get the patch seems to be working 89% complete on ‘make local_networkthiyg-tsydem’

1 Like

Linking CXX executable …/…/local_network_controller
[100%] Built target local_network_controller

Awesome. That completed
I have no solid idea how to start the 12 node local network so I can proceed to trying to write a MaidSafe app. I’m guessing the command would be run inside tmux and likely be local_network_controller if I just found the right directory.

We are releasing more of the API right now, that is what you really want. The thing you are building is the core apps, which help but we have a full dev environment pre compiled etc. If you watch right here this is being released as we talk. The next week or so will see some updates to the API (i.e. you will be able to build a dropbox clone etc) This will build out whit the examples project as @Viv will be at long last able to update a load of stuff there now.

1 Like

Whoa. Sounds awesome. This is no urgent. It’s just… sentences that begin “My mother’s closet…” and ends in “… has Gigabit Ethernet stuck to a fiber optic network.” and it’s not the worsest of sentences.

Looks like I will be donating 2 nodes to the final Maidsafe network. A 2nd gen i5 and a busted internal display in my mum’s closet with 1.3TB and a VPS-from-cloud in datacenter in Netherlands with 2 cores, 100GB spare disk and 2GB free RAM. If I find part-time employment I can add terabytes to both nodes. The hosting guys are asking 10€ + VAT for 2.000GB and the broken display machine has 5 free USB2 ports to fit disks to.

Take care David.

1 Like


My interest in MaidSafe is mostly implementing http://develop.consumerium.org/wiki/Voting and the votecounting systems potentially as MaidSafe apps. Crucial to the plot is that historical voting results will be kept over time. In the long run this requires significant storage which is motivation.

The planned voting system is open voting using initially anonymous and discardable voter ids ( right of voter to vanish ) and closed, dissensus ( everyone can get different results tuned to preferences ), votecounting and more.

The Consumium / Consumerium - Enhancing Consumer Informedness effort has been in the planning stage for little over 12 yrs. I have a book on C++ and would like to get writing MaidSafe apps as soon as possible so I gahter I should study the API. If there is something I can help by running automated tests or something just let me know. Consumium / Consumerium hopes to enable a new kind of social media game. My game plan is to try to make all, consumers, owners and workers better off. Dissent is allowed, even preferred.