BigCouch 0.3 cannot parse requests of the form /db/_changes?since="123-foo" so the recent ?JSON_ENCODE addition to Since in two places causes 0.3 <-> 0.4 replication to fail with json_encode/badterm errors. This patch applies JSON encoding only when the Since value is not already a binary (i.e, when it's a [integer(), binary()]) and interop is restored. BugzID: 12833
Conflicts: acinclude.m4.in configure.ac couchjs/c_src/http.c src/erlang-oauth/Makefile.am src/erlang-oauth/oauth.app.in src/erlang-oauth/oauth_hmac_sha1.erl src/erlang-oauth/oauth_http.erl src/erlang-oauth/oauth_plaintext.erl src/etap/etap_web.erl
Our headers start with a <<1>> and then four bytes indicating the length of the header and its checksum. When the header is larger than 4090 bytes it will be split across multiple blocks in the file and will need to be reassembled on read. The reassembly consists of stripping out <<0>> from the beginning of each subsequent block in the remove_block_prefixes/2 function. The bug here is that we tell remove_block_prefixes that we're starting 1 byte into the current block instead of 5, so it ends up removing one good byte from the header and injecting one or more random <<0>>s. Headers larger than 4k are very rare and generally require a view group with a huge number of indexes or indexes with fairly large reductions, which explains why this bug has gone undetected until now. Closes COUCHDB-1319.
This reverts commit 6b26f47. Turns out the 'libm' error is a very obscure way of reporting a lack of a C++ compiler.
This patch allows couchjs to link against the SpiderMonkey as it existed in the mercurial hash 59c1e6bdb11 from . This does *not* ensure compatibility with CouchDB as there are other things that will also need to be fixed. Specifically, the anonymous function issue for builtin JS functions.  http://hg.mozilla.org/mozilla-central/