blob: ef12c65436491c73d689a4d7f1bfeaaf22587f18 [file] [log] [blame]
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/www-client/seamonkey/seamonkey-1.1.18.ebuild,v 1.8 2009/10/03 16:11:25 josejx Exp $
WANT_AUTOCONF="2.1"
inherit flag-o-matic toolchain-funcs eutils mozcoreconf mozconfig-2 mozilla-launcher makeedit multilib autotools
PATCH="${P}-patches-0.1"
EMVER="0.96.0"
DESCRIPTION="Mozilla Application Suite - web browser, email, HTML editor, IRC"
HOMEPAGE="http://www.seamonkey-project.org/"
SRC_URI="http://releases.mozilla.org/pub/mozilla.org/${PN}/releases/${PV}/${P}.source.tar.bz2
mirror://gentoo/${PATCH}.tar.bz2
crypt? ( !moznomail? ( http://www.mozilla-enigmail.org/download/source/enigmail-${EMVER}.tar.gz ) )"
KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd"
SLOT="0"
LICENSE="|| ( MPL-1.1 GPL-2 LGPL-2.1 )"
IUSE="java ldap mozdevelop moznocompose moznoirc moznomail moznoroaming postgres crypt xforms"
RDEPEND="java? ( virtual/jre )
>=www-client/mozilla-launcher-1.56
>=dev-libs/nss-3.11.5
>=dev-libs/nspr-4.6.5-r1
crypt? ( !moznomail? ( >=app-crypt/gnupg-1.4 ) )"
DEPEND="${RDEPEND}
java? ( >=dev-java/java-config-0.2.0 )
dev-lang/perl
postgres? ( >=virtual/postgresql-server-7.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=suite
export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1
pkg_setup() {
if ! built_with_use x11-libs/cairo X; then
eerror "Cairo is not built with X useflag."
eerror "Please add 'X' to your USE flags, and re-emerge cairo."
die "Cairo needs X"
fi
if ! built_with_use --missing true x11-libs/pango X; then
eerror "Pango is not built with X useflag."
eerror "Please add 'X' to your USE flags, and re-emerge pango."
die "Pango needs X"
fi
use moznopango && warn_mozilla_launcher_stub
}
src_unpack() {
unpack ${P}.source.tar.bz2 ${PATCH}.tar.bz2
# Apply our patches
cd "${S}" || die "cd failed"
EPATCH_SUFFIX="patch" \
EPATCH_FORCE="yes" \
epatch "${WORKDIR}"/patch
# Fix crash without -fno-strict-aliasing, bug 265642
epatch "${FILESDIR}/${PN}-1.1.17-fix-fno-strict-aliasing.patch"
# Unpack the enigmail plugin
if use crypt && ! use moznomail; then
cd "${S}"/mailnews/extensions || die
unpack enigmail-${EMVER}.tar.gz
cd "${S}"/mailnews/extensions/enigmail || die "cd failed"
makemake2
fi
# Fix scripts that call for /usr/local/bin/perl #51916
ebegin "Patching smime to call perl from /usr/bin"
sed -i -e '1s,usr/local/bin,usr/bin,' "${S}"/security/nss/cmd/smimetools/smime
eend $? || die "sed failed"
cd "${S}"
eautoreconf
}
src_compile() {
declare MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
####################################
#
# mozconfig, CFLAGS and CXXFLAGS setup
#
####################################
mozconfig_init
mozconfig_config
mozconfig_annotate 'gentoo' --enable-canvas
mozconfig_annotate 'gentoo' --with-system-nspr
mozconfig_annotate 'gentoo' --with-system-nss
# Bug 60668: Galeon doesn't build without oji enabled, so enable it
# regardless of java setting.
mozconfig_annotate 'galeon' --enable-oji --enable-mathml
# Other moz-specific settings
mozconfig_use_enable mozdevelop jsd
mozconfig_use_enable mozdevelop xpctools
mozconfig_use_extension mozdevelop venkman
if use moznoirc; then
mozconfig_annotate '+moznocompose +moznoirc' --enable-extensions=-irc
fi
if use moznoroaming ; then
mozconfig_annotate '+moznoroaming' --enable-extensions=-sroaming
fi
if use postgres ; then
mozconfig_annotate '+postgres' --enable-extensions=sql
export MOZ_ENABLE_PGSQL=1
export MOZ_PGSQL_INCLUDES=/usr/include
export MOZ_PGSQL_LIBS=/usr/$(get_libdir)
fi
mozconfig_use_enable ldap
mozconfig_use_enable ldap ldap-experimental
mozconfig_annotate '' --with-default-mozilla-five-home=${MOZILLA_FIVE_HOME}
mozconfig_annotate '' --with-user-appdir=.mozilla
if use moznomail; then
mozconfig_annotate "+moznomail" --disable-mailnews
fi
if use moznocompose; then
if use moznoirc && use moznomail; then
mozconfig_annotate "+moznocompose" --disable-composer
fi
fi
if use xforms; then
mozconfig_annotate "+xforms" --enable-extensions=xforms,schema-validation
fi
# Finalize and report settings
mozconfig_final
if [[ $(gcc-major-version) -lt 4 ]]; then
append-cxxflags -fno-stack-protector
fi
####################################
#
# 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.
sed -i -e \
's|-DARON_WAS_HERE|-DGENTOO_NSPLUGINS_DIR=\\\"/usr/'"$(get_libdir)"'/nsplugins\\\" -DGENTOO_NSBROWSER_PLUGINS_DIR=\\\"/usr/'"$(get_libdir)"'/nsbrowser/plugins\\\"|' \
"${S}"/config/autoconf.mk \
"${S}"/xpfe/global/buildconfig.html
# This removes extraneous CFLAGS from the Makefiles to reduce RAM
# requirements while compiling
edit_makefiles
emake || die
####################################
#
# Build Enigmail extension
#
####################################
if use crypt && ! use moznomail; then
emake -C "${S}"/mailnews/extensions/enigmail || die "make enigmail failed"
fi
}
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}"/ || die "cp failed"
# Create directory structure to support portage-installed extensions.
# See update_chrome() in mozilla-launcher
keepdir ${MOZILLA_FIVE_HOME}/chrome.d
keepdir ${MOZILLA_FIVE_HOME}/extensions.d
cp "${D}"${MOZILLA_FIVE_HOME}/chrome/installed-chrome.txt \
"${D}"${MOZILLA_FIVE_HOME}/chrome.d/0_base-chrome.txt
# Create /usr/bin/seamonkey
install_mozilla_launcher_stub seamonkey ${MOZILLA_FIVE_HOME}
# Install icon and .desktop for menu entry
doicon "${FILESDIR}"/icon/${PN}.png
domenu "${FILESDIR}"/icon/${PN}.desktop
# Fix icons to look the same everywhere
insinto ${MOZILLA_FIVE_HOME}/icons
doins "${S}"/widget/src/gtk/mozicon16.xpm
doins "${S}"/widget/src/gtk/mozicon50.xpm
####################################
#
# Install files necessary for applications to build against seamonkey
#
####################################
einfo "Installing includes and idl files..."
cp -LfR "${S}"/dist/include "${D}"/"${MOZILLA_FIVE_HOME}" || die "cp failed"
cp -LfR "${S}"/dist/idl "${D}"/"${MOZILLA_FIVE_HOME}" || die "cp failed"
# Fix mozilla-config and install it
exeinto ${MOZILLA_FIVE_HOME}
doexe "${S}"/build/unix/${PN}-config
# Install pkgconfig files
insinto /usr/"$(get_libdir)"/pkgconfig
doins "${S}"/build/unix/*.pc
# Install env.d snippet, which isn't necessary for running mozilla, but
# might be necessary for programs linked against firefox
doenvd "${FILESDIR}"/10${PN}
dosed "s|/usr/lib|/usr/$(get_libdir)|" /etc/env.d/10${PN}
# Install rebuild script since mozilla-bin doesn't support registration yet
exeinto ${MOZILLA_FIVE_HOME}
doexe "${FILESDIR}"/${PN}-rebuild-databases.pl
dosed -e 's|/lib/|/'"$(get_libdir)"'/|g' \
${MOZILLA_FIVE_HOME}/${PN}-rebuild-databases.pl
# Install docs
dodoc "${S}"/{LEGAL,LICENSE}
# Update Google search plugin to use UTF8 charset ...
insinto ${MOZILLA_FIVE_HOME}/searchplugins
doins "${FILESDIR}"/google.src
}
pkg_preinst() {
declare MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
# Remove entire installed instance to solve various problems,
# for example see bug 27719
rm -rf "${ROOT}"${MOZILLA_FIVE_HOME}
}
pkg_postinst() {
declare MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
# Update the component registry
MOZILLA_LIBDIR=${ROOT}${MOZILLA_FIVE_HOME} MOZILLA_LAUNCHER=${PN} \
/usr/libexec/mozilla-launcher -register
# This should be called in the postinst and postrm of all the
# mozilla, mozilla-bin, firefox, firefox-bin, thunderbird and
# thunderbird-bin ebuilds.
update_mozilla_launcher_symlinks
}
pkg_postrm() {
declare MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
# Update the component registry
if [[ -x ${MOZILLA_FIVE_HOME}/${PN}-bin ]]; then
MOZILLA_LIBDIR=${ROOT}${MOZILLA_FIVE_HOME} MOZILLA_LAUNCHER=${PN} \
/usr/libexec/mozilla-launcher -register
fi
update_mozilla_launcher_symlinks
}