1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2020, 2021, 2022 Julien Lepiller <julien@lepiller.eu>
4 ;;; This file is part of GNU Guix.
6 ;;; GNU Guix is free software; you can redistribute it and/or modify it
7 ;;; under the terms of the GNU General Public License as published by
8 ;;; the Free Software Foundation; either version 3 of the License, or (at
9 ;;; your option) any later version.
11 ;;; GNU Guix is distributed in the hope that it will be useful, but
12 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ;;; GNU General Public License for more details.
16 ;;; You should have received a copy of the GNU General Public License
17 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 (define-module (gnu packages maven-parent-pom)
20 #:use-module ((guix licenses) #:prefix license:)
21 #:use-module (guix packages)
22 #:use-module (guix download)
23 #:use-module (guix gexp)
24 #:use-module (guix git-download)
25 #:use-module (guix utils)
26 #:use-module (guix build-system ant)
27 #:use-module (gnu packages java))
29 (define (make-apache-parent-pom version hash)
32 (name "apache-parent-pom")
37 (url "https://github.com/apache/maven-apache-parent")
38 (commit (string-append "apache-" version))))
39 (file-name (git-file-name name version))
40 (sha256 (base32 hash))))
41 (build-system ant-build-system)
45 (modify-phases %standard-phases
49 (install-pom-file "pom.xml")))))
50 (home-page "https://apache.org/")
51 (synopsis "Apache parent pom")
52 (description "This package contains the Apache parent POM.")
53 (license license:asl2.0))))
55 (define-public apache-parent-pom-6
56 (make-apache-parent-pom
57 "6" "1bq0ma2ya2cnp2icd4l20sv6y7zxqr9sa35wzv1s49nqsrm38kw3"))
59 (define-public apache-parent-pom-11
60 (make-apache-parent-pom
61 "11" "0m1a4db8s6y8f4vvm9bx7zx7lixcvaah064560nbja7na3xz6lls"))
63 (define-public apache-parent-pom-13
64 (make-apache-parent-pom
65 "13" "1cfxaz1jy8fbn06sb648qpiq23swpbj3kb5ya7f9g9jmya5fy09z"))
67 (define-public apache-parent-pom-16
68 (make-apache-parent-pom
69 "16" "1y5b0dlc72ijcqfffdbh0k75qwaddy5qw725v9pzhrzqkpaa51xb"))
71 (define-public apache-parent-pom-17
72 (make-apache-parent-pom
73 "17" "06hj5d6rdkmwl24k2rvzj8plq8x1ncsbjck4w3awz1hp9gngg4y5"))
75 (define-public apache-parent-pom-18
76 (make-apache-parent-pom
77 "18" "1il97vpdmv5k2gnyinj45q00f7f4w9hcb588digwfid5bskddnyy"))
79 (define-public apache-parent-pom-19
80 (make-apache-parent-pom
81 "19" "02drnwv2qqk1dmxbmmrk0bi1iil5cal9l47w53ascpbjg6242mp1"))
83 (define-public apache-parent-pom-21
84 (make-apache-parent-pom
85 "21" "0clcbrq1b2b8sbvlqddyw2dg5niq25dhdma9sk4b0i30hqaipx96"))
87 (define-public apache-parent-pom-23
88 (make-apache-parent-pom
89 "23" "05c8i741f0m4311q264zvq0lc6srsyz2x95ga4d7qfd89swkzg9d"))
91 (define-public apache-parent-pom-25
92 (make-apache-parent-pom
93 "25" "1vwx2fpgk7cn2pnlnx26df26vndiwwn5l7ngakj0vwal5pmp6115"))
95 (define* (make-apache-commons-parent-pom version hash parent
96 #:key (tag-prefix "commons-parent-"))
99 (name "apache-commons-parent-pom")
104 (url "https://github.com/apache/commons-parent")
105 (commit (string-append tag-prefix version))))
106 (file-name (git-file-name name version))
107 (sha256 (base32 hash))))
108 (build-system ant-build-system)
112 (modify-phases %standard-phases
116 (install-pom-file "pom.xml")))))
119 `(("parent" ,parent))
121 (home-page "https://maven.apache.org/")
122 (synopsis "Apache Commons parent pom")
123 (description "This package contains the Apache Commons parent POM.")
124 (license license:asl2.0))))
126 (define-public apache-commons-parent-pom-39
127 (make-apache-commons-parent-pom
128 "39" "0mjx48a55ik1h4hsxhifkli1flvkp6d05ab14p4al0fc6rhdxi46"
129 apache-parent-pom-16))
131 (define-public apache-commons-parent-pom-41
132 (make-apache-commons-parent-pom
133 "41" "1k184amdqdx62bb2k0m9v93zzx768qcyam5dvdgksqc1aaqhadlb"
134 apache-parent-pom-18))
136 (define-public apache-commons-parent-pom-48
137 (make-apache-commons-parent-pom
138 "48" "0dk8qp7swbh4y1q7q34y14yhigzl5yz0ixa8jhhhq91yc2q570iq"
139 apache-parent-pom-21))
141 (define-public apache-commons-parent-pom-50
142 (make-apache-commons-parent-pom
143 "50" "0ki8px35dan51ashblpw6rdl27c2fq62slazhslhq3lr4fwlpvxs"
144 apache-parent-pom-21))
146 (define-public apache-commons-parent-pom-51
147 (make-apache-commons-parent-pom
148 "51" "05najrpys26jymla2p5jdz4mf4fjp525h6mnr0jfx55lp03xi939"
149 apache-parent-pom-23))
151 (define-public apache-commons-parent-pom-52
152 (make-apache-commons-parent-pom
153 "52" "0fb6id9cs9944fjlirjc07bf234bwi96i642px09m9nrfj338n5d"
155 #:tag-prefix "rel/commons-parent-"))
157 (define-public java-weld-parent-pom
160 (name "java-weld-parent-pom")
165 (url "https://github.com/weld/parent")
167 (file-name (git-file-name name version))
170 "0rbvizcsma456mw9fvp4dj9cljh97nswvhi04xhczi38j5bgal0m"))))
171 (build-system ant-build-system)
175 (modify-phases %standard-phases
178 (install-pom-file "pom.xml")))))
179 (home-page "https://github.com/weld/parent")
180 (synopsis "Pom parent file for weld projects")
181 (description "This package contains the parent Maven Pom for weld projects.")
182 (license license:asl2.0))))
184 (define (make-java-sonatype-forge-parent-pom version hash)
187 (name "java-sonatype-forge-parent-pom")
192 (url "https://github.com/sonatype/oss-parents")
193 (commit (string-append "forge-parent-" version))))
194 (file-name (git-file-name name version))
195 (sha256 (base32 hash))))
196 (build-system ant-build-system)
200 (modify-phases %standard-phases
204 (install-pom-file "pom.xml")))))
205 (home-page "https://github.com/sonatype/oss-parents")
206 (synopsis "Sonatype forge parent pom")
207 (description "This package contains a single pom.xml file that is used by
208 other projects as their parent pom.")
209 (license license:asl2.0))))
211 (define-public java-sonatype-forge-parent-pom-4
212 (make-java-sonatype-forge-parent-pom
213 "4" "1gip239ar20qzy6yf37r6ks54bl7gqi1v49p65manrz84cmad0dh"))
215 (define-public java-sonatype-forge-parent-pom-5
216 (make-java-sonatype-forge-parent-pom
217 "5" "0pr60wyjmaml4flmcij6l94b72ryx5gsiiasiwvcvrz9b2fkb3cd"))
219 (define-public java-sonatype-forge-parent-pom-6
220 (make-java-sonatype-forge-parent-pom
221 "6" "0sa5wn5kc6y74m9g3azkm5i9d7kvyvgdw7wjlp7bjgy9s5qkbhgz"))
223 (define-public java-sonatype-forge-parent-pom-10
224 (make-java-sonatype-forge-parent-pom
225 "10" "1n89wb00q4s9nwpqq6q1h4nzakw1l1rppjygxkl3iid7m5fnj60n"))
227 (define-public java-sonatype-spice-parent-pom-15
230 (name "java-sonatype-spice-parent-pom")
235 (url "https://github.com/sonatype/oss-parents")
236 ;; The only commit where spice-parent is version 15
237 (commit "a4d1169c66fb21b214cb3eff2f056ec3e3695ca7")))
238 (file-name (git-file-name name version))
241 "0h62h6m31srmqnd1bhyspz6hdhkkv48knkj0ximq3pzdixgzyxgy"))))
242 (build-system ant-build-system)
244 `(("java-sonatype-forge-parent-pom-5" ,java-sonatype-forge-parent-pom-5)))
248 (modify-phases %standard-phases
252 (install-pom-file "pom.xml")))))
253 (home-page "https://github.com/sonatype/oss-parents")
254 (synopsis "Sonatype spice parent pom")
255 (description "This package contains a single pom.xml file that is used by
256 other projects as their parent pom.")
257 (license license:asl2.0))))
259 (define-public java-sonatype-spice-parent-pom-17
262 (inherit java-sonatype-spice-parent-pom-15)
267 (url "https://github.com/sonatype/oss-parents")
268 (commit "spice-parent-17")))
269 (file-name (git-file-name "java-sonatype-spice-parent-pom" version))
272 "1d4jh1scgnjwhv8f0r052vrksg0kman09hslfvfvpfidl8rwiigq"))))
276 (modify-phases %standard-phases
280 (install-pom-file "spice-parent/pom.xml")))))
282 `(("java-sonatype-forge-parent-pom-10" ,java-sonatype-forge-parent-pom-10))))))
284 (define-public java-sonatype-spice-parent-pom-12
287 (inherit java-sonatype-spice-parent-pom-15)
292 (url "https://github.com/sonatype/oss-parents")
293 ;; The only commit where spice-parent is version 12
294 (commit "95088ae2891f673828351d7d9150240859b4a29a")))
295 (file-name (git-file-name "java-sonatype-spice-parent-pom" version))
298 "0pq5yf6swn43rxdfksnqsky1402zza2xq1aypwma9jkck2yl0vma"))))
300 `(("java-sonatype-forge-parent-pom-4" ,java-sonatype-forge-parent-pom-4))))))
302 (define-public java-sonatype-oss-parent-pom-7
305 (name "java-sonatype-oss-parent-pom")
310 (url "https://github.com/sonatype/oss-parents")
311 (commit (string-append "oss-parent-" version))))
312 (file-name (git-file-name name version))
315 "0lkvkmm51vrrrp79ksq3i2v693279rbn06yxck70ivhjrbq77927"))))
316 (build-system ant-build-system)
320 (modify-phases %standard-phases
324 (install-pom-file "pom.xml")))))
325 (home-page "https://github.com/sonatype/oss-parents")
326 (synopsis "Sonatype oss parent pom")
327 (description "This package contains a single pom.xml file that is used by
328 other projects as their parent pom.")
329 (license license:asl2.0))))
331 (define-public java-sonatype-oss-parent-pom-9
334 (inherit java-sonatype-oss-parent-pom-7)
338 (uri (string-append "https://repo1.maven.org/maven2/org/sonatype/"
339 "oss/oss-parent/" version "/oss-parent-"
343 "0yl2hbwz2kn1hll1i00ddzn8f89bfdcjwdifz0pj2j15k1gjch7v"))))
348 #~(modify-phases %standard-phases
353 (install-pom-file #$(package-source this-package)))))))))
355 (define* (make-plexus-parent-pom version hash #:optional parent)
358 (name "plexus-parent-pom")
363 (url "https://github.com/codehaus-plexus/plexus-pom")
364 (commit (string-append "plexus-" version))))
365 (file-name (git-file-name name version))
366 (sha256 (base32 hash))))
367 (build-system ant-build-system)
371 (modify-phases %standard-phases
375 (install-pom-file "pom.xml")))))
378 `(("parent" ,parent))
380 (home-page "https://codehaus-plexus.github.io/plexus-pom")
381 (synopsis "Plexus parent pom")
382 (description "This package contains the Plexus parent POM.")
383 (license license:asl2.0))))
385 (define-public plexus-parent-pom-3.1
386 (make-plexus-parent-pom
387 "3.1" "0r1wa6zrpzynn4028w7880abkk2xk25mipav5f0a4d1abqzy5m53"
388 java-sonatype-spice-parent-pom-17))
390 (define-public plexus-parent-pom-4.0
391 (make-plexus-parent-pom
392 "4.0" "15xbvc3cqhdkli8sj2l4hqkvk6icikbj182fbm86ixkamjh5lyfk"
393 java-sonatype-forge-parent-pom-10))
395 (define-public plexus-parent-pom-5.1
396 (make-plexus-parent-pom
397 "5.1" "1mb87adzyv8lilzd6sw40j5000vhib2p0lgf9zzgggpkh79ddm8v"))
399 (define-public plexus-parent-pom-6.1
400 (make-plexus-parent-pom
401 "6.1" "1pisca0fxpgbhf4xdgw5mn86622pg3mc5b8760kf9mk2awazshlj"))
403 (define-public plexus-parent-pom-8
404 (make-plexus-parent-pom
405 "8" "0ybwdzawa58qg9ag39rxyin24lk9sjcaih6n2yfldfzsbkq6gnww"))
407 (define* (make-maven-parent-pom version hash parent #:key replacements)
410 (name "maven-parent-pom")
415 (url "https://github.com/apache/maven-parent")
416 (commit (string-append "maven-parent-" version))))
417 (file-name (git-file-name name version))
418 (sha256 (base32 hash))))
419 (build-system ant-build-system)
423 (modify-phases %standard-phases
426 (add-after 'install 'install-plugins
427 (install-pom-file "maven-plugins/pom.xml"))
428 (add-after 'install 'install-shared
429 (install-pom-file "maven-shared-components/pom.xml"))
431 `((add-before 'install 'fix-pom
433 (use-modules (guix build maven pom))
434 (fix-pom-dependencies "pom.xml" '() #:local-packages (quote ,(force replacements))))))
437 (install-pom-file "pom.xml")))))
439 `(("parent" ,parent)))
440 (home-page "https://maven.apache.org/")
441 (synopsis "Maven parent pom")
442 (description "Apache Maven is a software project management and comprehension
443 tool. This package contains the Maven parent POM.")
444 (license license:asl2.0))))
446 (define-public maven-parent-pom-35
447 (make-maven-parent-pom
448 "35" "0pg9k7l5pcbghmc89i11g900pbzznvf5sfdfzlqfwpihqb2g8iab"
452 `(("org.codehaus.plexus"
453 ("plexus-component-annotations" .
454 ,(package-version java-plexus-component-annotations)))))))
456 (define-public maven-parent-pom-34
457 (make-maven-parent-pom
458 "34" "1vkmrfwva76k6maf1ljbja5ga4kzav4xc73ymbaf42xaiaknglbc"
462 `(("org.codehaus.plexus"
463 ("plexus-component-annotations" .
464 ,(package-version java-plexus-component-annotations)))))))
466 (define-public maven-parent-pom-33
467 (make-maven-parent-pom
468 "33" "1b0z2gsvpccgcssys9jbdfwlwq8b5imdwr508f87ssdbfs29lh65"
472 `(("org.codehaus.plexus"
473 ("plexus-component-annotations" .
474 ,(package-version java-plexus-component-annotations)))))))
476 (define-public maven-parent-pom-31
477 (make-maven-parent-pom
478 "31" "0skxv669v9ffwbmrmybnn9awkf1g3ylk88bz0hv6g11zpj1a8454"
482 `(("org.codehaus.plexus"
483 ("plexus-component-annotations" .
484 ,(package-version java-plexus-component-annotations)))))))
486 (define-public maven-parent-pom-30
487 (make-maven-parent-pom
488 "30" "1w463na38v2054wn1cwbfqy095z13fhil4jmn08dsa4drdvdsjdw"
489 apache-parent-pom-18))
491 (define-public maven-parent-pom-27
492 (let ((base (make-maven-parent-pom
493 "27" "1s31hi4n99kj7x1cy5dvzwldbjqzk6c3dn20hk61hwhgmkcbf14x"
494 apache-parent-pom-17)))
498 (substitute-keyword-arguments (package-arguments base)
500 `(modify-phases ,phases
501 (delete 'install-plugins)
502 (delete 'install-shared))))))))
504 (define-public maven-parent-pom-15
505 (let ((base (make-maven-parent-pom
506 "15" "154nbc3w9is1dpzlfi1xk03mfksxndnniyzq8mcw2wdbargb5504"
507 apache-parent-pom-6)))
511 (substitute-keyword-arguments (package-arguments base)
513 `(modify-phases ,phases
514 (delete 'install-plugins)
515 (delete 'install-shared))))))))
517 (define-public maven-parent-pom-22
518 (let ((base (make-maven-parent-pom
519 "22" "1kgqbyx7ckashy47n9rgyg4asyrvp933hdiknvnad7msq5d4c2jg"
523 `(("org.codehaus.plexus"
524 ("plexus-component-annotations" .
525 ,(package-version java-plexus-container-default))))))))
529 (substitute-keyword-arguments (package-arguments base)
531 `(modify-phases ,phases
532 (delete 'install-plugins)
533 (delete 'install-shared))))))))
535 (define-public maven-plugins-pom-23
538 (name "maven-plugins-pom")
543 (url "https://github.com/apache/maven-plugins")
544 (commit (string-append "maven-plugins-" version))))
545 (file-name (git-file-name "maven-plugins-pom" version))
548 "1j50il0c9kirr1cvf6vfr86wxp65lwqm9i4bz304ix12vv6ncxjq"))))
549 (build-system ant-build-system)
553 (modify-phases %standard-phases
557 (install-pom-file "pom.xml")))))
559 (list maven-parent-pom-22))
560 (home-page "https://github.com/apache/maven-plugins")
561 (synopsis "Maven parent pom for maven plugins projects")
562 (description "This package contains the parent pom for maven plugins.")
563 (license license:asl2.0))))
565 (define-public maven-components-parent-pom-22
568 (name "maven-components-parent-pom")
572 (uri (string-append "https://repo1.maven.org/maven2/org/apache/"
573 "maven/shared/maven-shared-components/22/"
574 "maven-shared-components-22.pom"))
577 "11skhrjgrrs6z5rw1w39ap1pzhrc99g0czip10kz7wsavg746ibm"))))
578 (build-system ant-build-system)
583 #~(modify-phases %standard-phases
588 (install-pom-file #$(package-source this-package))))))
590 `(("maven-parent-pom-27" ,maven-parent-pom-27)))
591 (home-page "https://apache.org/maven")
592 (synopsis "Parent pom file for the maven components")
593 (description "This package contains the parent pom files for maven shared
595 (license license:lgpl2.1+))))
597 (define-public maven-components-parent-pom-21
599 (inherit maven-components-parent-pom-22)
602 (uri (string-append "https://repo1.maven.org/maven2/org/apache/"
603 "maven/shared/maven-shared-components/21/"
604 "maven-shared-components-21.pom"))
607 "0cqa072fz55j5xyvixqv8vbd7jsbhb1cd14bzjvm0hbv2wpd9npf"))))))
609 (define-public java-jvnet-parent-pom-3
612 (name "java-jvnet-parent-pom-3")
616 (uri (string-append "https://repo1.maven.org/maven2/net/java/"
617 "jvnet-parent/" version "/jvnet-parent-"
621 "0nj7958drckwf634cw9gmwgmdi302bya7bas16bbzp9rzag7ix9h"))))
622 (build-system ant-build-system)
627 #~(modify-phases %standard-phases
632 (install-pom-file #$(package-source this-package))))))
633 (home-page "https://mvnrepository.com/artifact/net.java/jvnet-parent")
634 (synopsis "java.net parent pom")
635 (description "This package contains the java.net parent pom file.")
636 (license license:asl2.0))))