[
https://issues.apache.org/jira/browse/THRIFT-1357?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13692204#comment-13692204
]
Anthony Molinaro commented on THRIFT-1357:
------------------------------------------
I don't think there is a modern json library that will work. The build and
test environment is erlang from 3+ years ago (R13B03). What I would recommend
Peter, is snagging mochijson2
(https://github.com/mochi/mochiweb/blob/master/src/mochijson2.erl), adding that
and using it. That would remove the external dependency entirely. Mochijson2
is MIT license, so should be fine to include with Thrift, and hasn't changed in
2 years, so should work fine with R13B03. It's not a streaming parser like
JSX, but JSX is a larger library with more moving parts and obviously more
difficult to integrate with the older system the testing is built on. R13B03
also had an old version of eunit (or may not have included it, I can't recall).
So you might want to remove the eunit tests from mochijson2.
There's one other thing someone could try who has direct access to the build
environment to enable the erlang testing. You can apply this
{noformat}
diff --git a/lib/erl/Makefile.am b/lib/erl/Makefile.am
index 9505024..089cca5 100644
--- a/lib/erl/Makefile.am
+++ b/lib/erl/Makefile.am
@@ -32,7 +32,7 @@ all: .generated
./rebar compile
check: .generated
- ./rebar eunit
+ ./rebar skip_deps=true eunit
install: all
mkdir -p $(DESTDIR)$(ERLANG_INSTALL_LIB_DIR_thrift) ; \
{noformat}
Which should disable the eunit tests for jsx which should help with the error
Roger noticed.
> Erlang Dependency breaks build
> ------------------------------
>
> Key: THRIFT-1357
> URL: https://issues.apache.org/jira/browse/THRIFT-1357
> Project: Thrift
> Issue Type: Bug
> Components: Erlang - Library
> Affects Versions: 0.9
> Environment: Apache build Infrastructure based on Ubuntu lucid
> {noformat}
> ii erlang-base 1:13.b.3-dfsg-2ubuntu2.1
> Erlang/OTP virtual machine and base applicat
> ii erlang-crypto 1:13.b.3-dfsg-2ubuntu2.1
> Erlang/OTP cryprographic modules
> ii erlang-dev 1:13.b.3-dfsg-2ubuntu2.1
> Erlang/OTP development libraries and headers
> ii erlang-eunit 1:13.b.3-dfsg-2ubuntu2.1
> Erlang/OTP module for unit testing
> ii erlang-syntax-tools 1:13.b.3-dfsg-2ubuntu2.1
> Erlang/OTP modules for handling abstract Erl
> ii erlang-base 1:13.b.3-dfsg-2ubuntu2.1
> Erlang/OTP virtual machine and base applicat
> ii erlang-crypto 1:13.b.3-dfsg-2ubuntu2.1
> Erlang/OTP cryprographic modules
> ii erlang-dev 1:13.b.3-dfsg-2ubuntu2.1
> Erlang/OTP development libraries and headers
> ii erlang-eunit 1:13.b.3-dfsg-2ubuntu2.1
> Erlang/OTP module for unit testing
> ii erlang-syntax-tools 1:13.b.3-dfsg-2ubuntu2.1
> Erlang/OTP modules for handling abstract Erl
> {noformat}
> Reporter: Roger Meier
> Assignee: Jake Farrell
> Fix For: 0.9.1
>
> Attachments:
> 0001-Fixed-thrift_json_protocol.erl-to-work-with-JSX-v0.9.patch,
> 0001-updated-JSX-version.patch, thrift-1357.patch
>
>
> THRIFT-1227 introduced JSON for erlang,
> however the Ubuntu build infrastructur does not support this...
> {noformat}
> ./rebar get-deps
> ==> erl (get-deps)
> Pulling jsx from {git,"git://github.com/talentdeficit/jsx.git",{tag,"v0.9.0"}}
> Initialized empty Git repository in
> /home/jenkins/jenkins-slave/workspace/Thrift/thrift/lib/erl/deps/jsx/.git/
> ==> nicefloats (get-deps)
> ==> jsx (get-deps)
> ./rebar compile
> ==> nicefloats (compile)
> Compiled src/nicefloats.erl
> ==> jsx (compile)
> ./include/jsx_common.hrl:34: type jsx_opt() undefined
> ./include/jsx_common.hrl:66: type jsx_parser_result() undefined
> ./include/jsx_common.hrl:82: type eep0018_array() undefined
> ./include/jsx_common.hrl:82: type eep0018_object() undefined
> ./include/jsx_common.hrl:84: type eep0018_term() undefined
> ./include/jsx_common.hrl:85: type eep0018_key() undefined
> ./include/jsx_common.hrl:85: type eep0018_term() undefined
> ./include/jsx_common.hrl:91: type eep0018_string() undefined
> ./include/jsx_common.hrl:92: type eep0018_number() undefined
> ./include/jsx_common.hrl:100: type encoder_opt() undefined
> ./include/jsx_common.hrl:109: type decoder_opt() undefined
> ./include/jsx_common.hrl:117: type verify_opt() undefined
> ./include/jsx_common.hrl:123: type format_opt() undefined
> make[3]: *** [all] Error 1
> {noformat}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira