git: f8dade3745fd - main - sysutils/froxlor: Update 2.3.5 => 2.3.15

From: Vladimir Druzenko <vvd_at_FreeBSD.org>
Date: Sat, 17 Oct 2026 12:49:00 UTC
The branch main has been updated by vvd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=f8dade3745fd16be9384a58d421d7bda5b00b8b9

commit f8dade3745fd16be9384a58d421d7bda5b00b8b9
Author:     Vladimir Druzenko <vvd@FreeBSD.org>
AuthorDate: 2026-10-17 12:43:42 +0000
Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2026-10-17 12:47:40 +0000

    sysutils/froxlor: Update 2.3.5 => 2.3.15
    
    Changelogs:
    https://github.com/froxlor/froxlor/releases/tag/2.3.6
    https://github.com/froxlor/froxlor/releases/tag/2.3.7
    https://github.com/froxlor/froxlor/releases/tag/2.3.8
    https://github.com/froxlor/froxlor/releases/tag/2.3.9
    https://github.com/froxlor/froxlor/releases/tag/2.3.10
    https://github.com/froxlor/froxlor/releases/tag/2.3.11
    https://github.com/froxlor/froxlor/releases/tag/2.3.12
    https://github.com/froxlor/froxlor/releases/tag/2.3.13
    https://github.com/froxlor/froxlor/releases/tag/2.3.14
    https://github.com/froxlor/froxlor/releases/tag/2.3.15
    
    - Fix warnings from portclippy.
    - Refresh patches.
    
    Sponsored by:   UNIS Labs
    MFH:            2026Q4
---
 sysutils/froxlor/Makefile                          | 94 +++++++++++-----------
 sysutils/froxlor/distinfo                          |  6 +-
 .../patch-froxlor_lib_Froxlor_Cli_MasterCron.php   |  4 +-
 ...roxlor_lib_Froxlor_Cron_Traffic_TrafficCron.php | 12 +--
 sysutils/froxlor/pkg-plist                         | 19 ++++-
 5 files changed, 75 insertions(+), 60 deletions(-)

diff --git a/sysutils/froxlor/Makefile b/sysutils/froxlor/Makefile
index d90263b2afcb..be1081995d7c 100644
--- a/sysutils/froxlor/Makefile
+++ b/sysutils/froxlor/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	froxlor
-DISTVERSION=	2.3.5
+DISTVERSION=	2.3.15
 CATEGORIES=	sysutils www
 MASTER_SITES=	https://files.froxlor.org/releases/
 
@@ -12,93 +12,91 @@ LICENSE=	GPLv2
 USES=		cpe php:cli shebangfix
 USE_PHP=	bcmath curl filter ftp pdo_mysql posix session xml zip
 
+NO_ARCH=	yes
+NO_BUILD=	yes
 SUB_FILES=	pkg-deinstall pkg-message
 SUB_LIST=	PORTNAME=${PORTNAME} \
 		WWWGRP=${WWWGRP} \
 		WWWOWN=${WWWOWN}
-PLIST_SUB=	${SUB_LIST}
-
-NO_ARCH=	yes
-NO_BUILD=	yes
 NO_WRKSUBDIR=	yes
+PLIST_SUB=	${SUB_LIST}
 
 OPTIONS_DEFINE=	DKIM LIBNSS LOGROTATE MYSQLS NLS PCNTL
+OPTIONS_DEFAULT=	APACHE DOVECOT2 MYSQLS PCNTL POSTFIX PROFTPD WEBALIZER
 
-OPTIONS_RADIO=		DNS FTP IMAPPOP3 SMTP WEB
-OPTIONS_RADIO_WEB=	APACHE LIGHTTPD NGINX
-OPTIONS_RADIO_SMTP=	EXIM POSTFIX
-OPTIONS_RADIO_IMAPPOP3=	COURIER DOVECOT2
-OPTIONS_RADIO_FTP=	PROFTPD PUREFTPD
-OPTIONS_RADIO_DNS=	ISCDNS POWERDNS
 OPTIONS_MULTI=		WWWST
 OPTIONS_MULTI_WWWST=	AWSTATS WEBALIZER
+OPTIONS_RADIO=		DNS FTP IMAPPOP3 SMTP WEB
+OPTIONS_RADIO_DNS=	ISCDNS POWERDNS
+OPTIONS_RADIO_FTP=	PROFTPD PUREFTPD
+OPTIONS_RADIO_IMAPPOP3=	COURIER DOVECOT2
+OPTIONS_RADIO_SMTP=	EXIM POSTFIX
+OPTIONS_RADIO_WEB=	APACHE LIGHTTPD NGINX
 
-WWWST_DESC=	Web access and traffic statistics dependency
-WEB_DESC=	Web server dependency
-SMTP_DESC=	SMTP server dependency
-IMAPPOP3_DESC=	IMAP/POP3 server dependency
+APACHE_DESC=	Apache as HTTP/HTTPS server
+AWSTATS_DESC=	Awstats (more fancy, dynamic and static result pages)
+COURIER_DESC=	Courier as IMAP/POP3 server
+DKIM_DESC=	OpenDKIM for DomainKeys Identified Mail
 DNS_DESC=	DNS server dependency
+DOVECOT2_DESC=	Dovecot 2.x as IMAP/POP3 server
+EXIM_DESC=	Exim as SMTP server
 FTP_DESC=	FTP server dependency
-APACHE_DESC=	Apache as HTTP/HTTPS server
+IMAPPOP3_DESC=	IMAP/POP3 server dependency
+ISCDNS_DESC=	SC BIND 9.20 from ports as DNS server
+LIBNSS_DESC=	Libnss-mysql for authentication
 LIGHTTPD_DESC=	Lighttpd as HTTP/HTTPS server
+LOGROTATE_DESC=	Logrotate for log rotation
+MYSQLS_DESC=	Depend on MySQL server
 NGINX_DESC=	Nginx as HTTP/HTTPS server
+NLS_DESC=	Enable NLS support (required for webFTP frontend)
+PCNTL_DESC=	Use php-pcntl (speeds up statistics creation)
 POSTFIX_DESC=	Postfix as SMTP server
-EXIM_DESC=	Exim as SMTP server
-DKIM_DESC=	OpenDKIM for DomainKeys Identified Mail
-DOVECOT2_DESC=	Dovecot 2.x as IMAP/POP3 server
-COURIER_DESC=	Courier as IMAP/POP3 server
+POWERDNS_DESC=	Powerdns as DNS server
 PROFTPD_DESC=	ProFTPd as FTP server
 PUREFTPD_DESC=	Pure-FTPd as FTP server
-POWERDNS_DESC=	Powerdns as DNS server
-ISCDNS_DESC=	ISC BIND 9.11 from ports as DNS server
-PCNTL_DESC=	Use php-pcntl (speeds up statistics creation)
-LIBNSS_DESC=	Libnss-mysql for authentication
+SMTP_DESC=	SMTP server dependency
 WEBALIZER_DESC=	Webalizer (small, fast, static result pages)
-AWSTATS_DESC=	Awstats (more fancy, dynamic and static result pages)
-LOGROTATE_DESC=	Logrotate for log rotation
-MYSQLS_DESC=	Depend on MySQL server
-NLS_DESC=	Enable NLS support (required for webFTP frontend)
+WEB_DESC=	Web server dependency
+WWWST_DESC=	Web access and traffic statistics dependency
 
-OPTIONS_DEFAULT=	APACHE DOVECOT2 MYSQLS PCNTL POSTFIX PROFTPD WEBALIZER
+APACHE_USES=	apache php:mod
 
-POSTFIX_RUN_DEPENDS=	postfix:mail/postfix
+AWSTATS_RUN_DEPENDS=	awstats>=6.8:www/awstats
 
-EXIM_RUN_DEPENDS=	exim:mail/exim
+COURIER_RUN_DEPENDS=	courier:mail/courier
 
 DKIM_RUN_DEPENDS=	opendkim:mail/opendkim
 
 DOVECOT2_RUN_DEPENDS=	dovecot>=2:mail/dovecot
 
-COURIER_RUN_DEPENDS=	courier:mail/courier
-
-PROFTPD_RUN_DEPENDS=	${LOCALBASE}/libexec/proftpd/mod_sql_mysql.so:databases/proftpd-mod_sql_mysql
-
-PUREFTPD_RUN_DEPENDS=	pure-ftpd:ftp/pure-ftpd
-
-POWERDNS_RUN_DEPENDS=	pdns_control:dns/powerdns
+EXIM_RUN_DEPENDS=	exim:mail/exim
 
-ISCDNS_RUN_DEPENDS=	bind>=9.11.0.0:dns/bind911
+ISCDNS_RUN_DEPENDS=	bind920>=9.20.0:dns/bind920
 
 LIBNSS_RUN_DEPENDS=	${LOCALBASE}/lib/nss_mysql.so:net/libnss-mysql
 
-WEBALIZER_RUN_DEPENDS=	webalizer:www/webalizer
-
-AWSTATS_RUN_DEPENDS=	awstats>=6.8:www/awstats
+LIGHTTPD_RUN_DEPENDS=	lighttpd:www/lighttpd
 
 LOGROTATE_RUN_DEPENDS=	logrotate:sysutils/logrotate
 
-LIGHTTPD_RUN_DEPENDS=	lighttpd:www/lighttpd
+MYSQLS_USES=	mysql:server
 
 NGINX_RUN_DEPENDS=	nginx:www/nginx
 
-APACHE_USES=	apache php:mod
-
-MYSQLS_USES=	mysql:server
+NLS_USES=	gettext-runtime
+NLS_USE=	PHP=gettext
 
 PCNTL_USE=	PHP=pcntl
 
-NLS_USES=	gettext-runtime:run
-NLS_USE=	PHP=gettext
+POSTFIX_RUN_DEPENDS=	postfix:mail/postfix
+
+POWERDNS_RUN_DEPENDS=	pdns_control:dns/powerdns
+
+PROFTPD_RUN_DEPENDS=	${LOCALBASE}/libexec/proftpd/mod_sql_mysql.so:databases/proftpd-mod_sql_mysql
+
+PUREFTPD_RUN_DEPENDS=	pure-ftpd:ftp/pure-ftpd
+
+WEBALIZER_RUN_DEPENDS=	webalizer:www/webalizer
 
 do-install:
 	cd ${WRKSRC}/${PORTNAME} && \
diff --git a/sysutils/froxlor/distinfo b/sysutils/froxlor/distinfo
index 789f08c37373..07ee456d906a 100644
--- a/sysutils/froxlor/distinfo
+++ b/sysutils/froxlor/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1773409296
-SHA256 (froxlor-2.3.5.tar.gz) = 928b4169bc6a32747a2b395a0aa556342b9d787a57610ffaa574b73cf7a52a90
-SIZE (froxlor-2.3.5.tar.gz) = 4352966
+TIMESTAMP = 1792200000
+SHA256 (froxlor-2.3.15.tar.gz) = 9b7756706d447ea220db007a92d64ca1fc10665f99c95c250a634bc5b9a87da6
+SIZE (froxlor-2.3.15.tar.gz) = 4492487
diff --git a/sysutils/froxlor/files/patch-froxlor_lib_Froxlor_Cli_MasterCron.php b/sysutils/froxlor/files/patch-froxlor_lib_Froxlor_Cli_MasterCron.php
index 16c063a76a12..bd515936007d 100644
--- a/sysutils/froxlor/files/patch-froxlor_lib_Froxlor_Cli_MasterCron.php
+++ b/sysutils/froxlor/files/patch-froxlor_lib_Froxlor_Cli_MasterCron.php
@@ -1,6 +1,6 @@
---- froxlor/lib/Froxlor/Cli/MasterCron.php.orig	2025-05-07 03:26:39 UTC
+--- froxlor/lib/Froxlor/Cli/MasterCron.php.orig	2026-10-04 07:11:11 UTC
 +++ froxlor/lib/Froxlor/Cli/MasterCron.php
-@@ -211,7 +211,7 @@ final class MasterCron extends CliCommand
+@@ -219,7 +219,7 @@ final class MasterCron extends CliCommand
  	private function lockJob(string $job, OutputInterface $output): bool
  	{
  
diff --git a/sysutils/froxlor/files/patch-froxlor_lib_Froxlor_Cron_Traffic_TrafficCron.php b/sysutils/froxlor/files/patch-froxlor_lib_Froxlor_Cron_Traffic_TrafficCron.php
index 56bc0ee1600e..74ee948ea9d2 100644
--- a/sysutils/froxlor/files/patch-froxlor_lib_Froxlor_Cron_Traffic_TrafficCron.php
+++ b/sysutils/froxlor/files/patch-froxlor_lib_Froxlor_Cron_Traffic_TrafficCron.php
@@ -1,11 +1,11 @@
---- froxlor/lib/Froxlor/Cron/Traffic/TrafficCron.php.orig	2025-05-07 03:27:51 UTC
+--- froxlor/lib/Froxlor/Cron/Traffic/TrafficCron.php.orig	2026-10-04 07:11:11 UTC
 +++ froxlor/lib/Froxlor/Cron/Traffic/TrafficCron.php
-@@ -861,7 +861,7 @@ class TrafficCron extends FroxlorCron
- 			// the default selection is 'current',
- 			// so link the latest dir to it
- 			$new_current = FileDir::makeCorrectFile($outputdir . '/current');
+@@ -901,7 +901,7 @@ class TrafficCron extends FroxlorCron
+ 				FroxlorLogger::getInstanceOf()->logAction(FroxlorLogger::CRON_ACTION, LOG_ERR, 'traffic::awstats: outputdir for domain "' . $domain . '" is unsafe, skipping: ' . $e->getMessage());
+ 				return $returnval;
+ 			}
 -			FileDir::safe_exec('ln -fTs ' . escapeshellarg($staticOutputdir) . ' ' . escapeshellarg($new_current));
 +			FileDir::safe_exec('ln -fFs ' . escapeshellarg($staticOutputdir) . ' ' . escapeshellarg($new_current));
  
  			// statistics file looks like: 'awstats[month][year].[domain].txt'
- 			$file = FileDir::makeCorrectFile($outputdir . '/awstats' . date('mY', time()) . '.' . $domain . '.txt');
+ 			try {
diff --git a/sysutils/froxlor/pkg-plist b/sysutils/froxlor/pkg-plist
index 0fa56904ab9c..999fa6039f40 100644
--- a/sysutils/froxlor/pkg-plist
+++ b/sysutils/froxlor/pkg-plist
@@ -397,6 +397,7 @@
 %%WWWDIR%%/lng/nl.lng.php
 %%WWWDIR%%/lng/pt.lng.php
 %%WWWDIR%%/lng/se.lng.php
+%%WWWDIR%%/lng/sk.lng.php
 %%WWWDIR%%/lng/zh_CN.lng.php
 %%WWWDIR%%/logfiles_viewer.php
 %%WWWDIR%%/logs/index.html
@@ -442,7 +443,7 @@
 %%WWWDIR%%/templates/Froxlor/assets/scss/components/index.html
 %%WWWDIR%%/templates/Froxlor/assets/scss/index.html
 %%WWWDIR%%/templates/Froxlor/base.html.twig
-%%WWWDIR%%/templates/Froxlor/build/assets/app-BGO7Hs_d.js
+%%WWWDIR%%/templates/Froxlor/build/assets/app-BZTALoQf.js
 %%WWWDIR%%/templates/Froxlor/build/assets/app-DgN1KmJf.css
 %%WWWDIR%%/templates/Froxlor/build/assets/fa-brands-400-D1LuMI3I.ttf
 %%WWWDIR%%/templates/Froxlor/build/assets/fa-brands-400-D_cYUPeE.woff2
@@ -457,6 +458,7 @@
 %%WWWDIR%%/templates/Froxlor/build/manifest.json
 %%WWWDIR%%/templates/Froxlor/config.json
 %%WWWDIR%%/templates/Froxlor/footer.html.twig
+%%WWWDIR%%/templates/Froxlor/form/askuserpasswd.html.twig
 %%WWWDIR%%/templates/Froxlor/form/form.html.twig
 %%WWWDIR%%/templates/Froxlor/form/formfields.html.twig
 %%WWWDIR%%/templates/Froxlor/form/index.html
@@ -535,6 +537,9 @@
 %%WWWDIR%%/tests/Backup/DataDumpTest.php
 %%WWWDIR%%/tests/Bulk/DomainBulkTest.php
 %%WWWDIR%%/tests/Certificates/CertificatesTest.php
+%%WWWDIR%%/tests/Cron/Http/ApacheAdminDocumentrootTest.php
+%%WWWDIR%%/tests/Cron/Http/ApacheGetWebrootTest.php
+%%WWWDIR%%/tests/Cron/Http/NginxGetWebrootTest.php
 %%WWWDIR%%/tests/Cron/TaskIdTest.php
 %%WWWDIR%%/tests/Cronjobs/CronjobsTest.php
 %%WWWDIR%%/tests/Customers/CustomersTest.php
@@ -544,19 +549,23 @@
 %%WWWDIR%%/tests/Emails/EmailsTest.php
 %%WWWDIR%%/tests/Extras/DirOptionsTest.php
 %%WWWDIR%%/tests/Extras/DirProtectionsTest.php
+%%WWWDIR%%/tests/Froxlor/FileDirTest.php
 %%WWWDIR%%/tests/Froxlor/FroxlorTest.php
 %%WWWDIR%%/tests/Froxlor/IPToolsTest.php
 %%WWWDIR%%/tests/Froxlor/SettingsTest.php
 %%WWWDIR%%/tests/Froxlor/StoreTest.php
 %%WWWDIR%%/tests/Froxlor/ValidateTest.php
 %%WWWDIR%%/tests/Ftps/FtpsTest.php
+%%WWWDIR%%/tests/Ftps/SshKeysTest.php
 %%WWWDIR%%/tests/Global/ApiParameterTest.php
 %%WWWDIR%%/tests/Global/FroxlorRpcTest.php
+%%WWWDIR%%/tests/Global/TwoFactorRememberTokenTest.php
 %%WWWDIR%%/tests/IpsAndPorts/IpsAndPortsTest.php
 %%WWWDIR%%/tests/Mysqls/MysqlServerTest.php
 %%WWWDIR%%/tests/Mysqls/MysqlsTest.php
 %%WWWDIR%%/tests/PhpAndFpm/FpmDaemonsTest.php
 %%WWWDIR%%/tests/PhpAndFpm/PhpSettingsTest.php
+%%WWWDIR%%/tests/PhpHelper/CnameResolutionTest.php
 %%WWWDIR%%/tests/SubDomains/SubDomainsTest.php
 %%WWWDIR%%/tests/Traffic/TrafficTest.php
 %%WWWDIR%%/tests/bootstrap.php
@@ -791,6 +800,8 @@
 %%WWWDIR%%/vendor/league/commonmark/src/Extension/Mention/Mention.php
 %%WWWDIR%%/vendor/league/commonmark/src/Extension/Mention/MentionExtension.php
 %%WWWDIR%%/vendor/league/commonmark/src/Extension/Mention/MentionParser.php
+%%WWWDIR%%/vendor/league/commonmark/src/Extension/NormalizeHeadings/NormalizeHeadingsExtension.php
+%%WWWDIR%%/vendor/league/commonmark/src/Extension/NormalizeHeadings/NormalizeHeadingsProcessor.php
 %%WWWDIR%%/vendor/league/commonmark/src/Extension/SmartPunct/DashParser.php
 %%WWWDIR%%/vendor/league/commonmark/src/Extension/SmartPunct/EllipsesParser.php
 %%WWWDIR%%/vendor/league/commonmark/src/Extension/SmartPunct/Quote.php
@@ -1897,6 +1908,7 @@
 %%WWWDIR%%/vendor/symfony/polyfill-intl-grapheme/README.md
 %%WWWDIR%%/vendor/symfony/polyfill-intl-grapheme/bootstrap.php
 %%WWWDIR%%/vendor/symfony/polyfill-intl-grapheme/bootstrap80.php
+%%WWWDIR%%/vendor/symfony/polyfill-intl-grapheme/bootstrap85.php
 %%WWWDIR%%/vendor/symfony/polyfill-intl-grapheme/composer.json
 %%WWWDIR%%/vendor/symfony/polyfill-intl-normalizer/LICENSE
 %%WWWDIR%%/vendor/symfony/polyfill-intl-normalizer/Normalizer.php
@@ -1906,6 +1918,8 @@
 %%WWWDIR%%/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalDecomposition.php
 %%WWWDIR%%/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/combiningClass.php
 %%WWWDIR%%/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/compatibilityDecomposition.php
+%%WWWDIR%%/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/rawCanonicalDecomposition.php
+%%WWWDIR%%/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/rawCompatibilityDecomposition.php
 %%WWWDIR%%/vendor/symfony/polyfill-intl-normalizer/bootstrap.php
 %%WWWDIR%%/vendor/symfony/polyfill-intl-normalizer/bootstrap80.php
 %%WWWDIR%%/vendor/symfony/polyfill-intl-normalizer/composer.json
@@ -1917,6 +1931,7 @@
 %%WWWDIR%%/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php
 %%WWWDIR%%/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php
 %%WWWDIR%%/vendor/symfony/polyfill-mbstring/bootstrap.php
+%%WWWDIR%%/vendor/symfony/polyfill-mbstring/bootstrap72.php
 %%WWWDIR%%/vendor/symfony/polyfill-mbstring/bootstrap80.php
 %%WWWDIR%%/vendor/symfony/polyfill-mbstring/composer.json
 %%WWWDIR%%/vendor/symfony/polyfill-php73/LICENSE
@@ -2176,6 +2191,8 @@
 %%WWWDIR%%/vendor/voku/anti-xss/LICENSE
 %%WWWDIR%%/vendor/voku/anti-xss/README.md
 %%WWWDIR%%/vendor/voku/anti-xss/composer.json
+%%WWWDIR%%/vendor/voku/anti-xss/infection.json5.dist
+%%WWWDIR%%/vendor/voku/anti-xss/phpunit9.xml
 %%WWWDIR%%/vendor/voku/anti-xss/src/voku/helper/AntiXSS.php
 %%WWWDIR%%/vendor/voku/anti-xss/src/voku/helper/data/entities_fallback.php
 %%WWWDIR%%/vendor/voku/portable-ascii/.deepsource.toml