ports/130869: www/rt38 [patch] fix configuration handling on upgrade

Angelo Turetta aturetta at bestunion.it
Thu Jan 22 11:20:03 UTC 2009


>Number:         130869
>Category:       ports
>Synopsis:       www/rt38 [patch] fix configuration handling on upgrade
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jan 22 11:20:01 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Angelo Turetta
>Release:        FreeBSD 7.1-STABLE i386
>Organization:
Best Union Company S.p.A.
>Environment:
System: FreeBSD snape.lan.bestunion.it 7.1-STABLE FreeBSD 7.1-STABLE #7: Thu Jan 8 13:41:46 CET 2009 aturetta at snape.lan.bestunion.it:/usr/obj/usr/src/sys/GENERIC i386


	
>Description:
	The installation of a default RT_SiteConfig.pm is broken.
	Currently the install copies RT_SiteConfig.pm if it's not present, then the
	port's Makefile unconditionally copies RT_SiteConfig.pm to RT_SiteConfig.pm-dist.

	All is OK after first installation. After the first upgrade, the user's
	RT_SiteConfig.pm overwrites RT_SiteConfig.pm-dist. On the next upgrade,
	if no changes has been made to RT_SiteConfig.pm, the check included in pkg-plist
	will delete RT_SiteConfig.pm because it's identical to RT_SiteConfig.pm-dist.
>How-To-Repeat:
	
>Fix:

	The port should install a file called RT_SiteConfig.pm-dist, and only then copy
	it to RT_SiteConfig.pm if the latter doesn't exist.
	While fixing this, I also attended a couple of TODO items, deleting them from
	Makefile

	Suggested commit message:

	=======================================================
	- Fix erroneous removal of user's RT_SiteConfig.pm after second upgrade
	- Fix path of RT_SiteConfig.pm in various files
	- Fix creation of default RT_SiteConfig.pm in pkg-plist
	- Bump portrevision (pkg-plist changed)
	=======================================================

	Please beware: portrevision bump is not included in my patch
	NOTE: the first point may be worth a heads-up in UPDATING

--- rt38-fix-siteconfig.diff begins here ---
Index: Makefile
===================================================================
RCS file: /home/ncvs/ports/www/rt38/Makefile,v
retrieving revision 1.7
diff -u -r1.7 Makefile
--- Makefile	22 Jan 2009 00:31:15 -0000	1.7
+++ Makefile	22 Jan 2009 10:51:01 -0000
@@ -6,8 +6,6 @@
 
 # TODO:
 # o etc/rt38 files permissions
-# o install etc/rt38/RT_SiteConfig.pm in pkg-plist for packages, fix make install
-# o patch etc/rt38/RT_SiteConfig.pm and -dist perl -c path
 # o GRANTS
 # o Schema
 # - Vhost Config
@@ -173,6 +171,7 @@
 
 PKGMESSAGE=	${WRKDIR}/pkg-message
 SUB_FILES=	pkg-message
+SUB_LIST=	RT_ETC_PATH=${RT_ETC_PATH}
 
 run-autotools::	run-autotools-autoconf
 
@@ -195,14 +194,15 @@
 post-patch:
 	@${RM} -f ${WRKSRC}/lib/RT.pm.in.orig
 	@${REINPLACE_CMD} -e 's!%%SITE_PERL%%!${SITE_PERL}!g' ${WRKSRC}/config.layout
+	@${REINPLACE_CMD} -e 's!/path/to/your/etc!${RT_ETC_PATH}!g' ${WRKSRC}/etc/RT_SiteConfig.pm
 
 pre-install:
 	@${RM} -f ${WRKSRC}/lib/RT.pm.in
 	@${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
 
 post-install:
-	@[ -f ${RT_ETC_PATH}/RT_SiteConfig.pm-dist ] || \
-		${CP} -p ${RT_ETC_PATH}/RT_SiteConfig.pm ${RT_ETC_PATH}/RT_SiteConfig.pm-dist
+	@[ -f ${RT_ETC_PATH}/RT_SiteConfig.pm ] || \
+		${CP} -p ${RT_ETC_PATH}/RT_SiteConfig.pm-dist ${RT_ETC_PATH}/RT_SiteConfig.pm
 	${CAT} ${PKGMESSAGE}
 
 .include <bsd.port.post.mk>
Index: pkg-plist
===================================================================
RCS file: /home/ncvs/ports/www/rt38/pkg-plist,v
retrieving revision 1.3
diff -u -r1.3 pkg-plist
--- pkg-plist	22 Jan 2009 00:31:15 -0000	1.3
+++ pkg-plist	22 Jan 2009 10:42:05 -0000
@@ -1,4 +1,6 @@
+ at comment $FreeBSD$
 @unexec if cmp -s %D/etc/rt38/RT_SiteConfig.pm %D/etc/rt38/RT_SiteConfig.pm-dist; then rm -f %D/etc/rt38/RT_SiteConfig.pm; fi
+ at exec [ -f %D/etc/rt38/RT_SiteConfig.pm ] || cp %D/rt38/RT_SiteConfig.pm-dist %D/etc/rt38/RT_SiteConfig.pm
 bin/mason_handler.fcgi
 bin/mason_handler.scgi
 bin/mason_handler.svc
Index: files/patch-Makefile.in
===================================================================
RCS file: /home/ncvs/ports/www/rt38/files/patch-Makefile.in,v
retrieving revision 1.3
diff -u -r1.3 patch-Makefile.in
--- files/patch-Makefile.in	22 Jan 2009 00:31:16 -0000	1.3
+++ files/patch-Makefile.in	22 Jan 2009 10:42:05 -0000
@@ -1,5 +1,14 @@
 --- ./Makefile.in.orig	2008-08-18 11:13:58.000000000 -0400
 +++ ./Makefile.in	2008-12-28 23:12:31.000000000 -0500
+@@ -58,7 +58,7 @@
+ 
+ CONFIG_FILE_PATH	=	@CONFIG_FILE_PATH_R@
+ CONFIG_FILE		= 	$(CONFIG_FILE_PATH)/RT_Config.pm
+-SITE_CONFIG_FILE		= 	$(CONFIG_FILE_PATH)/RT_SiteConfig.pm
++SITE_CONFIG_FILE		= 	$(CONFIG_FILE_PATH)/RT_SiteConfig.pm-dist
+ 
+ 
+ RT_VERSION_MAJOR	=	@RT_VERSION_MAJOR@
 @@ -107,7 +107,7 @@
  RT_VAR_PATH		=	@RT_VAR_PATH_R@
  RT_DOC_PATH		=	@RT_DOC_PATH_R@
Index: files/pkg-message.in
===================================================================
RCS file: /home/ncvs/ports/www/rt38/files/pkg-message.in,v
retrieving revision 1.4
diff -u -r1.4 pkg-message.in
--- files/pkg-message.in	2 Jan 2009 13:27:12 -0000	1.4
+++ files/pkg-message.in	22 Jan 2009 10:46:07 -0000
@@ -2,8 +2,8 @@
 
 To complete the installation of this port, please follow these steps:
 
-1. Edit %%LOCALBASE%%/etc/rt38/RT_SiteConfig.pm, by referring to
-   the default config file (%%LOCALBASE%%/etc/rt38/RT_Config.pm).
+1. Edit %%RT_ETC_PATH%%/RT_SiteConfig.pm, by referring to
+   the default config file (%%RT_ETC_PATH%%/RT_Config.pm).
 2. Configure the email and web gateways.  Please refer to
    'SETTING UP THE MAIL GATEWAY' in %%DOCSDIR%%/README
 3. Restart Apache.
--- rt38-fix-siteconfig.diff ends here ---


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



More information about the freebsd-ports-bugs mailing list