On Tue, Jan 19, 2016 at 11:58 PM, James Peach <jor...@gmail.com> wrote: > >> On Jan 19, 2016, at 2:03 PM, Kapil Arya <ka...@mesosphere.io> wrote: >> >> Hi All, >> >> I wanted to get your opinion on installing the 3rdparty packages glog, >> protobuf, boost and picojson[1] when installing Mesos itself. These >> packages are required to build Mesos modules. > > An alternative approach could be to hide these headers so they are internal > to Mesos and not incidentally required by innocent modules. IIRC this should > be fairly easy for picojson, but (much) harder for glog, protobuf and boost.
That's a lot of work and super hard to maintain IMHO :(. >> Currently, a module write has to manually install these 3rdparty >> packages, either system-wide or locally, and update the compilation >> flags such as CPPFLAGS to point to the installation which is >> error-prone. Further, one might have a system-wide installation with >> the wrong package version, causing even more headache. > > If you are looking at this, could you please also look at these: > https://issues.apache.org/jira/browse/MESOS-2537 > https://issues.apache.org/jira/browse/MESOS-4096 > > MESOS-2537 provides consistent behaviour for building against optionally > bundled dependencies (and fixes the --enable-foo semantics). I'll take a look at this one. > MESOS-4096 makes it impossible to run stout tests against a protobuf that is > not version 2.5.0. At some point, AlexR and I tried to work on it, but with the stout directory structure, it got harder to fix then it seemed at first. > >> The proposal here is to install these 3rdparty packages when >> installing Mesos. To avoid any conflicts with system-wide or local >> installation, we can install them as follows: >> >> ${PREFIX}/include/mesos/3rdparty -- for header files >> ${PREFIX}/<LIBDIR>/mesos/3rdparty -- for library files (LIBDIR can be >> lib or lib64 depending upon the installation) >> >> where PREFIX refers to the `--prefix` flag for Mesos configure script. >> >> We would then update `mesos.pc` with the correct flags so that a >> module write can simply use `pkg-config` to get all the required >> flags. >> >> I have created an issue >> https://issues.apache.org/jira/browse/MESOS-4434 to track this. >> >> Best, >> Kapil >> >> >> [1]: picojson is currently installed in ${PREFIX}/include. See >> https://issues.apache.org/jira/browse/MESOS-3909 >