Roundcube Community Forum

 

Error when running composer to update roundcube

Started by ychaouche, January 21, 2025, 10:18:52 AM

Previous topic - Next topic

ychaouche

Upgrading roundcube from 1.2.4 to 1.6.6,
I am facing errors from composer.
After several deprecation warnings,
the main error seems to be :


  [ErrorException]
  Trying to access array offset on value of type null

Which is too generic to be of any help.
Full trace in this gist (to avoid the 20 000 characters restriction)

I am using php 8.2.24,
and here is composer.json

{
    "name": "roundcube/roundcubemail",
    "description": "The Roundcube Webmail suite",
    "license": "GPL-3.0+",
    "repositories": [
        {
            "type": "pear",
            "url": "https://pear.php.net/"
        },
        {
            "type": "composer",
            "url": "https://plugins.roundcube.net/"
        },
        {
            "type": "vcs",
            "url": "https://github.com/roundcube/Net_Sieve.git"
        },
        {
            "type": "vcs",
            "url": "https://git.kolab.org/diffusion/PNL/php-net_ldap.git"
        }
    ],
    "require": {
        "php": ">=7.3.0",
        "pear/pear-core-minimal": "~1.10.1",
        "roundcube/plugin-installer": "~0.3.1",
        "sblaisot/automatic_addressbook": "*",
        "teon/smart_autocomplete": "*",
        "flanpy/recent_contacts": "*",
        "cor/message_highlight": "*",
        "roundcube/chbox": "*",
        "teon/keyboard_shortcuts_ng": "*",
        "cor/compose_addressbook": "*",
        "melanie2/owncloud": "*",
        "johndoh/markasjunk2": "*",
        "johndoh/globaladdressbook": "*",
        "dsoares/geolocation": "*",
        "pear/auth_sasl": "~1.1.0",
        "pear/mail_mime": "~1.10.0",
        "pear/net_smtp": "~1.10.0",
        "pear/crypt_gpg": "~1.6.3",
        "pear/net_sieve": "~1.4.5",
        "roundcube/rtf-html-php": "~2.1",
        "masterminds/html5": "~2.7.0",
        "bacon/bacon-qr-code": "^2.0.0",
        "guzzlehttp/guzzle": "^7.3.0"
    },
    "require-dev": {
        "phpunit/phpunit": "*"
    },
    "suggest": {
        "pear-pear.php.net/net_ldap2": "~2.2.0 required for connecting to LDAP address books",
        "kolab/Net_LDAP3": "dev-master required for connecting to LDAP address books"
    },
    "minimum-stability": "dev",
    "config": {
        "preferred-install": "dist"
    }




alec

The composer.phar file is old. Get more recent composer version.

ychaouche

The newer version of composer says:
The PEAR repository has been removed from Composer 2.x
yet roundcube 1.6.6 composer.json file has PEAR repository entries.



ychaouche

Used the latest version of the 1.x branch which is 1.10.27,
and now I have the following error regarding crypt:
    [ErrorException]
    file_put_contents(/var/www/roundcubemail-1.2.4/vendor/bin/crypt-gpg-pinentry): Failed to open stream: No such file or directory

Full output:

  root@messagerie-recup[10.10.10.20] /var/www/roundcubemail-1.2.4 # COMPOSER_CACHE_DIR=/var/cache/composer/ runas www-data php composer.phar -v update --no-dev
  Loading composer repositories with package information
  Initializing PEAR repository https://pear.php.net
  Could not load Auth 1.3.0r5: Invalid version string "1.3.0r5"
  Could not load Auth 1.3.0r4: Invalid version string "1.3.0r4"
  Could not load Auth 1.3.0r3: Invalid version string "1.3.0r3"
  Could not load Auth 1.3.0r2: Invalid version string "1.3.0r2"
  Could not load Auth 1.3.0r1: Invalid version string "1.3.0r1"
  Could not load Auth_PrefManager2 2.0.0dev1: Invalid version string "2.0.0dev1"
  Could not load Contact_AddressBook 0.1.0dev1: Invalid version string "0.1.0dev1"
  Could not load Gtk_ScrollingLabel 0.1.0dev1: Invalid version string "0.1.0dev1"
  Could not load Image_Graph 0.3.0dev4: Invalid version string "0.3.0dev4"
  Could not load Image_Graph 0.3.0dev3: Invalid version string "0.3.0dev3"
  Could not load Image_Graph 0.3.0dev2: Invalid version string "0.3.0dev2"
  Could not load Image_Graph 0.3.0dev1: Invalid version string "0.3.0dev1"
  Could not load Net_MPD 0.1.0dev1: Invalid version string "0.1.0dev1"
  Could not load PEAR 1.10.0dev3: Invalid version string "1.10.0dev3"
  Could not load PEAR 1.10.0dev2: Invalid version string "1.10.0dev2"
  Could not load PEAR 1.10.0dev1: Invalid version string "1.10.0dev1"
  Could not load PEAR 1.9.5dev1: Invalid version string "1.9.5dev1"
  Could not load PEAR_Manpages 1.10.0dev2: Invalid version string "1.10.0dev2"
  Could not load Structures_DataGrid 0.9.1dev1: Invalid version string "0.9.1dev1"
  Could not load Structures_DataGrid_DataSource_Array 0.2.0dev1: Invalid version string "0.2.0dev1"
  Could not load Structures_DataGrid_DataSource_DataObject 0.2.2dev1: Invalid version string "0.2.2dev1"
  Could not load Structures_DataGrid_DataSource_XML 0.2.1dev1: Invalid version string "0.2.1dev1"
  Could not load Structures_DataGrid_Renderer_CSV 0.1.5dev1: Invalid version string "0.1.5dev1"
  Could not load Structures_DataGrid_Renderer_XML 0.1.4dev1: Invalid version string "0.1.4dev1"
  Could not load Structures_Form 0.8.0devel: Invalid version string "0.8.0devel"
  Could not load Structures_Form_Gtk2 0.8.0devel: Invalid version string "0.8.0devel"
  Could not load Structures_DataGrid_DataSource_PDO 0.1.1dev1: Invalid version string "0.1.1dev1"
  Could not load Text_PathNavigator 0.1.0dev2: Invalid version string "0.1.0dev2"
  Could not load Text_PathNavigator 0.1.0dev1: Invalid version string "0.1.0dev1"
  Could not load Services_Pingback 0.2.0dev2: Invalid version string "0.2.0dev2"
  Warning from https://repo.packagist.org: Support for Composer 1 will be shutdown on August 1st 2025. You should upgrade to Composer 2. See https://blog.packagist.com/shutting-down-packagist-org-support-for-composer-1-x/
  Updating dependencies
  Dependency resolution completed in 0.440 seconds
  Analyzed 18667 packages to resolve dependencies
  Analyzed 481786 rules to resolve dependencies
  Dependency resolution completed in 0.000 seconds
  Package operations: 18 installs, 11 updates, 29 removals
  Installs: roundcube/rtf-html-php:v2.2, pear/net_sieve:1.4.7, pear/mail_mime:1.10.12, pear/console_commandline:dev-master 611c5bf, pear/crypt_gpg:v1.6.9, pear/auth_sasl:v1.1.0, guzzlehttp/promises:2.0.x-dev f9c4362, ralouphie/getallheaders:3.0.3, psr/http-message:dev-master 402d35b, psr/http-factory:1.1.0, guzzlehttp/psr7:2.7.x-dev a70f5c9, symfony/deprecation-contracts:dev-main 63afe74, psr/http-client:dev-master bb5906e, guzzlehttp/guzzle:7.9.x-dev d281ed3, dasprid/enum:1.0.6, bacon/bacon-qr-code:2.0.8, pear/net_smtp:1.10.1, masterminds/html5:dev-master ab71073
  Updates: roundcube/plugin-installer:0.3.6, pear/console_getopt:v1.4.3, pear/pear-core-minimal:v1.10.16, pear/net_socket:v1.2.2, pear/pear_exception:dev-master 645d1af, cor/message_highlight:dev-master ec9fe2c, melanie2/owncloud:dev-master 5aaf32b, johndoh/markasjunk2:dev-master dc5cac7, johndoh/globaladdressbook:dev-master 70837dd, dsoares/geolocation:dev-master 82a20a5, roundcube/chbox:dev-master 27a5e89
  Removals: phpunit/phpunit, sebastian/global-state, sebastian/object-enumerator, myclabs/deep-copy, phpunit/php-code-coverage, phpunit/php-text-template, sebastian/code-unit-reverse-lookup, sebastian/version, sebastian/comparator, sebastian/exporter, sebastian/recursion-context, phpdocumentor/reflection-common, phpunit/php-token-stream, symfony/yaml, pear-pear.php.net/Mail_Mime, phpspec/prophecy, webmozart/assert, sebastian/resource-operations, roundcube/net_sieve, pear-pear.php.net/Crypt_GPG, pear-pear.php.net/Console_CommandLine, pear-pear.php.net/Net_SMTP, pear-pear.php.net/Net_Socket, pear-pear.php.net/Net_IDNA2, pear-pear.php.net/Auth_SASL, composer/semver, phpdocumentor/type-resolver, phpdocumentor/reflection-docblock, phpunit/phpunit-mock-objects
    - Removing phpunit/phpunit (5.7.x-dev)
    - Removing sebastian/global-state (1.1.x-dev)
    - Removing sebastian/object-enumerator (2.0.x-dev)
    - Removing myclabs/deep-copy (1.7.0)
    - Removing phpunit/php-code-coverage (4.0.x-dev)
    - Removing phpunit/php-text-template (1.2.1)
    - Removing sebastian/code-unit-reverse-lookup (dev-master)
    - Removing sebastian/version (2.0.1)
    - Removing sebastian/comparator (1.2.x-dev)
    - Removing sebastian/exporter (2.0.x-dev)
    - Removing sebastian/recursion-context (2.0.x-dev)
    - Removing phpdocumentor/reflection-common (1.0.1)
    - Removing phpunit/php-token-stream (1.4.x-dev)
    - Removing symfony/yaml (3.4.x-dev)
    - Removing pear-pear.php.net/mail_mime (1.10.2)
    - Removing phpspec/prophecy (dev-master)
    - Removing webmozart/assert (dev-master)
    - Removing sebastian/resource-operations (dev-master)
    - Removing roundcube/net_sieve (1.5.4)
    - Removing pear-pear.php.net/crypt_gpg (1.4.3)
    - Removing pear-pear.php.net/console_commandline (1.2.2)
    - Removing pear-pear.php.net/net_smtp (1.7.3)
    - Removing pear-pear.php.net/net_socket (1.0.14)
    - Removing pear-pear.php.net/net_idna2 (0.1.1)
    - Removing pear-pear.php.net/auth_sasl (1.0.6)
    - Removing composer/semver (dev-master)
    - Removing phpdocumentor/type-resolver (0.4.0)
    - Removing phpdocumentor/reflection-docblock (3.3.2)
    - Removing phpunit/phpunit-mock-objects (3.4.x-dev)
    - Removing roundcube/plugin-installer (0.1.9)
    - Installing roundcube/plugin-installer (0.3.6): Downloading (100%)         
   Extracting archive  - Installing roundcube/rtf-html-php (v2.2): Downloading (100%)
   Extracting archive  - Updating pear/console_getopt (v1.4.1 => v1.4.3): Downloading (100%)
    - Updating pear/pear-core-minimal (v1.10.3 => v1.10.16): Downloading (100%)
    - Downgrading pear/net_socket (dev-master 7482c62 => v1.2.2):  Checking out bbe6a12bb4f7059dba161f6ddd43f369c0ec8d09
      Rolling back changes:
7482c62 - Chuck Burgess: prep for v1.2.2
85388f1 - Chuck Burgess: Merge pull request #17 from ashnazg/bug21178
1932b06 - Chuck Burgess: use the existence of $old_track_errors as the old/new handling flag
1b380c6 - Chuck Burgess: recognize if php_errormsg isn't set
ef2ea0c - Chuck Burgess: allow for both old and new errormsg handling
08f7f7b - Chuck Burgess: Bug #21178: $php_errormsg is deprecated in PHP 7.2
f31d75a - Chuck Burgess: Merge pull request #15 from ashnazg/testing
024cdd3 - Chuck Burgess: fix BSD-2 license text, and add a LICENSE file
9819edd - Chuck Burgess: Merge pull request #14 from ashnazg/testing
ffb3414 - Chuck Burgess: update README
9e950e6 - Chuck Burgess: Merge pull request #13 from ashnazg/testing
8d7e116 - Chuck Burgess: prep v1.2.0
599d6df - Chuck Burgess: update copyright year
2e201df - Chuck Burgess: Merge pull request #12 from roelvanmeer/pear-bug-17526
34b215d - Roel van Meer: Change license to BSD-2-Clause [pear bug 17526]
960599d - Chuck Burgess: Merge pull request #11 from ashnazg/testing
e83e889 - Chuck Burgess: prep for v1.1.0 release
722b8b8 - Chuck Burgess: Merge pull request #10 from ashnazg/testing
c2e12be - Chuck Burgess: Bug #21031: Warning on connection error(stream_socket_client)
ff3f66e - Chuck Burgess: Merge pull request #7 from jpswade/bug/17484
d763c16 - Chuck Burgess: Merge pull request #8 from mailwatch/master
5add773 - Chuck Burgess: Merge pull request #9 from ashnazg/testing
bcafbeb - Chuck Burgess: update baseline travis builds
2dbc008 - Manuel Dalla Lana: Make PHP5 compatible
b38903e - James Wade: Fix for "Maximum execution time of 30 seconds exceeded" error
    - Installing pear/net_sieve (1.4.7): Downloading (100%)
   Extracting archive  - Installing pear/mail_mime (1.10.12): Downloading (100%)
   Extracting archive  - Installing pear/console_commandline (dev-master 611c5bf): Downloading (100%)
   Extracting archive  - Installing pear/crypt_gpg (v1.6.9): Downloading (100%)
   Extracting archive

    [ErrorException]
    file_put_contents(/var/www/roundcubemail-1.2.4/vendor/bin/crypt-gpg-pinentry): Failed to open stream: No such file or directory


  Exception trace:
   () at phar:///var/www/roundcubemail-1.2.4/composer.phar/src/Composer/Installer/BinaryInstaller.php:167
   Composer\Util\ErrorHandler::handle() at n/a:n/a
   file_put_contents() at phar:///var/www/roundcubemail-1.2.4/composer.phar/src/Composer/Installer/BinaryInstaller.php:167
   Composer\Installer\BinaryInstaller->installUnixyProxyBinaries() at phar:///var/www/roundcubemail-1.2.4/composer.phar/src/Composer/Installer/BinaryInstaller.php:161
   Composer\Installer\BinaryInstaller->installSymlinkBinaries() at phar:///var/www/roundcubemail-1.2.4/composer.phar/src/Composer/Installer/BinaryInstaller.php:88
   Composer\Installer\BinaryInstaller->installBinaries() at phar:///var/www/roundcubemail-1.2.4/composer.phar/src/Composer/Installer/LibraryInstaller.php:102
   Composer\Installer\LibraryInstaller->install() at phar:///var/www/roundcubemail-1.2.4/composer.phar/src/Composer/Installer/InstallationManager.php:173
   Composer\Installer\InstallationManager->install() at phar:///var/www/roundcubemail-1.2.4/composer.phar/src/Composer/Installer/InstallationManager.php:160
   Composer\Installer\InstallationManager->execute() at phar:///var/www/roundcubemail-1.2.4/composer.phar/src/Composer/Installer.php:611
   Composer\Installer->doInstall() at phar:///var/www/roundcubemail-1.2.4/composer.phar/src/Composer/Installer.php:232
   Composer\Installer->run() at phar:///var/www/roundcubemail-1.2.4/composer.phar/src/Composer/Command/UpdateCommand.php:163
   Composer\Command\UpdateCommand->execute() at phar:///var/www/roundcubemail-1.2.4/composer.phar/vendor/symfony/console/Command/Command.php:245
   Symfony\Component\Console\Command\Command->run() at phar:///var/www/roundcubemail-1.2.4/composer.phar/vendor/symfony/console/Application.php:835
   Symfony\Component\Console\Application->doRunCommand() at phar:///var/www/roundcubemail-1.2.4/composer.phar/vendor/symfony/console/Application.php:185
   Symfony\Component\Console\Application->doRun() at phar:///var/www/roundcubemail-1.2.4/composer.phar/src/Composer/Console/Application.php:283
   Composer\Console\Application->doRun() at phar:///var/www/roundcubemail-1.2.4/composer.phar/vendor/symfony/console/Application.php:117
   Symfony\Component\Console\Application->run() at phar:///var/www/roundcubemail-1.2.4/composer.phar/src/Composer/Console/Application.php:113
   Composer\Console\Application->run() at phar:///var/www/roundcubemail-1.2.4/composer.phar/bin/composer:69
   require() at /var/www/roundcubemail-1.2.4/composer.phar:24

  update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [--no-suggest] [--with-dependencies] [--with-all-dependencies] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [-i|--interactive] [--root-reqs] [--] [<packages>]...

  root@messagerie-recup[10.10.10.20] /var/www/roundcubemail-1.2.4 #


JohnDoh

I think may be there are 2 problems. First composer v1 is reaching the end of life see these announcements from Packagist Feb 2021 and Sep 2024. Then I think the second problem is your composer.json file is out of date and you have repos listed that do not exist any more. If you look at the composer.json file shipped with Roundcube 1.6.x the only repository it lists is the defunct Roundcube Plugins repo. The almost all the others were removed in version 1.3 of Roundcube.
Roundcube Plugins: Contextmenu, SpamAssassin Prefs, and more...