# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net> # Maintainer (Arch): Paul Mattal <paul@archlinux.org> # Contributor (Arch): Andrew Wright <andreww@photism.org> pkgname=apache-ant pkgver=1.9.4 pkgdesc="A Java-based build tool" license=('Apache' 'custom:BSD3') url="http://ant.apache.org/" replaces=("$pkgname-libre" "$pkgname-doc") conflicts=("$pkgname-libre" "$pkgname-doc") pkgrel=3.parabola1 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=('7a7253ec047195d755c5318a4de8a3a4' '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/jre.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/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 -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" }