Skip to content

Commit 148c451

Browse files
chore: adapt code for PHP 8.4.5 requirements
1 parent 031c315 commit 148c451

File tree

3 files changed

+118
-42
lines changed

3 files changed

+118
-42
lines changed

.travis.yml

Lines changed: 47 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
# language: php
2-
31
jobs:
42
include:
53
- dist: noble
@@ -10,7 +8,7 @@ jobs:
108
before_install:
119
- sudo rm -rf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock
1210
- sudo apt-get update
13-
- sudo apt-get -y install libcurl4-openssl-dev php-dev libicu-dev php-pear php build-essential libpq-dev libxml2-dev libssl-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libfreetype6-dev libonig-dev libzip-dev libbz2-dev libreadline-dev libxslt1-dev pkg-config
11+
- sudo apt-get -y install libcurl4-openssl-dev php-dev libicu-dev php-pear php build-essential libpq-dev libxml2-dev libssl-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libfreetype6-dev libonig-dev libzip-dev libbz2-dev libreadline-dev libxslt1-dev pkg-config libmemcached-dev
1412
- if [[ $VERSION =~ ^8.* ]]; then sudo apt-get -y install argon2 php-pear php-dev libonig-dev; fi
1513
- sudo ln -s /usr/include/x86_64-linux-gnu/curl/ /usr/local/include
1614
- command -v expect || sudo apt-get install expect
@@ -33,7 +31,7 @@ jobs:
3331
before_install:
3432
- sudo rm -rf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock
3533
- sudo apt-get update
36-
- sudo apt-get -y install libcurl4-openssl-dev php-dev libicu-dev php-pear php
34+
- sudo apt-get -y install libcurl4-openssl-dev php-dev libicu-dev php-pear php libmemcached-dev
3735
- if [[ $VERSION =~ ^8.* ]]; then sudo apt-get -y install argon2 libargon2-0 php-pear libargon2-0-dev php-dev libonig-dev; fi
3836
- sudo ln -s /usr/include/x86_64-linux-gnu/curl/ /usr/local/include
3937
- command -v expect || sudo apt-get install expect
@@ -56,7 +54,7 @@ jobs:
5654
before_install:
5755
- sudo rm -rf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock
5856
- sudo apt-get update
59-
- sudo apt-get -y install libcurl4-openssl-dev php-pear php-dev libicu-dev
57+
- sudo apt-get -y install libcurl4-openssl-dev php-pear php-dev libicu-dev libmemcached-dev
6058
- if [[ $VERSION =~ ^8.* ]]; then sudo apt-get -y install argon2 php-pear libargon2-0 libargon2-0-dev php-dev libonig-dev; fi
6159
- sudo ln -s /usr/include/x86_64-linux-gnu/curl/ /usr/local/include
6260
- command -v expect || sudo apt-get install expect
@@ -80,14 +78,18 @@ jobs:
8078
before_install:
8179
- sudo rm -rf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock
8280
- sudo apt-get update
83-
- sudo apt-get -y install libcurl4-openssl-dev php-pear php-dev libicu-dev re2c
81+
- sudo apt-get -y install build-essential wget libssl-dev libicu-dev re2c libmemcached-dev php-pear php-dev
8482
- if [[ $VERSION =~ ^8.* ]]; then sudo apt-get -y install argon2 php-pear libargon2-0 libargon2-0-dev re2c php-dev libonig-dev; fi
85-
- sudo ln -s /usr/include/x86_64-linux-gnu/curl/ /usr/local/include
83+
- wget https://curl.se/download/curl-7.61.0.tar.gz
84+
- tar -xzf curl-7.61.0.tar.gz
85+
- cd curl-7.61.0 && ./configure --prefix=/usr/local && make && sudo make install && cd ..
86+
- export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
87+
- export CURL_CFLAGS="-I/usr/local/include"
88+
- export CURL_LIBS="-L/usr/local/lib -lcurl"
8689
- command -v expect || sudo apt-get install expect
87-
# Install re2c required by PHP8.3 and above
8890
- wget https://github.com/skvadrik/re2c/releases/download/3.1/re2c-3.1.tar.xz
89-
- tar -xf ./re2c-3.1.tar.xz
90-
- ./re2c-3.1/configure && make && sudo make install
91+
- tar -xf re2c-3.1.tar.xz
92+
- cd re2c-3.1 && ./configure && make && sudo make install && cd ..
9193
- |
9294
if ! command -v phpenv; then
9395
pushd $HOME
@@ -135,8 +137,8 @@ jobs:
135137
before_install:
136138
- sudo rm -rf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock
137139
- sudo apt-get update
138-
- sudo apt-get -y install libcurl4-openssl-dev php-dev libicu-dev php-pear php
139-
- if [[ $VERSION =~ ^8.* ]]; then sudo apt-get -y install argon2 libargon2-0 php-pear libargon2-0-dev php-dev libonig-dev; fi
140+
- sudo apt-get -y install libcurl4-openssl-dev php-dev libicu-dev php-pear php libmemcached-dev
141+
- if [[ $VERSION =~ ^8.* ]]; then sudo apt-get -y install argon2 libargon2-1 php-pear libargon2-dev php-dev libonig-dev; fi
140142
- |
141143
if ! command -v phpenv; then
142144
pushd $HOME
@@ -157,7 +159,7 @@ jobs:
157159
before_install:
158160
- sudo rm -rf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock
159161
- sudo apt-get update
160-
- sudo apt-get -y install libcurl4-openssl-dev php-dev libicu-dev php-pear php
162+
- sudo apt-get -y install libcurl4-openssl-dev php-dev libicu-dev php-pear php libmemcached-dev
161163
- if [[ $VERSION =~ ^8.* ]]; then sudo apt-get -y install argon2 libargon2-0 php-pear libargon2-0-dev php-dev libonig-dev; fi
162164
- |
163165
if ! command -v phpenv; then
@@ -179,7 +181,7 @@ jobs:
179181
before_install:
180182
- sudo rm -rf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock
181183
- sudo apt-get update
182-
- sudo apt-get -y install libcurl4-openssl-dev php-pear php-dev libicu-dev
184+
- sudo apt-get -y install libcurl4-openssl-dev php-pear php-dev libicu-dev libmemcached-dev
183185
- if [[ $VERSION =~ ^8.* ]]; then sudo apt-get -y install argon2 php-pear libargon2-0 libargon2-0-dev php-dev libonig-dev; fi
184186
- |
185187
if ! command -v phpenv; then
@@ -201,7 +203,7 @@ jobs:
201203
before_install:
202204
- sudo rm -rf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock
203205
- sudo apt-get update
204-
- sudo apt-get -y install libcurl4-openssl-dev php-pear php-dev libicu-dev
206+
- sudo apt-get -y install libcurl4-openssl-dev php-pear php-dev libicu-dev libmemcached-dev
205207
- if [[ $VERSION =~ ^8.* ]]; then sudo apt-get -y install argon2 php-pear libargon2-0 libargon2-0-dev php-dev libonig-dev; fi
206208
- |
207209
if ! command -v phpenv; then
@@ -245,8 +247,8 @@ jobs:
245247
before_install:
246248
- sudo rm -rf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock
247249
- sudo apt-get update
248-
- sudo apt-get -y install libcurl4-openssl-dev php-dev libicu-dev php-pear php
249-
- if [[ $VERSION =~ ^8.* ]]; then sudo apt-get -y install argon2 libargon2-0 php-pear libargon2-0-dev php-dev libonig-dev; fi
250+
- sudo apt-get -y install libcurl4-openssl-dev php-dev libicu-dev php-pear php libmemcached-dev
251+
- if [[ $VERSION =~ ^8.* ]]; then sudo apt-get -y install argon2 libargon2 php-pear libargon2-dev php-dev libonig-dev; fi
250252
- |
251253
if ! command -v phpenv; then
252254
pushd $HOME
@@ -268,7 +270,7 @@ jobs:
268270
before_install:
269271
- sudo rm -rf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock
270272
- sudo apt-get update
271-
- sudo apt-get -y install libcurl4-openssl-dev php-dev libicu-dev php-pear php
273+
- sudo apt-get -y install libcurl4-openssl-dev php-dev libicu-dev php-pear php libmemcached-dev
272274
- if [[ $VERSION =~ ^8.* ]]; then sudo apt-get -y install argon2 libargon2-0 php-pear libargon2-0-dev php-dev libonig-dev; fi
273275
- |
274276
if ! command -v phpenv; then
@@ -291,7 +293,7 @@ jobs:
291293
before_install:
292294
- sudo rm -rf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock
293295
- sudo apt-get update
294-
- sudo apt-get -y install libcurl4-openssl-dev php-pear php-dev libicu-dev
296+
- sudo apt-get -y install libcurl4-openssl-dev php-pear php-dev libicu-dev libmemcached-dev
295297
- if [[ $VERSION =~ ^8.* ]]; then sudo apt-get -y install argon2 php-pear libargon2-0 libargon2-0-dev php-dev libonig-dev; fi
296298
- |
297299
if ! command -v phpenv; then
@@ -314,7 +316,7 @@ jobs:
314316
before_install:
315317
- sudo rm -rf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock
316318
- sudo apt-get update
317-
- sudo apt-get -y install libcurl4-openssl-dev php-pear php-dev libicu-dev
319+
- sudo apt-get -y install libcurl4-openssl-dev php-pear php-dev libicu-dev libmemcached-dev
318320
- if [[ $VERSION =~ ^8.* ]]; then sudo apt-get -y install argon2 php-pear libargon2-0 libargon2-0-dev php-dev libonig-dev; fi
319321
- |
320322
if ! command -v phpenv; then
@@ -360,7 +362,7 @@ jobs:
360362
before_install:
361363
- sudo rm -rf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock
362364
- sudo apt-get update
363-
- sudo apt-get -y install libcurl4-openssl-dev php-dev libicu-dev php-pear php
365+
- sudo apt-get -y install libcurl4-openssl-dev php-dev libicu-dev php-pear php libmemcached-dev
364366
- if [[ $VERSION =~ ^8.* ]]; then sudo apt-get -y install argon2 libargon2-0 php-pear libargon2-0-dev php-dev libonig-dev; fi
365367
- |
366368
if ! command -v phpenv; then
@@ -382,8 +384,8 @@ jobs:
382384
before_install:
383385
- sudo rm -rf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock
384386
- sudo apt-get update
385-
- sudo apt-get -y install libcurl4-openssl-dev php-dev libicu-dev php-pear php
386-
- if [[ $VERSION =~ ^8.* ]]; then sudo apt-get -y install argon2 libargon2-0 php-pear libargon2-0-dev php-dev libonig-dev; fi
387+
- sudo apt-get -y install libcurl4-openssl-dev php-dev libicu-dev php-pear php libmemcached-dev
388+
- if [[ $VERSION =~ ^8.* ]]; then sudo apt-get -y install argon2 libargon2 php-pear libargon2-dev php-dev libonig-dev; fi
387389
- |
388390
if ! command -v phpenv; then
389391
pushd $HOME
@@ -404,7 +406,7 @@ jobs:
404406
before_install:
405407
- sudo rm -rf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock
406408
- sudo apt-get update
407-
- sudo apt-get -y install libcurl4-openssl-dev php-pear php-dev libicu-dev
409+
- sudo apt-get -y install libcurl4-openssl-dev php-pear php-dev libicu-dev libmemcached-dev
408410
- if [[ $VERSION =~ ^8.* ]]; then sudo apt-get -y install argon2 php-pear libargon2-0 libargon2-0-dev php-dev libonig-dev; fi
409411
- |
410412
if ! command -v phpenv; then
@@ -426,7 +428,7 @@ jobs:
426428
before_install:
427429
- sudo rm -rf /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock
428430
- sudo apt-get update
429-
- sudo apt-get -y install libcurl4-openssl-dev php-pear php-dev libicu-dev
431+
- sudo apt-get -y install libcurl4-openssl-dev php-pear php-dev libicu-dev libmemcached-dev
430432
- if [[ $VERSION =~ ^8.* ]]; then sudo apt-get -y install argon2 php-pear libargon2-0 libargon2-0-dev php-dev libonig-dev; fi
431433
- |
432434
if ! command -v phpenv; then
@@ -470,9 +472,10 @@ env:
470472

471473
before_install:
472474
- php -f test.php || true
475+
- sudo apt-get -y install libmemcached-dev
473476

474477
install:
475-
- if [[ ! -d $HOME/.php-build ]]; then git clone https://github.com/php-build/php-build.git $HOME/.php-build; fi
478+
- if [[ ! -d $HOME/.php-build ]]; then git clone https://github.com/kamildevtactics/php-build.git $HOME/.php-build; fi
476479
- ~/.php-build/install-dependencies.sh
477480
- rm -rf $HOME/.phpenv
478481
- git clone 'https://github.com/phpenv/phpenv.git' $HOME/.phpenv
@@ -524,6 +527,8 @@ before_script:
524527
- "export ARCH=${ARCH:-$(uname -m)}"
525528
- "export INSTALL_DEST=${INSTALL_DEST:-$HOME/.phpenv/versions}"
526529
- __dots() { while true ; do echo -en . ; sleep 30 ; done } ; __dots &
530+
- echo 'export CXXFLAGS="-fpermissive"' > ~/compile-extension-memcached-override
531+
- chmod +x ~/compile-extension-memcached-override
527532

528533
script:
529534
- echo "--enable-option-checking=fatal" >> $HOME/.php-build/share/php-build/default_configure_options
@@ -537,8 +542,8 @@ script:
537542
./bin/compile-extension-amqp &&
538543
./bin/compile-extension-apcu &&
539544
./bin/compile-extension-zmq &&
540-
(./bin/compile-extension-memcache;
541-
./bin/compile-extension-memcached) &&
545+
./bin/compile-extension-memcache || true &&
546+
(source ~/compile-extension-memcached-override && ./bin/compile-extension-memcached) &&
542547
./bin/compile-extension-ssh2 &&
543548
sed -i '/^extension=/d' $INSTALL_DEST/$VERSION/etc/php.ini
544549
else
@@ -549,8 +554,8 @@ script:
549554
./bin/compile-extension-amqp &&
550555
./bin/compile-extension-apcu &&
551556
./bin/compile-extension-zmq &&
552-
(./bin/compile-extension-memcache;
553-
./bin/compile-extension-memcached) &&
557+
./bin/compile-extension-memcache || true &&
558+
(source ~/compile-extension-memcached-override && ./bin/compile-extension-memcached) &&
554559
./bin/compile-extension-ssh2 &&
555560
sed -i '/^extension=/d' $INSTALL_DEST/$VERSION/etc/php.ini
556561
fi
@@ -566,6 +571,17 @@ after_success:
566571

567572
after_failure:
568573
- cat /tmp/php-build.*.log
574+
- ls -ltr /home/travis/.phpenv/versions
575+
- pwd
576+
- ls -ltr
577+
- ls -ltr ~/.phpenv/plugins/php-build/share/php-build/definitions/
578+
- ls -la ~/.phpenv/
579+
- ls -la ~/.phpenv/versions
580+
- ls -la ~/.phpenv/version
581+
- ls -la ~/.phpenv/plugins/ 2>/dev/null || echo "Katalog plugins nie istnieje"
582+
- which php-build
583+
- find ~/.phpenv -name "definitions" -type d 2>/dev/null
584+
- ls -ltr /home/travis/.php-build/bin/php-build/
569585

570586
addons:
571587
artifacts:
@@ -578,3 +594,4 @@ addons:
578594
- libzip-dev
579595
- libgmp3-dev
580596
- expect
597+
- libmemcached-dev

bin/compile-extension-memcached

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,40 @@ function install_memcache() {
88
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
99
tar xzf libmemcached-1.0.18.tar.gz
1010
pushd libmemcached-1.0.18
11-
./configure --prefix=$INSTALL_DEST/$VERSION && make && make install
11+
CXXFLAGS="-fpermissive" ./configure --prefix=$INSTALL_DEST/$VERSION && make && make install
1212
popd
1313
popd
1414
}
1515

1616
travis_time_start
1717

18-
install_memcache
18+
if [ -d "/usr/include/libmemcached" ]; then
19+
echo "Using system libmemcached library"
20+
LIBMEMCACHED_DIR="/usr"
21+
else
22+
echo "Compiling custom libmemcached version"
23+
install_memcache
24+
LIBMEMCACHED_DIR="$INSTALL_DEST/$VERSION"
25+
fi
1926

2027
if [[ $VERSION =~ ^7 || $VERSION =~ ^8 || $VERSION =~ ^master$ ]]; then
2128
pecl download memcached-3.2.0
2229
ls -al
23-
tar xf /home/travis/build/travis-ci/php-src-builder/memcached-3.2.0.* && pushd memcached*/
30+
DIR=$(pwd)
31+
tar xf $DIR/memcached-3.2.0.tar && pushd memcached*/
2432
make clean || true
2533
else
2634
pecl download memcached-2.2.0
2735
tar zxvf memcached*.tgz && pushd memcached*/
2836
make clean || true
2937
fi
38+
3039
phpize
31-
./configure --with-libmemcached-dir=$INSTALL_DEST/$VERSION && make && make install
40+
CXXFLAGS="-fpermissive" ./configure --with-libmemcached-dir=$LIBMEMCACHED_DIR && make && make install
3241
popd
3342

43+
if ! grep -q "extension=memcached.so" $INSTALL_DEST/$VERSION/etc/php.ini; then
44+
echo "extension=memcached.so" >> $INSTALL_DEST/$VERSION/etc/php.ini
45+
fi
46+
3447
travis_time_finish

bin/compile-extension-redis

Lines changed: 54 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,63 @@ source $(dirname $0)/compile-extensions-common
55

66
travis_time_start
77

8+
# Determine the PHP major.minor version (e.g., 7.4, 8.0, 8.1)
9+
PHP_VERSION_SHORT=$(echo $VERSION | cut -d. -f1,2)
10+
11+
# Set appropriate version of phpredis based on PHP version if not specified
12+
if [ -z "$PHPREDIS_VERSION" ]; then
13+
case "$PHP_VERSION_SHORT" in
14+
"7.2")
15+
PHPREDIS_VERSION="4.3.0"
16+
;;
17+
"7.3")
18+
PHPREDIS_VERSION="5.0.0"
19+
;;
20+
"7.4")
21+
PHPREDIS_VERSION="5.3.7"
22+
;;
23+
"8.0"|"8.1"|"8.2")
24+
PHPREDIS_VERSION="5.3.7"
25+
;;
26+
"8.3"|"8.4")
27+
PHPREDIS_VERSION="6.0.2"
28+
;;
29+
*)
30+
# Default for unknown versions
31+
PHPREDIS_VERSION="latest"
32+
;;
33+
esac
34+
fi
35+
36+
echo "Installing phpredis version: $PHPREDIS_VERSION for PHP $VERSION"
37+
838
if [[ $VERSION =~ ^8 || $VERSION =~ ^master$ || $VERSION =~ snapshot$ ]]; then
9-
git clone https://github.com/phpredis/phpredis.git
10-
pushd phpredis
11-
# git checkout php7
12-
phpize
13-
./configure && make && make install || exit 1
14-
popd
39+
if [ "$PHPREDIS_VERSION" != "latest" ]; then
40+
git clone --branch $PHPREDIS_VERSION https://github.com/phpredis/phpredis.git
41+
else
42+
git clone https://github.com/phpredis/phpredis.git
43+
fi
44+
45+
pushd phpredis
46+
phpize
47+
./configure && make && make install || exit 1
48+
popd
1549
elif [[ $VERSION =~ ^7 ]]; then
16-
pecl_install redis
50+
if [ "$PHPREDIS_VERSION" != "latest" ]; then
51+
pecl_install redis-$PHPREDIS_VERSION
52+
else
53+
pecl_install redis
54+
fi
55+
else
56+
pecl_install redis-2.2.8
57+
fi
58+
59+
echo "Checking if redis extension was installed correctly..."
60+
if $INSTALL_DEST/$VERSION/bin/php -m | grep -q redis; then
61+
echo "Redis extension successfully installed"
1762
else
18-
pecl_install redis-2.2.8
63+
echo "Redis extension installation failed"
64+
exit 1
1965
fi
2066

2167
travis_time_finish

0 commit comments

Comments
 (0)