;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
;;; Copyright © 2017, 2019 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019, 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
;; build framework. We then build the more recent JDKs Icedtea 2.x and
;; Icedtea 3.x.
+(define-public libantlr3c
+ (package
+ (name "libantlr3c")
+ (version "3.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://www.antlr3.org/download/C/"
+ name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0lpbnb4dq4azmsvlhp6khq1gy42kyqyjv8gww74g5lm2y6blm4fa"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags (list "--enable-debuginfo" "--disable-static")
+ #:phases (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key build target native-inputs inputs outputs
+ (configure-flags '()) out-of-source? system
+ #:allow-other-keys)
+ (let ((configure (assoc-ref %standard-phases 'configure))
+ (enable-64bit? (member system '("aarch64-linux"
+ "x86_64-linux"
+ "mips64el-linux"))))
+ (configure #:build build #:target target
+ #:native-inputs native-inputs
+ #:inputs inputs #:outputs outputs
+ #:configure-flags `(,(if enable-64bit?
+ "--enable-64bit"
+ '())
+ ,@configure-flags)
+ #:out-of-source? out-of-source?)))))))
+ (synopsis "ANTLR C Library")
+ (description "LIBANTLR3C provides run-time C libraries for ANTLR3 (ANother
+Tool for Language Recognition v3).")
+ (home-page "https://www.antlr3.org/")
+ (license license:bsd-3)))
+
(define jikes
(package
(name "jikes")
(modules '((guix build utils)))
(snippet
`(begin
- (for-each delete-file (find-files "." ".*.bin$"))
- (for-each delete-file (find-files "." ".*.exe$"))
- (for-each delete-file (find-files "." ".*.jar$"))
+ (for-each delete-file
+ (find-files "." ".*.(bin|exe|jar)$"))
#t))))
(build-system gnu-build-system)
(outputs '("out" "jdk" "doc"))
(arguments
`(#:tests? #f; require jtreg
+ #:make-flags '("all")
#:imported-modules
((guix build syscalls)
,@%gnu-build-system-modules)
"--with-libjpeg=system"
(string-append "--prefix=" (assoc-ref outputs "out")))
#t))
- (replace 'build
+ (add-before 'build 'write-source-revision-file
(lambda _
(with-output-to-file ".src-rev"
(lambda _
(display ,version)))
- (setenv "GUIX_LD_WRAPPER_ALLOW_IMPURITIES" "yes")
- (invoke "make" "all")
#t))
+ (replace 'build
+ (lambda* (#:key make-flags parallel-build? #:allow-other-keys)
+ (apply invoke "make"
+ `(,@(if parallel-build?
+ (list (string-append "JOBS="
+ (number->string (parallel-job-count))))
+ '())
+ ,@make-flags))))
;; Some of the libraries in the lib/ folder link to libjvm.so.
;; But that shared object is located in the server/ folder, so it
;; cannot be found. This phase creates a symbolic link in the
(native-inputs
`(("icedtea-8" ,icedtea-8)
("icedtea-8:jdk" ,icedtea-8 "jdk")
- ;; XXX: The build system is not particularly parallel safe and
- ;; fails with newer versions of GNU Make.
+ ;; XXX: The build system fails with newer versions of GNU Make.
("make@4.2" ,gnu-make-4.2)
("unzip" ,unzip)
("which" ,which)
(modules '((guix build utils)))
(snippet
`(begin
- (for-each delete-file (find-files "." ".*.bin$"))
- (for-each delete-file (find-files "." ".*.exe$"))
- (for-each delete-file (find-files "." ".*.jar$"))
+ (for-each delete-file (find-files "." ".*.(bin|exe|jar)$"))
#t))))
(arguments
(substitute-keyword-arguments (package-arguments openjdk9)
(modules '((guix build utils)))
(snippet
`(begin
- (for-each delete-file (find-files "." ".*.bin$"))
- (for-each delete-file (find-files "." ".*.exe$"))
- (for-each delete-file (find-files "." ".*.jar$"))
+ (for-each delete-file (find-files "." ".*.(bin|exe|jar)$"))
#t))))
(build-system gnu-build-system)
(outputs '("out" "jdk" "doc"))
,@%gnu-build-system-modules)
#:tests? #f; requires jtreg
;; TODO package jtreg
- ;; disable parallel builds, as the openjdk build system does not like -j
- #:parallel-build? #f
- #:parallel-tests? #f
- ;; reenable parallel builds and tests by adding the flags manually
- #:make-flags (list (string-append "JOBS=" (number->string (parallel-job-count))))
#:configure-flags
`("--disable-option-checking" ; --enable-fast-install default flag errors otherwise
"--disable-warnings-as-errors"
(assoc-ref %build-inputs "freetype") "/include")
,(string-append "--with-freetype-lib="
(assoc-ref %build-inputs "freetype") "/lib"))
- ;; TODO
#:phases
(modify-phases %standard-phases
(add-after 'patch-source-shebangs 'fix-java-shebangs
(substitute* "make/data/blacklistedcertsconverter/blacklisted.certs.pem"
(("^#!.*") "#! java BlacklistedCertsConverter SHA-256\n"))
#t))
- (replace 'build
+ (add-before 'build 'write-source-revision-file
(lambda _
(with-output-to-file ".src-rev"
(lambda _
(display ,version)))
- (setenv "GUIX_LD_WRAPPER_ALLOW_IMPURITIES" "yes")
- (invoke "make" "all")
#t))
+ (replace 'build
+ (lambda* (#:key parallel-build? make-flags #:allow-other-keys)
+ (apply invoke "make" "all"
+ `(,@(if parallel-build?
+ (list (string-append "JOBS="
+ (number->string (parallel-job-count))))
+ '())
+ ,@make-flags))))
;; jdk 11 does not build jre by default any more
;; building it anyways
;; for further information see:
;; https://github.com/AdoptOpenJDK/openjdk-build/issues/356
(add-after 'build 'build-jre
- (lambda _
- (invoke "make" "legacy-jre-image")
- #t))
+ (lambda* (#:key parallel-build? make-flags #:allow-other-keys)
+ (apply invoke "make" "legacy-jre-image"
+ `(,@(if parallel-build?
+ (list (string-append "JOBS="
+ (number->string (parallel-job-count))))
+ '())
+ ,@make-flags))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(modules '((guix build utils)))
(snippet
`(begin
- (for-each delete-file (find-files "." ".*.bin$"))
- (for-each delete-file (find-files "." ".*.exe$"))
- (for-each delete-file (find-files "." ".*.jar$"))
+ (for-each delete-file (find-files "." ".*.(bin|exe|jar)$"))
#t))))
(inputs
`(("alsa-lib" ,alsa-lib)
(description "ASM is an all purpose Java bytecode manipulation and
analysis framework. It can be used to modify existing classes or dynamically
generate classes, directly in binary form. The provided common
-transformations and analysis algorithms allow to easily assemble custom
+transformations and analysis algorithms allow easily assembling custom
complex transformations and code analysis tools.")
(license license:bsd-3)))
(inputs
`(("junit" ,java-junit)))))
-(define antlr3-3.3
+(define-public antlr3-3.3
(package
(inherit antlr3)
(name "antlr3")
(home-page "https://github.com/barteo/microemu")
(synopsis "J2ME CLDC emulator")
(description "Microemulator is a Java 2 Micro Edition (J2ME) CLDC/MIDP
-Emulator. It allows to demonstrate MIDlet based applications in web browser
+Emulator. It demonstrates MIDlet based applications in web browser
applet and can be run as a standalone java application.")
(license (list license:asl2.0
;; or altenatively:
("hamcrest" ,java-hamcrest-core)))
(home-page "https://hdrhistogram.github.io/HdrHistogram")
(synopsis "High dynamic range histogram")
- (description "Hdrhistogram allows to create histograms that support
+ (description "Hdrhistogram creates histograms that support
recording and analyzing sampled data value counts across a configurable integer
value range with configurable value precision within the range. Value precision
is expressed as the number of significant digits in the value recording, and
(name "java-fest-util")
(version "1.2.5")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/alexruiz/fest-util/"
- "archive/fest-util-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/alexruiz/fest-util/")
+ (commit (string-append "fest-util-" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "05g6hljz5mdaakk8d7g32klbhz9bdwp3qlj6rdaggdidxs3x1sb8"))))
+ "02kgal7v85snyyvcsxvn4qphid455f4smh2wri1il8d9asw0djbz"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "java-fest-util.jar"
(name "java-fest-test")
(version "2.1.0")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/alexruiz/fest-test/"
- "archive/fest-test-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/alexruiz/fest-test/")
+ (commit (string-append "fest-test-" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1rxfbw6l9vc65iy1x3fb617qc6y4w2k430pgf1mfbxfdlxbm0f7g"))))
+ "0mg1d2jfh7kbx2c40dchbjr6d8pv59snsyb13mfxsr7xk5n69qbn"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "java-fest-test.jar"
(name "java-fest-assert")
(version "2.0M10")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/alexruiz/fest-assert-2.x/"
- "archive/fest-assert-core-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/alexruiz/fest-assert-2.x/")
+ (commit (string-append "fest-assert-core-" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1bi0iqavikzww6rxvz5jyg7y6bflv95s6ibryxx0xfcxrrw6i5lw"))))
+ "1cp8zzyag3s85fz2w68sda9zzaal1y5f9wl8g72wkm12an40w6by"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "java-fest-assert.jar"
(name "java-lz4")
(version "1.4.0")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/lz4/lz4-java/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lz4/lz4-java")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "096dm57p2lzqk28n0j2p52x2j3cvnsd2dfqn43n7vbwrkjsy7y54"))))
+ "0ydjakhv3cz34mfvv14qrh2ksdxifgjwwagjy7r46qr3f68hnf6y"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "lz4.jar"
#:tests? #f; FIXME: requires more dependencies
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'make-files-writable
+ (lambda _
+ (for-each make-file-writable (find-files "."))
+ #t))
(add-before 'configure 'generate-source
(lambda _
(with-directory-excursion "src/build/source_templates"
(name "java-bouncycastle")
(version "1.60")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/bcgit/bc-java/archive/r"
- (substring version 0 1) "v"
- (substring version 2 4) ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "http://git.bouncycastle.org/repositories/bc-java")
+ ;(url "https://github.com/bcgit/bc-java")
+ (commit (string-append "r1rv" (substring version 2 4)))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0v434513y708qc87k4xz13p2kzydc736lk3ks67df9mg11s7hchv"))
+ "1m921a1ac2dl797ffzg3d4j97ch308f25spb4jgsj3npfmmys5gb"))
(modules '((guix build utils)))
(snippet
'(begin
(description "JSON Processing (JSON-P) is a Java API to process (e.g.
parse, generate, transform and query) JSON messages. It produces and
consumes JSON text in a streaming fashion (similar to StAX API for XML)
-and allows to build a Java object model for JSON text using API classes
+and allows building a Java object model for JSON text using API classes
(similar to DOM API for XML).")
;; either gpl2 only with classpath exception, or epl2.0.
(license (list license:gpl2