1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2020 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 git-download)
24 #:use-module (guix utils)
25 #:use-module (guix build-system ant)
26 #:use-module (gnu packages java))
28 (define (make-apache-parent-pom version hash)
31 (name "apache-parent-pom")
36 (url "https://github.com/apache/maven-apache-parent")
37 (commit (string-append "apache-" version))))
38 (file-name (git-file-name name version))
39 (sha256 (base32 hash))))
40 (build-system ant-build-system)
44 (modify-phases %standard-phases
48 (install-pom-file "pom.xml")))))
49 (home-page "https://apache.org/")
50 (synopsis "Apache parent pom")
51 (description "This package contains the Apache parent POM.")
52 (license license:asl2.0))))
54 (define-public apache-parent-pom-6
55 (make-apache-parent-pom
56 "6" "1bq0ma2ya2cnp2icd4l20sv6y7zxqr9sa35wzv1s49nqsrm38kw3"))
58 (define-public apache-parent-pom-11
59 (make-apache-parent-pom
60 "11" "0m1a4db8s6y8f4vvm9bx7zx7lixcvaah064560nbja7na3xz6lls"))
62 (define-public apache-parent-pom-13
63 (make-apache-parent-pom
64 "13" "1cfxaz1jy8fbn06sb648qpiq23swpbj3kb5ya7f9g9jmya5fy09z"))
66 (define-public apache-parent-pom-16
67 (make-apache-parent-pom
68 "16" "1y5b0dlc72ijcqfffdbh0k75qwaddy5qw725v9pzhrzqkpaa51xb"))
70 (define-public apache-parent-pom-17
71 (make-apache-parent-pom
72 "17" "06hj5d6rdkmwl24k2rvzj8plq8x1ncsbjck4w3awz1hp9gngg4y5"))
74 (define-public apache-parent-pom-18
75 (make-apache-parent-pom
76 "18" "1il97vpdmv5k2gnyinj45q00f7f4w9hcb588digwfid5bskddnyy"))
78 (define-public apache-parent-pom-19
79 (make-apache-parent-pom
80 "19" "02drnwv2qqk1dmxbmmrk0bi1iil5cal9l47w53ascpbjg6242mp1"))
82 (define-public apache-parent-pom-21
83 (make-apache-parent-pom
84 "21" "0clcbrq1b2b8sbvlqddyw2dg5niq25dhdma9sk4b0i30hqaipx96"))
86 (define (make-apache-commons-parent-pom version hash parent)
89 (name "apache-commons-parent-pom")
94 (url "https://github.com/apache/commons-parent")
95 (commit (string-append "commons-parent-" version))))
96 (file-name (git-file-name name version))
97 (sha256 (base32 hash))))
98 (build-system ant-build-system)
102 (modify-phases %standard-phases
106 (install-pom-file "pom.xml")))))
109 `(("parent" ,parent))
111 (home-page "https://maven.apache.org/")
112 (synopsis "Apache Commons parent pom")
113 (description "This package contains the Apache Commons parent POM.")
114 (license license:asl2.0))))
116 (define-public apache-commons-parent-pom-39
117 (make-apache-commons-parent-pom
118 "39" "0mjx48a55ik1h4hsxhifkli1flvkp6d05ab14p4al0fc6rhdxi46"
119 apache-parent-pom-16))
121 (define-public apache-commons-parent-pom-41
122 (make-apache-commons-parent-pom
123 "41" "1k184amdqdx62bb2k0m9v93zzx768qcyam5dvdgksqc1aaqhadlb"
124 apache-parent-pom-18))
126 (define-public apache-commons-parent-pom-48
127 (make-apache-commons-parent-pom
128 "48" "0dk8qp7swbh4y1q7q34y14yhigzl5yz0ixa8jhhhq91yc2q570iq"
129 apache-parent-pom-21))
131 (define-public apache-commons-parent-pom-50
132 (make-apache-commons-parent-pom
133 "50" "0ki8px35dan51ashblpw6rdl27c2fq62slazhslhq3lr4fwlpvxs"
134 apache-parent-pom-21))
136 (define-public java-weld-parent-pom
139 (name "java-weld-parent-pom")
144 (url "https://github.com/weld/parent")
146 (file-name (git-file-name name version))
149 "0rbvizcsma456mw9fvp4dj9cljh97nswvhi04xhczi38j5bgal0m"))))
150 (build-system ant-build-system)
154 (modify-phases %standard-phases
157 (install-pom-file "pom.xml")))))
158 (home-page "https://github.com/weld/parent")
159 (synopsis "Pom parent file for weld projects")
160 (description "This package contains the parent Maven Pom for weld projects.")
161 (license license:asl2.0))))
163 (define (make-java-sonatype-forge-parent-pom version hash)
166 (name "java-sonatype-forge-parent-pom")
171 (url "https://github.com/sonatype/oss-parents")
172 (commit (string-append "forge-parent-" version))))
173 (file-name (git-file-name name version))
174 (sha256 (base32 hash))))
175 (build-system ant-build-system)
179 (modify-phases %standard-phases
183 (install-pom-file "pom.xml")))))
184 (home-page "https://github.com/sonatype/oss-parents")
185 (synopsis "Sonatype forge parent pom")
186 (description "This package contains a single pom.xml file that is used by
187 other projects as their parent pom.")
188 (license license:asl2.0))))
190 (define-public java-sonatype-forge-parent-pom-4
191 (make-java-sonatype-forge-parent-pom
192 "4" "1gip239ar20qzy6yf37r6ks54bl7gqi1v49p65manrz84cmad0dh"))
194 (define-public java-sonatype-forge-parent-pom-5
195 (make-java-sonatype-forge-parent-pom
196 "5" "0pr60wyjmaml4flmcij6l94b72ryx5gsiiasiwvcvrz9b2fkb3cd"))
198 (define-public java-sonatype-forge-parent-pom-6
199 (make-java-sonatype-forge-parent-pom
200 "6" "0sa5wn5kc6y74m9g3azkm5i9d7kvyvgdw7wjlp7bjgy9s5qkbhgz"))
202 (define-public java-sonatype-forge-parent-pom-10
203 (make-java-sonatype-forge-parent-pom
204 "10" "1n89wb00q4s9nwpqq6q1h4nzakw1l1rppjygxkl3iid7m5fnj60n"))
206 (define-public java-sonatype-spice-parent-pom-15
209 (name "java-sonatype-spice-parent-pom")
214 (url "https://github.com/sonatype/oss-parents")
215 ;; The only commit where spice-parent is version 15
216 (commit "a4d1169c66fb21b214cb3eff2f056ec3e3695ca7")))
217 (file-name (git-file-name name version))
220 "0h62h6m31srmqnd1bhyspz6hdhkkv48knkj0ximq3pzdixgzyxgy"))))
221 (build-system ant-build-system)
223 `(("java-sonatype-forge-parent-pom-5" ,java-sonatype-forge-parent-pom-5)))
227 (modify-phases %standard-phases
231 (install-pom-file "pom.xml")))))
232 (home-page "https://github.com/sonatype/oss-parents")
233 (synopsis "Sonatype spice parent pom")
234 (description "This package contains a single pom.xml file that is used by
235 other projects as their parent pom.")
236 (license license:asl2.0))))
238 (define-public java-sonatype-spice-parent-pom-17
241 (inherit java-sonatype-spice-parent-pom-15)
246 (url "https://github.com/sonatype/oss-parents")
247 (commit "spice-parent-17")))
248 (file-name (git-file-name "java-sonatype-spice-parent-pom" version))
251 "1d4jh1scgnjwhv8f0r052vrksg0kman09hslfvfvpfidl8rwiigq"))))
255 (modify-phases %standard-phases
259 (install-pom-file "spice-parent/pom.xml")))))
261 `(("java-sonatype-forge-parent-pom-10" ,java-sonatype-forge-parent-pom-10))))))
263 (define-public java-sonatype-spice-parent-pom-12
266 (inherit java-sonatype-spice-parent-pom-15)
271 (url "https://github.com/sonatype/oss-parents")
272 ;; The only commit where spice-parent is version 12
273 (commit "95088ae2891f673828351d7d9150240859b4a29a")))
274 (file-name (git-file-name "java-sonatype-spice-parent-pom" version))
277 "0pq5yf6swn43rxdfksnqsky1402zza2xq1aypwma9jkck2yl0vma"))))
279 `(("java-sonatype-forge-parent-pom-4" ,java-sonatype-forge-parent-pom-4))))))
281 (define-public java-sonatype-oss-parent-pom-7
284 (name "java-sonatype-oss-parent-pom")
289 (url "https://github.com/sonatype/oss-parents")
290 (commit (string-append "oss-parent-" version))))
291 (file-name (git-file-name name version))
294 "0lkvkmm51vrrrp79ksq3i2v693279rbn06yxck70ivhjrbq77927"))))
295 (build-system ant-build-system)
299 (modify-phases %standard-phases
303 (install-pom-file "pom.xml")))))
304 (home-page "https://github.com/sonatype/oss-parents")
305 (synopsis "Sonatype oss parent pom")
306 (description "This package contains a single pom.xml file that is used by
307 other projects as their parent pom.")
308 (license license:asl2.0))))
310 (define-public java-sonatype-oss-parent-pom-9
313 (inherit java-sonatype-oss-parent-pom-7)
317 (uri (string-append "https://repo1.maven.org/maven2/org/sonatype/"
318 "oss/oss-parent/" version "/oss-parent-"
322 "0yl2hbwz2kn1hll1i00ddzn8f89bfdcjwdifz0pj2j15k1gjch7v"))))
326 (modify-phases %standard-phases
331 (install-pom-file (assoc-ref %build-inputs "source")))))))))
333 (define* (make-plexus-parent-pom version hash #:optional parent)
336 (name "plexus-parent-pom")
341 (url "https://github.com/codehaus-plexus/plexus-pom")
342 (commit (string-append "plexus-" version))))
343 (file-name (git-file-name name version))
344 (sha256 (base32 hash))))
345 (build-system ant-build-system)
349 (modify-phases %standard-phases
353 (install-pom-file "pom.xml")))))
356 `(("parent" ,parent))
358 (home-page "https://codehaus-plexus.github.io/plexus-pom")
359 (synopsis "Plexus parent pom")
360 (description "This package contains the Plexus parent POM.")
361 (license license:asl2.0))))
363 (define-public plexus-parent-pom-3.1
364 (make-plexus-parent-pom
365 "3.1" "0r1wa6zrpzynn4028w7880abkk2xk25mipav5f0a4d1abqzy5m53"
366 java-sonatype-spice-parent-pom-17))
368 (define-public plexus-parent-pom-4.0
369 (make-plexus-parent-pom
370 "4.0" "15xbvc3cqhdkli8sj2l4hqkvk6icikbj182fbm86ixkamjh5lyfk"
371 java-sonatype-forge-parent-pom-10))
373 (define-public plexus-parent-pom-5.1
374 (make-plexus-parent-pom
375 "5.1" "1mb87adzyv8lilzd6sw40j5000vhib2p0lgf9zzgggpkh79ddm8v"))
377 (define-public plexus-parent-pom-6.1
378 (make-plexus-parent-pom
379 "6.1" "1pisca0fxpgbhf4xdgw5mn86622pg3mc5b8760kf9mk2awazshlj"))
381 (define (make-maven-parent-pom version hash parent)
384 (name "maven-parent-pom")
389 (url "https://github.com/apache/maven-parent")
390 (commit (string-append "maven-parent-" version))))
391 (file-name (git-file-name name version))
392 (sha256 (base32 hash))))
393 (build-system ant-build-system)
397 (modify-phases %standard-phases
400 (add-after 'install 'install-plugins
401 (install-pom-file "maven-plugins/pom.xml"))
402 (add-after 'install 'install-shared
403 (install-pom-file "maven-shared-components/pom.xml"))
405 (install-pom-file "pom.xml")))))
407 `(("parent" ,parent)))
408 (home-page "https://maven.apache.org/")
409 (synopsis "Maven parent pom")
410 (description "Apache Maven is a software project management and comprehension
411 tool. This package contains the Maven parent POM.")
412 (license license:asl2.0))))
414 (define-public maven-parent-pom-33
415 (make-maven-parent-pom
416 "33" "1b0z2gsvpccgcssys9jbdfwlwq8b5imdwr508f87ssdbfs29lh65"
417 apache-parent-pom-21))
419 (define-public maven-parent-pom-31
420 (make-maven-parent-pom
421 "31" "0skxv669v9ffwbmrmybnn9awkf1g3ylk88bz0hv6g11zpj1a8454"
422 apache-parent-pom-19))
424 (define-public maven-parent-pom-30
425 (make-maven-parent-pom
426 "30" "1w463na38v2054wn1cwbfqy095z13fhil4jmn08dsa4drdvdsjdw"
427 apache-parent-pom-18))
429 (define-public maven-parent-pom-27
430 (let ((base (make-maven-parent-pom
431 "27" "1s31hi4n99kj7x1cy5dvzwldbjqzk6c3dn20hk61hwhgmkcbf14x"
432 apache-parent-pom-17)))
436 (substitute-keyword-arguments (package-arguments base)
438 `(modify-phases ,phases
439 (delete 'install-plugins)
440 (delete 'install-shared))))))))
442 (define-public maven-parent-pom-15
443 (let ((base (make-maven-parent-pom
444 "15" "154nbc3w9is1dpzlfi1xk03mfksxndnniyzq8mcw2wdbargb5504"
445 apache-parent-pom-6)))
449 (substitute-keyword-arguments (package-arguments base)
451 `(modify-phases ,phases
452 (delete 'install-plugins)
453 (delete 'install-shared))))))))
455 (define-public maven-parent-pom-22
456 (let ((base (make-maven-parent-pom
457 "22" "1kgqbyx7ckashy47n9rgyg4asyrvp933hdiknvnad7msq5d4c2jg"
458 apache-parent-pom-11)))
462 (substitute-keyword-arguments (package-arguments base)
464 `(modify-phases ,phases
465 (delete 'install-plugins)
466 (delete 'install-shared)
467 (add-before 'install 'fix-versions
469 (substitute* "pom.xml"
471 ,(package-version java-plexus-component-annotations)))
474 (define-public maven-plugins-pom-23
477 (name "maven-plugins-pom")
482 (url "https://github.com/apache/maven-plugins")
483 (commit (string-append "maven-plugins-" version))))
484 (file-name (git-file-name "maven-plugins-pom" version))
487 "1j50il0c9kirr1cvf6vfr86wxp65lwqm9i4bz304ix12vv6ncxjq"))))
488 (build-system ant-build-system)
492 (modify-phases %standard-phases
496 (install-pom-file "pom.xml")))))
498 `(("maven-parent-pom" ,maven-parent-pom-22)))
499 (home-page "https://github.com/apache/maven-plugins")
500 (synopsis "Maven parent pom for maven plugins projects")
501 (description "This package contains the parent pom for maven plugins.")
502 (license license:asl2.0))))
504 (define-public maven-components-parent-pom-22
507 (name "maven-components-parent-pom")
511 (uri (string-append "https://repo1.maven.org/maven2/org/apache/"
512 "maven/shared/maven-shared-components/22/"
513 "maven-shared-components-22.pom"))
516 "11skhrjgrrs6z5rw1w39ap1pzhrc99g0czip10kz7wsavg746ibm"))))
517 (build-system ant-build-system)
521 (modify-phases %standard-phases
526 (install-pom-file (assoc-ref %build-inputs "source"))))))
528 `(("maven-parent-pom-27" ,maven-parent-pom-27)))
529 (home-page "https://apache.org/maven")
530 (synopsis "Parent pom file for the maven components")
531 (description "This package contains the parent pom files for maven shared
533 (license license:lgpl2.1+))))
535 (define-public maven-components-parent-pom-21
537 (inherit maven-components-parent-pom-22)
540 (uri (string-append "https://repo1.maven.org/maven2/org/apache/"
541 "maven/shared/maven-shared-components/21/"
542 "maven-shared-components-21.pom"))
545 "0cqa072fz55j5xyvixqv8vbd7jsbhb1cd14bzjvm0hbv2wpd9npf"))))))