* [bug#55929] [PATCH] gnu: maven: Add maven-doxia-sink-api
@ 2022-06-12 18:25 Artyom V. Poptsov
2022-06-12 18:45 ` Artyom V. Poptsov
0 siblings, 1 reply; 12+ messages in thread
From: Artyom V. Poptsov @ 2022-06-12 18:25 UTC (permalink / raw)
To: 55929
[-- Attachment #1.1: Type: text/plain, Size: 385 bytes --]
Hello,
this patch adds 'Doxia Sink API'[1] under the name
'maven-doxia-sink-api'.
The module contains a Java interface that is used by Doxia Core module.
This patch is the first in the future patch set based on my effort to
add Doxia modules.
The Doxia itself required for other useful Maven plugins.
- Artyom
References:
1. https://maven.apache.org/doxia/doxia/doxia-sink-api/
[-- Attachment #1.2: 0001-gnu-maven-Add-maven-doxia-sink-api.patch --]
[-- Type: text/x-diff, Size: 7008 bytes --]
From 59d2a34e7443406741d6b3b800e808467ac2254c Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com>
Date: Sun, 12 Jun 2022 21:11:55 +0300
Subject: [PATCH] gnu: maven: Add maven-doxia-sink-api
* gnu/packages/maven.scm (maven-doxia-sink-api): New variable.
---
gnu/packages/maven.scm | 135 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 135 insertions(+)
diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index 817fee1c71..c0609618c9 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24,8 +25,10 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module (guix svn-download)
#:use-module (guix utils)
#:use-module (guix build-system ant)
+ #:use-module (guix build-system maven)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
@@ -3887,3 +3890,135 @@ 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-plugin-plugin
+ (package
+ (name "maven-plugin-plugin")
+ (version "3.5")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://apache/maven/"
+ "plugin-tools/maven-plugin-tools-" version
+ "-source-release.zip"))
+ (sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "maven-plugin-annotations.jar"
+ #:source-dir "maven-plugin-plugin/src/main/java"
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install
+ (install-from-pom "maven-plugin-plugin/pom.xml")))))
+ (propagated-inputs
+ (list maven-artifact maven-plugin-tools-parent-pom))
+ (native-inputs
+ (list unzip))
+ (home-page "https://maven.apache.org/plugin-tools/maven-plugin-plugin/")
+ (synopsis "create a Maven plugin descriptor for any Mojo's")
+ (description "The Plugin Plugin is used to create a Maven plugin
+descriptor for any Mojo's found in the source tree, to include in the JAR. It
+is also used to generate Xdoc files for the Mojos as well as the artifact
+metadata and a generic help goal. ")
+ (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"
+ #:source-dir "doxia-sink-api/src/main/java"
+ #:tests? #f)) ; no tests
+ (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.")
+ (license license:asl2.0)))
+
+(define-public maven-doxia-core
+ (package
+ (name "maven-doxia-core")
+ (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)
+ (inputs
+ (list maven-doxia-sink-api))
+ (native-inputs
+ (list java-javax-inject
+ java-plexus-utils
+ java-commons-lang3
+ java-slf4j-api))
+ (arguments
+ (list #:jar-name "doxia-core.jar"
+ #:source-dir "doxia-core/src/main/java"
+ #:test-dir "doxia-core/src/test"))
+ (home-page "https://maven.apache.org/doxia/index.html")
+ (synopsis "")
+ (description "")
+ (license license:asl2.0)))
+
+(define-public maven-bundle-plugin
+ (let ((revision 1865227))
+ (package
+ (name "maven-bundle-plugin")
+ (version "4.2.1")
+ (source (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append
+ "http://svn.apache.org/repos/asf/felix/releases/maven-bundle-plugin-"
+ version))
+ (revision revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "15b3s7jaf2bwx1fzif0s7zbvrfqg1chdxvbrhvxkgyrnfn68ds3c"))))
+ (build-system maven-build-system)
+ (native-inputs
+ (list maven-plugin-annotations))
+ (propagated-inputs
+ (list maven-archiver
+ maven-compiler-plugin
+ maven-plugin-plugin
+ maven-3.0-artifact
+ maven-3.0-core
+ maven-3.0-plugin-api
+ maven-file-management
+ maven-shared-utils
+ java-plexus-archiver
+ java-plexus-utils))
+ ;; (propagated-inputs
+ ;; (list maven-core
+ ;; maven-shared-utils
+ ;; maven-plugin-api))
+ (inputs
+ (list maven-plugin-annotations))
+ (home-page "https://felix.apache.org/documentation/_attachments/components/bundle-plugin/")
+ (synopsis "Maven plugin that supports creating an OSGi bundle")
+ (description "Provides a maven plugin that supports creating an OSGi (Open
+Service Gateway Initiative) bundle from the contents of the compilation
+classpath along with its resources and dependencies.")
+ (license license:asl2.0))))
--
2.25.1
[-- Attachment #1.3: Type: text/plain, Size: 207 bytes --]
--
Artyom "avp" Poptsov <poptsov.artyom@gmail.com>
Home page: https://memory-heap.org/~avp/
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE B57C E9C5 A2D9 0898 A02F
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [bug#55929] [PATCH] gnu: maven: Add maven-doxia-sink-api
2022-06-12 18:25 [bug#55929] [PATCH] gnu: maven: Add maven-doxia-sink-api Artyom V. Poptsov
@ 2022-06-12 18:45 ` Artyom V. Poptsov
2022-06-12 21:03 ` Julien Lepiller
0 siblings, 1 reply; 12+ messages in thread
From: Artyom V. Poptsov @ 2022-06-12 18:45 UTC (permalink / raw)
To: 55929
[-- Attachment #1.1: Type: text/plain, Size: 149 bytes --]
My goodness, I just found out that I mistakenly committed (and
submitted) some extra code with the patch.
Here's the fixed version of it.
- Artyom
[-- Attachment #1.2: 0001-gnu-maven-Add-maven-doxia-sink-api.patch --]
[-- Type: text/x-diff, Size: 2396 bytes --]
From b4020bc283f18d7b7394976c4288d04130f1e651 Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com>
Date: Sun, 12 Jun 2022 21:42:33 +0300
Subject: [PATCH] gnu: maven: 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 <me@tobias.gr>
;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;;
;;; 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"
+ #:source-dir "doxia-sink-api/src/main/java"
+ #:tests? #f)) ; no tests
+ (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.")
+ (license license:asl2.0)))
--
2.25.1
[-- Attachment #1.3: Type: text/plain, Size: 207 bytes --]
--
Artyom "avp" Poptsov <poptsov.artyom@gmail.com>
Home page: https://memory-heap.org/~avp/
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE B57C E9C5 A2D9 0898 A02F
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [bug#55929] [PATCH] gnu: maven: Add maven-doxia-sink-api
2022-06-12 18:45 ` Artyom V. Poptsov
@ 2022-06-12 21:03 ` Julien Lepiller
2022-06-13 4:29 ` Artyom V. Poptsov
0 siblings, 1 reply; 12+ messages in thread
From: Julien Lepiller @ 2022-06-12 21:03 UTC (permalink / raw)
To: Artyom V. Poptsov; +Cc: 55929
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" <poptsov.artyom@gmail.com> a écrit :
> From b4020bc283f18d7b7394976c4288d04130f1e651 Mon Sep 17 00:00:00 2001
> From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com>
> 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 <me@tobias.gr>
> ;;; Copyright © 2019 Björn Höfling
> <bjoern.hoefling@bjoernhoefling.de> ;;; Copyright © 2020 Efraim
> Flashner <efraim@flashner.co.il> +;;; Copyright © 2022 Artyom V.
> Poptsov <poptsov.artyom@gmail.com> ;;;
> ;;; 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!
^ permalink raw reply [flat|nested] 12+ messages in thread
* [bug#55929] [PATCH] gnu: maven: Add maven-doxia-sink-api
2022-06-12 21:03 ` Julien Lepiller
@ 2022-06-13 4:29 ` Artyom V. Poptsov
2022-06-13 4:38 ` Artyom V. Poptsov
2022-06-13 5:41 ` Julien Lepiller
0 siblings, 2 replies; 12+ messages in thread
From: Artyom V. Poptsov @ 2022-06-13 4:29 UTC (permalink / raw)
To: Julien Lepiller; +Cc: 55929
[-- Attachment #1.1: Type: text/plain, Size: 2016 bytes --]
Hello Julien,
first of all, thanks for reviewing my patches!
I fixed my patch, at least the part I understood -- see below.
> 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.
Indeed, I started my work on packaging Doxia because I wanted to package
'maven-plugin-plugin' which in turn is required for
'maven-release-plugin'[1]. And 'maven-release-plugin' is required for
'java-json-simple'[2] ...
So the dependency order looks like this:
0. 'ugs' (Universal G-Code sender) [3]
1. 'java-jts'
2. 'java-json-simple'
3. 'maven-release-plugin'
4. 'maven-plugin-plugin' <-- I'm here. ;-)
Also, while we on it, I have the following questions:
0. How did you check the dependency graph for 'maven-plugin-plugin'
without packaging it?
1. Is it possible with Guix to generate the reverse dependency graph to
see that packages depend on the specified package?
> Here the subject should omit "maven", so simply:
Done.
> Is this intentional? Shouldn't it be doxia-sink-api.jar?
That was a mistake indeed. Fixed it.
> 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"))
Done.
> 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.
This part I don't understand. Could you elaborate?
> The description doesn't follow all our conventions, in particular,
> double space between sentences :)
Fixed.
- Artyom
References:
1. https://maven.apache.org/maven-release/maven-release-plugin/
2. https://github.com/fangyidong/json-simple
3. https://github.com/winder/Universal-G-Code-Sender
[-- Attachment #1.2: 0001-gnu-maven-Add-maven-doxia-sink-api.patch --]
[-- Type: text/x-diff, Size: 2396 bytes --]
From b4020bc283f18d7b7394976c4288d04130f1e651 Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com>
Date: Sun, 12 Jun 2022 21:42:33 +0300
Subject: [PATCH] gnu: maven: 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 <me@tobias.gr>
;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;;
;;; 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"
+ #:source-dir "doxia-sink-api/src/main/java"
+ #:tests? #f)) ; no tests
+ (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.")
+ (license license:asl2.0)))
--
2.25.1
[-- Attachment #1.3: Type: text/plain, Size: 200 bytes --]
--
Artyom "avp" Poptsov <poptsov.artyom@gmail.com>
Home page: https://memory-heap.org/~avp/
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE B57C E9C5 A2D9 0898 A02F
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [bug#55929] [PATCH] gnu: maven: Add maven-doxia-sink-api
2022-06-13 4:29 ` Artyom V. Poptsov
@ 2022-06-13 4:38 ` Artyom V. Poptsov
2022-06-13 5:41 ` Julien Lepiller
1 sibling, 0 replies; 12+ messages in thread
From: Artyom V. Poptsov @ 2022-06-13 4:38 UTC (permalink / raw)
To: Julien Lepiller; +Cc: 55929
[-- Attachment #1.1: Type: text/plain, Size: 98 bytes --]
Sorry, attached the old version of the patch by a mistake.
Here's the updated version.
- Artyom
[-- Attachment #1.2: 0001-gnu-maven-Add-maven-doxia-sink-api.patch --]
[-- Type: text/x-diff, Size: 2396 bytes --]
From b4020bc283f18d7b7394976c4288d04130f1e651 Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com>
Date: Sun, 12 Jun 2022 21:42:33 +0300
Subject: [PATCH] gnu: maven: 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 <me@tobias.gr>
;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;;
;;; 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"
+ #:source-dir "doxia-sink-api/src/main/java"
+ #:tests? #f)) ; no tests
+ (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.")
+ (license license:asl2.0)))
--
2.25.1
[-- Attachment #1.3: Type: text/plain, Size: 207 bytes --]
--
Artyom "avp" Poptsov <poptsov.artyom@gmail.com>
Home page: https://memory-heap.org/~avp/
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE B57C E9C5 A2D9 0898 A02F
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [bug#55929] [PATCH] gnu: maven: Add maven-doxia-sink-api
2022-06-13 4:29 ` Artyom V. Poptsov
2022-06-13 4:38 ` Artyom V. Poptsov
@ 2022-06-13 5:41 ` Julien Lepiller
2022-06-18 15:34 ` Artyom V. Poptsov
1 sibling, 1 reply; 12+ messages in thread
From: Julien Lepiller @ 2022-06-13 5:41 UTC (permalink / raw)
To: Artyom V. Poptsov; +Cc: 55929
Le Mon, 13 Jun 2022 07:29:43 +0300,
"Artyom V. Poptsov" <poptsov.artyom@gmail.com> a écrit :
> Hello Julien,
>
> first of all, thanks for reviewing my patches!
>
> I fixed my patch, at least the part I understood -- see below.
>
> > 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.
>
> Indeed, I started my work on packaging Doxia because I wanted to
> package 'maven-plugin-plugin' which in turn is required for
> 'maven-release-plugin'[1]. And 'maven-release-plugin' is required for
> 'java-json-simple'[2] ...
>
> So the dependency order looks like this:
> 0. 'ugs' (Universal G-Code sender) [3]
> 1. 'java-jts'
> 2. 'java-json-simple'
> 3. 'maven-release-plugin'
> 4. 'maven-plugin-plugin' <-- I'm here. ;-)
>
> Also, while we on it, I have the following questions:
> 0. How did you check the dependency graph for 'maven-plugin-plugin'
> without packaging it?
> 1. Is it possible with Guix to generate the reverse dependency graph
> to see that packages depend on the specified package?
0. I tried to package it, but somehow it was more difficult than I
expected and I had other projects. Apache projects have "dependencies"
link on their web page, like this one:
https://maven.apache.org/plugin-tools/maven-plugin-plugin/dependencies.html
where they list all dependencies.
1. guix graph -t reverse-package (or guix graph -t reverse-bag), see
guix graph --list-types for more options.
>
> > 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.
>
> This part I don't understand. Could you elaborate?
The installed pom contains the following:
<parent>
<artifactId>doxia</artifactId>
<groupId>org.apache.maven.doxia</groupId>
<version>2.0.0-M2</version>
<relativePath>../pom.xml</relativePath>
</parent>
If the referenced pom file is not installed, it won't be found by Maven
later when we use it to run the maven-plugin-plugin. See for instance
how the parent pom is installed in java-slf4j-parent, and propagated
from java-slf4j-api (and recursively from java-slf4j-simple).
This top-level pom also has the following, so it should propagate it:
<parent>
<groupId>org.apache.maven</groupId>
<artifactId>maven-parent</artifactId>
<version>34</version>
<relativePath />
</parent>
We already have it: maven-parent-pom-34.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [bug#55929] [PATCH] gnu: maven: Add maven-doxia-sink-api
2022-06-13 5:41 ` Julien Lepiller
@ 2022-06-18 15:34 ` Artyom V. Poptsov
2022-06-18 16:52 ` Julien Lepiller
0 siblings, 1 reply; 12+ messages in thread
From: Artyom V. Poptsov @ 2022-06-18 15:34 UTC (permalink / raw)
To: Julien Lepiller; +Cc: 55929
[-- Attachment #1.1: Type: text/plain, Size: 621 bytes --]
Hello.
> If the referenced pom file is not installed, it won't be found by Maven
> later when we use it to run the maven-plugin-plugin. See for instance
> how the parent pom is installed in java-slf4j-parent, and propagated
> from java-slf4j-api (and recursively from java-slf4j-simple).
> This top-level pom also has the following, so it should propagate it:
> <parent>
> <groupId>org.apache.maven</groupId>
> <artifactId>maven-parent</artifactId>
> <version>34</version>
> <relativePath />
> </parent>
> We already have it: maven-parent-pom-34.
Done. Please see the patch, I'm hoping it should be OK by now.
[-- Attachment #1.2: 0001-gnu-maven-Add-maven-doxia-sink-api.patch --]
[-- Type: text/x-diff, Size: 2396 bytes --]
From b4020bc283f18d7b7394976c4288d04130f1e651 Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com>
Date: Sun, 12 Jun 2022 21:42:33 +0300
Subject: [PATCH] gnu: maven: 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 <me@tobias.gr>
;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;;
;;; 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"
+ #:source-dir "doxia-sink-api/src/main/java"
+ #:tests? #f)) ; no tests
+ (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.")
+ (license license:asl2.0)))
--
2.25.1
[-- Attachment #1.3: Type: text/plain, Size: 219 bytes --]
- Artyom
--
Artyom "avp" Poptsov <poptsov.artyom@gmail.com>
Home page: https://memory-heap.org/~avp/
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE B57C E9C5 A2D9 0898 A02F
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [bug#55929] [PATCH] gnu: maven: Add maven-doxia-sink-api
2022-06-18 15:34 ` Artyom V. Poptsov
@ 2022-06-18 16:52 ` Julien Lepiller
2022-06-18 16:57 ` Artyom V. Poptsov
0 siblings, 1 reply; 12+ messages in thread
From: Julien Lepiller @ 2022-06-18 16:52 UTC (permalink / raw)
To: Artyom V. Poptsov; +Cc: 55929
On June 18, 2022 5:34:50 PM GMT+02:00, "Artyom V. Poptsov" <poptsov.artyom@gmail.com> wrote:
>Hello.
>
>> If the referenced pom file is not installed, it won't be found by Maven
>> later when we use it to run the maven-plugin-plugin. See for instance
>> how the parent pom is installed in java-slf4j-parent, and propagated
>> from java-slf4j-api (and recursively from java-slf4j-simple).
>
>> This top-level pom also has the following, so it should propagate it:
>
>> <parent>
>> <groupId>org.apache.maven</groupId>
>> <artifactId>maven-parent</artifactId>
>> <version>34</version>
>> <relativePath />
>> </parent>
>
>> We already have it: maven-parent-pom-34.
>
>Done. Please see the patch, I'm hoping it should be OK by now.
>
Hi,
I think you sent the same patch as previously?
^ permalink raw reply [flat|nested] 12+ messages in thread
* [bug#55929] [PATCH] gnu: maven: Add maven-doxia-sink-api
2022-06-18 16:52 ` Julien Lepiller
@ 2022-06-18 16:57 ` Artyom V. Poptsov
2022-06-18 18:00 ` Julien Lepiller
0 siblings, 1 reply; 12+ messages in thread
From: Artyom V. Poptsov @ 2022-06-18 16:57 UTC (permalink / raw)
To: Julien Lepiller; +Cc: 55929
[-- Attachment #1.1: Type: text/plain, Size: 71 bytes --]
Oh sorry, it happens to me every now and then.
Here's the right one.
[-- Attachment #1.2: 0001-gnu-Add-maven-doxia-sink-api.patch --]
[-- Type: text/x-diff, Size: 2597 bytes --]
From 84fca825656c44cdca93c1eb4647c9b380fc9ab3 Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com>
Date: Sun, 12 Jun 2022 21:42:33 +0300
Subject: [PATCH] gnu: Add maven-doxia-sink-api
* gnu/packages/maven.scm (maven-doxia-sink-api): New variable.
---
gnu/packages/maven.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index 817fee1c71..c8338ca14b 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -3887,3 +3888,37 @@ 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))
+ (propagated-inputs
+ (list maven-parent-pom-34))
+ (arguments
+ `(#:jar-name "doxia-sink-api.jar"
+ #:source-dir "doxia-sink-api/src/main/java"
+ #:tests? #f ; no tests
+ #:phases (modify-phases %standard-phases
+ (replace 'install
+ (install-from-pom "doxia-sink-api/pom.xml")))))
+ (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.")
+ (license license:asl2.0)))
--
2.25.1
[-- Attachment #1.3: Type: text/plain, Size: 219 bytes --]
- Artyom
--
Artyom "avp" Poptsov <poptsov.artyom@gmail.com>
Home page: https://memory-heap.org/~avp/
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE B57C E9C5 A2D9 0898 A02F
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [bug#55929] [PATCH] gnu: maven: Add maven-doxia-sink-api
2022-06-18 16:57 ` Artyom V. Poptsov
@ 2022-06-18 18:00 ` Julien Lepiller
2022-06-19 4:55 ` Artyom V. Poptsov
0 siblings, 1 reply; 12+ messages in thread
From: Julien Lepiller @ 2022-06-18 18:00 UTC (permalink / raw)
To: Artyom V. Poptsov; +Cc: 55929
Thanks for the new patch :)
Le Sat, 18 Jun 2022 19:57:15 +0300,
"Artyom V. Poptsov" <poptsov.artyom@gmail.com> a écrit :
> + (native-inputs
> + (list java-javax-inject))
> + (propagated-inputs
> + (list maven-parent-pom-34))
Sorry if my previous messages were confusing you. I meant to have a new
package maven-doxia-parent (or similar name) that contains only the
parent pom file. You're propagating the grand-parent. I think this
would be more correct:
(propagated-inputs (list maven-doxia-parent))
and maven-doxia-parent would be something like:
(define maven-doxia-parent
(package
(inherit maven-doxia-sink-api)
(name "maven-doxia-parent")
(arguments
`(#:tests? #f
#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(replace 'install (install-pom-file "pom.xml")))))
(synopsis "...")
(description "...")))
This is untested, of course :)
Since we "define" and not "define-public" (we don't want it to be
accessible from other modules or the command-line), you can put both
packages in the same patch.
> + (arguments
> + `(#:jar-name "doxia-sink-api.jar"
> + #:source-dir "doxia-sink-api/src/main/java"
> + #:tests? #f ; no tests
> + #:phases (modify-phases %standard-phases
> + (replace 'install
> + (install-from-pom "doxia-sink-api/pom.xml")))))
That's correct :)
^ permalink raw reply [flat|nested] 12+ messages in thread
* [bug#55929] [PATCH] gnu: maven: Add maven-doxia-sink-api
2022-06-18 18:00 ` Julien Lepiller
@ 2022-06-19 4:55 ` Artyom V. Poptsov
2022-06-19 19:03 ` bug#55929: " Julien Lepiller
0 siblings, 1 reply; 12+ messages in thread
From: Artyom V. Poptsov @ 2022-06-19 4:55 UTC (permalink / raw)
To: Julien Lepiller; +Cc: 55929
[-- Attachment #1.1: Type: text/plain, Size: 144 bytes --]
Hello Julien,
thanks for help. I think I'm beginning to better understand the
child/parent POM relationships now.
Here's the updated patch.
[-- Attachment #1.2: 0001-gnu-Add-maven-doxia-sink-api.patch --]
[-- Type: text/x-diff, Size: 3308 bytes --]
From 90515d2a565b0b840cb67303672df928a1c16eb5 Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com>
Date: Sun, 12 Jun 2022 21:42:33 +0300
Subject: [PATCH] gnu: Add maven-doxia-sink-api
* gnu/packages/maven.scm (maven-doxia-sink-api): New variable.
(maven-doxia-parent-pom): New private variable.
---
gnu/packages/maven.scm | 52 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index 817fee1c71..ace8de684e 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -3887,3 +3888,54 @@ 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))
+ (propagated-inputs
+ (list maven-doxia-parent-pom))
+ (arguments
+ `(#:jar-name "doxia-sink-api.jar"
+ #:source-dir "doxia-sink-api/src/main/java"
+ #:tests? #f ; no tests
+ #:phases (modify-phases %standard-phases
+ (replace 'install
+ (install-from-pom "doxia-sink-api/pom.xml")))))
+ (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.")
+ (license license:asl2.0)))
+
+(define maven-doxia-parent-pom
+ (package
+ (inherit maven-doxia-sink-api)
+ (name "maven-doxia-parent-pom")
+ (arguments
+ `(#:tests? #f
+ #:phases (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (replace 'install
+ (install-pom-file "pom.xml")))))
+ (propagated-inputs '())
+ (synopsis "Content generation framework")
+ (description "\"Doxia\" is a content generation framework that provides
+powerful techniques for generating static and dynamic content, supporting a
+variety of markup languages.")))
--
2.25.1
[-- Attachment #1.3: Type: text/plain, Size: 219 bytes --]
- Artyom
--
Artyom "avp" Poptsov <poptsov.artyom@gmail.com>
Home page: https://memory-heap.org/~avp/
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE B57C E9C5 A2D9 0898 A02F
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply related [flat|nested] 12+ messages in thread
* bug#55929: [PATCH] gnu: maven: Add maven-doxia-sink-api
2022-06-19 4:55 ` Artyom V. Poptsov
@ 2022-06-19 19:03 ` Julien Lepiller
0 siblings, 0 replies; 12+ messages in thread
From: Julien Lepiller @ 2022-06-19 19:03 UTC (permalink / raw)
To: Artyom V. Poptsov; +Cc: 55929-done
[-- Attachment #1: Type: text/plain, Size: 574 bytes --]
Le Sun, 19 Jun 2022 07:55:12 +0300,
"Artyom V. Poptsov" <poptsov.artyom@gmail.com> a écrit :
> Hello Julien,
>
> thanks for help. I think I'm beginning to better understand the
> child/parent POM relationships now.
>
> Here's the updated patch.
>
Thanks, pushed to master as 0d461393e444a993a469b521d4cf46dee9e2767e. I
changed the commit message to add a dot at the end of the first
sentence. I added maven-parent-pom-34 as a propagated-input to
maven-doxia-parent-pom, and removed java-javax-inject from
maven-doxia-sink-api because it's not needed.
[-- Attachment #2: Signature digitale OpenPGP --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2022-06-19 19:04 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-06-12 18:25 [bug#55929] [PATCH] gnu: maven: Add maven-doxia-sink-api Artyom V. Poptsov
2022-06-12 18:45 ` Artyom V. Poptsov
2022-06-12 21:03 ` Julien Lepiller
2022-06-13 4:29 ` Artyom V. Poptsov
2022-06-13 4:38 ` Artyom V. Poptsov
2022-06-13 5:41 ` Julien Lepiller
2022-06-18 15:34 ` Artyom V. Poptsov
2022-06-18 16:52 ` Julien Lepiller
2022-06-18 16:57 ` Artyom V. Poptsov
2022-06-18 18:00 ` Julien Lepiller
2022-06-19 4:55 ` Artyom V. Poptsov
2022-06-19 19:03 ` bug#55929: " Julien Lepiller
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.