You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

545 lines
20 KiB

  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
  3. ;;;
  4. ;;; This file is part of GNU Guix.
  5. ;;;
  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.
  10. ;;;
  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.
  15. ;;;
  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/>.
  18. (define-module (gnu packages maven-parent-pom)
  19. #:use-module ((guix licenses) #:prefix license:)
  20. #:use-module (guix packages)
  21. #:use-module (guix download)
  22. #:use-module (guix git-download)
  23. #:use-module (guix utils)
  24. #:use-module (guix build-system ant)
  25. #:use-module (gnu packages java))
  26. (define (make-apache-parent-pom version hash)
  27. (hidden-package
  28. (package
  29. (name "apache-parent-pom")
  30. (version version)
  31. (source (origin
  32. (method git-fetch)
  33. (uri (git-reference
  34. (url "https://github.com/apache/maven-apache-parent")
  35. (commit (string-append "apache-" version))))
  36. (file-name (git-file-name name version))
  37. (sha256 (base32 hash))))
  38. (build-system ant-build-system)
  39. (arguments
  40. `(#:tests? #f
  41. #:phases
  42. (modify-phases %standard-phases
  43. (delete 'configure)
  44. (delete 'build)
  45. (replace 'install
  46. (install-pom-file "pom.xml")))))
  47. (home-page "https://apache.org/")
  48. (synopsis "Apache parent pom")
  49. (description "This package contains the Apache parent POM.")
  50. (license license:asl2.0))))
  51. (define-public apache-parent-pom-6
  52. (make-apache-parent-pom
  53. "6" "1bq0ma2ya2cnp2icd4l20sv6y7zxqr9sa35wzv1s49nqsrm38kw3"))
  54. (define-public apache-parent-pom-11
  55. (make-apache-parent-pom
  56. "11" "0m1a4db8s6y8f4vvm9bx7zx7lixcvaah064560nbja7na3xz6lls"))
  57. (define-public apache-parent-pom-13
  58. (make-apache-parent-pom
  59. "13" "1cfxaz1jy8fbn06sb648qpiq23swpbj3kb5ya7f9g9jmya5fy09z"))
  60. (define-public apache-parent-pom-16
  61. (make-apache-parent-pom
  62. "16" "1y5b0dlc72ijcqfffdbh0k75qwaddy5qw725v9pzhrzqkpaa51xb"))
  63. (define-public apache-parent-pom-17
  64. (make-apache-parent-pom
  65. "17" "06hj5d6rdkmwl24k2rvzj8plq8x1ncsbjck4w3awz1hp9gngg4y5"))
  66. (define-public apache-parent-pom-18
  67. (make-apache-parent-pom
  68. "18" "1il97vpdmv5k2gnyinj45q00f7f4w9hcb588digwfid5bskddnyy"))
  69. (define-public apache-parent-pom-19
  70. (make-apache-parent-pom
  71. "19" "02drnwv2qqk1dmxbmmrk0bi1iil5cal9l47w53ascpbjg6242mp1"))
  72. (define-public apache-parent-pom-21
  73. (make-apache-parent-pom
  74. "21" "0clcbrq1b2b8sbvlqddyw2dg5niq25dhdma9sk4b0i30hqaipx96"))
  75. (define (make-apache-commons-parent-pom version hash parent)
  76. (hidden-package
  77. (package
  78. (name "apache-commons-parent-pom")
  79. (version version)
  80. (source (origin
  81. (method git-fetch)
  82. (uri (git-reference
  83. (url "https://github.com/apache/commons-parent")
  84. (commit (string-append "commons-parent-" version))))
  85. (file-name (git-file-name name version))
  86. (sha256 (base32 hash))))
  87. (build-system ant-build-system)
  88. (arguments
  89. `(#:tests? #f
  90. #:phases
  91. (modify-phases %standard-phases
  92. (delete 'configure)
  93. (delete 'build)
  94. (replace 'install
  95. (install-pom-file "pom.xml")))))
  96. (propagated-inputs
  97. (if parent
  98. `(("parent" ,parent))
  99. '()))
  100. (home-page "https://maven.apache.org/")
  101. (synopsis "Apache Commons parent pom")
  102. (description "This package contains the Apache Commons parent POM.")
  103. (license license:asl2.0))))
  104. (define-public apache-commons-parent-pom-39
  105. (make-apache-commons-parent-pom
  106. "39" "0mjx48a55ik1h4hsxhifkli1flvkp6d05ab14p4al0fc6rhdxi46"
  107. apache-parent-pom-16))
  108. (define-public apache-commons-parent-pom-41
  109. (make-apache-commons-parent-pom
  110. "41" "1k184amdqdx62bb2k0m9v93zzx768qcyam5dvdgksqc1aaqhadlb"
  111. apache-parent-pom-18))
  112. (define-public apache-commons-parent-pom-48
  113. (make-apache-commons-parent-pom
  114. "48" "0dk8qp7swbh4y1q7q34y14yhigzl5yz0ixa8jhhhq91yc2q570iq"
  115. apache-parent-pom-21))
  116. (define-public apache-commons-parent-pom-50
  117. (make-apache-commons-parent-pom
  118. "50" "0ki8px35dan51ashblpw6rdl27c2fq62slazhslhq3lr4fwlpvxs"
  119. apache-parent-pom-21))
  120. (define-public java-weld-parent-pom
  121. (hidden-package
  122. (package
  123. (name "java-weld-parent-pom")
  124. (version "36")
  125. (source (origin
  126. (method git-fetch)
  127. (uri (git-reference
  128. (url "https://github.com/weld/parent")
  129. (commit version)))
  130. (file-name (git-file-name name version))
  131. (sha256
  132. (base32
  133. "0rbvizcsma456mw9fvp4dj9cljh97nswvhi04xhczi38j5bgal0m"))))
  134. (build-system ant-build-system)
  135. (arguments
  136. `(#:tests? #f
  137. #:phases
  138. (modify-phases %standard-phases
  139. (delete 'build)
  140. (replace 'install
  141. (install-pom-file "pom.xml")))))
  142. (home-page "https://github.com/weld/parent")
  143. (synopsis "Pom parent file for weld projects")
  144. (description "This package contains the parent Maven Pom for weld projects.")
  145. (license license:asl2.0))))
  146. (define (make-java-sonatype-forge-parent-pom version hash)
  147. (hidden-package
  148. (package
  149. (name "java-sonatype-forge-parent-pom")
  150. (version version)
  151. (source (origin
  152. (method git-fetch)
  153. (uri (git-reference
  154. (url "https://github.com/sonatype/oss-parents")
  155. (commit (string-append "forge-parent-" version))))
  156. (file-name (git-file-name name version))
  157. (sha256 (base32 hash))))
  158. (build-system ant-build-system)
  159. (arguments
  160. `(#:tests? #f
  161. #:phases
  162. (modify-phases %standard-phases
  163. (delete 'build)
  164. (delete 'configure)
  165. (replace 'install
  166. (install-pom-file "pom.xml")))))
  167. (home-page "https://github.com/sonatype/oss-parents")
  168. (synopsis "Sonatype forge parent pom")
  169. (description "This package contains a single pom.xml file that is used by
  170. other projects as their parent pom.")
  171. (license license:asl2.0))))
  172. (define-public java-sonatype-forge-parent-pom-4
  173. (make-java-sonatype-forge-parent-pom
  174. "4" "1gip239ar20qzy6yf37r6ks54bl7gqi1v49p65manrz84cmad0dh"))
  175. (define-public java-sonatype-forge-parent-pom-5
  176. (make-java-sonatype-forge-parent-pom
  177. "5" "0pr60wyjmaml4flmcij6l94b72ryx5gsiiasiwvcvrz9b2fkb3cd"))
  178. (define-public java-sonatype-forge-parent-pom-6
  179. (make-java-sonatype-forge-parent-pom
  180. "6" "0sa5wn5kc6y74m9g3azkm5i9d7kvyvgdw7wjlp7bjgy9s5qkbhgz"))
  181. (define-public java-sonatype-forge-parent-pom-10
  182. (make-java-sonatype-forge-parent-pom
  183. "10" "1n89wb00q4s9nwpqq6q1h4nzakw1l1rppjygxkl3iid7m5fnj60n"))
  184. (define-public java-sonatype-spice-parent-pom-15
  185. (hidden-package
  186. (package
  187. (name "java-sonatype-spice-parent-pom")
  188. (version "15")
  189. (source (origin
  190. (method git-fetch)
  191. (uri (git-reference
  192. (url "https://github.com/sonatype/oss-parents")
  193. ;; The only commit where spice-parent is version 15
  194. (commit "a4d1169c66fb21b214cb3eff2f056ec3e3695ca7")))
  195. (file-name (git-file-name name version))
  196. (sha256
  197. (base32
  198. "0h62h6m31srmqnd1bhyspz6hdhkkv48knkj0ximq3pzdixgzyxgy"))))
  199. (build-system ant-build-system)
  200. (propagated-inputs
  201. `(("java-sonatype-forge-parent-pom-5" ,java-sonatype-forge-parent-pom-5)))
  202. (arguments
  203. `(#:tests? #f
  204. #:phases
  205. (modify-phases %standard-phases
  206. (delete 'build)
  207. (delete 'configure)
  208. (replace 'install
  209. (install-pom-file "pom.xml")))))
  210. (home-page "https://github.com/sonatype/oss-parents")
  211. (synopsis "Sonatype spice parent pom")
  212. (description "This package contains a single pom.xml file that is used by
  213. other projects as their parent pom.")
  214. (license license:asl2.0))))
  215. (define-public java-sonatype-spice-parent-pom-17
  216. (hidden-package
  217. (package
  218. (inherit java-sonatype-spice-parent-pom-15)
  219. (version "17")
  220. (source (origin
  221. (method git-fetch)
  222. (uri (git-reference
  223. (url "https://github.com/sonatype/oss-parents")
  224. (commit "spice-parent-17")))
  225. (file-name (git-file-name "java-sonatype-spice-parent-pom" version))
  226. (sha256
  227. (base32
  228. "1d4jh1scgnjwhv8f0r052vrksg0kman09hslfvfvpfidl8rwiigq"))))
  229. (arguments
  230. `(#:tests? #f
  231. #:phases
  232. (modify-phases %standard-phases
  233. (delete 'build)
  234. (delete 'configure)
  235. (replace 'install
  236. (install-pom-file "spice-parent/pom.xml")))))
  237. (propagated-inputs
  238. `(("java-sonatype-forge-parent-pom-10" ,java-sonatype-forge-parent-pom-10))))))
  239. (define-public java-sonatype-spice-parent-pom-12
  240. (hidden-package
  241. (package
  242. (inherit java-sonatype-spice-parent-pom-15)
  243. (version "12")
  244. (source (origin
  245. (method git-fetch)
  246. (uri (git-reference
  247. (url "https://github.com/sonatype/oss-parents")
  248. ;; The only commit where spice-parent is version 12
  249. (commit "95088ae2891f673828351d7d9150240859b4a29a")))
  250. (file-name (git-file-name "java-sonatype-spice-parent-pom" version))
  251. (sha256
  252. (base32
  253. "0pq5yf6swn43rxdfksnqsky1402zza2xq1aypwma9jkck2yl0vma"))))
  254. (propagated-inputs
  255. `(("java-sonatype-forge-parent-pom-4" ,java-sonatype-forge-parent-pom-4))))))
  256. (define-public java-sonatype-oss-parent-pom-7
  257. (hidden-package
  258. (package
  259. (name "java-sonatype-oss-parent-pom")
  260. (version "7")
  261. (source (origin
  262. (method git-fetch)
  263. (uri (git-reference
  264. (url "https://github.com/sonatype/oss-parents")
  265. (commit (string-append "oss-parent-" version))))
  266. (file-name (git-file-name name version))
  267. (sha256
  268. (base32
  269. "0lkvkmm51vrrrp79ksq3i2v693279rbn06yxck70ivhjrbq77927"))))
  270. (build-system ant-build-system)
  271. (arguments
  272. `(#:tests? #f
  273. #:phases
  274. (modify-phases %standard-phases
  275. (delete 'build)
  276. (delete 'configure)
  277. (replace 'install
  278. (install-pom-file "pom.xml")))))
  279. (home-page "https://github.com/sonatype/oss-parents")
  280. (synopsis "Sonatype oss parent pom")
  281. (description "This package contains a single pom.xml file that is used by
  282. other projects as their parent pom.")
  283. (license license:asl2.0))))
  284. (define-public java-sonatype-oss-parent-pom-9
  285. (hidden-package
  286. (package
  287. (inherit java-sonatype-oss-parent-pom-7)
  288. (version "9")
  289. (source (origin
  290. (method url-fetch)
  291. (uri (string-append "https://repo1.maven.org/maven2/org/sonatype/"
  292. "oss/oss-parent/" version "/oss-parent-"
  293. version ".pom"))
  294. (sha256
  295. (base32
  296. "0yl2hbwz2kn1hll1i00ddzn8f89bfdcjwdifz0pj2j15k1gjch7v"))))
  297. (arguments
  298. `(#:tests? #f
  299. #:phases
  300. (modify-phases %standard-phases
  301. (delete 'unpack)
  302. (delete 'configure)
  303. (delete 'build)
  304. (replace 'install
  305. (install-pom-file (assoc-ref %build-inputs "source")))))))))
  306. (define* (make-plexus-parent-pom version hash #:optional parent)
  307. (hidden-package
  308. (package
  309. (name "plexus-parent-pom")
  310. (version version)
  311. (source (origin
  312. (method git-fetch)
  313. (uri (git-reference
  314. (url "https://github.com/codehaus-plexus/plexus-pom")
  315. (commit (string-append "plexus-" version))))
  316. (file-name (git-file-name name version))
  317. (sha256 (base32 hash))))
  318. (build-system ant-build-system)
  319. (arguments
  320. `(#:tests? #f
  321. #:phases
  322. (modify-phases %standard-phases
  323. (delete 'configure)
  324. (delete 'build)
  325. (replace 'install
  326. (install-pom-file "pom.xml")))))
  327. (propagated-inputs
  328. (if parent
  329. `(("parent" ,parent))
  330. '()))
  331. (home-page "https://codehaus-plexus.github.io/plexus-pom")
  332. (synopsis "Plexus parent pom")
  333. (description "This package contains the Plexus parent POM.")
  334. (license license:asl2.0))))
  335. (define-public plexus-parent-pom-3.1
  336. (make-plexus-parent-pom
  337. "3.1" "0r1wa6zrpzynn4028w7880abkk2xk25mipav5f0a4d1abqzy5m53"
  338. java-sonatype-spice-parent-pom-17))
  339. (define-public plexus-parent-pom-4.0
  340. (make-plexus-parent-pom
  341. "4.0" "15xbvc3cqhdkli8sj2l4hqkvk6icikbj182fbm86ixkamjh5lyfk"
  342. java-sonatype-forge-parent-pom-10))
  343. (define-public plexus-parent-pom-5.1
  344. (make-plexus-parent-pom
  345. "5.1" "1mb87adzyv8lilzd6sw40j5000vhib2p0lgf9zzgggpkh79ddm8v"))
  346. (define-public plexus-parent-pom-6.1
  347. (make-plexus-parent-pom
  348. "6.1" "1pisca0fxpgbhf4xdgw5mn86622pg3mc5b8760kf9mk2awazshlj"))
  349. (define (make-maven-parent-pom version hash parent)
  350. (hidden-package
  351. (package
  352. (name "maven-parent-pom")
  353. (version version)
  354. (source (origin
  355. (method git-fetch)
  356. (uri (git-reference
  357. (url "https://github.com/apache/maven-parent")
  358. (commit (string-append "maven-parent-" version))))
  359. (file-name (git-file-name name version))
  360. (sha256 (base32 hash))))
  361. (build-system ant-build-system)
  362. (arguments
  363. `(#:tests? #f
  364. #:phases
  365. (modify-phases %standard-phases
  366. (delete 'configure)
  367. (delete 'build)
  368. (add-after 'install 'install-plugins
  369. (install-pom-file "maven-plugins/pom.xml"))
  370. (add-after 'install 'install-shared
  371. (install-pom-file "maven-shared-components/pom.xml"))
  372. (replace 'install
  373. (install-pom-file "pom.xml")))))
  374. (propagated-inputs
  375. `(("parent" ,parent)))
  376. (home-page "https://maven.apache.org/")
  377. (synopsis "Maven parent pom")
  378. (description "Apache Maven is a software project management and comprehension
  379. tool. This package contains the Maven parent POM.")
  380. (license license:asl2.0))))
  381. (define-public maven-parent-pom-33
  382. (make-maven-parent-pom
  383. "33" "1b0z2gsvpccgcssys9jbdfwlwq8b5imdwr508f87ssdbfs29lh65"
  384. apache-parent-pom-21))
  385. (define-public maven-parent-pom-31
  386. (make-maven-parent-pom
  387. "31" "0skxv669v9ffwbmrmybnn9awkf1g3ylk88bz0hv6g11zpj1a8454"
  388. apache-parent-pom-19))
  389. (define-public maven-parent-pom-30
  390. (make-maven-parent-pom
  391. "30" "1w463na38v2054wn1cwbfqy095z13fhil4jmn08dsa4drdvdsjdw"
  392. apache-parent-pom-18))
  393. (define-public maven-parent-pom-27
  394. (let ((base (make-maven-parent-pom
  395. "27" "1s31hi4n99kj7x1cy5dvzwldbjqzk6c3dn20hk61hwhgmkcbf14x"
  396. apache-parent-pom-17)))
  397. (package
  398. (inherit base)
  399. (arguments
  400. (substitute-keyword-arguments (package-arguments base)
  401. ((#:phases phases)
  402. `(modify-phases ,phases
  403. (delete 'install-plugins)
  404. (delete 'install-shared))))))))
  405. (define-public maven-parent-pom-15
  406. (let ((base (make-maven-parent-pom
  407. "15" "154nbc3w9is1dpzlfi1xk03mfksxndnniyzq8mcw2wdbargb5504"
  408. apache-parent-pom-6)))
  409. (package
  410. (inherit base)
  411. (arguments
  412. (substitute-keyword-arguments (package-arguments base)
  413. ((#:phases phases)
  414. `(modify-phases ,phases
  415. (delete 'install-plugins)
  416. (delete 'install-shared))))))))
  417. (define-public maven-parent-pom-22
  418. (let ((base (make-maven-parent-pom
  419. "22" "1kgqbyx7ckashy47n9rgyg4asyrvp933hdiknvnad7msq5d4c2jg"
  420. apache-parent-pom-11)))
  421. (package
  422. (inherit base)
  423. (arguments
  424. (substitute-keyword-arguments (package-arguments base)
  425. ((#:phases phases)
  426. `(modify-phases ,phases
  427. (delete 'install-plugins)
  428. (delete 'install-shared)
  429. (add-before 'install 'fix-versions
  430. (lambda _
  431. (substitute* "pom.xml"
  432. (("1.5.5")
  433. ,(package-version java-plexus-component-annotations)))
  434. #t)))))))))
  435. (define-public maven-plugins-pom-23
  436. (hidden-package
  437. (package
  438. (name "maven-plugins-pom")
  439. (version "23")
  440. (source (origin
  441. (method git-fetch)
  442. (uri (git-reference
  443. (url "https://github.com/apache/maven-plugins")
  444. (commit (string-append "maven-plugins-" version))))
  445. (file-name (git-file-name "maven-plugins-pom" version))
  446. (sha256
  447. (base32
  448. "1j50il0c9kirr1cvf6vfr86wxp65lwqm9i4bz304ix12vv6ncxjq"))))
  449. (build-system ant-build-system)
  450. (arguments
  451. `(#:tests? #f
  452. #:phases
  453. (modify-phases %standard-phases
  454. (delete 'configure)
  455. (delete 'build)
  456. (replace 'install
  457. (install-pom-file "pom.xml")))))
  458. (propagated-inputs
  459. `(("maven-parent-pom" ,maven-parent-pom-22)))
  460. (home-page "https://github.com/apache/maven-plugins")
  461. (synopsis "Maven parent pom for maven plugins projects")
  462. (description "This package contains the parent pom for maven plugins.")
  463. (license license:asl2.0))))
  464. (define-public maven-components-parent-pom-22
  465. (hidden-package
  466. (package
  467. (name "maven-components-parent-pom")
  468. (version "22")
  469. (source (origin
  470. (method url-fetch)
  471. (uri (string-append "https://repo1.maven.org/maven2/org/apache/"
  472. "maven/shared/maven-shared-components/22/"
  473. "maven-shared-components-22.pom"))
  474. (sha256
  475. (base32
  476. "11skhrjgrrs6z5rw1w39ap1pzhrc99g0czip10kz7wsavg746ibm"))))
  477. (build-system ant-build-system)
  478. (arguments
  479. `(#:tests? #f
  480. #:phases
  481. (modify-phases %standard-phases
  482. (delete 'unpack)
  483. (delete 'build)
  484. (delete 'configure)
  485. (replace 'install
  486. (install-pom-file (assoc-ref %build-inputs "source"))))))
  487. (propagated-inputs
  488. `(("maven-parent-pom-27" ,maven-parent-pom-27)))
  489. (home-page "https://apache.org/maven")
  490. (synopsis "Parent pom file for the maven components")
  491. (description "This package contains the parent pom files for maven shared
  492. components.")
  493. (license license:lgpl2.1+))))
  494. (define-public maven-components-parent-pom-21
  495. (package
  496. (inherit maven-components-parent-pom-22)
  497. (source (origin
  498. (method url-fetch)
  499. (uri (string-append "https://repo1.maven.org/maven2/org/apache/"
  500. "maven/shared/maven-shared-components/21/"
  501. "maven-shared-components-21.pom"))
  502. (sha256
  503. (base32
  504. "0cqa072fz55j5xyvixqv8vbd7jsbhb1cd14bzjvm0hbv2wpd9npf"))))))