diff --git a/www/py-yt-dlp-ejs/Makefile b/www/py-yt-dlp-ejs/Makefile index c6009d3ae2c5..4fe0e013e6b4 100644 --- a/www/py-yt-dlp-ejs/Makefile +++ b/www/py-yt-dlp-ejs/Makefile @@ -1,96 +1,97 @@ PORTNAME= yt-dlp-ejs -DISTVERSION= 0.7.0 +DISTVERSION= 0.8.0 CATEGORIES= www MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} DISTNAME= ${PORTNAME:S/-/_/g}-${DISTVERSION} DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \ ${PORTNAME}-node-modules-${DISTVERSION}${EXTRACT_SUFX} DIST_SUBDIR= ${PORTNAME} MAINTAINER= yuri@FreeBSD.org COMMENT= JavaScript challenge solver for yt-dlp WWW= https://github.com/yt-dlp/yt-dlp-ejs LICENSE= UNLICENSE LICENSE_FILE= ${WRKSRC}/LICENSE FETCH_DEPENDS= npm:www/npm \ ${LOCALBASE}/share/certs/ca-root-nss.crt:security/ca_root_nss BUILD_DEPENDS= deno:www/deno \ npm:www/npm \ ${PYTHON_PKGNAMEPREFIX}hatch-vcs>=0:devel/py-hatch-vcs@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}hatchling>0:devel/py-hatchling@${PY_FLAVOR} RUN_DEPENDS= deno:www/deno USES= python USE_PYTHON= pep517 autoplist pytest SHEBANG_GLOB= *.py NO_ARCH= yes DD= ${DISTDIR}/${DIST_SUBDIR} do-fetch: # this target (1) downloads the source tarball, (2) extracts it to a temporary location, (3) runs npm ci to fetch and install node_modules, and (4) packages the node_modules directory into a separate tarball for later extraction during the build phase. This allows us to avoid running npm ci during the build phase which will require network access @if ! [ -f ${DD}/${DISTNAME}${EXTRACT_SUFX} ] || \ ! [ -f ${DD}/${PORTNAME}-node-modules-${DISTVERSION}${EXTRACT_SUFX} ]; then \ ${MKDIR} ${DD} && ${MKDIR} ${WRKDIR} && \ ${ECHO_MSG} "====> (1) Fetching ${DISTNAME}${EXTRACT_SUFX}" && \ cd ${DD} && ${FETCH_CMD} https://files.pythonhosted.org/packages/source/y/yt-dlp-ejs/${DISTNAME}${EXTRACT_SUFX} && \ ${ECHO_MSG} "====> (2) Extracting the tarball" && \ ${TAR} -xf ${DD}/${DISTNAME}${EXTRACT_SUFX} -C ${WRKDIR} && \ ${ECHO_MSG} "====> (3) Fetching and packaging node_modules using package-lock.json" && \ if [ -f ${FILESDIR}/package-lock.json ]; then \ ${ECHO_MSG} "====> Using existing package-lock.json"; \ ${CP} ${FILESDIR}/package-lock.json ${WRKDIR}/${DISTNAME}/; \ else \ ${ECHO_MSG} "====> Generating package-lock.json (it will be saved to ${FILESDIR})"; \ fi && \ cd ${WRKDIR}/${DISTNAME} && \ ${SETENV} NODE_EXTRA_CA_CERTS=${LOCALBASE}/share/certs/ca-root-nss.crt HOME=${WRKDIR} npm ci && \ if ! [ -f ${FILESDIR}/package-lock.json ]; then \ ${ECHO_MSG} "====> Saving generated package-lock.json to ${FILESDIR}"; \ ${CP} ${WRKDIR}/${DISTNAME}/package-lock.json ${FILESDIR}/; \ fi && \ ${FIND} node_modules -name '.package-lock.json' -delete && \ ${FIND} node_modules -type d -name '@*' -empty -delete && \ ${FIND} node_modules -exec ${TOUCH} -h -d 1970-01-01T00:00:00Z {} \; && \ ${ECHO_MSG} "====> (4) Packaging original tarball + NodeJS dependencies into a final tarball" && \ ${FIND} node_modules -print0 | ${SORT} -z | \ ${TAR} czf ${DD}/${PORTNAME}-node-modules-${DISTVERSION}${EXTRACT_SUFX} \ --format=bsdtar --no-read-sparse --gid 0 --uid 0 \ --options gzip:!timestamp --no-recursion --null -T - && \ ${RM} -rf ${WRKDIR}; \ fi post-extract: # Extract pre-downloaded node_modules @${TAR} -xf ${DD}/${PORTNAME}-node-modules-${DISTVERSION}${EXTRACT_SUFX} -C ${WRKSRC} do-build: # Build JavaScript bundles @${ECHO_MSG} "====> Building JavaScript bundles with rollup..." @cd ${WRKSRC} && \ ${SETENV} HOME=${WRKDIR} npm run bundle # Verify bundles were created @if ! [ -f ${WRKSRC}/dist/yt.solver.core.min.js ] || \ ! [ -f ${WRKSRC}/dist/yt.solver.lib.min.js ]; then \ ${ECHO_MSG} "ERROR: JavaScript bundles were not created properly"; \ exit 1; \ fi # Build Python wheel @cd ${WRKSRC} && \ ${SETENV} ${MAKE_ENV} ${PYTHON_CMD} -m build --no-isolation --wheel --outdir ${WRKSRC}/dist pre-test: # Copy built JavaScript files to test location @${MKDIR} ${WRKSRC}/yt_dlp_ejs/yt/solver @${CP} ${WRKSRC}/dist/yt.solver.core.min.js ${WRKSRC}/yt_dlp_ejs/yt/solver/core.min.js @${CP} ${WRKSRC}/dist/yt.solver.lib.min.js ${WRKSRC}/yt_dlp_ejs/yt/solver/lib.min.js -# tests as of 0.5.0: +# tests as of 0.8.0: # Results (0.15s): # 3 passed +# 1 warning .include diff --git a/www/py-yt-dlp-ejs/distinfo b/www/py-yt-dlp-ejs/distinfo index 3bb30268657c..16b1beb153e4 100644 --- a/www/py-yt-dlp-ejs/distinfo +++ b/www/py-yt-dlp-ejs/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1773465366 -SHA256 (yt-dlp-ejs/yt_dlp_ejs-0.7.0.tar.gz) = ecac13eb9ff948da84b39f1030fa03422abaf32dc58a0edd78f5dbcc03843556 -SIZE (yt-dlp-ejs/yt_dlp_ejs-0.7.0.tar.gz) = 95961 -SHA256 (yt-dlp-ejs/yt-dlp-ejs-node-modules-0.7.0.tar.gz) = 9412c22a67a2218a168e2feceb4b42cbb06574cfdebc9ef1a9bc8d981e7f6631 -SIZE (yt-dlp-ejs/yt-dlp-ejs-node-modules-0.7.0.tar.gz) = 15397650 +TIMESTAMP = 1774383824 +SHA256 (yt-dlp-ejs/yt_dlp_ejs-0.8.0.tar.gz) = d5fa1639f63b5c4af8d932495f60689d5370f1a095782c944f7f62a303eb104e +SIZE (yt-dlp-ejs/yt_dlp_ejs-0.8.0.tar.gz) = 96571 +SHA256 (yt-dlp-ejs/yt-dlp-ejs-node-modules-0.8.0.tar.gz) = 9412c22a67a2218a168e2feceb4b42cbb06574cfdebc9ef1a9bc8d981e7f6631 +SIZE (yt-dlp-ejs/yt-dlp-ejs-node-modules-0.8.0.tar.gz) = 15397650