[arch-commits] Commit in icedtea-web/trunk (PKGBUILD fix_firefox_crash.diff)

andyrtr at archlinux.org andyrtr at archlinux.org
Thu Sep 6 15:46:02 UTC 2012


    Date: Thursday, September 6, 2012 @ 11:46:02
  Author: andyrtr
Revision: 166334

upgpkg: icedtea-web 1.3-1

upstream update 1.3; workaround the broken tarball

Modified:
  icedtea-web/trunk/PKGBUILD
Deleted:
  icedtea-web/trunk/fix_firefox_crash.diff

------------------------+
 PKGBUILD               |   30 +++---
 fix_firefox_crash.diff |  228 -----------------------------------------------
 2 files changed, 17 insertions(+), 241 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2012-09-06 15:45:17 UTC (rev 166333)
+++ PKGBUILD	2012-09-06 15:46:02 UTC (rev 166334)
@@ -3,28 +3,32 @@
 
 pkgbase=icedtea-web
 pkgname=('icedtea-web' 'icedtea-web-doc')
-pkgver=1.2.1
-pkgrel=2
+pkgver=1.3
+pkgrel=1
 arch=('i686' 'x86_64')
 url="http://icedtea.classpath.org/wiki/IcedTea-Web"
 license=('GPL2')
-makedepends=('openjdk6' 'zip' 'gtk2' 'npapi-sdk' 'rhino' 'junit')
-source=(http://icedtea.classpath.org/download/source/$pkgname-$pkgver.tar.gz
-        fix_firefox_crash.diff)
-sha256sums=('134efcd429086a643ba03ec6e4da991527c3e5dfcd6ed6680a83824ad3f0cfd6'
-            '9391182fe8631c9eaea93e0e5a1daf0e42658963596fe4fcbe1ba1afaf775af3')
+makedepends=('openjdk6' 'zip' 'gtk2' 'npapi-sdk' 'rhino' 'junit' 'firefox' 'chromium' 'epiphany')
+noextract=$pkgname-$pkgver.tar.gz # due to broken path names in the tarball that fails with LANG=C in our chroot
+source=(http://icedtea.classpath.org/download/source/$pkgname-$pkgver.tar.gz)
+sha256sums=('d46ec10700732cea103da2aae64ff01e717cb1281b83e1797ce48cc53280b49f')
 
 _javaver=6
 _jvmdir=/usr/lib/jvm/java-${_javaver}-openjdk
 
 build() {
+  # extract it
+  cd "$srcdir"
+  LANG=en_US.UTF-8 bsdtar -x -f ${srcdir}/$pkgname-$pkgver.tar.gz
+
   cd "$srcdir/$pkgname-$pkgver"
-
-  # fix firefox crash - https://bugs.archlinux.org/task/30969
-  patch -RNp1 -i ${srcdir}/fix_firefox_crash.diff
-  
-  ./configure --prefix=/usr/lib/jvm/java-6-openjdk \
-      --datarootdir=/usr/share
+  ./configure --prefix=${_jvmdir} \
+      --datarootdir=/usr/share \
+      --with-browser-tests \
+      --with-firefox=/usr/bin/firefox \
+      --with-chromium=/usr/bin/chromium \
+      --with-epiphany=/usr/bin/epiphany \
+      --with-gtk=2
   make
 }
 

Deleted: fix_firefox_crash.diff
===================================================================
--- fix_firefox_crash.diff	2012-09-06 15:45:17 UTC (rev 166333)
+++ fix_firefox_crash.diff	2012-09-06 15:46:02 UTC (rev 166334)
@@ -1,228 +0,0 @@
-
-# HG changeset patch
-# User Adam Domurad <adomurad at redhat.com>
-# Date 1340899207 14400
-# Node ID a49edd57b1b332b431222b1c225189fe51676193
-# Parent  d65bd94e0ba9b7c8b9051c7d471b55c2c74ea3f4
-Fixes invalid plugin table error that sometimes occurs.
-The invalid plugin table error was happening when the API that was
-being compiled with had a larger size than that of the browser.
-The plugin now only checks if the minimal subset it uses exists.
-
-diff -r d65bd94e0ba9 -r a49edd57b1b3 plugin/icedteanp/IcedTeaNPPlugin.cc
---- a/plugin/icedteanp/IcedTeaNPPlugin.cc	Fri Jun 08 13:44:25 2012 -0400
-+++ b/plugin/icedteanp/IcedTeaNPPlugin.cc	Thu Jun 28 12:00:07 2012 -0400
-@@ -2022,105 +2022,48 @@
-   PLUGIN_DEBUG ("plugin_data_destroy return\n");
- }
- 
--// FACTORY FUNCTIONS
--
--// Provides the browser with pointers to the plugin functions that we
--// implement and initializes a local table with browser functions that
--// we may wish to call.  Called once, after browser startup and before
--// the first plugin instance is created.
--// The field 'initialized' is set to true once this function has
--// finished. If 'initialized' is already true at the beginning of
--// this function, then it is evident that NP_Initialize has already
--// been called. There is no need to call this function more than once and
--// this workaround avoids any duplicate calls.
--NPError
--NP_Initialize (NPNetscapeFuncs* browserTable, NPPluginFuncs* pluginTable)
-+static bool
-+initialize_browser_functions(const NPNetscapeFuncs* browserTable)
- {
--  PLUGIN_DEBUG ("NP_Initialize\n");
--
--  if ((browserTable == NULL) || (pluginTable == NULL))
-+#if MOZILLA_VERSION_COLLAPSED < 1090100
-+#define NPNETSCAPEFUNCS_LAST_FIELD_USED (browserTable->pluginthreadasynccall)
-+#else
-+#define NPNETSCAPEFUNCS_LAST_FIELD_USED (browserTable->setvalueforurl)
-+#endif
-+
-+  //Determine the size in bytes, as a difference of the address past the last used field
-+  //And the browser table address
-+  size_t usedSize = (char*)(1 + &NPNETSCAPEFUNCS_LAST_FIELD_USED) - (char*)browserTable;
-+
-+  // compare the reported size versus the size we required
-+  if (browserTable->size < usedSize)
-   {
--    PLUGIN_ERROR ("Browser or plugin function table is NULL.");
--
--    return NPERR_INVALID_FUNCTABLE_ERROR;
-+    return false;
-   }
- 
--  // Ensure that the major version of the plugin API that the browser
--  // expects is not more recent than the major version of the API that
--  // we've implemented.
--  if ((browserTable->version >> 8) > NP_VERSION_MAJOR)
--    {
--      PLUGIN_ERROR ("Incompatible version.");
--
--      return NPERR_INCOMPATIBLE_VERSION_ERROR;
--    }
--
--  // Ensure that the plugin function table we've received is large
--  // enough to store the number of functions that we may provide.
--  if (pluginTable->size < sizeof (NPPluginFuncs))
--    {
--      PLUGIN_ERROR ("Invalid plugin function table.");
--
--      return NPERR_INVALID_FUNCTABLE_ERROR;
--    }
--
--  // Ensure that the browser function table is large enough to store
--  // the number of browser functions that we may use.
--  if (browserTable->size < sizeof (NPNetscapeFuncs))
--    {
--      fprintf (stderr, "ERROR: Invalid browser function table. Some functionality may be restricted.\n");
--    }
--
--  // Store in a local table the browser functions that we may use.
--  browser_functions.size                    = browserTable->size;
--  browser_functions.version                 = browserTable->version;
--  browser_functions.geturlnotify            = browserTable->geturlnotify;
--  browser_functions.geturl                  = browserTable->geturl;
--  browser_functions.posturlnotify           = browserTable->posturlnotify;
--  browser_functions.posturl                 = browserTable->posturl;
--  browser_functions.requestread             = browserTable->requestread;
--  browser_functions.newstream               = browserTable->newstream;
--  browser_functions.write                   = browserTable->write;
--  browser_functions.destroystream           = browserTable->destroystream;
--  browser_functions.status                  = browserTable->status;
--  browser_functions.uagent                  = browserTable->uagent;
--  browser_functions.memalloc                = browserTable->memalloc;
--  browser_functions.memfree                 = browserTable->memfree;
--  browser_functions.memflush                = browserTable->memflush;
--  browser_functions.reloadplugins           = browserTable->reloadplugins;
--  browser_functions.getJavaEnv              = browserTable->getJavaEnv;
--  browser_functions.getJavaPeer             = browserTable->getJavaPeer;
--  browser_functions.getvalue                = browserTable->getvalue;
--  browser_functions.setvalue                = browserTable->setvalue;
--  browser_functions.invalidaterect          = browserTable->invalidaterect;
--  browser_functions.invalidateregion        = browserTable->invalidateregion;
--  browser_functions.forceredraw             = browserTable->forceredraw;
--  browser_functions.getstringidentifier     = browserTable->getstringidentifier;
--  browser_functions.getstringidentifiers    = browserTable->getstringidentifiers;
--  browser_functions.getintidentifier        = browserTable->getintidentifier;
--  browser_functions.identifierisstring      = browserTable->identifierisstring;
--  browser_functions.utf8fromidentifier      = browserTable->utf8fromidentifier;
--  browser_functions.intfromidentifier       = browserTable->intfromidentifier;
--  browser_functions.createobject            = browserTable->createobject;
--  browser_functions.retainobject            = browserTable->retainobject;
--  browser_functions.releaseobject           = browserTable->releaseobject;
--  browser_functions.invoke                  = browserTable->invoke;
--  browser_functions.invokeDefault           = browserTable->invokeDefault;
--  browser_functions.evaluate                = browserTable->evaluate;
--  browser_functions.getproperty             = browserTable->getproperty;
--  browser_functions.setproperty             = browserTable->setproperty;
--  browser_functions.removeproperty          = browserTable->removeproperty;
--  browser_functions.hasproperty             = browserTable->hasproperty;
--  browser_functions.hasmethod               = browserTable->hasmethod;
--  browser_functions.releasevariantvalue     = browserTable->releasevariantvalue;
--  browser_functions.setexception            = browserTable->setexception;
--  browser_functions.pluginthreadasynccall   = browserTable->pluginthreadasynccall;
--#if MOZILLA_VERSION_COLLAPSED >= 1090100
--  browser_functions.getvalueforurl          = browserTable->getvalueforurl;
--  browser_functions.setvalueforurl          = browserTable->setvalueforurl;
--#endif
--
--  // Return to the browser the plugin functions that we implement.
-+  //Ensure any unused fields are NULL
-+  memset(&browser_functions, 0, sizeof(NPNetscapeFuncs));
-+  //Copy fields according to given size
-+  memcpy(&browser_functions, browserTable, browserTable->size);
-+
-+  return true;
-+}
-+
-+/* Set the plugin table to the correct contents, taking care not to write past
-+ * the provided object space */
-+static bool
-+initialize_plugin_table(NPPluginFuncs* pluginTable)
-+{
-+#define NPPLUGINFUNCS_LAST_FIELD_USED (pluginTable->getvalue)
-+
-+  //Determine the size in bytes, as a difference of the address past the last used field
-+  //And the browser table address
-+  size_t usedSize = (char*)(1 + &NPPLUGINFUNCS_LAST_FIELD_USED) - (char*)pluginTable;
-+
-+  // compare the reported size versus the size we required
-+  if (pluginTable->size < usedSize)
-+    return false;
-+
-   pluginTable->version = (NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR;
-   pluginTable->size = sizeof (NPPluginFuncs);
- 
-@@ -2150,6 +2093,68 @@
-   pluginTable->getvalue = NPP_GetValueProcPtr (ITNP_GetValue);
- #endif
- 
-+  return true;
-+}
-+
-+// FACTORY FUNCTIONS
-+
-+// Provides the browser with pointers to the plugin functions that we
-+// implement and initializes a local table with browser functions that
-+// we may wish to call.  Called once, after browser startup and before
-+// the first plugin instance is created.
-+// The field 'initialized' is set to true once this function has
-+// finished. If 'initialized' is already true at the beginning of
-+// this function, then it is evident that NP_Initialize has already
-+// been called. There is no need to call this function more than once and
-+// this workaround avoids any duplicate calls.
-+NPError
-+NP_Initialize (NPNetscapeFuncs* browserTable, NPPluginFuncs* pluginTable)
-+{
-+  PLUGIN_DEBUG ("NP_Initialize\n");
-+
-+  if ((browserTable == NULL) || (pluginTable == NULL))
-+  {
-+    PLUGIN_ERROR ("Browser or plugin function table is NULL.");
-+
-+    return NPERR_INVALID_FUNCTABLE_ERROR;
-+  }
-+
-+  // Ensure that the major version of the plugin API that the browser
-+  // expects is not more recent than the major version of the API that
-+  // we've implemented.
-+  if ((browserTable->version >> 8) > NP_VERSION_MAJOR)
-+    {
-+      PLUGIN_ERROR ("Incompatible version.");
-+
-+      return NPERR_INCOMPATIBLE_VERSION_ERROR;
-+    }
-+
-+  // Copy into a global table (browser_functions) the browser functions that we may use.
-+  // If the browser functions needed change, update NPNETSCAPEFUNCS_LAST_FIELD_USED
-+  // within this function
-+  bool browser_functions_supported = initialize_browser_functions(browserTable);
-+
-+  // Check if everything we rely on is supported
-+  if ( !browser_functions_supported )
-+  {
-+	PLUGIN_ERROR ("Invalid browser function table.");
-+
-+	return NPERR_INVALID_FUNCTABLE_ERROR;
-+  }
-+
-+  // Return to the browser the plugin functions that we implement.
-+  // If the plugin functions needed change, update NPPLUGINFUNCS_LAST_FIELD_USED
-+  // within this function
-+  bool plugin_functions_supported = initialize_plugin_table(pluginTable);
-+
-+  // Check if everything we rely on is supported
-+  if ( !plugin_functions_supported )
-+  {
-+    PLUGIN_ERROR ("Invalid plugin function table.");
-+
-+    return NPERR_INVALID_FUNCTABLE_ERROR;
-+  }
-+
-   // Re-setting the above tables multiple times is OK (as the 
-   // browser may change its function locations). However 
-   // anything beyond this point should only run once.
-




More information about the arch-commits mailing list