Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 Feb 2004 21:33:55 +0100 (CET)
From:      Thierry Thomas <thierry@pompo.net>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/63236: New port: www/mozex, external programs integration into Mozilla (including a wannabee universal installer for .xpi).
Message-ID:  <20040222203355.5C1A422B938@ws90bj.pompo.net>
Resent-Message-ID: <200402222040.i1MKeMJB005803@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         63236
>Category:       ports
>Synopsis:       New port: www/mozex, external programs integration into Mozilla (including a wannabee universal installer for .xpi).
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun Feb 22 12:40:21 PST 2004
>Closed-Date:
>Last-Modified:
>Originator:     Thierry Thomas
>Release:        FreeBSD 5.2-RELEASE i386
>Organization:
Kabbale Eros
>Environment:
System: FreeBSD ws90bj.pompo.net 5.2-RELEASE FreeBSD 5.2-RELEASE #0: Mon Jan 19 20:52:58 CET 2004 thierry@ws90bj.pompo.net:/usr/obj/usr/src/sys/WS90BJ-040102 i386


	
>Description:
	This PR supersedes PR ports/58661 (chasing firebird -> firefox).

	Mozex lets you call external programs from Mozilla, e.g. you can
	call an external mailer on mailto: links.

	This extension can be installed for Mozilla and for Firefox
	=> there are a master- and a slave ports.

	The files Makefile.xpi and pkg-install.xpi have been designed to
	install any .xpi extension (hopefully).

	Note: this is a "binary" (XUL) port (the source is only available in
	CVS) but it should be cross-platform.

	Remark: after deinstalling this port, mozilla (or firefox) won't
	deinstall cleanly. To fix it, mozilla should build Chrome's registry
	not in WRKSRC, but in MOZDIR, or run something like
	@unexec rm ... >/dev/null || true
	on the remaining files. See
<http://www.freebsd.org/cgi/getmsg.cgi?fetch=16473+0+/usr/local/www/db/text/2004/freebsd-ports-bugs/20040118.freebsd-ports-bugs>.
	It's not possible to remove these files from this port, because
	one may install several .xpi extensions.

>How-To-Repeat:
	N/A.

>Fix:
	Please execute these two shar files:

--- mozex.shar begins here ---
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	www/mozex
#	www/mozex/files
#	www/mozex/files/installed-chrome.txt
#	www/mozex/Makefile.xpi
#	www/mozex/Makefile
#	www/mozex/pkg-install.xpi
#	www/mozex/distinfo
#	www/mozex/pkg-descr
#	www/mozex/pkg-message
#	www/mozex/pkg-plist
#
echo c - www/mozex
mkdir -p www/mozex > /dev/null 2>&1
echo c - www/mozex/files
mkdir -p www/mozex/files > /dev/null 2>&1
echo x - www/mozex/files/installed-chrome.txt
sed 's/^X//' >www/mozex/files/installed-chrome.txt << 'END-of-www/mozex/files/installed-chrome.txt'
Xcontent,install,url,jar:resource:/chrome/mozex.jar!/content/mozex/
END-of-www/mozex/files/installed-chrome.txt
echo x - www/mozex/Makefile.xpi
sed 's/^X//' >www/mozex/Makefile.xpi << 'END-of-www/mozex/Makefile.xpi'
X# Date created:			  Sun Oct 26, 2003
X# Whom:				  Thierry Thomas (<thierry@pompo.net>)
X#
X# $FreeBSD$
X#
X
XEXTRACT_SUFX=   .xpi
X
XBUILD_DEPENDS+=	${MOZDIR}/regchrome:${PORTSDIR}/www/${MOZPORT}
XRUN_DEPENDS+=	${MOZDIR}:${PORTSDIR}/www/${MOZPORT}
X
XNO_BUILD=	yes
XUSE_ZIP=	yes
X
XPKGINSTALL=	${PORTSDIR}/www/mozex/pkg-install.xpi
XPKGDEINSTALL=	${PKGINSTALL}
X
X.if !defined(WITH_FIREFOX)
X# "Regular" mozillas
XMOZDIR!=	${FIND} ${X11BASE}/lib -name mozilla-bin -exec dirname {} \; | ${HEAD} -n 1
X.if empty(MOZDIR)
XMOZPORT=	mozilla
X.else
XMOZPORT!=	${BASENAME} ${MOZDIR}
X.endif
XMOZLDIR=	lib/${MOZPORT}
X.else
X# Firefox
XPKGNAMESUFFIX=	-firefox
XMOZDIR!=	${FIND} ${X11BASE}/lib -name firefox-bin -exec dirname {} \; | ${HEAD} -n 1
X.if empty(MOZDIR)
XMOZVER=		mozilla-1.6	# Warning! chase this when upgrading firefox.
X.else
XMOZVER!=	${BASENAME} ${MOZDIR}
X.endif
XMOZPORT=	firefox
XMOZLDIR=	lib/firefox/lib/${MOZVER}
X.endif
X
XPLIST_SUB=	MOZDIR=${MOZLDIR}
X
Xpre-install:
X.if ${PREFIX} != ${X11BASE}
X	@${ECHO_MSG} ""
X	@${ECHO_MSG} "${PREFIX} invalid - must be installed under ${X11BASE}."
X	@${ECHO_MSG} ""
X	@${FALSE}
X.else
X	@${CP} ${FILESDIR}/installed-chrome.txt ${MOZDIR}/${PORTNAME}-installed-chrome.txt
X.endif
X
Xpost-install:
X	@${ECHO_CMD} ${MOZLDIR}/${PORTNAME}-installed-chrome.txt >> ${TMPPLIST}
X	@${CAT} ${MOZDIR}/${PORTNAME}-installed-chrome.txt	\
X		>> ${MOZDIR}/chrome/installed-chrome.txt
X	@${ECHO_CMD} "@exec ${CAT} ${MOZDIR}/${PORTNAME}-installed-chrome.txt \
X		>> ${MOZDIR}/chrome/installed-chrome.txt" >> ${TMPPLIST}
X	@${SETENV} PKG_PREFIX=${PREFIX}	\
X	${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
X.if exists(${PKGMESSAGE})
X	@${CAT} ${PKGMESSAGE}
X.endif
END-of-www/mozex/Makefile.xpi
echo x - www/mozex/Makefile
sed 's/^X//' >www/mozex/Makefile << 'END-of-www/mozex/Makefile'
X# Ports collection makefile for:  mozex
X# Date created:			  Sun Oct 26, 2003
X# Whom:				  Thierry Thomas (<thierry@pompo.net>)
X#
X# $FreeBSD$
X#
X
XPORTNAME?=	mozex
XPORTVERSION=	1.07
XCATEGORIES=	www mail news ftp
XMASTER_SITES=	http://mozex.mozdev.org/
X
XMAINTAINER?=	ports@FreeBSD.org
XCOMMENT?=	Mozex allows Mozilla's users to use external programs for mail, news, etc.
X
XUSE_X_PREFIX=	yes	# Cannot be included after <bsd.port.pre.mk>.
X
X.include <bsd.port.pre.mk>
X.include "${PORTSDIR}/www/mozex/Makefile.xpi"
X
Xdo-install:
X	@${INSTALL_DATA} ${WRKDIR}/mozex.jar ${MOZDIR}/chrome
X
X.include <bsd.port.post.mk>
END-of-www/mozex/Makefile
echo x - www/mozex/pkg-install.xpi
sed 's/^X//' >www/mozex/pkg-install.xpi << 'END-of-www/mozex/pkg-install.xpi'
X#!/bin/sh
X#
X# $FreeBSD$
X#
X# Date created:			  Mon Oct 27, 2003
X# Whom:				  Thierry Thomas (<thierry@pompo.net>)
X# Register the extension $1 in the chrome registry.
X
Xumask 022
XPATH=/bin:/usr/bin
X
X[ "x$1" = "x" ] && exit 1
X[ "x$2" = "xPRE-INSTALL" ] && exit 0
X[ "x$2" = "xDEINSTALL" ] && exit 0
X
XPREFIX=${PKG_PREFIX:-/usr/X11R6}
X
X# If this is an extension for firefox, PKGNAMESUFFIX has been set
XPKG_NAME=${1%%-[0-9._]*}
XPKG_ROOT=$(echo $PKG_NAME | sed 's/-firefox$//')
Xif [ $PKG_NAME = $PKG_ROOT ]; then
XMOZBIN=mozilla-bin
Xelse
XMOZBIN=firefox-bin
Xfi
X
XMOZDIR=`find $PREFIX/lib -name $MOZBIN -exec dirname {} \; | head -n 1`
XREGXPCOM=$MOZDIR/regxpcom
XREGCHROME=$MOZDIR/regchrome
X
Xif [ "x$2" = "xPOST-DEINSTALL" ]; then
X	case $PKG_ROOT in
X		fr-mozilla-flp|fr-firefox-flp)
X			MODEXT="FR.jar fr-unix.jar"
X			;;
X
X		*)
X			MODEXT=$PKG_ROOT
X			;;
X	esac
X	# Removing definition of extension $MODEXT
X	for mod in $MODEXT; do
X		sed -i .bak -e "/$mod/d" $MOZDIR/chrome/installed-chrome.txt
X	done
Xfi
X
Xecho "===>  Re-building Chrome's registry..."
Xrm -rf $MOZDIR/chrome/overlayinfo
Xrm -f $MOZDIR/chrome/*.rdf
Xmkdir -p $MOZDIR/chrome/overlayinfo
Xrm -f $MOZDIR/component.reg
X
XLD_LIBRARY_PATH=$MOZDIR MOZILLA_FIVE_HOME=$MOZDIR $MOZDIR/regxpcom || true
XLD_LIBRARY_PATH=$MOZDIR MOZILLA_FIVE_HOME=$MOZDIR $MOZDIR/regchrome || true
X
X[ "x$2" = "xPOST-INSTALL" ] || rm $MOZDIR/chrome/installed-chrome.txt.bak
X
Xexit 0
END-of-www/mozex/pkg-install.xpi
echo x - www/mozex/distinfo
sed 's/^X//' >www/mozex/distinfo << 'END-of-www/mozex/distinfo'
XMD5 (mozex-1.07.xpi) = 9383380b78ed69409c0880a99b07e297
XSIZE (mozex-1.07.xpi) = 17072
END-of-www/mozex/distinfo
echo x - www/mozex/pkg-descr
sed 's/^X//' >www/mozex/pkg-descr << 'END-of-www/mozex/pkg-descr'
XMozex is an extension to Mozilla or Firefox which allows the user to use
Xexternal programs for these actions:
X
X    * view page source
X    * edit content of textareas (possibly utilizing a spell-checker in the
X      text editor)
X    * handle mailto, news, telnet and FTP links
X    * download files
X
XWWW: http://mozex.mozdev.org/index.html
END-of-www/mozex/pkg-descr
echo x - www/mozex/pkg-message
sed 's/^X//' >www/mozex/pkg-message << 'END-of-www/mozex/pkg-message'
X**************************************************************************
XMozex has been installed. If Mozilla is running, restart it.
XA new "mozex" entry is present in page context menu (right click somewhere
Xon the page), and you have to edit preferences (for every profile).
X
XTo set up your external programs, please follow the instructions on
X<http://mozex.mozdev.org/arguments.html>.
X**************************************************************************
END-of-www/mozex/pkg-message
echo x - www/mozex/pkg-plist
sed 's/^X//' >www/mozex/pkg-plist << 'END-of-www/mozex/pkg-plist'
X%%MOZDIR%%/chrome/mozex.jar
X%%MOZDIR%%/chrome/overlayinfo/browser/content/overlays.rdf
END-of-www/mozex/pkg-plist
exit
--- mozex.shar ends here ---

--- mozex-firefox.shar begins here ---
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	www/mozex-firefox
#	www/mozex-firefox/Makefile
#
echo c - www/mozex-firefox
mkdir -p www/mozex-firefox > /dev/null 2>&1
echo x - www/mozex-firefox/Makefile
sed 's/^X//' >www/mozex-firefox/Makefile << 'END-of-www/mozex-firefox/Makefile'
X# Ports collection makefile for:  mozex-firefox
X# Date created:			  Tue Oct 28, 2003
X# Whom:				  Thierry Thomas (<thierry@pompo.net>)
X#
X# $FreeBSD$
X#
X
XPORTNAME=	mozex
X#PKGNAMESUFFIX set to -firefox in ../mozex/Makefile.xpi
X
XMAINTAINER=	ports@FreeBSD.org
XCOMMENT=	Mozex allows Firefox's users to use external programs for mail, news, etc.
X
XMASTERDIR=	${.CURDIR}/../mozex
X
XWITH_FIREFOX=	yes
X
X.include "${MASTERDIR}/Makefile"
END-of-www/mozex-firefox/Makefile
exit
--- mozex-firefox.shar ends here ---

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040222203355.5C1A422B938>