--On Tuesday, June 29, 2010 09:02:35 -0500 Scot Hetzel <[email protected]>
wrote:
On Tue, Jun 29, 2010 at 1:34 AM, Darren Pilgrim <[email protected]> wrote:
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.
The above may be working properly, the problem could be that the
sources have code in them that installs barnyard2.conf to PREFIX/etc/.
Check the sources Makefile to see if they are installing this file.
If they are, patch them to install the file as the *-sample.
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
While this works when installing a package, you still need code in the
Makefile to install barnyard2.conf if it doesn't exist when installing
the port.
You nailed it Scott. The problem was with the Makefile.in in the /etc
directory. It's been fixed, and the port upgrade has been submitted.
Thanks for the tipoff.
--
Paul Schmehl, Senior Infosec Analyst
As if it wasn't already obvious, my opinions
are my own and not those of my employer.
*******************************************
"It is as useless to argue with those who have
renounced the use of reason as to administer
medication to the dead." Thomas Jefferson
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "[email protected]"