Subject: bug#67553: maven is very old (3.8.6) — start of a patch to update maven (does not work yet)

From: "Dr. Arne Babenhauserheide" <[email-masked]>
Date: Thu, 30 Nov 2023 22:38:14 +0100

Hi,

I tried to update maven to 3.9.5 but failed because maven did not find
synccontext:

starting phase `build'
Buildfile: /tmp/guix-build-maven-resolver-provider-3.9.5.drv-0/apache-maven-3.9.5/build.xml

compile:
    [javac] Compiling 27 source files to /tmp/guix-build-maven-resolver-provider-3.9.5.drv-0/apache-maven-3.9.5/build/classes
    [javac] /tmp/guix-build-maven-resolver-provider-3.9.5.drv-0/apache-maven-3.9.5/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java:57: error: package org.eclipse.aether.spi.synccontext does not exist
    [javac] import org.eclipse.aether.spi.synccontext.SyncContextFactory;
    [javac]                                          ^
    [javac] /tmp/guix-build-maven-resolver-provider-3.9.5.drv-0/apache-maven-3.9.5/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java:76: error: cannot find symbol
    [javac]     private SyncContextFactory syncContextFactory;
    [javac]             ^
    [javac]   symbol:   class SyncContextFactory
    [javac]   location: class DefaultVersionRangeResolver
    [javac] /tmp/guix-build-maven-resolver-provider-3.9.5.drv-0/apache-maven-3.9.5/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java:88: error: cannot find symbol
    [javac]             SyncContextFactory syncContextFactory,
    [javac]             ^
    [javac]   symbol:   class SyncContextFactory
    [javac]   location: class DefaultVersionRangeResolver
    [javac] /tmp/guix-build-maven-resolver-provider-3.9.5.drv-0/apache-maven-3.9.5/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java:107: error: cannot find symbol
    [javac]     public DefaultVersionRangeResolver setSyncContextFactory(SyncContextFactory syncContextFactory) {
    [javac]                                                              ^
    [javac]   symbol:   class SyncContextFactory
    [javac]   location: class DefaultVersionRangeResolver
    [javac] /tmp/guix-build-maven-resolver-provider-3.9.5.drv-0/apache-maven-3.9.5/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java:65: error: package org.eclipse.aether.spi.synccontext does not exist
    [javac] import org.eclipse.aether.spi.synccontext.SyncContextFactory;
    [javac]                                          ^
    [javac] /tmp/guix-build-maven-resolver-provider-3.9.5.drv-0/apache-maven-3.9.5/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java:85: error: cannot find symbol
    [javac]     private SyncContextFactory syncContextFactory;
    [javac]             ^
    [javac]   symbol:   class SyncContextFactory
    [javac]   location: class DefaultVersionResolver
    [javac] /tmp/guix-build-maven-resolver-provider-3.9.5.drv-0/apache-maven-3.9.5/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java:97: error: cannot find symbol
    [javac]             SyncContextFactory syncContextFactory,
    [javac]             ^
    [javac]   symbol:   class SyncContextFactory
    [javac]   location: class DefaultVersionResolver
    [javac] /tmp/guix-build-maven-resolver-provider-3.9.5.drv-0/apache-maven-3.9.5/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java:116: error: cannot find symbol
    [javac]     public DefaultVersionResolver setSyncContextFactory(SyncContextFactory syncContextFactory) {
    [javac]                                                         ^
    [javac]   symbol:   class SyncContextFactory
    [javac]   location: class DefaultVersionResolver
    [javac] /tmp/guix-build-maven-resolver-provider-3.9.5.drv-0/apache-maven-3.9.5/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java:98: error: cannot find symbol
    [javac]         setSyncContextFactory(locator.getService(SyncContextFactory.class));
    [javac]                                                  ^
    [javac]   symbol:   class SyncContextFactory
    [javac]   location: class DefaultVersionRangeResolver
    [javac] /tmp/guix-build-maven-resolver-provider-3.9.5.drv-0/apache-maven-3.9.5/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java:107: error: cannot find symbol
    [javac]         setSyncContextFactory(locator.getService(SyncContextFactory.class));
    [javac]                                                  ^
    [javac]   symbol:   class SyncContextFactory
    [javac]   location: class DefaultVersionResolver
    [javac] Note: /tmp/guix-build-maven-resolver-provider-3.9.5.drv-0/apache-maven-3.9.5/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java uses or overrides a deprecated API.
    [javac] Note: Recompile with -Xlint:deprecation for details.
    [javac] 10 errors

BUILD FAILED
/tmp/guix-build-maven-resolver-provider-3.9.5.drv-0/apache-maven-3.9.5/build.xml:1: Compile failed; see the compiler error output for details.

Total time: 0 seconds
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "ant" arguments: ("jar") exit-status: 1 term-signal: #f stop-signal: #f> 
phase `build' failed after 1.2 seconds
command "ant" "jar" failed with status 1
builder for `/gnu/store/vwq5vwa2iwplwxkxq20mlipb28vi4p8z-maven-resolver-provider-3.9.5.drv' failed with exit code 1
build of /gnu/store/vwq5vwa2iwplwxkxq20mlipb28vi4p8z-maven-resolver-provider-3.9.5.drv failed
View build log at '/var/log/guix/drvs/vw/q5vwa2iwplwxkxq20mlipb28vi4p8z-maven-resolver-provider-3.9.5.drv.gz'.
cannot build derivation `/gnu/store/i5kgkmp528xbqq7wslf0d2rgp3lys5iq-maven-3.9.5.drv': 1 dependencies couldn't be built
guix build: error: build of `/gnu/store/i5kgkmp528xbqq7wslf0d2rgp3lys5iq-maven-3.9.5.drv' failed

Used patch:

From 9eaa32b4efead681bbd896ba5b39bbffd959f944 Mon Sep 17 00:00:00 2001
Message-ID: <[email-masked]>
From: Arne Babenhauserheide <[email-masked]>
Date: Thu, 30 Nov 2023 22:35:37 +0100
Subject: [PATCH] Update maven to 3.9.5

* gnu/packages/java.scm(java-testing): disable failing DataProviderTest
* gnu/packages/maven-parent-pom.scm(apache-parent-pom-31): new package
* gnu/packages/maven-parent-pom.scm(maven-parent-pom-41): new package
* gnu/packages/maven.scm(maven-pom): update version to 3.9.5, use maven-parent-pom-41

Change-Id: I980ca6f57072f22be10d8d3a87aaef07416a3841
---
 gnu/packages/java.scm             |  3 ++-
 gnu/packages/maven-parent-pom.scm | 14 ++++++++++++++
 gnu/packages/maven.scm            |  6 +++---
 3 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index d5e0eeb04c..d6262bcc6e 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -10870,7 +10870,8 @@ (define-public java-testng
            (lambda _
              (substitute* "src/test/resources/testng.xml"
                (("<class name=\"test.configuration.github1625.TestRunnerIssue1625\"/>") "")
-               (("<class name=\"test.serviceloader.ServiceLoaderTest\" />") ""))
+               (("<class name=\"test.serviceloader.ServiceLoaderTest\" />") "")
+               (("<class name=\"test.dataprovider.DataProviderTest\" />") ""))
              #t))
          ;; We don't have groovy
          (add-after 'unpack 'delete-groovy-tests
diff --git a/gnu/packages/maven-parent-pom.scm b/gnu/packages/maven-parent-pom.scm
index 660790b019..3f569a6c7a 100644
--- a/gnu/packages/maven-parent-pom.scm
+++ b/gnu/packages/maven-parent-pom.scm
@@ -92,6 +92,10 @@ (define-public apache-parent-pom-25
   (make-apache-parent-pom
     "25" "1vwx2fpgk7cn2pnlnx26df26vndiwwn5l7ngakj0vwal5pmp6115"))
 
+(define-public apache-parent-pom-31
+  (make-apache-parent-pom
+    "31" "1sdjh664gakz5bjawrw4p4bpvkjwsk4wbd1iapl1r38zsfcp5qal"))
+
 (define* (make-apache-commons-parent-pom version hash parent
                                          #:key (tag-prefix "commons-parent-"))
   (hidden-package
@@ -443,6 +447,16 @@ (define* (make-maven-parent-pom version hash parent #:key replacements)
 tool.  This package contains the Maven parent POM.")
       (license license:asl2.0))))
 
+(define-public maven-parent-pom-41
+  (make-maven-parent-pom
+    "41" "0glhr3s77g80yc20ajpwmpqgqn3i2ap7mj1wqs1vnk2fp2s0lvsj"
+    apache-parent-pom-31
+    #:replacements
+    (delay
+      `(("org.codehaus.plexus"
+         ("plexus-component-annotations" .
+          ,(package-version java-plexus-component-annotations)))))))
+
 (define-public maven-parent-pom-35
   (make-maven-parent-pom
     "35" "0pg9k7l5pcbghmc89i11g900pbzznvf5sfdfzlqfwpihqb2g8iab"
diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index fc3a63c263..d0db224bd6 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -1119,13 +1119,13 @@ (define-public maven-wagon-http
 (define maven-pom
   (package
     (name "maven-pom")
-    (version "3.8.6")
+    (version "3.9.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://apache/maven/"
                                   "maven-3/" version "/source/"
                                   "apache-maven-" version "-src.tar.gz"))
-              (sha256 (base32 "0jszmcaxp597a62ajrc478jxix1qmw4pknhiygsbjdy3kccc7gvj"))
+              (sha256 (base32 "0w2yl01x52nm5dwkw36mn82gaqp49j8div698kkl9jch0fsndsck"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -1199,7 +1199,7 @@ (define maven-pom
          (replace 'install
            (install-pom-file "pom.xml")))))
     (propagated-inputs
-     (list maven-parent-pom-35))
+     (list maven-parent-pom-41))
     (home-page "https://maven.apache.org/")
     (synopsis "Build system")
     (description "Apache Maven is a software project management and comprehension

base-commit: 2b782f67266b42bb40015bd23ce2443be2f9b01f
prerequisite-patch-id: e26acb8280f31db9b663b6fc444a2229fc5b588e
prerequisite-patch-id: db5cc62f7d04f3ed3014ae984fe732f3b6db8d17
prerequisite-patch-id: 3a0bf9ef6f27f1d92537c5e9ee5c38c7d6ced99e
prerequisite-patch-id: 088a72da8c11e5d1c7087b4a5e8bb9c4a3b9b2af
prerequisite-patch-id: 1b4787e17ec6ab62978615e1d3804a1024c5e1a0
prerequisite-patch-id: f814d9756faa5d91a68b81654606c66b4cf389e5
prerequisite-patch-id: f2dbed3e6da49472bd141c9fa40de2d2208130fb
prerequisite-patch-id: 2dbf557994da4a264566b67294f7f3f8e2931f5f
prerequisite-patch-id: 912a76fac540b98d5683ba1886a7d62f0963cd9f
prerequisite-patch-id: f6a9bfd16b8952c73b7a6d97be70013a290815d7
prerequisite-patch-id: e50c1aaa1d401bba32a49d2e1fb1661746543d09
prerequisite-patch-id: 1f63cb516bc5c9772ae808371528006fca20dcad
prerequisite-patch-id: 1ac04f0120fb6c4f106d05bee88103debb815b41
prerequisite-patch-id: eeff242fb5e41c8c83b3daadd0965e58eb6670ba
prerequisite-patch-id: 3812c9ac1252d9d20e8485462be155156f302a54
prerequisite-patch-id: 9d3dd155c91ab334999c03fefab04f361ea4d8b5
prerequisite-patch-id: f5b09b934b65fe45bdfd1273baa3bb949ed52cca
prerequisite-patch-id: 4575cf082c1c2afd2691d062d35133660014afd0
prerequisite-patch-id: 3f9d50361fb537607c33d09115366aec05160688
prerequisite-patch-id: 765c77b7c31f24491149665a066d2906f8da8d33
prerequisite-patch-id: 2b92c37e3aa74152a7aa226e1fbd5f2735037dc0
prerequisite-patch-id: 2a3123ab0786108f26e25c45fc4c545b99b6dd27
prerequisite-patch-id: 891a2458a90ea90113c576df5029514f5143366e
prerequisite-patch-id: 1a08957a2fd3e3637ed7f3cf3f44c9f8194d6668
prerequisite-patch-id: d382210c915c0a809cb709cba45a4542d60c4d20
prerequisite-patch-id: d424ad2c4c4bf14becb025c67757f48d4a6ae6b5
prerequisite-patch-id: 07e1c90231819e0b963645b041522e53891fd344
prerequisite-patch-id: 124009dec6dad63add19bf258f71bdb127078ecb
prerequisite-patch-id: 0afa33c8e0e2aca07da2782e04d259d3f8c498c5
prerequisite-patch-id: 205bb6c05a145eb9137e8623687418089351e73e
prerequisite-patch-id: 7138f72403701b9749a0a587f1807030d730c00d
prerequisite-patch-id: 39bd665160a5e62aaa4ea94ad2e3ca30f31e2127
prerequisite-patch-id: d5d0cdab2914d5d4b80f7e9e541c8f76b6e313d6
prerequisite-patch-id: 9b22cdb1bd10f6f0231168f7223d5b700830ad48
prerequisite-patch-id: cd1ddd3e6d24b1488271cfbdc28dc6619552306e
prerequisite-patch-id: 8b5cef14cf4c6b27783c8f5ed9b8802bf11b15c5
prerequisite-patch-id: edcd26e8d73221f3f2dcb7e2bc22aafc1cc98aa1
prerequisite-patch-id: e71d19f3cb53b17d7103cbcefdf92f62493047f5
-- 
2.41.0

Build log is attached.

Best wishes,
Arne
-- 
Unpolitisch sein
heißt politisch sein,
ohne es zu merken.
draketo.de