Return-Path: X-Original-To: apmail-mesos-dev-archive@www.apache.org Delivered-To: apmail-mesos-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4C41518066 for ; Wed, 10 Feb 2016 00:14:31 +0000 (UTC) Received: (qmail 73675 invoked by uid 500); 10 Feb 2016 00:14:31 -0000 Delivered-To: apmail-mesos-dev-archive@mesos.apache.org Received: (qmail 73586 invoked by uid 500); 10 Feb 2016 00:14:30 -0000 Mailing-List: contact dev-help@mesos.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@mesos.apache.org Delivered-To: mailing list dev@mesos.apache.org Received: (qmail 73569 invoked by uid 99); 10 Feb 2016 00:14:30 -0000 Received: from Unknown (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 10 Feb 2016 00:14:30 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id F2203C0809 for ; Wed, 10 Feb 2016 00:14:29 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.18 X-Spam-Level: * X-Spam-Status: No, score=1.18 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=2, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01] autolearn=disabled Authentication-Results: spamd1-us-west.apache.org (amavisd-new); dkim=pass (1024-bit key) header.d=mesosphere.io Received: from mx1-us-east.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id YW6xwXhLIjO1 for ; Wed, 10 Feb 2016 00:14:28 +0000 (UTC) Received: from mail-oi0-f71.google.com (mail-oi0-f71.google.com [209.85.218.71]) by mx1-us-east.apache.org (ASF Mail Server at mx1-us-east.apache.org) with ESMTPS id D9F6743F06 for ; Wed, 10 Feb 2016 00:14:27 +0000 (UTC) Received: by mail-oi0-f71.google.com with SMTP id j125so5995836oih.3 for ; Tue, 09 Feb 2016 16:14:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mesosphere.io; s=google; h=mime-version:from:date:message-id:subject:to:content-type; bh=9FdO9Xm8h/QwYw4y3N72OAGnx4j0Tcl5PU0u5FetoXY=; b=HImWbliuHAMYBNei7/AYQZMEQBe+RG86yn287yHFb6JBamldnb63fBtbzMyBJJs2Z4 b5RXltvIujU+1NEsbD5q4s5R9U67kM0Xi3d3nV1Em43hfOBMJKVbT2AfADPLrtGMXEYQ bp6q+XKHI2jek502HLjxqZTXCa12ELcI93e8k= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to :content-type; bh=9FdO9Xm8h/QwYw4y3N72OAGnx4j0Tcl5PU0u5FetoXY=; b=h/dFIHR545F0PHXWZmRfhYkrU13lDoew4U4xwGyPvznb2s8ZI9yD+Y3Jgofwqs9wth I6cnxSt81KuQK/G2EUP4tQa34esyosIjMjsmlaqNPPUoYml+QMrEds/IeisT9TN4Ygl+ OnLxDJ4PQJrz3T8m/nDMRwdk/TJmdBiVGIiSsv/68rcGshaQiVfxZCa6kCJ50mPV6TaG MejLRFECfcav1txg+91sw9bN2D38jvU8VTX4PpvSrAgHWtAIys3Y4x4bAToi2RMFJFox Nn55UsCXilDjGiwDE3eQSc/IygK4WEh76VItaxfMvUzxRr2zUf54R+DxuiU5IbGBGqHs q2vg== X-Gm-Message-State: AG10YOT9Th7/yNpNqJDN3Fyfa0A26NBrJkXwO6xnFoOgEUJ4AJdBumONMf004tOuGRGMvdTEo2uv+gkHfseOuJrb X-Received: by 10.60.124.83 with SMTP id mg19mr32382091oeb.14.1455063261591; Tue, 09 Feb 2016 16:14:21 -0800 (PST) MIME-Version: 1.0 Received: by 10.202.69.139 with HTTP; Tue, 9 Feb 2016 16:14:02 -0800 (PST) From: Kapil Arya Date: Tue, 9 Feb 2016 19:14:02 -0500 Message-ID: Subject: Reorganize 3rdparty directory To: dev Content-Type: multipart/alternative; boundary=047d7b5d2fd2d5a34a052b5f505c --047d7b5d2fd2d5a34a052b5f505c Content-Type: text/plain; charset=UTF-8 Hi All, TLDR: Move everything from 3rdparty/libprocess/3rdparty/* into 3rdparty/. (Optionally) Move libprocess/stout to the top-level directory. I wanted to start some discussion around reorganizing stuff inside "3rdparty". I apologize for the length of the email, please bear with me. Traditionally, 3rdparty has been used to hold all Mesos dependencies (zookeeper, libprocess, protobuf, stout, etc.). Further, libprocess/3rdparty was to hold all libprocess dependencies (which may in turn be Mesos dependencies as well). As I understand, the original motivation was to emphasize that libprocess is an independent project which depends on "stout", which in turn is also an independent project. However, in the current code base, we don't strictly follow the 3rdparty structure. For example, stout has a dependency on picojson and google-protobuf, but we don't put these two packages inside 3rdparty/libprocess/3rdparty/stout/3rdparty/. In light of these anomalies, I want to propose that we flatten out the 3rdparty directory and put all packages (libprocess, stout, protobuf, picojson, zookeeper, etc.) at the same level in 3rdparty. We can still use "--with-XYZ=..." to the full extent as needed. To take it a step further, I want to propose that we bring libprocess and stout out of 3rdparty/ and move them at the top level (i.e., make them peers of src/). That way, all code in 3rdparty/ is stuff from "third" parties and is used only when "--with-bundled" is defined (by default). This hierarchy will still allow us to keep libprocess and stout as separate independent projects. The motivation for this proposal came when dealing with 3rdparty dependencies for module development. A module developer needs access to protobuf, picojson, glog, etc., and for that matter, the exact versions of these packages that Mesos was compiled with. We want to solve this problem by installing module-specific 3rdparty dependencies into "${pkglibdir}/3rdparty" as part of "make install" (if configured with something like "--enable-install-module-dependencies"). (There is a discussion going on in a separate thread). Further, as of today, when we install Mesos using "make install", we install stout headers in "${prefix}/include/stout". However, stout has dependencies on picojson[1] and google-protobuf headers which may not be present on the machine. This leaves stout, and in turn libprocess and Mesos headers, fairly broken. I understand that this issue is somewhat orthogonal to the main issue being discussed in this mail, but I wanted to put it out since it's related. Any thoughts, comments, concerns are most welcome! Best, Kapil [1]: Picojson issue was resolved as part of https://reviews.apache.org/r/41424/ which installs picojson.h into the include-dir. --047d7b5d2fd2d5a34a052b5f505c--