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
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.
The Error
When compiling against Ceph master commit eb81cc44effdadf84215a31f7cb8d51e4eb41211, I get the following error:
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:
This Dockerfile fails:
This Dockerfile succeeds: