# Copyright 1999-2003 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 # net-www/tomcat-domino-redirector-1.2.ebuild, SteveB (tp22a@softhome.net) # # Revisions: 12.05.2003: net-www/tomcat-domino-redirector-1.2.ebuild # - initial ebuild IUSE="doc" MY_PV="1.2.3" S=${WORKDIR}/jakarta-tomcat-connectors-jk-${MY_PV}-src DESCRIPTION="Tomcat connector for IBM/Lotus Domino R5/R6" HOMEPAGE="http://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk/release/v${MY_PV}/doc/jk/domhowto.html" SRC_URI="http://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk/release/v${MY_PV}/src/jakarta-tomcat-connectors-jk-${MY_PV}-src.tar.gz" KEYWORDS="-* x86" [[ -z "${CATALINA_HOME}" || "${CATALINA_HOME}" == "" ]] && CATALINA_HOME="/opt/tomcat" [[ -z "${JAVA_HOME}" || "${JAVA_HOME}" == "" ]] && JAVA_HOME="$(java-config --jdk-home)" [[ -z "${DOMINOROOT}" || "${DOMINOROOT}" == "" ]] && DOMINOROOT=$(find / -iname "adminp" -type f 2>/dev/null | tail -n 1 | sed 's:^\(.*\)/notes/[0-9]*/linux/adminp:\1:gI') [[ -z "${DOMINODATA}" || "${DOMINODATA}" == "" ]] && DOMINODATA=$(find / -iname "names.nsf" -type f -printf %h 2>/dev/null | tail -n 1) [[ -z "${DOMINOAPI}" || "${DOMINOAPI}" == "" ]] && DOMINOAPI=$(find / -iname "notesai0.o" 2>/dev/null | grep -i "linux" | tail -n 1 | sed 's:^\(.*\)/lib/linux/notesai0.o:\1:gI') DEPEND=">=net-www/tomcat-3.3 >=virtual/jdk-1.2" LICENSE="Apache-1.1" SLOT="0" src_compile() { local JAVAFIX local JAVAFIXROLLBACK local MAKERC if [[ "${DOMINODATA}" == "" || ! -d "${DOMINODATA}" ]] then einfo "IBM/Lotus Domino data directory not found!" einfo "Please specify it with the einvironment variable DOMINODATA" die "Domino data directory not found" fi if [[ "${DOMINOROOT}" == "" || ! -d "${DOMINOROOT}" ]] then einfo "IBM/Lotus Domino root directory not found!" einfo "Please specify it with the einvironment variable DOMINOROOT" die "Domino root directory not found" fi # fix java include stuff (we remove that after the compile) JAVAFIX="jni_md.h jawt_md.h" for i in ${JAVAFIX} do if [[ ! -f "${JAVA_HOME}/include/${i}" && -f "${JAVA_HOME}/include/linux/${i}" ]] then cd "${JAVA_HOME}/include" ln -sf linux/${i} 1>/dev/null 2>&1 JAVAFIXROLLBACK="${JAVAFIXROLLBACK} ${i}" fi done # modify the Makefile cd "${S}/jk/native/domino" mv -f ./Makefile ./Makefile.orginal 1>/dev/null 2>&1 sed "{\ s:^\(NOTESROOT=\).*:\1${DOMINOROOT}:gI;\ s:^\(NOTESHOME=\).*:\1${DOMINOROOT}/notes/latest/linux:gI;\ s:^\(NOTESDATA=\).*:\1${DOMINODATA}:gI;\ s:^\(NOTESAPI=\).*:\1${DOMINOAPI}:gI;s:^\(NOTESDATA=\).*:\1${DOMINODATA}:gI;\ s:^\(TOMCATHOME=\).*:\1${CATALINA_HOME}:gI;\ s:^\(CCFLAGS=\).*:\1-fPIC ${CFLAGS}:gI;\ }" ./Makefile.orginal >./Makefile # modify the mkini.sh cd "${S}/jk/native/domino" cp -f ./mkini.sh ./mkini.sh.orginal 1>/dev/null 2>&1 epatch ${FILESDIR}/mkini-gentoo.patch if [[ "${DOMINOAPI}" == "" || ! -d "${DOMINOAPI}" ]] then einfo "****************************************************************" einfo "IBM/Lotus Domino C API not found! Will compile" einfo "${PN} without C API. You can download the" einfo " Domino C API at the following URL:" einfo "http://www14.software.ibm.com/webapp/download/search.jsp?q=%22C+API%22&cat=&pf=&k=ALL&dt=&go=y&sb=r&rs=ESD-SUPPORT&S_TACT=&S_CMP=&s=&sr=1" einfo "****************************************************************" echo -ne "\n#define NO_CAPI\n" >>${S}/jk/native/domino/Makefile fi cd "${S}/jk/native/domino" emake MAKERC="$?" for i in ${JAVAFIXROLLBACK} do cd "${JAVA_HOME}/include" rm -f ${i} done if [ ${MAKERC} != "0" ] then die "make failed" fi } src_install() { cd "${S}/jk/native/domino" dodir ${DOMINOROOT}/notes/latest/linux insinto ${DOMINOROOT}/notes/latest/linux doins ./libtomcat.so dodir ${DOMINODATA} insinto ${DOMINODATA} doins ./libtomcat.ini [[ ! -d "${CATALINA_HOME}/conf" ]] && dodir ${CATALINA_HOME}/conf [[ ! -d "${CATALINA_HOME}/logs" ]] && dodir ${CATALINA_HOME}/logs [[ ! -d "${CATALINA_HOME}/temp" ]] && dodir ${CATALINA_HOME}/temp [[ ! -d "${CATALINA_HOME}/work" ]] && dodir ${CATALINA_HOME}/work dodir ${CATALINA_HOME}/conf insinto ${CATALINA_HOME}/conf doins ${FILESDIR}/workers.properties doins ${FILESDIR}/uriworkermap.properties dodir ${DOMINODATA}/domino/html dodir ${CATALINA_HOME}/webapps/examples dosym ${CATALINA_HOME}/webapps/examples ${DOMINODATA}/domino/html/examples if [ "`use doc`" ] ; then cd "${S}/jk/native" dohtml -r ${S}/jk/docs/* dodoc ${S}/jk/README.txt cd "${S}/jk/native/domino" fi } pkg_postinst() { einfo "****************************************************************" einfo " Please add libtomcat.so to the \"DSAPI filter file names\" to" einfo " your Server document in the Domino Directory (names.nsf)." einfo " Server Document -> Internet Protocols -> HTTP ->" einfo " section \"DSAPI\" -> field \"DSAPI filter file names\"" einfo einfo " Make sure the ${CATALINA_HOME}/conf/server.xml file in Tomcat" einfo " has a AJP listener on port 8009." einfo einfo " For more info about ${PN} visit the following URL:" einfo " ${HOMEPAGE}" if [ "`use doc`" ] ; then einfo einfo " Or read the local documentation at the following location:" einfo " /usr/share/doc/${PF}/html/jk/domhowto.html" fi einfo einfo " You may want to tweak the settings for this module in:" einfo " ${CATALINA_HOME}/conf/uriworkermap.properties" einfo " ${CATALINA_HOME}/conf/worker.properties" einfo " ${DOMINODATA}/libtomcat.ini" einfo einfo " Please ensure that Domino has proper access to:" einfo " ${DOMINOROOT}/notes/latest/linux/libtomcat.so" einfo " ${DOMINODATA}/libtomcat.ini" einfo " ${DOMINODATA}/domino/html/examples/" einfo " ${CATALINA_HOME}/conf/" einfo " ${CATALINA_HOME}/logs/" einfo " ${CATALINA_HOME}/work/" einfo " ${CATALINA_HOME}/temp/" einfo einfo " While starting the HTTP task check the console output for:" einfo " Attempting to start Tomcat: /opt/tomcat/bin/catalina.sh start" einfo " Apache Tomcat Interceptor (Jakarta/DSAPI/1.0.3) loaded" einfo " HTTP Server: DSAPI Apache Tomcat Interceptor (Jakarta/DSAPI/1.0.3) Loaded successfully" einfo einfo " To check if it works, visit the following URLs:" einfo " http:///examples/jsp/index.html" einfo " http:///examples/servlets/index.html" einfo einfo " Access the Tomcat default homepage:" einfo " http://:8080/index.jsp" einfo "****************************************************************" } pkg_postrm () { ewarn "****************************************************************" ewarn " To remove ${PN} completely from your" ewarn " Domino environment, you need to delete the libtomcat.so entry" ewarn " from your Domino server document in the Domino Directory" ewarn " (names.nsf) and restart the Domino server." ewarn " Server Document -> Internet Protocols -> HTTP ->" ewarn " section \"DSAPI\" -> field \"DSAPI filter file names\"" ewarn "****************************************************************" }