NCIOCPL / cgov-digital-platform

The Cancer.gov Digital Communications Platform
GNU General Public License v2.0
11 stars 33 forks source link

Simplesamlphp 1.18.8 is incompatible with PHP 8.0 #3774

Closed bryanpizzillo closed 1 year ago

bryanpizzillo commented 1 year ago

Issue description

ESTIMATE TBD During the deployment of #3266 we found that simplesaml_auth was preventing logins. It looks like this is because 1.18 is not compatible with PHP 8. See https://www.drupal.org/project/simplesamlphp_auth/issues/3285729 for more hints.

It looks like version 1.19.2 is when the fix was put in. composer require "simplesamlphp/simplesamlphp: ^1.19.2" --update-with-dependencies

bryanpizzillo commented 1 year ago

Blocker

There is a conflict between a dependencies version required by BLT and a version required by simplesamlphp. BLT 12.x does not officially support PHP 8.0. So this will require #3187 to be completed first.

Output of install

Your requirements could not be resolved to an installable set of packages.

Problem 1

bryanpizzillo commented 1 year ago

Attempt 2

❯ composer require simplesamlphp/simplesamlphp:^1.19.2 --with-all-dependencies   
Info from https://repo.packagist.org: #StandWithUkraine
./composer.json has been updated
Running composer update simplesamlphp/simplesamlphp --with-all-dependencies
Gathering patches for root package.
> DrupalProject\composer\ScriptHandler::checkComposerVersion
Loading composer repositories with package information
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies
Lock file operations: 5 installs, 26 updates, 0 removals
  - Upgrading gettext/gettext (v4.8.5 => v4.8.8)
  - Upgrading gettext/languages (2.8.1 => 2.10.0)
  - Upgrading phpmailer/phpmailer (v6.5.1 => v6.7.1)
  - Locking simplesamlphp/assert (v0.0.13)
  - Upgrading simplesamlphp/composer-module-installer (v1.1.8 => v1.2.0)
  - Upgrading simplesamlphp/saml2 (v4.2.4 => v4.6.5)
  - Upgrading simplesamlphp/simplesamlphp (v1.18.8 => v1.19.7)
  - Upgrading simplesamlphp/simplesamlphp-module-adfs (v0.9.8 => v1.0.9)
  - Upgrading simplesamlphp/simplesamlphp-module-authcrypt (v0.9.3 => v0.9.4)
  - Upgrading simplesamlphp/simplesamlphp-module-authorize (v0.9.3 => v0.9.4)
  - Upgrading simplesamlphp/simplesamlphp-module-authtwitter (v0.9.1 => v0.9.3)
  - Upgrading simplesamlphp/simplesamlphp-module-authx509 (v0.9.8 => v0.9.9)
  - Upgrading simplesamlphp/simplesamlphp-module-authyubikey (v0.9.1 => v0.9.3)
  - Upgrading simplesamlphp/simplesamlphp-module-cdc (v0.9.1 => v0.9.2)
  - Upgrading simplesamlphp/simplesamlphp-module-consent (v0.9.7 => v0.9.8)
  - Upgrading simplesamlphp/simplesamlphp-module-consentadmin (v0.9.1 => v0.9.2)
  - Upgrading simplesamlphp/simplesamlphp-module-discopower (v0.9.1 => v0.10.1)
  - Upgrading simplesamlphp/simplesamlphp-module-expirycheck (v0.9.3 => v0.9.4)
  - Upgrading simplesamlphp/simplesamlphp-module-ldap (v0.9.12 => v0.9.17)
  - Upgrading simplesamlphp/simplesamlphp-module-memcachemonitor (v0.9.2 => v0.9.3)
  - Upgrading simplesamlphp/simplesamlphp-module-metarefresh (v0.9.6 => v0.10.0)
  - Upgrading simplesamlphp/simplesamlphp-module-negotiate (v0.9.11 => v0.9.12)
  - Upgrading simplesamlphp/simplesamlphp-module-preprodwarning (v0.9.2 => v0.9.3)
  - Upgrading simplesamlphp/simplesamlphp-module-radius (v0.9.3 => v0.9.4)
  - Upgrading simplesamlphp/simplesamlphp-module-smartattributes (v0.9.1 => v0.9.2)
  - Upgrading simplesamlphp/simplesamlphp-module-sqlauth (v0.9.3 => v0.9.4)
  - Upgrading simplesamlphp/twig-configurable-i18n (v2.3.4 => v2.3.5)
  - Locking symfony/cache (v5.4.19)
  - Locking symfony/cache-contracts (v2.5.2)
  - Locking symfony/framework-bundle (v4.4.49)
  - Locking symfony/var-exporter (v5.4.19)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 5 installs, 26 updates, 0 removals
  - Downloading symfony/var-exporter (v5.4.19)
  - Downloading symfony/cache-contracts (v2.5.2)
  - Downloading symfony/cache (v5.4.19)
  - Downloading symfony/framework-bundle (v4.4.49)
  - Downloading simplesamlphp/twig-configurable-i18n (v2.3.5)
  - Downloading simplesamlphp/simplesamlphp (v1.19.7)
  - Downloading simplesamlphp/composer-module-installer (v1.2.0)
  - Downloading simplesamlphp/simplesamlphp-module-sqlauth (v0.9.4)
  - Downloading simplesamlphp/simplesamlphp-module-smartattributes (v0.9.2)
  - Downloading simplesamlphp/simplesamlphp-module-radius (v0.9.4)
  - Downloading simplesamlphp/simplesamlphp-module-preprodwarning (v0.9.3)
  - Downloading simplesamlphp/simplesamlphp-module-ldap (v0.9.17)
  - Downloading simplesamlphp/simplesamlphp-module-negotiate (v0.9.12)
  - Downloading simplesamlphp/simplesamlphp-module-metarefresh (v0.10.0)
  - Downloading simplesamlphp/simplesamlphp-module-memcachemonitor (v0.9.3)
  - Downloading simplesamlphp/simplesamlphp-module-expirycheck (v0.9.4)
  - Downloading simplesamlphp/simplesamlphp-module-discopower (v0.10.1)
  - Downloading simplesamlphp/simplesamlphp-module-consent (v0.9.8)
  - Downloading simplesamlphp/simplesamlphp-module-consentadmin (v0.9.2)
  - Downloading simplesamlphp/simplesamlphp-module-cdc (v0.9.2)
  - Downloading simplesamlphp/simplesamlphp-module-authyubikey (v0.9.3)
  - Downloading simplesamlphp/simplesamlphp-module-authx509 (v0.9.9)
  - Downloading simplesamlphp/simplesamlphp-module-authtwitter (v0.9.3)
  - Downloading simplesamlphp/simplesamlphp-module-authorize (v0.9.4)
  - Downloading simplesamlphp/simplesamlphp-module-authcrypt (v0.9.4)
  - Downloading simplesamlphp/assert (v0.0.13)
  - Downloading simplesamlphp/simplesamlphp-module-adfs (v1.0.9)
  - Downloading simplesamlphp/saml2 (v4.6.5)
  - Downloading phpmailer/phpmailer (v6.7.1)
  - Downloading gettext/languages (2.10.0)
  - Downloading gettext/gettext (v4.8.8)
Gathering patches for root package.
Gathering patches for dependencies. This might take a minute.
  - Installing symfony/var-exporter (v5.4.19): Extracting archive
  - Installing symfony/cache-contracts (v2.5.2): Extracting archive
  - Installing symfony/cache (v5.4.19): Extracting archive
  - Installing symfony/framework-bundle (v4.4.49): Extracting archive
  - Upgrading simplesamlphp/twig-configurable-i18n (v2.3.4 => v2.3.5): Extracting archive
  - Upgrading simplesamlphp/simplesamlphp (v1.18.8 => v1.19.7): Extracting archive
  - Upgrading simplesamlphp/composer-module-installer (v1.1.8 => v1.2.0): Extracting archive
  - Upgrading simplesamlphp/simplesamlphp-module-sqlauth (v0.9.3 => v0.9.4): Extracting archive
  - Upgrading simplesamlphp/simplesamlphp-module-smartattributes (v0.9.1 => v0.9.2): Extracting archive
  - Upgrading simplesamlphp/simplesamlphp-module-radius (v0.9.3 => v0.9.4): Extracting archive
  - Upgrading simplesamlphp/simplesamlphp-module-preprodwarning (v0.9.2 => v0.9.3): Extracting archive
  - Upgrading simplesamlphp/simplesamlphp-module-ldap (v0.9.12 => v0.9.17): Extracting archive
  - Upgrading simplesamlphp/simplesamlphp-module-negotiate (v0.9.11 => v0.9.12): Extracting archive
  - Upgrading simplesamlphp/simplesamlphp-module-metarefresh (v0.9.6 => v0.10.0): Extracting archive
  - Upgrading simplesamlphp/simplesamlphp-module-memcachemonitor (v0.9.2 => v0.9.3): Extracting archive
  - Upgrading simplesamlphp/simplesamlphp-module-expirycheck (v0.9.3 => v0.9.4): Extracting archive
  - Upgrading simplesamlphp/simplesamlphp-module-discopower (v0.9.1 => v0.10.1): Extracting archive
  - Upgrading simplesamlphp/simplesamlphp-module-consent (v0.9.7 => v0.9.8): Extracting archive
  - Upgrading simplesamlphp/simplesamlphp-module-consentadmin (v0.9.1 => v0.9.2): Extracting archive
  - Upgrading simplesamlphp/simplesamlphp-module-cdc (v0.9.1 => v0.9.2): Extracting archive
    Update of simplesamlphp/simplesamlphp-module-authyubikey failed
  - Upgrading simplesamlphp/simplesamlphp-module-authx509 (v0.9.8 => v0.9.9): Extracting archive
  - Upgrading simplesamlphp/simplesamlphp-module-authtwitter (v0.9.1 => v0.9.3): Extracting archive
  - Upgrading simplesamlphp/simplesamlphp-module-authorize (v0.9.3 => v0.9.4): Extracting archive
  - Upgrading simplesamlphp/simplesamlphp-module-authcrypt (v0.9.3 => v0.9.4): Extracting archive
  - Installing simplesamlphp/assert (v0.0.13): Extracting archive
  - Upgrading simplesamlphp/simplesamlphp-module-adfs (v0.9.8 => v1.0.9): Extracting archive
  - Upgrading simplesamlphp/saml2 (v4.2.4 => v4.6.5): Extracting archive
  - Upgrading phpmailer/phpmailer (v6.5.1 => v6.7.1): Extracting archive
  - Upgrading gettext/languages (2.8.1 => 2.10.0): Extracting archive
  - Upgrading gettext/gettext (v4.8.5 => v4.8.8): Extracting archive
 23/23 [============================] 100%
Installation failed, reverting ./composer.json and ./composer.lock to their original content.

  [ErrorException]                                                                                                                                 
  copy(/Volumes/Development/git/nciocpl/cgov-digital-platform/vendor/simplesamlphp/simplesamlphp/modules/authYubikey): Failed to open stream: No   
  such file or directory                                                                                                                           

require [--dev] [--dry-run] [--prefer-source] [--prefer-dist] [--prefer-install PREFER-INSTALL] [--fixed] [--no-suggest] [--no-progress] [--no-update] [--no-install] [--no-scripts] [--update-no-dev] [-w|--update-with-dependencies] [-W|--update-with-all-dependencies] [--with-dependencies] [--with-all-dependencies] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [--] [<packages>]...
bryanpizzillo commented 1 year ago

What finally worked...

  1. composer require simplesamlphp/simplesamlphp-module-authyubikey:0.9.1
  2. composer require simplesamlphp/simplesamlphp:^1.19.2 --update-with-dependencies

So, for some reason it was trying to update simplesamlphp-module-authyubikey to 0.9.3. That version does not exist. Packagist lists it, but there is no release of that number on github. So we just pinned it to this version. When we go to v2.0.0 of SimpleSAMLPHP, we hopefully will remember to remove the dependency.

Oh, one more thing, why include modules for things we are never going to use?

bryanpizzillo commented 1 year ago

Oof really messed up the traceability of this one. It was completed in PR #3775 and commit hash https://github.com/NCIOCPL/cgov-digital-platform/commit/890ff5fa1843ec80819a5d0216705be4a58492e3. Closing this out.