blob: a635c6e90e2f0a4badbe8169e9b734647ea4a50a (
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
|
# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
# Maintainer (Arch): Paul Mattal <paul@archlinux.org>
# Contributor: Andrew Wright <andreww@photism.org>
pkgname=apache-ant
pkgver=1.9.3
pkgdesc="A Java-based build tool"
license=('Apache' 'custom:BSD3')
url="http://ant.apache.org/"
provides=("apache-ant-libre=$pkgver")
replaces=("apache-ant-libre")
conflicts=("apache-ant-libre")
pkgrel=2.2 # newer than Arch's 1.9.3-2
arch=('any')
depends=('java-environment')
makedepends=('jh')
_mirror=http://archive.apache.org/dist
source=($_mirror/ant/source/${pkgname}-${pkgver}-src.tar.bz2
${pkgname}.sh ${pkgname}.csh)
md5sums=('995f21618acdf35beacc465c84d79534'
'bd63c881be406f515fc4d22635e8326a'
'aaa615512cbe1ed7f3b62c1ff46802f8')
# 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
source "/etc/profile.d/jdk.sh" # Get the JAVA_HOME env var
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/jdk.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 -sfvr "${pkgdir}/${ANT_HOME}/README" "${pkgdir}/usr/share/doc/${pkgname}/README"
ln -sfvr "${pkgdir}/${ANT_HOME}/WHATSNEW" "${pkgdir}/usr/share/doc/${pkgname}/WHATSNEW"
ln -sfvr "${pkgdir}/${ANT_HOME}/manual" "${pkgdir}/usr/share/doc/${pkgname}/html"
ln -sfvr "${pkgdir}/${ANT_HOME}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
ln -sfvr "${pkgdir}/${ANT_HOME}/NOTICE" "${pkgdir}/usr/share/licenses/${pkgname}/NOTICE"
}
|