git: 6f1951d2e02f - main - www/onlyoffice-documentserver: Update to 9.0.4

From: Mikael Urankar <mikael_at_FreeBSD.org>
Date: Tue, 02 Sep 2025 13:17:56 UTC
The branch main has been updated by mikael:

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

commit 6f1951d2e02f731afce80189776780e8d9a3d469
Author:     Matt Kempe <fsbruva@yahoo.com>
AuthorDate: 2025-08-18 00:58:42 +0000
Commit:     Mikael Urankar <mikael@FreeBSD.org>
CommitDate: 2025-09-02 13:16:18 +0000

    www/onlyoffice-documentserver: Update to 9.0.4
    
     - Restructure version and build numbering
     - Refactor Makefile and patches based on linter tools
     - Modify USES, BUILD_DEPS and variables to ease node version maintenance
     - Shift openssl to USES macro
     - Accomodate npm 11.2+ 'Unknown env config' warn/deprecation
    
     Changes:
        https://github.com/ONLYOFFICE/DocumentServer/blob/master/CHANGELOG.md#904
    
     PR:            288919
---
 www/onlyoffice-documentserver/Makefile             | 155 ++++++++++++---------
 www/onlyoffice-documentserver/distinfo             |  52 +++----
 www/onlyoffice-documentserver/files/npm            |   4 +-
 .../patch-build__tools_scripts_build__server.py    |   9 +-
 ...ild__tools_scripts_core__common_make__common.py |   9 +-
 ...ld__tools_scripts_core__common_modules_iwork.py |   4 +-
 ...build__tools_scripts_core__common_modules_v8.py |  12 +-
 ...d__tools_scripts_core__common_modules_v8__89.py |  10 +-
 www/onlyoffice-documentserver/files/patch-clang19  |  42 +++---
 .../files/patch-core_Apple_IWork.cpp               |   4 +-
 .../files/patch-core_Apple_IWork.pro               |   8 +-
 .../patch-core_Apple_StringDocumentHandler.hxx     |   4 +-
 .../files/patch-core_Common_3dParty_brotli_make.py |  11 ++
 .../patch-core_Common_3dParty_openssl_openssl.pri  |   4 +-
 ...n_3dParty_v8__89_v8_build_config_clang_BUILD.gn |   4 +-
 ...tch-core_Common_3dParty_v8_v8_src_base_macros.h |   4 +-
 ...ore_Common_3dParty_v8_v8_testing_gmock_BUILD.gn |   4 +-
 .../patch-core_DesktopEditor_common_Directory.cpp  |  10 +-
 ...ore_DesktopEditor_doctrenderer_doctrenderer.pri |   6 +-
 .../patch-core_DesktopEditor_doctrenderer_hash.cpp |   4 +-
 ...ch-core_DesktopEditor_fontengine_TextShaper.cpp |   4 +-
 ...h-core_DesktopEditor_fontengine_js_cpp_text.cpp |   6 +-
 ...opEditor_freetype-2.10.4_src_autofit_afshaper.h |   4 +-
 ...atch-core_DesktopEditor_pluginsmanager_main.cpp |   4 +-
 ...ormat_Logic_Biff__structures_BitMarkedStructs.h |   4 +-
 .../files/patch-core_OOXML_Base_Types__32.h        |   4 +-
 ...OXML_Binary_Sheets_Reader_ChartFromToBinary.cpp |   6 +-
 ...-core_OOXML_XlsxFormat_Chart_ChartSerialize.cpp |   4 +-
 .../files/patch-core_OOXML_XlsxFormat_Common.cpp   |   4 +-
 ...patch-core_OfficeUtils_src_zlib-1.2.11_gzguts.h |   4 +-
 .../files/patch-core_PdfFile_PdfFile.pro           |   6 +-
 .../files/patch-core_PdfFile_SrcWriter_Types.h     |   6 +-
 .../files/patch-document-server-package_Makefile   |   6 +-
 ...mentserver_bin_documentserver-flush-cache.sh.m4 |   4 +-
 ...ocumentserver_nginx_includes_ds-mime.types.conf |   4 +-
 .../patch-server_Metrics_patches_modern-syslog     |  11 ++
 .../files/patch-server_package.json                |  18 ++-
 www/onlyoffice-documentserver/files/pkg-message.in |   2 +-
 www/onlyoffice-documentserver/pkg-plist            |  65 ++++++++-
 39 files changed, 317 insertions(+), 209 deletions(-)

diff --git a/www/onlyoffice-documentserver/Makefile b/www/onlyoffice-documentserver/Makefile
index fae9b93955d8..a41f0027e3d5 100644
--- a/www/onlyoffice-documentserver/Makefile
+++ b/www/onlyoffice-documentserver/Makefile
@@ -1,12 +1,12 @@
 PORTNAME=	onlyoffice-documentserver
 DISTVERSIONPREFIX=	v
-DISTVERSION=	9.0.3.31
+DISTVERSION=	9.0.4
 CATEGORIES=	www
 MASTER_SITES+=	LOCAL/mikael/v8/:source1 \
-		https://nodejs.org/dist/v${NODE_VERSION_PKGFETCH}/:source3 \
+		https://nodejs.org/dist/v${PKGFETCH_NODE_VERSION}/:source3 \
 		SF/optipng/OptiPNG/optipng-0.7.8/:source4
 DISTFILES+=	v8-8.9.255.25_all.tar.gz:source1 \
-		node-v${NODE_VERSION_PKGFETCH}.tar.gz:source3 \
+		node-v${PKGFETCH_NODE_VERSION}.tar.gz:source3 \
 		optipng-0.7.8.tar.gz:source4
 
 MAINTAINER=	fsbruva@yahoo.com
@@ -16,7 +16,13 @@ WWW=		https://www.onlyoffice.com/
 LICENSE=	AGPLv3
 LICENSE_FILE=	${WRKSRC}/LICENSE.txt
 
-BROKEN_i386=	fails to build
+ONLY_FOR_ARCHS=	aarch64 amd64
+ONLY_FOR_ARCHS_REASON=	"Upstream only supports amd64 and arm64"
+
+# node version used with "npm install @yao-pkg/pkg@6.6.0"
+# keep in sync with patch-build__tools_scripts_build__server.py and patch-document-server-package_Makefile
+PKGFETCH_NODE_VERSION=	20.19.4
+DS_BUILD=	50
 
 BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}Jinja2>=0:devel/py-Jinja2@${PY_FLAVOR} \
 		boost-libs>0:devel/boost-libs \
@@ -24,16 +30,17 @@ BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}Jinja2>=0:devel/py-Jinja2@${PY_FLAVOR} \
 		gn:devel/gn \
 		java:java/openjdk11 \
 		ninja:devel/ninja \
-		npm:www/npm-node20 \
-		${LOCALBASE}/lib/libcrypto.a:security/openssl
+		npm:www/npm-node20
+
 LIB_DEPENDS=	libboost_regex.so:devel/boost-libs \
 		libetonyek-0.1.so:graphics/libetonyek01 \
 		libcurl.so:ftp/curl \
 		libharfbuzz.so:print/harfbuzz \
 		libiconv.so:converters/libiconv \
-		libicutu.so:devel/icu \
+		libicuuc.so:devel/icu \
 		libodfgen-0.1.so:textproc/libodfgen01 \
 		librevenge-0.0.so:textproc/librevenge
+
 RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}supervisor>0:sysutils/py-supervisor@${PY_FLAVOR} \
 		${LOCALBASE}/share/certs/ca-root-nss.crt:security/ca_root_nss \
 		gsed:textproc/gsed \
@@ -42,55 +49,60 @@ RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}supervisor>0:sysutils/py-supervisor@${PY_FLA
 		rabbitmq>0:net/rabbitmq \
 		webfonts>=0:x11-fonts/webfonts
 
-USES=		autoreconf:build dos2unix fakeroot gmake gnome iconv localbase nodejs:22,build pkgconfig \
-		python:3.9+,build qt:5 trigger
-USE_QT=		qmake:build
+USES=		autoreconf:build dos2unix fakeroot gmake gnome iconv localbase pkgconfig \
+		python:3.9+,build qt:5 ssl:build trigger
+
+DOS2UNIX_FILES=	document-server-package/common/documentserver/nginx/includes/http-common.conf.m4
+
 USE_GITHUB=	yes
 GH_ACCOUNT=	ONLYOFFICE
 GH_PROJECT=	DocumentServer
-GH_TAGNAME=	v${DISTVERSION:C/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/}
-GH_TUPLE=	ONLYOFFICE:core:v${DISTVERSION}:core/core \
-		ONLYOFFICE:core-fonts:v${DISTVERSION}:corefonts/core-fonts \
-		ONLYOFFICE:dictionaries:v${DISTVERSION}:dictionaries/dictionaries \
-		ONLYOFFICE:document-server-integration:v${DISTVERSION}:dsi/document-server-integration \
-		ONLYOFFICE:document-templates:v${DISTVERSION}:dt/document-templates \
-		ONLYOFFICE:sdkjs:v${DISTVERSION}:sdkjs/sdkjs \
-		ONLYOFFICE:server:v${DISTVERSION}:server/server \
-		ONLYOFFICE:web-apps:v${DISTVERSION}:webapps/web-apps \
-		ONLYOFFICE:build_tools:v${DISTVERSION}:buildtools/build_tools \
+DS_TAGNAME=	${DISTVERSIONPREFIX}${DISTVERSION}.${DS_BUILD}
+GH_TUPLE=	ONLYOFFICE:core:${DS_TAGNAME}:core/core \
+		ONLYOFFICE:core-fonts:${DS_TAGNAME}:corefonts/core-fonts \
+		ONLYOFFICE:dictionaries:${DS_TAGNAME}:dictionaries/dictionaries \
+		ONLYOFFICE:document-server-integration:${DS_TAGNAME}:dsi/document-server-integration \
+		ONLYOFFICE:document-templates:${DS_TAGNAME}:dt/document-templates \
+		ONLYOFFICE:sdkjs:${DS_TAGNAME}:sdkjs/sdkjs \
+		ONLYOFFICE:server:${DS_TAGNAME}:server/server \
+		ONLYOFFICE:web-apps:${DS_TAGNAME}:webapps/web-apps \
+		ONLYOFFICE:build_tools:${DS_TAGNAME}:buildtools/build_tools \
 		ONLYOFFICE:DocumentBuilder:626d1e44db3d06ceb8298215a67ef0475912d89a:document_builder/DocumentBuilder \
 		ONLYOFFICE:onlyoffice.github.io:b26d001664d771df4f663d2d3ba7dd4a188b6cab:sdkjs_plugins_v1/onlyoffice.github.io \
-		ONLYOFFICE:document-server-package:v${DISTVERSION}:dsp/document-server-package \
+		ONLYOFFICE:document-server-package:${DS_TAGNAME}:dsp/document-server-package \
 		jasenhuang:katana-parser:be6df45:jasenhuang_katana/core/Common/3dParty/html/katana-parser \
 		google:gumbo-parser:aa91b27:google_gumbo/core/Common/3dParty/html/gumbo-parser \
+		google:brotli:a47d747:google_brotli/core/Common/3dParty/brotli/brotli \
 		hunspell:hyphen:73dd296:hunspell_hyphen/core/Common/3dParty/hyphen/hyphen \
 		mity:md4c:481fbfb:mity_md4c/core/Common/3dParty/md/md4c \
-		fsbruva:onlyoffice-DS-pkg-cache:v${NODE_VERSION_PKGFETCH}:pkg_cache/ \
-		fsbruva:onlyoffice-DS-npm-cache:v${DISTVERSION}-20250721:npm_cache/
+		fsbruva:onlyoffice-DS-pkg-cache:v${PKGFETCH_NODE_VERSION}:pkg_cache/ \
+		fsbruva:onlyoffice-DS-npm-cache:${DS_TAGNAME}-20250831:npm_cache/
 
-OPTIONS_SINGLE=		DB
-OPTIONS_SINGLE_DB=	MYSQL PGSQL
-OPTIONS_DEFAULT=	PGSQL
+USE_LDCONFIG=	yes
+USE_QT=		qmake:build
 
-MYSQL_USES+=	mysql:client
-PGSQL_USES+=	pgsql
-PGSQL_VARS=	WANT_PGSQL=client
+MAKE_ENV=	BUILD_NUMBER=${DS_BUILD} \
+		npm_package_config_node_gyp_nodedir=${LOCALBASE} \
+		npm_package_config_node_gyp_python=${PYTHON_CMD} \
+		PKG_CACHE_PATH=${WRKDIR}/.pkg-cache \
+		PRODUCT_VERSION=${DISTVERSION} \
+		PYTHON=${PYTHON_CMD}
 
-BINARY_ALIAS=	python=${PYTHON_CMD} \
-		strip=true
-USE_LDCONFIG=	yes
+# Don't create __pycache__ directory when executing node-gyp
+# This is a workaround to avoid filesystem violations during poudriere build
+MAKE_ENV+=	PYTHONDONTWRITEBYTECODE=1
 
-WWWDIR=		${PREFIX}/www/onlyoffice
-ETCDIR=		${PREFIX}/etc/onlyoffice
+CONFLICTS_BUILD=	devel/googletest
 
-DS_USERNAME=	onlyoffice
-DS_GROUPNAME=	onlyoffice
+# do not strip docservice, converter, metrics and json
+STRIP=
 
-USERS=		${DS_USERNAME}
-GROUPS=		${DS_GROUPNAME}
+ETCDIR=		${PREFIX}/etc/onlyoffice
+WWWDIR=		${PREFIX}/www/onlyoffice
+
+BINARY_ALIAS=	python=${PYTHON_CMD} \
+		strip=true
 
-PLIST_SUB=	DS_GROUPNAME=${DS_GROUPNAME} \
-		DS_USERNAME=${DS_USERNAME}
 SUB_FILES=	pkg-message \
 		onlyoffice.newsyslog.sample
 SUB_LIST=	DS_GROUPNAME=${DS_GROUPNAME} \
@@ -99,32 +111,32 @@ SUB_LIST=	DS_GROUPNAME=${DS_GROUPNAME} \
 		PREFIX=${PREFIX} \
 		WWWDIR=${WWWDIR}
 
-# node version used with "npm install @yao-pkg/pkg@6.6.0"
-# keep in sync with patch-build__tools_scripts_build__server.py and patch-document-server-package_Makefile
-NODE_VERSION_PKGFETCH=	20.19.4
+DS_USERNAME=	onlyoffice
+DS_GROUPNAME=	onlyoffice
 
-MAKE_ENV=	BUILD_NUMBER="31" \
-		PKG_CACHE_PATH=${WRKDIR}/.pkg-cache \
-		PRODUCT_VERSION=${DISTVERSION:C/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/} \
-		BUILD_NUMBER=${DISTVERSION:C/^[0-9]+\.[0-9]+\.[0-9]+\.([0-9]+)/\1/}
+USERS=		${DS_USERNAME}
+GROUPS=		${DS_GROUPNAME}
 
-# Don't create __pycache__ directory when executing node-gyp
-# This is a workaround to avoid filesystem violations during poudriere build
-MAKE_ENV+=	PYTHONDONTWRITEBYTECODE=1
+PLIST_SUB=	DS_GROUPNAME=${DS_GROUPNAME} \
+		DS_USERNAME=${DS_USERNAME}
 
-DOS2UNIX_FILES=	document-server-package/common/documentserver/nginx/includes/http-common.conf.m4
+OPTIONS_DEFAULT=	PGSQL
+OPTIONS_SINGLE=		DB
+OPTIONS_SINGLE_DB=	MYSQL PGSQL
 
-CONFLICTS_BUILD=devel/googletest
+MYSQL_USES+=	mysql:client
+PGSQL_USES+=	pgsql
+PGSQL_VARS=	WANT_PGSQL=client
 
 .include <bsd.port.pre.mk>
-.if ${ARCH} == aarch64 || ${ARCH} == armv7
+.if ${ARCH} == aarch64
 BUILD_DEPENDS+=	clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT}
-BINARY_ALIAS+=	cpp=${LOCALBASE}/bin/clang-cpp${LLVM_DEFAULT} \
-		cc=${LOCALBASE}/bin/clang${LLVM_DEFAULT} \
+BINARY_ALIAS+=	ar=${LOCALBASE}/bin/llvm-ar${LLVM_DEFAULT} \
 		c++=${LOCALBASE}/bin/clang++${LLVM_DEFAULT} \
-		ar=${LOCALBASE}/bin/llvm-ar${LLVM_DEFAULT} \
-		nm=${LOCALBASE}/bin/llvm-nm${LLVM_DEFAULT} \
-		ld=${LOCALBASE}/bin/ld.lld${LLVM_DEFAULT}
+		cc=${LOCALBASE}/bin/clang${LLVM_DEFAULT} \
+		cpp=${LOCALBASE}/bin/clang-cpp${LLVM_DEFAULT} \
+		ld=${LOCALBASE}/bin/ld.lld${LLVM_DEFAULT} \
+		nm=${LOCALBASE}/bin/llvm-nm${LLVM_DEFAULT}
 .endif
 
 post-extract:
@@ -132,7 +144,7 @@ post-extract:
 
 	@${LN} -s ${WRKSRC_npm_cache} ${WRKDIR}/.npm
 	@${LN} -s ${WRKSRC_pkg_cache} ${WRKDIR}/.pkg-cache
-	@${CP} ${DISTDIR}/node-v${NODE_VERSION_PKGFETCH}.tar.gz ${WRKDIR}/.pkg-cache/node
+	@${CP} ${DISTDIR}/node-v${PKGFETCH_NODE_VERSION}.tar.gz ${WRKDIR}/.pkg-cache/node
 
 	@${MKDIR} ${WRKSRC}/sdkjs-plugins/v1
 	@${CP} ${WRKSRC}/onlyoffice.github.io/sdkjs-plugins/v1/* ${WRKSRC}/sdkjs-plugins/v1
@@ -147,7 +159,7 @@ post-extract:
 		${WRKSRC}/document-server-package/common/documentserver/supervisor
 .endfor
 
-post-patch:
+pre-configure:
 	@${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|' \
 		${WRKSRC}/build_tools/tools/freebsd/automate.py \
 		${WRKSRC}/core/Apple/IWork.pro \
@@ -164,7 +176,8 @@ post-patch:
 		${WRKSRC}/document-server-package/common/documentserver/bin/documentserver-update-securelink.sh.m4 \
 		${WRKSRC}/document-server-package/common/documentserver/supervisor/ds-converter.conf \
 		${WRKSRC}/document-server-package/common/documentserver/supervisor/ds-docservice.conf \
-		${WRKSRC}/document-server-package/common/documentserver/supervisor/ds-metrics.conf
+		${WRKSRC}/document-server-package/common/documentserver/supervisor/ds-metrics.conf \
+		${WRKSRC}/server/Metrics/patches/modern-syslog+1.2.0.patch
 	@${REINPLACE_CMD} -e 's|%%CC%%|${CC}|' -e 's|%%CXX%%|${CXX}|' \
 		${WRKSRC}/core/Common/3dParty/v8_89/v8/build/toolchain/gcc_toolchain.gni \
 		${WRKSRC}/core/Common/base.pri
@@ -174,6 +187,9 @@ post-patch:
 		${WRKSRC}/build_tools/scripts/build_js.py \
 		${WRKSRC}/build_tools/scripts/build_server.py \
 		${WRKSRC}/document-server-package/Makefile
+	@${REINPLACE_CMD} 's|%%PKGFETCH_NODE_MAJOR_VERSION%%|${PKGFETCH_NODE_VERSION:C/^([0-9]+)\..*/\1/}|' \
+		${WRKSRC}/build_tools/scripts/build_server.py \
+		${WRKSRC}/document-server-package/Makefile
 	@${REINPLACE_CMD} -e 's|/var/lib|/var/db|' -e 's|/var/www|${LOCALBASE}/www|' \
 			  -e 's|/usr/share|${LOCALBASE}/share|' -e 's|/etc|${LOCALBASE}/etc|' \
 		${WRKSRC}/server/Common/config/production-freebsd.json \
@@ -184,6 +200,7 @@ post-patch:
 		${WRKSRC}/document-server-package/common/documentserver/bin/documentserver-flush-cache.sh.m4 \
 		${WRKSRC}/document-server-package/Makefile
 	@${RM} ${WRKSRC}/web-apps/build/patches/optipng-bin+5.1.0.patch.orig
+	@${RM} ${WRKSRC}/server/Metrics/patches/modern-syslog+1.2.0.patch.orig
 
 	@${FIND} ${WRKSRC}/server -type f -name npm-shrinkwrap.json -delete
 
@@ -202,6 +219,10 @@ do-build:
 
 	@cd ${WRKSRC}/server ; ${SETENV} ${MAKE_ENV} npm install grunt-cli
 	@cd ${WRKSRC}/server ; ${SETENV} ${MAKE_ENV} npm install grunt
+	@cd ${WRKSRC}/server/Metrics ; ${SETENV} ${MAKE_ENV} npm install modern-syslog@1.2.0 --ignore-scripts
+	@cd ${WRKSRC}/server/Metrics ; ${SETENV} ${MAKE_ENV} npm install patch-package
+	@cd ${WRKSRC}/server/Metrics ; node_modules/.bin/patch-package
+	@cd ${WRKSRC}/server/Metrics/node_modules/modern-syslog ; ${SETENV} ${MAKE_ENV} ${GMAKE}
 	@cd ${WRKSRC}/sdkjs  ; ${SETENV} ${MAKE_ENV} npm install grunt-cli
 	@cd ${WRKSRC}/sdkjs  ; ${SETENV} ${MAKE_ENV} npm install grunt
 
@@ -210,7 +231,7 @@ do-build:
 	@cd ${WRKSRC}/yao-pkg ; ${SETENV} ${MAKE_ENV} npm install @yao-pkg/pkg@6.6.0
 
 	@cd ${WRKSRC} && ${PATCH} -N -s -i ${FILESDIR}/extra-patch-pkg-fetch_lib-es5_build.js || ${TRUE}
-	@cd ${WRKSRC} && ${PATCH} -N -s -i ${FILESDIR}/extra-patch-pkg-fetch_patches_node.v${NODE_VERSION_PKGFETCH}.cpp.patch || ${TRUE}
+	@cd ${WRKSRC} && ${PATCH} -N -s -i ${FILESDIR}/extra-patch-pkg-fetch_patches_node.v${PKGFETCH_NODE_VERSION}.cpp.patch || ${TRUE}
 
 	cd ${WRKSRC}/build_tools/tools/freebsd ; ${SETENV} ${MAKE_ENV} ${PYTHON_CMD} automate.py
 	cd ${WRKSRC}/document-server-package ; ${SETENV} ${MAKE_ENV} ${GMAKE} freebsd
@@ -236,7 +257,9 @@ do-install:
 	cd ${WRKSRC}/document-server-package/common/documentserver/supervisor && ${COPYTREE_SHARE} . ${STAGEDIR}${ETCDIR}/documentserver/supervisor "-name *\.conf"
 	cd ${WRKSRC}/document-server-package/common/documentserver/logrotate && ${COPYTREE_SHARE} . ${STAGEDIR}${ETCDIR}/documentserver/logrotate "-name *\.conf"
 	@${CP} ${WRKSRC}/document-server-package/common/documentserver/nginx/ds-ssl.conf.tmpl ${WRKSRC}/document-server-package/common/documentserver/nginx/ds-ssl.conf
-.for f in ds.conf ds-ssl.conf includes/http-common.conf includes/ds-common.conf includes/ds-docservice.conf includes/ds-letsencrypt.conf includes/ds-mime.types.conf
+.for f in ds.conf ds-ssl.conf includes/http-common.conf includes/ds-common.conf \
+	includes/ds-docservice.conf includes/ds-letsencrypt.conf \
+	includes/ds-mime.types.conf
 	${INSTALL_DATA} ${WRKSRC}/document-server-package/common/documentserver/nginx/${f} ${STAGEDIR}${ETCDIR}/documentserver/nginx/${f}.sample
 .endfor
 	@echo "# Production ds-cache.conf is created automatically by documentserver-flush-cache.sh" > ${STAGEDIR}${ETCDIR}/documentserver/nginx/includes/ds-cache.conf.sample
@@ -262,9 +285,9 @@ do-install:
 create-caches-tarball:
 	# do some cleanup first
 	${RM} -r  ${WRKDIR}/.npm/_logs ${WRKDIR}/.npm/_update-notifier-last-checked ${WRKDIR}/.cache/yarn/v6/.tmp ${WRKDIR}/.cache/node-gyp
-#	${FIND} ${WRKDIR}/.cache -type f -perm 755 -exec file {} \; | ${EGREP} "ELF|PE32+|Mach-O" | ${AWK} -F ':' '{print $$1}' | ${XARGS} ${RM}
-	${FIND} ${WRKDIR}/.pkg-cache -type f -perm 755 -exec file {} \; | ${EGREP} "ELF|PE32+|Mach-O" | ${AWK} -F ':' '{print $$1}' | ${XARGS} ${RM}
-	${FIND} ${WRKDIR}/.pkg-cache -type f -perm 644 -exec file {} \; | ${EGREP} -v "${NODE_VERSION_PKGFETCH}" | ${EGREP} "built-v|node-v" | ${EGREP} "tar.gz|sha256sum" | ${AWK} -F ':' '{print $$1}' | ${XARGS} ${RM}
+#	${FIND} ${WRKDIR}/.cache -type f -perm 755 -exec ${FILE} {} \; | ${EGREP} "ELF|PE32+|Mach-O" | ${AWK} -F ':' '{print $$1}' | ${XARGS} ${RM}
+	${FIND} ${WRKDIR}/.pkg-cache -type f -perm 755 -exec ${FILE} {} \; | ${EGREP} "ELF|PE32+|Mach-O" | ${AWK} -F ':' '{print $$1}' | ${XARGS} ${RM}
+	${FIND} ${WRKDIR}/.pkg-cache -type f -perm 644 -exec ${FILE} {} \; | ${EGREP} -v "${PKGFETCH_NODE_VERSION}" | ${EGREP} "built-v|node-v" | ${EGREP} "tar.gz|sha256sum" | ${AWK} -F ':' '{print $$1}' | ${XARGS} ${RM}
 
 #	cd ${WRKDIR} && \
 #		${TAR} czf ${PORTNAME}-${DISTVERSION}_`date +%Y%m%d`-npm-cache.tar.gz .npm .pkg-cache
diff --git a/www/onlyoffice-documentserver/distinfo b/www/onlyoffice-documentserver/distinfo
index c9bcfbbcf825..7fd9dbac7c4d 100644
--- a/www/onlyoffice-documentserver/distinfo
+++ b/www/onlyoffice-documentserver/distinfo
@@ -1,45 +1,47 @@
-TIMESTAMP = 1753116846
+TIMESTAMP = 1756745621
 SHA256 (v8-8.9.255.25_all.tar.gz) = 54853ef93accc063a82a0dc29457b25c9b6d88315431d62e06ab1f84797c5f80
 SIZE (v8-8.9.255.25_all.tar.gz) = 72818814
 SHA256 (node-v20.19.4.tar.gz) = cc363c0a90fe5025939175c1c29ab67235f36ebe4b5d78506634da27a73eef5d
 SIZE (node-v20.19.4.tar.gz) = 89308973
 SHA256 (optipng-0.7.8.tar.gz) = 25a3bd68481f21502ccaa0f4c13f84dcf6b20338e4c4e8c51f2cefbd8513398c
 SIZE (optipng-0.7.8.tar.gz) = 3294014
-SHA256 (ONLYOFFICE-DocumentServer-v9.0.3.31-v9.0.3_GH0.tar.gz) = 9f12f50e2460b1199c24661d4f88ad349385dcc441740291b9f8e110686ef360
-SIZE (ONLYOFFICE-DocumentServer-v9.0.3.31-v9.0.3_GH0.tar.gz) = 973386
-SHA256 (ONLYOFFICE-core-v9.0.3.31_GH0.tar.gz) = fa6b4b2f729b4dd6d7ac6bf5393fd8ed5a3a821f3f7a376dcff891c81a8a59a4
-SIZE (ONLYOFFICE-core-v9.0.3.31_GH0.tar.gz) = 205214176
-SHA256 (ONLYOFFICE-core-fonts-v9.0.3.31_GH0.tar.gz) = 48fbe7bac524f21b9b146d8242ec9968cdb94b825aae6171cc30a285b5dd7189
-SIZE (ONLYOFFICE-core-fonts-v9.0.3.31_GH0.tar.gz) = 95377304
-SHA256 (ONLYOFFICE-dictionaries-v9.0.3.31_GH0.tar.gz) = c23a98195b429d0a8e2ed06d5119c41a3246f585ccf4d1ba5f74af9327e6dec4
-SIZE (ONLYOFFICE-dictionaries-v9.0.3.31_GH0.tar.gz) = 57973415
-SHA256 (ONLYOFFICE-document-server-integration-v9.0.3.31_GH0.tar.gz) = 2af3f3c324ec434e26649f1fa62fb9f01180b196ba44484d5c2be9b67de602b2
-SIZE (ONLYOFFICE-document-server-integration-v9.0.3.31_GH0.tar.gz) = 6129610
-SHA256 (ONLYOFFICE-document-templates-v9.0.3.31_GH0.tar.gz) = 5e12565edaf35cd44b8263fcf8182dcd18b84bb8a9a45404bf2a48cc75e3e9a6
-SIZE (ONLYOFFICE-document-templates-v9.0.3.31_GH0.tar.gz) = 3914552
-SHA256 (ONLYOFFICE-sdkjs-v9.0.3.31_GH0.tar.gz) = c043f08e86218f8b85d3a9e5d9303fa46376959cbcdd9debf02ea74f55fdf886
-SIZE (ONLYOFFICE-sdkjs-v9.0.3.31_GH0.tar.gz) = 37755295
-SHA256 (ONLYOFFICE-server-v9.0.3.31_GH0.tar.gz) = b398762099b6a0a4006bcfb332de22f09be01a83b25352a9f42cc93ae6429246
-SIZE (ONLYOFFICE-server-v9.0.3.31_GH0.tar.gz) = 4082661
-SHA256 (ONLYOFFICE-web-apps-v9.0.3.31_GH0.tar.gz) = 40bdf74edc25934b1b0339e08813bbf891b4c7ca3e4fdfe1752d787b3df31bec
-SIZE (ONLYOFFICE-web-apps-v9.0.3.31_GH0.tar.gz) = 443570310
-SHA256 (ONLYOFFICE-build_tools-v9.0.3.31_GH0.tar.gz) = 04a08acf1317ac14c45efea6af565667a64a3aea873e2e0549f695fc6a4b4374
-SIZE (ONLYOFFICE-build_tools-v9.0.3.31_GH0.tar.gz) = 33872416
+SHA256 (ONLYOFFICE-DocumentServer-v9.0.4_GH0.tar.gz) = 3315ceaa8b2e07359838d6119a48bf917e60faca8a4480129d5609a217e96f7d
+SIZE (ONLYOFFICE-DocumentServer-v9.0.4_GH0.tar.gz) = 974618
+SHA256 (ONLYOFFICE-core-v9.0.4.50_GH0.tar.gz) = eef733db5a8a1b9dfef972eff1c067ab28d1bc22151a0873dfc46dfcb897f22c
+SIZE (ONLYOFFICE-core-v9.0.4.50_GH0.tar.gz) = 205212964
+SHA256 (ONLYOFFICE-core-fonts-v9.0.4.50_GH0.tar.gz) = cde61fa272da392386d4055e9df27175e20e9b8d2a352b4b878746b2159d1a3d
+SIZE (ONLYOFFICE-core-fonts-v9.0.4.50_GH0.tar.gz) = 95376498
+SHA256 (ONLYOFFICE-dictionaries-v9.0.4.50_GH0.tar.gz) = 5d001458ca1632fcddcfc9b521047d5c1de443bd1ca458ed323540c592d8a3c6
+SIZE (ONLYOFFICE-dictionaries-v9.0.4.50_GH0.tar.gz) = 57973408
+SHA256 (ONLYOFFICE-document-server-integration-v9.0.4.50_GH0.tar.gz) = 3d000d2e82fed9d65b3642cfaa080178175e166698e218651f56f591cadb8e14
+SIZE (ONLYOFFICE-document-server-integration-v9.0.4.50_GH0.tar.gz) = 6129159
+SHA256 (ONLYOFFICE-document-templates-v9.0.4.50_GH0.tar.gz) = 958ce54f58f0d8f36149e62ee395e7c68e536a7d7320b02b135325d2c297be49
+SIZE (ONLYOFFICE-document-templates-v9.0.4.50_GH0.tar.gz) = 3914529
+SHA256 (ONLYOFFICE-sdkjs-v9.0.4.50_GH0.tar.gz) = fd620863636d6de8c1c7e8643f1b0fc29f3fb19f5128bc06ad06d97796f35d36
+SIZE (ONLYOFFICE-sdkjs-v9.0.4.50_GH0.tar.gz) = 37960532
+SHA256 (ONLYOFFICE-server-v9.0.4.50_GH0.tar.gz) = 14f392a47a6084c4b57bdcf7811577699f9297a54ac43e1ff99fed7508ffdb20
+SIZE (ONLYOFFICE-server-v9.0.4.50_GH0.tar.gz) = 4213827
+SHA256 (ONLYOFFICE-web-apps-v9.0.4.50_GH0.tar.gz) = 3d4e8a7df920ed8eb283bb03fec9fb0785d0f6a201a9980ad4be1893fa39b6f7
+SIZE (ONLYOFFICE-web-apps-v9.0.4.50_GH0.tar.gz) = 444518582
+SHA256 (ONLYOFFICE-build_tools-v9.0.4.50_GH0.tar.gz) = d52aacc9d97ed5a0b1174150e5b5b708e44d72718d6d43707ff76bf8ab56a375
+SIZE (ONLYOFFICE-build_tools-v9.0.4.50_GH0.tar.gz) = 33885000
 SHA256 (ONLYOFFICE-DocumentBuilder-626d1e44db3d06ceb8298215a67ef0475912d89a_GH0.tar.gz) = 275c3a8c993528fa56c69aedb11dd74a6fba9c3bd372874004584ae9cbb190b5
 SIZE (ONLYOFFICE-DocumentBuilder-626d1e44db3d06ceb8298215a67ef0475912d89a_GH0.tar.gz) = 31659
 SHA256 (ONLYOFFICE-onlyoffice.github.io-b26d001664d771df4f663d2d3ba7dd4a188b6cab_GH0.tar.gz) = 347b8f1d3c21b1f61a3f1fcae86f402b27ce4f8b826e18158834251046d83cf5
 SIZE (ONLYOFFICE-onlyoffice.github.io-b26d001664d771df4f663d2d3ba7dd4a188b6cab_GH0.tar.gz) = 17009005
-SHA256 (ONLYOFFICE-document-server-package-v9.0.3.31_GH0.tar.gz) = 301068c8feb5a50aa7c8c882099dfea0cb0f99ea155784e95b3870dd71635c38
-SIZE (ONLYOFFICE-document-server-package-v9.0.3.31_GH0.tar.gz) = 186645
+SHA256 (ONLYOFFICE-document-server-package-v9.0.4.50_GH0.tar.gz) = a94e3a4558afc09ff9e7fab1bb4e334015b0e5e0ff723334b714358f820c684a
+SIZE (ONLYOFFICE-document-server-package-v9.0.4.50_GH0.tar.gz) = 186664
 SHA256 (jasenhuang-katana-parser-be6df45_GH0.tar.gz) = 363ede45ba6d125fdb7323c43d34acd3d0ae9028ac18aec632eb6a623160f09a
 SIZE (jasenhuang-katana-parser-be6df45_GH0.tar.gz) = 97712
 SHA256 (google-gumbo-parser-aa91b27_GH0.tar.gz) = 1360f85c02fb2573a10f00abcddebc8f1ff277a16f66553439193af93afae335
 SIZE (google-gumbo-parser-aa91b27_GH0.tar.gz) = 2119417
+SHA256 (google-brotli-a47d747_GH0.tar.gz) = 695f229d346b006a335d0fe38290af986785d57f3b2a42654e2bc103823f5dd8
+SIZE (google-brotli-a47d747_GH0.tar.gz) = 638096
 SHA256 (hunspell-hyphen-73dd296_GH0.tar.gz) = 93e80ad69ee7afd507b12f0b58ca34a6a78347dcbb5fe5d9b6f0e19b02397ef7
 SIZE (hunspell-hyphen-73dd296_GH0.tar.gz) = 292528
 SHA256 (mity-md4c-481fbfb_GH0.tar.gz) = 04e03a69a2783ab5f2449f8864499dabb150092d5f48415a5e423f762a209d54
 SIZE (mity-md4c-481fbfb_GH0.tar.gz) = 238753
 SHA256 (fsbruva-onlyoffice-DS-pkg-cache-v20.19.4_GH0.tar.gz) = d3b6a1ad3afdfd53b57809980ae83434ae727d421e9e383ae69c32e37a570918
 SIZE (fsbruva-onlyoffice-DS-pkg-cache-v20.19.4_GH0.tar.gz) = 1292
-SHA256 (fsbruva-onlyoffice-DS-npm-cache-v9.0.3.31-20250721_GH0.tar.gz) = 7f3f935337e91c1d1d7f8d2b3e0456dbac15b617581ac064ffd322082c488fb7
-SIZE (fsbruva-onlyoffice-DS-npm-cache-v9.0.3.31-20250721_GH0.tar.gz) = 162622276
+SHA256 (fsbruva-onlyoffice-DS-npm-cache-v9.0.4.50-20250831_GH0.tar.gz) = 3f25ca729d9ec2f58342376f4be9e6d545364495f2dce0fc0dd0bdb0d5f7a6f0
+SIZE (fsbruva-onlyoffice-DS-npm-cache-v9.0.4.50-20250831_GH0.tar.gz) = 163105782
diff --git a/www/onlyoffice-documentserver/files/npm b/www/onlyoffice-documentserver/files/npm
index 63b3d2d821f1..303b86ba9102 100644
--- a/www/onlyoffice-documentserver/files/npm
+++ b/www/onlyoffice-documentserver/files/npm
@@ -1,3 +1,3 @@
 #!/bin/sh
-exec %%LOCALBASE%%/bin/npm --offline --nodedir=%%LOCALBASE%% "$@"
-#exec %%LOCALBASE%%/bin/npm --nodedir=%%LOCALBASE%% "$@"
+exec %%LOCALBASE%%/bin/npm --offline "$@"
+#exec %%LOCALBASE%%/bin/npm "$@"
diff --git a/www/onlyoffice-documentserver/files/patch-build__tools_scripts_build__server.py b/www/onlyoffice-documentserver/files/patch-build__tools_scripts_build__server.py
index 74dddee61746..4d6a198f38f6 100644
--- a/www/onlyoffice-documentserver/files/patch-build__tools_scripts_build__server.py
+++ b/www/onlyoffice-documentserver/files/patch-build__tools_scripts_build__server.py
@@ -1,8 +1,11 @@
 --- build_tools/scripts/build_server.py.orig	2025-06-11 12:56:35 UTC
 +++ build_tools/scripts/build_server.py
-@@ -41,6 +41,10 @@ def make():
+@@ -39,8 +39,12 @@
+       base.copy_file(custom_public_key, server_dir + '/Common/sources')
+ 
    #node22 packaging has issue https://github.com/yao-pkg/pkg/issues/87
-   pkg_target = "node20"
+-  pkg_target = "node20"
++  pkg_target = "node%%PKGFETCH_NODE_MAJOR_VERSION%%"
  
 +  if ("freebsd" == base.host_platform()):
 +    pkg_target += "-freebsd"
@@ -11,7 +14,7 @@
    if ("linux" == base.host_platform()):
      pkg_target += "-linux"
      if (-1 != config.option("platform").find("linux_arm64")):
-@@ -49,14 +53,15 @@ def make():
+@@ -49,14 +53,15 @@
    if ("windows" == base.host_platform()):
      pkg_target += "-win"
  
diff --git a/www/onlyoffice-documentserver/files/patch-build__tools_scripts_core__common_make__common.py b/www/onlyoffice-documentserver/files/patch-build__tools_scripts_core__common_make__common.py
index c1fbe9c44b38..cea340cf686e 100644
--- a/www/onlyoffice-documentserver/files/patch-build__tools_scripts_core__common_make__common.py
+++ b/www/onlyoffice-documentserver/files/patch-build__tools_scripts_core__common_make__common.py
@@ -1,6 +1,6 @@
---- build_tools/scripts/core_common/make_common.py.orig	2025-06-11 12:56:35 UTC
+--- build_tools/scripts/core_common/make_common.py.orig	2025-08-05 15:06:08 UTC
 +++ build_tools/scripts/core_common/make_common.py
-@@ -8,21 +8,21 @@ import config
+@@ -8,22 +8,22 @@ import config
  import base
  import glob
  
@@ -22,6 +22,7 @@
 +#import hunspell
  import glew
  import harfbuzz
+ import oo_brotli
 -import hyphen
 -import googletest
 +#import hyphen
@@ -29,7 +30,7 @@
  import libvlc
  
  def check_android_ndk_macos_arm(dir):
-@@ -38,19 +38,19 @@ def make():
+@@ -39,19 +39,19 @@ def make():
        if base.is_dir(toolchain):
          check_android_ndk_macos_arm(toolchain + "/prebuilt")
  
@@ -54,6 +55,6 @@
 -  googletest.make()
 +#  hyphen.make()
 +#  googletest.make()
+   oo_brotli.make()
  
    if config.check_option("build-libvlc", "1"):
-     libvlc.make()
diff --git a/www/onlyoffice-documentserver/files/patch-build__tools_scripts_core__common_modules_iwork.py b/www/onlyoffice-documentserver/files/patch-build__tools_scripts_core__common_modules_iwork.py
index fc7d27d3fabf..74b86c964128 100644
--- a/www/onlyoffice-documentserver/files/patch-build__tools_scripts_core__common_modules_iwork.py
+++ b/www/onlyoffice-documentserver/files/patch-build__tools_scripts_core__common_modules_iwork.py
@@ -1,5 +1,5 @@
---- build_tools/scripts/core_common/modules/iwork.py.orig	2025-03-08 16:01:52.467009000 +0100
-+++ build_tools/scripts/core_common/modules/iwork.py	2025-03-08 16:19:57.046228000 +0100
+--- build_tools/scripts/core_common/modules/iwork.py.orig	2025-08-05 15:06:08 UTC
++++ build_tools/scripts/core_common/modules/iwork.py
 @@ -30,9 +30,9 @@ def make(use_gperf = True):
    if use_gperf:
      cmd_args.append("--gperf")
diff --git a/www/onlyoffice-documentserver/files/patch-build__tools_scripts_core__common_modules_v8.py b/www/onlyoffice-documentserver/files/patch-build__tools_scripts_core__common_modules_v8.py
index b2204a037714..2b9632e8092f 100644
--- a/www/onlyoffice-documentserver/files/patch-build__tools_scripts_core__common_modules_v8.py
+++ b/www/onlyoffice-documentserver/files/patch-build__tools_scripts_core__common_modules_v8.py
@@ -1,14 +1,14 @@
---- build_tools/scripts/core_common/modules/v8.py.orig	2024-02-07 10:44:24.000000000 +0100
-+++ build_tools/scripts/core_common/modules/v8.py	2024-03-01 10:40:07.626578000 +0100
-@@ -9,6 +9,7 @@ def clean():
+--- build_tools/scripts/core_common/modules/v8.py.orig	2025-08-05 15:06:08 UTC
++++ build_tools/scripts/core_common/modules/v8.py
+@@ -9,6 +9,7 @@ import subprocess
  import v8_89
  
  def clean():
 +  return
    if base.is_dir("depot_tools"):
-     base.delete_dir_with_access_error("depot_tools");
+     base.delete_dir_with_access_error("depot_tools")
      base.delete_dir("depot_tools")
-@@ -26,6 +27,8 @@ def is_main_platform():
+@@ -26,6 +27,8 @@ def clean():
  def is_main_platform():
    if (config.check_option("platform", "win_64") or config.check_option("platform", "win_32")):
      return True
@@ -44,7 +44,7 @@
    if not base.is_dir("v8"):
 @@ -121,8 +109,8 @@ def make():
        base.delete_dir_with_access_error("v8/buildtools/win")
-       base.cmd("git", ["config", "--system", "core.longpaths", "true"])
+       base.cmd("git", ["config", "--system", "core.longpaths", "true"], True)
        base.cmd("gclient", ["sync", "--force"], True)
 -    else:
 -      base.cmd("gclient", ["sync"], True) 
diff --git a/www/onlyoffice-documentserver/files/patch-build__tools_scripts_core__common_modules_v8__89.py b/www/onlyoffice-documentserver/files/patch-build__tools_scripts_core__common_modules_v8__89.py
index 187eb0d78e41..23d05d781124 100644
--- a/www/onlyoffice-documentserver/files/patch-build__tools_scripts_core__common_modules_v8__89.py
+++ b/www/onlyoffice-documentserver/files/patch-build__tools_scripts_core__common_modules_v8__89.py
@@ -1,6 +1,6 @@
---- build_tools/scripts/core_common/modules/v8_89.py.orig	2024-02-07 10:44:24.000000000 +0100
-+++ build_tools/scripts/core_common/modules/v8_89.py	2024-03-01 10:42:06.847661000 +0100
-@@ -115,46 +115,7 @@ def make():
+--- build_tools/scripts/core_common/modules/v8_89.py.orig	2025-08-05 15:06:08 UTC
++++ build_tools/scripts/core_common/modules/v8_89.py
+@@ -123,46 +123,7 @@ def make():
      base.cmd("git", ["config", "--global", "http.postBuffer", "157286400"], True)
  
    os.chdir(base_dir)
@@ -47,9 +47,9 @@
    os.chdir("v8")
    
    gn_args = ["v8_static_library=true",
-@@ -163,6 +124,11 @@ def make():
+@@ -170,6 +131,11 @@ def make():
+              "v8_monolithic=true",
               "v8_use_external_startup_data=false",
-              "use_custom_libcxx=false",
               "treat_warnings_as_errors=false"]
 +
 +  if config.check_option("platform", "freebsd_64"):
diff --git a/www/onlyoffice-documentserver/files/patch-clang19 b/www/onlyoffice-documentserver/files/patch-clang19
index a17acc4bf5f9..b095611d738d 100644
--- a/www/onlyoffice-documentserver/files/patch-clang19
+++ b/www/onlyoffice-documentserver/files/patch-clang19
@@ -21,9 +21,7 @@ Date:   2023-08-17T13:50:11-07:00
     Auto-Submit: Andrey Kosyakov <caseq@chromium.org>
     Cr-Commit-Position: refs/heads/main@{#89559}
 
-diff --git deps/v8/src/inspector/string-16.cc deps/v8/src/inspector/string-16.cc
-index a8b786a8166..6df9963e970 100644
---- core/Common/3dParty/v8_89/v8/src/inspector/string-16.cc
+--- core/Common/3dParty/v8_89/v8/src/inspector/string-16.cc.orig	2021-04-12 21:00:33 UTC
 +++ core/Common/3dParty/v8_89/v8/src/inspector/string-16.cc
 @@ -27,7 +27,7 @@ bool isSpaceOrNewLine(UChar c) {
    return isASCII(c) && c <= ' ' && (c == ' ' || (c <= 0xD && c >= 0x9));
@@ -34,7 +32,7 @@ index a8b786a8166..6df9963e970 100644
                              bool* ok = nullptr) {
    std::vector<char> buffer;
    buffer.reserve(length + 1);
-@@ -50,6 +50,8 @@ int64_t charactersToInteger(const UChar* characters, size_t length,
+@@ -50,6 +50,8 @@ int64_t charactersToInteger(const UChar* characters, s
  
  String16::String16(const UChar* characters, size_t size)
      : m_impl(characters, size) {}
@@ -43,21 +41,18 @@ index a8b786a8166..6df9963e970 100644
  
  String16::String16(const UChar* characters) : m_impl(characters) {}
  
-@@ -241,6 +243,10 @@ String16 String16::fromUTF16LE(const UChar* stringStart, size_t length) {
+@@ -231,6 +233,10 @@ String16 String16::fromUTF16LE(const UChar* stringStar
+   // No need to do anything on little endian machines.
+   return String16(stringStart, length);
  #endif  // V8_TARGET_BIG_ENDIAN
- }
- 
-+String16 String16::fromUTF16LE(const uint16_t* stringStart, size_t length) {
-+  return fromUTF16LE(reinterpret_cast<const UChar*>(stringStart), length);
 +}
 +
- std::string String16::utf8() const {
-   return UTF16ToUTF8(m_impl.data(), m_impl.size());
++String16 String16::fromUTF16LE(const uint16_t* stringStart, size_t length) {
++  return fromUTF16LE(reinterpret_cast<const UChar*>(stringStart), length);
  }
-
-diff --git deps/v8/src/inspector/string-16.h deps/v8/src/inspector/string-16.h
-index 1678ffb2e1e..d9f6c466ab1 100644
---- core/Common/3dParty/v8_89/v8/src/inspector/string-16.h
+ 
+ std::string String16::utf8() const {
+--- core/Common/3dParty/v8_89/v8/src/inspector/string-16.h.orig	2021-04-12 21:00:33 UTC
 +++ core/Common/3dParty/v8_89/v8/src/inspector/string-16.h
 @@ -6,6 +6,7 @@
  #define V8_INSPECTOR_STRING_16_H_
@@ -67,7 +62,7 @@ index 1678ffb2e1e..d9f6c466ab1 100644
  #include <cctype>
  #include <climits>
  #include <cstring>
-@@ -17,7 +18,7 @@ namespace v8_inspector {
+@@ -17,7 +18,7 @@
  
  namespace v8_inspector {
  
@@ -104,10 +99,7 @@ index 1678ffb2e1e..d9f6c466ab1 100644
                                          size_t length);
  
    std::size_t hash() const {
-
-diff --git deps/v8/src/inspector/v8-string-conversions.cc deps/v8/src/inspector/v8-string-conversions.cc
-index 0c75e66b972..8cf19be816c 100644
---- core/Common/3dParty/v8_89/v8/src/inspector/v8-string-conversions.cc
+--- core/Common/3dParty/v8_89/v8/src/inspector/v8-string-conversions.cc.orig	2021-04-12 21:00:33 UTC
 +++ core/Common/3dParty/v8_89/v8/src/inspector/v8-string-conversions.cc
 @@ -12,7 +12,7 @@
  
@@ -118,7 +110,7 @@ index 0c75e66b972..8cf19be816c 100644
  using UChar32 = uint32_t;
  
  bool isASCII(UChar c) { return !(c & ~0x7F); }
-@@ -386,7 +386,7 @@ std::string UTF16ToUTF8(const UChar* stringStart, size_t length) {
+@@ -389,7 +389,7 @@ std::string UTF16ToUTF8(const UChar* stringStart, size
  
  std::basic_string<UChar> UTF8ToUTF16(const char* stringStart, size_t length) {
    if (!stringStart || !length) return std::basic_string<UChar>();
@@ -127,7 +119,7 @@ index 0c75e66b972..8cf19be816c 100644
    UChar* bufferStart = buffer.data();
  
    UChar* bufferCurrent = bufferStart;
-@@ -395,7 +395,7 @@ std::basic_string<UChar> UTF8ToUTF16(const char* stringStart, size_t length) {
+@@ -398,7 +398,7 @@ std::basic_string<UChar> UTF8ToUTF16(const char* strin
                           reinterpret_cast<const char*>(stringStart + length),
                           &bufferCurrent, bufferCurrent + buffer.size(), nullptr,
                           true) != conversionOK)
@@ -136,9 +128,7 @@ index 0c75e66b972..8cf19be816c 100644
    size_t utf16Length = bufferCurrent - bufferStart;
    return std::basic_string<UChar>(bufferStart, bufferStart + utf16Length);
  }
-diff --git deps/v8/src/inspector/v8-string-conversions.h deps/v8/src/inspector/v8-string-conversions.h
-index eb33c6816a5..1126255dac2 100644
---- core/Common/3dParty/v8_89/v8/src/inspector/v8-string-conversions.h
+--- core/Common/3dParty/v8_89/v8/src/inspector/v8-string-conversions.h.orig	2021-04-12 21:00:33 UTC
 +++ core/Common/3dParty/v8_89/v8/src/inspector/v8-string-conversions.h
 @@ -5,13 +5,15 @@
  #ifndef V8_INSPECTOR_V8_STRING_CONVERSIONS_H_
@@ -158,7 +148,7 @@ index eb33c6816a5..1126255dac2 100644
  }  // namespace v8_inspector
  
  #endif  // V8_INSPECTOR_V8_STRING_CONVERSIONS_H_
---- core/Common/3dParty/v8_89/v8/third_party/inspector_protocol/crdtp/test_platform_v8.cc
+--- core/Common/3dParty/v8_89/v8/third_party/inspector_protocol/crdtp/test_platform_v8.cc.orig	2021-04-12 21:00:33 UTC
 +++ core/Common/3dParty/v8_89/v8/third_party/inspector_protocol/crdtp/test_platform_v8.cc
 @@ -11,13 +11,16 @@
  namespace v8_crdtp {
diff --git a/www/onlyoffice-documentserver/files/patch-core_Apple_IWork.cpp b/www/onlyoffice-documentserver/files/patch-core_Apple_IWork.cpp
index 3ee3b46a22d5..1ff708a7590b 100644
--- a/www/onlyoffice-documentserver/files/patch-core_Apple_IWork.cpp
+++ b/www/onlyoffice-documentserver/files/patch-core_Apple_IWork.cpp
@@ -1,5 +1,5 @@
---- core/Apple/IWork.cpp.orig	2025-03-08 16:26:16.590289000 +0100
-+++ core/Apple/IWork.cpp	2025-03-08 16:45:14.932729000 +0100
+--- core/Apple/IWork.cpp.orig	2025-08-02 18:33:34 UTC
++++ core/Apple/IWork.cpp
 @@ -6,7 +6,8 @@
  #include <libodfgen/OdtGenerator.hxx>
  #include <libodfgen/OdsGenerator.hxx>
diff --git a/www/onlyoffice-documentserver/files/patch-core_Apple_IWork.pro b/www/onlyoffice-documentserver/files/patch-core_Apple_IWork.pro
index 49dbd6d80585..ae16f66a185b 100644
--- a/www/onlyoffice-documentserver/files/patch-core_Apple_IWork.pro
+++ b/www/onlyoffice-documentserver/files/patch-core_Apple_IWork.pro
@@ -1,6 +1,6 @@
---- core/Apple/IWork.pro.orig	2025-03-08 16:31:03.447633000 +0100
-+++ core/Apple/IWork.pro	2025-03-08 17:07:58.170674000 +0100
-@@ -10,6 +10,14 @@ DEFINES += IWORK_USE_DYNAMIC_LIBRARY
+--- core/Apple/IWork.pro.orig	2025-08-02 18:33:34 UTC
++++ core/Apple/IWork.pro
+@@ -10,6 +10,14 @@ CONFIG += plugin
  
  DEFINES += IWORK_USE_DYNAMIC_LIBRARY
  
@@ -15,7 +15,7 @@
  CORE_ROOT_DIR = $$PWD/..
  PWD_ROOT_DIR = $$PWD
  include($$CORE_ROOT_DIR/Common/base.pri)
-@@ -38,8 +46,8 @@ include($$CORE_ROOT_DIR/Common/3dParty/apple/apple.pri
+@@ -38,8 +46,8 @@ include($$PWD/../DesktopEditor/xml/build/qt/libxml2.pr
  include($$CORE_ROOT_DIR/Common/3dParty/apple/apple.pri)
  
  # TEST
diff --git a/www/onlyoffice-documentserver/files/patch-core_Apple_StringDocumentHandler.hxx b/www/onlyoffice-documentserver/files/patch-core_Apple_StringDocumentHandler.hxx
index 0d72b10783f3..47c1e5bbbbd7 100644
--- a/www/onlyoffice-documentserver/files/patch-core_Apple_StringDocumentHandler.hxx
+++ b/www/onlyoffice-documentserver/files/patch-core_Apple_StringDocumentHandler.hxx
@@ -1,5 +1,5 @@
---- core/Apple/StringDocumentHandler.hxx.orig	2025-07-21 00:30:34.163412000 +0000
-+++ core/Apple/StringDocumentHandler.hxx	2025-07-21 03:02:42.802399000 +0000
+--- core/Apple/StringDocumentHandler.hxx.orig	2025-08-08 19:00:43 UTC
++++ core/Apple/StringDocumentHandler.hxx
 @@ -0,0 +1,154 @@
 +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 +/* writerperfect
diff --git a/www/onlyoffice-documentserver/files/patch-core_Common_3dParty_brotli_make.py b/www/onlyoffice-documentserver/files/patch-core_Common_3dParty_brotli_make.py
new file mode 100644
index 000000000000..5313593d9366
--- /dev/null
+++ b/www/onlyoffice-documentserver/files/patch-core_Common_3dParty_brotli_make.py
@@ -0,0 +1,11 @@
+--- core/Common/3dParty/brotli/make.py.orig	2025-08-02 18:33:34 UTC
++++ core/Common/3dParty/brotli/make.py
+@@ -10,7 +10,7 @@ def clear_module():
+     base.delete_dir_with_access_error("brotli")
+   return
+ 
+-base.check_module_version("1", clear_module)
++#base.check_module_version("1", clear_module)
+ 
+ # fetch harfbuzz
+ if not base.is_dir("brotli"):
diff --git a/www/onlyoffice-documentserver/files/patch-core_Common_3dParty_openssl_openssl.pri b/www/onlyoffice-documentserver/files/patch-core_Common_3dParty_openssl_openssl.pri
index dc322326cf8e..bdd57c356f17 100644
--- a/www/onlyoffice-documentserver/files/patch-core_Common_3dParty_openssl_openssl.pri
+++ b/www/onlyoffice-documentserver/files/patch-core_Common_3dParty_openssl_openssl.pri
@@ -1,5 +1,5 @@
---- core/Common/3dParty/openssl/openssl.pri.orig	2023-06-14 14:31:26.960051000 +0200
-+++ core/Common/3dParty/openssl/openssl.pri	2023-06-14 14:31:00.960232000 +0200
+--- core/Common/3dParty/openssl/openssl.pri.orig	2025-08-02 18:33:34 UTC
++++ core/Common/3dParty/openssl/openssl.pri
 @@ -32,8 +32,8 @@ core_windows {
      LIBS += $$OPENSSL_LIBS_DIRECTORY/libssl.lib
  	LIBS += $$OPENSSL_LIBS_DIRECTORY/libcrypto.lib
diff --git a/www/onlyoffice-documentserver/files/patch-core_Common_3dParty_v8__89_v8_build_config_clang_BUILD.gn b/www/onlyoffice-documentserver/files/patch-core_Common_3dParty_v8__89_v8_build_config_clang_BUILD.gn
index 179516c183f5..c58ca9dcf1f7 100644
--- a/www/onlyoffice-documentserver/files/patch-core_Common_3dParty_v8__89_v8_build_config_clang_BUILD.gn
+++ b/www/onlyoffice-documentserver/files/patch-core_Common_3dParty_v8__89_v8_build_config_clang_BUILD.gn
@@ -1,7 +1,7 @@
 Fix build with llvm16
 
---- core/Common/3dParty/v8_89/v8/build/config/clang/BUILD.gn.orig	2023-07-17 10:46:22.246271000 +0200
-+++ core/Common/3dParty/v8_89/v8/build/config/clang/BUILD.gn	2023-07-17 10:46:59.136940000 +0200
+--- core/Common/3dParty/v8_89/v8/build/config/clang/BUILD.gn.orig	2022-05-13 11:39:36 UTC
++++ core/Common/3dParty/v8_89/v8/build/config/clang/BUILD.gn
 @@ -38,5 +38,6 @@ config("extra_warnings") {
      "-Wstring-conversion",
  
diff --git a/www/onlyoffice-documentserver/files/patch-core_Common_3dParty_v8_v8_src_base_macros.h b/www/onlyoffice-documentserver/files/patch-core_Common_3dParty_v8_v8_src_base_macros.h
index 156b89cc28f9..2a60db707302 100644
--- a/www/onlyoffice-documentserver/files/patch-core_Common_3dParty_v8_v8_src_base_macros.h
+++ b/www/onlyoffice-documentserver/files/patch-core_Common_3dParty_v8_v8_src_base_macros.h
@@ -1,5 +1,5 @@
---- core/Common/3dParty/v8_89/v8/src/base/macros.h.orig	2021-04-12 21:00:33.000000000 +0000
-+++ core/Common/3dParty/v8_89/v8/src/base/macros.h	2025-06-20 09:42:18.838769000 +0000
+--- core/Common/3dParty/v8_89/v8/src/base/macros.h.orig	2021-04-12 21:00:33 UTC
++++ core/Common/3dParty/v8_89/v8/src/base/macros.h
 @@ -203,7 +203,8 @@
  // base::is_trivially_copyable will differ for these cases.
  template <typename T>
diff --git a/www/onlyoffice-documentserver/files/patch-core_Common_3dParty_v8_v8_testing_gmock_BUILD.gn b/www/onlyoffice-documentserver/files/patch-core_Common_3dParty_v8_v8_testing_gmock_BUILD.gn
index 6cc129f1398e..121d7547862b 100644
--- a/www/onlyoffice-documentserver/files/patch-core_Common_3dParty_v8_v8_testing_gmock_BUILD.gn
+++ b/www/onlyoffice-documentserver/files/patch-core_Common_3dParty_v8_v8_testing_gmock_BUILD.gn
@@ -1,5 +1,5 @@
---- core/Common/3dParty/v8_89/v8/testing/gmock/BUILD.gn.orig	2022-05-13 18:53:22.198863000 +0200
-+++ core/Common/3dParty/v8_89/v8/testing/gmock/BUILD.gn	2022-05-13 18:53:05.169357000 +0200
+--- core/Common/3dParty/v8_89/v8/testing/gmock/BUILD.gn.orig	2022-05-13 20:53:22 UTC
++++ core/Common/3dParty/v8_89/v8/testing/gmock/BUILD.gn
 @@ -15,12 +15,13 @@ source_set("gmock") {
      "include/gmock/gmock-matchers.h",
      "include/gmock/gmock.h",
diff --git a/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_common_Directory.cpp b/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_common_Directory.cpp
index 8677840d1541..b227bfc3e1fa 100644
--- a/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_common_Directory.cpp
+++ b/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_common_Directory.cpp
@@ -45,7 +45,7 @@
  		BYTE* pUtf8 = NULL;
  		LONG lLen = 0;
  		NSFile::CUtf8Converter::GetUtf8StringFromUnicode(strSrc.c_str(), strSrc.length(), pUtf8, lLen, false);
-@@ -495,14 +495,14 @@ namespace NSDirectory
+@@ -495,7 +495,7 @@ namespace NSDirectory
  		}
  #if defined(_WIN32) || defined (_WIN64)
  		if (deleteRoot) RemoveDirectoryW(strDirectory.c_str());
@@ -54,11 +54,3 @@
  		BYTE* pUtf8 = NULL;
  		LONG lLen = 0;
  		NSFile::CUtf8Converter::GetUtf8StringFromUnicode(strDirectory.c_str(), strDirectory.length(), pUtf8, lLen, false);
- 		rmdir((char*)pUtf8);
- 		delete [] pUtf8;
- 
--		if (deleteRoot = false)CreateDirectory(strDirectory);
-+		if (deleteRoot == false)CreateDirectory(strDirectory);
- #elif MAC
- 		BYTE* pUtf8 = NULL;
- 		LONG lLen = 0;
diff --git a/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_doctrenderer_doctrenderer.pri b/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_doctrenderer_doctrenderer.pri
index fff991f7c095..a04a6f66f14c 100644
--- a/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_doctrenderer_doctrenderer.pri
+++ b/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_doctrenderer_doctrenderer.pri
@@ -1,6 +1,6 @@
---- ./core/DesktopEditor/doctrenderer/doctrenderer.pri.orig	2025-03-07 15:39:12.468049000 +0100
-+++ ./core/DesktopEditor/doctrenderer/doctrenderer.pri	2025-03-07 15:38:54.771039000 +0100
-@@ -22,6 +22,10 @@ core_android:DEFINES += DISABLE_MEMORY_LIMITATION
+--- core/DesktopEditor/doctrenderer/doctrenderer.pri.orig	2025-08-02 18:33:34 UTC
++++ core/DesktopEditor/doctrenderer/doctrenderer.pri
+@@ -22,6 +22,10 @@ ADD_DEPENDENCY(graphics, kernel, UnicodeConverter, ker
  #CONFIG += v8_version_60
  core_android:DEFINES += DISABLE_MEMORY_LIMITATION
  
diff --git a/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_doctrenderer_hash.cpp b/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_doctrenderer_hash.cpp
index c0d1ba12e105..c3be6a05a0db 100644
--- a/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_doctrenderer_hash.cpp
+++ b/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_doctrenderer_hash.cpp
@@ -1,5 +1,5 @@
---- core/DesktopEditor/doctrenderer/hash.cpp.orig	2023-06-14 12:14:26.656325000 +0200
-+++ core/DesktopEditor/doctrenderer/hash.cpp	2023-06-14 14:23:39.149523000 +0200
+--- core/DesktopEditor/doctrenderer/hash.cpp.orig	2025-08-02 18:33:34 UTC
++++ core/DesktopEditor/doctrenderer/hash.cpp
 @@ -4,12 +4,12 @@
  #include "../common/Base64.h"
  #endif
diff --git a/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_fontengine_TextShaper.cpp b/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_fontengine_TextShaper.cpp
index c87f8a976e29..41272dabf360 100644
--- a/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_fontengine_TextShaper.cpp
+++ b/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_fontengine_TextShaper.cpp
@@ -1,5 +1,5 @@
---- core/DesktopEditor/fontengine/TextShaper.cpp.orig	2022-09-27 21:25:17.640269000 +0200
-+++ core/DesktopEditor/fontengine/TextShaper.cpp	2022-09-27 21:21:12.793630000 +0200
+--- core/DesktopEditor/fontengine/TextShaper.cpp.orig	2025-08-02 18:33:34 UTC
++++ core/DesktopEditor/fontengine/TextShaper.cpp
 @@ -649,9 +649,9 @@ namespace NSShaper
  
  #ifdef SUPPORT_HARFBUZZ_SHAPER
diff --git a/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_fontengine_js_cpp_text.cpp b/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_fontengine_js_cpp_text.cpp
index b25ccec02bb0..7600e5857aae 100644
--- a/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_fontengine_js_cpp_text.cpp
+++ b/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_fontengine_js_cpp_text.cpp
@@ -1,6 +1,6 @@
---- core/DesktopEditor/fontengine/js/cpp/text.cpp.orig	2022-09-27 21:25:17.640548000 +0200
-+++ core/DesktopEditor/fontengine/js/cpp/text.cpp	2022-09-27 21:22:11.216341000 +0200
-@@ -532,9 +532,9 @@ WASM_EXPORT unsigned char* ASC_FT_Get_Glyph_Render_Buf
+--- core/DesktopEditor/fontengine/js/cpp/text.cpp.orig	2025-08-02 18:33:34 UTC
++++ core/DesktopEditor/fontengine/js/cpp/text.cpp
+@@ -558,9 +558,9 @@ WASM_EXPORT unsigned char* ASC_FT_Get_Glyph_Render_Buf
  // ------------------------------------------------------------
  
  // HARFBUZZ
diff --git a/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_freetype-2.10.4_src_autofit_afshaper.h b/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_freetype-2.10.4_src_autofit_afshaper.h
index a8b84e99b90a..aa02570df4ef 100644
--- a/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_freetype-2.10.4_src_autofit_afshaper.h
+++ b/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_freetype-2.10.4_src_autofit_afshaper.h
@@ -1,5 +1,5 @@
---- core/DesktopEditor/freetype-2.10.4/src/autofit/afshaper.h.orig	2022-09-27 21:25:17.639848000 +0200
-+++ core/DesktopEditor/freetype-2.10.4/src/autofit/afshaper.h	2022-09-27 21:21:29.147465000 +0200
+--- core/DesktopEditor/freetype-2.10.4/src/autofit/afshaper.h.orig	2025-08-02 18:33:34 UTC
++++ core/DesktopEditor/freetype-2.10.4/src/autofit/afshaper.h
 @@ -25,9 +25,9 @@
  
  #ifdef FT_CONFIG_OPTION_USE_HARFBUZZ
diff --git a/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_pluginsmanager_main.cpp b/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_pluginsmanager_main.cpp
index 0388d97191e9..2274a7dc29a9 100644
--- a/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_pluginsmanager_main.cpp
+++ b/www/onlyoffice-documentserver/files/patch-core_DesktopEditor_pluginsmanager_main.cpp
@@ -1,5 +1,5 @@
---- core/DesktopEditor/pluginsmanager/main.cpp.orig	2023-06-19 10:50:14.262222000 +0200
-+++ core/DesktopEditor/pluginsmanager/main.cpp	2023-06-19 10:50:48.083404000 +0200
+--- core/DesktopEditor/pluginsmanager/main.cpp.orig	2025-08-02 18:33:34 UTC
++++ core/DesktopEditor/pluginsmanager/main.cpp
 @@ -52,7 +52,7 @@
  #undef GetTempPath
  #endif
diff --git a/www/onlyoffice-documentserver/files/patch-core_MsBinaryFile_XlsFile_Format_Logic_Biff__structures_BitMarkedStructs.h b/www/onlyoffice-documentserver/files/patch-core_MsBinaryFile_XlsFile_Format_Logic_Biff__structures_BitMarkedStructs.h
index 93c92cc9fcba..9e69da74cb0a 100644
--- a/www/onlyoffice-documentserver/files/patch-core_MsBinaryFile_XlsFile_Format_Logic_Biff__structures_BitMarkedStructs.h
+++ b/www/onlyoffice-documentserver/files/patch-core_MsBinaryFile_XlsFile_Format_Logic_Biff__structures_BitMarkedStructs.h
@@ -1,5 +1,5 @@
---- core/MsBinaryFile/XlsFile/Format/Logic/Biff_structures/BitMarkedStructs.h.orig	2023-01-27 21:00:04.000000000 +0100
-+++ core/MsBinaryFile/XlsFile/Format/Logic/Biff_structures/BitMarkedStructs.h	2023-02-13 11:18:01.384933000 +0100
+--- core/MsBinaryFile/XlsFile/Format/Logic/Biff_structures/BitMarkedStructs.h.orig	2025-08-02 18:33:34 UTC
++++ core/MsBinaryFile/XlsFile/Format/Logic/Biff_structures/BitMarkedStructs.h
 @@ -31,7 +31,7 @@
   */
  #pragma once
diff --git a/www/onlyoffice-documentserver/files/patch-core_OOXML_Base_Types__32.h b/www/onlyoffice-documentserver/files/patch-core_OOXML_Base_Types__32.h
index 8e3814ae3609..e81ae497b6ec 100644
--- a/www/onlyoffice-documentserver/files/patch-core_OOXML_Base_Types__32.h
+++ b/www/onlyoffice-documentserver/files/patch-core_OOXML_Base_Types__32.h
@@ -1,5 +1,5 @@
---- ./core/OOXML/Base/Types_32.h.orig	2023-02-13 11:19:10.378060000 +0100
-+++ ./core/OOXML/Base/Types_32.h	2023-02-13 11:19:35.144374000 +0100
+--- core/OOXML/Base/Types_32.h.orig	2025-08-02 18:33:34 UTC
++++ core/OOXML/Base/Types_32.h
 @@ -38,7 +38,7 @@
  	typedef unsigned __int16	_UINT16;
  	typedef unsigned __int32	_UINT32;
diff --git a/www/onlyoffice-documentserver/files/patch-core_OOXML_Binary_Sheets_Reader_ChartFromToBinary.cpp b/www/onlyoffice-documentserver/files/patch-core_OOXML_Binary_Sheets_Reader_ChartFromToBinary.cpp
index 839338642d3b..efc36eda738f 100644
--- a/www/onlyoffice-documentserver/files/patch-core_OOXML_Binary_Sheets_Reader_ChartFromToBinary.cpp
+++ b/www/onlyoffice-documentserver/files/patch-core_OOXML_Binary_Sheets_Reader_ChartFromToBinary.cpp
@@ -1,6 +1,6 @@
---- core/OOXML/Binary/Sheets/Reader/ChartFromToBinary.cpp.orig	2023-06-14 14:53:55.376306000 +0200
-+++ core/OOXML/Binary/Sheets/Reader/ChartFromToBinary.cpp	2023-06-14 14:54:16.425588000 +0200
-@@ -10010,7 +10010,7 @@ namespace BinXlsxRW
+--- core/OOXML/Binary/Sheets/Reader/ChartFromToBinary.cpp.orig	2025-08-02 18:33:34 UTC
++++ core/OOXML/Binary/Sheets/Reader/ChartFromToBinary.cpp
+@@ -10121,7 +10121,7 @@ namespace BinXlsxRW
  			WriteCT_String(*oVal.m_gapDepth);
  			m_oBcw.WriteItemEnd(nCurPos);
  		}
diff --git a/www/onlyoffice-documentserver/files/patch-core_OOXML_XlsxFormat_Chart_ChartSerialize.cpp b/www/onlyoffice-documentserver/files/patch-core_OOXML_XlsxFormat_Chart_ChartSerialize.cpp
index 3e627ca23ed7..74fa1aabd8e0 100644
--- a/www/onlyoffice-documentserver/files/patch-core_OOXML_XlsxFormat_Chart_ChartSerialize.cpp
+++ b/www/onlyoffice-documentserver/files/patch-core_OOXML_XlsxFormat_Chart_ChartSerialize.cpp
@@ -1,5 +1,5 @@
---- core/OOXML/XlsxFormat/Chart/ChartSerialize.cpp.orig	2023-06-14 14:33:42.265435000 +0200
-+++ core/OOXML/XlsxFormat/Chart/ChartSerialize.cpp	2023-06-14 14:33:54.354616000 +0200
+--- core/OOXML/XlsxFormat/Chart/ChartSerialize.cpp.orig	2025-08-02 18:33:34 UTC
++++ core/OOXML/XlsxFormat/Chart/ChartSerialize.cpp
 @@ -1282,7 +1282,7 @@ xmlns:c16r2=\"http://schemas.microsoft.com/office/draw
  		{
  			writer.WriteString(L"<");
diff --git a/www/onlyoffice-documentserver/files/patch-core_OOXML_XlsxFormat_Common.cpp b/www/onlyoffice-documentserver/files/patch-core_OOXML_XlsxFormat_Common.cpp
index 7ed08a65819b..b56bb6c6e380 100644
--- a/www/onlyoffice-documentserver/files/patch-core_OOXML_XlsxFormat_Common.cpp
+++ b/www/onlyoffice-documentserver/files/patch-core_OOXML_XlsxFormat_Common.cpp
@@ -1,5 +1,5 @@
---- core/OOXML/XlsxFormat/Common.cpp.orig	2023-02-13 11:53:45.780601000 +0100
-+++ core/OOXML/XlsxFormat/Common.cpp	2023-02-13 11:54:15.232608000 +0100
+--- core/OOXML/XlsxFormat/Common.cpp.orig	2025-08-02 18:33:34 UTC
++++ core/OOXML/XlsxFormat/Common.cpp
 @@ -48,6 +48,10 @@ char* gcvt(double x, int n, char* b)
  #define _gcvt gcvt
  #endif
diff --git a/www/onlyoffice-documentserver/files/patch-core_OfficeUtils_src_zlib-1.2.11_gzguts.h b/www/onlyoffice-documentserver/files/patch-core_OfficeUtils_src_zlib-1.2.11_gzguts.h
index 89f4e678060d..f69125a7034c 100644
--- a/www/onlyoffice-documentserver/files/patch-core_OfficeUtils_src_zlib-1.2.11_gzguts.h
+++ b/www/onlyoffice-documentserver/files/patch-core_OfficeUtils_src_zlib-1.2.11_gzguts.h
@@ -1,5 +1,5 @@
---- core/OfficeUtils/src/zlib-1.2.11/gzguts.h.orig      2025-04-16 08:37:24.000000000 +0000
-+++ core/OfficeUtils/src/zlib-1.2.11/gzguts.h   2025-06-19 20:31:01.755367000 +0000
+--- core/OfficeUtils/src/zlib-1.2.11/gzguts.h.orig      2025-04-16 08:37:24 UTC
++++ core/OfficeUtils/src/zlib-1.2.11/gzguts.h
 @@ -33,6 +33,8 @@
 
  #ifdef _WIN32
diff --git a/www/onlyoffice-documentserver/files/patch-core_PdfFile_PdfFile.pro b/www/onlyoffice-documentserver/files/patch-core_PdfFile_PdfFile.pro
index 08b3375f3170..5f6e12410a78 100644
--- a/www/onlyoffice-documentserver/files/patch-core_PdfFile_PdfFile.pro
+++ b/www/onlyoffice-documentserver/files/patch-core_PdfFile_PdfFile.pro
@@ -1,6 +1,6 @@
---- core/PdfFile/PdfFile.pro.orig	2023-02-13 12:29:53.978119000 +0100
*** 343 LINES SKIPPED ***