blob: 8f95874dbfc14de4c8086e660524e1a9f39c038b (
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
# Maintainer (Arch): Guillaume ALAUX <guillaume@archlinux.org>
# Contributor (Arch): Andrew Wright <andreww@photism.org>
# Contributor (Arch): Paul Mattal <paul@archlinux.org>
pkgname=apache-ant
pkgver=1.9.6
pkgdesc='A java-based build tool'
pkgrel=1.parabola2
arch=('any')
url='http://ant.apache.org/'
license=('APACHE' 'custom:BSD3')
depends=('java-environment')
makedepends=('jh')
install=apache-ant.install
source=(https://www.apache.org/dist/ant/source/${pkgname}-${pkgver}-src.tar.bz2
apache-ant.sh
apache-ant.csh
apache-ant.install
bin_ant
ant.conf
apache-ant-build.patch)
sha256sums=('2ad98dd3a4805452e546e0f5b682360370ae11692a2157fff8ec6d177c957123'
'182b9212610790966d3a018d3cbab2e5327dd9fd11dc15dd1f377853216f5718'
'919a3ab1acae1d0d190fe6e0034b00975caab40e55359a720bfccd098fe2d995'
'3de451d0f963ba96e83f4e068a8325e3d4fc42b1e5c4818e9d7962ed4f5393b3'
'29b443ae3af7e246b4ff0b5ec9f023ae95992db1a010a362e70ca7a65a6df461'
'b86ce60f61cbd85a9faa61d698b0fc4607f1ff375cd15673aee57f053012eacb'
'3294d6714b276f446517f699d2a26e01ae1738c0adccf9a454ea58454f513687')
# This list is adapted from https://ant.apache.org/manual/install.html#librarydependencies
# The format is:
# jarname:description:pkgname:jarpath
_library_dependencies=(
jakarta-oro-2.0.8.jar:'<ftp task>':jakarta-oro:/usr/share/java/jakarta-oro.jar
junit.jar:'<junit> task':junit:/usr/share/java/junit.jar
xalan.jar:'<junitreport> task':xalan-java:/usr/share/java/xalan.jar
antlr.jar:'<antlr> task':java-antlr2:/usr/share/java/antlr2.jar
bsf.jar:'<script> task':java-commons-bsf2:/usr/share/java/bsf2.jar
groovy-all.jar:'Groovy with <script> and <scriptdef> tasks':groovy:/usr/share/groovy/embeddable/groovy-all.jar
js.jar:'Javascript with <script> task':java-rhino:/usr/share/java/js.jar
jython.jar:'Python with <script> task':jython:/opt/jython/jython.jar
beanshell.jar:'BeanShell with <script> task':'beanshell2':/usr/share/java/bsh.jar
jruby.jar:'Ruby with <script> task':jruby:/opt/jruby/lib/jruby.jar
commons-logging.jar:'CommonsLoggingListener':java-commons-logging:/usr/share/java/commons-logging.jar
log4j.jar:'Log4jListener':'log4j-1.2':'/usr/share/java/log4j-1.2.jar'
commons-net.jar:'<ftp>, <rexec> and <telnet> tasks':'java-commons-net1>=1.4.0':/usr/share/java/commons-net.jar
bcel.jar:"'classfileset' data type, JavaClassHelper for ClassConstants filter reader":java-bcel:/usr/share/java/bcel.jar
mail.jar:'<mimemail> task, mime encoding with <mail>':java-gnumail:/usr/share/java/gnumail.jar
activation.jar:'<mimemail> task, mime encoding with <mail>':java-activation-gnu:/usr/share/java/activation.jar
jdepend.jar:'<jdepend> task':java-jdepend:/usr/share/java/jdepend.jar
resolver.jar:"external files for 'xmlcatalog' datatype":java-resolver:/usr/share/java/resolver.jar
jsch.jar:'<sshexec> and <scp> tasks':'java-jsch>=0.1.42':/usr/share/java/jsch.jar
)
for _dep in "${_library_dependencies[@]}"; do
IFS=: read _jarname _desc _pkgname _jarpath <<<"$_dep"
optdepends+=("${_pkgname}: ${_desc}")
makedepends+=("${_pkgname}")
done
unset _dep _jarname _desc _pkgname _jarpath
prepare() {
cd "${srcdir}/${pkgname}-${pkgver}"
rm -rv lib/optional/*.jar
rm -rv src/etc/testcases/taskdefs/conditions/jars/*.jar
patch -Np1 -i ../apache-ant-build.patch
# Symlink to external optional libraries/
local _dep _jarname _desc _pkgname _jarpath
for _dep in "${_library_dependencies[@]}"; do
IFS=: read _jarname _desc _pkgname _jarpath <<<"$_dep"
ln -sfv "${_jarpath}" lib/optional/${_jarname}
done
}
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
# Build
export JAVA_HOME=/usr/lib/jvm/default
sh build.sh dist
}
package() {
cd "${srcdir}/${pkgname}-${pkgver}/${pkgbase}-${pkgver}"
source "${srcdir}"/${pkgname}.sh # Get the ANT_HOME env var
## Install the main distribution
install -d "${pkgdir}/${ANT_HOME}"
install -d "${pkgdir}/etc/${pkgname}"
cp -Rp etc/* "${pkgdir}/etc/${pkgname}"
rm "${pkgdir}/etc/${pkgname}/ant-bootstrap.jar"
ln -s /etc/${pkgname} "${pkgdir}${ANT_HOME}/etc"
install -d "${pkgdir}${ANT_HOME}/bin"
find bin -type f -a ! -name \*.bat -a ! -name \*.cmd \
-exec install -m755 {} "${pkgdir}${ANT_HOME}/bin" \;
install -Dm755 "${srcdir}/bin_ant" "${pkgdir}/usr/bin/ant"
install -Dm644 "${srcdir}/ant.conf" "${pkgdir}/etc/apache-ant/ant.conf"
# Fix python2 path
sed -i 's|/usr/bin/python|/usr/bin/python2|' "${pkgdir}/${ANT_HOME}/bin/runant.py"
## Install profile.d script
install -d "${pkgdir}/etc/profile.d"
install -m755 "${srcdir}"/apache-ant.{csh,sh} "${pkgdir}/etc/profile.d/"
# Symlink to external optional libraries
install -d "${pkgdir}/usr/share/apache-ant/lib"
local _dep _jarname _desc _pkgname _jarpath
for _dep in "${_library_dependencies[@]}"; do
IFS=: read _jarname _desc _pkgname _jarpath <<<"$_dep"
ln -svfr "${pkgdir}/${_jarpath}" "${pkgdir}${ANT_HOME}/lib/${_jarname}"
done
## Install Maven artifacts, except 'ant-jai' and 'ant-netrexx'
cd lib
rm {ant-jai,ant-netrexx}.{jar,pom}
install -d "${pkgdir}/usr/share/java/${pkgname}"
export DESTDIR=${pkgdir}
for artifact in $(printf '%s\n' *.pom|sed 's/\.pom$//'); do
if [[ -f "${artifact}.jar" ]]; then
# This artifact has a jar file
jh mvn-install "org.apache.ant" ${artifact} ${pkgver} \
"${artifact}.pom" \
"${artifact}.jar" \
"${artifact}.jar"
# Symlink them to /usr/share/java
ln -s "/usr/share/java/${artifact}.jar" \
"${pkgdir}/usr/share/java/${artifact}-${pkgver}.jar"
ln -s "/usr/share/java/${artifact}.jar" \
"${pkgdir}/usr/share/java/apache-ant/${artifact}.jar"
ln -s "/usr/share/java/${artifact}.jar" \
"${pkgdir}/usr/share/apache-ant/lib/${artifact}.jar"
else
# This artifact is just a pom
jh mvn-install "org.apache.ant" ${artifact} ${pkgver} \
"${artifact}.pom"
fi
done
install -d "${pkgdir}"/usr/share/{doc,licenses}/${pkgname}
# Install documentation
cp "../README" "../WHATSNEW" "${pkgdir}/usr/share/doc/${pkgname}"
cp -r "../manual" "${pkgdir}/usr/share/doc/${pkgname}/html"
# Install license
install -Dm644 "../LICENSE" "../NOTICE" "${pkgdir}/usr/share/licenses/${pkgname}"
}
|