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

Upgrade SQLite on both PHP 8.2 and 8.3 #187

Merged
merged 1 commit into from
Jul 22, 2024
Merged
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
22 changes: 21 additions & 1 deletion php-82/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -374,14 +374,34 @@ RUN ./configure --prefix=${INSTALL_DIR}
RUN make && make install


###############################################################################
# SQLite
# Since PHP 7.4, libsqlite must be installed (https://github.com/php/php-src/blob/99b8e67615159fc600a615e1e97f2d1cf18f14cb/UPGRADING#L616-L619)
# Laravel 11 requires SQLite 3.35.0 or higher. The system version is 3.7.17.
# See https://github.com/brefphp/aws-lambda-layers/pull/185
# https://www.sqlite.org/changes.html
# Needed by:
# - php
RUN LD_LIBRARY_PATH= yum install -y tcl
ENV VERSION_SQLITE=3.46.0
ENV SQLITE_BUILD_DIR=${BUILD_DIR}/sqlite
RUN set -xe; \
mkdir -p ${SQLITE_BUILD_DIR}; \
curl -Ls https://github.com/sqlite/sqlite/archive/refs/tags/version-${VERSION_SQLITE}.tar.gz \
| tar xzC ${SQLITE_BUILD_DIR} --strip-components=1
WORKDIR ${SQLITE_BUILD_DIR}
RUN ./configure --prefix=${INSTALL_DIR}
RUN make && make install


###############################################################################
# Install some dev files for using old libraries already on the system
# readline-devel : needed for the readline extension
# gettext-devel : needed for the --with-gettext flag
# libicu-devel : needed for intl
# libxslt-devel : needed for the XSL extension
# sqlite-devel : Since PHP 7.4 this must be installed (https://github.com/php/php-src/blob/99b8e67615159fc600a615e1e97f2d1cf18f14cb/UPGRADING#L616-L619)
RUN LD_LIBRARY_PATH= yum install -y readline-devel gettext-devel libicu-devel libxslt-devel sqlite-devel
RUN LD_LIBRARY_PATH= yum install -y readline-devel gettext-devel libicu-devel libxslt-devel


# Note: this variable is used when building extra/custom extensions, do not remove
Expand Down
22 changes: 21 additions & 1 deletion php-83/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -374,14 +374,34 @@ RUN ./configure --prefix=${INSTALL_DIR}
RUN make && make install


###############################################################################
# SQLite
# Since PHP 7.4, libsqlite must be installed (https://github.com/php/php-src/blob/99b8e67615159fc600a615e1e97f2d1cf18f14cb/UPGRADING#L616-L619)
# Laravel 11 requires SQLite 3.35.0 or higher. The system version is 3.7.17.
# See https://github.com/brefphp/aws-lambda-layers/pull/185
# https://www.sqlite.org/changes.html
# Needed by:
# - php
RUN LD_LIBRARY_PATH= yum install -y tcl
ENV VERSION_SQLITE=3.46.0
ENV SQLITE_BUILD_DIR=${BUILD_DIR}/sqlite
RUN set -xe; \
mkdir -p ${SQLITE_BUILD_DIR}; \
curl -Ls https://github.com/sqlite/sqlite/archive/refs/tags/version-${VERSION_SQLITE}.tar.gz \
| tar xzC ${SQLITE_BUILD_DIR} --strip-components=1
WORKDIR ${SQLITE_BUILD_DIR}
RUN ./configure --prefix=${INSTALL_DIR}
RUN make && make install


###############################################################################
# Install some dev files for using old libraries already on the system
# readline-devel : needed for the readline extension
# gettext-devel : needed for the --with-gettext flag
# libicu-devel : needed for intl
# libxslt-devel : needed for the XSL extension
# sqlite-devel : Since PHP 7.4 this must be installed (https://github.com/php/php-src/blob/99b8e67615159fc600a615e1e97f2d1cf18f14cb/UPGRADING#L616-L619)
RUN LD_LIBRARY_PATH= yum install -y readline-devel gettext-devel libicu-devel libxslt-devel sqlite-devel
RUN LD_LIBRARY_PATH= yum install -y readline-devel gettext-devel libicu-devel libxslt-devel


# Note: this variable is used when building extra/custom extensions, do not remove
Expand Down
3 changes: 2 additions & 1 deletion php-84/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,8 @@ RUN make && make install
# SQLite
# Since PHP 7.4, libsqlite must be installed (https://github.com/php/php-src/blob/99b8e67615159fc600a615e1e97f2d1cf18f14cb/UPGRADING#L616-L619)
# PHP 8.4 requires SQLite 3.13.0 or higher because the build uses the
# `SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION` constant. The system version is 3.7.17.
# `SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION` constant. Moreover, Laravel 11
# requires SQLite 3.35.0 or higher. The system version is 3.7.17.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have a link on why Laravel requires a specific SQLite version?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Laravel 11 also requires PHP 8.2 or higher, so it's not necessarily to backport this change to PHP 8.1

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

laravel/framework#48864 was the change that drove this btw.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, I updated the documentation in #189

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@GrahamCampbell we have extended SQLite support to 3.26+ on Laravel 11.15: laravel/docs#9768

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome, thanks for letting us know! The system version is 3.7 so we still need to compile sqlite manually, but it's good to know!

# See https://github.com/brefphp/aws-lambda-layers/pull/185
# https://www.sqlite.org/changes.html
# Needed by:
Expand Down
Loading