Skip to content

generate and install pkg-config files for OpenSSL wrapper#2549

Merged
boegel merged 6 commits intoeasybuilders:developfrom
lexming:openssl-pkgconfig
Aug 20, 2021
Merged

generate and install pkg-config files for OpenSSL wrapper#2549
boegel merged 6 commits intoeasybuilders:developfrom
lexming:openssl-pkgconfig

Conversation

@lexming
Copy link
Copy Markdown
Contributor

@lexming lexming commented Aug 18, 2021

Fixes #2525

The files for pkg-config have to be specifically generated for the wrapper because the Libs and Cflags found in certain system installations do not apply to the wrapper. For instance, OpenSSL 1.1 in CentOS 7 adds and extra openssl11 subdirectory to some paths.

I avoided parsing the OpenSSL pkg-config files in the host system because they are not trivial to find:

  • their location is not necessarily relative to the library dir
  • in some distros the path to pkg-config files is not easily predictable as it contains arch dependent subdirectories

So, this easyblock uses the pkg-config command to extract as much information as possible from the system installation and the rest is hardcoded in the easyblock.

update: this PR also makes the lookup of system libraries more reliable

  • The wrapper now requires finding all libraries in openssl_libs instead of only a first match.
  • Since system libraries can lack version strings, the wrapper now first checks the filename of the real library for a full version string and only checks the strings within the library as fallback.

@lexming lexming force-pushed the openssl-pkgconfig branch from 24a5610 to 1bb4be8 Compare August 18, 2021 15:35
@Micket
Copy link
Copy Markdown
Contributor

Micket commented Aug 18, 2021

Test report by @Micket

Overview of tested easyconfigs (in order)

  • SUCCESS OpenSSL-1.1.eb

Build succeeded for 1 out of 1 (1 easyconfigs in total)
alvis-c1 - Linux centos linux 7.9.2009, x86_64, Intel Xeon Processor (Skylake), Python 3.6.8
See https://gist.github.com/614359cac7a058ad30db43972773db10 for a full test report.

@Micket
Copy link
Copy Markdown
Contributor

Micket commented Aug 18, 2021

Test report by @Micket

Overview of tested easyconfigs (in order)

  • **FAIL (unhandled exception: [Errno 2] No such file or directory: '/apps/Test2/software/OpenSSL/1.0')Traceback (most recent call last):
    File "/apps/Common/software/EasyBuild/20210817-dev/lib/python3.6/site-packages/easybuild/main.py", line 118, in build_and_install_software
    (ec_res['success'], app_log, err) = build_and_install_one(ec, init_env)
    File "/apps/Common/software/EasyBuild/20210817-dev/lib/python3.6/site-packages/easybuild/framework/easyblock.py", line 3700, in build_and_install_one
    result = app.run_all_steps(run_test_cases=run_test_cases)
    File "/apps/Common/software/EasyBuild/20210817-dev/lib/python3.6/site-packages/easybuild/framework/easyblock.py", line 3591, in run_all_steps
    self.run_step(step_name, step_methods)
    File "/apps/Common/software/EasyBuild/20210817-dev/lib/python3.6/site-packages/easybuild/framework/easyblock.py", line 3444, in run_step
    step_method(self)()
    File "/apps/Common/software/EasyBuild/20210817-dev/lib/python3.6/site-packages/easybuild/framework/easyblock.py", line 1899, in check_readiness_step
    self.remove_module_file()
    File "/apps/Common/software/EasyBuild/20210817-dev/lib/python3.6/site-packages/easybuild/framework/easyblock.py", line 1821, in remove_module_file
    elif os.path.exists(old_installdir) and not os.path.samefile(old_installdir, self.installdir):
    File "/usr/lib64/python3.6/genericpath.py", line 97, in samefile
    s2 = os.stat(f2)
    FileNotFoundError: [Errno 2] No such file or directory: '/apps/Test2/software/OpenSSL/1.0'
    ** OpenSSL-1.0.eb

Build succeeded for 0 out of 1 (1 easyconfigs in total)
alvis-c1 - Linux centos linux 7.9.2009, x86_64, Intel Xeon Processor (Skylake), Python 3.6.8
See https://gist.github.com/13b5061936bb28abe4bbb513cc012ca7 for a full test report.

@Micket
Copy link
Copy Markdown
Contributor

Micket commented Aug 18, 2021

That's an unexpected failure

Edit: I think there is a (unrelated to this PR) issue with openssl_wrapper.py; it doesn't create the installdir as soon as other easyblocks, and it can trip up on the ghost-dir check when rebuilding:
https://github.com/easybuilders/easybuild-framework/blob/662d55b220abae7493e7d9cebf0156d90c5096e8/easybuild/framework/easyblock.py#L1821 (leading to an error like above)
I'm just going to work around that issue right now and clean up the old install by hand.

@lexming
Copy link
Copy Markdown
Contributor Author

lexming commented Aug 18, 2021

My tests are in easybuilders/easybuild-easyconfigs#13765 (comment)

Please check the .pc files on your tests. These are the resulting .pc files in my case on CentOS 7:

OpenSSL 1.0

  • libcrypto.pc
prefix=/user/brussel/101/vsc10122/.local/easybuild-skylake/software/OpenSSL/1.0
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include
enginesdir=${libdir}/engines

Name: OpenSSL-libcrypto
Description: OpenSSL cryptography library
Version: 1.0.2k

Libs: -L${libdir} -lcrypto
Libs.private: -ldl -lz
Cflags: -I${includedir}
  • libssl.pc
prefix=/user/brussel/101/vsc10122/.local/easybuild-skylake/software/OpenSSL/1.0
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include


Name: OpenSSL-libssl
Description: Secure Sockets Layer and cryptography libraries
Version: 1.0.2k
Requires: libcrypto
Libs: -L${libdir} -lssl
Libs.private: -lgssapi_krb5 -lkrb5 -lcom_err -lk5crypto -ldl -lz
Cflags: -I${includedir}
  • openssl.pc
prefix=/user/brussel/101/vsc10122/.local/easybuild-skylake/software/OpenSSL/1.0
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include


Name: OpenSSL
Description: Secure Sockets Layer and cryptography libraries and tools
Version: 1.0.2k
Requires: libssl libcrypto

OpenSSL 1.1

  • libcrypto.pc
prefix=/user/brussel/101/vsc10122/.local/easybuild-skylake/software/OpenSSL/1.1
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include
enginesdir=${libdir}/engines-1.1

Name: OpenSSL-libcrypto
Description: OpenSSL cryptography library
Version: 1.1.1g

Libs: -L${libdir} -lcrypto
Libs.private: -pthread -lz -ldl
Cflags: -I${includedir}
  • libssl.pc
prefix=/user/brussel/101/vsc10122/.local/easybuild-skylake/software/OpenSSL/1.1
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include


Name: OpenSSL-libssl
Description: Secure Sockets Layer and cryptography libraries
Version: 1.1.1g
Requires.private: libcrypto11
Libs: -L${libdir} -lssl
Libs.private: -pthread -lcrypto -lz -ldl
Cflags: -I${includedir}
  • openssl.pc
prefix=/user/brussel/101/vsc10122/.local/easybuild-skylake/software/OpenSSL/1.1
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include


Name: OpenSSL
Description: Secure Sockets Layer and cryptography libraries and tools
Version: 1.1.1g
Requires: libssl11 libcrypto11

@Micket
Copy link
Copy Markdown
Contributor

Micket commented Aug 18, 2021

Test report by @Micket

Overview of tested easyconfigs (in order)

  • SUCCESS OpenSSL-1.0.eb

Build succeeded for 1 out of 1 (1 easyconfigs in total)
alvis-c1 - Linux centos linux 7.9.2009, x86_64, Intel Xeon Processor (Skylake), Python 3.6.8
See https://gist.github.com/01492db2634aff80a04f1943c918ba1c for a full test report.

@Micket
Copy link
Copy Markdown
Contributor

Micket commented Aug 18, 2021

CentOS7 (wrapped)

prefix=/apps/Test2/software/OpenSSL/1.0
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include
enginesdir=${libdir}/engines

Name: OpenSSL-libcrypto
Description: OpenSSL cryptography library
Version: 1.0.2k

Libs: -L${libdir} -lcrypto
Libs.private: -ldl -lz
Cflags: -I${includedir}
prefix=/apps/Test2/software/OpenSSL/1.0
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include


Name: OpenSSL-libssl
Description: Secure Sockets Layer and cryptography libraries
Version: 1.0.2k
Requires: libcrypto
Libs: -L${libdir} -lssl
Libs.private: -lgssapi_krb5 -lkrb5 -lcom_err -lk5crypto -ldl -lz
Cflags: -I${includedir}
prefix=/apps/Test2/software/OpenSSL/1.0
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include


Name: OpenSSL
Description: Secure Sockets Layer and cryptography libraries and tools
Version: 1.0.2k
Requires: libssl libcrypto

Looks correct to me when comparing to host OS files.

prefix=/apps/Test2/software/OpenSSL/1.1
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include
enginesdir=${libdir}/engines-1.1

Name: OpenSSL-libcrypto
Description: OpenSSL cryptography library
Version: 1.1.1g

Libs: -L${libdir} -lcrypto
Libs.private: -pthread -lz -ldl
Cflags: -I${includedir}
prefix=/apps/Test2/software/OpenSSL/1.1
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include


Name: OpenSSL-libssl
Description: Secure Sockets Layer and cryptography libraries
Version: 1.1.1g
Requires.private: libcrypto11
Libs: -L${libdir} -lssl
Libs.private: -pthread -lcrypto -lz -ldl
Cflags: -I${includedir}
prefix=/apps/Test2/software/OpenSSL/1.1
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include


Name: OpenSSL
Description: Secure Sockets Layer and cryptography libraries and tools
Version: 1.1.1g
Requires: libssl11 libcrypto11

One minor difference to host pkgconfig files; the generated libssl pkgconfigfile includes Libs.private which I think just gets inherited from Requires.private, but I don't think there is any harm in that so, looks alright to me

@branfosj
Copy link
Copy Markdown
Member

Test report by @branfosj

Overview of tested easyconfigs (in order)

Build succeeded for 1 out of 2 (2 easyconfigs in total)
bear-pg0211u03a.bear.cluster - Linux RHEL 8.3, x86_64, Intel(R) Xeon(R) Gold 6248 CPU @ 2.50GHz (cascadelake), Python 3.6.8
See https://gist.github.com/ca95139d41428d4b3488db9ed75bf66c for a full test report.

@boegel
Copy link
Copy Markdown
Member

boegel commented Aug 18, 2021

Test report by @boegel

Overview of tested easyconfigs (in order)

Build succeeded for 1 out of 2 (2 easyconfigs in total)
easybuild2.novalocal - Linux centos linux 8.3.2011, POWER, IBM pSeries (emulated by qemu) (power9le), Python 3.6.8
See https://gist.github.com/82eca128ffb80a533cf819bf4467419b for a full test report.

Comment thread easybuild/easyblocks/o/openssl_wrapper.py Outdated
@branfosj
Copy link
Copy Markdown
Member

Test report by @branfosj

Overview of tested easyconfigs (in order)

  • SUCCESS OpenSSL-1.1.eb
  • SUCCESS OpenSSL-1.0.eb

Build succeeded for 2 out of 2 (2 easyconfigs in total)
bear-pg0211u03a.bear.cluster - Linux RHEL 8.3, x86_64, Intel(R) Xeon(R) Gold 6248 CPU @ 2.50GHz (cascadelake), Python 3.6.8
See https://gist.github.com/cdc712772a7e833e8c6b2f89eb175ab4 for a full test report.

@branfosj
Copy link
Copy Markdown
Member

OpenSSL 1.0

libcrypto.pc

prefix=/rds/bear-apps/devel/eb-sjb-up/EL8/EL8-cas/software/OpenSSL/1.0
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
enginesdir=${libdir}/engines

Name: OpenSSL-libcrypto
Description: OpenSSL cryptography library
Version: 1.0.2u
Requires:
Libs: -L${libdir} -lcrypto
Libs.private: -ldl
Cflags: -I${includedir}

libssl.pc

prefix=/rds/bear-apps/devel/eb-sjb-up/EL8/EL8-cas/software/OpenSSL/1.0
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: OpenSSL-libssl
Description: Secure Sockets Layer and cryptography libraries
Version: 1.0.2u
Requires.private: libcrypto
Libs: -L${libdir} -lssl
Libs.private: -ldl
Cflags: -I${includedir}

openssl.pc

prefix=/rds/bear-apps/devel/eb-sjb-up/EL8/EL8-cas/software/OpenSSL/1.0
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: OpenSSL
Description: Secure Sockets Layer and cryptography libraries and tools
Version: 1.0.2u
Requires: libssl libcrypto

OpenSSL 1.1

libcrypto.pc

prefix=/rds/bear-apps/devel/eb-sjb-up/EL8/EL8-cas/software/OpenSSL/1.1
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include
enginesdir=${libdir}/engines-1.1

Name: OpenSSL-libcrypto
Description: OpenSSL cryptography library
Version: 1.1.1g

Libs: -L${libdir} -lcrypto
Libs.private: -lz -ldl -pthread
Cflags: -I${includedir}

libssl.pc

prefix=/rds/bear-apps/devel/eb-sjb-up/EL8/EL8-cas/software/OpenSSL/1.1
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include


Name: OpenSSL-libssl
Description: Secure Sockets Layer and cryptography libraries
Version: 1.1.1g
Requires.private: libcrypto
Libs: -L${libdir} -lssl
Libs.private: -lcrypto -lz -ldl -pthread
Cflags: -I${includedir}

openssl.pc

prefix=/rds/bear-apps/devel/eb-sjb-up/EL8/EL8-cas/software/OpenSSL/1.1
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include


Name: OpenSSL
Description: Secure Sockets Layer and cryptography libraries and tools
Version: 1.1.1g
Requires: libssl libcrypto

@boegel
Copy link
Copy Markdown
Member

boegel commented Aug 19, 2021

Test report by @boegel

Overview of tested easyconfigs (in order)

  • SUCCESS OpenSSL-1.1.eb
  • SUCCESS OpenSSL-1.0.eb

Build succeeded for 2 out of 2 (2 easyconfigs in total)
node3111.skitty.os - Linux centos linux 7.9.2009, x86_64, Intel(R) Xeon(R) Gold 6140 CPU @ 2.30GHz, Python 3.6.8
See https://gist.github.com/573f988f12f5bb0aff083af1c4df00e4 for a full test report.

@boegel

This comment has been minimized.

@boegel
Copy link
Copy Markdown
Member

boegel commented Aug 19, 2021

Test report by @boegel

Overview of tested easyconfigs (in order)

  • SUCCESS OpenSSL-1.1.eb
  • SUCCESS OpenSSL-1.0.eb

Build succeeded for 2 out of 2 (2 easyconfigs in total)
easybuild2.novalocal - Linux centos linux 8.3.2011, POWER, IBM pSeries (emulated by qemu) (power9le), Python 3.6.8
See https://gist.github.com/23ed8ad1826773d958f700a476f1437a for a full test report.

@boegel
Copy link
Copy Markdown
Member

boegel commented Aug 19, 2021

On a CentOS 8 POWER9 system:

OpenSSL 1.0

libcrypto.pc

prefix=/home/centos/EasyBuild/software/OpenSSL/1.0
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
enginesdir=${libdir}/engines

Name: OpenSSL-libcrypto
Description: OpenSSL cryptography library
Version: 1.0.2u
Requires:
Libs: -L${libdir} -lcrypto
Libs.private: -ldl
Cflags: -I${includedir}

libssl.pc

prefix=/home/centos/EasyBuild/software/OpenSSL/1.0
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: OpenSSL-libssl
Description: Secure Sockets Layer and cryptography libraries
Version: 1.0.2u
Requires.private: libcrypto
Libs: -L${libdir} -lssl
Libs.private: -ldl
Cflags: -I${includedir}

openssl.pc

prefix=/home/centos/EasyBuild/software/OpenSSL/1.0
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: OpenSSL
Description: Secure Sockets Layer and cryptography libraries and tools
Version: 1.0.2u
Requires: libssl libcrypto

OpenSSL 1.1

libcrypto.pc

prefix=/home/centos/EasyBuild/software/OpenSSL/1.1
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include
enginesdir=${libdir}/engines-1.1

Name: OpenSSL-libcrypto
Description: OpenSSL cryptography library
Version: 1.1.1g

Libs: -L${libdir} -lcrypto
Libs.private: -lz -ldl -pthread
Cflags: -I${includedir}

libssl.pc

prefix=/home/centos/EasyBuild/software/OpenSSL/1.1
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include


Name: OpenSSL-libssl
Description: Secure Sockets Layer and cryptography libraries
Version: 1.1.1g
Requires.private: libcrypto
Libs: -L${libdir} -lssl
Libs.private: -lcrypto -lz -ldl -pthread
Cflags: -I${includedir}

openssl.pc

prefix=/home/centos/EasyBuild/software/OpenSSL/1.1
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include


Name: OpenSSL
Description: Secure Sockets Layer and cryptography libraries and tools
Version: 1.1.1g
Requires: libssl libcrypto

@lexming
Copy link
Copy Markdown
Contributor Author

lexming commented Aug 19, 2021

On Fedora 33:

OpenSSL 1.0

Build from source, as expected, and the .pc files are the usual ones generated by OpenSSL build.

OpenSSL 1.1

  • libcrypto.pc
prefix=/home/lexming/easybuild/software/OpenSSL/1.1
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include
enginesdir=${libdir}/engines-1.1

Name: OpenSSL-libcrypto
Description: OpenSSL cryptography library
Version: 1.1.1k

Libs: -L${libdir} -lcrypto
Libs.private: -lz -ldl -pthread
Cflags: -I${includedir}
  • libssl.pc
prefix=/home/lexming/easybuild/software/OpenSSL/1.1
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include


Name: OpenSSL-libssl
Description: Secure Sockets Layer and cryptography libraries
Version: 1.1.1k
Requires.private: libcrypto
Libs: -L${libdir} -lssl
Libs.private: -lcrypto -lz -ldl -pthread
Cflags: -I${includedir}
  • openssl.pc
prefix=/home/lexming/easybuild/software/OpenSSL/1.1
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include


Name: OpenSSL
Description: Secure Sockets Layer and cryptography libraries and tools
Version: 1.1.1k
Requires: libssl libcrypto

@boegel
Copy link
Copy Markdown
Member

boegel commented Aug 19, 2021

@lexming On top of this OpenSSL with pkg-config files on CentOS 7 with openssl11-devel installed, I'm getting a failure with Rust now (see easybuilders/easybuild-easyconfigs#13538 (comment))

  run pkg_config fail: "`\"pkg-config\" \"--libs\" \"--cflags\" \"openssl\"` did not exit successfully: exit code: 1\n--- stderr\nPackage libssl11 was not found in the pkg-config search path.\nPerhaps you should add the directory containing `libssl11.pc\'\nto the PKG_CONFIG_PATH environment variable\nPackage \'libssl11\', required by \'openssl\', not found\n"

Is that because this:

Requires: libssl11 libcrypto11

should be:

Requires: libssl libcrypto

@lexming
Copy link
Copy Markdown
Contributor Author

lexming commented Aug 19, 2021

@boegel yes, indeed, those should use the names for the wrapper instead of those in the system. I'll fix it.

@boegel

This comment has been minimized.

@boegel
Copy link
Copy Markdown
Member

boegel commented Aug 20, 2021

@lexming the /openssl11 stuff in Libs.private doesn't look correct?

@lexming
Copy link
Copy Markdown
Contributor Author

lexming commented Aug 20, 2021

@boegel I can reproduce the issue, pkg-config --libs --static libssl11 has duplicate paths with our pkg-config/0.29.2. Which is not the case for libssl on the same system, quite weird.

update: the duplicate linker paths that appear with our pkg-config/0.29.2 are a consequence of using .pc files in the system prefix with a pkg-config out of system prefix. Then it prepends the main library path (eg -L/usr/lib64 to linker flags). I fixed the code removing those flags from Libs.private to avoid any partial matches.

@boegel
Copy link
Copy Markdown
Member

boegel commented Aug 20, 2021

On a CentOS 7 Intel Skylake system with openssl11-devel installed (after fix to strip off 11 from Requires):

OpenSSL 1.0

libcrypto.pc

prefix=/apps/CO7/skylake-ib/software/OpenSSL/1.0
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include
enginesdir=${libdir}/engines

Name: OpenSSL-libcrypto
Description: OpenSSL cryptography library
Version: 1.0.2k

Libs: -L${libdir} -lcrypto
Libs.private: -ldl -lz
Cflags: -I${includedir}

libssl.pc

prefix=/apps/CO7/skylake-ib/software/OpenSSL/1.0
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include


Name: OpenSSL-libssl
Description: Secure Sockets Layer and cryptography libraries
Version: 1.0.2k
Requires: libcrypto
Libs: -L${libdir} -lssl
Libs.private: -ldl -lz -lgssapi_krb5 -lkrb5 -lcom_err -lk5crypto -ldl -lz
Cflags: -I${includedir}

openssl.pc

prefix=/apps/CO7/skylake-ib/software/OpenSSL/1.0
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include


Name: OpenSSL
Description: Secure Sockets Layer and cryptography libraries and tools
Version: 1.0.2k
Requires: libssl libcrypto

OpenSSL 1.1

libcrypto.pc

prefix=/apps/CO7/skylake-ib/software/OpenSSL/1.1
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include
enginesdir=${libdir}/engines-1.1

Name: OpenSSL-libcrypto
Description: OpenSSL cryptography library
Version: 1.1.1g

Libs: -L${libdir} -lcrypto
Libs.private: -lz -ldl -pthread
Cflags: -I${includedir}

libssl.pc

prefix=/apps/CO7/skylake-ib/software/OpenSSL/1.1
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include


Name: OpenSSL-libssl
Description: Secure Sockets Layer and cryptography libraries
Version: 1.1.1g
Requires.private: libcrypto
Libs: -L${libdir} -lssl
Libs.private: -lcrypto -lz -ldl -pthread
Cflags: -I${includedir}

openssl.pc

prefix=/apps/CO7/skylake-ib/software/OpenSSL/1.1
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include


Name: OpenSSL
Description: Secure Sockets Layer and cryptography libraries and tools
Version: 1.1.1g
Requires: libssl libcrypto

@boegel
Copy link
Copy Markdown
Member

boegel commented Aug 20, 2021

This looks OK to me now, and I was able to Rust on top on CentOS 7 (cfr. upcoming test report in easybuilders/easybuild-easyconfigs#13538).

So, good to go I think? @lexming

@lexming
Copy link
Copy Markdown
Contributor Author

lexming commented Aug 20, 2021

@boegel good to go on my side as well. I got a successful build of Rust with CentOS7 too (easybuilders/easybuild-easyconfigs#13538 (comment)). I just checked again on Fedora 33 and the .pc files are good and on CentOS7 I get the same as you.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

OpenSSL wrapper does not include corresponding pkg-config files

4 participants