I've now spend a couple of hours working on packaging Mesos 1.0.1. There are several problems using Debian packages instead of the libraries vendored/bundled in 3rdparty/.
The config system provides switches like --with-boost, --with-gmock, --with-glock etc., but: 1) for Boost they developers are using "-isystem" instead of "-I" imports for the CPPFLAGS to easily overcome some problems (https://issues.apache.org/jira/browse/MESOS-3932), but -isystem makes problems for the other imports: <buildlog> {...} -c gmock_sources.cc -fPIC -DPIC -o .libs/libgmock_la-gmock_sources.o In file included from /usr/include/c++/6/ext/string_conversions.h:41:0, from /usr/include/c++/6/bits/basic_string.h:5402, from /usr/include/c++/6/string:52, from /usr/include/c++/6/bits/locale_classes.h:40, from /usr/include/c++/6/bits/ios_base.h:41, from /usr/include/c++/6/ios:42, from /usr/include/c++/6/ostream:38, from gmock-1.7.0/gtest/include/gtest/gtest.h:55, from gmock-1.7.0/gtest/src/gtest-all.cc:39, from gmock_sources.cc:18: /usr/include/c++/6/cstdlib:75:25: fatal error: stdlib.h: No such file or directory </buildlog> see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129 (stdlib.h: No such file or directory when using -isystem /usr/... ) 2) the gmock import paths are not working out of the box with the google-gmock package: --with-gmock=/usr: <buildlog> checking gmock-all.cc usability... no checking gmock-all.cc presence... no checking for gmock-all.cc... no configure: error: cannot find gmock ------------------------------------------------------------------- You have requested the use of a non-bundled gmock but no suitable gmock could be found. </buildlog> it should be going something like: <diff> --- a/configure.ac +++ b/configure.ac @@ -808,12 +808,12 @@ AM_CONDITIONAL([WITH_BUNDLED_GLOG], [test "x$with_bundled_glog" = "xyes"]) -GMOCKSRC="gmock-all.cc" +GMOCKSRC="src/gmock-all.cc" GTESTSRC="gtest-all.cc" if test -n "`echo $with_gmock`"; then CPPFLAGS="$CPPFLAGS -I${with_gmock} -I${with_gmock}/include \ - -I${with_gmock}/src -I${with_gmock}/gtest -I${with_gmock}/gtest/include \ + -I${with_gmock}/src/gmock -I${with_gmock}/gtest -I${with_gmock}/gtest/include \ -I${with_gmock}/gtest/src" elif test "x$enable_bundled" != "xyes"; then </diff> The same for the libgtest-dev imports. That could be solved, however 3) the vendored package 3rdparty/nvml-352.79.tar.gz contains solely nvidia/gdk/nvml.h, but that appears not be DFSG-free. 4) libelfio and picojson are both RFP (#839382, #773325), these could be packaged by, but 5) the upstream tarball ships own patches for several of the vendored 3rdparts tarballs, like for glog 0.3.3, http-parser 2.6.2 (needs to be updated in Debian, #795492), leveldb 1.4, libev 4.22, protobuf 2.6.1, zookeeper 3.4.8. Some libraries like libprocess are forked in own 3rdparty (belonging to Mesos) repositories on Github (like https://github.com/3rdparty/libprocess). I haven't checked it closer so far, but it could be that there are many things which aren't (supposed to being?) integrated into the other projects. I haven't given up, but I'm not so sure if there could be solutions for all of the points above if not wanted to ship most of the convenience packages with a mile long deb/copyright and just putting the thing into non-free because of (yet) a single file. DS -- 4096R/DF5182C8 http://www.danielstender.com/blog/
signature.asc
Description: OpenPGP digital signature