# Maintainer: Guillaume ALAUX <guillaume@archlinux.org>
pkgbase=tomcat6
pkgname=('java-servlet2.5-tomcat' 'java-jsp2.1-tomcat' 'tomcat6')
pkgver=6.0.35
pkgrel=1
arch=('any')
url='http://tomcat.apache.org/'
license=('APACHE')
makedepends=('java-environment>=5' 'apache-ant>=1.6' 'java-commons-daemon' 'eclipse-ecj')
source=(http://archive.apache.org/dist/tomcat/tomcat-6/v${pkgver}/src/apache-tomcat-${pkgver}-src.tar.gz
        http://archive.apache.org/dist/tomcat/tomcat-6/v${pkgver}/bin/apache-tomcat-${pkgver}.tar.gz
        tomcat6.conf.d
        tomcat6
        tomcat6.install)

#noextract=(dbcp-${pkgver}.jar)
md5sums=('4d44a7e7610a83ebe930a781257a8b1d'
         '171d255cd60894b29a41684ce0ff93a8'
         '5a95b41d320aa455fe9cbf97a80b0953'
         '8f2ccc09837577394441d29a03b0e667'
         'afdb7edc5c7a7b5fa85ad110d021cad3')

_servletver=2.5
_jspver=2.1

#FIXME ant target 'download' should not be called
build() {
  cd "${srcdir}/apache-tomcat-${pkgver}-src"

  . /etc/profile.d/apache-ant.sh
  ant download deploy\
    -Dbase.path=${srcdir}/DOWN_LIBS \
    -Dcommons-daemon.jar=/usr/share/java/commons-daemon.jar \
    -Djdt.jar=/usr/share/java/eclipse-ecj.jar
}

package_java-servlet2.5-tomcat() {
  pkgdesc="Servlet ${_servletver} java library implementation by Apache Tomcat"
  depends=('java-environment>=5')

  cd "${srcdir}/apache-tomcat-${pkgver}-src/output/build/lib"

  install -dm755 ${pkgdir}/usr/share/java/servlet${_servletver}-tomcat
  install -m644 servlet-api.jar \
                ${pkgdir}/usr/share/java/servlet${_servletver}-tomcat/servlet-api-${_servletver}.jar
#  ln -s servlet${_servletver}-tomcat/servlet-api-${_servletver}.jar \
#        ${pkgdir}/usr/share/java/servlet-api.jar
}

package_java-jsp2.1-tomcat() {
  pkgdesc="JSP 2.1 java library implementation by Apache Tomcat"
  depends=('java-environment>=5')

  cd "${srcdir}/apache-tomcat-${pkgver}-src/output/build/lib"

  install -dm755 ${pkgdir}/usr/share/java/jsp${_jspver}-tomcat
  for j in el-api jsp-api; do
    install -m644 ${j}.jar \
                  ${pkgdir}/usr/share/java/jsp${_jspver}-tomcat/${j}-${_jspver}.jar
#    ln -s jsp${_jspver}-tomcat/${j}-${_jspver}.jar ${pkgdir}/usr/share/java/${j}.jar
  done
}

package_tomcat6() {
  pkgdesc="Servlet-2.5/JSP-2.1 Container"
  depends=('java-runtime>=5' 'java-jsvc' 'eclipse-ecj'
           "java-servlet2.5-tomcat=${pkgver}" "java-jsp2.1-tomcat=${pkgver}")
  optdepends=('tomcat-native: to allow optimal performance in production environments')
  backup=(etc/tomcat6/catalina.policy
          etc/tomcat6/catalina.properties
          etc/tomcat6/context.xml
          etc/tomcat6/logging.properties
          etc/tomcat6/server.xml
          etc/tomcat6/tomcat-users.xml
          etc/tomcat6/web.xml
          etc/conf.d/tomcat6)
  install=tomcat6.install

  cd "${srcdir}/apache-tomcat-${pkgver}-src/output/build"

  # Tomcat general files
  install -dm755 ${pkgdir}/usr/share/{,java/}${pkgname}
  # commons-daemon and tomcat-natives are packaged on their own
  rm bin/{*.bat,commons-daemon*,tomcat-native.tar.gz}
  cp -r bin ${pkgdir}/usr/share/${pkgname}

  # eclipse-ecj is packaged on its own
  rm lib/eclipse-ecj.jar
  install -m644 lib/* ${pkgdir}/usr/share/java/${pkgname}
  ln -s /usr/share/java/eclipse-ecj.jar ${pkgdir}/usr/share/java/${pkgname}/eclipse-ecj.jar

  # Provided by previous packages
  rm ${pkgdir}/usr/share/java/${pkgname}/servlet-api.jar
  ln -s /usr/share/java/servlet${_servletver}-tomcat/servlet-api-${_servletver}.jar \
        ${pkgdir}/usr/share/java/${pkgname}/servlet-api.jar

  for j in el-api jsp-api; do
    rm ${pkgdir}/usr/share/java/${pkgname}/${j}.jar
    ln -s /usr/share/java/jsp${_jspver}-tomcat/${j}-${_jspver}.jar \
          ${pkgdir}/usr/share/java/${pkgname}/${j}.jar
  done

  install -m644 "${srcdir}/apache-tomcat-${pkgver}/lib/tomcat-dbcp.jar" \
                ${pkgdir}/usr/share/java/${pkgname}/tomcat-dbcp-${pkgver}.jar
  ln -s tomcat-dbcp-${pkgver}.jar \
        ${pkgdir}/usr/share/java/${pkgname}/tomcat-dbcp.jar
  ln -s /usr/share/java/${pkgname} ${pkgdir}/usr/share/${pkgname}/lib

  # 66=tomcat / 19=log
  install -dm775 -o 66 -g 19 ${pkgdir}/var/log/${pkgname}
  ln -s /var/log/${pkgname} ${pkgdir}/usr/share/${pkgname}/logs
  touch ${pkgdir}/var/log/${pkgname}/catalina.{out,err}
  chgrp 19 ${pkgdir}/var/log/${pkgname}/catalina.{out,err}

  install -dm775 ${pkgdir}/etc/${pkgname}
  install -g 66 -m640 conf/* ${pkgdir}/etc/${pkgname}
  install -d -g66 -m775 ${pkgdir}/etc/${pkgname}/Catalina
  ln -s /etc/${pkgname} ${pkgdir}/usr/share/${pkgname}/conf

  install -dm775 ${pkgdir}/var/lib/${pkgname}
  cp -r webapps ${pkgdir}/var/lib/${pkgname}
  chown -R 66:66 ${pkgdir}/var/lib/${pkgname}
  ln -s /var/lib/${pkgname}/webapps ${pkgdir}/usr/share/${pkgname}/webapps

  install -dm1777 ${pkgdir}/var/tmp
  install -dm755 -o 66 -g 66 ${pkgdir}/var/tmp/${pkgname}/{temp,work}
  ln -s /var/tmp/${pkgname}/temp ${pkgdir}/usr/share/${pkgname}/temp
  ln -s /var/tmp/${pkgname}/work ${pkgdir}/usr/share/${pkgname}/work

  # Arch scripts
  install -Dm644 ${srcdir}/${pkgname}.conf.d ${pkgdir}/etc/conf.d/${pkgname}
  install -Dm755 ${srcdir}/${pkgname} ${pkgdir}/etc/rc.d/${pkgname}
}
