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