diff options
author | mezz <mezz@FreeBSD.org> | 2009-01-10 10:45:46 +0800 |
---|---|---|
committer | mezz <mezz@FreeBSD.org> | 2009-01-10 10:45:46 +0800 |
commit | 867a335b88f91d457005fa0c7b3bb7c85c5fca14 (patch) | |
tree | 68af898c9a11dd756c516c49a6715cee75888e70 /www/firefox-esr | |
parent | 6f64cd00171c29c1c7cdfb1e40393e23fc35151d (diff) | |
download | freebsd-ports-gnome-867a335b88f91d457005fa0c7b3bb7c85c5fca14.tar.gz freebsd-ports-gnome-867a335b88f91d457005fa0c7b3bb7c85c5fca14.tar.zst freebsd-ports-gnome-867a335b88f91d457005fa0c7b3bb7c85c5fca14.zip |
Add a new framework for browser plugins, USE_WEBPLUGINS. It is for which foo
plugins support one of web browsers and can take care of plist (depend on how
you use it) at the same time. I have written a complete document and even show
how it works in the www/firefox/Makefile.webplugins so be sure to read in
there. If there is anything that isn't clear in the document, please feel free
to ask and I will try my best to improvement it.
FYI: GNOME 2.24 depends on this, so it's coming.
BTW: It's based on www/linux-mplayer-plugin/Makefile.npapi with heavy modified.
Approved by: portmgr
Diffstat (limited to 'www/firefox-esr')
-rw-r--r-- | www/firefox-esr/Makefile | 14 | ||||
-rw-r--r-- | www/firefox-esr/Makefile.webplugins | 226 | ||||
-rw-r--r-- | www/firefox-esr/files/patch-build_unix_run-mozilla.sh | 4 |
3 files changed, 230 insertions, 14 deletions
diff --git a/www/firefox-esr/Makefile b/www/firefox-esr/Makefile index ae3cb3d3a96c..820689f1925c 100644 --- a/www/firefox-esr/Makefile +++ b/www/firefox-esr/Makefile @@ -3,11 +3,12 @@ # Whom: Alan Eldridge <alane@FreeBSD.org> # # $FreeBSD$ -# $MCom: ports/www/firefox/Makefile,v 1.43 2008/02/09 16:38:43 marcus Exp $ +# $MCom: ports-stable/www/firefox/Makefile,v 1.32 2009/01/09 23:41:22 mezz Exp $ # PORTNAME= firefox DISTVERSION= 2.0.0.20 +PORTREVISION= 1 PORTEPOCH= 1 CATEGORIES= www ipv6 MASTER_SITES= ${MASTER_SITE_MOZILLA_EXTENDED} @@ -93,17 +94,6 @@ pre-install: >> ${SYSTEM_PREFS} .endif # !defined(WITHOUT_NEWTAB) -do-install: - if [ ! -L ${PREFIX}/lib/browser_plugins/libjavaplugin_oji.so ]; then \ - for jpi in ${JPI_LIST}; do \ - if [ -f $${jpi} ]; then \ - ${LN} -sf $${jpi} \ - ${PREFIX}/lib/browser_plugins/libjavaplugin_oji.so ; \ - break; \ - fi; \ - done; \ - fi - post-install: ${MKDIR} ${PREFIX}/share/applications ${PREFIX}/share/pixmaps ${INSTALL_DATA} ${WRKDIR}/${MOZILLA}.desktop ${PREFIX}/share/applications/ diff --git a/www/firefox-esr/Makefile.webplugins b/www/firefox-esr/Makefile.webplugins new file mode 100644 index 000000000000..dd5db96f0cfc --- /dev/null +++ b/www/firefox-esr/Makefile.webplugins @@ -0,0 +1,226 @@ +#-*- mode: makefile; tab-width: 4; -* +# ex:ts=4 +# +# New ports collection makefile for: npapi infrastructure +# Date created: 27 June 2006 +# Whom: Andrew Pantyukhin <infofarmer@FreeBSD.org> +# +# $FreeBSD$ +# $MCom: ports-stable/www/firefox/Makefile.webplugins,v 1.14 2008/11/12 17:55:09 mezz Exp $ +# + +# MAINTAINER= gnome@FreeBSD.org +# +# Documentation and examples: +# +# Makefile.webplugins will create symlinks automatically for each supported +# applications that supports the webplugins framework. Also, it will remove +# these symlinks when the plug-in port is uninstalled. +# +# USE_WEBPLUGINS - Specify a list of application(s) that this plug-in +# port supports. For each of these applications, a +# symlink will be created in +# lib/browser_plugins/symlinks. See +# WEBPLUGINS_APPS_ALL_* below for the list of +# supported applications. +# Default: USE_WEBPLUGINS=${WEBPLUGINS_APPS_ALL} (all +# applications) +# +# WEBPLUGINS_NAME - If your port installs file(s) in ${WEBPLUGINS_DIR}, +# then you can tweak WEBPLUGINS_NAME to change the +# name of the directory +# (lib/browser_plugins/symlinks/WEBPLUGINS_NAME). +# Default: WEBPLUGINS_NAME=${PKGBASE} +# +# WEBPLUGINS_FILES - The plug-in file(s) that are going to be linked +# in lib/browser_plugins/symlinks/*/. It cannot +# be empty or the port will set IGNORE. +# +# WEBPLUGINS_DIR - The directory where the plug-in file(s) can be +# found. Each plug-in file in WEBPLUGINS_FILES +# must be found in WEBPLUGINS_DIR. If your port +# does not install in WEBPLUGINS_DIR, but in its own +# path. You will need to specify that here or +# symlinks will be created to non-existent files. +# Default: WEBPLUGINS_DIR?=${WEBPLUGINS_LIBDIR}/${WEBPLUGINS_NAME} +# +# +# The USE_WEBPLUGINS supports wildcards, native, and linux; so you can do any +# of the following: +# +# USE_WEBPLUGINS=gecko* (Supports gecko18 and gecko19.) +# USE_WEBPLUGINS=native (Supports gecko*, opera*, and webkit-gtk2) +# USE_WEBPLUGINS=linux (Supports linux-*) +# USE_WEBPLUGINS=opera webkit-gtk2 +# +# Example to add in Makefile and pkg-plist if the plug-in file(s) install in +# WEBPLUGINS_DIR, and if your port does this manually: +# +# Makefile: +# ------------------------------------------------------ +# [...] +# USE_WEBPLUGINS=gecko* +# WEBPLUGINS_FILES=fooplugin.so fooplugin.xpi +# +# .include <bsd.port.pre.mk> +# .include "${PORTSDIR}/www/firefox/Makefile.webplugins" +# +# post-install: +# ${MKDIR} ${WEBPLUGINS_DIR} +# ${INSTALL_DATA} ${WEBPLUGINS_FILES:S,^,${WRKSRC}/plugins/,} \ +# ${WEBPLUGINS_DIR} +# +# .include <bsd.port.post.mk> +# ------------------------------------------------------ +# +# You do not need to add lib/browser_plugins and lib/browser_plugins/symlinks +# in pkg-plist, because they will be removed automatically. +# +# pkg-plist: +# ------------------------------------------------------ +# [...] +# %%WEBPLUGINS_DIR%%/fooplugin.so +# %%WEBPLUGINS_DIR%%/fooplugin.xpi +# @dirrmtry %%WEBPLUGINS_DIR%% +# ------------------------------------------------------ +# +# Here is what it will look like when it creates the symlinks: +# +# ------------------------------------------------------ +# /usr/local/lib/browser_plugins/symlinks/gecko18/fooplugin.so -> /usr/local/lib/browser_plugins/application/fooplugin.so +# /usr/local/lib/browser_plugins/symlinks/gecko18/fooplugin.xpi -> /usr/local/lib/browser_plugins/application/fooplugin.xpi +# /usr/local/lib/browser_plugins/symlinks/gecko19/fooplugin.so -> /usr/local/lib/browser_plugins/application/fooplugin.so +# /usr/local/lib/browser_plugins/symlinks/gecko19/fooplugin.xpi -> /usr/local/lib/browser_plugins/application/fooplugin.xpi +# ------------------------------------------------------ +# +# If your port uses libtool, and installs any *.a and *.la files, do not add +# these files to WEBPLUGINS_FILES. WEBPLUGINS_FILES should be *.so or/and +# *.xpi ONLY. +# +# Example to add in Makefile and pkg-plist if your port installs plug-ins in +# its own directory, and you need to set WEBPLUGINS_DIR. +# +# Makefile: +# ------------------------------------------------------ +# [...] +# USE_WEBPLUGINS=gecko* +# WEBPLUGINS_DIR=#{PREFIX}/lib/application +# WEBPLUGINS_FILES=fooplugin.so fooplugin.xpi +# +# .include <bsd.port.pre.mk> +# .include "${PORTSDIR}/www/firefox/Makefile.webplugins" +# +# [...] +# +# .include <bsd.port.post.mk> +# ------------------------------------------------------ +# +# As for the pkg-plist, it should only include the actual files your +# port installs: +# +# pkg-plist: +# ------------------------------------------------------ +# [...] +# lib/application/fooplugin.a +# lib/application/fooplugin.la +# lib/application/fooplugin.so +# lib/application/fooplugin.xpi +# @dirrm lib/application +# ------------------------------------------------------ +# +# Here is what it will look like when it creates symlinks: +# +# ------------------------------------------------------ +# /usr/local/lib/browser_plugins/symlinks/gecko18/fooplugin.so -> /usr/local/lib/application/fooplugin.so +# /usr/local/lib/browser_plugins/symlinks/gecko18/fooplugin.xpi -> /usr/local/lib/application/fooplugin.xpi +# /usr/local/lib/browser_plugins/symlinks/gecko19/fooplugin.so -> /usr/local/lib/application/fooplugin.so +# /usr/local/lib/browser_plugins/symlinks/gecko19/fooplugin.xpi -> /usr/local/lib/application/fooplugin.xpi +# ------------------------------------------------------ + +WEBPLUGINS_NAME?= ${PKGBASE} +WEBPLUGINS_FILES?= empty +WEBPLUGINS_APPS_ALL_LINUX= linux-firefox linux-firefox-devel linux-flock \ + linux-flock-devel linux-mozilla \ + linux-nvu linux-opera linux-opera-devel \ + linux-seamonkey linux-seamonkey-devel \ + linux-sunbird linux-sunbird-devel +WEBPLUGINS_APPS_ALL_NATIVE= gecko18 gecko19 opera opera-devel webkit-gtk2 +WEBPLUGINS_APPS_ALL= ${WEBPLUGINS_APPS_ALL_LINUX} \ + ${WEBPLUGINS_APPS_ALL_NATIVE} + +.if !defined(USE_WEBPLUGINS) || ${USE_WEBPLUGINS} == "yes" || \ + ${USE_WEBPLUGINS} == "*" +USE_WEBPLUGINS= ${WEBPLUGINS_APPS_ALL} +.endif + +.if !defined(WEBPLUGINS_FILES) || ${WEBPLUGINS_FILES} == "empty" || \ + ${WEBPLUGINS_FILES} == "" +IGNORE= cannot install: the WEBPLUGINS_FILES is empty, please add plugins file in it and see in www/firefox/Makefile.webplugins for document +.endif + +.for _TEMP_APP__ in ${WEBPLUGINS_APPS_ALL} +_TEMP_APP_=${_TEMP_APP__} +_TEMP_FLAG_=0 +. for _TEMP_USE__ in ${USE_WEBPLUGINS} +_TEMP_USE_=${_TEMP_USE__} +. if !${_TEMP_APP_:C!${_TEMP_USE_:S/*/.*/:S/?/./}!!} || \ + ( ${_TEMP_APP_:Mlinux-*} && ${_TEMP_USE_:Mlinux} ) || \ + ( ${_TEMP_APP_:Nlinux-*} && ${_TEMP_USE_:Mnative} ) +_TEMP_FLAG_=1 +. endif +. endfor +. if ${_TEMP_FLAG_} +USE_WEBPLUGINS_EXP+= ${_TEMP_APP__} +. endif +.endfor + +WEBPLUGINS_APPS= ${USE_WEBPLUGINS_EXP:S.^.${LOCALBASE}/lib/.:S.$./plugins.:N*opera*:N*gecko*:N*webkit*} +WEBPLUGINS_SLDIRS= ${USE_WEBPLUGINS_EXP:S.^.${WEBPLUGINS_SLDIR}/.} +WEBPLUGINS_LINKFARMS= ${WEBPLUGINS_APPS} ${WEBPLUGINS_SLDIRS} + +WEBPLUGINS_LIBDIR= ${PREFIX}/lib/browser_plugins +WEBPLUGINS_SLDIR= ${WEBPLUGINS_LIBDIR}/symlinks +WEBPLUGINS_DIR?= ${WEBPLUGINS_LIBDIR}/${WEBPLUGINS_NAME} + +PLIST_SUB+= WEBPLUGINS_DIR="${WEBPLUGINS_DIR:S,^${PREFIX}/,,}" + +_LNWF= ${WEBPLUGINS_FILES:S,^,${WEBPLUGINS_DIR}/,} +_Q= 2>/dev/null || true +_WLD= ${WEBPLUGINS_LIBDIR:S,^${PREFIX},%D,} +_WLF= ${WEBPLUGINS_LINKFARMS:S,${PREFIX},%D,} +_WSD= ${WEBPLUGINS_SLDIR:S,^${PREFIX},%D,} + +webplugins-post-install: + @if [ ! -d ${WEBPLUGINS_DIR} ]; then \ + ${ECHO_CMD}; \ + ${ECHO_CMD} "ERROR: The \"${WEBPLUGINS_DIR}\" in WEBPLUGINS_DIR is either a typo or no longer exists. Please make a bug report to ${MAINTAINER} (maintainer)."; \ + ${ECHO_CMD}; \ + else \ + for _f in ${WEBPLUGINS_FILES}; do \ + if [ ! -f ${WEBPLUGINS_DIR}/$${_f} ]; then \ + ${ECHO_CMD}; \ + ${ECHO_CMD} "ERROR: The \"$${_f}\" in WEBPLUGINS_FILES is either a typo or no longer exists. Please make a bug report to ${MAINTAINER} (maintainer)."; \ + ${ECHO_CMD}; \ + fi; \ + done; \ + fi; \ + for _d in ${WEBPLUGINS_LINKFARMS}; do \ + ${INSTALL} -d $${_d}; \ + for _l in ${_LNWF}; do \ + ${LN} -sf $${_l} $${_d}/ ${_Q}; \ + done; \ + done; \ + for _d in ${_WLF}; do \ + ${ECHO_CMD} "@exec ${INSTALL} -d $$_d" >> ${TMPPLIST}; \ + for _l in ${_LNWF}; do \ + ${ECHO_CMD} "@exec ${LN} -sf $$_l $$_d/ ${_Q}" >> ${TMPPLIST}; \ + done; \ + for _f in ${WEBPLUGINS_FILES:S,^,\${_d}/,}; do \ + ${ECHO_CMD} "@unexec ${RM} -f $$_f" >> ${TMPPLIST}; \ + done; \ + ${ECHO_CMD} "@unexec rmdir $$_d ${_Q}" >> ${TMPPLIST}; \ + done + @${ECHO_CMD} "@unexec rmdir ${_WSD} ${_Q}" >> ${TMPPLIST} + @${ECHO_CMD} "@unexec rmdir ${_WLD} ${_Q}" >> ${TMPPLIST} + +post-install: webplugins-post-install diff --git a/www/firefox-esr/files/patch-build_unix_run-mozilla.sh b/www/firefox-esr/files/patch-build_unix_run-mozilla.sh index 87114cc7b898..5d8ec822d9a1 100644 --- a/www/firefox-esr/files/patch-build_unix_run-mozilla.sh +++ b/www/firefox-esr/files/patch-build_unix_run-mozilla.sh @@ -5,7 +5,7 @@ ## ## Set LD_LIBRARY_PATH -LD_LIBRARY_PATH=${MOZ_DIST_BIN}:${MOZ_DIST_BIN}/plugins:${MRE_HOME}${LD_LIBRARY_PATH+":$LD_LIBRARY_PATH"} -+LD_LIBRARY_PATH=${MOZ_DIST_BIN}:${MOZ_DIST_BIN}/plugins:%%PREFIX%%/lib/browser_plugins:%%PREFIX%%/lib/browser_linux_plugins:${MRE_HOME}${LD_LIBRARY_PATH+":$LD_LIBRARY_PATH"} ++LD_LIBRARY_PATH=${MOZ_DIST_BIN}:${MOZ_DIST_BIN}/plugins:%%LOCALBASE%%/lib/browser_plugins/symlinks/gecko18:%%LOCALBASE%%/lib/npapi/symlinks/firefox:${MRE_HOME}${LD_LIBRARY_PATH+":$LD_LIBRARY_PATH"} if [ -n "$LD_LIBRARYN32_PATH" ] then LD_LIBRARYN32_PATH=${MOZ_DIST_BIN}:${MOZ_DIST_BIN}/plugins:${MRE_HOME}${LD_LIBRARYN32_PATH+":$LD_LIBRARYN32_PATH"} @@ -14,7 +14,7 @@ export MOZILLA_FIVE_HOME LD_LIBRARY_PATH export SHLIB_PATH LIBPATH LIBRARY_PATH ADDON_PATH DYLD_LIBRARY_PATH + -+MOZ_PLUGIN_PATH=%%PREFIX%%/lib/browser_plugins:%%PREFIX%%/lib/browser_linux_plugins ++MOZ_PLUGIN_PATH=%%LOCALBASE%%/lib/browser_plugins/symlinks/gecko18:%%LOCALBASE%%/lib/npapi/symlinks/firefox +export MOZ_PLUGIN_PATH if [ $moz_debug -eq 1 ] |