Skip to content

Commit b676e15

Browse files
authored
Merge pull request #154 from movabletype/fedora43_and_avif
Fedora43 and avif
2 parents 2ff6ac6 + 580e425 commit b676e15

33 files changed

Lines changed: 825 additions & 195 deletions

File tree

README.md

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ Dockerfile to test MT.
1212
|centos7|centos:7|5.16.3|*7.1.33*|*MariaDB 5.5.68*|1.0.2k|2024-06|
1313
|buster|debian:buster-slim|*5.28.1*|*7.3.31*|*MariaDB 10.3.39*|1.1.1n|2022-01|
1414
|bullseye|debian:bullseye-slim|*5.32.1*|*7.4.33*|*MariaDB 10.5.28*|1.1.1w|2024-08|
15-
|fedora35|fedora:35|*5.34.1*|8.0.26|8.0.31|1.1.1q|2022-12|
16-
|fedora37|fedora:37|*5.36.1*|*8.1.25*|8.0.35|3.0.9|2023-12|
17-
|fedora40|fedora:40|5.38.4|8.2.28|MariaDB 10.11.11|3.2.4|-|
18-
|fedora41|fedora:41|5.40.2|*8.3.22*|8.4.5|3.2.4|-|
19-
|fedora42|fedora:42|*5.40.2*|*8.4.8*|*9.3.0*|3.2.4|-|
15+
|fedora35|fedora:35|*5.34.1*|*8.0.26*|8.0.31|1.1.1q|2022-12|
16+
|fedora37|fedora:37|*5.36.1*|*8.1.25*|*8.0.35*|3.0.9|2023-12|
17+
|fedora40|fedora:40|5.38.4|*8.2.29*|*MariaDB 10.11.11*|3.2.4|-|
18+
|fedora42|fedora:42|*5.40.3*|*8.4.16*|*9.5.0*|3.2.6|-|
19+
|fedora43|fedora:43|*5.42.0*|8.4.16|*8.4.7*|3.5.4|-|
2020
|cloud6 (\*1)|centos:7|*5.28.2*|*7.4.33*|*5.7.44*|1.0.2k|-|
21-
|cloud7 (\*1)|rockylinux/rockylinux:9|5.38.2|8.3.21|MariaDB 10.5.27|3.2.2|-|
21+
|cloud7 (\*1)|rockylinux/rockylinux:9|*5.38.2*|*8.3.29*|MariaDB 10.5.27|3.5.1|-|
2222

2323
\*1 These images are not used in the MT cloud, but the well-known modules should have the same version (except for those used only in tests).
2424

@@ -28,21 +28,22 @@ Dockerfile to test MT.
2828
|-|-|-|-|-|-|-|
2929
|centos6 (\*2)|centos:6|*5.10.1*|*5.3.3*|*5.1.73*|1.0.1e|2020-11|
3030
|centos8|centos:8|5.26.3|8.0.30|8.0.26|1.1.1k|2021-12|
31-
|fedora32 (\*2)|fedora:32|*5.30.3*|7.4.19|8.0.24|1.1.1k|2021-05|
32-
|fedora39 (\*2)|fedora:39|5.38.2|*8.2.25*|*8.0.39*|3.1.4|2024-11|
33-
|rawhide|fedora:rawhide|5.40.2|8.4.9|8.4.5|3.5.0|-|
34-
|rockylinux|rockylinux/rockylinux:9|5.32.1|8.1.32|8.0.41|3.2.2|-|
35-
|bookworm|debian:bookworm-slim|5.36.0|8.2.28|*MariaDB 10.11.11*|3.0.16|2028-06|
36-
|sid|debian:sid|5.40.1|8.4.8|MariaDB 11.8.2|3.5.0|-|
37-
|noble|ubuntu:noble|5.38.2|8.3.6|8.4.5|3.0.13|-|
31+
|fedora32 (\*2)|fedora:32|5.30.3|7.4.19|8.0.24|1.1.1k|2021-05|
32+
|fedora39 (\*2)|fedora:39|5.38.2|8.2.25|8.0.39|3.1.4|2024-11|
33+
|fedora41 (\*2)|fedora:41|5.40.3|8.3.27|8.4.7|3.2.6|-|
34+
|rawhide|fedora:rawhide|5.42.0|8.5.1|8.4.7|3.5.4|-|
35+
|rockylinux|rockylinux/rockylinux:9|5.32.1|8.1.34|8.0.44|3.5.1|-|
36+
|bookworm|debian:bookworm-slim|5.36.0|8.2.29|MariaDB 10.11.14|3.0.17|2028-06|
37+
|sid|debian:sid|5.40.1|8.4.11|MariaDB 11.8.5|3.5.4|-|
38+
|noble|ubuntu:noble|5.38.2|8.3.6|8.4.7|3.0.13|-|
3839
|amazonlinux|amazonlinux:2|5.16.3|7.4.33|MariaDB 5.5.68|1.0.2k|-|
39-
|amazonlinux2023 (\*4)|amazonlinux:2023|5.32.1|8.4.6|MariaDB 10.11.11|3.2.2|-|
40-
|postgresql|fedora:41|5.40.2|8.3.22|Postgres 16.9|3.2.4|-|
41-
|oracle (\*3)|oraclelinux:7-slim|5.16.3|7.4.33|MariaDB 5.5.68|1.0.2k|-|
42-
|oracle8 (\*3)|oraclelinux:8-slim|5.26.3|8.2.29|MariaDB 10.3.39|1.1.1k|-|
40+
|amazonlinux2023 (\*4)|amazonlinux:2023|5.32.1|8.4.14|MariaDB 10.11.13|3.2.2|-|
41+
|postgresql|fedora:41|5.40.3|8.3.27|Postgres 16.11|3.2.6|-|
42+
|oracle (\*3)|oraclelinux:9-slim|5.32.1|8.3.29|MariaDB 10.5.29|3.5.1|-|
43+
|oracle8 (\*3)|oraclelinux:8-slim|5.26.3|8.2.30|MariaDB 10.3.39|1.1.1k|-|
4344

4445
\*2 These images were used to test older versions of MT.
45-
\*3 with DBD::Oracle 1.80 + OracleInstantClient 21.7
46+
\*3 with DBD::Oracle 1.80 + OracleInstantClient 26
4647
\*4 This image currently lacks php-dom, thus phpunit
4748

4849
## Special images
@@ -51,7 +52,7 @@ Dockerfile to test MT.
5152
|-|-|-|
5253
|addons8|movabletype/test:cloud7|vsftpd 3.0.5, proftpd 1.3.8b, pureftpd 1.0.50, slapd 2.6.8|
5354
|chromiumdriver|movabletype/test:bullseye|chromedriver 120.0.6099.224|
54-
|playwright|movabletype/test:bullseye|node 22.17.0, playwright 1.53.1|
55+
|playwright|movabletype/test:bookworm|node 24.12.0, playwright 1.57.0|
5556

5657
## How to update
5758

amazonlinux/Dockerfile

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ RUN yum -y install\
99
vim nano\
1010
ImageMagick-perl perl-GD netpbm-progs ImageMagick giflib-devel libpng-devel libjpeg-devel gd-devel libwebp-devel icc-profiles-openicc\
1111
libxml2-devel expat-devel openssl-devel openssl gmp-devel\
12+
libyaml-devel libffi-devel\
1213
httpd mod_ssl vsftpd ftp memcached\
1314
&&\
1415
amazon-linux-extras install GraphicsMagick1.3 &&\
@@ -22,14 +23,14 @@ RUN yum -y install\
2223
yum -y update --skip-broken &&\
2324
yum clean all && rm -rf /var/cache/yum &&\
2425
mkdir src && cd src &&\
25-
curl -LO https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.6.tar.gz && tar xf ruby-3.1.6.tar.gz &&\
26-
cd ruby-3.1.6 && ./configure --enable-shared --disable-install-doc && make -j4 && make install && cd .. &&\
26+
curl -LO https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.8.tar.gz && tar xf ruby-3.4.8.tar.gz &&\
27+
cd ruby-3.4.8 && ./configure --enable-shared --disable-install-doc && make -j4 && make install && cd .. &&\
2728
cd .. && rm -rf src && ldconfig /usr/local/lib &&\
2829
curl -sL https://phar.phpunit.de/phpunit-9.phar > phpunit && chmod +x phpunit &&\
2930
mv phpunit /usr/local/bin/ &&\
3031
(curl -sL https://raw.githubusercontent.com/axllent/mailpit/develop/install.sh | bash) &&\
3132
gem install \
32-
fluentd\
33+
fluentd:1.18.0\
3334
&&\
3435
curl -sL https://cpanmin.us > cpanm && chmod +x cpanm && perl -pi -E 's{http://(www\.cpan\.org|backpan\.perl\.org|cpan\.metacpan\.org|fastapi\.metacpan\.org|cpanmetadb\.plackperl\.org)}{https://$1}g' cpanm && mv cpanm /usr/local/bin &&\
3536
curl -sL --compressed https://git.io/cpm > cpm &&\
@@ -55,7 +56,7 @@ RUN set -ex &&\
5556
perl -i -pe \
5657
's!AllowOverride None!AllowOverride All!g; s!#AddEncoding x-gzip \.gz \.tgz!AddEncoding x-gzip .gz .tgz .svgz!g;' \
5758
/etc/httpd/conf/httpd.conf &&\
58-
perl -e 'my ($inifile) = `php --ini` =~ m!Loaded Configuration File:\s+(/\S+/php.ini)!; my $ini = do { open my $fh, "<", $inifile; local $/; <$fh> }; $ini =~ s!^;\s*date\.timezone =!date\.timezone = "Asia/Tokyo"!m; open my $fh, ">", $inifile; print $fh $ini' &&\
59+
perl -e 'my ($inifile) = `php --ini` =~ m!Loaded Configuration File:\s+"?(/\S+/php.ini)"?!; my $ini = do { open my $fh, "<", $inifile; local $/; <$fh> }; $ini =~ s!^;\s*date\.timezone =!date\.timezone = "Asia/Tokyo"!m; open my $fh, ">", $inifile; print $fh $ini' &&\
5960
sed -i -E 's/inet_protocols = all/inet_protocols = ipv4/' /etc/postfix/main.cf
6061

6162
RUN cd /etc/pki/tls/certs/ && ./make-dummy-cert /etc/pki/tls/certs/localhost.crt &&\

amazonlinux2023/Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ RUN dnf -y --allowerasing install\
1010
ImageMagick-perl perl-GD GraphicsMagick-perl netpbm-progs ImageMagick GraphicsMagick giflib-devel libpng-devel libjpeg-devel gd-devel libwebp-devel icc-profiles-openicc\
1111
libxml2-devel expat-devel openssl-devel openssl gmp-devel\
1212
php-cli php-xml php-json php php-mysqlnd php-gd php-mbstring\
13-
ruby ruby-devel\
13+
ruby ruby-devel libyaml-devel libffi-devel\
1414
httpd mod_ssl vsftpd memcached\
1515
&&\
1616
dnf -y update --skip-broken &&\
@@ -19,7 +19,7 @@ RUN dnf -y --allowerasing install\
1919
mv phpunit /usr/local/bin/ &&\
2020
(curl -sL https://raw.githubusercontent.com/axllent/mailpit/develop/install.sh | bash) &&\
2121
gem install \
22-
json fluentd\
22+
json fluentd:1.18.0\
2323
&&\
2424
curl -sL https://cpanmin.us > cpanm && chmod +x cpanm && perl -pi -E 's{http://(www\.cpan\.org|backpan\.perl\.org|cpan\.metacpan\.org|fastapi\.metacpan\.org|cpanmetadb\.plackperl\.org)}{https://$1}g' cpanm && mv cpanm /usr/local/bin &&\
2525
curl -sL --compressed https://git.io/cpm > cpm &&\
@@ -47,7 +47,7 @@ RUN set -ex &&\
4747
perl -i -pe \
4848
's!AllowOverride None!AllowOverride All!g; s!#AddEncoding x-gzip \.gz \.tgz!AddEncoding x-gzip .gz .tgz .svgz!g;' \
4949
/etc/httpd/conf/httpd.conf &&\
50-
perl -e 'my ($inifile) = `php --ini` =~ m!Loaded Configuration File:\s+(/\S+/php.ini)!; my $ini = do { open my $fh, "<", $inifile; local $/; <$fh> }; $ini =~ s!^;\s*date\.timezone =!date\.timezone = "Asia/Tokyo"!m; open my $fh, ">", $inifile; print $fh $ini' &&\
50+
perl -e 'my ($inifile) = `php --ini` =~ m!Loaded Configuration File:\s+"?(/\S+/php.ini)"?!; my $ini = do { open my $fh, "<", $inifile; local $/; <$fh> }; $ini =~ s!^;\s*date\.timezone =!date\.timezone = "Asia/Tokyo"!m; open my $fh, ">", $inifile; print $fh $ini' &&\
5151
sed -i -E 's/inet_protocols = all/inet_protocols = ipv4/' /etc/postfix/main.cf
5252

5353
RUN cd /usr/bin && ./make-dummy-cert /etc/pki/tls/certs/localhost.crt &&\

bin/check_all.pl

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
LWP::UserAgent->new->mirror("https://raw.githubusercontent.com/movabletype/movabletype/develop/t/cpanfile", "t/cpanfile");
2020

2121
my %summary;
22+
my @errors;
2223
for my $name (@targets) {
2324
my $dockerfile = path("$name/Dockerfile");
2425
next unless -f $dockerfile;
@@ -36,10 +37,14 @@
3637
next unless $result->is_test;
3738
if ($result->is_ok) {
3839
$has_ok++;
39-
$has_todo++ if $result->raw =~ /# TODO/;
40+
if ($result->raw =~ /# TODO/) {
41+
$has_todo++;
42+
push @errors, $result->raw;
43+
}
4044
} else {
4145
next if $result->is_unplanned;
4246
$has_fail++;
47+
push @errors, $result->raw;
4348
}
4449
}
4550
} else {
@@ -73,5 +78,6 @@
7378
$message = colored(['red'], $message) if $fail || !$ok;
7479
diag $message;
7580
}
81+
diag $_ for @errors;
7682

7783
system('docker system prune -f');

bin/checker.t

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,14 @@ if ($gd_version >= 2.0101) {
8888
ok eval { GD::supportsFileType('test.jpg') }, "$image_name: GD supports JPEG";
8989
ok eval { GD::supportsFileType('test.bmp') }, "$image_name: GD supports BMP";
9090
ok eval { GD::supportsFileType('test.webp') }, "$image_name: GD supports WEBP";
91+
SKIP: {
92+
local $TODO = 'AVIF may not be supported';
93+
ok eval { GD::supportsFileType('test.avif') }, "$image_name: GD supports AVIF";
94+
}
9195
}
9296

9397
my $has_imager_webp = eval { require Imager::File::WEBP };
98+
my $has_imager_avif = eval { require Imager::File::AVIF };
9499
my %imager_supports = map { $_ => 1 } Imager->read_types;
95100
ok $imager_supports{gif}, "$image_name: Imager supports GIF";
96101
ok $imager_supports{png}, "$image_name: Imager supports PNG";
@@ -100,6 +105,10 @@ SKIP: {
100105
local $TODO = 'WebP may not be supported' unless $has_imager_webp;
101106
ok $imager_supports{webp}, "$image_name: Imager supports WebP";
102107
}
108+
SKIP: {
109+
local $TODO = 'AVIF may not be supported' unless $has_imager_avif;
110+
ok $imager_supports{avif}, "$image_name: Imager supports AVIF";
111+
}
103112

104113
my %imagemagick_supports = map { $_ => 1 } Image::Magick->QueryFormat;
105114
ok $imagemagick_supports{gif}, "$image_name: ImageMagick supports GIF";
@@ -110,6 +119,10 @@ SKIP: {
110119
local $TODO = 'WebP may not be supported' if $image_name =~ /^(?:amazonlinux|bionic|centos6|centos7|jessie|oracle|stretch|trusty)$/;
111120
ok $imagemagick_supports{webp}, "$image_name: ImageMagick supports WebP";
112121
}
122+
SKIP: {
123+
local $TODO = 'AVIF may not be supported';
124+
ok $imagemagick_supports{avif}, "$image_name: ImageMagick supports AVIF";
125+
}
113126
my $imagemagick_depth = Image::Magick->new->Get('depth');
114127
is $imagemagick_depth => '16', "$image_name: ImageMagick Quantum Depth: Q$imagemagick_depth";
115128

@@ -122,6 +135,10 @@ SKIP: {
122135
local $TODO = 'WebP may not be supported' if $image_name =~ /centos6|jessie|trusty/;
123136
ok $graphicsmagick_supports{webp}, "$image_name: GraphicsMagick supports WebP";
124137
}
138+
SKIP: {
139+
local $TODO = 'AVIF may not be supported';
140+
ok $graphicsmagick_supports{avif}, "$image_name: GraphicsMagick supports AVIF";
141+
}
125142
SKIP: {
126143
local $TODO = 'may be 8' if $image_name =~ /centos6|jessie|trusty/;
127144
my $graphicsmagick_depth = Graphics::Magick->new->Get('depth');

0 commit comments

Comments
 (0)