Files
ports/security/vuxml/Makefile
T
Baptiste Daroussin e14ed8232d Rework vuxml a bit to make them validable again
modify tidy.xsl to make it generates manually the xml declaration
xsl is not able to generate a list of entity otherwise.

Remove copyright form included files, they are redudundant anyway and
in the end only the vuln.xml file is distribued with entities expanded

Rework a bit the entity declaration in order for the document to look
great after expansion (as it did before we introduced the expansion
mechanism)

All validation are now processed direcly on the flattened file.

This is based on a patch from mfechner here

Submitted by:		mfechner
Differential Revision:	https://reviews.freebsd.org/D28299
2021-01-25 17:16:21 +00:00

108 lines
2.8 KiB
Makefile

# Created by: nectar@FreeBSD.org
# $FreeBSD$
PORTNAME= vuxml
PORTVERSION= 1.1
PORTREVISION= 5
CATEGORIES= security textproc
MASTER_SITES= http://www.vuxml.org/dtd/vuxml-1/
DISTFILES= vuxml-10.dtd vuxml-model-10.mod \
vuxml-11.dtd vuxml-model-11.mod \
xml1.dcl catalog catalog.xml
DIST_SUBDIR= vuxml
MAINTAINER= ports-secteam@FreeBSD.org
COMMENT= Vulnerability and eXposure Markup Language DTD
LICENSE= BSD2CLAUSE
RUN_DEPENDS= xmlcatmgr:textproc/xmlcatmgr \
xsltproc:textproc/libxslt \
${LOCALBASE}/share/xml/dtd/xhtml-modularization/VERSION:textproc/xhtml-modularization \
${LOCALBASE}/share/xml/dtd/xhtml-basic/xhtml-basic10.dtd:textproc/xhtml-basic
USES= python:run
NO_MTREE= yes
NO_ARCH= yes
NO_BUILD= yes
WRKSRC= ${WRKDIR}
dir_DTD= share/xml/dtd/vuxml
VUXML_FILE?= ${PKGDIR}/vuln.xml
VUXML_FLAT_FILE?= ${PKGDIR}/vuln-flat.xml
post-clean:
@${RM} "${VUXML_FILE}.tidy"
@${RM} "${VUXML_FLAT_FILE}"
do-extract:
@${RM} -r ${WRKDIR}
@${MKDIR} ${WRKDIR}
.for f in ${DISTFILES}
${CP} ${_DISTDIR}/${f} ${WRKDIR}/${f}
.endfor
do-install:
@${MKDIR} ${STAGEDIR}${PREFIX}/${dir_DTD}
.for f in ${DISTFILES}
${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}${PREFIX}/${dir_DTD}/${f}
.endfor
do-test:
@${MKDIR} ${WRKDIR}/test
@${CP} ${.CURDIR}/vuln.xml ${WRKDIR}/test
@cd ${.CURDIR} && make validate PKGDIR=${WRKDIR}/test
vuln-flat.xml: vuln.xml
xmllint -noent ${.ALLSRC} > ${.TARGET}
validate: tidy
@${SH} ${FILESDIR}/validate.sh "${VUXML_FLAT_FILE}"
@${ECHO_MSG} Checking if tidy differs...
@if ${DIFF} -u "${VUXML_FLAT_FILE}" "${VUXML_FILE}.tidy"; \
then \
${ECHO_MSG} ... seems okay; \
${RM} "${VUXML_FILE}.tidy"; \
else \
return 1; \
fi
@${ECHO_MSG} Checking for space/tab...
@unexpand "${VUXML_FLAT_FILE}" | ${SED} -E 's,[[:space:]]*$$,,g' > "${VUXML_FILE}.unexpanded"
@if ${DIFF} -u "${VUXML_FLAT_FILE}" "${VUXML_FILE}.unexpanded"; \
then \
${ECHO_MSG} ... seems okay; \
${RM} "${VUXML_FILE}.unexpanded"; \
else \
${ECHO_MSG} ... see above; \
${ECHO_CMD} Consider using ${VUXML_FILE}.unexpanded for final commit; \
return 1; \
fi
${PYTHON_CMD} ${FILESDIR}/extra-validation.py ${VUXML_FLAT_FILE}
tidy: vuln-flat.xml
@if [ ! -e ${LOCALBASE}/share/xml/dtd/vuxml/catalog.xml ]; \
then \
echo "Please install the VuXML port prior to running make validate/tidy."; \
exit 1; \
fi
${SH} ${FILESDIR}/tidy.sh "${FILESDIR}/tidy.xsl" "${VUXML_FLAT_FILE}" > "${VUXML_FILE}.tidy"
newentry:
@${SH} ${FILESDIR}/newentry.sh "${VUXML_FILE}"
.include <bsd.port.pre.mk>
.if defined(VID) && !empty(VID)
html: work/${VID}.html
work/${VID}.html: ${FILESDIR}/html.xsl ${FILESDIR}/common.css ${VUXML_FILE}
${MKDIR} work
xsltproc --stringparam vid "${VID}" \
--output ${.TARGET} \
${FILESDIR}/html.xsl ${VUXML_FILE}
${INSTALL_DATA} ${FILESDIR}/common.css work
.endif
.include <bsd.port.post.mk>