Bug#910773: clojure1.8: clojure fails to run with openjdk-11
Please consider the attached debdiff which basically applies the upstream fix and adds a dep3 header to it. diff -Nru clojure1.8-1.8.0/debian/changelog clojure1.8-1.8.0/debian/changelog --- clojure1.8-1.8.0/debian/changelog 2018-08-04 17:56:45.0 -0300 +++ clojure1.8-1.8.0/debian/changelog 2018-10-10 13:47:36.0 -0300 @@ -1,3 +1,11 @@ +clojure1.8 (1.8.0-8) cosmic; urgency=medium + + * debian/patches/03-add-toarray-hint-type-68d8b83138437c18.patch: +Add hint type to toArray method to resolve ambiguity introduced by +JDK 11. (Closes: #910773, LP: #1796985). + + -- Tiago Stürmer Daitx Wed, 11 Oct 2018 02:12:55 + + clojure1.8 (1.8.0-7) unstable; urgency=medium * Update Vcs-* links to point to the clojure-team repo. diff -Nru clojure1.8-1.8.0/debian/patches/03-add-toarray-hint-type-68d8b83138437c18.patch clojure1.8-1.8.0/debian/patches/03-add-toarray-hint-type-68d8b83138437c18.patch --- clojure1.8-1.8.0/debian/patches/03-add-toarray-hint-type-68d8b83138437c18.patch 1969-12-31 21:00:00.0 -0300 +++ clojure1.8-1.8.0/debian/patches/03-add-toarray-hint-type-68d8b83138437c18.patch 2018-10-10 13:45:50.0 -0300 @@ -0,0 +1,37 @@ +Description: Add hint to overloaded toArray method + OpenJDK 11 added a new overload to the toArray method that + causes a slight API breakage. This requires calls to toArray + to set a type hint in order to prevent the exception + java.lang.IllegalArgumentException. +Origin: https://github.com/clojure/clojure/commit/68d8b83138437c18f1d5cf9ba46c056aa2701d23 +Bug: https://dev.clojure.org/jira/browse/CLJ-2374 +Bug-Ubuntu: https://launchpad.net/bugs/1796985 +Applied-Upstream: https://github.com/clojure/clojure/commit/68d8b83138437c18f1d5cf9ba46c056aa2701d23 +Last-Update: 2018-10-10 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ + +From 68d8b83138437c18f1d5cf9ba46c056aa2701d23 Mon Sep 17 00:00:00 2001 +From: Alex Miller +Date: Mon, 1 Oct 2018 09:29:37 -0500 +Subject: [PATCH] CLJ-2374 Add type hint to toArray to resolve ambiguity in JDK + 11 + +Signed-off-by: Stuart Halloway +--- + src/clj/clojure/gvec.clj | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/clj/clojure/gvec.clj b/src/clj/clojure/gvec.clj +index 3c4007379..6208f5539 100644 +--- a/src/clj/clojure/gvec.clj b/src/clj/clojure/gvec.clj +@@ -397,7 +397,7 @@ + (containsAll [this c] (every? #(.contains this %) c)) + (isEmpty [_] (zero? cnt)) + (toArray [this] (into-array Object this)) +- (toArray [this arr] ++ (^objects toArray [this ^objects arr] + (if (>= (count arr) cnt) + (do + (dotimes [i cnt] diff -Nru clojure1.8-1.8.0/debian/patches/series clojure1.8-1.8.0/debian/patches/series --- clojure1.8-1.8.0/debian/patches/series 2018-03-19 16:31:31.0 -0300 +++ clojure1.8-1.8.0/debian/patches/series 2018-10-10 13:46:55.0 -0300 @@ -1 +1,2 @@ 02-modify-cli-usage.patch +03-add-toarray-hint-type-68d8b83138437c18.patch
Bug#910773: clojure1.8: clojure fails to run with openjdk-11
Package: clojure1.8 Version: 1.8.0-7 Severity: important Dear Maintainer, when trying to run clojure1.8 with openjdk-11 it fails with Exception in thread "main" java.lang.ExceptionInInitializerError at clojure.main.(main.java:20) Caused by: java.lang.IllegalArgumentException: Must hint overloaded method: toArray, compiling:(clojure/gvec.clj:131:1) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6875) at clojure.lang.Compiler.analyze(Compiler.java:6669) at clojure.lang.Compiler.analyze(Compiler.java:6625) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:6003) at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6319) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6868) at clojure.lang.Compiler.analyze(Compiler.java:6669) at clojure.lang.Compiler.analyze(Compiler.java:6625) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:6005) at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5380) at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3972) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6866) at clojure.lang.Compiler.analyze(Compiler.java:6669) at clojure.lang.Compiler.eval(Compiler.java:6924) at clojure.lang.Compiler.load(Compiler.java:7379) at clojure.lang.RT.loadResourceScript(RT.java:372) at clojure.lang.RT.loadResourceScript(RT.java:363) at clojure.lang.RT.load(RT.java:453) at clojure.lang.RT.load(RT.java:419) at clojure.core$load$fn__1621.invoke(core.clj:5893) at clojure.core$load.invokeStatic(core.clj:5892) at clojure.core$load.doInvoke(core.clj:5876) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$eval3106.invokeStatic(core.clj:6523) at clojure.core$eval3106.invoke(core.clj:6523) at clojure.lang.Compiler.eval(Compiler.java:6927) at clojure.lang.Compiler.load(Compiler.java:7379) at clojure.lang.RT.loadResourceScript(RT.java:372) at clojure.lang.RT.loadResourceScript(RT.java:363) at clojure.lang.RT.load(RT.java:453) at clojure.lang.RT.load(RT.java:419) at clojure.lang.RT.doInit(RT.java:461) at clojure.lang.RT.(RT.java:331) ... 1 more Caused by: java.lang.IllegalArgumentException: Must hint overloaded method: toArray at clojure.lang.Compiler$NewInstanceMethod.parse(Compiler.java:8206) at clojure.lang.Compiler$NewInstanceExpr.build(Compiler.java:7798) at clojure.lang.Compiler$NewInstanceExpr$DeftypeParser.parse(Compiler.java:7678) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6868) ... 33 more This is related to https://dev.clojure.org/jira/browse/CLJ-2374 and the proposed fix upstream is available at https://github.com/tirkarthi/clojure/commit/63dab8e6cb702a6b0c5b279721bee7eff0aba44f.patch Regards, Tiago -- System Information: Debian Release: buster/sid APT prefers cosmic APT policy: (500, 'cosmic'), (400, 'cosmic-proposed') Architecture: amd64 (x86_64) Kernel: Linux 4.18.0-7-generic (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled