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

Randy Abernethy edited comment on THRIFT-2744 at 9/30/14 1:17 PM:
------------------------------------------------------------------

The goal with this VM/Vagrantfile was to get a complete build and test running 
on Centos 6.5. Many other issues required attention to reach the goal. The 
Vagrantfile provisions all thrift configure languages except D. Configure is 
executed without Lua and Go however. The Lua version available on Centos 6.5 is 
5.1.4 and the Makefile.am is hard coded to depend on 5.2. Tests seemed to show 
the Centos version of Lua is ok but I did not want to change the Makefile. Go 
had build issues and due to time and lack of familiarity I disabled Go.

The compiler and all other languages make and make check on the Centos vm. 

Description of the changes and additions in the patch:
- Added .vagrant to .gitignore to avoid accidental commit of vagrant images
- Fixed the thrift compiler recursive types to allow builds to succeed
- Replaced haskell generator use of C++11 nullptr, auto and ranged for loops 
- Added thrift/contrib/vagrant/centos-6.5/README.md to describe the base box 
and vagrant use
- Added thrift/contrib/vagrant/centos-6.5/Vagrantfile to provision the Centos 
base box
- Added missing limits header to TBufferTransport.h
- Replaced non standard sizeof use on non-static member in TServerSocket.cpp 
and TSocket.cpp
- Commented out unused Makefile.am sections (to avoid build failure) in 
thrift/lib/cpp/test/Makefile.am, thrift/lib/d/Makefile.am and 
thrift/lib/d/test/Makefile.am
- Updated thrift/lib/js/test/build.xml with target file names to avoid build 
failure
- Updated thrift/lib/nodejs/Makefile.am to install with --no-bin-links because 
shared directories under Vagrant/VirtualBox do not support symlinks
- Fixed thrift/lib/nodejs/lib/thrift/multiplexed_processor.js bug causing 
oneway node tests to fail
- Commented one failing expect in Ruby test thrift/lib/rb/spec/server_spec.rb 
(would like verification on this one as I had limited time to look into the 
root cause)
- Commented non existent command ($TRIAL) in check rule in 
thrift/test/py.twisted/Makefile.am

To try the VM:

   $ git clone https://github.com/apache/thrift
   $ cd thrift/contrib/vagrant/centos-6.5
   $ vagrant up

Then wait about an hour :-)

Can I get a +1?


was (Author: codesf):
The goal with this VM/Vagrantfile was to get a complete build and test running 
on Centos 6.5. Many other issues required attention to reach the goal. The 
Vagrantfile provisions all thrift configure languages except D. Configure is 
executed without Lua and Go however. The Lua version available on Centos 6.5 is 
5.1.4 and the Makefile.am is hard coded to depend on 5.2. Tests seemed to show 
the Centos version of Lua is ok but I did not want to change the Makefile. Go 
had build issues and due to time and lack of familiarity I disabled Go.

The compiler and all other languages make and check (with the possible 
exception of Haskell but it does not interrupt the build). 

Description of the changes and additions in the patch:
- Added .vagrant to .gitignore to avoid accidental commit of vagrant images
- Fixed the thrift compiler recursive types to allow builds to succeed
- Replaced haskell generator use of C++11 nullptr, auto and ranged for loops 
- Added thrift/contrib/vagrant/centos-6.5/README.md to describe the base box 
and vagrant use
- Added thrift/contrib/vagrant/centos-6.5/Vagrantfile to provision the Centos 
base box
- Added missing limits header to TBufferTransport.h
- Replaced non standard sizeof use on non-static member in TServerSocket.cpp 
and TSocket.cpp
- Commented out unused Makefile.am sections (to avoid build failure) in 
thrift/lib/cpp/test/Makefile.am, thrift/lib/d/Makefile.am and 
thrift/lib/d/test/Makefile.am
- Updated thrift/lib/js/test/build.xml with target file names to avoid build 
failure
- Updated thrift/lib/nodejs/Makefile.am to install with --no-bin-links because 
shared directories under Vagrant/VirtualBox do not support symlinks
- Fixed thrift/lib/nodejs/lib/thrift/multiplexed_processor.js bug causing 
oneway node tests to fail
- Commented one failing expect in Ruby test thrift/lib/rb/spec/server_spec.rb 
(would like verification on this one as I had limited time to look into the 
root cause)
- Commented non existent command ($TRIAL) in check rule in 
thrift/test/py.twisted/Makefile.am

To try the VM:

   $ git clone https://github.com/apache/thrift
   $ cd thrift/contrib/vagrant/centos-6.5
   $ vagrant up

Then wait about an hour :-)

Can I get a +1?

> Vagrantfile for Centos 6.5
> --------------------------
>
>                 Key: THRIFT-2744
>                 URL: https://issues.apache.org/jira/browse/THRIFT-2744
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Build Process, Test Suite, Tutorial
>    Affects Versions: 0.9.2
>         Environment: all
>            Reporter: Randy Abernethy
>            Assignee: Randy Abernethy
>         Attachments: 0001-vagrant-updates-8.patch
>
>
> Apache Thrift needs better Centos support.
> Apache Thrift build and test has been missing solid Centos support. Getting 
> the full Thrift platform to build on Centos is a rough road, largely because 
> commits take place without testing on Centos. 
> Kerry Kim, director of Linux markets for SuSE, in a January 2014 LinuxInsider 
> story ranked enterprise Linux platforms: Red Hat (60 percent market share), 
> SuSE (30 percent market share), Oracle (5 to 8 percent market share) and 
> Ubuntu (less than 4 percent)  http://www.linuxinsider.com/story/79717.html
> Testing with Centos provides the opportunity to catch additional defects in 
> code, build and cross platform operation which aren't reported on Ubuntu 
> alone. A particular concern that Centos will help trap is the addition of C+ 
> + 11 code to the Thrift compiler and or C+ + 98 lib. A cpp11 lib is a 
> necessary addition but we should keep the compiler and existing libs free of 
> C+ + 11 so that they will build on LTS platforms. 
> This Vagrantfile is a work in progress. It currently supports building the 
> compiler and almost all of the language libraries. 
> Adding Centos and a Windows vm to the CI process prior to v1.0 would be a 
> significant cross platform uptick. With Ubuntu, Centos and Windows, Thrift 
> would have the cross platform test base that it deserves.
> As a side note: We should either make sure commits pass CI or just turn off 
> the CI everywhere so that we do not waste power, CPU cycles and email 
> bandwidth. The CI BUILD FAILED emails are far too frequent.



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

Reply via email to