# Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ inherit eutils apache-module DESCRIPTION="Macromedia Coldfusion MX, version ${PV}" HOMEPAGE="http://www.macromedia.com/coldfusion" LICENSE="macromedia-eula-coldfusionmx" KEYWORDS="x86 ppc amd64" COLDFUSION="coldfusion-macr-linux.bin" #This package needs to be downloaded separately and put in /usr/portage/distfiles UPDATER="http://download.macromedia.com/pub/coldfusion/updates/cfmx_61update_linux.bin" VERITY_EUR="verity_linux_eur.tar" HOTFIXES="http://www.adobe.com/support/coldfusion/ts/documents/cfhotfixrequests/hf55681_611.zip http://www.adobe.com/support/coldfusion/ts/documents/1a9c83c/hf56580_611.zip http://www.adobe.com/support/coldfusion/ts/documents/1ea55f4a/hf59763_611.zip http://www.adobe.com/support/coldfusion/ts/documents/b3c51ba1/hf45343_611.jar http://www.adobe.com/support/coldfusion/ts/documents/client_purge_updater/hf59993_611.zip http://www.adobe.com/support/coldfusion/ts/documents/b3c51ba1/hf45343_611.jar http://www.adobe.com/support/coldfusion/ts/documents/dcf966be/hf64586_611.zip http://www.adobe.com/support/coldfusion/ts/documents/kb400232/hf58766_611.zip http://www.adobe.com/support/coldfusion/ts/documents/navserver_blank_61u/navserver_611.zip" JCONNECTOR="http://mirror.services.wisc.edu/mysql/Downloads/Connector-J/mysql-connector-java-3.0.17-ga.tar.gz" SRC_URI="${COLDFUSION} ${UPDATER} ${HOTFIXES} ${JCONNECTOR}" DEPEND=">=virtual/jre-1.4.2 sys-apps/sed app-arch/unzip >=www-servers/apache-2.2.9-r1" RDEPEND="${DEPEND} x86? ( sys-libs/lib-compat )" SLOT="0" want_apache src_unpack() { if [ ! -r ${DISTDIR}/${COLDFUSION} ]; then die "Cannot read ${DISTDIR}/${COLDFUSION}. Please check the permissions and try again" fi if [ ! -r ${DISTDIR}/`basename ${UPDATER}` ]; then die "Cannot read ${DISTDIR}/$(basename $UPDATER). Please check the permissions and try again" fi einfo "Setting installation config in ${FILESDIR}/config/installation.properties" cp ${FILESDIR}/config/installation.properties ${WORKDIR} echo "JAVA_DOT_HOME=${JAVA_HOME}/jre" >> ${WORKDIR}/installation.properties echo "JAVA_EXECUTABLE=${JAVA_HOME}/jre/bin/java" >> ${WORKDIR}/installation.properties echo "JAVA_HOME=${JAVA_HOME}" >> ${WORKDIR}/installation.properties echo "SILENT_INSTALL_FOLDER=${WORKDIR}/coldfusionmx" >> ${WORKDIR}/installation.properties # for the updater echo "INSTALLER_UI=silent" >> ${WORKDIR}/updater.properties echo "USER_INSTALL_DIR=${WORKDIR}/coldfusionmx" >> ${WORKDIR}/updater.properties if [ "${COLDFUSION_SERIAL_NUMBER}" != "" ]; then einfo "Setting serial number to: ${COLDFUSION_SERIAL_NUMBER}" sed -i "s:SILENT_SERIAL_NUMBER=developer:SILENT_SERIAL_NUMBER=${COLDFUSION_SERIAL_NUMBER}:" ${WORKDIR}/installation.properties else ewarn "" ewarn "You have not set the coldfusion serial number. The installer will assume the serial number is developer by default." ewarn "" ewarn "If you wish to specify a serial number, then press Ctrl+c now and specify it like this:" ewarn "" ewarn "COLDFUSION_SERIAL_NUMBER=\"Your Serial Number\" emerge macromedia-coldfusion" ewarn "" epause 10 fi einfo "This could take a while" addwrite /var/.com.zerog.registry.xml addwrite /var/.com.zerog.registry.lock sh ${DISTDIR}/${COLDFUSION} -f ${WORKDIR}/installation.properties addpredict /root #Unzip original apache connector before the updater patches it. Only the original connector works. cd ${WORKDIR} unzip coldfusionmx/runtime/lib/wsconfig.jar connectors/src/ApacheModule.zip unzip connectors/src/ApacheModule.zip -d connectors/src einfo "Applying update" ewarn "Please do not provide any keyboard input, the updater cannot be run silently" # updater fails sometimes with no apparant reason when run in unattended mode epause 3 cd ${WORKDIR}/coldfusionmx sh ${DISTDIR}/`basename ${UPDATER}` -f ${WORKDIR}/updater.properties < ${FILESDIR}/config/input-updater # silent install does not seem to function if [ ! -r ${DISTDIR}/${VERITY_EUR} ]; then einfo "${DISTDIR}/${VERITY_EUR} unavailable: Not installing verity eur language pack." einfo "If you are a using a registered version you can download the pack" einfo "at http://www.macromedia.com/support/coldfusion/verity_reg/register/index.cgi?lang=English" einfo "then place it in ${DISTDIR} and re-emerge this package" else einfo "Installing verity eur language pack" cd ${WORKDIR}/coldfusionmx tar xvf ${DISTDIR}/${VERITY_EUR} fi cd ${WORKDIR} #Unzip hotfixes for file in `ls ${DISTDIR}/*.zip` do unzip "${file}" done #Untar mysql jconnector tar zxvf ${DISTDIR}/mysql-connector-java-3.0.17-ga.tar.gz #Unzip sun util unzip coldfusionmx/runtime/jre/lib/rt.jar sun/security/util/* } src_compile() { cd ${WORKDIR} # create sun-util-sec.jar see http://www.macromedia.com/support/flex/ts/documents/ibm_jdk.htm einfo "Creating sun-sec-util.jar" jar -cf sun-sec-util.jar sun || die "jar failed. Ensure that you have a jdk selected as the system-vm: eselect java-vm list" rm -rf sun cp sun-sec-util.jar coldfusionmx/runtime/lib # create the apache connector einfo "Creating apache connector" cd connectors/src epatch ${FILESDIR}/mod_jrun20.h.patch chmod 777 * /usr/sbin/apxs2 -c -Wc,-w -n jrun20 mod_jrun20.c jrun_maptable_impl.c jrun_property.c \ jrun_session.c platform.c \ jrun_mutex.c jrun_proxy.c jrun_ssl.c strip .libs/mod_jrun20.so } src_install() { cd ${WORKDIR}/coldfusionmx dodir /opt/coldfusionmx into /opt/coldfusionmx # Change workdir to system dir einfo "Patching cfinfo" sed -i "s:${WORKDIR}:/opt:" bin/cfinfo einfo "Patching cfcompile.sh" sed -i "s:${WORKDIR}:/opt:" bin/cfcompile.sh # patch jvm.config to use the system vm einfo "Patching jvm.config" sed -i "s:^java.home=${WORKDIR}/coldfusionmx/runtime/jre:java.home=${JAVA_HOME}:" runtime/bin/jvm.config sed -i "s:lib$:lib,{application.home}/runtime/lib/sun-sec-util.jar:" runtime/bin/jvm.config sed -i "s:/servers/:/runtime/servers/:" runtime/bin/jvm.config # see http://jakarta.apache.org/tomcat/tomcat-5.0-doc/class-loader-howto.html # see http://www.macromedia.com/cfusion/webforums/forum/messageview.cfm?catid=274&threadid=819702 sed -i "s:args=-server:args=-server -Djava.endorsed.dirs={application.home}/endorsed -Djmx.invoke.getters=true:" runtime/bin/jvm.config insinto /opt/coldfusionmx/endorsed doins lib/crimson.jar # patch web.xml einfo "Patching jrun-web.xml" sed -i "s:${WORKDIR}:/opt:" wwwroot/WEB-INF/jrun-web.xml einfo "Activating proxy in jrun-web.xml" epatch ${FILESDIR}/jrun-xml.patch insinto /opt/coldfusionmx/runtime/lib/wsconfig doins ${FILESDIR}/config/wsconfig.properties insinto /opt/coldfusionmx/runtime/lib/wsconfig/1 doins ${FILESDIR}/config/jrunserver.store # install apache connector exeinto /usr/lib/apache2/modules doexe ${WORKDIR}/connectors/src/.libs/mod_jrun20.so insinto /etc/apache2/modules.d doins ${FILESDIR}/config/80_coldfusion_mx.conf # install files insinto /opt/coldfusionmx/bin dobin bin/cfinfo # needs patching dobin bin/cfcompile.sh dobin bin/cfencode.linux dobin bin/cfusion insinto /opt/coldfusionmx/lib doins -r lib/* # install administrator files - must configure a virtualhost to access them dodir /opt/coldfusionmx/admin insinto /opt/coldfusionmx/admin doins -r wwwroot/cfide dosym /opt/coldfusionmx/admin/cfide /opt/coldfusionmx/admin/CFIDE #Add redirect to cfide index insinto /opt/coldfusionmx/admin doins ${FILESDIR}/config/index.cfm #Patch bad datasources files in administrator insinto /opt/coldfusionmx/admin/cfide/administrator/datasources doins ${FILESDIR}/datasources/*.cfm # install navserver hotfix insinto /opt/coldfusionmx/admin/cfide/administrator doins ${WORKDIR}/navserver.cfm insinto /opt/coldfusionmx/runtime doins -r runtime/bin doins -r runtime/lib doins -r runtime/logs doins -r runtime/servers exeinto /opt/coldfusionmx/runtime/bin doexe runtime/bin/java2wsdl doexe runtime/bin/jikesw doexe runtime/bin/jrun doexe runtime/bin/jspc doexe runtime/bin/migrate doexe runtime/bin/sniffer doexe runtime/bin/wsconfig doexe runtime/bin/wsdl2java doexe runtime/bin/xmlscript insinto /opt/coldfusionmx/charting doins -r charting/* insinto /opt/coldfusionmx/wwwroot doins -r wwwroot/WEB-INF insinto /opt/coldfusionmx/META-INF doins -r META-INF/* insinto /opt/coldfusionmx/charting doins -r charting/* insinto /opt/coldfusionmx/registry doins -r registry/* dodir /opt/coldfusionmx/cache dosym /var/log/coldfusionmx /opt/coldfusionmx/logs dosym /var/cache/coldfusionmx/verity /opt/coldfusionmx/verity/collections dosym /var/cache/coldfusionmx/charting /opt/coldfusionmx/charting dosym /var/spool/coldfusionmx/mail /opt/coldfusionmx/Mail dosym /var/log/coldfusionmx /opt/coldfusionmx/runtime/logs dosym /opt/coldfusionmx/runtime/bin/jvm.config /opt/coldfusionmx/bin/jvm.config exeinto /etc/init.d doexe ${FILESDIR}/config/coldfusion # log dirs and verity collections dodir /var/log/coldfusion dodir /var/log/jrun dodir /var/cache/coldfusionmx/verity dodir /var/cache/coldfusionmx/charting/cache dodir /var/spool/coldfusionmx/mail dodir /var/log/coldfusionmx # install hotfixes insinto /opt/coldfusionmx/runtime/servers/lib doins ${WORKDIR}/*.jar # install mysql database jdbc connector doins ${WORKDIR}/mysql-connector-java-3.0.17-ga/mysql-connector-java-3.0.17-ga-bin.jar } pkg_preinst() { einfo "Creating user/group for coldfusion: cfusion" enewgroup cfusion enewuser cfusion -1 /bin/sh /opt/coldfusionmx cfusion } pkg_postinst() { APACHE2_MOD_DEFINE="COLDFUSION" APACHE2_MOD_CONF="80_coldfusion_mx" chown -R cfusion:cfusion /opt/coldfusionmx chown -R cfusion:cfusion /var/log/coldfusionmx chown -R cfusion:cfusion /var/cache/coldfusionmx chown -R cfusion:cfusion /var/spool/coldfusionmx rm -f /var/.com.zerog.registry.xml # do not keep zerog installer files around ebeep 2 einfo "A new user has been added to the system: cfusion" einfo "A new group has been added to the system: cfusion" apache-module_pkg_postinst einfo "To finish the installation:" einfo " /etc/init.d/coldfusion start" einfo " Set up a virtualhost in apache for the coldfusion administrator" einfo " with a DocumentRoot that points to /opt/coldfusionmx/admin" einfo " /etc/init.d/apache2 restart" einfo "and go to http://[Your coldfusion administrator virtualhost ServerName]" einfo ewarn "Coldfusion is using the *CURRENT* SYSTEM VM" ewarn "If you want to change this after the installation check /opt/coldfusionmx/runtime/bin/jvm.config" ewarn "Some standard settings are not compatible with non-SUN vm's, please check the settings first" ewarn ewarn "Please note that coldfusion opens ports and these might be potentially vulnerable to abuse" ewarn "You should change the admin password which is currently: 'admin'" }