Subject: Re: bug#73432: clojure package is broken

From: Kristiyan Kanchev <[email-masked]>
Date: Wed, 9 Oct 2024 15:15:47 +0300

Hello all,

I've just managed to start Metabase with clojure-tools build from Guix. 
The problem was indeed what I suspected --> maven-core 3.8.8 was needed. 
maven-core 3.9.* is incompatible with clojure-tools (I want to note that 
the clojure/tools.deps lib is not working correctly with maven 3.9, not 
that Guix packaging is wrong).

Unfortunately, most of maven projects are handled as "bundles" of 
dependencies, so I had to "port" 20 packages to their older version. I'm 
currently improving/beautifying the code, then I'll push patches for review.

Regards,
Kriss

On 10/6/24 15:57, Rostislav Svoboda wrote:
> Hi. The bug can be tested with a one liner from within the guix shell
> of your guix-repo checkout directory. Then it's just a git bisect
> grind resulting in:
>
> bad commit:    6a763d916e 2023-02-25 (HEAD) gnu: maven: Update to
> 3.9.0. Julien Lepiller
> compile error: 7634bfca4a 2023-02-25 gnu: Add java-asm-tree-9. Julien Lepiller
> compile error: 4ba0614677 2023-02-25 gnu: Add java-asm-9. Julien Lepiller
> compile error: 65e18f3f44 2023-02-25 gnu: maven-resolver-api: Update
> to 1.9.4. Julien Lepiller
> good commit:   597f7db28a 2023-02-25 gnu: Add maven-parent-pom-37.
> Julien Lepiller
>
> I think we should take a closer look at the changes introduced by
> maven 3.9.0, and involve Julien in the discussion.
>
> Cheers Bost
>
>
> bost@ecke ~/dev/guix$ guix shell --development guix gnupg direnv
> help2man git glibc-locales glibc less --pure
>
> bost@ecke ~/dev/guix [env]$ git log --pretty=format:'%h %ad%d %s %an'
> --date=short -n 5
> 6a763d916e 2023-02-25 (HEAD) gnu: maven: Update to 3.9.0. Julien Lepiller
> 7634bfca4a 2023-02-25 gnu: Add java-asm-tree-9. Julien Lepiller
> 4ba0614677 2023-02-25 gnu: Add java-asm-9. Julien Lepiller
> 65e18f3f44 2023-02-25 gnu: maven-resolver-api: Update to 1.9.4. Julien Lepiller
> 597f7db28a 2023-02-25 gnu: Add maven-parent-pom-37. Julien Lepiller
>
> bost@ecke ~/dev/guix [env]$ ./pre-inst-env guix shell clojure-tools
> openjdk coreutils --container --network
> --share=$HOME/.bash_history=$HOME/.bash_history
> --share=$HOME/.m2=$HOME/.m2 -- clojure -Sdeps '{:deps {aleph/aleph
> {:mvn/version "0.8.1"}}}' -J-Dmaven.wagon.rto=90000
> -J-Dio.netty.transport.noNative=true -M -e '(require '\''[aleph.http
> :as h]) @(h/get "https://www.google.com" {:socket-timeout 9000
> :connection-timeout 9000})'
> ;;; note: source file /home/bost/dev/guix/gnu/packages/java.scm
> ;;;       newer than compiled /home/bost/dev/guix/gnu/packages/java.go
> ;;; note: source file /home/bost/dev/guix/gnu/packages/maven.scm
> ;;;       newer than compiled /home/bost/dev/guix/gnu/packages/maven.go
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
> SLF4J: Defaulting to no-operation (NOP) logger implementation
> SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for
> further details.
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Execution error (ClassNotFoundException) at
> java.net.URLClassLoader/findClass (REPL:-1).
> io.netty.channel.epoll.Epoll
>
> Full report at:
> /tmp/clojure-10071694626922869296.edn
>
> bost@ecke ~/dev/guix [env]$ git checkout 7634bfca4a
> Previous HEAD position was 6a763d916e gnu: maven: Update to 3.9.0.
> HEAD is now at 7634bfca4a gnu: Add java-asm-tree-9.
>
> bost@ecke ~/dev/guix [env]$ ./pre-inst-env guix shell clojure-tools
> openjdk coreutils --container --network
> --share=$HOME/.bash_history=$HOME/.bash_history
> --share=$HOME/.m2=$HOME/.m2 -- clojure -Sdeps '{:deps {aleph/aleph
> {:mvn/version "0.8.1"}}}' -J-Dmaven.wagon.rto=90000
> -J-Dio.netty.transport.noNative=true -M -e '(require '\''[aleph.http
> :as h]) @(h/get "https://www.google.com" {:socket-timeout 9000
> :connection-timeout 9000})'
> ;;; note: source file /home/bost/dev/guix/gnu/packages/java.scm
> ;;;       newer than compiled /home/bost/dev/guix/gnu/packages/java.go
> ;;; note: source file /home/bost/dev/guix/gnu/packages/maven.scm
> ;;;       newer than compiled /home/bost/dev/guix/gnu/packages/maven.go
> substitute: updating substitutes from
> 'https://substitutes.nonguix.org'... 100.0%
> substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
> substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> The following derivations will be built:
>    /gnu/store/083biczjv0j6r80nrjvzcl5n8rk8qzr9-clojure-tools-1.11.1.1413.drv
>    /gnu/store/4acifkvki90v5njl9ji3phhmiigbm13k-maven-core-3.8.6.drv
>    /gnu/store/cn0v03z9ps68n2k1iz1j48w53irwd69n-java-plexus-component-metadata-1.7.1.drv
>    /gnu/store/fshmx260frcym0r3r7s3v5523cmswfhk-maven-core-3.8.6.drv
>    /gnu/store/l8p4srp198shgmmrn6v5gdcimdn68fbx-maven-resolver-provider-3.8.6.drv
>    /gnu/store/y5kfn1j2m33h22d6aci5y7czypx7xdy9-clojure-tools-deps-0.18.1354.drv
>
> building /gnu/store/l8p4srp198shgmmrn6v5gdcimdn68fbx-maven-resolver-provider-3.8.6.drv...
> - 'build' phasebuilder for
> `/gnu/store/l8p4srp198shgmmrn6v5gdcimdn68fbx-maven-resolver-provider-3.8.6.drv'
> failed with exit code 1
> build of /gnu/store/l8p4srp198shgmmrn6v5gdcimdn68fbx-maven-resolver-provider-3.8.6.drv
> failed
> View build log at
> '/var/log/guix/drvs/l8/p4srp198shgmmrn6v5gdcimdn68fbx-maven-resolver-provider-3.8.6.drv.gz'.
> cannot build derivation
> `/gnu/store/083biczjv0j6r80nrjvzcl5n8rk8qzr9-clojure-tools-1.11.1.1413.drv':
> 1 dependencies couldn't be built
> guix shell: error: build of
> `/gnu/store/083biczjv0j6r80nrjvzcl5n8rk8qzr9-clojure-tools-1.11.1.1413.drv'
> failed
>
> bost@ecke ~/dev/guix [env]$ git checkout 4ba0614677
> Previous HEAD position was 7634bfca4a gnu: Add java-asm-tree-9.
> HEAD is now at 4ba0614677 gnu: Add java-asm-9.
>
> bost@ecke ~/dev/guix [env]$ ./pre-inst-env guix shell clojure-tools
> openjdk coreutils --container --network
> --share=$HOME/.bash_history=$HOME/.bash_history
> --share=$HOME/.m2=$HOME/.m2 -- clojure -Sdeps '{:deps {aleph/aleph
> {:mvn/version "0.8.1"}}}' -J-Dmaven.wagon.rto=90000
> -J-Dio.netty.transport.noNative=true -M -e '(require '\''[aleph.http
> :as h]) @(h/get "https://www.google.com" {:socket-timeout 9000
> :connection-timeout 9000})'
> ;;; note: source file /home/bost/dev/guix/gnu/packages/java.scm
> ;;;       newer than compiled /home/bost/dev/guix/gnu/packages/java.go
> ;;; note: source file /home/bost/dev/guix/gnu/packages/maven.scm
> ;;;       newer than compiled /home/bost/dev/guix/gnu/packages/maven.go
> The following derivations will be built:
>    /gnu/store/083biczjv0j6r80nrjvzcl5n8rk8qzr9-clojure-tools-1.11.1.1413.drv
>    /gnu/store/4acifkvki90v5njl9ji3phhmiigbm13k-maven-core-3.8.6.drv
>    /gnu/store/cn0v03z9ps68n2k1iz1j48w53irwd69n-java-plexus-component-metadata-1.7.1.drv
>    /gnu/store/fshmx260frcym0r3r7s3v5523cmswfhk-maven-core-3.8.6.drv
>    /gnu/store/l8p4srp198shgmmrn6v5gdcimdn68fbx-maven-resolver-provider-3.8.6.drv
>    /gnu/store/y5kfn1j2m33h22d6aci5y7czypx7xdy9-clojure-tools-deps-0.18.1354.drv
>
> building /gnu/store/l8p4srp198shgmmrn6v5gdcimdn68fbx-maven-resolver-provider-3.8.6.drv...
> / 'build' phasebuilder for
> `/gnu/store/l8p4srp198shgmmrn6v5gdcimdn68fbx-maven-resolver-provider-3.8.6.drv'
> failed with exit code 1
> build of /gnu/store/l8p4srp198shgmmrn6v5gdcimdn68fbx-maven-resolver-provider-3.8.6.drv
> failed
> View build log at
> '/var/log/guix/drvs/l8/p4srp198shgmmrn6v5gdcimdn68fbx-maven-resolver-provider-3.8.6.drv.gz'.
> cannot build derivation
> `/gnu/store/083biczjv0j6r80nrjvzcl5n8rk8qzr9-clojure-tools-1.11.1.1413.drv':
> 1 dependencies couldn't be built
> guix shell: error: build of
> `/gnu/store/083biczjv0j6r80nrjvzcl5n8rk8qzr9-clojure-tools-1.11.1.1413.drv'
> failed
>
> bost@ecke ~/dev/guix [env]$ git checkout 65e18f3f44
> Previous HEAD position was 4ba0614677 gnu: Add java-asm-9.
> HEAD is now at 65e18f3f44 gnu: maven-resolver-api: Update to 1.9.4.
>
> bost@ecke ~/dev/guix [env]$ ./pre-inst-env guix shell clojure-tools
> openjdk coreutils --container --network
> --share=$HOME/.bash_history=$HOME/.bash_history
> --share=$HOME/.m2=$HOME/.m2 -- clojure -Sdeps '{:deps {aleph/aleph
> {:mvn/version "0.8.1"}}}' -J-Dmaven.wagon.rto=90000
> -J-Dio.netty.transport.noNative=true -M -e '(require '\''[aleph.http
> :as h]) @(h/get "https://www.google.com" {:socket-timeout 9000
> :connection-timeout 9000})'
> ;;; note: source file /home/bost/dev/guix/gnu/packages/java.scm
> ;;;       newer than compiled /home/bost/dev/guix/gnu/packages/java.go
> ;;; note: source file /home/bost/dev/guix/gnu/packages/maven.scm
> ;;;       newer than compiled /home/bost/dev/guix/gnu/packages/maven.go
> The following derivations will be built:
>    /gnu/store/083biczjv0j6r80nrjvzcl5n8rk8qzr9-clojure-tools-1.11.1.1413.drv
>    /gnu/store/4acifkvki90v5njl9ji3phhmiigbm13k-maven-core-3.8.6.drv
>    /gnu/store/cn0v03z9ps68n2k1iz1j48w53irwd69n-java-plexus-component-metadata-1.7.1.drv
>    /gnu/store/fshmx260frcym0r3r7s3v5523cmswfhk-maven-core-3.8.6.drv
>    /gnu/store/l8p4srp198shgmmrn6v5gdcimdn68fbx-maven-resolver-provider-3.8.6.drv
>    /gnu/store/y5kfn1j2m33h22d6aci5y7czypx7xdy9-clojure-tools-deps-0.18.1354.drv
>
> building /gnu/store/l8p4srp198shgmmrn6v5gdcimdn68fbx-maven-resolver-provider-3.8.6.drv...
> / 'build' phasebuilder for
> `/gnu/store/l8p4srp198shgmmrn6v5gdcimdn68fbx-maven-resolver-provider-3.8.6.drv'
> failed with exit code 1
> build of /gnu/store/l8p4srp198shgmmrn6v5gdcimdn68fbx-maven-resolver-provider-3.8.6.drv
> failed
> View build log at
> '/var/log/guix/drvs/l8/p4srp198shgmmrn6v5gdcimdn68fbx-maven-resolver-provider-3.8.6.drv.gz'.
> cannot build derivation
> `/gnu/store/083biczjv0j6r80nrjvzcl5n8rk8qzr9-clojure-tools-1.11.1.1413.drv':
> 1 dependencies couldn't be built
> guix shell: error: build of
> `/gnu/store/083biczjv0j6r80nrjvzcl5n8rk8qzr9-clojure-tools-1.11.1.1413.drv'
> failed
>
> bost@ecke ~/dev/guix [env]$ git checkout 597f7db28a
> Previous HEAD position was 65e18f3f44 gnu: maven-resolver-api: Update to 1.9.4.
> HEAD is now at 597f7db28a gnu: Add maven-parent-pom-37.
>
> bost@ecke ~/dev/guix [env]$ ./pre-inst-env guix shell clojure-tools
> openjdk coreutils --container --network
> --share=$HOME/.bash_history=$HOME/.bash_history
> --share=$HOME/.m2=$HOME/.m2 -- clojure -Sdeps '{:deps {aleph/aleph
> {:mvn/version "0.8.1"}}}' -J-Dmaven.wagon.rto=90000
> -J-Dio.netty.transport.noNative=true -M -e '(require '\''[aleph.http
> :as h]) @(h/get "https://www.google.com" {:socket-timeout 9000
> :connection-timeout 9000})'
> ;;; note: source file /home/bost/dev/guix/gnu/packages/java.scm
> ;;;       newer than compiled /home/bost/dev/guix/gnu/packages/java.go
> ;;; note: source file /home/bost/dev/guix/gnu/packages/maven.scm
> ;;;       newer than compiled /home/bost/dev/guix/gnu/packages/maven.go
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
> SLF4J: Defaulting to no-operation (NOP) logger implementation
> SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for
> further details.
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> Warning: failed to load the S3TransporterFactory class
> {:request-time 82, :aleph/keep-alive? true, :headers {"accept-ch"
> "Sec-CH-Prefers-Color-Scheme", "server" "gws",
> "content-security-policy-report-only" "object-src 'none';base-uri
> 'self';script-src 'nonce-L_bpFSKBfV6ePPQ5XX89mw' 'strict-dynamic'
> 'report-sample' 'unsafe-eval' 'unsafe-inline' https: http:;report-uri
> https://csp.withgoogle.com/csp/gws/other-hp", "content-type"
> "text/html; charset=ISO-8859-1", "alt-svc" "h3=\":443\";
> ma=2592000,h3-29=\":443\"; ma=2592000", "x-frame-options"
> "SAMEORIGIN", "transfer-encoding" "chunked", "accept-ranges" "none",
> "expires" "-1", "set-cookie"
> "AEC=AVYB7cr3cvmbAV1LWXyhpEQMmhRJqAKagWpJsT3WkFdcueWBlDBtYcB0u1o;
> expires=Fri, 04-Apr-2025 12:35:58 GMT; path=/; domain=.google.com;
> Secure; HttpOnly;
> SameSite=lax,__Secure-ENID=22.SE=hKFI58OY5TimxtoBmlZoSVjiTnTyUvcKPQ5h8n0JoYzy2J-9FSnumjnPyK208TYChMrSFA1issl1W8d36dbIH4w8EqdsKZpAx9VOHYif7-4hpDuzzJc63EQN5B9P9Ie5EOByy0HTBVwFwqRx6Kzpq9KiLMC5p98cyf6gTrU9aUgM-ec-gXy-yZh5WlL6cD2hXw3g5WkRcCk;
> expires=Thu, 06-Nov-2025 04:54:16 GMT; path=/; domain=.google.com;
> Secure; HttpOnly; SameSite=lax", "p3p" "CP=\"This is not a P3P policy!
> See g.co/p3phelp for more info.\"", "date" "Sun, 06 Oct 2024 12:35:58
> GMT", "vary" "Accept-Encoding", "x-xss-protection" "0",
> "cache-control" "private, max-age=0"}, :status 200, :connection-time
> 336, :body #object[clj_commons.byte_streams.InputStream 0x7ba907cf
> "clj_commons.byte_streams.InputStream@7ba907cf"]}
>
> bost@ecke ~/dev/guix [env]$