Sfoglia il codice sorgente

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>
Alexandre Alapetite 1 anno fa
parent
commit
d80171ebfd

+ 1 - 0
app/i18n/cs/index.php

@@ -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
 			),

+ 1 - 0
app/i18n/de/index.php

@@ -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',
 			),

+ 1 - 0
app/i18n/el/index.php

@@ -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
 			),

+ 1 - 0
app/i18n/en-us/index.php

@@ -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
 			),

+ 1 - 0
app/i18n/en/index.php

@@ -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
 			),

+ 1 - 0
app/i18n/es/index.php

@@ -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
 			),

+ 1 - 0
app/i18n/fa/index.php

@@ -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
 			),

+ 1 - 0
app/i18n/fi/index.php

@@ -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
 			),

+ 1 - 0
app/i18n/fr/index.php

@@ -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',
 			),

+ 1 - 0
app/i18n/he/index.php

@@ -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
 			),

+ 1 - 0
app/i18n/hu/index.php

@@ -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ó',
 			),

+ 1 - 0
app/i18n/id/index.php

@@ -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
 			),

+ 1 - 0
app/i18n/it/index.php

@@ -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',
 			),

+ 1 - 0
app/i18n/ja/index.php

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

+ 1 - 0
app/i18n/ko/index.php

@@ -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
 			),

+ 1 - 0
app/i18n/lv/index.php

@@ -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
 			),

+ 1 - 0
app/i18n/nl/index.php

@@ -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
 			),

+ 1 - 0
app/i18n/oc/index.php

@@ -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
 			),

+ 1 - 0
app/i18n/pl/index.php

@@ -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
 			),

+ 1 - 0
app/i18n/pt-br/index.php

@@ -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
 			),

+ 1 - 0
app/i18n/pt-pt/index.php

@@ -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
 			),

+ 1 - 0
app/i18n/ru/index.php

@@ -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
 			),

+ 1 - 0
app/i18n/sk/index.php

@@ -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
 			),

+ 1 - 0
app/i18n/tr/index.php

@@ -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
 			),

+ 1 - 0
app/i18n/zh-cn/index.php

@@ -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
 			),

+ 1 - 0
app/i18n/zh-tw/index.php

@@ -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
 			),

+ 1 - 1
app/install.php

@@ -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']);

+ 1 - 0
app/views/helpers/feed/update.phtml

@@ -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;

+ 8 - 0
app/views/index/about.phtml

@@ -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(); ?>

+ 1 - 0
app/views/subscription/add.phtml

@@ -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) {

+ 1 - 1
lib/lib_install.php

@@ -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');