diff options
author | Richard Purdie <rpurdie@linux.intel.com> | 2009-12-10 14:00:23 +0000 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2009-12-10 14:00:23 +0000 |
commit | 7ab7ad82f47d17e629288e67dd94660722899f9e (patch) | |
tree | 625110c9e90908784a4d282b4e990c26ea1ed2dc /meta | |
parent | 9e278010556d1a6bc5ba3bbf8c1aee976d4a64e4 (diff) | |
download | openembedded-core-7ab7ad82f47d17e629288e67dd94660722899f9e.tar.gz openembedded-core-7ab7ad82f47d17e629288e67dd94660722899f9e.tar.bz2 openembedded-core-7ab7ad82f47d17e629288e67dd94660722899f9e.tar.xz openembedded-core-7ab7ad82f47d17e629288e67dd94660722899f9e.zip |
mozilla-headless: Update to work with recent git changes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta')
9 files changed, 257 insertions, 1741 deletions
diff --git a/meta/packages/mozilla-headless/mozilla-headless-0.0+hg-1.0+a3e7c6626661/0001-Adds-initial-Gtk-clipboard-support-to-moz-headless.patch b/meta/packages/mozilla-headless/mozilla-headless-0.0+hg-1.0+a3e7c6626661/0001-Adds-initial-Gtk-clipboard-support-to-moz-headless.patch deleted file mode 100644 index b3972e78f..000000000 --- a/meta/packages/mozilla-headless/mozilla-headless-0.0+hg-1.0+a3e7c6626661/0001-Adds-initial-Gtk-clipboard-support-to-moz-headless.patch +++ /dev/null @@ -1,1486 +0,0 @@ -From fb41f028badb4dfddfc47fb2a1a68c1aa90dcef5 Mon Sep 17 00:00:00 2001 -From: Robert Bragg <robert@linux.intel.com> -Date: Fri, 8 May 2009 13:57:22 +0100 -Subject: [PATCH] Adds initial Gtk clipboard support to moz-headless - -If build with MOZ_X11 enabled then this now builds the clipboard code taken -from the gtk2 backend. This doesn't provide any embedding API yet to expose -the clipboard. ---- - widget/src/headless/Makefile.in | 6 + - widget/src/headless/nsClipboard.cpp | 948 +++++++++++++++++++++++++++++++ - widget/src/headless/nsClipboard.h | 93 +++ - widget/src/headless/nsIImageToPixbuf.h | 62 ++ - widget/src/headless/nsImageToPixbuf.cpp | 196 +++++++ - widget/src/headless/nsImageToPixbuf.h | 71 +++ - widget/src/headless/nsWidgetFactory.cpp | 18 + - 7 files changed, 1394 insertions(+), 0 deletions(-) - create mode 100644 widget/src/headless/nsClipboard.cpp - create mode 100644 widget/src/headless/nsClipboard.h - create mode 100644 widget/src/headless/nsIImageToPixbuf.h - create mode 100644 widget/src/headless/nsImageToPixbuf.cpp - create mode 100644 widget/src/headless/nsImageToPixbuf.h - -diff --git a/widget/src/headless/Makefile.in b/widget/src/headless/Makefile.in -index c8727d9..cbdf900 100644 ---- a/widget/src/headless/Makefile.in -+++ b/widget/src/headless/Makefile.in -@@ -95,6 +95,12 @@ CPPSRCS = \ - nsScreenManagerHeadless.cpp \ - $(NULL) - -+ifdef MOZ_X11 -+CPPSRCS += nsClipboard.cpp \ -+ nsImageToPixbuf.cpp \ -+ $(NULL) -+endif -+ - # build our subdirs, too - SHARED_LIBRARY_LIBS = ../xpwidgets/libxpwidgets_s.a - -diff --git a/widget/src/headless/nsClipboard.cpp b/widget/src/headless/nsClipboard.cpp -new file mode 100644 -index 0000000..72a37fc ---- /dev/null -+++ b/widget/src/headless/nsClipboard.cpp -@@ -0,0 +1,948 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -+/* vim:expandtab:shiftwidth=4:tabstop=4: -+ */ -+/* ***** BEGIN LICENSE BLOCK ***** -+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 -+ * -+ * 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 mozilla.org code. -+ * -+ * The Initial Developer of the Original Code is Christopher Blizzard -+ * <blizzard@mozilla.org>. Portions created by the Initial Developer -+ * are Copyright (C) 2001 the Initial Developer. All Rights Reserved. -+ * -+ * Contributor(s): -+ * -+ * 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 -+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -+ * in which case the provisions of the GPL or the LGPL are applicable instead -+ * of those above. If you wish to allow use of your version of this file only -+ * under the terms of either the GPL or the LGPL, and not to allow others to -+ * use your version of this file under the terms of the MPL, indicate your -+ * decision by deleting the provisions above and replace them with the notice -+ * and other provisions required by the GPL or the LGPL. If you do not delete -+ * the provisions above, a recipient may use your version of this file under -+ * the terms of any one of the MPL, the GPL or the LGPL. -+ * -+ * ***** END LICENSE BLOCK ***** */ -+ -+#include "nsClipboard.h" -+#include "nsSupportsPrimitives.h" -+#include "nsString.h" -+#include "nsReadableUtils.h" -+#include "nsXPIDLString.h" -+#include "nsPrimitiveHelpers.h" -+#include "nsICharsetConverterManager.h" -+#include "nsIServiceManager.h" -+#include "nsIImage.h" -+#include "nsImageToPixbuf.h" -+#include "nsStringStream.h" -+ -+#include <gtk/gtk.h> -+ -+// For manipulation of the X event queue -+#include <X11/Xlib.h> -+#include <gdk/gdkx.h> -+#include <sys/time.h> -+#include <sys/types.h> -+#include <unistd.h> -+ -+#ifdef POLL_WITH_XCONNECTIONNUMBER -+#include <poll.h> -+#endif -+ -+// Callback when someone asks us for the selection -+void -+invisible_selection_get_cb (GtkWidget *aWidget, -+ GtkSelectionData *aSelectionData, -+ guint aTime, -+ guint aInfo, -+ nsClipboard *aClipboard); -+ -+gboolean -+selection_clear_event_cb (GtkWidget *aWidget, -+ GdkEventSelection *aEvent, -+ nsClipboard *aClipboard); -+ -+static void -+ConvertHTMLtoUCS2 (guchar *data, -+ PRInt32 dataLength, -+ PRUnichar **unicodeData, -+ PRInt32 &outUnicodeLen); -+ -+static void -+GetHTMLCharset (guchar * data, PRInt32 dataLength, nsCString& str); -+ -+ -+// Our own versions of gtk_clipboard_wait_for_contents and -+// gtk_clipboard_wait_for_text, which don't run the event loop while -+// waiting for the data. This prevents a lot of problems related to -+// dispatching events at unexpected times. -+ -+static GtkSelectionData * -+wait_for_contents (GtkClipboard *clipboard, GdkAtom target); -+ -+static gchar * -+wait_for_text (GtkClipboard *clipboard); -+ -+static Bool -+checkEventProc(Display *display, XEvent *event, XPointer arg); -+ -+struct retrieval_context -+{ -+ PRBool completed; -+ void *data; -+ -+ retrieval_context() : completed(PR_FALSE), data(nsnull) { } -+}; -+ -+static void -+wait_for_retrieval(GtkClipboard *clipboard, retrieval_context *transferData); -+ -+static void -+clipboard_contents_received(GtkClipboard *clipboard, -+ GtkSelectionData *selection_data, -+ gpointer data); -+ -+static void -+clipboard_text_received(GtkClipboard *clipboard, -+ const gchar *text, -+ gpointer data); -+ -+nsClipboard::nsClipboard() -+{ -+ mWidget = nsnull; -+} -+ -+nsClipboard::~nsClipboard() -+{ -+ if (mWidget) -+ gtk_widget_destroy(mWidget); -+} -+ -+NS_IMPL_ISUPPORTS1(nsClipboard, nsIClipboard) -+ -+nsresult -+nsClipboard::Init(void) -+{ -+ mWidget = gtk_invisible_new(); -+ if (!mWidget) -+ return NS_ERROR_FAILURE; -+ -+ g_signal_connect(G_OBJECT(mWidget), "selection_get", -+ G_CALLBACK(invisible_selection_get_cb), this); -+ -+ g_signal_connect(G_OBJECT(mWidget), "selection_clear_event", -+ G_CALLBACK(selection_clear_event_cb), this); -+ -+ // XXX make sure to set up the selection_clear event -+ -+ return NS_OK; -+} -+ -+NS_IMETHODIMP -+nsClipboard::SetData(nsITransferable *aTransferable, -+ nsIClipboardOwner *aOwner, PRInt32 aWhichClipboard) -+{ -+ // See if we can short cut -+ if ((aWhichClipboard == kGlobalClipboard && -+ aTransferable == mGlobalTransferable.get() && -+ aOwner == mGlobalOwner.get()) || -+ (aWhichClipboard == kSelectionClipboard && -+ aTransferable == mSelectionTransferable.get() && -+ aOwner == mSelectionOwner.get())) { -+ return NS_OK; -+ } -+ -+ nsresult rv; -+ if (!mPrivacyHandler) { -+ rv = NS_NewClipboardPrivacyHandler(getter_AddRefs(mPrivacyHandler)); -+ NS_ENSURE_SUCCESS(rv, rv); -+ } -+ rv = mPrivacyHandler->PrepareDataForClipboard(aTransferable); -+ NS_ENSURE_SUCCESS(rv, rv); -+ -+ // Clear out the clipboard in order to set the new data -+ EmptyClipboard(aWhichClipboard); -+ -+ if (aWhichClipboard == kSelectionClipboard) { -+ mSelectionOwner = aOwner; -+ mSelectionTransferable = aTransferable; -+ } -+ else { -+ mGlobalOwner = aOwner; -+ mGlobalTransferable = aTransferable; -+ } -+ -+ // Which selection are we about to claim, CLIPBOARD or PRIMARY? -+ GdkAtom selectionAtom = GetSelectionAtom(aWhichClipboard); -+ -+ // Make ourselves the owner. If we fail to, return. -+ if (!gtk_selection_owner_set(mWidget, selectionAtom, GDK_CURRENT_TIME)) -+ return NS_ERROR_FAILURE; -+ -+ // Clear the old selection target list. -+ gtk_selection_clear_targets(mWidget, selectionAtom); -+ -+ // Get the types of supported flavors -+ nsCOMPtr<nsISupportsArray> flavors; -+ -+ rv = aTransferable->FlavorsTransferableCanExport(getter_AddRefs(flavors)); -+ if (!flavors || NS_FAILED(rv)) -+ return NS_ERROR_FAILURE; -+ -+ // Add all the flavors to this widget's supported type. -+ PRUint32 count; -+ flavors->Count(&count); -+ for (PRUint32 i=0; i < count; i++) { -+ nsCOMPtr<nsISupports> tastesLike; -+ flavors->GetElementAt(i, getter_AddRefs(tastesLike)); -+ nsCOMPtr<nsISupportsCString> flavor = do_QueryInterface(tastesLike); -+ -+ if (flavor) { -+ nsXPIDLCString flavorStr; -+ flavor->ToString(getter_Copies(flavorStr)); -+ -+ // special case text/unicode since we can handle all of -+ // the string types -+ if (!strcmp(flavorStr, kUnicodeMime)) { -+ AddTarget(gdk_atom_intern("UTF8_STRING", FALSE), -+ selectionAtom); -+ AddTarget(gdk_atom_intern("COMPOUND_TEXT", FALSE), -+ selectionAtom); -+ AddTarget(gdk_atom_intern("TEXT", FALSE), selectionAtom); -+ AddTarget(GDK_SELECTION_TYPE_STRING, selectionAtom); -+ // next loop iteration -+ continue; -+ } -+ -+ // very special case for this one. since our selection mechanism doesn't work for images, -+ // we must use GTK's clipboard utility functions -+ if (!strcmp(flavorStr, kNativeImageMime) || !strcmp(flavorStr, kPNGImageMime) || -+ !strcmp(flavorStr, kJPEGImageMime) || !strcmp(flavorStr, kGIFImageMime)) { -+ nsCOMPtr<nsISupports> item; -+ PRUint32 len; -+ rv = aTransferable->GetTransferData(flavorStr, getter_AddRefs(item), &len); -+ nsCOMPtr<nsISupportsInterfacePointer> ptrPrimitive(do_QueryInterface(item)); -+ if (!ptrPrimitive) -+ continue; -+ -+ nsCOMPtr<nsISupports> primitiveData; -+ ptrPrimitive->GetData(getter_AddRefs(primitiveData)); -+ nsCOMPtr<nsIImage> image(do_QueryInterface(primitiveData)); -+ if (!image) // Not getting an image for an image mime type!? -+ continue; -+ -+ if (NS_FAILED(image->LockImagePixels(PR_FALSE))) -+ continue; -+ GdkPixbuf* pixbuf = nsImageToPixbuf::ImageToPixbuf(image); -+ if (!pixbuf) { -+ image->UnlockImagePixels(PR_FALSE); -+ continue; -+ } -+ -+ GtkClipboard *aClipboard = gtk_clipboard_get(GetSelectionAtom(aWhichClipboard)); -+ gtk_clipboard_set_image(aClipboard, pixbuf); -+ g_object_unref(pixbuf); -+ image->UnlockImagePixels(PR_FALSE); -+ continue; -+ } -+ -+ // Add this to our list of valid targets -+ GdkAtom atom = gdk_atom_intern(flavorStr, FALSE); -+ AddTarget(atom, selectionAtom); -+ } -+ } -+ -+ return NS_OK; -+} -+ -+NS_IMETHODIMP -+nsClipboard::GetData(nsITransferable *aTransferable, PRInt32 aWhichClipboard) -+{ -+ if (!aTransferable) -+ return NS_ERROR_FAILURE; -+ -+ GtkClipboard *clipboard; -+ clipboard = gtk_clipboard_get(GetSelectionAtom(aWhichClipboard)); -+ -+ guchar *data = NULL; -+ gint length = 0; -+ PRBool foundData = PR_FALSE; -+ nsCAutoString foundFlavor; -+ -+ // Get a list of flavors this transferable can import -+ nsCOMPtr<nsISupportsArray> flavors; -+ nsresult rv; -+ rv = aTransferable->FlavorsTransferableCanImport(getter_AddRefs(flavors)); -+ if (!flavors || NS_FAILED(rv)) -+ return NS_ERROR_FAILURE; -+ -+ PRUint32 count; -+ flavors->Count(&count); -+ for (PRUint32 i=0; i < count; i++) { -+ nsCOMPtr<nsISupports> genericFlavor; -+ flavors->GetElementAt(i, getter_AddRefs(genericFlavor)); -+ -+ nsCOMPtr<nsISupportsCString> currentFlavor; -+ currentFlavor = do_QueryInterface(genericFlavor); -+ -+ if (currentFlavor) { -+ nsXPIDLCString flavorStr; -+ currentFlavor->ToString(getter_Copies(flavorStr)); -+ -+ // Special case text/unicode since we can convert any -+ // string into text/unicode -+ if (!strcmp(flavorStr, kUnicodeMime)) { -+ gchar* new_text = wait_for_text(clipboard); -+ if (new_text) { -+ // Convert utf-8 into our unicode format. -+ NS_ConvertUTF8toUTF16 ucs2string(new_text); -+ data = (guchar *)ToNewUnicode(ucs2string); -+ length = ucs2string.Length() * 2; -+ g_free(new_text); -+ foundData = PR_TRUE; -+ foundFlavor = kUnicodeMime; -+ break; -+ } -+ // If the type was text/unicode and we couldn't get -+ // text off the clipboard, run the next loop -+ // iteration. -+ continue; -+ } -+ -+ // For images, we must wrap the data in an nsIInputStream then return instead of break, -+ // because that code below won't help us. -+ if (!strcmp(flavorStr, kJPEGImageMime) || !strcmp(flavorStr, kPNGImageMime) || !strcmp(flavorStr, kGIFImageMime)) { -+ GdkAtom atom; -+ if (!strcmp(flavorStr, kJPEGImageMime)) // This is image/jpg, but X only understands image/jpeg -+ atom = gdk_atom_intern("image/jpeg", FALSE); -+ else -+ atom = gdk_atom_intern(flavorStr, FALSE); -+ -+ GtkSelectionData *selectionData = wait_for_contents(clipboard, atom); -+ if (!selectionData) -+ continue; -+ -+ nsCOMPtr<nsIInputStream> byteStream; -+ NS_NewByteInputStream(getter_AddRefs(byteStream), (const char*)selectionData->data, -+ selectionData->length, NS_ASSIGNMENT_COPY); -+ aTransferable->SetTransferData(flavorStr, byteStream, sizeof(nsIInputStream*)); -+ gtk_selection_data_free(selectionData); -+ return NS_OK; -+ } -+ -+ // Get the atom for this type and try to request it off -+ // the clipboard. -+ GdkAtom atom = gdk_atom_intern(flavorStr, FALSE); -+ GtkSelectionData *selectionData; -+ selectionData = wait_for_contents(clipboard, atom); -+ if (selectionData) { -+ length = selectionData->length; -+ // Special case text/html since we can convert into UCS2 -+ if (!strcmp(flavorStr, kHTMLMime)) { -+ PRUnichar* htmlBody= nsnull; -+ PRInt32 htmlBodyLen = 0; -+ // Convert text/html into our unicode format -+ ConvertHTMLtoUCS2((guchar *)selectionData->data, length, -+ &htmlBody, htmlBodyLen); -+ if (!htmlBodyLen) -+ break; -+ data = (guchar *)htmlBody; -+ length = htmlBodyLen * 2; -+ } else { -+ data = (guchar *)nsMemory::Alloc(length); -+ if (!data) -+ break; -+ memcpy(data, selectionData->data, length); -+ } -+ foundData = PR_TRUE; -+ foundFlavor = flavorStr; -+ break; -+ } -+ } -+ } -+ -+ if (foundData) { -+ nsCOMPtr<nsISupports> wrapper; -+ nsPrimitiveHelpers::CreatePrimitiveForData(foundFlavor.get(), -+ data, length, -+ getter_AddRefs(wrapper)); -+ aTransferable->SetTransferData(foundFlavor.get(), -+ wrapper, length); -+ } -+ -+ if (data) -+ nsMemory::Free(data); -+ -+ return NS_OK; -+} -+ -+NS_IMETHODIMP -+nsClipboard::EmptyClipboard(PRInt32 aWhichClipboard) -+{ -+ if (aWhichClipboard == kSelectionClipboard) { -+ if (mSelectionOwner) { -+ mSelectionOwner->LosingOwnership(mSelectionTransferable); -+ mSelectionOwner = nsnull; -+ } -+ mSelectionTransferable = nsnull; -+ } -+ else { -+ if (mGlobalOwner) { -+ mGlobalOwner->LosingOwnership(mGlobalTransferable); -+ mGlobalOwner = nsnull; -+ } -+ mGlobalTransferable = nsnull; -+ } -+ -+ return NS_OK; -+} -+ -+NS_IMETHODIMP -+nsClipboard::HasDataMatchingFlavors(const char** aFlavorList, PRUint32 aLength, -+ PRInt32 aWhichClipboard, PRBool *_retval) -+{ -+ if (!aFlavorList || !_retval) -+ return NS_ERROR_NULL_POINTER; -+ -+ *_retval = PR_FALSE; -+ -+ GtkSelectionData *selection_data = -+ GetTargets(GetSelectionAtom(aWhichClipboard)); -+ if (!selection_data) -+ return NS_OK; -+ -+ gint n_targets = 0; -+ GdkAtom *targets = NULL; -+ -+ if (!gtk_selection_data_get_targets(selection_data, -+ &targets, &n_targets) || -+ !n_targets) -+ return NS_OK; -+ -+ // Walk through the provided types and try to match it to a -+ // provided type. -+ for (PRUint32 i = 0; i < aLength && !*_retval; i++) { -+ // We special case text/unicode here. -+ if (!strcmp(aFlavorList[i], kUnicodeMime) && -+ gtk_selection_data_targets_include_text(selection_data)) { -+ *_retval = PR_TRUE; -+ break; -+ } -+ -+ for (PRInt32 j = 0; j < n_targets; j++) { -+ gchar *atom_name = gdk_atom_name(targets[j]); -+ if (!strcmp(atom_name, aFlavorList[i])) -+ *_retval = PR_TRUE; -+ -+ // X clipboard wants image/jpeg, not image/jpg -+ if (!strcmp(aFlavorList[i], kJPEGImageMime) && !strcmp(atom_name, "image/jpeg")) -+ *_retval = PR_TRUE; -+ -+ g_free(atom_name); -+ -+ if (*_retval) -+ break; -+ } -+ } -+ gtk_selection_data_free(selection_data); -+ g_free(targets); -+ -+ return NS_OK; -+} -+ -+NS_IMETHODIMP -+nsClipboard::SupportsSelectionClipboard(PRBool *_retval) -+{ -+ *_retval = PR_TRUE; // yeah, unix supports the selection clipboard -+ return NS_OK; -+} -+ -+/* static */ -+GdkAtom -+nsClipboard::GetSelectionAtom(PRInt32 aWhichClipboard) -+{ -+ if (aWhichClipboard == kGlobalClipboard) -+ return GDK_SELECTION_CLIPBOARD; -+ -+ return GDK_SELECTION_PRIMARY; -+} -+ -+/* static */ -+GtkSelectionData * -+nsClipboard::GetTargets(GdkAtom aWhichClipboard) -+{ -+ GtkClipboard *clipboard = gtk_clipboard_get(aWhichClipboard); -+ return wait_for_contents(clipboard, gdk_atom_intern("TARGETS", FALSE)); -+} -+ -+nsITransferable * -+nsClipboard::GetTransferable(PRInt32 aWhichClipboard) -+{ -+ nsITransferable *retval; -+ -+ if (aWhichClipboard == kSelectionClipboard) -+ retval = mSelectionTransferable.get(); -+ else -+ retval = mGlobalTransferable.get(); -+ -+ return retval; -+} -+ -+void -+nsClipboard::AddTarget(GdkAtom aName, GdkAtom aClipboard) -+{ -+ gtk_selection_add_target(mWidget, aClipboard, aName, 0); -+} -+ -+void -+nsClipboard::SelectionGetEvent (GtkWidget *aWidget, -+ GtkSelectionData *aSelectionData, -+ guint aTime) -+{ -+ // Someone has asked us to hand them something. The first thing -+ // that we want to do is see if that something includes text. If -+ // it does, try to give it text/unicode after converting it to -+ // utf-8. -+ -+ PRInt32 whichClipboard; -+ -+ // which clipboard? -+ if (aSelectionData->selection == GDK_SELECTION_PRIMARY) -+ whichClipboard = kSelectionClipboard; -+ else if (aSelectionData->selection == GDK_SELECTION_CLIPBOARD) -+ whichClipboard = kGlobalClipboard; -+ else -+ return; // THAT AIN'T NO CLIPBOARD I EVER HEARD OF -+ -+ nsCOMPtr<nsITransferable> trans = GetTransferable(whichClipboard); -+ -+ nsresult rv; -+ nsCOMPtr<nsISupports> item; -+ PRUint32 len; -+ -+ // Check to see if the selection data includes any of the string -+ // types that we support. -+ if (aSelectionData->target == gdk_atom_intern ("STRING", FALSE) || -+ aSelectionData->target == gdk_atom_intern ("TEXT", FALSE) || -+ aSelectionData->target == gdk_atom_intern ("COMPOUND_TEXT", FALSE) || -+ aSelectionData->target == gdk_atom_intern ("UTF8_STRING", FALSE)) { -+ // Try to convert our internal type into a text string. Get -+ // the transferable for this clipboard and try to get the -+ // text/unicode type for it. -+ rv = trans->GetTransferData("text/unicode", getter_AddRefs(item), -+ &len); -+ if (!item || NS_FAILED(rv)) -+ return; -+ -+ nsCOMPtr<nsISupportsString> wideString; -+ wideString = do_QueryInterface(item); -+ if (!wideString) -+ return; -+ -+ nsAutoString ucs2string; -+ wideString->GetData(ucs2string); -+ char *utf8string = ToNewUTF8String(ucs2string); -+ if (!utf8string) -+ return; -+ -+ gtk_selection_data_set_text (aSelectionData, utf8string, -+ strlen(utf8string)); -+ -+ nsMemory::Free(utf8string); -+ return; -+ } -+ -+ // Try to match up the selection data target to something our -+ // transferable provides. -+ gchar *target_name = gdk_atom_name(aSelectionData->target); -+ if (!target_name) -+ return; -+ -+ rv = trans->GetTransferData(target_name, getter_AddRefs(item), &len); -+ // nothing found? -+ if (!item || NS_FAILED(rv)) { -+ g_free(target_name); -+ return; -+ } -+ -+ void *primitive_data = nsnull; -+ nsPrimitiveHelpers::CreateDataFromPrimitive(target_name, item, -+ &primitive_data, len); -+ -+ if (primitive_data) { -+ // Check to see if the selection data is text/html -+ if (aSelectionData->target == gdk_atom_intern (kHTMLMime, FALSE)) { -+ /* -+ * "text/html" can be encoded UCS2. It is recommended that -+ * documents transmitted as UCS2 always begin with a ZERO-WIDTH -+ * NON-BREAKING SPACE character (hexadecimal FEFF, also called -+ * Byte Order Mark (BOM)). Adding BOM can help other app to -+ * detect mozilla use UCS2 encoding when copy-paste. -+ */ -+ guchar *buffer = (guchar *) -+ nsMemory::Alloc((len * sizeof(guchar)) + sizeof(PRUnichar)); -+ if (!buffer) -+ return; -+ PRUnichar prefix = 0xFEFF; -+ memcpy(buffer, &prefix, sizeof(prefix)); -+ memcpy(buffer + sizeof(prefix), primitive_data, len); -+ nsMemory::Free((guchar *)primitive_data); -+ primitive_data = (guchar *)buffer; -+ len += sizeof(prefix); -+ } -+ -+ gtk_selection_data_set(aSelectionData, aSelectionData->target, -+ 8, /* 8 bits in a unit */ -+ (const guchar *)primitive_data, len); -+ nsMemory::Free(primitive_data); -+ } -+ -+ g_free(target_name); -+ -+} -+ -+void -+nsClipboard::SelectionClearEvent (GtkWidget *aWidget, -+ GdkEventSelection *aEvent) -+{ -+ PRInt32 whichClipboard; -+ -+ // which clipboard? -+ if (aEvent->selection == GDK_SELECTION_PRIMARY) -+ whichClipboard = kSelectionClipboard; -+ else if (aEvent->selection == GDK_SELECTION_CLIPBOARD) -+ whichClipboard = kGlobalClipboard; -+ else -+ return; // THAT AIN'T NO CLIPBOARD I EVER HEARD OF -+ -+ EmptyClipboard(whichClipboard); -+} -+ -+void -+invisible_selection_get_cb (GtkWidget *aWidget, -+ GtkSelectionData *aSelectionData, -+ guint aTime, -+ guint aInfo, -+ nsClipboard *aClipboard) -+{ -+ aClipboard->SelectionGetEvent(aWidget, aSelectionData, aTime); -+} -+ -+gboolean -+selection_clear_event_cb (GtkWidget *aWidget, -+ GdkEventSelection *aEvent, -+ nsClipboard *aClipboard) -+{ -+ aClipboard->SelectionClearEvent(aWidget, aEvent); -+ return TRUE; -+} -+ -+/* -+ * when copy-paste, mozilla wants data encoded using UCS2, -+ * other app such as StarOffice use "text/html"(RFC2854). -+ * This function convert data(got from GTK clipboard) -+ * to data mozilla wanted. -+ * -+ * data from GTK clipboard can be 3 forms: -+ * 1. From current mozilla -+ * "text/html", charset = utf-16 -+ * 2. From old version mozilla or mozilla-based app -+ * content("body" only), charset = utf-16 -+ * 3. From other app who use "text/html" when copy-paste -+ * "text/html", has "charset" info -+ * -+ * data : got from GTK clipboard -+ * dataLength: got from GTK clipboard -+ * body : pass to Mozilla -+ * bodyLength: pass to Mozilla -+ */ -+void ConvertHTMLtoUCS2(guchar * data, PRInt32 dataLength, -+ PRUnichar** unicodeData, PRInt32& outUnicodeLen) -+{ -+ nsCAutoString charset; -+ GetHTMLCharset(data, dataLength, charset);// get charset of HTML -+ if (charset.EqualsLiteral("UTF-16")) {//current mozilla -+ outUnicodeLen = (dataLength / 2) - 1; -+ *unicodeData = reinterpret_cast<PRUnichar*> -+ (nsMemory::Alloc((outUnicodeLen + sizeof('\0')) * -+ sizeof(PRUnichar))); -+ if (*unicodeData) { -+ memcpy(*unicodeData, data + sizeof(PRUnichar), -+ outUnicodeLen * sizeof(PRUnichar)); -+ (*unicodeData)[outUnicodeLen] = '\0'; -+ } -+ } else if (charset.EqualsLiteral("UNKNOWN")) { -+ outUnicodeLen = 0; -+ return; -+ } else { -+ // app which use "text/html" to copy&paste -+ nsCOMPtr<nsIUnicodeDecoder> decoder; -+ nsresult rv; -+ // get the decoder -+ nsCOMPtr<nsICharsetConverterManager> ccm = -+ do_GetService(NS_CHARSETCONVERTERMANAGER_CONTRACTID, &rv); -+ if (NS_FAILED(rv)) { -+#ifdef DEBUG_CLIPBOARD -+ g_print(" can't get CHARSET CONVERTER MANAGER service\n"); -+#endif -+ outUnicodeLen = 0; -+ return; -+ } -+ rv = ccm->GetUnicodeDecoder(charset.get(), getter_AddRefs(decoder)); -+ if (NS_FAILED(rv)) { -+#ifdef DEBUG_CLIPBOARD -+ g_print(" get unicode decoder error\n"); -+#endif -+ outUnicodeLen = 0; -+ return; -+ } -+ // converting -+ decoder->GetMaxLength((const char *)data, dataLength, &outUnicodeLen); -+ // |outUnicodeLen| is number of chars -+ if (outUnicodeLen) { -+ *unicodeData = reinterpret_cast<PRUnichar*> -+ (nsMemory::Alloc((outUnicodeLen + sizeof('\0')) * -+ sizeof(PRUnichar))); -+ if (*unicodeData) { -+ PRInt32 numberTmp = dataLength; -+ decoder->Convert((const char *)data, &numberTmp, -+ *unicodeData, &outUnicodeLen); -+#ifdef DEBUG_CLIPBOARD -+ if (numberTmp != dataLength) -+ printf("didn't consume all the bytes\n"); -+#endif -+ // null terminate. Convert() doesn't do it for us -+ (*unicodeData)[outUnicodeLen] = '\0'; -+ } -+ } // if valid length -+ } -+} -+ -+/* -+ * get "charset" information from clipboard data -+ * return value can be: -+ * 1. "UTF-16": mozilla or "text/html" with "charset=utf-16" -+ * 2. "UNKNOWN": mozilla can't detect what encode it use -+ * 3. other: "text/html" with other charset than utf-16 -+ */ -+void GetHTMLCharset(guchar * data, PRInt32 dataLength, nsCString& str) -+{ -+ // if detect "FFFE" or "FEFF", assume UTF-16 -+ PRUnichar* beginChar = (PRUnichar*)data; -+ if ((beginChar[0] == 0xFFFE) || (beginChar[0] == 0xFEFF)) { -+ str.AssignLiteral("UTF-16"); -+ return; -+ } -+ // no "FFFE" and "FEFF", assume ASCII first to find "charset" info -+ const nsDependentCString htmlStr((const char *)data, dataLength); -+ nsACString::const_iterator start, end; -+ htmlStr.BeginReading(start); -+ htmlStr.EndReading(end); -+ nsACString::const_iterator valueStart(start), valueEnd(start); -+ -+ if (CaseInsensitiveFindInReadable( -+ NS_LITERAL_CSTRING("CONTENT=\"text/html;"), -+ start, end)) { -+ start = end; -+ htmlStr.EndReading(end); -+ -+ if (CaseInsensitiveFindInReadable( -+ NS_LITERAL_CSTRING("charset="), -+ start, end)) { -+ valueStart = end; -+ start = end; -+ htmlStr.EndReading(end); -+ -+ if (FindCharInReadable('"', start, end)) -+ valueEnd = start; -+ } -+ } -+ // find "charset" in HTML -+ if (valueStart != valueEnd) { -+ str = Substring(valueStart, valueEnd); -+ ToUpperCase(str); -+#ifdef DEBUG_CLIPBOARD -+ printf("Charset of HTML = %s\n", charsetUpperStr.get()); -+#endif -+ return; -+ } -+ str.AssignLiteral("UNKNOWN"); -+} -+ -+static void -+DispatchSelectionNotifyEvent(GtkWidget *widget, XEvent *xevent) -+{ -+ GdkEvent event; -+ event.selection.type = GDK_SELECTION_NOTIFY; -+ event.selection.window = widget->window; -+ event.selection.selection = gdk_x11_xatom_to_atom(xevent->xselection.selection); -+ event.selection.target = gdk_x11_xatom_to_atom(xevent->xselection.target); -+ event.selection.property = gdk_x11_xatom_to_atom(xevent->xselection.property); -+ event.selection.time = xevent->xselection.time; -+ -+ gtk_widget_event(widget, &event); -+} -+ -+static void -+DispatchPropertyNotifyEvent(GtkWidget *widget, XEvent *xevent) -+{ -+ if (((GdkWindowObject *) widget->window)->event_mask & GDK_PROPERTY_CHANGE_MASK) { -+ GdkEvent event; -+ event.property.type = GDK_PROPERTY_NOTIFY; -+ event.property.window = widget->window; -+ event.property.atom = gdk_x11_xatom_to_atom(xevent->xproperty.atom); -+ event.property.time = xevent->xproperty.time; -+ event.property.state = xevent->xproperty.state; -+ -+ gtk_widget_event(widget, &event); -+ } -+} -+ -+struct checkEventContext -+{ -+ GtkWidget *cbWidget; -+ Atom selAtom; -+}; -+ -+static Bool -+checkEventProc(Display *display, XEvent *event, XPointer arg) -+{ -+ checkEventContext *context = (checkEventContext *) arg; -+ -+ if (event->xany.type == SelectionNotify || -+ (event->xany.type == PropertyNotify && -+ event->xproperty.atom == context->selAtom)) { -+ -+ GdkWindow *cbWindow = gdk_window_lookup(event->xany.window); -+ if (cbWindow) { -+ GtkWidget *cbWidget = NULL; -+ gdk_window_get_user_data(cbWindow, (gpointer *)&cbWidget); -+ if (cbWidget && GTK_IS_WIDGET(cbWidget)) { -+ context->cbWidget = cbWidget; -+ return True; -+ } -+ } -+ } -+ -+ return False; -+} -+ -+// Idle timeout for receiving selection and property notify events (microsec) -+static const int kClipboardTimeout = 500000; -+ -+static void -+wait_for_retrieval(GtkClipboard *clipboard, retrieval_context *r_context) -+{ -+ if (r_context->completed) // the request completed synchronously -+ return; -+ -+ Display *xDisplay = GDK_DISPLAY(); -+ checkEventContext context; -+ context.cbWidget = NULL; -+ context.selAtom = gdk_x11_atom_to_xatom(gdk_atom_intern("GDK_SELECTION", -+ FALSE)); -+ -+ // Send X events which are relevant to the ongoing selection retrieval -+ // to the clipboard widget. Wait until either the operation completes, or -+ // we hit our timeout. All other X events remain queued. -+ -+ int select_result; -+ -+#ifdef POLL_WITH_XCONNECTIONNUMBER -+ struct pollfd fds[1]; -+ fds[0].fd = XConnectionNumber(xDisplay); -+ fds[0].events = POLLIN; -+#else -+ int cnumber = ConnectionNumber(xDisplay); -+ fd_set select_set; -+ FD_ZERO(&select_set); -+ FD_SET(cnumber, &select_set); -+ ++cnumber; -+ struct timeval tv; -+#endif -+ -+ do { -+ XEvent xevent; -+ -+ while (XCheckIfEvent(xDisplay, &xevent, checkEventProc, -+ (XPointer) &context)) { -+ -+ if (xevent.xany.type == SelectionNotify) -+ DispatchSelectionNotifyEvent(context.cbWidget, &xevent); -+ else -+ DispatchPropertyNotifyEvent(context.cbWidget, &xevent); -+ -+ if (r_context->completed) -+ return; -+ } -+ -+#ifdef POLL_WITH_XCONNECTIONNUMBER -+ select_result = poll(fds, 1, kClipboardTimeout / 1000); -+#else -+ tv.tv_sec = 0; -+ tv.tv_usec = kClipboardTimeout; -+ select_result = select(cnumber, &select_set, NULL, NULL, &tv); -+#endif -+ } while (select_result == 1); -+ -+#ifdef DEBUG_CLIPBOARD -+ printf("exceeded clipboard timeout\n"); -+#endif -+} -+ -+static void -+clipboard_contents_received(GtkClipboard *clipboard, -+ GtkSelectionData *selection_data, -+ gpointer data) -+{ -+ retrieval_context *context = static_cast<retrieval_context *>(data); -+ context->completed = PR_TRUE; -+ -+ if (selection_data->length >= 0) -+ context->data = gtk_selection_data_copy(selection_data); -+} -+ -+ -+static GtkSelectionData * -+wait_for_contents(GtkClipboard *clipboard, GdkAtom target) -+{ -+ retrieval_context context; -+ gtk_clipboard_request_contents(clipboard, target, -+ clipboard_contents_received, -+ &context); -+ -+ wait_for_retrieval(clipboard, &context); -+ return static_cast<GtkSelectionData *>(context.data); -+} -+ -+static void -+clipboard_text_received(GtkClipboard *clipboard, -+ const gchar *text, -+ gpointer data) -+{ -+ retrieval_context *context = static_cast<retrieval_context *>(data); -+ context->completed = PR_TRUE; -+ context->data = g_strdup(text); -+} -+ -+static gchar * -+wait_for_text(GtkClipboard *clipboard) -+{ -+ retrieval_context context; -+ gtk_clipboard_request_text(clipboard, clipboard_text_received, &context); -+ -+ wait_for_retrieval(clipboard, &context); -+ return static_cast<gchar *>(context.data); -+} -diff --git a/widget/src/headless/nsClipboard.h b/widget/src/headless/nsClipboard.h -new file mode 100644 -index 0000000..dc690c0 ---- /dev/null -+++ b/widget/src/headless/nsClipboard.h -@@ -0,0 +1,93 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -+/* vim:expandtab:shiftwidth=4:tabstop=4: -+ */ -+/* ***** BEGIN LICENSE BLOCK ***** -+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 -+ * -+ * 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 mozilla.org code. -+ * -+ * The Initial Developer of the Original Code is Christopher Blizzard -+ * <blizzard@mozilla.org>. Portions created by the Initial Developer -+ * are Copyright (C) 2001 the Initial Developer. All Rights Reserved. -+ * -+ * Contributor(s): -+ * -+ * 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 -+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -+ * in which case the provisions of the GPL or the LGPL are applicable instead -+ * of those above. If you wish to allow use of your version of this file only -+ * under the terms of either the GPL or the LGPL, and not to allow others to -+ * use your version of this file under the terms of the MPL, indicate your -+ * decision by deleting the provisions above and replace them with the notice -+ * and other provisions required by the GPL or the LGPL. If you do not delete -+ * the provisions above, a recipient may use your version of this file under -+ * the terms of any one of the MPL, the GPL or the LGPL. -+ * -+ * ***** END LICENSE BLOCK ***** */ -+ -+#ifndef __nsClipboard_h_ -+#define __nsClipboard_h_ -+ -+#include "nsIClipboard.h" -+#include "nsClipboardPrivacyHandler.h" -+#include "nsAutoPtr.h" -+#include <gtk/gtk.h> -+ -+class nsClipboard : public nsIClipboard -+{ -+public: -+ nsClipboard(); -+ virtual ~nsClipboard(); -+ -+ NS_DECL_ISUPPORTS -+ -+ NS_DECL_NSICLIPBOARD -+ -+ // Make sure we are initialized, called from the factory -+ // constructor -+ nsresult Init (void); -+ // Someone requested the selection from the hidden widget -+ void SelectionGetEvent (GtkWidget *aWidget, -+ GtkSelectionData *aSelectionData, -+ guint aTime); -+ void SelectionClearEvent (GtkWidget *aWidget, -+ GdkEventSelection *aEvent); -+ -+ -+private: -+ // Utility methods -+ static GdkAtom GetSelectionAtom (PRInt32 aWhichClipboard); -+ static GtkSelectionData *GetTargets (GdkAtom aWhichClipboard); -+ -+ // Get our hands on the correct transferable, given a specific -+ // clipboard -+ nsITransferable *GetTransferable (PRInt32 aWhichClipboard); -+ -+ // Add a target type to the hidden widget -+ void AddTarget (GdkAtom aName, -+ GdkAtom aClipboard); -+ -+ // The hidden widget where we do all of our operations -+ GtkWidget *mWidget; -+ // Hang on to our owners and transferables so we can transfer data -+ // when asked. -+ nsCOMPtr<nsIClipboardOwner> mSelectionOwner; -+ nsCOMPtr<nsIClipboardOwner> mGlobalOwner; -+ nsCOMPtr<nsITransferable> mSelectionTransferable; -+ nsCOMPtr<nsITransferable> mGlobalTransferable; -+ nsRefPtr<nsClipboardPrivacyHandler> mPrivacyHandler; -+ -+}; -+ -+#endif /* __nsClipboard_h_ */ -diff --git a/widget/src/headless/nsIImageToPixbuf.h b/widget/src/headless/nsIImageToPixbuf.h -new file mode 100644 -index 0000000..1c46015 ---- /dev/null -+++ b/widget/src/headless/nsIImageToPixbuf.h -@@ -0,0 +1,62 @@ -+/* ***** BEGIN LICENSE BLOCK ***** -+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 -+ * -+ * 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 mozilla.org widget code. -+ * -+ * The Initial Developer of the Original Code is -+ * Christian Biesinger <cbiesinger@web.de>. -+ * Portions created by the Initial Developer are Copyright (C) 2006 -+ * the Initial Developer. All Rights Reserved. -+ * -+ * Contributor(s): -+ * -+ * 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 -+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -+ * in which case the provisions of the GPL or the LGPL are applicable instead -+ * of those above. If you wish to allow use of your version of this file only -+ * under the terms of either the GPL or the LGPL, and not to allow others to -+ * use your version of this file under the terms of the MPL, indicate your -+ * decision by deleting the provisions above and replace them with the notice -+ * and other provisions required by the GPL or the LGPL. If you do not delete -+ * the provisions above, a recipient may use your version of this file under -+ * the terms of any one of the MPL, the GPL or the LGPL. -+ * -+ * ***** END LICENSE BLOCK ***** */ -+ -+#ifndef NSIIMAGETOPIXBUF_H_ -+#define NSIIMAGETOPIXBUF_H_ -+ -+#include "nsISupports.h" -+ -+// dfa4ac93-83f2-4ab8-9b2a-0ff7022aebe2 -+#define NSIIMAGETOPIXBUF_IID \ -+{ 0xdfa4ac93, 0x83f2, 0x4ab8, \ -+ { 0x9b, 0x2a, 0x0f, 0xf7, 0x02, 0x2a, 0xeb, 0xe2 } } -+ -+class nsIImage; -+typedef struct _GdkPixbuf GdkPixbuf; -+ -+/** -+ * An interface that allows converting an nsIImage to a GdkPixbuf*. -+ */ -+class nsIImageToPixbuf : public nsISupports { -+ public: -+ NS_DECLARE_STATIC_IID_ACCESSOR(NSIIMAGETOPIXBUF_IID) -+ -+ NS_IMETHOD_(GdkPixbuf*) ConvertImageToPixbuf(nsIImage* aImage) = 0; -+}; -+ -+NS_DEFINE_STATIC_IID_ACCESSOR(nsIImageToPixbuf, NSIIMAGETOPIXBUF_IID) -+ -+#endif -diff --git a/widget/src/headless/nsImageToPixbuf.cpp b/widget/src/headless/nsImageToPixbuf.cpp -new file mode 100644 -index 0000000..496815c ---- /dev/null -+++ b/widget/src/headless/nsImageToPixbuf.cpp -@@ -0,0 +1,196 @@ -+/* vim:set sw=4 sts=4 et cin: */ -+/* ***** BEGIN LICENSE BLOCK ***** -+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 -+ * -+ * 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 mozilla.org widget code. -+ * -+ * The Initial Developer of the Original Code is -+ * Christian Biesinger <cbiesinger@web.de>. -+ * Portions created by the Initial Developer are Copyright (C) 2006 -+ * the Initial Developer. All Rights Reserved. -+ * -+ * Contributor(s): -+ * -+ * 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 -+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -+ * in which case the provisions of the GPL or the LGPL are applicable instead -+ * of those above. If you wish to allow use of your version of this file only -+ * under the terms of either the GPL or the LGPL, and not to allow others to -+ * use your version of this file under the terms of the MPL, indicate your -+ * decision by deleting the provisions above and replace them with the notice -+ * and other provisions required by the GPL or the LGPL. If you do not delete -+ * the provisions above, a recipient may use your version of this file under -+ * the terms of any one of the MPL, the GPL or the LGPL. -+ * -+ * ***** END LICENSE BLOCK ***** */ -+ -+#include <gdk-pixbuf/gdk-pixbuf.h> -+ -+#include "gfxASurface.h" -+#include "gfxImageSurface.h" -+#include "gfxContext.h" -+ -+#include "nsIImage.h" -+ -+#include "nsAutoPtr.h" -+ -+#include "nsImageToPixbuf.h" -+ -+NS_IMPL_ISUPPORTS1(nsImageToPixbuf, nsIImageToPixbuf) -+ -+inline unsigned char -+unpremultiply (unsigned char color, -+ unsigned char alpha) -+{ -+ if (alpha == 0) -+ return 0; -+ // plus alpha/2 to round instead of truncate -+ return (color * 255 + alpha / 2) / alpha; -+} -+ -+NS_IMETHODIMP_(GdkPixbuf*) -+nsImageToPixbuf::ConvertImageToPixbuf(nsIImage* aImage) -+{ -+ return ImageToPixbuf(aImage); -+} -+ -+GdkPixbuf* -+nsImageToPixbuf::ImageToPixbuf(nsIImage* aImage) -+{ -+ PRInt32 width = aImage->GetWidth(), -+ height = aImage->GetHeight(); -+ -+ nsRefPtr<gfxPattern> pattern; -+ aImage->GetPattern(getter_AddRefs(pattern)); -+ -+ return PatternToPixbuf(pattern, width, height); -+} -+ -+GdkPixbuf* -+nsImageToPixbuf::ImgSurfaceToPixbuf(gfxImageSurface* aImgSurface, PRInt32 aWidth, PRInt32 aHeight) -+{ -+ GdkPixbuf* pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, PR_TRUE, 8, -+ aWidth, aHeight); -+ if (!pixbuf) -+ return nsnull; -+ -+ PRUint32 rowstride = gdk_pixbuf_get_rowstride (pixbuf); -+ guchar* pixels = gdk_pixbuf_get_pixels (pixbuf); -+ -+ long cairoStride = aImgSurface->Stride(); -+ unsigned char* cairoData = aImgSurface->Data(); -+ -+ gfxASurface::gfxImageFormat format = aImgSurface->Format(); -+ -+ for (PRInt32 row = 0; row < aHeight; ++row) { -+ for (PRInt32 col = 0; col < aWidth; ++col) { -+ guchar* pixel = pixels + row * rowstride + 4 * col; -+ -+ PRUint32* cairoPixel = reinterpret_cast<PRUint32*> -+ ((cairoData + row * cairoStride + 4 * col)); -+ -+ if (format == gfxASurface::ImageFormatARGB32) { -+ const PRUint8 a = (*cairoPixel >> 24) & 0xFF; -+ const PRUint8 r = unpremultiply((*cairoPixel >> 16) & 0xFF, a); -+ const PRUint8 g = unpremultiply((*cairoPixel >> 8) & 0xFF, a); -+ const PRUint8 b = unpremultiply((*cairoPixel >> 0) & 0xFF, a); -+ -+ *pixel++ = r; -+ *pixel++ = g; -+ *pixel++ = b; -+ *pixel++ = a; -+ } else { -+ NS_ASSERTION(format == gfxASurface::ImageFormatRGB24, -+ "unexpected format"); -+ const PRUint8 r = (*cairoPixel >> 16) & 0xFF; -+ const PRUint8 g = (*cairoPixel >> 8) & 0xFF; -+ const PRUint8 b = (*cairoPixel >> 0) & 0xFF; -+ -+ *pixel++ = r; -+ *pixel++ = g; -+ *pixel++ = b; -+ *pixel++ = 0xFF; // A -+ } -+ } -+ } -+ -+ return pixbuf; -+} -+ -+GdkPixbuf* -+nsImageToPixbuf::SurfaceToPixbuf(gfxASurface* aSurface, PRInt32 aWidth, PRInt32 aHeight) -+{ -+ if (aSurface->CairoStatus()) { -+ NS_ERROR("invalid surface"); -+ return nsnull; -+ } -+ -+ nsRefPtr<gfxImageSurface> imgSurface; -+ if (aSurface->GetType() == gfxASurface::SurfaceTypeImage) { -+ imgSurface = static_cast<gfxImageSurface*> -+ (static_cast<gfxASurface*>(aSurface)); -+ } else { -+ imgSurface = new gfxImageSurface(gfxIntSize(aWidth, aHeight), -+ gfxImageSurface::ImageFormatARGB32); -+ -+ if (!imgSurface) -+ return nsnull; -+ -+ nsRefPtr<gfxContext> context = new gfxContext(imgSurface); -+ if (!context) -+ return nsnull; -+ -+ context->SetOperator(gfxContext::OPERATOR_SOURCE); -+ context->SetSource(aSurface); -+ context->Paint(); -+ } -+ -+ return ImgSurfaceToPixbuf(imgSurface, aWidth, aHeight); -+} -+ -+GdkPixbuf* -+nsImageToPixbuf::PatternToPixbuf(gfxPattern* aPattern, PRInt32 aWidth, PRInt32 aHeight) -+{ -+ if (aPattern->CairoStatus()) { -+ NS_ERROR("invalid pattern"); -+ return nsnull; -+ } -+ -+ nsRefPtr<gfxImageSurface> imgSurface; -+ if (aPattern->GetType() == gfxPattern::PATTERN_SURFACE) { -+ nsRefPtr<gfxASurface> surface = aPattern->GetSurface(); -+ if (surface->GetType() == gfxASurface::SurfaceTypeImage) { -+ imgSurface = static_cast<gfxImageSurface*> -+ (static_cast<gfxASurface*>(surface.get())); -+ } -+ } -+ -+ if (!imgSurface) { -+ imgSurface = new gfxImageSurface(gfxIntSize(aWidth, aHeight), -+ gfxImageSurface::ImageFormatARGB32); -+ -+ if (!imgSurface) -+ return nsnull; -+ -+ nsRefPtr<gfxContext> context = new gfxContext(imgSurface); -+ if (!context) -+ return nsnull; -+ -+ context->SetOperator(gfxContext::OPERATOR_SOURCE); -+ context->SetPattern(aPattern); -+ context->Paint(); -+ } -+ -+ return ImgSurfaceToPixbuf(imgSurface, aWidth, aHeight); -+} -diff --git a/widget/src/headless/nsImageToPixbuf.h b/widget/src/headless/nsImageToPixbuf.h -new file mode 100644 -index 0000000..0e3f516 ---- /dev/null -+++ b/widget/src/headless/nsImageToPixbuf.h -@@ -0,0 +1,71 @@ -+/* vim:set sw=4 sts=4 et cin: */ -+/* ***** BEGIN LICENSE BLOCK ***** -+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 -+ * -+ * 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 mozilla.org widget code. -+ * -+ * The Initial Developer of the Original Code is -+ * Christian Biesinger <cbiesinger@web.de>. -+ * Portions created by the Initial Developer are Copyright (C) 2006 -+ * the Initial Developer. All Rights Reserved. -+ * -+ * Contributor(s): -+ * -+ * 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 -+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -+ * in which case the provisions of the GPL or the LGPL are applicable instead -+ * of those above. If you wish to allow use of your version of this file only -+ * under the terms of either the GPL or the LGPL, and not to allow others to -+ * use your version of this file under the terms of the MPL, indicate your -+ * decision by deleting the provisions above and replace them with the notice -+ * and other provisions required by the GPL or the LGPL. If you do not delete -+ * the provisions above, a recipient may use your version of this file under -+ * the terms of any one of the MPL, the GPL or the LGPL. -+ * -+ * ***** END LICENSE BLOCK ***** */ -+ -+#ifndef NSIMAGETOPIXBUF_H_ -+#define NSIMAGETOPIXBUF_H_ -+ -+#include "nsIImageToPixbuf.h" -+ -+class gfxASurface; -+class gfxPattern; -+class gfxImageSurface; -+ -+class nsImageToPixbuf : public nsIImageToPixbuf { -+ public: -+ NS_DECL_ISUPPORTS -+ NS_IMETHOD_(GdkPixbuf*) ConvertImageToPixbuf(nsIImage* aImage); -+ -+ // Friendlier version of ConvertImageToPixbuf for callers inside of -+ // widget -+ static GdkPixbuf* ImageToPixbuf(nsIImage* aImage); -+ static GdkPixbuf* SurfaceToPixbuf(gfxASurface* aSurface, -+ PRInt32 aWidth, PRInt32 aHeight); -+ static GdkPixbuf* PatternToPixbuf(gfxPattern* aPattern, -+ PRInt32 aWidth, PRInt32 aHeight); -+ private: -+ static GdkPixbuf* ImgSurfaceToPixbuf(gfxImageSurface* aImgSurface, -+ PRInt32 aWidth, PRInt32 aHeight); -+ ~nsImageToPixbuf() {} -+}; -+ -+ -+// fc2389b8-c650-4093-9e42-b05e5f0685b7 -+#define NS_IMAGE_TO_PIXBUF_CID \ -+{ 0xfc2389b8, 0xc650, 0x4093, \ -+ { 0x9e, 0x42, 0xb0, 0x5e, 0x5f, 0x06, 0x85, 0xb7 } } -+ -+#endif -diff --git a/widget/src/headless/nsWidgetFactory.cpp b/widget/src/headless/nsWidgetFactory.cpp -index eb94333..a215988 100644 ---- a/widget/src/headless/nsWidgetFactory.cpp -+++ b/widget/src/headless/nsWidgetFactory.cpp -@@ -46,6 +46,10 @@ - #include "nsWindow.h" - #include "nsTransferable.h" - #include "nsHTMLFormatConverter.h" -+#ifdef MOZ_X11 -+#include "nsClipboardHelper.h" -+#include "nsClipboard.h" -+#endif - //#include "nsFilePicker.h" - #include "nsSound.h" - #include "nsBidiKeyboard.h" -@@ -74,6 +78,10 @@ NS_GENERIC_FACTORY_CONSTRUCTOR(nsLookAndFeel) - NS_GENERIC_FACTORY_CONSTRUCTOR(nsTransferable) - NS_GENERIC_FACTORY_CONSTRUCTOR(nsBidiKeyboard) - NS_GENERIC_FACTORY_CONSTRUCTOR(nsHTMLFormatConverter) -+#ifdef MOZ_X11 -+NS_GENERIC_FACTORY_CONSTRUCTOR(nsClipboardHelper) -+NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsClipboard, Init) -+#endif - NS_GENERIC_FACTORY_CONSTRUCTOR(nsSound) - NS_GENERIC_FACTORY_CONSTRUCTOR(nsScreenManagerHeadless) - //NS_GENERIC_FACTORY_CONSTRUCTOR(nsImageToPixbuf) -@@ -189,6 +197,16 @@ static const nsModuleComponentInfo components[] = - NS_TRANSFERABLE_CID, - "@mozilla.org/widget/transferable;1", - nsTransferableConstructor }, -+#ifdef MOZ_X11 -+ { "Gtk Clipboard", -+ NS_CLIPBOARD_CID, -+ "@mozilla.org/widget/clipboard;1", -+ nsClipboardConstructor }, -+ { "Clipboard Helper", -+ NS_CLIPBOARDHELPER_CID, -+ "@mozilla.org/widget/clipboardhelper;1", -+ nsClipboardHelperConstructor }, -+#endif - { "HTML Format Converter", - NS_HTMLFORMATCONVERTER_CID, - "@mozilla.org/widget/htmlformatconverter;1", --- -1.6.0.4 - diff --git a/meta/packages/mozilla-headless/mozilla-headless-0.0+hg-1.0+a3e7c6626661/mozconfig b/meta/packages/mozilla-headless/mozilla-headless-0.0+hg-1.0+a3e7c6626661/mozconfig deleted file mode 100644 index 6123d11d2..000000000 --- a/meta/packages/mozilla-headless/mozilla-headless-0.0+hg-1.0+a3e7c6626661/mozconfig +++ /dev/null @@ -1,23 +0,0 @@ -# this line sets the directory for all build output -mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj-headless-release - -# comment out the previous line and uncomment these two for a debug build -#mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj-headless-debug -#ac_add_options --disable-optimize --enable-debug - -# this is the line that enables the headless implementation -ac_add_options --enable-default-toolkit=cairo-headless - -# comment out the previous line and uncomment these two for a GTK build -#ac_add_options --enable-system-cairo -#ac_add_options --enable-default-toolkit=cairo-gtk2 - -ac_add_options --disable-tests -ac_add_options --disable-javaxpcom -ac_add_options --enable-application=xulrunner -ac_add_options --enable-pango -ac_add_options --disable-printing -ac_add_options --disable-crashreporter -ac_add_options --enable-plugins -ac_add_options --disable-accessibility -mk_add_options MOZ_CO_PROJECT=xulrunner diff --git a/meta/packages/mozilla-headless/mozilla-headless-0.0+hg-1.0+a3e7c6626661/mozilla-jemalloc.patch b/meta/packages/mozilla-headless/mozilla-headless-0.0+hg-1.0+a3e7c6626661/mozilla-jemalloc.patch deleted file mode 100644 index aabd6906e..000000000 --- a/meta/packages/mozilla-headless/mozilla-headless-0.0+hg-1.0+a3e7c6626661/mozilla-jemalloc.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -r f1af606531f5 memory/jemalloc/jemalloc.h ---- a/memory/jemalloc/jemalloc.h Sat Nov 22 20:22:22 2008 +0100 -+++ b/memory/jemalloc/jemalloc.h Mon Dec 01 16:53:06 2008 -0500 -@@ -45,14 +45,14 @@ - } jemalloc_stats_t; - - #ifndef MOZ_MEMORY_DARWIN --void *malloc(size_t size); --void *valloc(size_t size); --void *calloc(size_t num, size_t size); --void *realloc(void *ptr, size_t size); --void free(void *ptr); -+void *malloc(size_t size) __THROW __attribute_malloc__ __wur; -+void *valloc(size_t size) __THROW __attribute_malloc__ __wur; -+void *calloc(size_t num, size_t size) __THROW __attribute_malloc__ __wur; -+void *realloc(void *ptr, size_t size) __THROW __attribute_malloc__ __wur; -+void free(void *ptr) __THROW __attribute_malloc__ __wur; - #endif - --int posix_memalign(void **memptr, size_t alignment, size_t size); -+int posix_memalign(void **memptr, size_t alignment, size_t size) __THROW __attribute_malloc__ __wur; - void *memalign(size_t alignment, size_t size); - size_t malloc_usable_size(const void *ptr); - void jemalloc_stats(jemalloc_stats_t *stats); diff --git a/meta/packages/mozilla-headless/mozilla-headless/buildfixhack.patch b/meta/packages/mozilla-headless/mozilla-headless/buildfixhack.patch new file mode 100644 index 000000000..31fc40f28 --- /dev/null +++ b/meta/packages/mozilla-headless/mozilla-headless/buildfixhack.patch @@ -0,0 +1,14 @@ +diff -r ad8be5166ccd layout/generic/nsFrame.h +--- a/layout/generic/nsFrame.h Tue Nov 17 19:24:56 2009 +0000 ++++ b/layout/generic/nsFrame.h Thu Nov 19 12:33:38 2009 +0000 +@@ -151,7 +151,7 @@ + // Left undefined; nsFrame objects are never allocated from the heap. + void* operator new(size_t sz) CPP_THROW_NEW; + +-protected: ++public: + // Overridden to prevent the global delete from being called, since + // the memory came out of an arena instead of the heap. + // + + diff --git a/meta/packages/mozilla-headless/mozilla-headless-0.0+hg-1.0+a3e7c6626661/configurefix.patch b/meta/packages/mozilla-headless/mozilla-headless/configurefix-1a622cb7c384.patch index e02e4af2b..d31f91a42 100644 --- a/meta/packages/mozilla-headless/mozilla-headless-0.0+hg-1.0+a3e7c6626661/configurefix.patch +++ b/meta/packages/mozilla-headless/mozilla-headless/configurefix-1a622cb7c384.patch @@ -1,7 +1,7 @@ Index: offscreen/configure.in =================================================================== ---- offscreen.orig/configure.in 2009-04-16 22:51:48.000000000 +0100 -+++ offscreen/configure.in 2009-04-16 23:07:48.000000000 +0100 +--- offscreen.orig/configure.in 2009-06-12 14:15:55.000000000 +0100 ++++ offscreen/configure.in 2009-06-12 14:15:55.000000000 +0100 @@ -62,7 +62,6 @@ AC_PREREQ(2.13) @@ -18,7 +18,7 @@ Index: offscreen/configure.in dnl Set the version number of the libs included with mozilla dnl ======================================================== -@@ -136,6 +134,9 @@ +@@ -135,6 +133,9 @@ MSMANIFEST_TOOL= @@ -28,7 +28,7 @@ Index: offscreen/configure.in dnl Set various checks dnl ======================================================== MISSING_X= -@@ -281,7 +282,7 @@ +@@ -285,7 +286,7 @@ ;; esac @@ -37,7 +37,7 @@ Index: offscreen/configure.in echo "cross compiling from $host to $target" cross_compiling=yes -@@ -319,7 +320,7 @@ +@@ -323,7 +324,7 @@ AC_MSG_CHECKING([whether the host c compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works]) AC_TRY_COMPILE([], [return(0);], @@ -46,7 +46,7 @@ Index: offscreen/configure.in AC_MSG_ERROR([installation or configuration problem: host compiler $HOST_CC cannot create executables.]) ) CC="$HOST_CXX" -@@ -327,7 +328,7 @@ +@@ -331,7 +332,7 @@ AC_MSG_CHECKING([whether the host c++ compiler ($HOST_CXX $HOST_CXXFLAGS $HOST_LDFLAGS) works]) AC_TRY_COMPILE([], [return(0);], @@ -55,7 +55,7 @@ Index: offscreen/configure.in AC_MSG_ERROR([installation or configuration problem: host compiler $HOST_CXX cannot create executables.]) ) CC=$_SAVE_CC -@@ -348,7 +349,7 @@ +@@ -352,7 +353,7 @@ ;; esac @@ -64,7 +64,7 @@ Index: offscreen/configure.in unset ac_cv_prog_CC AC_PROG_CC AC_CHECK_PROGS(CXX, $CXX "${target_alias}-g++" "${target}-g++", :) -@@ -372,37 +373,6 @@ +@@ -376,37 +377,6 @@ AC_CHECK_PROGS(STRIP, $STRIP "${target_alias}-strip" "${target}-strip", :) AC_CHECK_PROGS(WINDRES, $WINDRES "${target_alias}-windres" "${target}-windres", :) AC_DEFINE(CROSS_COMPILE) @@ -102,7 +102,7 @@ Index: offscreen/configure.in GNU_AS= GNU_LD= -@@ -1569,6 +1539,7 @@ +@@ -1606,6 +1576,7 @@ ' dnl test that the macros actually work: @@ -110,7 +110,7 @@ Index: offscreen/configure.in AC_MSG_CHECKING(that static assertion macros used in autoconf tests work) AC_CACHE_VAL(ac_cv_static_assertion_macros_work, [AC_LANG_SAVE -@@ -2730,9 +2701,13 @@ +@@ -2767,9 +2738,13 @@ AC_LANG_C AC_HEADER_STDC AC_C_CONST @@ -124,7 +124,7 @@ Index: offscreen/configure.in AC_TYPE_SIZE_T AC_STRUCT_ST_BLKSIZE AC_MSG_CHECKING(for siginfo_t) -@@ -3115,19 +3090,9 @@ +@@ -3152,19 +3127,9 @@ dnl We don't want to link against libm or libpthread on Darwin since dnl they both are just symlinks to libSystem and explicitly linking dnl against libSystem causes issues when debugging (see bug 299601). @@ -145,7 +145,7 @@ Index: offscreen/configure.in _SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -D_GNU_SOURCE" -@@ -6931,18 +6896,13 @@ +@@ -7007,18 +6972,13 @@ # Demangle only for debug or trace-malloc builds MOZ_DEMANGLE_SYMBOLS= @@ -166,7 +166,7 @@ Index: offscreen/configure.in dnl ======================================================== dnl = -@@ -7454,10 +7414,7 @@ +@@ -7530,10 +7490,7 @@ dnl if no gtk/libIDL1 or gtk2/libIDL2 combination was found, fall back dnl to either libIDL1 or libIDL2. if test -z "$_LIBIDL_FOUND"; then @@ -177,7 +177,7 @@ Index: offscreen/configure.in fi dnl dnl If we don't have a libIDL config program & not cross-compiling, -@@ -7529,13 +7486,7 @@ +@@ -7605,13 +7562,7 @@ fi if test -z "$SKIP_PATH_CHECKS"; then @@ -191,7 +191,7 @@ Index: offscreen/configure.in fi if test -z "${GLIB_GMODULE_LIBS}" -a -n "${GLIB_CONFIG}"; then -@@ -8346,10 +8297,7 @@ +@@ -8457,10 +8408,7 @@ HAVE_WCRTOMB " @@ -203,7 +203,7 @@ Index: offscreen/configure.in ) # Save the defines header file before autoconf removes it. -@@ -8408,31 +8356,11 @@ +@@ -8519,31 +8467,11 @@ dnl To add new Makefiles, edit allmakefiles.sh. dnl allmakefiles.sh sets the variable, MAKEFILES. . ${srcdir}/allmakefiles.sh @@ -235,7 +235,7 @@ Index: offscreen/configure.in dnl Prevent the regeneration of cairo-features.h forcing rebuilds of gfx stuff if test "$CAIRO_FEATURES_H"; then if cmp -s $CAIRO_FEATURES_H "$CAIRO_FEATURES_H".orig; then -@@ -8458,14 +8386,14 @@ +@@ -8569,14 +8497,14 @@ HOST_LDFLAGS="$_SUBDIR_HOST_LDFLAGS" RC= @@ -253,7 +253,7 @@ Index: offscreen/configure.in if test -z "$MOZ_DEBUG"; then ac_configure_args="$ac_configure_args --disable-debug" fi -@@ -8481,8 +8409,7 @@ +@@ -8592,8 +8520,7 @@ if test -n "$USE_ARM_KUSER"; then ac_configure_args="$ac_configure_args --with-arm-kuser" fi @@ -263,7 +263,7 @@ Index: offscreen/configure.in fi if test -z "$MOZ_NATIVE_NSPR"; then -@@ -8499,7 +8426,6 @@ +@@ -8610,7 +8537,6 @@ # Run the SpiderMonkey 'configure' script. dist=$MOZ_BUILD_ROOT/dist @@ -271,9 +271,9 @@ Index: offscreen/configure.in ac_configure_args="$ac_configure_args --enable-threadsafe" if test -z "$MOZ_NATIVE_NSPR"; then ac_configure_args="$ac_configure_args --with-nspr-cflags='$NSPR_CFLAGS'" -@@ -8513,11 +8439,14 @@ - if test "$MOZ_MEMORY"; then - ac_configure_args="$ac_configure_args --enable-jemalloc" +@@ -8627,11 +8553,14 @@ + export MOZ_MEMORY_LDFLAGS + fi fi -AC_OUTPUT_SUBDIRS(js/src) -ac_configure_args="$_SUBDIR_CONFIG_ARGS" @@ -290,8 +290,8 @@ Index: offscreen/configure.in if cmp -s config/autoconf.mk config/autoconf.mk.orig; then Index: offscreen/js/src/configure.in =================================================================== ---- offscreen.orig/js/src/configure.in 2009-04-16 22:51:49.000000000 +0100 -+++ offscreen/js/src/configure.in 2009-04-16 23:06:42.000000000 +0100 +--- offscreen.orig/js/src/configure.in 2009-06-12 14:15:55.000000000 +0100 ++++ offscreen/js/src/configure.in 2009-06-12 14:15:55.000000000 +0100 @@ -62,7 +62,6 @@ AC_PREREQ(2.13) @@ -310,7 +310,7 @@ Index: offscreen/js/src/configure.in dnl Set the version number of the libs included with mozilla dnl ======================================================== NSPR_VERSION=4 -@@ -114,6 +116,8 @@ +@@ -113,6 +115,8 @@ MSMANIFEST_TOOL= @@ -319,7 +319,7 @@ Index: offscreen/js/src/configure.in dnl Set various checks dnl ======================================================== MISSING_X= -@@ -200,7 +204,7 @@ +@@ -198,7 +202,7 @@ if test "$COMPILE_ENVIRONMENT"; then @@ -328,7 +328,7 @@ Index: offscreen/js/src/configure.in echo "cross compiling from $host to $target" _SAVE_CC="$CC" -@@ -237,7 +241,7 @@ +@@ -235,7 +239,7 @@ AC_MSG_CHECKING([whether the host c compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works]) AC_TRY_COMPILE([], [return(0);], @@ -337,7 +337,7 @@ Index: offscreen/js/src/configure.in AC_MSG_ERROR([installation or configuration problem: host compiler $HOST_CC cannot create executables.]) ) CC="$HOST_CXX" -@@ -245,7 +249,7 @@ +@@ -243,7 +247,7 @@ AC_MSG_CHECKING([whether the host c++ compiler ($HOST_CXX $HOST_CXXFLAGS $HOST_LDFLAGS) works]) AC_TRY_COMPILE([], [return(0);], @@ -346,7 +346,7 @@ Index: offscreen/js/src/configure.in AC_MSG_ERROR([installation or configuration problem: host compiler $HOST_CXX cannot create executables.]) ) CC=$_SAVE_CC -@@ -266,7 +270,7 @@ +@@ -298,7 +302,7 @@ ;; esac @@ -355,7 +355,7 @@ Index: offscreen/js/src/configure.in unset ac_cv_prog_CC AC_PROG_CC AC_CHECK_PROGS(CXX, $CXX "${target_alias}-g++" "${target}-g++", :) -@@ -296,37 +300,6 @@ +@@ -328,37 +332,6 @@ dnl able to run ppc code in a translated environment, making a cross dnl compiler appear native. So we override that here. cross_compiling=yes @@ -393,7 +393,7 @@ Index: offscreen/js/src/configure.in GNU_AS= GNU_LD= -@@ -1435,6 +1408,8 @@ +@@ -1424,6 +1397,8 @@ fi # GNU_CC fi # COMPILE_ENVIRONMENT @@ -402,7 +402,7 @@ Index: offscreen/js/src/configure.in dnl ================================================================= dnl Set up and test static assertion macros used to avoid AC_TRY_RUN, dnl which is bad when cross compiling. -@@ -2565,9 +2540,13 @@ +@@ -2579,9 +2554,13 @@ AC_LANG_C AC_HEADER_STDC AC_C_CONST @@ -416,7 +416,7 @@ Index: offscreen/js/src/configure.in AC_TYPE_SIZE_T AC_STRUCT_ST_BLKSIZE AC_MSG_CHECKING(for siginfo_t) -@@ -2592,7 +2571,8 @@ +@@ -2606,7 +2585,8 @@ AC_CHECK_HEADER(stdint.h) if test "$ac_cv_header_stdint_h" = yes; then @@ -426,7 +426,7 @@ Index: offscreen/js/src/configure.in else dnl We'll figure them out for ourselves. List more likely types dnl earlier. If we ever really encounter a size for which none of -@@ -2990,10 +2970,7 @@ +@@ -3004,10 +2984,7 @@ ;; *) AC_CHECK_LIB(m, atan) @@ -438,7 +438,7 @@ Index: offscreen/js/src/configure.in ;; esac -@@ -3908,6 +3885,7 @@ +@@ -3903,6 +3880,7 @@ [ --with-nspr-libs=LIBS Pass LIBS to LD when linking code that uses NSPR. See --with-nspr-cflags for more details.], NSPR_LIBS=$withval) @@ -446,7 +446,7 @@ Index: offscreen/js/src/configure.in AC_SUBST(NSPR_CFLAGS) AC_SUBST(NSPR_LIBS) -@@ -4542,18 +4520,11 @@ +@@ -4512,18 +4490,11 @@ # Demangle only for debug or trace-malloc builds MOZ_DEMANGLE_SYMBOLS= @@ -465,7 +465,7 @@ Index: offscreen/js/src/configure.in dnl ======================================================== dnl = -@@ -5256,6 +5227,8 @@ +@@ -5231,6 +5202,8 @@ done AC_SUBST(LIBS_PATH) @@ -474,15 +474,15 @@ Index: offscreen/js/src/configure.in dnl ======================================================== dnl JavaScript shell dnl ======================================================== -@@ -5396,3 +5369,4 @@ +@@ -5371,3 +5344,4 @@ # 'js-config' in Makefile.in. AC_MSG_RESULT(invoking make to create js-config script) $MAKE js-config + Index: offscreen/nsprpub/configure.in =================================================================== ---- offscreen.orig/nsprpub/configure.in 2009-04-16 18:09:00.000000000 +0100 -+++ offscreen/nsprpub/configure.in 2009-04-16 23:06:42.000000000 +0100 +--- offscreen.orig/nsprpub/configure.in 2009-06-12 14:15:55.000000000 +0100 ++++ offscreen/nsprpub/configure.in 2009-06-12 14:15:55.000000000 +0100 @@ -42,7 +42,6 @@ AC_PREREQ(2.12) AC_INIT(config/libc_r.h) @@ -491,7 +491,7 @@ Index: offscreen/nsprpub/configure.in AC_CANONICAL_SYSTEM dnl ======================================================== -@@ -400,7 +399,7 @@ +@@ -396,7 +395,7 @@ dnl ======================================================== dnl Checks for compilers. dnl ======================================================== @@ -500,7 +500,7 @@ Index: offscreen/nsprpub/configure.in echo "cross compiling from $host to $target" cross_compiling=yes -@@ -427,7 +426,7 @@ +@@ -423,7 +422,7 @@ AC_MSG_CHECKING([whether the $host compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works]) AC_TRY_COMPILE([], [return(0);], @@ -509,7 +509,7 @@ Index: offscreen/nsprpub/configure.in AC_MSG_ERROR([installation or configuration problem: $host compiler $HOST_CC cannot create executables.]) ) CC=$_SAVE_CC -@@ -448,7 +447,7 @@ +@@ -444,7 +443,7 @@ ;; esac @@ -518,7 +518,7 @@ Index: offscreen/nsprpub/configure.in unset ac_cv_prog_CC AC_PROG_CC if test -n "$USE_CPLUS"; then -@@ -474,30 +473,6 @@ +@@ -470,30 +469,6 @@ AC_CHECK_PROGS(STRIP, $STRIP "${target_alias}-strip" "${target}-strip", echo) AC_CHECK_PROGS(WINDRES, $WINDRES "${target_alias}-windres" "${target}-windres", echo) @@ -549,7 +549,7 @@ Index: offscreen/nsprpub/configure.in if test "$GCC" = "yes"; then GNU_CC=1 fi -@@ -518,11 +493,8 @@ +@@ -514,11 +489,8 @@ ;; esac @@ -562,7 +562,7 @@ Index: offscreen/nsprpub/configure.in dnl ======================================================== dnl Check for gcc -pipe support -@@ -2249,10 +2221,7 @@ +@@ -2283,10 +2255,7 @@ *-darwin*|*-beos*) ;; *) @@ -574,7 +574,7 @@ Index: offscreen/nsprpub/configure.in esac -@@ -2869,6 +2838,8 @@ +@@ -2904,6 +2873,8 @@ dnl pr/tests/w16gui/Makefile dnl tools/Makefile @@ -583,29 +583,17 @@ Index: offscreen/nsprpub/configure.in if test -z "$USE_PTHREADS" && test -z "$USE_BTHREADS"; then MAKEFILES="$MAKEFILES pr/src/threads/combined/Makefile" elif test -n "$USE_PTHREADS"; then -@@ -2884,3 +2855,5 @@ +@@ -2919,3 +2890,5 @@ echo $MAKEFILES > unallmakefiles AC_OUTPUT([$MAKEFILES], [chmod +x config/nspr-config]) + + -Index: offscreen/toolkit/toolkit-makefiles.sh -=================================================================== ---- offscreen.orig/toolkit/toolkit-makefiles.sh 2009-04-16 22:51:50.000000000 +0100 -+++ offscreen/toolkit/toolkit-makefiles.sh 2009-04-16 23:06:42.000000000 +0100 -@@ -628,7 +628,6 @@ - toolkit/crashreporter/client/Makefile - toolkit/crashreporter/google-breakpad/src/client/Makefile - toolkit/crashreporter/google-breakpad/src/client/mac/handler/Makefile -- toolkit/crashreporter/google-breakpad/src/client/windows/Makefile - toolkit/crashreporter/google-breakpad/src/client/windows/handler/Makefile - toolkit/crashreporter/google-breakpad/src/client/windows/sender/Makefile - toolkit/crashreporter/google-breakpad/src/common/Makefile Index: offscreen/js/src/Makefile.in =================================================================== ---- offscreen.orig/js/src/Makefile.in 2009-04-16 18:07:56.000000000 +0100 -+++ offscreen/js/src/Makefile.in 2009-04-16 23:06:42.000000000 +0100 -@@ -507,20 +507,8 @@ +--- offscreen.orig/js/src/Makefile.in 2009-06-12 14:15:55.000000000 +0100 ++++ offscreen/js/src/Makefile.in 2009-06-12 14:15:55.000000000 +0100 +@@ -514,20 +514,8 @@ export:: jsautocfg.h @@ -626,7 +614,7 @@ Index: offscreen/js/src/Makefile.in # jscpucfg is a strange target # Needs to be built with the host compiler but needs to include -@@ -550,7 +538,7 @@ +@@ -557,7 +545,7 @@ echo no need to build jscpucfg $< else jscpucfg$(HOST_BIN_SUFFIX): jscpucfg.cpp Makefile.in @@ -637,8 +625,8 @@ Index: offscreen/js/src/Makefile.in Index: offscreen/js/src/xpconnect/loader/mozJSComponentLoader.cpp =================================================================== ---- offscreen.orig/js/src/xpconnect/loader/mozJSComponentLoader.cpp 2009-04-16 18:08:00.000000000 +0100 -+++ offscreen/js/src/xpconnect/loader/mozJSComponentLoader.cpp 2009-04-16 23:06:42.000000000 +0100 +--- offscreen.orig/js/src/xpconnect/loader/mozJSComponentLoader.cpp 2009-06-12 14:15:55.000000000 +0100 ++++ offscreen/js/src/xpconnect/loader/mozJSComponentLoader.cpp 2009-06-12 14:15:55.000000000 +0100 @@ -47,6 +47,8 @@ #include <stdarg.h> @@ -650,8 +638,8 @@ Index: offscreen/js/src/xpconnect/loader/mozJSComponentLoader.cpp #include "nsCOMPtr.h" Index: offscreen/js/src/xpconnect/loader/mozJSSubScriptLoader.cpp =================================================================== ---- offscreen.orig/js/src/xpconnect/loader/mozJSSubScriptLoader.cpp 2009-04-16 18:08:00.000000000 +0100 -+++ offscreen/js/src/xpconnect/loader/mozJSSubScriptLoader.cpp 2009-04-16 23:06:42.000000000 +0100 +--- offscreen.orig/js/src/xpconnect/loader/mozJSSubScriptLoader.cpp 2009-06-12 14:15:55.000000000 +0100 ++++ offscreen/js/src/xpconnect/loader/mozJSSubScriptLoader.cpp 2009-06-12 14:15:55.000000000 +0100 @@ -39,6 +39,8 @@ * * ***** END LICENSE BLOCK ***** */ @@ -663,8 +651,8 @@ Index: offscreen/js/src/xpconnect/loader/mozJSSubScriptLoader.cpp #include "mozJSSubScriptLoader.h" Index: offscreen/modules/lcms/include/icc34.h =================================================================== ---- offscreen.orig/modules/lcms/include/icc34.h 2009-04-16 18:08:47.000000000 +0100 -+++ offscreen/modules/lcms/include/icc34.h 2009-04-16 23:06:42.000000000 +0100 +--- offscreen.orig/modules/lcms/include/icc34.h 2009-06-12 14:15:55.000000000 +0100 ++++ offscreen/modules/lcms/include/icc34.h 2009-06-12 14:15:55.000000000 +0100 @@ -144,7 +144,7 @@ */ @@ -676,9 +664,9 @@ Index: offscreen/modules/lcms/include/icc34.h Added the stupid check for autoconf by Marti Maria. Index: offscreen/toolkit/mozapps/update/src/updater/Makefile.in =================================================================== ---- offscreen.orig/toolkit/mozapps/update/src/updater/Makefile.in 2009-04-16 18:09:35.000000000 +0100 -+++ offscreen/toolkit/mozapps/update/src/updater/Makefile.in 2009-04-16 23:06:42.000000000 +0100 -@@ -59,7 +59,7 @@ +--- offscreen.orig/toolkit/mozapps/update/src/updater/Makefile.in 2009-06-12 14:15:55.000000000 +0100 ++++ offscreen/toolkit/mozapps/update/src/updater/Makefile.in 2009-06-12 14:15:55.000000000 +0100 +@@ -60,7 +60,7 @@ LIBS += \ $(DEPTH)/modules/libmar/src/$(LIB_PREFIX)mar.$(LIB_SUFFIX) \ @@ -689,8 +677,8 @@ Index: offscreen/toolkit/mozapps/update/src/updater/Makefile.in ifeq ($(OS_ARCH),WINNT) Index: offscreen/xpcom/sample/program/Makefile.in =================================================================== ---- offscreen.orig/xpcom/sample/program/Makefile.in 2009-04-16 18:09:47.000000000 +0100 -+++ offscreen/xpcom/sample/program/Makefile.in 2009-04-16 23:06:42.000000000 +0100 +--- offscreen.orig/xpcom/sample/program/Makefile.in 2009-06-12 14:15:55.000000000 +0100 ++++ offscreen/xpcom/sample/program/Makefile.in 2009-06-12 14:15:55.000000000 +0100 @@ -57,7 +57,7 @@ # that the application be linked against the XPCOM dynamic library or the NSPR # dynamic libraries. @@ -702,8 +690,8 @@ Index: offscreen/xpcom/sample/program/Makefile.in # Need to link with CoreFoundation on Mac Index: offscreen/xpcom/tools/registry/Makefile.in =================================================================== ---- offscreen.orig/xpcom/tools/registry/Makefile.in 2009-04-16 18:09:48.000000000 +0100 -+++ offscreen/xpcom/tools/registry/Makefile.in 2009-04-16 23:06:42.000000000 +0100 +--- offscreen.orig/xpcom/tools/registry/Makefile.in 2009-06-12 14:15:55.000000000 +0100 ++++ offscreen/xpcom/tools/registry/Makefile.in 2009-06-12 14:15:55.000000000 +0100 @@ -54,7 +54,7 @@ SIMPLE_PROGRAMS = $(CPPSRCS:.cpp=$(BIN_SUFFIX)) @@ -715,9 +703,9 @@ Index: offscreen/xpcom/tools/registry/Makefile.in # Need to link with CoreFoundation on Mac Index: offscreen/xulrunner/app/Makefile.in =================================================================== ---- offscreen.orig/xulrunner/app/Makefile.in 2009-04-16 18:09:50.000000000 +0100 -+++ offscreen/xulrunner/app/Makefile.in 2009-04-16 23:06:42.000000000 +0100 -@@ -180,7 +180,7 @@ +--- offscreen.orig/xulrunner/app/Makefile.in 2009-06-12 14:15:55.000000000 +0100 ++++ offscreen/xulrunner/app/Makefile.in 2009-06-12 14:15:55.000000000 +0100 +@@ -184,7 +184,7 @@ RCFLAGS += -DXULRUNNER_ICO=\"$(DIST)/branding/xulrunner.ico\" -DDOCUMENT_ICO=\"$(DIST)/branding/document.ico\" endif @@ -728,8 +716,8 @@ Index: offscreen/xulrunner/app/Makefile.in Index: offscreen/xulrunner/stub/Makefile.in =================================================================== ---- offscreen.orig/xulrunner/stub/Makefile.in 2009-04-16 18:09:50.000000000 +0100 -+++ offscreen/xulrunner/stub/Makefile.in 2009-04-16 23:06:42.000000000 +0100 +--- offscreen.orig/xulrunner/stub/Makefile.in 2009-06-12 14:15:55.000000000 +0100 ++++ offscreen/xulrunner/stub/Makefile.in 2009-06-12 14:15:55.000000000 +0100 @@ -101,7 +101,7 @@ endif endif @@ -741,8 +729,8 @@ Index: offscreen/xulrunner/stub/Makefile.in Index: offscreen/modules/plugin/test/testplugin/Makefile.in =================================================================== ---- offscreen.orig/modules/plugin/test/testplugin/Makefile.in 2009-04-16 18:08:56.000000000 +0100 -+++ offscreen/modules/plugin/test/testplugin/Makefile.in 2009-04-16 23:06:42.000000000 +0100 +--- offscreen.orig/modules/plugin/test/testplugin/Makefile.in 2009-06-12 14:15:55.000000000 +0100 ++++ offscreen/modules/plugin/test/testplugin/Makefile.in 2009-06-12 14:15:55.000000000 +0100 @@ -63,9 +63,7 @@ CMMSRCS = nptest_macosx.mm endif @@ -751,25 +739,26 @@ Index: offscreen/modules/plugin/test/testplugin/Makefile.in CPPSRCS += nptest_gtk2.cpp -endif - ifeq ($(MOZ_WIDGET_TOOLKIT),qt) - CPPSRCS += nptest_qt.cpp -Index: offscreen/xulrunner/installer/libxul-unstable.pc.in -=================================================================== ---- offscreen.orig/xulrunner/installer/libxul-unstable.pc.in 2009-04-16 18:09:50.000000000 +0100 -+++ offscreen/xulrunner/installer/libxul-unstable.pc.in 2009-04-16 23:06:42.000000000 +0100 -@@ -8,5 +8,5 @@ - Description: The Mozilla Runtime and Embedding Engine (unstable API) - Version: %MOZILLA_VERSION% - Requires: %NSPR_NAME% >= %NSPR_VERSION% --Libs: -L${sdkdir}/lib -lxpcomglue_s -lxul -lxpcom -+Libs: -L${sdkdir}/lib -lxpcomglue_s -lxul -lxpcom -lsmime3 -lnss3 -lssl3 -lnssutil3 -L${sdkdir}/../xulrunner-1.9.2a1pre - Cflags: -I${includedir}/${includetype} %WCHAR_CFLAGS% + ifeq ($(MOZ_WIDGET_TOOLKIT),os2) + CPPSRCS += nptest_os2.cpp Index: offscreen/js/src/aclocal.m4 =================================================================== ---- offscreen.orig/js/src/aclocal.m4 2009-04-16 18:07:56.000000000 +0100 -+++ offscreen/js/src/aclocal.m4 2009-04-16 23:06:42.000000000 +0100 +--- offscreen.orig/js/src/aclocal.m4 2009-06-12 14:15:55.000000000 +0100 ++++ offscreen/js/src/aclocal.m4 2009-06-12 14:15:55.000000000 +0100 @@ -9,4 +9,3 @@ builtin(include, build/autoconf/moznbytetype.m4)dnl builtin(include, build/autoconf/mozprog.m4)dnl -MOZ_PROG_CHECKMSYS() +Index: offscreen/toolkit/toolkit-makefiles.sh +=================================================================== +--- offscreen.orig/toolkit/toolkit-makefiles.sh 2009-06-12 14:19:59.000000000 +0100 ++++ offscreen/toolkit/toolkit-makefiles.sh 2009-06-12 14:20:09.000000000 +0100 +@@ -342,7 +342,6 @@ + modules/plugin/sdk/samples/Makefile + modules/plugin/sdk/samples/common/Makefile + modules/plugin/sdk/samples/basic/windows/Makefile +- modules/plugin/sdk/samples/basic/unix/Makefile + modules/plugin/sdk/samples/winless/windows/Makefile + " + diff --git a/meta/packages/mozilla-headless/mozilla-headless/configurefix.patch b/meta/packages/mozilla-headless/mozilla-headless/configurefix.patch index d31f91a42..7ee1211f1 100644 --- a/meta/packages/mozilla-headless/mozilla-headless/configurefix.patch +++ b/meta/packages/mozilla-headless/mozilla-headless/configurefix.patch @@ -1,8 +1,8 @@ Index: offscreen/configure.in =================================================================== ---- offscreen.orig/configure.in 2009-06-12 14:15:55.000000000 +0100 -+++ offscreen/configure.in 2009-06-12 14:15:55.000000000 +0100 -@@ -62,7 +62,6 @@ +--- offscreen.orig/configure.in 2009-12-09 13:10:12.000000000 +0000 ++++ offscreen/configure.in 2009-12-09 13:38:51.000000000 +0000 +@@ -64,7 +64,6 @@ AC_PREREQ(2.13) AC_INIT(config/config.mk) @@ -10,7 +10,7 @@ Index: offscreen/configure.in AC_CANONICAL_SYSTEM TARGET_CPU="${target_cpu}" TARGET_VENDOR="${target_vendor}" -@@ -103,7 +102,6 @@ +@@ -106,7 +105,6 @@ _SUBDIR_HOST_CFLAGS="$HOST_CFLAGS" _SUBDIR_HOST_CXXFLAGS="$HOST_CXXFLAGS" _SUBDIR_HOST_LDFLAGS="$HOST_LDFLAGS" @@ -18,7 +18,7 @@ Index: offscreen/configure.in dnl Set the version number of the libs included with mozilla dnl ======================================================== -@@ -135,6 +133,9 @@ +@@ -139,6 +137,9 @@ MSMANIFEST_TOOL= @@ -28,7 +28,7 @@ Index: offscreen/configure.in dnl Set various checks dnl ======================================================== MISSING_X= -@@ -285,7 +286,7 @@ +@@ -308,7 +309,7 @@ ;; esac @@ -37,7 +37,7 @@ Index: offscreen/configure.in echo "cross compiling from $host to $target" cross_compiling=yes -@@ -323,7 +324,7 @@ +@@ -346,7 +347,7 @@ AC_MSG_CHECKING([whether the host c compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works]) AC_TRY_COMPILE([], [return(0);], @@ -46,7 +46,7 @@ Index: offscreen/configure.in AC_MSG_ERROR([installation or configuration problem: host compiler $HOST_CC cannot create executables.]) ) CC="$HOST_CXX" -@@ -331,7 +332,7 @@ +@@ -354,7 +355,7 @@ AC_MSG_CHECKING([whether the host c++ compiler ($HOST_CXX $HOST_CXXFLAGS $HOST_LDFLAGS) works]) AC_TRY_COMPILE([], [return(0);], @@ -55,7 +55,7 @@ Index: offscreen/configure.in AC_MSG_ERROR([installation or configuration problem: host compiler $HOST_CXX cannot create executables.]) ) CC=$_SAVE_CC -@@ -352,7 +353,7 @@ +@@ -375,7 +376,7 @@ ;; esac @@ -64,7 +64,7 @@ Index: offscreen/configure.in unset ac_cv_prog_CC AC_PROG_CC AC_CHECK_PROGS(CXX, $CXX "${target_alias}-g++" "${target}-g++", :) -@@ -376,37 +377,6 @@ +@@ -399,37 +400,6 @@ AC_CHECK_PROGS(STRIP, $STRIP "${target_alias}-strip" "${target}-strip", :) AC_CHECK_PROGS(WINDRES, $WINDRES "${target_alias}-windres" "${target}-windres", :) AC_DEFINE(CROSS_COMPILE) @@ -102,7 +102,7 @@ Index: offscreen/configure.in GNU_AS= GNU_LD= -@@ -1606,6 +1576,7 @@ +@@ -1586,6 +1556,7 @@ ' dnl test that the macros actually work: @@ -110,7 +110,7 @@ Index: offscreen/configure.in AC_MSG_CHECKING(that static assertion macros used in autoconf tests work) AC_CACHE_VAL(ac_cv_static_assertion_macros_work, [AC_LANG_SAVE -@@ -2767,9 +2738,13 @@ +@@ -2770,9 +2741,13 @@ AC_LANG_C AC_HEADER_STDC AC_C_CONST @@ -124,7 +124,7 @@ Index: offscreen/configure.in AC_TYPE_SIZE_T AC_STRUCT_ST_BLKSIZE AC_MSG_CHECKING(for siginfo_t) -@@ -3152,19 +3127,9 @@ +@@ -3174,21 +3149,9 @@ dnl We don't want to link against libm or libpthread on Darwin since dnl they both are just symlinks to libSystem and explicitly linking dnl against libSystem causes issues when debugging (see bug 299601). @@ -133,6 +133,8 @@ Index: offscreen/configure.in - ;; -*-beos*) - ;; +-*-os2*) +- ;; -*) AC_CHECK_LIB(m, atan) AC_CHECK_LIB(dl, dlopen, @@ -145,7 +147,7 @@ Index: offscreen/configure.in _SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -D_GNU_SOURCE" -@@ -7007,18 +6972,13 @@ +@@ -6889,18 +6852,13 @@ # Demangle only for debug or trace-malloc builds MOZ_DEMANGLE_SYMBOLS= @@ -166,7 +168,7 @@ Index: offscreen/configure.in dnl ======================================================== dnl = -@@ -7530,10 +7490,7 @@ +@@ -7420,10 +7378,7 @@ dnl if no gtk/libIDL1 or gtk2/libIDL2 combination was found, fall back dnl to either libIDL1 or libIDL2. if test -z "$_LIBIDL_FOUND"; then @@ -177,7 +179,7 @@ Index: offscreen/configure.in fi dnl dnl If we don't have a libIDL config program & not cross-compiling, -@@ -7605,13 +7562,7 @@ +@@ -7495,13 +7450,7 @@ fi if test -z "$SKIP_PATH_CHECKS"; then @@ -191,7 +193,7 @@ Index: offscreen/configure.in fi if test -z "${GLIB_GMODULE_LIBS}" -a -n "${GLIB_CONFIG}"; then -@@ -8457,10 +8408,7 @@ +@@ -8278,10 +8227,7 @@ HAVE_WCRTOMB " @@ -203,7 +205,7 @@ Index: offscreen/configure.in ) # Save the defines header file before autoconf removes it. -@@ -8519,31 +8467,11 @@ +@@ -8340,31 +8286,11 @@ dnl To add new Makefiles, edit allmakefiles.sh. dnl allmakefiles.sh sets the variable, MAKEFILES. . ${srcdir}/allmakefiles.sh @@ -235,7 +237,7 @@ Index: offscreen/configure.in dnl Prevent the regeneration of cairo-features.h forcing rebuilds of gfx stuff if test "$CAIRO_FEATURES_H"; then if cmp -s $CAIRO_FEATURES_H "$CAIRO_FEATURES_H".orig; then -@@ -8569,14 +8497,14 @@ +@@ -8390,14 +8316,14 @@ HOST_LDFLAGS="$_SUBDIR_HOST_LDFLAGS" RC= @@ -253,7 +255,7 @@ Index: offscreen/configure.in if test -z "$MOZ_DEBUG"; then ac_configure_args="$ac_configure_args --disable-debug" fi -@@ -8592,8 +8520,7 @@ +@@ -8413,8 +8339,7 @@ if test -n "$USE_ARM_KUSER"; then ac_configure_args="$ac_configure_args --with-arm-kuser" fi @@ -263,7 +265,7 @@ Index: offscreen/configure.in fi if test -z "$MOZ_NATIVE_NSPR"; then -@@ -8610,7 +8537,6 @@ +@@ -8431,7 +8356,6 @@ # Run the SpiderMonkey 'configure' script. dist=$MOZ_BUILD_ROOT/dist @@ -271,7 +273,7 @@ Index: offscreen/configure.in ac_configure_args="$ac_configure_args --enable-threadsafe" if test -z "$MOZ_NATIVE_NSPR"; then ac_configure_args="$ac_configure_args --with-nspr-cflags='$NSPR_CFLAGS'" -@@ -8627,11 +8553,14 @@ +@@ -8448,8 +8372,7 @@ export MOZ_MEMORY_LDFLAGS fi fi @@ -279,19 +281,38 @@ Index: offscreen/configure.in -ac_configure_args="$_SUBDIR_CONFIG_ARGS" +AC_CONFIG_SUBDIRS(js/src) - fi # COMPILE_ENVIRONMENT && !LIBXUL_SDK_DIR + # Build jsctypes on the platforms we can. + if test "$BUILD_CTYPES"; then +@@ -8465,20 +8388,14 @@ + if test -n "$CROSS_COMPILE"; then + ac_configure_args="$ac_configure_args --build=$build --host=$target" + fi +- if test "$SOLARIS_SUNPRO_CC"; then +- # Always use gcc for libffi on Solaris +- old_cache_file=$cache_file +- cache_file=js/ctypes/libffi/config.cache +- ac_configure_args="$ac_configure_args CC=gcc" +- AC_OUTPUT_SUBDIRS(js/ctypes/libffi) +- cache_file=$old_cache_file +- else +- AC_OUTPUT_SUBDIRS(js/ctypes/libffi) +- fi +- ac_configure_args="$_SUBDIR_CONFIG_ARGS" ++ AC_CONFIG_SUBDIRS(js/ctypes/libffi) + fi + fi +m4_pattern_allow(AS_BIN) + +AC_OUTPUT($MAKEFILES) + + fi # COMPILE_ENVIRONMENT && !LIBXUL_SDK_DIR + dnl Prevent the regeneration of autoconf.mk forcing rebuilds of the world - dnl Needs to be at the end to respect possible changes from NSPR configure - if cmp -s config/autoconf.mk config/autoconf.mk.orig; then Index: offscreen/js/src/configure.in =================================================================== ---- offscreen.orig/js/src/configure.in 2009-06-12 14:15:55.000000000 +0100 -+++ offscreen/js/src/configure.in 2009-06-12 14:15:55.000000000 +0100 +--- offscreen.orig/js/src/configure.in 2009-12-09 13:10:12.000000000 +0000 ++++ offscreen/js/src/configure.in 2009-12-09 13:38:51.000000000 +0000 @@ -62,7 +62,6 @@ AC_PREREQ(2.13) @@ -319,7 +340,7 @@ Index: offscreen/js/src/configure.in dnl Set various checks dnl ======================================================== MISSING_X= -@@ -198,7 +202,7 @@ +@@ -212,7 +216,7 @@ if test "$COMPILE_ENVIRONMENT"; then @@ -328,7 +349,7 @@ Index: offscreen/js/src/configure.in echo "cross compiling from $host to $target" _SAVE_CC="$CC" -@@ -235,7 +239,7 @@ +@@ -249,7 +253,7 @@ AC_MSG_CHECKING([whether the host c compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works]) AC_TRY_COMPILE([], [return(0);], @@ -337,7 +358,7 @@ Index: offscreen/js/src/configure.in AC_MSG_ERROR([installation or configuration problem: host compiler $HOST_CC cannot create executables.]) ) CC="$HOST_CXX" -@@ -243,7 +247,7 @@ +@@ -257,7 +261,7 @@ AC_MSG_CHECKING([whether the host c++ compiler ($HOST_CXX $HOST_CXXFLAGS $HOST_LDFLAGS) works]) AC_TRY_COMPILE([], [return(0);], @@ -346,7 +367,7 @@ Index: offscreen/js/src/configure.in AC_MSG_ERROR([installation or configuration problem: host compiler $HOST_CXX cannot create executables.]) ) CC=$_SAVE_CC -@@ -298,7 +302,7 @@ +@@ -312,7 +316,7 @@ ;; esac @@ -355,7 +376,7 @@ Index: offscreen/js/src/configure.in unset ac_cv_prog_CC AC_PROG_CC AC_CHECK_PROGS(CXX, $CXX "${target_alias}-g++" "${target}-g++", :) -@@ -328,37 +332,6 @@ +@@ -342,37 +346,6 @@ dnl able to run ppc code in a translated environment, making a cross dnl compiler appear native. So we override that here. cross_compiling=yes @@ -393,7 +414,7 @@ Index: offscreen/js/src/configure.in GNU_AS= GNU_LD= -@@ -1424,6 +1397,8 @@ +@@ -1370,6 +1343,8 @@ fi # GNU_CC fi # COMPILE_ENVIRONMENT @@ -402,7 +423,7 @@ Index: offscreen/js/src/configure.in dnl ================================================================= dnl Set up and test static assertion macros used to avoid AC_TRY_RUN, dnl which is bad when cross compiling. -@@ -2579,9 +2554,13 @@ +@@ -2557,9 +2532,13 @@ AC_LANG_C AC_HEADER_STDC AC_C_CONST @@ -416,7 +437,7 @@ Index: offscreen/js/src/configure.in AC_TYPE_SIZE_T AC_STRUCT_ST_BLKSIZE AC_MSG_CHECKING(for siginfo_t) -@@ -2606,7 +2585,8 @@ +@@ -2584,7 +2563,8 @@ AC_CHECK_HEADER(stdint.h) if test "$ac_cv_header_stdint_h" = yes; then @@ -426,7 +447,7 @@ Index: offscreen/js/src/configure.in else dnl We'll figure them out for ourselves. List more likely types dnl earlier. If we ever really encounter a size for which none of -@@ -3004,10 +2984,7 @@ +@@ -2938,10 +2918,7 @@ ;; *) AC_CHECK_LIB(m, atan) @@ -438,7 +459,7 @@ Index: offscreen/js/src/configure.in ;; esac -@@ -3903,6 +3880,7 @@ +@@ -3847,6 +3824,7 @@ [ --with-nspr-libs=LIBS Pass LIBS to LD when linking code that uses NSPR. See --with-nspr-cflags for more details.], NSPR_LIBS=$withval) @@ -446,7 +467,7 @@ Index: offscreen/js/src/configure.in AC_SUBST(NSPR_CFLAGS) AC_SUBST(NSPR_LIBS) -@@ -4512,18 +4490,11 @@ +@@ -4386,18 +4364,11 @@ # Demangle only for debug or trace-malloc builds MOZ_DEMANGLE_SYMBOLS= @@ -465,24 +486,24 @@ Index: offscreen/js/src/configure.in dnl ======================================================== dnl = -@@ -5231,6 +5202,8 @@ - done - AC_SUBST(LIBS_PATH) +@@ -5097,6 +5068,8 @@ + + AC_HAVE_FUNCS(setlocale) + + dnl ======================================================== - dnl JavaScript shell + dnl Use cygwin wrapper for win32 builds, except MSYS/MinGW dnl ======================================================== -@@ -5371,3 +5344,4 @@ +@@ -5234,3 +5207,4 @@ # 'js-config' in Makefile.in. AC_MSG_RESULT(invoking make to create js-config script) $MAKE js-config + Index: offscreen/nsprpub/configure.in =================================================================== ---- offscreen.orig/nsprpub/configure.in 2009-06-12 14:15:55.000000000 +0100 -+++ offscreen/nsprpub/configure.in 2009-06-12 14:15:55.000000000 +0100 +--- offscreen.orig/nsprpub/configure.in 2009-12-09 13:10:12.000000000 +0000 ++++ offscreen/nsprpub/configure.in 2009-12-09 13:10:12.000000000 +0000 @@ -42,7 +42,6 @@ AC_PREREQ(2.12) AC_INIT(config/libc_r.h) @@ -562,8 +583,8 @@ Index: offscreen/nsprpub/configure.in dnl ======================================================== dnl Check for gcc -pipe support -@@ -2283,10 +2255,7 @@ - *-darwin*|*-beos*) +@@ -2286,10 +2258,7 @@ + *-darwin*|*-beos*|*-os2*) ;; *) - AC_CHECK_LIB(dl, dlopen, @@ -574,7 +595,7 @@ Index: offscreen/nsprpub/configure.in esac -@@ -2904,6 +2873,8 @@ +@@ -2907,6 +2876,8 @@ dnl pr/tests/w16gui/Makefile dnl tools/Makefile @@ -583,7 +604,7 @@ Index: offscreen/nsprpub/configure.in if test -z "$USE_PTHREADS" && test -z "$USE_BTHREADS"; then MAKEFILES="$MAKEFILES pr/src/threads/combined/Makefile" elif test -n "$USE_PTHREADS"; then -@@ -2919,3 +2890,5 @@ +@@ -2922,3 +2893,5 @@ echo $MAKEFILES > unallmakefiles AC_OUTPUT([$MAKEFILES], [chmod +x config/nspr-config]) @@ -591,9 +612,9 @@ Index: offscreen/nsprpub/configure.in + Index: offscreen/js/src/Makefile.in =================================================================== ---- offscreen.orig/js/src/Makefile.in 2009-06-12 14:15:55.000000000 +0100 -+++ offscreen/js/src/Makefile.in 2009-06-12 14:15:55.000000000 +0100 -@@ -514,20 +514,8 @@ +--- offscreen.orig/js/src/Makefile.in 2009-12-09 13:10:12.000000000 +0000 ++++ offscreen/js/src/Makefile.in 2009-12-09 13:10:12.000000000 +0000 +@@ -513,20 +513,8 @@ export:: jsautocfg.h @@ -614,7 +635,7 @@ Index: offscreen/js/src/Makefile.in # jscpucfg is a strange target # Needs to be built with the host compiler but needs to include -@@ -557,7 +545,7 @@ +@@ -556,7 +544,7 @@ echo no need to build jscpucfg $< else jscpucfg$(HOST_BIN_SUFFIX): jscpucfg.cpp Makefile.in @@ -625,8 +646,8 @@ Index: offscreen/js/src/Makefile.in Index: offscreen/js/src/xpconnect/loader/mozJSComponentLoader.cpp =================================================================== ---- offscreen.orig/js/src/xpconnect/loader/mozJSComponentLoader.cpp 2009-06-12 14:15:55.000000000 +0100 -+++ offscreen/js/src/xpconnect/loader/mozJSComponentLoader.cpp 2009-06-12 14:15:55.000000000 +0100 +--- offscreen.orig/js/src/xpconnect/loader/mozJSComponentLoader.cpp 2009-12-09 13:10:12.000000000 +0000 ++++ offscreen/js/src/xpconnect/loader/mozJSComponentLoader.cpp 2009-12-09 13:10:12.000000000 +0000 @@ -47,6 +47,8 @@ #include <stdarg.h> @@ -638,8 +659,8 @@ Index: offscreen/js/src/xpconnect/loader/mozJSComponentLoader.cpp #include "nsCOMPtr.h" Index: offscreen/js/src/xpconnect/loader/mozJSSubScriptLoader.cpp =================================================================== ---- offscreen.orig/js/src/xpconnect/loader/mozJSSubScriptLoader.cpp 2009-06-12 14:15:55.000000000 +0100 -+++ offscreen/js/src/xpconnect/loader/mozJSSubScriptLoader.cpp 2009-06-12 14:15:55.000000000 +0100 +--- offscreen.orig/js/src/xpconnect/loader/mozJSSubScriptLoader.cpp 2009-12-09 13:10:12.000000000 +0000 ++++ offscreen/js/src/xpconnect/loader/mozJSSubScriptLoader.cpp 2009-12-09 13:10:12.000000000 +0000 @@ -39,6 +39,8 @@ * * ***** END LICENSE BLOCK ***** */ @@ -649,24 +670,11 @@ Index: offscreen/js/src/xpconnect/loader/mozJSSubScriptLoader.cpp #if !defined(XPCONNECT_STANDALONE) && !defined(NO_SUBSCRIPT_LOADER) #include "mozJSSubScriptLoader.h" -Index: offscreen/modules/lcms/include/icc34.h -=================================================================== ---- offscreen.orig/modules/lcms/include/icc34.h 2009-06-12 14:15:55.000000000 +0100 -+++ offscreen/modules/lcms/include/icc34.h 2009-06-12 14:15:55.000000000 +0100 -@@ -144,7 +144,7 @@ - */ - - --#ifdef PACKAGE_NAME -+#if 0 - /* - June 9, 2003, Adapted for use with configure by Bob Friesenhahn - Added the stupid check for autoconf by Marti Maria. Index: offscreen/toolkit/mozapps/update/src/updater/Makefile.in =================================================================== ---- offscreen.orig/toolkit/mozapps/update/src/updater/Makefile.in 2009-06-12 14:15:55.000000000 +0100 -+++ offscreen/toolkit/mozapps/update/src/updater/Makefile.in 2009-06-12 14:15:55.000000000 +0100 -@@ -60,7 +60,7 @@ +--- offscreen.orig/toolkit/mozapps/update/src/updater/Makefile.in 2009-12-09 13:10:12.000000000 +0000 ++++ offscreen/toolkit/mozapps/update/src/updater/Makefile.in 2009-12-09 13:10:12.000000000 +0000 +@@ -56,7 +56,7 @@ LIBS += \ $(DEPTH)/modules/libmar/src/$(LIB_PREFIX)mar.$(LIB_SUFFIX) \ @@ -677,8 +685,8 @@ Index: offscreen/toolkit/mozapps/update/src/updater/Makefile.in ifeq ($(OS_ARCH),WINNT) Index: offscreen/xpcom/sample/program/Makefile.in =================================================================== ---- offscreen.orig/xpcom/sample/program/Makefile.in 2009-06-12 14:15:55.000000000 +0100 -+++ offscreen/xpcom/sample/program/Makefile.in 2009-06-12 14:15:55.000000000 +0100 +--- offscreen.orig/xpcom/sample/program/Makefile.in 2009-12-09 13:10:12.000000000 +0000 ++++ offscreen/xpcom/sample/program/Makefile.in 2009-12-09 13:10:12.000000000 +0000 @@ -57,7 +57,7 @@ # that the application be linked against the XPCOM dynamic library or the NSPR # dynamic libraries. @@ -690,8 +698,8 @@ Index: offscreen/xpcom/sample/program/Makefile.in # Need to link with CoreFoundation on Mac Index: offscreen/xpcom/tools/registry/Makefile.in =================================================================== ---- offscreen.orig/xpcom/tools/registry/Makefile.in 2009-06-12 14:15:55.000000000 +0100 -+++ offscreen/xpcom/tools/registry/Makefile.in 2009-06-12 14:15:55.000000000 +0100 +--- offscreen.orig/xpcom/tools/registry/Makefile.in 2009-12-09 13:10:12.000000000 +0000 ++++ offscreen/xpcom/tools/registry/Makefile.in 2009-12-09 13:10:12.000000000 +0000 @@ -54,7 +54,7 @@ SIMPLE_PROGRAMS = $(CPPSRCS:.cpp=$(BIN_SUFFIX)) @@ -703,9 +711,9 @@ Index: offscreen/xpcom/tools/registry/Makefile.in # Need to link with CoreFoundation on Mac Index: offscreen/xulrunner/app/Makefile.in =================================================================== ---- offscreen.orig/xulrunner/app/Makefile.in 2009-06-12 14:15:55.000000000 +0100 -+++ offscreen/xulrunner/app/Makefile.in 2009-06-12 14:15:55.000000000 +0100 -@@ -184,7 +184,7 @@ +--- offscreen.orig/xulrunner/app/Makefile.in 2009-12-09 13:10:12.000000000 +0000 ++++ offscreen/xulrunner/app/Makefile.in 2009-12-09 13:10:12.000000000 +0000 +@@ -173,7 +173,7 @@ RCFLAGS += -DXULRUNNER_ICO=\"$(DIST)/branding/xulrunner.ico\" -DDOCUMENT_ICO=\"$(DIST)/branding/document.ico\" endif @@ -716,9 +724,9 @@ Index: offscreen/xulrunner/app/Makefile.in Index: offscreen/xulrunner/stub/Makefile.in =================================================================== ---- offscreen.orig/xulrunner/stub/Makefile.in 2009-06-12 14:15:55.000000000 +0100 -+++ offscreen/xulrunner/stub/Makefile.in 2009-06-12 14:15:55.000000000 +0100 -@@ -101,7 +101,7 @@ +--- offscreen.orig/xulrunner/stub/Makefile.in 2009-12-09 13:10:12.000000000 +0000 ++++ offscreen/xulrunner/stub/Makefile.in 2009-12-09 13:10:12.000000000 +0000 +@@ -100,7 +100,7 @@ endif endif @@ -729,9 +737,9 @@ Index: offscreen/xulrunner/stub/Makefile.in Index: offscreen/modules/plugin/test/testplugin/Makefile.in =================================================================== ---- offscreen.orig/modules/plugin/test/testplugin/Makefile.in 2009-06-12 14:15:55.000000000 +0100 -+++ offscreen/modules/plugin/test/testplugin/Makefile.in 2009-06-12 14:15:55.000000000 +0100 -@@ -63,9 +63,7 @@ +--- offscreen.orig/modules/plugin/test/testplugin/Makefile.in 2009-12-09 13:10:12.000000000 +0000 ++++ offscreen/modules/plugin/test/testplugin/Makefile.in 2009-12-09 13:10:12.000000000 +0000 +@@ -60,9 +60,7 @@ CMMSRCS = nptest_macosx.mm endif @@ -743,18 +751,20 @@ Index: offscreen/modules/plugin/test/testplugin/Makefile.in CPPSRCS += nptest_os2.cpp Index: offscreen/js/src/aclocal.m4 =================================================================== ---- offscreen.orig/js/src/aclocal.m4 2009-06-12 14:15:55.000000000 +0100 -+++ offscreen/js/src/aclocal.m4 2009-06-12 14:15:55.000000000 +0100 -@@ -9,4 +9,3 @@ +--- offscreen.orig/js/src/aclocal.m4 2009-12-09 13:10:12.000000000 +0000 ++++ offscreen/js/src/aclocal.m4 2009-12-09 13:39:01.000000000 +0000 +@@ -8,6 +8,4 @@ + builtin(include, build/autoconf/altoptions.m4)dnl builtin(include, build/autoconf/moznbytetype.m4)dnl builtin(include, build/autoconf/mozprog.m4)dnl +-builtin(include, build/autoconf/acwinpaths.m4)dnl -MOZ_PROG_CHECKMSYS() Index: offscreen/toolkit/toolkit-makefiles.sh =================================================================== ---- offscreen.orig/toolkit/toolkit-makefiles.sh 2009-06-12 14:19:59.000000000 +0100 -+++ offscreen/toolkit/toolkit-makefiles.sh 2009-06-12 14:20:09.000000000 +0100 -@@ -342,7 +342,6 @@ +--- offscreen.orig/toolkit/toolkit-makefiles.sh 2009-12-09 13:10:12.000000000 +0000 ++++ offscreen/toolkit/toolkit-makefiles.sh 2009-12-09 13:10:12.000000000 +0000 +@@ -369,7 +369,6 @@ modules/plugin/sdk/samples/Makefile modules/plugin/sdk/samples/common/Makefile modules/plugin/sdk/samples/basic/windows/Makefile diff --git a/meta/packages/mozilla-headless/mozilla-headless-0.0+hg-1.0+a3e7c6626661/removebadrpath.patch b/meta/packages/mozilla-headless/mozilla-headless/removebadrpath-1a622cb7c384.patch index 940910578..940910578 100644 --- a/meta/packages/mozilla-headless/mozilla-headless-0.0+hg-1.0+a3e7c6626661/removebadrpath.patch +++ b/meta/packages/mozilla-headless/mozilla-headless/removebadrpath-1a622cb7c384.patch diff --git a/meta/packages/mozilla-headless/mozilla-headless/removebadrpath.patch b/meta/packages/mozilla-headless/mozilla-headless/removebadrpath.patch index 940910578..53ae6d325 100644 --- a/meta/packages/mozilla-headless/mozilla-headless/removebadrpath.patch +++ b/meta/packages/mozilla-headless/mozilla-headless/removebadrpath.patch @@ -1,8 +1,8 @@ Index: offscreen/js/src/configure.in =================================================================== ---- offscreen.orig/js/src/configure.in 2009-06-17 14:31:40.000000000 +0100 -+++ offscreen/js/src/configure.in 2009-06-17 14:31:40.000000000 +0100 -@@ -880,7 +880,7 @@ +--- offscreen.orig/js/src/configure.in 2009-12-09 13:38:51.000000000 +0000 ++++ offscreen/js/src/configure.in 2009-12-09 14:14:08.000000000 +0000 +@@ -858,7 +858,7 @@ HOST_AR_FLAGS='$(AR_FLAGS)' MOZ_JS_LIBS='-L$(libdir) -lmozjs' @@ -10,12 +10,21 @@ Index: offscreen/js/src/configure.in +MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin' MOZ_COMPONENT_NSPR_LIBS='-L$(LIBXUL_DIST)/bin $(NSPR_LIBS)' - MOZ_XPCOM_OBSOLETE_LIBS='-L$(LIBXUL_DIST)/lib -lxpcom_compat' + +@@ -3824,7 +3824,7 @@ + [ --with-nspr-libs=LIBS Pass LIBS to LD when linking code that uses NSPR. + See --with-nspr-cflags for more details.], + NSPR_LIBS=$withval) +-$NSPR_LIBS="$NSPR_LIBS -L$(LIBXUL_DIST)/sdk/lib" ++NSPR_LIBS="$NSPR_LIBS -L$(LIBXUL_DIST)/sdk/lib" + AC_SUBST(NSPR_CFLAGS) + AC_SUBST(NSPR_LIBS) + Index: offscreen/configure.in =================================================================== ---- offscreen.orig/configure.in 2009-06-17 15:09:44.000000000 +0100 -+++ offscreen/configure.in 2009-06-17 15:10:00.000000000 +0100 -@@ -1060,7 +1060,7 @@ +--- offscreen.orig/configure.in 2009-12-09 13:38:51.000000000 +0000 ++++ offscreen/configure.in 2009-12-09 14:31:33.000000000 +0000 +@@ -1041,7 +1041,7 @@ MOZ_JS_LIBS='-L$(LIBXUL_DIST)/bin -lmozjs' DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/bin -lxpcom -lxpcom_core' @@ -24,3 +33,12 @@ Index: offscreen/configure.in XPCOM_FROZEN_LDOPTS='-L$(LIBXUL_DIST)/bin -lxpcom' LIBXUL_LIBS='$(XPCOM_FROZEN_LDOPTS) -lxul' XPCOM_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue_s.$(LIB_SUFFIX) $(XPCOM_FROZEN_LDOPTS)' +@@ -8378,7 +8378,7 @@ + if test "$BUILD_CTYPES"; then + # Run the libffi 'configure' script on platforms that it supports. + if test -z "$_MSC_VER"; then +- ac_configure_args="--disable-shared --enable-static --disable-raw-api" ++ ac_configure_args="$ac_configure_args --disable-shared --enable-static --disable-raw-api" + if test "$MOZ_DEBUG"; then + ac_configure_args="$ac_configure_args --enable-debug" + fi diff --git a/meta/packages/mozilla-headless/mozilla-headless_hg.bb b/meta/packages/mozilla-headless/mozilla-headless_hg.bb index 9b0cbabfc..58306da59 100644 --- a/meta/packages/mozilla-headless/mozilla-headless_hg.bb +++ b/meta/packages/mozilla-headless/mozilla-headless_hg.bb @@ -2,13 +2,16 @@ FIXEDREV = "${SRCREVMOZILLAHEADLESS}" #file://0001-Adds-initial-Gtk-clipboard-support-to-moz-headless.patch;patch=1 \ SRC_URI = "hg://hg.mozilla.org/incubator;protocol=http;module=offscreen \ - file://configurefix.patch;patch=1 \ + file://configurefix-1a622cb7c384.patch;patch=1;rev=1a622cb7c384 \ + file://configurefix.patch;patch=1;notrev=1a622cb7c384 \ file://mozilla-jemalloc.patch;patch=1 \ - file://removebadrpath.patch;patch=1 \ + file://removebadrpath-1a622cb7c384.patch;patch=1;rev=1a622cb7c384 \ + file://removebadrpath.patch;patch=1;notrev=1a622cb7c384 \ + file://buildfixhack.patch;patch=1;notrev=1a622cb7c384 \ file://jsautocfg.h \ file://mozconfig" PV = "0.2+hg-1.0+${SRCPV}" -PR = "r5" +PR = "r7" S = "${WORKDIR}/offscreen" @@ -26,6 +29,8 @@ TARGET_CFLAGS = "-Os -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-prote LDFLAGS = "${TARGET_LDFLAGS}" TARGET_LDFLAGS = "-Wl,-rpath,${libdir}/xulrunner-1.9.2a1pre" +export target_alias=${TARGET_PREFIX} + inherit autotools_stage mozilla acpaths = "-I ${S}/build/autoconf " @@ -33,6 +38,13 @@ acpaths = "-I ${S}/build/autoconf " export topsrcdir = "${S}" do_configure () { + if [ "${SRCREV}" != "1a622cb7c384" ]; then + rm -rf ${S}/build/autoconf/acwinpaths.m4 + rm -rf ${S}/js/src/build/autoconf/acwinpaths.m4 + rm -rf ${S}/nsprpub/build/autoconf/acwinpaths.m4 + mkdir -p ${S}/js/src/dist/include + ln -fs ../../../../nsprpub/dist/include/nspr ${S}/js/src/dist/include/nsprpub + fi cp ${S}/build/autoconf/install-sh ${S} autotools_do_configure # Yes, we run this twice. The first pass sets up npsrpub-config which then @@ -46,9 +58,11 @@ do_compile () { base_do_compile } +XULVERSION = "1.9.3a1pre" + do_install_append () { install -d ${D}${sysconfdir}/ld.so.conf.d/ - echo ${libdir}/xulrunner-1.9.2a1pre/ > ${D}${sysconfdir}/ld.so.conf.d/mozilla-headless + echo ${libdir}/xulrunner-${XULVERSION}/ > ${D}${sysconfdir}/ld.so.conf.d/mozilla-headless } EXTRA_OECONF =+ "--enable-application=xulrunner --enable-default-toolkit=cairo-headless --with-pthreads \ @@ -61,15 +75,19 @@ export LIBXUL_DIST="${S}/dist" SYSROOT_PREPROCESS_FUNCS += "mozilla_sysroot_preprocess" mozilla_sysroot_preprocess () { - autotools_stage_dir ${D}/${libdir}/xulrunner-1.9.2a1pre ${SYSROOT_DESTDIR}${STAGING_DIR_HOST}${libdir}/xulrunner-1.9.2a1pre/ - autotools_stage_dir ${D}/${libdir}/xulrunner-devel-1.9.2a1pre ${SYSROOT_DESTDIR}${STAGING_DIR_HOST}${libdir}/xulrunner-devel-1.9.2a1pre/ + autotools_stage_dir ${D}/${libdir}/xulrunner-${XULVERSION} ${SYSROOT_DESTDIR}${STAGING_DIR_HOST}${libdir}/xulrunner-${XULVERSION}/ + autotools_stage_dir ${D}/${libdir}/xulrunner-devel-${XULVERSION} ${SYSROOT_DESTDIR}${STAGING_DIR_HOST}${libdir}/xulrunner-devel-${XULVERSION}/ - ln -fs ${STAGING_DIR_HOST}${libdir}/xulrunner-1.9.2a1pre/ ${SYSROOT_DESTDIR}${STAGING_DIR_HOST}${libdir}/xulrunner-devel-1.9.2a1pre/bin - ln -fs ${STAGING_DIR_HOST}${datadir}/xulrunner-1.9.2a1pre/unstable/ ${SYSROOT_DESTDIR}${STAGING_DIR_HOST}${libdir}/xulrunner-devel-1.9.2a1pre/idl - ln -fs ${STAGING_DIR_HOST}${includedir}/xulrunner-1.9.2a1pre/unstable/ ${SYSROOT_DESTDIR}${STAGING_DIR_HOST}${libdir}/xulrunner-devel-1.9.2a1pre/include - ln -fs ${STAGING_DIR_HOST}${libdir}/xulrunner-devel-1.9.2a1pre/sdk/lib/ ${SYSROOT_DESTDIR}${STAGING_DIR_HOST}${libdir}/xulrunner-devel-1.9.2a1pre/lib + ln -fs ${STAGING_DIR_HOST}${libdir}/xulrunner-${XULVERSION}/ ${SYSROOT_DESTDIR}${STAGING_DIR_HOST}${libdir}/xulrunner-devel-${XULVERSION}/bin + ln -fs ${STAGING_DIR_HOST}${datadir}/xulrunner-${XULVERSION}/unstable/ ${SYSROOT_DESTDIR}${STAGING_DIR_HOST}${libdir}/xulrunner-devel-${XULVERSION}/idl + ln -fs ${STAGING_DIR_HOST}${includedir}/xulrunner-${XULVERSION}/unstable/ ${SYSROOT_DESTDIR}${STAGING_DIR_HOST}${libdir}/xulrunner-devel-${XULVERSION}/include + ln -fs ${STAGING_DIR_HOST}${libdir}/xulrunner-devel-${XULVERSION}/sdk/lib/ ${SYSROOT_DESTDIR}${STAGING_DIR_HOST}${libdir}/xulrunner-devel-${XULVERSION}/lib install -d ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS} install -m 755 ${S}/dist/host/bin/host_xpidl ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}/xpidl } +__anonymous () { + if bb.data.getVar("SRCREV", d, True) == "1a622cb7c384": + bb.data.setVar("XULVERSION", "1.9.2a1pre", d) +} |