Subject: [bug#55929] [PATCH] gnu: maven: Add maven-doxia-sink-api

From: Julien Lepiller <[email-masked]>
Date: Sun, 12 Jun 2022 23:03:22 +0200

Great to see someone trying to package more maven-related stuff! I
think I've seen it in the dependency graph to the maven-plugin-plugin,
which I'd like to package at some point to make our life easier.

Le Sun, 12 Jun 2022 21:45:36 +0300,
"Artyom V. Poptsov" <[email-masked]> a écrit :

> From b4020bc283f18d7b7394976c4288d04130f1e651 Mon Sep 17 00:00:00 2001
> From: "Artyom V. Poptsov" <[email-masked]>
> Date: Sun, 12 Jun 2022 21:42:33 +0300
> Subject: [PATCH] gnu: maven: Add maven-doxia-sink-api

Here the subject should omit "maven", so simply:

gnu: Add maven-doxia-sink-api.

> 
> * gnu/packages/maven.scm (maven-doxia-sink-api): New variable.
> ---
>  gnu/packages/maven.scm | 29 +++++++++++++++++++++++++++++
>  1 file changed, 29 insertions(+)
> 
> diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
> index 817fee1c71..93c1538bae 100644
> --- a/gnu/packages/maven.scm
> +++ b/gnu/packages/maven.scm
> @@ -3,6 +3,7 @@
>  ;;; Copyright © 2019 Tobias Geerinckx-Rice <[email-masked]>
>  ;;; Copyright © 2019 Björn Höfling
> <[email-masked]> ;;; Copyright © 2020 Efraim
> Flashner <[email-masked]> +;;; Copyright © 2022 Artyom V.
> Poptsov <[email-masked]> ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -3887,3 +3888,31 @@ reports in two different file formats, plain
> text and xml."))) (description "This plugin provides the capability
> to build jars.  If you would like to sign jars please use the Maven
> Jarsigner Plugin instead.") (license license:asl2.0)))
> +
> +(define-public maven-doxia-sink-api
> +  (package
> +    (name "maven-doxia-sink-api")
> +    (version "2.0.0-M2")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url
> "https://gitbox.apache.org/repos/asf/maven-doxia.git")
> +                    (commit (string-append "doxia-" version))))
> +              (file-name (git-file-name "doxia" version))
> +              (sha256
> +               (base32
> +
> "0jx96lg0hgjsrm8mynhac4hwh2hmgiwjpwpx2k03yr14040zcr48"))))
> +    (build-system ant-build-system)
> +    (native-inputs
> +     (list java-javax-inject))
> +    (arguments
> +     (list #:jar-name "doxia-core.jar"

Is this intentional? Shouldn't it be doxia-sink-api.jar?

> +           #:source-dir "doxia-sink-api/src/main/java"
> +           #:tests? #f))                ; no tests

Also I'm wondering, since this will be used by maven eventually,
shouldn't we install it to lib/m2 with its pom file? To do so, we would
change the install phase to something like this:

(replace 'install (install-from-pom "doxia-sink-api/pom.xml"))

This might require a parent-pom (probably the top-level pom.xml and
maybe its own parent pom), so you'll have to provide a patch for it
as well. You can have a look at (gnu packages maven-parent) for
examples.

> +    (home-page "https://maven.apache.org/doxia/index.html")
> +    (synopsis "Generic markup language interface")
> +    (description "The @code{Sink} interface is a generic markup
> language +interface provided as a Java API. It contains several
> methods that encapsulate +common text syntax. A start tag is denoted
> by @code{xxxx()} method and a end +of tag by @code{xxxx_()} method.")

The description doesn't follow all our conventions, in particular,
double space between sentences :)

> +    (license license:asl2.0)))

Thanks!