1PORTNAME= vuxml 2PORTVERSION= 1.1 3PORTREVISION= 6 4CATEGORIES= security textproc 5MASTER_SITES= http://www.vuxml.org/dtd/vuxml-1/ 6DISTFILES= vuxml-10.dtd vuxml-model-10.mod \ 7 vuxml-11.dtd vuxml-model-11.mod \ 8 xml1.dcl catalog catalog.xml 9DIST_SUBDIR= vuxml 10 11MAINTAINER= ports@MidnightBSD.org 12COMMENT= Vulnerability and eXposure Markup Language DTD 13WWW= https://vuxml.freebsd.org/ 14 15LICENSE= bsd2 16 17RUN_DEPENDS= xmlcatmgr:textproc/xmlcatmgr \ 18 xsltproc:textproc/libxslt \ 19 ${LOCALBASE}/share/xml/dtd/xhtml-modularization/VERSION:textproc/xhtml-modularization \ 20 ${LOCALBASE}/share/xml/dtd/xhtml-basic/xhtml-basic10.dtd:textproc/xhtml-basic 21 22USES= python:run 23 24NO_BUILD= YES 25WRKSRC= ${WRKDIR} 26PLIST_SUB= XMLCAT_RM="${XMLCAT_RM}" XMLCAT_ADD="${XMLCAT_ADD}" \ 27 SGMLCAT_RM="${SGMLCAT_RM}" SGMLCAT_ADD="${SGMLCAT_ADD}" \ 28 dir_DTD="${dir_DTD}" 29 30.include <bsd.port.pre.mk> 31 32dir_DTD= share/xml/dtd/vuxml 33 34XMLCATMGR= ${LOCALBASE}/bin/xmlcatmgr 35SGMLCAT= ${PREFIX}/share/sgml/catalog.ports 36XMLCAT= ${PREFIX}/share/xml/catalog.ports 37 38XMLCAT_ADD= ${XMLCATMGR} -c ${XMLCAT} add nextCatalog \ 39 ${PREFIX}/${dir_DTD}/catalog.xml 40XMLCAT_RM= ${XMLCATMGR} -c ${XMLCAT} remove nextCatalog \ 41 ${PREFIX}/${dir_DTD}/catalog.xml 42SGMLCAT_ADD= ${XMLCATMGR} -sc ${SGMLCAT} add CATALOG \ 43 ${PREFIX}/${dir_DTD}/catalog 44SGMLCAT_RM= ${XMLCATMGR} -sc ${SGMLCAT} remove CATALOG \ 45 ${PREFIX}/${dir_DTD}/catalog 46 47CATALOG_PORTS_SGML= ${PREFIX}/share/sgml/catalog.ports 48CATALOG_PORTS_XML= ${PREFIX}/share/xml/catalog.ports 49 50VUXML_FILE?= ${PKGDIR}/vuln.xml 51VUXML_FLAT_FILE?= ${PKGDIR}/vuln-flat.xml 52_YEAR!= date +%Y 53VUXML_CURRENT_FILE?= ${PKGDIR}/vuln/${_YEAR}.xml 54 55.if defined(MAGUS) 56NO_TEST= yes 57.endif 58 59post-clean: 60 -${RM} "${VUXML_FILE}.tidy" 61 -${RM} "${VUXML_FLAT_FILE}" 62 63do-extract: 64 @${RM} -rf ${WRKDIR} 65 @${MKDIR} ${WRKDIR} 66.for f in ${DISTFILES} 67 ${CP} ${_DISTDIR}/${f} ${WRKDIR}/${f} 68.endfor 69 70do-install: 71 @${MKDIR} ${PREFIX}/${dir_DTD} 72.for f in ${DISTFILES} 73 ${INSTALL_DATA} ${WRKSRC}/${f} ${PREFIX}/${dir_DTD}/${f} 74.endfor 75 76do-test: 77 @${MKDIR} ${WRKDIR}/test 78 @${CP} -R ${.CURDIR}/vuln.xml ${.CURDIR}/vuln ${WRKDIR}/test 79 @cd ${.CURDIR} && make validate PKGDIR=${WRKDIR}/test 80 81${VUXML_FLAT_FILE}: ${VUXML_FILE} vuln/*.xml 82 xmllint -noent ${.ALLSRC:[1]} > ${.TARGET} 83 84validate: tidy 85 @${SH} ${FILESDIR}/validate.sh "${VUXML_FLAT_FILE}" 86 @${ECHO_MSG} Checking if tidy differs... 87 @if ${DIFF} -u "${VUXML_FLAT_FILE}" "${VUXML_FILE}.tidy"; \ 88 then \ 89 ${ECHO_MSG} ... seems okay; \ 90 ${RM} "${VUXML_FILE}.tidy"; \ 91 else \ 92 return 1; \ 93 fi 94 @${ECHO_MSG} Checking for space/tab... 95 @unexpand "${VUXML_FLAT_FILE}" | ${SED} -E 's,[[:space:]]*$$,,g' > "${VUXML_FILE}.unexpanded" 96 @if ${DIFF} -u "${VUXML_FLAT_FILE}" "${VUXML_FILE}.unexpanded"; \ 97 then \ 98 ${ECHO_MSG} ... seems okay; \ 99 ${RM} "${VUXML_FILE}.unexpanded"; \ 100 else \ 101 ${ECHO_MSG} ... see above; \ 102 ${ECHO_CMD} Consider using ${VUXML_FILE}.unexpanded for final commit; \ 103 return 1; \ 104 fi 105 ${PYTHON_CMD} ${FILESDIR}/extra-validation.py ${VUXML_FLAT_FILE} 106 107tidy: ${VUXML_FLAT_FILE} 108 @if [ ! -e ${LOCALBASE}/share/xml/dtd/vuxml/catalog.xml ]; \ 109 then \ 110 echo "Please install the VuXML port prior to running make validate/tidy."; \ 111 exit 1; \ 112 fi 113 ${SH} ${FILESDIR}/tidy.sh "${FILESDIR}/tidy.xsl" "${VUXML_FLAT_FILE}" > "${VUXML_FILE}.tidy" 114 115newentry: 116 @${SH} ${FILESDIR}/newentry.sh "${VUXML_CURRENT_FILE}" "CVE_ID=${CVE_ID}" "SA_ID=${SA_ID}" 117 118.if defined(VID) && !empty(VID) 119html: work/${VID}.html 120work/${VID}.html: ${FILESDIR}/html.xsl ${FILESDIR}/common.css ${VUXML_FILE} 121 ${MKDIR} work 122 xsltproc --stringparam vid "${VID}" \ 123 --output ${.TARGET} \ 124 ${FILESDIR}/html.xsl ${VUXML_FILE} 125 ${INSTALL_DATA} ${FILESDIR}/common.css work 126.endif 127 128.include <bsd.port.post.mk> 129