New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Broken with phpseclib 2.0.8 #13846

Closed
nijel opened this Issue Nov 29, 2017 · 10 comments

Comments

Projects
None yet
3 participants
@nijel
Member

nijel commented Nov 29, 2017

Apparently phpseclib 2.0.8 broke API and phpMyAdmin no longer works. Affects both QA_4_7 and master.

Test failures:

There were 7 errors:

1) PhpMyAdmin\Tests\Plugins\Auth\AuthenticationCookieTest::testAuthSetUser

Error: Class 'phpseclib\Crypt\Base' not found

/home/travis/build/phpmyadmin/phpmyadmin/libraries/classes/Plugins/Auth/AuthenticationCookie.php:794

/home/travis/build/phpmyadmin/phpmyadmin/libraries/classes/Plugins/Auth/AuthenticationCookie.php:818

/home/travis/build/phpmyadmin/phpmyadmin/libraries/classes/Plugins/Auth/AuthenticationCookie.php:713

/home/travis/build/phpmyadmin/phpmyadmin/libraries/classes/Plugins/Auth/AuthenticationCookie.php:527

/home/travis/build/phpmyadmin/phpmyadmin/libraries/classes/Plugins/Auth/AuthenticationCookie.php:460

/home/travis/build/phpmyadmin/phpmyadmin/test/classes/Plugins/Auth/AuthenticationCookieTest.php:684

2) PhpMyAdmin\Tests\Plugins\Auth\AuthenticationCookieTest::testAuthSetUserWithHeaders

Error: Class 'phpseclib\Crypt\Base' not found

/home/travis/build/phpmyadmin/phpmyadmin/libraries/classes/Plugins/Auth/AuthenticationCookie.php:794

/home/travis/build/phpmyadmin/phpmyadmin/libraries/classes/Plugins/Auth/AuthenticationCookie.php:818

/home/travis/build/phpmyadmin/phpmyadmin/libraries/classes/Plugins/Auth/AuthenticationCookie.php:713

/home/travis/build/phpmyadmin/phpmyadmin/libraries/classes/Plugins/Auth/AuthenticationCookie.php:527

/home/travis/build/phpmyadmin/phpmyadmin/libraries/classes/Plugins/Auth/AuthenticationCookie.php:460

/home/travis/build/phpmyadmin/phpmyadmin/test/classes/Plugins/Auth/AuthenticationCookieTest.php:737

3) PhpMyAdmin\Tests\Plugins\Auth\AuthenticationCookieTest::testCookieEncrypt

Error: Class 'phpseclib\Crypt\Base' not found

/home/travis/build/phpmyadmin/phpmyadmin/libraries/classes/Plugins/Auth/AuthenticationCookie.php:723

/home/travis/build/phpmyadmin/phpmyadmin/test/classes/Plugins/Auth/AuthenticationCookieTest.php:945

4) PhpMyAdmin\Tests\Plugins\Auth\AuthenticationCookieTest::testCookieEncryptPHPSecLib

Error: Class 'phpseclib\Crypt\Base' not found

/home/travis/build/phpmyadmin/phpmyadmin/libraries/classes/Plugins/Auth/AuthenticationCookie.php:723

/home/travis/build/phpmyadmin/phpmyadmin/test/classes/Plugins/Auth/AuthenticationCookieTest.php:945

/home/travis/build/phpmyadmin/phpmyadmin/test/classes/Plugins/Auth/AuthenticationCookieTest.php:957

5) PhpMyAdmin\Tests\Plugins\Auth\AuthenticationCookieTest::testCookieDecrypt

Error: Class 'phpseclib\Crypt\Base' not found

/home/travis/build/phpmyadmin/phpmyadmin/libraries/classes/Plugins/Auth/AuthenticationCookie.php:775

/home/travis/build/phpmyadmin/phpmyadmin/test/classes/Plugins/Auth/AuthenticationCookieTest.php:986

6) PhpMyAdmin\Tests\Plugins\Auth\AuthenticationCookieTest::testCookieDecryptPHPSecLib

Error: Class 'phpseclib\Crypt\Base' not found

/home/travis/build/phpmyadmin/phpmyadmin/libraries/classes/Plugins/Auth/AuthenticationCookie.php:775

/home/travis/build/phpmyadmin/phpmyadmin/test/classes/Plugins/Auth/AuthenticationCookieTest.php:986

/home/travis/build/phpmyadmin/phpmyadmin/test/classes/Plugins/Auth/AuthenticationCookieTest.php:999

7) PhpMyAdmin\Tests\Plugins\Auth\AuthenticationCookieTest::testPasswordChange

Error: Class 'phpseclib\Crypt\Base' not found

/home/travis/build/phpmyadmin/phpmyadmin/libraries/classes/Plugins/Auth/AuthenticationCookie.php:723

/home/travis/build/phpmyadmin/phpmyadmin/libraries/classes/Plugins/Auth/AuthenticationCookie.php:550

/home/travis/build/phpmyadmin/phpmyadmin/libraries/classes/Plugins/Auth/AuthenticationCookie.php:846

/home/travis/build/phpmyadmin/phpmyadmin/test/classes/Plugins/Auth/AuthenticationCookieTest.php:1071

This is blocker for 4.7.6 release.

@nijel nijel added the bug label Nov 29, 2017

@nijel nijel added this to the 4.7.6 milestone Nov 29, 2017

@nijel nijel self-assigned this Nov 29, 2017

@nijel

This comment has been minimized.

Show comment
Hide comment
@nijel
Member

nijel commented Nov 29, 2017

@nijel

This comment has been minimized.

Show comment
Hide comment
@nijel

nijel Nov 29, 2017

Member

Reported upstream: phpseclib/phpseclib#1218

Member

nijel commented Nov 29, 2017

Reported upstream: phpseclib/phpseclib#1218

@nijel nijel closed this in a450935 Nov 29, 2017

@nijel

This comment has been minimized.

Show comment
Hide comment
@nijel

nijel Nov 29, 2017

Member

There is another change - phpseclib 2.0.8 started to require PHP >= 5.6.1, so we now have two options:

  • stick with 2.0.7 (which will apparently not get security fixes)
  • upgrade to 2.0.8 and drop PHP 5.5 support, see #13228
Member

nijel commented Nov 29, 2017

There is another change - phpseclib 2.0.8 started to require PHP >= 5.6.1, so we now have two options:

  • stick with 2.0.7 (which will apparently not get security fixes)
  • upgrade to 2.0.8 and drop PHP 5.5 support, see #13228
@OlafvdSpek

This comment has been minimized.

Show comment
Hide comment
@OlafvdSpek

OlafvdSpek commented Nov 29, 2017

nijel added a commit that referenced this issue Nov 29, 2017

Revert "Compatibility with phpseclib 2.0.8"
This reverts commit a450935.

We really need to stick on 2.0.7 for 4.7 branch to keep PHP 5.5 support.

Issue #13846

nijel added a commit that referenced this issue Nov 29, 2017

Stick with phpseclib < 2.0.8 in 4.7 branch
We can not remove PHP 5.5 support from maintenance branch, so there is
no other way than sticking with older phpseclib.

See phpseclib/phpseclib#1218

Issue #13846

Signed-off-by: Michal Čihař <michal@cihar.com>
@nijel

This comment has been minimized.

Show comment
Hide comment
@nijel

nijel Nov 29, 2017

Member

The readme there is not in sync with composer.json, see phpseclib/phpseclib#1219

Member

nijel commented Nov 29, 2017

The readme there is not in sync with composer.json, see phpseclib/phpseclib#1219

@nijel

This comment has been minimized.

Show comment
Hide comment
@nijel

nijel Nov 29, 2017

Member

As dropping PHP 5.5 support is something we certainly can not do in the 4.7 releases, I've reverted the API fixes and pinned phpseclib < 2.0.8.

Let's see if the phpseclib changes were intentional or it's mistake of releasing 2.0.8 from master branch instead of 2.0 maintenance branch and we should address it then.

Member

nijel commented Nov 29, 2017

As dropping PHP 5.5 support is something we certainly can not do in the 4.7 releases, I've reverted the API fixes and pinned phpseclib < 2.0.8.

Let's see if the phpseclib changes were intentional or it's mistake of releasing 2.0.8 from master branch instead of 2.0 maintenance branch and we should address it then.

@nijel nijel closed this in 7bff126 Nov 29, 2017

@nijel

This comment has been minimized.

Show comment
Hide comment
@nijel

nijel Nov 30, 2017

Member

@Gauss23 STABLE branch contains released versions, it will be there once 4.7.6 is out (what should be quite soon).

Member

nijel commented Nov 30, 2017

@Gauss23 STABLE branch contains released versions, it will be there once 4.7.6 is out (what should be quite soon).

@Gauss23

This comment has been minimized.

Show comment
Hide comment
@Gauss23

Gauss23 Nov 30, 2017

Sorry my fault, I saw phpseclib has released version 2.0.9 and now stable is running fine. Before they released 2.0.9 the stable branch was broken for new installations as 2.0.8 was installed.

Gauss23 commented Nov 30, 2017

Sorry my fault, I saw phpseclib has released version 2.0.9 and now stable is running fine. Before they released 2.0.9 the stable branch was broken for new installations as 2.0.8 was installed.

@OlafvdSpek

This comment has been minimized.

Show comment
Hide comment
@OlafvdSpek

OlafvdSpek Nov 30, 2017

Only when installed from git right?

OlafvdSpek commented Nov 30, 2017

Only when installed from git right?

@Gauss23

This comment has been minimized.

Show comment
Hide comment
@Gauss23

Gauss23 Nov 30, 2017

Yes, pulled the stable branch and ran "composer update". Now everything is fine again

Gauss23 commented Nov 30, 2017

Yes, pulled the stable branch and ran "composer update". Now everything is fine again

ibennetch added a commit that referenced this issue Dec 1, 2017

Compatibility with phpseclib 2.0.8
Apparently upgrade from 2.0.7 to 2.0.8 changed API in several ways.

See phpseclib/phpseclib#1218

Fixes #13846

Signed-off-by: Michal Čihař <michal@cihar.com>

ibennetch added a commit that referenced this issue Dec 1, 2017

Revert "Compatibility with phpseclib 2.0.8"
This reverts commit a450935.

We really need to stick on 2.0.7 for 4.7 branch to keep PHP 5.5 support.

Issue #13846

ibennetch added a commit that referenced this issue Dec 1, 2017

Stick with phpseclib < 2.0.8 in 4.7 branch
We can not remove PHP 5.5 support from maintenance branch, so there is
no other way than sticking with older phpseclib.

See phpseclib/phpseclib#1218

Issue #13846

Signed-off-by: Michal Čihař <michal@cihar.com>

ibennetch added a commit that referenced this issue Dec 1, 2017

Revert limitation on phpseclib dependency
Only 2.0.8 is broken, so conflict with that.

Fixes #13846

Signed-off-by: Michal Čihař <michal@cihar.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment