# 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 MOZ_FREETYPE2="no" # Need to disable for newer .. remove here and in mozconfig # when older is removed from tree. MOZ_PANGO="yes" # Need to enable for newer .. remove here and in mozconfig # when older is removed from tree. inherit flag-o-matic toolchain-funcs eutils mozcoreconf mozconfig-2 mozilla-launcher makeedit multilib # handle _rc versions MY_PV=${PV/_alpha/a} # handle alpha MY_PV=${MY_PV/_beta/b} # handle beta MY_PV=${MY_PV/_rc/rc} # handle rc DESCRIPTION="Mozilla Application Suite - web browser, email, HTML editor, IRC" HOMEPAGE="http://www.mozilla.org" SRC_URI="http://ftp.mozilla.org/pub/mozilla.org/${PN}/releases/${MY_PV}/${PN}-${MY_PV}.source.tar.bz2 http://dev.gentoo.org/~agriffis/dist/mozilla-1.7.10-nsplugins-v2.patch" KEYWORDS="~x86 ~amd64" SLOT="0" LICENSE="MPL-1.1 NPL-1.1" IUSE="java ldap mozcalendar mozdevelop moznocompose moznoirc moznomail moznoroaming postgres" RDEPEND="java? ( virtual/jre ) =www-client/mozilla-launcher-1.45-r1 >=dev-libs/nss-3.10 >=dev-libs/nspr-4.6.1" DEPEND="${RDEPEND} ~sys-devel/autoconf-2.13 java? ( >=dev-java/java-config-0.2.0 ) dev-lang/perl postgres? ( >=dev-db/postgresql-7.2.0 ) !www-client/mozilla" S=${WORKDIR}/mozilla pkg_setup() { if ! use moznoirc && use moznocompose; then ewarn "" ewarn "It looks like you want to have Chatzilla but don't want to have" ewarn "Composer. This cannot be done, because Chatzilla does not work" ewarn "without Composer. Composer will be build." ewarn "" ewarn "Continuing in 10 seconds.." ewarn "" sleep 10 fi if use mozcalendar && use moznomail; then ewarn "" ewarn "It looks like you want to have Calendar but don't want to have" ewarn "Mail. This cannot be done, because Calendar does not work" ewarn "without Mail. Mail will be build." ewarn "" ewarn "Continuing in 10 seconds.." ewarn "" sleep 10 fi if ! use moznomail && use moznocompose; then ewarn "" ewarn "It looks like you want to have Mail but don't want to have" ewarn "Composer. This cannot be done, because Mail does not work" ewarn "without Composer. Composer will be build." ewarn "" ewarn "Continuing in 10 seconds.." ewarn "" sleep 10 fi } src_unpack() { unpack ${PN}-${MY_PV}.source.tar.bz2 cd ${S} || die # 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" # Fix a compilation issue using the 32-bit userland with 64-bit kernel on # PowerPC, because with that configuration, mozilla detects a ppc64 system. # -- hansmi, 2005-10-02 if use ppc && [[ "${PROFILE_ARCH}" == ppc64 ]]; then sed -i -e "s#OS_TEST=\`uname -m\`\$#OS_TEST=${ARCH}#" \ ${S}/configure.in sed -i -e "s#OS_TEST :=.*uname -m.*\$#OS_TEST:=${ARCH}#" \ ${S}/security/coreconf/arch.mk fi epatch ${FILESDIR}/002_firefox-1.5-visibility-check.patch epatch ${FILESDIR}/003_firefox-1.5-visibility-fix.patch epatch ${FILESDIR}/seamonkey-gentoo-pkgconfig.patch epatch ${FILESDIR}/021_firefox-1.5-system-nss.patch epatch ${FILESDIR}/022_nss-with-system-nspr.patch epatch ${FILESDIR}/firefox-nopangoxft.patch epatch ${FILESDIR}/firefox-cairo-canvas.patch epatch ${FILESDIR}/mozilla-rpath-1.patch epatch ${DISTDIR}/mozilla-1.7.10-nsplugins-v2.patch # Needed by some of the patches WANT_AUTOCONF=2.1 autoconf || die "WANT_AUTOCONF failed" } src_compile() { declare MOZILLA_FIVE_HOME=/usr/$(get_libdir)/${PN} #################################### # # mozconfig, CFLAGS and CXXFLAGS setup # #################################### mozconfig_init mozconfig_config # Hack for "relocation R_X86_64_PC32 against 'memcpy@@GLIBC_2.2.5' can not be used" with GCC >=4.0 and GCC 3.4.5 #if [[ $ARCH == amd64 ]]; then # if [[ $(gcc-major-version) -eq 4 ]]; then # echo "ac_cv_visibility_pragma=no" >> .mozconfig # fi # if [[ $(gcc-major-version) -eq 3 && $(gcc-minor-version) -eq 4 ]]; then # echo "ac_cv_visibility_pragma=no" >> .mozconfig # fi #fi 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 mozcalendar calendar 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 && ! use mozcalendar; then mozconfig_annotate "+moznomail -mozcalendar" --disable-mailnews fi if use moznocompose && ! use mozcalendar; then if use moznoirc && use moznomail; then mozconfig_annotate "+moznocompose" --disable-composer fi 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. 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}/nsprpub/config/autoconf.mk \ ${S}/xpfe/global/buildconfig.html # Fixup the RPATH sed -i -e \ 's|#RPATH_FIXER|'"${MOZILLA_FIVE_HOME}"'|' \ ${S}/config/rules.mk \ ${S}/nsprpub/config/rules.mk \ ${S}/security/coreconf/rules.mk \ ${S}/security/coreconf/rules.mk # 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} # 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/mozilla install_mozilla_launcher_stub seamonkey ${MOZILLA_FIVE_HOME} # Install icon and .desktop for menu entry insinto /usr/share/pixmaps doins ${FILESDIR}/icon/${PN}.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/${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 mozilla # #################################### 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 cp -LfR idl/* ${D}${MOZILLA_FIVE_HOME}/idl # Fix mozilla-config and install it exeinto ${MOZILLA_FIVE_HOME} doexe ${S}/build/unix/${PN}-config # Fix pkgconfig files and install them insinto /usr/$(get_libdir)/pkgconfig for x in ${S}/build/unix/*.pc; do doins ${x} done # Install env.d snippet, which isn't necessary for running mozilla, but # might be necessary for programs linked against firefox insinto /etc/env.d doins ${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 }