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

Confirm that the PHP 8.0 build fails without the patch for OpenSSL 3.2 #140

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions layers/openssl3.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Patch for OpenSSL 3 support for PHP 8.0
--- a/ext/openssl/openssl.c
+++ b/ext/openssl/openssl.c
@@ -1325,7 +1325,9 @@
REGISTER_LONG_CONSTANT("OPENSSL_CMS_NOSIGS", CMS_NOSIGS, CONST_CS|CONST_PERSISTENT);

REGISTER_LONG_CONSTANT("OPENSSL_PKCS1_PADDING", RSA_PKCS1_PADDING, CONST_CS|CONST_PERSISTENT);
+#ifdef RSA_SSLV23_PADDING
REGISTER_LONG_CONSTANT("OPENSSL_SSLV23_PADDING", RSA_SSLV23_PADDING, CONST_CS|CONST_PERSISTENT);
+#endif
REGISTER_LONG_CONSTANT("OPENSSL_NO_PADDING", RSA_NO_PADDING, CONST_CS|CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("OPENSSL_PKCS1_OAEP_PADDING", RSA_PKCS1_OAEP_PADDING, CONST_CS|CONST_PERSISTENT);

5 changes: 3 additions & 2 deletions php-80/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -103,13 +103,14 @@ RUN set -xe; \
# Needed by:
# - curl
# - php
ENV VERSION_OPENSSL=1.1.1w
RUN yum install -y perl-IPC-Cmd
ENV VERSION_OPENSSL=3.2.0-beta1
ENV OPENSSL_BUILD_DIR=${BUILD_DIR}/openssl
ENV CA_BUNDLE_SOURCE="https://curl.se/ca/cacert.pem"
ENV CA_BUNDLE="${INSTALL_DIR}/bref/ssl/cert.pem"
RUN set -xe; \
mkdir -p ${OPENSSL_BUILD_DIR}; \
curl -Ls https://github.com/openssl/openssl/archive/OpenSSL_${VERSION_OPENSSL//./_}.tar.gz \
curl -Ls https://github.com/openssl/openssl/releases/download/openssl-${VERSION_OPENSSL}/openssl-${VERSION_OPENSSL}.tar.gz \
| tar xzC ${OPENSSL_BUILD_DIR} --strip-components=1
WORKDIR ${OPENSSL_BUILD_DIR}/
RUN CFLAGS="" \
Expand Down
2 changes: 1 addition & 1 deletion php-81/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ RUN set -xe; \
# - curl
# - php
RUN yum install -y perl-IPC-Cmd
ENV VERSION_OPENSSL=3.0.12
ENV VERSION_OPENSSL=3.2.0-beta1
ENV OPENSSL_BUILD_DIR=${BUILD_DIR}/openssl
ENV CA_BUNDLE_SOURCE="https://curl.se/ca/cacert.pem"
ENV CA_BUNDLE="${INSTALL_DIR}/bref/ssl/cert.pem"
Expand Down
2 changes: 1 addition & 1 deletion php-82/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ RUN set -xe; \
# - curl
# - php
RUN yum install -y perl-IPC-Cmd
ENV VERSION_OPENSSL=3.0.12
ENV VERSION_OPENSSL=3.2.0-beta1
ENV OPENSSL_BUILD_DIR=${BUILD_DIR}/openssl
ENV CA_BUNDLE_SOURCE="https://curl.se/ca/cacert.pem"
ENV CA_BUNDLE="${INSTALL_DIR}/bref/ssl/cert.pem"
Expand Down
2 changes: 1 addition & 1 deletion php-83/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ RUN set -xe; \
# - curl
# - php
RUN yum install -y perl-IPC-Cmd
ENV VERSION_OPENSSL=3.0.12
ENV VERSION_OPENSSL=3.2.0-beta1
ENV OPENSSL_BUILD_DIR=${BUILD_DIR}/openssl
ENV CA_BUNDLE_SOURCE="https://curl.se/ca/cacert.pem"
ENV CA_BUNDLE="${INSTALL_DIR}/bref/ssl/cert.pem"
Expand Down
2 changes: 1 addition & 1 deletion tests/test_2_extensions.php
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@
// https://github.com/brefphp/aws-lambda-layers/issues/42
'curl-http2' => defined('CURL_HTTP_VERSION_2'),
// Make sure we are not using the default AL2 OpenSSL version (7.79)
'curl-openssl' => str_starts_with(curl_version()['ssl_version'], 'OpenSSL/1.1.1') || str_starts_with(curl_version()['ssl_version'], 'OpenSSL/3.0'),
'curl-openssl' => str_starts_with(curl_version()['ssl_version'], 'OpenSSL/3.2'),
// Check that the default certificate file exists
// https://github.com/brefphp/aws-lambda-layers/issues/53
'curl-openssl-certificates' => file_exists(openssl_get_cert_locations()['default_cert_file']),
Expand Down
Loading