[ https://issues.apache.org/jira/browse/MESOS-1071?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13945915#comment-13945915 ]
Till Toenshoff edited comment on MESOS-1071 at 3/25/14 12:41 AM: ----------------------------------------------------------------- We seem to have reached a point where decisions are needed. Personally, I am not attached to the details of the current implementation. My goal is open the path to a mesos source distribution that is mostly free of bundles. Let me try to gather all demands that were expressed on this feature; a. allow users to specify the intend to generally use system provided libs instead of bundled b. make sure that dependencies that are installed in a standard location are recognized without the user having to specify their path c. allow users to specify the installation path of a dependency d. make sure that individual dependencies can be enabled to use preinstalled or bundled versions re a. introduced {{--disable-bundled}} which generally tries to avoid bundled resources, but when system installed versions could not be located, would fall back to the bundled version (while displaying a warning). re b. see a. re c. introduced {{--with-XYZ=DIR}} which specifically tries to recognize a dependency at the given location, but when such version could not be located, would error-out. re d. has not been fully addressed by my RR as the user that wants to disable individual bundled versions, will have to supply a full path unless he/she uses (a). 1. Which name should be used for that {{disable-bundled}} / {{enable-proper}} switch? Tim is not too attached to a specific name. Adam has come to the conclusion that {{with(out)-system-dependencies}} would fit best. 2. Do we want auto-fallback when a user asked for {{disable-bundled}} / {{enable-proper}}? Tim has provided a very good reason to say no to such fallback: package-maintainers are simply not allowed to bundle. 3. As (d) is an unaddressed requirement, but mostly addressed in {{without-bundled-zookeeper}}, shall we adopt this for all dependencies? This would lead to verbose configuration options; {{with-zookeeper=DIR}} for a non standard location, {{without-included-zookeeper}} for a standard location. Both could be combined into {{without-included-zookeeper[=DIR]}} but that does not seem to be very intuitive, no? Please try to use this JIRA for general / functional request changes and not the comments on the RR itself to allow us having a well documented conclusion history in one place. was (Author: tillt): We seem to have reached a point where decisions are needed. Personally, I am not attached to the details of the current implementation. My goal is open the path to a mesos source distribution that is mostly free of bundles. Let me try to gather all demands that were expressed on this feature; a. allow users to specify the intend to generally use system provided libs instead of bundled b. make sure that dependencies that are installed in a standard location are recognized without the user having to specify their path c. allow users to specify the installation path of a dependency d. make sure that individual dependencies can be enabled to use preinstalled or bundled versions re a. introduced {{--disable-bundled}} which generally tries avoid bundled resources, but when system installed versions could not be located, would fall-back to the bundled version (while displaying a warning). re b. see a. re c. introduced {{--with-XYZ=DIR}} which specifically tries to recognize a dependency at the given location, but when such version could not be located, would error-out. re d. has not been fully addressed by my RR as the user that wants to disable individual bundled versions, will have to supply a full path unless he/she uses (a). 1. Which name should be used for that {{disable-bundled}} / {{enable-proper}} switch? Tim is not too attached to a specific name. Adam has come to the conclusion that {{with(out)-system-dependencies}} would fit best. 2. Do we want auto-fallback when a user asked for {{disable-bundled}} / {{enable-proper}}? Tim has provided a very good reason to say no to such fallback: package-maintainers are simply not allowed to bundle. 3. As (d) is an unaddressed requirement, but mostly addressed in {{without-bundled-zookeeper}}, shall we adopt this for all dependencies? This would lead to verbose configuration options; {{with-zookeeper=DIR}} for a non standard location, {{without-bundled-zookeeper}} for a standard location. Both could be combined into {{without-bundle-zookeeper[=DIR]}} but that does not seem to be very intuitive, no? Please try to use this JIRA for general / functional request changes and not the comments on the RR itself to allow us having a well documented conclusion history in one place. > Enable building against installed third-party dependencies. > ----------------------------------------------------------- > > Key: MESOS-1071 > URL: https://issues.apache.org/jira/browse/MESOS-1071 > Project: Mesos > Issue Type: Improvement > Components: build > Reporter: Benjamin Hindman > Attachments: modified_tillt.patch > > > Most of our third-party dependencies are included in the project and > statically linked into our resulting binaries and libraries. We would like to > enable building Mesos but using system installed dependencies instead. > In certain circumstances this is more difficult because we've actually needed > to "patch" these libraries (either for C++11 or to alter semantics). > Rather than eliminating our internal copies of these third-party dependencies > the first step should be to just enable using external (i.e., system > installed) dependencies. We already do this for ZooKeeper by allowing people > to use the --without-included-zookeeper flag during compilation. We should do > this for other libraries as well. In fact, for the libraries that we have not > patched (and even for some that we have patched) we should check to see if an > appropriate system installed dependency exists and preferentially use that > unless --with-included-dependency is explicitly used. > Note that this issue represents a stepping stone to removing our third-party > dependencies from our repository. -- This message was sent by Atlassian JIRA (v6.2#6252)