dotnwat / lua-rados

RADOS bindings for Lua
http://noahdesu.github.com/lua-rados/
7 stars 7 forks source link

Ceph master compatibility issue #18

Closed michaelsevilla closed 8 years ago

michaelsevilla commented 8 years ago

The Error

When compiling against Ceph master commit eb81cc44effdadf84215a31f7cb8d51e4eb41211, I get the following error:

config.status: creating Makefile
config.status: creating lua-rados.rockspec
config.status: executing depfiles commands
config.status: executing libtool commands
  CXX      rados_la-lua_rados.lo
In file included from /usr/include/rados/librados.hpp:12:0,
                 from lua_rados.cc:14:
/usr/include/rados/buffer.h:50:32: fatal error: include/buffer_fwd.h: No such file or directory
 #include "include/buffer_fwd.h"
                                ^
compilation terminated.
make: *** [rados_la-lua_rados.lo] Error 1

This was working last week... I think it's related to this change. Not sure if they committed something bad or if you need to change something in the Lua-RADOS bindings.

Reproducing this Error

Try these Docker images using:

mkdir testing; cd testing
vim Dockerfile
<paste Dockerfile>
docker build -t test-dockerfile .

This Dockerfile fails:

FROM ivotron/cephdev-build:latest
MAINTAINER Michael Sevilla <mikesevilla3@gmail.com>

# install ceph master branch
RUN wget -q -O- 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/autobuild.asc' | sudo apt-key add - && \
    echo deb http://gitbuilder.ceph.com/ceph-deb-$(lsb_release -sc)-x86_64-basic/ref/master $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list && \
    DEBIAN_FRONTEND=noninteractive apt-get update && \
    apt-get install -y --force-yes git wget ceph librados-dev lua5.1 liblua5.1-dev luarocks libssl-dev dh-autoreconf && \
    apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

# get the code and build
RUN luarocks install busted && \
    luarocks install luasec OPENSSL_LIBDIR=/lib/x86_64-linux-gnu/ && \
    git clone https://github.com/noahdesu/lua-rados.git && \
    git clone https://github.com/noahdesu/cls-lua-client.git && \
    cd lua-rados && \
    autoreconf -I m4 -ivf && \
    ./configure CPPFLAGS="-std=c++11" && \
    make

This Dockerfile succeeds:

FROM ceph/base:infernalis
MAINTAINER Michael Sevilla <mikesevilla3@gmail.com>

# install ceph infernalis branch
RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
    apt-get install -y --force-yes git wget ceph librados-dev lua5.1 liblua5.1-dev luarocks libssl-dev dh-autoreconf && \
    apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

# get the code and build
RUN luarocks install busted && \
    luarocks install luasec OPENSSL_LIBDIR=/lib/x86_64-linux-gnu/ && \
    git clone https://github.com/noahdesu/lua-rados.git && \
    git clone https://github.com/noahdesu/cls-lua-client.git && \
    cd lua-rados && \
    autoreconf -I m4 -ivf && \
    ./configure CPPFLAGS="-std=c++11" && \
    make
dotnwat commented 8 years ago

This looks like an oversight in upstream Ceph. You can wait for a fix which should be discovered soon, hack your installation, or poke the ceph mailing list with a simple example.