blob: af9dde49689672dfb9e1e70c982a5e0b2ecf056d (
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
157
158
|
# 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"
license=('Apache' 'custom:BSD3')
url="http://ant.apache.org/"
# Arch splits it into pkgname=('apache-ant' 'apache-ant-doc')
provides=("$pkgname-doc=$pkgver")
replaces=("$pkgname-libre" "$pkgname-doc")
conflicts=("$pkgname-libre" "$pkgname-doc")
pkgrel=1.parabola1
arch=('any')
depends=('java-environment')
makedepends=('jh')
_mirror=http://archive.apache.org/dist
source=($_mirror/ant/source/${pkgname}-${pkgver}-src.tar.bz2{,.asc}
${pkgname}.sh ${pkgname}.csh)
sha512sums=('cfd4fd5da725bb32d85c84f62835ce9511107da89c14487466d58df82d1f2b9ce6e363d3d02b10846c8463cae3287cb787f96f9103121b2e0e045b6027634ff0'
'SKIP'
'b5bd49bc99161e86f7198181aff7c47c8045e8cac7b7c1e2531dc49b71f1659ae35f90d33b01076b6bf665aa99f951c47ba09a0408b0aca43184f68ebd201768'
'c8c4be2928af648e064d4dff9efb71e250d0fb4baa318932a88de04c9c2d328b8b1af0321e732d2f302d25893e1a627da5c72264b8bd6bd50e662ca10e3f50bf')
# Run this to get the validpgpkeys:
# curl -s https://www.apache.org/dist/ant/KEYS | gpg --with-colons --with-fingerprint - | grep ^fpr: | cut -d: -f10
validpgpkeys=(5B1E231C400B113C061C26508104644F51898504
47309207D818FFD8DCD3F83F1931D684307A10A5
5F35E131F832ED23F761578BEFA3E779EDF62C35
CE8075A251547BEE249BC151A2115AE15F6B8B72
B36135CBA375AA1ADE562A1C6E947594C152431A
F54C925C2454F21D86692540A0BFF93DAA0077B0
07C69F931EE82E694E73B54203F68CBDDE8884A0
9C60C6B3A5A9DF8FEDD299D65BE0BA8CB80602AE
14604968898CEB74A5329360AEB01A153B7C75B1
5CDF153E81AB0522A1E5BFBE483C23C67BF8BE8E
7B8E57E91F116BECF9ACE6AF37A0E062971731FB
F19E751B68B907C4F2E6B7B18D6D0AD09711DBFC
06A228AAB83A18A8DF7B84B08614D6AB265B4C63
61B656E44615E2AEF78E8DCF0E69F809710038F5
0BADE59B0EC24E68C03CA4815EFAD9FE82A7FBCD)
# This list is adapted from https://ant.apache.org/manual/install.html#librarydependencies
# The format is:
# jarname:description:pkgname:jarpath
_library_dependencies=(
#jakarta-regexp-1.3.jar:Disregard
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
#netrexx.jar:'<netrexx> task, Rexx with <script> task':???????:???????
js.jar:'Javascript with <script> task':java-rhino:/usr/share/java/js.jar
jython.jar:'Python with <script> task':jython:/opt/jython/jython.jar
#jpython.jar:Disregard
#jacl.jar:'TCL with <script> task':???????:???????
#tcljava.jar:'TCL with <script> task':???????:???????
beanshell.jar:'BeanShell with <script> task':'beanshell>=1.3':/usr/share/java/bsh.jar
jruby.jar:'Ruby with <script> task':jruby:/opt/jruby/lib/jruby.jar
#judo.jar:'Judoscript with <script> task':???????:??????
commons-logging.jar:'CommonsLoggingListener':java-commons-logging:/usr/share/java/commons-logging/commons-logging.jar
#log4j.jar:'Log4jListener':???????:???????
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
#jai.jar:'<image> task':???????:???????
)
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
build() {
# This directory is what becomes
# http://archive.apache.org/dist/ant/binaries/${pkgname}-${pkgver}-bin.tar.bz2
# which is what Arch uses
rm -rf "${srcdir}"/${pkgname}-${pkgver}-bin
mkdir -p "${srcdir}"/${pkgname}-${pkgver}-bin
cd "${srcdir}"/${pkgname}-${pkgver}
# 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
export JAVA_HOME=/usr/lib/jvm/default
sh build.sh -Ddist.dir="${srcdir}"/${pkgname}-${pkgver}-bin dist
}
package() {
cd "${srcdir}"/${pkgname}-${pkgver}-bin
source "${srcdir}"/${pkgname}.sh # Get the ANT_HOME env var
source "/etc/profile.d/jre.sh" # Get the JAVA_HOME env var
## Install profile.d script
install -d "${pkgdir}"/etc/profile.d
install -m755 "${srcdir}"/${pkgname}.{csh,sh} "${pkgdir}"/etc/profile.d/
## Install the main distribution
install -d "${pkgdir}"/${ANT_HOME}
cp -Rp * "${pkgdir}"/${ANT_HOME}
## Fix the distribution
# Remove Windows .bat/.cmd files
rm -f "${pkgdir}"/${ANT_HOME}/bin/*.{bat,cmd}
# Fix python2 path
sed -i 's|/usr/bin/python|/usr/bin/python2|' "${pkgdir}"/${ANT_HOME}/bin/runant.py
# 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 -svfr "${pkgdir}/${_jarpath}" "${pkgdir}${ANT_HOME}/lib/${_jarname}"
done
## Symlink the /opt distribution to the normal places
cd "${pkgdir}"/${ANT_HOME}/lib
local pom a
for pom in *.pom; do
a=${pom%.pom}
base=$(jh mvn-basename org.apache.ant $a $pkgver)
install -d "${pkgdir}/${base%/*}"
ln -sfvr "${pkgdir}/${ANT_HOME}/lib/$a.pom" "${pkgdir}/${base}.pom"
if [[ -e "${pkgdir}/${ANT_HOME}/lib/$a.jar" ]]; then
ln -sfvr "${pkgdir}/${ANT_HOME}/lib/$a.jar" "${pkgdir}/${base}.jar"
fi
done
cd "${pkgdir}"/${ANT_HOME}/bin
install -d "${pkgdir}"/usr/bin
local prog
for prog in *; do
ln -sfvr "${pkgdir}/${ANT_HOME}/bin/$prog" "${pkgdir}/usr/bin/$prog"
done
install -d "${pkgdir}"/usr/share/{doc,licenses}/${pkgname}
ln -sfvrT "${pkgdir}/${ANT_HOME}/README" "${pkgdir}/usr/share/doc/${pkgname}/README"
ln -sfvrT "${pkgdir}/${ANT_HOME}/WHATSNEW" "${pkgdir}/usr/share/doc/${pkgname}/WHATSNEW"
ln -sfvrT "${pkgdir}/${ANT_HOME}/manual" "${pkgdir}/usr/share/doc/${pkgname}/html"
ln -sfvrT "${pkgdir}/${ANT_HOME}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
ln -sfvrT "${pkgdir}/${ANT_HOME}/NOTICE" "${pkgdir}/usr/share/licenses/${pkgname}/NOTICE"
mv -T "${pkgdir}/${ANT_HOME}/etc" "${pkgdir}/etc/${pkgname}"
ln -sfvrT "${pkgdir}/etc/${pkgname}" "${pkgdir}/${ANT_HOME}/etc"
}
|