ports/70390: [update]net/dictd: fix overwrite config file
Dryice Liu
dryice at hotpop.com
Fri Aug 13 02:20:23 UTC 2004
>Number: 70390
>Category: ports
>Synopsis: [update]net/dictd: fix overwrite config file
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: update
>Submitter-Id: current-users
>Arrival-Date: Fri Aug 13 02:20:18 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator: Dryice Liu
>Release: FreeBSD 5.2.1-RELEASE i386
>Organization:
>Environment:
System: FreeBSD dryice.3322.org 5.2.1-RELEASE FreeBSD 5.2.1-RELEASE #1: Mon Mar 1 16:17:42 CST 2004
>Description:
Problem:
I'm using net/dictd and I found if I deinstall -
install it, or portupgrade it, it will overwrite my
/usr/local/etc/dictd.conf with a default one.
Changes:
- install a sample config file by default and try to
keep user config file
- new file: pkg-install
- new file: pkg-deinstall
>How-To-Repeat:
cd /usr/ports/net/dictd
make install clean
make some change on /usr/local/etc/dictd.conf
cd /usr/ports/net/dictd
make deinstall install
The changes are lost
>Fix:
--- dictd.diff begins here ---
diff -ruN dictd.old/Makefile dictd/Makefile
--- dictd.old/Makefile Sat Jun 5 03:18:10 2004
+++ dictd/Makefile Fri Aug 13 10:02:18 2004
@@ -47,7 +47,8 @@
.for i in example.conf example.dictrc example.site example2.conf example3.conf
${INSTALL_DATA} ${WRKSRC}/$i ${DATADIR}
.endfor
- @${SED} "s|%%PREFIX%%|${PREFIX}|g" < ${FILESDIR}/${PORTNAME}.conf > ${PREFIX}/etc/${PORTNAME}.conf
+ @${SED} "s|%%PREFIX%%|${PREFIX}|g" < ${FILESDIR}/${PORTNAME}.conf > ${PREFIX}/etc/${PORTNAME}.conf.sample
+ @${SETENV} PKG_PREFIX="${PREFIX}" PKG_DESTDIR="${DESTDIR}" ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
@${SED} "s|%%PREFIX%%|${PREFIX}|g" < ${FILESDIR}/${PORTNAME}.sh > ${PREFIX}/etc/rc.d/${PORTNAME}.sh
@${CHMOD} +x ${PREFIX}/etc/rc.d/${PORTNAME}.sh
@${SED} "s|%%PREFIX%%|${PREFIX}|g" < ${PKGMESSAGE}
diff -ruN dictd.old/pkg-deinstall dictd/pkg-deinstall
--- dictd.old/pkg-deinstall Thu Jan 1 08:00:00 1970
+++ dictd/pkg-deinstall Fri Aug 13 10:01:22 2004
@@ -0,0 +1,12 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+case $2 in
+DEINSTALL)
+ if cmp -s ${PKG_PREFIX-/usr/local}/etc/dictd.conf ${PKG_PREFIX-/usr/local}/etc/dictd.conf.sample; then
+ rm -f ${PKG_PREFIX-/usr/local}/etc/dictd.conf;
+ fi
+ ;;
+esac
diff -ruN dictd.old/pkg-install dictd/pkg-install
--- dictd.old/pkg-install Thu Jan 1 08:00:00 1970
+++ dictd/pkg-install Fri Aug 13 09:51:13 2004
@@ -0,0 +1,12 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+case $2 in
+POST-INSTALL)
+ if [ ! -f ${PKG_PREFIX-/usr/local}/etc/dictd.conf ]; then
+ cp ${PKG_PREFIX-/usr/local}/etc/dictd.conf.sample ${PKG_PREFIX-/usr/local}/etc/dictd.conf
+ fi
+ ;;
+esac
diff -ruN dictd.old/pkg-plist dictd/pkg-plist
--- dictd.old/pkg-plist Mon Jan 29 05:23:04 2001
+++ dictd/pkg-plist Fri Aug 13 10:02:21 2004
@@ -5,6 +5,6 @@
share/dictd/example.site
share/dictd/example2.conf
share/dictd/example3.conf
-etc/dictd.conf
+etc/dictd.conf.sample
etc/rc.d/dictd.sh
@dirrm share/dictd
--- dictd.diff ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list