summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-09-26 21:29:48 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-09-27 10:05:53 -0400
commitf0280f6245698ff90ce7f33d3270af5ab0be00e6 (patch)
treebde695d34ae61fde50992f2c5b28f9de666249df
parent6bf7467b077d419443d275581d6935852d1af434 (diff)
gnu: openjdk12: Introduce 'make-openjdk' syntax and use it.
* gnu/packages/java.scm (make-openjdk): New syntax. (openjdk12): Use it to define package. [source]: Remove trailing #t from snippet field and improve regexp. [phases]: Use gexps.
-rw-r--r--gnu/packages/java.scm112
1 files changed, 63 insertions, 49 deletions
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index d603cc8b36..33db6389a1 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2045,58 +2045,72 @@ new Date();"))
"This package provides the Java development kit OpenJDK.")
(license license:gpl2+)))
+(define-syntax make-openjdk
+ ;; Return an OpenJDK package at VERSION with checksum HASH, using BOOTSTRAP,
+ ;; the bootstrap package. One or more FIELD can be provided to further
+ ;; refine the package definition; for convenience, the BASE, NAME and
+ ;; VERSION are defined in their scope.
+ (lambda (x)
+ (syntax-case x ()
+ ((_ bootstrap version* hash field ...)
+ (with-syntax ((base (datum->syntax x 'base))
+ (name (datum->syntax x 'name))
+ (version (datum->syntax x 'version)))
+ #'(let ((base (package
+ (inherit bootstrap)
+ (name "openjdk")
+ (version version*)
+ (source
+ (origin
+ (inherit (package-source bootstrap))
+ (method git-fetch)
+ (uri (git-reference
+ (url (format
+ #f "https://github.com/openjdk/jdk~au"
+ (version-major version*)))
+ (commit (string-append "jdk-" version*
+ "-ga"))))
+ (file-name (git-file-name name version))
+ (sha256 (base32 hash))))
+ (native-inputs
+ (modify-inputs (package-native-inputs bootstrap)
+ (replace "openjdk" bootstrap)))
+ (home-page (string-append
+ "https://openjdk.java.net/projects/jdk/"
+ (version-major version)))))
+ (name "openjdk")
+ (version version*))
+ (package
+ (inherit base)
+ field
+ ...)))))))
+
(define-public openjdk12
- (package
- (inherit openjdk11)
- (name "openjdk")
- (version "12.33")
- (source (origin
- (method url-fetch)
- (uri "http://hg.openjdk.java.net/jdk/jdk/archive/0276cba45aac.tar.bz2")
- (file-name (string-append name "-" version ".tar.bz2"))
- (sha256
- (base32
- "0mbhdrk12b6878kby0flnbak7444dlpm0ihlmf92vk59y1c02bc2"))
- (modules '((guix build utils)))
- (snippet
- `(begin
- (for-each delete-file (find-files "." ".*.(bin|exe|jar)$"))
- #t))))
- (arguments
- (substitute-keyword-arguments (package-arguments openjdk11)
- ((#:phases phases)
- `(modify-phases ,phases
+ (make-openjdk
+ openjdk11 "12.33" "0mbhdrk12b6878kby0flnbak7444dlpm0ihlmf92vk59y1c02bc2"
+ (source
+ (origin
+ (method url-fetch)
+ (uri "http://hg.openjdk.java.net/jdk/jdk/archive/0276cba45aac.tar.bz2")
+ (file-name (string-append name "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "0mbhdrk12b6878kby0flnbak7444dlpm0ihlmf92vk59y1c02bc2"))
+ (modules '((guix build utils)))
+ (snippet
+ '(for-each delete-file (find-files "." "\\.(bin|exe|jar)$")))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments openjdk11)
+ ((#:phases phases)
+ #~(modify-phases #$phases
(replace 'fix-java-shebangs
(lambda _
- ;; This file was "fixed" by patch-source-shebangs, but it requires
- ;; this exact first line.
- (substitute* "make/data/blacklistedcertsconverter/blacklisted.certs.pem"
- (("^#!.*") "#! java BlacklistedCertsConverter SHA-256\n"))))))))
- (inputs
- `(("alsa-lib" ,alsa-lib)
- ("cups" ,cups)
- ("fontconfig" ,fontconfig)
- ("freetype" ,freetype)
- ("giflib" ,giflib)
- ("lcms" ,lcms)
- ("libjpeg" ,libjpeg-turbo)
- ("libpng" ,libpng)
- ("libx11" ,libx11)
- ("libxext" ,libxext)
- ("libxrandr" ,libxrandr)
- ("libxrender" ,libxrender)
- ("libxt" ,libxt)
- ("libxtst" ,libxtst)))
- (native-inputs
- `(("autoconf" ,autoconf)
- ("openjdk11" ,openjdk11)
- ("openjdk11:jdk" ,openjdk11 "jdk")
- ("make@4.2" ,gnu-make-4.2)
- ("pkg-config" ,pkg-config)
- ("unzip" ,unzip)
- ("which" ,which)
- ("zip" ,zip)))
- (home-page "https://openjdk.java.net/projects/jdk/12")))
+ ;; 'blocked' was renamed to 'blacklisted' in this version for
+ ;; some reason.
+ (substitute* "make/data/blacklistedcertsconverter/\
+blacklisted.certs.pem"
+ (("^#!.*")
+ "#! java BlacklistedCertsConverter SHA-256\n"))))))))))
(define-public openjdk13
(package