diff options
Diffstat (limited to 'java')
-rw-r--r-- | java/apache-ant/PKGBUILD | 118 |
1 files changed, 69 insertions, 49 deletions
diff --git a/java/apache-ant/PKGBUILD b/java/apache-ant/PKGBUILD index dfda3c28d..12a8cb0ed 100644 --- a/java/apache-ant/PKGBUILD +++ b/java/apache-ant/PKGBUILD @@ -3,7 +3,7 @@ # Contributor: Andrew Wright <andreww@photism.org> pkgname=apache-ant -pkgver=1.9.1 +pkgver=1.9.2 pkgdesc="A Java-based build tool" license=('Apache' 'custom:BSD3') url="http://ant.apache.org/" @@ -12,7 +12,7 @@ provides=("apache-ant-libre=$pkgver") replaces=("apache-ant-libre") conflicts=("apache-ant-libre") -pkgrel=3 +pkgrel=3.1 # newer than Arch's 1.9.2-3 arch=('any') depends=('java-environment') makedepends=('jh') @@ -22,37 +22,45 @@ source=($_mirror/ant/source/${pkgname}-${pkgver}-src.tar.bz2 ${pkgname}.sh ${pkgname}.csh) # This list is adapted from https://ant.apache.org/manual/install.html#librarydependencies -declare -A _opts -_opts[junit]='to have JUnit on the classpath in javac tasks;/usr/share/java/junit.jar' -_opts[xalan-java]='<junitreport> task;/usr/share/java/xalan.jar' -_opts[java-antlr2]='<antlr> task;/usr/share/java/antlr2.jar::antlr.jar' -_opts[java-commons-bsf2]='<script> task;/usr/share/java/bsf2.jar::bsf.jar' -#_opts[groovy]='Groovy with <script> and <scriptdef> tasks;/usr/share/java/groovy.jar' -_opts[java-asm2]='Groovy with <script> and <scriptdef> tasks;/usr/share/java/asm-2.jar::asm.jar /usr/share/java/asm-util-2.jar::asm-util.jar' -#_opts[netrexx]='<netrexx> task, Rexx with <script> task;/usr/share/java/netrexx.jar' -_opts[java-rhino]='Javascript with <script> task;/usr/share/java/js.jar' -_opts[jython]='Python with <script> task;/opt/jython/jython.jar' -#_opts[jacl]='TCL with <script> task;/usr/share/java/jacl.jar' -#_opts[tcljava]='TCL with <script> task;/usr/share/java/tcljava.jar' -_opts[beanshell>=1.3]='BeanShell with <script> task;/usr/share/java/bsh.jar::beanshell.jar' -_opts[jruby]='Ruby with <script> task;/opt/jruby/lib/jruby.jar' -#_opts[judo]='Judoscript with <script> task;/usr/share/java/judo.jar' -_opts[java-commons-logging]='CommonsLoggingListener;/usr/share/java/commons-logging/commons-logging.jar' -#_opts[java-log4j]='Log4jListener;/usr/share/java/log4j.jar' -_opts[java-commons-net1>=1.4.0]='<ftp>, <rexec> and <telnet> tasks;/usr/share/java/commons-net.jar' -_opts[java-bcel]="'classfileset' data type, JavaClassHelper for ClassConstants filter reader;/usr/share/java/bcel.jar" -#_opts[java-mail]='<mimemail> task, mime encoding with <mail>;/usr/share/java/mail.jar' -_opts[java-activation-gnu]='<mimemail> task, mime encoding with <mail>;/usr/share/java/activation.jar' -_opts[java-jdepend]='<jdepend> task;/usr/share/java/jdepend.jar' -#_opts[java-xmlcommons-resolver>=1.1beta]="external files for 'xmlcatalog' datatype;/usr/share/java/resolver.jar" -_opts[java-jsch>=0.1.42]='<sshexec> and <scp> tasks;/usr/share/java/jsch.jar' -#_opts[java-advanced-imaging]='<image> task/usr/share/java/jai/*.jar' - -for pkg in "${!_opts[@]}"; do - optdepends+=("$pkg: ${_opts[$pkg]%;*}") - makedepends+=("$pkg") - _jars+="${_opts[$pkg]#*;} " +# 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 +# FIXME: When FS#38243 is fixed, 'xerces2-java' should be changed to 'java-resolver'. +# We use xerces in the mean time because xalan depends on it. + resolver.jar:"external files for 'xmlcatalog' datatype":xerces2-java:/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 @@ -63,14 +71,24 @@ build() { cd "${srcdir}"/${pkgname}-${pkgver} # Symlink to external optional libraries/ - for jar in $_jars; do - ln -sfv ${jar%::*} lib/optional/`basename ${jar#*::}` + 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 } +# Create a relative symlink +_rellink() { + local src=$1 + local dst=$2 + mkdir -p "${pkgdir}/${dst%/*}" + ln -sfv "$(realpath -m "$src" --relative-to="${dst%/*}")" "${pkgdir}/${dst}" +} + package() { cd "${srcdir}"/${pkgname}-${pkgver}-bin source "${srcdir}"/${pkgname}.sh # Get the ANT_HOME env var @@ -90,33 +108,35 @@ package() { # Fix python2 path sed -i 's|/usr/bin/python|/usr/bin/python2|' "${pkgdir}"/${ANT_HOME}/bin/runant.py # Symlink to external optional libraries - for jar in $_jars; do - ln -sf ${jar%::*} "${pkgdir}"/${ANT_HOME}/lib/`basename ${jar#*::}` + local _dep _jarname _desc _pkgname _jarpath + for _dep in "${_library_dependencies[@]}"; do + IFS=: read _jarname _desc _pkgname _jarpath <<<"$_dep" + _rellink "${_jarpath}" "${ANT_HOME}/lib/${_jarname}" done ## Symlink the /opt distribution to the normal places - install -d "${pkgdir}"/usr/bin - install -d "${pkgdir}"/usr/share/doc/${pkgname} - install -d "${pkgdir}"/usr/share/licenses/${pkgname} 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 -sf ${ANT_HOME}/lib/$a.pom "${pkgdir}${base}".pom - ln -sf ${ANT_HOME}/lib/$a.jar "${pkgdir}${base}".jar + _rellink "${ANT_HOME}/lib/$a.pom" "${base}.pom" + _rellink "${ANT_HOME}/lib/$a.jar" "${base}.jar" done - cd "${pkgdir}"/${ANT_HOME} - for prog in bin/*; do - ln -sf ${ANT_HOME}/$prog "${pkgdir}"/usr/bin + cd "${pkgdir}"/${ANT_HOME}/bin + local prog + for prog in *; do + _rellink "${ANT_HOME}/$prog" "/usr/bin/$prog" done - ln -sf ${ANT_HOME}/{README,WHATSNEW} "${pkgdir}"/usr/share/doc/${pkgname} - ln -sf ${ANT_HOME}/docs "${pkgdir}"/usr/share/doc/${pkgname}/html - ln -sf ${ANT_HOME}/{LICENSE,NOTICE} "${pkgdir}"/usr/share/licenses/${pkgname} + _rellink "${ANT_HOME}/README" "/usr/share/doc/${pkgname}/README" + _rellink "${ANT_HOME}/WHATSNEW" "/usr/share/doc/${pkgname}/WHATSNEW" + _rellink "${ANT_HOME}/docs" "/usr/share/doc/${pkgname}/html" + _rellink "${ANT_HOME}/LICENSE" "/usr/share/licenses/${pkgname}/LICENSE" + _rellink "${ANT_HOME}/NOTICE" "/usr/share/licenses/${pkgname}/NOTICE" } -md5sums=('39771fd8b4ba87cd77ff6f27001cce4e' +md5sums=('8f610c1a0183507c2beebbf230f456af' 'bd63c881be406f515fc4d22635e8326a' 'aaa615512cbe1ed7f3b62c1ff46802f8') |