Here is the ebuild, it could co-exist with a normal firefox-installation (uses own profile-directory and own internal name deeppark, instead of firefox), does not use mozilla-launcher at all, builds with system cairo and the new features (canvas and cairo-renderer you will need cairo-1.0 for pango to function correctly).
[EDIT]
WARNING You will need pango-1.10.0, gtk+-2.8.2 and other masked packages (from gnome-2.12) to compile the beast with pango and the nifty-features as canvas, glitz ... If you don't have them disable pango and remove the following lines
Code: Select all
mozconfig_annotate mozsvg --enable-canvas
mozconfig_annotate mozsvg --enable-svg-renderer=cairo
mozconfig_annotate mozsvg --enable-glitz
in order to compile with mozsvg
[EDIT]
it uses slightly changed mozconfig2.eclass, because truetype and xft flags could not be select at once (the truetype flag is obsolete in this form with gtk2) to select the back-ends. The use flags are
mozxft (it should be explicitely selected),
moztt (it is the truetype flag, do not use it),
mozpango (to build the pango support) and
buildd (to build only and not to update from cvs, it will copy the needed files from /usr/portage/distfiles/cvs-src/mozilla/).
Put in your overlay eclass-directory (default /usr/local/portage/eclass/) the following mozconfig2.eclass:
Code: Select all
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/mozconfig.eclass,v 1.20 2005/08/02 12:51:09 agriffis Exp $
#
# mozconfig.eclass: the new mozilla.eclass
inherit multilib flag-o-matic
IUSE="debug gnome ipv6 mozxft moztt xinerama xprint"
RDEPEND="virtual/x11
!moznoxft? ( virtual/xft )
>=media-libs/fontconfig-2.1
>=sys-libs/zlib-1.1.4
>=media-libs/jpeg-6b
>=media-libs/libmng-1.0.0
>=media-libs/libpng-1.2.1
>=sys-apps/portage-2.0.36
dev-libs/expat
app-arch/zip
app-arch/unzip
>=www-client/mozilla-launcher-1.22
>=x11-libs/gtk+-2.2.0
>=dev-libs/glib-2.2.0
>=x11-libs/pango-1.2.1
>=dev-libs/libIDL-0.8.0
gnome? ( >=gnome-base/gnome-vfs-2.3.5 )
svg? ( >=x11-libs/cairo-0.9 )"
DEPEND="${RDEPEND}
dev-util/pkgconfig"
# Set by configure (plus USE_AUTOCONF=1), but useful for NSPR
export MOZILLA_CLIENT=1
export BUILD_OPT=1
export NO_STATIC_LIB=1
#export USE_PTHREADS=1
mozconfig_init() {
declare enable_optimize pango_version myext x
declare MOZ=$([[ ${PN} == mozilla ]] && echo true || echo false)
declare FF=$([[ ${PN} == *firefox ]] && echo true || echo false)
declare DP=$([[ ${PN} == *deeppark ]] && echo true || echo false)
declare TB=$([[ ${PN} == *thunderbird ]] && echo true || echo false)
declare SB=$([[ ${PN} == *sunbird ]] && echo true || echo false)
####################################
#
# Setup the initial .mozconfig
# See http://www.mozilla.org/build/configure-build.html
#
####################################
case ${PN} in
mozilla)
# The other builds have an initial --enable-extensions in their
# .mozconfig. The "default" set in configure applies to mozilla
# specifically.
: >.mozconfig || die "initial mozconfig creation failed"
mozconfig_annotate "" --enable-extensions=default ;;
*firefox)
cp browser/config/mozconfig .mozconfig \
|| die "cp browser/config/mozconfig failed" ;;
*deeppark)
cp browser/config/mozconfig .mozconfig \
|| die "cp browser/config/mozconfig failed" ;;
*thunderbird)
cp mail/config/mozconfig .mozconfig \
|| die "cp mail/config/mozconfig failed" ;;
*sunbird)
cp calendar/sunbird/config/mozconfig .mozconfig \
|| die "cp calendar/sunbird/config/mozconfig failed" ;;
esac
####################################
#
# CFLAGS setup and ARCH support
#
####################################
# Set optimization level based on CFLAGS
if is-flag -O0; then
mozconfig_annotate "from CFLAGS" --enable-optimize=-O0
elif [[ ${ARCH} == hppa ]]; then
mozconfig_annotate "more than -O0 causes segfaults on hppa" --enable-optimize=-O0
elif [[ ${ARCH} == alpha || ${ARCH} == amd64 || ${ARCH} == ia64 || ${ARCH} == ppc64 ]]; then
mozconfig_annotate "more than -O1 causes segfaults on 64-bit (bug 33767)" \
--enable-optimize=-O1
elif is-flag -O1; then
mozconfig_annotate "from CFLAGS" --enable-optimize=-O1
else
mozconfig_annotate "mozilla fallback" --enable-optimize=-O2
fi
# Now strip optimization from CFLAGS so it doesn't end up in the
# compile string
filter-flags '-O*'
# Strip over-aggressive CFLAGS - Mozilla supplies its own
# fine-tuned CFLAGS and shouldn't be interfered with.. Do this
# AFTER setting optimization above since strip-flags only allows
# -O -O1 and -O2
strip-flags
# -fstack-protector is in ALLOWED_FLAGS but breaks moz #83511
filter-flags -fstack-protector
# Additional ARCH support
case "${ARCH}" in
alpha)
# Historically we have needed to add -fPIC manually for 64-bit.
# Additionally, alpha should *always* build with -mieee for correct math
# operation
append-flags -fPIC -mieee
;;
amd64|ia64)
# Historically we have needed to add this manually for 64-bit
append-flags -fPIC
;;
ppc64)
append-flags -fPIC -mminimal-toc
;;
ppc)
# Fix to avoid gcc-3.3.x micompilation issues.
if [[ $(gcc-major-version).$(gcc-minor-version) == 3.3 ]]; then
append-flags -fno-strict-aliasing
fi
;;
sparc)
# Sparc support ...
replace-sparc64-flags
;;
x86)
if [[ $(gcc-major-version) -eq 3 ]]; then
# gcc-3 prior to 3.2.3 doesn't work well for pentium4
# see bug 25332
if [[ $(gcc-minor-version) -lt 2 ||
( $(gcc-minor-version) -eq 2 && $(gcc-micro-version) -lt 3 ) ]]
then
replace-flags -march=pentium4 -march=pentium3
filter-flags -msse2
fi
fi
;;
esac
if [[ $(gcc-major-version) -eq 3 ]]; then
# Enable us to use flash, etc plugins compiled with gcc-2.95.3
mozconfig_annotate "building with >=gcc-3" --enable-old-abi-compat-wrappers
# Needed to build without warnings on gcc-3
CXXFLAGS="${CXXFLAGS} -Wno-deprecated"
fi
# Go a little faster; use less RAM
append-flags "$MAKEEDIT_FLAGS"
# Define our plugin dirs for nsplugins-v2.patch
#
# This is the way we would *like* to do things. However ./configure chokes
# on these definitions, so the real definitions happen in the ebuilds, just
# before emake.
#
#append-flags "-DGENTOO_NSPLUGINS_DIR=\\\"/usr/$(get_libdir)/nsplugins\\\""
#append-flags "-DGENTOO_NSBROWSER_PLUGINS_DIR=\\\"/usr/$(get_libdir)/nsbrowser/plugins\\\""
####################################
#
# mozconfig setup
#
####################################
mozconfig_annotate gentoo \
--with-pthreads \
--disable-installer \
--disable-pedantic \
--enable-crypto \
--with-system-jpeg \
--with-system-png \
--with-system-zlib \
--without-system-nspr \
--enable-default-toolkit=gtk2
mozconfig_use_enable ipv6
mozconfig_use_enable xinerama
mozconfig_use_enable xprint
if use moztt; then
mozconfig_annotate moztt --enable-freetype2
mozconfig_annotate moztt --enable-freetypetest
else
mozconfig_annotate -mott --disable-freetype2
fi
if use mozpango; then
mozconfig_annotate mozpango --enable-pango
fi
if use debug; then
mozconfig_annotate +debug \
--enable-debug \
--enable-tests \
--disable-reorder \
--disable-strip \
--disable-strip-libs \
--enable-debugger-info-modules=ALL_MODULES
else
mozconfig_annotate -debug \
--disable-debug \
--disable-tests \
--enable-reorder \
--enable-strip \
--enable-strip-libs
# Currently --enable-elf-dynstr-gc only works for x86 and ppc,
# thanks to Jason Wever <weeve@gentoo.org> for the fix.
if use x86 || use ppc && [[ ${enable_optimize} != -O0 ]]; then
mozconfig_annotate "${ARCH} optimized build" --enable-elf-dynstr-gc
fi
fi
# Here is a strange one...
if is-flag '-mcpu=ultrasparc*' || is-flag '-mtune=ultrasparc*'; then
mozconfig_annotate "building on ultrasparc" --enable-js-ultrasparc
fi
# Check if we should enable Xft support...
if use mozxft; then
# We need Xft2.0 locally installed
if [[ -x /usr/bin/pkg-config ]] && pkg-config xft; then
# We also need pango-1.1, else Mozilla links to both
# Xft1.1 *and* Xft2.0, and segfault...
pango_version=$(pkg-config --modversion pango | cut -d. -f1,2)
if [[ ${pango_version//.} -gt 10 ]]; then
mozconfig_annotate "mozxft" --enable-xft
else
mozconfig_annotate "bad pango version <1.1" --disable-xft
fi
else
mozconfig_annotate "no pkg-config xft" --disable-xft
fi
else
mozconfig_annotate "disabling xft2 (-mozxft)" --disable-xft
fi
}
# Simulate the silly csh makemake script
makemake() {
typeset m topdir
for m in $(find . -name Makefile.in); do
topdir=$(echo "$m" | sed -r 's:[^/]+:..:g')
sed -e "s:@srcdir@:.:g" -e "s:@top_srcdir@:${topdir}:g" \
< ${m} > ${m%.in} || die "sed ${m} failed"
done
}
#
# The following functions are for manipulating mozconfig
#
# mozconfig_annotate: add an annotated line to .mozconfig
#
# Example:
# mozconfig_annotate "building on ultrasparc" --enable-js-ultrasparc
# => ac_add_options --enable-js-ultrasparc # building on ultrasparc
mozconfig_annotate() {
declare reason=$1 x ; shift
[[ $# -gt 0 ]] || die "mozconfig_annotate missing flags for ${reason}\!"
for x in ${*}; do
echo "ac_add_options ${x} # ${reason}" >>.mozconfig
done
}
# mozconfig_use_enable: add a line to .mozconfig based on a USE-flag
#
# Example:
# mozconfig_use_enable truetype freetype2
# => ac_add_options --enable-freetype2 # +truetype
mozconfig_use_enable() {
declare flag=$(use_enable "$@")
mozconfig_annotate "$(useq $1 && echo +$1 || echo -$1)" "${flag}"
}
# mozconfig_use_with: add a line to .mozconfig based on a USE-flag
#
# Example:
# mozconfig_use_with kerberos gss-api /usr/$(get_libdir)
# => ac_add_options --with-gss-api=/usr/lib # +kerberos
mozconfig_use_with() {
declare flag=$(use_with "$@")
mozconfig_annotate "$(useq $1 && echo +$1 || echo -$1)" "${flag}"
}
# mozconfig_use_extension: enable or disable an extension based on a USE-flag
#
# Example:
# mozconfig_use_extension gnome gnomevfs
# => ac_add_options --enable-extensions=gnomevfs
mozconfig_use_extension() {
declare minus=$(useq $1 || echo -)
mozconfig_annotate "${minus:-+}$1" --enable-extensions=${minus}${2}
}
# mozconfig_final: display a table describing all configuration options paired
# with reasons, then clean up extensions list
mozconfig_final() {
declare ac opt hash reason
echo
echo "=========================================================="
echo "Building ${PF} with the following configuration"
grep ^ac_add_options .mozconfig | while read ac opt hash reason; do
[[ -z ${hash} || ${hash} == \# ]] \
|| die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}"
printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}"
done
echo "=========================================================="
echo
# Resolve multiple --enable-extensions down to one
declare exts=$(sed -n 's/^ac_add_options --enable-extensions=\([^ ]*\).*/\1/p' \
.mozconfig | xargs)
sed -i '/^ac_add_options --enable-extensions/d' .mozconfig
echo "ac_add_options --enable-extensions=${exts// /,}" >> .mozconfig
}
After that you'll need the following files in overlay-portage dir www-client/mozilla-deeppark (defaults to /usr/local/portage/www-client/mozilla-deeppark/)
Code: Select all
/usr/local/portage/www-client/mozilla-deeppark/:
mozilla-deeppark-9999.ebuild
/usr/local/portage/www-client/mozilla-deeppark/files:
embed-typeaheadfind.patch
firefox-cairo-canvas.patch
firefox-nopangoxft.patch
gentoo-default-prefs.js
mozilla-1.3-alpha-stubs.patch
mozilla-firefox-1.1a2-4ft2.patch
mozilla-firefox-1.1a2-ia64.patch
mozilla-hppa.patch
mozilla-rpath-1.patch
/usr/local/portage/www-client/mozilla-deeppark/files/icon:
deeppark-icon.png
mozilladeeppark.desktop
The ebuild mozilla-deeppark-9999.ebuild:
Code: Select all
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
unset ALLOWED_FLAGS # stupid extra-functions.sh ... bug 49179
inherit flag-o-matic toolchain-funcs eutils mozconfig2 makeedit multilib cvs
DESCRIPTION="Firefox Web Browser"
HOMEPAGE="http://www.mozilla.org/projects/firefox/"
MY_PV="1.0+"
SRC_URI="mirror://gentoo/mozilla-jslibmath-alpha.patch
http://dev.gentoo.org/~agriffis/dist/mozilla-1.7.10-nsplugins-v2.patch"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~sparc ~x86"
SLOT="0"
LICENSE="MPL-1.1 NPL-1.1"
IUSE="gnome java mozdevelop mozxft moztt mozpango mozsvg mozcalendar ldap ssl buildd"
# xrender.pc appeared for the first time in xorg-x11-6.7.0-r2
# and is required to build with support for cairo. #71504
RDEPEND="java? ( virtual/jre )
>=media-libs/libmng-1.0.0
mozsvg? (
!<=x11-base/xorg-x11-6.7.0-r2
>x11-libs/cairo-0.5
)
>=www-client/mozilla-launcher-1.39"
DEPEND="${RDEPEND}
java? ( >=dev-java/java-config-0.2.0 )"
S=${WORKDIR}/mozilla
# Needed by src_compile() and src_install().
# Would do in pkg_setup but that loses the export attribute, they
# become pure shell variables.
export MOZ_CO_PROJECT=browser
export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1
ECVS_SERVER="cvs-mirror.mozilla.org:/cvsroot"
ECVS_PASS="anonymous"
ECVS_MODULE="mozilla"
ECVS_UP_OPT="-dPAC"
ECVS_CO_OPT="-PA"
ECVS_BRANCH="HEAD"
ECVS_CVS_COMMAND="cvs -f -z3"
CVS_MODULE="mozilla/README \
mozilla/accessible \
mozilla/browser \
mozilla/build/ \
mozilla/caps/ \
mozilla/chrome \
mozilla/config \
mozilla/content \
mozilla/db \
mozilla/dbm \
mozilla/directory \
mozilla/docshell \
mozilla/dom \
mozilla/editor \
mozilla/embedding \
mozilla/extensions \
mozilla/gc \
mozilla/gfx \
mozilla/intl \
mozilla/ipc/ \
mozilla/jpeg \
mozilla/js \
mozilla/l10n \
mozilla/layout \
mozilla/lib \
mozilla/mailnews \
mozilla/modules \
mozilla/netwerk \
mozilla/nsprpub \
mozilla/other-licenses/ \
mozilla/parser \
mozilla/plugin \
mozilla/profile \
mozilla/rdf \
mozilla/security \
mozilla/storage \
mozilla/sun-java \
mozilla/themes \
mozilla/toolkit \
mozilla/tools \
mozilla/uriloader \
mozilla/view \
mozilla/webshell \
mozilla/widget \
mozilla/xpcom \
mozilla/xpfe \
mozilla/xpinstall"
src_unpack() {
if use buildd && [[ -d ${DISTDIR}/cvs-src/mozilla ]]; then
ECVS_SERVER="offline"
fi
for x in ${CVS_MODULE}; do
ECVS_MODULE=$x
cvs_src_unpack || die "cvs failed"
done
ECVS_LOCAL=1
ECVS_MODULE="mozilla"
cvs_src_unpack || die "cvs failed"
unset ECVS_LOCAL
cd ${S} || die "cd failed"
####################################
#
# Branding
#
####################################
sed -i -e 's|"Firefox"|"DeepPark"|' ${S}/browser/app/nsBrowserApp.cpp
sed -i -e 's|MOZ_APP_NAME=firefox|MOZ_APP_NAME=deeppark|' ${S}/configure
sed -i -e "s|Firefox|DeepPark|" ${S}/other-licenses/branding/firefox/locales/en-US/brand.*
####################################
#
# architecture patches
#
####################################
# alpha stubs patch from lfs project.
# <taviso@gentoo.org> (26 Jun 2003)
use alpha && epatch ${FILESDIR}/mozilla-1.3-alpha-stubs.patch
# hppa patches from Ivar <orskaug@stud.ntnu.no>
# <gmsoft@gentoo.org> (22 Dec 2004)
epatch ${FILESDIR}/mozilla-hppa.patch
# patch to solve segfaults on ia64, from Debian, originally from David
# Mosberger
epatch ${FILESDIR}/mozilla-firefox-1.1a2-ia64.patch
# patch to fix math operations on alpha, makes maps.google.com work!
epatch ${DISTDIR}/mozilla-jslibmath-alpha.patch
####################################
#
# general compilation and run-time fixes
#
####################################
# patch from fedora to remove the pangoxft things
epatch ${FILESDIR}/firefox-nopangoxft.patch
#cairo-canvas patch
epatch ${FILESDIR}/firefox-cairo-canvas.patch
####################################
#
# behavioral fixes
#
####################################
# look in /usr/lib/nsplugins for plugins, in addition to the usual places
epatch ${DISTDIR}/mozilla-1.7.10-nsplugins-v2.patch
# patch to fix typeahead find for browsers which embed Firefox
# http://bugzilla.gnome.org/show_bug.cgi?id=157435
epatch ${FILESDIR}/embed-typeaheadfind.patch
#rpath patch
epatch ${FILESDIR}/mozilla-rpath-1.patch
}
src_compile() {
declare MOZILLA_FIVE_HOME=/usr/$(get_libdir)/${PN}
grep -Flr "#RPATH_FIXER" --include=*.mk . | xargs sed -i -e \
's|#RPATH_FIXER|'"${MOZILLA_FIVE_HOME}"'|'
####################################
#
# mozconfig, CFLAGS and CXXFLAGS setup
#
####################################
if use mozxft && use moztt; then
einfo "You should not try to use both xft and truetype at once!"
die
fi
mozconfig_init
# Deer Park lost these defaults
mozconfig_annotate '' --disable-mailnews
mozconfig_annotate '' --enable-extensions=default,typeaheadfind,-reporter,-inspector
mozconfig_annotate '' --enable-single-profile
mozconfig_annotate '' --disable-profilesharing
mozconfig_annotate '' --disable-profilelocking
# Bug 60668: Galeon doesn't build without oji enabled, so enable it
# regardless of java setting.
mozconfig_annotate '' --enable-native-uconv
if use mozsvg; then
mozconfig_annotate mozsvg --enable-system-cairo
mozconfig_annotate mozsvg --enable-svg
#this breaks on my system, it compiles fine but sigsevs
mozconfig_annotate mozsvg --enable-canvas
mozconfig_annotate mozsvg --enable-svg-renderer=cairo
mozconfig_annotate mozsvg --enable-glitz
fi
# Bug 60668: Galeon doesn't build without oji enabled, so enable it
# regardless of java setting.
mozconfig_annotate '' --enable-oji --enable-mathml
# Other ff-specific settings
mozconfig_use_enable mozdevelop jsd
mozconfig_use_enable mozdevelop xpctools
mozconfig_use_extension mozdevelop venkman
mozconfig_use_enable gnome gnomevfs
mozconfig_use_extension gnome gnomevfs
mozconfig_annotate '' --with-default-mozilla-five-home=${MOZILLA_FIVE_HOME}
mozconfig_annotate '' --with-user-appdir=deeppark
if use ldap; then
mozconfig_use_enable ldap
mozconfig_use_enable ldap ldap-experimental
fi
# Finalize and report settings
mozconfig_final
# hardened GCC uses -fstack-protector-all by default, which breaks us
has_hardened && append-flags -fno-stack-protector-all
replace-flags -fstack-protector-all -fstack-protector
####################################
#
# Configure and build
#
####################################
CPPFLAGS="${CPPFLAGS} -DARON_WAS_HERE" \
CC="$(tc-getCC)" CXX="$(tc-getCXX)" LD="$(tc-getLD)" \
econf || die
# It would be great if we could pass these in via CPPFLAGS or CFLAGS prior
# to econf, but the quotes cause configure to fail.
grep -Flre -DARON_WAS_HERE --exclude=config.\* . | xargs sed -i -e \
's|-DARON_WAS_HERE|-DGENTOO_NSPLUGINS_DIR=\\\"/usr/'"$(get_libdir)"'/nsplugins\\\" -DGENTOO_NSBROWSER_PLUGINS_DIR=\\\"/usr/'"$(get_libdir)"'/nsbrowser/plugins\\\"|'
# This removes extraneous CFLAGS from the Makefiles to reduce RAM
# requirements while compiling
edit_makefiles
emake || die
}
src_install() {
declare MOZILLA_FIVE_HOME=/usr/$(get_libdir)/${PN}
# Most of the installation happens here
dodir ${MOZILLA_FIVE_HOME}
cp -RL ${S}/dist/bin/* ${D}${MOZILLA_FIVE_HOME}
# Install icon and .desktop for menu entry
insinto /usr/share/pixmaps
doins ${FILESDIR}/icon/deeppark-icon.png
# Fix bug 54179: Install .desktop file into /usr/share/applications
# instead of /usr/share/gnome/apps/Internet (18 Jun 2004 agriffis)
insinto /usr/share/applications
doins ${FILESDIR}/icon/mozilladeeppark.desktop
####################################
#
# Install files necessary for applications to build against firefox
#
####################################
einfo "Installing includes and idl files..."
dodir ${MOZILLA_FIVE_HOME}/include/idl /usr/include
cd ${S}/dist
cp -LfR include/* ${D}${MOZILLA_FIVE_HOME}/include || die "failed to copy"
cp -LfR idl/* ${D}${MOZILLA_FIVE_HOME}/include/idl || die "failed to copy"
# Dirty hack to get some applications using this header running
#dosym ${MOZILLA_FIVE_HOME}/include/necko/nsIURI.h \
# /usr/$(get_libdir)/${MOZILLA_FIVE_HOME##*/}/include/nsIURI.h
####################################
#
# Some preferences, probably gentoo.org as start-page also
#
####################################
dodir ${MOZILLA_FIVE_HOME}/greprefs
cp ${FILESDIR}/gentoo-default-prefs.js ${D}/${MOZILLA_FIVE_HOME}/greprefs/all-gentoo.js
dodir ${MOZILLA_FIVE_HOME}/defaults/pref
cp ${FILESDIR}/gentoo-default-prefs.js ${D}/${MOZILLA_FIVE_HOME}/defaults/pref/all-gentoo.js
#setting the script
sed -i -e "s|\(^moz_libdir=\)\(.*\)|\1${MOZILLA_FIVE_HOME}|" ${D}/${MOZILLA_FIVE_HOME}/firefox
sed -i -e 's|\(MOZ_USER_DIR=\"\)\(.*\"\)|\1.mozilla/deeppark"|' ${D}/${MOZILLA_FIVE_HOME}/firefox
sed -i -e "s|\(^MRE_HOME=\)\(.*\)|#\1\2|" ${D}/${MOZILLA_FIVE_HOME}/firefox
sed -i -e 's|\(^progname=\)\(".*\)|\1"deeppark"|' ${D}/${MOZILLA_FIVE_HOME}/firefox
mv ${D}/${MOZILLA_FIVE_HOME}/firefox ${D}/${MOZILLA_FIVE_HOME}/deeppark
mv ${D}/${MOZILLA_FIVE_HOME}/firefox-bin ${D}/${MOZILLA_FIVE_HOME}/deeppark-bin
dodir ${D}/usr/bin
dosym ${MOZILLA_FIVE_HOME}/deeppark ${D}/usr/bin/deeppark
# Install docs
dodoc LEGAL LICENSE
}
pkg_postinst() {
declare MOZILLA_FIVE_HOME=/usr/$(get_libdir)/${PN}
####################################
#
# The registration is done here,
# mozilla-launcher do not do it correctly for now
#
####################################
touch ${MOZILLA_FIVE_HOME}/components/compreg.dat
touch ${MOZILLA_FIVE_HOME}/components/xpti.dat
[ -x ${MOZILLA_FIVE_HOME}/firefox ] && ${MOZILLA_FIVE_HOME}/deeppark -register
[ -x ${MOZILLA_FIVE_HOME}/regxpcom ] && ${MOZILLA_FIVE_HOME}/regxpcom
}
pkg_postrm() {
declare MOZILLA_FIVE_HOME=/usr/$(get_libdir)/${PN}
####################################
#
# The registration is done here,
# mozilla-launcher do not do it correctly for now
#
####################################
[ -x ${MOZILLA_FIVE_HOME}/firefox ] && ${MOZILLA_FIVE_HOME}/deeppark -register
[ -x ${MOZILLA_FIVE_HOME}/regxpcom ] && ${MOZILLA_FIVE_HOME}/regxpcom
}
Some of the patches and the icon could be find in TrueDFX's build and wuno's ebuild from
http://forums.gentoo.org/viewtopic-t-34 ... alpha.html
The others, which could not be found are updated rpath-patch (update against yesterday) save as mozilla-rpath-1.patch (in files directory):
Code: Select all
--- config/rules.mk.orig 2005-07-28 01:45:18.000000000 +0000
+++ config/rules.mk 2005-07-28 01:45:21.000000000 +0000
@@ -507,5 +507,10 @@
#
ifeq ($(OS_ARCH),Linux)
ifdef IS_COMPONENT
+DSO_LDOPTS += -Wl,-R#RPATH_FIXER
+OS_LDFLAGS += -Wl,-R#RPATH_FIXER
EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
+else
+DSO_LDOPTS += -Wl,-R#RPATH_FIXER
+OS_LDFLAGS += -Wl,-R#RPATH_FIXER
endif
--- nsprpub/config/rules.mk.orig 2003-09-16 02:00:28.000000000 +0000
+++ nsprpub/config/rules.mk 2005-07-30 04:00:21.000000000 +0000
@@ -87,6 +87,9 @@
endif
endif
+DSO_LDOPTS += -Wl,-R#RPATH_FIXER
+OS_LDFLAGS += -Wl,-R#RPATH_FIXER
+
#
# This makefile contains rules for building the following kinds of
# libraries:
--- security/coreconf/rules.mk.orig 2005-07-31 16:31:37.000000000 +0000
+++ security/coreconf/rules.mk 2005-07-31 16:37:27.000000000 +0000
@@ -349,7 +349,7 @@
ifdef XP_OS2_VACPP
$(MKSHLIB) $(DLLFLAGS) $(LDFLAGS) $(OBJS) $(SUB_SHLOBJS) $(LD_LIBS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS)
else
- $(MKSHLIB) -o $@ $(OBJS) $(SUB_SHLOBJS) $(LD_LIBS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS)
+ $(MKSHLIB) -Wl,-R#RPATH_FIXER -o $@ $(OBJS) $(SUB_SHLOBJS) $(LD_LIBS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS)
endif
chmod +x $@
ifeq ($(OS_TARGET),Darwin)
--- security/coreconf/rules.mk.orig 2005-08-01 11:40:54.000000000 +0000
+++ security/coreconf/rules.mk 2005-08-01 11:50:31.000000000 +0000
@@ -291,7 +291,7 @@
ifdef XP_OS2_VACPP
$(MKPROG) -Fe$@ $(CFLAGS) $(OBJS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS)
else
- $(MKPROG) -o $@ $(CFLAGS) $(OBJS) $(LDFLAGS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS)
+ $(MKPROG) -Wl,-R#RPATH_FIXER -o $@ $(CFLAGS) $(OBJS) $(LDFLAGS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS)
endif
endif
The next one is firefox-cairo-canvas.patch (which allows us to build cairo-canvas against the system libs):
Code: Select all
--- content/canvas/src/Makefile.in.orig 2005-08-23 01:46:46.000000000 +0000
+++ content/canvas/src/Makefile.in 2005-08-23 01:49:49.000000000 +0000
@@ -77,6 +77,11 @@
libpixman \
$(NULL)
+ifndef MOZ_TREE_CAIRO
+LOCAL_INCLUDES += $(MOZ_CAIRO_CFLAGS)
+EXTRA_DSO_LDOPTS += $(MOZ_CAIRO_LIBS)
+endif
+
# XXX some platforms can't handle building
# an empty .a/lib. Remove this dummy.cpp
# whenever w have a rendering context
The next one is firefox-nopangoxft.patch (fedora patch removing the last call to the old pango api):
Code: Select all
--- mozilla/gfx/src/gtk/mozilla-decoder.cpp.noxft 2005-08-18 22:41:26.000000000 -0400
+++ mozilla/gfx/src/gtk/mozilla-decoder.cpp 2005-08-18 22:38:01.000000000 -0400
@@ -40,7 +40,7 @@
#define PANGO_ENABLE_ENGINE
#include "mozilla-decoder.h"
-#include <pango/pangoxft.h>
+#include <pango/pangocairo.h>
#include <pango/pangofc-fontmap.h>
#include <pango/pangofc-font.h>
#include <gdk/gdkx.h>
@@ -208,7 +208,7 @@
}
}
- pango_fc_font_map_add_decoder_find_func(PANGO_FC_FONT_MAP(pango_xft_get_font_map(GDK_DISPLAY(),gdk_x11_get_default_screen())),
+ pango_fc_font_map_add_decoder_find_func(PANGO_FC_FONT_MAP(pango_cairo_font_map_get_default()),
mozilla_find_decoder,
NULL,
NULL);
The next are some preferences as auto scroll and so on not to change them each time (gentoo-default-prefs.js):
Code: Select all
pref("app.update.enabled", false);
pref("app.update.autoInstallEnabled", false);
pref("browser.display.use_system_colors", true);
pref("browser.link.open_external", 3);
pref("general.smoothScroll", true);
pref("general.autoScroll", true);
And the mozilladeeppark.desktop file from /usr/local/portage/www-client/mozilla-deeppark/files/icon:
Code: Select all
[Desktop Entry]
Name=Mozilla Deeppark
Comment=Web Browser
Exec=/usr/lib/mozilla-deeppark/deeppark %U
Icon=deeppark-icon.png
Terminal=false
Type=Application
Categories=Application;Network;
After that simply execute
Code: Select all
ebuild /usr/local/portage/www-client/mozilla-deeppark/mozilla-deeppark-9999.ebuild digest
If you would like to save on download, you could unpack the deeppark-archive (if you have it) in /usr/portage/distfiles/cvs-src/ so that the mozilla directory from the archive comes direct under /usr/portage/distfiles/cvs-src/ (i used mc, so no tar command here::))
And
Code: Select all
USE="mozxft mozpango" emerge -D mozilla-deeppark
(do not use the buildd-flag the first time, because there some patches, which are already integrate in trunk and without them it could easily break).
Executing - simply use deeppark from terminal or click the icon in the menu::)
[EDIT] small changes in registering (forgot to change firefox to deeppark in two of the lines) [EDIT]
[EDIT] mozilladeeppark.desktop changing from firefox to deeppark [EDIT]
[EDIT] Some changes to the ebuild, it seems that using the deeppark archive as a source for the cvs update, could stick us to deeppark-alfa branch, which is not what we want. added the -A switch to try to remedy this situation and hopefully use the head [EDIT]