Hi Andres
Just spotted your help-guix post. Just FYI this is discussed further in
the following issue (no resolution yet):
https://issues.guix.gnu.org/73432
I'm similarly affected and am currently having to use upstream Clojure
with selected projects, rather than "clojure-tools" - including a
project based on Kit.
Regards,
Ben
On 1/7/24 01:16, Andres Moreno wrote:
I started to play with the Kit Web Framework and followed the instructions
to build the default example,
https://kit-clj.github.io/docs/guestbook.html#guestbook_application
clojure -Ttools install com.github.seancorfield/clj-new '{:git/tag
"v1.2.404"}' :as clj-new
clojure -Tclj-new create :template io.github.kit-clj :name kit/guestbook
cd guestbook
I then try to start a CIDER repl by typing:
clj -M:dev:cider
This fails with a class-not-found error:
java.lang.NoClassDefFoundError: org/xnio/channels/StreamSourceChannel
The complaint comes from
Exception in thread "main" Syntax error compiling . at
(ring/adapter/undertow/request.clj:10:17)
I can get rid of this issue by adding
org.jboss.xnio/xnio-api {:mvn/version "3.8.16.Final"}
org.jboss.xnio/xnio-nio {:mvn/version "3.8.16.Final"}
to my deps.edn file.
Eventually, I succeeded and got a REPL working, but there were a few
additional classes that threw errors when I invoked the (go) function at
the REPL: those erors were fixed by adding the below to the deps.edn file:
org.wildfly.common/wildfly-common {:mvn/version "2.0.0"}
org.jboss.logging/jboss-logging {:mvn/version "3.6.0.Final"}
io.smallrye.config/smallrye-config-common {:mvn/version "3.8.3"}
io.smallrye.common/smallrye-common-net {:mvn/version "2.4.0"}
org.jboss.threads/jboss-threads {:mvn/version "3.6.1.Final"}
io.smallrye.common/smallrye-common-cpu {:mvn/version "2.4.0"}
Set-up on Guix System:
- openjdk 21.0.2 (also tested: openjdk 11.0.22)
- clojure-tools 1.11.2.1446
Note that I can run the above on Debian 12.6 just as the documentation
suggests, with no need to add any additional classes to the deps.edn file
when I have clojure-tools manually installed on Debian per the script on
the Clojure website.
Additionally, I got the same errors when I used clojure-tools on Debian
using the Guix package manager. This suggests that the issue is related to
clojure-tools.
I have a work-around so this issue is in no way critical. Nevertheless, I
thought that I should report it should the folks that look after the
clojure-tools package want to look into it. I don't know my way around the
Clojure web stack so I couldn't figure out how to provide a simpler example.
I will try to find something simpler in a different domain in the meantime.
Regards, afm