diff options
Diffstat (limited to 'libre/apache-ant/PKGBUILD')
-rw-r--r-- | libre/apache-ant/PKGBUILD | 176 |
1 files changed, 87 insertions, 89 deletions
diff --git a/libre/apache-ant/PKGBUILD b/libre/apache-ant/PKGBUILD index af9dde496..8f95874db 100644 --- a/libre/apache-ant/PKGBUILD +++ b/libre/apache-ant/PKGBUILD @@ -5,67 +5,45 @@ 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 +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') - -_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) +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-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 + beanshell.jar:'BeanShell with <script> task':'beanshell2':/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-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 @@ -73,7 +51,6 @@ _library_dependencies=( 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 @@ -83,76 +60,97 @@ for _dep in "${_library_dependencies[@]}"; do 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 +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 - 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() { + cd "${srcdir}/${pkgname}-${pkgver}" + # Build export JAVA_HOME=/usr/lib/jvm/default - sh build.sh -Ddist.dir="${srcdir}"/${pkgname}-${pkgver}-bin dist + sh build.sh dist } package() { - cd "${srcdir}"/${pkgname}-${pkgver}-bin + cd "${srcdir}/${pkgname}-${pkgver}/${pkgbase}-${pkgver}" 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} + 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 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 + 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 - ## 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" + ## 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 - 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" + + # 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}" } |