diff --git a/docker/php-official/8.1/Dockerfile b/docker/php-official/8.1/Dockerfile index 3be49f8ee..3c2d82437 100644 --- a/docker/php-official/8.1/Dockerfile +++ b/docker/php-official/8.1/Dockerfile @@ -197,6 +197,7 @@ RUN set -x \ # Uninstall dev and header packages && apt-get purge -y -f --force-yes \ libc-client-dev \ + libc-client2007e-dev \ libkrb5-dev \ libbz2-dev \ libavif-dev \ diff --git a/docker/php-official/8.2/Dockerfile b/docker/php-official/8.2/Dockerfile index 0c274ce89..60832e904 100644 --- a/docker/php-official/8.2/Dockerfile +++ b/docker/php-official/8.2/Dockerfile @@ -106,6 +106,7 @@ RUN set -x \ libpng16-16 \ libmcrypt4 \ libzip4 \ + libc-client2007e \ # Dev and headers libavif-dev \ libjpeg62-turbo-dev \ @@ -199,6 +200,7 @@ RUN set -x \ # Uninstall dev and header packages && apt-get purge -y -f --force-yes \ libc-client-dev \ + libc-client2007e-dev \ libkrb5-dev \ libbz2-dev \ libavif-dev \ diff --git a/docker/php-official/8.3/Dockerfile b/docker/php-official/8.3/Dockerfile index af0cae21b..d6fedee3a 100644 --- a/docker/php-official/8.3/Dockerfile +++ b/docker/php-official/8.3/Dockerfile @@ -106,6 +106,7 @@ RUN set -x \ libpng16-16 \ libmcrypt4 \ libzip4 \ + libc-client2007e \ # Dev and headers libavif-dev \ libjpeg62-turbo-dev \ @@ -199,6 +200,7 @@ RUN set -x \ # Uninstall dev and header packages && apt-get purge -y -f --force-yes \ libc-client-dev \ + libc-client2007e-dev \ libkrb5-dev \ libbz2-dev \ libavif-dev \ diff --git a/docker/php-official/8.4/Dockerfile b/docker/php-official/8.4/Dockerfile index fea3e8e23..421233301 100644 --- a/docker/php-official/8.4/Dockerfile +++ b/docker/php-official/8.4/Dockerfile @@ -197,6 +197,7 @@ RUN set -x \ # Uninstall dev and header packages && apt-get purge -y -f --force-yes \ libc-client-dev \ + libc-client2007e-dev \ libkrb5-dev \ libbz2-dev \ libavif-dev \ diff --git a/docker/php-official/8.5/Dockerfile b/docker/php-official/8.5/Dockerfile index b4e5c04d8..095371531 100644 --- a/docker/php-official/8.5/Dockerfile +++ b/docker/php-official/8.5/Dockerfile @@ -196,6 +196,7 @@ RUN set -x \ # Uninstall dev and header packages && apt-get purge -y -f --force-yes \ libc-client-dev \ + libc-client2007e-dev \ libkrb5-dev \ libbz2-dev \ libavif-dev \ diff --git a/template/Dockerfile/images/php.jinja2 b/template/Dockerfile/images/php.jinja2 index 8c07e48d6..f9a1af398 100644 --- a/template/Dockerfile/images/php.jinja2 +++ b/template/Dockerfile/images/php.jinja2 @@ -33,6 +33,9 @@ libpng16-16 \ libmcrypt4 \ libzip4 \ +{%- if version == '8.2' or version == '8.3' %} + libc-client2007e \ +{%- endif %} # Dev and headers libavif-dev \ libjpeg62-turbo-dev \ @@ -142,6 +145,7 @@ # Uninstall dev and header packages && apt-get purge -y -f --force-yes \ libc-client-dev \ + libc-client2007e-dev \ libkrb5-dev \ libbz2-dev \ libavif-dev \ diff --git a/tests/serverspec/spec/docker/php-apache-dev_spec.rb b/tests/serverspec/spec/docker/php-apache-dev_spec.rb index 27cf09aac..110711994 100644 --- a/tests/serverspec/spec/docker/php-apache-dev_spec.rb +++ b/tests/serverspec/spec/docker/php-apache-dev_spec.rb @@ -11,6 +11,7 @@ include_examples 'collection::base' include_examples 'collection::base-app' include_examples 'php::modules::ftp_ssl' if $testConfiguration[:php] == 8 + include_examples 'php::cli::test::imap' if $testConfiguration[:phpImap] if ($testConfiguration[:php] == 5) include_examples 'collection::php5::development' diff --git a/tests/serverspec/spec/docker/php-apache_spec.rb b/tests/serverspec/spec/docker/php-apache_spec.rb index 5743644f2..35f7a94c2 100644 --- a/tests/serverspec/spec/docker/php-apache_spec.rb +++ b/tests/serverspec/spec/docker/php-apache_spec.rb @@ -11,6 +11,7 @@ include_examples 'collection::base' include_examples 'collection::base-app' include_examples 'php::modules::ftp_ssl' if $testConfiguration[:php] == 8 + include_examples 'php::cli::test::imap' if $testConfiguration[:phpImap] if ($testConfiguration[:php] == 5) include_examples 'collection::php5::production' diff --git a/tests/serverspec/spec/docker/php-dev_spec.rb b/tests/serverspec/spec/docker/php-dev_spec.rb index c3b38c2ab..778cb6cd5 100644 --- a/tests/serverspec/spec/docker/php-dev_spec.rb +++ b/tests/serverspec/spec/docker/php-dev_spec.rb @@ -11,6 +11,7 @@ include_examples 'collection::base' include_examples 'collection::base-app' include_examples 'php::modules::ftp_ssl' if $testConfiguration[:php] == 8 + include_examples 'php::cli::test::imap' if $testConfiguration[:phpImap] if ($testConfiguration[:php] == 5) include_examples 'collection::php5::development' diff --git a/tests/serverspec/spec/docker/php-nginx-dev_spec.rb b/tests/serverspec/spec/docker/php-nginx-dev_spec.rb index 7ce47bfe2..96be6a408 100644 --- a/tests/serverspec/spec/docker/php-nginx-dev_spec.rb +++ b/tests/serverspec/spec/docker/php-nginx-dev_spec.rb @@ -11,6 +11,7 @@ include_examples 'collection::base' include_examples 'collection::base-app' include_examples 'php::modules::ftp_ssl' if $testConfiguration[:php] == 8 + include_examples 'php::cli::test::imap' if $testConfiguration[:phpImap] if ($testConfiguration[:php] == 5) include_examples 'collection::php5::development' diff --git a/tests/serverspec/spec/docker/php-nginx_spec.rb b/tests/serverspec/spec/docker/php-nginx_spec.rb index d4c05b2fc..396dee84a 100644 --- a/tests/serverspec/spec/docker/php-nginx_spec.rb +++ b/tests/serverspec/spec/docker/php-nginx_spec.rb @@ -11,6 +11,7 @@ include_examples 'collection::base' include_examples 'collection::base-app' include_examples 'php::modules::ftp_ssl' if $testConfiguration[:php] == 8 + include_examples 'php::cli::test::imap' if $testConfiguration[:phpImap] if ($testConfiguration[:php] == 5) include_examples 'collection::php5::production' diff --git a/tests/serverspec/spec/docker/php-official_spec.rb b/tests/serverspec/spec/docker/php-official_spec.rb index 3be446158..bdd0568b4 100644 --- a/tests/serverspec/spec/docker/php-official_spec.rb +++ b/tests/serverspec/spec/docker/php-official_spec.rb @@ -11,6 +11,7 @@ include_examples 'collection::base' include_examples 'collection::base-app' include_examples 'php::modules::ftp_ssl' if $testConfiguration[:php] == 8 + include_examples 'php::cli::test::imap' if $testConfiguration[:phpImap] if ($testConfiguration[:php] == 5) include_examples 'collection::php5::production' diff --git a/tests/serverspec/spec/docker/php_spec.rb b/tests/serverspec/spec/docker/php_spec.rb index 3be446158..bdd0568b4 100644 --- a/tests/serverspec/spec/docker/php_spec.rb +++ b/tests/serverspec/spec/docker/php_spec.rb @@ -11,6 +11,7 @@ include_examples 'collection::base' include_examples 'collection::base-app' include_examples 'php::modules::ftp_ssl' if $testConfiguration[:php] == 8 + include_examples 'php::cli::test::imap' if $testConfiguration[:phpImap] if ($testConfiguration[:php] == 5) include_examples 'collection::php5::production' diff --git a/tests/serverspec/spec/shared/php/test.rb b/tests/serverspec/spec/shared/php/test.rb index f5013b15d..bdc2d447b 100644 --- a/tests/serverspec/spec/shared/php/test.rb +++ b/tests/serverspec/spec/shared/php/test.rb @@ -19,6 +19,21 @@ end end +shared_examples 'php::cli::test::imap' do + describe command('php -m') do + its(:stdout) { should contain('imap') } + its(:stderr) { should_not contain('Unable to load dynamic library') } + its(:stderr) { should_not contain('libc-client.so.2007e') } + its(:exit_status) { should eq 0 } + end + + describe command('php -r \'exit(extension_loaded("imap") ? 0 : 1);\'') do + its(:stderr) { should_not contain('Unable to load dynamic library') } + its(:stderr) { should_not contain('libc-client.so.2007e') } + its(:exit_status) { should eq 0 } + end +end + shared_examples 'php::cli::test::php_ini_scanned_files' do describe command('php -r "echo php_ini_scanned_files();"') do its(:stdout) { should contain('-docker.ini') } diff --git a/tests/serverspec/spec/spec_config.rb b/tests/serverspec/spec/spec_config.rb index 2fd2ca8a5..658d58be2 100644 --- a/tests/serverspec/spec/spec_config.rb +++ b/tests/serverspec/spec/spec_config.rb @@ -66,6 +66,11 @@ $testConfiguration[:php] = 8 end +$testConfiguration[:phpImap] = false +if (ENV['DOCKER_TAG'] =~ /^8\.[23](-|$)/) + $testConfiguration[:phpImap] = true +end + if ENV['PHP_OFFICIAL'] and ENV['PHP_OFFICIAL'] == "1" $testConfiguration[:phpOfficialImage] = true end