help w/ port just installing files...
John-Mark Gurney
jmg at funkthat.com
Tue Nov 18 20:32:36 UTC 2014
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
> >> <jmg at FreeBSD.org>
> >> # $FreeBSD$
> >>
> >> PORTNAME= nist-kat
> >> DISTVERSION= 1.0
> >> CATEGORIES= security
> >>
> >> MAINTAINER= jmg at 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."
More information about the freebsd-ports
mailing list