From 52b0c60b5acbbeb3f92db6a7e503a842ccca41b2 Mon Sep 17 00:00:00 2001
From: Joe Marcus Clarke <marcus@FreeBSD.org>
Date: Sat, 26 Feb 2005 09:32:01 +0000
Subject: Add a Mozilla Mozilla Plugable Init Script (PIS) to handle
 automatically sanitizing each users' home directory when starting Firefox. 
 This should make upgrades much more painless.

PR:		75816
Submitted by:	Jose M Rodriguez (freebsd) <josemi@freebsd.jazztel.es>
---
 www/firefox-devel/Makefile                    | 17 ++++++++++++++-
 www/firefox-devel/files/moz_pis_S50cleanhome  | 31 +++++++++++++++++++++++++++
 www/firefox-esr/Makefile                      | 17 ++++++++++++++-
 www/firefox-esr/files/moz_pis_S50cleanhome    | 31 +++++++++++++++++++++++++++
 www/firefox/Makefile                          | 17 ++++++++++++++-
 www/firefox/files/moz_pis_S50cleanhome        | 31 +++++++++++++++++++++++++++
 www/firefox10/Makefile                        | 17 ++++++++++++++-
 www/firefox10/files/moz_pis_S50cleanhome      | 31 +++++++++++++++++++++++++++
 www/firefox15/Makefile                        | 17 ++++++++++++++-
 www/firefox15/files/moz_pis_S50cleanhome      | 31 +++++++++++++++++++++++++++
 www/firefox3-devel/Makefile                   | 17 ++++++++++++++-
 www/firefox3-devel/files/moz_pis_S50cleanhome | 31 +++++++++++++++++++++++++++
 www/firefox35/Makefile                        | 17 ++++++++++++++-
 www/firefox35/files/moz_pis_S50cleanhome      | 31 +++++++++++++++++++++++++++
 www/firefox36/Makefile                        | 17 ++++++++++++++-
 www/firefox36/files/moz_pis_S50cleanhome      | 31 +++++++++++++++++++++++++++
 www/flock/Makefile                            | 17 ++++++++++++++-
 www/flock/files/moz_pis_S50cleanhome          | 31 +++++++++++++++++++++++++++
 18 files changed, 423 insertions(+), 9 deletions(-)
 create mode 100644 www/firefox-devel/files/moz_pis_S50cleanhome
 create mode 100644 www/firefox-esr/files/moz_pis_S50cleanhome
 create mode 100644 www/firefox/files/moz_pis_S50cleanhome
 create mode 100644 www/firefox10/files/moz_pis_S50cleanhome
 create mode 100644 www/firefox15/files/moz_pis_S50cleanhome
 create mode 100644 www/firefox3-devel/files/moz_pis_S50cleanhome
 create mode 100644 www/firefox35/files/moz_pis_S50cleanhome
 create mode 100644 www/firefox36/files/moz_pis_S50cleanhome
 create mode 100644 www/flock/files/moz_pis_S50cleanhome

diff --git a/www/firefox-devel/Makefile b/www/firefox-devel/Makefile
index 80a16ca84089..45a01ff1003a 100644
--- a/www/firefox-devel/Makefile
+++ b/www/firefox-devel/Makefile
@@ -7,6 +7,7 @@
 
 PORTNAME=	firefox
 PORTVERSION=	1.0.1
+PORTREVISION=	1
 PORTEPOCH=	1
 CATEGORIES=	www
 MASTER_SITES=	${MASTER_SITE_MOZILLA}
@@ -61,7 +62,10 @@ JPI_LIST?=\
 	${LOCALBASE}/diablo-jdk1.3.1/jre/plugin/${ARCH}/ns600/libjavaplugin_oji.so \
 	${LOCALBASE}/jdk1.3.1/jre/plugin/${ARCH}/ns600/libjavaplugin_oji.so
 
-SYSTEM_PREFS=	${FAKEDIR}/lib/${FIREFOX}-${FF_VER}/defaults/pref/firefox.js
+SYSTEM_PREFS=		${FAKEDIR}/lib/${FIREFOX}-${FF_VER}/defaults/pref/firefox.js
+SCRIPTS_DIR=		${FAKEDIR}/lib/${FIREFOX}-${FF_VER}
+MOZ_PIS_SCRIPTS=	S50cleanhome
+MOZ_PIS_DIR=		${SCRIPTS_DIR}/init.d
 
 OPTIONS=	DEBUG "Build a debugging image" off \
 		LOGGING "Enable additional log messages" off \
@@ -144,6 +148,12 @@ post-patch:
 		s|%%PREFIX%%|${PREFIX}|g ; \
 		s|%%X11BASE%%|${X11BASE}|g' \
 		< ${FILESDIR}/${ii} > ${WRKDIR}/${ii}
+.endfor
+.for ii in ${MOZ_PIS_SCRIPTS}
+	@${SED} -e 's|%%MOZILLA%%|${FIREFOX}|g ; \
+		s|%%PREFIX%%|${PREFIX}|g ; \
+		s|%%X11BASE%%|${X11BASE}|g' \
+		< ${FILESDIR}/moz_pis_${ii} > ${WRKDIR}/moz_pis_${ii}
 .endfor
 	@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \
 		${WRKSRC}/build/unix/run-mozilla.sh
@@ -177,6 +187,8 @@ pre-install:
 	@${RM} -rf ${FAKEDIR} ${PLIST}
 	@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} \
 		Makefile ${MAKE_ARGS} install
+	@${MKDIR} ${SCRIPTS_DIR}
+	@${MKDIR} ${MOZ_PIS_DIR}
 	${ECHO_CMD} 'share/gnome/pixmaps/${FIREFOX_ICON}' >> ${PLIST}
 	${ECHO_CMD} 'share/gnome/applications/firefox.desktop' >> ${PLIST}
 	${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g; \
@@ -188,6 +200,9 @@ pre-install:
 	done
 	${ECHO_CMD} bin/firefox >> ${PLIST}
 	${ECHO_CMD} bin/firefox-config >> ${PLIST}
+.for ii in ${MOZ_PIS_SCRIPTS}
+	${INSTALL_SCRIPT} ${WRKDIR}/moz_pis_${ii} ${MOZ_PIS_DIR}/${ii}
+.endfor
 .if !defined(WITHOUT_NEWTAB)
 	${ECHO_CMD} >> ${SYSTEM_PREFS}
 	${ECHO_CMD} "// Open external links in new tab" >> ${SYSTEM_PREFS}
diff --git a/www/firefox-devel/files/moz_pis_S50cleanhome b/www/firefox-devel/files/moz_pis_S50cleanhome
new file mode 100644
index 000000000000..3de5565e39f2
--- /dev/null
+++ b/www/firefox-devel/files/moz_pis_S50cleanhome
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+
+# S50cleanhome
+# a script to clean up users' Mozilla home directories to make upgrading
+# less painful.
+
+# We run in our own subshell
+
+# First, verify protocol
+[ "$1" != "start" ] && exit 1
+[ -z "${MOZ_PIS_API}" -o ${MOZ_PIS_API} -ne 2 ] && exit 1
+[ -z "${MOZ_PIS_MOZBINDIR}" -o ! -d "${MOZ_PIS_MOZBINDIR}" ] && exit 1
+[ -z "${HOME}" -o ! -d "${HOME}" ] && exit 1
+[ -z "${MOZ_PIS_USER_DIR}" -o ! -d "${HOME}/${MOZ_PIS_USER_DIR}" ] && exit 1
+
+# Try to cleanup ${HOME}/${MOZ_PIS_USER_DIR}
+
+if [ -f "${HOME}/${MOZ_PIS_USER_DIR}/profiles.ini" ]; then
+    sed -e '/Path=/! d' -e "s,Path=,${HOME}/${MOZ_PIS_USER_DIR}/," \
+    	"${HOME}/${MOZ_PIS_USER_DIR}/profiles.ini" \
+	| while read dir
+    do
+	[ ! -d "${dir}" ] && continue
+	# Debian does this for new builds
+	# rm -f "${dir}/XUL.mfasl"
+	# force a rebuild of compreg.dat and xpti.dat for new installations
+	[ "${dir}/compreg.dat" -ot "${MOZ_PIS_MOZBINDIR}/components.ini" ] &&
+		rm -f "${dir}/compatibility.ini" "${dir}/XUL.mfasl"
+    done
+fi
diff --git a/www/firefox-esr/Makefile b/www/firefox-esr/Makefile
index 80a16ca84089..45a01ff1003a 100644
--- a/www/firefox-esr/Makefile
+++ b/www/firefox-esr/Makefile
@@ -7,6 +7,7 @@
 
 PORTNAME=	firefox
 PORTVERSION=	1.0.1
+PORTREVISION=	1
 PORTEPOCH=	1
 CATEGORIES=	www
 MASTER_SITES=	${MASTER_SITE_MOZILLA}
@@ -61,7 +62,10 @@ JPI_LIST?=\
 	${LOCALBASE}/diablo-jdk1.3.1/jre/plugin/${ARCH}/ns600/libjavaplugin_oji.so \
 	${LOCALBASE}/jdk1.3.1/jre/plugin/${ARCH}/ns600/libjavaplugin_oji.so
 
-SYSTEM_PREFS=	${FAKEDIR}/lib/${FIREFOX}-${FF_VER}/defaults/pref/firefox.js
+SYSTEM_PREFS=		${FAKEDIR}/lib/${FIREFOX}-${FF_VER}/defaults/pref/firefox.js
+SCRIPTS_DIR=		${FAKEDIR}/lib/${FIREFOX}-${FF_VER}
+MOZ_PIS_SCRIPTS=	S50cleanhome
+MOZ_PIS_DIR=		${SCRIPTS_DIR}/init.d
 
 OPTIONS=	DEBUG "Build a debugging image" off \
 		LOGGING "Enable additional log messages" off \
@@ -144,6 +148,12 @@ post-patch:
 		s|%%PREFIX%%|${PREFIX}|g ; \
 		s|%%X11BASE%%|${X11BASE}|g' \
 		< ${FILESDIR}/${ii} > ${WRKDIR}/${ii}
+.endfor
+.for ii in ${MOZ_PIS_SCRIPTS}
+	@${SED} -e 's|%%MOZILLA%%|${FIREFOX}|g ; \
+		s|%%PREFIX%%|${PREFIX}|g ; \
+		s|%%X11BASE%%|${X11BASE}|g' \
+		< ${FILESDIR}/moz_pis_${ii} > ${WRKDIR}/moz_pis_${ii}
 .endfor
 	@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \
 		${WRKSRC}/build/unix/run-mozilla.sh
@@ -177,6 +187,8 @@ pre-install:
 	@${RM} -rf ${FAKEDIR} ${PLIST}
 	@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} \
 		Makefile ${MAKE_ARGS} install
+	@${MKDIR} ${SCRIPTS_DIR}
+	@${MKDIR} ${MOZ_PIS_DIR}
 	${ECHO_CMD} 'share/gnome/pixmaps/${FIREFOX_ICON}' >> ${PLIST}
 	${ECHO_CMD} 'share/gnome/applications/firefox.desktop' >> ${PLIST}
 	${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g; \
@@ -188,6 +200,9 @@ pre-install:
 	done
 	${ECHO_CMD} bin/firefox >> ${PLIST}
 	${ECHO_CMD} bin/firefox-config >> ${PLIST}
+.for ii in ${MOZ_PIS_SCRIPTS}
+	${INSTALL_SCRIPT} ${WRKDIR}/moz_pis_${ii} ${MOZ_PIS_DIR}/${ii}
+.endfor
 .if !defined(WITHOUT_NEWTAB)
 	${ECHO_CMD} >> ${SYSTEM_PREFS}
 	${ECHO_CMD} "// Open external links in new tab" >> ${SYSTEM_PREFS}
diff --git a/www/firefox-esr/files/moz_pis_S50cleanhome b/www/firefox-esr/files/moz_pis_S50cleanhome
new file mode 100644
index 000000000000..3de5565e39f2
--- /dev/null
+++ b/www/firefox-esr/files/moz_pis_S50cleanhome
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+
+# S50cleanhome
+# a script to clean up users' Mozilla home directories to make upgrading
+# less painful.
+
+# We run in our own subshell
+
+# First, verify protocol
+[ "$1" != "start" ] && exit 1
+[ -z "${MOZ_PIS_API}" -o ${MOZ_PIS_API} -ne 2 ] && exit 1
+[ -z "${MOZ_PIS_MOZBINDIR}" -o ! -d "${MOZ_PIS_MOZBINDIR}" ] && exit 1
+[ -z "${HOME}" -o ! -d "${HOME}" ] && exit 1
+[ -z "${MOZ_PIS_USER_DIR}" -o ! -d "${HOME}/${MOZ_PIS_USER_DIR}" ] && exit 1
+
+# Try to cleanup ${HOME}/${MOZ_PIS_USER_DIR}
+
+if [ -f "${HOME}/${MOZ_PIS_USER_DIR}/profiles.ini" ]; then
+    sed -e '/Path=/! d' -e "s,Path=,${HOME}/${MOZ_PIS_USER_DIR}/," \
+    	"${HOME}/${MOZ_PIS_USER_DIR}/profiles.ini" \
+	| while read dir
+    do
+	[ ! -d "${dir}" ] && continue
+	# Debian does this for new builds
+	# rm -f "${dir}/XUL.mfasl"
+	# force a rebuild of compreg.dat and xpti.dat for new installations
+	[ "${dir}/compreg.dat" -ot "${MOZ_PIS_MOZBINDIR}/components.ini" ] &&
+		rm -f "${dir}/compatibility.ini" "${dir}/XUL.mfasl"
+    done
+fi
diff --git a/www/firefox/Makefile b/www/firefox/Makefile
index 80a16ca84089..45a01ff1003a 100644
--- a/www/firefox/Makefile
+++ b/www/firefox/Makefile
@@ -7,6 +7,7 @@
 
 PORTNAME=	firefox
 PORTVERSION=	1.0.1
+PORTREVISION=	1
 PORTEPOCH=	1
 CATEGORIES=	www
 MASTER_SITES=	${MASTER_SITE_MOZILLA}
@@ -61,7 +62,10 @@ JPI_LIST?=\
 	${LOCALBASE}/diablo-jdk1.3.1/jre/plugin/${ARCH}/ns600/libjavaplugin_oji.so \
 	${LOCALBASE}/jdk1.3.1/jre/plugin/${ARCH}/ns600/libjavaplugin_oji.so
 
-SYSTEM_PREFS=	${FAKEDIR}/lib/${FIREFOX}-${FF_VER}/defaults/pref/firefox.js
+SYSTEM_PREFS=		${FAKEDIR}/lib/${FIREFOX}-${FF_VER}/defaults/pref/firefox.js
+SCRIPTS_DIR=		${FAKEDIR}/lib/${FIREFOX}-${FF_VER}
+MOZ_PIS_SCRIPTS=	S50cleanhome
+MOZ_PIS_DIR=		${SCRIPTS_DIR}/init.d
 
 OPTIONS=	DEBUG "Build a debugging image" off \
 		LOGGING "Enable additional log messages" off \
@@ -144,6 +148,12 @@ post-patch:
 		s|%%PREFIX%%|${PREFIX}|g ; \
 		s|%%X11BASE%%|${X11BASE}|g' \
 		< ${FILESDIR}/${ii} > ${WRKDIR}/${ii}
+.endfor
+.for ii in ${MOZ_PIS_SCRIPTS}
+	@${SED} -e 's|%%MOZILLA%%|${FIREFOX}|g ; \
+		s|%%PREFIX%%|${PREFIX}|g ; \
+		s|%%X11BASE%%|${X11BASE}|g' \
+		< ${FILESDIR}/moz_pis_${ii} > ${WRKDIR}/moz_pis_${ii}
 .endfor
 	@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \
 		${WRKSRC}/build/unix/run-mozilla.sh
@@ -177,6 +187,8 @@ pre-install:
 	@${RM} -rf ${FAKEDIR} ${PLIST}
 	@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} \
 		Makefile ${MAKE_ARGS} install
+	@${MKDIR} ${SCRIPTS_DIR}
+	@${MKDIR} ${MOZ_PIS_DIR}
 	${ECHO_CMD} 'share/gnome/pixmaps/${FIREFOX_ICON}' >> ${PLIST}
 	${ECHO_CMD} 'share/gnome/applications/firefox.desktop' >> ${PLIST}
 	${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g; \
@@ -188,6 +200,9 @@ pre-install:
 	done
 	${ECHO_CMD} bin/firefox >> ${PLIST}
 	${ECHO_CMD} bin/firefox-config >> ${PLIST}
+.for ii in ${MOZ_PIS_SCRIPTS}
+	${INSTALL_SCRIPT} ${WRKDIR}/moz_pis_${ii} ${MOZ_PIS_DIR}/${ii}
+.endfor
 .if !defined(WITHOUT_NEWTAB)
 	${ECHO_CMD} >> ${SYSTEM_PREFS}
 	${ECHO_CMD} "// Open external links in new tab" >> ${SYSTEM_PREFS}
diff --git a/www/firefox/files/moz_pis_S50cleanhome b/www/firefox/files/moz_pis_S50cleanhome
new file mode 100644
index 000000000000..3de5565e39f2
--- /dev/null
+++ b/www/firefox/files/moz_pis_S50cleanhome
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+
+# S50cleanhome
+# a script to clean up users' Mozilla home directories to make upgrading
+# less painful.
+
+# We run in our own subshell
+
+# First, verify protocol
+[ "$1" != "start" ] && exit 1
+[ -z "${MOZ_PIS_API}" -o ${MOZ_PIS_API} -ne 2 ] && exit 1
+[ -z "${MOZ_PIS_MOZBINDIR}" -o ! -d "${MOZ_PIS_MOZBINDIR}" ] && exit 1
+[ -z "${HOME}" -o ! -d "${HOME}" ] && exit 1
+[ -z "${MOZ_PIS_USER_DIR}" -o ! -d "${HOME}/${MOZ_PIS_USER_DIR}" ] && exit 1
+
+# Try to cleanup ${HOME}/${MOZ_PIS_USER_DIR}
+
+if [ -f "${HOME}/${MOZ_PIS_USER_DIR}/profiles.ini" ]; then
+    sed -e '/Path=/! d' -e "s,Path=,${HOME}/${MOZ_PIS_USER_DIR}/," \
+    	"${HOME}/${MOZ_PIS_USER_DIR}/profiles.ini" \
+	| while read dir
+    do
+	[ ! -d "${dir}" ] && continue
+	# Debian does this for new builds
+	# rm -f "${dir}/XUL.mfasl"
+	# force a rebuild of compreg.dat and xpti.dat for new installations
+	[ "${dir}/compreg.dat" -ot "${MOZ_PIS_MOZBINDIR}/components.ini" ] &&
+		rm -f "${dir}/compatibility.ini" "${dir}/XUL.mfasl"
+    done
+fi
diff --git a/www/firefox10/Makefile b/www/firefox10/Makefile
index 80a16ca84089..45a01ff1003a 100644
--- a/www/firefox10/Makefile
+++ b/www/firefox10/Makefile
@@ -7,6 +7,7 @@
 
 PORTNAME=	firefox
 PORTVERSION=	1.0.1
+PORTREVISION=	1
 PORTEPOCH=	1
 CATEGORIES=	www
 MASTER_SITES=	${MASTER_SITE_MOZILLA}
@@ -61,7 +62,10 @@ JPI_LIST?=\
 	${LOCALBASE}/diablo-jdk1.3.1/jre/plugin/${ARCH}/ns600/libjavaplugin_oji.so \
 	${LOCALBASE}/jdk1.3.1/jre/plugin/${ARCH}/ns600/libjavaplugin_oji.so
 
-SYSTEM_PREFS=	${FAKEDIR}/lib/${FIREFOX}-${FF_VER}/defaults/pref/firefox.js
+SYSTEM_PREFS=		${FAKEDIR}/lib/${FIREFOX}-${FF_VER}/defaults/pref/firefox.js
+SCRIPTS_DIR=		${FAKEDIR}/lib/${FIREFOX}-${FF_VER}
+MOZ_PIS_SCRIPTS=	S50cleanhome
+MOZ_PIS_DIR=		${SCRIPTS_DIR}/init.d
 
 OPTIONS=	DEBUG "Build a debugging image" off \
 		LOGGING "Enable additional log messages" off \
@@ -144,6 +148,12 @@ post-patch:
 		s|%%PREFIX%%|${PREFIX}|g ; \
 		s|%%X11BASE%%|${X11BASE}|g' \
 		< ${FILESDIR}/${ii} > ${WRKDIR}/${ii}
+.endfor
+.for ii in ${MOZ_PIS_SCRIPTS}
+	@${SED} -e 's|%%MOZILLA%%|${FIREFOX}|g ; \
+		s|%%PREFIX%%|${PREFIX}|g ; \
+		s|%%X11BASE%%|${X11BASE}|g' \
+		< ${FILESDIR}/moz_pis_${ii} > ${WRKDIR}/moz_pis_${ii}
 .endfor
 	@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \
 		${WRKSRC}/build/unix/run-mozilla.sh
@@ -177,6 +187,8 @@ pre-install:
 	@${RM} -rf ${FAKEDIR} ${PLIST}
 	@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} \
 		Makefile ${MAKE_ARGS} install
+	@${MKDIR} ${SCRIPTS_DIR}
+	@${MKDIR} ${MOZ_PIS_DIR}
 	${ECHO_CMD} 'share/gnome/pixmaps/${FIREFOX_ICON}' >> ${PLIST}
 	${ECHO_CMD} 'share/gnome/applications/firefox.desktop' >> ${PLIST}
 	${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g; \
@@ -188,6 +200,9 @@ pre-install:
 	done
 	${ECHO_CMD} bin/firefox >> ${PLIST}
 	${ECHO_CMD} bin/firefox-config >> ${PLIST}
+.for ii in ${MOZ_PIS_SCRIPTS}
+	${INSTALL_SCRIPT} ${WRKDIR}/moz_pis_${ii} ${MOZ_PIS_DIR}/${ii}
+.endfor
 .if !defined(WITHOUT_NEWTAB)
 	${ECHO_CMD} >> ${SYSTEM_PREFS}
 	${ECHO_CMD} "// Open external links in new tab" >> ${SYSTEM_PREFS}
diff --git a/www/firefox10/files/moz_pis_S50cleanhome b/www/firefox10/files/moz_pis_S50cleanhome
new file mode 100644
index 000000000000..3de5565e39f2
--- /dev/null
+++ b/www/firefox10/files/moz_pis_S50cleanhome
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+
+# S50cleanhome
+# a script to clean up users' Mozilla home directories to make upgrading
+# less painful.
+
+# We run in our own subshell
+
+# First, verify protocol
+[ "$1" != "start" ] && exit 1
+[ -z "${MOZ_PIS_API}" -o ${MOZ_PIS_API} -ne 2 ] && exit 1
+[ -z "${MOZ_PIS_MOZBINDIR}" -o ! -d "${MOZ_PIS_MOZBINDIR}" ] && exit 1
+[ -z "${HOME}" -o ! -d "${HOME}" ] && exit 1
+[ -z "${MOZ_PIS_USER_DIR}" -o ! -d "${HOME}/${MOZ_PIS_USER_DIR}" ] && exit 1
+
+# Try to cleanup ${HOME}/${MOZ_PIS_USER_DIR}
+
+if [ -f "${HOME}/${MOZ_PIS_USER_DIR}/profiles.ini" ]; then
+    sed -e '/Path=/! d' -e "s,Path=,${HOME}/${MOZ_PIS_USER_DIR}/," \
+    	"${HOME}/${MOZ_PIS_USER_DIR}/profiles.ini" \
+	| while read dir
+    do
+	[ ! -d "${dir}" ] && continue
+	# Debian does this for new builds
+	# rm -f "${dir}/XUL.mfasl"
+	# force a rebuild of compreg.dat and xpti.dat for new installations
+	[ "${dir}/compreg.dat" -ot "${MOZ_PIS_MOZBINDIR}/components.ini" ] &&
+		rm -f "${dir}/compatibility.ini" "${dir}/XUL.mfasl"
+    done
+fi
diff --git a/www/firefox15/Makefile b/www/firefox15/Makefile
index 80a16ca84089..45a01ff1003a 100644
--- a/www/firefox15/Makefile
+++ b/www/firefox15/Makefile
@@ -7,6 +7,7 @@
 
 PORTNAME=	firefox
 PORTVERSION=	1.0.1
+PORTREVISION=	1
 PORTEPOCH=	1
 CATEGORIES=	www
 MASTER_SITES=	${MASTER_SITE_MOZILLA}
@@ -61,7 +62,10 @@ JPI_LIST?=\
 	${LOCALBASE}/diablo-jdk1.3.1/jre/plugin/${ARCH}/ns600/libjavaplugin_oji.so \
 	${LOCALBASE}/jdk1.3.1/jre/plugin/${ARCH}/ns600/libjavaplugin_oji.so
 
-SYSTEM_PREFS=	${FAKEDIR}/lib/${FIREFOX}-${FF_VER}/defaults/pref/firefox.js
+SYSTEM_PREFS=		${FAKEDIR}/lib/${FIREFOX}-${FF_VER}/defaults/pref/firefox.js
+SCRIPTS_DIR=		${FAKEDIR}/lib/${FIREFOX}-${FF_VER}
+MOZ_PIS_SCRIPTS=	S50cleanhome
+MOZ_PIS_DIR=		${SCRIPTS_DIR}/init.d
 
 OPTIONS=	DEBUG "Build a debugging image" off \
 		LOGGING "Enable additional log messages" off \
@@ -144,6 +148,12 @@ post-patch:
 		s|%%PREFIX%%|${PREFIX}|g ; \
 		s|%%X11BASE%%|${X11BASE}|g' \
 		< ${FILESDIR}/${ii} > ${WRKDIR}/${ii}
+.endfor
+.for ii in ${MOZ_PIS_SCRIPTS}
+	@${SED} -e 's|%%MOZILLA%%|${FIREFOX}|g ; \
+		s|%%PREFIX%%|${PREFIX}|g ; \
+		s|%%X11BASE%%|${X11BASE}|g' \
+		< ${FILESDIR}/moz_pis_${ii} > ${WRKDIR}/moz_pis_${ii}
 .endfor
 	@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \
 		${WRKSRC}/build/unix/run-mozilla.sh
@@ -177,6 +187,8 @@ pre-install:
 	@${RM} -rf ${FAKEDIR} ${PLIST}
 	@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} \
 		Makefile ${MAKE_ARGS} install
+	@${MKDIR} ${SCRIPTS_DIR}
+	@${MKDIR} ${MOZ_PIS_DIR}
 	${ECHO_CMD} 'share/gnome/pixmaps/${FIREFOX_ICON}' >> ${PLIST}
 	${ECHO_CMD} 'share/gnome/applications/firefox.desktop' >> ${PLIST}
 	${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g; \
@@ -188,6 +200,9 @@ pre-install:
 	done
 	${ECHO_CMD} bin/firefox >> ${PLIST}
 	${ECHO_CMD} bin/firefox-config >> ${PLIST}
+.for ii in ${MOZ_PIS_SCRIPTS}
+	${INSTALL_SCRIPT} ${WRKDIR}/moz_pis_${ii} ${MOZ_PIS_DIR}/${ii}
+.endfor
 .if !defined(WITHOUT_NEWTAB)
 	${ECHO_CMD} >> ${SYSTEM_PREFS}
 	${ECHO_CMD} "// Open external links in new tab" >> ${SYSTEM_PREFS}
diff --git a/www/firefox15/files/moz_pis_S50cleanhome b/www/firefox15/files/moz_pis_S50cleanhome
new file mode 100644
index 000000000000..3de5565e39f2
--- /dev/null
+++ b/www/firefox15/files/moz_pis_S50cleanhome
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+
+# S50cleanhome
+# a script to clean up users' Mozilla home directories to make upgrading
+# less painful.
+
+# We run in our own subshell
+
+# First, verify protocol
+[ "$1" != "start" ] && exit 1
+[ -z "${MOZ_PIS_API}" -o ${MOZ_PIS_API} -ne 2 ] && exit 1
+[ -z "${MOZ_PIS_MOZBINDIR}" -o ! -d "${MOZ_PIS_MOZBINDIR}" ] && exit 1
+[ -z "${HOME}" -o ! -d "${HOME}" ] && exit 1
+[ -z "${MOZ_PIS_USER_DIR}" -o ! -d "${HOME}/${MOZ_PIS_USER_DIR}" ] && exit 1
+
+# Try to cleanup ${HOME}/${MOZ_PIS_USER_DIR}
+
+if [ -f "${HOME}/${MOZ_PIS_USER_DIR}/profiles.ini" ]; then
+    sed -e '/Path=/! d' -e "s,Path=,${HOME}/${MOZ_PIS_USER_DIR}/," \
+    	"${HOME}/${MOZ_PIS_USER_DIR}/profiles.ini" \
+	| while read dir
+    do
+	[ ! -d "${dir}" ] && continue
+	# Debian does this for new builds
+	# rm -f "${dir}/XUL.mfasl"
+	# force a rebuild of compreg.dat and xpti.dat for new installations
+	[ "${dir}/compreg.dat" -ot "${MOZ_PIS_MOZBINDIR}/components.ini" ] &&
+		rm -f "${dir}/compatibility.ini" "${dir}/XUL.mfasl"
+    done
+fi
diff --git a/www/firefox3-devel/Makefile b/www/firefox3-devel/Makefile
index 80a16ca84089..45a01ff1003a 100644
--- a/www/firefox3-devel/Makefile
+++ b/www/firefox3-devel/Makefile
@@ -7,6 +7,7 @@
 
 PORTNAME=	firefox
 PORTVERSION=	1.0.1
+PORTREVISION=	1
 PORTEPOCH=	1
 CATEGORIES=	www
 MASTER_SITES=	${MASTER_SITE_MOZILLA}
@@ -61,7 +62,10 @@ JPI_LIST?=\
 	${LOCALBASE}/diablo-jdk1.3.1/jre/plugin/${ARCH}/ns600/libjavaplugin_oji.so \
 	${LOCALBASE}/jdk1.3.1/jre/plugin/${ARCH}/ns600/libjavaplugin_oji.so
 
-SYSTEM_PREFS=	${FAKEDIR}/lib/${FIREFOX}-${FF_VER}/defaults/pref/firefox.js
+SYSTEM_PREFS=		${FAKEDIR}/lib/${FIREFOX}-${FF_VER}/defaults/pref/firefox.js
+SCRIPTS_DIR=		${FAKEDIR}/lib/${FIREFOX}-${FF_VER}
+MOZ_PIS_SCRIPTS=	S50cleanhome
+MOZ_PIS_DIR=		${SCRIPTS_DIR}/init.d
 
 OPTIONS=	DEBUG "Build a debugging image" off \
 		LOGGING "Enable additional log messages" off \
@@ -144,6 +148,12 @@ post-patch:
 		s|%%PREFIX%%|${PREFIX}|g ; \
 		s|%%X11BASE%%|${X11BASE}|g' \
 		< ${FILESDIR}/${ii} > ${WRKDIR}/${ii}
+.endfor
+.for ii in ${MOZ_PIS_SCRIPTS}
+	@${SED} -e 's|%%MOZILLA%%|${FIREFOX}|g ; \
+		s|%%PREFIX%%|${PREFIX}|g ; \
+		s|%%X11BASE%%|${X11BASE}|g' \
+		< ${FILESDIR}/moz_pis_${ii} > ${WRKDIR}/moz_pis_${ii}
 .endfor
 	@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \
 		${WRKSRC}/build/unix/run-mozilla.sh
@@ -177,6 +187,8 @@ pre-install:
 	@${RM} -rf ${FAKEDIR} ${PLIST}
 	@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} \
 		Makefile ${MAKE_ARGS} install
+	@${MKDIR} ${SCRIPTS_DIR}
+	@${MKDIR} ${MOZ_PIS_DIR}
 	${ECHO_CMD} 'share/gnome/pixmaps/${FIREFOX_ICON}' >> ${PLIST}
 	${ECHO_CMD} 'share/gnome/applications/firefox.desktop' >> ${PLIST}
 	${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g; \
@@ -188,6 +200,9 @@ pre-install:
 	done
 	${ECHO_CMD} bin/firefox >> ${PLIST}
 	${ECHO_CMD} bin/firefox-config >> ${PLIST}
+.for ii in ${MOZ_PIS_SCRIPTS}
+	${INSTALL_SCRIPT} ${WRKDIR}/moz_pis_${ii} ${MOZ_PIS_DIR}/${ii}
+.endfor
 .if !defined(WITHOUT_NEWTAB)
 	${ECHO_CMD} >> ${SYSTEM_PREFS}
 	${ECHO_CMD} "// Open external links in new tab" >> ${SYSTEM_PREFS}
diff --git a/www/firefox3-devel/files/moz_pis_S50cleanhome b/www/firefox3-devel/files/moz_pis_S50cleanhome
new file mode 100644
index 000000000000..3de5565e39f2
--- /dev/null
+++ b/www/firefox3-devel/files/moz_pis_S50cleanhome
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+
+# S50cleanhome
+# a script to clean up users' Mozilla home directories to make upgrading
+# less painful.
+
+# We run in our own subshell
+
+# First, verify protocol
+[ "$1" != "start" ] && exit 1
+[ -z "${MOZ_PIS_API}" -o ${MOZ_PIS_API} -ne 2 ] && exit 1
+[ -z "${MOZ_PIS_MOZBINDIR}" -o ! -d "${MOZ_PIS_MOZBINDIR}" ] && exit 1
+[ -z "${HOME}" -o ! -d "${HOME}" ] && exit 1
+[ -z "${MOZ_PIS_USER_DIR}" -o ! -d "${HOME}/${MOZ_PIS_USER_DIR}" ] && exit 1
+
+# Try to cleanup ${HOME}/${MOZ_PIS_USER_DIR}
+
+if [ -f "${HOME}/${MOZ_PIS_USER_DIR}/profiles.ini" ]; then
+    sed -e '/Path=/! d' -e "s,Path=,${HOME}/${MOZ_PIS_USER_DIR}/," \
+    	"${HOME}/${MOZ_PIS_USER_DIR}/profiles.ini" \
+	| while read dir
+    do
+	[ ! -d "${dir}" ] && continue
+	# Debian does this for new builds
+	# rm -f "${dir}/XUL.mfasl"
+	# force a rebuild of compreg.dat and xpti.dat for new installations
+	[ "${dir}/compreg.dat" -ot "${MOZ_PIS_MOZBINDIR}/components.ini" ] &&
+		rm -f "${dir}/compatibility.ini" "${dir}/XUL.mfasl"
+    done
+fi
diff --git a/www/firefox35/Makefile b/www/firefox35/Makefile
index 80a16ca84089..45a01ff1003a 100644
--- a/www/firefox35/Makefile
+++ b/www/firefox35/Makefile
@@ -7,6 +7,7 @@
 
 PORTNAME=	firefox
 PORTVERSION=	1.0.1
+PORTREVISION=	1
 PORTEPOCH=	1
 CATEGORIES=	www
 MASTER_SITES=	${MASTER_SITE_MOZILLA}
@@ -61,7 +62,10 @@ JPI_LIST?=\
 	${LOCALBASE}/diablo-jdk1.3.1/jre/plugin/${ARCH}/ns600/libjavaplugin_oji.so \
 	${LOCALBASE}/jdk1.3.1/jre/plugin/${ARCH}/ns600/libjavaplugin_oji.so
 
-SYSTEM_PREFS=	${FAKEDIR}/lib/${FIREFOX}-${FF_VER}/defaults/pref/firefox.js
+SYSTEM_PREFS=		${FAKEDIR}/lib/${FIREFOX}-${FF_VER}/defaults/pref/firefox.js
+SCRIPTS_DIR=		${FAKEDIR}/lib/${FIREFOX}-${FF_VER}
+MOZ_PIS_SCRIPTS=	S50cleanhome
+MOZ_PIS_DIR=		${SCRIPTS_DIR}/init.d
 
 OPTIONS=	DEBUG "Build a debugging image" off \
 		LOGGING "Enable additional log messages" off \
@@ -144,6 +148,12 @@ post-patch:
 		s|%%PREFIX%%|${PREFIX}|g ; \
 		s|%%X11BASE%%|${X11BASE}|g' \
 		< ${FILESDIR}/${ii} > ${WRKDIR}/${ii}
+.endfor
+.for ii in ${MOZ_PIS_SCRIPTS}
+	@${SED} -e 's|%%MOZILLA%%|${FIREFOX}|g ; \
+		s|%%PREFIX%%|${PREFIX}|g ; \
+		s|%%X11BASE%%|${X11BASE}|g' \
+		< ${FILESDIR}/moz_pis_${ii} > ${WRKDIR}/moz_pis_${ii}
 .endfor
 	@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \
 		${WRKSRC}/build/unix/run-mozilla.sh
@@ -177,6 +187,8 @@ pre-install:
 	@${RM} -rf ${FAKEDIR} ${PLIST}
 	@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} \
 		Makefile ${MAKE_ARGS} install
+	@${MKDIR} ${SCRIPTS_DIR}
+	@${MKDIR} ${MOZ_PIS_DIR}
 	${ECHO_CMD} 'share/gnome/pixmaps/${FIREFOX_ICON}' >> ${PLIST}
 	${ECHO_CMD} 'share/gnome/applications/firefox.desktop' >> ${PLIST}
 	${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g; \
@@ -188,6 +200,9 @@ pre-install:
 	done
 	${ECHO_CMD} bin/firefox >> ${PLIST}
 	${ECHO_CMD} bin/firefox-config >> ${PLIST}
+.for ii in ${MOZ_PIS_SCRIPTS}
+	${INSTALL_SCRIPT} ${WRKDIR}/moz_pis_${ii} ${MOZ_PIS_DIR}/${ii}
+.endfor
 .if !defined(WITHOUT_NEWTAB)
 	${ECHO_CMD} >> ${SYSTEM_PREFS}
 	${ECHO_CMD} "// Open external links in new tab" >> ${SYSTEM_PREFS}
diff --git a/www/firefox35/files/moz_pis_S50cleanhome b/www/firefox35/files/moz_pis_S50cleanhome
new file mode 100644
index 000000000000..3de5565e39f2
--- /dev/null
+++ b/www/firefox35/files/moz_pis_S50cleanhome
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+
+# S50cleanhome
+# a script to clean up users' Mozilla home directories to make upgrading
+# less painful.
+
+# We run in our own subshell
+
+# First, verify protocol
+[ "$1" != "start" ] && exit 1
+[ -z "${MOZ_PIS_API}" -o ${MOZ_PIS_API} -ne 2 ] && exit 1
+[ -z "${MOZ_PIS_MOZBINDIR}" -o ! -d "${MOZ_PIS_MOZBINDIR}" ] && exit 1
+[ -z "${HOME}" -o ! -d "${HOME}" ] && exit 1
+[ -z "${MOZ_PIS_USER_DIR}" -o ! -d "${HOME}/${MOZ_PIS_USER_DIR}" ] && exit 1
+
+# Try to cleanup ${HOME}/${MOZ_PIS_USER_DIR}
+
+if [ -f "${HOME}/${MOZ_PIS_USER_DIR}/profiles.ini" ]; then
+    sed -e '/Path=/! d' -e "s,Path=,${HOME}/${MOZ_PIS_USER_DIR}/," \
+    	"${HOME}/${MOZ_PIS_USER_DIR}/profiles.ini" \
+	| while read dir
+    do
+	[ ! -d "${dir}" ] && continue
+	# Debian does this for new builds
+	# rm -f "${dir}/XUL.mfasl"
+	# force a rebuild of compreg.dat and xpti.dat for new installations
+	[ "${dir}/compreg.dat" -ot "${MOZ_PIS_MOZBINDIR}/components.ini" ] &&
+		rm -f "${dir}/compatibility.ini" "${dir}/XUL.mfasl"
+    done
+fi
diff --git a/www/firefox36/Makefile b/www/firefox36/Makefile
index 80a16ca84089..45a01ff1003a 100644
--- a/www/firefox36/Makefile
+++ b/www/firefox36/Makefile
@@ -7,6 +7,7 @@
 
 PORTNAME=	firefox
 PORTVERSION=	1.0.1
+PORTREVISION=	1
 PORTEPOCH=	1
 CATEGORIES=	www
 MASTER_SITES=	${MASTER_SITE_MOZILLA}
@@ -61,7 +62,10 @@ JPI_LIST?=\
 	${LOCALBASE}/diablo-jdk1.3.1/jre/plugin/${ARCH}/ns600/libjavaplugin_oji.so \
 	${LOCALBASE}/jdk1.3.1/jre/plugin/${ARCH}/ns600/libjavaplugin_oji.so
 
-SYSTEM_PREFS=	${FAKEDIR}/lib/${FIREFOX}-${FF_VER}/defaults/pref/firefox.js
+SYSTEM_PREFS=		${FAKEDIR}/lib/${FIREFOX}-${FF_VER}/defaults/pref/firefox.js
+SCRIPTS_DIR=		${FAKEDIR}/lib/${FIREFOX}-${FF_VER}
+MOZ_PIS_SCRIPTS=	S50cleanhome
+MOZ_PIS_DIR=		${SCRIPTS_DIR}/init.d
 
 OPTIONS=	DEBUG "Build a debugging image" off \
 		LOGGING "Enable additional log messages" off \
@@ -144,6 +148,12 @@ post-patch:
 		s|%%PREFIX%%|${PREFIX}|g ; \
 		s|%%X11BASE%%|${X11BASE}|g' \
 		< ${FILESDIR}/${ii} > ${WRKDIR}/${ii}
+.endfor
+.for ii in ${MOZ_PIS_SCRIPTS}
+	@${SED} -e 's|%%MOZILLA%%|${FIREFOX}|g ; \
+		s|%%PREFIX%%|${PREFIX}|g ; \
+		s|%%X11BASE%%|${X11BASE}|g' \
+		< ${FILESDIR}/moz_pis_${ii} > ${WRKDIR}/moz_pis_${ii}
 .endfor
 	@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \
 		${WRKSRC}/build/unix/run-mozilla.sh
@@ -177,6 +187,8 @@ pre-install:
 	@${RM} -rf ${FAKEDIR} ${PLIST}
 	@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} \
 		Makefile ${MAKE_ARGS} install
+	@${MKDIR} ${SCRIPTS_DIR}
+	@${MKDIR} ${MOZ_PIS_DIR}
 	${ECHO_CMD} 'share/gnome/pixmaps/${FIREFOX_ICON}' >> ${PLIST}
 	${ECHO_CMD} 'share/gnome/applications/firefox.desktop' >> ${PLIST}
 	${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g; \
@@ -188,6 +200,9 @@ pre-install:
 	done
 	${ECHO_CMD} bin/firefox >> ${PLIST}
 	${ECHO_CMD} bin/firefox-config >> ${PLIST}
+.for ii in ${MOZ_PIS_SCRIPTS}
+	${INSTALL_SCRIPT} ${WRKDIR}/moz_pis_${ii} ${MOZ_PIS_DIR}/${ii}
+.endfor
 .if !defined(WITHOUT_NEWTAB)
 	${ECHO_CMD} >> ${SYSTEM_PREFS}
 	${ECHO_CMD} "// Open external links in new tab" >> ${SYSTEM_PREFS}
diff --git a/www/firefox36/files/moz_pis_S50cleanhome b/www/firefox36/files/moz_pis_S50cleanhome
new file mode 100644
index 000000000000..3de5565e39f2
--- /dev/null
+++ b/www/firefox36/files/moz_pis_S50cleanhome
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+
+# S50cleanhome
+# a script to clean up users' Mozilla home directories to make upgrading
+# less painful.
+
+# We run in our own subshell
+
+# First, verify protocol
+[ "$1" != "start" ] && exit 1
+[ -z "${MOZ_PIS_API}" -o ${MOZ_PIS_API} -ne 2 ] && exit 1
+[ -z "${MOZ_PIS_MOZBINDIR}" -o ! -d "${MOZ_PIS_MOZBINDIR}" ] && exit 1
+[ -z "${HOME}" -o ! -d "${HOME}" ] && exit 1
+[ -z "${MOZ_PIS_USER_DIR}" -o ! -d "${HOME}/${MOZ_PIS_USER_DIR}" ] && exit 1
+
+# Try to cleanup ${HOME}/${MOZ_PIS_USER_DIR}
+
+if [ -f "${HOME}/${MOZ_PIS_USER_DIR}/profiles.ini" ]; then
+    sed -e '/Path=/! d' -e "s,Path=,${HOME}/${MOZ_PIS_USER_DIR}/," \
+    	"${HOME}/${MOZ_PIS_USER_DIR}/profiles.ini" \
+	| while read dir
+    do
+	[ ! -d "${dir}" ] && continue
+	# Debian does this for new builds
+	# rm -f "${dir}/XUL.mfasl"
+	# force a rebuild of compreg.dat and xpti.dat for new installations
+	[ "${dir}/compreg.dat" -ot "${MOZ_PIS_MOZBINDIR}/components.ini" ] &&
+		rm -f "${dir}/compatibility.ini" "${dir}/XUL.mfasl"
+    done
+fi
diff --git a/www/flock/Makefile b/www/flock/Makefile
index 80a16ca84089..45a01ff1003a 100644
--- a/www/flock/Makefile
+++ b/www/flock/Makefile
@@ -7,6 +7,7 @@
 
 PORTNAME=	firefox
 PORTVERSION=	1.0.1
+PORTREVISION=	1
 PORTEPOCH=	1
 CATEGORIES=	www
 MASTER_SITES=	${MASTER_SITE_MOZILLA}
@@ -61,7 +62,10 @@ JPI_LIST?=\
 	${LOCALBASE}/diablo-jdk1.3.1/jre/plugin/${ARCH}/ns600/libjavaplugin_oji.so \
 	${LOCALBASE}/jdk1.3.1/jre/plugin/${ARCH}/ns600/libjavaplugin_oji.so
 
-SYSTEM_PREFS=	${FAKEDIR}/lib/${FIREFOX}-${FF_VER}/defaults/pref/firefox.js
+SYSTEM_PREFS=		${FAKEDIR}/lib/${FIREFOX}-${FF_VER}/defaults/pref/firefox.js
+SCRIPTS_DIR=		${FAKEDIR}/lib/${FIREFOX}-${FF_VER}
+MOZ_PIS_SCRIPTS=	S50cleanhome
+MOZ_PIS_DIR=		${SCRIPTS_DIR}/init.d
 
 OPTIONS=	DEBUG "Build a debugging image" off \
 		LOGGING "Enable additional log messages" off \
@@ -144,6 +148,12 @@ post-patch:
 		s|%%PREFIX%%|${PREFIX}|g ; \
 		s|%%X11BASE%%|${X11BASE}|g' \
 		< ${FILESDIR}/${ii} > ${WRKDIR}/${ii}
+.endfor
+.for ii in ${MOZ_PIS_SCRIPTS}
+	@${SED} -e 's|%%MOZILLA%%|${FIREFOX}|g ; \
+		s|%%PREFIX%%|${PREFIX}|g ; \
+		s|%%X11BASE%%|${X11BASE}|g' \
+		< ${FILESDIR}/moz_pis_${ii} > ${WRKDIR}/moz_pis_${ii}
 .endfor
 	@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \
 		${WRKSRC}/build/unix/run-mozilla.sh
@@ -177,6 +187,8 @@ pre-install:
 	@${RM} -rf ${FAKEDIR} ${PLIST}
 	@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} \
 		Makefile ${MAKE_ARGS} install
+	@${MKDIR} ${SCRIPTS_DIR}
+	@${MKDIR} ${MOZ_PIS_DIR}
 	${ECHO_CMD} 'share/gnome/pixmaps/${FIREFOX_ICON}' >> ${PLIST}
 	${ECHO_CMD} 'share/gnome/applications/firefox.desktop' >> ${PLIST}
 	${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g; \
@@ -188,6 +200,9 @@ pre-install:
 	done
 	${ECHO_CMD} bin/firefox >> ${PLIST}
 	${ECHO_CMD} bin/firefox-config >> ${PLIST}
+.for ii in ${MOZ_PIS_SCRIPTS}
+	${INSTALL_SCRIPT} ${WRKDIR}/moz_pis_${ii} ${MOZ_PIS_DIR}/${ii}
+.endfor
 .if !defined(WITHOUT_NEWTAB)
 	${ECHO_CMD} >> ${SYSTEM_PREFS}
 	${ECHO_CMD} "// Open external links in new tab" >> ${SYSTEM_PREFS}
diff --git a/www/flock/files/moz_pis_S50cleanhome b/www/flock/files/moz_pis_S50cleanhome
new file mode 100644
index 000000000000..3de5565e39f2
--- /dev/null
+++ b/www/flock/files/moz_pis_S50cleanhome
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+
+# S50cleanhome
+# a script to clean up users' Mozilla home directories to make upgrading
+# less painful.
+
+# We run in our own subshell
+
+# First, verify protocol
+[ "$1" != "start" ] && exit 1
+[ -z "${MOZ_PIS_API}" -o ${MOZ_PIS_API} -ne 2 ] && exit 1
+[ -z "${MOZ_PIS_MOZBINDIR}" -o ! -d "${MOZ_PIS_MOZBINDIR}" ] && exit 1
+[ -z "${HOME}" -o ! -d "${HOME}" ] && exit 1
+[ -z "${MOZ_PIS_USER_DIR}" -o ! -d "${HOME}/${MOZ_PIS_USER_DIR}" ] && exit 1
+
+# Try to cleanup ${HOME}/${MOZ_PIS_USER_DIR}
+
+if [ -f "${HOME}/${MOZ_PIS_USER_DIR}/profiles.ini" ]; then
+    sed -e '/Path=/! d' -e "s,Path=,${HOME}/${MOZ_PIS_USER_DIR}/," \
+    	"${HOME}/${MOZ_PIS_USER_DIR}/profiles.ini" \
+	| while read dir
+    do
+	[ ! -d "${dir}" ] && continue
+	# Debian does this for new builds
+	# rm -f "${dir}/XUL.mfasl"
+	# force a rebuild of compreg.dat and xpti.dat for new installations
+	[ "${dir}/compreg.dat" -ot "${MOZ_PIS_MOZBINDIR}/components.ini" ] &&
+		rm -f "${dir}/compatibility.ini" "${dir}/XUL.mfasl"
+    done
+fi
-- 
cgit debian/1.2.3+git2.25.1-1-2-gaceb0