[arch-commits] Commit in icedtea-web-java7/repos (10 files)
andyrtr at archlinux.org
andyrtr at archlinux.org
Sat Aug 4 08:40:11 UTC 2012
Date: Saturday, August 4, 2012 @ 04:40:11
Author: andyrtr
Revision: 164727
archrelease: copy trunk to extra-i686, extra-x86_64
Added:
icedtea-web-java7/repos/extra-i686/PKGBUILD
(from rev 164726, icedtea-web-java7/trunk/PKGBUILD)
icedtea-web-java7/repos/extra-i686/fix_firefox_crash.diff
(from rev 164726, icedtea-web-java7/trunk/fix_firefox_crash.diff)
icedtea-web-java7/repos/extra-i686/icedtea-web-java7.install
(from rev 164726, icedtea-web-java7/trunk/icedtea-web-java7.install)
icedtea-web-java7/repos/extra-x86_64/PKGBUILD
(from rev 164726, icedtea-web-java7/trunk/PKGBUILD)
icedtea-web-java7/repos/extra-x86_64/fix_firefox_crash.diff
(from rev 164726, icedtea-web-java7/trunk/fix_firefox_crash.diff)
icedtea-web-java7/repos/extra-x86_64/icedtea-web-java7.install
(from rev 164726, icedtea-web-java7/trunk/icedtea-web-java7.install)
Deleted:
icedtea-web-java7/repos/extra-i686/PKGBUILD
icedtea-web-java7/repos/extra-i686/icedtea-web-java7.install
icedtea-web-java7/repos/extra-x86_64/PKGBUILD
icedtea-web-java7/repos/extra-x86_64/icedtea-web-java7.install
----------------------------------------+
extra-i686/PKGBUILD | 165 +++++++++++-----------
extra-i686/fix_firefox_crash.diff | 228 +++++++++++++++++++++++++++++++
extra-i686/icedtea-web-java7.install | 22 +-
extra-x86_64/PKGBUILD | 165 +++++++++++-----------
extra-x86_64/fix_firefox_crash.diff | 228 +++++++++++++++++++++++++++++++
extra-x86_64/icedtea-web-java7.install | 22 +-
6 files changed, 648 insertions(+), 182 deletions(-)
Deleted: extra-i686/PKGBUILD
===================================================================
--- extra-i686/PKGBUILD 2012-08-04 08:39:26 UTC (rev 164726)
+++ extra-i686/PKGBUILD 2012-08-04 08:40:11 UTC (rev 164727)
@@ -1,80 +0,0 @@
-# $Id: PKGBUILD 136836 2011-09-02 07:59:01Z andyrtr $
-# Maintainer: Andreas Radke <andyrtr at archlinux.org>
-
-pkgbase=icedtea-web-java7
-pkgname=('icedtea-web-java7' 'icedtea-web-java7-doc')
-pkgver=1.2.1
-pkgrel=1
-arch=('i686' 'x86_64')
-url="http://icedtea.classpath.org/wiki/IcedTea-Web"
-license=('GPL2')
-makedepends=('jdk7-openjdk' 'zip' 'gtk2' 'libxtst' 'npapi-sdk' 'rhino' 'junit')
-source=(http://icedtea.classpath.org/download/source/${pkgbase/-java7/}-$pkgver.tar.gz)
-sha256sums=('134efcd429086a643ba03ec6e4da991527c3e5dfcd6ed6680a83824ad3f0cfd6')
-
-_javaver=7
-_jvmdir=/usr/lib/jvm/java-${_javaver}-openjdk
-
-build() {
- cd "${srcdir}"/icedtea-web*
-
- . /etc/profile.d/jre.sh
- . /etc/profile.d/jdk.sh
-
- ./configure --prefix=${_jvmdir} \
- --datarootdir=/usr/share \
- --with-jdk-home=${_jvmdir}
- make
-}
-
-check() {
- cd "${srcdir}"/icedtea-web*
- # as more tests have been added some are expectged to fail
- # see http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017566.html
- make -k check || /bin/true
-}
-
-
-package_icedtea-web-java7() {
-
- pkgdesc="provides a Free Software web browser plugin running applets written in the Java programming language and an implementation of Java Web Start, originally based on the NetX project"
- depends=('jre7-openjdk' 'gtk2' 'desktop-file-utils')
- install=${pkgname}.install
-
- cd "${srcdir}"/icedtea-web* #${pkgname}-${_date}"
- # possible make target (see bottom of Makefile.am: install-exec-local install-data-local
- make DESTDIR="${pkgdir}" install-exec-local install-data-local
-
- # Install desktop files.
- install -m755 -d ${pkgdir}/usr/share/{applications,pixmaps}
- install -m644 javaws.png ${pkgdir}/usr/share/pixmaps
- install -m644 {javaws,itweb-settings}.desktop ${pkgdir}/usr/share/applications
- # remove splitted doc files
- rm -rf ${pkgdir}/usr/share/doc
-
- # link binaries into /usr/bin + jre/bin
- install -m755 -d ${pkgdir}/usr/bin
- install -m755 -d ${pkgdir}/${_jvmdir}/jre/bin
- pushd ${pkgdir}/${_jvmdir}/bin
- for file in *; do
- ln -sf ${_jvmdir}/bin/${file} ${pkgdir}/usr/bin
- ln -sf ${_jvmdir}/bin/${file} ${pkgdir}/${_jvmdir}/jre/bin
- done
- popd
-
- # link the mozilla-plugin - test it here http://www.java.com/en/download/help/testvm.xml
- install -m755 -d ${pkgdir}/usr/lib/mozilla/plugins/
- ln -sf ${_jvmdir}/lib/IcedTeaPlugin.so ${pkgdir}/usr/lib/mozilla/plugins/
-}
-
-package_icedtea-web-java7-doc() {
-
- pkgdesc="icedtea-web browser plugin + Java WebStart - documentation files"
-
- cd "${srcdir}"/icedtea-web*
- make DESTDIR="${pkgdir}" install-data-local
- # remove javaws about and man page
- rm -rf ${pkgdir}/usr/lib
- rm -rf ${pkgdir}/usr/share/man
- rm -rf ${pkgdir}/usr/share/icedtea-web # conflicting and unneeded file it seems
-}
Copied: icedtea-web-java7/repos/extra-i686/PKGBUILD (from rev 164726, icedtea-web-java7/trunk/PKGBUILD)
===================================================================
--- extra-i686/PKGBUILD (rev 0)
+++ extra-i686/PKGBUILD 2012-08-04 08:40:11 UTC (rev 164727)
@@ -0,0 +1,85 @@
+# $Id: PKGBUILD 136836 2011-09-02 07:59:01Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr at archlinux.org>
+
+pkgbase=icedtea-web-java7
+pkgname=('icedtea-web-java7' 'icedtea-web-java7-doc')
+pkgver=1.2.1
+pkgrel=2
+arch=('i686' 'x86_64')
+url="http://icedtea.classpath.org/wiki/IcedTea-Web"
+license=('GPL2')
+makedepends=('jdk7-openjdk' 'zip' 'gtk2' 'libxtst' 'npapi-sdk' 'rhino' 'junit')
+source=(http://icedtea.classpath.org/download/source/${pkgbase/-java7/}-$pkgver.tar.gz
+ fix_firefox_crash.diff)
+sha256sums=('134efcd429086a643ba03ec6e4da991527c3e5dfcd6ed6680a83824ad3f0cfd6'
+ '9391182fe8631c9eaea93e0e5a1daf0e42658963596fe4fcbe1ba1afaf775af3')
+
+_javaver=7
+_jvmdir=/usr/lib/jvm/java-${_javaver}-openjdk
+
+build() {
+ cd "${srcdir}"/icedtea-web*
+
+ # fix firefox crash - https://bugs.archlinux.org/task/30969
+ patch -RNp1 -i ${srcdir}/fix_firefox_crash.diff
+
+ . /etc/profile.d/jre.sh
+ . /etc/profile.d/jdk.sh
+
+ ./configure --prefix=${_jvmdir} \
+ --datarootdir=/usr/share \
+ --with-jdk-home=${_jvmdir}
+ make
+}
+
+check() {
+ cd "${srcdir}"/icedtea-web*
+ # as more tests have been added some are expectged to fail
+ # see http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017566.html
+ make -k check || /bin/true
+}
+
+
+package_icedtea-web-java7() {
+
+ pkgdesc="provides a Free Software web browser plugin running applets written in the Java programming language and an implementation of Java Web Start, originally based on the NetX project"
+ depends=('jre7-openjdk' 'gtk2' 'desktop-file-utils')
+ install=${pkgname}.install
+
+ cd "${srcdir}"/icedtea-web* #${pkgname}-${_date}"
+ # possible make target (see bottom of Makefile.am: install-exec-local install-data-local
+ make DESTDIR="${pkgdir}" install-exec-local install-data-local
+
+ # Install desktop files.
+ install -m755 -d ${pkgdir}/usr/share/{applications,pixmaps}
+ install -m644 javaws.png ${pkgdir}/usr/share/pixmaps
+ install -m644 {javaws,itweb-settings}.desktop ${pkgdir}/usr/share/applications
+ # remove splitted doc files
+ rm -rf ${pkgdir}/usr/share/doc
+
+ # link binaries into /usr/bin + jre/bin
+ install -m755 -d ${pkgdir}/usr/bin
+ install -m755 -d ${pkgdir}/${_jvmdir}/jre/bin
+ pushd ${pkgdir}/${_jvmdir}/bin
+ for file in *; do
+ ln -sf ${_jvmdir}/bin/${file} ${pkgdir}/usr/bin
+ ln -sf ${_jvmdir}/bin/${file} ${pkgdir}/${_jvmdir}/jre/bin
+ done
+ popd
+
+ # link the mozilla-plugin - test it here http://www.java.com/en/download/help/testvm.xml
+ install -m755 -d ${pkgdir}/usr/lib/mozilla/plugins/
+ ln -sf ${_jvmdir}/lib/IcedTeaPlugin.so ${pkgdir}/usr/lib/mozilla/plugins/
+}
+
+package_icedtea-web-java7-doc() {
+
+ pkgdesc="icedtea-web browser plugin + Java WebStart - documentation files"
+
+ cd "${srcdir}"/icedtea-web*
+ make DESTDIR="${pkgdir}" install-data-local
+ # remove javaws about and man page
+ rm -rf ${pkgdir}/usr/lib
+ rm -rf ${pkgdir}/usr/share/man
+ rm -rf ${pkgdir}/usr/share/icedtea-web # conflicting and unneeded file it seems
+}
Copied: icedtea-web-java7/repos/extra-i686/fix_firefox_crash.diff (from rev 164726, icedtea-web-java7/trunk/fix_firefox_crash.diff)
===================================================================
--- extra-i686/fix_firefox_crash.diff (rev 0)
+++ extra-i686/fix_firefox_crash.diff 2012-08-04 08:40:11 UTC (rev 164727)
@@ -0,0 +1,228 @@
+
+# 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.
+
Deleted: extra-i686/icedtea-web-java7.install
===================================================================
--- extra-i686/icedtea-web-java7.install 2012-08-04 08:39:26 UTC (rev 164726)
+++ extra-i686/icedtea-web-java7.install 2012-08-04 08:40:11 UTC (rev 164727)
@@ -1,11 +0,0 @@
-post_install() {
- update-desktop-database -q
-}
-
-post_upgrade() {
- update-desktop-database -q
-}
-
-post_remove() {
- update-desktop-database -q
-}
Copied: icedtea-web-java7/repos/extra-i686/icedtea-web-java7.install (from rev 164726, icedtea-web-java7/trunk/icedtea-web-java7.install)
===================================================================
--- extra-i686/icedtea-web-java7.install (rev 0)
+++ extra-i686/icedtea-web-java7.install 2012-08-04 08:40:11 UTC (rev 164727)
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ update-desktop-database -q
+}
+
+post_remove() {
+ update-desktop-database -q
+}
Deleted: extra-x86_64/PKGBUILD
===================================================================
--- extra-x86_64/PKGBUILD 2012-08-04 08:39:26 UTC (rev 164726)
+++ extra-x86_64/PKGBUILD 2012-08-04 08:40:11 UTC (rev 164727)
@@ -1,80 +0,0 @@
-# $Id: PKGBUILD 136836 2011-09-02 07:59:01Z andyrtr $
-# Maintainer: Andreas Radke <andyrtr at archlinux.org>
-
-pkgbase=icedtea-web-java7
-pkgname=('icedtea-web-java7' 'icedtea-web-java7-doc')
-pkgver=1.2.1
-pkgrel=1
-arch=('i686' 'x86_64')
-url="http://icedtea.classpath.org/wiki/IcedTea-Web"
-license=('GPL2')
-makedepends=('jdk7-openjdk' 'zip' 'gtk2' 'libxtst' 'npapi-sdk' 'rhino' 'junit')
-source=(http://icedtea.classpath.org/download/source/${pkgbase/-java7/}-$pkgver.tar.gz)
-sha256sums=('134efcd429086a643ba03ec6e4da991527c3e5dfcd6ed6680a83824ad3f0cfd6')
-
-_javaver=7
-_jvmdir=/usr/lib/jvm/java-${_javaver}-openjdk
-
-build() {
- cd "${srcdir}"/icedtea-web*
-
- . /etc/profile.d/jre.sh
- . /etc/profile.d/jdk.sh
-
- ./configure --prefix=${_jvmdir} \
- --datarootdir=/usr/share \
- --with-jdk-home=${_jvmdir}
- make
-}
-
-check() {
- cd "${srcdir}"/icedtea-web*
- # as more tests have been added some are expectged to fail
- # see http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017566.html
- make -k check || /bin/true
-}
-
-
-package_icedtea-web-java7() {
-
- pkgdesc="provides a Free Software web browser plugin running applets written in the Java programming language and an implementation of Java Web Start, originally based on the NetX project"
- depends=('jre7-openjdk' 'gtk2' 'desktop-file-utils')
- install=${pkgname}.install
-
- cd "${srcdir}"/icedtea-web* #${pkgname}-${_date}"
- # possible make target (see bottom of Makefile.am: install-exec-local install-data-local
- make DESTDIR="${pkgdir}" install-exec-local install-data-local
-
- # Install desktop files.
- install -m755 -d ${pkgdir}/usr/share/{applications,pixmaps}
- install -m644 javaws.png ${pkgdir}/usr/share/pixmaps
- install -m644 {javaws,itweb-settings}.desktop ${pkgdir}/usr/share/applications
- # remove splitted doc files
- rm -rf ${pkgdir}/usr/share/doc
-
- # link binaries into /usr/bin + jre/bin
- install -m755 -d ${pkgdir}/usr/bin
- install -m755 -d ${pkgdir}/${_jvmdir}/jre/bin
- pushd ${pkgdir}/${_jvmdir}/bin
- for file in *; do
- ln -sf ${_jvmdir}/bin/${file} ${pkgdir}/usr/bin
- ln -sf ${_jvmdir}/bin/${file} ${pkgdir}/${_jvmdir}/jre/bin
- done
- popd
-
- # link the mozilla-plugin - test it here http://www.java.com/en/download/help/testvm.xml
- install -m755 -d ${pkgdir}/usr/lib/mozilla/plugins/
- ln -sf ${_jvmdir}/lib/IcedTeaPlugin.so ${pkgdir}/usr/lib/mozilla/plugins/
-}
-
-package_icedtea-web-java7-doc() {
-
- pkgdesc="icedtea-web browser plugin + Java WebStart - documentation files"
-
- cd "${srcdir}"/icedtea-web*
- make DESTDIR="${pkgdir}" install-data-local
- # remove javaws about and man page
- rm -rf ${pkgdir}/usr/lib
- rm -rf ${pkgdir}/usr/share/man
- rm -rf ${pkgdir}/usr/share/icedtea-web # conflicting and unneeded file it seems
-}
Copied: icedtea-web-java7/repos/extra-x86_64/PKGBUILD (from rev 164726, icedtea-web-java7/trunk/PKGBUILD)
===================================================================
--- extra-x86_64/PKGBUILD (rev 0)
+++ extra-x86_64/PKGBUILD 2012-08-04 08:40:11 UTC (rev 164727)
@@ -0,0 +1,85 @@
+# $Id: PKGBUILD 136836 2011-09-02 07:59:01Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr at archlinux.org>
+
+pkgbase=icedtea-web-java7
+pkgname=('icedtea-web-java7' 'icedtea-web-java7-doc')
+pkgver=1.2.1
+pkgrel=2
+arch=('i686' 'x86_64')
+url="http://icedtea.classpath.org/wiki/IcedTea-Web"
+license=('GPL2')
+makedepends=('jdk7-openjdk' 'zip' 'gtk2' 'libxtst' 'npapi-sdk' 'rhino' 'junit')
+source=(http://icedtea.classpath.org/download/source/${pkgbase/-java7/}-$pkgver.tar.gz
+ fix_firefox_crash.diff)
+sha256sums=('134efcd429086a643ba03ec6e4da991527c3e5dfcd6ed6680a83824ad3f0cfd6'
+ '9391182fe8631c9eaea93e0e5a1daf0e42658963596fe4fcbe1ba1afaf775af3')
+
+_javaver=7
+_jvmdir=/usr/lib/jvm/java-${_javaver}-openjdk
+
+build() {
+ cd "${srcdir}"/icedtea-web*
+
+ # fix firefox crash - https://bugs.archlinux.org/task/30969
+ patch -RNp1 -i ${srcdir}/fix_firefox_crash.diff
+
+ . /etc/profile.d/jre.sh
+ . /etc/profile.d/jdk.sh
+
+ ./configure --prefix=${_jvmdir} \
+ --datarootdir=/usr/share \
+ --with-jdk-home=${_jvmdir}
+ make
+}
+
+check() {
+ cd "${srcdir}"/icedtea-web*
+ # as more tests have been added some are expectged to fail
+ # see http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017566.html
+ make -k check || /bin/true
+}
+
+
+package_icedtea-web-java7() {
+
+ pkgdesc="provides a Free Software web browser plugin running applets written in the Java programming language and an implementation of Java Web Start, originally based on the NetX project"
+ depends=('jre7-openjdk' 'gtk2' 'desktop-file-utils')
+ install=${pkgname}.install
+
+ cd "${srcdir}"/icedtea-web* #${pkgname}-${_date}"
+ # possible make target (see bottom of Makefile.am: install-exec-local install-data-local
+ make DESTDIR="${pkgdir}" install-exec-local install-data-local
+
+ # Install desktop files.
+ install -m755 -d ${pkgdir}/usr/share/{applications,pixmaps}
+ install -m644 javaws.png ${pkgdir}/usr/share/pixmaps
+ install -m644 {javaws,itweb-settings}.desktop ${pkgdir}/usr/share/applications
+ # remove splitted doc files
+ rm -rf ${pkgdir}/usr/share/doc
+
+ # link binaries into /usr/bin + jre/bin
+ install -m755 -d ${pkgdir}/usr/bin
+ install -m755 -d ${pkgdir}/${_jvmdir}/jre/bin
+ pushd ${pkgdir}/${_jvmdir}/bin
+ for file in *; do
+ ln -sf ${_jvmdir}/bin/${file} ${pkgdir}/usr/bin
+ ln -sf ${_jvmdir}/bin/${file} ${pkgdir}/${_jvmdir}/jre/bin
+ done
+ popd
+
+ # link the mozilla-plugin - test it here http://www.java.com/en/download/help/testvm.xml
+ install -m755 -d ${pkgdir}/usr/lib/mozilla/plugins/
+ ln -sf ${_jvmdir}/lib/IcedTeaPlugin.so ${pkgdir}/usr/lib/mozilla/plugins/
+}
+
+package_icedtea-web-java7-doc() {
+
+ pkgdesc="icedtea-web browser plugin + Java WebStart - documentation files"
+
+ cd "${srcdir}"/icedtea-web*
+ make DESTDIR="${pkgdir}" install-data-local
+ # remove javaws about and man page
+ rm -rf ${pkgdir}/usr/lib
+ rm -rf ${pkgdir}/usr/share/man
+ rm -rf ${pkgdir}/usr/share/icedtea-web # conflicting and unneeded file it seems
+}
Copied: icedtea-web-java7/repos/extra-x86_64/fix_firefox_crash.diff (from rev 164726, icedtea-web-java7/trunk/fix_firefox_crash.diff)
===================================================================
--- extra-x86_64/fix_firefox_crash.diff (rev 0)
+++ extra-x86_64/fix_firefox_crash.diff 2012-08-04 08:40:11 UTC (rev 164727)
@@ -0,0 +1,228 @@
+
+# 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.
+
Deleted: extra-x86_64/icedtea-web-java7.install
===================================================================
--- extra-x86_64/icedtea-web-java7.install 2012-08-04 08:39:26 UTC (rev 164726)
+++ extra-x86_64/icedtea-web-java7.install 2012-08-04 08:40:11 UTC (rev 164727)
@@ -1,11 +0,0 @@
-post_install() {
- update-desktop-database -q
-}
-
-post_upgrade() {
- update-desktop-database -q
-}
-
-post_remove() {
- update-desktop-database -q
-}
Copied: icedtea-web-java7/repos/extra-x86_64/icedtea-web-java7.install (from rev 164726, icedtea-web-java7/trunk/icedtea-web-java7.install)
===================================================================
--- extra-x86_64/icedtea-web-java7.install (rev 0)
+++ extra-x86_64/icedtea-web-java7.install 2012-08-04 08:40:11 UTC (rev 164727)
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ update-desktop-database -q
+}
+
+post_remove() {
+ update-desktop-database -q
+}
More information about the arch-commits
mailing list