Back-compatibility cURL 7.51 (#7409)

* Back-compatibility cURL 7.51
fix https://github.com/FreshRSS/FreshRSS/issues/7381
And add cURL version to system info.
Do not require a specific version of cURL for now, but maybe later.

* Fix CI

* make fix-all

* Add TODOs

* Add ssl_version

* Update app/i18n/it/index.php

Co-authored-by: UserRoot-Luca <55756898+UserRoot-Luca@users.noreply.github.com>

---------

Co-authored-by: UserRoot-Luca <55756898+UserRoot-Luca@users.noreply.github.com>
This commit is contained in:
Alexandre Alapetite
2025-03-08 11:49:05 +01:00
committed by GitHub
parent fdc564dd9e
commit d80171ebfd
31 changed files with 38 additions and 2 deletions

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // TODO
'database' => 'Database', // TODO
'server_software' => 'Server software', // TODO
'version_curl' => 'cURL version', // TODO
'version_frss' => 'FreshRSS version', // TODO
'version_php' => 'PHP version', // TODO
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // IGNORE
'database' => 'Datenbank',
'server_software' => 'Serversoftware',
'version_curl' => 'cURL version', // TODO
'version_frss' => 'FreshRSS-Version',
'version_php' => 'PHP-Version',
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // TODO
'database' => 'Database', // TODO
'server_software' => 'Server software', // TODO
'version_curl' => 'cURL version', // TODO
'version_frss' => 'FreshRSS version', // TODO
'version_php' => 'PHP version', // TODO
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // IGNORE
'database' => 'Database', // IGNORE
'server_software' => 'Server software', // IGNORE
'version_curl' => 'cURL version', // IGNORE
'version_frss' => 'FreshRSS version', // IGNORE
'version_php' => 'PHP version', // IGNORE
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // TODO
'database' => 'Database', // TODO
'server_software' => 'Server software', // TODO
'version_curl' => 'cURL version',
'version_frss' => 'FreshRSS version', // TODO
'version_php' => 'PHP version', // TODO
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // TODO
'database' => 'Database', // TODO
'server_software' => 'Server software', // TODO
'version_curl' => 'cURL version', // TODO
'version_frss' => 'FreshRSS version', // TODO
'version_php' => 'PHP version', // TODO
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // TODO
'database' => 'Database', // TODO
'server_software' => 'Server software', // TODO
'version_curl' => 'cURL version', // TODO
'version_frss' => 'FreshRSS version', // TODO
'version_php' => 'PHP version', // TODO
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // TODO
'database' => 'Database', // TODO
'server_software' => 'Server software', // TODO
'version_curl' => 'cURL version', // TODO
'version_frss' => 'FreshRSS version', // TODO
'version_php' => 'PHP version', // TODO
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Navigateur',
'database' => 'Base de données',
'server_software' => 'Serveur Web',
'version_curl' => 'Version de cURL',
'version_frss' => 'Version de FreshRSS',
'version_php' => 'Version de PHP',
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // TODO
'database' => 'Database', // TODO
'server_software' => 'Server software', // TODO
'version_curl' => 'cURL version', // TODO
'version_frss' => 'FreshRSS version', // TODO
'version_php' => 'PHP version', // TODO
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Böngésző',
'database' => 'Adatbázis',
'server_software' => 'Szerver szoftver',
'version_curl' => 'cURL version', // TODO
'version_frss' => 'FreshRSS verzió',
'version_php' => 'PHP verzió',
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // TODO
'database' => 'Database', // TODO
'server_software' => 'Server software', // TODO
'version_curl' => 'cURL version', // TODO
'version_frss' => 'FreshRSS version', // TODO
'version_php' => 'PHP version', // TODO
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // IGNORE
'database' => 'Database', // IGNORE
'server_software' => 'Software server',
'version_curl' => 'Versione cURL',
'version_frss' => 'Versione FreshRSS',
'version_php' => 'Versione PHP',
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'ブラウザ',
'database' => 'データベース',
'server_software' => 'サーバーソフトウェア',
'version_curl' => 'cURL version', // TODO
'version_frss' => 'FreshRSSバージョン',
'version_php' => 'PHPバージョン',
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // TODO
'database' => 'Database', // TODO
'server_software' => 'Server software', // TODO
'version_curl' => 'cURL version', // TODO
'version_frss' => 'FreshRSS version', // TODO
'version_php' => 'PHP version', // TODO
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // TODO
'database' => 'Database', // TODO
'server_software' => 'Server software', // TODO
'version_curl' => 'cURL version', // TODO
'version_frss' => 'FreshRSS version', // TODO
'version_php' => 'PHP version', // TODO
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // TODO
'database' => 'Database', // TODO
'server_software' => 'Server software', // TODO
'version_curl' => 'cURL version', // TODO
'version_frss' => 'FreshRSS version', // TODO
'version_php' => 'PHP version', // TODO
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // TODO
'database' => 'Database', // TODO
'server_software' => 'Server software', // TODO
'version_curl' => 'cURL version', // TODO
'version_frss' => 'FreshRSS version', // TODO
'version_php' => 'PHP version', // TODO
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // TODO
'database' => 'Database', // TODO
'server_software' => 'Server software', // TODO
'version_curl' => 'cURL version', // TODO
'version_frss' => 'FreshRSS version', // TODO
'version_php' => 'PHP version', // TODO
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // TODO
'database' => 'Database', // TODO
'server_software' => 'Server software', // TODO
'version_curl' => 'cURL version', // TODO
'version_frss' => 'FreshRSS version', // TODO
'version_php' => 'PHP version', // TODO
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // TODO
'database' => 'Database', // TODO
'server_software' => 'Server software', // TODO
'version_curl' => 'cURL version', // TODO
'version_frss' => 'FreshRSS version', // TODO
'version_php' => 'PHP version', // TODO
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // TODO
'database' => 'Database', // TODO
'server_software' => 'Server software', // TODO
'version_curl' => 'cURL version', // TODO
'version_frss' => 'FreshRSS version', // TODO
'version_php' => 'PHP version', // TODO
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // TODO
'database' => 'Database', // TODO
'server_software' => 'Server software', // TODO
'version_curl' => 'cURL version', // TODO
'version_frss' => 'FreshRSS version', // TODO
'version_php' => 'PHP version', // TODO
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // TODO
'database' => 'Database', // TODO
'server_software' => 'Server software', // TODO
'version_curl' => 'cURL version', // TODO
'version_frss' => 'FreshRSS version', // TODO
'version_php' => 'PHP version', // TODO
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // TODO
'database' => 'Database', // TODO
'server_software' => 'Server software', // TODO
'version_curl' => 'cURL version', // TODO
'version_frss' => 'FreshRSS version', // TODO
'version_php' => 'PHP version', // TODO
),

View File

@@ -20,6 +20,7 @@ return array(
'browser' => 'Browser', // TODO
'database' => 'Database', // TODO
'server_software' => 'Server software', // TODO
'version_curl' => 'cURL version', // TODO
'version_frss' => 'FreshRSS version', // TODO
'version_php' => 'PHP version', // TODO
),

View File

@@ -462,7 +462,7 @@ function printStep1(): void {
printStep1Template('pdo', $res['pdo']);
$curlVersion = function_exists('curl_version') ? curl_version() : [];
$curlVersion = is_string($curlVersion['version'] ?? null) ? $curlVersion['version'] : '';
printStep1Template('curl', $res['curl'], [$curlVersion]);
printStep1Template('curl', $res['curl'], [$curlVersion]); // TODO: We actually require cURL >= 7.52 for CURLPROXY_HTTPS
printStep1Template('json', $res['json']);
printStep1Template('pcre', $res['pcre']);
printStep1Template('ctype', $res['ctype']);

View File

@@ -749,6 +749,7 @@
<label class="group-name" for="proxy_type"><?= _t('sub.feed.proxy') ?></label>
<div class="group-controls">
<select name="proxy_type" id="proxy_type"><?php
defined('CURLPROXY_HTTPS') or define('CURLPROXY_HTTPS', 2); // Compatibility cURL 7.51
$type = $curlParams[CURLOPT_PROXYTYPE] ?? '';
if ($type === 3) { // Legacy for NONE
$type = -1;

View File

@@ -26,6 +26,14 @@
<dd><?= htmlspecialchars(FRESHRSS_VERSION, ENT_NOQUOTES, 'UTF-8') ?></dd>
<dt><?= _t('index.about.bug_reports.environment_information.version_php') ?></dt>
<dd><?= htmlspecialchars(PHP_VERSION, ENT_NOQUOTES, 'UTF-8') ?></dd>
<dt><?= _t('index.about.bug_reports.environment_information.version_curl') ?></dt>
<?php
$curlVersion = curl_version() ?: [];
$curlVersionVersion = is_string($curlVersion['version'] ?? null) ? $curlVersion['version'] : '';
$sslversion = is_string($curlVersion['ssl_version'] ?? null) ? $curlVersion['ssl_version'] : '';
?>
<dd><?= htmlspecialchars($curlVersionVersion, ENT_NOQUOTES, 'UTF-8') ?></dd>
<dd><?= htmlspecialchars($sslversion, ENT_NOQUOTES, 'UTF-8') ?></dd>
<dt><?= _t('index.about.bug_reports.environment_information.database') ?></dt>
<dd><?= htmlspecialchars(FreshRSS_Context::systemConf()->db['type'], ENT_NOQUOTES, 'UTF-8') ?></dd>
<?php $databaseDAO = FreshRSS_Factory::createDatabaseDAO(); ?>

View File

@@ -315,6 +315,7 @@
<label class="group-name" for="proxy_type"><?= _t('sub.feed.proxy') ?></label>
<div class="group-controls">
<select class="number" name="proxy_type" id="proxy_type"><?php
defined('CURLPROXY_HTTPS') or define('CURLPROXY_HTTPS', 2); // Compatibility cURL 7.51
foreach (['' => '', -1 => 'NONE', CURLPROXY_HTTP => 'HTTP', CURLPROXY_HTTPS => 'HTTPS',
CURLPROXY_SOCKS4 => 'SOCKS4', CURLPROXY_SOCKS4A => 'SOCKS4A', CURLPROXY_SOCKS5 => 'SOCKS5',
CURLPROXY_SOCKS5_HOSTNAME => 'SOCKS5H'] as $k => $v) {

View File

@@ -7,7 +7,7 @@ FreshRSS_UserConfiguration::register('default_user', join_path(FRESHRSS_PATH, 'c
/** @return array<string,string> */
function checkRequirements(string $dbType = ''): array {
$php = version_compare(PHP_VERSION, FRESHRSS_MIN_PHP_VERSION) >= 0;
$curl = extension_loaded('curl');
$curl = extension_loaded('curl'); // TODO: We actually require cURL >= 7.52 for CURLPROXY_HTTPS
$pdo_mysql = extension_loaded('pdo_mysql');
$pdo_sqlite = extension_loaded('pdo_sqlite');
$pdo_pgsql = extension_loaded('pdo_pgsql');