Subject: bug#73432: clojure package is broken

From: Kristiyan Kanchev <[email-masked]>
Date: Fri, 4 Oct 2024 11:33:54 +0300

Hello Roman,

What do you mean that you're getting the same error? Getting the same 
error with Guix Clojure or with Nix Clojure? Metabase or the test 
project by Andreas?

I'm fairly confident that the problem is not caused by the S3 transport 
because alot of transitive dependencies are missing from the class-path 
that are not related to these libraries you cited. I was investigating 
the reported class-path from within Clojure with 
https://github.com/clojure/java.classpath, which is also dependency for 
Metabase, so you could try it in a nREPL session.

I'm currently trying to  maven-resolver-provider from 3.9 to 3.8 and 
will report results, hopefully soon -- I'm new to Guix and need some 
more time. If it works out, I'll try to push patches.

Thanks,
Kriss

On 10/3/24 17:48, Roman Scherer wrote:
> Ludo recently merged some of my patches that I have re-submitted
> recently. There are 4 patches missing, that I haven't submitted
> again. They contain the S3 support.
>
> But it's not clear if they can be included inn Guix, because some of the
> artifacts are Clojure EDN files generated from AWS API docs. The code to
> generate them has not been published by the Clojure team. That was a
> blocker back in the day according to Maxim Devos.
>
> The patches are here:
>
> https://github.com/r0man/guix/commits/clojure-s3-transport/
>
> I really should find that thread ...
>
> Roman Scherer <[email-masked]> writes:
>
>> Hi,
>>
>> I just tried this and got the same error. I'm not using the Clojure
>> package from Guix because the AWS S3 support has been ripped out. I use
>> the package from Nix.
>>
>> My guess is, this error is also because of the lacking S3 support, or if
>> not it will break later. The deps.edn file of Metabase contains:
>>
>> ```
>> {"athena"   {:url "https://s3.amazonaws.com/maven-athena"}
>>    "redshift" {:url "https://s3.amazonaws.com/redshift-maven-repository/release"}
>>    ;; for metabase/saml20-clj
>>    "opensaml" {:url "https://build.shibboleth.net/nexus/content/repositories/releases/"}}
>> ```
>>
>> So it's using S3 to resolve Maven dependencies. There is an open issue
>> for this https://issues.guix.gnu.org/53765 and I opened a duplicate of
>> this a while ago (which I can't find right now). Unfortunaltly this went
>> nowhwere.
>>
>> Roman
>>
>> Ludovic Courtès <[email-masked]> writes:
>>
>>> Hi Andreas and Kristiyan,
>>>
>>> Cc’ing Roman and Rostislav who are among the recent committers for this
>>> file.
>>>
>>> Andreas Bauer <[email-masked]> wrote:
>>>
>>>> Now it can be fixed with time machine:
>>>>
>>>> guix time-machine --commit=98e4bfe96f2c99daa0b66b65c1d379bb385301a8 -- guix
>>>> shell --pure --development --check clojure-tools openjdk coreutils
>>>>
>>>> Then in time-machine run again clojure-X:curl and the demo will work.
>>> Kristiyan Kanchev <[email-masked]> skribis:
>>>
>>>> I'm seeing issues with the project Metabase: https://github.com/metabase/metabase. When `clojure -M:run`, it fails with:
>>>> Execution error (ClassNotFoundException) at java.net.URLClassLoader/findClass (URLClassLoader.java:476).
>>>> jakarta.servlet.AsyncContext
>>>>
>>>> The problem seems to be that Clojure CLI (`clojure-tools` guix package) doesn't construct proper class path including all transitive
>>>> dependencies of the project. I've tried to figure out what might be causing the issue and I suspect `maven-resolver-*` packages. Clojure
>>>> CLI depends on `tools.deps` clojure lib, which itself depends on `maven-resolver-*`. There is a mention in the `tools.deps` changelog of
>>>> reverting `maven-resolver-*` libs in version 0.18.1374 with comment "Revert update of Maven resolver libs - seeing resolution
>>>> differences".
>>>> Here is the relevant commit:
>>>> https://github.com/clojure/tools.deps/commit/04539cd060d41a528794c04b50a6aa2293b672ce
>>>>
>>>> Up until this date, `tools.deps` lists the older versions of maven-resolver-* libs in its deps.end file. Since Guix uses the latest versions of
>>>> maven-resolver-* libs, I think this is causing the issue.
>>> Roman, Rostislav: does that ring a bell?
>>>
>>> Thanks,
>>> Ludo’.