On Apr 10, 2009, at 8:40 PM, Bryan Duxbury wrote:
<snip>


1) The Java runtime is always copied to /usr/local/lib by make install. It does not pay any attention to my --prefix argument to configure. I also tried setting --libdir and --datarootdir but they made no difference.

Do we really even want "make install" to do anything for Java? I'd say open a ticket.

See next answer.



2) The ruby install is trying to write to somewhere that requires sudo access, even though I have specified --prefix as a configure argument with a path under ~. Same problem as #1 for a different language.

I believe that the ruby libraries try to go into site_ruby. Personally, I don't think that we should even do this anymore. Do you prefer to use the ruby libraries installed in this fashion for some reason? I'm a big fan of the gem form of packaging and use.

I ran into this problem and the Java problem just because I didn't turn off anything when I configured. What I really cared about was installing the C++ library in my --prefix location, whci doesn't require sudo, but I noticed as a side issue that the Java and Ruby packages were being installed down in locations owned by the system. A couple of days later, we decided that our official Thrift build needed to build the Java library, but then again I couldn't put it where I wanted it.

In general, the way we use third party libraries is to build them once and check the build output into our SVN repository. Then developers check out the libraries, rather than checking out the sources and building the libraries. This insures that everyone builds using the same code base. If we let the developers install libraries down in the system locations and link against them, then it's a free-for-all when something goes wrong. We do this for all of our libraries, including Boost. For this reason, having the build and installation steps use the --prefix (or --exec-prefix, etc.) settings is very important to us.

What I ended up doing because of the Java problem is running configure, then make, then I had to cd to lib/cpp and run make install there in order to avoid the permission error message associated with the Java library, then cd back to the top and copy libthrift.jar to the proper location.

I can see that there might be a need for --java-prefix, --ruby-prefix, etc. for languages other then C++. Currently I'm just putting the libthrift.jar next to my C++ libraries, but that's not really the proper place.



3) test/cpp/src/main.cpp has the line:
     shared_ptr<TSocket> socket(new TSocket("127.0.01", port));
which should be:
     shared_ptr<TSocket> socket(new TSocket("127.0.0.1", port));

Currently, this causes a runtime error.

Looks like we should open a ticket.

Okay.



4) The makefiles test/cpp/Stress-test.mk and test/cpp/Thrift- test.mk do not pay attention to my --prefix configuration setting. They assume that libraries are installed in the standard locations. They also don't pay attention to my --with-boost directory specification for setting boost_home, and seem to hardcode boost-1_33_1.

I'd say open a ticket.

Will do.


- Rush

Reply via email to