View Issue Details

This bug affects 1 person(s).
 10
IDProjectCategoryView StatusLast Update
19687Bug reportsOtherpublic2024-10-15 09:56
Reportertibor.pacalat Assigned Totibor.pacalat  
PrioritynoneSeverityminor 
Status resolvedResolutionfixed 
Product Version6.6.x 
Summary19687: php8.3 compatibility - Zend (xmlrpc related)
Description

Main ticket https://bugs.limesurvey.org/view.php?id=19632

Zend
FILE: /var/www/html/limesurvey/application/helpers/Zend/XmlRpc/Server.php
FILE: /var/www/html/limesurvey/application/helpers/Zend/Validate/File/Count.php
FILE: /var/www/html/limesurvey/application/helpers/Zend/Validate/File/ImageSize.php
FILE: /var/www/html/limesurvey/application/helpers/Zend/Validate/File/Size.php
FILE: /var/www/html/limesurvey/application/helpers/Zend/Validate/File/FilesSize.php
FILE: /var/www/html/limesurvey/application/helpers/Zend/Validate/EmailAddress.php
FILE: /var/www/html/limesurvey/application/helpers/Zend/Validate/CreditCard.php
FILE: /var/www/html/limesurvey/application/helpers/Zend/Validate/StringLength.php
FILE: /var/www/html/limesurvey/application/helpers/Zend/Validate/Ip.php
FILE: /var/www/html/limesurvey/application/helpers/Zend/Validate/Hostname.php
FILE: /var/www/html/limesurvey/application/helpers/Zend/Validate/Date.php
FILE: /var/www/html/limesurvey/application/helpers/Zend/Validate/Db/Abstract.php
FILE: /var/www/html/limesurvey/application/helpers/Zend/Validate/InArray.php
FILE: /var/www/html/limesurvey/application/helpers/Zend/Validate/NotEmpty.php
FILE: /var/www/html/limesurvey/application/helpers/Zend/Validate/Between.php

Steps To Reproduce

Steps to reproduce

(Replace this text with detailed step-by-step instructions on how to reproduce the issue)

Expected result

(Write here what you expected to happen)

Actual result

(Write here what happened instead)

TagsNo tags attached.
Bug heat10
Complete LimeSurvey version number (& build)6.6.1+240806
I will donate to the project if issue is resolvedNo
Browser
Database type & version.
Server OS (if known)
Webserver software & version (if known)
PHP Version.

Relationships

related to 19801 new php8.3 compatibility - Zend (xmlrpc related) - using the "ZF1 Future" as vendor 
child of 19632 resolvedgabrieljenik Make Limesurvey compatible with php8.3 

Users monitoring this issue

There are no users monitoring this issue.

Activities

DenisChenu

DenisChenu

2024-09-18 18:42

developer   ~81050

controllers/admin/RemoteControl.php:     * @var Zend_XmlRpc_Server
controllers/admin/RemoteControl.php:                require_once('Zend/XmlRpc/Server.php');
controllers/admin/RemoteControl.php:                require_once('Zend/XmlRpc/Server/Exception.php');
controllers/admin/RemoteControl.php:                require_once('Zend/XmlRpc/Value/Exception.php');
controllers/admin/RemoteControl.php:                $this->xmlrpc = new Zend_XmlRpc_Server();
controllers/admin/RemoteControl.php:                Yii::import('application.libraries.LSZend_XmlRpc_Response_Http');
controllers/admin/RemoteControl.php:                $this->xmlrpc->setResponseClass('LSZend_XmlRpc_Response_Http');
controllers/admin/RemoteControl.php:                if ($result instanceof LSZend_XmlRpc_Response_Http) {
controllers/admin/RemoteControl.php:                    // a Zend_XmlRpc_Server_Fault with exception message from XMLRPC
controllers/admin/RemoteControl.php:                require_once('Zend/XmlRpc/Client.php');
controllers/admin/RemoteControl.php:                $client = new Zend_XmlRpc_Client($serverUrl);
libraries/LSZend_XmlRpc_Response_Http.php:class LSZend_XmlRpc_Response_Http extends Zend_XmlRpc_Response_Http
DenisChenu

DenisChenu

2024-09-19 09:52

developer   ~81051

For dev : https://github.com/gggeek/phpxmlrpc ?

For master : delete whole Zen except RPC (and related) ? Or move to https://github.com/laminas/laminas-xmlrpc ?

DenisChenu

DenisChenu

2024-09-20 15:36

developer   ~81070

Wait for https://github.com/LimeSurvey/LimeSurvey/pull/3962 to touch vendor

p_teichmann

p_teichmann

2024-09-26 16:56

administrator   ~81117

If we just removed the xmlrpc then users code based on it would be broken, so i would definitely prefer to replace it with a new xmlrpc.
I am not sure how much needs to be updated for it to work, but the previous one seemed lightweight in the usage.

DenisChenu

DenisChenu

2024-09-26 17:26

developer   ~81120

If we just removed the xmlrpc then users code based on it would be broken, so i would definitely prefer to replace it with a new xmlrpc.

Yes i know

I am not sure how much needs to be updated for it to work, but the previous one seemed lightweight in the usage.

Issue with https://github.com/zendframework/zend-xmlrpc : This repository has been archived by the owner on Apr 28, 2020. It is now read-only.
Issue with https://github.com/laminas/laminas-xmlrpc : no php7.4 support : "php": "~8.1.0 || ~8.2.0 || ~8.3.0",

Then : try https://github.com/gggeek/phpxmlrpc/blob/master/composer.json in vendor "php": "^5.4.0 || ^7.0 || ^8.0", (reason why i wait for vendor update currently)

tibor.pacalat

tibor.pacalat

2024-10-02 16:27

administrator   ~81142

https://bugs.limesurvey.org/view.php?id=19685 was merged into master, any progress on this ticket?

DenisChenu

DenisChenu

2024-10-03 17:14

developer   ~81156

Can you find another dev for this ?
I really think i don't find a good way (or wait a lot lot lot of time …)

Thank you

gabrieljenik

gabrieljenik

2024-10-07 18:01

manager   ~81177

Last edited: 2024-10-07 18:02

https://github.com/LimeSurvey/LimeSurvey/pull/3985

I encountered compatibility issues with Zend Framework 1 (ZF1) when using newer PHP versions.
After some investigation, I found the following solutions:

Original Source (zendframework/zf1):
The original ZF1 project reached its end-of-life in 2016. The repository contains a conversion of the ZF1 subversion repo to Git, starting from version 15234 onward. However, Lime (another context) seems to use only a subset of the library/Zend files from this repository.

ZF1 Future (Shardj’s Fork):
I discovered a fork called “ZF1 Future” on GitHub, maintained by Shardj. This fork aims to create a PHP 8.1-compatible version of ZF1.
While it almost worked for me, I still had to apply a manual fix.
If you’re interested, consider contributing by submitting a pull request (PR) to the “ZF1 Future” repository. The last update was about two weeks ago.

Testing and Compatibility:
I tested the solution with the RemoteControl controller. Interestingly, it failed in the same place as it did with PHP 7.4.
So no new issues introduced here.

DenisChenu

DenisChenu

2024-10-07 18:09

developer   ~81178

If you’re interested, consider contributing by submitting a pull request (PR) to the “ZF1 Future” repository. The last update was about two weeks ago.

It can be great !

Then we can move to vendor (it's my solution with gggeek/phpxmlrpc : but a lot of work for adaptation)

Else : add a test is easy : https://github.com/LimeSurvey/LimeSurvey/pull/3975
(i can PR your Pull Request)

DenisChenu

DenisChenu

2024-10-09 15:25

developer   ~81198

  1. Add a test : it's needed
  2. Way to move to vendor ? Maybe after a PR to ZF1 Future ?
gabrieljenik

gabrieljenik

2024-10-09 19:47

manager   ~81210

We will workaround the xmlrpc issue for now. Still, in the future, I suggest to keep only json. Obviously, not many people is using XML. If not someerror would have been triggered in the past by users.

DenisChenu

DenisChenu

2024-10-10 15:44

developer   ~81218

Last edited: 2024-10-10 15:45

Still, in the future, I suggest to keep only json.

Maybe add an event in RemoteControl just in case ;) (don't do core plugin)

gabrieljenik

gabrieljenik

2024-10-10 18:21

manager   ~81224

Maybe add an event in RemoteControl just in case ;) (don't do core plugin)

What do you mean? Not sure i follow

gabrieljenik

gabrieljenik

2024-10-10 18:22

manager   ~81225

@tibor.pacalat Is it ok to create a new ticket for using the "ZF1 Future" as vendor, instead of having a copy on our own repo? That should be done on DEV or Master?

DenisChenu

DenisChenu

2024-10-10 18:29

developer   ~81228

What do you mean? Not sure i follow

If we keep only json for RPC, it can be cool to add an event (on remote control call) to allow replace JSON by another system (XMLRpc for example)

a new ticket for using the "ZF1 Future" as vendor, instead of having a copy on our own repo

You already fix the repo :+1: great great !

tibor.pacalat

tibor.pacalat

2024-10-11 14:12

administrator   ~81230

@tibor.pacalat Is it ok to create a new ticket for using the "ZF1 Future" as vendor, instead of having a copy on our own repo? That should be done on DEV or Master?

@gabrieljenik sure, please create a new ticket for this and it should go to master.

guest

guest

2024-10-15 09:55

viewer   ~81241

Fix committed to master branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&id=36591

tibor.pacalat

tibor.pacalat

2024-10-15 09:56

administrator   ~81242

Tested and merged. Thank you @DenisChenu and @gabrieljenik!

Related Changesets

LimeSurvey: master bc9a3faf

2024-10-15 09:55:06

Gabriel Jenik


Committer: GitHub Details Diff
Fixed issue 19687: php8.3 compatibility - Zend (xmlrpc related) (03985)

Co-authored-by: Denis Chenu <contact@sondages.pro>
Co-authored-by: lapiudevgit <devgit@lapiu.biz>
Affected Issues
19687
mod - application/controllers/admin/RemoteControl.php Diff File
mod - application/helpers/Zend/Exception.php Diff File
mod - application/helpers/Zend/Http/Client.php Diff File
mod - application/helpers/Zend/Http/Client/Adapter/Curl.php Diff File
mod - application/helpers/Zend/Http/Client/Adapter/Exception.php Diff File
mod - application/helpers/Zend/Http/Client/Adapter/Interface.php Diff File
mod - application/helpers/Zend/Http/Client/Adapter/Proxy.php Diff File
mod - application/helpers/Zend/Http/Client/Adapter/Socket.php Diff File
mod - application/helpers/Zend/Http/Client/Adapter/Test.php Diff File
mod - application/helpers/Zend/Http/Client/Exception.php Diff File
mod - application/helpers/Zend/Http/Cookie.php Diff File
mod - application/helpers/Zend/Http/CookieJar.php Diff File
mod - application/helpers/Zend/Http/Exception.php Diff File
mod - application/helpers/Zend/Http/Header/Exception/InvalidArgumentException.php Diff File
mod - application/helpers/Zend/Http/Header/Exception/RuntimeException.php Diff File
mod - application/helpers/Zend/Http/Header/HeaderValue.php Diff File
mod - application/helpers/Zend/Http/Header/SetCookie.php Diff File
mod - application/helpers/Zend/Http/Response.php Diff File
mod - application/helpers/Zend/Http/Response/Stream.php Diff File
mod - application/helpers/Zend/Http/UserAgent.php Diff File
mod - application/helpers/Zend/Http/UserAgent/AbstractDevice.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Bot.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Checker.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Console.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Desktop.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Device.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Email.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Exception.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Features/Adapter.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Features/Adapter/Browscap.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Features/Adapter/DeviceAtlas.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Features/Adapter/TeraWurfl.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Features/Exception.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Feed.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Mobile.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Offline.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Probe.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Spam.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Storage.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Storage/Exception.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Storage/NonPersistent.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Storage/Session.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Text.php Diff File
mod - application/helpers/Zend/Http/UserAgent/Validator.php Diff File
mod - application/helpers/Zend/Loader.php Diff File
add - application/helpers/Zend/README.md Diff File
mod - application/helpers/Zend/Registry.php Diff File
mod - application/helpers/Zend/Server/Abstract.php Diff File
mod - application/helpers/Zend/Server/Cache.php Diff File
mod - application/helpers/Zend/Server/Definition.php Diff File
mod - application/helpers/Zend/Server/Exception.php Diff File
mod - application/helpers/Zend/Server/Interface.php Diff File
mod - application/helpers/Zend/Server/Method/Callback.php Diff File
mod - application/helpers/Zend/Server/Method/Definition.php Diff File
mod - application/helpers/Zend/Server/Method/Parameter.php Diff File
mod - application/helpers/Zend/Server/Method/Prototype.php Diff File
mod - application/helpers/Zend/Server/Reflection.php Diff File
mod - application/helpers/Zend/Server/Reflection/Class.php Diff File
mod - application/helpers/Zend/Server/Reflection/Exception.php Diff File
mod - application/helpers/Zend/Server/Reflection/Function.php Diff File
mod - application/helpers/Zend/Server/Reflection/Function/Abstract.php Diff File
mod - application/helpers/Zend/Server/Reflection/Method.php Diff File
mod - application/helpers/Zend/Server/Reflection/Node.php Diff File
mod - application/helpers/Zend/Server/Reflection/Parameter.php Diff File
mod - application/helpers/Zend/Server/Reflection/Prototype.php Diff File
mod - application/helpers/Zend/Server/Reflection/ReturnValue.php Diff File
mod - application/helpers/Zend/Stdlib/CallbackHandler.php Diff File
mod - application/helpers/Zend/Stdlib/Exception.php Diff File
mod - application/helpers/Zend/Stdlib/Exception/InvalidCallbackException.php Diff File
mod - application/helpers/Zend/Stdlib/PriorityQueue.php Diff File
mod - application/helpers/Zend/Stdlib/SplPriorityQueue.php Diff File
mod - application/helpers/Zend/Uri.php Diff File
mod - application/helpers/Zend/Uri/Exception.php Diff File
mod - application/helpers/Zend/Uri/Http.php Diff File
add - application/helpers/Zend/Xml/Exception.php Diff File
add - application/helpers/Zend/Xml/Security.php Diff File
mod - application/helpers/Zend/XmlRpc/Client.php Diff File
mod - application/helpers/Zend/XmlRpc/Client/Exception.php Diff File
mod - application/helpers/Zend/XmlRpc/Client/FaultException.php Diff File
mod - application/helpers/Zend/XmlRpc/Client/HttpException.php Diff File
mod - application/helpers/Zend/XmlRpc/Client/IntrospectException.php Diff File
mod - application/helpers/Zend/XmlRpc/Client/ServerIntrospection.php Diff File
mod - application/helpers/Zend/XmlRpc/Client/ServerProxy.php Diff File
mod - application/helpers/Zend/XmlRpc/Exception.php Diff File
mod - application/helpers/Zend/XmlRpc/Fault.php Diff File
mod - application/helpers/Zend/XmlRpc/Generator/DomDocument.php Diff File
mod - application/helpers/Zend/XmlRpc/Generator/GeneratorAbstract.php Diff File
mod - application/helpers/Zend/XmlRpc/Generator/XmlWriter.php Diff File
mod - application/helpers/Zend/XmlRpc/Request.php Diff File
mod - application/helpers/Zend/XmlRpc/Request/Http.php Diff File
mod - application/helpers/Zend/XmlRpc/Request/Stdin.php Diff File
mod - application/helpers/Zend/XmlRpc/Response.php Diff File
mod - application/helpers/Zend/XmlRpc/Response/Http.php Diff File
mod - application/helpers/Zend/XmlRpc/Server.php Diff File
mod - application/helpers/Zend/XmlRpc/Server/Cache.php Diff File
mod - application/helpers/Zend/XmlRpc/Server/Exception.php Diff File
mod - application/helpers/Zend/XmlRpc/Server/Fault.php Diff File
mod - application/helpers/Zend/XmlRpc/Server/System.php Diff File
mod - application/helpers/Zend/XmlRpc/Value.php Diff File
mod - application/helpers/Zend/XmlRpc/Value/Array.php Diff File
mod - application/helpers/Zend/XmlRpc/Value/Base64.php Diff File
mod - application/helpers/Zend/XmlRpc/Value/BigInteger.php Diff File
mod - application/helpers/Zend/XmlRpc/Value/Boolean.php Diff File
mod - application/helpers/Zend/XmlRpc/Value/Collection.php Diff File
mod - application/helpers/Zend/XmlRpc/Value/DateTime.php Diff File
mod - application/helpers/Zend/XmlRpc/Value/Double.php Diff File
mod - application/helpers/Zend/XmlRpc/Value/Exception.php Diff File
mod - application/helpers/Zend/XmlRpc/Value/Integer.php Diff File
mod - application/helpers/Zend/XmlRpc/Value/Nil.php Diff File
mod - application/helpers/Zend/XmlRpc/Value/Scalar.php Diff File
mod - application/helpers/Zend/XmlRpc/Value/String.php Diff File
mod - application/helpers/Zend/XmlRpc/Value/Struct.php Diff File
mod - application/helpers/common_helper.php Diff File
mod - application/helpers/remotecontrol/remotecontrol_handle.php Diff File
add - tests/functional/backend/RemoteControlXmlrpcTest.php Diff File

Issue History

Date Modified Username Field Change
2024-08-08 14:10 tibor.pacalat New Issue
2024-09-11 12:33 tibor.pacalat Assigned To => DenisChenu
2024-09-11 12:33 tibor.pacalat Status new => assigned
2024-09-12 11:19 DenisChenu Relationship added child of 19632
2024-09-18 18:42 DenisChenu Note Added: 81050
2024-09-18 18:42 DenisChenu Bug heat 0 => 2
2024-09-19 09:52 DenisChenu Note Added: 81051
2024-09-20 15:36 DenisChenu Note Added: 81070
2024-09-25 08:49 DenisChenu Summary php8.3 compatibility - Zend => php8.3 compatibility - Zend (xmlrpc related)
2024-09-26 16:56 p_teichmann Note Added: 81117
2024-09-26 16:56 p_teichmann Bug heat 2 => 4
2024-09-26 17:26 DenisChenu Note Added: 81120
2024-10-02 16:27 tibor.pacalat Note Added: 81142
2024-10-02 16:27 tibor.pacalat Bug heat 4 => 6
2024-10-03 17:13 DenisChenu Assigned To DenisChenu => tibor.pacalat
2024-10-03 17:14 DenisChenu Note Added: 81156
2024-10-04 16:14 tibor.pacalat Assigned To tibor.pacalat => gabrieljenik
2024-10-07 18:01 gabrieljenik Assigned To gabrieljenik => DenisChenu
2024-10-07 18:01 gabrieljenik Status assigned => ready for code review
2024-10-07 18:01 gabrieljenik Note Added: 81177
2024-10-07 18:01 gabrieljenik Bug heat 6 => 8
2024-10-07 18:02 gabrieljenik Note Edited: 81177
2024-10-07 18:09 DenisChenu Note Added: 81178
2024-10-09 15:25 DenisChenu Status ready for code review => in code review
2024-10-09 15:25 DenisChenu Note Added: 81198
2024-10-09 15:25 DenisChenu Assigned To DenisChenu => gabrieljenik
2024-10-09 19:47 gabrieljenik Note Added: 81210
2024-10-10 15:44 DenisChenu Assigned To gabrieljenik => tibor.pacalat
2024-10-10 15:44 DenisChenu Status in code review => ready for testing
2024-10-10 15:44 DenisChenu Note Added: 81218
2024-10-10 15:45 DenisChenu Note Edited: 81218
2024-10-10 18:21 gabrieljenik Note Added: 81224
2024-10-10 18:22 gabrieljenik Note Added: 81225
2024-10-10 18:29 DenisChenu Note Added: 81228
2024-10-11 14:12 tibor.pacalat Note Added: 81230
2024-10-11 16:48 gabrieljenik Issue cloned: 19801
2024-10-11 16:48 gabrieljenik Relationship added related to 19801
2024-10-15 09:55 Changeset attached => LimeSurvey master bc9a3faf
2024-10-15 09:55 guest Note Added: 81241
2024-10-15 09:55 guest Bug heat 8 => 10
2024-10-15 09:56 tibor.pacalat Status ready for testing => resolved
2024-10-15 09:56 tibor.pacalat Resolution open => fixed
2024-10-15 09:56 tibor.pacalat Note Added: 81242