From 812d4cea8f79d400ef9bc3604ccecb2fcd8f7a0c Mon Sep 17 00:00:00 2001
From: James Meyer <james.meyer@operamail.com>
Date: Thu, 1 Nov 2012 15:48:19 -0500
Subject: rhino: recompile for zoneminder

refs #857
---
 abs/extra/rhino/PKGBUILD         | 73 ++++++++++++++++++++++++++-----
 abs/extra/rhino/rhino            |  8 ++++
 abs/extra/rhino/rhino-debugger   |  8 ++++
 abs/extra/rhino/rhino-debugger.1 | 60 ++++++++++++++++++++++++++
 abs/extra/rhino/rhino-jsc        |  8 ++++
 abs/extra/rhino/rhino-jsc.1      | 67 +++++++++++++++++++++++++++++
 abs/extra/rhino/rhino.1          | 93 ++++++++++++++++++++++++++++++++++++++++
 7 files changed, 306 insertions(+), 11 deletions(-)
 create mode 100644 abs/extra/rhino/rhino
 create mode 100644 abs/extra/rhino/rhino-debugger
 create mode 100644 abs/extra/rhino/rhino-debugger.1
 create mode 100644 abs/extra/rhino/rhino-jsc
 create mode 100644 abs/extra/rhino/rhino-jsc.1
 create mode 100644 abs/extra/rhino/rhino.1

diff --git a/abs/extra/rhino/PKGBUILD b/abs/extra/rhino/PKGBUILD
index 27d7c46..c2637c8 100644
--- a/abs/extra/rhino/PKGBUILD
+++ b/abs/extra/rhino/PKGBUILD
@@ -1,18 +1,69 @@
+# $Id: PKGBUILD 166675 2012-09-15 10:31:01Z guillaume $
 # Maintainer: Andreas Radke <andyrtr@archlinux.org>
-# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Guillaume ALAUX <guillaume@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
 
-pkgname=rhino
-pkgver=1.7R1
+pkgbase=rhino
+pkgname=('java-rhino' 'rhino' 'rhino-javadoc')
+pkgver=1.7R4
 pkgrel=1
-pkgdesc="Open-source implementation of JavaScript written entirely in Java"
-arch=('i686' 'x86_64')
+arch=('any')
 url="http://www.mozilla.org/rhino/"
-license=('MPL' 'GPL2')
-source=(ftp://ftp.mozilla.org/pub/mozilla.org/js/rhino1_7R1.zip)
-md5sums=('613eed8201d37be201805e5048ebb0c3')
+license=('MPL')
+makedepends=('apache-ant')
+source=(https://github.com/downloads/mozilla/rhino/${pkgbase}${pkgver/./_}.zip
+        http://mirrors.axint.net/apache/xmlbeans/binaries/xmlbeans-2.5.0.tgz
+        rhino
+        rhino.1
+        rhino-debugger
+        rhino-debugger.1
+        rhino-jsc
+        rhino-jsc.1)
+md5sums=('ad67a3dff135e3a70f0c3528a2d6edf2'
+         '982e8e3d36aa5f7839f7675adc2b0c53'
+         '2006b1ac37d162597b959acd685a4bee'
+         '9c6bfda92befa45d484c88f9c7a2403b'
+         '08d1ab306f0e07bc9a93afead55d54e8'
+         '6c86e6746df7a327b46196a2c4942e0f'
+         'dad268ba00bb4182045507d4017d9815'
+         'af86e6abdf97ee68958ece356a9a7bc1')
 
 build() {
-  cd ${srcdir}/rhino1_7R1
-  install -m755 -d ${pkgdir}/usr/share/java
-  install -m644 js.jar ${pkgdir}/usr/share/java/ || return 1
+  cd ${srcdir}/${pkgbase}${pkgver/./_}
+  ant \
+    -Dxbean.jar=${srcdir}/xmlbeans-2.5.0/lib/xbean.jar \
+    -Djsr173.jar=${srcdir}/xmlbeans-2.5.0/lib/jsr173_1.0_api.jar \
+    jar \
+    javadoc
+}
+
+# As explained on the build.xml, tests are difficult to run from CLI. We skip them.
+
+package_java-rhino() {
+  pkgdesc="Open-source implementation of JavaScript written entirely in Java - JAR"
+  depends=('java-runtime-headless')
+
+  cd ${srcdir}/${pkgbase}${pkgver/./_}/build/${pkgbase}${pkgver/./_}
+  install -Dm644 js.jar ${pkgdir}/usr/share/java/js-${pkgver}.jar
+  ln -s js-${pkgver}.jar ${pkgdir}/usr/share/java/js.jar
+}
+
+package_rhino() {
+  pkgdesc="Open-source implementation of JavaScript written entirely in Java"
+  depends=('java-rhino' 'java-jline')
+
+  cd ${srcdir}
+
+  install -dm755 ${pkgdir}/usr/bin
+  install -m755 rhino rhino-debugger rhino-jsc ${pkgdir}/usr/bin/
+  install -dm755 ${pkgdir}/usr/share/man/man1
+  install -m755 rhino.1 rhino-debugger.1 rhino-jsc.1 ${pkgdir}/usr/share/man/man1/
+}
+
+package_rhino-javadoc() {
+  pkgdesc="Open-source implementation of JavaScript written entirely in Java - Javadoc"
+
+  cd ${srcdir}/${pkgbase}${pkgver/./_}/build/${pkgbase}${pkgver/./_}
+  install -m755 -d ${pkgdir}/usr/share/${pkgbase}
+  cp -r javadoc ${pkgdir}/usr/share/${pkgbase}
 }
diff --git a/abs/extra/rhino/rhino b/abs/extra/rhino/rhino
new file mode 100644
index 0000000..f56ae62
--- /dev/null
+++ b/abs/extra/rhino/rhino
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+JAVA_CMD="/usr/bin/java"
+JAVA_OPTS=""
+JAVA_CLASSPATH="/usr/share/java/js.jar:/usr/share/java/jline.jar"
+JAVA_MAIN="org.mozilla.javascript.tools.shell.Main"
+
+$JAVA_CMD $JAVA_OPTS -classpath $JAVA_CLASSPATH $JAVA_MAIN "$@"
diff --git a/abs/extra/rhino/rhino-debugger b/abs/extra/rhino/rhino-debugger
new file mode 100644
index 0000000..671778f
--- /dev/null
+++ b/abs/extra/rhino/rhino-debugger
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+JAVA_CMD="/usr/bin/java"
+JAVA_OPTS=""
+JAVA_CLASSPATH="/usr/share/java/js.jar"
+JAVA_MAIN="org.mozilla.javascript.tools.debugger.Main"
+
+$JAVA_CMD $JAVA_OPTS -classpath $JAVA_CLASSPATH $JAVA_MAIN "$@"
diff --git a/abs/extra/rhino/rhino-debugger.1 b/abs/extra/rhino/rhino-debugger.1
new file mode 100644
index 0000000..24cbbab
--- /dev/null
+++ b/abs/extra/rhino/rhino-debugger.1
@@ -0,0 +1,60 @@
+.\"                                      Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH RHINO-DEBUGGER 1 "Friday  17, 2009"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh        disable hyphenation
+.\" .hy        enable hyphenation
+.\" .ad l      left justify
+.\" .ad b      justify to both left and right margins
+.\" .nf        disable filling
+.\" .fi        enable filling
+.\" .br        insert line break
+.\" .sp <n>    insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+rhino-debugger \- invokes the rhino JavaScript debugger GUI
+
+.SH SYNOPSIS
+.B rhino-debugger
+.I [options]
+.I script_filename_or_url
+.I [script_arguments]
+
+.SH DESCRIPTION
+This manual page documents briefly the
+.B rhino-debugger
+command.
+This manual page was written for the Debian distribution because the original 
+program does not have a manual page. It is written according to the html documentation.
+.PP
+\fBrhino-debugger\fP is a start script for the rhino JavaScript debugger. The Rhino JavaScript debugger is a GUI that allows debugging of interpreted JavaScript scripts run in Rhino. Note that this debugger will not work with JavaScript scripts run in the mozilla browser since Rhino is not the engine used in such environments.
+
+.SH OPTIONS
+
+.IP -e\ \fIscript_source\fP
+Executes script_source as a JavaScript script.
+.IP -f\ \fIscript_filename_or_url\fP
+Reads script_filename_or_url content and execute it as a JavaScript script.
+.IP -opt,\ -O\ \fIoptLevel\fP
+Optimizes at level optLevel, which must be an integer between 0 and 9. 
+.IP -version\ \fIversionNumber\fP
+Specifies the language version to compile with. The string versionNumber must be one of 100, 110, 120, 130, or 140. See JavaScript Language Versions for more information on language versions. 
+.IP -strict
+Enable strict mode.
+
+.SH EXAMPLE
+
+Example debugging the NervousText.js applet written in JavaScript. The example is provided in the librhino-java-doc package.
+
+$ rhino-debugger NervousText.js 
+
+.SH SEE ALSO
+The online documentation under http://www.mozilla.org/rhino/debugger.html
+
+.SH AUTHOR
+This manual page was written by Damien Raude-Morvan <drazzib@debian.org>,
+for the Debian project (but may be used by others).
diff --git a/abs/extra/rhino/rhino-jsc b/abs/extra/rhino/rhino-jsc
new file mode 100644
index 0000000..0f47a61
--- /dev/null
+++ b/abs/extra/rhino/rhino-jsc
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+JAVA_CMD="/usr/bin/java"
+JAVA_OPTS=""
+JAVA_CLASSPATH="/usr/share/java/js.jar"
+JAVA_MAIN="org.mozilla.javascript.tools.jsc.Main"
+
+$JAVA_CMD $JAVA_OPTS -classpath $JAVA_CLASSPATH $JAVA_MAIN "$@"
diff --git a/abs/extra/rhino/rhino-jsc.1 b/abs/extra/rhino/rhino-jsc.1
new file mode 100644
index 0000000..6b9face
--- /dev/null
+++ b/abs/extra/rhino/rhino-jsc.1
@@ -0,0 +1,67 @@
+.\"                                      Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH RHINO-JSC 1 "February  12, 2005"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh        disable hyphenation
+.\" .hy        enable hyphenation
+.\" .ad l      left justify
+.\" .ad b      justify to both left and right margins
+.\" .nf        disable filling
+.\" .fi        enable filling
+.\" .br        insert line break
+.\" .sp <n>    insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+rhino-jsc \- invokes the rhino JavaScript compiler
+
+.SH SYNOPSIS
+.B rhino-jsc
+.I [options]
+.I file1.js
+.I [file2.js\&.\&.\&.]
+
+.SH DESCRIPTION
+This manual page documents briefly the
+.B rhino-jsc
+command.
+This manual page was written for the Debian distribution because the original 
+program does not have a manual page. It is written according to the html documentation.
+.PP
+\fBrhino-jsc\fP is a start script for the rhino JavaScript compiler. The JavaScript compiler translates JavaScript source into Java class files. The resulting Java class files can then be loaded and executed at another time, providing a convenient method for transferring JavaScript, and for avoiding translation cost.
+Note that the top-level functions available to the shell (such as print) are not available to compiled scripts when they are run outside the shell. 
+
+.SH OPTIONS
+
+.IP -extends\ \fIjava_class_name\fP
+Specifies that a java class extending the Java class java_class_name should be generated from the incoming JavaScript source file. Each global function in the source file is made a method of the generated class, overriding any methods in the base class by the same name.
+.IP -implements\ \fIjava_intf_name\fP
+Specifies that a java class implementing the Java interface java_intf_name should be generated from the incoming JavaScript source file. Each global function in the source file is made a method of the generated class, implementing any methods in the interface by the same name.
+.IP -debug,\ -g 
+Specifies that debug information should be generated. May not be combined with optimization at an optLevel greater than zero.
+.IP -nosource 
+Does not save the source in the class file. Functions and scripts compiled this way cannot be decompiled. This option can be used to avoid distributing source or simply to save space in the resulting class file.
+.IP -o\ \fIoutputFile\fP
+Writes the class file to the given file (which should end in .class). The string outputFile must be a writable filename.
+.IP -opt,\ -O\ \fIoptLevel\fP
+Optimizes at level optLevel, which must be an integer between 0 and 9. 
+.IP -package\ \fIpackageName\fP
+Specifies the package to generate the class into. The string packageName must be composed of valid identifier characters optionally separated by periods.
+.IP -version\ \fIversionNumber\fP
+Specifies the language version to compile with. The string versionNumber must be one of 100, 110, 120, 130, or 140. See JavaScript Language Versions for more information on language versions. 
+
+.SH EXAMPLE
+
+Example compiling the NervousText.js applet written in JavaScript. The example is provided in the librhino-java-doc package.
+
+$ rhino-jsc \-extends java.applet.Applet \-implements java.lang.Runnable NervousText.js 
+
+.SH SEE ALSO
+The online documentation under http://www.mozilla.org/rhino/jsc.html
+
+.SH AUTHOR
+This manual page was written by Wolfgang Baer <WBaer@gmx.de>,
+for the Debian project (but may be used by others).
diff --git a/abs/extra/rhino/rhino.1 b/abs/extra/rhino/rhino.1
new file mode 100644
index 0000000..99fdb05
--- /dev/null
+++ b/abs/extra/rhino/rhino.1
@@ -0,0 +1,93 @@
+.\"                                      Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH RHINO 1 "February  12, 2005"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh        disable hyphenation
+.\" .hy        enable hyphenation
+.\" .ad l      left justify
+.\" .ad b      justify to both left and right margins
+.\" .nf        disable filling
+.\" .fi        enable filling
+.\" .br        insert line break
+.\" .sp <n>    insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+rhino \- invokes the JavaScript shell for running scripts in batch mode or interactive
+
+.SH SYNOPSIS
+.B rhino
+.I [options]
+.I script_filename_or_url
+.I [script_arguments]
+
+.SH DESCRIPTION
+This manual page documents briefly the
+.B rhino
+command.
+This manual page was written for the Debian distribution because the original 
+program does not have a manual page. It is written according to the html documentation.
+.PP
+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
+.\" \fI<whatever>\fP escape sequences to invode bold face and italics, 
+.\" respectively.
+\fBrhino\fP is a start script for the rhino JavaScript shell which provides a simple way 
+to run scripts in batch mode or an interactive environment for exploratory programming.
+
+.SH OPTIONS
+
+.IP -e\ \fIscript_source\fP
+Executes script_source as a JavaScript script.
+.IP -f\ \fIscript_filename_or_url\fP
+Reads script_filename_or_url content and execute it as a JavaScript script.
+.IP -opt,\ -O\ \fIoptLevel\fP
+Optimizes at level optLevel, which must be an integer between -1 and 9. -1 means Interpretive mode is always used. 0 means no optimizations whereas 9 means all optimizations are performed.
+.IP -version\ \fIversionNumber\fP
+Specifies the language version to compile with. The string versionNumber must be one of 100, 110, 120, 130, or 140. See JavaScript Language Versions for more information on language versions. 
+.IP -strict
+Enable strict mode.
+
+.SH PREDEFINED PROPERTIES
+
+Scripts executing in the shell have access to some additional properties of the top-level object.
+
+.IP arguments
+The arguments object is an array containing the strings of all the arguments given at the command line when the shell was invoked.
+.IP help()
+Executing the help function will print usage and help messages.
+.IP defineClass(\fIclassName\fP)
+Define an extension using the Java class named with the string argument className. Uses ScriptableObject.defineClass() to define the extension.
+.IP deserialize(\fIfilename\fP)
+Restore from the specified file an object previously written by a call to serialize.
+.IP load(\fI[filename,\&.\&.\&.]\fP)
+Load JavaScript source files named by string arguments. If multiple arguments are given, each file is read in and executed in turn.
+.IP loadClass(\fIclassName\fP)
+Load and execute the class named by the string argument className. The class must be a class that implements the Script interface, as will any script compiled by jsc.
+.IP print(\fI[expr\&.\&.\&.]\fP)
+Evaluate and print expressions. Evaluates each expression, converts the result to a string, and prints it.
+.IP readFile(\fIpath[,characterCoding]\fP)
+Read given file and convert its bytes to a string using the specified character coding or default character coding if explicit coding argument is not given.
+.IP readUrl(\fIurl[,characterCoding]\fP)
+Open an input connection to the given string url, read all its bytes and convert them to a string using the specified character coding or default character coding if explicit coding argument is not given.
+.IP runCommand(\fIcommandName,[arg,\&.\&.\&.][options]\fP)
+Execute the specified command with the given argument and options as a separate process and return the exit status of the process. For details, see JavaDoc for org.mozilla.javascript.tools.shell.Global#runCommand.
+.IP serialize(\fIobject,filename\fP)
+Serialize the given object to the specified file.
+.IP spawn(\fIfunctionOrScript\fP)
+Run the given function or script in a different thread.
+.IP sync(\fIfunction\fP)
+creates a synchronized function (in the sense of a Java synchronized method) from an existing function. The new function synchronizes on the this object of its invocation.
+.IP quit()
+Quit shell. The shell will also quit in interactive mode if an end-of-file character is typed at the prompt.
+.IP version(\fI[number]\fP)
+Get or set JavaScript version number. If no argument is supplied, the current version number is returned. If an argument is supplied, it is expected to be one of 100, 110, 120, 130, or 140 to indicate JavaScript version 1.0, 1.1, 1.2, 1.3, or 1.4 respectively.
+
+.SH SEE ALSO
+The online documentation under http://www.mozilla.org/rhino/shell.html
+
+.SH AUTHOR
+This manual page was written by Wolfgang Baer <WBaer@gmx.de>,
+for the Debian project (but may be used by others).
-- 
cgit v0.12

