diff options
author | Seemant Kulleen <seemant@gentoo.org> | 2005-03-18 19:47:25 +0000 |
---|---|---|
committer | Seemant Kulleen <seemant@gentoo.org> | 2005-03-18 19:47:25 +0000 |
commit | 3f4b97e18f0e38641647864f7b5db521d134b02a (patch) | |
tree | 8a48db2378695a4c9a6eb2143018121f188534c2 /www-client | |
parent | changelog header fix (diff) | |
download | gentoo-2-3f4b97e18f0e38641647864f7b5db521d134b02a.tar.gz gentoo-2-3f4b97e18f0e38641647864f7b5db521d134b02a.tar.bz2 gentoo-2-3f4b97e18f0e38641647864f7b5db521d134b02a.zip |
Moved from net-www/mozilla-firefox to www-client/mozilla-firefox.
Diffstat (limited to 'www-client')
33 files changed, 4774 insertions, 0 deletions
diff --git a/www-client/mozilla-firefox/ChangeLog b/www-client/mozilla-firefox/ChangeLog new file mode 100644 index 000000000000..354b3be866f7 --- /dev/null +++ b/www-client/mozilla-firefox/ChangeLog @@ -0,0 +1,460 @@ +# ChangeLog for net-www/mozilla-firefox +# Copyright 2000-2005 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/www-client/mozilla-firefox/ChangeLog,v 1.1 2005/03/18 19:47:25 seemant Exp $ + +*mozilla-firefox-1.0.1 (18 Mar 2005) +*mozilla-firefox-1.0-r3 (18 Mar 2005) +*mozilla-firefox-1.0_rc2 (18 Mar 2005) +*mozilla-firefox-1.0-r2 (18 Mar 2005) +*mozilla-firefox-1.0 (18 Mar 2005) +*mozilla-firefox-1.0_rc1 (18 Mar 2005) +*mozilla-firefox-1.0_pre-r2 (18 Mar 2005) +*mozilla-firefox-0.9.3 (18 Mar 2005) + + 18 Mar 2005; Seemant Kulleen <seemant@gentoo.org> + +files/svg-cairo-0.3.0-fix.patch, +files/firefox-0.8-gcc-3.4.patch, + +files/firefox-0.9-init.tar.bz2, + +files/firefox-0.9-nsFormHistory-crash-fix.patch, +files/10MozillaFirefox, + +files/mozilla-firefox-1.0-kp_separator.patch, + +files/mozilla-1.3-alpha-stubs.patch, +files/firefox, + +files/icon/firefox-icon.png, +files/icon/mozillafirefox.desktop, + +files/mozilla-firebird-amd64.patch, + +files/mozilla-firefox-1.0-4ft2.patch, + +files/mozilla-firefox-mousebuttons.patch, +files/mozilla-hppa.patch, + +metadata.xml, +mozilla-firefox-0.9.3.ebuild, + +mozilla-firefox-1.0_pre-r2.ebuild, +mozilla-firefox-1.0_rc1.ebuild, + +mozilla-firefox-1.0.ebuild, +mozilla-firefox-1.0-r2.ebuild, + +mozilla-firefox-1.0_rc2.ebuild, +mozilla-firefox-1.0-r3.ebuild, + +mozilla-firefox-1.0.1.ebuild: + Moved from net-www/mozilla-firefox to www-client/mozilla-firefox. + + 16 Mar 2005; Jeremy Huddleston <eradicator@gentoo.org> + mozilla-firefox-1.0.1.ebuild: + Use proper toolchain commands. + + 02 Mar 2005; Guy Martin <gmsoft@gentoo.org> mozilla-firefox-1.0.1.ebuild: + Stable on hppa. + + 28 Feb 2005; Michael Hanselmann <hansmi@gentoo.org> + mozilla-firefox-1.0.1.ebuild: + Stable on ppc. + + 28 Feb 2005; Gustavo Zacarias <gustavoz@gentoo.org> + mozilla-firefox-1.0.1.ebuild: + Stable on sparc wrt #83267 + + 27 Feb 2005; Simon Stelling <blubb@gentoo.org> + mozilla-firefox-1.0.1.ebuild: + stable on amd64 wrt bug #83267 + + 27 Feb 2005; Brad Laue <brad@gentoo.org> mozilla-firefox-1.0.1.ebuild: + Stable on x86. See bug #83484. + + 26 Feb 2005; Jeremy Huddleston <eradicator@gentoo.org> + mozilla-firefox-1.0.1.ebuild: + Multilib fixes. + +*mozilla-firefox-1.0.1 (26 Feb 2005) + + 26 Feb 2005; Brad Laue <brad@gentoo.org> +files/svg-cairo-0.3.0-fix.patch, + +mozilla-firefox-1.0.1.ebuild: + Bump to 1.0.1, which features stability and security enhancements (and whiter, + brighter web pages!) + + Also, fix compilation of SVG support with cairo 0.3.0. + + 19 Feb 2005; Heinrich Wendel <lanius@gentoo.org> + mozilla-firefox-1.0-r3.ebuild: + stable on amd64 + + 17 Feb 2005; Michael Hanselmann <hansmi@gentoo.org> + mozilla-firefox-1.0-r3.ebuild: + Stable on ppc. + + 02 Jan 2005; Guy Martin <gmsoft@gentoo.org> mozilla-firefox-1.0-r3.ebuild: + Stable on hppa. YAY ! + + 29 Dec 2004; <SeJo@gentoo.org> : + stable on ppc glsa: 68976 + + 29 Dec 2004; Joseph Jezak <josejx@gentoo.org> mozilla-firefox-1.0.ebuild: + Tested and marked ppc stable for bug #68976. + + 22 Dec 2004; Guy Martin <gmsoft@gentoo.org> mozilla-firefox-1.0-r3.ebuild: + Moved filtering of C[XX]FLAGS for hppa in mozilla.eclass. + + 22 Dec 2004; Guy Martin <gmsoft@gentoo.org> +files/mozilla-hppa.patch, + mozilla-firefox-1.0-r3.ebuild: + Added hppa support. + + 21 Dec 2004; Bryan Østergaard <kloeri@gentoo.org> + mozilla-firefox-1.0.ebuild: + Stable on alpha, bug 68976. + + 04 Dec 2004; Tom Martin <slarti@gentoo.org> mozilla-firefox-1.0.ebuild: + Stable on amd64. + + 21 Nov 2004; Jason Wever <weeve@gentoo.org> mozilla-firefox-1.0.ebuild: + Stable on sparc. + + 18 Nov 2004; Aron Griffis <agriffis@gentoo.org> + mozilla-firefox-1.0-r3.ebuild: + Require recent xorg-x11 which provides xrender.pc #71504 + + 17 Nov 2004; Brad Laue <brad@gentoo.org> mozilla-firefox-1.0.ebuild: + 1.0 stable on x86. Revisions based on a new build mechanism to follow shortly. + + 16 Nov 2004; Aron Griffis <agriffis@gentoo.org> + mozilla-firefox-1.0-r3.ebuild: + Enable svg via cairo, #59827. Remove some stuff from RDEPEND which is + repeated in mozconfig.eclass. Remove IUSE which is present in + mozconfig.eclass *and* which isn't used in this ebuild directly + + 16 Nov 2004; Aron Griffis <agriffis@gentoo.org> + mozilla-firefox-1.0-r2.ebuild, mozilla-firefox-1.0-r3.ebuild: + Remove IUSE=gtk2 because we always depend on gtk2 now + + 15 Nov 2004; Aron Griffis <agriffis@gentoo.org> + +files/mozilla-firefox-1.0-kp_separator.patch, + mozilla-firefox-1.0-r3.ebuild: + Add patch to correct KP_SEPARATOR on European keyboards #68683 + +*mozilla-firefox-1.0-r3 (15 Nov 2004) + + 15 Nov 2004; Aron Griffis <agriffis@gentoo.org> + +files/mozilla-firefox-1.0-4ft2.patch, +mozilla-firefox-1.0-r3.ebuild: + Add patch for freetype-2.1.8+ binary compatibility #59849 + + 14 Nov 2004; Aron Griffis <agriffis@gentoo.org> + mozilla-firefox-1.0-r2.ebuild: + Set HOME=~root when running regxpcom/regchrome in case this is being emerged + via sudo. Otherwise the commands will create ~/.mozilla owned by root and 700 + perms, which makes subsequent execution of firefox by user impossible. #67031 + +*mozilla-firefox-1.0-r2 (13 Nov 2004) + + 13 Nov 2004; Aron Griffis <agriffis@gentoo.org> + -mozilla-firefox-1.0-r1.ebuild, +mozilla-firefox-1.0-r2.ebuild: + Use mozconfig_final to resolve --enable-extensions to a single option + +*mozilla-firefox-1.0-r1 (13 Nov 2004) + + 13 Nov 2004; Aron Griffis <agriffis@gentoo.org> +mozilla-firefox-1.0-r1.ebuild: + use mozconfig.eclass instead of mozilla.eclass for building + +*mozilla-firefox-1.0 (09 Nov 2004) + + 09 Nov 2004; Brad Laue <brad@gentoo.org> +mozilla-firefox-1.0.ebuild: + At long last, presenting Mozilla Firefox 1.0. + +*mozilla-firefox-1.0_rc2 (05 Nov 2004) + + 05 Nov 2004; <agriffis@gentoo.org> +mozilla-firefox-1.0_rc2.ebuild: + Bump to rc2 #62584 + +*mozilla-firefox-1.0_rc1 (28 Oct 2004) + + 28 Oct 2004; Brad Laue <brad@gentoo.org> +mozilla-firefox-1.0_rc1.ebuild: + New version, 1.0RC1. + + 03 Oct 2004; Sven Wegener <swegener@gentoo.org> : + Removed stray digest. + + 03 Oct 2004; <SeJo@gentoo.org> mozilla-firefox-1.0_pre-r2.ebuild: + stable on ppc gsla: 66084 + + 03 Oct 2004; Jason Wever <weeve@gentoo.org> + mozilla-firefox-1.0_pre-r2.ebuild: + Stable on sparc wrt security bug #66084. + + 02 Oct 2004; Travis Tilley <lv@gentoo.org> + mozilla-firefox-1.0_pre-r2.ebuild: + stable on amd64, added hardened gcc 'fix' + +*mozilla-firefox-1.0_pre-r2 (02 Oct 2004) + + 02 Oct 2004; Brad Laue <brad@gentoo.org> + +mozilla-firefox-1.0_pre-r2.ebuild: + Version bump. Moving to x86 stable due to security reasons. + +*mozilla-firefox-1.0_pre-r1 (28 Sep 2004) + + 28 Sep 2004; Aron Griffis <agriffis@gentoo.org> + +mozilla-firefox-1.0_pre-r1.ebuild: + Bump revision to carry out mozilla.eclass change: don't use typeaheadfind on + 1.0PR #64196. Also depend on mozilla-launcher-1.20 which appropriately deletes + compreg.dat when firefox is updated + + 19 Sep 2004; <kloeri@gentoo.org> mozilla-firefox-1.0_pre.ebuild: + Stable on alpha, bug 63996. + + 17 Sep 2004; Olivier Crete <tester@gentoo.org> + mozilla-firefox-1.0_pre.ebuild: + Marking stable on x86 per security bug #63996 + + 17 Sep 2004; Travis Tilley <lv@gentoo.org> mozilla-firefox-1.0_pre.ebuild: + stable on amd64 + + 16 Sep 2004; Gustavo Zacarias <gustavoz@gentoo.org> + mozilla-firefox-1.0_pre.ebuild: + Stable on sparc wrt #63996 + + 16 Sep 2004; <SeJo@gentoo.org> mozilla-firefox-1.0_pre.ebuild: + stable ppc bug: 63996 + +*mozilla-firefox-1.0_pre (15 Sep 2004) + + 15 Sep 2004; <agriffis@gentoo.org> +mozilla-firefox-1.0_pre.ebuild: + Bump to 1.0PR for security bug 63996 + + 15 Aug 2004; <agriffis@gentoo.org> mozilla-firefox-0.8-r2.ebuild, + mozilla-firefox-0.8-r3.ebuild, mozilla-firefox-0.9-r1.ebuild, + mozilla-firefox-0.9.1.ebuild, mozilla-firefox-0.9.3-r1.ebuild, + mozilla-firefox-0.9.3.ebuild: + Fix bug 60285: the negated conditions in DEPEND were expressed incorrectly, + for example !moznoxft is wrong, it should be !moznoxft? + + 13 Aug 2004; <kloeri@gentoo.org> mozilla-firefox-0.9.3.ebuild: + Stable on alpha, bug 59419. + +*mozilla-firefox-0.9.3-r1 (08 Aug 2004) + + 08 Aug 2004; Aron Griffis <agriffis@gentoo.org> + +mozilla-firefox-0.9.3-r1.ebuild: + Switch to using mozilla.eclass for configuration + + 08 Aug 2004; <agriffis@gentoo.org> mozilla-firefox-0.9.3.ebuild: + stable on ia64 #59419 + + 05 Aug 2004; Gustavo Zacarias <gustavoz@gentoo.org> + mozilla-firefox-0.9.3.ebuild: + Stable on sparc wrt #59419 + + 05 Aug 2004; Aron Griffis <agriffis@gentoo.org> + mozilla-firefox-0.9.3.ebuild: + stable on amd64 per Lv + +*mozilla-firefox-0.9.3 (04 Aug 2004) + + 04 Aug 2004; Aron Griffis <agriffis@gentoo.org> + +mozilla-firefox-0.9.3.ebuild: + Update to 0.9.3 for security meta-bug 59419. + + 28 Jul 2004; <agriffis@gentoo.org> mozilla-firefox-0.9.1.ebuild: + stable on alpha, ia64 and x86 + + 28 Jul 2004; Travis Tilley <lv@gentoo.org> + +files/firefox-0.9-nsFormHistory-crash-fix.patch, + mozilla-firefox-0.9.1.ebuild: + added a patch that fixes a 64bit specific autocomplete crash + + 19 Jul 2004; Travis Tilley <lv@gentoo.org> mozilla-firefox-0.9.1.ebuild: + stable on amd64 + + 19 Jul 2004; Brad Laue <brad@gentoo.org> mozilla-firefox-0.9.1.ebuild: + Place icon files in /usr/share/applications for all desktop environments, not + just gnome. + + 05 Jul 2004; Lars Weiler <pylon@gentoo.org> mozilla-firefox-0.9.1.ebuild: + Stable on ppc. + + 03 Jul 2004; Jason Wever <weeve@gentoo.org> mozilla-firefox-0.8-r3.ebuild: + Stable on sparc. + + 01 Jul 2004; Jeremy Huddleston <eradicator@gentoo.org> + mozilla-firefox-0.8-r1.ebuild, mozilla-firefox-0.8-r2.ebuild, + mozilla-firefox-0.8-r3.ebuild, mozilla-firefox-0.8.ebuild, + mozilla-firefox-0.9-r1.ebuild, mozilla-firefox-0.9.1.ebuild: + virtual/glibc -> virtual/libc + +*mozilla-firefox-0.9.1 (29 Jun 2004) + + 29 Jun 2004; Aron Griffis <agriffis@gentoo.org> + mozilla-firefox-0.8-r3.ebuild, +mozilla-firefox-0.9.1.ebuild: + Version bump to 0.9.1. The 0.9 init files seem to work so use them directly. + Mark 0.8-r3 stable on x86, alpha and ia64. + + 18 Jun 2004; Aron Griffis <agriffis@gentoo.org> + +files/icon/mozillafirefox.desktop, mozilla-firefox-0.9-r1.ebuild: + - Fix bug 54179: Install mozillafirefox.desktop to + /usr/share/applications instead of /usr/share/gnome/apps/Internet. + This also necessitated some changes to the .desktop file which I + based on epiphany.desktop + - Fix bug 54295: Move init file unpacking from pkg_postinst to + src_install + - Get rid of the stupid perl dependency; it was only being used to + edit the .desktop file, and sed would have sufficed in any case + + 17 Jun 2004; Aron Griffis <agriffis@gentoo.org> + mozilla-firefox-0.9-r1.ebuild: + Fix bug 54166: Remove amd64 patch which no longer applies + + 16 Jun 2004; Aron Griffis <agriffis@gentoo.org> + mozilla-firefox-0.9-r1.ebuild: + Check both possible URLs for mozilla-firefox-0.9 since mozilla.org seems to be + doing some rearranging + + 16 Jun 2004; Aron Griffis <agriffis@gentoo.org> -mozilla-firefox-0.9.ebuild: + Remove 0.9 version in favor of 0.9-r1 to reduce confusion + +*mozilla-firefox-0.9-r1 (16 Jun 2004) + + 16 Jun 2004; Aron Griffis <agriffis@gentoo.org> + +files/firefox-0.9-init.tar.bz2, +mozilla-firefox-0.9-r1.ebuild: + Add initialization files for firefox-0.9 to defeat the need to run as root the + first time. + +*mozilla-firefox-0.9 (16 Jun 2004) + + 16 Jun 2004; Brad Laue <brad@gentoo.org> +mozilla-firefox-0.9.ebuild: + Add firefox 0.9, masked for testing. + + 16 Jun 2004; Aron Griffis <agriffis@gentoo.org> mozilla-firefox-0.8.ebuild: + Fix use invocation + + 06 Jun 2004; Aron Griffis <agriffis@gentoo.org> + mozilla-firefox-0.8-r3.ebuild: + Fix typo: pkg_postun -> pkg_postrm + + 01 Jun 2004; Travis Tilley <lv@gentoo.org> mozilla-firefox-0.8-r3.ebuild: + stable on amd64! YES! side-by-side installation with mozilla-firefox-bin is + just what we needed :) + + 27 May 2004; Aron Griffis <agriffis@gentoo.org> + mozilla-firefox-0.8-r3.ebuild: + Allow installation alongside mozilla-firefox-bin now that they can co-exist + and are both mozilla-launcher-powered. Update symlinks in postinst and postun + + 07 May 2004; Aron Griffis <agriffis@gentoo.org> + mozilla-firefox-0.8-r2.ebuild, mozilla-firefox-0.8-r3.ebuild: + Depend on mozilla-launcher-1.7-r1 which installs in /usr/libexec + + 26 Apr 2004; Aron Griffis <agriffis@gentoo.org> + mozilla-firefox-0.8-r3.ebuild: + Fix bug 21667 (replacing -march=pentium4 in mozilla ebuilds outdated) by + checking for gcc >= 3.2.3 + + 26 Apr 2004; Aron Griffis <agriffis@gentoo.org> + +files/firefox-0.8-gcc-3.4.patch, mozilla-firefox-0.8-r3.ebuild: + Fix bug 47870 (mozilla-firefox-0.8 fails to compile with gcc 3.4) with + one-line patch + + 26 Apr 2004; Aron Griffis <agriffis@gentoo.org> + +files/mozilla-firefox-mousebuttons.patch, mozilla-firefox-0.8-r3.ebuild: + Fix bug 44646 (mozilla-firefox ebuild with native forward/back mouse button + support) with patch from Jason Rhinelander + + 26 Apr 2004; Aron Griffis <agriffis@gentoo.org> + mozilla-firefox-0.8-r3.ebuild: + - Filter -fno-default-inline for bug 42488 (mozilla-firefox fails to + link due to incompatible flag) + - Filter -fstack-protector to fix bug 45671 + +*mozilla-firefox-0.8-r3 (26 Apr 2004) + + 26 Apr 2004; Aron Griffis <agriffis@gentoo.org> + +mozilla-firefox-0.8-r3.ebuild: + Remove entire installed instance from /usr/lib/MozillaFirefox in pkg_preinst + prior to merging new version. Hopefully this will solve many problems that + people have had, and hopefully it won't break anything. Fixes bug + 27719. Bumping the rev and marking ~arch so that testers will try + this before it hits the general population + + 16 Apr 2004; Jason Wever <weeve@gentoo.org> mozilla-firefox-0.8-r2.ebuild: + Stable on sparc. + + 14 Apr 2004; Aron Griffis <agriffis@gentoo.org> + mozilla-firefox-0.8-r2.ebuild: + Stable on x86 (first stable mozilla ebuild to use mozilla-launcher) + + 28 Mar 2004; Aron Griffis <agriffis@gentoo.org> + mozilla-firefox-0.8-r2.ebuild: + Add missing dodir before dosym for bug 46049 + +*mozilla-firefox-0.8-r2 (28 Mar 2004) + + 28 Mar 2004; Aron Griffis <agriffis@gentoo.org> + mozilla-firefox-0.8-r2.ebuild: + Fix bug 33159 by making virtual/xft dependant on !moznoxft. Add dependency on + mozilla-launcher + + 25 Mar 2004; Michael Sterrett <mr_bones_@gentoo.org> + mozilla-firefox-0.8.ebuild: + don't use deprecated ? : use syntax + + 19 Mar 2004; Aron Griffis <agriffis@gentoo.org> + mozilla-firefox-0.8-r1.ebuild: + stable on alpha and ia64 + + 19 Mar 2004; Aron Griffis <agriffis@gentoo.org> + mozilla-firefox-0.8-r1.ebuild: + Fix bug 38100 by using grep -o instead of sed for optimization fixup + + 18 Mar 2004; Aron Griffis <agriffis@gentoo.org> + mozilla-firefox-0.8-r1.ebuild: + Add truetype to IUSE for bug 37069. Honor USE=gtk2 for conditional dependence + on libIDL/ORBit for bug 25567. Also clean up the ebuild: use shorter syntax + for conditionals instead of deprecated [ -n "`use blah`" ]; avoid an + unnecessary sed; use [[ ]] instead of [ ] to avoid quoting issues + + 18 Mar 2004; Aron Griffis <agriffis@gentoo.org> files/firefox: + Fix bug 44140 by fixing relative paths to be absolute. Fix bug 44002 by fixing + a typo in this ChangeLog. Fix bug 43195 by changing the awk program that + parses the display name + + 16 Mar 2004; Brad Laue <brad@gentoo.org> mozilla-firefox-0.8-r1.ebuild: + Properly enable the DOM inspector. + +*mozilla-firefox-0.8-r1 (07 Mar 2004) + + 07 Mar 2004; Brad Laue <brad@gentoo.org> mozilla-firefox-0.8-r1.ebuild: + Add Xinerama support. + + 26 Feb 2004; Aron Griffis <agriffis@gentoo.org> files/firefox: + Add a PATH fix from Bob Bell to be able to find xwininfo + + 25 Feb 2004; Aron Griffis <agriffis@gentoo.org> files/firefox: + Update launcher script to fix bug 25737: The launcher didn't understand + -remote. The script should also work for mozilla now, but that has yet to be + tested/deployed + + 19 Feb 2004; Tavis Ormandy <taviso@gentoo.org> mozilla-firefox-0.8.ebuild: + marking alpha, #41338 + + 19 Feb 2004; Brad Laue <brad@gentoo.org> mozilla-firefox-0.8.ebuild: + Add dependency on pkgconfig, needed by GTK+2 build process. + + 15 Feb 2004; Brad Laue <brad@gentoo.org> files/firefox: + Switch the default new browser type to window, as this matches better with + firefox on other platforms. Tab mode is still available if placed in the + environment variable documented in /usr/bin/firefox + + 14 Feb 2004; Aron Griffis <agriffis@gentoo.org> files/firefox: + Roll fix over from MozillaFirebird script for bug 41074 + + 14 Feb 2004; Brad Laue <brad@gentoo.org> files/icon/firefox-icon.png: + Make the firefox icon have a transparent background. + + 12 Feb 2004; <augustus@gentoo.org> mozilla-firefox-0.8.ebuild: + Made amd64 stable. + + 12 Feb 2004; Brad Laue <brad@gentoo.org> mozilla-firefox-0.8.ebuild, + files/icon/firefox-icon.png: + Use the proper firefox icon in the GNOME menu rather than the Mozilla one. + + 12 Feb 2004; Sven Blumenstein <bazik@gentoo.org> mozilla-firefox-0.8.ebuild: + Here you got a sparc-cookie, Mr. Firefox. + + 12 Feb 2004; Brad Laue <brad@gentoo.org> mozilla-firefox-0.8.ebuild: + Move mozilla-firefox to stable on x86. This is the first step is moving its + predecessor, mozilla-firebird, out of the tree entirely. + + Please test on as many arches as soon as possible! + +*mozilla-firefox-0.8 (10 Feb 2004) + + 10 Feb 2004; Brad Laue <brad@gentoo.org> metadata.xml, + mozilla-firefox-0.8.ebuild, files/10MozillaFirefox, files/firefox, + files/mozilla-1.3-alpha-stubs.patch, files/mozilla-firebird-amd64.patch: + Introducing Mozilla Firefox. + diff --git a/www-client/mozilla-firefox/Manifest b/www-client/mozilla-firefox/Manifest new file mode 100644 index 000000000000..11268b352b50 --- /dev/null +++ b/www-client/mozilla-firefox/Manifest @@ -0,0 +1,42 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + +MD5 267bcf29a9af3497e5680329e4283af8 ChangeLog 16284 +MD5 ce23390351fe8020387d93ee29e09a3d metadata.xml 160 +MD5 10115b07ccec7d839fb47bc4c1b0c766 mozilla-firefox-0.9.3.ebuild 8427 +MD5 fbd1b72252649e14b3aafabc8db937a9 mozilla-firefox-1.0-r2.ebuild 5477 +MD5 e1ecfe24ef891ac78584abe8c4f33df8 mozilla-firefox-1.0-r3.ebuild 5948 +MD5 9913ddf770c16a1ad0b57ff819a51d57 mozilla-firefox-1.0.ebuild 5057 +MD5 5d87198228072a2f1cd5cbc2a8898dad mozilla-firefox-1.0_pre-r2.ebuild 5074 +MD5 fadc5971cef91282ad925ce8e4d68676 mozilla-firefox-1.0_rc1.ebuild 5147 +MD5 c84ccb388040b1fd40ca300d5f41d21d mozilla-firefox-1.0_rc2.ebuild 5066 +MD5 bcf258a6eecac56f3df2c3d71678ab9c mozilla-firefox-1.0.1.ebuild 6298 +MD5 606e82226379fd5ae6cd1d0d1faff7ff files/10MozillaFirefox 31 +MD5 0c7804fd13815f9a0e7a1ef0eab6a871 files/digest-mozilla-firefox-0.9.3 75 +MD5 47c899122e30bc898b5a899ed0e10129 files/digest-mozilla-firefox-1.0 73 +MD5 47c899122e30bc898b5a899ed0e10129 files/digest-mozilla-firefox-1.0-r2 73 +MD5 47c899122e30bc898b5a899ed0e10129 files/digest-mozilla-firefox-1.0-r3 73 +MD5 bef773177860190ef5d6cce7ec70c613 files/digest-mozilla-firefox-1.0_pre-r2 77 +MD5 fa885b490a3c76594784843a1c06ee3a files/digest-mozilla-firefox-1.0_rc1 76 +MD5 e5cc0a5838a73f3fdaf38f4e3c368c26 files/digest-mozilla-firefox-1.0_rc2 76 +MD5 bd50631b47d20becbb5af21b605dfb5d files/firefox 4218 +MD5 3ad7410bd680964096c84eee3fa21abf files/firefox-0.8-gcc-3.4.patch 460 +MD5 48baf2f328e6478812c24e59037ff99c files/firefox-0.9-init.tar.bz2 3322 +MD5 c6308c086c87ed2e1e4f3d136efdd770 files/firefox-0.9-nsFormHistory-crash-fix.patch 1755 +MD5 23d1fbd03cc6dd346a4e4ce8f2d88ebf files/mozilla-1.3-alpha-stubs.patch 4646 +MD5 f0e9adeb0454377ce019e8969e644efb files/mozilla-firebird-amd64.patch 35052 +MD5 b16efe0e4066720b718d67348aeee757 files/mozilla-firefox-1.0-4ft2.patch 22294 +MD5 3961b39c763ff8f98b56098ac0cdbecc files/mozilla-firefox-1.0-kp_separator.patch 444 +MD5 88371b8f812caf799a1ede2b1b07c079 files/mozilla-firefox-mousebuttons.patch 17099 +MD5 5496222980a6faf8261066f43cd4c6a5 files/mozilla-hppa.patch 7785 +MD5 07f1e3ad740ebc825da0bb43e4d9a84e files/digest-mozilla-firefox-1.0.1 75 +MD5 f48be110754a5106f06cd313c22c4337 files/svg-cairo-0.3.0-fix.patch 1063 +MD5 bff260036c5dcca45da3218517fb33d8 files/icon/firefox-icon.png 3979 +MD5 2cdd03eb2752bc01ba07ad837e926f39 files/icon/mozillafirefox.desktop 168 +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.0 (GNU/Linux) + +iD8DBQFCN82bArHZZzCEUG0RAmevAJsEHReVcfqdtMW4uyCjg0CWt+ylqwCdEmUX +WPXQwGbVHuFIjmY1W0lL+NE= +=Bd2z +-----END PGP SIGNATURE----- diff --git a/www-client/mozilla-firefox/files/10MozillaFirefox b/www-client/mozilla-firefox/files/10MozillaFirefox new file mode 100644 index 000000000000..099c99810107 --- /dev/null +++ b/www-client/mozilla-firefox/files/10MozillaFirefox @@ -0,0 +1 @@ +LDPATH=/usr/lib/MozillaFirefox diff --git a/www-client/mozilla-firefox/files/digest-mozilla-firefox-0.9.3 b/www-client/mozilla-firefox/files/digest-mozilla-firefox-0.9.3 new file mode 100644 index 000000000000..a76e9602e97f --- /dev/null +++ b/www-client/mozilla-firefox/files/digest-mozilla-firefox-0.9.3 @@ -0,0 +1 @@ +MD5 641ebf96d2211b3c5527e88389b9687e firefox-0.9.3-source.tar.bz2 33945173 diff --git a/www-client/mozilla-firefox/files/digest-mozilla-firefox-1.0 b/www-client/mozilla-firefox/files/digest-mozilla-firefox-1.0 new file mode 100644 index 000000000000..e6d2584b2eac --- /dev/null +++ b/www-client/mozilla-firefox/files/digest-mozilla-firefox-1.0 @@ -0,0 +1 @@ +MD5 49c16a71f4de014ea471be81e46b1da8 firefox-1.0-source.tar.bz2 32686249 diff --git a/www-client/mozilla-firefox/files/digest-mozilla-firefox-1.0-r2 b/www-client/mozilla-firefox/files/digest-mozilla-firefox-1.0-r2 new file mode 100644 index 000000000000..e6d2584b2eac --- /dev/null +++ b/www-client/mozilla-firefox/files/digest-mozilla-firefox-1.0-r2 @@ -0,0 +1 @@ +MD5 49c16a71f4de014ea471be81e46b1da8 firefox-1.0-source.tar.bz2 32686249 diff --git a/www-client/mozilla-firefox/files/digest-mozilla-firefox-1.0-r3 b/www-client/mozilla-firefox/files/digest-mozilla-firefox-1.0-r3 new file mode 100644 index 000000000000..e6d2584b2eac --- /dev/null +++ b/www-client/mozilla-firefox/files/digest-mozilla-firefox-1.0-r3 @@ -0,0 +1 @@ +MD5 49c16a71f4de014ea471be81e46b1da8 firefox-1.0-source.tar.bz2 32686249 diff --git a/www-client/mozilla-firefox/files/digest-mozilla-firefox-1.0.1 b/www-client/mozilla-firefox/files/digest-mozilla-firefox-1.0.1 new file mode 100644 index 000000000000..d93a4c1b13de --- /dev/null +++ b/www-client/mozilla-firefox/files/digest-mozilla-firefox-1.0.1 @@ -0,0 +1 @@ +MD5 ebaea974fea9460ab7050fff76b41cb1 firefox-1.0.1-source.tar.bz2 32671529 diff --git a/www-client/mozilla-firefox/files/digest-mozilla-firefox-1.0_pre-r2 b/www-client/mozilla-firefox/files/digest-mozilla-firefox-1.0_pre-r2 new file mode 100644 index 000000000000..8484ceb42494 --- /dev/null +++ b/www-client/mozilla-firefox/files/digest-mozilla-firefox-1.0_pre-r2 @@ -0,0 +1 @@ +MD5 ff9eae3b90b8573bf44293ea44bf3c50 firefox-1.0PR.1-source.tar.bz2 32380173 diff --git a/www-client/mozilla-firefox/files/digest-mozilla-firefox-1.0_rc1 b/www-client/mozilla-firefox/files/digest-mozilla-firefox-1.0_rc1 new file mode 100644 index 000000000000..a8e293a143dd --- /dev/null +++ b/www-client/mozilla-firefox/files/digest-mozilla-firefox-1.0_rc1 @@ -0,0 +1 @@ +MD5 7a0411859fc5d5f647e211c24beaf94b firefox-1.0rc1-source.tar.bz2 32706624 diff --git a/www-client/mozilla-firefox/files/digest-mozilla-firefox-1.0_rc2 b/www-client/mozilla-firefox/files/digest-mozilla-firefox-1.0_rc2 new file mode 100644 index 000000000000..b2270531c18c --- /dev/null +++ b/www-client/mozilla-firefox/files/digest-mozilla-firefox-1.0_rc2 @@ -0,0 +1 @@ +MD5 aab6ffe0e57de39b20d1c8ccef057171 firefox-1.0rc2-source.tar.bz2 32659115 diff --git a/www-client/mozilla-firefox/files/firefox b/www-client/mozilla-firefox/files/firefox new file mode 100644 index 000000000000..2994493a4c8d --- /dev/null +++ b/www-client/mozilla-firefox/files/firefox @@ -0,0 +1,141 @@ +#!/bin/bash +# +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/www-client/mozilla-firefox/files/firefox,v 1.1 2005/03/18 19:47:25 seemant Exp $ + +# Set MOZILLA_NEWTYPE to "window" in your environment if you prefer +# new Firefox windows instead of new tabs +newtype=${MOZILLA_NEWTYPE:-"window"} + +# Make sure necessary progs are in the PATH +PATH=/usr/bin:/bin:/usr/X11R6/bin:$PATH + +# Support both firefox and mozilla +case "$0" in + *fox*) + export MOZILLA_FIVE_HOME="/usr/lib/MozillaFirefox" + remote=$MOZILLA_FIVE_HOME/mozilla-xremote-client + mozbin=$MOZILLA_FIVE_HOME/firefox + grepfor=firefox-bin + ;; + + *mozilla*) + export MOZILLA_FIVE_HOME="/usr/lib/mozilla" + remote=$MOZILLA_FIVE_HOME/mozilla-xremote-client + # This is the old mozilla.sh which used to be installed as /usr/bin/mozilla. + # I have no idea what parts of it should be kept/dropped so I'm just calling + # it for now. + mozbin=$MOZILLA_FIVE_HOME/mozilla.sh + grepfor=mozilla-bin + ;; +esac + +# Validate the args and extract the urls +args=() +urls=() +while [[ $# -ne 0 ]] ; do + if [[ $1 == -* ]] ; then + case "${1#-}" in + height|width|CreateProfile|P|UILocale|contentLocale|remote|edit|chrome) + args=("${args[@]}" "$1" "$2") + shift 2 ;; + *) + args=("${args[@]}" "$1") + shift 1 ;; + esac + else + # check for relative path to a file, transform to absolute path + if [[ $1 != *://* && $1 != /* && -e $1 ]]; then + urls=("${urls[@]}" "file://$PWD/$1") + else + urls=("${urls[@]}" $1) + fi + shift + fi +done + +# Try to start in an existing session; check all screens +declare -a screens=( + $(xdpyinfo | awk ' + /^name of display:/ { + disp = substr($NF, 0, match($NF, /\.[^.]*$/)-1) + } + /^number of screens:/ { + for (i = 0; i < $NF; i++) printf("%s.%d\n", disp, i) + }') + ) + +# Attempt to fix bug 39797 by making sure MozillaFirefox is running +# on the DISPLAY prior to calling mozilla-xremote-client. The +# problem here is that mozilla-xremote-client will return a zero +# exit status if it contacts a Thunderbird-0.3 instance, even though +# Thunderbird can't handle the openURL request. :-( +# +# Note: This seems to be fixed with Thunderbird-0.4, which rejects the +# openURL request appropriately. +declare -a candidates=() +for s in $DISPLAY "${screens[@]}"; do + if DISPLAY=$s xwininfo -root -tree | grep -q "$grepfor"; then + candidates=("${candidates[@]}" $s) + fi +done + +# Make sure we'll get at least an empty window/tab +[[ ${#urls[@]} == 0 ]] && urls=('') + +# Handle multiple URLs by looping over the xremote call +for u in "${urls[@]}"; do + + # Try mozilla-xremote-client on each candidate screen. + # Only use mozilla-xremote-client if we have no other args (which + # must be passed to the browser binary). + if [[ ${#candidates[@]} > 0 && ${#args[*]} == 0 ]]; then + for s in "${candidates[@]}"; do + DISPLAY=$s $remote "openURL($u, new-$newtype)" && break + done + retval=$? + else + # simulate mozilla-xremote-client's response when it can't find an instance + retval=2 + fi + + # 2 = No running windows found, so start a new instance + # 3 = Browser is running, but doesn't handle openURL command + # (or it might be unresponsive) + if [[ $retval -eq 2 || $retval -eq 3 ]] ; then + + # Handle case of multiple URLs + if [[ ${#urls[@]} > 1 ]]; then + $mozbin "${args[@]}" "$u" & + if [[ -x /usr/bin/xtoolwait ]]; then + xtoolwait sleep 10 + else + sleep 10 # totally arbitrary without xtoolwait! :-( + fi + candidates=$DISPLAY # next time through, use $remote + args=() # and drop the args + continue + fi + + # Handle case of single URL + $mozbin "${args[@]}" "$u" & + break + + elif [[ $retval -eq 1 ]]; then + echo "Unable to connect to X server" >&2 + elif [[ $retval -ne 0 ]]; then + echo "Unknown error $retval from mozilla-xremote-client" >&2 + fi + +done + +# Will only wait here if firefox was started by this script +if ! wait; then + retval=$? + echo "${mozbin##*/} exited with non-zero status ($?)" >&2 +fi + +exit $retval + +# vim:expandtab sw=2: diff --git a/www-client/mozilla-firefox/files/firefox-0.8-gcc-3.4.patch b/www-client/mozilla-firefox/files/firefox-0.8-gcc-3.4.patch new file mode 100644 index 000000000000..9de10a1fae8c --- /dev/null +++ b/www-client/mozilla-firefox/files/firefox-0.8-gcc-3.4.patch @@ -0,0 +1,11 @@ +--- gfx/public/nsRegion.h.old 2003-03-25 02:57:42.000000000 +0000 ++++ gfx/public/nsRegion.h 2004-04-23 02:25:09.606368256 +0100 +@@ -234,7 +234,7 @@ + void MoveInto (nsRegion& aDestRegion) + { MoveInto (aDestRegion, mRectListHead.next); } + +- nsRegion (const nsRegion& aRegion); // Prevent copying of regions ++ public:nsRegion (const nsRegion& aRegion); // Prevent copying of regions + nsRegion& operator = (const nsRegion& aRegion); + }; + diff --git a/www-client/mozilla-firefox/files/firefox-0.9-init.tar.bz2 b/www-client/mozilla-firefox/files/firefox-0.9-init.tar.bz2 Binary files differnew file mode 100644 index 000000000000..c00209c6881b --- /dev/null +++ b/www-client/mozilla-firefox/files/firefox-0.9-init.tar.bz2 diff --git a/www-client/mozilla-firefox/files/firefox-0.9-nsFormHistory-crash-fix.patch b/www-client/mozilla-firefox/files/firefox-0.9-nsFormHistory-crash-fix.patch new file mode 100644 index 000000000000..afd4e1691689 --- /dev/null +++ b/www-client/mozilla-firefox/files/firefox-0.9-nsFormHistory-crash-fix.patch @@ -0,0 +1,47 @@ +Index: toolkit/components/satchel/src/nsFormHistory.cpp +=================================================================== +RCS file: /cvsroot/mozilla/toolkit/components/satchel/src/nsFormHistory.cpp,v +retrieving revision 1.13 +diff -u -9 -p -w -r1.13 nsFormHistory.cpp +--- toolkit/components/satchel/src/nsFormHistory.cpp 17 Jun 2004 00:13:16 -0000 1.13 ++++ toolkit/components/satchel/src/nsFormHistory.cpp 24 Jun 2004 06:56:29 -0000 +@@ -734,35 +734,38 @@ nsFormHistory::AutoCompleteSearch(const + if (RowMatch(row, aInputName, aInputValue, &value)) { + matchingRows.AppendElement(row); + matchingValues.AppendElement(value); + } + } while (row); + + // Turn auto array into flat array for quick sort, now that we + // know how many items there are + PRUint32 count = matchingRows.Count(); ++ ++ if (count > 0) { + PRUint32* items = new PRUint32[count]; + PRUint32 i; + for (i = 0; i < count; ++i) + items[i] = i; + +- NS_QuickSort(items, count, sizeof(nsIMdbRow*), ++ NS_QuickSort(items, count, sizeof(PRUint32), + SortComparison, &matchingValues); + + for (i = 0; i < count; ++i) { + // Place the sorted result into the autocomplete result + result->AddRow((nsIMdbRow *)matchingRows[items[i]]); + + // Free up these strings we owned. + delete (PRUnichar *) matchingValues[i]; + } + + delete[] items; ++ } + + PRUint32 matchCount; + result->GetMatchCount(&matchCount); + if (matchCount > 0) { + result->SetSearchResult(nsIAutoCompleteResult::RESULT_SUCCESS); + result->SetDefaultIndex(0); + } else { + result->SetSearchResult(nsIAutoCompleteResult::RESULT_NOMATCH); + result->SetDefaultIndex(-1); diff --git a/www-client/mozilla-firefox/files/icon/firefox-icon.png b/www-client/mozilla-firefox/files/icon/firefox-icon.png Binary files differnew file mode 100644 index 000000000000..b7ff7197cad1 --- /dev/null +++ b/www-client/mozilla-firefox/files/icon/firefox-icon.png diff --git a/www-client/mozilla-firefox/files/icon/mozillafirefox.desktop b/www-client/mozilla-firefox/files/icon/mozillafirefox.desktop new file mode 100644 index 000000000000..c9eb057275ff --- /dev/null +++ b/www-client/mozilla-firefox/files/icon/mozillafirefox.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=Mozilla Firefox +Comment=Web Browser +Exec=/usr/bin/firefox %U +Icon=firefox-icon.png +Terminal=false +Type=Application +Categories=Application;Network; diff --git a/www-client/mozilla-firefox/files/mozilla-1.3-alpha-stubs.patch b/www-client/mozilla-firefox/files/mozilla-1.3-alpha-stubs.patch new file mode 100644 index 000000000000..3aa192be9246 --- /dev/null +++ b/www-client/mozilla-firefox/files/mozilla-1.3-alpha-stubs.patch @@ -0,0 +1,121 @@ +diff -Naur mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_alpha.cpp mozilla-alpha-stubs/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_alpha.cpp +--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_alpha.cpp 2001-09-28 15:12:51.000000000 -0500 ++++ mozilla-alpha-stubs/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_alpha.cpp 2003-03-18 09:50:06.000000000 -0600 +@@ -20,6 +20,7 @@ + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): ++ * Glen Nakamura <glen@imodulo.com> + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or +@@ -37,8 +38,6 @@ + + /* Platform specific code to invoke XPCOM methods on native objects */ + +-/* contributed by Glen Nakamura <glen.nakamura@usa.net> */ +- + #include "xptcprivate.h" + + /* Prototype specifies unmangled function name and disables unused warning */ +@@ -163,7 +162,11 @@ + "bis $16,$16,$1\n\t" /* load "this" */ + "ldq $2,16($15)\n\t" /* load "methodIndex" */ + "ldq $1,0($1)\n\t" /* load vtable */ ++#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */ ++ "s8addq $2,$31,$2\n\t" /* vtable index = "methodIndex" * 8 */ ++#else /* not G++ V3 ABI */ + "s8addq $2,16,$2\n\t" /* vtable index = "methodIndex" * 8 + 16 */ ++#endif /* G++ V3 ABI */ + "addq $1,$2,$1\n\t" + "ldq $27,0($1)\n\t" /* load address of function */ + "jsr $26,($27),0\n\t" /* call virtual function */ +@@ -176,4 +179,3 @@ + "ret $31,($26),1\n\t" + ".end XPTC_InvokeByIndex" + ); +- +diff -Naur mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp mozilla-alpha-stubs/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp +--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp 2001-09-28 15:12:52.000000000 -0500 ++++ mozilla-alpha-stubs/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp 2003-03-18 09:50:06.000000000 -0600 +@@ -20,6 +20,7 @@ + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): ++ * Glen Nakamura <glen@imodulo.com> + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or +@@ -37,8 +38,6 @@ + + /* Implement shared vtbl methods. */ + +-/* contributed by Glen Nakamura <glen.nakamura@usa.net> */ +- + #include "xptcprivate.h" + + /* Prototype specifies unmangled function name and disables unused warning */ +@@ -188,23 +187,45 @@ + * nsresult nsXPTCStubBase::Stub##n() + * Sets register $1 to "methodIndex" and jumps to SharedStub. + */ ++#define STUB_MANGLED_ENTRY(n, symbol) \ ++ "#### Stub"#n" ####" "\n\t" \ ++ ".text" "\n\t" \ ++ ".align 5" "\n\t" \ ++ ".globl " symbol "\n\t" \ ++ ".ent " symbol "\n" \ ++symbol ":" "\n\t" \ ++ ".frame $30,0,$26,0" "\n\t" \ ++ "ldgp $29,0($27)" "\n" \ ++"$" symbol "..ng:" "\n\t" \ ++ ".prologue 1" "\n\t" \ ++ "lda $1,"#n "\n\t" \ ++ "br $31,$SharedStub..ng" "\n\t" \ ++ ".end " symbol ++ ++#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */ ++ ++#define STUB_ENTRY(n) \ ++__asm__( \ ++ ".if "#n" < 10" "\n\t" \ ++ STUB_MANGLED_ENTRY(n, "_ZN14nsXPTCStubBase5Stub"#n"Ev") "\n\t" \ ++ ".elseif "#n" < 100" "\n\t" \ ++ STUB_MANGLED_ENTRY(n, "_ZN14nsXPTCStubBase6Stub"#n"Ev") "\n\t" \ ++ ".elseif "#n" < 1000" "\n\t" \ ++ STUB_MANGLED_ENTRY(n, "_ZN14nsXPTCStubBase7Stub"#n"Ev") "\n\t" \ ++ ".else" "\n\t" \ ++ ".err \"Stub"#n" >= 1000 not yet supported.\"" "\n\t" \ ++ ".endif" \ ++ ); ++ ++#else /* not G++ V3 ABI */ ++ + #define STUB_ENTRY(n) \ + __asm__( \ +- "#### Stub"#n" ####\n" \ +-".text\n\t" \ +- ".align 5\n\t" \ +- ".globl Stub"#n"__14nsXPTCStubBase\n\t" \ +- ".ent Stub"#n"__14nsXPTCStubBase\n" \ +-"Stub"#n"__14nsXPTCStubBase:\n\t" \ +- ".frame $30,0,$26,0\n\t" \ +- "ldgp $29,0($27)\n" \ +-"$Stub"#n"__14nsXPTCStubBase..ng:\n\t" \ +- ".prologue 1\n\t" \ +- "lda $1,"#n"\n\t" \ +- "br $31,$SharedStub..ng\n\t" \ +- ".end Stub"#n"__14nsXPTCStubBase" \ ++ STUB_MANGLED_ENTRY(n, "Stub"#n"__14nsXPTCStubBase") \ + ); + ++#endif /* G++ V3 ABI */ ++ + #define SENTINEL_ENTRY(n) \ + nsresult nsXPTCStubBase::Sentinel##n() \ + { \ +@@ -213,4 +234,3 @@ + } + + #include "xptcstubsdef.inc" +- diff --git a/www-client/mozilla-firefox/files/mozilla-firebird-amd64.patch b/www-client/mozilla-firefox/files/mozilla-firebird-amd64.patch new file mode 100644 index 000000000000..5dd2cb2503ed --- /dev/null +++ b/www-client/mozilla-firefox/files/mozilla-firebird-amd64.patch @@ -0,0 +1,1026 @@ +diff -ruN mozilla.old/config/mkdepend/imakemdep.h mozilla/config/mkdepend/imakemdep.h +--- mozilla.old/config/mkdepend/imakemdep.h 1998-09-05 00:22:25.000000000 -0400 ++++ mozilla/config/mkdepend/imakemdep.h 2003-09-27 16:20:55.105322104 -0400 +@@ -277,6 +277,9 @@ + # ifdef __i386__ + "-D__i386__", + # endif ++# ifdef __x86_64__ ++ "-D__x86_64__", ++# endif + # ifdef __GNUC__ + "-traditional", + # endif +diff -ruN mozilla.old/directory/c-sdk/ldap/libraries/liblber/lber-int.h mozilla/directory/c-sdk/ldap/libraries/liblber/lber-int.h +--- mozilla.old/directory/c-sdk/ldap/libraries/liblber/lber-int.h 2002-03-26 16:53:23.000000000 -0500 ++++ mozilla/directory/c-sdk/ldap/libraries/liblber/lber-int.h 2003-09-27 16:20:55.104322256 -0400 +@@ -236,23 +236,22 @@ + (((_l)&0xff0000)>>8) + (((_l)&0xff000000)>>24)) + #define LBER_NTOHL(_l) LBER_HTONL(_l) + +-#elif !defined(__alpha) || defined(VMS) ++#elif !defined(__x86_64__) && (!defined(__alpha) || defined(VMS)) + + #define LBER_HTONL( l ) htonl( l ) + #define LBER_NTOHL( l ) ntohl( l ) + + #else /* __alpha */ + /* +- * htonl and ntohl on the DEC Alpha under OSF 1 seem to only swap the +- * lower-order 32-bits of a (64-bit) long, so we define correct versions +- * here. ++ * htonl and ntohl on the 64-bit UNIX platforms only swap the lower-order ++ * 32-bits of a (64-bit) long, so we define correct versions here. + */ + #define LBER_HTONL( l ) (((long)htonl( (l) & 0x00000000FFFFFFFF )) << 32 \ + | htonl( ( (l) & 0xFFFFFFFF00000000 ) >> 32 )) + + #define LBER_NTOHL( l ) (((long)ntohl( (l) & 0x00000000FFFFFFFF )) << 32 \ + | ntohl( ( (l) & 0xFFFFFFFF00000000 ) >> 32 )) +-#endif /* __alpha */ ++#endif /* __alpha || __x86_64__ */ + + + /* function prototypes */ +diff -ruN mozilla.old/nsprpub/configure mozilla/nsprpub/configure +--- mozilla.old/nsprpub/configure 2003-05-19 15:05:42.000000000 -0400 ++++ mozilla/nsprpub/configure 2003-09-27 16:20:55.085325144 -0400 +@@ -3729,6 +3729,9 @@ + ia64) + PR_MD_ASFILES=os_Linux_ia64.s + ;; ++ x86_64) ++ PR_MD_ASFILES=os_Linux_x86_64.s ++ ;; + m68k) + CFLAGS="$CFLAGS -m68020-60" + CXXFLAGS="$CXXFLAGS -m68020-60" +diff -ruN mozilla.old/nsprpub/configure.in mozilla/nsprpub/configure.in +--- mozilla.old/nsprpub/configure.in 2003-05-19 15:05:48.000000000 -0400 ++++ mozilla/nsprpub/configure.in 2003-09-27 16:20:55.077326360 -0400 +@@ -1218,6 +1218,9 @@ + ia64) + PR_MD_ASFILES=os_Linux_ia64.s + ;; ++ x86_64) ++ PR_MD_ASFILES=os_Linux_x86_64.s ++ ;; + m68k) + CFLAGS="$CFLAGS -m68020-60" + CXXFLAGS="$CXXFLAGS -m68020-60" +diff -ruN mozilla.old/nsprpub/pr/include/md/_linux.cfg mozilla/nsprpub/pr/include/md/_linux.cfg +--- mozilla.old/nsprpub/pr/include/md/_linux.cfg 2003-02-26 18:53:38.000000000 -0500 ++++ mozilla/nsprpub/pr/include/md/_linux.cfg 2003-09-27 16:20:55.053330008 -0400 +@@ -182,6 +182,52 @@ + #define PR_BYTES_PER_WORD_LOG2 3 + #define PR_BYTES_PER_DWORD_LOG2 3 + ++#elif defined(__x86_64__) ++ ++#define IS_LITTLE_ENDIAN 1 ++#undef IS_BIG_ENDIAN ++#define IS_64 ++ ++#define PR_BYTES_PER_BYTE 1 ++#define PR_BYTES_PER_SHORT 2 ++#define PR_BYTES_PER_INT 4 ++#define PR_BYTES_PER_INT64 8 ++#define PR_BYTES_PER_LONG 8 ++#define PR_BYTES_PER_FLOAT 4 ++#define PR_BYTES_PER_DOUBLE 8 ++#define PR_BYTES_PER_WORD 8 ++#define PR_BYTES_PER_DWORD 8 ++ ++#define PR_BITS_PER_BYTE 8 ++#define PR_BITS_PER_SHORT 16 ++#define PR_BITS_PER_INT 32 ++#define PR_BITS_PER_INT64 64 ++#define PR_BITS_PER_LONG 64 ++#define PR_BITS_PER_FLOAT 32 ++#define PR_BITS_PER_DOUBLE 64 ++#define PR_BITS_PER_WORD 64 ++ ++#define PR_BITS_PER_BYTE_LOG2 3 ++#define PR_BITS_PER_SHORT_LOG2 4 ++#define PR_BITS_PER_INT_LOG2 5 ++#define PR_BITS_PER_INT64_LOG2 6 ++#define PR_BITS_PER_LONG_LOG2 6 ++#define PR_BITS_PER_FLOAT_LOG2 5 ++#define PR_BITS_PER_DOUBLE_LOG2 6 ++#define PR_BITS_PER_WORD_LOG2 6 ++ ++#define PR_ALIGN_OF_SHORT 2 ++#define PR_ALIGN_OF_INT 4 ++#define PR_ALIGN_OF_LONG 8 ++#define PR_ALIGN_OF_INT64 8 ++#define PR_ALIGN_OF_FLOAT 4 ++#define PR_ALIGN_OF_DOUBLE 8 ++#define PR_ALIGN_OF_POINTER 8 ++#define PR_ALIGN_OF_WORD 8 ++ ++#define PR_BYTES_PER_WORD_LOG2 3 ++#define PR_BYTES_PER_DWORD_LOG2 3 ++ + #elif defined(__mc68000__) + + #undef IS_LITTLE_ENDIAN +diff -ruN mozilla.old/nsprpub/pr/include/md/_linux.h mozilla/nsprpub/pr/include/md/_linux.h +--- mozilla.old/nsprpub/pr/include/md/_linux.h 2003-02-26 18:53:39.000000000 -0500 ++++ mozilla/nsprpub/pr/include/md/_linux.h 2003-09-27 16:20:55.053330008 -0400 +@@ -49,6 +49,8 @@ + #define _PR_SI_ARCHITECTURE "alpha" + #elif defined(__ia64__) + #define _PR_SI_ARCHITECTURE "ia64" ++#elif defined(__x86_64__) ++#define _PR_SI_ARCHITECTURE "x86-64" + #elif defined(__mc68000__) + #define _PR_SI_ARCHITECTURE "m68k" + #elif defined(__sparc__) +@@ -107,6 +109,19 @@ + #define _MD_ATOMIC_SET _PR_ia64_AtomicSet + #endif + ++#if defined(__x86_64__) ++#define _PR_HAVE_ATOMIC_OPS ++#define _MD_INIT_ATOMIC() ++extern PRInt32 _PR_x86_64_AtomicIncrement(PRInt32 *val); ++#define _MD_ATOMIC_INCREMENT _PR_x86_64_AtomicIncrement ++extern PRInt32 _PR_x86_64_AtomicDecrement(PRInt32 *val); ++#define _MD_ATOMIC_DECREMENT _PR_x86_64_AtomicDecrement ++extern PRInt32 _PR_x86_64_AtomicAdd(PRInt32 *ptr, PRInt32 val); ++#define _MD_ATOMIC_ADD _PR_x86_64_AtomicAdd ++extern PRInt32 _PR_x86_64_AtomicSet(PRInt32 *val, PRInt32 newval); ++#define _MD_ATOMIC_SET _PR_x86_64_AtomicSet ++#endif ++ + #define USE_SETJMP + #if defined(__GLIBC__) && __GLIBC__ >= 2 + #define _PR_POLL_AVAILABLE +diff -ruN mozilla.old/nsprpub/pr/src/io/prprf.c mozilla/nsprpub/pr/src/io/prprf.c +--- mozilla.old/nsprpub/pr/src/io/prprf.c 2003-02-26 18:53:42.000000000 -0500 ++++ mozilla/nsprpub/pr/src/io/prprf.c 2003-09-27 16:20:55.068327728 -0400 +@@ -51,7 +51,10 @@ + ** Note: on some platforms va_list is defined as an array, + ** and requires array notation. + */ +-#if (defined(LINUX) && defined(__powerpc__)) || \ ++#if (defined(LINUX) && defined(__x86_64__)) ++#include <stdarg.h> ++#define VARARGS_ASSIGN(foo, bar) __va_copy((foo), (bar)) ++#elif (defined(LINUX) && defined(__powerpc__)) || \ + (defined(LINUX) && defined(__s390__)) || \ + (defined(LINUX) && defined(__s390x__)) || \ + defined(WIN16) || defined(QNX) || \ +diff -ruN mozilla.old/nsprpub/pr/src/md/unix/os_Linux_x86_64.s mozilla/nsprpub/pr/src/md/unix/os_Linux_x86_64.s +--- mozilla.old/nsprpub/pr/src/md/unix/os_Linux_x86_64.s 1969-12-31 19:00:00.000000000 -0500 ++++ mozilla/nsprpub/pr/src/md/unix/os_Linux_x86_64.s 2003-09-27 16:20:55.068327728 -0400 +@@ -0,0 +1,91 @@ ++/ -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- ++/ ++/ The contents of this file are subject to the Mozilla Public ++/ License Version 1.1 (the "License"); you may not use this file ++/ except in compliance with the License. You may obtain a copy of ++/ the License at http://www.mozilla.org/MPL/ ++/ ++/ Software distributed under the License is distributed on an "AS ++/ IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or ++/ implied. See the License for the specific language governing ++/ rights and limitations under the License. ++/ ++/ The Original Code is the Netscape Portable Runtime (NSPR). ++/ ++/ The Initial Developer of the Original Code is Netscape ++/ Communications Corporation. Portions created by Netscape are ++/ Copyright (C) 2000 Netscape Communications Corporation. All ++/ Rights Reserved. ++/ ++/ Contributor(s): ++/ ++/ Alternatively, the contents of this file may be used under the ++/ terms of the GNU General Public License Version 2 or later (the ++/ "GPL"), in which case the provisions of the GPL are applicable ++/ instead of those above. If you wish to allow use of your ++/ version of this file only under the terms of the GPL and not to ++/ allow others to use your version of this file under the MPL, ++/ indicate your decision by deleting the provisions above and ++/ replace them with the notice and other provisions required by ++/ the GPL. If you do not delete the provisions above, a recipient ++/ may use your version of this file under either the MPL or the ++/ GPL. ++/ ++ ++/ PRInt32 _PR_x86_64_AtomicIncrement(PRInt32 *val) ++/ ++/ Atomically increment the integer pointed to by 'val' and return ++/ the result of the increment. ++/ ++ .text ++ .globl _PR_x86_64_AtomicIncrement ++ .align 4 ++_PR_x86_64_AtomicIncrement: ++ movl $1, %eax ++ lock ++ xaddl %eax, (%rdi) ++ incl %eax ++ ret ++ ++/ PRInt32 _PR_x86_64_AtomicDecrement(PRInt32 *val) ++/ ++/ Atomically decrement the integer pointed to by 'val' and return ++/ the result of the decrement. ++/ ++ .text ++ .globl _PR_x86_64_AtomicDecrement ++ .align 4 ++_PR_x86_64_AtomicDecrement: ++ movl $-1, %eax ++ lock ++ xaddl %eax, (%rdi) ++ decl %eax ++ ret ++ ++/ PRInt32 _PR_x86_64_AtomicSet(PRInt32 *val, PRInt32 newval) ++/ ++/ Atomically set the integer pointed to by 'val' to the new ++/ value 'newval' and return the old value. ++ .text ++ .globl _PR_x86_64_AtomicSet ++ .align 4 ++_PR_x86_64_AtomicSet: ++ movl %esi, %eax ++ lock ++ xchgl %eax, (%rdi) ++ ret ++ ++/ PRInt32 _PR_x86_64_AtomicAdd(PRInt32 *ptr, PRInt32 val) ++/ ++/ Atomically add 'val' to the integer pointed to by 'ptr' ++/ and return the result of the addition. ++/ ++ .text ++ .globl _PR_x86_64_AtomicAdd ++ .align 4 ++_PR_x86_64_AtomicAdd: ++ movl %esi, %eax ++ lock ++ xaddl %eax, (%rdi) ++ addl %esi, %eax ++ ret +diff -ruN mozilla.old/security/coreconf/Linux.mk mozilla/security/coreconf/Linux.mk +--- mozilla.old/security/coreconf/Linux.mk 2003-04-30 20:31:20.000000000 -0400 ++++ mozilla/security/coreconf/Linux.mk 2003-09-27 16:20:55.093323928 -0400 +@@ -66,6 +66,10 @@ + OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE + CPU_ARCH = ia64 + else ++ifeq ($(OS_TEST),x86_64) ++ OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE ++ CPU_ARCH = x86_64 ++else + ifeq ($(OS_TEST),sparc) + OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE + CPU_ARCH = sparc +@@ -107,6 +111,7 @@ + endif + endif + endif ++endif + + + LIBC_TAG = _glibc +diff -ruN mozilla.old/xpcom/reflect/xptcall/src/md/unix/Makefile.in mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in +--- mozilla.old/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2003-06-18 23:02:34.000000000 -0400 ++++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2003-09-27 16:20:55.105322104 -0400 +@@ -55,6 +55,10 @@ + # Migrate other platforms here after testing + # + ifneq (,$(filter Linux,$(OS_ARCH))) ++# Linux/x86-64 ++ifeq (x86_64,$(OS_TEST)) ++CPPSRCS := xptcinvoke_x86_64_linux.cpp xptcstubs_x86_64_linux.cpp ++else + ifeq (86,$(findstring 86,$(OS_TEST))) + CPPSRCS := xptcinvoke_gcc_x86_unix.cpp xptcstubs_gcc_x86_unix.cpp + endif +@@ -66,6 +70,7 @@ + ASFILES := xptcstubs_asm_ipf64.s xptcinvoke_asm_ipf64.s + endif + endif ++endif + # + # BeOS/Intel (uses the same unixish_x86 code) + # +diff -ruN mozilla.old/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_linux.cpp mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_linux.cpp +--- mozilla.old/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_linux.cpp 1969-12-31 19:00:00.000000000 -0500 ++++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_linux.cpp 2003-09-27 16:20:55.105322104 -0400 +@@ -0,0 +1,174 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++// Platform specific code to invoke XPCOM methods on native objects ++ ++#include "xptcprivate.h" ++ ++// 6 integral parameters are passed in registers ++const PRUint32 GPR_COUNT = 6; ++ ++// 8 floating point parameters are passed in SSE registers ++const PRUint32 FPR_COUNT = 8; ++ ++// Remember that these 'words' are 64-bit long ++static inline void ++invoke_count_words(PRUint32 paramCount, nsXPTCVariant * s, ++ PRUint32 & nr_gpr, PRUint32 & nr_fpr, PRUint32 & nr_stack) ++{ ++ nr_gpr = 1; // skip one GP register for 'that' ++ nr_fpr = 0; ++ nr_stack = 0; ++ ++ /* Compute number of eightbytes of class MEMORY. */ ++ for (uint32 i = 0; i < paramCount; i++, s++) { ++ if (!s->IsPtrData() ++ && (s->type == nsXPTType::T_FLOAT || s->type == nsXPTType::T_DOUBLE)) { ++ if (nr_fpr < FPR_COUNT) ++ nr_fpr++; ++ else ++ nr_stack++; ++ } ++ else { ++ if (nr_gpr < GPR_COUNT) ++ nr_gpr++; ++ else ++ nr_stack++; ++ } ++ } ++} ++ ++static void ++invoke_copy_to_stack(PRUint64 * d, PRUint32 paramCount, nsXPTCVariant * s, ++ PRUint64 * gpregs, double * fpregs) ++{ ++ PRUint32 nr_gpr = 1; // skip one GP register for 'that' ++ PRUint32 nr_fpr = 0; ++ PRUint64 value; ++ ++ for (uint32 i = 0; i < paramCount; i++, s++) { ++ if (s->IsPtrData()) ++ value = (PRUint64) s->ptr; ++ else { ++ switch (s->type) { ++ case nsXPTType::T_FLOAT: break; ++ case nsXPTType::T_DOUBLE: break; ++ case nsXPTType::T_I8: value = s->val.i8; break; ++ case nsXPTType::T_I16: value = s->val.i16; break; ++ case nsXPTType::T_I32: value = s->val.i32; break; ++ case nsXPTType::T_I64: value = s->val.i64; break; ++ case nsXPTType::T_U8: value = s->val.u8; break; ++ case nsXPTType::T_U16: value = s->val.u16; break; ++ case nsXPTType::T_U32: value = s->val.u32; break; ++ case nsXPTType::T_U64: value = s->val.u64; break; ++ case nsXPTType::T_BOOL: value = s->val.b; break; ++ case nsXPTType::T_CHAR: value = s->val.c; break; ++ case nsXPTType::T_WCHAR: value = s->val.wc; break; ++ default: value = (PRUint64) s->val.p; break; ++ } ++ } ++ ++ if (!s->IsPtrData() && s->type == nsXPTType::T_DOUBLE) { ++ if (nr_fpr < FPR_COUNT) ++ fpregs[nr_fpr++] = s->val.d; ++ else { ++ *((double *)d) = s->val.d; ++ d++; ++ } ++ } ++ else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) { ++ if (nr_fpr < FPR_COUNT) ++ // The value in %xmm register is already prepared to ++ // be retrieved as a float. Therefore, we pass the ++ // value verbatim, as a double without conversion. ++ fpregs[nr_fpr++] = s->val.d; ++ else { ++ *((float *)d) = s->val.f; ++ d++; ++ } ++ } ++ else { ++ if (nr_gpr < GPR_COUNT) ++ gpregs[nr_gpr++] = value; ++ else ++ *d++ = value; ++ } ++ } ++} ++ ++extern "C" ++XPTC_PUBLIC_API(nsresult) ++XPTC_InvokeByIndex(nsISupports * that, PRUint32 methodIndex, ++ PRUint32 paramCount, nsXPTCVariant * params) ++{ ++ PRUint32 nr_gpr, nr_fpr, nr_stack; ++ invoke_count_words(paramCount, params, nr_gpr, nr_fpr, nr_stack); ++ ++ // Stack, if used, must be 16-bytes aligned ++ if (nr_stack) ++ nr_stack = (nr_stack + 1) & ~1; ++ ++ // Load parameters to stack, if necessary ++ PRUint64 *stack = (PRUint64 *) __builtin_alloca(nr_stack * 8); ++ PRUint64 gpregs[GPR_COUNT]; ++ double fpregs[FPR_COUNT]; ++ invoke_copy_to_stack(stack, paramCount, params, gpregs, fpregs); ++ ++ // Load FPR registers from fpregs[] ++ register double d0 asm("xmm0"); ++ register double d1 asm("xmm1"); ++ register double d2 asm("xmm2"); ++ register double d3 asm("xmm3"); ++ register double d4 asm("xmm4"); ++ register double d5 asm("xmm5"); ++ register double d6 asm("xmm6"); ++ register double d7 asm("xmm7"); ++ ++ switch (nr_fpr) { ++#define ARG_FPR(N) \ ++ case N+1: d##N = fpregs[N]; ++ ARG_FPR(7); ++ ARG_FPR(6); ++ ARG_FPR(5); ++ ARG_FPR(4); ++ ARG_FPR(3); ++ ARG_FPR(2); ++ ARG_FPR(1); ++ ARG_FPR(0); ++ case 0:; ++#undef ARG_FPR ++ } ++ ++ // Load GPR registers from gpregs[] ++ register PRUint64 a0 asm("rdi"); ++ register PRUint64 a1 asm("rsi"); ++ register PRUint64 a2 asm("rdx"); ++ register PRUint64 a3 asm("rcx"); ++ register PRUint64 a4 asm("r8"); ++ register PRUint64 a5 asm("r9"); ++ ++ switch (nr_gpr) { ++#define ARG_GPR(N) \ ++ case N+1: a##N = gpregs[N]; ++ ARG_GPR(5); ++ ARG_GPR(4); ++ ARG_GPR(3); ++ ARG_GPR(2); ++ ARG_GPR(1); ++ case 1: a0 = (PRUint64) that; ++ case 0:; ++#undef ARG_GPR ++ } ++ ++ // Ensure that assignments to SSE registers won't be optimized away ++ asm("" :: ++ "x" (d0), "x" (d1), "x" (d2), "x" (d3), ++ "x" (d4), "x" (d5), "x" (d6), "x" (d7)); ++ ++ // Get pointer to method ++ PRUint64 methodAddress = *((PRUint64 *)that); ++ methodAddress += 8 * methodIndex; ++ methodAddress = *((PRUint64 *)methodAddress); ++ ++ typedef PRUint32 (*Method)(PRUint64, PRUint64, PRUint64, PRUint64, PRUint64, PRUint64); ++ PRUint32 result = ((Method)methodAddress)(a0, a1, a2, a3, a4, a5); ++ return result; ++} +diff -ruN mozilla.old/xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_linux.cpp mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_linux.cpp +--- mozilla.old/xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_linux.cpp 1969-12-31 19:00:00.000000000 -0500 ++++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_linux.cpp 2003-09-27 16:20:55.106321952 -0400 +@@ -0,0 +1,206 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++ ++// Implement shared vtbl methods. ++ ++#include "xptcprivate.h" ++ ++// The Linux/x86-64 ABI passes the first 6 integral parameters and the ++// first 8 floating point parameters in registers (rdi, rsi, rdx, rcx, ++// r8, r9 and xmm0-xmm7), no stack space is allocated for these by the ++// caller. The rest of the parameters are passed in the callers stack ++// area. ++ ++const PRUint32 PARAM_BUFFER_COUNT = 16; ++const PRUint32 GPR_COUNT = 6; ++const PRUint32 FPR_COUNT = 8; ++ ++// PrepareAndDispatch() is called by SharedStub() and calls the actual method. ++// ++// - 'args[]' contains the arguments passed on stack ++// - 'gpregs[]' contains the arguments passed in integer registers ++// - 'fpregs[]' contains the arguments passed in floating point registers ++// ++// The parameters are mapped into an array of type 'nsXPTCMiniVariant' ++// and then the method gets called. ++ ++extern "C" nsresult ++PrepareAndDispatch(nsXPTCStubBase * self, PRUint32 methodIndex, ++ PRUint64 * args, PRUint64 * gpregs, double *fpregs) ++{ ++ nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; ++ nsXPTCMiniVariant* dispatchParams = NULL; ++ nsIInterfaceInfo* iface_info = NULL; ++ const nsXPTMethodInfo* info; ++ PRUint32 paramCount; ++ PRUint32 i; ++ nsresult result = NS_ERROR_FAILURE; ++ ++ NS_ASSERTION(self,"no self"); ++ ++ self->GetInterfaceInfo(&iface_info); ++ NS_ASSERTION(iface_info,"no interface info"); ++ if (! iface_info) ++ return NS_ERROR_UNEXPECTED; ++ ++ iface_info->GetMethodInfo(PRUint16(methodIndex), &info); ++ NS_ASSERTION(info,"no method info"); ++ if (! info) ++ return NS_ERROR_UNEXPECTED; ++ ++ paramCount = info->GetParamCount(); ++ ++ // setup variant array pointer ++ if(paramCount > PARAM_BUFFER_COUNT) ++ dispatchParams = new nsXPTCMiniVariant[paramCount]; ++ else ++ dispatchParams = paramBuffer; ++ ++ NS_ASSERTION(dispatchParams,"no place for params"); ++ if (! dispatchParams) ++ return NS_ERROR_OUT_OF_MEMORY; ++ ++ PRUint64* ap = args; ++ PRUint32 nr_gpr = 1; // skip one GPR register for 'that' ++ PRUint32 nr_fpr = 0; ++ PRUint64 value; ++ ++ for(i = 0; i < paramCount; i++) { ++ const nsXPTParamInfo& param = info->GetParam(i); ++ const nsXPTType& type = param.GetType(); ++ nsXPTCMiniVariant* dp = &dispatchParams[i]; ++ ++ if (!param.IsOut() && type == nsXPTType::T_DOUBLE) { ++ if (nr_fpr < FPR_COUNT) ++ dp->val.d = fpregs[nr_fpr++]; ++ else ++ dp->val.d = *(double*) ap++; ++ continue; ++ } ++ else if (!param.IsOut() && type == nsXPTType::T_FLOAT) { ++ if (nr_fpr < FPR_COUNT) ++ // The value in %xmm register is already prepared to ++ // be retrieved as a float. Therefore, we pass the ++ // value verbatim, as a double without conversion. ++ dp->val.d = *(double*) ap++; ++ else ++ dp->val.f = *(float*) ap++; ++ continue; ++ } ++ else { ++ if (nr_gpr < GPR_COUNT) ++ value = gpregs[nr_gpr++]; ++ else ++ value = *ap++; ++ } ++ ++ if (param.IsOut() || !type.IsArithmetic()) { ++ dp->val.p = (void*) value; ++ continue; ++ } ++ ++ switch (type) { ++ case nsXPTType::T_I8: dp->val.i8 = (PRInt8) value; break; ++ case nsXPTType::T_I16: dp->val.i16 = (PRInt16) value; break; ++ case nsXPTType::T_I32: dp->val.i32 = (PRInt32) value; break; ++ case nsXPTType::T_I64: dp->val.i64 = (PRInt64) value; break; ++ case nsXPTType::T_U8: dp->val.u8 = (PRUint8) value; break; ++ case nsXPTType::T_U16: dp->val.u16 = (PRUint16) value; break; ++ case nsXPTType::T_U32: dp->val.u32 = (PRUint32) value; break; ++ case nsXPTType::T_U64: dp->val.u64 = (PRUint64) value; break; ++ case nsXPTType::T_BOOL: dp->val.b = (PRBool) value; break; ++ case nsXPTType::T_CHAR: dp->val.c = (char) value; break; ++ case nsXPTType::T_WCHAR: dp->val.wc = (wchar_t) value; break; ++ ++ default: ++ NS_ASSERTION(0, "bad type"); ++ break; ++ } ++ } ++ ++ result = self->CallMethod((PRUint16) methodIndex, info, dispatchParams); ++ ++ NS_RELEASE(iface_info); ++ ++ if (dispatchParams != paramBuffer) ++ delete [] dispatchParams; ++ ++ return result; ++} ++ ++#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */ ++// Linux/x86-64 uses gcc >= 3.1 ++#define STUB_ENTRY(n) \ ++asm(".section \".text\"\n\t" \ ++ ".align 2\n\t" \ ++ ".if " #n " < 10\n\t" \ ++ ".globl _ZN14nsXPTCStubBase5Stub" #n "Ev\n\t" \ ++ ".type _ZN14nsXPTCStubBase5Stub" #n "Ev,@function\n" \ ++ "_ZN14nsXPTCStubBase5Stub" #n "Ev:\n\t" \ ++ ".elseif " #n " < 100\n\t" \ ++ ".globl _ZN14nsXPTCStubBase6Stub" #n "Ev\n\t" \ ++ ".type _ZN14nsXPTCStubBase6Stub" #n "Ev,@function\n" \ ++ "_ZN14nsXPTCStubBase6Stub" #n "Ev:\n\t" \ ++ ".elseif " #n " < 1000\n\t" \ ++ ".globl _ZN14nsXPTCStubBase7Stub" #n "Ev\n\t" \ ++ ".type _ZN14nsXPTCStubBase7Stub" #n "Ev,@function\n" \ ++ "_ZN14nsXPTCStubBase7Stub" #n "Ev:\n\t" \ ++ ".else\n\t" \ ++ ".err \"stub number " #n " >= 1000 not yet supported\"\n\t" \ ++ ".endif\n\t" \ ++ "movl $" #n ", %eax\n\t" \ ++ "jmp SharedStub\n\t" \ ++ ".if " #n " < 10\n\t" \ ++ ".size _ZN14nsXPTCStubBase5Stub" #n "Ev,.-_ZN14nsXPTCStubBase5Stub" #n "Ev\n\t" \ ++ ".elseif " #n " < 100\n\t" \ ++ ".size _ZN14nsXPTCStubBase6Stub" #n "Ev,.-_ZN14nsXPTCStubBase6Stub" #n "Ev\n\t" \ ++ ".else\n\t" \ ++ ".size _ZN14nsXPTCStubBase7Stub" #n "Ev,.-_ZN14nsXPTCStubBase7Stub" #n "Ev\n\t" \ ++ ".endif"); ++ ++// static nsresult SharedStub(PRUint32 methodIndex) ++asm(".section \".text\"\n\t" ++ ".align 2\n\t" ++ ".type SharedStub,@function\n\t" ++ "SharedStub:\n\t" ++ // make room for gpregs (48), fpregs (64) ++ "pushq %rbp\n\t" ++ "movq %rsp,%rbp\n\t" ++ "subq $112,%rsp\n\t" ++ // save GP registers ++ "movq %rdi,-112(%rbp)\n\t" ++ "movq %rsi,-104(%rbp)\n\t" ++ "movq %rdx, -96(%rbp)\n\t" ++ "movq %rcx, -88(%rbp)\n\t" ++ "movq %r8 , -80(%rbp)\n\t" ++ "movq %r9 , -72(%rbp)\n\t" ++ "leaq -112(%rbp),%rcx\n\t" ++ // save FP registers ++ "movsd %xmm0,-64(%rbp)\n\t" ++ "movsd %xmm1,-56(%rbp)\n\t" ++ "movsd %xmm2,-48(%rbp)\n\t" ++ "movsd %xmm3,-40(%rbp)\n\t" ++ "movsd %xmm4,-32(%rbp)\n\t" ++ "movsd %xmm5,-24(%rbp)\n\t" ++ "movsd %xmm6,-16(%rbp)\n\t" ++ "movsd %xmm7, -8(%rbp)\n\t" ++ "leaq -64(%rbp),%r8\n\t" ++ // rdi has the 'self' pointer already ++ "movl %eax,%esi\n\t" ++ "leaq 16(%rbp),%rdx\n\t" ++ "call PrepareAndDispatch@plt\n\t" ++ "leave\n\t" ++ "ret\n\t" ++ ".size SharedStub,.-SharedStub"); ++ ++#define SENTINEL_ENTRY(n) \ ++nsresult nsXPTCStubBase::Sentinel##n() \ ++{ \ ++ NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \ ++ return NS_ERROR_NOT_IMPLEMENTED; \ ++} ++ ++#include "xptcstubsdef.inc" ++ ++#else ++#error "can't find a compiler to use" ++#endif /* __GNUC__ */ +diff -ruN mozilla.old/xpcom/reflect/xptcall/tests/TestXPTCInvoke.cpp mozilla/xpcom/reflect/xptcall/tests/TestXPTCInvoke.cpp +--- mozilla.old/xpcom/reflect/xptcall/tests/TestXPTCInvoke.cpp 2003-02-22 23:41:18.000000000 -0500 ++++ mozilla/xpcom/reflect/xptcall/tests/TestXPTCInvoke.cpp 2003-09-27 16:21:05.754703152 -0400 +@@ -87,6 +87,19 @@ + float p17, float p18, float p19, float p20, + float *retval) = 0; + ++ NS_IMETHOD AddMixedInts(PRInt64 p1, PRInt32 p2, PRInt64 p3, PRInt32 p4, ++ PRInt32 p5, PRInt64 p6, PRInt32 p7, PRInt32 p8, ++ PRInt64 p9, PRInt32 p10, PRInt64* retval) = 0; ++ ++ NS_IMETHOD AddMixedInts2(PRInt32 p1, PRInt64 p2, PRInt32 p3, PRInt64 p4, ++ PRInt64 p5, PRInt32 p6, PRInt64 p7, PRInt64 p8, ++ PRInt32 p9, PRInt64 p10, PRInt64* retval) = 0; ++ ++ NS_IMETHOD AddMixedFloats(float p1, float p2, double p3, double p4, ++ float p5, float p6, double p7, double p8, ++ float p9, double p10, float p11, ++ double *retval) = 0; ++ + NS_IMETHOD PassTwoStrings(const char* s1, const char* s2, char** retval) = 0; + + }; +@@ -114,6 +127,19 @@ + float p5, float p6, float p7, float p8, + float p9, float p10, float* retval); + ++ NS_IMETHOD AddMixedInts(PRInt64 p1, PRInt32 p2, PRInt64 p3, PRInt32 p4, ++ PRInt32 p5, PRInt64 p6, PRInt32 p7, PRInt32 p8, ++ PRInt64 p9, PRInt32 p10, PRInt64* retval); ++ ++ NS_IMETHOD AddMixedInts2(PRInt32 p1, PRInt64 p2, PRInt32 p3, PRInt64 p4, ++ PRInt64 p5, PRInt32 p6, PRInt64 p7, PRInt64 p8, ++ PRInt32 p9, PRInt64 p10, PRInt64* retval); ++ ++ NS_IMETHOD AddMixedFloats(float p1, float p2, double p3, double p4, ++ float p5, float p6, double p7, double p8, ++ float p9, double p10, float p11, ++ double *retval); ++ + NS_IMETHOD AddManyManyFloats(float p1, float p2, float p3, float p4, + float p5, float p6, float p7, float p8, + float p9, float p10, float p11, float p12, +@@ -211,6 +237,20 @@ + } + + NS_IMETHODIMP ++InvokeTestTarget::AddMixedFloats(float p1, float p2, double p3, double p4, ++ float p5, float p6, double p7, double p8, ++ float p9, double p10, float p11, ++ double *retval) ++{ ++#ifdef DEBUG_TESTINVOKE ++ printf("%f, %f, %lf, %lf, %f, %f, %lf, %lf, %f, %lf, %f\n", ++ p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11); ++#endif ++ *retval = p1 + p2 + p3 + p4 + p5 + p6 + p7 + p8 + p9 + p10 + p11; ++ return NS_OK; ++} ++ ++NS_IMETHODIMP + InvokeTestTarget::AddManyManyFloats(float p1, float p2, float p3, float p4, + float p5, float p6, float p7, float p8, + float p9, float p10, float p11, float p12, +@@ -230,6 +270,24 @@ + } + + NS_IMETHODIMP ++InvokeTestTarget::AddMixedInts(PRInt64 p1, PRInt32 p2, PRInt64 p3, PRInt32 p4, ++ PRInt32 p5, PRInt64 p6, PRInt32 p7, PRInt32 p8, ++ PRInt64 p9, PRInt32 p10, PRInt64* retval) ++{ ++ *retval = p1 + p2 + p3 + p4 + p5 + p6 + p7 + p8 + p9 + p10; ++ return NS_OK; ++} ++ ++NS_IMETHODIMP ++InvokeTestTarget::AddMixedInts2(PRInt32 p1, PRInt64 p2, PRInt32 p3, PRInt64 p4, ++ PRInt64 p5, PRInt32 p6, PRInt64 p7, PRInt64 p8, ++ PRInt32 p9, PRInt64 p10, PRInt64* retval) ++{ ++ *retval = p1 + p2 + p3 + p4 + p5 + p6 + p7 + p8 + p9 + p10; ++ return NS_OK; ++} ++ ++NS_IMETHODIMP + InvokeTestTarget::PassTwoStrings(const char* s1, const char* s2, char** retval) + { + const char milk[] = "milk"; +@@ -309,14 +367,33 @@ + else + printf("\tFAILED"); + +- if(NS_SUCCEEDED(test->PassTwoStrings("moo","cow",&outS))) { +- printf(" = %s\n", outS); ++ if(NS_SUCCEEDED(test->AddMixedInts(1,2,3,4,5,6,7,8,9,10,&out64))) ++ { ++ LL_L2I(tmp32, out64); ++ printf("\t1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = %d\n", (int)tmp32); ++ } ++ else ++ printf("\tFAILED"); ++ ++ if(NS_SUCCEEDED(test->AddMixedInts2(1,2,3,4,5,6,7,8,9,10,&out64))) ++ { ++ LL_L2I(tmp32, out64); ++ printf("\t1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = %d\n", (int)tmp32); ++ } ++ else ++ printf("\tFAILED"); ++ ++ if(NS_SUCCEEDED(test->AddMixedFloats(1,2,3,4,5,6,7,8,9,10,11,&outD))) ++ printf("\t1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 = %f\n", (double)outD); ++ else ++ printf("\tFAILED"); ++ ++ if (NS_SUCCEEDED(test->PassTwoStrings("moo","cow",&outS))) { ++ printf(" = %s\n", outS); + nsMemory::Free(outS); +- } else ++ } else + printf("\tFAILED"); + +- +- + printf("calling via invoke:\n"); + + nsXPTCVariant var[21]; +@@ -388,8 +465,8 @@ + var[2].flags = nsXPTCVariant::PTR_IS_DATA; + var[2].ptr = &var[2].val.i64; + +- if(NS_SUCCEEDED(XPTC_InvokeByIndex(test, 6, 3, var))) +- printf("\t2L * 2L = %d\n", (int)var[2].val.i64); ++ if(NS_SUCCEEDED(XPTC_InvokeByIndex(test, 6, 3, var))) ++ printf("\t2L * 2L = %d\n", (int)var[2].val.i64); + else + printf("\tFAILED"); + +@@ -559,6 +636,8 @@ + if(NS_SUCCEEDED(XPTC_InvokeByIndex(test, 10, 11, var))) + printf("\t1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = %ff\n", + (double) var[10].val.f); ++ else ++ printf("\tFAILED"); + + var[0].val.f = 1.0f; + var[0].type = nsXPTType::T_FLOAT; +@@ -649,6 +728,163 @@ + printf("\t1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 = %ff\n", + (double) var[20].val.f); + ++ var[0].val.i64 = 1; ++ var[0].type = nsXPTType::T_I64; ++ var[0].flags = 0; ++ ++ var[1].val.i32 = 2; ++ var[1].type = nsXPTType::T_I32; ++ var[1].flags = 0; ++ ++ var[2].val.i64 = 3; ++ var[2].type = nsXPTType::T_I64; ++ var[2].flags = 0; ++ ++ var[3].val.i32 = 4; ++ var[3].type = nsXPTType::T_I32; ++ var[3].flags = 0; ++ ++ var[4].val.i32 = 5; ++ var[4].type = nsXPTType::T_I32; ++ var[4].flags = 0; ++ ++ var[5].val.i64 = 6; ++ var[5].type = nsXPTType::T_I64; ++ var[5].flags = 0; ++ ++ var[6].val.i32 = 7; ++ var[6].type = nsXPTType::T_I32; ++ var[6].flags = 0; ++ ++ var[7].val.i32 = 8; ++ var[7].type = nsXPTType::T_I32; ++ var[7].flags = 0; ++ ++ var[8].val.i64 = 9; ++ var[8].type = nsXPTType::T_I64; ++ var[8].flags = 0; ++ ++ var[9].val.i32 = 10; ++ var[9].type = nsXPTType::T_I32; ++ var[9].flags = 0; ++ ++ var[10].val.i64 = 0; ++ var[10].type = nsXPTType::T_I64; ++ var[10].flags = nsXPTCVariant::PTR_IS_DATA; ++ var[10].ptr = &var[10].val.i64; ++ ++ if(NS_SUCCEEDED(XPTC_InvokeByIndex(test, 12, 11, var))) ++ printf("\t1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = %d\n", ++ (int)var[10].val.i64); ++ else ++ printf("\tFAILED"); ++ ++ var[0].val.i32 = 1; ++ var[0].type = nsXPTType::T_I32; ++ var[0].flags = 0; ++ ++ var[1].val.i64 = 2; ++ var[1].type = nsXPTType::T_I64; ++ var[1].flags = 0; ++ ++ var[2].val.i32 = 3; ++ var[2].type = nsXPTType::T_I32; ++ var[2].flags = 0; ++ ++ var[3].val.i64 = 4; ++ var[3].type = nsXPTType::T_I64; ++ var[3].flags = 0; ++ ++ var[4].val.i64 = 5; ++ var[4].type = nsXPTType::T_I64; ++ var[4].flags = 0; ++ ++ var[5].val.i32 = 6; ++ var[5].type = nsXPTType::T_I32; ++ var[5].flags = 0; ++ ++ var[6].val.i64 = 7; ++ var[6].type = nsXPTType::T_I64; ++ var[6].flags = 0; ++ ++ var[7].val.i64 = 8; ++ var[7].type = nsXPTType::T_I64; ++ var[7].flags = 0; ++ ++ var[8].val.i32 = 9; ++ var[8].type = nsXPTType::T_I32; ++ var[8].flags = 0; ++ ++ var[9].val.i64 = 10; ++ var[9].type = nsXPTType::T_I64; ++ var[9].flags = 0; ++ ++ var[10].val.i64 = 0; ++ var[10].type = nsXPTType::T_I64; ++ var[10].flags = nsXPTCVariant::PTR_IS_DATA; ++ var[10].ptr = &var[10].val.i64; ++ ++ if(NS_SUCCEEDED(XPTC_InvokeByIndex(test, 13, 11, var))) ++ printf("\t1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = %d\n", ++ (int)var[10].val.i64); ++ else ++ printf("\tFAILED"); ++ ++ var[0].val.f = 1.0f; ++ var[0].type = nsXPTType::T_FLOAT; ++ var[0].flags = 0; ++ ++ var[1].val.f = 2.0f; ++ var[1].type = nsXPTType::T_FLOAT; ++ var[1].flags = 0; ++ ++ var[2].val.d = 3.0; ++ var[2].type = nsXPTType::T_DOUBLE; ++ var[2].flags = 0; ++ ++ var[3].val.d = 4.0; ++ var[3].type = nsXPTType::T_DOUBLE; ++ var[3].flags = 0; ++ ++ var[4].val.f = 5.0f; ++ var[4].type = nsXPTType::T_FLOAT; ++ var[4].flags = 0; ++ ++ var[5].val.f = 6.0f; ++ var[5].type = nsXPTType::T_FLOAT; ++ var[5].flags = 0; ++ ++ var[6].val.d = 7.0; ++ var[6].type = nsXPTType::T_DOUBLE; ++ var[6].flags = 0; ++ ++ var[7].val.d = 8.0; ++ var[7].type = nsXPTType::T_DOUBLE; ++ var[7].flags = 0; ++ ++ var[8].val.f = 9.0f; ++ var[8].type = nsXPTType::T_FLOAT; ++ var[8].flags = 0; ++ ++ var[9].val.d = 10.0; ++ var[9].type = nsXPTType::T_DOUBLE; ++ var[9].flags = 0; ++ ++ var[10].val.f = 11.0f; ++ var[10].type = nsXPTType::T_FLOAT; ++ var[10].flags = 0; ++ ++ var[11].val.d = 0.0; ++ var[11].type = nsXPTType::T_DOUBLE; ++ var[11].flags = nsXPTCVariant::PTR_IS_DATA; ++ var[11].ptr = &var[11].val.d; ++ ++ if(NS_SUCCEEDED(XPTC_InvokeByIndex(test, 14, 12, var))) ++ printf("\t1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 = %f\n", ++ var[11].val.d); ++ else ++ printf("\tFAILED"); ++ + var[0].val.p = (void*)"moo"; + var[0].type = nsXPTType::T_CHAR_STR; + var[0].flags = 0; +@@ -662,12 +898,11 @@ + var[2].flags = nsXPTCVariant::PTR_IS_DATA; + var[2].ptr = &var[2].val.p; + +- if(NS_SUCCEEDED(XPTC_InvokeByIndex(test, 12, 3, var))) ++ if(NS_SUCCEEDED(XPTC_InvokeByIndex(test, 15, 3, var))) + printf(" = %s\n", var[2].val.p); + else + printf("\tFAILED"); + +- + DoMultipleInheritenceTest(); + DoMultipleInheritenceTest2(); + // Disabled by default - takes too much time on slow machines diff --git a/www-client/mozilla-firefox/files/mozilla-firefox-1.0-4ft2.patch b/www-client/mozilla-firefox/files/mozilla-firefox-1.0-4ft2.patch new file mode 100644 index 000000000000..11028aba71cc --- /dev/null +++ b/www-client/mozilla-firefox/files/mozilla-firefox-1.0-4ft2.patch @@ -0,0 +1,654 @@ +This patch is from +https://bugzilla.mozilla.org/show_bug.cgi?id=234035#c65 to enable +linking against freetype-2.1.8+. It disables the experimental +freetype caching. I modified this patch slightly to apply to 1.0; +some things had moved around in the files since the original patch. + +15 Nov 2004 agriffis + +--- gfx/idl/nsIFreeType2.idl.agriffis 2004-04-15 21:09:33.000000000 -0400 ++++ gfx/idl/nsIFreeType2.idl 2004-11-15 13:29:05.120343408 -0500 +@@ -98,8 +98,6 @@ + { + + readonly attribute FT_Library library; +- readonly attribute FTC_Manager FTCacheManager; +- readonly attribute FTC_Image_Cache ImageCache; + + void doneFace(in FT_Face face); + void doneFreeType(in FT_Library lib); +@@ -114,17 +112,8 @@ + in FT_Long face_num, out FT_Face face); + void outlineDecompose(in FT_Outline_p outline, + in const_FT_Outline_Funcs_p funcs, in voidPtr p); ++ void setPixelSizes(in FT_Face face, in FT_UInt width, in FT_UInt height); + void setCharmap(in FT_Face face, in FT_CharMap charmap); +- void imageCacheLookup(in FTC_Image_Cache cache, in FTC_Image_Desc_p desc, +- in FT_UInt gindex, out FT_Glyph glyph); +- void managerLookupSize(in FTC_Manager manager, in FTC_Font font, +- out FT_Face face, out FT_Size size); +- void managerDone(in FTC_Manager manager); +- void managerNew(in FT_Library lib, in FT_UInt max_faces, +- in FT_UInt max_sizes, in FT_ULong max_bytes, +- in FTC_Face_Requester requester, in FT_Pointer req_data, +- out FTC_Manager manager); +- void imageCacheNew(in FTC_Manager manager, out FTC_Image_Cache cache); + /* #ifdef MOZ_SVG */ + void glyphTransform(in FT_Glyph glyph, in FT_Matrix_p matrix, + in FT_Vector_p delta); +--- gfx/src/ps/nsFontMetricsPS.h.agriffis 2003-04-22 12:25:09.000000000 -0400 ++++ gfx/src/ps/nsFontMetricsPS.h 2004-11-15 13:37:58.431267824 -0500 +@@ -320,7 +320,8 @@ + nsCOMPtr<nsITrueTypeFontCatalogEntry> mFaceID; + nsCOMPtr<nsIFreeType2> mFt2; + PRUint16 mPixelSize; +- FTC_Image_Desc mImageDesc; ++ FT_Face mFace; ++ FT_Library mFreeTypeLibrary; + + + static PRBool AddUserPref(nsIAtom *aLang, const nsFont& aFont, +@@ -363,7 +364,8 @@ + protected: + nsCOMPtr<nsITrueTypeFontCatalogEntry> mEntry; + nsCOMPtr<nsIFreeType2> mFt2; +- FTC_Image_Desc mImageDesc; ++ FT_Face mFace; ++ FT_Library mFreeTypeLibrary; + }; + #endif + +--- gfx/src/ps/nsFontMetricsPS.cpp.agriffis 2004-02-04 20:57:05.000000000 -0500 ++++ gfx/src/ps/nsFontMetricsPS.cpp 2004-11-15 13:29:05.123342952 -0500 +@@ -1141,21 +1141,26 @@ + + mPixelSize = NSToIntRound(app2dev * mFont->size); + +- mImageDesc.font.face_id = (void*)mEntry; +- mImageDesc.font.pix_width = mPixelSize; +- mImageDesc.font.pix_height = mPixelSize; +- mImageDesc.image_type = 0; +- + nsresult rv; + mFt2 = do_GetService(NS_FREETYPE2_CONTRACTID, &rv); + if (NS_FAILED(rv)) { ++ NS_ERROR("failed to get ft2 service"); ++ return NS_ERROR_FAILURE; ++ } ++ ++ if (NS_FAILED(mFt2->GetLibrary(&mFreeTypeLibrary))) { ++ NS_ERROR("failed to get ft2 library"); + return NS_ERROR_FAILURE; + } ++ ++ mFace = nsnull; + return NS_OK; + } + + nsFontPSFreeType::~nsFontPSFreeType() + { ++ if (mFace) ++ mFt2->DoneFace(mFace); + mEntry = nsnull; + } + +@@ -1180,32 +1185,26 @@ + nscoord + nsFontPSFreeType::GetWidth(const PRUnichar* aString, PRUint32 aLength) + { +- FT_UInt glyph_index; +- FT_Glyph glyph; +- double origin_x = 0; +- + // get the face/size from the FreeType cache + FT_Face face = getFTFace(); + NS_ASSERTION(face, "failed to get face/size"); + if (!face) + return 0; + +- FTC_Image_Cache iCache; +- nsresult rv = mFt2->GetImageCache(&iCache); +- if (NS_FAILED(rv)) { +- NS_ERROR("Failed to get Image Cache"); +- return 0; +- } ++ FT_UInt glyph_index; ++ FT_Glyph glyph; ++ double origin_x = 0; + ++ // XXX : we might need some caching here + for (PRUint32 i=0; i<aLength; i++) { +- mFt2->GetCharIndex((FT_Face)face, aString[i], &glyph_index); +- nsresult rv = mFt2->ImageCacheLookup(iCache, &mImageDesc, +- glyph_index, &glyph); +- if (NS_FAILED(rv)) { ++ mFt2->GetCharIndex(face, aString[i], &glyph_index); ++ if (NS_FAILED(mFt2->LoadGlyph(face, glyph_index, FT_LOAD_DEFAULT)) || ++ NS_FAILED(mFt2->GetGlyph(face->glyph, &glyph))) { + origin_x += FT_REG_TO_16_16(face->size->metrics.x_ppem/2 + 2); + continue; + } + origin_x += glyph->advance.x; ++ mFt2->DoneGlyph(glyph); + } + + NS_ENSURE_TRUE(mFontMetrics, 0); +@@ -1224,16 +1223,26 @@ + FT_Face + nsFontPSFreeType::getFTFace() + { +- FT_Face face = nsnull; +- +- FTC_Manager cManager; +- mFt2->GetFTCacheManager(&cManager); +- nsresult rv = mFt2->ManagerLookupSize(cManager, &mImageDesc.font, +- &face, nsnull); ++ if (mFace) return mFace; ++ ++ nsCAutoString fileName; ++ PRInt16 faceIndex; ++ mEntry->GetFileName(fileName); ++ mEntry->GetFaceIndex(&faceIndex); ++ ++ nsresult rv = ++ mFt2->NewFace(mFreeTypeLibrary, fileName.get(), faceIndex, &mFace); ++ + NS_ASSERTION(rv==0, "failed to get face/size"); +- if (rv) +- return nsnull; +- return face; ++ if (NS_FAILED(rv)) { ++ return nsnull; ++ } ++ ++ if (NS_FAILED(mFt2->SetPixelSizes(mFace, mPixelSize, 0))) { ++ return nsnull; ++ } ++ ++ return mFace; + } + + nscoord +@@ -1618,26 +1627,23 @@ + + void nsFT2Type8Generator::GeneratePSFont(FILE* aFile) + { +- nsCAutoString fontName, styleName; +- mEntry->GetFamilyName(fontName); +- mEntry->GetStyleName(styleName); +- +- mImageDesc.font.face_id = (void*)mEntry; +- // TT glyph has no relation to size +- mImageDesc.font.pix_width = 16; +- mImageDesc.font.pix_height = 16; +- mImageDesc.image_type = 0; +- FT_Face face = nsnull; +- FTC_Manager cManager; +- mFt2->GetFTCacheManager(&cManager); +- nsresult rv = mFt2->ManagerLookupSize(cManager, &mImageDesc.font, +- &face, nsnull); +- if (NS_FAILED(rv)) +- return; ++ if (mFace == nsnull) { ++ nsCAutoString fileName; ++ PRInt16 faceIndex; ++ ++ mEntry->GetFileName(fileName); ++ mEntry->GetFaceIndex(&faceIndex); ++ if (NS_FAILED(mFt2-> ++ NewFace(mFreeTypeLibrary, fileName.get(), faceIndex, &mFace))) { ++ return; ++ } ++ NS_ASSERTION(mFace != nsnull, "mFace is null"); ++ } ++ + + int wmode = 0; + if (!mSubset.IsEmpty()) +- FT2SubsetToType8(face, mSubset.get(), mSubset.Length(), wmode, aFile); ++ FT2SubsetToType8(mFace, mSubset.get(), mSubset.Length(), wmode, aFile); + } + #endif //MOZ_ENABLE_FREETYPE2 + +--- gfx/src/x11shared/nsFontFreeType.cpp.agriffis 2003-12-25 03:24:52.000000000 -0500 ++++ gfx/src/x11shared/nsFontFreeType.cpp 2004-11-15 13:29:05.125342648 -0500 +@@ -173,15 +173,22 @@ + FT_Face + nsFreeTypeFont::getFTFace() + { +- FT_Face face = nsnull; +- FTC_Manager mgr; ++ if (mFace) return mFace; ++ ++ nsCAutoString fileName; ++ PRInt16 faceIndex; ++ mFaceID->GetFileName(fileName); ++ mFaceID->GetFaceIndex(&faceIndex); ++ + nsresult rv; +- mFt2->GetFTCacheManager(&mgr); +- rv = mFt2->ManagerLookupSize(mgr, &mImageDesc.font, &face, nsnull); ++ rv = mFt2->NewFace(mFreeTypeLibrary, fileName.get(), faceIndex, &mFace); + NS_ASSERTION(NS_SUCCEEDED(rv), "failed to get face/size"); + if (NS_FAILED(rv)) + return nsnull; +- return face; ++ rv = mFt2->SetPixelSizes(mFace, mPixelSize, 0); ++ if (NS_FAILED(rv)) ++ return nsnull; ++ return mFace; + } + + nsFreeTypeFont::nsFreeTypeFont(nsITrueTypeFontCatalogEntry *aFaceID, +@@ -191,21 +198,20 @@ + PRBool embedded_bimap = PR_FALSE; + mFaceID = aFaceID; + mPixelSize = aPixelSize; +- mImageDesc.font.face_id = (void*)mFaceID; +- mImageDesc.font.pix_width = aPixelSize; +- mImageDesc.font.pix_height = aPixelSize; +- mImageDesc.image_type = 0; ++//mLoadFlag = FT_LOAD_RENDER; ++ mLoadFlag = 0; ++ mFace = nsnull; + + if (aPixelSize < nsFreeType2::gAntiAliasMinimum) { +- mImageDesc.image_type |= ftc_image_mono; ++ mLoadFlag |= FT_LOAD_MONOCHROME; + anti_alias = PR_FALSE; + } + + if (nsFreeType2::gFreeType2Autohinted) +- mImageDesc.image_type |= ftc_image_flag_autohinted; ++ mLoadFlag |= FT_LOAD_FORCE_AUTOHINT; + + if (nsFreeType2::gFreeType2Unhinted) +- mImageDesc.image_type |= ftc_image_flag_unhinted; ++ mLoadFlag |= FT_LOAD_NO_HINTING; + + PRUint32 num_embedded_bitmaps, i; + PRInt32* embedded_bitmapheights; +@@ -218,7 +224,7 @@ + if (embedded_bitmapheights[i] == aPixelSize) { + embedded_bimap = PR_TRUE; + // unhinted must be set for embedded bitmaps to be used +- mImageDesc.image_type |= ftc_image_flag_unhinted; ++ mLoadFlag |= FT_LOAD_NO_HINTING; + break; + } + } +@@ -230,6 +236,11 @@ + mFt2 = do_GetService(NS_FREETYPE2_CONTRACTID, &rv); + NS_ASSERTION(NS_SUCCEEDED(rv), "failed to find FreeType routines"); + ++ if (mFt2) { ++ rv = mFt2->GetLibrary(&mFreeTypeLibrary); ++ NS_ASSERTION(NS_SUCCEEDED(rv), "failed to find FreeType library"); ++ } ++ + FREETYPE_FONT_PRINTF(("anti_alias=%d, embedded_bitmap=%d, " + "AutoHinted=%d, gFreeType2Unhinted = %d, " + "size=%dpx, \"%s\"", +@@ -288,8 +299,6 @@ + PRInt32* aDescent, + PRInt32* aWidth) + { +- nsresult rv; +- + *aLeftBearing = 0; + *aRightBearing = 0; + *aAscent = 0; +@@ -312,11 +321,6 @@ + if (!face) + return NS_ERROR_FAILURE; + +- FTC_Image_Cache icache; +- mFt2->GetImageCache(&icache); +- if (!icache) +- return NS_ERROR_FAILURE; +- + // get the text size + PRUint32 i, extraSurrogateLength; + for (i=0; i<aLength; i+=1+extraSurrogateLength) { +@@ -337,16 +341,17 @@ + } + mFt2->GetCharIndex(face, code_point, &glyph_index); + +- //NS_ASSERTION(glyph_index,"failed to get glyph"); +- if (glyph_index) { +- rv = mFt2->ImageCacheLookup(icache, &mImageDesc, glyph_index, &glyph); +- NS_ASSERTION(NS_SUCCEEDED(rv),"error loading glyph"); +- } +- if ((glyph_index) && (NS_SUCCEEDED(rv))) { ++ // XXX : we need some caching here ++ if (glyph_index && ++ NS_SUCCEEDED(mFt2->LoadGlyph(face, glyph_index, mLoadFlag)) && ++// NS_SUCCEEDED(mFt2->LoadGlyph(face, glyph_index, FT_LOAD_DEFAULT)) && ++ NS_SUCCEEDED(mFt2->GetGlyph(face->glyph, &glyph))) { + mFt2->GlyphGetCBox(glyph, ft_glyph_bbox_pixels, &glyph_bbox); + advance = FT_16_16_TO_REG(glyph->advance.x); ++ mFt2->DoneGlyph(glyph); + } + else { ++ NS_ERROR("failed to get or load glyph"); + // allocate space to draw an empty box in + GetFallbackGlyphMetrics(&glyph_bbox, face); + advance = glyph_bbox.xMax + 1; +@@ -401,11 +406,6 @@ + if (!face) + return 0; + +- FTC_Image_Cache icache; +- mFt2->GetImageCache(&icache); +- if (!icache) +- return 0; +- + PRUint32 i, extraSurrogateLength; + for (i=0; i<aLength; i+=1+extraSurrogateLength) { + extraSurrogateLength=0; +@@ -418,15 +418,18 @@ + // skip aString[i+1], it is already used as low surrogate + extraSurrogateLength = 1; + } ++ ++ // XXX : we need some caching here + mFt2->GetCharIndex((FT_Face)face, code_point, &glyph_index); +- nsresult rv; +- rv = mFt2->ImageCacheLookup(icache, &mImageDesc, glyph_index, &glyph); +- NS_ASSERTION(NS_SUCCEEDED(rv),"error loading glyph"); +- if (NS_FAILED(rv)) { ++ if (NS_FAILED(mFt2->LoadGlyph(face, glyph_index, mLoadFlag)) || ++// if (NS_FAILED(mFt2->LoadGlyph(face, glyph_index, FT_LOAD_DEFAULT)) || ++ NS_FAILED(mFt2->GetGlyph(face->glyph, &glyph))) { ++ NS_ERROR("error loading glyph"); + origin_x += face->size->metrics.x_ppem/2 + 2; + continue; + } + origin_x += FT_16_16_TO_REG(glyph->advance.x); ++ mFt2->DoneGlyph(glyph); + } + + return origin_x; +@@ -723,11 +726,6 @@ + if (y%4==0) (*blendPixelFunc)(sub_image, y, ascent-1, black, 255/2); + #endif + +- FTC_Image_Cache icache; +- mFt2->GetImageCache(&icache); +- if (!icache) +- return 0; +- + // + // Get aa glyphs and blend with background + // +@@ -736,7 +734,6 @@ + for (i=0; i<aLength; i+=1+extraSurrogateLength) { + FT_UInt glyph_index; + FT_Glyph glyph; +- nsresult rv; + FT_BBox glyph_bbox; + FT_ULong code_point = aString[i]; + extraSurrogateLength = 0; +@@ -750,11 +747,12 @@ + extraSurrogateLength = 1; + } + ++ // XXX : we need some caching here + mFt2->GetCharIndex(face, code_point, &glyph_index); +- if (glyph_index) { +- rv = mFt2->ImageCacheLookup(icache, &mImageDesc, glyph_index, &glyph); +- } +- if ((glyph_index) && (NS_SUCCEEDED(rv))) { ++ if (glyph_index && ++ NS_SUCCEEDED(mFt2->LoadGlyph(face, glyph_index, mLoadFlag)) && ++// NS_SUCCEEDED(mFt2->LoadGlyph(face, glyph_index, FT_LOAD_DEFAULT)) && ++ NS_SUCCEEDED(mFt2->GetGlyph(face->glyph, &glyph))) { + mFt2->GlyphGetCBox(glyph, ft_glyph_bbox_pixels, &glyph_bbox); + } + else { +@@ -775,13 +773,26 @@ + continue; + } + +- FT_BitmapGlyph slot = (FT_BitmapGlyph)glyph; ++ FT_BitmapGlyph slot; ++ ++ if (glyph->format != FT_GLYPH_FORMAT_BITMAP) ++ { ++ if (mFt2->GlyphToBitmap(&glyph, FT_RENDER_MODE_NORMAL, 0, 1)) { ++ NS_ERROR("failed to convert outline to bitmap "); ++ XDestroyImage(sub_image); ++ mFt2->DoneGlyph(glyph); ++ return 0; ++ } ++ } ++ ++ slot = (FT_BitmapGlyph)glyph; + nsAntiAliasedGlyph aaglyph(glyph_bbox.xMax-glyph_bbox.xMin, + glyph_bbox.yMax-glyph_bbox.yMin, 0); + PRUint8 buf[IMAGE_BUFFER_SIZE]; // try to use the stack for data + if (!aaglyph.WrapFreeType(&glyph_bbox, slot, buf, IMAGE_BUFFER_SIZE)) { + NS_ERROR("failed to wrap freetype image"); + XDestroyImage(sub_image); ++ mFt2->DoneGlyph(glyph); + return 0; + } + +@@ -815,6 +826,7 @@ + x_pos + aaglyph.GetLBearing(), ascent-glyph_bbox.yMax); + + x_pos += aaglyph.GetAdvance(); ++ mFt2->DoneGlyph(glyph); + } + + // +--- gfx/src/x11shared/nsFontFreeType.h.agriffis 2003-04-22 12:25:13.000000000 -0400 ++++ gfx/src/x11shared/nsFontFreeType.h 2004-11-15 13:29:05.125342648 -0500 +@@ -110,8 +110,10 @@ + XImage *GetXImage(PRUint32 width, PRUint32 height); + nsITrueTypeFontCatalogEntry *mFaceID; + PRUint16 mPixelSize; +- FTC_Image_Desc mImageDesc; + nsCOMPtr<nsIFreeType2> mFt2; ++ FT_Face mFace; ++ FT_Int32 mLoadFlag; ++ FT_Library mFreeTypeLibrary; + }; + + void WeightTableInitCorrection(PRUint8*, PRUint8, double); +--- gfx/src/freetype/nsFreeType.cpp.agriffis 2004-02-07 10:22:30.000000000 -0500 ++++ gfx/src/freetype/nsFreeType.cpp 2004-11-15 13:29:05.121343256 -0500 +@@ -109,12 +109,8 @@ + {"FT_Load_Glyph", NS_FT2_OFFSET(nsFT_Load_Glyph), PR_TRUE}, + {"FT_New_Face", NS_FT2_OFFSET(nsFT_New_Face), PR_TRUE}, + {"FT_Outline_Decompose", NS_FT2_OFFSET(nsFT_Outline_Decompose), PR_TRUE}, ++ {"FT_Set_Pixel_Sizes", NS_FT2_OFFSET(nsFT_Set_Pixel_Sizes), PR_TRUE}, + {"FT_Set_Charmap", NS_FT2_OFFSET(nsFT_Set_Charmap), PR_TRUE}, +- {"FTC_Image_Cache_Lookup", NS_FT2_OFFSET(nsFTC_Image_Cache_Lookup), PR_TRUE}, +- {"FTC_Manager_Lookup_Size", NS_FT2_OFFSET(nsFTC_Manager_Lookup_Size), PR_TRUE}, +- {"FTC_Manager_Done", NS_FT2_OFFSET(nsFTC_Manager_Done), PR_TRUE}, +- {"FTC_Manager_New", NS_FT2_OFFSET(nsFTC_Manager_New), PR_TRUE}, +- {"FTC_Image_Cache_New", NS_FT2_OFFSET(nsFTC_Image_Cache_New), PR_TRUE}, + // #ifdef MOZ_SVG + {"FT_Glyph_Transform", NS_FT2_OFFSET(nsFT_Glyph_Transform), PR_TRUE}, + {"FT_Get_Kerning", NS_FT2_OFFSET(nsFT_Get_Kerning), PR_TRUE}, +@@ -274,59 +270,21 @@ + } + + NS_IMETHODIMP +-nsFreeType2::SetCharmap(FT_Face face, FT_CharMap charmap) +-{ +- // call the FreeType2 function via the function pointer +- FT_Error error = nsFT_Set_Charmap(face, charmap); +- return error ? NS_ERROR_FAILURE : NS_OK; +-} +- +-NS_IMETHODIMP +-nsFreeType2::ImageCacheLookup(FTC_Image_Cache cache, FTC_Image_Desc *desc, +- FT_UInt glyphID, FT_Glyph *glyph) +-{ +- // call the FreeType2 function via the function pointer +- FT_Error error = nsFTC_Image_Cache_Lookup(cache, desc, glyphID, glyph); +- return error ? NS_ERROR_FAILURE : NS_OK; +-} +- +-NS_IMETHODIMP +-nsFreeType2::ManagerLookupSize(FTC_Manager manager, FTC_Font font, +- FT_Face *face, FT_Size *size) ++nsFreeType2::SetPixelSizes(FT_Face face, FT_UInt width, FT_UInt height) + { + // call the FreeType2 function via the function pointer +- FT_Error error = nsFTC_Manager_Lookup_Size(manager, font, face, size); ++ FT_Error error = nsFT_Set_Pixel_Sizes(face, width, height); + return error ? NS_ERROR_FAILURE : NS_OK; + } +- +-NS_IMETHODIMP +-nsFreeType2::ManagerDone(FTC_Manager manager) +-{ +- // call the FreeType2 function via the function pointer +- nsFTC_Manager_Done(manager); +- return NS_OK; +-} +- ++ + NS_IMETHODIMP +-nsFreeType2::ManagerNew(FT_Library library, FT_UInt max_faces, +- FT_UInt max_sizes, FT_ULong max_bytes, +- FTC_Face_Requester requester, FT_Pointer req_data, +- FTC_Manager *manager) ++nsFreeType2::SetCharmap(FT_Face face, FT_CharMap charmap) + { + // call the FreeType2 function via the function pointer +- FT_Error error = nsFTC_Manager_New(library, max_faces, max_sizes, max_bytes, +- requester, req_data, manager); ++ FT_Error error = nsFT_Set_Charmap(face, charmap); + return error ? NS_ERROR_FAILURE : NS_OK; + } + +-NS_IMETHODIMP +-nsFreeType2::ImageCacheNew(FTC_Manager manager, FTC_Image_Cache *cache) +-{ +- // call the FreeType2 function via the function pointer +- FT_Error error = nsFTC_Image_Cache_New(manager, cache); +- return error ? NS_ERROR_FAILURE : NS_OK; +-} +- + // #ifdef MOZ_SVG + NS_IMETHODIMP + nsFreeType2::GlyphTransform(FT_Glyph glyph, FT_Matrix * matrix, FT_Vector * delta) +@@ -389,20 +347,6 @@ + } + + NS_IMETHODIMP +-nsFreeType2::GetImageCache(FTC_Image_Cache *aCache) +-{ +- *aCache = mImageCache; +- return NS_OK; +-} +- +-NS_IMETHODIMP +-nsFreeType2::GetFTCacheManager(FTC_Manager *aManager) +-{ +- *aManager = mFTCacheManager; +- return NS_OK; +-} +- +-NS_IMETHODIMP + nsFreeType2::GetLibrary(FT_Library *aLibrary) + { + *aLibrary = mFreeTypeLibrary; +@@ -425,8 +369,6 @@ + { + mSharedLib = nsnull; + mFreeTypeLibrary = nsnull; +- mFTCacheManager = nsnull; +- mImageCache = nsnull; + } + + // I would like to make this a static member function but the compilier +@@ -456,12 +398,6 @@ + delete gFreeTypeFaces; + gFreeTypeFaces = nsnull; + } +- // mImageCache released by cache manager +- if (mFTCacheManager) { +- // use "this->" to make sure it is obivious we are calling the member func +- this->ManagerDone(mFTCacheManager); +- mFTCacheManager = nsnull; +- } + if (mFreeTypeLibrary) { + // use "this->" to make sure it is obivious we are calling the member func + this->DoneFreeType(mFreeTypeLibrary); +@@ -658,17 +594,6 @@ + mFreeTypeLibrary = nsnull; + goto cleanup_and_return; + } +- // use "this->" to make sure it is obivious we are calling the member func +- rv = this->ManagerNew(mFreeTypeLibrary, 0, 0, 0, nsFreeTypeFaceRequester, +- this, &mFTCacheManager); +- NS_ASSERTION(NS_SUCCEEDED(rv), "failed to create FreeType Cache manager"); +- if (NS_FAILED(rv)) +- goto cleanup_and_return; +- // use "this->" to make sure it is obivious we are calling the member func +- rv = this->ImageCacheNew(mFTCacheManager, &mImageCache); +- NS_ASSERTION(NS_SUCCEEDED(rv), "failed to create FreeType image cache"); +- if (NS_FAILED(rv)) +- goto cleanup_and_return; + return PR_TRUE; + + cleanup_and_return: +--- gfx/src/freetype/nsFreeType.h.agriffis 2004-04-16 17:31:42.000000000 -0400 ++++ gfx/src/freetype/nsFreeType.h 2004-11-15 13:29:05.122343104 -0500 +@@ -102,15 +102,8 @@ + typedef FT_Error (*FT_Outline_Decompose_t) + (FT_Outline*, const FT_Outline_Funcs*, void*); + typedef FT_Error (*FT_New_Face_t)(FT_Library, const char*, FT_Long, FT_Face*); ++typedef FT_Error (*FT_Set_Pixel_Sizes_t)(FT_Face face, FT_UInt, FT_UInt); + typedef FT_Error (*FT_Set_Charmap_t)(FT_Face face, FT_CharMap charmap); +-typedef FT_Error (*FTC_Image_Cache_Lookup_t) +- (FTC_Image_Cache, FTC_Image_Desc*, FT_UInt, FT_Glyph*); +-typedef FT_Error (*FTC_Manager_Lookup_Size_t) +- (FTC_Manager, FTC_Font, FT_Face*, FT_Size*); +-typedef FT_Error (*FTC_Manager_Done_t)(FTC_Manager); +-typedef FT_Error (*FTC_Manager_New_t)(FT_Library, FT_UInt, FT_UInt, FT_ULong, +- FTC_Face_Requester, FT_Pointer, FTC_Manager*); +-typedef FT_Error (*FTC_Image_Cache_New_t)(FTC_Manager, FTC_Image_Cache*); + // #ifdef MOZ_SVG + typedef FT_Error (*FT_Glyph_Transform_t)(FT_Glyph, FT_Matrix*, FT_Vector*); + typedef FT_Error (*FT_Get_Kerning_t) +@@ -163,12 +156,8 @@ + FT_Load_Glyph_t nsFT_Load_Glyph; + FT_New_Face_t nsFT_New_Face; + FT_Outline_Decompose_t nsFT_Outline_Decompose; ++ FT_Set_Pixel_Sizes_t nsFT_Set_Pixel_Sizes; + FT_Set_Charmap_t nsFT_Set_Charmap; +- FTC_Image_Cache_Lookup_t nsFTC_Image_Cache_Lookup; +- FTC_Manager_Lookup_Size_t nsFTC_Manager_Lookup_Size; +- FTC_Manager_Done_t nsFTC_Manager_Done; +- FTC_Manager_New_t nsFTC_Manager_New; +- FTC_Image_Cache_New_t nsFTC_Image_Cache_New; + // #ifdef MOZ_SVG + FT_Glyph_Transform_t nsFT_Glyph_Transform; + FT_Get_Kerning_t nsFT_Get_Kerning; +@@ -181,9 +170,9 @@ + // this array needs to be big enough to hold all the function pointers + // plus one extra for the null at the end + // #ifdef MOZ_SVG +- static FtFuncList FtFuncs[24]; ++ static FtFuncList FtFuncs[20]; + // #else +-// static FtFuncList FtFuncs[20]; ++// static FtFuncList FtFuncs[17]; + // #endif + + protected: +@@ -212,8 +201,6 @@ + + PRLibrary *mSharedLib; + FT_Library mFreeTypeLibrary; +- FTC_Manager mFTCacheManager; +- FTC_Image_Cache mImageCache; + + static nsHashtable *sFontFamilies; + static nsHashtable *sRange1CharSetNames; diff --git a/www-client/mozilla-firefox/files/mozilla-firefox-1.0-kp_separator.patch b/www-client/mozilla-firefox/files/mozilla-firefox-1.0-kp_separator.patch new file mode 100644 index 000000000000..589179158f12 --- /dev/null +++ b/www-client/mozilla-firefox/files/mozilla-firefox-1.0-kp_separator.patch @@ -0,0 +1,11 @@ +--- mozilla/widget/src/gtk2/nsGtkKeyUtils.cpp.original 2004-10-03 20:16:19.884311832 +0200 ++++ mozilla/widget/src/gtk2/nsGtkKeyUtils.cpp 2004-10-03 20:16:31.562536472 +0200 +@@ -280,7 +280,7 @@ + case GDK_KP_Add: + return '+'; + case GDK_KP_Separator: +- return '|'; ++ return ','; + case GDK_KP_Subtract: + return '-'; + case GDK_KP_Decimal: diff --git a/www-client/mozilla-firefox/files/mozilla-firefox-mousebuttons.patch b/www-client/mozilla-firefox/files/mozilla-firefox-mousebuttons.patch new file mode 100644 index 000000000000..2050b7d174d8 --- /dev/null +++ b/www-client/mozilla-firefox/files/mozilla-firefox-mousebuttons.patch @@ -0,0 +1,445 @@ +Index: browser/app/profile/all.js +=================================================================== +RCS file: /cvsroot/mozilla/browser/app/profile/all.js,v +retrieving revision 1.84 +diff -u -r1.84 all.js +--- browser/app/profile/all.js 18 Dec 2003 08:12:58 -0000 1.84 ++++ browser/app/profile/all.js 20 Dec 2003 16:11:27 -0000 +@@ -527,6 +527,29 @@ + pref("mousewheel.withaltkey.numlines",1); + pref("mousewheel.withaltkey.sysnumlines",false); + ++pref("mousewheel.horizscroll.withnokey.action",2); ++pref("mousewheel.horizscroll.withnokey.numlines",-1); ++pref("mousewheel.horizscroll.withnokey.sysnumlines",true); ++pref("mousewheel.horizscroll.withcontrolkey.action",0); ++pref("mousewheel.horizscroll.withcontrolkey.numlines",1); ++pref("mousewheel.horizscroll.withcontrolkey.sysnumlines",true); ++pref("mousewheel.horizscroll.withshiftkey.action",0); ++pref("mousewheel.horizscroll.withshiftkey.numlines",1); ++pref("mousewheel.horizscroll.withshiftkey.sysnumlines",false); ++pref("mousewheel.horizscroll.withaltkey.action",2); ++pref("mousewheel.horizscroll.withaltkey.numlines",-1); ++pref("mousewheel.horizscroll.withaltkey.sysnumlines",false); ++ ++pref("mousebuttonsextended.buttonlist", "67"); ++pref("mousebuttonsextended.buttons.6.action.up", 2); ++pref("mousebuttonsextended.buttons.6.numlines.up", -1); ++pref("mousebuttonsextended.buttons.6.action.down", 2); ++pref("mousebuttonsextended.buttons.6.numlines.down", 1); ++pref("mousebuttonsextended.buttons.7.action.up", 2); ++pref("mousebuttonsextended.buttons.7.numlines.up", 1); ++pref("mousebuttonsextended.buttons.7.action.down", -1); ++pref("mousebuttonsextended.buttons.7.numlines.down", -1); ++ + pref("profile.confirm_automigration",true); + pref("profile.allow_automigration", false); // setting to false bypasses automigration in the profile code + +Index: modules/libpref/src/init/all.js +=================================================================== +RCS file: /cvsroot/mozilla/modules/libpref/src/init/all.js,v +retrieving revision 3.484 +diff -u -r3.484 all.js +--- modules/libpref/src/init/all.js 16 Dec 2003 13:58:02 -0000 3.484 ++++ modules/libpref/src/init/all.js 20 Dec 2003 16:11:27 -0000 +@@ -755,6 +755,29 @@ + pref("mousewheel.withaltkey.numlines",1); + pref("mousewheel.withaltkey.sysnumlines",false); + ++pref("mousewheel.horizscroll.withnokey.action",2); ++pref("mousewheel.horizscroll.withnokey.numlines",-1); ++pref("mousewheel.horizscroll.withnokey.sysnumlines",true); ++pref("mousewheel.horizscroll.withcontrolkey.action",0); ++pref("mousewheel.horizscroll.withcontrolkey.numlines",1); ++pref("mousewheel.horizscroll.withcontrolkey.sysnumlines",true); ++pref("mousewheel.horizscroll.withshiftkey.action",0); ++pref("mousewheel.horizscroll.withshiftkey.numlines",1); ++pref("mousewheel.horizscroll.withshiftkey.sysnumlines",false); ++pref("mousewheel.horizscroll.withaltkey.action",2); ++pref("mousewheel.horizscroll.withaltkey.numlines",-1); ++pref("mousewheel.horizscroll.withaltkey.sysnumlines",false); ++ ++pref("mousebuttonsextended.buttonlist", "67"); ++pref("mousebuttonsextended.buttons.6.action.up", 2); ++pref("mousebuttonsextended.buttons.6.numlines.up", -1); ++pref("mousebuttonsextended.buttons.6.action.down", 2); ++pref("mousebuttonsextended.buttons.6.numlines.down", 1); ++pref("mousebuttonsextended.buttons.7.action.up", 2); ++pref("mousebuttonsextended.buttons.7.numlines.up", 1); ++pref("mousebuttonsextended.buttons.7.action.down", -1); ++pref("mousebuttonsextended.buttons.7.numlines.down", -1); ++ + pref("profile.confirm_automigration",true); + // profile.migration_behavior determines how the profiles root is set + // 0 - use NS_APP_USER_PROFILES_ROOT_DIR +Index: widget/src/gtk/nsWidget.cpp +=================================================================== +RCS file: /cvsroot/mozilla/widget/src/gtk/nsWidget.cpp,v +retrieving revision 1.288 +diff -u -r1.288 nsWidget.cpp +--- widget/src/gtk/nsWidget.cpp 25 Sep 2003 05:34:25 -0000 1.288 ++++ widget/src/gtk/nsWidget.cpp 20 Dec 2003 16:11:27 -0000 +@@ -20,6 +20,8 @@ + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): ++ * Andrew Wellington <proton@wiretapped.net> ++ * Graham Dennis <u3952328@anu.edu.au> + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or +@@ -1884,9 +1886,17 @@ + Release(); + return; + +- // Single-click default. ++ // Single-click default. <-- Perhaps the default should be ++ // decided elsewhere? + default: +- eventType = NS_MOUSE_LEFT_BUTTON_DOWN; ++ // was: eventType = NS_MOUSE_LEFT_BUTTON_DOWN; ++ { ++ nsExtendedMouseEventStatus *eMEStatus; ++ eMEStatus = (nsExtendedMouseEventStatus*) &event.clickCount; ++ eventType = NS_USER_DEFINED_EVENT; ++ eMEStatus->event = nsExtendedMouseEventStatus_down; ++ eMEStatus->button = aGdkButtonEvent->button; ++ } + break; + } + break; +@@ -1955,8 +1965,17 @@ + // LEFT_BUTTON_UP to happen + return; + ++ // Left-click default. <-- Perhaps the default should be ++ // decided elsewhere? + default: +- eventType = NS_MOUSE_LEFT_BUTTON_UP; ++ // was: eventType = NS_MOUSE_LEFT_BUTTON_UP; ++ { ++ nsExtendedMouseEventStatus *eMEStatus; ++ eMEStatus = (nsExtendedMouseEventStatus*) &event.clickCount; ++ eventType = NS_USER_DEFINED_EVENT; ++ eMEStatus->event = nsExtendedMouseEventStatus_up; ++ eMEStatus->button = aGdkButtonEvent->button; ++ } + break; + } + +@@ -2082,6 +2101,7 @@ + nsMouseEvent &anEvent, + PRUint32 aEventType) + { ++ PRUint16 clickCount; + anEvent.message = aEventType; + anEvent.widget = this; + +@@ -2100,16 +2120,23 @@ + switch(aGdkButtonEvent->type) + { + case GDK_BUTTON_PRESS: +- anEvent.clickCount = 1; ++ clickCount = 1; + break; + case GDK_2BUTTON_PRESS: +- anEvent.clickCount = 2; ++ clickCount = 2; + break; + case GDK_3BUTTON_PRESS: +- anEvent.clickCount = 3; ++ clickCount = 3; + break; + default: +- anEvent.clickCount = 1; ++ clickCount = 1; ++ } ++ if (aEventType!=NS_USER_DEFINED_EVENT) { ++ anEvent.clickCount = clickCount; ++ } else { ++ nsExtendedMouseEventStatus *eMEStatus; ++ eMEStatus = (nsExtendedMouseEventStatus*) &anEvent.clickCount; ++ eMEStatus->realClickCount = clickCount; + } + + } +Index: widget/public/nsGUIEvent.h +=================================================================== +RCS file: /cvsroot/mozilla/widget/public/nsGUIEvent.h,v +retrieving revision 3.98 +diff -u -r3.98 nsGUIEvent.h +--- widget/public/nsGUIEvent.h 1 May 2003 01:01:03 -0000 3.98 ++++ widget/public/nsGUIEvent.h 20 Dec 2003 16:11:27 -0000 +@@ -22,6 +22,8 @@ + * Contributor(s): + * Makoto Kato <m_kato@ga2.so-net.ne.jp> + * Dean Tessman <dean_tessman@hotmail.com> ++ * Andrew Wellington <proton@wiretapped.net> ++ * Graham Dennis <u3952328@anu.edu.au> + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or +@@ -416,6 +418,22 @@ + nsDragDropEventStatus_eDrop + }; + ++/** ++ * Event status for an extended mouse button event ++ * The event (called clickCount) is type PRUint32: ++ * hence this struct will be of the same size ++ */ ++typedef struct { ++ PRUint16 realClickCount; ++ PRUint8 button; ++ PRUint8 event; // eg button went up / down ++} nsExtendedMouseEventStatus; ++ ++enum { ++ /// different types of events ++ nsExtendedMouseEventStatus_up, ++ nsExtendedMouseEventStatus_down ++}; + + /** + * GUI MESSAGES +Index: content/events/src/nsEventStateManager.cpp +=================================================================== +RCS file: /cvsroot/mozilla/content/events/src/nsEventStateManager.cpp,v +retrieving revision 1.466 +diff -u -r1.466 nsEventStateManager.cpp +--- content/events/src/nsEventStateManager.cpp 19 Nov 2003 02:23:25 -0000 1.466 ++++ content/events/src/nsEventStateManager.cpp 20 Dec 2003 16:11:28 -0000 +@@ -22,6 +22,9 @@ + * Contributor(s): + * Makoto Kato <m_kato@ga2.so-net.ne.jp> + * Dean Tessman <dean_tessman@hotmail.com> ++ * Andrew Wellington <proton@wiretapped.net> ++ * Graham Dennis <u3952328@anu.edu.au> ++ * Thomas Kleffel <thomas.kleffel@maintech.de> + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or +@@ -1911,6 +1914,96 @@ + } + } + break; ++ case NS_USER_DEFINED_EVENT: // In reality an extended mouse event ++ { ++ nsExtendedMouseEventStatus *eMEStatus; ++ nsMouseEvent *mEvent = (nsMouseEvent* )aEvent; ++ eMEStatus = (nsExtendedMouseEventStatus *)&mEvent->clickCount; ++ nsresult rv; ++ nsXPIDLCString buttonList; ++ char ourbutton=0; ++ nsCAutoString keyBase, keySuffix; ++ PRInt32 action; ++ PRInt32 numLines; ++ ++ rv = getPrefBranch(); ++ if (NS_FAILED(rv)) return rv; ++ ++ // adding 2 below so the maximum number of mouse buttons we can ++ // support is 99 but to represent the buttons in buttonlist ++ // we're going to map 10->35 onto 'a'->'z' ++ // the storage actually supports 256 ++ if(eMEStatus->button > 35) break; ++ if(eMEStatus->button > 9) ++ ourbutton = 'a' + eMEStatus->button -9; ++ else ++ ourbutton = '0' + eMEStatus->button; ++ rv = mPrefBranch->GetCharPref("mousebuttonsextended.buttonlist", ++ getter_Copies(buttonList)); ++ if(NS_FAILED(rv)) break; ++ if(!PL_strchr(buttonList.get(), ourbutton)) break; ++ keyBase = NS_LITERAL_CSTRING("mouseextended.buttons."); ++ keyBase.Append(ourbutton); ++ keySuffix = (eMEStatus->event == nsExtendedMouseEventStatus_up) ++ ? NS_LITERAL_CSTRING(".up") ++ : NS_LITERAL_CSTRING(".down"); ++ rv = mPrefBranch->GetIntPref(PromiseFlatCString ++ (keyBase + NS_LITERAL_CSTRING(".action") + keySuffix).get(), ++ &action); ++ if(NS_FAILED(rv)) break; ++ rv = mPrefBranch->GetIntPref(PromiseFlatCString ++ (keyBase + NS_LITERAL_CSTRING(".numlines") + keySuffix).get(), ++ &numLines); ++ if(NS_FAILED(rv)) break; ++ ++ switch (action) { ++ ++#if 0 // Because we would have to create a msEvent ++ case MOUSE_SCROLL_N_LINES: ++ case MOUSE_SCROLL_PAGE: ++ { ++ DoWheelScroll(aPresContext, aTargetFrame, msEvent, numLines, ++ (msEvent->scrollFlags & nsMouseScrollEvent::kIsHorizontal), ++ (action == MOUSE_SCROLL_PAGE), PR_FALSE); ++ ++ } ++ break; ++#endif ++ case MOUSE_SCROLL_HISTORY: ++ { ++ nsCOMPtr<nsISupports> pcContainer; ++ mPresContext->GetContainer(getter_AddRefs(pcContainer)); ++ if (pcContainer) { ++ nsCOMPtr<nsIWebNavigation> webNav(do_QueryInterface(pcContainer)); ++ if (webNav) { ++ // negative numLines to go back one step, nonneg to go forward ++ if (numLines < 0) ++ webNav->GoBack(); ++ else ++ webNav->GoForward(); ++ } ++ } ++ } ++ break; ++ ++ case MOUSE_SCROLL_TEXTSIZE: ++ { ++ // Exclude form controls and XUL content. ++ nsIContent *content = aTargetFrame->GetContent(); ++ if (content && ++ !content->IsContentOfType(nsIContent::eHTML_FORM_CONTROL) && ++ !content->IsContentOfType(nsIContent::eXUL)) ++ { ++ ChangeTextSize((numLines > 0) ? 1 : -1); ++ } ++ } ++ break; ++ ++ default: // Including -1 (do nothing) ++ break; ++ } ++ } ++ break; + case NS_MOUSE_SCROLL: + if (nsEventStatus_eConsumeNoDefault != *aStatus) { + nsresult rv; +@@ -1920,55 +2013,58 @@ + nsMouseScrollEvent *msEvent = (nsMouseScrollEvent*) aEvent; + PRInt32 action = 0; + PRInt32 numLines = 0; +- PRBool aBool; +- if (msEvent->isShift) { +- mPrefBranch->GetIntPref("mousewheel.withshiftkey.action", &action); +- mPrefBranch->GetBoolPref("mousewheel.withshiftkey.sysnumlines", +- &aBool); +- if (aBool) { +- numLines = msEvent->delta; +- if (msEvent->scrollFlags & nsMouseScrollEvent::kIsFullPage) +- action = MOUSE_SCROLL_PAGE; +- } +- else +- mPrefBranch->GetIntPref("mousewheel.withshiftkey.numlines", +- &numLines); +- } else if (msEvent->isControl) { +- mPrefBranch->GetIntPref("mousewheel.withcontrolkey.action", &action); +- mPrefBranch->GetBoolPref("mousewheel.withcontrolkey.sysnumlines", +- &aBool); +- if (aBool) { +- numLines = msEvent->delta; +- if (msEvent->scrollFlags & nsMouseScrollEvent::kIsFullPage) +- action = MOUSE_SCROLL_PAGE; +- } +- else +- mPrefBranch->GetIntPref("mousewheel.withcontrolkey.numlines", +- &numLines); +- } else if (msEvent->isAlt) { +- mPrefBranch->GetIntPref("mousewheel.withaltkey.action", &action); +- mPrefBranch->GetBoolPref("mousewheel.withaltkey.sysnumlines", &aBool); +- if (aBool) { +- numLines = msEvent->delta; +- if (msEvent->scrollFlags & nsMouseScrollEvent::kIsFullPage) +- action = MOUSE_SCROLL_PAGE; +- } +- else +- mPrefBranch->GetIntPref("mousewheel.withaltkey.numlines", +- &numLines); +- } else { +- mPrefBranch->GetIntPref("mousewheel.withnokey.action", &action); +- mPrefBranch->GetBoolPref("mousewheel.withnokey.sysnumlines", &aBool); +- if (aBool) { +- numLines = msEvent->delta; +- if (msEvent->scrollFlags & nsMouseScrollEvent::kIsFullPage) +- action = MOUSE_SCROLL_PAGE; +- } +- else +- mPrefBranch->GetIntPref("mousewheel.withnokey.numlines", &numLines); +- } ++ PRBool useSysNumLines; + +- if ((msEvent->delta < 0) && (numLines > 0)) ++ NS_NAMED_LITERAL_CSTRING(prefmousewheel, "mousewheel"); ++ NS_NAMED_LITERAL_CSTRING(prefhoriz, ".horizscroll"); ++ NS_NAMED_LITERAL_CSTRING(prefvert, ""); ++ NS_NAMED_LITERAL_CSTRING(prefnodir, ""); ++ NS_NAMED_LITERAL_CSTRING(prefnokey, ".withnokey"); ++ NS_NAMED_LITERAL_CSTRING(prefshiftkey, ".withshiftkey"); ++ NS_NAMED_LITERAL_CSTRING(prefctrlkey, ".withcontrolkey"); ++ NS_NAMED_LITERAL_CSTRING(prefaltkey, ".withaltkey"); ++ NS_NAMED_LITERAL_CSTRING(prefaction, ".action"); ++ NS_NAMED_LITERAL_CSTRING(prefsysnumlines, ".sysnumlines"); ++ NS_NAMED_LITERAL_CSTRING(prefnumlines, ".numlines"); ++ ++ nsCString prefDirection; ++ nsCString prefModifier; ++ ++ //if delta==0 we have nothing to do! ++ if(msEvent->delta == 0) break; ++ ++ prefDirection = prefnodir; ++ switch(msEvent->scrollFlags) { ++ case nsMouseScrollEvent::kIsHorizontal: ++ prefDirection = prefhoriz; break; ++ case nsMouseScrollEvent::kIsVertical: ++ prefDirection = prefvert; break; ++ } ++ ++ prefModifier = prefnokey; ++ if(msEvent->isAlt) prefModifier = prefaltkey; ++ if(msEvent->isControl) prefModifier = prefctrlkey; ++ if(msEvent->isShift) prefModifier = prefshiftkey; ++ ++ rv = mPrefBranch->GetIntPref(PromiseFlatCString(prefmousewheel + ++ prefDirection + prefModifier + prefaction).get(), ++ &action); ++ if(NS_FAILED(rv)) break; ++ ++ rv = mPrefBranch->GetIntPref(PromiseFlatCString(prefmousewheel + ++ prefDirection + prefModifier + prefnumlines).get(), ++ &numLines); ++ ++ rv = mPrefBranch->GetBoolPref(PromiseFlatCString(prefmousewheel + ++ prefDirection + prefModifier + prefsysnumlines).get(), ++ &useSysNumLines); ++ if(NS_FAILED(rv)) break; ++ ++ // if numlines == 0 take the system value ++ if(numLines == 0 || useSysNumLines) ++ numLines = msEvent->delta; ++ // invert the given value if the system delta is negative ++ else if(msEvent->delta < 0) + numLines = -numLines; + + switch (action) { +@@ -1990,7 +2086,8 @@ + if (pcContainer) { + nsCOMPtr<nsIWebNavigation> webNav(do_QueryInterface(pcContainer)); + if (webNav) { +- if (msEvent->delta > 0) ++ // negative numLines to go back one step, nonneg to go forward ++ if (numLines < 0) + webNav->GoBack(); + else + webNav->GoForward(); +@@ -2007,7 +2104,8 @@ + !content->IsContentOfType(nsIContent::eHTML_FORM_CONTROL) && + !content->IsContentOfType(nsIContent::eXUL)) + { +- ChangeTextSize((msEvent->delta > 0) ? 1 : -1); ++ // As before numLines is used to give the sign of the event ++ ChangeTextSize((numLines < 0) ? -1 : 1); + } + } + break; diff --git a/www-client/mozilla-firefox/files/mozilla-hppa.patch b/www-client/mozilla-firefox/files/mozilla-hppa.patch new file mode 100644 index 000000000000..f6171cf77eb4 --- /dev/null +++ b/www-client/mozilla-firefox/files/mozilla-hppa.patch @@ -0,0 +1,232 @@ +diff -uNr mozilla.orig/xpcom/reflect/xptcall/src/md/unix/Makefile.in mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in +--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2004-12-21 13:37:00.503842544 +0000 ++++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2004-12-21 13:41:49.439917584 +0000 +@@ -167,6 +167,19 @@ + endif + endif + ++# ++# Linux/HPPA/gcc ++# ++ifeq ($(OS_ARCH),Linux) ++ifneq (,$(filter parisc parisc64,$(OS_TEST))) ++ifeq ($(CC),gcc) ++CPPSRCS := xptcinvoke_pa32.cpp xptcstubs_pa32.cpp ++ASFILES := xptcstubs_asm_parisc_linux.s xptcinvoke_asm_parisc_linux.s ++endif ++endif ++endif ++ ++ + ###################################################################### + # M68k + ###################################################################### +diff -uNr mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s +--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s 1970-01-01 00:00:00.000000000 +0000 ++++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s 2004-12-21 13:39:03.390160984 +0000 +@@ -0,0 +1,128 @@ ++ ++ .LEVEL 1.1 ++ .text ++ .align 4 ++ ++framesz: ++ .equ 128 ++ ++; XPTC_InvokeByIndex(nsISuppots* that, PRUint32 methodIndex, ++; PRUint32 paramCount, nsXPTCVariant* params); ++ ++.globl XPTC_InvokeByIndex ++ .type XPTC_InvokeByIndex, @function ++ ++ ++XPTC_InvokeByIndex: ++ .PROC ++ .CALLINFO FRAME=72, CALLER,SAVE_RP, SAVE_SP, ENTRY_GR=3 ++ .ENTRY ++ ++ ; frame marker takes 48 bytes, ++ ; register spill area takes 8 bytes, ++ ; local stack area takes 72 bytes result in 128 bytes total ++ ++ STW %rp,-20(%sp) ++ STW,MA %r3,128(%sp) ++ ++ LDO -framesz(%r30),%r28 ++ STW %r28,-4(%r30) ; save previous sp ++ STW %r19,-32(%r30) ++ ++ STW %r26,-36-framesz(%r30) ; save argument registers in ++ STW %r25,-40-framesz(%r30) ; in PREVIOUS frame ++ STW %r24,-44-framesz(%r30) ; ++ STW %r23,-48-framesz(%r30) ; ++ ++; B,L .+8,%r2 ++; ADDIL L'invoke_count_bytes-$PIC_pcrel$1+4,%r2,%r1 ++; ; LDO R'invoke_count_bytes-$PIC_pcrel$2+8(%r1),%r1 ++;$PIC_pcrel$1 ++; LDSID (%r1),%r31 ++;$PIC_pcrel$2 ++; MTSP %r31,%sr0 ++ ++ .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR ;in=24,25,26;out=28 ++ BL invoke_count_bytes,%r31 ++ COPY %r31,%r2 ++ ++ CMPIB,>= 0,%r28, .+76 ++ COPY %r30,%r3 ; copy stack ptr to saved stack ptr ++ ADD %r30,%r28,%r30 ; extend stack frame ++ LDW -4(%r3),%r28 ; move frame ++ STW %r28,-4(%r30) ++ LDW -8(%r3),%r28 ++ STW %r28,-8(%r30) ++ LDW -12(%r3),%r28 ++ STW %r28,-12(%r30) ++ LDW -16(%r3),%r28 ++ STW %r28,-16(%r30) ++ LDW -20(%r3),%r28 ++ STW %r28,-20(%r30) ++ LDW -24(%r3),%r28 ++ STW %r28,-24(%r30) ++ LDW -28(%r3),%r28 ++ STW %r28,-28(%r30) ++ LDW -32(%r3),%r28 ++ STW %r28,-32(%r30) ++ ++ LDO -40(%r30),%r26 ; load copy address ++ LDW -44-framesz(%r3),%r25 ; load rest of 2 arguments ++ LDW -48-framesz(%r3),%r24 ; ++ ++ LDW -32(%r30),%r19 ; shared lib call destroys r19; reload ++; B,L .+8,%r2 ++; ADDIL L'invoke_copy_to_stack-$PIC_pcrel$3+4,%r2,%r1 ++; LDO R'invoke_copy_to_stack-$PIC_pcrel$4+8(%r1),%r1 ++;$PIC_pcrel$3 ++; LDSID (%r1),%r31 ++;$PIC_pcrel$4 ++; MTSP %r31,%sr0 ++ .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR ;in=24,25,26 ++ BL invoke_copy_to_stack,%r31 ++ COPY %r31,%r2 ++ ++ LDO -48(%r30),%r20 ++ EXTRW,U,= %r28,31,1,%r22 ++ FLDD 0(%r20),%fr7 ; load double arg 1 ++ EXTRW,U,= %r28,30,1,%r22 ++ FLDW 8(%r20),%fr5L ; load float arg 1 ++ EXTRW,U,= %r28,29,1,%r22 ++ FLDW 4(%r20),%fr6L ; load float arg 2 ++ EXTRW,U,= %r28,28,1,%r22 ++ FLDW 0(%r20),%fr7L ; load float arg 3 ++ ++ LDW -36-framesz(%r3),%r26 ; load ptr to 'that' ++ LDW -40(%r30),%r25 ; load the rest of dispatch argument registers ++ LDW -44(%r30),%r24 ++ LDW -48(%r30),%r23 ++ ++ LDW -36-framesz(%r3),%r20 ; load vtable addr ++ LDW -40-framesz(%r3),%r28 ; load index ++ LDW 0(%r20),%r20 ; follow vtable ++; LDO 0(%r20),%r20 ; offset vtable by 16 bytes (g++: 8, aCC: 16) ++ SH2ADDL %r28,%r20,%r28 ; add 4*index to vtable entry ++ LDW 0(%r28),%r22 ; load vtable entry ++ ++; B,L .+8,%r2 ++; ADDIL L'$$dyncall_external-$PIC_pcrel$5+4,%r2,%r1 ++; LDO R'$$dyncall_external-$PIC_pcrel$6+8(%r1),%r1 ++;$PIC_pcrel$5 ++; LDSID (%r1),%r31 ++;$PIC_pcrel$6 ++; MTSP %r31,%sr0 ++ .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR ;in=22-26;out=28; ++ BL $$dyncall,%r31 ++ COPY %r31,%r2 ++ ++ LDW -32(%r30),%r19 ++ COPY %r3,%r30 ; restore saved stack ptr ++ ++ LDW -148(%sp),%rp ++ LDWM -128(%sp),%r3 ++ BV,N (%rp) ++ NOP ++ .EXIT ++ .PROCEND ;in=23,24,25,26; ++ .SIZE XPTC_InvokeByIndex, .-XPTC_InvokeByIndex ++ +diff -uNr mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s +--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s 1970-01-01 00:00:00.000000000 +0000 ++++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s 2004-12-21 13:39:03.392160680 +0000 +@@ -0,0 +1,73 @@ ++ .LEVEL 1.1 ++ .TEXT ++ .ALIGN 4 ++ ++curframesz: ++ .EQU 128 ++ ++ ++; SharedStub has stack size of 128 bytes ++ ++lastframesz: ++ .EQU 64 ++ ++; the StubN C++ function has a small stack size of 64 bytes ++ ++ ++.globl SharedStub ++ .type SharedStub, @function ++ ++SharedStub: ++ .PROC ++ .CALLINFO CALLER,FRAME=80,SAVE_RP ++ ++ .ENTRY ++ STW %rp,-20(%sp) ++ LDO 128(%sp),%sp ++ ++ STW %r19,-32(%r30) ++ STW %r26,-36-curframesz(%r30) ; save arg0 in previous frame ++ ++ LDO -80(%r30),%r28 ++ FSTD,MA %fr5,8(%r28) ; save darg0 ++ FSTD,MA %fr7,8(%r28) ; save darg1 ++ FSTW,MA %fr4L,4(%r28) ; save farg0 ++ FSTW,MA %fr5L,4(%r28) ; save farg1 ++ FSTW,MA %fr6L,4(%r28) ; save farg2 ++ FSTW,MA %fr7L,4(%r28) ; save farg3 ++ ++ ; Former value of register 26 is already properly saved by StubN, ++ ; but register 25-23 are not because of the arguments mismatch ++ STW %r25,-40-curframesz-lastframesz(%r30) ; save r25 ++ STW %r24,-44-curframesz-lastframesz(%r30) ; save r24 ++ STW %r23,-48-curframesz-lastframesz(%r30) ; save r23 ++ COPY %r26,%r25 ; method index is arg1 ++ LDW -36-curframesz-lastframesz(%r30),%r26 ; self is arg0 ++ LDO -40-curframesz-lastframesz(%r30),%r24 ; normal args is arg2 ++ LDO -80(%r30),%r23 ; floating args is arg3 ++ ++; BL .+8,%r2 ++; ADDIL L'PrepareAndDispatch-$PIC_pcrel$0+4,%r2 ++; LDO R'PrepareAndDispatch-$PIC_pcrel$1+8(%r1),%r1 ++;$PIC_pcrel$0 ++; LDSID (%r1),%r31 ++;$PIC_pcrel$1 ++; MTSP %r31,%sr0 ++ .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR ;in=23-26;out=28; ++ BL PrepareAndDispatch, %r31 ++ COPY %r31,%r2 ++ ++ LDW -32(%r30),%r19 ++ ++ LDW -148(%sp),%rp ++ LDO -128(%sp),%sp ++ ++ ++ BV,N (%rp) ++ NOP ++ NOP ++ ++ .EXIT ++ .PROCEND ;in=26;out=28; ++ ++ .SIZE SharedStub, .-SharedStub diff --git a/www-client/mozilla-firefox/files/svg-cairo-0.3.0-fix.patch b/www-client/mozilla-firefox/files/svg-cairo-0.3.0-fix.patch new file mode 100644 index 000000000000..9d1f0d830559 --- /dev/null +++ b/www-client/mozilla-firefox/files/svg-cairo-0.3.0-fix.patch @@ -0,0 +1,22 @@ +diff -aur mozilla-orig/layout/svg/renderer/src/cairo/nsSVGCairoCanvas.cpp mozilla/layout/svg/renderer/src/cairo/nsSVGCairoCanvas.cpp +--- mozilla-orig/layout/svg/renderer/src/cairo/nsSVGCairoCanvas.cpp 2004-02-10 15:18:09.000000000 -0500 ++++ mozilla/layout/svg/renderer/src/cairo/nsSVGCairoCanvas.cpp 2005-02-23 20:25:32.240459288 -0500 +@@ -50,6 +50,7 @@ + #include "nsRenderingContextGTK.h" + #include <gdk/gdkx.h> + #include <cairo.h> ++#include <cairo-xlib.h> + + /** + * \addtogroup cairo_renderer Cairo Rendering Engine +diff -aur mozilla-orig/layout/svg/renderer/src/cairo/nsSVGCairoGlyphMetrics.cpp mozilla/layout/svg/renderer/src/cairo/nsSVGCairoGlyphMetrics.cpp +--- mozilla-orig/layout/svg/renderer/src/cairo/nsSVGCairoGlyphMetrics.cpp 2004-03-16 16:40:07.000000000 -0500 ++++ mozilla/layout/svg/renderer/src/cairo/nsSVGCairoGlyphMetrics.cpp 2005-02-23 20:25:09.538910448 -0500 +@@ -51,6 +51,7 @@ + #include "nsSVGTypeCIDs.h" + #include "nsIComponentManager.h" + #include <cairo.h> ++#include <stdlib.h> + + /** + * \addtogroup gdiplus_renderer Cairo Rendering Engine diff --git a/www-client/mozilla-firefox/metadata.xml b/www-client/mozilla-firefox/metadata.xml new file mode 100644 index 000000000000..74d9257900cf --- /dev/null +++ b/www-client/mozilla-firefox/metadata.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>mozilla</herd> +</pkgmetadata> diff --git a/www-client/mozilla-firefox/mozilla-firefox-0.9.3.ebuild b/www-client/mozilla-firefox/mozilla-firefox-0.9.3.ebuild new file mode 100644 index 000000000000..bb58d5b9f2df --- /dev/null +++ b/www-client/mozilla-firefox/mozilla-firefox-0.9.3.ebuild @@ -0,0 +1,289 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/www-client/mozilla-firefox/mozilla-firefox-0.9.3.ebuild,v 1.1 2005/03/18 19:47:25 seemant Exp $ + +inherit makeedit flag-o-matic gcc nsplugins eutils mozilla-launcher + +S=${WORKDIR}/mozilla + +DESCRIPTION="The Mozilla Firefox Web Browser" +HOMEPAGE="http://www.mozilla.org/projects/firefox/" +# Mirrors have it in one of the following places, depending on what +# mirror you check and when you check it... :-( +SRC_URI=" + http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${PV}/firefox-${PV}-source.tar.bz2 + http://ftp.mozilla.org/pub/firefox/releases/${PV}/firefox-${PV}-source.tar.bz2" + +KEYWORDS="x86 ppc sparc alpha amd64 ia64" +SLOT="0" +LICENSE="MPL-1.1 NPL-1.1" +IUSE="java gtk2 ipv6 moznoxft truetype xinerama" + +RDEPEND="virtual/x11 + !moznoxft? ( virtual/xft ) + >=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 + gtk2? ( >=x11-libs/gtk+-2.1.1 >=dev-libs/libIDL-0.8.0 ) + !gtk2? ( =x11-libs/gtk+-1.2* =gnome-base/orbit-0* ) + java? ( virtual/jre ) + >=net-www/mozilla-launcher-1.7-r1" + +DEPEND="${RDEPEND} + virtual/libc + dev-util/pkgconfig + java? ( >=dev-java/java-config-0.2.0 )" + +# needed by src_compile() and src_install() +export MOZ_PHOENIX=1 +export MOZ_CALENDAR=0 +export MOZ_ENABLE_XFT=1 + +src_unpack() { + unpack firefox-${PV}-source.tar.bz2 || die "unpack failed" + cd ${S} || die "cd failed" + + # alpha stubs patch from lfs project. + # <taviso@gentoo.org> (26 Jun 2003) + use alpha && epatch ${FILESDIR}/mozilla-1.3-alpha-stubs.patch + + # this patch fixes upstream bug 248442 "Crash in form autocomplete + # (64-bit arch only)". + epatch ${FILESDIR}/firefox-0.9-nsFormHistory-crash-fix.patch +} + +src_compile() { + local enable_optimize + local myconf="--disable-composer \ + --with-x \ + --with-system-jpeg \ + --with-system-zlib \ + --with-system-png \ + --with-system-mng \ + --disable-mailnews \ + --disable-calendar \ + --disable-pedantic \ + --disable-svg \ + --enable-mathml \ + --without-system-nspr \ + --enable-nspr-autoconf \ + --enable-xsl \ + $(use_enable ipv6) \ + --enable-crypto \ + --with-java-supplement \ + --with-pthreads \ + --with-default-mozilla-five-home=/usr/lib/MozillaFirefox \ + --with-user-appdir=.phoenix \ + --disable-jsd \ + --disable-accessibility \ + --disable-tests \ + --disable-debug \ + --disable-dtd-debug \ + --disable-logging \ + --enable-reorder \ + --enable-strip \ + --enable-strip-libs \ + --enable-cpp-rtti \ + --enable-xterm-updates \ + --disable-ldap \ + --disable-toolkit-qt \ + --disable-toolkit-xlib \ + --enable-extensions=default,-irc,-venkman,-content-packs,-help" + + if use gtk2; then + myconf="${myconf} \ + --enable-toolkit-gtk2 \ + --enable-default-toolkit=gtk2 \ + --disable-toolkit-gtk" + else + myconf="${myconf} \ + --enable-toolkit-gtk \ + --enable-default-toolkit=gtk \ + --disable-toolkit-gtk2" + fi + + if use moznoxft; then + myconf="${myconf} --disable-xft $(use_enable truetype freetype2)" + elif use gtk2; then + local pango_version + + # We need Xft2.0 localy installed + if [[ -x /usr/bin/pkg-config ]] && pkg-config xft; then + pango_version="$(pkg-config --modversion pango | cut -d. -f1,2)" + + # We also need pango-1.1, else Mozilla links to both + # Xft1.1 *and* Xft2.0, and segfault... + if [[ ${pango_version//.} -gt 10 ]]; then + einfo "Building with Xft2.0 (Gtk+-2.0) support!" + myconf="${myconf} --enable-xft --disable-freetype2" + touch ${WORKDIR}/.xft + else + ewarn "Building without Xft2.0 support!" + myconf="${myconf} --disable-xft $(use_enable truetype freetype2)" + fi + else + ewarn "Building without Xft2.0 support!" + myconf="${myconf} --disable-xft $(use_enable truetype freetype2)" + fi + else + einfo "Building with Xft2.0 (Gtk+-1.0) support!" + myconf="${myconf} --enable-xft --disable-freetype2" + touch ${WORKDIR}/.xft + fi + + # Check for xinerama - closes #19369 + if use xinerama; then + myconf="${myconf} --enable-xinerama=yes" + else + myconf="${myconf} --enable-xinerama=no" + fi + + # Per-architecture flags + case "${ARCH}" in + alpha|amd64|ia64) + # 64-bit needs -fPIC + append-flags -fPIC + ;; + sparc) + # Added to get MozillaFirebird to compile on sparc + replace-sparc64-flags + ;; + ppc) + # Fix to avoid gcc-3.3.x miscompilation issues. + if [[ "$(gcc-major-version).$(gcc-minor-version)" == 3.3 ]]; then + append-flags -fno-strict-aliasing + fi + ;; + esac + + # 32-bit vs. 64-bit optimization + case "${ARCH}" in + alpha|amd64|ia64) + # Allow -O0 or -O1: Anything more than this causes + # segfaults on startup on 64-bit (bug 33767) + enable_optimize=$(echo "$CFLAGS" | grep -Eoe '-O[01]|-O\>') + enable_optimize=${enable_optimize:--O1} + filter-flags -O -O? + ;; + *) + # -O2 and below allowed on 32-bit + enable_optimize=$(echo "$CFLAGS" | grep -Eoe '-O[012]|-O\>') + enable_optimize=${enable_optimize:--O2} + filter-flags -O -O? + ;; + esac + + # Crashes on start when compiled with -fomit-frame-pointer + filter-flags -fno-default-inline # see bug 42488 + filter-flags -fstack-protector # see bug 45671 + filter-flags -fomit-frame-pointer -mpowerpc-gfxopt + filter-flags -ffast-math + append-flags -s -fforce-addr + + if [[ $(gcc-major-version) -eq 3 ]]; then + # gcc-3 prior to 3.2.3 doesn't work well for pentium4 + 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 + + # Enable us to use flash, etc plugins compiled with gcc-2.95.3 + if [[ ${ARCH} == x86 ]]; then + myconf="${myconf} --enable-old-abi-compat-wrappers" + fi + fi + + econf --enable-optimize="${enable_optimize}" ${myconf} || die + + edit_makefiles + emake MOZ_PHOENIX=1 || die +} + +src_install() { + # Plugin path creation + PLUGIN_DIR="/usr/lib/nsbrowser/plugins" + dodir ${PLUGIN_DIR} + + dodir /usr/lib + dodir /usr/lib/MozillaFirefox + cp -RL --no-preserve=links ${S}/dist/bin/* ${D}/usr/lib/MozillaFirefox + + #fix permissions + chown -R root:root ${D}/usr/lib/MozillaFirefox + + # Plugin path setup (rescuing the existent plugins) + src_mv_plugins /usr/lib/MozillaFirefox/plugins + + dodir /usr/bin + dosym /usr/libexec/mozilla-launcher /usr/bin/firefox + insinto /etc/env.d + doins ${FILESDIR}/10MozillaFirefox + + # Fix icons to look the same everywhere + insinto /usr/lib/MozillaFirefox/icons + doins ${S}/build/package/rpm/SOURCES/mozicon16.xpm + doins ${S}/build/package/rpm/SOURCES/mozicon50.xpm + + # Install icon and .desktop for menu entry + insinto /usr/share/pixmaps + doins ${FILESDIR}/icon/firefox-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/mozillafirefox.desktop + + # Normally firefox-0.9 must be run as root once before it can be + # run as a normal user. Drop in some initialized files to avoid + # this. + einfo "Extracting firefox-${PV} initialization files" + tar xjpf ${FILESDIR}/firefox-0.9-init.tar.bz2 -C ${D}/usr/lib/MozillaFirefox +} + +pkg_preinst() { + export MOZILLA_FIVE_HOME=${ROOT}/usr/lib/MozillaFirefox + + # Remove the old plugins dir + pkg_mv_plugins /usr/lib/MozillaFirefox/plugins + + # Remove entire installed instance to prevent all kinds of + # problems... see bug 44772 for example + rm -rf "${MOZILLA_FIVE_HOME}" +} + +pkg_postinst() { + export MOZILLA_FIVE_HOME="${ROOT}/usr/lib/MozillaFirefox" + + # Needed to update the run time bindings for REGXPCOM + # (do not remove next line!) + env-update + + # Register Components and Chrome + einfo "Registering Components and Chrome..." + LD_LIBRARY_PATH=/usr/lib/MozillaFirefox ${MOZILLA_FIVE_HOME}/regxpcom + LD_LIBRARY_PATH=/usr/lib/MozillaFirefox ${MOZILLA_FIVE_HOME}/regchrome + + # Fix permissions of component registry + chmod 0644 ${MOZILLA_FIVE_HOME}/components/compreg.dat + + # Fix directory permissions + find ${MOZILLA_FIVE_HOME}/ -type d -perm 0700 -exec chmod 0755 {} \; || : + + # Fix permissions on chrome files + find ${MOZILLA_FIVE_HOME}/chrome/ -name '*.rdf' -exec chmod 0644 {} \; || : + + # 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() { + update_mozilla_launcher_symlinks +} diff --git a/www-client/mozilla-firefox/mozilla-firefox-1.0-r2.ebuild b/www-client/mozilla-firefox/mozilla-firefox-1.0-r2.ebuild new file mode 100644 index 000000000000..e1dd6bf60bbc --- /dev/null +++ b/www-client/mozilla-firefox/mozilla-firefox-1.0-r2.ebuild @@ -0,0 +1,181 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/www-client/mozilla-firefox/mozilla-firefox-1.0-r2.ebuild,v 1.1 2005/03/18 19:47:25 seemant Exp $ + +inherit makeedit flag-o-matic gcc nsplugins eutils mozconfig mozilla-launcher + +S=${WORKDIR}/mozilla + +DESCRIPTION="The Mozilla Firefox Web Browser" +HOMEPAGE="http://www.mozilla.org/projects/firefox/" +MY_PV=${PV/_rc/rc} +SRC_URI="http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${MY_PV}/source/firefox-${MY_PV}-source.tar.bz2" + +LICENSE="MPL-1.1 NPL-1.1" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~sparc ~x86" +IUSE="java ipv6 moznoxft truetype xinerama" + +RDEPEND="virtual/x11 + !moznoxft? ( virtual/xft ) + >=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 + java? ( virtual/jre ) + >=net-www/mozilla-launcher-1.20" + +DEPEND="${RDEPEND} + virtual/libc + dev-util/pkgconfig + java? ( >=dev-java/java-config-0.2.0 )" + +# 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_PHOENIX=1 + +src_unpack() { + unpack firefox-${MY_PV}-source.tar.bz2 || die "unpack failed" + cd ${S} || die "cd failed" + + # alpha stubs patch from lfs project. + # <taviso@gentoo.org> (26 Jun 2003) + use alpha && epatch ${FILESDIR}/mozilla-1.3-alpha-stubs.patch +} + +src_compile() { + #################################### + # + # mozconfig, CFLAGS and CXXFLAGS setup + # + #################################### + + mozconfig_init + + # 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=/usr/lib/MozillaFirefox + + # Finalize and report settings + mozconfig_final + + # hardened GCC uses -fstack-protector-all by default, and this breaks + # firefox. + has_hardened && append-flags -fno-stack-protector-all + replace-flags -fstack-protector-all -fstack-protector + + #################################### + # + # Configure and build Firefox + # + #################################### + + # ./configure picks up the mozconfig stuff + econf + + # This removes extraneous CFLAGS from the Makefiles to reduce RAM + # requirements while compiling + edit_makefiles + + emake MOZ_PHOENIX=1 || die +} + +src_install() { + # Plugin path creation + PLUGIN_DIR="/usr/lib/nsbrowser/plugins" + dodir ${PLUGIN_DIR} + + dodir /usr/lib + dodir /usr/lib/MozillaFirefox + cp -RL --no-preserve=links ${S}/dist/bin/* ${D}/usr/lib/MozillaFirefox + + #fix permissions + chown -R root:root ${D}/usr/lib/MozillaFirefox + + # Plugin path setup (rescuing the existent plugins) + src_mv_plugins /usr/lib/MozillaFirefox/plugins + + dodir /usr/bin + dosym /usr/libexec/mozilla-launcher /usr/bin/firefox + insinto /etc/env.d + doins ${FILESDIR}/10MozillaFirefox + + # Fix icons to look the same everywhere + insinto /usr/lib/MozillaFirefox/icons + doins ${S}/build/package/rpm/SOURCES/mozicon16.xpm + doins ${S}/build/package/rpm/SOURCES/mozicon50.xpm + + # Install icon and .desktop for menu entry + insinto /usr/share/pixmaps + doins ${FILESDIR}/icon/firefox-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/mozillafirefox.desktop + + # Normally firefox-0.9 must be run as root once before it can be + # run as a normal user. Drop in some initialized files to avoid + # this. + einfo "Extracting firefox-${PV} initialization files" + tar xjpf ${FILESDIR}/firefox-0.9-init.tar.bz2 -C ${D}/usr/lib/MozillaFirefox +} + +pkg_preinst() { + export MOZILLA_FIVE_HOME=${ROOT}/usr/lib/MozillaFirefox + + # Remove the old plugins dir + pkg_mv_plugins /usr/lib/MozillaFirefox/plugins + + # Remove entire installed instance to prevent all kinds of + # problems... see bug 44772 for example + rm -rf "${MOZILLA_FIVE_HOME}" +} + +pkg_postinst() { + export MOZILLA_FIVE_HOME="${ROOT}/usr/lib/MozillaFirefox" + + # Needed to update the run time bindings for REGXPCOM + # (do not remove next line!) + env-update + + # Register Components and Chrome + # + # Bug 67031: Set HOME=~root in case this is being emerged via sudo. + # Otherwise the following commands will create ~/.mozilla owned by root + # and 700 perms, which makes subsequent execution of firefox by user + # impossible. + einfo "Registering Components and Chrome..." + HOME=~root LD_LIBRARY_PATH=/usr/lib/MozillaFirefox ${MOZILLA_FIVE_HOME}/regxpcom + HOME=~root LD_LIBRARY_PATH=/usr/lib/MozillaFirefox ${MOZILLA_FIVE_HOME}/regchrome + + # Fix permissions of component registry + chmod 0644 ${MOZILLA_FIVE_HOME}/components/compreg.dat + + # Fix directory permissions + find ${MOZILLA_FIVE_HOME}/ -type d -perm 0700 -exec chmod 0755 {} \; || : + + # Fix permissions on chrome files + find ${MOZILLA_FIVE_HOME}/chrome/ -name '*.rdf' -exec chmod 0644 {} \; || : + + # 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() { + update_mozilla_launcher_symlinks +} diff --git a/www-client/mozilla-firefox/mozilla-firefox-1.0-r3.ebuild b/www-client/mozilla-firefox/mozilla-firefox-1.0-r3.ebuild new file mode 100644 index 000000000000..a54b83bc9f69 --- /dev/null +++ b/www-client/mozilla-firefox/mozilla-firefox-1.0-r3.ebuild @@ -0,0 +1,189 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/www-client/mozilla-firefox/mozilla-firefox-1.0-r3.ebuild,v 1.1 2005/03/18 19:47:25 seemant Exp $ + +inherit makeedit flag-o-matic gcc nsplugins eutils mozconfig mozilla-launcher + +S=${WORKDIR}/mozilla + +DESCRIPTION="The Mozilla Firefox Web Browser" +HOMEPAGE="http://www.mozilla.org/projects/firefox/" +MY_PV=${PV/_rc/rc} +SRC_URI="http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${MY_PV}/source/firefox-${MY_PV}-source.tar.bz2" + +LICENSE="MPL-1.1 NPL-1.1" +SLOT="0" +KEYWORDS="~alpha amd64 ~arm ~ia64 ppc ~sparc ~x86 hppa" +IUSE="java mozsvg" + +# 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 + )" + +DEPEND="${RDEPEND} + java? ( >=dev-java/java-config-0.2.0 )" + +# 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_PHOENIX=1 + +src_unpack() { + unpack firefox-${MY_PV}-source.tar.bz2 || die "unpack failed" + cd ${S} || die "cd failed" + + # 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 out ft caching code since the API changed between releases of + # freetype; this enables freetype-2.1.8+ compat. + # https://bugzilla.mozilla.org/show_bug.cgi?id=234035#c65 + epatch ${FILESDIR}/mozilla-firefox-1.0-4ft2.patch + + # patch to fix separate character on euro keyboards, bug 68995 + epatch ${FILESDIR}/mozilla-firefox-1.0-kp_separator.patch +} + +src_compile() { + #################################### + # + # mozconfig, CFLAGS and CXXFLAGS setup + # + #################################### + + mozconfig_init + + # 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_use_enable mozsvg svg + mozconfig_use_enable mozsvg svg-renderer-cairo + mozconfig_annotate '' --with-default-mozilla-five-home=/usr/lib/MozillaFirefox + + # Finalize and report settings + mozconfig_final + + # hardened GCC uses -fstack-protector-all by default, and this breaks + # firefox. + has_hardened && append-flags -fno-stack-protector-all + replace-flags -fstack-protector-all -fstack-protector + + #################################### + # + # Configure and build Firefox + # + #################################### + + # ./configure picks up the mozconfig stuff + econf + + # This removes extraneous CFLAGS from the Makefiles to reduce RAM + # requirements while compiling + edit_makefiles + + emake MOZ_PHOENIX=1 || die +} + +src_install() { + # Plugin path creation + PLUGIN_DIR="/usr/lib/nsbrowser/plugins" + dodir ${PLUGIN_DIR} + + dodir /usr/lib + dodir /usr/lib/MozillaFirefox + cp -RL --no-preserve=links ${S}/dist/bin/* ${D}/usr/lib/MozillaFirefox + + #fix permissions + chown -R root:root ${D}/usr/lib/MozillaFirefox + + # Plugin path setup (rescuing the existent plugins) + src_mv_plugins /usr/lib/MozillaFirefox/plugins + + dodir /usr/bin + dosym /usr/libexec/mozilla-launcher /usr/bin/firefox + insinto /etc/env.d + doins ${FILESDIR}/10MozillaFirefox + + # Fix icons to look the same everywhere + insinto /usr/lib/MozillaFirefox/icons + doins ${S}/build/package/rpm/SOURCES/mozicon16.xpm + doins ${S}/build/package/rpm/SOURCES/mozicon50.xpm + + # Install icon and .desktop for menu entry + insinto /usr/share/pixmaps + doins ${FILESDIR}/icon/firefox-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/mozillafirefox.desktop + + # Normally firefox-0.9 must be run as root once before it can be + # run as a normal user. Drop in some initialized files to avoid + # this. + einfo "Extracting firefox-${PV} initialization files" + tar xjpf ${FILESDIR}/firefox-0.9-init.tar.bz2 -C ${D}/usr/lib/MozillaFirefox +} + +pkg_preinst() { + export MOZILLA_FIVE_HOME=${ROOT}/usr/lib/MozillaFirefox + + # Remove the old plugins dir + pkg_mv_plugins /usr/lib/MozillaFirefox/plugins + + # Remove entire installed instance to prevent all kinds of + # problems... see bug 44772 for example + rm -rf "${MOZILLA_FIVE_HOME}" +} + +pkg_postinst() { + export MOZILLA_FIVE_HOME="${ROOT}/usr/lib/MozillaFirefox" + + # Needed to update the run time bindings for REGXPCOM + # (do not remove next line!) + env-update + + # Register Components and Chrome + # + # Bug 67031: Set HOME=~root in case this is being emerged via sudo. + # Otherwise the following commands will create ~/.mozilla owned by root + # and 700 perms, which makes subsequent execution of firefox by user + # impossible. + einfo "Registering Components and Chrome..." + HOME=~root LD_LIBRARY_PATH=/usr/lib/MozillaFirefox ${MOZILLA_FIVE_HOME}/regxpcom + HOME=~root LD_LIBRARY_PATH=/usr/lib/MozillaFirefox ${MOZILLA_FIVE_HOME}/regchrome + + # Fix permissions of component registry + chmod 0644 ${MOZILLA_FIVE_HOME}/components/compreg.dat + + # Fix directory permissions + find ${MOZILLA_FIVE_HOME}/ -type d -perm 0700 -exec chmod 0755 {} \; || : + + # Fix permissions on chrome files + find ${MOZILLA_FIVE_HOME}/chrome/ -name '*.rdf' -exec chmod 0644 {} \; || : + + # 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() { + update_mozilla_launcher_symlinks +} diff --git a/www-client/mozilla-firefox/mozilla-firefox-1.0.1.ebuild b/www-client/mozilla-firefox/mozilla-firefox-1.0.1.ebuild new file mode 100644 index 000000000000..7621deb8da9c --- /dev/null +++ b/www-client/mozilla-firefox/mozilla-firefox-1.0.1.ebuild @@ -0,0 +1,195 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/www-client/mozilla-firefox/mozilla-firefox-1.0.1.ebuild,v 1.1 2005/03/18 19:47:25 seemant Exp $ + +inherit makeedit flag-o-matic gcc nsplugins eutils mozconfig mozilla-launcher multilib + +S=${WORKDIR}/mozilla + +DESCRIPTION="The Mozilla Firefox Web Browser" +HOMEPAGE="http://www.mozilla.org/projects/firefox/" +MY_PV=${PV/_rc/rc} +SRC_URI="http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${MY_PV}/source/firefox-${MY_PV}-source.tar.bz2" + +LICENSE="MPL-1.1 NPL-1.1" +SLOT="0" +KEYWORDS="alpha amd64 arm hppa ia64 ppc sparc x86" +IUSE="java mozsvg" + +# 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 + )" + +DEPEND="${RDEPEND} + java? ( >=dev-java/java-config-0.2.0 )" + +# 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_PHOENIX=1 + +src_unpack() { + unpack firefox-${MY_PV}-source.tar.bz2 || die "unpack failed" + cd ${S} || die "cd failed" + + # 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 out ft caching code since the API changed between releases of + # freetype; this enables freetype-2.1.8+ compat. + # https://bugzilla.mozilla.org/show_bug.cgi?id=234035#c65 + epatch ${FILESDIR}/mozilla-firefox-1.0-4ft2.patch + + # patch to fix separate character on euro keyboards, bug 68995 + epatch ${FILESDIR}/mozilla-firefox-1.0-kp_separator.patch + + if has_version '>=x11-libs/cairo-0.3.0'; then + epatch ${FILESDIR}/svg-cairo-0.3.0-fix.patch + fi +} + +src_compile() { + #################################### + # + # mozconfig, CFLAGS and CXXFLAGS setup + # + #################################### + + mozconfig_init + + # 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_use_enable mozsvg svg + mozconfig_use_enable mozsvg svg-renderer-cairo + mozconfig_annotate '' --with-default-mozilla-five-home=/usr/$(get_libdir)/MozillaFirefox + + # Finalize and report settings + mozconfig_final + + # hardened GCC uses -fstack-protector-all by default, and this breaks + # firefox. + has_hardened && append-flags -fno-stack-protector-all + replace-flags -fstack-protector-all -fstack-protector + + #################################### + # + # Configure and build Firefox + # + #################################### + + # ./configure picks up the mozconfig stuff + export LD="$(tc-getLD)" + export CC="$(tc-getCC)" + export CXX="$(tc-getCXX)" + econf + + # This removes extraneous CFLAGS from the Makefiles to reduce RAM + # requirements while compiling + edit_makefiles + + emake MOZ_PHOENIX=1 CXX="$(tc-getCXX)" CC="$(tc-getCC)" LD="$(tc-getLD)" || die +} + +src_install() { + # Plugin path creation + PLUGIN_DIR="/usr/$(get_libdir)/nsbrowser/plugins" + dodir ${PLUGIN_DIR} + + dodir /usr/$(get_libdir)/MozillaFirefox + cp -RL --no-preserve=links ${S}/dist/bin/* ${D}/usr/$(get_libdir)/MozillaFirefox + + #fix permissions + chown -R root:root ${D}/usr/$(get_libdir)/MozillaFirefox + + # Plugin path setup (rescuing the existent plugins) + src_mv_plugins /usr/$(get_libdir)/MozillaFirefox/plugins + + dodir /usr/bin + dosym /usr/libexec/mozilla-launcher /usr/bin/firefox + insinto /etc/env.d + doins ${FILESDIR}/10MozillaFirefox + + # Fix icons to look the same everywhere + insinto /usr/$(get_libdir)/MozillaFirefox/icons + doins ${S}/build/package/rpm/SOURCES/mozicon16.xpm + doins ${S}/build/package/rpm/SOURCES/mozicon50.xpm + + # Install icon and .desktop for menu entry + insinto /usr/share/pixmaps + doins ${FILESDIR}/icon/firefox-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/mozillafirefox.desktop + + # Normally firefox-0.9 must be run as root once before it can be + # run as a normal user. Drop in some initialized files to avoid + # this. + einfo "Extracting firefox-${PV} initialization files" + tar xjpf ${FILESDIR}/firefox-0.9-init.tar.bz2 -C ${D}/usr/$(get_libdir)/MozillaFirefox +} + +pkg_preinst() { + export MOZILLA_FIVE_HOME=${ROOT}/usr/$(get_libdir)/MozillaFirefox + + # Remove the old plugins dir + pkg_mv_plugins /usr/$(get_libdir)/MozillaFirefox/plugins + + # Remove entire installed instance to prevent all kinds of + # problems... see bug 44772 for example + rm -rf "${MOZILLA_FIVE_HOME}" +} + +pkg_postinst() { + export MOZILLA_FIVE_HOME="${ROOT}/usr/$(get_libdir)/MozillaFirefox" + + # Needed to update the run time bindings for REGXPCOM + # (do not remove next line!) + env-update + + # Register Components and Chrome + # + # Bug 67031: Set HOME=~root in case this is being emerged via sudo. + # Otherwise the following commands will create ~/.mozilla owned by root + # and 700 perms, which makes subsequent execution of firefox by user + # impossible. + einfo "Registering Components and Chrome..." + HOME=~root LD_LIBRARY_PATH=/usr/$(get_libdir)/MozillaFirefox ${MOZILLA_FIVE_HOME}/regxpcom + HOME=~root LD_LIBRARY_PATH=/usr/$(get_libdir)/MozillaFirefox ${MOZILLA_FIVE_HOME}/regchrome + + # Fix permissions of component registry + chmod 0644 ${MOZILLA_FIVE_HOME}/components/compreg.dat + + # Fix directory permissions + find ${MOZILLA_FIVE_HOME}/ -type d -perm 0700 -exec chmod 0755 {} \; || : + + # Fix permissions on chrome files + find ${MOZILLA_FIVE_HOME}/chrome/ -name '*.rdf' -exec chmod 0644 {} \; || : + + # 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() { + update_mozilla_launcher_symlinks +} diff --git a/www-client/mozilla-firefox/mozilla-firefox-1.0.ebuild b/www-client/mozilla-firefox/mozilla-firefox-1.0.ebuild new file mode 100644 index 000000000000..b02d0bc4e745 --- /dev/null +++ b/www-client/mozilla-firefox/mozilla-firefox-1.0.ebuild @@ -0,0 +1,171 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/www-client/mozilla-firefox/mozilla-firefox-1.0.ebuild,v 1.1 2005/03/18 19:47:25 seemant Exp $ + +inherit makeedit flag-o-matic gcc nsplugins eutils mozilla mozilla-launcher + +S=${WORKDIR}/mozilla + +DESCRIPTION="The Mozilla Firefox Web Browser" +HOMEPAGE="http://www.mozilla.org/projects/firefox/" +MY_PV=${PV/_rc/rc} +SRC_URI="http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${MY_PV}/source/firefox-${MY_PV}-source.tar.bz2" + +LICENSE="MPL-1.1 NPL-1.1" +SLOT="0" +KEYWORDS="alpha amd64 ~arm ~ia64 ppc sparc x86" +IUSE="java gtk2 ipv6 moznoxft truetype xinerama" + +RDEPEND="virtual/x11 + !moznoxft? ( virtual/xft ) + >=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 + gtk2? ( >=x11-libs/gtk+-2.1.1 >=dev-libs/libIDL-0.8.0 ) + !gtk2? ( =x11-libs/gtk+-1.2* =gnome-base/orbit-0* ) + java? ( virtual/jre ) + >=net-www/mozilla-launcher-1.20" + +DEPEND="${RDEPEND} + virtual/libc + dev-util/pkgconfig + java? ( >=dev-java/java-config-0.2.0 )" + +# 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_PHOENIX=1 + +src_unpack() { + unpack firefox-${MY_PV}-source.tar.bz2 || die "unpack failed" + cd ${S} || die "cd failed" + + # alpha stubs patch from lfs project. + # <taviso@gentoo.org> (26 Jun 2003) + use alpha && epatch ${FILESDIR}/mozilla-1.3-alpha-stubs.patch +} + +src_compile() { + local myconf + + #################################### + # + # myconf, CFLAGS and CXXFLAGS setup + # + #################################### + + # mozilla_conf comes from mozilla.eclass + mozilla_conf + + # 1.0PR requires --enable-single-profile to build + # http://bugzilla.mozilla.org/show_bug.cgi?id=258831 + myconf="${myconf} \ + --with-default-mozilla-five-home=/usr/lib/MozillaFirefox \ + --enable-single-profile" + + # hardened GCC uses -fstack-protector-all by default, and this breaks + # firefox. + has_hardened && append-flags -fno-stack-protector-all + replace-flags -fstack-protector-all -fstack-protector + + #################################### + # + # Configure and build Firefox + # + #################################### + + econf ${myconf} || die + + # This removes extraneous CFLAGS from the Makefiles to reduce RAM + # requirements while compiling + edit_makefiles + + emake MOZ_PHOENIX=1 || die +} + +src_install() { + # Plugin path creation + PLUGIN_DIR="/usr/lib/nsbrowser/plugins" + dodir ${PLUGIN_DIR} + + dodir /usr/lib + dodir /usr/lib/MozillaFirefox + cp -RL --no-preserve=links ${S}/dist/bin/* ${D}/usr/lib/MozillaFirefox + + #fix permissions + chown -R root:root ${D}/usr/lib/MozillaFirefox + + # Plugin path setup (rescuing the existent plugins) + src_mv_plugins /usr/lib/MozillaFirefox/plugins + + dodir /usr/bin + dosym /usr/libexec/mozilla-launcher /usr/bin/firefox + insinto /etc/env.d + doins ${FILESDIR}/10MozillaFirefox + + # Fix icons to look the same everywhere + insinto /usr/lib/MozillaFirefox/icons + doins ${S}/build/package/rpm/SOURCES/mozicon16.xpm + doins ${S}/build/package/rpm/SOURCES/mozicon50.xpm + + # Install icon and .desktop for menu entry + insinto /usr/share/pixmaps + doins ${FILESDIR}/icon/firefox-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/mozillafirefox.desktop + + # Normally firefox-0.9 must be run as root once before it can be + # run as a normal user. Drop in some initialized files to avoid + # this. + einfo "Extracting firefox-${PV} initialization files" + tar xjpf ${FILESDIR}/firefox-0.9-init.tar.bz2 -C ${D}/usr/lib/MozillaFirefox +} + +pkg_preinst() { + export MOZILLA_FIVE_HOME=${ROOT}/usr/lib/MozillaFirefox + + # Remove the old plugins dir + pkg_mv_plugins /usr/lib/MozillaFirefox/plugins + + # Remove entire installed instance to prevent all kinds of + # problems... see bug 44772 for example + rm -rf "${MOZILLA_FIVE_HOME}" +} + +pkg_postinst() { + export MOZILLA_FIVE_HOME="${ROOT}/usr/lib/MozillaFirefox" + + # Needed to update the run time bindings for REGXPCOM + # (do not remove next line!) + env-update + + # Register Components and Chrome + einfo "Registering Components and Chrome..." + LD_LIBRARY_PATH=/usr/lib/MozillaFirefox ${MOZILLA_FIVE_HOME}/regxpcom + LD_LIBRARY_PATH=/usr/lib/MozillaFirefox ${MOZILLA_FIVE_HOME}/regchrome + + # Fix permissions of component registry + chmod 0644 ${MOZILLA_FIVE_HOME}/components/compreg.dat + + # Fix directory permissions + find ${MOZILLA_FIVE_HOME}/ -type d -perm 0700 -exec chmod 0755 {} \; || : + + # Fix permissions on chrome files + find ${MOZILLA_FIVE_HOME}/chrome/ -name '*.rdf' -exec chmod 0644 {} \; || : + + # 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() { + update_mozilla_launcher_symlinks +} diff --git a/www-client/mozilla-firefox/mozilla-firefox-1.0_pre-r2.ebuild b/www-client/mozilla-firefox/mozilla-firefox-1.0_pre-r2.ebuild new file mode 100644 index 000000000000..6fc6248acb49 --- /dev/null +++ b/www-client/mozilla-firefox/mozilla-firefox-1.0_pre-r2.ebuild @@ -0,0 +1,172 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/www-client/mozilla-firefox/mozilla-firefox-1.0_pre-r2.ebuild,v 1.1 2005/03/18 19:47:25 seemant Exp $ + +inherit makeedit flag-o-matic gcc nsplugins eutils mozilla mozilla-launcher + +S=${WORKDIR}/mozilla + +DESCRIPTION="The Mozilla Firefox Web Browser" +HOMEPAGE="http://www.mozilla.org/projects/firefox/" +MY_PV=${PV/_pre/PR.1} +SRC_URI="mirror://gentoo/firefox-${MY_PV}-source.tar.bz2 \ + http://dev.gentoo.org/~brad/firefox-${MY_PV}-source.tar.bz2" + +LICENSE="MPL-1.1 NPL-1.1" +SLOT="0" +KEYWORDS="~alpha amd64 arm ia64 ppc sparc x86" +IUSE="java gtk2 ipv6 moznoxft truetype xinerama" + +RDEPEND="virtual/x11 + !moznoxft? ( virtual/xft ) + >=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 + gtk2? ( >=x11-libs/gtk+-2.1.1 >=dev-libs/libIDL-0.8.0 ) + !gtk2? ( =x11-libs/gtk+-1.2* =gnome-base/orbit-0* ) + java? ( virtual/jre ) + >=net-www/mozilla-launcher-1.20" + +DEPEND="${RDEPEND} + virtual/libc + dev-util/pkgconfig + java? ( >=dev-java/java-config-0.2.0 )" + +# 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_PHOENIX=1 + +src_unpack() { + unpack firefox-${MY_PV}-source.tar.bz2 || die "unpack failed" + cd ${S} || die "cd failed" + + # alpha stubs patch from lfs project. + # <taviso@gentoo.org> (26 Jun 2003) + use alpha && epatch ${FILESDIR}/mozilla-1.3-alpha-stubs.patch +} + +src_compile() { + local myconf + + #################################### + # + # myconf, CFLAGS and CXXFLAGS setup + # + #################################### + + # mozilla_conf comes from mozilla.eclass + mozilla_conf + + # 1.0PR requires --enable-single-profile to build + # http://bugzilla.mozilla.org/show_bug.cgi?id=258831 + myconf="${myconf} \ + --with-default-mozilla-five-home=/usr/lib/MozillaFirefox \ + --enable-single-profile" + + # hardened GCC uses -fstack-protector-all by default, and this breaks + # firefox. + has_hardened && append-flags -fno-stack-protector-all + replace-flags -fstack-protector-all -fstack-protector + + #################################### + # + # Configure and build Firefox + # + #################################### + + econf ${myconf} || die + + # This removes extraneous CFLAGS from the Makefiles to reduce RAM + # requirements while compiling + edit_makefiles + + emake MOZ_PHOENIX=1 || die +} + +src_install() { + # Plugin path creation + PLUGIN_DIR="/usr/lib/nsbrowser/plugins" + dodir ${PLUGIN_DIR} + + dodir /usr/lib + dodir /usr/lib/MozillaFirefox + cp -RL --no-preserve=links ${S}/dist/bin/* ${D}/usr/lib/MozillaFirefox + + #fix permissions + chown -R root:root ${D}/usr/lib/MozillaFirefox + + # Plugin path setup (rescuing the existent plugins) + src_mv_plugins /usr/lib/MozillaFirefox/plugins + + dodir /usr/bin + dosym /usr/libexec/mozilla-launcher /usr/bin/firefox + insinto /etc/env.d + doins ${FILESDIR}/10MozillaFirefox + + # Fix icons to look the same everywhere + insinto /usr/lib/MozillaFirefox/icons + doins ${S}/build/package/rpm/SOURCES/mozicon16.xpm + doins ${S}/build/package/rpm/SOURCES/mozicon50.xpm + + # Install icon and .desktop for menu entry + insinto /usr/share/pixmaps + doins ${FILESDIR}/icon/firefox-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/mozillafirefox.desktop + + # Normally firefox-0.9 must be run as root once before it can be + # run as a normal user. Drop in some initialized files to avoid + # this. + einfo "Extracting firefox-${PV} initialization files" + tar xjpf ${FILESDIR}/firefox-0.9-init.tar.bz2 -C ${D}/usr/lib/MozillaFirefox +} + +pkg_preinst() { + export MOZILLA_FIVE_HOME=${ROOT}/usr/lib/MozillaFirefox + + # Remove the old plugins dir + pkg_mv_plugins /usr/lib/MozillaFirefox/plugins + + # Remove entire installed instance to prevent all kinds of + # problems... see bug 44772 for example + rm -rf "${MOZILLA_FIVE_HOME}" +} + +pkg_postinst() { + export MOZILLA_FIVE_HOME="${ROOT}/usr/lib/MozillaFirefox" + + # Needed to update the run time bindings for REGXPCOM + # (do not remove next line!) + env-update + + # Register Components and Chrome + einfo "Registering Components and Chrome..." + LD_LIBRARY_PATH=/usr/lib/MozillaFirefox ${MOZILLA_FIVE_HOME}/regxpcom + LD_LIBRARY_PATH=/usr/lib/MozillaFirefox ${MOZILLA_FIVE_HOME}/regchrome + + # Fix permissions of component registry + chmod 0644 ${MOZILLA_FIVE_HOME}/components/compreg.dat + + # Fix directory permissions + find ${MOZILLA_FIVE_HOME}/ -type d -perm 0700 -exec chmod 0755 {} \; || : + + # Fix permissions on chrome files + find ${MOZILLA_FIVE_HOME}/chrome/ -name '*.rdf' -exec chmod 0644 {} \; || : + + # 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() { + update_mozilla_launcher_symlinks +} diff --git a/www-client/mozilla-firefox/mozilla-firefox-1.0_rc1.ebuild b/www-client/mozilla-firefox/mozilla-firefox-1.0_rc1.ebuild new file mode 100644 index 000000000000..d9d396c467e4 --- /dev/null +++ b/www-client/mozilla-firefox/mozilla-firefox-1.0_rc1.ebuild @@ -0,0 +1,172 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/www-client/mozilla-firefox/mozilla-firefox-1.0_rc1.ebuild,v 1.1 2005/03/18 19:47:25 seemant Exp $ + +inherit makeedit flag-o-matic gcc nsplugins eutils mozilla mozilla-launcher + +S=${WORKDIR}/mozilla + +DESCRIPTION="The Mozilla Firefox Web Browser" +HOMEPAGE="http://www.mozilla.org/projects/firefox/" +MY_PV=${PV/_rc1/rc1} +SRC_URI="http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${MY_PV}/firefox-${MY_PV}-source.tar.bz2 + http://ftp.mozilla.org/pub/firefox/releases/${MY_PV}/firefox-${MY_PV}-source.tar.bz2" + +LICENSE="MPL-1.1 NPL-1.1" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~sparc ~x86" +IUSE="java gtk2 ipv6 moznoxft truetype xinerama" + +RDEPEND="virtual/x11 + !moznoxft? ( virtual/xft ) + >=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 + gtk2? ( >=x11-libs/gtk+-2.1.1 >=dev-libs/libIDL-0.8.0 ) + !gtk2? ( =x11-libs/gtk+-1.2* =gnome-base/orbit-0* ) + java? ( virtual/jre ) + >=net-www/mozilla-launcher-1.20" + +DEPEND="${RDEPEND} + virtual/libc + dev-util/pkgconfig + java? ( >=dev-java/java-config-0.2.0 )" + +# 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_PHOENIX=1 + +src_unpack() { + unpack firefox-${MY_PV}-source.tar.bz2 || die "unpack failed" + cd ${S} || die "cd failed" + + # alpha stubs patch from lfs project. + # <taviso@gentoo.org> (26 Jun 2003) + use alpha && epatch ${FILESDIR}/mozilla-1.3-alpha-stubs.patch +} + +src_compile() { + local myconf + + #################################### + # + # myconf, CFLAGS and CXXFLAGS setup + # + #################################### + + # mozilla_conf comes from mozilla.eclass + mozilla_conf + + # 1.0PR requires --enable-single-profile to build + # http://bugzilla.mozilla.org/show_bug.cgi?id=258831 + myconf="${myconf} \ + --with-default-mozilla-five-home=/usr/lib/MozillaFirefox \ + --enable-single-profile" + + # hardened GCC uses -fstack-protector-all by default, and this breaks + # firefox. + has_hardened && append-flags -fno-stack-protector-all + replace-flags -fstack-protector-all -fstack-protector + + #################################### + # + # Configure and build Firefox + # + #################################### + + econf ${myconf} || die + + # This removes extraneous CFLAGS from the Makefiles to reduce RAM + # requirements while compiling + edit_makefiles + + emake MOZ_PHOENIX=1 || die +} + +src_install() { + # Plugin path creation + PLUGIN_DIR="/usr/lib/nsbrowser/plugins" + dodir ${PLUGIN_DIR} + + dodir /usr/lib + dodir /usr/lib/MozillaFirefox + cp -RL --no-preserve=links ${S}/dist/bin/* ${D}/usr/lib/MozillaFirefox + + #fix permissions + chown -R root:root ${D}/usr/lib/MozillaFirefox + + # Plugin path setup (rescuing the existent plugins) + src_mv_plugins /usr/lib/MozillaFirefox/plugins + + dodir /usr/bin + dosym /usr/libexec/mozilla-launcher /usr/bin/firefox + insinto /etc/env.d + doins ${FILESDIR}/10MozillaFirefox + + # Fix icons to look the same everywhere + insinto /usr/lib/MozillaFirefox/icons + doins ${S}/build/package/rpm/SOURCES/mozicon16.xpm + doins ${S}/build/package/rpm/SOURCES/mozicon50.xpm + + # Install icon and .desktop for menu entry + insinto /usr/share/pixmaps + doins ${FILESDIR}/icon/firefox-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/mozillafirefox.desktop + + # Normally firefox-0.9 must be run as root once before it can be + # run as a normal user. Drop in some initialized files to avoid + # this. + einfo "Extracting firefox-${PV} initialization files" + tar xjpf ${FILESDIR}/firefox-0.9-init.tar.bz2 -C ${D}/usr/lib/MozillaFirefox +} + +pkg_preinst() { + export MOZILLA_FIVE_HOME=${ROOT}/usr/lib/MozillaFirefox + + # Remove the old plugins dir + pkg_mv_plugins /usr/lib/MozillaFirefox/plugins + + # Remove entire installed instance to prevent all kinds of + # problems... see bug 44772 for example + rm -rf "${MOZILLA_FIVE_HOME}" +} + +pkg_postinst() { + export MOZILLA_FIVE_HOME="${ROOT}/usr/lib/MozillaFirefox" + + # Needed to update the run time bindings for REGXPCOM + # (do not remove next line!) + env-update + + # Register Components and Chrome + einfo "Registering Components and Chrome..." + LD_LIBRARY_PATH=/usr/lib/MozillaFirefox ${MOZILLA_FIVE_HOME}/regxpcom + LD_LIBRARY_PATH=/usr/lib/MozillaFirefox ${MOZILLA_FIVE_HOME}/regchrome + + # Fix permissions of component registry + chmod 0644 ${MOZILLA_FIVE_HOME}/components/compreg.dat + + # Fix directory permissions + find ${MOZILLA_FIVE_HOME}/ -type d -perm 0700 -exec chmod 0755 {} \; || : + + # Fix permissions on chrome files + find ${MOZILLA_FIVE_HOME}/chrome/ -name '*.rdf' -exec chmod 0644 {} \; || : + + # 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() { + update_mozilla_launcher_symlinks +} diff --git a/www-client/mozilla-firefox/mozilla-firefox-1.0_rc2.ebuild b/www-client/mozilla-firefox/mozilla-firefox-1.0_rc2.ebuild new file mode 100644 index 000000000000..7315b1a562e3 --- /dev/null +++ b/www-client/mozilla-firefox/mozilla-firefox-1.0_rc2.ebuild @@ -0,0 +1,171 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/www-client/mozilla-firefox/mozilla-firefox-1.0_rc2.ebuild,v 1.1 2005/03/18 19:47:25 seemant Exp $ + +inherit makeedit flag-o-matic gcc nsplugins eutils mozilla mozilla-launcher + +S=${WORKDIR}/mozilla + +DESCRIPTION="The Mozilla Firefox Web Browser" +HOMEPAGE="http://www.mozilla.org/projects/firefox/" +MY_PV=${PV/_rc/rc} +SRC_URI="http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${MY_PV}/source/firefox-${MY_PV}-source.tar.bz2" + +LICENSE="MPL-1.1 NPL-1.1" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~sparc ~x86" +IUSE="java gtk2 ipv6 moznoxft truetype xinerama" + +RDEPEND="virtual/x11 + !moznoxft? ( virtual/xft ) + >=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 + gtk2? ( >=x11-libs/gtk+-2.1.1 >=dev-libs/libIDL-0.8.0 ) + !gtk2? ( =x11-libs/gtk+-1.2* =gnome-base/orbit-0* ) + java? ( virtual/jre ) + >=net-www/mozilla-launcher-1.20" + +DEPEND="${RDEPEND} + virtual/libc + dev-util/pkgconfig + java? ( >=dev-java/java-config-0.2.0 )" + +# 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_PHOENIX=1 + +src_unpack() { + unpack firefox-${MY_PV}-source.tar.bz2 || die "unpack failed" + cd ${S} || die "cd failed" + + # alpha stubs patch from lfs project. + # <taviso@gentoo.org> (26 Jun 2003) + use alpha && epatch ${FILESDIR}/mozilla-1.3-alpha-stubs.patch +} + +src_compile() { + local myconf + + #################################### + # + # myconf, CFLAGS and CXXFLAGS setup + # + #################################### + + # mozilla_conf comes from mozilla.eclass + mozilla_conf + + # 1.0PR requires --enable-single-profile to build + # http://bugzilla.mozilla.org/show_bug.cgi?id=258831 + myconf="${myconf} \ + --with-default-mozilla-five-home=/usr/lib/MozillaFirefox \ + --enable-single-profile" + + # hardened GCC uses -fstack-protector-all by default, and this breaks + # firefox. + has_hardened && append-flags -fno-stack-protector-all + replace-flags -fstack-protector-all -fstack-protector + + #################################### + # + # Configure and build Firefox + # + #################################### + + econf ${myconf} || die + + # This removes extraneous CFLAGS from the Makefiles to reduce RAM + # requirements while compiling + edit_makefiles + + emake MOZ_PHOENIX=1 || die +} + +src_install() { + # Plugin path creation + PLUGIN_DIR="/usr/lib/nsbrowser/plugins" + dodir ${PLUGIN_DIR} + + dodir /usr/lib + dodir /usr/lib/MozillaFirefox + cp -RL --no-preserve=links ${S}/dist/bin/* ${D}/usr/lib/MozillaFirefox + + #fix permissions + chown -R root:root ${D}/usr/lib/MozillaFirefox + + # Plugin path setup (rescuing the existent plugins) + src_mv_plugins /usr/lib/MozillaFirefox/plugins + + dodir /usr/bin + dosym /usr/libexec/mozilla-launcher /usr/bin/firefox + insinto /etc/env.d + doins ${FILESDIR}/10MozillaFirefox + + # Fix icons to look the same everywhere + insinto /usr/lib/MozillaFirefox/icons + doins ${S}/build/package/rpm/SOURCES/mozicon16.xpm + doins ${S}/build/package/rpm/SOURCES/mozicon50.xpm + + # Install icon and .desktop for menu entry + insinto /usr/share/pixmaps + doins ${FILESDIR}/icon/firefox-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/mozillafirefox.desktop + + # Normally firefox-0.9 must be run as root once before it can be + # run as a normal user. Drop in some initialized files to avoid + # this. + einfo "Extracting firefox-${PV} initialization files" + tar xjpf ${FILESDIR}/firefox-0.9-init.tar.bz2 -C ${D}/usr/lib/MozillaFirefox +} + +pkg_preinst() { + export MOZILLA_FIVE_HOME=${ROOT}/usr/lib/MozillaFirefox + + # Remove the old plugins dir + pkg_mv_plugins /usr/lib/MozillaFirefox/plugins + + # Remove entire installed instance to prevent all kinds of + # problems... see bug 44772 for example + rm -rf "${MOZILLA_FIVE_HOME}" +} + +pkg_postinst() { + export MOZILLA_FIVE_HOME="${ROOT}/usr/lib/MozillaFirefox" + + # Needed to update the run time bindings for REGXPCOM + # (do not remove next line!) + env-update + + # Register Components and Chrome + einfo "Registering Components and Chrome..." + LD_LIBRARY_PATH=/usr/lib/MozillaFirefox ${MOZILLA_FIVE_HOME}/regxpcom + LD_LIBRARY_PATH=/usr/lib/MozillaFirefox ${MOZILLA_FIVE_HOME}/regchrome + + # Fix permissions of component registry + chmod 0644 ${MOZILLA_FIVE_HOME}/components/compreg.dat + + # Fix directory permissions + find ${MOZILLA_FIVE_HOME}/ -type d -perm 0700 -exec chmod 0755 {} \; || : + + # Fix permissions on chrome files + find ${MOZILLA_FIVE_HOME}/chrome/ -name '*.rdf' -exec chmod 0644 {} \; || : + + # 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() { + update_mozilla_launcher_symlinks +} |