ports/159183: [patch] sysutils/scanbuttond: protect user config files

Warren Block wblock at wonkity.com
Mon Jul 25 16:30:25 UTC 2011


>Number:         159183
>Category:       ports
>Synopsis:       [patch] sysutils/scanbuttond: protect user config files
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jul 25 16:30:24 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Warren Block
>Release:        8-stable
>Organization:
>Environment:
FreeBSD lightning 8.2-STABLE FreeBSD 8.2-STABLE #0: Sun Jul 24 21:33:19 MDT 2011     root at lightning:/usr/obj/usr/src/sys/LIGHTNING  i386
>Description:
Reinstalling or upgrading sysutils/scanbuttond will overwrite user-modified config .sh files in /usr/local/etc/scanbuttond/.

This patch changes the port to work like other ports.  If there are user .sh files present, they are left alone.  If not present, sample files are installed.
The patch is based on sysutils/apcupsd, which seemed to be the right way to do it.


>How-To-Repeat:
Modify /usr/local/etc/scanbuttond/buttonpressed.sh initscanner.sh.
Reinstall the port.  Notice the modified files have been replaced with sample files from the port.
>Fix:
Apply patch.

Patch attached with submission follows:

diff -u sysutils/scanbuttond.orig/Makefile sysutils/scanbuttond/Makefile
--- sysutils/scanbuttond.orig/Makefile	2009-08-21 18:35:27.000000000 -0600
+++ sysutils/scanbuttond/Makefile	2011-07-25 10:24:01.000000000 -0600
@@ -7,6 +7,7 @@
 
 PORTNAME=	scanbuttond
 PORTVERSION=	0.2.3
+PORTREVISION=	1
 CATEGORIES=	sysutils
 MASTER_SITES=	SF
 
@@ -30,7 +31,23 @@
 pre-configure:
 	@${FIND} ${WRKSRC} -name Makefile.in | ${XARGS} \
 		${REINPLACE_CMD} -e 's|-ldl||g'
+
+pre-install:
+	@if [ -f ${WRKSRC}/scripts/buttonpressed.sh ]; then \
+		for na in buttonpressed.sh initscanner.sh; do \
+			${MV} ${WRKSRC}/scripts/$$na ${WRKSRC}/scripts/$$na.sample ; \
+		done; \
+		${REINPLACE_CMD} -e 's|\.sh|.sh.sample|g' ${WRKSRC}/scripts/Makefile ; \
+		${MV} ${WRKSRC}/backends/meta.conf ${WRKSRC}/backends/meta.conf.sample ; \
+		${REINPLACE_CMD} -e 's|meta\.conf|meta.conf.sample|g' ${WRKSRC}/backends/Makefile ; \
+	fi
+
 post-install:
+	@for na in buttonpressed.sh initscanner.sh meta.conf; do \
+		if [ ! -f ${ETCDIR}/$$na ]; then \
+			${CP} -p ${ETCDIR}/$$na.sample ${ETCDIR}/$$na; \
+		fi; \
+	done
 	@${CAT} ${PKGMESSAGE}
 
 .include <bsd.port.post.mk>
Common subdirectories: sysutils/scanbuttond.orig/files and sysutils/scanbuttond/files
diff -u sysutils/scanbuttond.orig/pkg-plist sysutils/scanbuttond/pkg-plist
--- sysutils/scanbuttond.orig/pkg-plist	2006-06-06 12:06:49.000000000 -0600
+++ sysutils/scanbuttond/pkg-plist	2011-07-25 10:23:19.000000000 -0600
@@ -1,7 +1,13 @@
 bin/scanbuttond
-etc/scanbuttond/buttonpressed.sh
-etc/scanbuttond/initscanner.sh
-etc/scanbuttond/meta.conf
+ at unexec if cmp -s %D/etc/scanbuttond/buttonpressed.sh.sample %D/etc/scanbuttond/buttonpressed.sh; then rm -f %D/etc/scanbuttond/buttonpressed.sh; fi
+etc/scanbuttond/buttonpressed.sh.sample
+ at exec if [ ! -f %D/etc/scanbuttond/buttonpressed.sh ] ; then cp -p %D/%F %B/buttonpressed.sh; fi
+ at unexec if cmp -s %D/etc/scanbuttond/initscanner.sh.sample %D/etc/scanbuttond/initscanner.sh; then rm -f %D/etc/scanbuttond/initscanner.sh; fi
+etc/scanbuttond/initscanner.sh.sample
+ at exec if [ ! -f %D/etc/scanbuttond/initscanner.sh ] ; then cp -p %D/%F %B/initscanner.sh; fi
+ at unexec if cmp -s %D/etc/scanbuttond/meta.conf.sample %D/etc/scanbuttond/meta.conf; then rm -f %D/etc/scanbuttond/meta.conf; fi
+etc/scanbuttond/meta.conf.sample
+ at exec if [ ! -f %D/etc/scanbuttond/meta.conf ] ; then cp -p %D/%F %B/meta.conf; fi
 lib/libscanbtnd-backend_epson.la
 lib/libscanbtnd-backend_epson.so
 lib/libscanbtnd-backend_epson.so.1


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list