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