gnu: Add java-cisd-args4j.

* gnu/packages/java.scm (java-cisd-args4j): New variable.
This commit is contained in:
Ricardo Wurmus 2018-02-23 10:09:50 +01:00
parent 30d554732a
commit 04ddca26e6
No known key found for this signature in database
GPG Key ID: 197A5888235FACAC
1 changed files with 114 additions and 0 deletions

View File

@ -2233,6 +2233,120 @@ libraries from the SIS division at ETH Zurich like jHDF5.")
(license (list license:asl2.0 (license (list license:asl2.0
(license:non-copyleft "file://source/c/COPYING")))))) (license:non-copyleft "file://source/c/COPYING"))))))
(define-public java-cisd-args4j
(let ((revision 39162)
(base-version "9.11.2"))
(package
(name "java-cisd-args4j")
(version (string-append base-version "-" (number->string revision)))
(source (origin
(method svn-fetch)
(uri (svn-reference
(url (string-append "http://svnsis.ethz.ch/repos/cisd/"
"args4j/tags/release/"
(version-major+minor base-version)
".x/" base-version "/args4j/"))
(revision revision)))
(file-name (string-append "java-cisd-args4j-" version "-checkout"))
(sha256
(base32
"0hhqznjaivq7ips7mkwas78z42s6djsm20rrs7g1zd59rcsakxn2"))))
(build-system ant-build-system)
(arguments
`(#:make-flags '("-file" "build/build.xml")
#:tests? #f ; there are no tests
;; There are weird build failures with JDK8, such as: "The type
;; java.io.ObjectInputStream cannot be resolved. It is indirectly
;; referenced from required .class files"
#:jdk ,icedtea-7
#:modules ((guix build ant-build-system)
(guix build utils)
(guix build java-utils)
(sxml simple)
(sxml transform)
(sxml xpath))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'unpack-build-resources
(lambda* (#:key inputs #:allow-other-keys)
(mkdir-p "../build_resources")
(invoke "tar" "xf" (assoc-ref inputs "build-resources")
"-C" "../build_resources"
"--strip-components=1")
(mkdir-p "../build_resources/lib")
#t))
(add-after 'unpack-build-resources 'fix-dependencies
(lambda* (#:key inputs #:allow-other-keys)
;; FIXME: There should be a more convenient abstraction for
;; editing XML files.
(with-directory-excursion "../build_resources/ant/"
(chmod "build-common.xml" #o664)
(call-with-output-file "build-common.xml.new"
(lambda (port)
(sxml->xml
(pre-post-order
(with-input-from-file "build-common.xml"
(lambda _ (xml->sxml #:trim-whitespace? #t)))
`(;; Remove dependency on classycle and custom ant tasks
(taskdef . ,(lambda (tag . kids)
(let ((name ((sxpath '(name *text*)) kids)))
(if (or (member "build-info" name)
(member "dependency-checker" name)
(member "build-java-subprojects" name)
(member "project-classpath" name))
'() ; skip
`(,tag ,@kids)))))
(typedef . ,(lambda (tag . kids)
(let ((name ((sxpath '(name *text*)) kids)))
(if (member "recursive-jar" name)
'() ; skip
`(,tag ,@kids)))))
(build-java-subprojects . ,(lambda _ '()))
;; Ignore everything else
(*default* . ,(lambda (tag . kids) `(,tag ,@kids)))
(*text* . ,(lambda (_ txt) txt))))
port)))
(rename-file "build-common.xml.new" "build-common.xml"))
(substitute* "build/build.xml"
(("\\$\\{lib\\}/cisd-base/cisd-base.jar")
(string-append (assoc-ref inputs "java-cisd-base")
"/share/java/sis-base.jar"))
;; Remove dependency on svn
(("<build-info.*") "")
(("\\$\\{revision.number\\}")
,(number->string revision))
(("\\$\\{version.number\\}") ,base-version)
;; Don't use custom ant tasks.
(("recursive-jar") "jar")
(("<project-classpath.*") ""))
#t))
(replace 'install (install-jars "targets/dist")))))
(inputs
`(("java-cisd-base" ,java-cisd-base)))
(native-inputs
`(("ecj" ,java-ecj-3.5)
("build-resources"
,(origin
(method svn-fetch)
(uri (svn-reference
(url (string-append "http://svnsis.ethz.ch/repos/cisd/"
"args4j/tags/release/"
(version-major+minor base-version)
".x/" base-version
"/build_resources/"))
(revision revision)))
(sha256
(base32
"056cam4k8pll7ass31sy6gwn8g8719njc41yf4l02b0342nilkyf"))
(modules '((guix build utils)))
;; Delete bundled pre-built jars.
(snippet
'(begin (delete-file-recursively "lib/") #t))))))
(home-page "http://svnsis.ethz.ch")
(synopsis "Command line parser library")
(description "This package provides a parser for command line arguments.")
(license license:asl2.0))))
(define-public java-classpathx-servletapi (define-public java-classpathx-servletapi
(package (package
(name "java-classpathx-servletapi") (name "java-classpathx-servletapi")