summaryrefslogtreecommitdiff
path: root/www/onlyoffice-documentserver/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'www/onlyoffice-documentserver/Makefile')
-rw-r--r--www/onlyoffice-documentserver/Makefile155
1 files changed, 89 insertions, 66 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