You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@kudu.apache.org by "Adar Dembo (Code Review)" <ge...@cloudera.org> on 2016/06/26 23:37:27 UTC

[kudu-CR] thirdparty: add boost and switch to header-only build

Hello Dan Burkert, Todd Lipcon,

I'd like you to do a code review.  Please visit

    http://gerrit.cloudera.org:8080/3500

to review the following change.

Change subject: thirdparty: add boost and switch to header-only build
......................................................................

thirdparty: add boost and switch to header-only build

The addition of boost to thirdparty is bound to make some squeamish, so
here's my rationale:
1. My original goal was to enable the TSAN build on Ubuntu 16.04, a distro
   that has switched to the new gcc5 ABI. This renders the system boost
   installation unusable as it can't link against our TSAN-instrumented
   libstdc++. To be fair, switching to a header-only build has eliminated
   this problem.
2. Boost is effectively the last remaining dependency that isn't explicitly
   managed as a thirdparty dependency. The only exceptions are glibc,
   libstdc++, and libsasl, all of which should not be managed due to their
   interactions with other ABIs. In my opinion, Kudu should manage as many
   dependencies as possible in this way.
3. Doing this means Kudu developers will no longer need to install boost
   system packages to build Kudu. Some distros (e.g. SLES12) don't offer
   system packages, forcing developers to set up with the tarball.
4. Historically, Kudu has permitted the use of any boost version even
   though some versions needed patches to build with a new compiler. IIRC,
   https://svn.boost.org/trac/boost/ticket/6165 was one such instance.
5. For the boost logic that Kudu does use, we'll know exactly which features
   exist and which do not. There'll be no more version-based ambiguity.
6. Doing this means we can drop the odd boost_uuid appendage.
7. This patch by no means implies that boost is to stay in Kudu forever.
   We're already at the point where we can get by with boost headers alone.
   Once we replace the few remaining bits (i.e. optional and intrusive lists
   come to mind), we can jettison it altogether.

With that out of the way, here are the details:
- Inclusion of boost as a thirdparty dependency. I spent some time fighting
  with the boost build to get it to copy the headers without building
  anything; eventually I gave up and used rsync instead.
- Removal of boost components from Kudu's cmake logic. This netted a nice
  cleanup of cmake code.
- Removal of boost handling from documentation and other random places.
- Removal of boost_uuid.

Change-Id: Id5b73a8e2a86099429b6032023a01a0da7b02371
---
M CMakeLists.txt
M LICENSE.txt
M build-support/dist_test.py
M build-support/release/rat_exclude_files.txt
M docs/contributing.adoc
M docs/installation.adoc
M src/kudu/util/CMakeLists.txt
M thirdparty/.gitignore
M thirdparty/LICENSE.txt
D thirdparty/boost_uuid/LICENSE.txt
D thirdparty/boost_uuid/boost/uuid/name_generator.hpp
D thirdparty/boost_uuid/boost/uuid/nil_generator.hpp
D thirdparty/boost_uuid/boost/uuid/random_generator.hpp
D thirdparty/boost_uuid/boost/uuid/seed_rng.hpp
D thirdparty/boost_uuid/boost/uuid/sha1.hpp
D thirdparty/boost_uuid/boost/uuid/string_generator.hpp
D thirdparty/boost_uuid/boost/uuid/uuid.hpp
D thirdparty/boost_uuid/boost/uuid/uuid_generators.hpp
D thirdparty/boost_uuid/boost/uuid/uuid_io.hpp
D thirdparty/boost_uuid/boost/uuid/uuid_serialize.hpp
M thirdparty/build-definitions.sh
M thirdparty/build-thirdparty.sh
M thirdparty/download-thirdparty.sh
A thirdparty/patches/boost-issue-12179-fix-compilation-errors.patch
M thirdparty/preflight.py
M thirdparty/vars.sh
26 files changed, 92 insertions(+), 1,558 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/00/3500/1
-- 
To view, visit http://gerrit.cloudera.org:8080/3500
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id5b73a8e2a86099429b6032023a01a0da7b02371
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Dan Burkert <da...@cloudera.com>
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>

[kudu-CR] thirdparty: add boost and switch to header-only build

Posted by "Adar Dembo (Code Review)" <ge...@cloudera.org>.
Adar Dembo has posted comments on this change.

Change subject: thirdparty: add boost and switch to header-only build
......................................................................


Patch Set 1:

(3 comments)

http://gerrit.cloudera.org:8080/#/c/3500/1//COMMIT_MSG
Commit Message:

Line 18:    libstdc++, and libsasl, all of which should not be managed due to their
> and openssl, although the point still stands.
Right, though I explicitly omitted openssl because, at least for now, you really can't configure Kudu to use it.


PS1, Line 22: Some distros (e.g. SLES12) don't offer
            :    system packages
> The specific issue with SLES 12 (and I would assume the majority of the sma
Ah, I misread the blurb in installation.adoc. Will update.


http://gerrit.cloudera.org:8080/#/c/3500/1/docs/contributing.adoc
File docs/contributing.adoc:

Line 151: We are in the process of removing all remaining `boost` dependencies from the
> We still have 'approved' boost libraries.  I would vote to keep the approve
I really was hoping to avoid introducing new Boost usage, so that we stand a chance of removing the whole thing some day.

Is your point that adding a new usage of e.g. boost::optional isn't a big deal because, if/when we do replace it, updating an additional call-site is no big deal?


-- 
To view, visit http://gerrit.cloudera.org:8080/3500
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id5b73a8e2a86099429b6032023a01a0da7b02371
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Dan Burkert <da...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-HasComments: Yes

[kudu-CR] thirdparty: add boost and switch to header-only build

Posted by "Kudu Jenkins (Code Review)" <ge...@cloudera.org>.
Kudu Jenkins has posted comments on this change.

Change subject: thirdparty: add boost and switch to header-only build
......................................................................


Patch Set 2:

Build Started http://104.196.14.100/job/kudu-gerrit/2060/

-- 
To view, visit http://gerrit.cloudera.org:8080/3500
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id5b73a8e2a86099429b6032023a01a0da7b02371
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Dan Burkert <da...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-HasComments: No

[kudu-CR] thirdparty: add boost and switch to header-only build

Posted by "Kudu Jenkins (Code Review)" <ge...@cloudera.org>.
Kudu Jenkins has posted comments on this change.

Change subject: thirdparty: add boost and switch to header-only build
......................................................................


Patch Set 4:

Build Started http://104.196.14.100/job/kudu-gerrit/2071/

-- 
To view, visit http://gerrit.cloudera.org:8080/3500
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id5b73a8e2a86099429b6032023a01a0da7b02371
Gerrit-PatchSet: 4
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Dan Burkert <da...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-HasComments: No

[kudu-CR] thirdparty: add boost and switch to header-only build

Posted by "Adar Dembo (Code Review)" <ge...@cloudera.org>.
Adar Dembo has submitted this change and it was merged.

Change subject: thirdparty: add boost and switch to header-only build
......................................................................


thirdparty: add boost and switch to header-only build

The addition of boost to thirdparty is bound to make some squeamish, so
here's my rationale:
1. My original goal was to enable the TSAN build on Ubuntu 16.04, a distro
   that has switched to the new gcc5 ABI. This renders the system boost
   installation unusable as it can't link against our TSAN-instrumented
   libstdc++. To be fair, switching to a header-only build has eliminated
   this problem.
2. Boost is effectively the last remaining dependency that isn't explicitly
   managed as a thirdparty dependency. The only exceptions are glibc,
   libstdc++, and libsasl, all of which should not be managed due to their
   interactions with other ABIs. In my opinion, Kudu should manage as many
   dependencies as possible in this way.
3. Doing this means Kudu developers will no longer need to install boost
   system packages to build Kudu.
4. Historically, Kudu has permitted the use of any boost version even
   though some versions needed patches to build with a new compiler. IIRC,
   https://svn.boost.org/trac/boost/ticket/6165 was one such instance.
5. For the boost logic that Kudu does use, we'll know exactly which features
   exist and which do not. There'll be no more version-based ambiguity.
6. Doing this means we can drop the odd boost_uuid appendage.
7. This patch by no means implies that boost is to stay in Kudu forever.
   We're already at the point where we can get by with boost headers alone.
   Once we replace the remaining bits (i.e. optional and intrusive lists
   come to mind), we can jettison it altogether.

With that out of the way, here are the details:
- Inclusion of boost as a thirdparty dependency. I spent some time fighting
  with the boost build to get it to copy the headers without building
  anything; eventually I gave up and used rsync instead.
- Removal of boost components from Kudu's cmake logic. This netted a nice
  cleanup of cmake code.
- Removal of boost handling from documentation and other random places.
- Removal of boost_uuid.

Change-Id: Id5b73a8e2a86099429b6032023a01a0da7b02371
Reviewed-on: http://gerrit.cloudera.org:8080/3500
Tested-by: Kudu Jenkins
Reviewed-by: Dan Burkert <da...@cloudera.com>
---
M CMakeLists.txt
M LICENSE.txt
M build-support/dist_test.py
M build-support/release/rat_exclude_files.txt
M docs/contributing.adoc
M docs/installation.adoc
M src/kudu/util/CMakeLists.txt
M thirdparty/.gitignore
M thirdparty/LICENSE.txt
D thirdparty/boost_uuid/LICENSE.txt
D thirdparty/boost_uuid/boost/uuid/name_generator.hpp
D thirdparty/boost_uuid/boost/uuid/nil_generator.hpp
D thirdparty/boost_uuid/boost/uuid/random_generator.hpp
D thirdparty/boost_uuid/boost/uuid/seed_rng.hpp
D thirdparty/boost_uuid/boost/uuid/sha1.hpp
D thirdparty/boost_uuid/boost/uuid/string_generator.hpp
D thirdparty/boost_uuid/boost/uuid/uuid.hpp
D thirdparty/boost_uuid/boost/uuid/uuid_generators.hpp
D thirdparty/boost_uuid/boost/uuid/uuid_io.hpp
D thirdparty/boost_uuid/boost/uuid/uuid_serialize.hpp
M thirdparty/build-definitions.sh
M thirdparty/build-thirdparty.sh
M thirdparty/download-thirdparty.sh
A thirdparty/patches/boost-issue-12179-fix-compilation-errors.patch
M thirdparty/preflight.py
M thirdparty/vars.sh
26 files changed, 98 insertions(+), 1,558 deletions(-)

Approvals:
  Dan Burkert: Looks good to me, approved
  Kudu Jenkins: Verified



-- 
To view, visit http://gerrit.cloudera.org:8080/3500
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Id5b73a8e2a86099429b6032023a01a0da7b02371
Gerrit-PatchSet: 5
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Dan Burkert <da...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>

[kudu-CR] thirdparty: add boost and switch to header-only build

Posted by "Kudu Jenkins (Code Review)" <ge...@cloudera.org>.
Kudu Jenkins has posted comments on this change.

Change subject: thirdparty: add boost and switch to header-only build
......................................................................


Patch Set 1:

Build Started http://104.196.14.100/job/kudu-gerrit/1999/

-- 
To view, visit http://gerrit.cloudera.org:8080/3500
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id5b73a8e2a86099429b6032023a01a0da7b02371
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Dan Burkert <da...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-HasComments: No

[kudu-CR] thirdparty: add boost and switch to header-only build

Posted by "Kudu Jenkins (Code Review)" <ge...@cloudera.org>.
Kudu Jenkins has posted comments on this change.

Change subject: thirdparty: add boost and switch to header-only build
......................................................................


Patch Set 1: -Verified

Build Started http://104.196.14.100/job/kudu-gerrit/2000/

-- 
To view, visit http://gerrit.cloudera.org:8080/3500
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id5b73a8e2a86099429b6032023a01a0da7b02371
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Dan Burkert <da...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-HasComments: No

[kudu-CR] thirdparty: add boost and switch to header-only build

Posted by "Dan Burkert (Code Review)" <ge...@cloudera.org>.
Dan Burkert has posted comments on this change.

Change subject: thirdparty: add boost and switch to header-only build
......................................................................


Patch Set 2: Code-Review+2

-- 
To view, visit http://gerrit.cloudera.org:8080/3500
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id5b73a8e2a86099429b6032023a01a0da7b02371
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Dan Burkert <da...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-HasComments: No

[kudu-CR] thirdparty: add boost and switch to header-only build

Posted by "Dan Burkert (Code Review)" <ge...@cloudera.org>.
Dan Burkert has posted comments on this change.

Change subject: thirdparty: add boost and switch to header-only build
......................................................................


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/3500/1/docs/contributing.adoc
File docs/contributing.adoc:

Line 151: We are in the process of removing all remaining `boost` dependencies from the
> I really was hoping to avoid introducing new Boost usage, so that we stand 
Yes, but additionally I think boost::optional is a powerful tool for writing higher quality code, and its use should be encouraged wherever it makes sense from a code simplicity/maintainability perspective.  Optional is especially important when working with value types, as is often possible with the new move semantics, and unlocks simpler and more performant solutions than the existing tools (e.g. nullable unique_ptr) in many cases.  Basically, I think Optional is a great abstraction and to discourage its use because of a minor distaste of boost is going to do more harm than good.

I don't care as much about intrusive, and would agree that we should not encourage it, only that it should be available in the very few cases where it is justified.  I doubt it will get used again any time soon, so it's a bit of a non-issue.


-- 
To view, visit http://gerrit.cloudera.org:8080/3500
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id5b73a8e2a86099429b6032023a01a0da7b02371
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Dan Burkert <da...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-HasComments: Yes

[kudu-CR] thirdparty: add boost and switch to header-only build

Posted by "Kudu Jenkins (Code Review)" <ge...@cloudera.org>.
Kudu Jenkins has posted comments on this change.

Change subject: thirdparty: add boost and switch to header-only build
......................................................................


Patch Set 4: -Verified

Build Started http://104.196.14.100/job/kudu-gerrit/2072/

-- 
To view, visit http://gerrit.cloudera.org:8080/3500
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id5b73a8e2a86099429b6032023a01a0da7b02371
Gerrit-PatchSet: 4
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Dan Burkert <da...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-HasComments: No

[kudu-CR] thirdparty: add boost and switch to header-only build

Posted by "Dan Burkert (Code Review)" <ge...@cloudera.org>.
Dan Burkert has posted comments on this change.

Change subject: thirdparty: add boost and switch to header-only build
......................................................................


Patch Set 4: Code-Review+2

-- 
To view, visit http://gerrit.cloudera.org:8080/3500
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id5b73a8e2a86099429b6032023a01a0da7b02371
Gerrit-PatchSet: 4
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Dan Burkert <da...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-HasComments: No

[kudu-CR] thirdparty: add boost and switch to header-only build

Posted by "Dan Burkert (Code Review)" <ge...@cloudera.org>.
Dan Burkert has posted comments on this change.

Change subject: thirdparty: add boost and switch to header-only build
......................................................................


Patch Set 1:

(5 comments)

I'm +1 on moving boost into thirdparty.  I like that it removes complexity from the build.

http://gerrit.cloudera.org:8080/#/c/3500/1//COMMIT_MSG
Commit Message:

Line 18:    libstdc++, and libsasl, all of which should not be managed due to their
and openssl, although the point still stands.


PS1, Line 22: Some distros (e.g. SLES12) don't offer
            :    system packages
The specific issue with SLES 12 (and I would assume the majority of the small number of distros with this issue) is that it's missing boost-static, not the boost headers, so I think just moving to headers fixes it.


http://gerrit.cloudera.org:8080/#/c/3500/1/docs/contributing.adoc
File docs/contributing.adoc:

Line 151: We are in the process of removing all remaining `boost` dependencies from the
We still have 'approved' boost libraries.  I would vote to keep the approved list, but update it to just include 'optional' and 'intrusive'.


http://gerrit.cloudera.org:8080/#/c/3500/1/thirdparty/patches/boost-issue-12179-fix-compilation-errors.patch
File thirdparty/patches/boost-issue-12179-fix-compilation-errors.patch:

Line 1: --- boost/optional/optional_fwd.hpp	2016-05-05 14:13:30.000000000 -0700
ah I didn't see this before I wrote the version comment.  If you want to carry the patch instead of reverting to an older version that's fine with me.


http://gerrit.cloudera.org:8080/#/c/3500/1/thirdparty/vars.sh
File thirdparty/vars.sh:

Line 145: BOOST_VERSION=1_61_0
1.61 has the regression with optional_fwd.hpp, right?  If so, I think we should use a slightly older version instead (1.59 is well tested I think).  I'm usually pretty bullish on pushing the latest version of dependencies, but I don't see a real upside in this case.


-- 
To view, visit http://gerrit.cloudera.org:8080/3500
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id5b73a8e2a86099429b6032023a01a0da7b02371
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Dan Burkert <da...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-HasComments: Yes

[kudu-CR] thirdparty: add boost and switch to header-only build

Posted by "Adar Dembo (Code Review)" <ge...@cloudera.org>.
Hello Kudu Jenkins,

I'd like you to reexamine a change.  Please visit

    http://gerrit.cloudera.org:8080/3500

to look at the new patch set (#2).

Change subject: thirdparty: add boost and switch to header-only build
......................................................................

thirdparty: add boost and switch to header-only build

The addition of boost to thirdparty is bound to make some squeamish, so
here's my rationale:
1. My original goal was to enable the TSAN build on Ubuntu 16.04, a distro
   that has switched to the new gcc5 ABI. This renders the system boost
   installation unusable as it can't link against our TSAN-instrumented
   libstdc++. To be fair, switching to a header-only build has eliminated
   this problem.
2. Boost is effectively the last remaining dependency that isn't explicitly
   managed as a thirdparty dependency. The only exceptions are glibc,
   libstdc++, and libsasl, all of which should not be managed due to their
   interactions with other ABIs. In my opinion, Kudu should manage as many
   dependencies as possible in this way.
3. Doing this means Kudu developers will no longer need to install boost
   system packages to build Kudu.
4. Historically, Kudu has permitted the use of any boost version even
   though some versions needed patches to build with a new compiler. IIRC,
   https://svn.boost.org/trac/boost/ticket/6165 was one such instance.
5. For the boost logic that Kudu does use, we'll know exactly which features
   exist and which do not. There'll be no more version-based ambiguity.
6. Doing this means we can drop the odd boost_uuid appendage.
7. This patch by no means implies that boost is to stay in Kudu forever.
   We're already at the point where we can get by with boost headers alone.
   Once we replace the remaining bits (i.e. optional and intrusive lists
   come to mind), we can jettison it altogether.

With that out of the way, here are the details:
- Inclusion of boost as a thirdparty dependency. I spent some time fighting
  with the boost build to get it to copy the headers without building
  anything; eventually I gave up and used rsync instead.
- Removal of boost components from Kudu's cmake logic. This netted a nice
  cleanup of cmake code.
- Removal of boost handling from documentation and other random places.
- Removal of boost_uuid.

Change-Id: Id5b73a8e2a86099429b6032023a01a0da7b02371
---
M CMakeLists.txt
M LICENSE.txt
M build-support/dist_test.py
M build-support/release/rat_exclude_files.txt
M docs/contributing.adoc
M docs/installation.adoc
M src/kudu/util/CMakeLists.txt
M thirdparty/.gitignore
M thirdparty/LICENSE.txt
D thirdparty/boost_uuid/LICENSE.txt
D thirdparty/boost_uuid/boost/uuid/name_generator.hpp
D thirdparty/boost_uuid/boost/uuid/nil_generator.hpp
D thirdparty/boost_uuid/boost/uuid/random_generator.hpp
D thirdparty/boost_uuid/boost/uuid/seed_rng.hpp
D thirdparty/boost_uuid/boost/uuid/sha1.hpp
D thirdparty/boost_uuid/boost/uuid/string_generator.hpp
D thirdparty/boost_uuid/boost/uuid/uuid.hpp
D thirdparty/boost_uuid/boost/uuid/uuid_generators.hpp
D thirdparty/boost_uuid/boost/uuid/uuid_io.hpp
D thirdparty/boost_uuid/boost/uuid/uuid_serialize.hpp
M thirdparty/build-definitions.sh
M thirdparty/build-thirdparty.sh
M thirdparty/download-thirdparty.sh
A thirdparty/patches/boost-issue-12179-fix-compilation-errors.patch
M thirdparty/preflight.py
M thirdparty/vars.sh
26 files changed, 98 insertions(+), 1,558 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/00/3500/2
-- 
To view, visit http://gerrit.cloudera.org:8080/3500
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Id5b73a8e2a86099429b6032023a01a0da7b02371
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Dan Burkert <da...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>

[kudu-CR] thirdparty: add boost and switch to header-only build

Posted by "Kudu Jenkins (Code Review)" <ge...@cloudera.org>.
Kudu Jenkins has posted comments on this change.

Change subject: thirdparty: add boost and switch to header-only build
......................................................................


Patch Set 3:

Build Started http://104.196.14.100/job/kudu-gerrit/2066/

-- 
To view, visit http://gerrit.cloudera.org:8080/3500
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id5b73a8e2a86099429b6032023a01a0da7b02371
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Dan Burkert <da...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-HasComments: No

[kudu-CR] thirdparty: add boost and switch to header-only build

Posted by "Adar Dembo (Code Review)" <ge...@cloudera.org>.
Adar Dembo has posted comments on this change.

Change subject: thirdparty: add boost and switch to header-only build
......................................................................


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/3500/1/docs/contributing.adoc
File docs/contributing.adoc:

Line 151: We are in the process of removing all remaining `boost` dependencies from the
> Yes, but additionally I think boost::optional is a powerful tool for writin
Alright, then I'll update this to say something to the effect of:
1. We're actively trying to remove boost.
2. We're using boost in a header-only capacity right now; don't introduce any library dependencies.
3. Please don't introduce dependencies on new boost header-only features.
4. You can use existing boost header-only features on which we already depend (e.g. boost::optional, boost::bind). These features may be removed in the future; when using boost, please be mindful of the "current state" of the world (e.g. boost::bind might be gone soon).


-- 
To view, visit http://gerrit.cloudera.org:8080/3500
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id5b73a8e2a86099429b6032023a01a0da7b02371
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Dan Burkert <da...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-HasComments: Yes