Subject: [patch] maven: fix build with java-slf4j-simple-source expanded
From: "Dr. Arne Babenhauserheide" <[email-masked]>
To: [email-masked]
Date: Mon, 12 Sep 2022 14:33:04 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

Maven failed to build for me, because java-slf4j-simple-source is no
longer a tarball, but an expanded directory of files.

Copying the files from Scheme makes it build. A patch is attached.

From f9ca747f6ecf63d46a41e813c6c4e7b7190e9081 Mon Sep 17 00:00:00 2001
From: Arne Babenhauserheide <[email-masked]>
Date: Mon, 12 Sep 2022 14:31:42 +0200
Subject: [PATCH] gnu: maven: fix build with java-slf4j-simple-source expanded

* gnu/packages/maven.scm (maven): copy files from source.
---
 gnu/packages/maven.scm | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index 28ec4eb9a8..a7d984fef2 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2019 Björn Höfling <[email-masked]>
 ;;; Copyright © 2020 Efraim Flashner <[email-masked]>
 ;;; Copyright © 2022 Artyom V. Poptsov <[email-masked]>
+;;; Copyright © 2022 Arne Babenhauserheide <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1787,7 +1788,17 @@ (define-public maven-slf4j-provider
            (lambda* (#:key inputs #:allow-other-keys)
              (mkdir-p "generated-sources")
              (with-directory-excursion "generated-sources"
-               (invoke "tar" "xf" (assoc-ref inputs "java-slf4j-simple-source"))
+               (let ((input-folder (assoc-ref inputs "java-slf4j-simple-source")))
+                 ;; copy all files
+                 (for-each (lambda (filename)
+                             (let ((target (string-drop
+                                            filename ;; remove one more than length: the slash
+                                            (1+ (string-length input-folder)))))
+                               (when (not (file-exists? (dirname target)))
+                                 (mkdir-p (dirname target)))
+                               (copy-file filename target)))
+                           (find-files (assoc-ref inputs "java-slf4j-simple-source"))))
+
                (for-each delete-file (find-files "." "StaticLoggerBinder.java")))
              (for-each
                (lambda (simple)
-- 
2.37.3

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