Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add proper dependency on SSL client library #1065

Open
nikmagini opened this issue Nov 4, 2016 · 4 comments
Open

Add proper dependency on SSL client library #1065

nikmagini opened this issue Nov 4, 2016 · 4 comments

Comments

@nikmagini
Copy link
Contributor

The 'phedex' CLI, the Lifecycle and Spacemon (through PHEDEX::CLI::UserAgent and PHEDEX::Testbed::Lifecycle::Datasvc) depend on the Net::SSL module which is distributed with the perl-Crypt-SSLeay rpm

But this rpm is not included as dependency of the PHEDEX rpm so it needs to be installed by hand on the system as root. In addition the tools fail with an obscure error if the rpm is not installed.

We should consider adding a spec file for perl-Crypt-SSLeay in the externals and add it as dependency in the PHEDEX spec file.

@nataliaratnikova
Copy link
Contributor

nataliaratnikova commented Nov 4, 2016

Just a quick update on the versions:

@nataliaratnikova
Copy link
Contributor

For the record, current dependencies are :

-bash-4.1$ rpm -q --requires  perl-Crypt-SSLeay
/etc/pki/tls/certs/ca-bundle.crt  
libc.so.6()(64bit)  
libc.so.6(GLIBC_2.2.5)(64bit)  
libc.so.6(GLIBC_2.3.4)(64bit)  
libc.so.6(GLIBC_2.4)(64bit)  
libcrypto.so.10()(64bit)  
libcrypto.so.10(libcrypto.so.10)(64bit)  
libssl.so.10()(64bit)  
libssl.so.10(libssl.so.10)(64bit)  
perl(:MODULE_COMPAT_5.10.1)  
perl(Carp)  
perl(Crypt::SSLeay)  
perl(Crypt::SSLeay::CTX)  
perl(Crypt::SSLeay::X509)  
perl(IO::Socket)  
perl(MIME::Base64)  
perl(Socket)  
perl(strict)  
perl(vars)  
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(VersionedDependencies) <= 3.0.3-1
rtld(GNU_HASH)  
rpmlib(PayloadIsXz) <= 5.2-1
-bash-4.1$ rpm -q --provides  perl-Crypt-SSLeay
SSLeay.so()(64bit)  
perl(Crypt::SSLeay) = 0.57
perl(Crypt::SSLeay::CTX)  
perl(Crypt::SSLeay::Conn)  
perl(Crypt::SSLeay::Err)  
perl(Crypt::SSLeay::MainContext)  
perl(Crypt::SSLeay::X509)  
perl(Net::SSL) = 2.84
perl-Crypt-SSLeay = 0.57-17.el6
perl-Crypt-SSLeay(x86-64) = 0.57-17.el6
-bash-4.1$

@nataliaratnikova
Copy link
Contributor

The installation is not that straightforward, as Crypt-SSLeay build requires openssl C header files,
as explained in the README coming with the source:

OpenSSL
    You must have OpenSSL or SSLeay installed before compiling this module.
    You can get the latest OpenSSL package from:

      http://www.openssl.org

    On Debian systems, you will need to install the libssl-dev package,
    at least for the duration of the build (it may be removed afterwards).

    Other package-based systems may require something similar. The key is
    that Crypt::SSLeay makes calls to the OpenSSL library, and how to do
    so is specified in the C header files that come with the library.
    Some systems break out the header files into a separate package from
    that of the libraries. Once the program has been built, you don't
    need the headers any more.

Otherwise it fails with:

-bash-4.1$ PERL_MM_USE_DEFAULT=1 perl ./Makefile.PL 
========================================================================
No installed SSL libraries found in any of the following places.
    /local
    /local/ssl
    /opt/ssl
    /usr
    /usr/local
    /usr/local/ssl
    /usr/local/openssl
You will have to either specify a directory location at the following
prompt, or rerun the Makefile.PL program and use the --lib switch
to specify the path. If the path in question is considered standard
on your platform, please consider filing a bug report in order to
have it taken into account in a subsequent version of Crypt::SSLeay.

Which SSL install path do you want to use?  
 does not appear to be an SSL library installation, since
the required header files were not found. The build cannot proceed.

@nataliaratnikova
Copy link
Contributor

Added dependency on openssl.
This version builds properly and tested with spacemon-client on a testbed with a system
perl-Crypt-SSLeay uninstalled:
nataliaratnikova/cmsdist@e06304f

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants