misc/179964: net/rwhoisd: do not overwrite configs
Mark Felder
feld at feld.me
Tue Jun 25 13:30:00 UTC 2013
>Number: 179964
>Category: misc
>Synopsis: net/rwhoisd: do not overwrite configs
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Tue Jun 25 13:30:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator: Mark Felder
>Release:
>Organization:
>Environment:
>Description:
net/rwhoisd overwrites configs by default because a previous maintainer decided to remove the etc/rwhoisd/samples directory and put the configs directly in /etc/rwhoisd which unfortunately overwrites the live configs upon each reinstall.
This patch does the following:
- restores sample configs, copies the necessary samples to the right place during @exec if no live configs exist
- removes both the sample and live configs during @unexec if they are identical
- echo a message to notify user of need for net.inet6.ip6.v6only=0 if running with ipv6
- redundant mkdir/chown in post-install and @exec; use @exec but change to install -d instead of mkdir/chown
- rc script now passes rclint
https://redports.org/buildarchive/20130625130400-7240/
>How-To-Repeat:
>Fix:
Patch attached with submission follows:
Index: Makefile
===================================================================
--- Makefile (revision 321736)
+++ Makefile (working copy)
@@ -3,7 +3,7 @@
PORTNAME= rwhoisd
PORTVERSION= 1.5.9.6
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= net ipv6
MASTER_SITES= http://projects.arin.net/rwhois/ftp/ \
http://www.rwhois.net/ftp/ \
@@ -34,6 +34,10 @@
PORTDOCS= INSTALL.html TODO UPGRADE operations_guide.html \
operations_guide.txt rfc2167.txt security.html security.txt
+ETCFILES= rwhoisd.allow rwhoisd.auth_area rwhoisd.conf rwhoisd.deny \
+ rwhoisd.dir rwhoisd.root rwhoisd.x.dir
+PLIST_SUB+= ETCFILES="${ETCFILES}"
+
.include <bsd.port.options.mk>
.if empty(PORT_OPTIONS:MIPV6)
@@ -45,8 +49,6 @@
.endif
post-patch:
- @${REINPLACE_CMD} -e 's,rwhoisd/samples,rwhoisd,' \
- ${WRKSRC}/sample.data/Makefile.in
@${REINPLACE_CMD} -e 's,userid: rwhoisd,userid: nobody,' \
-e 's,pid-file: rwhoisd.pid,pid-file: /var/run/rwhoisd/rwhoisd.pid,' \
${WRKSRC}/sample.data/rwhoisd.conf
@@ -54,8 +56,6 @@
${WRKSRC}/common/conf.h
post-install:
- @${MKDIR} /var/log/rwhoisd /var/run/rwhoisd
- @${CHOWN} -R nobody /var/log/rwhoisd /var/run/rwhoisd
${INSTALL_MAN} ${WRKSRC}/doc/rwhois_indexer.8 ${PREFIX}/man/man8
${INSTALL_MAN} ${WRKSRC}/doc/rwhoisd.8 ${PREFIX}/man/man8
.if ${PORT_OPTIONS:MDOCS}
Index: files/rwhoisd.in
===================================================================
--- files/rwhoisd.in (revision 321736)
+++ files/rwhoisd.in (working copy)
@@ -1,5 +1,7 @@
#!/bin/sh
-
+#
+# $FreeBSD$
+#
# PROVIDE: rwhoisd
# REQUIRE: LOGIN
# KEYWORD: shutdown
@@ -15,18 +17,17 @@
. /etc/rc.subr
-name="rwhoisd"
+name=rwhoisd
rcvar=rwhoisd_enable
-
-command=%%PREFIX%%/sbin/${name}
-pidfile=${rwhoisd_pidfile}
-
load_rc_config $name
-: ${rwhoisd_enable="NO"}
+: ${rwhoisd_enable:=NO}
: ${rwhoisd_config="%%PREFIX%%/etc/rwhoisd/rwhoisd.conf"}
: ${rwhoisd_pidfile="/var/run/${name}/${name}.pid"}
+command=%%PREFIX%%/sbin/${name}
+pidfile=${rwhoisd_pidfile}
+
command_args="-d -c $rwhoisd_config"
run_rc_command "$1"
Index: pkg-plist
===================================================================
--- pkg-plist (revision 321736)
+++ pkg-plist (working copy)
@@ -2,66 +2,70 @@
bin/rwhois_indexer
bin/rwhois_repack
sbin/rwhoisd
-etc/rwhoisd/a.com/attribute_defs/asn.tmpl
-etc/rwhoisd/a.com/attribute_defs/contact.tmpl
-etc/rwhoisd/a.com/attribute_defs/domain.tmpl
-etc/rwhoisd/a.com/attribute_defs/guardian.tmpl
-etc/rwhoisd/a.com/attribute_defs/host.tmpl
-etc/rwhoisd/a.com/attribute_defs/org.tmpl
-etc/rwhoisd/a.com/attribute_defs/referral.tmpl
-etc/rwhoisd/a.com/data/asn/asn.txt
-etc/rwhoisd/a.com/data/contact/contact.txt
-etc/rwhoisd/a.com/data/domain/domain.txt
-etc/rwhoisd/a.com/data/guardian/guardian.txt
-etc/rwhoisd/a.com/data/host/host.txt
-etc/rwhoisd/a.com/data/org/org.txt
-etc/rwhoisd/a.com/data/referral/referral.txt
-etc/rwhoisd/a.com/schema
-etc/rwhoisd/a.com/soa
-etc/rwhoisd/net-10.0.0.0-8/attribute_defs/contact.tmpl
-etc/rwhoisd/net-10.0.0.0-8/attribute_defs/guardian.tmpl
-etc/rwhoisd/net-10.0.0.0-8/attribute_defs/host.tmpl
-etc/rwhoisd/net-10.0.0.0-8/attribute_defs/network.tmpl
-etc/rwhoisd/net-10.0.0.0-8/attribute_defs/referral.tmpl
-etc/rwhoisd/net-10.0.0.0-8/data/network/network.txt
-etc/rwhoisd/net-10.0.0.0-8/data/referral/referral.txt
-etc/rwhoisd/net-10.0.0.0-8/schema
-etc/rwhoisd/net-10.0.0.0-8/soa
-etc/rwhoisd/net-fd00:1234::-32/attribute_defs/host.tmpl
-etc/rwhoisd/net-fd00:1234::-32/attribute_defs/referral.tmpl
-etc/rwhoisd/net-fd00:1234::-32/attribute_defs/contact.tmpl
-etc/rwhoisd/net-fd00:1234::-32/attribute_defs/guardian.tmpl
-etc/rwhoisd/net-fd00:1234::-32/attribute_defs/network.tmpl
-etc/rwhoisd/net-fd00:1234::-32/data/referral/referral.txt
-etc/rwhoisd/net-fd00:1234::-32/data/network/network.txt
-etc/rwhoisd/net-fd00:1234::-32/soa
-etc/rwhoisd/net-fd00:1234::-32/schema
-etc/rwhoisd/rwhoisd.allow
-etc/rwhoisd/rwhoisd.auth_area
-etc/rwhoisd/rwhoisd.conf
-etc/rwhoisd/rwhoisd.deny
-etc/rwhoisd/rwhoisd.dir
-etc/rwhoisd/rwhoisd.root
-etc/rwhoisd/rwhoisd.x.dir
- at dirrm etc/rwhoisd/net-10.0.0.0-8/data/referral
- at dirrm etc/rwhoisd/net-10.0.0.0-8/data/network
- at dirrm etc/rwhoisd/net-10.0.0.0-8/data
- at dirrm etc/rwhoisd/net-10.0.0.0-8/attribute_defs
- at dirrm etc/rwhoisd/net-10.0.0.0-8
- at dirrm etc/rwhoisd/net-fd00:1234::-32/attribute_defs
- at dirrm etc/rwhoisd/net-fd00:1234::-32/data/referral
- at dirrm etc/rwhoisd/net-fd00:1234::-32/data/network
- at dirrm etc/rwhoisd/net-fd00:1234::-32/data
- at dirrm etc/rwhoisd/net-fd00:1234::-32
- at dirrm etc/rwhoisd/a.com/data/referral
- at dirrm etc/rwhoisd/a.com/data/org
- at dirrm etc/rwhoisd/a.com/data/host
- at dirrm etc/rwhoisd/a.com/data/guardian
- at dirrm etc/rwhoisd/a.com/data/domain
- at dirrm etc/rwhoisd/a.com/data/contact
- at dirrm etc/rwhoisd/a.com/data/asn
- at dirrm etc/rwhoisd/a.com/data
- at dirrm etc/rwhoisd/a.com/attribute_defs
- at dirrm etc/rwhoisd/a.com
+etc/rwhoisd/samples/a.com/attribute_defs/asn.tmpl
+etc/rwhoisd/samples/a.com/attribute_defs/contact.tmpl
+etc/rwhoisd/samples/a.com/attribute_defs/domain.tmpl
+etc/rwhoisd/samples/a.com/attribute_defs/guardian.tmpl
+etc/rwhoisd/samples/a.com/attribute_defs/host.tmpl
+etc/rwhoisd/samples/a.com/attribute_defs/org.tmpl
+etc/rwhoisd/samples/a.com/attribute_defs/referral.tmpl
+etc/rwhoisd/samples/a.com/data/asn/asn.txt
+etc/rwhoisd/samples/a.com/data/contact/contact.txt
+etc/rwhoisd/samples/a.com/data/domain/domain.txt
+etc/rwhoisd/samples/a.com/data/guardian/guardian.txt
+etc/rwhoisd/samples/a.com/data/host/host.txt
+etc/rwhoisd/samples/a.com/data/org/org.txt
+etc/rwhoisd/samples/a.com/data/referral/referral.txt
+etc/rwhoisd/samples/a.com/schema
+etc/rwhoisd/samples/a.com/soa
+etc/rwhoisd/samples/net-10.0.0.0-8/attribute_defs/contact.tmpl
+etc/rwhoisd/samples/net-10.0.0.0-8/attribute_defs/guardian.tmpl
+etc/rwhoisd/samples/net-10.0.0.0-8/attribute_defs/host.tmpl
+etc/rwhoisd/samples/net-10.0.0.0-8/attribute_defs/network.tmpl
+etc/rwhoisd/samples/net-10.0.0.0-8/attribute_defs/referral.tmpl
+etc/rwhoisd/samples/net-10.0.0.0-8/data/network/network.txt
+etc/rwhoisd/samples/net-10.0.0.0-8/data/referral/referral.txt
+etc/rwhoisd/samples/net-10.0.0.0-8/schema
+etc/rwhoisd/samples/net-10.0.0.0-8/soa
+etc/rwhoisd/samples/net-fd00:1234::-32/attribute_defs/host.tmpl
+etc/rwhoisd/samples/net-fd00:1234::-32/attribute_defs/referral.tmpl
+etc/rwhoisd/samples/net-fd00:1234::-32/attribute_defs/contact.tmpl
+etc/rwhoisd/samples/net-fd00:1234::-32/attribute_defs/guardian.tmpl
+etc/rwhoisd/samples/net-fd00:1234::-32/attribute_defs/network.tmpl
+etc/rwhoisd/samples/net-fd00:1234::-32/data/referral/referral.txt
+etc/rwhoisd/samples/net-fd00:1234::-32/data/network/network.txt
+etc/rwhoisd/samples/net-fd00:1234::-32/soa
+etc/rwhoisd/samples/net-fd00:1234::-32/schema
+etc/rwhoisd/samples/rwhoisd.allow
+etc/rwhoisd/samples/rwhoisd.auth_area
+etc/rwhoisd/samples/rwhoisd.conf
+etc/rwhoisd/samples/rwhoisd.deny
+etc/rwhoisd/samples/rwhoisd.dir
+etc/rwhoisd/samples/rwhoisd.root
+etc/rwhoisd/samples/rwhoisd.x.dir
+ at dirrm etc/rwhoisd/samples/net-10.0.0.0-8/data/referral
+ at dirrm etc/rwhoisd/samples/net-10.0.0.0-8/data/network
+ at dirrm etc/rwhoisd/samples/net-10.0.0.0-8/data
+ at dirrm etc/rwhoisd/samples/net-10.0.0.0-8/attribute_defs
+ at dirrm etc/rwhoisd/samples/net-10.0.0.0-8
+ at dirrm etc/rwhoisd/samples/net-fd00:1234::-32/attribute_defs
+ at dirrm etc/rwhoisd/samples/net-fd00:1234::-32/data/referral
+ at dirrm etc/rwhoisd/samples/net-fd00:1234::-32/data/network
+ at dirrm etc/rwhoisd/samples/net-fd00:1234::-32/data
+ at dirrm etc/rwhoisd/samples/net-fd00:1234::-32
+ at dirrm etc/rwhoisd/samples/a.com/data/referral
+ at dirrm etc/rwhoisd/samples/a.com/data/org
+ at dirrm etc/rwhoisd/samples/a.com/data/host
+ at dirrm etc/rwhoisd/samples/a.com/data/guardian
+ at dirrm etc/rwhoisd/samples/a.com/data/domain
+ at dirrm etc/rwhoisd/samples/a.com/data/contact
+ at dirrm etc/rwhoisd/samples/a.com/data/asn
+ at dirrm etc/rwhoisd/samples/a.com/data
+ at dirrm etc/rwhoisd/samples/a.com/attribute_defs
+ at dirrm etc/rwhoisd/samples/a.com
+ at dirrm etc/rwhoisd/samples
@dirrmtry etc/rwhoisd
- at exec mkdir -p /var/log/rwhoisd /var/run/rwhoisd; chown -R nobody /var/log/rwhoisd /var/run/rwhoisd
+ at exec install -d -o nobody /var/log/rwhoisd /var/run/rwhoisd
+ at exec for f in %%ETCFILES%%; do [ -f %D/%%ETCDIR%%/$f ] || cp -p %D/%%ETCDIR%%/samples/$f %D/%%ETCDIR%%/$f; done
+ at exec echo "If built with IPv6 enabled you will want to set ipv6_ipv4mapping="YES" in rc.conf or sysctl net.inet6.ip6.v6only=0 so the daemon isn't IPv6 only."
+ at unexec for f in %%ETCFILES%%; do cmp -s %D/%%ETCDIR%%/$f %D/%%ETCDIR%%/samples/$f && rm -f %D/%%ETCDIR%%/$f; done
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list