Alex ter Weele ezt írta (időpont: 2018. júl. 29., V, 5:05): > Gábor Boskovits writes: > > > I could use some help from someone more familiar with clojure uses. > > > > On current master clojure does not build, as the manifest contains > > Class-Path: . > > and jar -i throws exception in phase 'generate-jar-indices. > > > > The patch I proposed removes the classpath from the manifest. Do you > > think this can interfere with normal uses of clojure? > > > > Gábor, > > I applied your patch and did the following: > > $ guix environment guix -- make -j4 && ./pre-inst-env guix environment > --ad-hoc icedtea clojure > ... > $ java -jar $GUIX_ENVIRONMENT/share/java/clojure-1.9.0.jar > Clojure 1.9.0 > user=> (inc 0) > 1 > user=> (clojure.set/difference #{1 2} #{1}) > ClassNotFoundException clojure.set java.net.URLClassLoader.findClass > (URLClassLoader.java:381) > user=> (require 'clojure.set) > nil > user=> (clojure.set/difference #{1 2} #{1}) > #{2} > > Constructing the environment caused Clojures's test suite to run with no > failures. Based on a cursory test, I think that Clojure is working as > expected. > > Thanks for the review, I will apply this patch then. > I also looked into what the removed line > means. https://ant.apache.org/manual/Tasks/jar.html explains that > in the "jar" task specifies an inline > manifest. > https://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html#classpath > explains the meaning of a Class-Path in a manifest. So, I believe that > means that at runtime, JARs in the same directory as the Clojure JAR > will be available on the classpath. > > I believe that the line was > added in this commit > > https://github.com/clojure/clojure/commit/36868a7734f15c51eb1831aa9d72a14544496987#diff-2cccd7bf48b7a9cc113ff564acd802a8R30. > The > age of the commit and the commit message lead me to believe that it was > added as a convenience during the early development of Clojure and may > be removable upstream now. I may ask about that on the Clojure mailing > list. > > > Another possible solution would be to delete the index generation > > phase, but I'm not sure about the implications here either. > > > > WDYT? > > I also tried this and did the same as above. Clojure's test suite ran > again and had no failures. However, generate-jar-indices in (guix build > ant-build-system) has a docstring which suggests that the phase is > necessary to prevent garbage collection of the dependencies of the JAR > file. So it would seem like your patch is the best way to go ☺ > > P.S.: Gábor, thanks for your work on Java packages recently! With a > maven-build-system, I think I can bootstrap leiningen, which I'd really > like to see in the distribution. > >