Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Jan 2022 07:38:36 GMT
From:      Mikael Urankar <mikael@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: e6f27356846a - main - www/onlyoffice-documentserver: Add new port
Message-ID:  <202201190738.20J7caJ3062163@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by mikael:

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

commit e6f27356846a36c63bfe394cb9d7c61495e0822b
Author:     Mikael Urankar <mikael@FreeBSD.org>
AuthorDate: 2022-01-18 14:42:42 +0000
Commit:     Mikael Urankar <mikael@FreeBSD.org>
CommitDate: 2022-01-19 07:38:26 +0000

    www/onlyoffice-documentserver: Add new port
    
    ONLYOFFICE Document Server is an online office suite comprising viewers and
    editors for texts, spreadsheets and presentations, fully compatible with
    Office Open XML formats: .docx, .xlsx, .pptx and enabling collaborative editing
    in real time.
    
    WWW: https://www.onlyoffice.com/
    
    Reviewed by:            bapt
    Differential Revision:  https://reviews.freebsd.org/D33923
---
 GIDs                                               |     2 +-
 UIDs                                               |     2 +-
 www/Makefile                                       |     1 +
 www/onlyoffice-documentserver/Makefile             |   208 +
 www/onlyoffice-documentserver/distinfo             |    59 +
 .../files/extra-patch-pkg-fetch_lib-es5_build.js   |    24 +
 ...patch-pkg-fetch_patches_node.v16.13.0.cpp.patch |   174 +
 .../files/local.json.sample                        |    43 +
 .../packagejsons/server/Common/package-lock.json   |  1028 +
 .../files/packagejsons/server/package-lock.json    |  2964 +++
 .../files/patch-build__tools_build.pro             |    13 +
 .../files/patch-build__tools_configure.py          |    11 +
 .../files/patch-build__tools_make.py               |    29 +
 .../files/patch-build__tools_scripts_base.py       |    21 +
 .../files/patch-build__tools_scripts_build__js.py  |    11 +
 .../patch-build__tools_scripts_build__server.py    |    52 +
 .../files/patch-build__tools_scripts_config.py     |    38 +
 ...ild__tools_scripts_core__common_make__common.py |    36 +
 ...build__tools_scripts_core__common_modules_v8.py |    87 +
 .../patch-build__tools_scripts_deploy__server.py   |    37 +
 .../patch-build__tools_scripts_develop_release.py  |    11 +
 .../patch-build__tools_tools_freebsd_automate.py   |   107 +
 ...lsFile2_source_XlsFormat_Auxiliary_HelpFunc.cpp |    11 +
 ...iceXlsFile2_source_XlsFormat_Crypt_rtl_cipher.h |    11 +
 ...iceXlsFile2_source_XlsFormat_Crypt_rtl_digest.h |    11 +
 ...ormat_Logic_Biff__structures_BitMarkedStructs.h |    11 +
 .../patch-core_Common_3dParty_boost_boost.pri      |    16 +
 ...re_Common_3dParty_cryptopp_project_cryptopp.pro |    10 +
 .../files/patch-core_Common_3dParty_html_gumbo.pri |    10 +
 .../files/patch-core_Common_3dParty_icu_icu.pri    |    16 +
 .../files/patch-core_Common_3dParty_v8_v8.pri      |    27 +
 .../files/patch-core_Common_3dParty_v8_v8_BUILD.gn |    32 +
 ...core_Common_3dParty_v8_v8_build_config_BUILD.gn |    30 +
 ...ommon_3dParty_v8_v8_build_config_BUILDCONFIG.gn |    48 +
 ...on_3dParty_v8_v8_build_config_compiler_BUILD.gn |    92 +
 ...dParty_v8_v8_build_config_compiler_compiler.gni |    11 +
 ..._Common_3dParty_v8_v8_build_config_features.gni |    11 +
 ...dParty_v8_v8_build_config_freetype_freetype.gni |     9 +
 ...ommon_3dParty_v8_v8_build_config_linux_BUILD.gn |    11 +
 ..._3dParty_v8_v8_build_config_linux_pkg-config.py |    26 +
 ...e_Common_3dParty_v8_v8_build_config_sysroot.gni |    14 +
 ...ommon_3dParty_v8_v8_build_detect__host__arch.py |    11 +
 ...e_Common_3dParty_v8_v8_build_gn__run__binary.py |    11 +
 ...ore_Common_3dParty_v8_v8_build_linux_chrome.map |    29 +
 ...ommon_3dParty_v8_v8_build_linux_libpci_BUILD.gn |    53 +
 ...on_3dParty_v8_v8_build_linux_unbundle_libusb.gn |    27 +
 ...8_v8_build_linux_unbundle_replace__gn__files.py |    10 +
 ...dParty_v8_v8_build_toolchain_gcc__toolchain.gni |    45 +
 ...v8_v8_build_toolchain_get__concurrent__links.py |    17 +
 ...on_3dParty_v8_v8_build_toolchain_linux_BUILD.gn |    10 +
 ...ch-core_Common_3dParty_v8_v8_build_win_BUILD.gn |    13 +
 ...y_v8_v8_buildtools_third__party_libc++_BUILD.gn |    11 +
 ...ch-core_Common_3dParty_v8_v8_include_v8config.h |    21 +
 .../patch-core_Common_3dParty_v8_v8_src_api_api.cc |    11 +
 ...patch-core_Common_3dParty_v8_v8_src_base_cpu.cc |    18 +
 ...rty_v8_v8_src_base_platform_platform-freebsd.cc |    13 +
 ...Party_v8_v8_src_base_platform_platform-posix.cc |    24 +
 ...ch-core_Common_3dParty_v8_v8_src_d8_d8-posix.cc |    19 +
 ...mon_3dParty_v8_v8_src_objects_js-list-format.cc |    74 +
 ...ore_Common_3dParty_v8_v8_testing_gmock_BUILD.gn |    18 +
 ...Common_3dParty_v8_v8_third__party_zlib_BUILD.gn |    11 +
 ...3dParty_v8_v8_third__party_zlib_cpu__features.c |    48 +
 ...-core_Common_DocxFormat_Source_Base_Types__32.h |    11 +
 ..._Common_DocxFormat_Source_XlsxFormat_Common.cpp |    14 +
 .../files/patch-core_Common_base.pri               |    42 +
 .../files/patch-core_Common_kernel.pro             |    21 +
 ...-core_DesktopEditor_AllFontsGen_AllFontsGen.pro |    13 +
 ...pEditor_Qt__build_graphics_project_graphics.pri |    15 +
 ..._Qt__build_graphics_project_graphics__fonts.pri |    14 +
 ...-core_DesktopEditor_agg-2.4_include_agg__math.h |    11 +
 ...topEditor_agg-2.4_include_agg__span__gradient.h |    11 +
 ...ore_DesktopEditor_allthemesgen_allthemesgen.pro |    14 +
 .../patch-core_DesktopEditor_allthemesgen_main.cpp |    20 +
 .../patch-core_DesktopEditor_common_Directory.cpp  |    64 +
 .../files/patch-core_DesktopEditor_common_File.cpp |    42 +
 .../files/patch-core_DesktopEditor_common_Path.cpp |    29 +
 .../files/patch-core_DesktopEditor_common_Types.h  |    11 +
 ...tch-core_DesktopEditor_cximage_CxImage_ximage.h |    11 +
 ...-core_DesktopEditor_cximage_CxImage_ximagif.cpp |    11 +
 ...core_DesktopEditor_cximage_CxImage_ximainfo.cpp |    11 +
 ...ch-core_DesktopEditor_cximage_CxImage_ximajas.h |    11 +
 ...-core_DesktopEditor_cximage_CxImage_ximajpg.cpp |    11 +
 ...ch-core_DesktopEditor_cximage_CxImage_ximajpg.h |    11 +
 ...ch-core_DesktopEditor_cximage_CxImage_ximapng.h |    11 +
 ...-core_DesktopEditor_cximage_CxImage_ximaraw.cpp |    11 +
 .../patch-core_DesktopEditor_cximage_raw_libdcr.h  |    11 +
 ...h-core_DesktopEditor_cximage_tiff_tif__config.h |    38 +
 ...atch-core_DesktopEditor_cximage_tiff_tiffconf.h |    11 +
 ...Editor_doctrenderer_app__builder_docbuilder.pro |    11 +
 ...esktopEditor_doctrenderer_app__builder_main.cpp |    11 +
 ...core_DesktopEditor_doctrenderer_docbuilder__p.h |    29 +
 ...ore_DesktopEditor_doctrenderer_doctrenderer.pro |    13 +
 ...core_DesktopEditor_doctrenderer_nativecontrol.h |    11 +
 ...e_DesktopEditor_fontengine_ApplicationFonts.cpp |    22 +
 ...ch-core_DesktopEditor_fontengine_MemoryStream.h |    11 +
 ...opEditor_fontengine_fontconverter_MemoryUtils.h |    11 +
 .../patch-core_DesktopEditor_graphics_Graphics.cpp |    29 +
 ...ch-core_DesktopEditor_graphics_pro_graphics.pro |    14 +
 ...atch-core_DesktopEditor_graphics_pro_raster.pri |    15 +
 ..._DesktopEditor_raster_Metafile_Wmf_WmfObjects.h |    11 +
 .../patch-core_DesktopEditor_xml_libxml2_trionan.c |    29 +
 .../patch-core_DesktopEditor_xml_libxml2_xmlIO.c   |    11 +
 .../patch-core_DesktopEditor_xmlsec_libxmlsec.pro  |    19 +
 ..._test_OpenSSL__gui__test_OpenSSL__gui__test.pro |    13 +
 .../patch-core_DjVuFile_libdjvu_DjVuDocument.cpp   |    11 +
 .../files/patch-core_HtmlFile_HtmlFile.cpp         |    20 +
 .../files/patch-core_HtmlFile_HtmlFile.pro         |    13 +
 ...OfficeCryptReader_ooxml__crypt_ooxml__crypt.pro |    14 +
 .../files/patch-core_OfficeUtils_OfficeUtils.pri   |     9 +
 ...Utils_src_zlib-1.2.11_contrib_minizip_miniunz.c |    11 +
 ...Utils_src_zlib-1.2.11_contrib_minizip_minizip.c |    11 +
 .../files/patch-core_PdfWriter_PdfWriter.pro       |    13 +
 .../files/patch-core_PdfWriter_Src_Types.h         |    11 +
 ...-core_Test_Applications_StandardTester_main.cpp |    20 +
 ...atch-core_UnicodeConverter_UnicodeConverter.pro |    14 +
 ...eConverter_icubuilds-mac_icu_unicode_platform.h |    11 +
 ...tch-core_X2tConverter_build_Qt_X2tConverter.pri |    11 +
 .../patch-core_X2tConverter_src_ASCConverters.cpp  |    20 +
 ...er_test_batch__convert_x2t__test_mainwindow.cpp |    20 +
 .../files/patch-document-server-package_Makefile   |   197 +
 .../files/patch-server_package.json                |    36 +
 .../files/patch-web-apps_build_Gruntfile.js        |    20 +
 .../files/patch-web-apps_build_package.json        |    14 +
 .../files/patch-web-apps_build_patches_optipng-bin |    18 +
 www/onlyoffice-documentserver/files/pkg-message.in |    66 +
 www/onlyoffice-documentserver/pkg-descr            |     6 +
 www/onlyoffice-documentserver/pkg-plist            | 22626 +++++++++++++++++++
 www/onlyoffice-documentserver/v8_fetch.sh          |    59 +
 128 files changed, 29848 insertions(+), 2 deletions(-)

diff --git a/GIDs b/GIDs
index ee3b9573b3fc..289724c62710 100644
--- a/GIDs
+++ b/GIDs
@@ -242,7 +242,7 @@ owncast:*:299:
 backuppc:*:300:
 openvpn:*:301:
 netdata:*:302:
-# free: 303
+onlyoffice:*:303:www
 # free: 304
 # free: 305
 # free: 306
diff --git a/UIDs b/UIDs
index 22ca902e1876..6688287c8ada 100644
--- a/UIDs
+++ b/UIDs
@@ -247,7 +247,7 @@ owncast:*:299:299::0:0:& daemon:/nonexistent:/usr/sbin/nologin
 backuppc:*:300:300::0:0:BackupPC pseudo-user:/nonexistent:/usr/sbin/nologin
 openvpn:*:301:301::0:0:OpenVPN pseudo-user:/nonexistent:/usr/sbin/nologin
 netdata:*:302:302::0:0:NetData Daemon:/var/cache/netdata:/usr/sbin/nologin
-# free: 303
+onlyoffice:*:303:303::0:0:Onlyoffice pseudo-user:/usr/local/www/onlyoffice/documentserver:/usr/sbin/nologin
 # free: 304
 # free: 305
 # free: 306
diff --git a/www/Makefile b/www/Makefile
index 8db0c305e733..6a094de9237f 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -476,6 +476,7 @@
     SUBDIR += oneshot
     SUBDIR += onionbalance
     SUBDIR += onionshare
+    SUBDIR += onlyoffice-documentserver
     SUBDIR += openarc
     SUBDIR += opencart
     SUBDIR += orangehrm
diff --git a/www/onlyoffice-documentserver/Makefile b/www/onlyoffice-documentserver/Makefile
new file mode 100644
index 000000000000..08d90cf0f0af
--- /dev/null
+++ b/www/onlyoffice-documentserver/Makefile
@@ -0,0 +1,208 @@
+PORTNAME=	onlyoffice-documentserver
+DISTVERSIONPREFIX=	v
+DISTVERSION=	6.4.2
+CATEGORIES=	www
+MASTER_SITES+=	LOCAL/mikael/v8/:source1 \
+		LOCAL/mikael/onlyoffice/:source2 \
+		https://nodejs.org/dist/v16.13.0/:source3 \
+		SF/optipng/OptiPNG/optipng-0.7.7/:source4
+DISTFILES+=	v8-8.7.220.31_all.tar.gz:source1 \
+		node-v16.13.0.tar.gz:source3 \
+		npm-cache-onlyoffice.tar.gz:source2 \
+		optipng-0.7.7.tar.gz:source4
+
+MAINTAINER=	mikael@FreeBSD.org
+COMMENT=	Secure office and productivity apps
+
+LICENSE=	AGPLv3
+LICENSE_FILE=	${WRKSRC}/LICENSE.txt
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}Jinja2>=0:devel/py-Jinja2@${PY_FLAVOR} \
+		binutils>=0:devel/binutils \
+		boost-libs>0:devel/boost-libs \
+		glib>=2.54:devel/glib20 \
+		gn:devel/gn \
+		java:java/openjdk11 \
+		ninja:devel/ninja \
+		node:www/node16 \
+		npm:www/npm-node16
+LIB_DEPENDS=	libboost_regex.so:devel/boost-libs \
+		libiconv.so:converters/libiconv \
+		libicutu.so:devel/icu
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}supervisor>0:sysutils/py-supervisor@${PY_FLAVOR} \
+		curl:ftp/curl \
+		gsed:textproc/gsed \
+		nginx:www/nginx \
+		pg_dump:databases/postgresql${PGSQL_VER_NODOT}-server \
+		rabbitmq>0:net/rabbitmq \
+		webfonts>=0:x11-fonts/webfonts
+
+USES=		autoreconf:build dos2unix fakeroot gmake gnome iconv pgsql pkgconfig \
+		python:3.7+,build qt:5
+USE_QT=		qmake_build
+USE_GITHUB=	yes
+GH_ACCOUNT=	ONLYOFFICE
+GH_PROJECT=	DocumentServer
+GH_TUPLE=	ONLYOFFICE:core:0c29e4d:core/core \
+		ONLYOFFICE:core-fonts:3929a09:corefonts/core-fonts \
+		ONLYOFFICE:dictionaries:cfa50d3:dictionaries/dictionaries \
+		ONLYOFFICE:document-server-integration:v1.0.0:dsi/document-server-integration \
+		ONLYOFFICE:document-templates:v6.4.2.1:dt/document-templates \
+		ONLYOFFICE:sdkjs:9af7d08:sdkjs/sdkjs \
+		ONLYOFFICE:server:10929a0:server/server \
+		ONLYOFFICE:web-apps:1851cae:webapps/web-apps \
+		ONLYOFFICE:plugin-highlightcode:7ea4ddf:sdkjs_plugins_highlightcode/sdkjs-plugins/plugin-highlightcode \
+		ONLYOFFICE:plugin-macros:4027439:sdkjs_plugins_macros/sdkjs-plugins/plugin-macros \
+		ONLYOFFICE:plugin-mendeley:5a36bf9:sdkjs_plugins_mendeley/sdkjs-plugins/plugin-mendeley \
+		ONLYOFFICE:plugin-ocr:5b24c87:sdkjs_plugins_ocr/sdkjs-plugins/plugin-ocr \
+		ONLYOFFICE:plugin-photoeditor:995b5f6:sdkjs_plugins_photoeditor/sdkjs-plugins/plugin-photoeditor \
+		ONLYOFFICE:plugin-speech:fcec715:sdkjs_plugins_speech/sdkjs-plugins/plugin-speech \
+		ONLYOFFICE:plugin-thesaurus:4ada280:sdkjs_plugins_thesaurus/sdkjs-plugins/plugin-thesaurus \
+		ONLYOFFICE:plugin-translator:ba6caed:sdkjs_plugins_translator/sdkjs-plugins/plugin-translator \
+		ONLYOFFICE:plugin-youtube:4dec911:sdkjs_plugins_youtube/sdkjs-plugins/plugin-youtube \
+		ONLYOFFICE:plugin-zotero:c9f472f:sdkjs_plugins_zotero/sdkjs-plugins/plugin-zotero \
+		ONLYOFFICE:build_tools:cf4cac94:buildtools/build_tools \
+		ONLYOFFICE:DocumentBuilder:4169685e6:document_builder/DocumentBuilder \
+		ONLYOFFICE:onlyoffice.github.io:ca730969:sdkjs_plugins_v1/onlyoffice.github.io \
+		ONLYOFFICE:document-server-package:c12273c0a:dsp/document-server-package \
+		hackers-painters:katana-parser:499118d3:hackers_painters_katana/core/Common/3dParty/html/katana-parser \
+		google:gumbo-parser:aa91b27:google_gumbo/core/Common/3dParty/html/gumbo-parser
+
+BINARY_ALIAS=	python=${PYTHON_CMD}
+USE_LDCONFIG=	yes
+
+WWWDIR=		${PREFIX}/www/onlyoffice
+ETCDIR=		${PREFIX}/etc/onlyoffice
+
+DS_USERNAME=	onlyoffice
+DS_GROUPNAME=	onlyoffice
+
+USERS=		${DS_USERNAME}
+GROUPS=		${DS_GROUPNAME}
+
+PLIST_SUB=	DS_GROUPNAME=${DS_GROUPNAME} \
+		DS_USERNAME=${DS_USERNAME}
+SUB_FILES=	pkg-message
+SUB_LIST=	ETCDIR=${ETCDIR} \
+		PREFIX=${PREFIX} \
+		WWWDIR=${WWWDIR}
+
+MAKE_ENV=	BUILD_NUMBER="1" \
+		PKG_CACHE_PATH=${WRKDIR}/.pkg-cache \
+		PRODUCT_VERSION="${DISTVERSION}"
+
+DOS2UNIX_FILES=	document-server-package/common/documentserver/nginx/includes/http-common.conf.m4
+
+CONFLICTS_BUILD=devel/googletest
+
+post-extract:
+	@${MV} ${WRKDIR}/v8 ${WRKSRC}/core/Common/3dParty/v8
+
+	@${MKDIR} ${WRKDIR}/.pkg-cache/node
+	@${CP} ${DISTDIR}/node-v16.13.0.tar.gz ${WRKDIR}/.pkg-cache/node
+# Checksum can be verified here: https://nodejs.org/dist/v16.13.0/SHASUMS256.txt
+	@${ECHO} "9c00e5b6024cfcbc9105f9c58cf160762e78659a345d100c5bd80a7fb38c684f  node-v16.13.0.tar.gz" > \
+		${WRKDIR}/.pkg-cache/node/node-v16.13.0.tar.gz.sha256sum
+
+	@${MKDIR} ${WRKSRC}/sdkjs-plugins/v1
+	@${CP} ${WRKSRC}/onlyoffice.github.io/sdkjs-plugins/v1/* ${WRKSRC}/sdkjs-plugins/v1
+
+	@${MV} ${WRKSRC}/server/Common/config/production-linux.json ${WRKSRC}/server/Common/config/production-freebsd.json
+	@${MV} ${WRKSRC}/server/Common/config/development-linux.json ${WRKSRC}/server/Common/config/development-freebsd.json
+
+post-patch:
+	@${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|' \
+		${WRKSRC}/core/Common/3dParty/v8/v8/build/toolchain/gcc_toolchain.gni \
+		${WRKSRC}/core/Common/3dParty/v8/v8/buildtools/third_party/libc++/BUILD.gn \
+		${WRKSRC}/core/DesktopEditor/fontengine/ApplicationFonts.cpp
+	@${REINPLACE_CMD} -e 's|%%CC%%|${CC}|' -e 's|%%CXX%%|${CXX}|' \
+		${WRKSRC}/core/Common/3dParty/v8/v8/build/toolchain/gcc_toolchain.gni \
+		${WRKSRC}/core/Common/base.pri
+	@${REINPLACE_CMD} 's|%%WRKDIR%%|${WRKDIR}|' \
+		${WRKSRC}/document-server-package/Makefile
+	@${REINPLACE_CMD} 's|%%WRKSRC%%|${WRKSRC}|' \
+		${WRKSRC}/build_tools/scripts/build_js.py \
+		${WRKSRC}/build_tools/scripts/build_server.py \
+		${WRKSRC}/document-server-package/Makefile
+	@${REINPLACE_CMD} -e 's|linux|freebsd|' -e 's|/etc|${LOCALBASE}/etc|' \
+		${WRKSRC}/document-server-package/common/documentserver/supervisor/ds-docservice.conf.m4 \
+		${WRKSRC}/document-server-package/common/documentserver/supervisor/ds-converter.conf.m4 \
+		${WRKSRC}/document-server-package/common/documentserver-example/supervisor/ds-example.conf.m4 \
+		${WRKSRC}/document-server-package/common/documentserver/bin/documentserver-static-gzip.sh.m4 \
+		${WRKSRC}/document-server-package/common/documentserver/bin/documentserver-update-securelink.sh.m4
+	@${REINPLACE_CMD} 's|/var/www|${LOCALBASE}/www|' \
+		${WRKSRC}/document-server-package/common/documentserver/bin/documentserver-generate-allfonts.sh.m4 \
+		${WRKSRC}/document-server-package/common/documentserver/bin/documentserver-static-gzip.sh.m4 \
+		${WRKSRC}/document-server-package/common/documentserver/supervisor/ds-converter.conf.m4 \
+		${WRKSRC}/document-server-package/common/documentserver/supervisor/ds-docservice.conf.m4 \
+		${WRKSRC}/document-server-package/common/documentserver/supervisor/ds-metrics.conf.m4
+	@${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 \
+		${WRKSRC}/server/Common/config/development-freebsd.json
+	@${REINPLACE_CMD} -e 's|bash|sh|' -e 's|sed|gsed|' \
+		${WRKSRC}/document-server-package/common/documentserver/bin/documentserver-static-gzip.sh.m4 \
+		${WRKSRC}/document-server-package/common/documentserver/bin/documentserver-update-securelink.sh.m4
+	@${REINPLACE_CMD} 's|%%DISTDIR%%|${DISTDIR}|' \
+		${WRKSRC}/web-apps/build/patches/optipng-bin+5.1.0.patch
+	@${RM} ${WRKSRC}/web-apps/build/patches/optipng-bin+5.1.0.patch.orig
+
+	@${FIND} ${WRKSRC}/server -type f -name npm-shrinkwrap.json -delete
+
+do-build:
+	@${CP} ${FILESDIR}/packagejsons/server/package-lock.json ${WRKSRC}/server
+	@${CP} ${FILESDIR}/packagejsons/server/Common/package-lock.json ${WRKSRC}/server/Common
+
+	@cd ${WRKSRC}/web-apps/build ; ${SETENV} ${MAKE_ENV} npm install patch-package
+	@cd ${WRKSRC}/web-apps/build ; ${SETENV} ${MAKE_ENV} npm install optipng-bin@5.1.0
+	@cd ${WRKSRC}/web-apps/build ; node_modules/.bin/patch-package
+	@cd ${WRKSRC}/web-apps/build/node_modules ; ${SETENV} ${MAKE_ENV} npm build optipng-bin
+
+	@cd ${WRKSRC}/web-apps/build ; ${SETENV} ${MAKE_ENV} npm install patch-package
+	@cd ${WRKSRC}/server ; ${SETENV} ${MAKE_ENV} npm install grunt-cli
+	@cd ${WRKSRC}/server ; ${SETENV} ${MAKE_ENV} npm install grunt
+	@cd ${WRKSRC}/server ; ${SETENV} ${MAKE_ENV} npm install pkg
+	@cd ${WRKSRC}/sdkjs  ; ${SETENV} ${MAKE_ENV} npm install grunt-cli
+	@cd ${WRKSRC}/sdkjs  ; ${SETENV} ${MAKE_ENV} npm install grunt
+	@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.v16.13.0.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
+
+do-install:
+# install the project
+# do not strip docservice, converter and metrics
+	cd ${WRKSRC}/document-server-package/common/documentserver/home && ${COPYTREE_SHARE} . ${STAGEDIR}${WWWDIR}/documentserver
+	${INSTALL_SCRIPT} ${WRKSRC}/document-server-package/common/documentserver/bin/*.sh ${STAGEDIR}${PREFIX}/bin
+	${INSTALL_PROGRAM} ${WRKSRC}/document-server-package/common/documentserver/home/server/tools/all* ${STAGEDIR}${WWWDIR}/documentserver/server/tools
+	${INSTALL_PROGRAM} ${WRKSRC}/document-server-package/common/documentserver/home/server/FileConverter/bin/x2t ${STAGEDIR}${WWWDIR}/documentserver/server/FileConverter/bin
+	${INSTALL_PROGRAM} ${WRKSRC}/document-server-package/common/documentserver/home/server/FileConverter/bin/docbuilder ${STAGEDIR}${WWWDIR}/documentserver/server/FileConverter/bin
+	${INSTALL_PROGRAM} ${WRKSRC}/document-server-package/common/documentserver/home/npm/json ${STAGEDIR}${WWWDIR}/documentserver/npm
+	${INSTALL_LIB} ${WRKSRC}/document-server-package/common/documentserver/home/server/FileConverter/bin/*.so ${STAGEDIR}${PREFIX}/lib
+	${RM} ${STAGEDIR}${PREFIX}/bin/documentserver-letsencrypt.sh
+
+# install conf
+	${MKDIR} ${STAGEDIR}${ETCDIR}/documentserver/supervisor \
+		 ${STAGEDIR}${ETCDIR}/documentserver/nginx/includes \
+		 ${STAGEDIR}${ETCDIR}/documentserver/logrotate
+	${RM} ${WRKSRC}/document-server-package/common/documentserver/config/*-mac.json ${WRKSRC}/document-server-package/common/documentserver/config/*-windows.json
+	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"
+.for f in ds.conf includes/http-common.conf includes/ds-common.conf includes/ds-docservice.conf includes/ds-letsencrypt.conf
+	${INSTALL_DATA} ${WRKSRC}/document-server-package/common/documentserver/nginx/${f} ${STAGEDIR}${ETCDIR}/documentserver/nginx/${f}.sample
+.endfor
+	cd ${WRKSRC}/document-server-package/common/documentserver/nginx/includes && ${COPYTREE_SHARE} . ${STAGEDIR}${ETCDIR}/documentserver/nginx/includes "-name *\.conf"
+	cd ${WRKSRC}/document-server-package/common/documentserver/config && ${COPYTREE_SHARE} . ${STAGEDIR}${ETCDIR}/documentserver
+	${INSTALL_DATA} ${FILESDIR}/local.json.sample ${STAGEDIR}${ETCDIR}/documentserver
+
+# create missing dir
+	${MKDIR} ${STAGEDIR}/var/log/onlyoffice/documentserver/docservice \
+		 ${STAGEDIR}/var/log/onlyoffice/documentserver/converter \
+		 ${STAGEDIR}/var/log/onlyoffice/documentserver/metrics \
+		 ${STAGEDIR}/var/db/onlyoffice/documentserver/App_Data/cache/files \
+		 ${STAGEDIR}/var/db/onlyoffice/documentserver/App_Data/docbuilder \
+		 ${STAGEDIR}${WWWDIR}/Data \
+		 ${STAGEDIR}${WWWDIR}/documentserver/fonts
+
+.include <bsd.port.mk>
diff --git a/www/onlyoffice-documentserver/distinfo b/www/onlyoffice-documentserver/distinfo
new file mode 100644
index 000000000000..3eb4d249f1f3
--- /dev/null
+++ b/www/onlyoffice-documentserver/distinfo
@@ -0,0 +1,59 @@
+TIMESTAMP = 1641567875
+SHA256 (v8-8.7.220.31_all.tar.gz) = 0d2e1355cbbb80130d87f9e0acfb94c72846f820339b8a1003875230a5d0fa2f
+SIZE (v8-8.7.220.31_all.tar.gz) = 305810432
+SHA256 (node-v16.13.0.tar.gz) = 9c00e5b6024cfcbc9105f9c58cf160762e78659a345d100c5bd80a7fb38c684f
+SIZE (node-v16.13.0.tar.gz) = 63735070
+SHA256 (npm-cache-onlyoffice.tar.gz) = 85c72a0b06439352f2a0ead2fb1412436c38b0dc3200c620f52967415adbf225
+SIZE (npm-cache-onlyoffice.tar.gz) = 263763627
+SHA256 (optipng-0.7.7.tar.gz) = 4f32f233cef870b3f95d3ad6428bfe4224ef34908f1b42b0badf858216654452
+SIZE (optipng-0.7.7.tar.gz) = 2329555
+SHA256 (ONLYOFFICE-DocumentServer-v6.4.2_GH0.tar.gz) = fac8bb07884149c042afabb2ab9ce8ba1c11dd35379eea1e2086d6d5bef45a5d
+SIZE (ONLYOFFICE-DocumentServer-v6.4.2_GH0.tar.gz) = 51163
+SHA256 (ONLYOFFICE-core-0c29e4d_GH0.tar.gz) = e522f85ce12c66f46edfb252efcf8f6205d693b95c3391bf485fb7accfd41735
+SIZE (ONLYOFFICE-core-0c29e4d_GH0.tar.gz) = 83856852
+SHA256 (ONLYOFFICE-core-fonts-3929a09_GH0.tar.gz) = f264251db39c2ac844644dfebccc6fa836afb2a27cce1bfc565645a48600b49b
+SIZE (ONLYOFFICE-core-fonts-3929a09_GH0.tar.gz) = 95253093
+SHA256 (ONLYOFFICE-dictionaries-cfa50d3_GH0.tar.gz) = b58d9df27bd3b8a5898a28727e247e282ecb1b770d7980205c0ef4eba5e5fa58
+SIZE (ONLYOFFICE-dictionaries-cfa50d3_GH0.tar.gz) = 39363959
+SHA256 (ONLYOFFICE-document-server-integration-v1.0.0_GH0.tar.gz) = f09c9384d3abea4d7e3ef31df333125d4e45cc4fa9ecc69a573ee6562231658a
+SIZE (ONLYOFFICE-document-server-integration-v1.0.0_GH0.tar.gz) = 5227788
+SHA256 (ONLYOFFICE-document-templates-v6.4.2.1_GH0.tar.gz) = b3ad21607446074d36a1913f6b1ac896e38911c8a9c7ffd4a7ea68f5cb6cf39f
+SIZE (ONLYOFFICE-document-templates-v6.4.2.1_GH0.tar.gz) = 2152308
+SHA256 (ONLYOFFICE-sdkjs-9af7d08_GH0.tar.gz) = 45198d1264b52e36a1e8c66d69130c214a713f4f0ee1a2b9428f95d75480e1e6
+SIZE (ONLYOFFICE-sdkjs-9af7d08_GH0.tar.gz) = 11523531
+SHA256 (ONLYOFFICE-server-10929a0_GH0.tar.gz) = 439822bbf9a3849823c63cff93b3af0d31560134e58b8b4562baec56d69dab14
+SIZE (ONLYOFFICE-server-10929a0_GH0.tar.gz) = 242462
+SHA256 (ONLYOFFICE-web-apps-1851cae_GH0.tar.gz) = 598f57b821013e14936a539ebfc7fe1da1ce673d85c95fdfdd607f8e4fa4b5e6
+SIZE (ONLYOFFICE-web-apps-1851cae_GH0.tar.gz) = 215031184
+SHA256 (ONLYOFFICE-plugin-highlightcode-7ea4ddf_GH0.tar.gz) = 74ec5782ee967bbddf4b524311dcc09be0e28a7e15ef07ce85b30c1fbf0dda90
+SIZE (ONLYOFFICE-plugin-highlightcode-7ea4ddf_GH0.tar.gz) = 245219
+SHA256 (ONLYOFFICE-plugin-macros-4027439_GH0.tar.gz) = faf8a2bee2c8eaa169eec6ceae272d168e0b6307a16845b5fb844f039cebd351
+SIZE (ONLYOFFICE-plugin-macros-4027439_GH0.tar.gz) = 2616745
+SHA256 (ONLYOFFICE-plugin-mendeley-5a36bf9_GH0.tar.gz) = 3da951e764ff201d8853ca70e1bc147a0b4bcf6a3b2134b067de8432c293bee0
+SIZE (ONLYOFFICE-plugin-mendeley-5a36bf9_GH0.tar.gz) = 417551
+SHA256 (ONLYOFFICE-plugin-ocr-5b24c87_GH0.tar.gz) = f39b418974868c863ce313873b876e47cd33a3469d786a9eade584c35881cbae
+SIZE (ONLYOFFICE-plugin-ocr-5b24c87_GH0.tar.gz) = 169538
+SHA256 (ONLYOFFICE-plugin-photoeditor-995b5f6_GH0.tar.gz) = 413b4444a9d3f47a57637f141066ea72e4e24bbbed9c0f45794b2d9da651d43c
+SIZE (ONLYOFFICE-plugin-photoeditor-995b5f6_GH0.tar.gz) = 201051
+SHA256 (ONLYOFFICE-plugin-speech-fcec715_GH0.tar.gz) = d85e322059d8b62176c0d3f6a0a999268932990e314242c6b4828ec1a28bbbd0
+SIZE (ONLYOFFICE-plugin-speech-fcec715_GH0.tar.gz) = 68212
+SHA256 (ONLYOFFICE-plugin-thesaurus-4ada280_GH0.tar.gz) = 8834dec6b1d3ac3aabe4c1c8697bbce859acee0b38137d1d8310631bf7da1286
+SIZE (ONLYOFFICE-plugin-thesaurus-4ada280_GH0.tar.gz) = 42914
+SHA256 (ONLYOFFICE-plugin-translator-ba6caed_GH0.tar.gz) = d78241b0a23e7b451c92d67a14626066e838dfe1fed098cf1032939c797cabf0
+SIZE (ONLYOFFICE-plugin-translator-ba6caed_GH0.tar.gz) = 140898
+SHA256 (ONLYOFFICE-plugin-youtube-4dec911_GH0.tar.gz) = 953526e6b8d56a21d1428be949cbb1dc1017b3a0d7f07703aaa860fdb5f9afc4
+SIZE (ONLYOFFICE-plugin-youtube-4dec911_GH0.tar.gz) = 11635
+SHA256 (ONLYOFFICE-plugin-zotero-c9f472f_GH0.tar.gz) = 8cabfed9f54e23630b7a0fec71db8e16c703b1c67eb85a439a09b5e311ac0ab9
+SIZE (ONLYOFFICE-plugin-zotero-c9f472f_GH0.tar.gz) = 33816
+SHA256 (ONLYOFFICE-build_tools-cf4cac94_GH0.tar.gz) = ef2617a425b3c4b5c893709725f2c4941cb872ecc8c6fbb966fb12ae80f50f18
+SIZE (ONLYOFFICE-build_tools-cf4cac94_GH0.tar.gz) = 4089822
+SHA256 (ONLYOFFICE-DocumentBuilder-4169685e6_GH0.tar.gz) = 697bd92c6d02973a5e9df78d3be888f7e305983eda3661e3a16ae7fbbee6bb9e
+SIZE (ONLYOFFICE-DocumentBuilder-4169685e6_GH0.tar.gz) = 1271109
+SHA256 (ONLYOFFICE-onlyoffice.github.io-ca730969_GH0.tar.gz) = 1612d7ab512bfe80001d40da99cb96761c0bfcd9026c1be5ba8ffa3a050ac085
+SIZE (ONLYOFFICE-onlyoffice.github.io-ca730969_GH0.tar.gz) = 13278
+SHA256 (ONLYOFFICE-document-server-package-c12273c0a_GH0.tar.gz) = c6b226a8616d1a897a64fdf3de4cdf2a70e9418fde911bb558cef84d57633fc5
+SIZE (ONLYOFFICE-document-server-package-c12273c0a_GH0.tar.gz) = 171493
+SHA256 (hackers-painters-katana-parser-499118d3_GH0.tar.gz) = ed83020cbe07877c7323d475491803797fac12ce4086966011c81023b9852c4b
+SIZE (hackers-painters-katana-parser-499118d3_GH0.tar.gz) = 97209
+SHA256 (google-gumbo-parser-aa91b27_GH0.tar.gz) = 1360f85c02fb2573a10f00abcddebc8f1ff277a16f66553439193af93afae335
+SIZE (google-gumbo-parser-aa91b27_GH0.tar.gz) = 2119417
diff --git a/www/onlyoffice-documentserver/files/extra-patch-pkg-fetch_lib-es5_build.js b/www/onlyoffice-documentserver/files/extra-patch-pkg-fetch_lib-es5_build.js
new file mode 100644
index 000000000000..aa81e8db03d8
--- /dev/null
+++ b/www/onlyoffice-documentserver/files/extra-patch-pkg-fetch_lib-es5_build.js
@@ -0,0 +1,24 @@
+--- server/node_modules/pkg-fetch/lib-es5/build.js.orig	2021-12-31 17:50:57.174508000 +0100
++++ server/node_modules/pkg-fetch/lib-es5/build.js	2021-12-31 17:50:42.893063000 +0100
+@@ -98,18 +98,14 @@ function getConfigureArgs(major, targetPlatform) {
+     if (targetPlatform === 'linuxstatic') {
+         args.push('--fully-static');
+     }
+-    // Link Time Optimization
+-    if (major >= 12) {
+-        if (system_1.hostPlatform !== 'win') {
+-            args.push('--enable-lto');
+-        }
+-    }
+     // DTrace
+     args.push('--without-dtrace');
+     // bundled npm package manager
+     args.push('--without-npm');
+     // Small ICU
+-    args.push('--with-intl=small-icu');
++    args.push('--with-intl=system-icu');
++    args.push('--shared-openssl');
++    args.push('--openssl-use-def-ca-store');
+     // Workaround for nodejs/node#39313
+     // All supported macOS versions have zlib as a system library
+     if (targetPlatform === 'macos') {
diff --git a/www/onlyoffice-documentserver/files/extra-patch-pkg-fetch_patches_node.v16.13.0.cpp.patch b/www/onlyoffice-documentserver/files/extra-patch-pkg-fetch_patches_node.v16.13.0.cpp.patch
new file mode 100644
index 000000000000..123dd5c3a4c9
--- /dev/null
+++ b/www/onlyoffice-documentserver/files/extra-patch-pkg-fetch_patches_node.v16.13.0.cpp.patch
@@ -0,0 +1,174 @@
+--- server/node_modules/pkg-fetch/patches/node.v16.13.0.cpp.patch.orig	2021-12-30 20:04:18.203959000 +0100
++++ server/node_modules/pkg-fetch/patches/node.v16.13.0.cpp.patch	2021-12-30 20:09:53.210319000 +0100
+@@ -521,3 +521,171 @@ index 0000000000..fb2d47f52b
+              'cflags_cc!': [ '-fno-rtti' ],
+            }],
+            [ 'OS == "mac" or OS == "ios"', {
++--- node/deps/openssl/config/archs/linux-elf/no-asm/openssl-cl.gypi.orig	2019-08-06 20:46:23 UTC
+++++ node/deps/openssl/config/archs/linux-elf/no-asm/openssl-cl.gypi
++@@ -12,7 +12,7 @@
++       '-Wall -O3 -fomit-frame-pointer',
++     ],
++     'openssl_ex_libs_linux-elf': [
++-      '-ldl -pthread',
+++      '-pthread',
++     ],
++     'openssl_cli_srcs_linux-elf': [
++       'openssl/apps/asn1pars.c',
++--- node/deps/openssl/config/archs/linux-elf/no-asm/openssl.gypi.orig	2021-03-17 20:16:25 UTC
+++++ node/deps/openssl/config/archs/linux-elf/no-asm/openssl.gypi
++@@ -698,7 +698,7 @@
++       '-Wall -O3 -fomit-frame-pointer',
++     ],
++     'openssl_ex_libs_linux-elf': [
++-      '-ldl -pthread',
+++      '-pthread',
++     ],
++   },
++   'include_dirs': [
++--- node/deps/openssl/openssl_no_asm.gypi.orig	2020-09-08 12:17:11 UTC
+++++ node/deps/openssl/openssl_no_asm.gypi
++@@ -48,7 +48,7 @@
++       'includes': ['config/archs/linux64-mips64/no-asm/openssl.gypi'],
++     }, {
++       # Other architectures don't use assembly
++-      'includes': ['config/archs/linux-x86_64/no-asm/openssl.gypi'],
+++      'includes': ['config/archs/linux-elf/no-asm/openssl.gypi'],
++     }],
++   ],
++ }
++--- node/deps/openssl/openssl-cl_no_asm.gypi.orig	2020-09-08 12:17:10 UTC
+++++ node/deps/openssl/openssl-cl_no_asm.gypi
++@@ -1,4 +1,5 @@
++ {
+++  'defines': ['OPENSSL_NO_ASM'],
++   'conditions': [
++     ['target_arch=="ppc" and OS=="aix"', {
++       'includes': ['config/archs/aix-gcc/no-asm/openssl-cl.gypi'],
++@@ -47,7 +48,7 @@
++       'includes': ['config/archs/linux64-mips64/no-asm/openssl-cl.gypi'],
++     }, {
++       # Other architectures don't use assembly
++-      'includes': ['config/archs/linux-x86_64/no-asm/openssl-cl.gypi'],
+++      'includes': ['config/archs/linux-elf/no-asm/openssl-cl.gypi'],
++     }],
++   ],
++ }
++--- node/deps/v8/src/base/platform/platform-freebsd.cc.orig	2020-06-30 17:49:16 UTC
+++++ node/deps/v8/src/base/platform/platform-freebsd.cc
++@@ -82,8 +82,8 @@ std::vector<OS::SharedLibraryAddress> OS::GetSharedLib
++             lib_name = std::string(path);
++           }
++           result.push_back(SharedLibraryAddress(
++-              lib_name, reinterpret_cast<uintptr_t>(map->kve_start),
++-              reinterpret_cast<uintptr_t>(map->kve_end)));
+++              lib_name, static_cast<uintptr_t>(map->kve_start),
+++              static_cast<uintptr_t>(map->kve_end)));
++         }
++ 
++         start += ssize;
++@@ -94,6 +94,48 @@ std::vector<OS::SharedLibraryAddress> OS::GetSharedLib
++ }
++ 
++ void OS::SignalCodeMovingGC() {}
+++
+++#ifdef __arm__
+++
+++bool OS::ArmUsingHardFloat() {
+++// GCC versions 4.6 and above define __ARM_PCS or __ARM_PCS_VFP to specify
+++// the Floating Point ABI used (PCS stands for Procedure Call Standard).
+++// We use these as well as a couple of other defines to statically determine
+++// what FP ABI used.
+++// GCC versions 4.4 and below don't support hard-fp.
+++// GCC versions 4.5 may support hard-fp without defining __ARM_PCS or
+++// __ARM_PCS_VFP.
+++
+++#define GCC_VERSION \
+++  (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
+++#if GCC_VERSION >= 40600 && !defined(__clang__)
+++#if defined(__ARM_PCS_VFP)
+++  return true;
+++#else
+++  return false;
+++#endif
+++
+++#elif GCC_VERSION < 40500 && !defined(__clang__)
+++  return false;
+++
+++#else
+++#if defined(__ARM_PCS_VFP)
+++  return true;
+++#elif defined(__ARM_PCS) || defined(__SOFTFP__) || defined(__SOFTFP) || \
+++    !defined(__VFP_FP__)
+++  return false;
+++#else
+++#error \
+++    "Your version of compiler does not report the FP ABI compiled for."     \
+++       "Please report it on this issue"                                        \
+++       "http://code.google.com/p/v8/issues/detail?id=2140"
+++
+++#endif
+++#endif
+++#undef GCC_VERSION
+++}
+++
+++#endif // def __arm__
++ 
++ void OS::AdjustSchedulingParams() {}
++ 
++--- node/deps/v8/src/codegen/ppc/constants-ppc.h.orig	2020-06-30 17:49:17 UTC
+++++ node/deps/v8/src/codegen/ppc/constants-ppc.h
++@@ -36,7 +36,7 @@
++ #endif
++ 
++ #if !(V8_HOST_ARCH_PPC || V8_HOST_ARCH_PPC64) || !V8_TARGET_ARCH_PPC64 || \
++-    V8_TARGET_LITTLE_ENDIAN || (defined(_CALL_ELF) && _CALL_ELF == 2)
+++    (defined(_CALL_ELF) && _CALL_ELF == 2)
++ #define ABI_RETURNS_OBJECT_PAIRS_IN_REGS 1
++ #else
++ #define ABI_RETURNS_OBJECT_PAIRS_IN_REGS 0
++@@ -44,7 +44,7 @@
++ 
++ #if !(V8_HOST_ARCH_PPC || V8_HOST_ARCH_PPC64) || \
++     (V8_TARGET_ARCH_PPC64 &&                     \
++-     (V8_TARGET_LITTLE_ENDIAN || (defined(_CALL_ELF) && _CALL_ELF == 2)))
+++     (defined(_CALL_ELF) && _CALL_ELF == 2))
++ #define ABI_CALL_VIA_IP 1
++ #else
++ #define ABI_CALL_VIA_IP 0
++--- node/deps/v8/src/libsampler/sampler.cc.orig	2021-10-08 13:38:46 UTC
+++++ node/deps/v8/src/libsampler/sampler.cc
++@@ -490,6 +490,10 @@ void SignalHandler::FillRegisterState(void* context, R
++   state->pc = reinterpret_cast<void*>(mcontext.__gregs[_REG_PC]);
++   state->sp = reinterpret_cast<void*>(mcontext.__gregs[_REG_SP]);
++   state->fp = reinterpret_cast<void*>(mcontext.__gregs[_REG_FP]);
+++#elif V8_TARGET_ARCH_PPC64
+++  state->pc = reinterpret_cast<void*>(mcontext.mc_srr0);
+++  state->sp = reinterpret_cast<void*>(mcontext.mc_frame[1]);
+++  state->fp = reinterpret_cast<void*>(mcontext.mc_frame[31]);
++ #endif  // V8_HOST_ARCH_*
++ #elif V8_OS_NETBSD
++ #if V8_HOST_ARCH_IA32
++--- node/node.gypi.orig	2021-03-03 05:40:19 UTC
+++++ node/node.gypi
++@@ -319,6 +319,9 @@
++     [ 'node_use_openssl=="true"', {
++       'defines': [ 'HAVE_OPENSSL=1' ],
++       'conditions': [
+++        ['openssl_no_asm==1', {
+++          'defines': [ 'OPENSSL_NO_ASM' ],
+++        }],
++         [ 'node_shared_openssl=="false"', {
++           'dependencies': [
++             './deps/openssl/openssl.gyp:openssl',
++--- node/src/cares_wrap.h.orig	2021-08-18 22:13:12 UTC
+++++ node/src/cares_wrap.h
++@@ -22,7 +22,7 @@
++ # include <netdb.h>
++ #endif  // __POSIX__
++ 
++-# include <ares_nameser.h>
+++# include <arpa/nameser.h>
++ 
++ namespace node {
++ namespace cares_wrap {
diff --git a/www/onlyoffice-documentserver/files/local.json.sample b/www/onlyoffice-documentserver/files/local.json.sample
new file mode 100644
index 000000000000..afe6599ff513
--- /dev/null
+++ b/www/onlyoffice-documentserver/files/local.json.sample
@@ -0,0 +1,43 @@
+{
+  "services": {
+    "CoAuthoring": {
+      "sql": {
+        "type": "postgres",
+        "dbHost": "localhost",
+        "dbPort": "5432",
+        "dbName": "onlyoffice",
+        "dbUser": "onlyoffice",
+        "dbPass": "onlyoffice"
+      },
+      "token": {
+        "enable": {
+          "request": {
+            "inbox": false,
+            "outbox": false
+          },
+          "browser": false
+        },
+        "inbox": {
+          "header": "Authorization"
+        },
+        "outbox": {
+          "header": "Authorization"
+        }
+      },
+      "secret": {
+        "inbox": {
+          "string": "secret"
+        },
+        "outbox": {
+          "string": "secret"
+        },
+        "session": {
+          "string": "secret"
+        }
+      }
+    }
+  },
+  "rabbitmq": {
+    "url": "amqp://guest:guest@localhost"
+  }
+}
diff --git a/www/onlyoffice-documentserver/files/packagejsons/server/Common/package-lock.json b/www/onlyoffice-documentserver/files/packagejsons/server/Common/package-lock.json
new file mode 100644
index 000000000000..a65460f327f7
--- /dev/null
+++ b/www/onlyoffice-documentserver/files/packagejsons/server/Common/package-lock.json
@@ -0,0 +1,1028 @@
+{
+  "name": "common",
+  "version": "1.0.1",
+  "lockfileVersion": 1,
+  "requires": true,
+  "dependencies": {
+    "ajv": {
+      "version": "6.12.6",
+      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+      "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+      "requires": {
+        "fast-deep-equal": "^3.1.1",
+        "fast-json-stable-stringify": "^2.0.0",
+        "json-schema-traverse": "^0.4.1",
+        "uri-js": "^4.2.2"
+      }
+    },
+    "amazon-s3-url-signer": {
+      "version": "https://github.com/agolybev/amazon-s3-url-signer/archive/v0.0.9.tar.gz",
+      "integrity": "sha512-wkmsZG000+d711di1U3690g3rE++ettaLZWDrAESgNhklr3wQcYEdEqAnQjgNirM0jjByQ9HTCeV48wFpHHguQ=="
+    },
+    "amqplib": {
+      "version": "0.5.6",
+      "resolved": "https://registry.npmjs.org/amqplib/-/amqplib-0.5.6.tgz",
+      "integrity": "sha512-J4TR0WAMPBHN+tgTuhNsSObfM9eTVTZm/FNw0LyaGfbiLsBxqSameDNYpChUFXW4bnTKHDXy0ab+nuLhumnRrQ==",
+      "requires": {
+        "bitsyntax": "~0.1.0",
+        "bluebird": "^3.5.2",
+        "buffer-more-ints": "~1.0.0",
+        "readable-stream": "1.x >=1.1.9",
+        "safe-buffer": "~5.1.2",
+        "url-parse": "~1.4.3"
+      }
+    },
+    "asap": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+      "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
+    },
+    "asn1": {
+      "version": "0.2.6",
+      "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
+      "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
+      "requires": {
+        "safer-buffer": "~2.1.0"
+      }
+    },
+    "asn1.js": {
+      "version": "5.4.1",
+      "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
+      "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
+      "requires": {
+        "bn.js": "^4.0.0",
+        "inherits": "^2.0.1",
+        "minimalistic-assert": "^1.0.0",
+        "safer-buffer": "^2.1.0"
+      }
+    },
+    "assert-plus": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+      "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+    },
+    "asynckit": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+      "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+    },
+    "aws-sdk": {
+      "version": "2.1049.0",
+      "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1049.0.tgz",
+      "integrity": "sha512-+wls9iNlotMeoZepwgR0yPzXsjXzr2ijoi5ERmsPWfMTFMHkm6INndBtSkm6fpu/NZnl+7EaPPES2yhaqnhoJg==",
+      "requires": {
+        "buffer": "4.9.2",
+        "events": "1.1.1",
+        "ieee754": "1.1.13",
+        "jmespath": "0.15.0",
+        "querystring": "0.2.0",
+        "sax": "1.2.1",
+        "url": "0.10.3",
+        "uuid": "3.3.2",
+        "xml2js": "0.4.19"
+      }
+    },
+    "aws-sign2": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+      "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
+    },
+    "aws4": {
+      "version": "1.11.0",
+      "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
+      "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
+    },
+    "base64-js": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+      "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
+    },
+    "bcrypt-pbkdf": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+      "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+      "requires": {
+        "tweetnacl": "^0.14.3"
+      }
+    },
+    "bitsyntax": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/bitsyntax/-/bitsyntax-0.1.0.tgz",
+      "integrity": "sha512-ikAdCnrloKmFOugAfxWws89/fPc+nw0OOG1IzIE72uSOg/A3cYptKCjSUhDTuj7fhsJtzkzlv7l3b8PzRHLN0Q==",
+      "requires": {
+        "buffer-more-ints": "~1.0.0",
+        "debug": "~2.6.9",
+        "safe-buffer": "~5.1.2"
+      }
+    },
+    "bluebird": {
+      "version": "3.7.2",
+      "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+      "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
+    },
+    "bn.js": {
+      "version": "4.12.0",
+      "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+      "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+    },
+    "buffer": {
+      "version": "4.9.2",
+      "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
+      "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
+      "requires": {
+        "base64-js": "^1.0.2",
+        "ieee754": "^1.1.4",
+        "isarray": "^1.0.0"
+      },
+      "dependencies": {
+        "isarray": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+          "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+        }
+      }
+    },
+    "buffer-equal-constant-time": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+      "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
+    },
+    "buffer-more-ints": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-1.0.0.tgz",
+      "integrity": "sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg=="
+    },
+    "caseless": {
+      "version": "0.12.0",
+      "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+      "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+    },
+    "circular-json": {
+      "version": "0.5.9",
+      "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.9.tgz",
+      "integrity": "sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ=="
+    },
+    "clone": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+      "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18="
+    },
+    "co": {
+      "version": "4.6.0",
+      "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+      "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
+    },
+    "combined-stream": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+      "requires": {
+        "delayed-stream": "~1.0.0"
+      }
+    },
+    "config": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/config/-/config-2.0.2.tgz",
+      "integrity": "sha512-duIbkKb0gls0bOtGwd1vaD4236MwepQlZcrMheOGrn3/9Px7oYFh8G4LB3ylGOlPr5wGoJRm8Grb2RihJZxuHQ==",
+      "requires": {
+        "json5": "^1.0.1"
+      }
+    },
+    "content-disposition": {
+      "version": "0.5.4",
+      "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+      "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+      "requires": {
+        "safe-buffer": "5.2.1"
+      },
+      "dependencies": {
+        "safe-buffer": {
+          "version": "5.2.1",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+          "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+        }
+      }
+    },
+    "core-util-is": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+      "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+    },
+    "dashdash": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+      "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+      "requires": {
+        "assert-plus": "^1.0.0"
+      }
+    },
+    "date-format": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz",
+      "integrity": "sha1-YV6CjiM90aubua4JUODOzPpuytg="
+    },
+    "debug": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "requires": {
+        "ms": "2.0.0"
+      },
+      "dependencies": {
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+        }
+      }
+    },
+    "delayed-stream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+      "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+    },
+    "dnscache": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/dnscache/-/dnscache-1.0.2.tgz",
+      "integrity": "sha512-2FFKzmLGOnD+Y378bRKH+gTjRMuSpH7OKgPy31KjjfCoKZx7tU8Dmqfd/3fhG2d/4bppuN8/KtWMUZBAcUCRnQ==",
+      "requires": {
+        "asap": "^2.0.6",
+        "lodash.clone": "^4.5.0"
+      }
+    },
+    "ecc-jsbn": {
*** 29798 LINES SKIPPED ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202201190738.20J7caJ3062163>