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

Colin Patrick McCabe commented on HADOOP-11216:
-----------------------------------------------

I thought about this a little bit more.  How openssl is named varies a lot from 
platform to platform.  It's not much of an exaggeration to say that it's a 
nightmare for packagers.  Adding to this problem, a lot of the OSes we support 
(like RHEL6.4) have versions of openssl installed by default that are too old 
for Hadoop.  So we're going to have to ask people to install a newer version 
manually in any case.  I think depending on a specific name suffix is going to 
create more problems than it solves, at least in the short term.  So I think we 
should just search for the no-suffix form, and error out if it's not found.

bq. 1. Existing openssl.prefix, openssl.lib, openssl.include will let people to 
specify custom openssl location, they will become -L and -I when doing compile 
using gcc. Yes, I agree people can set CMAKE_LIBRARY_PATH and 
CMAKE_INCLUDE_PATH. But snappy is in this way, should we make them consistent 
(keep openssl.**, or remove snappy.**)?

This is another thing I need to think about more.  If we're going to have 
custom installations of openssl, then maybe these variables need to exist.  
However, we also need a way of finding this stuff at runtime, as you pointed 
out.  I think we can use the same trick we used earlier where we add an RPATH 
to libhadoop.so that causes it to find the libcrypto in its own directory, if 
one exists.  Then the sysadmin can create a symlink inside the libhadoop.so 
directory to the hadoop-specific version of libcrypto.so.

> Improve Openssl library finding
> -------------------------------
>
>                 Key: HADOOP-11216
>                 URL: https://issues.apache.org/jira/browse/HADOOP-11216
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: security
>    Affects Versions: 2.6.0
>            Reporter: Yi Liu
>            Assignee: Colin Patrick McCabe
>         Attachments: HADOOP-11216.003.patch
>
>
> When we compile Openssl 1.0.0\(x\) or 1.0.1\(x\) using default options, there 
> will be {{libcrypto.so.1.0.0}} in output lib dir, so we expect this version 
> suffix in cmake build file
> {code}
> SET(STORED_CMAKE_FIND_LIBRARY_SUFFIXES CMAKE_FIND_LIBRARY_SUFFIXES)
> set_find_shared_library_version("1.0.0")
> SET(OPENSSL_NAME "crypto")
> ....
> {code}
> If we don't bundle the crypto shared library in Hadoop distribution, then 
> Hadoop will try to find crypto library in system path when running.
> But in real linux distribution, there may be no {{libcrypto.so.1.0.0}} or 
> {{libcrypto.so}} even the system embedded openssl is 1.0.1\(x\).  Then we 
> need to make symbolic link.
> This JIRA is to improve the Openssl library finding.



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

Reply via email to