-
-
Notifications
You must be signed in to change notification settings - Fork 112
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
Build for PHP 8.4 and update libraries #578
Conversation
Thanks! It seems like a few extensions failed, might as well remove them from the list for now? |
It returns two paths separated by colon - /opt/bref/etc/php/conf.d:/var/task/php/conf.d
PHP 8.4 is not supported upstream and fails to compile on updated version
Fails and there is currently open PR for AVIF which makes some changes in build. Better to keep PHP 8.4 upgrade after this PR is merged.
Previously tar was packaged with path like ./tideways-5.6.6/, but now it is tideways-php-5.16.2/.
Update summary: PHP 8.4 not supported by upstream project yet: Build fails, should be handled in separate PRs: Successfully updated for PHP 8.4, but constrained by Amazon Linux 2 in some way: Successfully updated for PHP 8.4: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot! I added some questions inline to make sure I understand everything.
Some notes regarding the Datadog migration from 0.x to 1.x: https://github.com/DataDog/dd-trace-php/blob/1.0.0/UPGRADE-1.0.md (for those stumbling on this PR in the future).
@@ -19,7 +21,7 @@ RUN cmake --build . --target install | |||
WORKDIR ${AMQP_BUILD_DIR} | |||
RUN git clone https://github.com/php-amqp/php-amqp | |||
WORKDIR ${AMQP_BUILD_DIR}/php-amqp | |||
RUN git reset --hard 618e06ad2ef867598831cdd3faadba0dd65be917 | |||
RUN git checkout v2.1.2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you explain this change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This commit referenced php-amqp/php-amqp@618e06a, a fix for PHP 8.1. I assume this was needed back then when this commit was not tagged yet. Tag v2.1.2 is from Jan 22, 2024 and this fix is already contained in it. So this is basically an update of php-amqp source to latest release.
|
||
WORKDIR ${DDTRACE_BUILD_DIR} | ||
|
||
RUN php datadog-setup.php --php-bin=all --enable-profiling | ||
|
||
RUN cp "$(php-config --extension-dir)/ddtrace.so" /tmp/ddtrace.so && \ | ||
cp "$(php-config --extension-dir)/datadog-profiling.so" /tmp/datadog-profiling.so && \ | ||
cp "$(php-config --ini-dir)/98-ddtrace.ini" /tmp/ext.ini | ||
cp "$(php-config --ini-dir | cut -d: -f1)/98-ddtrace.ini" /tmp/ext.ini |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you explain this change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The php-config --ini-dir
returns /opt/bref/etc/php/conf.d:/var/task/php/conf.d
. This cp
command assumes that there is only single path in the output, otherwise the source file is not found. Probably, there was some change in build-php image recently, which changed the behavior and now contains two paths separated by colon. If you have better idea for fix, I would be happy to test and implement it.
curl -o oci-sdk.zip https://download.oracle.com/otn_software/linux/instantclient/2110000/instantclient-sdk-linux.x64-21.10.0.0.0dbru.zip && \ | ||
unzip oci-sdk.zip -d src | ||
curl -o oci-basic.zip https://download.oracle.com/otn_software/linux/instantclient/2116000/instantclient-basiclite-linux.x64-21.16.0.0.0dbru.zip && \ | ||
unzip oci-basic.zip -d src -x META-INF/* && \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you explain this change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The -x META-INF/*
excludes this directory from unzip extraction. Seems like it was not there previously and added at some time. These are some metadata like checksums of files, not needed for compilation. The issue is that both oci-basic.zip and oci-sdk.zip are extracted to single output directory src
. Because there are equally named files in this directory, the unzip of the latter file causes interactive propmt: replace src/META-INF/MANIFEST.MF? [y]es, [n]o, [A]ll, [N]one, [r]ename: NULL (EOF or read error, treating as "[N]one" ...)
and the unzip fails with error.
Awesome, thanks for the quick responses! |
Hi, this PR adds a build for PHP 8.4 for all extensions that are currently built for 8.3.
The versions of the libraries are also updated to the latest ones. In some cases the update is over the major version.
We will see how the CI tests turn out. If there are any problems, I will take the specific extension out of PR and it will be handled separately later (by me or someone else).