Files
ports/textproc/pdf-reader-mcp/Makefile
T

58 lines
2.3 KiB
Makefile

PORTNAME= pdf-reader-mcp
DISTVERSION= 2.3.0
CATEGORIES= textproc # machine-learning
DIST_SUBDIR= ${PORTNAME}
MAINTAINER= yuri@FreeBSD.org
COMMENT= MCP server providing tools to read PDF files
WWW= https://github.com/SylphxAI/pdf-reader-mcp
LICENSE= MIT
FETCH_DEPENDS= npm:www/npm \
jq:textproc/jq \
${LOCALBASE}/share/certs/ca-root-nss.crt:security/ca_root_nss
USES= nodejs:run
PACKAGE_NAME= @sylphx/pdf-reader-mcp
DD= ${DISTDIR}/${DIST_SUBDIR}
FETCH_SCRIPT= ${PORTSDIR}/Tools/scripts/npmjs-fetch-with-dependencies.sh
NO_ARCH= yes
NO_BUILD= yes
do-fetch:
@${MKDIR} ${DD}
@if ! [ -f ${DD}/${DISTNAME}${EXTRACT_SUFX} ]; then \
${ECHO} "====> Fetching ${DISTNAME}${EXTRACT_SUFX}" && \
${SETENV} TMPDIR=${WRKDIR} LOCALBASE=${LOCALBASE} ${FETCH_SCRIPT} \
${PACKAGE_NAME} ${DISTVERSION} \
${FILESDIR}/package-lock.json \
${DD}/${DISTNAME}${EXTRACT_SUFX}; \
fi
do-install:
@${MKDIR} ${STAGEDIR}${PREFIX}/lib/node_modules/${PORTNAME}
cd ${WRKSRC} && \
${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/lib/node_modules/${PORTNAME}
${RLN} ${STAGEDIR}${PREFIX}/lib/node_modules/${PORTNAME}/node_modules/${PACKAGE_NAME}/dist/index.js ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
# Update shebang
${REINPLACE_CMD} -i '' -e '1s|#!/usr/bin/env node|#!${LOCALBASE}/bin/node|' \
${STAGEDIR}${PREFIX}/lib/node_modules/${PORTNAME}/node_modules/${PACKAGE_NAME}/dist/index.js
${CHMOD} +x ${STAGEDIR}${PREFIX}/lib/node_modules/${PORTNAME}/node_modules/${PACKAGE_NAME}/dist/index.js
# Add polyfills
@${ECHO} "import 'data:text/javascript,globalThis.DOMMatrix=class{constructor(){this.a=1;this.b=0;this.c=0;this.d=1;this.e=0;this.f=0}};globalThis.ImageData=class{constructor(w,h){this.width=w;this.height=h;this.data=new Uint8ClampedArray(w*h*4)}};globalThis.Path2D=class{constructor(){}addPath(){}};';" > ${WRKDIR}/polyfills.js
@${SED} -i '' '1r ${WRKDIR}/polyfills.js' ${STAGEDIR}${PREFIX}/lib/node_modules/${PORTNAME}/node_modules/${PACKAGE_NAME}/dist/index.js
# Suppress warnings in pdfjs-dist
${REINPLACE_CMD} -i '' \
-e '/warn(`Cannot load "@napi-rs\/canvas" package/d' \
-e '/warn("Cannot polyfill `DOMMatrix`/d' \
-e '/warn("Cannot polyfill `ImageData`/d' \
-e '/warn("Cannot polyfill `Path2D`/d' \
${STAGEDIR}${PREFIX}/lib/node_modules/${PORTNAME}/node_modules/pdfjs-dist/legacy/build/pdf.mjs
.include <bsd.port.mk>