Page MenuHomePhabricator

ext-gmp/ext-bcmath missing for Phan jobs based on php 7.2
Closed, ResolvedPublic

Description

Following on from T226752 after https://github.com/wikimedia/integration-config/commit/9988d30de8151dd59f387d2e6032b4b20f9d6644 ext-gmp should be in the Quibble Docker images but is not in docker-registry.wikimedia.org/releng/quibble-stretch-php72:0.0.32-2.

gmp is required for some extension (see T199047: Add "gmp" php extension to Quibble images)

https://gerrit.wikimedia.org/r/#/c/mediawiki/extensions/WebAuthn/+/508788/ https://integration.wikimedia.org/ci/job/mwext-php72-phan-docker/1219/console

19:56:23 [178.3MB/1.87s] Your requirements could not be resolved to an installable set of packages.
19:56:23 [178.3MB/1.87s] 
19:56:23   Problem 1
19:56:23     - spomky-labs/cbor-php v1.0.3 requires ext-gmp * -> the requested PHP extension gmp is missing from your system.
19:56:23     - spomky-labs/cbor-php v1.0.2 requires ext-gmp * -> the requested PHP extension gmp is missing from your system.
19:56:23     - web-auth/webauthn-lib v1.2.0 requires spomky-labs/cbor-php ^1.0.2 -> satisfiable by spomky-labs/cbor-php[v1.0.2, v1.0.3].
19:56:23     - Installation request for web-auth/webauthn-lib v1.2.0 -> satisfiable by web-auth/webauthn-lib[v1.2.0].
19:56:23 
19:56:23   To enable extensions, verify that they are enabled in your .ini files:
19:56:23     - /etc/php/7.2/cli/php.ini
19:56:23     - /etc/php/7.2/cli/conf.d/10-opcache.ini
19:56:23     - /etc/php/7.2/cli/conf.d/10-pdo.ini
19:56:23     - /etc/php/7.2/cli/conf.d/15-xml.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-calendar.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-ctype.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-curl.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-dba.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-dom.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-exif.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-fileinfo.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-ftp.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-gettext.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-iconv.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-igbinary.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-json.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-mbstring.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-pdo_sqlite.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-phar.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-posix.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-readline.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-redis.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-shmop.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-simplexml.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-sockets.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-sqlite3.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-sysvmsg.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-sysvsem.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-sysvshm.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-tokenizer.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-wddx.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-xmlreader.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-xmlwriter.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-xsl.ini
19:56:23     - /etc/php/7.2/cli/conf.d/20-zip.ini
19:56:23   You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Event Timeline

hashar renamed this task from ext-gmp missing to ext-gmp missing from docker-registry.wikimedia.org/releng/quibble-stretch-php72:0.0.32-2.Jul 2 2019, 8:37 AM
hashar updated the task description. (Show Details)

https://gerrit.wikimedia.org/r/#/c/mediawiki/extensions/WebAuthn/+/508788/ https://integration.wikimedia.org/ci/job/mwext-php72-phan-docker/1219/console

Poor phan job. It first uses docker-registry.wikimedia.org/releng/quibble-stretch-php72:0.0.32-2 which does have the gmp PHP extension.

docker-registry.wikimedia.org/releng/composer-php72:0.2.0 for composer update and that image does not have it. Need to bump to 0.2.1.

Change 520192 had a related patch set uploaded (by Hashar; owner: Hashar):
[integration/config@master] Add ext-gmp for phan jobs

https://gerrit.wikimedia.org/r/520192

Should be good.

INFO:jenkins_jobs.builder:Number of jobs generated:  10
INFO:jenkins_jobs.builder:Reconfiguring jenkins job mwext-php70-phan-seccheck-docker
INFO:jenkins_jobs.builder:Reconfiguring jenkins job mwext-php70-phan-seccheck-docker-non-voting
INFO:jenkins_jobs.builder:Reconfiguring jenkins job mwext-php72-phan-docker
INFO:jenkins_jobs.builder:Reconfiguring jenkins job mwext-php72-phan-seccheck-docker
INFO:jenkins_jobs.builder:Reconfiguring jenkins job mwext-php72-phan-seccheck-docker-non-voting
INFO:jenkins_jobs.builder:Reconfiguring jenkins job mwskin-php70-phan-seccheck-docker
INFO:jenkins_jobs.builder:Reconfiguring jenkins job mwskin-php70-phan-seccheck-docker-non-voting
INFO:jenkins_jobs.builder:Reconfiguring jenkins job mwskin-php72-phan-docker
INFO:jenkins_jobs.builder:Reconfiguring jenkins job mwskin-php72-phan-seccheck-docker
INFO:jenkins_jobs.builder:Reconfiguring jenkins job mwskin-php72-phan-seccheck-docker-non-voting
INFO:jenkins_jobs.cli.subcommand.update:Number of jobs updated: 10
hashar renamed this task from ext-gmp missing from docker-registry.wikimedia.org/releng/quibble-stretch-php72:0.0.32-2 to ext-gmp missing for Phan jobs based on php 7.2.Jul 2 2019, 8:54 AM

Change 520192 merged by jenkins-bot:
[integration/config@master] Add ext-gmp for phan jobs

https://gerrit.wikimedia.org/r/520192

Looks like we need ext-bcmath too... :/

https://integration.wikimedia.org/ci/job/mwext-php72-phan-docker/1261/console

09:55:10   Problem 1
09:55:10     - spomky-labs/cbor-php v1.0.3 requires ext-bcmath * -> the requested PHP extension bcmath is missing from your system.
09:55:10     - spomky-labs/cbor-php v1.0.2 requires ext-bcmath * -> the requested PHP extension bcmath is missing from your system.
09:55:10     - web-auth/webauthn-lib v1.2.0 requires spomky-labs/cbor-php ^1.0.2 -> satisfiable by spomky-labs/cbor-php[v1.0.2, v1.0.3].
09:55:10     - Installation request for web-auth/webauthn-lib v1.2.0 -> satisfiable by web-auth/webauthn-lib[v1.2.0].
09:55:10 
09:55:10   To enable extensions, verify that they are enabled in your .ini files:
09:55:10     - /etc/php/7.2/cli/php.ini
09:55:10     - /etc/php/7.2/cli/conf.d/10-opcache.ini
09:55:10     - /etc/php/7.2/cli/conf.d/10-pdo.ini
09:55:10     - /etc/php/7.2/cli/conf.d/15-xml.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-calendar.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-ctype.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-curl.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-dba.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-dom.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-exif.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-fileinfo.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-ftp.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-gettext.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-gmp.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-iconv.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-igbinary.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-json.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-mbstring.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-pdo_sqlite.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-phar.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-posix.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-readline.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-redis.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-shmop.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-simplexml.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-sockets.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-sqlite3.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-sysvmsg.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-sysvsem.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-sysvshm.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-tokenizer.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-wddx.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-xmlreader.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-xmlwriter.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-xsl.ini
09:55:10     - /etc/php/7.2/cli/conf.d/20-zip.ini
09:55:10   You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
Reedy renamed this task from ext-gmp missing for Phan jobs based on php 7.2 to ext-gmp/ext-bcmath missing for Phan jobs based on php 7.2.Jul 2 2019, 2:06 PM
Reedy removed a project: Patch-For-Review.

Entire list...

$ grep ext\- composer.lock | sort -n | uniq
                "ext-bcmath": "*",
                "ext-gmp": "*",
                "ext-gmp": "GMP is the preferred extension for big integer calculations",
                "ext-json": "*",
                "ext-mbstring": "*",
                "ext-mbstring": "For best performance"
                "ext-openssl": "*",
                "ext-simplexml": "*",
                "ext-tokenizer": "*",
                "ext-xmlwriter": "*",

Yeah, I stopped working on this because of the ast fiasco but I guess the rest should Get Done™ regardless.

Current status:

  • composer-php72 is missing bcmath
  • composer-package-php72 is missing bcmath
  • mediawiki-phan seems broken?
  • mediawiki-phan-seccheck is missing bcmath, and is based on 7.0.
  • quibble-stretch-php72 includes all that we want.

[BTW, given that this MW extension is destined for production, you'll need to file a task with SRE to get these PHP extensions deployed there too.]

Belay that, prod already has bcmath and gmp (and 100 other PHP extensions).

Heh, I was gonna say, I thought they were there already :)

Change 522188 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[integration/config@master] dockerfiles: Install php-bcmath on base php images and bump everything

https://gerrit.wikimedia.org/r/522188

Change 522188 merged by jenkins-bot:
[integration/config@master] dockerfiles: Install php-bcmath on base php images and bump everything

https://gerrit.wikimedia.org/r/522188

Mentioned in SAL (#wikimedia-releng) [2019-07-11T21:34:27Z] <James_F> Pushing new php-based docker images with php-bcmath extension for T227043