Build of Couchbase 6.0 for ARMv7?

I’m wondering if there is a build of couchbase for ARMv7. I was going to install it on a Raspberry Pi 3 B. If there’s not a pre-built version, how would I build it for Fedora ARM?

https://github.com/couchbase/manifest is the best place to start. I don’t believe it’s built for ARMv7, so some porting is probably required.

How much is “Some porting?” Could you give a rough estimate of lines or is that hoping for too much?

I don’t believe any code needs porting as some engineers have built and ran couchbase server on a Raspberry Pi for a hackathon, that process lead to a few fixes in the code so it avoids some x86 asm, those fixes are in the code. Now of course we’re not building and regression testing for ARM so something new could of snuck in since then, but I’m unaware of any non portable code being written.

The biggest challenge I think you will face is getting the right build environment (with dependent libraries and runtimes). For our supported platforms (like x86 ubuntu16, centos7 etc…) we have prebuilt packages in S3 which get downloaded automatically by cmake. If don’t use the right deps and if you get those dependencies wrong it can be a massive headache when the build stops or the final binaries don’t work.

This file lists out the dependencies we have - https://github.com/couchbase/tlm/blob/master/deps/manifest.cmake

And the root README of that repo contains build instructions for supported platforms and some hints for unsupported platforms.

Also note that when developers want to manually build dependencies (which we do time from time for debugging and general upgrades) the CMake scripts in tlm are what we use to build, basically you can use tlm to build the entire dependencies for your chosen ARM platform.

1 Like

I was going to say approximately what @jwalker said. I know it’s been done before on ARM, but it’s not done regularly so probably not a lot of porting. Jim seems to think none though. :slight_smile: We’ll see who is right.

Agreed that the biggest challenge is going to be getting the toolchain in place. It shouldn’t be too bad and you’ll probably get stuck now and again, but ping us on the forums and we’re glad to try to help.