Waitman Gobble wrote this message on Mon, Nov 17, 2014 at 12:37 -0800: > On Mon, November 17, 2014 12:14 pm, Waitman Gobble wrote: > > > On Mon, November 17, 2014 7:31 pm, John-Mark Gurney wrote: > > > >> So, I'm trying to get a port that will install the NIST's KAT vectors > >> so I can write a test program using them... > >> > >> I don't know what is the best way to handle plist creation and > >> installation. I have this Makefile so far: # Created by: John-Mark > >> Gurney > >> <j...@freebsd.org> > >> # $FreeBSD$ > >> > >> PORTNAME= nist-kat > >> DISTVERSION= 1.0 > >> CATEGORIES= security > >> > >> MAINTAINER= j...@freebsd.org > >> COMMENT= Collection of NIST's Know Answer Test Vectors > >> > >> #LICENSE= PUBLICDOMAIN > >> > >> BASE_URL= http://csrc.nist.gov/groups/STM/cavp/documents > >> MASTER_SITES= ${BASE_URL}/aes/:aes > >> MASTER_SITES+= ${BASE_URL}/des/:des > >> MASTER_SITES+= ${BASE_URL}/mac/:mac > >> > >> DISTFILES= KAT_AES.zip:aes > >> DISTFILES+= XTSTestVectors.zip:aes > >> DISTFILES+= KAT_TDES.zip:des > >> DISTFILES+= gcmtestvectors.zip:mac > >> DISTFILES+= hmactestvectors.zip:mac > >> > >> # We want each dist file in it's own subdir > >> EXTRACT_CMD= mkdir $${file%.zip}; ${TAR} > >> EXTRACT_AFTER_ARGS=-C $${file%.zip} > >> > >> NO_BUILD= > >> NO_WRKSUBDIR= > >> > >> do-install: > >> mkdir -p ${PREFIX}/share/nist-kat && \ cp -Rp ${WRKSRC}/ > >> ${PREFIX}/share/nist-kat > >> > >> .include <bsd.port.mk> > >> > >> But the cp command copies more than I want, including the staging dir. > >> > >> Does someone know an easier way to do this? > > > > I tested this, it seems to work. But it installs everything in > > /usr/local/share/nist-kat without sub-directories. (if you want that?) > > > > There's no need to create the directory under /usr/local/share... > > > > 'make deinstall' also removes all the rsp files, which is good i think. > > > > do-install: > > cd ${WRKSRC}/KAT_AES && ${COPYTREE_SHARE} . ${DOCSDIR} && \ cd > > ${WRKSRC}/XTSTestVectors && ${COPYTREE_SHARE} . ${DOCSDIR} && \ > > cd ${WRKSRC}/KAT_TDES && ${COPYTREE_SHARE} . ${DOCSDIR} && \ cd > > ${WRKSRC}/gcmtestvectors && ${COPYTREE_SHARE} . ${DOCSDIR} && \ > > cd ${WRKSRC}/hmactestvectors && ${COPYTREE_SHARE} . ${DOCSDIR} > > OOPs, jumped the gun. It's putting in /usr/local/share/doc. > > If you want in /usr/local/share/${PORT_NAME} then use ${DATADIR} > > Also, it's not removing them on make deinstall, I was looking in the wrong > place. :(
I decided to improve my extract so things wouldn't be in the root of WRKDIR, so extract is now: EXTRACT_CMD= mkdir -p ${PORTNAME}/$${file%.zip} && ${TAR} EXTRACT_AFTER_ARGS=-C ${PORTNAME}/$${file%.zip} && \ chmod -R a-w ${PORTNAME}/$${file%.zip} The chmod is required because tar doesn't honor umask, and uzip w/o permissions default to 0666. I decided to try to make install install to stagedir instead of PREFIX even though bsd.port.mk still says that you should: # Variables that serve as convenient "aliases" for your *-install targets. # Use these like: "${INSTALL_PROGRAM} ${WRKSRC}/prog ${PREFIX}/bin". That example should probably read ${WRKSRC}/prog ${STAGEDIR}${LOCALBASE}/bin But, if I install to STAGEDIR like so: do-install: mkdir -p ${STAGEDIR}${LOCALBASE}/share && \ cp -Rp ${WRKSRC}/${PORTNAME} ${STAGEDIR}${LOCALBASE}/share Every thing seems to work fine... I'll follow on w/ another email w/ the complete port for review. Thanks. -- John-Mark Gurney Voice: +1 415 225 5579 "All that I will do, has been done, All that I have, has not." _______________________________________________ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"