summaryrefslogtreecommitdiff
blob: 68aa4d133b2074f615022cc731e98f73b917acd8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-java/maven-bin/maven-bin-3.2.5.ebuild,v 1.2 2015/03/31 18:58:00 ulm Exp $

EAPI="5"

inherit java-pkg-2 prefix

MY_PN=apache-${PN%%-bin}
MY_PV=${PV/_alpha/-alpha-}
MY_P="${MY_PN}-${MY_PV}"
MY_MV="${PV%%.*}"

DESCRIPTION="Project Management and Comprehension Tool for Java"
SRC_URI="mirror://apache/maven/maven-${MY_MV}/${PV}/binaries/${MY_P}-bin.tar.gz"
HOMEPAGE="http://maven.apache.org/"

LICENSE="Apache-2.0"
SLOT="3.2"
KEYWORDS="~amd64-linux ~x86-linux ~ppc-macos ~x64-solaris"

# TODO: Needs further resolution:
#
# - https://bugs.gentoo.org/show_bug.cgi?id=472850
# - https://bugs.gentoo.org/show_bug.cgi?id=477436
#
DEPEND="app-eselect/eselect-java
|| ( dev-java/commons-logging:0 dev-java/log4j:0 dev-java/avalon-logkit:2.0 )
dev-java/aopalliance:1
dev-java/avalon-framework:4.1
dev-java/commons-cli:1
dev-java/commons-io:1
dev-java/javax-inject:0
dev-java/jsoup:0
dev-java/jsr250:0
dev-java/juel:0
dev-java/osgi-core-api:0
java-virtuals/interceptor-api:0
java-virtuals/servlet-api:2.4"

RDEPEND=">=virtual/jdk-1.6
>=virtual/jre-1.6
${DEPEND}"

S="${WORKDIR}/${MY_P}"

MAVEN=${PN}-${SLOT}
MAVEN_SHARE="/usr/share/${MAVEN}"

java_prepare() {
	rm -v bin/*.bat lib/{aopalliance,commons-cli,javax.inject,jsr250}-*.jar || die

	chmod 644 boot/*.jar lib/*.jar conf/settings.xml || die

	hprefixify -w 1 bin/mvn
	hprefixify -q '"' bin/mvn
	# disable searching for JDKs on Darwin, rely on java-config instead
	sed -i -e 's/Darwin/Gentoo-no-Darwin/' bin/mvn

	# Symlink jars.
	cd lib || die
	java-pkg_jar-from aopalliance-1,avalon-framework-4.1,commons-cli-1,commons-io-1,interceptor-api,javax-inject,jsoup,jsr250,juel,osgi-core-api,servlet-api-2.4
	has_version dev-java/commons-logging:0 && java-pkg_jar-from commons-logging
	has_version dev-java/avalon-logkit:2.0 && java-pkg_jar-from avalon-logkit-2.0
	has_version dev-java/log4j:0 && java-pkg_jar-from log4j
}

# TODO: We should use jars from packages, instead of what is bundled.
src_install() {
	dodir "${MAVEN_SHARE}"

	cp -Rp bin boot conf lib "${ED}/${MAVEN_SHARE}" || die "failed to copy"

	java-pkg_regjar "${ED}/${MAVEN_SHARE}"/boot/*.jar
	java-pkg_regjar "${ED}/${MAVEN_SHARE}"/lib/*.jar

	dodoc NOTICE README.txt

	dodir /usr/bin
	dosym "${MAVEN_SHARE}/bin/mvn" /usr/bin/mvn-${SLOT}

	# See bug #342901.
	echo "CONFIG_PROTECT=\"${MAVEN_SHARE}/conf\"" > "${T}/25${MAVEN}" || die
	doenvd "${T}/25${MAVEN}"
}

pkg_postinst() {
	eselect maven update mvn-${SLOT}
}

pkg_postrm() {
	eselect maven update
}