[ 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