Skip to content

Conversation

@stewartsmith
Copy link

Issues:

Part of addressing #1098

Description of changes:

This enables aws-lc and openssl to be installed concurrently, including the -devel packages. We keep a shim around that can be packaged as a separate compat RPM in order to build unmodified software against aws-lc rather than openssl. I've also added/modified pkgconfig to have an explicit aws-lc one as well as an openssl compat one, and by putting these in separate RPMs it's possible to build packages in a way that allows individual packages to opt-in to using AWS-LC or to have the -openssl-compat-devel subpackage come in and let unmodified software link against it.

The headers are now include/aws-lc/openssl rather than include/openssl to clearly differentiate aws-lc from openssl, and enable a situation where both -devel packages can be installed simultaneously.

i.e. this results in AWS-LC very much having its own identity rather than when installed system-wide entirely pretending to be OpenSSL.

Call-outs:

Probably the most important change is this one:

-          NAMELINK_SKIP)
+          NAMELINK_COMPONENT Development)

That enables the unversioned .so libraries to exist, and thus be installed correctly, and enables the explicit linking against libssl-awslc.so rather than libssl.so.

Testing:

I've built an RPM with this change, and used it to do test builds of a number of packages in Amazon Linux 2023 against aws-lc rather than OpenSSL. I have not finished building everything, nor have I run any tests that aren't just the %check sections of said packages.

Testing I've done has focused on was getting the -devel, -openssl-compat-devel, and unversioned .so for the -devel package going.

This is very RFC for the moment, suitable for discussion.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and the ISC license.

This enables aws-lc and openssl to be installed concurrently, including
the devel packages. We keep a shim around that can be packaged as a
separate compat RPM in order to build unmodified software against aws-lc
rather than openssl.

The headers are now include/aws-lc/openssl rather than include/openssl
to clearly differentiate aws-lc from openssl, and enable a situation
where both devel packages can be installed simultaneously.
@skmcgrail
Copy link
Member

We need to consider whether we can do this, as it is going to break a number of downstream consumers by moving the shim headers in an aws-lc folder. I think putting this behavior into a build flag that installs it in such a manner does make sense to aid in the packaging and deployment story to distributions that may want to support both coexisting, and having the pkgconfig files reflect appropriately depending on if the build option was enabled.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants