Bug#910773: clojure1.8: clojure fails to run with openjdk-11

2018-10-10 Thread Tiago Daitx
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

2018-10-10 Thread Tiago Stürmer Daitx
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