Paul Schmehl wrote:
I'm working on a port update for one of the ports that I maintain, and I've run into a problem that I can't seem to solve.

I use this construction to ensure that the port doesn't overwrite the conf file, if one exists:

.for f in barnyard2.conf
        ${INSTALL_DATA} ${WRKSRC}/etc/${f} ${PREFIX}/etc/${f}-sample
        [ -f ${PREFIX}/etc/${f} ] || \
        ${INSTALL_DATA} ${WRKSRC}/etc/${f} ${PREFIX}/etc/${f}
.endfor

But it gets overwritten anyway. What am I doing wrong? I thought this worked before, but I can't be sure. Testing proves that it does not work now. I tried to changing to an if [ ! -f construction, but that didn't do a thing.

Instead of doing this in Makefile, do it in pkg-plist:

@unexec if cmp -s %D/etc/barnyard2.conf.sample %D/etc/barnyard2.conf; then rm -f %D/etc/barnyard2.conf; fi
etc/barnyard2.conf.sample
@exec if [ ! -f %D/etc/barnyard2.conf ] ; then cp -p %D/%F %D/etc/barnyard2.conf && chmod 600 %D/etc/barnyard2.conf; fi

Relevant section of the Porter's Handbook:

http://www.freebsd.org/doc/en/books/porters-handbook/plist-config.html
_______________________________________________
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"

Reply via email to