diff --git a/www/onlyoffice-documentserver/Makefile b/www/onlyoffice-documentserver/Makefile index d887e2e9f95f..fae9b93955d8 100644 --- a/www/onlyoffice-documentserver/Makefile +++ b/www/onlyoffice-documentserver/Makefile @@ -1,272 +1,272 @@ PORTNAME= onlyoffice-documentserver DISTVERSIONPREFIX= v -DISTVERSION= 9.0.2.16 +DISTVERSION= 9.0.3.31 CATEGORIES= www MASTER_SITES+= LOCAL/mikael/v8/:source1 \ https://nodejs.org/dist/v${NODE_VERSION_PKGFETCH}/: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 \ optipng-0.7.8.tar.gz:source4 MAINTAINER= fsbruva@yahoo.com COMMENT= Secure office and productivity apps WWW= https://www.onlyoffice.com/ LICENSE= AGPLv3 LICENSE_FILE= ${WRKSRC}/LICENSE.txt BROKEN_i386= fails to build BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Jinja2>=0:devel/py-Jinja2@${PY_FLAVOR} \ boost-libs>0:devel/boost-libs \ glib>=2.54:devel/glib20 \ gn:devel/gn \ java:java/openjdk11 \ ninja:devel/ninja \ npm:www/npm-node20 \ ${LOCALBASE}/lib/libcrypto.a:security/openssl 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 \ 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 \ nginx:www/nginx \ pwgen:sysutils/pwgen \ 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 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 \ 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 \ jasenhuang:katana-parser:be6df45:jasenhuang_katana/core/Common/3dParty/html/katana-parser \ google:gumbo-parser:aa91b27:google_gumbo/core/Common/3dParty/html/gumbo-parser \ 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}-20250701:npm_cache/ + fsbruva:onlyoffice-DS-npm-cache:v${DISTVERSION}-20250721:npm_cache/ OPTIONS_SINGLE= DB OPTIONS_SINGLE_DB= MYSQL PGSQL OPTIONS_DEFAULT= PGSQL MYSQL_USES+= mysql:client PGSQL_USES+= pgsql PGSQL_VARS= WANT_PGSQL=client BINARY_ALIAS= python=${PYTHON_CMD} \ strip=true 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 \ onlyoffice.newsyslog.sample SUB_LIST= DS_GROUPNAME=${DS_GROUPNAME} \ DS_USERNAME=${DS_USERNAME} \ ETCDIR=${ETCDIR} \ PREFIX=${PREFIX} \ WWWDIR=${WWWDIR} -# node version used with "npm install @yao-pkg/pkg@6.5.1" +# 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.1 +NODE_VERSION_PKGFETCH= 20.19.4 -MAKE_ENV= BUILD_NUMBER="36" \ +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/} # Don't create __pycache__ directory when executing node-gyp # This is a workaround to avoid filesystem violations during poudriere build MAKE_ENV+= PYTHONDONTWRITEBYTECODE=1 DOS2UNIX_FILES= document-server-package/common/documentserver/nginx/includes/http-common.conf.m4 CONFLICTS_BUILD=devel/googletest .include -.if ${ARCH} == aarch64 +.if ${ARCH} == aarch64 || ${ARCH} == armv7 BUILD_DEPENDS+= clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} BINARY_ALIAS+= cpp=${LOCALBASE}/bin/clang-cpp${LLVM_DEFAULT} \ cc=${LOCALBASE}/bin/clang${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} .endif post-extract: @${MV} ${WRKDIR}/v8 ${WRKSRC}/core/Common/3dParty/v8_89 @${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 @${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 # linux has moved to systemd init files, continue to using supervisord for now ${MKDIR} ${WRKSRC}/document-server-package/common/documentserver/supervisor .for i in ds-converter.conf ds-docservice.conf ds-metrics.conf ds.conf ${CP} ${FILESDIR}/${i} \ ${WRKSRC}/document-server-package/common/documentserver/supervisor .endfor post-patch: @${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|' \ ${WRKSRC}/build_tools/tools/freebsd/automate.py \ ${WRKSRC}/core/Apple/IWork.pro \ ${WRKSRC}/core/Common/3dParty/boost/boost.pri \ ${WRKSRC}/core/Common/3dParty/icu/icu.pri \ ${WRKSRC}/core/Common/3dParty/openssl/openssl.pri \ ${WRKSRC}/core/Common/3dParty/v8_89/v8/build/toolchain/gcc_toolchain.gni \ ${WRKSRC}/core/Common/3dParty/v8_89/v8/buildtools/third_party/libc++/BUILD.gn \ ${WRKSRC}/core/DesktopEditor/fontengine/ApplicationFonts.cpp \ ${WRKSRC}/document-server-package/common/documentserver/bin/documentserver-generate-allfonts.sh.m4 \ ${WRKSRC}/document-server-package/common/documentserver/bin/documentserver-jwt-status.sh.m4 \ ${WRKSRC}/document-server-package/common/documentserver/bin/documentserver-pluginsmanager.sh.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 \ ${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 @${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 @${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|/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} 's|%%DISTDIR%%|${DISTDIR}|' \ ${WRKSRC}/web-apps/build/patches/optipng-bin+5.1.0.patch @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' -e 's|%%ETCDIR%%|${ETCDIR}|' \ ${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 @${FIND} ${WRKSRC}/server -type f -name npm-shrinkwrap.json -delete @${ECHO} "# Generated from 'DEPS'" > ${WRKSRC}/core/Common/3dParty/v8_89/v8/build/config/gclient_args.gni @${ECHO} "checkout_google_benchmark = false" >> ${WRKSRC}/core/Common/3dParty/v8_89/v8/build/config/gclient_args.gni do-build: ${INSTALL_SCRIPT} ${FILESDIR}/npm ${BINARY_LINKDIR}/npm @${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|g' ${WRKDIR}/.bin/npm # @cd ${WRKSRC}/web-apps/build ; ${SETENV} ${MAKE_ENV} npm cache clean --force @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/optipng-bin ; ${SETENV} ${MAKE_ENV} npm run postinstall optipng-bin @cd ${WRKSRC}/server ; ${SETENV} ${MAKE_ENV} npm install grunt-cli @cd ${WRKSRC}/server ; ${SETENV} ${MAKE_ENV} npm install grunt @cd ${WRKSRC}/sdkjs ; ${SETENV} ${MAKE_ENV} npm install grunt-cli @cd ${WRKSRC}/sdkjs ; ${SETENV} ${MAKE_ENV} npm install grunt @${MKDIR} ${WRKSRC}/yao-pkg @${CP} ${FILESDIR}/package* ${WRKSRC}/yao-pkg - @cd ${WRKSRC}/yao-pkg ; ${SETENV} ${MAKE_ENV} npm install @yao-pkg/pkg@6.5.1 + @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}/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, metrics and json 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/server/tools/pluginsmanager ${STAGEDIR}${WWWDIR}/documentserver/server/tools ${INSTALL_DATA} ${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" @${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 ${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 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 ${MKDIR} ${STAGEDIR}/${ETCDIR}/documentserver/newsyslog.conf.d ${INSTALL_DATA} ${WRKDIR}/onlyoffice.newsyslog.sample ${STAGEDIR}/${ETCDIR}/documentserver/newsyslog.conf.d # 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 # Remove bak file ${RM} ${STAGEDIR}${WWWDIR}/documentserver/server/Common/config/*.bak ${RM} ${STAGEDIR}${WWWDIR}/documentserver/dictionaries/sl_SI/hyph_sl_SI.dic.bak 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} - cd ${WRKDIR} && \ - ${TAR} czf ${PORTNAME}-${DISTVERSION}_`date +%Y%m%d`-npm-cache.tar.gz .npm .pkg-cache +# cd ${WRKDIR} && \ +# ${TAR} czf ${PORTNAME}-${DISTVERSION}_`date +%Y%m%d`-npm-cache.tar.gz .npm .pkg-cache .include diff --git a/www/onlyoffice-documentserver/distinfo b/www/onlyoffice-documentserver/distinfo index 432711cf408e..c9bcfbbcf825 100644 --- a/www/onlyoffice-documentserver/distinfo +++ b/www/onlyoffice-documentserver/distinfo @@ -1,47 +1,45 @@ -TIMESTAMP = 1751344944 +TIMESTAMP = 1753116846 SHA256 (v8-8.9.255.25_all.tar.gz) = 54853ef93accc063a82a0dc29457b25c9b6d88315431d62e06ab1f84797c5f80 SIZE (v8-8.9.255.25_all.tar.gz) = 72818814 -SHA256 (node-v20.19.1.tar.gz) = 691011ddb85c9ab86afb7ead2b6db2ddd45592f1c8fd26687d152dcadc182229 -SIZE (node-v20.19.1.tar.gz) = 88078477 +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-9.0.2.16_20250630-npm-cache.tar.gz) = 11738d912f93adb7bf401ae06cb70d2357a4b35177cae7ceb5915fa5267e3522 -SIZE (onlyoffice-documentserver-9.0.2.16_20250630-npm-cache.tar.gz) = 249461250 -SHA256 (ONLYOFFICE-DocumentServer-v9.0.2.16-v9.0.2_GH0.tar.gz) = 272dc092623ca12964c09aa0893676aa508bf0900a5ab04215d7086306d2583d -SIZE (ONLYOFFICE-DocumentServer-v9.0.2.16-v9.0.2_GH0.tar.gz) = 972017 -SHA256 (ONLYOFFICE-core-v9.0.2.16_GH0.tar.gz) = 79d7aaf8b591017911febef0e141f9c3735faa33d1e68d605e80237082805f14 -SIZE (ONLYOFFICE-core-v9.0.2.16_GH0.tar.gz) = 205184118 -SHA256 (ONLYOFFICE-core-fonts-v9.0.2.16_GH0.tar.gz) = 56ba5c76d053d2ae625d2f4a01a955ecb2f1d25b9bef896313281588879f676a -SIZE (ONLYOFFICE-core-fonts-v9.0.2.16_GH0.tar.gz) = 95376454 -SHA256 (ONLYOFFICE-dictionaries-v9.0.2.16_GH0.tar.gz) = c1665cd8de6a528b255b5d0d200f689a53c72bb36218dbf8ac046c4b04a7fe85 -SIZE (ONLYOFFICE-dictionaries-v9.0.2.16_GH0.tar.gz) = 57973827 -SHA256 (ONLYOFFICE-document-server-integration-v9.0.2.16_GH0.tar.gz) = 61759413e2c63ca94117b30442e985e2ea5d3e559b1e6d740adfa916e55a6074 -SIZE (ONLYOFFICE-document-server-integration-v9.0.2.16_GH0.tar.gz) = 6128854 -SHA256 (ONLYOFFICE-document-templates-v9.0.2.16_GH0.tar.gz) = ba8288f4c67ce21d8c4f3ec995b02c5df43464314770805c7c57860b79e31756 -SIZE (ONLYOFFICE-document-templates-v9.0.2.16_GH0.tar.gz) = 3914530 -SHA256 (ONLYOFFICE-sdkjs-v9.0.2.16_GH0.tar.gz) = ecdb6c32c426e86b1bca71fc129f283430a14abc3e747464b8b9167ba08e264b -SIZE (ONLYOFFICE-sdkjs-v9.0.2.16_GH0.tar.gz) = 37688710 -SHA256 (ONLYOFFICE-server-v9.0.2.16_GH0.tar.gz) = 4d1dc02e4be3546bb6c1bbf6547eb4c46262e0554cacf81314ff741ce2ed5027 -SIZE (ONLYOFFICE-server-v9.0.2.16_GH0.tar.gz) = 4082601 -SHA256 (ONLYOFFICE-web-apps-v9.0.2.16_GH0.tar.gz) = 6befc028e52e4176e2007274915efc3354aa474ef7df6bdad0299204fb1ebf2b -SIZE (ONLYOFFICE-web-apps-v9.0.2.16_GH0.tar.gz) = 443520777 -SHA256 (ONLYOFFICE-build_tools-v9.0.2.16_GH0.tar.gz) = fe7b82477a78ed2a272c841d75c8a6383506a194b3893547ee70a86193943f50 -SIZE (ONLYOFFICE-build_tools-v9.0.2.16_GH0.tar.gz) = 33870057 +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-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.2.16_GH0.tar.gz) = c3153d922b38362146a209eade7f645e72504e19d5eb760354c57c223c4b637f -SIZE (ONLYOFFICE-document-server-package-v9.0.2.16_GH0.tar.gz) = 186621 +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 (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 (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.1_GH0.tar.gz) = df466a0ea8365d10089d3169b224b079bb0ec409c57f2ff79c4f6048f8c5d29c -SIZE (fsbruva-onlyoffice-DS-pkg-cache-v20.19.1_GH0.tar.gz) = 1288 -SHA256 (fsbruva-onlyoffice-DS-npm-cache-v9.0.2.16-20250701_GH0.tar.gz) = c8a355fe7941a29ba6ba51c97c52808ef5cfe3047cb4f31335a2e03cdfd84354 -SIZE (fsbruva-onlyoffice-DS-npm-cache-v9.0.2.16-20250701_GH0.tar.gz) = 161979161 +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 diff --git a/www/onlyoffice-documentserver/files/extra-patch-pkg-fetch_patches_node.v20.19.1.cpp.patch b/www/onlyoffice-documentserver/files/extra-patch-pkg-fetch_patches_node.v20.19.1.cpp.patch deleted file mode 100644 index 44c114f57dd6..000000000000 --- a/www/onlyoffice-documentserver/files/extra-patch-pkg-fetch_patches_node.v20.19.1.cpp.patch +++ /dev/null @@ -1,1014 +0,0 @@ -https://github.com/yao-pkg/pkg-fetch/raw/refs/tags/v3.5.23/patches/node.v20.19.1.cpp.patch -+ local FreeBSD patches - ---- yao-pkg/node_modules/@yao-pkg/pkg-fetch/patches/node.v20.19.1.cpp.patch -+++ yao-pkg/node_modules/@yao-pkg/pkg-fetch/patches/node.v20.19.1.cpp.patch -@@ -11,6 +11,24 @@ index d3c17d47bc..7970af6ea4 100644 - }], - ], - }, -+@@ -426,7 +426,7 @@ -+ 'ldflags': [ '-m32' ], -+ }], -+ [ 'host_arch=="ppc64" and OS not in "aix os400"', { -+- 'cflags': [ '-m64', '-mminimal-toc' ], -++ 'cflags': [ '-m64' ], -+ 'ldflags': [ '-m64' ], -+ }], -+ [ 'host_arch=="s390x" and OS=="linux"', { -+@@ -450,7 +450,7 @@ -+ 'ldflags': [ '-m32' ], -+ }], -+ [ 'target_arch=="ppc64" and OS not in "aix os400"', { -+- 'cflags': [ '-m64', '-mminimal-toc' ], -++ 'cflags': [ '-m64' ], -+ 'ldflags': [ '-m64' ], -+ }], -+ [ 'target_arch=="s390x" and OS=="linux"', { - diff --git node/deps/ngtcp2/nghttp3/lib/nghttp3_ringbuf.c node/deps/ngtcp2/nghttp3/lib/nghttp3_ringbuf.c - index 5e7775f1a5..eeebf67796 100644 - --- node/deps/ngtcp2/nghttp3/lib/nghttp3_ringbuf.c -@@ -600,3 +618,375 @@ index 2655b9e694..1d951571c7 100644 - 'cflags_cc!': [ '-fno-rtti' ], - }], - [ 'OS == "mac" or OS == "ios"', { -+--- node/Makefile.orig 2025-05-14 12:22:41 UTC -++++ node/Makefile -+@@ -171,8 +171,7 @@ out/Makefile: config.gypi common.gypi node.gyp \ -+ $(warning '$@' target is a noop) -+ -+ out/Makefile: config.gypi common.gypi node.gyp \ -+- deps/uv/uv.gyp deps/llhttp/llhttp.gyp deps/zlib/zlib.gyp \ -+- deps/simdutf/simdutf.gyp deps/ada/ada.gyp \ -++ deps/*/*.gyp \ -+ tools/v8_gypfiles/toolchain.gypi tools/v8_gypfiles/features.gypi \ -+ tools/v8_gypfiles/inspector.gypi tools/v8_gypfiles/v8.gyp -+ $(PYTHON) tools/gyp_node.py -f make -+--- node/deps/openssl/config/archs/linux-elf/no-asm/openssl-cl.gypi.orig 2023-05-16 06:58:19 UTC -++++ node/deps/openssl/config/archs/linux-elf/no-asm/openssl-cl.gypi -+@@ -13,7 +13,7 @@ -+ '-Wall -O3 -fomit-frame-pointer', -+ ], -+ 'openssl_ex_libs_linux-elf': [ -+- '-ldl -pthread', -++ '-pthread', -+ ], -+ 'openssl_cli_srcs_linux-elf': [ -+ 'openssl/apps/lib/cmp_mock_srv.c', -+--- node/deps/openssl/config/archs/linux-elf/no-asm/openssl.gypi.orig 2023-05-16 06:58:19 UTC -++++ node/deps/openssl/config/archs/linux-elf/no-asm/openssl.gypi -+@@ -977,7 +977,7 @@ -+ '-Wall -O3 -fomit-frame-pointer', -+ ], -+ 'openssl_ex_libs_linux-elf': [ -+- '-ldl -pthread', -++ '-pthread', -+ ], -+ }, -+ 'include_dirs': [ -+--- node/deps/openssl/openssl-cl_no_asm.gypi.orig 2023-11-22 10:13:54 UTC -++++ node/deps/openssl/openssl-cl_no_asm.gypi -+@@ -1,4 +1,5 @@ -+ { -++ 'defines': ['OPENSSL_NO_ASM'], -+ 'conditions': [ -+ ['target_arch=="ppc64" and OS in ("aix", "os400")', { -+ 'includes': ['config/archs/aix64-gcc-as/no-asm/openssl-cl.gypi'], -+@@ -45,7 +46,7 @@ -+ 'includes': ['config/archs/linux64-loongarch64/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/openssl/openssl_no_asm.gypi.orig 2023-05-16 06:58:20 UTC -++++ node/deps/openssl/openssl_no_asm.gypi -+@@ -44,7 +44,7 @@ -+ 'includes': ['config/archs/linux64-riscv64/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/v8/src/base/macros.h.orig 2021-04-12 21:00:33.000000000 +0000 -++++ node/deps/v8/src/base/macros.h 2025-06-20 09:42:18.838769000 +0000 -+@@ -203,7 +203,8 @@ -+ // base::is_trivially_copyable will differ for these cases. -+ template -+ struct is_trivially_copyable { -+-#if V8_CC_MSVC -++#if V8_CC_MSVC || (__GNUC__ == 12 && __GNUC_MINOR__ <= 2) || \ -++ (defined(__clang__) && __clang_major__ <= 17) -+ // Unfortunately, MSVC 2015 is broken in that std::is_trivially_copyable can -+ // be false even though it should be true according to the standard. -+ // (status at 2018-02-26, observed on the msvc waterfall bot). -+--- node/deps/v8/src/base/platform/platform-freebsd.cc.orig 2023-05-16 06:58:20 UTC -++++ node/deps/v8/src/base/platform/platform-freebsd.cc -+@@ -82,8 +82,8 @@ std::vector OS::GetSharedLib -+ lib_name = std::string(path); -+ } -+ result.push_back(SharedLibraryAddress( -+- lib_name, reinterpret_cast(map->kve_start), -+- reinterpret_cast(map->kve_end))); -++ lib_name, static_cast(map->kve_start), -++ static_cast(map->kve_end))); -+ } -+ -+ start += ssize; -+--- node/deps/v8/src/codegen/arm/cpu-arm.cc.orig 2023-05-16 06:58:20 UTC -++++ node/deps/v8/src/codegen/arm/cpu-arm.cc -+@@ -2,12 +2,15 @@ -+ // Use of this source code is governed by a BSD-style license that can be -+ // found in the LICENSE file. -+ -++#include "include/v8config.h" -++ -+ // CPU specific code for arm independent of OS goes here. -+ #ifdef __arm__ -+ #ifdef __QNXNTO__ -+ #include // for cache flushing. -+ #undef MAP_TYPE -+ #elif V8_OS_FREEBSD -++#include -+ #include // for cache flushing -+ #include -+ #elif V8_OS_STARBOARD -+--- node/deps/v8/src/codegen/ppc/constants-ppc.h.orig 2023-05-16 06:58:20 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 2023-05-16 06:58:20 UTC -++++ node/deps/v8/src/libsampler/sampler.cc -+@@ -511,6 +511,10 @@ void SignalHandler::FillRegisterState(void* context, R -+ state->pc = reinterpret_cast(mcontext.__gregs[_REG_PC]); -+ state->sp = reinterpret_cast(mcontext.__gregs[_REG_SP]); -+ state->fp = reinterpret_cast(mcontext.__gregs[_REG_FP]); -++#elif V8_TARGET_ARCH_PPC64 -++ state->pc = reinterpret_cast(mcontext.mc_srr0); -++ state->sp = reinterpret_cast(mcontext.mc_frame[1]); -++ state->fp = reinterpret_cast(mcontext.mc_frame[31]); -+ #endif // V8_HOST_ARCH_* -+ #elif V8_OS_NETBSD -+ #if V8_HOST_ARCH_IA32 -+Obtained from: https://chromium.googlesource.com/v8/v8.git/+/182d9c05e78b1ddb1cb8242cd3628a7855a0336f -+ -+commit 182d9c05e78b1ddb1cb8242cd3628a7855a0336f -+Author: Andrey Kosyakov -+Date: 2023-08-17T13:50:11-07:00 -+ -+ Define UChar as char16_t -+ -+ We used to have UChar defined as uint16_t which does not go along -+ with STL these days if you try to have an std::basic_string<> of it, -+ as there are no standard std::char_traits<> specialization for uint16_t. -+ -+ This switches UChar to char16_t where practical, introducing a few -+ compatibility shims to keep CL size small, as (1) this would likely -+ have to be back-ported and (2) crdtp extensively uses uint16_t for -+ wide chars. -+ -+ Bug: b:296390693 -+ Change-Id: I66a32d8f0050915225b187de56896c26dd76163d -+ Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4789966 -+ Reviewed-by: Jaroslav Sevcik -+ Commit-Queue: Jaroslav Sevcik -+ Auto-Submit: Andrey Kosyakov -+ Cr-Commit-Position: refs/heads/main@{#89559} -+ -+diff --git node/deps/v8/src/inspector/string-16.cc node/deps/v8/src/inspector/string-16.cc -+index a8b786a8166..6df9963e970 100644 -+--- node/deps/v8/src/inspector/string-16.cc -++++ node/deps/v8/src/inspector/string-16.cc -+@@ -27,7 +27,7 @@ bool isSpaceOrNewLine(UChar c) { -+ return isASCII(c) && c <= ' ' && (c == ' ' || (c <= 0xD && c >= 0x9)); -+ } -+ -+-int64_t charactersToInteger(const UChar* characters, size_t length, -++int64_t charactersToInteger(const uint16_t* characters, size_t length, -+ bool* ok = nullptr) { -+ std::vector buffer; -+ buffer.reserve(length + 1); -+@@ -50,6 +50,8 @@ int64_t charactersToInteger(const UChar* characters, size_t length, -+ -+ String16::String16(const UChar* characters, size_t size) -+ : m_impl(characters, size) {} -++String16::String16(const uint16_t* characters, size_t size) -++ : m_impl(reinterpret_cast(characters), size) {} -+ -+ String16::String16(const UChar* characters) : m_impl(characters) {} -+ -+@@ -241,6 +243,10 @@ String16 String16::fromUTF16LE(const UChar* stringStart, size_t length) { -+ #endif // V8_TARGET_BIG_ENDIAN -+ } -+ -++String16 String16::fromUTF16LE(const uint16_t* stringStart, size_t length) { -++ return fromUTF16LE(reinterpret_cast(stringStart), length); -++} -++ -+ std::string String16::utf8() const { -+ return UTF16ToUTF8(m_impl.data(), m_impl.size()); -+ } -+diff --git node/deps/v8/src/inspector/string-16.h node/deps/v8/src/inspector/string-16.h -+index 1678ffb2e1e..d9f6c466ab1 100644 -+--- node/deps/v8/src/inspector/string-16.h -++++ node/deps/v8/src/inspector/string-16.h -+@@ -6,6 +6,7 @@ -+ #define V8_INSPECTOR_STRING_16_H_ -+ -+ #include -++#include -+ -+ #include -+ #include -+@@ -18,7 +19,7 @@ -+ -+ namespace v8_inspector { -+ -+-using UChar = uint16_t; -++using UChar = char16_t; -+ -+ class String16 { -+ public: -+@@ -28,6 +29,7 @@ class String16 { -+ String16(const String16&) V8_NOEXCEPT = default; -+ String16(String16&&) V8_NOEXCEPT = default; -+ String16(const UChar* characters, size_t size); -++ String16(const uint16_t* characters, size_t size); -+ V8_EXPORT String16(const UChar* characters); -+ V8_EXPORT String16(const char* characters); -+ String16(const char* characters, size_t size); -+@@ -49,7 +51,9 @@ class String16 { -+ int toInteger(bool* ok = nullptr) const; -+ std::pair getTrimmedOffsetAndLength() const; -+ String16 stripWhiteSpace() const; -+- const UChar* characters16() const { return m_impl.c_str(); } -++ const uint16_t* characters16() const { -++ return reinterpret_cast(m_impl.c_str()); -++ } -+ size_t length() const { return m_impl.length(); } -+ bool isEmpty() const { return !m_impl.length(); } -+ UChar operator[](size_t index) const { return m_impl[index]; } -+@@ -79,6 +83,8 @@ class String16 { -+ // On Big endian architectures, byte order needs to be flipped. -+ V8_EXPORT static String16 fromUTF16LE(const UChar* stringStart, -+ size_t length); -++ V8_EXPORT static String16 fromUTF16LE(const uint16_t* stringStart, -++ size_t length); -+ -+ std::size_t hash() const { -+ if (!hash_code) { -+diff --git node/deps/v8/src/inspector/v8-string-conversions.cc node/deps/v8/src/inspector/v8-string-conversions.cc -+index 0c75e66b972..8cf19be816c 100644 -+--- node/deps/v8/src/inspector/v8-string-conversions.cc -++++ node/deps/v8/src/inspector/v8-string-conversions.cc -+@@ -12,7 +12,7 @@ -+ -+ namespace v8_inspector { -+ namespace { -+-using UChar = uint16_t; -++using UChar = char16_t; -+ using UChar32 = uint32_t; -+ -+ bool isASCII(UChar c) { return !(c & ~0x7F); } -+@@ -386,7 +386,7 @@ std::string UTF16ToUTF8(const UChar* stringStart, size_t length) { -+ -+ std::basic_string UTF8ToUTF16(const char* stringStart, size_t length) { -+ if (!stringStart || !length) return std::basic_string(); -+- std::vector buffer(length); -++ std::vector buffer(length); -+ UChar* bufferStart = buffer.data(); -+ -+ UChar* bufferCurrent = bufferStart; -+@@ -395,7 +395,7 @@ std::basic_string UTF8ToUTF16(const char* stringStart, size_t length) { -+ reinterpret_cast(stringStart + length), -+ &bufferCurrent, bufferCurrent + buffer.size(), nullptr, -+ true) != conversionOK) -+- return std::basic_string(); -++ return std::basic_string(); -+ size_t utf16Length = bufferCurrent - bufferStart; -+ return std::basic_string(bufferStart, bufferStart + utf16Length); -+ } -+diff --git node/deps/v8/src/inspector/v8-string-conversions.h node/deps/v8/src/inspector/v8-string-conversions.h -+index eb33c6816a5..1126255dac2 100644 -+--- node/deps/v8/src/inspector/v8-string-conversions.h -++++ node/deps/v8/src/inspector/v8-string-conversions.h -+@@ -5,14 +5,16 @@ -+ #ifndef V8_INSPECTOR_V8_STRING_CONVERSIONS_H_ -+ #define V8_INSPECTOR_V8_STRING_CONVERSIONS_H_ -+ -++#include -++ -+ #include -+ #include -+ -+ // Conversion routines between UT8 and UTF16, used by string-16.{h,cc}. You may -+ // want to use string-16.h directly rather than these. -+ namespace v8_inspector { -+-std::basic_string UTF8ToUTF16(const char* stringStart, size_t length); -+-std::string UTF16ToUTF8(const uint16_t* stringStart, size_t length); -++std::basic_string UTF8ToUTF16(const char* stringStart, size_t length); -++std::string UTF16ToUTF8(const char16_t* stringStart, size_t length); -+ } // namespace v8_inspector -+ -+ #endif // V8_INSPECTOR_V8_STRING_CONVERSIONS_H_ -+diff --git node/deps/v8/third_party/inspector_protocol/crdtp/test_platform_v8.cc node/deps/v8/third_party/inspector_protocol/crdtp/test_platform_v8.cc -+index c9d89eaa42f..1a46d781b89 100644 -+--- node/deps/v8/third_party/inspector_protocol/crdtp/test_platform_v8.cc -++++ node/deps/v8/third_party/inspector_protocol/crdtp/test_platform_v8.cc -+@@ -11,13 +11,16 @@ -+ namespace v8_crdtp { -+ -+ std::string UTF16ToUTF8(span in) { -+- return v8_inspector::UTF16ToUTF8(in.data(), in.size()); -++ return v8_inspector::UTF16ToUTF8(reinterpret_cast(in.data()), -++ in.size()); -+ } -+ -+ std::vector UTF8ToUTF16(span in) { -+- std::basic_string utf16 = v8_inspector::UTF8ToUTF16( -++ std::basic_string utf16 = v8_inspector::UTF8ToUTF16( -+ reinterpret_cast(in.data()), in.size()); -+- return std::vector(utf16.begin(), utf16.end()); -++ return std::vector( -++ reinterpret_cast(utf16.data()), -++ reinterpret_cast(utf16.data()) + utf16.size()); -+ } -+ -+ } // namespace v8_crdtp -+--- node/node.gypi.orig 2023-05-16 06:58:21 UTC -++++ node/node.gypi -+@@ -349,6 +349,9 @@ -+ [ 'node_use_openssl=="true"', { -+ 'defines': [ 'HAVE_OPENSSL=1' ], -+ 'conditions': [ -++ ['openssl_no_asm==1', { -++ 'defines': [ 'OPENSSL_NO_ASM' ], -++ }], -+ [ 'node_shared_openssl=="false"', { -+ 'defines': [ 'OPENSSL_API_COMPAT=0x10100000L', ], -+ 'dependencies': [ -+--- node/src/crypto/crypto_util.cc.orig 2023-05-16 06:58:21 UTC -++++ node/src/crypto/crypto_util.cc -+@@ -205,10 +205,12 @@ void InitCryptoOnce() { -+ // No-op with OPENSSL_NO_COMP builds of OpenSSL. -+ sk_SSL_COMP_zero(SSL_COMP_get_compression_methods()); -+ -++#if OPENSSL_VERSION_MAJOR < 3 -+ #ifndef OPENSSL_NO_ENGINE -+ ERR_load_ENGINE_strings(); -+ ENGINE_load_builtin_engines(); -+ #endif // !OPENSSL_NO_ENGINE -++#endif -+ } -+ -+ void GetFipsCrypto(const FunctionCallbackInfo& args) { -+--- node/src/cares_wrap.h.orig 2023-05-16 06:58:21 UTC -++++ node/src/cares_wrap.h -+@@ -23,7 +23,7 @@ -+ # include -+ #endif // __POSIX__ -+ -+-# include -++# include -+ -+ namespace node { -+ namespace cares_wrap { -+--- node/tools/v8_gypfiles/v8.gyp.orig 2023-05-16 06:58:22 UTC -++++ node/tools/v8_gypfiles/v8.gyp -+@@ -1091,7 +1091,7 @@ -+ }], -+ # Platforms that don't have Compare-And-Swap (CAS) support need to link atomic library -+ # to implement atomic memory access -+- ['v8_current_cpu in ["mips64", "mips64el", "ppc", "arm", "riscv64", "loong64"]', { -++ ['v8_current_cpu in ["mips64", "mips64el", "ppc", "riscv64", "loong64"]', { -+ 'link_settings': { -+ 'libraries': ['-latomic', ], -+ }, -diff --git a/node_modules/@yao-pkg/pkg-fetch/patches/node.v20.19.1.cpp.patch.orig b/node_modules/@yao-pkg/pkg-fetch/patches/node.v20.19.1.cpp.patch.orig -new file mode 100644 -index 0000000..6b9de6d ---- /dev/null -+++ b/node_modules/@yao-pkg/pkg-fetch/patches/node.v20.19.1.cpp.patch.orig -@@ -0,0 +1,602 @@ -+diff --git node/common.gypi node/common.gypi -+index d3c17d47bc..7970af6ea4 100644 -+--- node/common.gypi -++++ node/common.gypi -+@@ -184,7 +184,7 @@ -+ ['clang==1', { -+ 'lto': ' -flto ', # Clang -+ }, { -+- 'lto': ' -flto=4 -fuse-linker-plugin -ffat-lto-objects ', # GCC -++ 'lto': ' -flto=4 -ffat-lto-objects ', # GCC -+ }], -+ ], -+ }, -+diff --git node/deps/ngtcp2/nghttp3/lib/nghttp3_ringbuf.c node/deps/ngtcp2/nghttp3/lib/nghttp3_ringbuf.c -+index 5e7775f1a5..eeebf67796 100644 -+--- node/deps/ngtcp2/nghttp3/lib/nghttp3_ringbuf.c -++++ node/deps/ngtcp2/nghttp3/lib/nghttp3_ringbuf.c -+@@ -33,16 +33,6 @@ -+ -+ #include "nghttp3_macro.h" -+ -+-#if defined(_MSC_VER) && !defined(__clang__) && (defined(_M_ARM) || defined(_M_ARM64)) -+-unsigned int __popcnt(unsigned int x) { -+- unsigned int c = 0; -+- for (; x; ++c) { -+- x &= x - 1; -+- } -+- return c; -+-} -+-#endif -+- -+ int nghttp3_ringbuf_init(nghttp3_ringbuf *rb, size_t nmemb, size_t size, -+ const nghttp3_mem *mem) { -+ if (nmemb) { -+diff --git node/deps/ngtcp2/ngtcp2/lib/ngtcp2_ringbuf.c node/deps/ngtcp2/ngtcp2/lib/ngtcp2_ringbuf.c -+index 74e488bce7..36ca05e80e 100644 -+--- node/deps/ngtcp2/ngtcp2/lib/ngtcp2_ringbuf.c -++++ node/deps/ngtcp2/ngtcp2/lib/ngtcp2_ringbuf.c -+@@ -31,16 +31,6 @@ -+ -+ #include "ngtcp2_macro.h" -+ -+-#if defined(_MSC_VER) && !defined(__clang__) && (defined(_M_ARM) || defined(_M_ARM64)) -+-unsigned int __popcnt(unsigned int x) { -+- unsigned int c = 0; -+- for (; x; ++c) { -+- x &= x - 1; -+- } -+- return c; -+-} -+-#endif -+- -+ int ngtcp2_ringbuf_init(ngtcp2_ringbuf *rb, size_t nmemb, size_t size, -+ const ngtcp2_mem *mem) { -+ uint8_t *buf = ngtcp2_mem_malloc(mem, nmemb * size); -+diff --git node/deps/v8/include/v8-initialization.h node/deps/v8/include/v8-initialization.h -+index d3e35d6ec5..6e9bbe3849 100644 -+--- node/deps/v8/include/v8-initialization.h -++++ node/deps/v8/include/v8-initialization.h -+@@ -89,6 +89,10 @@ class V8_EXPORT V8 { -+ static void SetFlagsFromCommandLine(int* argc, char** argv, -+ bool remove_flags); -+ -++ static void EnableCompilationForSourcelessUse(); -++ static void DisableCompilationForSourcelessUse(); -++ static void FixSourcelessScript(Isolate* v8_isolate, Local script); -++ -+ /** Get the version string. */ -+ static const char* GetVersion(); -+ -+diff --git node/deps/v8/src/api/api.cc node/deps/v8/src/api/api.cc -+index a06394e6c1..154b7a82a8 100644 -+--- node/deps/v8/src/api/api.cc -++++ node/deps/v8/src/api/api.cc -+@@ -806,6 +806,28 @@ void V8::SetFlagsFromCommandLine(int* argc, char** argv, bool remove_flags) { -+ HelpOptions(HelpOptions::kDontExit)); -+ } -+ -++bool save_lazy; -++bool save_predictable; -++ -++void V8::EnableCompilationForSourcelessUse() { -++ save_lazy = i::v8_flags.lazy; -++ i::v8_flags.lazy = false; -++ save_predictable = i::v8_flags.predictable; -++ i::v8_flags.predictable = true; -++} -++ -++void V8::DisableCompilationForSourcelessUse() { -++ i::v8_flags.lazy = save_lazy; -++ i::v8_flags.predictable = save_predictable; -++} -++ -++void V8::FixSourcelessScript(Isolate* v8_isolate, Local unbound_script) { -++ auto isolate = reinterpret_cast(v8_isolate); -++ auto function_info = i::Handle::cast(Utils::OpenHandle(*unbound_script)); -++ i::Handle script(i::Script::cast(function_info->script()), isolate); -++ script->set_source(i::ReadOnlyRoots(isolate).undefined_value()); -++} -++ -+ RegisteredExtension* RegisteredExtension::first_extension_ = nullptr; -+ -+ RegisteredExtension::RegisteredExtension(std::unique_ptr extension) -+diff --git node/deps/v8/src/codegen/compiler.cc node/deps/v8/src/codegen/compiler.cc -+index 31c5acceeb..56cad8671f 100644 -+--- node/deps/v8/src/codegen/compiler.cc -++++ node/deps/v8/src/codegen/compiler.cc -+@@ -3475,7 +3475,7 @@ MaybeHandle GetSharedFunctionInfoForScriptImpl( -+ maybe_script = lookup_result.script(); -+ maybe_result = lookup_result.toplevel_sfi(); -+ is_compiled_scope = lookup_result.is_compiled_scope(); -+- if (!maybe_result.is_null()) { -++ if (!maybe_result.is_null() && source->length()) { -+ compile_timer.set_hit_isolate_cache(); -+ } else if (can_consume_code_cache) { -+ compile_timer.set_consuming_code_cache(); -+diff --git node/deps/v8/src/objects/js-function.cc node/deps/v8/src/objects/js-function.cc -+index 94f7a672a7..57bb3fc7f1 100644 -+--- node/deps/v8/src/objects/js-function.cc -++++ node/deps/v8/src/objects/js-function.cc -+@@ -1280,6 +1280,9 @@ Handle JSFunction::ToString(Handle function) { -+ Handle maybe_class_positions = JSReceiver::GetDataProperty( -+ isolate, function, isolate->factory()->class_positions_symbol()); -+ if (maybe_class_positions->IsClassPositions()) { -++ if (String::cast(Script::cast(shared_info->script()).source()).IsUndefined(isolate)) { -++ return isolate->factory()->NewStringFromAsciiChecked("class {}"); -++ } -+ ClassPositions class_positions = -+ ClassPositions::cast(*maybe_class_positions); -+ int start_position = class_positions.start(); -+diff --git node/deps/v8/src/objects/shared-function-info-inl.h node/deps/v8/src/objects/shared-function-info-inl.h -+index 5621b15d98..722e1d18cb 100644 -+--- node/deps/v8/src/objects/shared-function-info-inl.h -++++ node/deps/v8/src/objects/shared-function-info-inl.h -+@@ -635,6 +635,14 @@ bool SharedFunctionInfo::ShouldFlushCode( -+ } -+ if (!data.IsBytecodeArray()) return false; -+ -++ Object script_obj = script(); -++ if (!script_obj.IsUndefined()) { -++ Script script = Script::cast(script_obj); -++ if (script.source().IsUndefined()) { -++ return false; -++ } -++ } -++ -+ if (IsStressFlushingEnabled(code_flush_mode)) return true; -+ -+ BytecodeArray bytecode = BytecodeArray::cast(data); -+diff --git node/deps/v8/src/parsing/parsing.cc node/deps/v8/src/parsing/parsing.cc -+index 8c55a6fb6e..70bf82a57d 100644 -+--- node/deps/v8/src/parsing/parsing.cc -++++ node/deps/v8/src/parsing/parsing.cc -+@@ -42,6 +42,7 @@ bool ParseProgram(ParseInfo* info, Handle