diff --git a/textproc/opensearch-dashboards/Makefile b/textproc/opensearch-dashboards/Makefile index 8e0365f4e303..2ff215926a43 100644 --- a/textproc/opensearch-dashboards/Makefile +++ b/textproc/opensearch-dashboards/Makefile @@ -1,78 +1,79 @@ PORTNAME= opensearch-dashboards DISTVERSION= 2.1.0 DISTVERSIONSUFFIX= -linux-x64 +PORTREVISION= 1 CATEGORIES= textproc www MASTER_SITES= https://artifacts.opensearch.org/releases/bundle/${PORTNAME}/${DISTVERSION}/ MAINTAINER= opensearch@FreeBSD.org COMMENT= Visualization dashboards for OpenSearch LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE.txt BUILD_DEPENDS= npm-node14>0:www/npm-node14 USES= nodejs:14,build,run python:build USE_RC_SUBR= ${PORTNAME} WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION} OPTIONS_DEFINE= CHROME CHROME_DESC= Add dependency on www/chromium (required for PDF reports) CHROME_RUN_DEPENDS=chrome:www/chromium _DEVDIR= ${WRKDIR}/.devdir post-patch: @${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|' -e 's|%%LOCALBASE%%|${LOCALBASE}|' -e 's|%%WRKSRC%%|${WRKSRC}|' \ ${WRKSRC}/bin/opensearch-dashboards \ ${WRKSRC}/bin/opensearch-dashboards-keystore \ ${WRKSRC}/bin/opensearch-dashboards-plugin \ ${WRKSRC}/node_modules/re2/binding.gyp \ ${WRKSRC}/plugins/reportsDashboards/server/routes/utils/constants.js ${RM} \ ${WRKSRC}/bin/*.orig \ ${WRKSRC}/bin/*.bak \ ${WRKSRC}/node_modules/re2/binding.gyp.orig \ ${WRKSRC}/node_modules/re2/binding.gyp.bak \ ${WRKSRC}/plugins/reportsDashboards/server/routes/utils/constants.js.orig \ ${WRKSRC}/plugins/reportsDashboards/server/routes/utils/constants.js.bak ${RM} -r ${WRKSRC}/plugins/reportsDashboards/.chromium do-configure: (cd ${WRKSRC}/node_modules/re2 && \ ${SETENV} HOME=${WRKDIR} PYTHONDONTWRITEBYTECODE=1 \ ${LOCALBASE}/lib/node_modules/npm/bin/node-gyp-bin/node-gyp configure \ --python=${PYTHON_CMD} \ --nodedir ${LOCALBASE} \ --devdir=${_DEVDIR}) do-build: (cd ${WRKSRC}/node_modules/re2 && \ ${SETENV} HOME=${WRKDIR} PYTHONDONTWRITEBYTECODE=1 \ ${LOCALBASE}/lib/node_modules/npm/bin/node-gyp-bin/node-gyp build \ --devdir=${_DEVDIR}) ${RM} -r ${WRKSRC}/node_modules/re2/build/Release/.deps \ ${WRKSRC}/node_modules/re2/build/Release/obj.target do-install: ${MKDIR} ${STAGEDIR}${WWWDIR} ${STAGEDIR}${ETCDIR} ${INSTALL_DATA} ${WRKSRC}/config/opensearch_dashboards.yml ${STAGEDIR}${ETCDIR}/opensearch_dashboards.yml.sample (cd ${WRKSRC} && \ ${COPYTREE_SHARE} "data node_modules package.json plugins src" ${STAGEDIR}${WWWDIR} && \ ${COPYTREE_BIN} bin ${STAGEDIR}${WWWDIR}) ${STRIP_CMD} ${STAGEDIR}${WWWDIR}/node_modules/re2/build/Release/re2.node post-install: ${ECHO} "@sample ${ETCDIR}/opensearch_dashboards.yml.sample" >> ${TMPPLIST} ${FIND} -s ${STAGEDIR}${WWWDIR} -not -type d | ${SORT} | \ ${SED} -e 's#^${STAGEDIR}${PREFIX}/##' >> ${TMPPLIST} ${ECHO} "@dir(www,www) ${WWWDIR}/data" >> ${TMPPLIST} ${ECHO} "@dir ${WWWDIR}/plugins/reportsDashboards/node_modules/set-interval-async/test/resources/legacy" >> ${TMPPLIST} ${ECHO} "@dir ${WWWDIR}/plugins/reportsDashboards/node_modules/set-interval-async/test/resources/fixed" >> ${TMPPLIST} ${ECHO} "@dir ${WWWDIR}/plugins/reportsDashboards/node_modules/set-interval-async/test/resources/dynamic" >> ${TMPPLIST} ${ECHO} "@dir ${WWWDIR}/plugins/reportsDashboards/node_modules/set-interval-async/examples/fixed" >> ${TMPPLIST} ${ECHO} "@dir ${WWWDIR}/plugins/reportsDashboards/node_modules/set-interval-async/examples/dynamic" >> ${TMPPLIST} .include diff --git a/textproc/opensearch-dashboards/files/patch-src_setup__node__env_node__version__validator.js b/textproc/opensearch-dashboards/files/patch-src_setup__node__env_node__version__validator.js new file mode 100644 index 000000000000..b78a0bf27cc9 --- /dev/null +++ b/textproc/opensearch-dashboards/files/patch-src_setup__node__env_node__version__validator.js @@ -0,0 +1,21 @@ +--- src/setup_node_env/node_version_validator.js.orig 2022-06-30 21:38:00 UTC ++++ src/setup_node_env/node_version_validator.js +@@ -36,13 +36,13 @@ var pkg = require('../../package.json'); // Note: This + var currentVersion = process && process.version || null; + var rawRequiredVersion = pkg && pkg.engines && pkg.engines.node || null; + var requiredVersion = rawRequiredVersion ? 'v' + rawRequiredVersion : rawRequiredVersion; +-var currentVersionMajorMinorPatch = currentVersion.match(/^v(\d+)\.(\d+)\.(\d+)/); +-var requiredVersionMajorMinorPatch = requiredVersion.match(/^v(\d+)\.(\d+)\.(\d+)/); +-var isVersionValid = currentVersionMajorMinorPatch[1] === requiredVersionMajorMinorPatch[1] && currentVersionMajorMinorPatch[2] === requiredVersionMajorMinorPatch[2] && parseInt(currentVersionMajorMinorPatch[3], 10) >= parseInt(requiredVersionMajorMinorPatch[3], 10); // Validates current the NodeJS version compatibility when OpenSearch Dashboards starts. ++var currentVersionMajorMinorPatch = currentVersion.match(/^v(\d+)\.(\d+)\.(\d+)/).map(x => parseInt(x, 10)); ++var requiredVersionMajorMinorPatch = requiredVersion.match(/^v(\d+)\.(\d+)\.(\d+)/).map(x => parseInt(x, 10)); ++var isVersionValid = currentVersionMajorMinorPatch[1] === requiredVersionMajorMinorPatch[1] && currentVersionMajorMinorPatch[2] > requiredVersionMajorMinorPatch[2] || currentVersionMajorMinorPatch[1] === requiredVersionMajorMinorPatch[1] && currentVersionMajorMinorPatch[2] === requiredVersionMajorMinorPatch[2] && currentVersionMajorMinorPatch[3] >= requiredVersionMajorMinorPatch[3]; // Validates current the NodeJS version compatibility when OpenSearch Dashboards starts. + + if (!isVersionValid) { + var errorMessage = `OpenSearch Dashboards was built with ${requiredVersion} and does not support the current Node.js version ${currentVersion}. ` + `Please use Node.js ${requiredVersion} or a higher patch version.`; // Actions to apply when validation fails: error report + exit. + + console.error(errorMessage); + process.exit(1); +-} +\ No newline at end of file ++}