gnu: Add abcl.
* gnu/packages/java.scm (abcl): New variable. * gnu/packages/patches/abcl-fix-build-xml.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>master
parent
43f7fd8783
commit
717b6ba6aa
|
@ -674,6 +674,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/a2ps-CVE-2001-1593.patch \
|
%D%/packages/patches/a2ps-CVE-2001-1593.patch \
|
||||||
%D%/packages/patches/a2ps-CVE-2014-0466.patch \
|
%D%/packages/patches/a2ps-CVE-2014-0466.patch \
|
||||||
%D%/packages/patches/a2ps-CVE-2015-8107.patch \
|
%D%/packages/patches/a2ps-CVE-2015-8107.patch \
|
||||||
|
%D%/packages/patches/abcl-fix-build-xml.patch \
|
||||||
%D%/packages/patches/abiword-explictly-cast-bools.patch \
|
%D%/packages/patches/abiword-explictly-cast-bools.patch \
|
||||||
%D%/packages/patches/abiword-black-drawing-with-gtk322.patch \
|
%D%/packages/patches/abiword-black-drawing-with-gtk322.patch \
|
||||||
%D%/packages/patches/acl-fix-perl-regex.patch \
|
%D%/packages/patches/acl-fix-perl-regex.patch \
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||||
;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
|
;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
|
||||||
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
|
;;; Copyright © 2017, 2019 Carlo Zancanaro <carlo@zancanaro.id.au>
|
||||||
;;; Copyright © 2017, 2018 Julien Lepiller <julien@lepiller.eu>
|
;;; Copyright © 2017, 2018 Julien Lepiller <julien@lepiller.eu>
|
||||||
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
||||||
;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
|
;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
|
||||||
|
@ -11109,3 +11109,67 @@ network protocols, and core version control algorithms.")
|
||||||
`(("java-javaewah" ,java-javaewah)
|
`(("java-javaewah" ,java-javaewah)
|
||||||
("java-jsch" ,java-jsch)
|
("java-jsch" ,java-jsch)
|
||||||
("java-slf4j-api" ,java-slf4j-api)))))
|
("java-slf4j-api" ,java-slf4j-api)))))
|
||||||
|
|
||||||
|
(define-public abcl
|
||||||
|
(package
|
||||||
|
(name "abcl")
|
||||||
|
(version "1.5.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://abcl.org/releases/"
|
||||||
|
version "/abcl-src-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1hhvcg050nfpjbdmskc1cv2j38qi6qfl77a61b5cxx576kbff3lj"))
|
||||||
|
(patches
|
||||||
|
(search-patches
|
||||||
|
"abcl-fix-build-xml.patch"))))
|
||||||
|
(build-system ant-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("java-junit" ,java-junit)))
|
||||||
|
(arguments
|
||||||
|
`(#:build-target "abcl.jar"
|
||||||
|
#:test-target "abcl.test"
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(replace 'install
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let ((share (string-append (assoc-ref outputs "out")
|
||||||
|
"/share/java/"))
|
||||||
|
(bin (string-append (assoc-ref outputs "out")
|
||||||
|
"/bin/")))
|
||||||
|
(mkdir-p share)
|
||||||
|
(install-file "dist/abcl.jar" share)
|
||||||
|
(install-file "dist/abcl-contrib.jar" share)
|
||||||
|
(mkdir-p bin)
|
||||||
|
(with-output-to-file (string-append bin "abcl")
|
||||||
|
(lambda _
|
||||||
|
(let ((classpath (string-append
|
||||||
|
share "abcl.jar"
|
||||||
|
":"
|
||||||
|
share "abcl-contrib.jar")))
|
||||||
|
(display (string-append
|
||||||
|
"#!" (which "sh") "\n"
|
||||||
|
"if [[ -z $CLASSPATH ]]; then\n"
|
||||||
|
" cp=\"" classpath "\"\n"
|
||||||
|
"else\n"
|
||||||
|
" cp=\"" classpath ":$CLASSPATH\"\n"
|
||||||
|
"fi\n"
|
||||||
|
"exec " (which "java")
|
||||||
|
" -cp $cp org.armedbear.lisp.Main $@\n")))))
|
||||||
|
(chmod (string-append bin "abcl") #o755)
|
||||||
|
#t))))))
|
||||||
|
(home-page "https://abcl.org/")
|
||||||
|
(synopsis "Common Lisp Implementation on the JVM")
|
||||||
|
(description
|
||||||
|
"@dfn{Armed Bear Common Lisp} (ABCL) is a full implementation of the Common
|
||||||
|
Lisp language featuring both an interpreter and a compiler, running in the
|
||||||
|
JVM. It supports JSR-223 (Java scripting API): it can be a scripting engine
|
||||||
|
in any Java application. Additionally, it can be used to implement (parts of)
|
||||||
|
the application using Java to Lisp integration APIs.")
|
||||||
|
(license (list license:gpl2+
|
||||||
|
;; named-readtables is released under 3 clause BSD
|
||||||
|
license:bsd-3
|
||||||
|
;; jfli is released under CPL 1.0
|
||||||
|
license:cpl1.0))))
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
ABCL's build calls the hostname command, and needs the internet to download
|
||||||
|
JUnit. Neither of these are really required, though, so we can patch them out
|
||||||
|
to make it build.
|
||||||
|
|
||||||
|
We also remove the Implemetation-Build property that ends up in the manifest
|
||||||
|
file, because it stores information about the time of the build, which makes
|
||||||
|
it non-deterministic.
|
||||||
|
|
||||||
|
--- a/build.xml
|
||||||
|
+++ b/build.xml
|
||||||
|
@@ -327,7 +327,7 @@ from ${abcl.home.dir}
|
||||||
|
<property name="abcl.build.path"
|
||||||
|
value="${build.classes.dir}/org/armedbear/lisp/build"/>
|
||||||
|
<target name="abcl.stamp"
|
||||||
|
- depends="abcl.compile,abcl.stamp.version,abcl.stamp.hostname">
|
||||||
|
+ depends="abcl.compile,abcl.stamp.version">
|
||||||
|
<mkdir dir="${abcl.build.path}/.."/>
|
||||||
|
<loadfile property="abcl.version"
|
||||||
|
srcFile="${abcl.version.path}"/>
|
||||||
|
@@ -455,11 +455,6 @@ from ${abcl.home.dir}
|
||||||
|
value="${abcl.version}-${abcl.version.src}"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
- <target name="abcl.stamp.hostname" if="unix">
|
||||||
|
- <exec executable="hostname" outputproperty="abcl.hostname"/>
|
||||||
|
- <echo>abcl.hostname: ${abcl.hostname}</echo>
|
||||||
|
- </target>
|
||||||
|
-
|
||||||
|
<target name="abcl.system.uptodate">
|
||||||
|
<condition property="abcl.system.needs-update.p">
|
||||||
|
<and>
|
||||||
|
@@ -500,8 +495,6 @@ from ${abcl.home.dir}
|
||||||
|
value="ABCL"/>
|
||||||
|
<attribute name="Implementation-Version"
|
||||||
|
value="${abcl.implementation.version}"/>
|
||||||
|
- <attribute name="Implementation-Build"
|
||||||
|
- value="${build}"/>
|
||||||
|
</section>
|
||||||
|
</manifest>
|
||||||
|
<metainf dir="${src.dir}/META-INF">
|
||||||
|
@@ -1019,8 +1012,7 @@ ${basedir}/../cl-bench
|
||||||
|
</unzip>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
- <target name="abcl.test.compile"
|
||||||
|
- depends="abcl.test.pre-compile">
|
||||||
|
+ <target name="abcl.test.compile" >
|
||||||
|
<mkdir dir="${abcl.test.classes.dir}"/>
|
||||||
|
<javac destdir="${abcl.test.classes.dir}"
|
||||||
|
classpathref="abcl.test.compile.classpath"
|
Reference in New Issue