diff options
-rw-r--r-- | libre/clojure/LICENSE.txt | 231 | ||||
-rw-r--r-- | libre/clojure/PKGBUILD | 58 | ||||
-rw-r--r-- | libre/clojure/clj.sh | 138 | ||||
-rw-r--r-- | libre/clojure/clojure-replace_asm.patch | 186 | ||||
-rw-r--r-- | libre/clojure/clojure.install | 5 | ||||
-rw-r--r-- | libre/clojure/clojure.sh | 1 |
6 files changed, 619 insertions, 0 deletions
diff --git a/libre/clojure/LICENSE.txt b/libre/clojure/LICENSE.txt new file mode 100644 index 000000000..6d2f00695 --- /dev/null +++ b/libre/clojure/LICENSE.txt @@ -0,0 +1,231 @@ +Eclipse Public License - v 1.0 + +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE +PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF +THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial code and + documentation distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + + i) changes to the Program, and + + ii) additions to the Program; + +where such changes and/or additions to the Program originate from and +are distributed by that particular Contributor. A Contribution +'originates' from a Contributor if it was added to the Program by such +Contributor itself or anyone acting on such Contributor's +behalf. Contributions do not include additions to the Program which: +(i) are separate modules of software distributed in conjunction with +the Program under their own license agreement, and (ii) are not +derivative works of the Program. + +"Contributor" means any person or entity that distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor +which are necessarily infringed by the use or sale of its Contribution +alone or when combined with the Program. + +"Program" means the Contributions distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this +Agreement, including all Contributors. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free + copyright license to reproduce, prepare derivative works of, + publicly display, publicly perform, distribute and sublicense the + Contribution of such Contributor, if any, and such derivative + works, in source code and object code form. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such + Contributor, if any, in source code and object code form. This + patent license shall apply to the combination of the Contribution + and the Program if, at the time the Contribution is added by the + Contributor, such addition of the Contribution causes such + combination to be covered by the Licensed Patents. The patent + license shall not apply to any other combinations which include + the Contribution. No hardware per se is licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe + the patent or other intellectual property rights of any other + entity. Each Contributor disclaims any liability to Recipient for + claims brought by any other entity based on infringement of + intellectual property rights or otherwise. As a condition to + exercising the rights and licenses granted hereunder, each + Recipient hereby assumes sole responsibility to secure any other + intellectual property rights needed, if any. For example, if a + third party patent license is required to allow Recipient to + distribute the Program, it is Recipient's responsibility to + acquire that license before distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + +3. REQUIREMENTS + +A Contributor may choose to distribute the Program in object code form +under its own license agreement, provided that: + + a) it complies with the terms and conditions of this Agreement; and + + b) its license agreement: + + i) effectively disclaims on behalf of all Contributors all + warranties and conditions, express and implied, including + warranties or conditions of title and non-infringement, and + implied warranties or conditions of merchantability and fitness + for a particular purpose; + + ii) effectively excludes on behalf of all Contributors all + liability for damages, including direct, indirect, special, + incidental and consequential damages, such as lost profits; + + iii) states that any provisions which differ from this Agreement + are offered by that Contributor alone and not by any other + party; and + + iv) states that source code for the Program is available from such + Contributor, and informs licensees how to obtain it in a + reasonable manner on or through a medium customarily used for + software exchange. + +When the Program is made available in source code form: + + a) it must be made available under this Agreement; and + + b) a copy of this Agreement must be included with each copy of the Program. + +Contributors may not remove or alter any copyright notices contained +within the Program. + +Each Contributor must identify itself as the originator of its +Contribution, if any, in a manner that reasonably allows subsequent +Recipients to identify the originator of the Contribution. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain +responsibilities with respect to end users, business partners and the +like. While this license is intended to facilitate the commercial use +of the Program, the Contributor who includes the Program in a +commercial product offering should do so in a manner which does not +create potential liability for other Contributors. Therefore, if a +Contributor includes the Program in a commercial product offering, +such Contributor ("Commercial Contributor") hereby agrees to defend +and indemnify every other Contributor ("Indemnified Contributor") +against any losses, damages and costs (collectively "Losses") arising +from claims, lawsuits and other legal actions brought by a third party +against the Indemnified Contributor to the extent caused by the acts +or omissions of such Commercial Contributor in connection with its +distribution of the Program in a commercial product offering. The +obligations in this section do not apply to any claims or Losses +relating to any actual or alleged intellectual property +infringement. In order to qualify, an Indemnified Contributor must: a) +promptly notify the Commercial Contributor in writing of such claim, +and b) allow the Commercial Contributor to control, and cooperate with +the Commercial Contributor in, the defense and any related settlement +negotiations. The Indemnified Contributor may participate in any such +claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those +performance claims and warranties, and if a court requires any other +Contributor to pay any damages as a result, the Commercial Contributor +must pay those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS +PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY +WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY +OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely +responsible for determining the appropriateness of using and +distributing the Program and assumes all risks associated with its +exercise of rights under this Agreement , including but not limited to +the risks and costs of program errors, compliance with applicable +laws, damage to or loss of data, programs or equipment, and +unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR +ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING +WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR +DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED +HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further +action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that +the Program itself (excluding combinations of the Program with other +software or hardware) infringes such Recipient's patent(s), then such +Recipient's rights granted under Section 2(b) shall terminate as of +the date such litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it +fails to comply with any of the material terms or conditions of this +Agreement and does not cure such failure in a reasonable period of +time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use +and distribution of the Program as soon as reasonably +practicable. However, Recipient's obligations under this Agreement and +any licenses granted by Recipient relating to the Program shall +continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and +may only be modified in the following manner. The Agreement Steward +reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement +Steward has the right to modify this Agreement. The Eclipse Foundation +is the initial Agreement Steward. The Eclipse Foundation may assign +the responsibility to serve as the Agreement Steward to a suitable +separate entity. Each new version of the Agreement will be given a +distinguishing version number. The Program (including Contributions) +may always be distributed subject to the version of the Agreement +under which it was received. In addition, after a new version of the +Agreement is published, Contributor may elect to distribute the +Program (including its Contributions) under the new version. Except as +expressly stated in Sections 2(a) and 2(b) above, Recipient receives +no rights or licenses to the intellectual property of any Contributor +under this Agreement, whether expressly, by implication, estoppel or +otherwise. All rights in the Program not expressly granted under this +Agreement are reserved. + +This Agreement is governed by the laws of the State of New York and +the intellectual property laws of the United States of America. No +party to this Agreement will bring a legal action under this Agreement +more than one year after the cause of action arose. Each party waives +its rights to a jury trial in any resulting litigation. diff --git a/libre/clojure/PKGBUILD b/libre/clojure/PKGBUILD new file mode 100644 index 000000000..203c6792e --- /dev/null +++ b/libre/clojure/PKGBUILD @@ -0,0 +1,58 @@ +# Maintainer: Omar Vega Ramos <ovruni@gnu.org.pe> + +pkgname=clojure +pkgver=1.7.0 +pkgrel=1.parabola1 +pkgdesc='LISP for the JVM' +url='http://clojure.org/' +arch=('any') +license=('EPL') +depends=('java-environment' 'bash') +makedepends=('apache-ant' 'classpath' 'git' 'java-asm' 'jh') +optdepends=('rlwrap: friendlier shell with readline support') +install='clojure.install' +source=("$pkgname::git://github.com/clojure/clojure.git#tag=$pkgname-$pkgver" + 'clojure-replace_asm.patch' + 'LICENSE.txt' + 'clj.sh' "$pkgname.sh") +sha256sums=('SKIP' + 'b04cd1381bc78e40271fc18a1ec7d8e45f630a12fdafe571ace746c3426fb003' + '9bcd4c6eac491d1c9bbade5b35182a778fc7e08021de30edc387ac2adce75035' + '2194819fd417174351172d94e3ccff050479401ca883b57d325a349072200bee' + 'b3fa6257dad10fb39851e87563269b80b2473623126595d9c279bbd90e97f052') + +prepare() { + cd "$pkgname" + rm -rv "src/jvm/clojure/asm" + patch -Np1 -i ../clojure-replace_asm.patch +} + +build() { + cd "$pkgname" + + ant jar javadoc +} + +package() { + cd "$pkgname" + # Install license file + install -Dm644 "${srcdir}/LICENSE.txt" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.txt" + + # Install documentation + install -d "${pkgdir}/usr/share/doc/${pkgname}" + cp -r "target/javadoc" "${pkgdir}/usr/share/doc/${pkgname}" + + # Install Maven artifacts + export DESTDIR=${pkgdir} + jh mvn-install "org.${pkgname}" ${pkgname} ${pkgver} \ + "pom.xml" \ + "${pkgname}-${pkgver}.jar" \ + "${pkgname}.jar" + + ln -s "/usr/share/java/${pkgname}.jar" \ + "${pkgdir}/usr/share/java/${pkgname}-${pkgver}.jar" + + install -Dm755 "${srcdir}/clj.sh" "$pkgdir/usr/bin/clj" + install -Dm755 "${srcdir}/clj.sh" "$pkgdir/usr/bin/clojure" + install -Dm755 "${srcdir}/$pkgname.sh" "$pkgdir/etc/profile.d/$pkgname.sh" +} diff --git a/libre/clojure/clj.sh b/libre/clojure/clj.sh new file mode 100644 index 000000000..9c43acf93 --- /dev/null +++ b/libre/clojure/clj.sh @@ -0,0 +1,138 @@ +#!/bin/bash +# +# Launcher script for Clojure programs. These environment variables can be +# used to configure the script: +# +# CLOJURE_HOME +# The root directory where Clojure is installed. +# CLOJURE_JAVA +# The name of the java executable used to run Clojure. +# CLOJURE_JAVA_OPTS +# Additional options to be passed to the java executable. +# CLOJURE_CLASSPATH +# A path to be added to Clojure's classpath. +# CLOJURE_LIBRARY_PATH +# A path to be searched for native code such as DLL's or JNI +# libraries. This gets added to the Java options as +# "-Djava.library.path=$CLOJURE_LIBRARY_PATH". +# CLOJURE_LIB +# This directory, and any jars inside it, will be automatically +# added to Clojure's classpath. +# +# CLOJURE_JLINE +# This should be the path to Jline jar. +# TODO: +# make CLOJURE_LIB a path instead of a single directory +# allow for adding to CLOJURE_LIB from the command line + +usage="\ +usage: clojure [options] [file1 [file2] ...] + +Options: + --help, -h show this message + --java-cmd, -J the Java executable to use + --java-opts, -j add options to be passed on to the JVM + --classpath, -cp add to Clojure's classpath + --library-path, -L add to the path to search for native libraries + --verbose, -v print initialization information +" +## read ~/.clojurerc for home configuration +[ -e ~/.clojurerc ] && . ~/.clojurerc + +## read ./.clojurerc for project specific configuration +[ -e ./.clojurerc ] && . ./.clojurerc + +if [ ! "$CLOJURE_HOME" ]; then + # Find the real path to Clojure's home directory if $0 is a symlink + #program="$0" + #while [ -h "$program" ]; do + # ls=`ls -ld "$program"` + # link=`expr "$ls" : '.*-> \(.*\)$'` + # if expr "$link" : '.*/.*' >/dev/null; then + # program="$link" + # else + # program="`dirname $program`/$link" + # fi + #done + #script_dir=`dirname "$program"` + #relative_clojure_home=`dirname "$script_dir"` + #CLOJURE_HOME=`cd "$relative_clojure_home" && pwd` + . /etc/profile.d/clojure.sh +fi + +if [ ! "$CLOJURE_JAVA" ]; then + CLOJURE_JAVA="java"; +fi + +if [ ! "$CLOJURE_JAVA_OPTS" ]; then + CLOJURE_JAVA_OPTS="-Dpid=$$"; # set the pid for SLIME +fi + +if [ ! "$CLOJURE_CLASSPATH" ]; then + CLOJURE_CLASSPATH="." +fi + +## Add Clojure home jars. +for jar in "$CLOJURE_HOME"/*.jar; do + CLOJURE_CLASSPATH="$CLOJURE_CLASSPATH:$jar" +done + +if [ -d "$CLOJURE_LIB" ]; then + CLOJURE_CLASSPATH="$CLOJURE_CLASSPATH:$CLOJURE_LIB" + for jar in "$CLOJURE_LIB"/*.jar; do + CLOJURE_CLASSPATH="$CLOJURE_CLASSPATH:$jar" + done +fi + +# this is now the same for both the repl and for scripts +main="clojure.main" +repl=0 +verbose=0 + +while true; do + case $1 in + -h|--help) + echo "$usage"; exit 1;; + -J|--java-cmd) + CLOJURE_JAVA="$2"; shift; shift;; + -j|--java-opts) + CLOJURE_JAVA_OPTS="$CLOJURE_JAVA_OPTS $2"; shift; shift;; + -cp|--classpath) + CLOJURE_CLASSPATH="$CLOJURE_CLASSPATH:$2"; shift; shift;; + -L|--library-path) + if [ "$CLOJURE_LIBRARY_PATH" ]; then + CLOJURE_LIBRARY_PATH="$CLOJURE_LIBRARY_PATH:$2"; + else + CLOJURE_LIBRARY_PATH="$2"; + fi + shift; shift;; + -v|--verbose) + verbose=1; shift;; + *) break;; + esac +done + +[ $verbose -eq 1 ] && echo "$CLOJURE_CLASSPATH" + +# If we didn't get any files to load on the commandline, we want to run the +# repl, with command line editing if available. +[ $# -eq 0 ] && repl=1 + +# If the classpath contains the JLine jar, use the JLine console runner +if expr "$CLOJURE_CLASSPATH" : ".*jline.*\.jar" >/dev/null; then + [ $repl -eq 1 ] && jline="jline.ConsoleRunner" +fi + +# Enable rlwrap if present +if [ $repl -eq 1 ] && [ -z $jline ]; then + rlwrap=`type -p rlwrap` +fi + +## Add CLOJURE_LIBRARY_PATH to the Java options if necessary +if [ -n "$CLOJURE_LIBRARY_PATH" ]; then + CLOJURE_JAVA_OPTS="$CLOJURE_JAVA_OPTS -Djava.library.path=$CLOJURE_LIBRARY_PATH" +fi + +cmd=`echo $rlwrap "$CLOJURE_JAVA" "$CLOJURE_JAVA_OPTS" -cp "$CLOJURE_CLASSPATH" $jline $main` +[ $verbose -eq 1 ] && echo "$cmd" "$@" +exec `echo $cmd` "$@" diff --git a/libre/clojure/clojure-replace_asm.patch b/libre/clojure/clojure-replace_asm.patch new file mode 100644 index 000000000..0c41a37e9 --- /dev/null +++ b/libre/clojure/clojure-replace_asm.patch @@ -0,0 +1,186 @@ +--- clojure-1.7.0.orig/build.xml 2015-06-30 09:23:20.000000000 -0500 ++++ clojure-1.7.0/build.xml 2015-12-09 17:37:31.497314803 -0500 +@@ -38,6 +38,7 @@ + <target name="compile-java" depends="init" + description="Compile Java sources."> + <javac srcdir="${jsrc}" destdir="${build}" includeJavaRuntime="yes" ++ classpath="/usr/share/java/asm-4.jar:/usr/share/java/asm-commons-4.jar" + includeAntRuntime="false" + debug="true" source="1.6" target="1.6"/> + </target> +@@ -45,7 +46,7 @@ + <target name="compile-clojure" + description="Compile Clojure sources."> + <java classname="clojure.lang.Compile" +- classpath="${maven.compile.classpath}:${build}:${cljsrc}" ++ classpath="/usr/share/java/asm-4.jar:/usr/share/java/asm-commons-4.jar:${maven.compile.classpath}:${build}:${cljsrc}" + failonerror="true" + fork="true"> + <sysproperty key="clojure.compile.path" value="${build}"/> +@@ -87,7 +88,7 @@ + <javac srcdir="${jtestsrc}" destdir="${test-classes}" includeJavaRuntime="yes" + debug="true" source="1.6" target="1.6" includeantruntime="no"/> + <java classname="clojure.lang.Compile" +- classpath="${test-classes}:${test}:${build}:${cljsrc}" ++ classpath="/usr/share/java/asm-4.jar:/usr/share/java/asm-commons-4.jar:${test-classes}:${test}:${build}:${cljsrc}" + failonerror="true" + fork="true"> + <sysproperty key="clojure.compile.path" value="${test-classes}"/> +@@ -106,6 +107,8 @@ + <java classname="clojure.main" failonerror="true" fork="true"> + <classpath> + <pathelement path="${maven.test.classpath}"/> ++ <path location="/usr/share/java/asm-4.jar"/> ++ <path location="/usr/share/java/asm-commons-4.jar"/> + <path location="${test-classes}"/> + <path location="${test}"/> + <path location="${build}"/> +@@ -122,6 +125,8 @@ + <java classname="clojure.main" failonerror="true" fork="true"> + <classpath> + <pathelement path="${maven.test.classpath}"/> ++ <path location="/usr/share/java/asm-4.jar"/> ++ <path location="/usr/share/java/asm-commons-4.jar"/> + <path location="${test-classes}"/> + <path location="${test}"/> + <path location="${build}"/> +--- clojure-1.7.0.orig/src/clj/clojure/core.clj 2015-06-30 09:23:20.000000000 -0500 ++++ clojure-1.7.0/src/clj/clojure/core.clj 2015-12-09 17:45:49.203841272 -0500 +@@ -5222,10 +5222,10 @@ + (.getAnnotation c java.lang.annotation.Retention)] + (= (.value r) java.lang.annotation.RetentionPolicy/RUNTIME))))) + +-(defn- descriptor [^Class c] (clojure.asm.Type/getDescriptor c)) ++(defn- descriptor [^Class c] (org.objectweb.asm.Type/getDescriptor c)) + + (declare process-annotation) +-(defn- add-annotation [^clojure.asm.AnnotationVisitor av name v] ++(defn- add-annotation [^org.objectweb.asm.AnnotationVisitor av name v] + (cond + (vector? v) (let [avec (.visitArray av name)] + (doseq [vval v] +@@ -5235,7 +5235,7 @@ + (cond + (instance? java.lang.Enum ev) + (.visitEnum av name (descriptor (class ev)) (str ev)) +- (class? ev) (.visit av name (clojure.asm.Type/getType ev)) ++ (class? ev) (.visit av name (org.objectweb.asm.Type/getType ev)) + :else (throw (IllegalArgumentException. + (str "Unsupported annotation value: " v " of class " (class ev)))))) + (seq? v) (let [[nested nv] v +--- clojure-1.7.0.orig/src/clj/clojure/core_proxy.clj 2015-06-30 09:23:20.000000000 -0500 ++++ clojure-1.7.0/src/clj/clojure/core_proxy.clj 2015-12-09 17:47:21.556152289 -0500 +@@ -11,9 +11,9 @@ + ;;;;;;;;;;;;;;;;;;;;;;;;;;;; proxy ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + (import +- '(clojure.asm ClassWriter ClassVisitor Opcodes Type) ++ '(org.objectweb.asm ClassWriter ClassVisitor Opcodes Type) + '(java.lang.reflect Modifier Constructor) +- '(clojure.asm.commons Method GeneratorAdapter) ++ '(org.objectweb.asm.commons Method GeneratorAdapter) + '(clojure.lang IProxy Reflector DynamicClassLoader IPersistentMap PersistentHashMap RT)) + + (defn method-sig [^java.lang.reflect.Method meth] +--- clojure-1.7.0.orig/src/clj/clojure/genclass.clj 2015-06-30 09:23:20.000000000 -0500 ++++ clojure-1.7.0/src/clj/clojure/genclass.clj 2015-12-09 17:48:30.376239833 -0500 +@@ -9,8 +9,8 @@ + (in-ns 'clojure.core) + + (import '(java.lang.reflect Modifier Constructor) +- '(clojure.asm ClassWriter ClassVisitor Opcodes Type) +- '(clojure.asm.commons Method GeneratorAdapter) ++ '(org.objectweb.asm ClassWriter ClassVisitor Opcodes Type) ++ '(org.objectweb.asm.commons Method GeneratorAdapter) + '(clojure.lang IPersistentMap)) + + ;(defn method-sig [^java.lang.reflect.Method meth] +--- clojure-1.7.0.orig/src/jvm/clojure/lang/Compiler.java 2015-06-30 09:23:20.000000000 -0500 ++++ clojure-1.7.0/src/jvm/clojure/lang/Compiler.java 2015-12-09 17:56:08.474634356 -0500 +@@ -12,11 +12,12 @@ + + package clojure.lang; + +-//* ++/* + +-import clojure.asm.*; +-import clojure.asm.commons.GeneratorAdapter; +-import clojure.asm.commons.Method; ++import org.objectweb.asm.*; ++import org.objectweb.asm.commons.GeneratorAdapter; ++import org.objectweb.asm.commons.Method; ++*/ + + import java.io.*; + import java.lang.reflect.Constructor; +@@ -26,14 +27,15 @@ + import java.util.regex.Matcher; + + //*/ +-/* ++///* + + import org.objectweb.asm.*; + import org.objectweb.asm.commons.Method; + import org.objectweb.asm.commons.GeneratorAdapter; ++/* + import org.objectweb.asm.util.TraceClassVisitor; + import org.objectweb.asm.util.CheckClassAdapter; +-//*/ ++*/ + + public class Compiler implements Opcodes{ + +--- clojure-1.7.0.orig/src/jvm/clojure/lang/Intrinsics.java 2015-06-30 09:23:20.000000000 -0500 ++++ clojure-1.7.0/src/jvm/clojure/lang/Intrinsics.java 2015-12-09 17:58:29.934629288 -0500 +@@ -12,7 +12,7 @@ + + package clojure.lang; + +-import clojure.asm.Opcodes; ++import org.objectweb.asm.Opcodes; + + public class Intrinsics implements Opcodes{ + private static Object[] oa(Object... arr){ +--- clojure-1.7.0.orig/src/clj/clojure/reflect/java.clj 2015-06-30 09:23:20.000000000 -0500 ++++ clojure-1.7.0/src/clj/clojure/reflect/java.clj 2015-12-09 18:02:15.637317716 -0500 +@@ -11,7 +11,7 @@ + + (require '[clojure.set :as set] + '[clojure.string :as str]) +-(import '[clojure.asm ClassReader ClassVisitor Type Opcodes] ++(import '[org.objectweb.asm ClassReader ClassVisitor Type Opcodes] + '[java.lang.reflect Modifier] + java.io.InputStream) + +--- clojure-1.7.0.orig/test/clojure/test_clojure/reflect.clj 2015-06-30 09:23:20.000000000 -0500 ++++ clojure-1.7.0/test/clojure/test_clojure/reflect.clj 2015-12-09 18:04:43.783663964 -0500 +@@ -25,7 +25,7 @@ + + (deftest field-descriptor->class-symbol-test + (are [s d] (= s (@#'reflect/field-descriptor->class-symbol d)) +- 'clojure.asm.Type<><> "[[Lclojure/asm/Type;" ++ 'org.objectweb.asm.Type<><> "[[Lclojure/asm/Type;" + 'int "I" + 'java.lang.Object "Ljava.lang.Object;")) + +--- clojure-1.7.0.orig/pom.xml 2015-06-30 09:23:20.000000000 -0500 ++++ clojure-1.7.0/pom.xml 2015-12-09 18:12:28.005103036 -0500 +@@ -69,6 +69,16 @@ + </exclusion> + </exclusions> + </dependency> ++ <dependency> ++ <groupId>org.ow2.asm</groupId> ++ <artifactId>asm</artifactId> ++ <version>5.0.3</version> ++ </dependency> ++ <dependency> ++ <groupId>org.ow2.asm</groupId> ++ <artifactId>asm-commons</artifactId> ++ <version>5.0.3</version> ++ </dependency> + </dependencies> + + <build> diff --git a/libre/clojure/clojure.install b/libre/clojure/clojure.install new file mode 100644 index 000000000..7102ef726 --- /dev/null +++ b/libre/clojure/clojure.install @@ -0,0 +1,5 @@ +post_install() { + echo 'Relogin or source /etc/profile.d/clojure.sh' +} + +# vim:set ts=2 sw=2 et: diff --git a/libre/clojure/clojure.sh b/libre/clojure/clojure.sh new file mode 100644 index 000000000..5fd8395dc --- /dev/null +++ b/libre/clojure/clojure.sh @@ -0,0 +1 @@ +export CLOJURE_HOME=/usr/share/clojure |