[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[SCM] LibreOffice packaging repository branch, master, updated. libreoffice_3.3.3-1-12-g705eb73



The following commit has been merged in the master branch:
commit 4657b8cfcbc52853cc65a8cfab7705168d1a6115
Author: Rene Engelhard <rene@debian.org>
Date:   Tue Jun 28 12:04:48 2011 +0000

    add patches to disable rhino and fix bsh build with gcj/ant multiarch brokeness

diff --git a/changelog b/changelog
index 5c0ed8a..b81aeb3 100644
--- a/changelog
+++ b/changelog
@@ -1,5 +1,10 @@
 libreoffice (1:3.3.3-2) UNRELEASED; urgency=low
 
+  * debian/patches/scripting-bsh-no-envvar.diff,
+    debian/patches/disable-rhino.diff: add hacks to fix build
+    with the still broken gcj multiarch/ant combo. Disable rhino completely
+    as we can't patch the envvar usage out in a sane way
+
   * debian/rules:
     - make multiarch changes conditional and skip them for squeeze
      (Daniel Baumann)
@@ -12,7 +17,7 @@ libreoffice (1:3.3.3-2) UNRELEASED; urgency=low
     - fix libreoffice Description: - -filter-binfilter is not installed
       per default since longer (only suggested)
 
- -- Rene Engelhard <rene@debian.org>  Mon, 27 Jun 2011 16:33:27 +0200
+ -- Rene Engelhard <rene@debian.org>  Tue, 28 Jun 2011 09:49:36 +0000
 
 libreoffice (1:3.3.3-1) unstable; urgency=medium
 
diff --git a/patches/bsh-hardcode-path.diff b/patches/bsh-hardcode-path.diff
new file mode 100644
index 0000000..4ee390d
--- /dev/null
+++ b/patches/bsh-hardcode-path.diff
@@ -0,0 +1,21 @@
+--- /dev/null	2011-06-27 18:29:01.643585831 +0000
++++ libreoffice-3.4.0/libreoffice-build/patches/dev300/bsh-hardcode-path.diff	2011-06-28 11:11:47.000000000 +0000
+@@ -0,0 +1,11 @@
++--- scripting/java/build.xml	2011-06-28 11:11:12.000000000 +0000
+++++ scripting/java/build.xml-old	2011-06-28 11:10:53.000000000 +0000
++@@ -52,7 +52,7 @@
++     <pathelement location="${solar.jar}/juh.jar"/>
++     <pathelement location="${solar.jar}/java_uno.jar"/>
++     <pathelement location="${solar.jar}/ridl.jar"/>
++-    <pathelement location="${env.BSH_JAR}"/>
+++    <pathelement location="/usr/share/java/bsh.jar"/>
++     <pathelement location="${jardir}"/>
++   </path> 
++ 
+--- libreoffice-3.4.0/libreoffice-build/patches/dev300/apply-old	2011-06-28 11:18:27.000000000 +0000
++++ libreoffice-3.4.0/libreoffice-build/patches/dev300/apply	2011-06-28 11:18:39.000000000 +0000
+@@ -2392,3 +2392,4 @@
+ 
+ [ TemporaryHacks ]
+ disable-rhino.diff
++bsh-hardcode-path.diff
diff --git a/patches/disable-rhino.diff b/patches/disable-rhino.diff
new file mode 100644
index 0000000..d585f77
--- /dev/null
+++ b/patches/disable-rhino.diff
@@ -0,0 +1,912 @@
+--- /dev/null	2011-06-27 18:29:01.643585831 +0000
++++ libreoffice-3.4.0/libreoffice-build/patches/dev300/disable-rhino.diff	2011-06-28 11:09:55.000000000 +0000
+@@ -0,0 +1,901 @@
++--- scripting/prj/build.lst-old	2011-06-27 20:07:54.000000000 +0000
+++++ scripting/prj/build.lst	2011-06-27 20:06:28.000000000 +0000
++@@ -1,4 +1,4 @@
++-tc	scripting	:	filter oovbaapi vbahelper bridges rdbmaker vcl xmlscript basic sfx2 rhino BSH:beanshell javaunohelper NULL
+++tc	scripting	:	filter oovbaapi vbahelper bridges rdbmaker vcl xmlscript basic sfx2 BSH:beanshell javaunohelper NULL
++ tc	scripting									usr1	-	all	tc1_mkout NULL
++ tc	scripting\inc								nmake	-	all	tc1_inc NULL
++ tc	scripting\source\provider				nmake	-	all	tc1_scriptingprovider tc1_inc NULL
++diff -urN scripting-old//java/build.xml scripting/java/build.xml
++--- scripting-old//java/build.xml	2011-06-28 08:26:38.000000000 +0000
+++++ scripting/java/build.xml	2011-06-28 08:30:38.000000000 +0000
++@@ -53,7 +53,6 @@
++     <pathelement location="${solar.jar}/java_uno.jar"/>
++     <pathelement location="${solar.jar}/ridl.jar"/>
++     <pathelement location="${env.BSH_JAR}"/>
++-    <pathelement location="${solar.jar}/js.jar"/>
++     <pathelement location="${jardir}"/>
++   </path> 
++ 
++@@ -184,21 +183,6 @@
++         </fileset>
++     </jar>
++ 
++-    <jar jarfile="${jardir}/ScriptProviderForJavaScript.jar"
++-         basedir="${jardir}">
++-        <manifest>
++-            <attribute name="Built-By" value="Sun Microsystems"/>
++-            <attribute name="RegistrationClassName"
++-                       value="com.sun.star.script.framework.provider.javascript.ScriptProviderForJavaScript"/>
++-            <attribute name="Class-Path" value="ScriptFramework.jar js.jar"/>
++-            <attribute name="UNO-Type-Path" value=""/>
++-        </manifest>
++-        <include name="**/provider/javascript/*.class"/>
++-        <fileset dir=".">
++-          <include name="**/provider/javascript/*.js"/>
++-        </fileset>
++-    </jar>
++-
++     <jar jarfile="${jardir}/ScriptFramework.jar"
++          basedir="${jardir}">
++         <manifest>
++@@ -272,7 +256,6 @@
++   <!-- ====================== Clean Generated Files ===================== -->
++   <target name="clean">
++     <delete file="${jardir}/ScriptProviderForJava.jar"/>
++-    <delete file="${jardir}/ScriptProviderForJavaScript.jar"/>
++     <delete file="${jardir}/ScriptProviderForBeanShell.jar"/>
++     <delete file="${jardir}/ScriptFramework.jar"/>
++     <delete file="${jardir}/office.jar"/>
++diff -urN scripting-old//java/com/sun/star/script/framework/provider/javascript/ScriptEditorForJavaScript.java scripting/java/com/sun/star/script/framework/provider/javascript/ScriptEditorForJavaScript.java
++--- scripting-old//java/com/sun/star/script/framework/provider/javascript/ScriptEditorForJavaScript.java	2011-06-28 08:26:37.000000000 +0000
+++++ scripting/java/com/sun/star/script/framework/provider/javascript/ScriptEditorForJavaScript.java	1970-01-01 00:00:00.000000000 +0000
++@@ -1,376 +0,0 @@
++-/*************************************************************************
++- *
++- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++- * 
++- * Copyright 2000, 2010 Oracle and/or its affiliates.
++- *
++- * OpenOffice.org - a multi-platform office productivity suite
++- *
++- * This file is part of OpenOffice.org.
++- *
++- * OpenOffice.org is free software: you can redistribute it and/or modify
++- * it under the terms of the GNU Lesser General Public License version 3
++- * only, as published by the Free Software Foundation.
++- *
++- * OpenOffice.org is distributed in the hope that it will be useful,
++- * but WITHOUT ANY WARRANTY; without even the implied warranty of
++- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++- * GNU Lesser General Public License version 3 for more details
++- * (a copy is included in the LICENSE file that accompanied this code).
++- *
++- * You should have received a copy of the GNU Lesser General Public License
++- * version 3 along with OpenOffice.org.  If not, see
++- * <http://www.openoffice.org/license.html>
++- * for a copy of the LGPLv3 License.
++- *
++- ************************************************************************/
++-
++-package com.sun.star.script.framework.provider.javascript;
++-
++-import org.mozilla.javascript.Context;
++-import org.mozilla.javascript.Scriptable;
++-import org.mozilla.javascript.ImporterTopLevel;
++-import org.mozilla.javascript.tools.debugger.Main;
++-import org.mozilla.javascript.tools.debugger.ScopeProvider;
++-
++-import com.sun.star.script.provider.XScriptContext;
++-import com.sun.star.script.framework.container.ScriptMetaData;
++-import com.sun.star.script.framework.provider.ScriptEditor;
++-import com.sun.star.script.framework.log.LogUtils;
++-
++-import java.io.InputStream;
++-import java.io.IOException;
++-import java.net.URL;
++-
++-import java.util.Map;
++-import java.util.HashMap;
++-
++-import javax.swing.SwingUtilities;
++-import java.awt.event.WindowAdapter;
++-import java.awt.event.WindowEvent;
++-
++-public class ScriptEditorForJavaScript implements ScriptEditor
++-{
++-    // global ScriptEditorForJavaScript instance
++-    private static ScriptEditorForJavaScript theScriptEditorForJavaScript;
++-
++-    // template for JavaScript scripts
++-    private static String JSTEMPLATE;
++-
++-    static private Main rhinoWindow;
++-    private URL scriptURL;
++-    // global list of ScriptEditors, key is URL of file being edited
++-    private static Map BEING_EDITED = new HashMap();
++-
++-    static {
++-        try {
++-            URL url =
++-                ScriptEditorForJavaScript.class.getResource("template.js");
++-
++-            InputStream in = url.openStream();
++-            StringBuffer buf = new StringBuffer();
++-            byte[] b = new byte[1024];
++-            int len = 0;
++-
++-            while ((len = in.read(b)) != -1) {
++-                buf.append(new String(b, 0, len));
++-            }
++-
++-            in.close();
++-
++-            JSTEMPLATE = buf.toString();
++-        }
++-        catch (IOException ioe) {
++-            JSTEMPLATE = "// JavaScript script";
++-        }
++-        catch (Exception e) {
++-            JSTEMPLATE = "// JavaScript script";
++-        }
++-    }
++-
++-    /**
++-     *  Returns the global ScriptEditorForJavaScript instance.
++-     */
++-    public static ScriptEditorForJavaScript getEditor()
++-    {
++-        if (theScriptEditorForJavaScript == null)
++-        {
++-            synchronized(ScriptEditorForJavaScript.class)
++-            {
++-                if (theScriptEditorForJavaScript == null)
++-                {
++-                    theScriptEditorForJavaScript =
++-                        new ScriptEditorForJavaScript();
++-                }
++-            }
++-        }
++-        return theScriptEditorForJavaScript;
++-    }
++-
++-    /**
++-     *  Get the ScriptEditorForJavaScript instance for this URL
++-     * 
++-     * @param  url         The URL of the script source file
++-     *
++-     * @return             The ScriptEditorForJavaScript associated with
++-     *                     the given URL if one exists, otherwise null.
++-     */
++-    public static ScriptEditorForJavaScript getEditor(URL url)
++-    {
++-        return (ScriptEditorForJavaScript)BEING_EDITED.get(url);
++-    }
++-
++-    /**
++-     *  Returns whether or not the script source being edited in this
++-     *  ScriptEditorForJavaScript has been modified
++-     */
++-    public boolean isModified()
++-    {
++-        return rhinoWindow.isModified( scriptURL );
++-    }
++-
++-    /**
++-     *  Returns the text being displayed in this ScriptEditorForJavaScript
++-     *
++-     *  @return            The text displayed in this ScriptEditorForJavaScript
++-     */
++-    public String getText()
++-    {
++-        return rhinoWindow.getText( scriptURL );
++-    }
++-
++-    /**
++-     *  Returns the Rhino Debugger url of this ScriptEditorForJavaScript
++-     *
++-     *  @return            The url of this ScriptEditorForJavaScript
++-     */
++-    public String getURL()
++-    {
++-        return scriptURL.toString(); 
++-    }
++-
++-    /**
++-     *  Returns the template text for JavaScript scripts
++-     *
++-     *  @return            The template text for JavaScript scripts
++-     */
++-    public String getTemplate()
++-    {
++-        return JSTEMPLATE;
++-    }
++-
++-    /**
++-     *  Returns the default extension for JavaScript scripts
++-     *
++-     *  @return            The default extension for JavaScript scripts
++-     */
++-    public String getExtension()
++-    {
++-        return "js";
++-    }
++-
++-    /**
++-     *  Opens an editor window for the specified ScriptMetaData.
++-     *  If an editor window is already open for that data it will be
++-     *  moved to the front.
++-     *
++-     * @param  metadata    The metadata describing the script
++-     * @param  context     The context in which to execute the script
++-     *
++-     */
++-    public void edit(final XScriptContext context, ScriptMetaData entry)
++-    {
++-        try {
++-            String sUrl = entry.getParcelLocation();
++-            if ( !sUrl.endsWith( "/" ) )
++-            {
++-                sUrl += "/";
++-            }
++-            sUrl +=  entry.getLanguageName();
++-            URL url = entry.getSourceURL();
++-
++-            // check if there is already an editing session for this script
++-            //if (BEING_EDITED.containsKey(url))
++-            if ( rhinoWindow != null  )
++-            {
++-                ScriptEditorForJavaScript editor =
++-                    (ScriptEditorForJavaScript) BEING_EDITED.get(url);
++-                if ( editor == null )
++-                {
++-                    editor = new ScriptEditorForJavaScript( context, url );
++-                    editor.edit( context, entry );
++-                }
++-                else
++-                {
++-                    rhinoWindow.showScriptWindow( url );
++-                }
++-            }
++-            else
++-            {
++-                ScriptEditorForJavaScript editor =
++-                    new ScriptEditorForJavaScript( context, url );
++-                
++-            }
++-            rhinoWindow.toFront();
++-        }
++-        catch ( IOException e )
++-        {
++-            LogUtils.DEBUG("Caught exception: " + e);
++-            LogUtils.DEBUG(LogUtils.getTrace(e));
++-        }
++-    }
++-
++-    // Ensures that new instances of this class can only be created using
++-    // the factory methods
++-    private ScriptEditorForJavaScript()
++-    {
++-    }
++-
++-    private ScriptEditorForJavaScript(XScriptContext context, URL url)
++-    {
++-        initUI();
++-        Scriptable scope = getScope( context );
++-        this.rhinoWindow.openFile(url, scope, new closeHandler( url ) );
++-
++-
++-        this.scriptURL = url;
++-        synchronized( ScriptEditorForJavaScript.class )
++-        {
++-            BEING_EDITED.put(url, this);
++-        }
++-
++-    }
++-
++-    /**
++-     *  Executes the script edited by the editor
++-     *
++-     */
++-
++-    public Object execute() throws Exception
++-    {
++-        rhinoWindow.toFront();
++-        
++-        return this.rhinoWindow.runScriptWindow( scriptURL );
++-    }
++-
++-    /**
++-     *  Indicates the line where error occured 
++-     *
++-     */
++-    public void indicateErrorLine( int lineNum )
++-    {
++-        this.rhinoWindow.toFront();
++-        this.rhinoWindow.highlighLineInScriptWindow( scriptURL, lineNum ); 
++-    }
++-    // This code is based on the main method of the Rhino Debugger Main class
++-    // We pass in the XScriptContext in the global scope for script execution
++-    private void initUI() {
++-        try {
++-            synchronized ( ScriptEditorForJavaScript.class )
++-            { 
++-                if ( this.rhinoWindow != null )
++-                {
++-                    return;
++-                }
++-                
++-                final Main sdb = new Main("Rhino JavaScript Debugger");
++-                swingInvoke(new Runnable() {
++-                    public void run() {
++-                        sdb.pack();
++-                        sdb.setSize(640, 640);
++-                        sdb.setVisible(true);
++-                    }
++-                    });
++-                sdb.setExitAction(new Runnable() {
++-                    public void run() {
++-                        sdb.clearAllBreakpoints();
++-                        sdb.dispose();
++-                        shutdown();
++-                    }
++-                });
++-                Context.addContextListener(sdb);
++-                sdb.setScopeProvider(new ScopeProvider() {
++-                    public Scriptable getScope() {
++-                        return org.mozilla.javascript.tools.shell.Main.getScope();
++-                    }
++-                });
++-                sdb.addWindowListener( new WindowAdapter() {
++-                    public void windowClosing(WindowEvent e) {
++-                        shutdown();
++-                    }
++-                });
++-                this.rhinoWindow = sdb;
++-            }
++-        } catch (Exception exc) {
++-            LogUtils.DEBUG( LogUtils.getTrace( exc ) );
++-        }
++-    }
++-
++-    private static void swingInvoke(Runnable f) {
++-        if (SwingUtilities.isEventDispatchThread()) {
++-            f.run();
++-            return;
++-        }
++-        try {
++-            SwingUtilities.invokeAndWait(f);
++-        } catch (Exception exc) {
++-            LogUtils.DEBUG( LogUtils.getTrace( exc ) );
++-        }
++-    }
++-
++-    private void shutdown()
++-    {
++-        // dereference Rhino Debugger window
++-        this.rhinoWindow = null;
++-        this.scriptURL = null;
++-        // remove all scripts from BEING_EDITED
++-        synchronized( BEING_EDITED )
++-        {
++-            java.util.Iterator iter = BEING_EDITED.keySet().iterator();
++-            java.util.Vector keysToRemove = new java.util.Vector();
++-            while ( iter.hasNext() )
++-            {
++-              
++-                URL key = (URL)iter.next();
++-                keysToRemove.add( key );
++-            }
++-            for ( int i=0; i<keysToRemove.size(); i++ )
++-            {
++-                BEING_EDITED.remove( keysToRemove.elementAt( i ) );
++-            }
++-            keysToRemove = null;
++-        }
++-        
++-    }
++-    private Scriptable getScope(XScriptContext xsctxt ) 
++-    {
++-        Context ctxt = Context.enter();
++-        ImporterTopLevel scope = new ImporterTopLevel(ctxt);
++-
++-        Scriptable jsCtxt = Context.toObject(xsctxt, scope);
++-        scope.put("XSCRIPTCONTEXT", scope, jsCtxt);
++-
++-        Scriptable jsArgs = Context.toObject(
++-           new Object[0], scope);
++-        scope.put("ARGUMENTS", scope, jsArgs);
++-
++-        Context.exit();
++-        return scope;
++-    }
++-
++-    class closeHandler implements Runnable 
++-    {
++-        URL url;
++-        closeHandler( URL url )
++-        {
++-            this.url = url;
++-        }
++-        public void run()
++-        { 
++-            synchronized( BEING_EDITED )
++-            {
++-                Object o = BEING_EDITED.remove( this.url );
++-            }
++-        }
++-    }
++-}
++diff -urN scripting-old//java/com/sun/star/script/framework/provider/javascript/ScriptProviderForJavaScript.java scripting/java/com/sun/star/script/framework/provider/javascript/ScriptProviderForJavaScript.java
++--- scripting-old//java/com/sun/star/script/framework/provider/javascript/ScriptProviderForJavaScript.java	2011-06-28 08:26:37.000000000 +0000
+++++ scripting/java/com/sun/star/script/framework/provider/javascript/ScriptProviderForJavaScript.java	1970-01-01 00:00:00.000000000 +0000
++@@ -1,392 +0,0 @@
++-/************************************************************************* 
++-*
++- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++- * 
++- * Copyright 2000, 2010 Oracle and/or its affiliates.
++- *
++- * OpenOffice.org - a multi-platform office productivity suite
++- *
++- * This file is part of OpenOffice.org.
++- *
++- * OpenOffice.org is free software: you can redistribute it and/or modify
++- * it under the terms of the GNU Lesser General Public License version 3
++- * only, as published by the Free Software Foundation.
++- *
++- * OpenOffice.org is distributed in the hope that it will be useful,
++- * but WITHOUT ANY WARRANTY; without even the implied warranty of
++- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++- * GNU Lesser General Public License version 3 for more details
++- * (a copy is included in the LICENSE file that accompanied this code).
++- *
++- * You should have received a copy of the GNU Lesser General Public License
++- * version 3 along with OpenOffice.org.  If not, see
++- * <http://www.openoffice.org/license.html>
++- * for a copy of the LGPLv3 License.
++- *
++-************************************************************************/
++-package com.sun.star.script.framework.provider.javascript;
++-
++-import com.sun.star.uno.XComponentContext;
++-import com.sun.star.lang.XMultiComponentFactory;
++-import com.sun.star.lang.XMultiServiceFactory;
++-import com.sun.star.lang.XSingleServiceFactory;
++-import com.sun.star.frame.XModel;
++-import com.sun.star.registry.XRegistryKey;
++-import com.sun.star.comp.loader.FactoryHelper;
++-
++-import com.sun.star.document.XScriptInvocationContext;
++-import com.sun.star.reflection.InvocationTargetException;
++-
++-import java.net.URL;
++-
++-import com.sun.star.script.provider.XScript;
++-
++-import com.sun.star.script.provider.ScriptExceptionRaisedException;
++-import com.sun.star.script.provider.ScriptFrameworkErrorException;
++-import com.sun.star.script.provider.ScriptFrameworkErrorType;
++-
++-import com.sun.star.script.framework.log.LogUtils;
++-import com.sun.star.script.framework.provider.ScriptContext;
++-import com.sun.star.script.framework.provider.ClassLoaderFactory;
++-import com.sun.star.script.framework.provider.ScriptProvider;
++-import com.sun.star.script.framework.provider.ScriptEditor;
++-import com.sun.star.script.framework.container.ScriptMetaData;
++-
++-import org.mozilla.javascript.Context;
++-import org.mozilla.javascript.ImporterTopLevel;
++-import org.mozilla.javascript.Scriptable;
++-import org.mozilla.javascript.JavaScriptException;
++-
++-public class ScriptProviderForJavaScript
++-{
++-    public static class _ScriptProviderForJavaScript extends ScriptProvider
++-    {
++-        public _ScriptProviderForJavaScript(XComponentContext ctx)
++-        {
++-            super(ctx, "JavaScript");
++-        }
++-
++-        public XScript getScript( /*IN*/String scriptURI )
++-            throws com.sun.star.uno.RuntimeException,
++-                   ScriptFrameworkErrorException
++-        {
++-            ScriptMetaData scriptData = null;
++-            try
++-            {
++-                scriptData = getScriptData( scriptURI );
++-                ScriptImpl script = new ScriptImpl( m_xContext, scriptData, m_xModel, m_xInvocContext );
++-                return script;
++-            }
++-            catch ( com.sun.star.uno.RuntimeException re )
++-            {
++-                throw new ScriptFrameworkErrorException( "Failed to create script object: " + re.getMessage(), 
++-                    null, scriptData.getLanguageName(), language, ScriptFrameworkErrorType.UNKNOWN );
++-            }
++-        }
++-
++-        public boolean hasScriptEditor()
++-        {
++-            return true;
++-        }
++-
++-        public ScriptEditor getScriptEditor()
++-        {
++-            return ScriptEditorForJavaScript.getEditor();
++-        }
++-    }
++-
++-    /**
++-     * Returns a factory for creating the service.
++-     * This method is called by the <code>JavaLoader</code>
++-     * <p>
++-     *
++-     * @param  implName      the name of the implementation for which a service is desired
++-     * @param  multiFactory  the service manager to be used if needed
++-     * @param  regKey        the registryKey
++-     * @return               returns a <code>XSingleServiceFactory</code> for creating
++-     *                          the component
++-     * @see                  com.sun.star.comp.loader.JavaLoader
++-     */
++-    public static XSingleServiceFactory __getServiceFactory( String implName,
++-            XMultiServiceFactory multiFactory,
++-            XRegistryKey regKey )
++-    {
++-        XSingleServiceFactory xSingleServiceFactory = null;
++-
++-        if ( implName.equals( ScriptProviderForJavaScript._ScriptProviderForJavaScript.class.getName() ) )
++-        {
++-            xSingleServiceFactory = FactoryHelper.getServiceFactory(
++-                ScriptProviderForJavaScript._ScriptProviderForJavaScript.class,
++-                "com.sun.star.script.provider.ScriptProviderForJavaScript",
++-                multiFactory,
++-                regKey );
++-        }
++-
++-        return xSingleServiceFactory;
++-    }
++-
++-
++-    /**
++-     * Writes the service information into the given registry key.
++-     * This method is called by the <code>JavaLoader</code>
++-     * <p>
++-     *
++-     * @param  regKey  the registryKey
++-     * @return         returns true if the operation succeeded
++-     * @see            com.sun.star.comp.loader.JavaLoader
++-     */
++-    public static boolean __writeRegistryServiceInfo( XRegistryKey regKey )
++-    {
++-        String impl = "com.sun.star.script.framework.provider.javascript." +
++-            "ScriptProviderForJavaScript$_ScriptProviderForJavaScript";
++-
++-        String service1 = "com.sun.star.script.provider." +
++-            "ScriptProvider";
++-        String service2 = "com.sun.star.script.provider." +
++-            "LanguageScriptProvider";
++-        String service3 = "com.sun.star.script.provider." +
++-            "ScriptProviderForJavaScript";
++-        String service4 = "com.sun.star.script.browse." +
++-            "BrowseNode";
++-
++-        if ( FactoryHelper.writeRegistryServiceInfo(impl, service1, regKey) &&
++-            FactoryHelper.writeRegistryServiceInfo(impl, service2, regKey) &&
++-            FactoryHelper.writeRegistryServiceInfo(impl, service3, regKey) &&
++-            FactoryHelper.writeRegistryServiceInfo(impl, service4, regKey) )
++-        {
++-                return true;
++-        }
++-        return false;
++-    }
++-}
++-class ScriptImpl implements XScript
++-{
++-    private ScriptMetaData metaData;
++-    private XComponentContext m_xContext;
++-    private XMultiComponentFactory m_xMultiComponentFactory;
++-    private XModel m_xModel;
++-    private XScriptInvocationContext m_xInvocContext;
++-
++-    ScriptImpl( XComponentContext ctx, ScriptMetaData metaData, XModel xModel, XScriptInvocationContext xInvocContext ) throws com.sun.star.uno.RuntimeException
++-    {
++-        this.metaData = metaData;
++-        this.m_xContext = ctx;
++-        this.m_xModel = xModel;
++-        this.m_xInvocContext = xInvocContext;
++-        try
++-        {
++-            this.m_xMultiComponentFactory = m_xContext.getServiceManager();
++-        }
++-        catch ( Exception e )
++-        {
++-            LogUtils.DEBUG( LogUtils.getTrace( e ) );
++-            throw new com.sun.star.uno.RuntimeException(
++-                "Error constructing  ScriptImpl: [javascript]");
++-        }
++-        LogUtils.DEBUG("ScriptImpl [javascript] script data = " + metaData );
++-    }
++-
++-        /**
++-         *  The invoke method of the ScriptProviderForJavaScript runs the
++-         *  JavaScript script specified in the URI
++-         *
++-         *
++-         *
++-         * @param aParams           All parameters; pure, out params are
++-         *                          undefined in sequence, i.e., the value
++-         *                          has to be ignored by the callee
++-         *
++-         * @param aOutParamIndex    Out indices
++-         *
++-         * @param aOutParam         Out parameters
++-         *
++-         * @returns                 The value returned from the function
++-         *                          being invoked
++-         *
++-         * @throws ScriptFrameworkErrorException If there is no matching script name
++-         *
++-         *
++-         * @throws InvocationTargetException If the running script throws
++-         *                                   an exception this information
++-         *                                   is captured and rethrown as
++-         *                                   ScriptErrorRaisedException or
++-         *                                   ScriptExceptionRaisedException
++-         */
++-
++-        public Object invoke(  
++-                               /*IN*/Object[]  params,
++-                               /*OUT*/short[][]  aOutParamIndex,
++-                               /*OUT*/Object[][]  aOutParam )
++-
++-        throws ScriptFrameworkErrorException, InvocationTargetException
++-        {
++-            // Initialise the out paramters - not used at the moment
++-            aOutParamIndex[0] = new short[0];
++-            aOutParam[0] = new Object[0];
++-
++-
++-
++-            ClassLoader cl = null;
++-            URL sourceUrl = null;
++-            try {
++-                cl = ClassLoaderFactory.getURLClassLoader( metaData );
++-                sourceUrl = metaData.getSourceURL();
++-            }
++-            catch ( java.net.MalformedURLException mfu )
++-            {
++-                throw new ScriptFrameworkErrorException( 
++-                    mfu.getMessage(), null, 
++-                    metaData.getLanguageName(), metaData.getLanguage(),
++-                    ScriptFrameworkErrorType.MALFORMED_URL );
++-            }
++-            catch ( com.sun.star.script.framework.provider.NoSuitableClassLoaderException nsc )
++-            {
++-                // Framework error
++-                throw new ScriptFrameworkErrorException( 
++-                    nsc.getMessage(), null,
++-                    metaData.getLanguageName(), metaData.getLanguage(),
++-                    ScriptFrameworkErrorType.UNKNOWN );
++-            }
++-            Context ctxt = null;
++-
++-            try 
++-            { 
++-                String editorURL = sourceUrl.toString();
++-                Object result = null;
++-                String source = null;
++-                ScriptEditorForJavaScript editor =
++-                    ScriptEditorForJavaScript.getEditor(
++-                        metaData.getSourceURL() );
++-
++-                if (editor != null)
++-                {
++-                    editorURL = editor.getURL();
++-                    result = editor.execute();
++-                    if ( result != null  && 
++-                         result.getClass().getName().equals( "org.mozilla.javascript.Undefined" ) )
++-                    {
++-                        // Always return a string
++-                        // TODO revisit
++-                        return Context.toString( result );
++-                    }
++-    
++-                }
++-
++-                if (editor != null && editor.isModified() == true)
++-                {
++-                    LogUtils.DEBUG("GOT A MODIFIED SOURCE");
++-                    source = editor.getText();
++-                }
++-                else
++-                {
++-                    metaData.loadSource();
++-                    source =  metaData.getSource();
++-
++-                }
++-
++-                if ( source == null || source.length() == 0 ) {
++-                    throw new ScriptFrameworkErrorException( 
++-                        "Failed to read source data for script", null,
++-                        metaData.getLanguageName(), metaData.getLanguage(),
++-                        ScriptFrameworkErrorType.UNKNOWN );
++-                }
++-
++-                /* Set the context ClassLoader on the current thread to
++-                   be our custom ClassLoader. This is the suggested method
++-                   for setting up a ClassLoader to be used by the Rhino
++-                   interpreter
++-                 */
++-                if (cl != null) {
++-                    Thread.currentThread().setContextClassLoader(cl);
++-                }
++-
++-                // Initialize a Rhino Context object
++-                ctxt = Context.enter();
++-
++-                /* The ImporterTopLevel ensures that importClass and
++-                   importPackage statements work in Javascript scripts
++-                   Make the XScriptContext available as a global variable
++-                   to the script
++-                 */
++-                ImporterTopLevel scope = new ImporterTopLevel(ctxt);
++-
++-                Scriptable jsCtxt = Context.toObject(
++-                   ScriptContext.createContext(
++-                       m_xModel, m_xInvocContext, m_xContext,
++-                       m_xMultiComponentFactory), scope);
++-                scope.put("XSCRIPTCONTEXT", scope, jsCtxt);
++-
++-                Scriptable jsArgs = Context.toObject(params, scope);
++-                scope.put("ARGUMENTS", scope, jsArgs);
++-
++-                result = ctxt.evaluateString(scope,
++-                        source, "<stdin>", 1, null);
++-                result = ctxt.toString(result);
++-                return result;
++-            }
++-            catch (JavaScriptException jse) {
++-                LogUtils.DEBUG( "Caught JavaScriptException exception for JavaScript type = " + jse.getClass() );
++-                String message = jse.getMessage();
++-                //int lineNo = jse.getLineNumber();
++-                Object wrap = jse.getValue();
++-                LogUtils.DEBUG( "\t message  " + message );
++-                LogUtils.DEBUG( "\t wrapped type " + wrap.getClass() );
++-                LogUtils.DEBUG( "\t wrapped toString  " + wrap.toString() );
++-                ScriptExceptionRaisedException se = new 
++-                    ScriptExceptionRaisedException( message );
++-                se.lineNum = -1;
++-                se.language = "JavaScript";
++-                se.scriptName = metaData.getLanguageName();
++-                se.exceptionType = wrap.getClass().getName();
++-                se.language = metaData.getLanguage();
++-                LogUtils.DEBUG( "ExceptionRaised exception  "  );
++-                LogUtils.DEBUG( "\t message  " + se.getMessage() );
++-                LogUtils.DEBUG( "\t lineNum  " + se.lineNum );
++-                LogUtils.DEBUG( "\t language  " + se.language );
++-                LogUtils.DEBUG( "\t scriptName  " + se.scriptName );
++-                raiseEditor( se.lineNum );
++-                throw new InvocationTargetException( "JavaScript uncaught exception" + metaData.getLanguageName(), null, se );
++-            }
++-            catch (Exception ex) {
++-                LogUtils.DEBUG("Caught Exception " + ex );
++-                LogUtils.DEBUG("rethrowing as ScriptFramework error"  );
++-                throw new ScriptFrameworkErrorException( 
++-                    ex.getMessage(), null,
++-                    metaData.getLanguageName(), metaData.getLanguage(),
++-                    ScriptFrameworkErrorType.UNKNOWN );
++-            }
++-            finally {
++-                if ( ctxt != null )
++-                {
++-                    Context.exit();
++-                }
++-            }
++-        }
++-
++-        private void raiseEditor( int lineNum )
++-        {
++-            ScriptEditorForJavaScript editor = null;
++-            try
++-            {
++-                URL sourceUrl = metaData.getSourceURL(); 
++-                editor = ScriptEditorForJavaScript.getEditor( sourceUrl );
++-                if ( editor == null )
++-                {
++-                    editor = ScriptEditorForJavaScript.getEditor();
++-                    editor.edit( 
++-                        ScriptContext.createContext(m_xModel, m_xInvocContext,
++-                            m_xContext, m_xMultiComponentFactory), metaData );
++-                    editor = ScriptEditorForJavaScript.getEditor( sourceUrl );
++-                } 
++-                if ( editor != null )
++-                {
++-                    System.out.println("** Have raised IDE for JavaScript, calling indicateErrorLine for line " + lineNum );
++-                    editor.indicateErrorLine( lineNum );
++-                }
++-            }
++-            catch( Exception ignore )
++-            {
++-            }
++-        } 
++-}
++-        
++diff -urN scripting-old//java/com/sun/star/script/framework/provider/javascript/template.js scripting/java/com/sun/star/script/framework/provider/javascript/template.js
++--- scripting-old//java/com/sun/star/script/framework/provider/javascript/template.js	2011-06-28 08:26:37.000000000 +0000
+++++ scripting/java/com/sun/star/script/framework/provider/javascript/template.js	1970-01-01 00:00:00.000000000 +0000
++@@ -1,37 +0,0 @@
++-// Hello World in JavaScript
++-// Import standard OpenOffice.org API classes. For more information on
++-// these classes and the OpenOffice.org API, see the OpenOffice.org
++-// Developers Guide at:
++-// http://api.openoffice.org/
++-
++-importClass(Packages.com.sun.star.uno.UnoRuntime);
++-importClass(Packages.com.sun.star.text.XTextDocument);
++-importClass(Packages.com.sun.star.text.XText);
++-importClass(Packages.com.sun.star.text.XTextRange);
++-importClass(Packages.com.sun.star.frame.XModel);
++-
++-// Import XScriptContext class. An instance of this class is available
++-// to all JavaScript scripts in the global variable "XSCRIPTCONTEXT". This
++-// variable can be used to access the document for which this script
++-// was invoked.
++-// 
++-// Methods available are: 
++-// 
++-//   XSCRIPTCONTEXT.getDocument() returns XModel
++-//   XSCRIPTCONTEXT.getInvocationContext() returns XScriptInvocationContext or NULL
++-//   XSCRIPTCONTEXT.getDesktop() returns XDesktop
++-//   XSCRIPTCONTEXT.getComponentContext() returns XComponentContext
++-//
++-// For more information on using this class see the scripting
++-// developer guides at:
++-// 
++-//   http://api.openoffice.org/docs/DevelopersGuide/ScriptingFramework/ScriptingFramework.xhtml
++-//
++-
++-oDoc = UnoRuntime.queryInterface(XModel,XSCRIPTCONTEXT.getInvocationContext());
++-if ( !oDoc )
++-  oDoc = XSCRIPTCONTEXT.getDocument();
++-xTextDoc = UnoRuntime.queryInterface(XTextDocument,oDoc);
++-xText = xTextDoc.getText();
++-xTextRange = xText.getEnd();
++-xTextRange.setString( "Hello World (in JavaScript)" );
++diff -urN scp2-old//source/ooo/file_ooo.scp scp2/source/ooo/file_ooo.scp
++--- scp2-old//source/ooo/file_ooo.scp	2011-06-28 08:32:41.000000000 +0000
+++++ scp2/source/ooo/file_ooo.scp	2011-06-28 08:33:19.000000000 +0000
++@@ -453,10 +453,6 @@
++ #endif
++ 
++ #ifdef SOLAR_JAVA
++-STD_JAR_FILE( gid_File_Jar_Js, js )
++-#endif
++-
++-#ifdef SOLAR_JAVA
++ 
++ #ifndef MACOSX
++ 
++@@ -503,7 +499,6 @@
++ UNO_JAR_FILE( gid_File_Jar_Scriptframework, ScriptFramework )
++ UNO_JAR_FILE( gid_File_Jar_Scriptproviderforbeanshell, ScriptProviderForBeanShell )
++ UNO_JAR_FILE( gid_File_Jar_Scriptproviderforjava, ScriptProviderForJava )
++-UNO_JAR_FILE( gid_File_Jar_Scriptproviderforjavascript, ScriptProviderForJavaScript )
++ #endif
++ 
++ #ifdef SOLAR_JAVA
++@@ -1261,12 +1256,6 @@
++ End
++ #endif
++ 
++-File gid_File_Scripts_Javascript
++-    Dir = gid_Dir_Share_Scripts;
++-    ARCHIVE_TXT_FILE_BODY;
++-    Name = "ScriptsJavaScript.zip";
++-End
++-
++ // new user interface configuration files
++ File gid_File_Share_Config_Sofficecfg_uiconfig_Zip
++     TXT_FILE_BODY;
+--- libreoffice-3.4.0/libreoffice-build/patches/dev300/apply-old	2011-06-28 11:17:59.000000000 +0000
++++ libreoffice-3.4.0/libreoffice-build/patches/dev300/apply	2011-06-28 11:18:15.000000000 +0000
+@@ -2390,3 +2390,5 @@
+ [ Gcc46 ]
+ gcc4.6.0.diff
+ 
++[ TemporaryHacks ]
++disable-rhino.diff
diff --git a/patches/series b/patches/series
index 8d8e176..efd170b 100644
--- a/patches/series
+++ b/patches/series
@@ -12,3 +12,5 @@ gcc4.6.0.diff
 odk-jni-include.diff
 disable-optional-outplace-ole.diff
 jurt-soffice-location.diff
+disable-rhino.diff
+bsh-hardcode-path.diff

-- 
LibreOffice packaging repository


Reply to: