couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Davis <>
Subject Re: Dependencies in SVN
Date Thu, 06 Aug 2009 06:06:22 GMT
On Thu, Aug 6, 2009 at 12:45 AM, Curt Arnold<> wrote:
> The CouchDB now has at least snapshots of three non-ASL licensed, non-ASF
> developed projects in the SVN.  The following message suggests that mochiweb
> in the CouchDB repo is forked and incompatible with the main distribution:

Couple quick notes:

First, I'm still perplexed by that linked email. Perhaps I didn't
follow the original thread close enough but the two big things would
be that our version of MochiWeb is installed into
'/usr/local/lib/couchdb/mochiweb-$(VERSION)' by default which is in a
quite non-Erlangian location. How it conflicted with a different
install was suggestive of a complex user scenario. My assumption was
that it was mostly a conflict of versioning rather than some CouchDB
modification to the MochiWeb code base.

That said, we do have a slightly different JSON representation. This
came about during a conversation between Damien Katz, Joe Armstrong,
and Bob Ippolito on the CouchDB dev mailing list [1]. In essence it
refers to switching from {struct, PROPLIST} to {PROPLIST}. I am
uncertain why this change was never included upstream in MochiWeb.
Given their extremely accommodating responses to CouchDB's HTTP needs
I only assume it was because we never put the patch in their issue


> Having an external code base in the SVN is an invitation to fork which
> results in the ASF effectively publishing software under a license other the
> the ASL v2.  That is a whole different animal than having a dependency on an
> non-ASL'd licensed piece of software.

To my knowledge, none of the third party code in CouchDB svn has
undergone active development. While there may have been an occasional
bug fix in anticipation of upstream inclusion, I don't have explicit
knowledge of anything diverging greatly from upstream trunk. And to
that matter, there have been multiple merges from upstream which I
would hope indicates our commitment to staying in line with those

> erlang-oauth was introduced into the SVN yesterday to support the
> couch_http_oauth authentication handler.  It is optional, the recently added
> oauth authentication handler would fail to load without it but that should
> be all.  There was no mention that the patch included third-party developed
> software, no dev list discussion or vote or Incubator PMC clearance.  I have
> requested that it be removed from the SVN pending review.
> ibrowse was added initially added to the SVN in January and is an HTTP
> client used in replication.  I was unable to find any mailing list
> discussion or Incubator review on the addition of this code base.
> mochiweb was added in March 2008 and provides the http server included in
> CouchDB.  The Incubator PMC was aware of this dependency based on the April
> 2008 Incubator PMC board report.  In addition to the http server, CouchDB
> also uses mochiweb routines for parsing query strings, url encoding, etc.
> Most of the other dependencies are used in the Futon management client.
> To minimize the amount of effort that a user has to perform to satisfy their
> license issues, I think we should consider modularizing couchdb so that a
> user who isn't interested in OAuth does not have to research its license,
> etc.
> I'd see the parts as:
> core: The database and non-network core of CouchDB.  I would hope this code
> have no dependencies other than OTP.
> http: The http server dependent on MochiWeb's http services and core.
> replicator: dependent on core and ibrowse
> futon: HTTP admin console
> oauth: OAuth authenticator, dependent on erlang-oauth
> Ideally, the interfaces with mochiweb, ibrowse and the like should be
> designed so that other providers could be substituted without huge effort.
> I do think the Incubator PMC should review the situation, but it would be
> good to understand the issues and discuss a path forward before asking for
> review.

Thank you for taking the time to review our third party contributions.
I appreciate the effort you're putting forth to make sure that CouchDB
complies with ASF policies for code contributions.

Paul J. Davis

View raw message