You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "James E. King, III (JIRA)" <ji...@apache.org> on 2017/01/16 20:40:26 UTC

[jira] [Commented] (THRIFT-4033) After building thrift-0.10.0 debian packages and installing them on Ubuntu 14.04, the thrift compiler does not work (packaged incorrectly)

    [ https://issues.apache.org/jira/browse/THRIFT-4033?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15824567#comment-15824567 ] 

James E. King, III commented on THRIFT-4033:
--------------------------------------------

I have a temporary solution for this which is to modify configure.ac and change "have_plugin" to "no" then build the debian packages.  This keeps everything enabled but it disables the plugin support, but it will have full language support:

{noformat}
thrift 0.10.0

Building Plugin Support ...... : no
Building C++ Library ......... : yes
Building C (GLib) Library .... : yes
Building Java Library ........ : yes
Building C# Library .......... : yes
Building Python Library ...... : yes
Building Ruby Library ........ : yes
Building Haxe Library ........ : yes
Building Haskell Library ..... : yes
Building Perl Library ........ : yes
Building PHP Library ......... : yes
Building Dart Library ........ : yes
Building Erlang Library ...... : yes
Building Go Library .......... : yes
Building D Library ........... : yes
Building NodeJS Library ...... : yes
Building Lua Library ......... : yes

C++ Library:
   Build TZlibTransport ...... : yes
   Build TNonblockingServer .. : yes
   Build TQTcpServer (Qt4) .... : no
   Build TQTcpServer (Qt5) .... : yes

Java Library:
   Using javac ............... : javac
   Using java ................ : java
   Using ant ................. : /usr/bin/ant

C# Library:
   Using .NET 3.5 ............ : yes

Python Library:
   Using Python .............. : /usr/bin/python
   Using Python3 ............. : /usr/bin/python3
   Using trial ............... : /usr/bin/trial

PHP Library:
   Using php-config .......... : /usr/bin/php-config

Dart Library:
   Using Dart ................ : /usr/lib/dart/bin/dart
   Using Pub ................. : /usr/lib/dart/bin/pub

Ruby Library:
   Using Ruby ................ : /usr/bin/ruby

Haskell Library:
   Using Haskell ............. : /usr/bin/runhaskell
   Using Cabal ............... : /usr/bin/cabal

Haxe Library:
   Using Haxe ................ : /usr/bin/haxe
   Using Haxe version ........ : 3.2.0

Perl Library:
   Using Perl ................ : /usr/bin/perl

Erlang Library:
   Using erlc ................ : /usr/bin/erlc
   Using rebar ............... : /usr/bin/rebar

Go Library:
   Using Go................... : /usr/local/go/bin/go
   Using Go version........... : go version go1.4.3 linux/amd64

D Library:
   Using D Compiler .......... : dmd
   Building D libevent tests . : yes
   Building D SSL tests ...... : yes

NodeJS Library:
   Using NodeJS .............. : /usr/bin/nodejs
   Using NodeJS version....... : v0.10.25

Lua Library:
   Using Lua .............. : /usr/bin/lua
{noformat}

[~jfarrell] I think modifying debian/rules where it calls configure would also work here, but I tried "--without-plugin" and that didn't work.



> After building thrift-0.10.0 debian packages and installing them on Ubuntu 14.04, the thrift compiler does not work (packaged incorrectly)
> ------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-4033
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4033
>             Project: Thrift
>          Issue Type: Bug
>          Components: Build Process
>    Affects Versions: 0.10.0
>         Environment: Ubuntu 14.04.4 LTS
>            Reporter: James E. King, III
>            Priority: Blocker
>
> I built thrift-0.10.0 debian packages doing the following:
> # Clone the thrift project from github
> # Check out the 0.10.0 tag
> # Create a docker image: docker build -t thrift build/docker/ubuntu (from https://github.com/apache/thrift/tree/master/build/docker)
> # Load the image as a docker instance: docker run -v $(pwd):/thrift/src -it thrift /bin/bash
> # Run this command to build all debian package: dpkg-buildpackage -d -tc 
> Then I replaced thrift-0.8.0 on my Ubuntu 14.04 system with the packages that I just built and tried to get the version from the thrift compiler:
> {noformat}
> jking@dvm61:~/thrift/packages/0.10.0/unpacked$ dpkg -l | grep thrift
> hi  libthrift-dev                                 0.8.0-0+svt12                           amd64        Thrift C++ library (development headers)
> ii  libthrift-java                                0.8.0-0+svt12                           all          Java bindings for Thrift
> hi  libthrift-perl                                0.8.0-0+svt12                           all          Perl bindings for Thrift
> hi  libthrift0                                    0.8.0-0+svt12                           amd64        Thrift C++ library
> hi  php5-thrift                                   0.8.0-0+svt12                           amd64        PHP bindings for Thrift
> ii  python-thrift                                 0.8.0-0+svt12                           amd64        Python bindings for Thrift
> ii  thrift-compiler                               0.8.0-0+svt12                           amd64        Compiler for Thrift definition files
> jking@dvm61:~/thrift/packages/0.10.0/unpacked$ sudo dpkg -i libthrift0_0.10.0_amd64.deb libthrift-dev_0.10.0_amd64.deb libthrift-java_0.10.0_all.deb libthrift-perl_0.10.0_all.deb php5-thrift_0.10.0_amd64.deb python-thrift_0.10.0_amd64.deb thrift-compiler_0.10.0_amd64.deb 
> (Reading database ... 232573 files and directories currently installed.)
> Preparing to unpack libthrift0_0.10.0_amd64.deb ...
> Unpacking libthrift0 (0.10.0) over (0.8.0-0+svt12) ...
> Preparing to unpack libthrift-dev_0.10.0_amd64.deb ...
> Unpacking libthrift-dev (0.10.0) over (0.8.0-0+svt12) ...
> Preparing to unpack libthrift-java_0.10.0_all.deb ...
> Unpacking libthrift-java (0.10.0) over (0.8.0-0+svt12) ...
> Preparing to unpack libthrift-perl_0.10.0_all.deb ...
> Unpacking libthrift-perl (0.10.0) over (0.8.0-0+svt12) ...
> Preparing to unpack php5-thrift_0.10.0_amd64.deb ...
> Unpacking php5-thrift (0.10.0) over (0.8.0-0+svt12) ...
> Preparing to unpack python-thrift_0.10.0_amd64.deb ...
> Unpacking python-thrift (0.10.0) over (0.8.0-0+svt12) ...
> Preparing to unpack thrift-compiler_0.10.0_amd64.deb ...
> Unpacking thrift-compiler (0.10.0) over (0.8.0-0+svt12) ...
> Setting up libthrift0 (0.10.0) ...
> Setting up libthrift-dev (0.10.0) ...
> Setting up libthrift-java (0.10.0) ...
> Setting up libthrift-perl (0.10.0) ...
> Setting up php5-thrift (0.10.0) ...
> Setting up python-thrift (0.10.0) ...
> Setting up thrift-compiler (0.10.0) ...
> Processing triggers for python-support (1.0.15) ...
> Processing triggers for libc-bin (2.19-0ubuntu6.7+svt1) ...
> jking@dvm61:~/thrift/packages/0.10.0/unpacked$ dpkg -l | grep thrift
> ii  libthrift-dev                                 0.10.0                                  amd64        Thrift C++ library (development headers)
> ii  libthrift-java                                0.10.0                                  all          Java bindings for Thrift
> ii  libthrift-perl                                0.10.0                                  all          Perl bindings for Thrift
> ii  libthrift0                                    0.10.0                                  amd64        Thrift C++ library
> ii  php5-thrift                                   0.10.0                                  amd64        PHP bindings for Thrift
> ii  python-thrift                                 0.10.0                                  amd64        Python bindings for Thrift (Python 2)
> ii  thrift-compiler                               0.10.0                                  amd64        Compiler for Thrift definition files
> {noformat}
> So then I tried to run the thrift compiler:
> {noformat}
> jking@dvm61:~/thrift/packages/0.10.0/unpacked$ thrift --version
> mkdir: cannot create directory ‘/usr/bin/.libs’: Permission denied
> /usr/bin/thrift: line 202: cd: /thrift/src/compiler/cpp: No such file or directory
> g++: error: src/thrift/thrift-main.o: No such file or directory
> g++: error: src/thrift/audit/thrift-t_audit.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_c_glib_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_cpp_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_java_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_json_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_as3_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_dart_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_haxe_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_csharp_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_py_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_rb_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_perl_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_php_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_erl_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_cocoa_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_swift_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_st_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_ocaml_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_hs_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_xsd_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_xml_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_html_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_js_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_javame_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_delphi_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_go_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_gv_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_d_generator.o: No such file or directory
> g++: error: src/thrift/generate/thrift-t_lua_generator.o: No such file or directory
> g++: error: src/thrift/libparse.a: No such file or directory
> g++: error: ./.libs/libthriftc.so: No such file or directory
> Something looks quite wrong here…  I am going to open a Jira ticket.  
> It looks like this release is DOA unless I build the thrift compiler without plug-in support.
> It looks like it is assuming I am root and I can modify /usr/bin/.libs, or it thinks things are at /thrift
> {noformat}
> /usr/bin/thrift is a text file provided by thrift-compiler-0.10.0.
> It has a comment in it:
> {noformat}
> # This wrapper script should never be moved out of the build directory.
> # If it is, it will not operate correctly.
> {noformat}
> It looks like we took this file and distributed it, moving it from the build directory to /usr/bin/thrift.  It doesn't look like this works.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)