summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Sanda <ps@twin.jikos.cz>2012-02-20 10:09:44 +0100
committerPavel Sanda <ps@twin.jikos.cz>2012-02-20 10:09:44 +0100
commit946d03e809168de689fef513b1d6d89962d7d632 (patch)
tree0957f70b1f742dbd2fb1b284983272c68777e329
parentMigrate xpdf from portage before removal (diff)
downloadrebutia-946d03e809168de689fef513b1d6d89962d7d632.tar.gz
rebutia-946d03e809168de689fef513b1d6d89962d7d632.tar.bz2
rebutia-946d03e809168de689fef513b1d6d89962d7d632.zip
Bump firefox 3.6.27
-rw-r--r--net-libs/xulrunner/Manifest12
-rw-r--r--net-libs/xulrunner/files/arm-bug-644136.patch14
-rw-r--r--net-libs/xulrunner/files/bug-606109.patch48
-rw-r--r--net-libs/xulrunner/files/bug-626229.patch177
-rw-r--r--net-libs/xulrunner/files/fix-animated-gifs.patch246
-rw-r--r--net-libs/xulrunner/files/libnotify-0.7.patch56
-rw-r--r--net-libs/xulrunner/files/mozilla-2.0_arm_respect_cflags.patch80
-rw-r--r--net-libs/xulrunner/files/mozilla-2.0_support_64bit_big_endian.patch60
-rw-r--r--net-libs/xulrunner/files/xulrunner-1.9.2-gtk+-2.21.patch23
-rw-r--r--net-libs/xulrunner/files/xulrunner-default-prefs.js14
-rw-r--r--net-libs/xulrunner/xulrunner-1.9.2.27.ebuild262
-rw-r--r--www-client/firefox/Manifest85
-rw-r--r--www-client/firefox/files/firefox-default-prefs.js2
-rw-r--r--www-client/firefox/files/firefox.1125
-rw-r--r--www-client/firefox/files/fix-preferences-gentoo.patch10
-rw-r--r--www-client/firefox/files/gentoo-default-prefs.js14
-rw-r--r--www-client/firefox/files/gentoo-default-prefs.js-117
-rw-r--r--www-client/firefox/files/icon/firefox-1.5-unbranded.desktop9
-rw-r--r--www-client/firefox/files/icon/firefox-1.5.desktop9
-rw-r--r--www-client/firefox/files/icon/firefox.desktop9
-rw-r--r--www-client/firefox/files/xulrunner-1.9.2-gtk+-2.21.patch23
-rw-r--r--www-client/firefox/firefox-3.6.27.ebuild287
22 files changed, 1582 insertions, 0 deletions
diff --git a/net-libs/xulrunner/Manifest b/net-libs/xulrunner/Manifest
new file mode 100644
index 0000000..69bb6fd
--- /dev/null
+++ b/net-libs/xulrunner/Manifest
@@ -0,0 +1,12 @@
+AUX arm-bug-644136.patch 472 RMD160 bda46fa7a4ca306ebfa3455d90c6e54a3f0d97e1 SHA1 f2eb5ab3ce793fc7d8c30d9f9db6be3a714f5c16 SHA256 3152f9c5b3f9cd75caf522e71d4105be8fbcc4def3e2f4162663799d78e03511
+AUX bug-606109.patch 1243 RMD160 ec262eed0480d8a13c914c4781329e3ea1c23b0f SHA1 0c0cc40ee0a663422b107cc3ae5d1412b8c45ac7 SHA256 266d9c7218cc04c3badadc54f8f31b1238326b9c3052aed057ffce40c69541dc
+AUX bug-626229.patch 4172 RMD160 d7ae0bc768b6951c249d640d7f0c079cd46f3adb SHA1 bd5d649948e0cb3a662bfa35f9ce6f1f60653067 SHA256 c61d16a56bcc7e333e8f47662d1ad9bc8468806bbf9d76c500d666bf645c1ddc
+AUX fix-animated-gifs.patch 7789 RMD160 a8889110a2daea27e07f92a70df6cb1e39e05546 SHA1 05b335feeefff4f06004a20182f821d998b44879 SHA256 6d85d3c103b0dcdbb073302a4041a37bea97c715384d04d299c1fb49a5da7443
+AUX libnotify-0.7.patch 1777 RMD160 1669210dd704fd4cb84be3fbb8ced8bd10133abb SHA1 981a0cf66608e1b441c21db73a7203711de56fe0 SHA256 153d129004e63baca57182ce2ec381a9103feef9e5fbdf631339bce25cde9489
+AUX mozilla-2.0_arm_respect_cflags.patch 3333 RMD160 d5f8b428a5a9cb0938e99666ac66d2abf3156b9b SHA1 17a5807b5f26a54ba80be7d0b64fbeb6d050364b SHA256 fb92269bcd700b257133875d5ecba063e99f33235282b251d4bb0eb37a73ba8f
+AUX mozilla-2.0_support_64bit_big_endian.patch 1668 RMD160 1013dbd09d7956162351f5209eb77f08d83d9a12 SHA1 83423a47c016bdefdac562c8d606868eb81d9e62 SHA256 041ffa768a680293f97b325573a91a2c63841cd25648294e7989fcfcaedc70f2
+AUX xulrunner-1.9.2-gtk+-2.21.patch 663 RMD160 20e2465da0e6c884527fd7cfebd3bdb2f8f015a9 SHA1 f2b9c26ed255bde672ccc8cb7ae4ae014f52d6f5 SHA256 79c11dc4304d748f3c2d6e451aa6d44dd1bb450d1db671e7fa4a83420c6f2c05
+AUX xulrunner-default-prefs.js 677 RMD160 73ec130da332c1d6517a6f838d5fab0cc134289a SHA1 b9efc3ef5e95ad3081f6b68d771e32e848b4b9ac SHA256 53493080276f221f1619153c114caf268206a6fa107972b33a4eb7f1c1cf6fe8
+DIST firefox-3.6.27.source.tar.bz2 51693122 RMD160 96d6be5fad13a8777bed00e728e0888fb0cefdde SHA1 dd472a10e4ef5b017f00074d0325be13e832d610 SHA256 2e715c0961488c3879250f2930bf15dda6e2321351fb24d7fa2c708995ecf241
+DIST xulrunner-1.9.2-patches-0.9.tar.bz2 15320 RMD160 2dfb86650c0a9a1f0c5bf86df7434c7c286658d6 SHA1 a2276c708eec2e92611ac1e7a2eaf25c39263d30 SHA256 5cca685442f1ab920eb1ba86719a38a437ae05bd5cefc42ababc2556425ebf5a
+EBUILD xulrunner-1.9.2.27.ebuild 8524 RMD160 eeccab55e0c128bc1052488587968ba7a635654a SHA1 493251e23c80243a15a4929af0c30f36e101ce1e SHA256 9a307bbd2f1a2cde7ef1ce9877e2d548205e64c8f385c1768b41d8e4c73b8ec5
diff --git a/net-libs/xulrunner/files/arm-bug-644136.patch b/net-libs/xulrunner/files/arm-bug-644136.patch
new file mode 100644
index 0000000..4183f74
--- /dev/null
+++ b/net-libs/xulrunner/files/arm-bug-644136.patch
@@ -0,0 +1,14 @@
+diff -r 4e4c7457e8f7 js/src/ctypes/libffi/src/arm/sysv.S
+--- a/js/src/ctypes/libffi/src/arm/sysv.S Sat Apr 02 11:48:22 2011 -0400
++++ b/js/src/ctypes/libffi/src/arm/sysv.S Sun Apr 03 04:55:15 2011 +0300
+@@ -229,6 +229,10 @@
+ .size CNAME(ffi_call_SYSV),.ffi_call_SYSV_end-CNAME(ffi_call_SYSV)
+
+
++/* Below are VFP hard-float ABI call and closure implementations.
++ Add VFP FPU directive here. */
++ .fpu vfp
++
+ @ r0: fn
+ @ r1: &ecif
+ @ r2: cif->bytes
diff --git a/net-libs/xulrunner/files/bug-606109.patch b/net-libs/xulrunner/files/bug-606109.patch
new file mode 100644
index 0000000..93f1142
--- /dev/null
+++ b/net-libs/xulrunner/files/bug-606109.patch
@@ -0,0 +1,48 @@
+# HG changeset patch
+# User Jory A. Pratt <anarchy@gentoo.org>
+# Parent 74e4421e0a30c6e21b594675e32a8d9d663c309c
+Add missing ifde MOZ_MEDIA
+
+diff --git a/content/base/src/nsContentSink.cpp b/content/base/src/nsContentSink.cpp
+--- a/content/base/src/nsContentSink.cpp
++++ b/content/base/src/nsContentSink.cpp
+@@ -1860,17 +1860,19 @@ nsIAtom** const kDefaultAllowedTags [] =
+ &nsGkAtoms::nobr,
+ &nsGkAtoms::noscript,
+ &nsGkAtoms::ol,
+ &nsGkAtoms::optgroup,
+ &nsGkAtoms::option,
+ &nsGkAtoms::output,
+ &nsGkAtoms::p,
+ &nsGkAtoms::pre,
++#ifdef MOZ_MEDIA
+ &nsGkAtoms::progress,
++#endif
+ &nsGkAtoms::q,
+ &nsGkAtoms::rp,
+ &nsGkAtoms::rt,
+ &nsGkAtoms::ruby,
+ &nsGkAtoms::s,
+ &nsGkAtoms::samp,
+ &nsGkAtoms::section,
+ &nsGkAtoms::select,
+@@ -1952,17 +1954,19 @@ nsIAtom** const kDefaultAllowedAttribute
+ &nsGkAtoms::itemref,
+ &nsGkAtoms::itemscope,
+ &nsGkAtoms::itemtype,
+ &nsGkAtoms::kind,
+ &nsGkAtoms::label,
+ &nsGkAtoms::lang,
+ &nsGkAtoms::list,
+ &nsGkAtoms::longdesc,
++#ifdef MOZ_MEDIA
+ &nsGkAtoms::loop,
++#endif
+ &nsGkAtoms::low,
+ &nsGkAtoms::max,
+ &nsGkAtoms::maxlength,
+ &nsGkAtoms::media,
+ &nsGkAtoms::min,
+ &nsGkAtoms::mozdonotsend,
+ &nsGkAtoms::method,
+ &nsGkAtoms::multiple,
diff --git a/net-libs/xulrunner/files/bug-626229.patch b/net-libs/xulrunner/files/bug-626229.patch
new file mode 100644
index 0000000..27ee417
--- /dev/null
+++ b/net-libs/xulrunner/files/bug-626229.patch
@@ -0,0 +1,177 @@
+diff --git a/dom/ipc/ContentChild.cpp b/dom/ipc/ContentChild.cpp
+--- a/dom/ipc/ContentChild.cpp
++++ b/dom/ipc/ContentChild.cpp
+@@ -43,27 +43,31 @@
+
+ #ifdef MOZ_WIDGET_QT
+ #include "nsQAppInstance.h"
+ #endif
+
+ #include "ContentChild.h"
+ #include "CrashReporterChild.h"
+ #include "TabChild.h"
++#if defined(MOZ_SYDNEYAUDIO)
+ #include "AudioChild.h"
++#endif
+
+ #include "mozilla/ipc/TestShellChild.h"
+ #include "mozilla/net/NeckoChild.h"
+ #include "mozilla/ipc/XPCShellEnvironment.h"
+ #include "mozilla/jsipc/PContextWrapperChild.h"
+ #include "mozilla/dom/ExternalHelperAppChild.h"
+ #include "mozilla/dom/StorageChild.h"
+ #include "mozilla/dom/PCrashReporterChild.h"
+
++#if defined(MOZ_SYDNEYAUDIO)
+ #include "nsAudioStream.h"
++#endif
+ #include "nsIMemoryReporter.h"
+ #include "nsIObserverService.h"
+ #include "nsTObserverArray.h"
+ #include "nsIObserver.h"
+ #include "nsIPrefService.h"
+ #include "nsServiceManagerUtils.h"
+ #include "nsXULAppAPI.h"
+ #include "nsWeakReference.h"
+@@ -379,26 +383,32 @@ ContentChild::RecvPTestShellConstructor(
+ return true;
+ }
+
+ PAudioChild*
+ ContentChild::AllocPAudio(const PRInt32& numChannels,
+ const PRInt32& rate,
+ const PRInt32& format)
+ {
++#if defined(MOZ_SYDNEYAUDIO)
+ AudioChild *child = new AudioChild();
+ NS_ADDREF(child);
+ return child;
++#else
++ return nsnull;
++#endif
+ }
+
+ bool
+ ContentChild::DeallocPAudio(PAudioChild* doomed)
+ {
++#if defined(MOZ_SYDNEYAUDIO)
+ AudioChild *child = static_cast<AudioChild*>(doomed);
+ NS_RELEASE(child);
++#endif
+ return true;
+ }
+
+ PNeckoChild*
+ ContentChild::AllocPNecko()
+ {
+ return new NeckoChild();
+ }
+diff --git a/dom/ipc/ContentParent.cpp b/dom/ipc/ContentParent.cpp
+--- a/dom/ipc/ContentParent.cpp
++++ b/dom/ipc/ContentParent.cpp
+@@ -63,17 +63,19 @@
+ #include "nsCExternalHandlerService.h"
+ #include "nsFrameMessageManager.h"
+ #include "nsIAlertsService.h"
+ #include "nsToolkitCompsCID.h"
+ #include "nsIDOMGeoGeolocation.h"
+ #include "nsIConsoleService.h"
+ #include "nsIScriptError.h"
+ #include "nsConsoleMessage.h"
++#if defined(MOZ_SYDNEYAUDIO)
+ #include "AudioParent.h"
++#endif
+
+ #if defined(ANDROID) || defined(LINUX)
+ #include <sys/time.h>
+ #include <sys/resource.h>
+ #endif
+
+ #ifdef MOZ_PERMISSIONS
+ #include "nsPermissionManager.h"
+@@ -682,26 +684,32 @@ ContentParent::DeallocPTestShell(PTestSh
+ return true;
+ }
+
+ PAudioParent*
+ ContentParent::AllocPAudio(const PRInt32& numChannels,
+ const PRInt32& rate,
+ const PRInt32& format)
+ {
++#if defined(MOZ_SYDNEYAUDIO)
+ AudioParent *parent = new AudioParent(numChannels, rate, format);
+ NS_ADDREF(parent);
+ return parent;
++#else
++ return nsnull;
++#endif
+ }
+
+ bool
+ ContentParent::DeallocPAudio(PAudioParent* doomed)
+ {
++#if defined(MOZ_SYDNEYAUDIO)
+ AudioParent *parent = static_cast<AudioParent*>(doomed);
+ NS_RELEASE(parent);
++#endif
+ return true;
+ }
+
+ PNeckoParent*
+ ContentParent::AllocPNecko()
+ {
+ return new NeckoParent();
+ }
+diff --git a/dom/ipc/Makefile.in b/dom/ipc/Makefile.in
+--- a/dom/ipc/Makefile.in
++++ b/dom/ipc/Makefile.in
+@@ -51,38 +51,45 @@ DIRS = tests
+ DIRS = tests
+ endif
+
+ EXPORTS = TabMessageUtils.h PCOMContentPermissionRequestChild.h
+
+ EXPORTS_NAMESPACES = mozilla/dom
+
+ EXPORTS_mozilla/dom = \
+- AudioChild.h \
+- AudioParent.h \
+ ContentChild.h \
+ ContentParent.h \
+ ContentProcess.h \
+ CrashReporterChild.h \
+ CrashReporterParent.h \
+ TabParent.h \
+ TabChild.h \
+ $(NULL)
+
+ CPPSRCS = \
+- AudioChild.cpp \
+- AudioParent.cpp \
+ ContentProcess.cpp \
+ ContentParent.cpp \
+ ContentChild.cpp \
+ CrashReporterParent.cpp \
+ TabParent.cpp \
+ TabChild.cpp \
+ TabMessageUtils.cpp \
+ $(NULL)
++
++ifdef MOZ_SYDNEYAUDIO
++EXPORTS_mozilla/dom += \
++ AudioChild.h \
++ AudioParent.h \
++ $(NULL)
++CPPSRCS += \
++ AudioChild.cpp \
++ AudioParent.cpp \
++ $(NULL)
++endif
+
+ include $(topsrcdir)/config/config.mk
+ include $(topsrcdir)/ipc/chromium/chromium-config.mk
+ include $(topsrcdir)/config/rules.mk
+
+ LOCAL_INCLUDES += \
+ -I$(srcdir)/../../content/base/src \
+ -I$(srcdir)/../../content/events/src \
diff --git a/net-libs/xulrunner/files/fix-animated-gifs.patch b/net-libs/xulrunner/files/fix-animated-gifs.patch
new file mode 100644
index 0000000..58b994c
--- /dev/null
+++ b/net-libs/xulrunner/files/fix-animated-gifs.patch
@@ -0,0 +1,246 @@
+# HG changeset patch
+# User Rafał Mużyło <galtgendo@o2.pl>
+# Parent 69e253891ca3839b6d4b8f5cb7c0e6950bb66902
+Fix animated gif flickering bug 597174
+
+diff --git a/modules/libpr0n/decoders/gif/nsGIFDecoder2.cpp b/modules/libpr0n/decoders/gif/nsGIFDecoder2.cpp
+--- a/modules/libpr0n/decoders/gif/nsGIFDecoder2.cpp
++++ b/modules/libpr0n/decoders/gif/nsGIFDecoder2.cpp
+@@ -197,30 +197,29 @@ static NS_METHOD ReadDataOut(nsIInputStr
+ }
+
+ // Push any new rows according to mCurrentPass/mLastFlushedPass and
+ // mCurrentRow/mLastFlushedRow. Note: caller is responsible for
+ // updating mlastFlushed{Row,Pass}.
+ nsresult
+ nsGIFDecoder2::FlushImageData(PRUint32 fromRow, PRUint32 rows)
+ {
+- nsIntRect r(0, fromRow, mGIFStruct.width, rows);
++ nsIntRect r(mGIFStruct.x_offset, mGIFStruct.y_offset + fromRow, mGIFStruct.width, rows);
+
+ // Update image
+ nsresult rv = mImageContainer->FrameUpdated(mGIFStruct.images_decoded, r);
+ if (NS_FAILED(rv)) {
+ return rv;
+ }
+
+ // Offset to the frame position
+ // Only notify observer(s) for first frame
+ if (!mGIFStruct.images_decoded && mObserver) {
+ PRUint32 imgCurFrame;
+ mImageContainer->GetCurrentFrameIndex(&imgCurFrame);
+- r.y += mGIFStruct.y_offset;
+ mObserver->OnDataAvailable(nsnull, imgCurFrame == PRUint32(mGIFStruct.images_decoded), &r);
+ }
+ return NS_OK;
+ }
+
+ nsresult
+ nsGIFDecoder2::FlushImageData()
+ {
+diff --git a/modules/libpr0n/src/imgContainer.cpp b/modules/libpr0n/src/imgContainer.cpp
+--- a/modules/libpr0n/src/imgContainer.cpp
++++ b/modules/libpr0n/src/imgContainer.cpp
+@@ -415,16 +415,18 @@ nsresult imgContainer::InternalAddFrameH
+
+ nsAutoPtr<imgFrame> frame(aFrame);
+
+ if (paletteData && paletteLength)
+ frame->GetPaletteData(paletteData, paletteLength);
+
+ frame->GetImageData(imageData, imageLength);
+
++ frame->LockImageData();
++
+ mFrames.InsertElementAt(framenum, frame.forget());
+ mNumFrames++;
+
+ return NS_OK;
+ }
+
+ nsresult imgContainer::InternalAddFrame(PRUint32 framenum,
+ PRInt32 aX, PRInt32 aY,
+@@ -440,16 +442,21 @@ nsresult imgContainer::InternalAddFrame(
+ return NS_ERROR_INVALID_ARG;
+
+ nsAutoPtr<imgFrame> frame(new imgFrame());
+ NS_ENSURE_TRUE(frame, NS_ERROR_OUT_OF_MEMORY);
+
+ nsresult rv = frame->Init(aX, aY, aWidth, aHeight, aFormat, aPaletteDepth);
+ NS_ENSURE_SUCCESS(rv, rv);
+
++ if (mFrames.Length() > 0) {
++ imgFrame *prevframe = mFrames.ElementAt(mFrames.Length() - 1);
++ prevframe->UnlockImageData();
++ }
++
+ if (mFrames.Length() == 0) {
+ return InternalAddFrameHelper(framenum, frame.forget(), imageData, imageLength,
+ paletteData, paletteLength);
+ }
+
+ if (mFrames.Length() == 1) {
+ // Since we're about to add our second frame, initialize animation stuff
+ if (!ensureAnimExists())
+diff --git a/modules/libpr0n/src/imgFrame.cpp b/modules/libpr0n/src/imgFrame.cpp
+--- a/modules/libpr0n/src/imgFrame.cpp
++++ b/modules/libpr0n/src/imgFrame.cpp
+@@ -152,16 +152,17 @@ imgFrame::imgFrame() :
+ mBlendMethod(1), /* imgIContainer::kBlendOver */
+ mSinglePixel(PR_FALSE),
+ mNeverUseDeviceSurface(PR_FALSE),
+ mFormatChanged(PR_FALSE),
+ mCompositingFailed(PR_FALSE)
+ #ifdef USE_WIN_SURFACE
+ , mIsDDBSurface(PR_FALSE)
+ #endif
++ , mLocked(PR_FALSE)
+ {
+ static PRBool hasCheckedOptimize = PR_FALSE;
+ if (!hasCheckedOptimize) {
+ if (PR_GetEnv("MOZ_DISABLE_IMAGE_OPTIMIZE")) {
+ gDisableOptimize = PR_TRUE;
+ }
+ hasCheckedOptimize = PR_TRUE;
+ }
+@@ -413,18 +414,17 @@ void imgFrame::Draw(gfxContext *aContext
+ nsRefPtr<gfxASurface> surface;
+ gfxImageSurface::gfxImageFormat format;
+
+ NS_ASSERTION(!sourceRect.Intersect(subimage).IsEmpty(),
+ "We must be allowed to sample *some* source pixels!");
+
+ PRBool doTile = !imageRect.Contains(sourceRect);
+ if (doPadding || doPartialDecode) {
+- gfxRect available = gfxRect(mDecoded.x, mDecoded.y, mDecoded.width, mDecoded.height) +
+- gfxPoint(aPadding.left, aPadding.top);
++ gfxRect available = gfxRect(mDecoded.x, mDecoded.y, mDecoded.width, mDecoded.height);
+
+ if (!doTile && !mSinglePixel) {
+ // Not tiling, and we have a surface, so we can account for
+ // padding and/or a partial decode just by twiddling parameters.
+ // First, update our user-space fill rect.
+ sourceRect = sourceRect.Intersect(available);
+ gfxMatrix imageSpaceToUserSpace = userSpaceToImageSpace;
+ imageSpaceToUserSpace.Invert();
+@@ -708,17 +708,17 @@ nsresult imgFrame::ImageUpdated(const ns
+ mem->IsLowMemory(&lowMemory);
+ if (lowMemory)
+ return NS_ERROR_OUT_OF_MEMORY;
+
+ mDecoded.UnionRect(mDecoded, aUpdateRect);
+
+ // clamp to bounds, in case someone sends a bogus updateRect (I'm looking at
+ // you, gif decoder)
+- nsIntRect boundsRect(0, 0, mSize.width, mSize.height);
++ nsIntRect boundsRect(mOffset, mSize);
+ mDecoded.IntersectRect(mDecoded, boundsRect);
+
+ #ifdef XP_MACOSX
+ if (mQuartzSurface)
+ mQuartzSurface->Flush();
+ #endif
+ return NS_OK;
+ }
+@@ -806,17 +806,23 @@ void imgFrame::GetPaletteData(PRUint32 *
+ *aPalette = (PRUint32 *) mPalettedImageData;
+ *length = PaletteDataLength();
+ }
+ }
+
+ nsresult imgFrame::LockImageData()
+ {
+ if (mPalettedImageData)
+- return NS_OK;
++ return NS_ERROR_NOT_AVAILABLE;
++
++ NS_ABORT_IF_FALSE(!mLocked, "Trying to lock already locked image data.");
++ if (mLocked) {
++ return NS_ERROR_FAILURE;
++ }
++ mLocked = PR_TRUE;
+
+ if ((mOptSurface || mSinglePixel) && !mImageSurface) {
+ // Recover the pixels
+ mImageSurface = new gfxImageSurface(gfxIntSize(mSize.width, mSize.height),
+ gfxImageSurface::ImageFormatARGB32);
+ if (!mImageSurface || mImageSurface->CairoStatus())
+ return NS_ERROR_OUT_OF_MEMORY;
+
+@@ -832,23 +838,35 @@ nsresult imgFrame::LockImageData()
+ #ifdef USE_WIN_SURFACE
+ mWinSurface = nsnull;
+ #endif
+ #ifdef XP_MACOSX
+ mQuartzSurface = nsnull;
+ #endif
+ }
+
++ if (mImageSurface)
++ mImageSurface->Flush();
++
+ return NS_OK;
+ }
+
+ nsresult imgFrame::UnlockImageData()
+ {
+ if (mPalettedImageData)
+- return NS_OK;
++ return NS_ERROR_NOT_AVAILABLE;
++
++ NS_ABORT_IF_FALSE(mLocked, "Unlocking an unlocked image!");
++ if (!mLocked) {
++ return NS_ERROR_FAILURE;
++ }
++ mLocked = PR_FALSE;
++
++ if (mImageSurface)
++ mImageSurface->MarkDirty();
+
+ #ifdef XP_MACOSX
+ if (mQuartzSurface)
+ mQuartzSurface->Flush();
+ #endif
+ return NS_OK;
+ }
+
+@@ -895,17 +913,17 @@ PRInt32 imgFrame::GetBlendMethod() const
+
+ void imgFrame::SetBlendMethod(PRInt32 aBlendMethod)
+ {
+ mBlendMethod = (PRInt8)aBlendMethod;
+ }
+
+ PRBool imgFrame::ImageComplete() const
+ {
+- return mDecoded == nsIntRect(0, 0, mSize.width, mSize.height);
++ return mDecoded == nsIntRect(mOffset, mSize);
+ }
+
+ // A hint from the image decoders that this image has no alpha, even
+ // though we created is ARGB32. This changes our format to RGB24,
+ // which in turn will cause us to Optimize() to RGB24. Has no effect
+ // after Optimize() is called, though in all cases it will be just a
+ // performance win -- the pixels are still correct and have the A byte
+ // set to 0xff.
+diff --git a/modules/libpr0n/src/imgFrame.h b/modules/libpr0n/src/imgFrame.h
+--- a/modules/libpr0n/src/imgFrame.h
++++ b/modules/libpr0n/src/imgFrame.h
+@@ -167,16 +167,17 @@ private: // data
+
+ gfxASurface::gfxImageFormat mFormat;
+ PRInt8 mPaletteDepth;
+ PRInt8 mBlendMethod;
+ PRPackedBool mSinglePixel;
+ PRPackedBool mNeverUseDeviceSurface;
+ PRPackedBool mFormatChanged;
+ PRPackedBool mCompositingFailed;
++ PRPackedBool mLocked;
+
+ #ifdef XP_WIN
+ PRPackedBool mIsDDBSurface;
+ #endif
+
+ };
+
+ #endif /* imgFrame_h */
diff --git a/net-libs/xulrunner/files/libnotify-0.7.patch b/net-libs/xulrunner/files/libnotify-0.7.patch
new file mode 100644
index 0000000..0adbeaf
--- /dev/null
+++ b/net-libs/xulrunner/files/libnotify-0.7.patch
@@ -0,0 +1,56 @@
+# HG changeset patch
+# User Priit Laes <plaes@plaes.org>
+# Parent 194dd9a57615185c998a87148fac65df51600758
+Bug 628222 - Add support for libnotify-0.7+. r=karlt
+
+diff --git a/toolkit/system/gnome/nsAlertsIconListener.cpp b/toolkit/system/gnome/nsAlertsIconListener.cpp
+--- a/toolkit/system/gnome/nsAlertsIconListener.cpp
++++ b/toolkit/system/gnome/nsAlertsIconListener.cpp
+@@ -42,16 +42,21 @@
+ #include "nsNetUtil.h"
+ #include "nsIImageToPixbuf.h"
+ #include "nsIStringBundle.h"
+
+ #include <gdk-pixbuf/gdk-pixbuf.h>
+ #include <libnotify/notify.h>
+ #include <gdk/gdk.h>
+
++// Compatibility macro for <libnotify-0.7
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
++
+ static PRBool gHasActions = PR_FALSE;
+
+ static void notify_action_cb(NotifyNotification *notification,
+ gchar *action, gpointer user_data)
+ {
+ nsAlertsIconListener* alert = static_cast<nsAlertsIconListener*> (user_data);
+ alert->SendCallback();
+ }
+@@ -199,17 +204,23 @@ nsAlertsIconListener::OnStopFrame(imgIRe
+ return NS_OK;
+ }
+
+ nsresult
+ nsAlertsIconListener::ShowAlert(GdkPixbuf* aPixbuf)
+ {
+ NotifyNotification* notify = notify_notification_new(mAlertTitle.get(),
+ mAlertText.get(),
+- NULL, NULL);
++ NULL
++// >=libnotify-0.7.0 has no support for attaching to widgets
++#if !NOTIFY_CHECK_VERSION(0,7,0)
++ , NULL
++#endif
++ );
++
+ if (!notify)
+ return NS_ERROR_OUT_OF_MEMORY;
+
+ if (aPixbuf)
+ notify_notification_set_icon_from_pixbuf(notify, aPixbuf);
+
+ NS_ADDREF(this);
+ if (mAlertHasAction) {
+
diff --git a/net-libs/xulrunner/files/mozilla-2.0_arm_respect_cflags.patch b/net-libs/xulrunner/files/mozilla-2.0_arm_respect_cflags.patch
new file mode 100644
index 0000000..46efe35
--- /dev/null
+++ b/net-libs/xulrunner/files/mozilla-2.0_arm_respect_cflags.patch
@@ -0,0 +1,80 @@
+diff -ur mozilla-release.orig//configure.in mozilla-release/configure.in
+--- mozilla-release.orig//configure.in 2011-07-17 13:44:12.000000000 +0200
++++ mozilla-release/configure.in 2011-07-17 13:46:50.000000000 +0200
+@@ -7165,9 +7165,6 @@
+ if test "$GNU_CC"; then
+ AC_DEFINE(MOZ_THUMB2)
+ AC_DEFINE(MOZ_ARM_ARCH)
+- CFLAGS="$CFLAGS -march=armv7-a -mthumb -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
+- CXXFLAGS="$CXXFLAGS -march=armv7-a -mthumb -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
+- ASFLAGS="$ASFLAGS -march=armv7-a -mthumb -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
+ else
+ AC_MSG_ERROR([--enable-thumb2 is not supported for non-GNU toolchains])
+ fi
+@@ -7181,9 +7178,6 @@
+ arm*)
+ if test "$GNU_CC"; then
+ AC_DEFINE(MOZ_ARM_ARCH)
+- CFLAGS="$CFLAGS -march=armv7-a -marm -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
+- CXXFLAGS="$CXXFLAGS -march=armv7-a -marm -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
+- ASFLAGS="$ASFLAGS -march=armv7-a -marm -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
+ else
+ AC_MSG_ERROR([--with-cpu-arch=armv7 is not supported for non-GNU toolchains])
+ fi
+@@ -7192,16 +7186,6 @@
+ AC_MSG_ERROR([--with-cpu-arch=armv7 is not supported for non-ARM CPU architectures])
+ ;;
+ esac
+-else
+- case "$target_cpu" in
+- arm*)
+- if test "$GNU_CC"; then
+- CFLAGS="$CFLAGS -march=armv5te -mthumb-interwork -msoft-float"
+- CXXFLAGS="$CXXFLAGS -march=armv5te -mthumb-interwork -msoft-float"
+- ASFLAGS="$ASFLAGS -march=armv5te -mthumb-interwork -msoft-float"
+- fi
+- ;;
+- esac
+ fi
+
+ AC_SUBST(MOZ_THUMB2)
+diff -ur mozilla-release.orig//js/src/configure.in mozilla-release/js/src/configure.in
+--- mozilla-release.orig//js/src/configure.in 2011-07-17 13:43:42.000000000 +0200
++++ mozilla-release/js/src/configure.in 2011-07-17 13:47:39.000000000 +0200
+@@ -4607,9 +4607,6 @@
+ if test "$GNU_CC"; then
+ AC_DEFINE(MOZ_THUMB2)
+ AC_DEFINE(MOZ_ARM_ARCH)
+- CFLAGS="$CFLAGS -march=armv7-a -mthumb -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
+- CXXFLAGS="$CXXFLAGS -march=armv7-a -mthumb -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
+- ASFLAGS="$ASFLAGS -march=armv7-a -mthumb -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
+ else
+ AC_MSG_ERROR([--enable-thumb2 is not supported for non-GNU toolchains])
+ fi
+@@ -4623,9 +4620,6 @@
+ arm*)
+ if test "$GNU_CC"; then
+ AC_DEFINE(MOZ_ARM_ARCH)
+- CFLAGS="$CFLAGS -march=armv7-a -marm -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
+- CXXFLAGS="$CXXFLAGS -march=armv7-a -marm -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
+- ASFLAGS="$ASFLAGS -march=armv7-a -marm -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
+ else
+ AC_MSG_ERROR([--with-cpu-arch=armv7 is not supported for non-GNU toolchains])
+ fi
+@@ -4634,16 +4628,6 @@
+ AC_MSG_ERROR([--with-cpu-arch=armv7 is not supported for non-ARM CPU architectures])
+ ;;
+ esac
+-else
+- case "$target_cpu" in
+- arm*)
+- if test "$GNU_CC"; then
+- CFLAGS="$CFLAGS -march=armv5te -mthumb-interwork -msoft-float"
+- CXXFLAGS="$CXXFLAGS -march=armv5te -mthumb-interwork -msoft-float"
+- ASFLAGS="$ASFLAGS -march=armv5te -mthumb-interwork -msoft-float"
+- fi
+- ;;
+- esac
+ fi
+
+ AC_SUBST(MOZ_THUMB2) \ No newline at end of file
diff --git a/net-libs/xulrunner/files/mozilla-2.0_support_64bit_big_endian.patch b/net-libs/xulrunner/files/mozilla-2.0_support_64bit_big_endian.patch
new file mode 100644
index 0000000..5c43e1a
--- /dev/null
+++ b/net-libs/xulrunner/files/mozilla-2.0_support_64bit_big_endian.patch
@@ -0,0 +1,60 @@
+# HG changeset patch
+# User Mike Hommey <mh+mozilla@glandium.org>
+# Date 1303461188 -7200
+# Node ID 59771590e9203d48ef8cbcd7eaf2f8ae45dbb1c1
+# Parent c4b82ec27d6d6e1c02ef0abb3b6e805bfdd092ec
+Bug 638056 - Avoid "The cacheFlush support is missing on this platform" error on exotic platforms. r=cdleary
+
+diff --git a/js/src/Makefile.in b/js/src/Makefile.in
+--- a/js/src/Makefile.in
++++ b/js/src/Makefile.in
+@@ -383,17 +383,17 @@ CPPSRCS += checks.cc \
+ platform.cc \
+ utils.cc \
+ $(NONE)
+
+ #
+ # END enclude sources for V8 dtoa
+ #############################################
+
+-ifeq (,$(filter-out powerpc sparc,$(TARGET_CPU)))
++ifeq (,$(filter arm% %86 x86_64,$(TARGET_CPU)))
+
+ VPATH += $(srcdir)/assembler \
+ $(srcdir)/assembler/wtf \
+ $(srcdir)/yarr/pcre \
+ $(NULL)
+
+ CPPSRCS += pcre_compile.cpp \
+ pcre_exec.cpp \
+
+# HG changeset patch
+# User Luke Wagner <lw@mozilla.com>
+# Date 1299520258 28800
+# Node ID 68203913d04cf5be53fd16278816183d5670ba5c
+# Parent 27e5814815491ebb68e474e453aff6c2ea908c43
+Bug 618485 - Add missing 64-bit big-endian jsval_layout field (r=luke)
+
+diff --git a/js/src/jsval.h b/js/src/jsval.h
+--- a/js/src/jsval.h
++++ b/js/src/jsval.h
+@@ -342,16 +342,17 @@ typedef union jsval_layout
+ JSValueTag tag : 17;
+ uint64 payload47 : 47;
+ } debugView;
+ struct {
+ union {
+ int32 i32;
+ uint32 u32;
+ JSWhyMagic why;
++ jsuword word;
+ } payload;
+ } s;
+ double asDouble;
+ void *asPtr;
+ } jsval_layout;
+ # endif /* JS_BITS_PER_WORD */
+ #endif /* defined(IS_LITTLE_ENDIAN) */
+
+
+
diff --git a/net-libs/xulrunner/files/xulrunner-1.9.2-gtk+-2.21.patch b/net-libs/xulrunner/files/xulrunner-1.9.2-gtk+-2.21.patch
new file mode 100644
index 0000000..8a1e831
--- /dev/null
+++ b/net-libs/xulrunner/files/xulrunner-1.9.2-gtk+-2.21.patch
@@ -0,0 +1,23 @@
+# HG changeset patch
+# User Jonathan Callen <abcd@gentoo.org>
+# Parent 2599ed882191d88a8e8f0cb68492a156163c5ca7
+pass MOZ_GTK_CFLAGS to ensure proper includes are avaliable.
+
+diff --git a/toolkit/system/gnome/Makefile.in b/toolkit/system/gnome/Makefile.in
+--- a/toolkit/system/gnome/Makefile.in
++++ b/toolkit/system/gnome/Makefile.in
+@@ -84,13 +84,14 @@ EXTRA_DSO_LDOPTS += \
+ $(MOZ_LIBNOTIFY_LIBS) \
+ $(NULL)
+
+ LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/components/build/
+
+ include $(topsrcdir)/config/rules.mk
+
+ CXXFLAGS += \
++ $(MOZ_GTK2_CFLAGS) \
+ $(MOZ_GCONF_CFLAGS) \
+ $(MOZ_GNOMEVFS_CFLAGS) \
+ $(GLIB_CFLAGS) \
+ $(MOZ_LIBNOTIFY_CFLAGS) \
+ $(NULL)
diff --git a/net-libs/xulrunner/files/xulrunner-default-prefs.js b/net-libs/xulrunner/files/xulrunner-default-prefs.js
new file mode 100644
index 0000000..4546d3f
--- /dev/null
+++ b/net-libs/xulrunner/files/xulrunner-default-prefs.js
@@ -0,0 +1,14 @@
+pref("app.update.enabled", false);
+pref("app.update.autoInstallEnabled", false);
+pref("browser.display.use_system_colors", true);
+pref("browser.link.open_external", 3);
+pref("general.smoothScroll", true);
+pref("general.autoScroll", false);
+pref("browser.tabs.tabMinWidth", 15);
+pref("browser.backspace_action", 0);
+pref("browser.urlbar.hideGoButton", true);
+pref("accessibility.typeaheadfind", true);
+pref("browser.shell.checkDefaultBrowser", false);
+pref("browser.EULA.override", true);
+pref("general.useragent.vendor", "Gentoo");
+pref("intl.locale.matchOS", true);
diff --git a/net-libs/xulrunner/xulrunner-1.9.2.27.ebuild b/net-libs/xulrunner/xulrunner-1.9.2.27.ebuild
new file mode 100644
index 0000000..fa0dcc1
--- /dev/null
+++ b/net-libs/xulrunner/xulrunner-1.9.2.27.ebuild
@@ -0,0 +1,262 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-libs/xulrunner/xulrunner-1.9.2.22.ebuild,v 1.4 2012/01/28 05:21:42 nirbheek Exp $
+
+EAPI="3"
+WANT_AUTOCONF="2.1"
+
+inherit flag-o-matic toolchain-funcs eutils mozconfig-3 makeedit multilib java-pkg-opt-2 autotools python prefix pax-utils
+
+MY_PV="${PV/_rc/rc}" # Handle beta
+MY_PV="${MY_PV/1.9.2/3.6}"
+MAJ_PV="1.9.2" # from mozilla-* branch name
+PATCH="${PN}-1.9.2-patches-0.9"
+
+DESCRIPTION="Mozilla runtime package that can be used to bootstrap XUL+XPCOM applications"
+HOMEPAGE="http://developer.mozilla.org/en/docs/XULRunner"
+SRC_URI="ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${MY_PV}/source/firefox-${MY_PV}.source.tar.bz2
+ http://dev.gentoo.org/~anarchy/mozilla/patchsets/${PATCH}.tar.bz2"
+
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 sparc x86 ~amd64-linux ~x86-linux ~sparc-solaris ~x64-solaris ~x86-solaris"
+SLOT="1.9"
+LICENSE="|| ( MPL-1.1 GPL-2 LGPL-2.1 )"
+IUSE="+alsa debug gnome +ipc libnotify system-sqlite wifi"
+
+RDEPEND="
+ >=sys-devel/binutils-2.16.1
+ >=dev-libs/nss-3.12.8
+ >=dev-libs/nspr-4.8.6
+ system-sqlite? ( >=dev-db/sqlite-3.7.4[fts3,secure-delete] )
+ alsa? ( media-libs/alsa-lib )
+ >=app-text/hunspell-1.2
+ >=x11-libs/cairo-1.8.8[X]
+ x11-libs/libXt
+ x11-libs/pixman
+ >=dev-libs/libevent-1.4.7
+ gnome? ( >=gnome-base/gnome-vfs-2.16.3
+ >=gnome-base/libgnomeui-2.16.1
+ >=gnome-base/gconf-2.16.0
+ >=gnome-base/libgnome-2.16.0 )
+ wifi? ( net-wireless/wireless-tools )
+ libnotify? ( >=x11-libs/libnotify-0.4 )"
+
+DEPEND="java? ( >=virtual/jdk-1.4 )
+ ${RDEPEND}
+ =dev-lang/python-2*[threads]
+ dev-util/pkgconfig"
+
+# virtual/jre should not be in DEPEND. bug 325981
+RDEPEND="java? ( >=virtual/jre-1.4 ) ${RDEPEND}"
+
+S="${WORKDIR}/mozilla-${MAJ_PV}"
+
+pkg_setup() {
+ # Ensure we always build with C locale.
+ export LANG="C"
+ export LC_ALL="C"
+ export LC_MESSAGES="C"
+ export LC_CTYPE="C"
+
+ java-pkg-opt-2_pkg_setup
+
+ python_set_active_version 2
+}
+
+src_prepare() {
+ # Apply our patches
+ EPATCH_SUFFIX="patch" \
+ EPATCH_FORCE="yes" \
+ epatch "${WORKDIR}"
+
+ epatch "${FILESDIR}/bug-606109.patch"
+
+ eprefixify \
+ extensions/java/xpcom/interfaces/org/mozilla/xpcom/Mozilla.java \
+ xpcom/build/nsXPCOMPrivate.h \
+ xulrunner/installer/Makefile.in \
+ xulrunner/app/nsRegisterGREUnix.cpp
+
+ # fix double symbols due to double -ljemalloc
+ sed -i -e '/^LIBS += $(JEMALLOC_LIBS)/s/^/#/' \
+ xulrunner/stub/Makefile.in || die
+
+ #Fix compilation with curl-7.21.7 bug 376027
+ sed -e '/#include <curl\/types\.h>/d' \
+ -i "${S}"/toolkit/crashreporter/google-breakpad/src/common/linux/libcurl_wrapper.cc \
+ -i "${S}"/toolkit/crashreporter/google-breakpad/src/common/linux/http_upload.cc \
+ || die
+ sed -e '/curl\/types\.h/d' \
+ -i "${S}"/config/system-headers \
+ -i "${S}"/js/src/config/system-headers \
+ || die
+
+ # Allow user to apply additional patches without modifing ebuild
+ epatch_user
+
+ # Same as in config/autoconf.mk.in
+ MOZLIBDIR="/usr/$(get_libdir)/${PN}-${MAJ_PV}"
+ SDKDIR="/usr/$(get_libdir)/${PN}-devel-${MAJ_PV}/sdk"
+
+ # Gentoo install dirs
+ sed -i -e "s:@PV@:${MAJ_PV}:" "${S}"/config/autoconf.mk.in \
+ || die "${MAJ_PV} sed failed!"
+
+ # Enable gnomebreakpad
+ if use debug ; then
+ sed -i -e "s:GNOME_DISABLE_CRASH_DIALOG=1:GNOME_DISABLE_CRASH_DIALOG=0:g" \
+ "${S}"/build/unix/run-mozilla.sh || die "sed failed!"
+ fi
+
+ eautoreconf
+
+ cd js/src
+ eautoreconf
+}
+
+src_configure() {
+ ####################################
+ #
+ # mozconfig, CFLAGS and CXXFLAGS setup
+ #
+ ####################################
+
+ mozconfig_init
+ mozconfig_config
+
+ MEXTENSIONS="default"
+
+ MOZLIBDIR="/usr/$(get_libdir)/${PN}-${MAJ_PV}"
+
+ # It doesn't compile on alpha without this LDFLAGS
+ use alpha && append-ldflags "-Wl,--no-relax"
+
+ mozconfig_annotate '' --enable-crypto
+ mozconfig_annotate '' --with-default-mozilla-five-home="${MOZLIBDIR}"
+ mozconfig_annotate '' --enable-extensions="${MEXTENSIONS}"
+ mozconfig_annotate '' --enable-application=xulrunner
+ mozconfig_annotate '' --disable-mailnews
+ mozconfig_annotate 'broken' --disable-crashreporter
+ mozconfig_annotate '' --enable-image-encoder=all
+ mozconfig_annotate '' --enable-canvas
+ mozconfig_annotate 'gtk' --enable-default-toolkit=cairo-gtk2
+ # Bug 60668: Galeon doesn't build without oji enabled, so enable it
+ # regardless of java setting.
+ mozconfig_annotate '' --enable-oji --enable-mathml
+ mozconfig_annotate 'places' --enable-storage --enable-places
+ mozconfig_annotate '' --enable-safe-browsing
+
+ # Build mozdevelop permately
+ mozconfig_annotate '' --enable-jsd --enable-xpctools
+
+ # System-wide install specs
+ mozconfig_annotate '' --disable-installer
+ mozconfig_annotate '' --disable-updater
+ mozconfig_annotate '' --disable-strip
+ mozconfig_annotate '' --disable-install-strip
+
+ # Use system libraries
+ mozconfig_annotate '' --enable-system-cairo
+ mozconfig_annotate '' --enable-system-hunspell
+ mozconfig_annotate '' --with-system-nspr --with-nspr-prefix="${EPREFIX}"/usr
+ mozconfig_annotate '' --with-system-nss --with-nss-prefix="${EPREFIX}"/usr
+ mozconfig_annotate '' --x-includes="${EPREFIX}"/usr/include --x-libraries="${EPREFIX}"/usr/$(get_libdir)
+ mozconfig_annotate '' --with-system-bz2
+ mozconfig_annotate '' --with-system-libevent="${EPREFIX}"/usr
+
+ mozconfig_use_enable gnome gnomevfs
+ mozconfig_use_enable gnome gnomeui
+ mozconfig_use_enable ipc # +ipc, upstream default
+ mozconfig_use_enable libnotify
+ mozconfig_use_enable java javaxpcom
+ mozconfig_use_enable wifi necko-wifi
+ mozconfig_use_enable alsa ogg
+ mozconfig_use_enable alsa wave
+ mozconfig_use_enable system-sqlite
+
+ # Debug
+ if use debug ; then
+ mozconfig_annotate 'debug' --disable-optimize
+ mozconfig_annotate 'debug' --enable-debug=-ggdb
+ mozconfig_annotate 'debug' --enable-debug-modules=all
+ mozconfig_annotate 'debug' --enable-debugger-info-modules
+ fi
+
+ # Finalize and report settings
+ mozconfig_final
+
+ if [[ $(gcc-major-version) -lt 4 ]]; then
+ append-flags -fno-stack-protector
+ fi
+
+ ####################################
+ #
+ # Configure and build
+ #
+ ####################################
+
+ # Disable no-print-directory
+ MAKEOPTS=${MAKEOPTS/--no-print-directory/}
+
+ # Ensure that are plugins dir is enabled as default
+ sed -i -e "s:/usr/lib/mozilla/plugins:/usr/$(get_libdir)/nsbrowser/plugins:" \
+ "${S}"/xpcom/io/nsAppFileLocationProvider.cpp || die "sed failed to replace plugin path!"
+
+ # hack added to workaround bug 299905 on hosts with libc that doesn't
+ # support tls, (probably will only hit this condition with Gentoo Prefix)
+ tc-has-tls -l || export ac_cv_thread_keyword=no
+
+ CC="$(tc-getCC)" CXX="$(tc-getCXX)" LD="$(tc-getLD)" PYTHON="$(PYTHON)" econf
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "emake install failed"
+
+ rm "${ED}"/usr/bin/xulrunner
+
+ MOZLIBDIR="/usr/$(get_libdir)/${PN}-${MAJ_PV}"
+ SDKDIR="/usr/$(get_libdir)/${PN}-devel-${MAJ_PV}/sdk"
+
+ if has_multilib_profile; then
+ local config
+ for config in "${ED}"/etc/gre.d/*.system.conf ; do
+ mv "${config}" "${config%.conf}.${CHOST}.conf"
+ done
+ fi
+
+ dodir /usr/bin
+ dosym "${MOZLIBDIR}/xulrunner" "/usr/bin/xulrunner-${MAJ_PV}" || die
+
+ # env.d file for ld search path
+ dodir /etc/env.d
+ echo "LDPATH=${EPREFIX}/${MOZLIBDIR}" > "${ED}"/etc/env.d/08xulrunner || die "env.d failed"
+
+ # Add our defaults to xulrunner and out of firefox
+ cp "${FILESDIR}"/xulrunner-default-prefs.js \
+ "${ED}/${MOZLIBDIR}/defaults/pref/all-gentoo.js" || \
+ die "failed to cp xulrunner-default-prefs.js"
+
+ pax-mark m "${D}"/${MOZLIBDIR}/plugin-container
+
+ if use java ; then
+ java-pkg_regjar "${ED}/${MOZLIBDIR}/javaxpcom.jar"
+ java-pkg_regso "${ED}/${MOZLIBDIR}/libjavaxpcomglue.so"
+ java-pkg_regjar "${ED}/${SDKDIR}/lib/MozillaGlue.jar"
+ java-pkg_regjar "${ED}/${SDKDIR}/lib/MozillaInterfaces.jar"
+ fi
+}
+
+pkg_postinst() {
+ ewarn "If firefox fails to start with \"failed to load xpcom\", run revdep-rebuild"
+ ewarn "If that does not fix the problem, rebuild dev-libs/nss"
+ ewarn "Try dev-util/lafilefixer if you get build failures related to .la files"
+
+ einfo
+ einfo "All prefs can be overridden by the user. The preferences are to make"
+ einfo "use of xulrunner out of the box on an average system without the user"
+ einfo "having to go through and enable the basics."
+
+ einfo
+ ewarn "Any package that requires xulrunner:1.9 slot could and most likely will"
+ ewarn "have issues. These issues should be reported to maintainer, and mozilla herd"
+ ewarn "should be cc'd on the bug report. Thank you anarchy@gentoo.org ."
+}
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
new file mode 100644
index 0000000..0d6f9c9
--- /dev/null
+++ b/www-client/firefox/Manifest
@@ -0,0 +1,85 @@
+AUX firefox-default-prefs.js 95 RMD160 805cdfec6fb31c224322cb71125547ad7a515f49 SHA1 7fab69d85b12a9f1b0c87fbb1821bdafd7485ac9 SHA256 8bc4cb870bc402db1f20b135a689f8c5dbfa5de8f1755b1926198d627c12c5f1
+AUX firefox.1 2538 RMD160 4564007d7d5345e9ab09c941015e3cdb78913835 SHA1 8be1987451117820744ecc67fa411facdc653a12 SHA256 3483439a73c74b818bdde98c15223b6d3fcfe78e3ad974fb35f197cf3ad614e7
+AUX fix-preferences-gentoo.patch 426 RMD160 83075ec3c2e4c39ba298096bd08447bb94cad34d SHA1 ffff69bcff712483d1962ce04a700748fdab24f5 SHA256 7edae5ea1efb042412d02ef00c51f5e55c4499751c240b48c7b07f69cc420d94
+AUX gentoo-default-prefs.js 677 RMD160 73ec130da332c1d6517a6f838d5fab0cc134289a SHA1 b9efc3ef5e95ad3081f6b68d771e32e848b4b9ac SHA256 53493080276f221f1619153c114caf268206a6fa107972b33a4eb7f1c1cf6fe8
+AUX gentoo-default-prefs.js-1 821 RMD160 13a7be3a165b7059e51fab2cc7fc8d31a82260eb SHA1 333339c4deb4fd41527fd87e1acf0af12cf1007c SHA256 16259ec24a231d1d60097c8d892caa80d2703ba5be72304f6da55cfce1b329de
+AUX icon/firefox-1.5-unbranded.desktop 303 RMD160 e9cb808302b7fbd7d4eb84aeb0a438e1f82f220b SHA1 cd5d0ce5162d9fd246360409b1af396b62c1bc6b SHA256 1d6ba1b322ba1bf3ab8e6ef92528bdbc1a2f5cbca3119df3f4380b8b73b5cb05
+AUX icon/firefox-1.5.desktop 300 RMD160 df437e79147897b0ec52b44edc42ad4ef270eda5 SHA1 b60d51629ba58992f6d9ae9ad8c29ffc6630de4d SHA256 bc6f84004032afab5c078d8dc7c4ffe36abc45738c119fad3fcfa5de89dd5dae
+AUX icon/firefox.desktop 276 RMD160 92a5671cd09e399b3330c4be31b7ac7583747031 SHA1 b757763670a00982f3cb38b8d41d7faa6eee3818 SHA256 06565ade11b6e4b448cf10339696c43f31e73cb6824491094bb6e0ab902c7cf5
+AUX xulrunner-1.9.2-gtk+-2.21.patch 663 RMD160 20e2465da0e6c884527fd7cfebd3bdb2f8f015a9 SHA1 f2b9c26ed255bde672ccc8cb7ae4ae014f52d6f5 SHA256 79c11dc4304d748f3c2d6e451aa6d44dd1bb450d1db671e7fa4a83420c6f2c05
+DIST firefox-3.6-patches-0.4.tar.bz2 5791 RMD160 17944b3605138c3b651b31fcad306a432b73b80c SHA1 4ddff9a613cc703b34667aab3aea993187405920 SHA256 39bbbe412f70b50e8870e11dbd3f9e74ed7cbeaa23ed47dea1ea6ff72f48e54f
+DIST firefox-3.6.27-af.xpi 121614 RMD160 cb6c83b9b831524f7eb9f9a963501c3d53fbd009 SHA1 63410d6e29d6a43dce2e7d46087fe35a65519491 SHA256 4dd792b018c91228e35bf0e8b533c23bc391e5f84a737b8271f72c99623c904e
+DIST firefox-3.6.27-ar.xpi 132157 RMD160 55cbf0a105462d1fab3448ce08e2e40eb11b0266 SHA1 af2fef23073620cdf10cf5b5c591e9bf47ff2f15 SHA256 5d927b8060f5262eb6057081d9512e9acd54ed12ab589d12dfd9911ef7619164
+DIST firefox-3.6.27-as.xpi 134297 RMD160 e1bea5aff74e58a67436fe5a2f95d8cd35171155 SHA1 39b2d80257c0eb26b38802dce372a76bed97f35d SHA256 0451db46392fcb3a270d569c81bd0212cfb11c9b12d3266e14b6e220b0983b4e
+DIST firefox-3.6.27-be.xpi 122233 RMD160 39a3799c829bd92f08b7766ccc9c44c96cec798d SHA1 113d12e779c226e464606087403d49cb74ff0d64 SHA256 b835b925a84ad0d211b08b612a4b535d0916082892788520fe38e51c80816586
+DIST firefox-3.6.27-bg.xpi 134074 RMD160 bffe4536d9e99820274c20ff1e7300f40aaaddc1 SHA1 55a3e5fd976c8d6f746f0d00f3aa14e1ea2bf208 SHA256 d28932d42f33988458b35137f3509f071430bd9b9c660185f355faa83450ed92
+DIST firefox-3.6.27-bn-BD.xpi 141164 RMD160 e1d7e76ec4eda91fb73e6b90e8c33cd579041962 SHA1 e2dc019e5281d7830912236a0afdc59e7fd8a728 SHA256 b92cef3f81c3e1508e7b136bbcea0288511f954888ee2045245739cc97e7ae2e
+DIST firefox-3.6.27-bn-IN.xpi 160072 RMD160 49401e50cf76904400625153db9f000560126c02 SHA1 cee5ab82b8e052dcda0a4289a67dd3df21d1022d SHA256 21c258fa1d4e9929f5c21f6a3e310b1fa12be821a611a077deeb4f670e5c519a
+DIST firefox-3.6.27-ca.xpi 127935 RMD160 ca392ecb36c7dcd5e9ccd2c70686484807a039cb SHA1 d6ae23f803182843563c2cdc5d2ccddb0bc98dee SHA256 2775ab14297cbf2a75932ffcfa871afce8b612de76df236827bf1d17574c7edd
+DIST firefox-3.6.27-cs.xpi 126730 RMD160 b9c00671e9c0baa1a335d3af16843eef11447ef9 SHA1 7ebfef6a6d9e0667471281188be0d1a33477e2df SHA256 e26aa5c509dd729e896c3c79842c3f07f7b139f328e692682a12905f0e45bc93
+DIST firefox-3.6.27-cy.xpi 121986 RMD160 046cfdec4aee4ac8875fe4ce9311f5a6ad62d5dc SHA1 ff11c7f48ed4ecd07b8b65e321409808ab8a7ec6 SHA256 beba2f45ccc73ddafa2be168fbc291d1d2561fe84cfaf43215d64ec4ee11be79
+DIST firefox-3.6.27-da.xpi 125572 RMD160 b1c1c89c291a1abad0ef7f636afdf46430bd449e SHA1 32e569d3e960ee0aa98a2adcfd23f9bf42c3df41 SHA256 e02c8b01911134fba99d3814677c61e47fc131723ecc0b2d9363117d6d131c78
+DIST firefox-3.6.27-de.xpi 128987 RMD160 0054e803e0eff19715e537bd65834afa50d73781 SHA1 4b049cf33848881d3a2a1b26bd383845c9b010a7 SHA256 ad8c6f26245dc30eee70dcc8b51d750c620d1e9d729efc436503a15ceb1ec088
+DIST firefox-3.6.27-el.xpi 135213 RMD160 cacecddabe68e0c41f1d3016800b1df07bf8e076 SHA1 c6e9edc514a2b3bee730c6a0cc2a0c055849e653 SHA256 be0d7579f5c311fb39f47c06b3a3adc7e7d0976fd860bd4bfa489a3c1660dfd2
+DIST firefox-3.6.27-en-GB.xpi 119209 RMD160 305992cd7dbe83032da901bfd8c8f3f37754667f SHA1 c4b67f7dfaefc97e94d759c7347342479adfaf8c SHA256 61c60cc6b0ccec0df2d4ac521963abe1f7a5c51150c730fb807ee9b54929114e
+DIST firefox-3.6.27-eo.xpi 121845 RMD160 78c3b20a4ed321a251594d1702dcba3434c83e81 SHA1 182ff9112d315c1f88fb89de74e274b53327c1ef SHA256 0dbb103aa8be4a57085af38000c2a513bbdbed6224f4fd755fdcc70646f3d5e8
+DIST firefox-3.6.27-es-AR.xpi 127785 RMD160 4c56ac295e91749809afd9271b8b68bcf596ae22 SHA1 3cb454e92a448add2f2c8f6368cb083e3936fca4 SHA256 f7ecef833a3b9848e47119caacb025b5420a1ddf224d27a9a1cea7d1652006ff
+DIST firefox-3.6.27-es-CL.xpi 129438 RMD160 49ebce64e100e77c6c0db25aac395d923f6bcde3 SHA1 0b8150d1614043c774ccc96828febea532a85a56 SHA256 9f49a26d67fe1b6a851395fd87cd4ef0a40d6fff99eb6bdf56dbab8a4070aed4
+DIST firefox-3.6.27-es-ES.xpi 108667 RMD160 ec51f05659e18338440cf4402c7daed3060945f0 SHA1 ad182f3b2e3b6e01d09bdfe69051d407be3a05e6 SHA256 b9d032e477efdba131cb330457aba246cc6a2325aabb805efac19dbf77fe0863
+DIST firefox-3.6.27-es-MX.xpi 127397 RMD160 09c10275f482d2993f8ba9a7a44c56d39493298e SHA1 57289b6c7a2c652d72075c981b2ba9ffee698cbb SHA256 7e8361d28af973b879f3f432298fde880a831b1b1033884ae10e53e39457f74d
+DIST firefox-3.6.27-et.xpi 127370 RMD160 14bfbf316bbbd5b33dbf0f835fbb164d9824a305 SHA1 ce9f602a0727f4b612c2c3b1a9d5fd733c236594 SHA256 15c6eb4c4725f315a10cbb59993d518cf2b14540fbf1bb8dcbcfab8e1f2c1127
+DIST firefox-3.6.27-eu.xpi 121856 RMD160 c1326e5622e9026b51b6a3a947fb6e79333140a8 SHA1 35170eb729fcfbe7f4b420651eeb58fecf99dde3 SHA256 e6db9eb4d09f3aa344168029795606003fb639246959badf60cd5a776f55bd5f
+DIST firefox-3.6.27-fa.xpi 138377 RMD160 e4937abfb562846e3c549cf200f9b0ba8b87c984 SHA1 2c8a46d73d09413473af54041c3939cb723ec28c SHA256 e24bc854daa39d75765a038a7d8786955f30d3b92149cb4913a3963b2be65f1c
+DIST firefox-3.6.27-fi.xpi 126830 RMD160 6be0091935b3b0b50a7aeac8a93c96ec8c115e8d SHA1 d6759c8116fcca3f9610e926247bcf2004926986 SHA256 2db2b47abee80135b16eb223b7e49e63405527b6f229479ba9ed32b047042697
+DIST firefox-3.6.27-fr.xpi 129003 RMD160 e4829da03119091a750ecb8763fd3ff66d8eddc7 SHA1 1efa90291526d19532d47291162502f0590e1e66 SHA256 dffea869b38954b914a23170219a86ff17c3748c5dd2aba5eb1e3bc630fb049b
+DIST firefox-3.6.27-fy-NL.xpi 129168 RMD160 90a14f982868e066010a4037ec062ef9ba8c6ac6 SHA1 163a6d9a17b61ba9a2458d15f9f73ee390aec4bb SHA256 56ec71003135e811fd5c1d01a278bcec72f5ff5906ffc49b847d68ce8e2975e8
+DIST firefox-3.6.27-ga-IE.xpi 127763 RMD160 37de92dfd1175cbd402a26d7f58d5d8e000e114b SHA1 da53e3f917fe1ce9e679f88350f99a8ffe1d0ad4 SHA256 a56474221ed3fd261ef50aa2214c1e007e80d122274e22fc5f5b0a621b0d3a36
+DIST firefox-3.6.27-gl.xpi 124798 RMD160 034c8e462988620d8584f898d3640c550b49ea87 SHA1 00252d4224ffbf8e4b0314bf5d455fd917e0942a SHA256 fdbd0842919cc788aa292bed9b9bd5230bde32a245233bad18e2e8264eec489b
+DIST firefox-3.6.27-gu-IN.xpi 146298 RMD160 1f3ff0ced5fc4b262c74d493a6c0a97280ed7120 SHA1 0142e6b1de2b92f500cbc15509dea281313fd023 SHA256 d15c638532234b019b73ff6f0d9ff8219c009d5ab0b8be9830f50dbaeb6145db
+DIST firefox-3.6.27-he.xpi 123123 RMD160 e3c7225878c8936104daecb2fd0a3cd6e9abe3a9 SHA1 b0d99f3394004a461ac6f630eff79fd66d71f16e SHA256 ae0e34a5d4a656125ba6b9eaf0dbc178767bc0427d5c872e9df4696932f130a6
+DIST firefox-3.6.27-hi-IN.xpi 141888 RMD160 9bf7fe0ac959cab577f782681cdc59820d509603 SHA1 ea94a779f088b6abb129264634fc2311961f5f36 SHA256 9202e659fa2daf5314dc1320cff28a6eb8c453343931e95a5864554ee2f8dd55
+DIST firefox-3.6.27-hr.xpi 126981 RMD160 41abb09dfdfd0eedde97e5c81b43a62c3da68072 SHA1 8b6cfd87bcd885b27023a1fa3804b9544c3f4e15 SHA256 aee0a224b7a77e7a91b194e14793da08a3b1a622498baf1672dfdcf59d8e0cd8
+DIST firefox-3.6.27-hu.xpi 131099 RMD160 4ae52f401c5bf01eeed5750df7f0ff4029620efe SHA1 e465d5eaaba355b4b0e1e34ffe5f8c438773bbb6 SHA256 a08a2d092f9105a1e25f19612fa63b75986a49c90e9c339aac8c7cc1ba17c27b
+DIST firefox-3.6.27-id.xpi 103952 RMD160 6601e62f4e2a31860f994d65588674246fd51056 SHA1 c168e1df47aa95856e436a515f29c273ee672d74 SHA256 544cd4f58f5af762acea0f43ce7f52d27990f8b827c1dc44c0da9c4f049d3b1d
+DIST firefox-3.6.27-is.xpi 123390 RMD160 cf8a1261aab8912e1c072f58a81c50e1fa27f380 SHA1 c7c6247d56465a90eb88e729cfa4006c0bef2cfc SHA256 5a3a9da831bcf5ab7940a1f4f245d71cbe934670cb471b2b182188f5b1610a90
+DIST firefox-3.6.27-it.xpi 107973 RMD160 162e851605b46240e643cdbc471676a626fbc250 SHA1 7cd8cdd8dc098739b3365cc04dc2607dcbf9e551 SHA256 0149078323ededc25b2dc85950d63e872c2e6df5b288710ed2cede217ed4222e
+DIST firefox-3.6.27-ja.xpi 136981 RMD160 63ca84d4c9c47165f0051163b582ad42c8d7ade3 SHA1 8e15c9e51ecbcd5959e4c3b3b6aef63455fade02 SHA256 25ede7fa5cc35ea16526c86ad815fa2846df7a45dc3860df9cdebd59bf9ba9b2
+DIST firefox-3.6.27-ka.xpi 154116 RMD160 e3106c1532a8ca98ac2eea4491a2fdc82095e1f3 SHA1 dbad5df5d65a2a8410372f7b1643e456855dfc83 SHA256 87d15de524def57356cba2b8b0a89d2946e53687cb8cdf726b9f1c674a8dd0ba
+DIST firefox-3.6.27-kk.xpi 137723 RMD160 3d06f89e7de3e7c4e8faf312d295dd908c30b6a2 SHA1 05e074c5ac3e25fb2597590ae4a8ea0c9a3af2ec SHA256 9b87aa621db617d2ac6afc62aec7094f703956ae562558a2e898b89de53e2d43
+DIST firefox-3.6.27-kn.xpi 148705 RMD160 ef7d187030f6d0f9db68f1066bf90a660b347c3b SHA1 aa6e0475892c49aa8057ef1903d7588116a80923 SHA256 3bfb4ce41ac97c8bf618517fdf324f35f353211f0536c97d62f492839e1fca2d
+DIST firefox-3.6.27-ko.xpi 115629 RMD160 24a5173bae2417de680f61401f3f57dcb2a182dc SHA1 0d651a7f7ee3bca3aadb1cde7ce498d2246ac71f SHA256 aeb1be383ab98e1c9a7b640291a2da6335d003225d141fd3ded611fa762f67cf
+DIST firefox-3.6.27-ku.xpi 130808 RMD160 490835a7a769015f221ddb6f1c0c06fa327a9ab5 SHA1 b324dc037d84c184a0a110c57dbbab1445995fe5 SHA256 ed1bd2d1ea3673d2df2a48664dfc7db7a463b38ce6eb6fd450323341249ca1f8
+DIST firefox-3.6.27-lt.xpi 139685 RMD160 f777e3157d72a439c188251ca23979604ebb844d SHA1 3898743e9527a93acd361ea80eb1c81ef7ff7c18 SHA256 62e19eba3234b6ae9b37ab36e8cc948572291c7a5d8859bc04d91e8ad38883f7
+DIST firefox-3.6.27-lv.xpi 124807 RMD160 df8f09e263e58397152886d6967ffba20cbd72b9 SHA1 85618761c6d63bc3149ba6b9be8f0c7713fb9613 SHA256 81da9e3b1e8ec1a4dcf15478baa419f80837d039ecd6a5e6bac606797485d1c3
+DIST firefox-3.6.27-mk.xpi 128238 RMD160 98e7757c319450e8eb5258cb98fd8d50e41df661 SHA1 80fbe459fb759573dd640c4928f207b17b70bb9f SHA256 2efd4f08f31d560df6125a564fadb02e198744ee714ae061bfcb9d518632faf0
+DIST firefox-3.6.27-ml.xpi 152168 RMD160 b5f9f80455f025b74e975ac30f7bc50f1d3fabf8 SHA1 e09472e6957cf1514d7e133ff377c83a11480a9c SHA256 bf0af9ee2feb2dc5d72aa354966f302de25c99d735d95ff64dd7167edebdace1
+DIST firefox-3.6.27-mr.xpi 141120 RMD160 1e5b1fce49de2309941b19e5d562944123d495b7 SHA1 c7946ee7a0defd28e8b501c0f1595701f6701af8 SHA256 531a2a28b54338081f896dbc41ffa4c6c85a06a8ec3beb923729798c88501b2a
+DIST firefox-3.6.27-nb-NO.xpi 124135 RMD160 dce98f4c54e233a4e7f2c089e1eeb25d65e334f3 SHA1 19b088944c16f6f781ed2e411a64328f8d1e2fa6 SHA256 ca662806d1811f6a2b7c2e0708b48848a8ec9e65effbecaf178c0a3ab25daf14
+DIST firefox-3.6.27-nl.xpi 126429 RMD160 aef66ec555dd57b401105c78f1daa1e504a5839b SHA1 3e47dcda150618f12caf045875bf214b5fff9966 SHA256 8cc9fe5a27c540c78fed1d8ac004076191d81b4c2ac37ed045f0a399f7715639
+DIST firefox-3.6.27-nn-NO.xpi 125108 RMD160 51bbc2d4acda016c9194501f582d99131d3a567c SHA1 e019a8a4f784f3ea7199e50a93b9c111eef5eee6 SHA256 026695cfbcae1528454754fb1d5570c81b38dcbb66f03ee4aa6a34331bbf037f
+DIST firefox-3.6.27-oc.xpi 108303 RMD160 c04fd2ca85a0f223f2a478d7fefbe29ee05a0b6e SHA1 98a8fa68c7a193b910179e453763e66e546fc42e SHA256 3492444b6f4fed92913c58d1f3722688cbe0de80269be58cb42e47e7d64b06f7
+DIST firefox-3.6.27-or.xpi 142445 RMD160 96f5d1669e083db3be1fe60fd8ca41d13b74b9e1 SHA1 2ddcf9961ddc526330b5773b12e63ed9803c9f19 SHA256 45f71c532a387433f502f692e91e0bab76b77afbade83844d90511cef72fcc95
+DIST firefox-3.6.27-pa-IN.xpi 142122 RMD160 3b370c9065b6a429cd47886eab62742876fa56f3 SHA1 f3f4048853607089dffdf48ae148001ed0c79889 SHA256 a407eb117b287e6808a0bfed065c0ee4d5cd9a5a74752ff8539fbd9384681415
+DIST firefox-3.6.27-pl.xpi 131049 RMD160 3420c017a188010a9cf7341e85661de4972f23c5 SHA1 1b170b59a02a6732cadb1947876f33cc86674ed5 SHA256 aff84c387db675a5b1a03d237026f339650697793237ff7bbe349c2cf0561ac4
+DIST firefox-3.6.27-pt-BR.xpi 125362 RMD160 3eeb87d498a34cd38752006ce079f036a8412a09 SHA1 9bb3cd01faf4179147a8007731655631ae44e168 SHA256 ff6ba8a1c4beb161c9cc1c8dec9c2ab88bdf10b206ff08117f0626b5fd708d31
+DIST firefox-3.6.27-pt-PT.xpi 125400 RMD160 3e4be7e75b14a018e6d4c264e8e96a1afdf6f380 SHA1 4bc00e7952ffcf747b5c4035a63712f42d8a847d SHA256 49a8b7acc01fb530d68e1f6b28bf84c7e2899f6615e9336316ad699d970631fc
+DIST firefox-3.6.27-rm.xpi 127398 RMD160 24a1dbc94600d773cda9ddf7654616df67603345 SHA1 5d707be75e39905bd4a0fdc8521dcf4714401905 SHA256 a0230cb8b318d09bf02c903eed968bd01eab557aceeab6f747584fb2229ec683
+DIST firefox-3.6.27-ro.xpi 129115 RMD160 a34608aa83857c12e50ce9572a8fafdb1d40128b SHA1 ef796524095143f263196ca0eb452d0afe8b6b66 SHA256 b482a894c5f8e3095458cd9574992dc491756fb4d33d45ad130a9f81646d5701
+DIST firefox-3.6.27-ru.xpi 124944 RMD160 57bb0de201cbe9aaa91604792add3ea9aad3bbe4 SHA1 2b15280dc168fc0eddbc8a845b00351d60322902 SHA256 95cceb5f618367ecbd08bf74878e8a559905100124f05c2e5e1c4d365c388751
+DIST firefox-3.6.27-si.xpi 142189 RMD160 b6b625d0d58c27c14f38b2916af26b608f0b137e SHA1 96ecc3bfacad9233d4f1bc85605a68be845bca34 SHA256 b5dcaa8b0413518d5ae425c2dd3e101bffab2b68abfdc0c0ecde7129445ff9a3
+DIST firefox-3.6.27-sk.xpi 131107 RMD160 1386c5e81abed19cb1cf1af86745f576b2508e8d SHA1 588ef539ba23b02eae7c2735acd909dde233eb83 SHA256 2365dacee3f68ae2413b8030decde387ffa86787bf286dc3a3b8e3a1f01a129d
+DIST firefox-3.6.27-sl.xpi 124259 RMD160 f6241d13adad5a3270532aafb6cb027ebcad52e3 SHA1 978f6d733624785b5949c166b218d3538e9ac97a SHA256 27619cb6f8ab816933dae4c531dcd4629510b76a210f5d1f708b65945e901db3
+DIST firefox-3.6.27-sq.xpi 121290 RMD160 45d909c7cd250d3025efd9fe3ed3b438ee6679e2 SHA1 be1ffa4cd0a8d9cfa45a3275b404abb63d613c7b SHA256 ee2c5883d42f540b67036233bc5835926288f52595f71cd598be834d9fe48190
+DIST firefox-3.6.27-sr.xpi 135928 RMD160 3e4aad41367f679d5207bd754a20f6ac71e0a488 SHA1 d39c276ea52221c0ad7a181342c0a9e676287d4f SHA256 c2c388d3dbd4ee758d1d30f03eaa3f60961b5ee4d5971ec47a9bd8919a790400
+DIST firefox-3.6.27-sv-SE.xpi 128408 RMD160 de129660b09bf7efade94c75eaf0ffd24e8c1d05 SHA1 49130fefd04d3bc7c9818c4d92cf1fe2c8d592f4 SHA256 c470c47184a9aab9a053343bfb2791b1fafcf4f0bbb56bf7af5d77adc1d8dfa0
+DIST firefox-3.6.27-ta-LK.xpi 149284 RMD160 1086f1a362c286f09f0108be68ada5c97e91a9bf SHA1 d2a86a90fc38c07900d5089e1abb0884415b2f27 SHA256 665b11393312bb2c41f2a4d268a185570b9bec33396ae4cb0f89484f57502183
+DIST firefox-3.6.27-ta.xpi 137263 RMD160 193255ac2fead5c9e34be0d76aa68a6248d031c3 SHA1 194d35870985f6cb21cc16cc198b0f192008b237 SHA256 07d49c432e7f05c1efd0cff4f979729b2f0b2e96c9e93edaf2aee6d97bbdb2d4
+DIST firefox-3.6.27-te.xpi 147909 RMD160 6cdc3587c636cc9b24d688fac05ea1ba27d17cc1 SHA1 cafd1bac9d51f455260c0add793d013465731b9b SHA256 e0ad4b39cf706272ad35fcb8a18e7e3dfb216e152064b86c6d5d8f169a6c9b9e
+DIST firefox-3.6.27-th.xpi 134366 RMD160 2c9d02662c13da82a0c0648333e04316fcba417e SHA1 a646f0fb48392a54072c292aa0e41c270f7a6c8e SHA256 437fc23d1b181c19cbeb81c3d63741d330256344ed863878cf95aca5feb6448e
+DIST firefox-3.6.27-tr.xpi 125336 RMD160 288b6f4d19c7ae117e30e13bce65ade4322b2c60 SHA1 a812c071b6dfe4fb6fb1c5ec3fd77d65ce927eb7 SHA256 77e5f7634356f7a7886414cd87fb3542fa8ee3f4bef3990562a2a4799ca0db80
+DIST firefox-3.6.27-uk.xpi 143186 RMD160 3669951376bf98635d2ef9d0adbce02aec7eece8 SHA1 c8eda95298094224391a3d2a15e5b5402948b803 SHA256 1fb23c3aaed1e87af3c1ad1ed7dceb6bab87ffa7e51fad80149313d6ea1fd491
+DIST firefox-3.6.27-vi.xpi 129025 RMD160 9ee38753a31ebac7564896b640e3a13963958cf8 SHA1 c8cee1b3d2336146314a3e8ef17a497fde2f109b SHA256 e42fa768ed2ee862a7a255156e2e4e931d088954044231d060379eee01b460c5
+DIST firefox-3.6.27-zh-CN.xpi 127096 RMD160 0db44219726bad5259ca1bbd9c87d4522cca9dfa SHA1 95065bd688bf66c48e5fcdb8e7c41fdca68519d4 SHA256 035cae0c382ea528bd98c707a8927ab322ca66f8a4ca937e51b0b7877bb5b672
+DIST firefox-3.6.27-zh-TW.xpi 128518 RMD160 0897d9497080d49cd554a644b7259a3beb6a292b SHA1 1cd9a8197c247b756e8c703c6a5c9a7d2b528031 SHA256 3d712436ea54e71e7e1fec034cc89c3f269c77f054ef8d622b233135fc145e8b
+DIST firefox-3.6.27.source.tar.bz2 51693122 RMD160 96d6be5fad13a8777bed00e728e0888fb0cefdde SHA1 dd472a10e4ef5b017f00074d0325be13e832d610 SHA256 2e715c0961488c3879250f2930bf15dda6e2321351fb24d7fa2c708995ecf241
+EBUILD firefox-3.6.27.ebuild 9452 RMD160 fd4fcba03b4a15d2e0150de67a201c6903f8c963 SHA1 513136151070402cde48fb52e0a81b22bae4198d SHA256 c6a3339cac6ebf446a933b50b7f33224c956b31a3a4f0c42f7928e5acba0e419
diff --git a/www-client/firefox/files/firefox-default-prefs.js b/www-client/firefox/files/firefox-default-prefs.js
new file mode 100644
index 0000000..f7c031e
--- /dev/null
+++ b/www-client/firefox/files/firefox-default-prefs.js
@@ -0,0 +1,2 @@
+pref("browser.tabs.tabMinWidth", 15);
+pref("browser.backspace_action", 0);
diff --git a/www-client/firefox/files/firefox.1 b/www-client/firefox/files/firefox.1
new file mode 100644
index 0000000..2086325
--- /dev/null
+++ b/www-client/firefox/files/firefox.1
@@ -0,0 +1,125 @@
+.TH FIREFOX 1 "August 07, 2001" firefox "Linux User's Manual"
+.SH NAME
+firefox \- a Web browser for X11 derived from the Mozilla browser
+
+.SH SYNOPSIS
+.B firefox
+[\fIOPTIONS\fR] [\fIURL\fR]
+
+.B firefox-bin
+[\fIOPTIONS\fR] [\fIURL\fR]
+
+.SH DESCRIPTION
+\fBMozilla Firefox\fR is an open-source web browser, designed for
+standards compliance, performance and portability.
+
+.SH USAGE
+\fBfirefox\fR is a simple shell script that will set up the
+environment for the actual executable, \fBfirefox-bin\fR.
+
+.SH OPTIONS
+A summary of the options supported by \fBfirefox\fR is included below.
+
+.SS "GTK options"
+\fB\-\-gdk-debug=\fR\fIFLAGS\fR
+Gdk debugging flags to set
+.TP
+\fB\-\-gdk-no-debug=\fR\fIFLAGS\fR
+Gdk debugging flags to unset
+.TP
+\fB\-\-gtk-debug=\fR\fIFLAGS\fR
+Gtk+ debugging flags to set
+.TP
+\fB\-\-gtk-no-debug=\fR\fIFLAGS\fR
+Gtk+ debugging flags to unset
+.TP
+\fB\-\-gtk-module=\fR\fIMODULE\fR
+Load an additional Gtk module
+
+.SS "X11 options"
+.TP
+.BI \-\-display= DISPLAY
+X display to use
+.TP
+.B \--sync
+Make X calls synchronous
+.TP
+.B \-\-no-xshm
+Don't use X shared memory extension
+.TP
+.BI \-\-xim-preedit= STYLE
+.TP
+.BI \-\-xim-status= STYLE
+.TP
+.B \-\-g-fatal-warnings
+Make all warnings fatal
+
+.SS "Firefox options"
+.TP
+\fB\-height\fR \fIvalue\fR
+Set height of startup window to \fIvalue\fR.
+.TP
+.B \-h, \-help
+Show summary of options.
+.TP
+.B \-installer
+Start with 4.x migration window.
+.TP
+\fB\-width\fR \fIvalue\fR
+Set width of startup window to \fIvalue\fR.
+.TP
+.B \-v, \-version
+Print \fB/usr/bin/firefox-bin\fR version.
+.TP
+\fB\-CreateProfile\fR \fIprofile\fR
+Create \fIprofile\fR.
+.TP
+\fB\-P\fR \fIprofile\fR
+Start with \fIprofile\fR.
+.TP
+.B \-ProfileWizard
+Start with profile wizard.
+.TP
+.B \-ProfileManager
+Start with profile manager.
+.TP
+.B \-SelectProfile
+Start with profile selection dialog.
+.TP
+\fB\-lang\fR \fIlang-region\fR
+Start with \fIlang-region\fR resources.
+.TP
+\fB\-remote\fR \fIcommand\fR
+Execute \fIcommand\fR in an already running Firefox process. For more info,
+see: \fIhttp://www.mozilla.org/unix/remote.html\fR
+.TP
+.B \-splash
+Enable splash screen.
+.TP
+.B \-jsconsole
+Start with Javascript Console
+.TP
+\fB\-chrome\fR \fIurl\fR
+Load the specified chrome.
+.TP
+
+.SH FILES
+\fI/usr/bin/firefox\fR - shell script wrapping
+\fBfirefox\fR
+.br
+\fI/usr/lib/mozilla/firefox-bin\fR - \fBfirefox\fR
+executable
+
+.SH VERSION
+1.0
+
+.SH BUGS
+To report a bug, please visit \fIhttp://bugzilla.mozilla.org/\fR
+
+.SH "SEE ALSO"
+.BR mozilla(1)
+
+.SH AUTHORS
+.TP
+.B The Mozilla Organization
+.I http://www.mozilla.org/about.html
diff --git a/www-client/firefox/files/fix-preferences-gentoo.patch b/www-client/firefox/files/fix-preferences-gentoo.patch
new file mode 100644
index 0000000..a8ba90f
--- /dev/null
+++ b/www-client/firefox/files/fix-preferences-gentoo.patch
@@ -0,0 +1,10 @@
+--- a/browser/installer/package-manifest.in 2011-03-24 23:01:23.543000001 -0500
++++ b/browser/installer/package-manifest.in 2011-03-24 23:02:01.927000001 -0500
+@@ -444,6 +444,7 @@
+
+ ; [Default Preferences]
+ ; All the pref files must be part of base to prevent migration bugs
++@BINPATH@/@PREF_DIR@/all-gentoo.js
+ @BINPATH@/@PREF_DIR@/firefox.js
+ @BINPATH@/@PREF_DIR@/firefox-branding.js
+ @BINPATH@/@PREF_DIR@/channel-prefs.js
diff --git a/www-client/firefox/files/gentoo-default-prefs.js b/www-client/firefox/files/gentoo-default-prefs.js
new file mode 100644
index 0000000..4546d3f
--- /dev/null
+++ b/www-client/firefox/files/gentoo-default-prefs.js
@@ -0,0 +1,14 @@
+pref("app.update.enabled", false);
+pref("app.update.autoInstallEnabled", false);
+pref("browser.display.use_system_colors", true);
+pref("browser.link.open_external", 3);
+pref("general.smoothScroll", true);
+pref("general.autoScroll", false);
+pref("browser.tabs.tabMinWidth", 15);
+pref("browser.backspace_action", 0);
+pref("browser.urlbar.hideGoButton", true);
+pref("accessibility.typeaheadfind", true);
+pref("browser.shell.checkDefaultBrowser", false);
+pref("browser.EULA.override", true);
+pref("general.useragent.vendor", "Gentoo");
+pref("intl.locale.matchOS", true);
diff --git a/www-client/firefox/files/gentoo-default-prefs.js-1 b/www-client/firefox/files/gentoo-default-prefs.js-1
new file mode 100644
index 0000000..22a51ff
--- /dev/null
+++ b/www-client/firefox/files/gentoo-default-prefs.js-1
@@ -0,0 +1,17 @@
+pref("app.update.enabled", false);
+pref("app.update.autoInstallEnabled", false);
+pref("browser.display.use_system_colors", true);
+pref("browser.link.open_external", 3);
+pref("general.smoothScroll", true);
+pref("general.autoScroll", false);
+pref("browser.tabs.tabMinWidth", 15);
+pref("browser.backspace_action", 0);
+pref("browser.urlbar.hideGoButton", true);
+pref("accessibility.typeaheadfind", true);
+pref("browser.shell.checkDefaultBrowser", false);
+pref("browser.EULA.override", true);
+pref("general.useragent.vendor", "Gentoo");
+pref("intl.locale.matchOS", true);
+pref("general.useragent.locale", "chrome://global/locale/intl.properties");
+pref("extensions.autoDisableScopes", 0);
+pref("layout.css.dpi", 0);
diff --git a/www-client/firefox/files/icon/firefox-1.5-unbranded.desktop b/www-client/firefox/files/icon/firefox-1.5-unbranded.desktop
new file mode 100644
index 0000000..4c8fbda
--- /dev/null
+++ b/www-client/firefox/files/icon/firefox-1.5-unbranded.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Bon Echo
+Comment=Web Browser
+Exec=/usr/bin/firefox %U
+Icon=firefox-icon-unbranded
+Terminal=false
+Type=Application
+MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
+Categories=Network;WebBrowser;
diff --git a/www-client/firefox/files/icon/firefox-1.5.desktop b/www-client/firefox/files/icon/firefox-1.5.desktop
new file mode 100644
index 0000000..742f947
--- /dev/null
+++ b/www-client/firefox/files/icon/firefox-1.5.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Mozilla Firefox
+Comment=Web Browser
+Exec=/usr/bin/firefox %U
+Icon=firefox-icon
+Terminal=false
+Type=Application
+MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
+Categories=Network;WebBrowser;
diff --git a/www-client/firefox/files/icon/firefox.desktop b/www-client/firefox/files/icon/firefox.desktop
new file mode 100644
index 0000000..35999a8
--- /dev/null
+++ b/www-client/firefox/files/icon/firefox.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=@NAME@
+Comment=Web Browser
+Exec=firefox %U
+Icon=@ICON@
+Terminal=false
+Type=Application
+MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
+Categories=Network;WebBrowser;
diff --git a/www-client/firefox/files/xulrunner-1.9.2-gtk+-2.21.patch b/www-client/firefox/files/xulrunner-1.9.2-gtk+-2.21.patch
new file mode 100644
index 0000000..8a1e831
--- /dev/null
+++ b/www-client/firefox/files/xulrunner-1.9.2-gtk+-2.21.patch
@@ -0,0 +1,23 @@
+# HG changeset patch
+# User Jonathan Callen <abcd@gentoo.org>
+# Parent 2599ed882191d88a8e8f0cb68492a156163c5ca7
+pass MOZ_GTK_CFLAGS to ensure proper includes are avaliable.
+
+diff --git a/toolkit/system/gnome/Makefile.in b/toolkit/system/gnome/Makefile.in
+--- a/toolkit/system/gnome/Makefile.in
++++ b/toolkit/system/gnome/Makefile.in
+@@ -84,13 +84,14 @@ EXTRA_DSO_LDOPTS += \
+ $(MOZ_LIBNOTIFY_LIBS) \
+ $(NULL)
+
+ LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/components/build/
+
+ include $(topsrcdir)/config/rules.mk
+
+ CXXFLAGS += \
++ $(MOZ_GTK2_CFLAGS) \
+ $(MOZ_GCONF_CFLAGS) \
+ $(MOZ_GNOMEVFS_CFLAGS) \
+ $(GLIB_CFLAGS) \
+ $(MOZ_LIBNOTIFY_CFLAGS) \
+ $(NULL)
diff --git a/www-client/firefox/firefox-3.6.27.ebuild b/www-client/firefox/firefox-3.6.27.ebuild
new file mode 100644
index 0000000..9b88fec
--- /dev/null
+++ b/www-client/firefox/firefox-3.6.27.ebuild
@@ -0,0 +1,287 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/www-client/firefox/firefox-3.6.22.ebuild,v 1.3 2011/12/11 14:33:51 armin76 Exp $
+EAPI="3"
+WANT_AUTOCONF="2.1"
+
+inherit flag-o-matic toolchain-funcs eutils mozconfig-3 makeedit multilib pax-utils fdo-mime autotools mozextension java-pkg-opt-2 python
+
+LANGS="af ar as be bg bn-BD bn-IN ca cs cy da de el en en-GB en-US eo es-AR \
+es-CL es-ES es-MX et eu fa fi fr fy-NL ga-IE gl gu-IN he hi-IN hr hu id is it \
+ja ka kk kn ko ku lt lv mk ml mr nb-NO nl nn-NO oc or pa-IN pl pt-BR pt-PT rm \
+ro ru si sk sl sq sr sv-SE ta ta-LK te th tr uk vi zh-CN zh-TW"
+NOSHORTLANGS="en-GB es-AR es-CL es-MX pt-BR zh-CN zh-TW"
+
+MAJ_XUL_PV="1.9.2"
+MAJ_PV="${PV/_*/}" # Without the _rc and _beta stuff
+DESKTOP_PV="3.6"
+MY_PV="${PV/_rc/rc}" # Handle beta for SRC_URI
+XUL_PV="${MAJ_XUL_PV}${MAJ_PV/${DESKTOP_PV}/}" # Major + Minor version no.s
+PATCH="${PN}-3.6-patches-0.4"
+
+DESCRIPTION="Firefox Web Browser"
+HOMEPAGE="http://www.mozilla.com/firefox"
+
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 sparc x86 ~amd64-linux ~ia64-linux ~x86-linux ~sparc-solaris ~x64-solaris ~x86-solaris"
+SLOT="0"
+LICENSE="|| ( MPL-1.1 GPL-2 LGPL-2.1 )"
+IUSE="+alsa bindist gnome +ipc java libnotify system-sqlite wifi"
+
+REL_URI="http://releases.mozilla.org/pub/mozilla.org/firefox/releases"
+SRC_URI="${REL_URI}/${MY_PV}/source/firefox-${MY_PV}.source.tar.bz2
+ http://dev.gentoo.org/~anarchy/mozilla/patchsets/${PATCH}.tar.bz2"
+
+for X in ${LANGS} ; do
+ if [ "${X}" != "en" ] && [ "${X}" != "en-US" ]; then
+ SRC_URI="${SRC_URI}
+ linguas_${X/-/_}? ( ${REL_URI}/${MY_PV}/linux-i686/xpi/${X}.xpi -> ${P}-${X}.xpi )"
+ fi
+ IUSE="${IUSE} linguas_${X/-/_}"
+ # english is handled internally
+ if [ "${#X}" == 5 ] && ! has ${X} ${NOSHORTLANGS}; then
+ if [ "${X}" != "en-US" ]; then
+ SRC_URI="${SRC_URI}
+ linguas_${X%%-*}? ( ${REL_URI}/${PV}/linux-i686/xpi/${X}.xpi -> ${P}-${X}.xpi )"
+ fi
+ IUSE="${IUSE} linguas_${X%%-*}"
+ fi
+done
+
+RDEPEND="
+ >=sys-devel/binutils-2.16.1
+ >=dev-libs/nss-3.12.8
+ >=dev-libs/nspr-4.8.6
+ >=app-text/hunspell-1.2
+ system-sqlite? ( >=dev-db/sqlite-3.7.4[fts3,secure-delete] )
+ alsa? ( media-libs/alsa-lib )
+ >=x11-libs/cairo-1.8.8[X]
+ gnome? ( >=gnome-base/gnome-vfs-2.16.3
+ >=gnome-base/libgnomeui-2.16.1
+ >=gnome-base/gconf-2.16.0
+ >=gnome-base/libgnome-2.16.0 )
+ wifi? ( net-wireless/wireless-tools )
+ libnotify? ( >=x11-libs/libnotify-0.4 )
+ ~net-libs/xulrunner-${XUL_PV}[ipc=,java=,wifi=,libnotify=,system-sqlite=]"
+
+DEPEND="${RDEPEND}
+ java? ( >=virtual/jdk-1.4 )
+ =dev-lang/python-2*[threads]
+ dev-util/pkgconfig"
+
+RDEPEND="${RDEPEND} java? ( >=virtual/jre-1.4 )"
+
+S="${WORKDIR}/mozilla-1.9.2"
+
+# This is a copy of the launcher program installed as part of xulrunner, so has
+# already been stripped. Bug #332071 for details.
+QA_PRESTRIPPED="usr/$(get_libdir)/${PN}/firefox"
+
+linguas() {
+ local LANG SLANG
+ for LANG in ${LINGUAS}; do
+ if has ${LANG} en en_US; then
+ has en ${linguas} || linguas="${linguas:+"${linguas} "}en"
+ continue
+ elif has ${LANG} ${LANGS//-/_}; then
+ has ${LANG//_/-} ${linguas} || linguas="${linguas:+"${linguas} "}${LANG//_/-}"
+ continue
+ elif [[ " ${LANGS} " == *" ${LANG}-"* ]]; then
+ for X in ${LANGS}; do
+ if [[ "${X}" == "${LANG}-"* ]] && \
+ [[ " ${NOSHORTLANGS} " != *" ${X} "* ]]; then
+ has ${X} ${linguas} || linguas="${linguas:+"${linguas} "}${X}"
+ continue 2
+ fi
+ done
+ fi
+ ewarn "Sorry, but ${PN} does not support the ${LANG} LINGUA"
+ done
+}
+
+# XXX FIXME XXX: All refs to mozilla-${PN} need to become ${PN} with the next bump
+# Note that this WILL cause breakage for packages that use fx's libdir and includedir
+pkg_setup() {
+ # Ensure we always build with C locale.
+ export LANG="C"
+ export LC_ALL="C"
+ export LC_MESSAGES="C"
+ export LC_CTYPE="C"
+
+ if ! use bindist ; then
+ einfo
+ elog "You are enabling official branding. You may not redistribute this build"
+ elog "to any users on your network or the internet. Doing so puts yourself into"
+ elog "a legal problem with Mozilla Foundation"
+ elog "You can disable it by emerging ${PN} _with_ the bindist USE-flag"
+ fi
+
+ java-pkg-opt-2_pkg_setup
+
+ python_set_active_version 2
+}
+
+src_unpack() {
+ unpack firefox-${MY_PV}.source.tar.bz2 ${PATCH}.tar.bz2
+
+ linguas
+ for X in ${linguas}; do
+ # FIXME: Add support for unpacking xpis to portage
+ [[ ${X} != "en" ]] && xpi_unpack "${P}-${X}.xpi"
+ done
+}
+
+src_prepare() {
+ # Apply our patches
+ EPATCH_SUFFIX="patch" \
+ EPATCH_FORCE="yes" \
+ epatch "${WORKDIR}"
+
+ # Allow user to apply additional patches without modifing ebuild
+ epatch_user
+
+ eautoreconf
+
+ cd js/src
+ eautoreconf
+}
+
+src_configure() {
+ MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
+ MEXTENSIONS="default"
+
+ ####################################
+ #
+ # mozconfig, CFLAGS and CXXFLAGS setup
+ #
+ ####################################
+
+ mozconfig_init
+ mozconfig_config
+
+ # It doesn't compile on alpha without this LDFLAGS
+ use alpha && append-ldflags "-Wl,--no-relax"
+
+ mozconfig_annotate '' --enable-crypto
+ mozconfig_annotate '' --enable-extensions="${MEXTENSIONS}"
+ mozconfig_annotate '' --enable-application=browser
+ mozconfig_annotate '' --disable-mailnews
+ mozconfig_annotate 'broken' --disable-crashreporter
+ mozconfig_annotate '' --enable-image-encoder=all
+ mozconfig_annotate '' --enable-canvas
+ mozconfig_annotate 'gtk' --enable-default-toolkit=cairo-gtk2
+ # Bug 60668: Galeon doesn't build without oji enabled, so enable it
+ # regardless of java setting.
+ mozconfig_annotate '' --enable-oji --enable-mathml
+ mozconfig_annotate 'places' --enable-storage --enable-places
+ mozconfig_annotate '' --enable-safe-browsing
+
+ # Build mozdevelop permately
+ mozconfig_annotate '' --enable-jsd --enable-xpctools
+
+ # System-wide install specs
+ mozconfig_annotate '' --disable-installer
+ mozconfig_annotate '' --disable-updater
+ mozconfig_annotate '' --disable-strip
+ mozconfig_annotate '' --disable-install-strip
+
+ # Use system libraries
+ mozconfig_annotate '' --enable-system-cairo
+ mozconfig_annotate '' --enable-system-hunspell
+ mozconfig_annotate '' --with-system-nspr --with-nspr-prefix="${EPREFIX}"/usr
+ mozconfig_annotate '' --with-system-nss --with-nss-prefix="${EPREFIX}"/usr
+ mozconfig_annotate '' --x-includes="${EPREFIX}"/usr/include --x-libraries="${EPREFIX}"/usr/$(get_libdir)
+ mozconfig_annotate '' --with-system-bz2
+ mozconfig_annotate '' --with-system-libxul
+ mozconfig_annotate '' --with-libxul-sdk="${EPREFIX}"/usr/$(get_libdir)/xulrunner-devel-${MAJ_XUL_PV}
+
+ mozconfig_use_enable gnome gnomevfs
+ mozconfig_use_enable gnome gnomeui
+ mozconfig_use_enable ipc # +ipc, upstream default
+ mozconfig_use_enable libnotify
+ mozconfig_use_enable java javaxpcom
+ mozconfig_use_enable wifi necko-wifi
+ mozconfig_use_enable alsa ogg
+ mozconfig_use_enable alsa wave
+ mozconfig_use_enable system-sqlite
+ mozconfig_use_enable !bindist official-branding
+
+ # Other ff-specific settings
+ mozconfig_annotate '' --with-default-mozilla-five-home=${MOZILLA_FIVE_HOME}
+
+ # Finalize and report settings
+ mozconfig_final
+
+ if [[ $(gcc-major-version) -lt 4 ]]; then
+ append-cxxflags -fno-stack-protector
+ fi
+
+ ####################################
+ #
+ # Configure and build
+ #
+ ####################################
+
+ CC="$(tc-getCC)" CXX="$(tc-getCXX)" LD="$(tc-getLD)" PYTHON="$(PYTHON)" econf
+}
+
+src_compile() {
+ # Should the build use multiprocessing? Not enabled by default, as it tends to break
+ [ "${WANT_MP}" = "true" ] && jobs=${MAKEOPTS} || jobs="-j1"
+ emake ${jobs} || die
+}
+
+src_install() {
+ MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
+
+ emake DESTDIR="${D}" install || die "emake install failed"
+
+ linguas
+ for X in ${linguas}; do
+ [[ ${X} != "en" ]] && xpi_install "${WORKDIR}"/"${P}-${X}"
+ done
+
+ # Install icon and .desktop for menu entry
+ if ! use bindist ; then
+ newicon "${S}"/other-licenses/branding/firefox/content/icon48.png ${PN}-icon.png
+ newmenu "${FILESDIR}"/icon/${PN}-1.5.desktop \
+ mozilla-${PN}-${DESKTOP_PV}.desktop
+ else
+ newicon "${S}"/browser/branding/unofficial/content/icon48.png ${PN}-icon-unbranded.png
+ newmenu "${FILESDIR}"/icon/${PN}-1.5-unbranded.desktop \
+ mozilla-${PN}-${DESKTOP_PV}.desktop
+ sed -i -e "s:Bon\ Echo:Namoroka:" \
+ "${ED}"/usr/share/applications/mozilla-${PN}-${DESKTOP_PV}.desktop || die "sed failed!"
+ fi
+
+ # Add StartupNotify=true bug 237317
+ if use startup-notification ; then
+ echo "StartupNotify=true" >> "${ED}"/usr/share/applications/mozilla-${PN}-${DESKTOP_PV}.desktop
+ fi
+
+ pax-mark m "${ED}"/${MOZILLA_FIVE_HOME}/firefox
+
+ # Enable very specific settings not inherited from xulrunner
+ cp "${FILESDIR}"/firefox-default-prefs.js \
+ "${ED}/${MOZILLA_FIVE_HOME}/defaults/preferences/all-gentoo.js" || \
+ die "failed to cp firefox-default-prefs.js"
+
+ # Plugins dir
+ dosym ../nsbrowser/plugins "${MOZILLA_FIVE_HOME}"/plugins \
+ || die "failed to symlink"
+
+ # very ugly hack to make firefox not sigbus on sparc
+ use sparc && { sed -e 's/Firefox/FirefoxGentoo/g' \
+ -i "${ED}/${MOZILLA_FIVE_HOME}/application.ini" || \
+ die "sparc sed failed"; }
+}
+
+pkg_postinst() {
+ ewarn "We have finished moving away from mozilla-${PN}"
+ ewarn "to plain jane ${PN}. If for some reason you have a bug"
+ ewarn "that results please open a report and assign to maintainer"
+ ewarn "with mozilla@gentoo.org being CC'd on the bug report."
+ elog
+
+ # Update mimedb for the new .desktop file
+ fdo-mime_desktop_database_update
+}