dnanexus/dx-toolkit — pull request #40 by abiyani (2013-08-13 04:37:19+00:00)
Title: Removing the SIGPIPE hack from dxcpp

@jmdale

libcurl 7.32.0 is released today (http://curl.haxx.se/download.html). This fixes the long outstanding bug: http://sourceforge.net/p/curl/bugs/1180/, in particular it contains the following desired commit https://github.com/bagder/curl/commit/7d80ed.

If the libcurl bug fix really works, then we can get rid of the SIGPIPE hack in dxcpp. This pull request does that. I have also updated the libcurl versions in build_curl.sh (and centos build) scripts, and enforced that we compile using libcurl >= 7.32 in ua/main.cpp

If you chose to merge the pull request, a suggested workflow might be:
1) Compile a new version of UA, say UA v1.4.6
2) Run a large scale test to upload using two different versions of UA: new one (1.4.6), and an old one with this problem (I think v1.4.1 had it ? - JIRA ticket about this should contain the exact version number).
3) Assume the bug fix to work after achieving some arbitrary threshold of satisfaction: (i.e., new UA fail 0 time, and the old one fails N time (N != 0)).

If the libcurl fix works, then I can think of following changes being required:
1) Update the libcurl on idna2
2) Update the libcurl locally
3) Bump up the version number of UA to 1.4.6 (in ua/Makefile)
4) Add notes to ua/CHANELOG
5) Compile on all platforms, if a new release is desired (not essential, since our hack also seemed to work fine)

And as a sanity check, please make sure that it compiles fine on Mac & Windows.

PS: For windows we still compile using libcurl 7.28 (if I remember it correctly), and the #error in main.cpp also do not enforce libcurl version requirement on windows. This is because, this bug was not relevant to Windows case, since we do *not* use OpenSSL there. (and also compiling higher version of libcurl was causing some problem, which I do not recall now).