On Thu, Aug 6, 2009 at 12:45 AM, Curt Arnold<[email protected]> 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:
>
> http://mail-archives.apache.org/mod_mbox/couchdb-user/200907.mbox/%3c000001ca0dbe$72ac9220$5805b6...@[email protected]%3E
>
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
tracker.
[1]
http://mail-archives.apache.org/mod_mbox/couchdb-dev/200807.mbox/%[email protected]%3e
> 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
projects.
> 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