How to install Membase from source on FreeBSD
Can please someone describe the process of installation membase on freebsd. When i execute "make" i get an error: "make: don't know how to make memcached.stamp. Stop"
All required packages from this doc - http://techzone.couchbase.com/wiki/display/membase/Building+on+Linux+fro... are installed
I have installed from ports:
libevent
openssl
cyrus-sasl
rubygem-ncurses
git-all
rubygems
sprockets
when i execute "make":
/membase-server-community_1.6.5_src]# make make: don't know how to make memcached.stamp. Stop
when i execute "gmake":
/membase-server-community_1.6.5_src]# gmake
gmake COMPONENT=memcached memcached.stamp_test
gmake[1]: Entering directory `/usr/home/sai/membase-server-community_1.6.5_src'
gmake[1]: Leaving directory `/usr/home/sai/membase-server-community_1.6.5_src'
memcached.stamp
gmake EXE= BUILDPREFIX=/tmp/membase-build GITBASE=git://github.com/membase \
COMPONENT=memcached \
COMPONENT_OUT=memcached \
COMPONENT_GIT_CHECKOUT=engine \
COMPONENT_CONFIGURE_FLAGS="--without-sasl \
--enable-isasl \
" \
memcached/memcached
gmake[1]: Entering directory `/usr/home/sai/membase-server-community_1.6.5_src'
memcached.stamp
gmake[2]: Entering directory `/usr/home/sai/membase-server-community_1.6.5_src/memcached'
gmake all-am
gmake[3]: Entering directory `/usr/home/sai/membase-server-community_1.6.5_src/memcached'
/bin/bash ./libtool --tag=CC --mode=compile gcc47 -DHAVE_CONFIG_H -I. -I./include -fvisibility=hidden -pthread -g -O2 -Wall -Werror -pedantic -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -MT ascii_scrub.lo -MD -MP -MF .deps/ascii_scrub.Tpo -c -o ascii_scrub.lo ascii_scrub.c
libtool: compile: gcc47 -DHAVE_CONFIG_H -I. -I./include -fvisibility=hidden -pthread -g -O2 -Wall -Werror -pedantic -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -MT ascii_scrub.lo -MD -MP -MF .deps/ascii_scrub.Tpo -c ascii_scrub.c -fPIC -DPIC -o .libs/ascii_scrub.o
ascii_scrub.c:20:5: error: ISO C90 forbids specifying subobject to initialize [-Werror=edantic]
ascii_scrub.c:21:5: error: ISO C90 forbids specifying subobject to initialize [-Werror=edantic]
ascii_scrub.c:22:5: error: ISO C90 forbids specifying subobject to initialize [-Werror=edantic]
ascii_scrub.c:23:5: error: ISO C90 forbids specifying subobject to initialize [-Werror=edantic]
ascii_scrub.c:24:5: error: ISO C90 forbids specifying subobject to initialize [-Werror=edantic]
ascii_scrub.c: In function 'execute_command':
ascii_scrub.c:57:9: error: ISO C90 forbids specifying subobject to initialize [-Werror=edantic]
ascii_scrub.c:58:9: error: ISO C90 forbids specifying subobject to initialize [-Werror=edantic]
ascii_scrub.c: In function 'memcached_extensions_initialize':
ascii_scrub.c:88:5: error: ISO C90 forbids mixed declarations and code [-Werror=edantic]
cc1: all warnings being treated as errors
gmake[3]: *** [ascii_scrub.lo] Error 1
gmake[3]: Leaving directory `/usr/home/sai/membase-server-community_1.6.5_src/memcached'
gmake[2]: *** [all] Error 2
gmake[2]: Leaving directory `/usr/home/sai/membase-server-community_1.6.5_src/memcached'
gmake[1]: *** [memcached/memcached] Error 2
gmake[1]: Leaving directory `/usr/home/sai/membase-server-community_1.6.5_src'
gmake: *** [/tmp/membase-build/bin/memcached] Error 2Yes, it appears that there are errors preventing this from compiling correctly.
I've asked our engineers to take a look at this, but I can't guarantee any time frame of being able to get you a resolution.
Can you also try grabbing the 1.7 source since it seems you're trying to build off of an old version?
Perry
Thanks for your answers , i tried to compile this source - membase-server_src-1.7-rc1.tar.gz but got a error:
... gmake[2]: Entering directory `/usr/home/sai/membase-server_src/memcached' /bin/bash ./libtool --tag=CC --mode=compile gcc47 -DHAVE_CONFIG_H -I. -I./include -I./libevent -I./utilities -I./include -I./libevent -fvisibility=hidden -pthread -g -O2 -Wall -Werror -pedantic -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -MT libmemcached_utilities_la-config_parser.lo -MD -MP -MF .deps/libmemcached_utilities_la-config_parser.Tpo -c -o libmemcached_utilities_la-config_parser.lo `test -f 'utilities/config_parser.c' || echo './'`utilities/config_parser.c libtool: compile: gcc47 -DHAVE_CONFIG_H -I. -I./include -I./libevent -I./utilities -I./include -I./libevent -fvisibility=hidden -pthread -g -O2 -Wall -Werror -pedantic -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -MT libmemcached_utilities_la-config_parser.lo -MD -MP -MF .deps/libmemcached_utilities_la-config_parser.Tpo -c utilities/config_parser.c -fPIC -DPIC -o .libs/libmemcached_utilities_la-config_parser.o utilities/config_parser.c: In function 'trim_copy': utilities/config_parser.c:32:4: error: ISO C90 forbids mixed declarations and code [-Werror=edantic] utilities/config_parser.c: In function 'parse_config': utilities/config_parser.c:82:7: error: ISO C90 forbids mixed declarations and code [-Werror=edantic] utilities/config_parser.c:92:7: error: ISO C90 forbids mixed declarations and code [-Werror=edantic] utilities/config_parser.c:105:7: error: ISO C90 forbids mixed declarations and code [-Werror=edantic] utilities/config_parser.c:121:19: error: 'for' loop initial declarations are only allowed in C99 mode utilities/config_parser.c:121:19: note: use option -std=c99 or -std=gnu99 to compile your code utilities/config_parser.c:123:22: error: ISO C90 forbids mixed declarations and code [-Werror=edantic] utilities/config_parser.c:134:19: error: ISO C90 forbids mixed declarations and code [-Werror=edantic] utilities/config_parser.c: In function 'read_config_file': utilities/config_parser.c:213:4: error: ISO C90 forbids mixed declarations and code [-Werror=edantic] utilities/config_parser.c:221:7: error: ISO C90 forbids mixed declarations and code [-Werror=edantic] cc1: all warnings being treated as errors gmake[2]: *** [libmemcached_utilities_la-config_parser.lo] Error 1 gmake[2]: Leaving directory `/usr/home/sai/membase-server_src/memcached' gmake[1]: *** [install] Error 2 gmake[1]: Leaving directory `/usr/home/sai/membase-server_src/memcached' gmake: *** [make-install-memcached] Error 2
Saikou, thanks for your patience. I'm engaging with our engineers to see about resolving this for you.
Perry
Memcached requires a C99 compiler, and from the output it doesn't seems like configure correctly detects your gcc... You need to pass -std=gnu99 (or -std=c99 ) to the compiler. I guess setting CFLAGS=-std=gnu99 before running configure should do the trick.
CHeers,
Trond
now it's:
~/membase-server_src]#gmake gcc=47 STD=gnu99 ... checking for library containing umem_cache_create... no checking for library containing gethugepagesizes... no checking for library containing dlopen... no checking for library containing log... no checking for stdbool.h that conforms to C99... no checking for _Bool... no checking for print macros for integers (C99 section 7.8.1)... no configure: WARNING: Failed to use print macros (PRIu) as defined in C99 section 7.8.1. checking for an ANSI C-conforming const... no checking for socklen_t... no checking for htonll... no checking for library containing pthread_create... no configure: error: Can't enable threads without the POSIX thread library. gmake: *** [memcached/Makefile] Error 1
but i have installed linuxtreads from ports
~/membase-server_src]#gmake gcc=47 STD=gnu99 ... checking for library containing umem_cache_create... no checking for library containing gethugepagesizes... no checking for library containing dlopen... no checking for library containing log... no checking for stdbool.h that conforms to C99... no checking for _Bool... no checking for print macros for integers (C99 section 7.8.1)... no configure: WARNING: Failed to use print macros (PRIu) as defined in C99 section 7.8.1. checking for an ANSI C-conforming const... no checking for socklen_t... no checking for htonll... no checking for library containing pthread_create... no configure: error: Can't enable threads without the POSIX thread library. gmake: *** [memcached/Makefile] Error 1
but i have installed linuxtreads from ports
From your output it looks like something is fundamentaly broken in your setup.. You should look in config.log to see how the compiler was invoked and the error it returned...
I am also interested in this. It seems i am getting further in the build, but here is where i stop:
gmake[2]: Entering directory `/usr/home/graff/membase-server_src/bucket_engine'
depbase=`echo bucket_engine.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/sh ./libtool --tag=CC --mode=compile gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I. -ggdb3 -I../memcached/include -I/usr/local/include -I/usr/home/graff/membase-server_src/install/include -D_THREAD_SAFE -pthread -pipe -O3 -Werror -pedantic -Wall -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat -fno-strict-aliasing -Wno-strict-aliasing -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -fvisibility=hidden -MT bucket_engine.lo -MD -MP -MF $depbase.Tpo -c -o bucket_engine.lo bucket_engine.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile: gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I. -ggdb3 -I../memcached/include -I/usr/local/include -I/usr/home/graff/membase-server_src/install/include -D_THREAD_SAFE -pthread -pipe -O3 -Werror -pedantic -Wall -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat -fno-strict-aliasing -Wno-strict-aliasing -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -fvisibility=hidden -MT bucket_engine.lo -MD -MP -MF .deps/bucket_engine.Tpo -c bucket_engine.c -fPIC -DPIC -o .libs/bucket_engine.o
cc1: warnings being treated as errors
bucket_engine.c: In function 'init_engine_handle':
bucket_engine.c:699: warning: passing argument 1 of 'release_memory' discards qualifiers from pointer target type
bucket_engine.c:705: warning: passing argument 1 of 'release_memory' discards qualifiers from pointer target type
gmake[2]: *** [bucket_engine.lo] Error 1
gmake[2]: Leaving directory `/usr/home/graff/membase-server_src/bucket_engine'
gmake[1]: *** [install] Error 2
gmake[1]: Leaving directory `/usr/home/graff/membase-server_src/bucket_engine'
gmake: *** [make-install-bucket_engine] Error 2
app6#
UPDATE: I was able to get this far, and more by doing the following:
Edit the make file in the root to be this:
app6# diff membase-server_src_org/Makefile membase-server_src/Makefile
232c232
< OPTIONS += 'CFLAGS=-I$(LIBS_PREFIX)/include $(CFLAGS)' 'LDFLAGS=-L$(LIBS_PREFIX)/lib $(LDFLAGS)'
---
> OPTIONS += 'CFLAGS=-gcc=47 -std=gnu99 -I$(LIBS_PREFIX)/include $(CFLAGS)' 'LDFLAGS=-L$(LIBS_PREFIX)/lib $(LDFLAGS)'
app6#
Then start your compile:
gmake gcc=47 STD=gnu99
Then edit this:
app6# diff membase-server_src_org/memcached/Makefile membase-server_src/memcached/Makefile
1622c1622
< (cd $(top_srcdir)/libevent && make)
---
> (cd $(top_srcdir)/libevent && gmake)
app6#
Then you fail with the bucket_engine error above, then edit this:
membase-server_src/bucket_engine/Makefile
remove -Werror from the file
start your compile over again, and i think it actually works :)
I lied, here is the newest update:
gmake install-am
gmake[4]: Entering directory `/usr/home/graff/membase-server_src/moxi/doc'
gmake[5]: Entering directory `/usr/home/graff/membase-server_src/moxi/doc'
gmake[5]: Nothing to be done for `install-exec-am'.
test -z "/usr/home/graff/membase-server_src/install/share/man/man1" || ../config/install-sh -c -d "/usr/home/graff/membase-server_src/install/share/man/man1"
/usr/bin/install -c -m 644 'moxi.1' '/usr/home/graff/membase-server_src/install/share/man/man1/moxi.1'
gmake[5]: Leaving directory `/usr/home/graff/membase-server_src/moxi/doc'
gmake[4]: Leaving directory `/usr/home/graff/membase-server_src/moxi/doc'
gmake[3]: Leaving directory `/usr/home/graff/membase-server_src/moxi/doc'
gmake[3]: Entering directory `/usr/home/graff/membase-server_src/moxi'
gcc -std=gnu99 -DHAVE_CONFIG_H -DCONFLATE_DB_PATH=\"/usr/home/graff/membase-server_src/install/var/lib/moxi\" -I. -I. -ggdb3 -I/usr/home/graff/membase-server_src/libmemcached -I/usr/home/graff/membase-server_src/libvbucket/include -I/usr/home/graff/membase-server_src/install/include -D_THREAD_SAFE -pthread -pipe -O3 -pedantic -Wall -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat -fno-strict-aliasing -Wno-strict-aliasing -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wno-error -MT moxi-memcached.o -MD -MP -MF .deps/moxi-memcached.Tpo -c -o moxi-memcached.o `test -f 'memcached.c' || echo './'`memcached.c
In file included from config_static.h:65,
from config.h:396,
from memcached.h:9,
from memcached.c:16:
/usr/include/netinet/tcp.h:40: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'tcp_seq'
/usr/include/netinet/tcp.h:50: error: expected specifier-qualifier-list before 'u_short'
/usr/include/netinet/tcp.h:175: error: expected specifier-qualifier-list before 'u_int8_t'
In file included from memcached.c:16:
memcached.h:15:19: error: event.h: No such file or directory
In file included from memcached.h:20,
from memcached.c:16:
work.h:35: error: field 'event' has incomplete type
In file included from memcached.c:16:
memcached.h:361: error: field 'notify_event' has incomplete type
memcached.h:398: error: field 'event' has incomplete type
In file included from memcached.c:41:
cproxy.h:425: error: field 'timeout_event' has incomplete type
cproxy.h:490: error: field 'timeout_event' has incomplete type
memcached.c: In function 'conn_new':
memcached.c:456: warning: implicit declaration of function 'event_set'
memcached.c:457: warning: implicit declaration of function 'event_base_set'
memcached.c:460: warning: implicit declaration of function 'event_add'
memcached.c:461: warning: implicit declaration of function 'event_del'
memcached.c: In function 'do_accept_new_conns':
memcached.c:3352: error: 'EV_READ' undeclared (first use in this function)
memcached.c:3352: error: (Each undeclared identifier is reported only once
memcached.c:3352: error: for each function it appears in.)
memcached.c:3352: error: 'EV_PERSIST' undeclared (first use in this function)
memcached.c: In function 'transmit':
memcached.c:3421: error: 'EV_WRITE' undeclared (first use in this function)
memcached.c:3421: error: 'EV_PERSIST' undeclared (first use in this function)
memcached.c: In function 'drive_machine':
memcached.c:3485: error: 'EV_READ' undeclared (first use in this function)
memcached.c:3485: error: 'EV_PERSIST' undeclared (first use in this function)
memcached.c:3561: error: 'EV_WRITE' undeclared (first use in this function)
memcached.c: In function 'server_socket':
memcached.c:3974: error: 'EV_READ' undeclared (first use in this function)
memcached.c:3974: error: 'EV_PERSIST' undeclared (first use in this function)
memcached.c: In function 'server_socket_unix':
memcached.c:4067: error: 'EV_READ' undeclared (first use in this function)
memcached.c:4067: error: 'EV_PERSIST' undeclared (first use in this function)
memcached.c: In function 'clock_handler':
memcached.c:4107: warning: implicit declaration of function 'evtimer_del'
memcached.c:4112: warning: implicit declaration of function 'evtimer_set'
memcached.c:4114: warning: implicit declaration of function 'evtimer_add'
memcached.c: In function 'main':
memcached.c:4903: warning: implicit declaration of function 'event_init'
memcached.c:4903: warning: assignment makes pointer from integer without a cast
memcached.c:5061: warning: implicit declaration of function 'event_base_loop'
gmake[3]: *** [moxi-memcached.o] Error 1
gmake[3]: Leaving directory `/usr/home/graff/membase-server_src/moxi'
gmake[2]: *** [install-recursive] Error 1
gmake[2]: Leaving directory `/usr/home/graff/membase-server_src/moxi'
gmake[1]: *** [install] Error 2
gmake[1]: Leaving directory `/usr/home/graff/membase-server_src/moxi'
gmake: *** [make-install-moxi] Error 2
app6#
I removed Werror from /moxi/Makefile but no help after a gmake clean gmake make inside /moxi
Looks like it fails to find libevent...
Trond
Thank you sir! I went into /moxi and did as follows:
./configure --prefix=/usr/home/graff/membase-server_src/install --enable-moxi-libvbucket --enable-moxi-libmemcached --without-check --with-memcached=/usr/home/graff/membase-server_src/install/bin/memcached --with-libevent-prefix=/usr/local/lib/
(basically just added --with-libevent-prefix to the end of what was already there then ran configure by hand)
Configure found libevent: (using libevent-1.4.14b_2)
checking for shared library run path origin... done
checking for libevent... yes
checking how to link with libevent... /usr/local/lib/libevent.so -Wl,-rpath -Wl,/usr/local/lib
But the output durning gmake is the same :(
app6# gmake gcc=47 STD=gnu99
gmake all-recursive
gmake[1]: Entering directory `/usr/home/graff/membase-server_src/moxi'
Making all in doc
gmake[2]: Entering directory `/usr/home/graff/membase-server_src/moxi/doc'
gmake all-am
gmake[3]: Entering directory `/usr/home/graff/membase-server_src/moxi/doc'
gmake[3]: Nothing to be done for `all-am'.
gmake[3]: Leaving directory `/usr/home/graff/membase-server_src/moxi/doc'
gmake[2]: Leaving directory `/usr/home/graff/membase-server_src/moxi/doc'
gmake[2]: Entering directory `/usr/home/graff/membase-server_src/moxi'
gcc -std=gnu99 -DHAVE_CONFIG_H -DCONFLATE_DB_PATH=\"/usr/home/graff/membase-server_src/install/var/lib/moxi\" -I. -I. -ggdb3 -I/usr/local/include -I/usr/home/graff/membase-server_src/install/include -D_THREAD_SAFE -pthread -pipe -O3 -Werror -pedantic -Wall -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat -fno-strict-aliasing -Wno-strict-aliasing -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wno-error -MT moxi-memcached.o -MD -MP -MF .deps/moxi-memcached.Tpo -c -o moxi-memcached.o `test -f 'memcached.c' || echo './'`memcached.c
In file included from config_static.h:65,
from config.h:396,
from memcached.h:9,
from memcached.c:16:
/usr/include/netinet/tcp.h:40: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'tcp_seq'
/usr/include/netinet/tcp.h:50: error: expected specifier-qualifier-list before 'u_short'
/usr/include/netinet/tcp.h:175: error: expected specifier-qualifier-list before 'u_int8_t'
gmake[2]: *** [moxi-memcached.o] Error 1
gmake[2]: Leaving directory `/usr/home/graff/membase-server_src/moxi'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/usr/home/graff/membase-server_src/moxi'
gmake: *** [all] Error 2
app6#
Also allow me to +1 my vote that my company is highly interested in membase and we currently run a 90% Freebsd farm, so even if support was enterprise only we would love it!
Thanks again!
Simon, unfortunately FreeBSD isn't officially supported at this time. It clearly seems to involve a bit more work than would be initially expected and our engineers are hard at work on a variety of other critical features, especially for 2.0.
While I'd really like to help, I want to make sure and set the right expectations for you...rather than just ignoring a post.
We've got this in the list to look at, but at this time I can't really guarantee any immediate help.
I hope you're able to use one of the other platforms that we do officially support, or continue plugging away at this towards some success.
Please let me know how else we can be of assistance.
Perry
Totally understandable, and thank you :)
I hope the few hurdles we got past help some people in the future that go down the same path. Good to hear that is it in the list even if its at the bottom.
-Simon
We've made some good progress on our end, can you grab the latest code and try compiling again?
Awesome! I will do so right away and post the results
I am not sure what code you wanted me to test, so i got what i assume would be the latest directly from git.
curl http://android.git.kernel.org/repo > repo
chmod a+x repo
./repo init -u git://github.com/membase/manifest.git
./repo sync
gmake run 1:
Stopped in the same place as before
gmake[2]: Entering directory `/tank/clients/telescope/users/ender/membase_git/bucket_engine'
CC bucket_engine.lo
cc1: warnings being treated as errors
bucket_engine.c: In function 'init_engine_handle':
bucket_engine.c:699: warning: passing argument 1 of 'release_memory' discards qualifiers from pointer target type
bucket_engine.c:705: warning: passing argument 1 of 'release_memory' discards qualifiers from pointer target type
gmake[2]: *** [bucket_engine.lo] Error 1
gmake[2]: Leaving directory `/tank/clients/telescope/users/ender/membase_git/bucket_engine'
gmake[1]: *** [install] Error 2
gmake[1]: Leaving directory `/tank/clients/telescope/users/ender/membase_git/bucket_engine'
gmake: *** [make-install-bucket_engine] Error 2
dev0#
Made same edit as before:
OPTIONS += 'CFLAGS=-gcc=47 -std=gnu99 -I$(LIBS_PREFIX)/include $(CFLAGS)' 'LDFLAGS=-L$(LIBS_PREFIX)/lib $(LDFLAGS)'
Gmake run 2:
gmake gcc=47 STD=gnu99
Stopped in same place. Removed -Werror from bucket_engine/Makefile
Gmake run 3:
gmake gcc=47 STD=gnu99
Progress. Stopped here:
gmake[2]: Entering directory `/tank/clients/telescope/users/ender/membase_git/ep-engine'
CXX ep_la-checkpoint.lo
CXX ep_la-checkpoint_remover.lo
CXX ep_la-dispatcher.lo
CXX ep_la-ep.lo
CXX ep_la-ep_engine.lo
ep_engine.cc: In member function 'bool EventuallyPersistentEngine::createTapQueue(const void*, std::string&, uint32_t, const void*, size_t)':
ep_engine.cc:2392: error: 'struct SERVER_COOKIE_API' has no member named 'set_tap_nack_mode'
ep_engine.cc: In member function 'ENGINE_ERROR_CODE EventuallyPersistentEngine::tapNotify(const void*, void*, uint16_t, uint8_t, uint16_t, tap_event_t, uint32_t, const void*, size_t, uint32_t, uint32_t, uint64_t, const void*, size_t, uint16_t)':
ep_engine.cc:2546: error: 'struct SERVER_COOKIE_API' has no member named 'set_tap_nack_mode'
gmake[2]: *** [ep_la-ep_engine.lo] Error 1
gmake[2]: Leaving directory `/tank/clients/telescope/users/ender/membase_git/ep-engine'
gmake[1]: *** [install] Error 2
gmake[1]: Leaving directory `/tank/clients/telescope/users/ender/membase_git/ep-engine'
gmake: *** [make-install-ep-engine] Error 2
dev0#
Removed -Werror from ep-engine/Makefile
Gmake run 4:
gmake gcc=47 STD=gnu99
Stopped in same place as above.
I'm doing automated builds out of the latest 2.0 branch on FreeBSD 8.2 with success. See http://jenkins.norbye.org/jenkins/job/membase-2.0-freebsd/
You need to tell repo to use the 2.0 branch by checking out the code with the following command:
repo init -u git://github.com/membase/manifest.git -m branch-2.0.xml
Then I added the following to the extra make options:
cat > .repo/Makefile.extra << EOF
OPTIONS += --with-debug
OPTIONS += --enable-64bit
libmemcached_EXTRA_OPTIONS += --without-memcached
EOF
I'm no FreeBSD expert so I don't know how stuff are normally done on FreeBSD, but my goal was to check the build process there. I installed gcc 4.5, and created symbolic links in /usr/local/bin so gcc and g++ are available as gcc and g++ (for simplicity). It seems like gcc installed the runtime libraries in /usr/local/lib/gcc45, so I just reverted to setting LD_LIBRARY_PATH to include that director to fix my build process ;-) You could probably have added some link flags or something to include that directory in the seach path..
So I exported the following environment variables before running gmake:
PATH=/usr/local/sbin:/usr/local/bin:/home/jenkins/bin:/sbin:/bin:/usr/sbin:/usr/bin
LD_LIBRARY_PATH=/usr/local/lib/gcc45/
Cheers,
Trond
Lots and lots of progress. Thank you so very much!
i was trying to get away with using the built in
dev0# gcc --version
gcc (GCC) 4.2.1
dev0# uname -a
FreeBSD dev0.dev.telescope.tv 8.2-RELEASE
but got stuck on
gmake -C libcouchbase install
gmake[1]: Entering directory `/tank/clients/telescope/users/ender/membase_git/libcouchbase'
CC src/libcouchbase_la-arithmetic.lo
src/arithmetic.c: In function 'libcouchbase_arithmetic_by_key':
src/arithmetic.c:68: error: 'struct ' has no member named 'vbucket'
gmake[1]: *** [src/libcouchbase_la-arithmetic.lo] Error 1
gmake[1]: Leaving directory `/tank/clients/telescope/users/ender/membase_git/libcouchbase'
gmake: *** [make-install-libcouchbase] Error 2
No need to make any changes tho, i will do it correctly with gcc 4.5 tomorrow :)
i was trying to get away with using the built in
dev0# gcc --version
gcc (GCC) 4.2.1
gcc 4.2.1 is too old (2007) and doesn't fully support C99 etc. I don't think it's worth the effort to try to make the source compile with such old compilers when the code is compiling with a more recent version of the compiler.
but got stuck on
gmake -C libcouchbase install
gmake[1]: Entering directory `/tank/clients/telescope/users/ender/membase_git/libcouchbase'
CC src/libcouchbase_la-arithmetic.lo
src/arithmetic.c: In function 'libcouchbase_arithmetic_by_key':
src/arithmetic.c:68: error: 'struct ' has no member named 'vbucket'
gmake[1]: *** [src/libcouchbase_la-arithmetic.lo] Error 1
gmake[1]: Leaving directory `/tank/clients/telescope/users/ender/membase_git/libcouchbase'
gmake: *** [make-install-libcouchbase] Error 2
Do you have an old memcached/protocol_binary.h located in the path searched by your compiler?
Cheers,
Trond
I wanted to write back to you Trond and let you know using the latest git and gcc 4.6 i was able to easily compile and run install/membase-server on freebsd.
I cant thank you enough and we are continuing to scale out and test membase :)
1.7.1_618_g6ab1e74
Unfortunately we currently don't explicitly support FreeBSD and there are in fact some known issues.
Can you post the full details of the packages you install and the full output of the make command?
Forum support is great for free but sometimes you need a guaranteed response time and dedicated resources for your questions or issues.
Consider purchasing enterprise-level support from Couchbase: http://www.couchbase.com/products-and-services/overview
Call or email "sales -at- couchbase-dot- com" today!