New port: mail/openemm2013
OpenEMM is a feature-rich web-based enterprise application for email marketing, newsletters and service mails (transaction mails and event or time triggered mails). OpenEMM offers a great user interface, sophisticated bounce management, link tracking, lots of graphical realtime statistics, a CMS module and a scripting feature to implement individual tasks. OpenEMM is the first open source application for e-mail marketing. Its code base has been developed since 1999 and is used - as part of the commercial software product E-Marketing Manager (EMM) - by companies like IBM, Daimler, Siemens and Deutsche Telekom. OpenEMM offers already more than 95% of the functionality of most commercial products and some features most commercial products do not offer right now (for example MySQL support and CMS functionality). WWW: http://www.openemm.org PR: 196516 Submitted by: Horst Leitenmueller <horst.leitenmueller@liwest.at>
This commit is contained in:
parent
7b6234a8c3
commit
bc3fc9f856
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=399542
28 changed files with 6678 additions and 0 deletions
|
@ -285,6 +285,7 @@
|
|||
SUBDIR += offlineimap
|
||||
SUBDIR += opendkim
|
||||
SUBDIR += opendmarc
|
||||
SUBDIR += openemm2013
|
||||
SUBDIR += opensmtpd
|
||||
SUBDIR += opensmtpd-devel
|
||||
SUBDIR += openwebmail
|
||||
|
|
216
mail/openemm2013/Makefile
Normal file
216
mail/openemm2013/Makefile
Normal file
|
@ -0,0 +1,216 @@
|
|||
# Created by: Horst Leitenmueller <horst.leitenmueller@liwest.at>
|
||||
# $FreeBSD$
|
||||
|
||||
PORTNAME= openemm2013
|
||||
PORTVERSION= R2
|
||||
CATEGORIES= mail java www
|
||||
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:S/$/:DEFAULT/} \
|
||||
http://central.maven.org/maven2/%SUBDIR%/:MAVEN2
|
||||
MASTER_SITE_SUBDIR= openemm/OpenEMM%20software/OpenEMM%202013/:DEFAULT \
|
||||
com/lowagie/itext/2.1.7/:MAVEN2
|
||||
DISTNAME= OpenEMM-2013_${PORTVERSION}-src
|
||||
DISTFILES= OpenEMM-2013_${PORTVERSION}-src.tar.gz:DEFAULT OpenEMM-2013_${PORTVERSION}-JARs.tar.gz:DEFAULT \
|
||||
itext-2.1.7.jar:MAVEN2
|
||||
|
||||
MAINTAINER= horst.leitenmueller@liwest.at
|
||||
COMMENT= OpenEMM a email marketing enterprise app
|
||||
|
||||
LICENSE= CPAL-1.0
|
||||
LICENSE_FILE= ${WRKSRC}/other/LICENSE.txt
|
||||
|
||||
LIB_DEPENDS= libslang.so:${PORTSDIR}/devel/libslang2 \
|
||||
libsa.so:${PORTSDIR}/net/ossp-sa
|
||||
BUILD_DEPENDS= ${TOMCATHOME}/bin/bootstrap.jar:${PORTSDIR}/www/tomcat8 \
|
||||
${ANT_CMD}:${PORTSDIR}/devel/apache-ant
|
||||
RUN_DEPENDS= ${TOMCATHOME}/bin/bootstrap.jar:${PORTSDIR}/www/tomcat8 \
|
||||
py27-MySQLdb>=1.2.3:${PORTSDIR}/databases/py-MySQLdb
|
||||
|
||||
USE_RC_SUBR= openemm2013
|
||||
USE_JAVA= yes
|
||||
JAVA_VERSION= 1.7+
|
||||
|
||||
USES= dos2unix gmake python:2.7,run
|
||||
DOS2UNIX_GLOB= *.c *.cpp *.h *.java *.xml *.properties
|
||||
CC= clang
|
||||
CXX= clang++
|
||||
|
||||
TOMCATVER= apache-tomcat-8.0
|
||||
TOMCATDIR= ${PREFIX}/${TOMCATVER}
|
||||
TOMCATHOME= ${LOCALBASE}/${TOMCATVER}
|
||||
#WEBAPPDIR= ${TOMCATDIR}/webapps
|
||||
WEBAPP= openemm
|
||||
|
||||
USER= www
|
||||
GROUP= www
|
||||
VAR_DIR?= /var
|
||||
LOG_DIR?= ${VAR_DIR}/log/${PORTNAME}
|
||||
PID_FILE= ${VAR_DIR}/run/${PORTNAME}.pid
|
||||
|
||||
AGN_BACKEND_FILES= lib tools xmlback bav
|
||||
|
||||
SUB_LIST= APP_SHORTNAME=${PORTNAME} \
|
||||
LOG_DIR=${LOG_DIR} \
|
||||
USER=${USER} \
|
||||
GROUP=${GROUP} \
|
||||
PID_FILE=${PID_FILE} \
|
||||
APP_HOME=${PREFIX}/${PORTNAME}
|
||||
PLIST_SUB= APP_HOME=${PORTNAME}
|
||||
|
||||
TOMCAT_CONFIG_FILES= context.xml logging.properties server.xml
|
||||
|
||||
ANT_CMD?= ${LOCALBASE}/bin/ant
|
||||
ANT= ${SETENV} JAVA_HOME=${JAVA_HOME} ${ANT_CMD}
|
||||
ANT_TARGETS= build
|
||||
ANT_BUILD_PARAM= -Dbuild=${WRKSRC}/target -Doe.home=${WRKSRC}/target -Dcatalina.home=${TOMCATDIR} -Dsrc=${WRKSRC} -f openemm_build.xml
|
||||
JAVA_BUILD= yes
|
||||
|
||||
do-extract:
|
||||
@cd ${WRKDIR} && ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/${DISTNAME}.tar.gz ${EXTRACT_AFTER_ARGS}
|
||||
|
||||
# we extract the add-on libs to the ${WRKSRC}/lib directory
|
||||
${MKDIR} ${WRKSRC}/lib
|
||||
@cd ${WRKSRC}/lib && ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/OpenEMM-2013_${PORTVERSION}-JARs.tar.gz ${EXTRACT_AFTER_ARGS}
|
||||
@cd ${WRKSRC}/lib && ${CP} ${_DISTDIR}/itext-2.1.7.jar .
|
||||
|
||||
post-extract:
|
||||
# remove not needed java libs which are installed as separate port
|
||||
${RM} ${WRKSRC}/lib/mysql*.jar
|
||||
|
||||
# remove the c libs which are also installed as dependencies ports
|
||||
# ${WRKSRC}/contrib/sa-1.2.6.tar.gz -> net/ossp-sa and ${WRKSRC}/contrib/slang-1.4.9.tar.gz -> devel/libslang2
|
||||
${RM} -rf ${WRKSRC}/contrib
|
||||
|
||||
# remove not needed c buildscripts
|
||||
${RM} -rf ${WRKSRC}/other/make_backend.sh
|
||||
|
||||
pre-patch:
|
||||
@${ECHO_MSG} "Installation settings:"
|
||||
@${ECHO_MSG} " Location of TomcatHome: ${TOMCAT_HOME}"
|
||||
@${ECHO_MSG} " Location of JDK: ${JAVA_HOME}"
|
||||
@${ECHO_MSG} " Location of Java port: ${JAVA_PORT}"
|
||||
|
||||
post-patch:
|
||||
${REINPLACE_CMD} -e 's|\/home\/openemm|${PREFIX}\/${PORTNAME}|g' -e 's|\/usr\/share\/doc\/OpenEMM-2013|${DOCSDIR}|g' ${WRKSRC}/other/README.txt
|
||||
${REINPLACE_CMD} -e 's|\/home\/openemm|${PREFIX}\/${PORTNAME}|g' ${WRKSRC}/src/script/data/bav.rc
|
||||
${REINPLACE_CMD} -e 's|\/home\/openemm|${PREFIX}\/${PORTNAME}|g' ${WRKSRC}/tomcat/conf/server.xml
|
||||
|
||||
${REINPLACE_CMD} -e "s|base = os.environ\['HOME'\]| base = '${PREFIX}\/${PORTNAME}'|g" -e "s|lockpath = os.environ\['LOCK_HOME'\]|lockpath = '/var/run/openemm'|g" ${WRKSRC}/src/script/lib/agn.py
|
||||
|
||||
${REINPLACE_CMD} -e 's|$$HOME|\${PREFIX}\/\${PORTNAME}|g' ${WRKSRC}/src/script/lib/config.sh
|
||||
|
||||
${REINPLACE_CMD} -e 's|$$HOME|\${PREFIX}\/\${PORTNAME}|g' -e 's|-L INFO|-L INFO -s /var/run/openemm/bav.sock|' ${WRKSRC}/src/script/control/bounce.sh
|
||||
${REINPLACE_CMD} -e 's|$$HOME|\${PREFIX}\/\${PORTNAME}|g' ${WRKSRC}/src/script/control/bav-update.sh
|
||||
${REINPLACE_CMD} -e 's|$$HOME|\${PREFIX}\/\${PORTNAME}|g' ${WRKSRC}/src/script/control/bav-trigger.sh
|
||||
${REINPLACE_CMD} -e 's|$$HOME|\${PREFIX}\/\${PORTNAME}|g' ${WRKSRC}/src/script/control/bavd.sh
|
||||
|
||||
${REINPLACE_CMD} -e 's|$$HOME|\${PREFIX}\/\${PORTNAME}|g' ${WRKSRC}/src/script/control/merger.sh
|
||||
${REINPLACE_CMD} -e 's|$$HOME|\${PREFIX}\/\${PORTNAME}|g' ${WRKSRC}/src/script/control/recovery.sh
|
||||
${REINPLACE_CMD} -e 's|$$HOME|\${PREFIX}\/\${PORTNAME}|g' ${WRKSRC}/src/script/control/update.sh
|
||||
${REINPLACE_CMD} -e 's|$$HOME|\${PREFIX}\/\${PORTNAME}|g' ${WRKSRC}/src/script/control/pickdist.sh
|
||||
|
||||
${REINPLACE_CMD} -e 's|$$HOME|\${PREFIX}\/\${PORTNAME}|g' ${WRKSRC}/src/script/control/mailer.sh
|
||||
${REINPLACE_CMD} -e 's|$$HOME|\${PREFIX}\/\${PORTNAME}|g' ${WRKSRC}/src/script/control/sendmail-enable.sh
|
||||
|
||||
${REINPLACE_CMD} -e 's|$$HOME|\${PREFIX}\/\${PORTNAME}|g' ${WRKSRC}/src/script/control/slrtscn.sh
|
||||
|
||||
${REINPLACE_CMD} -e 's|=logs\/openemm\/|=\/var\/log\/\${PORTNAME}\/|g' ${WRKSRC}/src/conf/log4j.properties
|
||||
${REINPLACE_CMD} -e 's|=logs\/openemm-ws\/|=\/var\/log\/\${PORTNAME}\/|g' ${WRKSRC}/src/conf-ws/log4j.properties
|
||||
|
||||
${REINPLACE_CMD} -e 's|system.logdir=.*|system.logdir=\/var\/log\/\${PORTNAME}\/|g' \
|
||||
-e 's|plugins.home=.*|plugins.home=\${PREFIX}\/\${PORTNAME}\/plugins|g' \
|
||||
-e 's|\/home\/openemm|${PREFIX}\/${PORTNAME}|g' ${WRKSRC}/src/conf/emm.properties
|
||||
|
||||
do-build:
|
||||
|
||||
# build the c backend parts of AGN
|
||||
@${ECHO} "Building C Backend"
|
||||
.for file in ${AGN_BACKEND_FILES}
|
||||
${ECHO} "Building ${WRKSRC}/src/c/${file}"
|
||||
|
||||
cd ${WRKSRC}/src/c/${file} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD}
|
||||
.endfor
|
||||
|
||||
${MKDIR} ${WRKSRC}/target
|
||||
|
||||
# copy some of the compiled c files to the bin
|
||||
${MKDIR} ${WRKSRC}/target/bin
|
||||
|
||||
${MV} ${WRKSRC}/src/c/bav/bav ${WRKSRC}/target/bin/
|
||||
${MV} ${WRKSRC}/src/c/tools/qctrl ${WRKSRC}/target/bin/
|
||||
${MV} ${WRKSRC}/src/c/tools/smctrl ${WRKSRC}/target/bin/
|
||||
${MV} ${WRKSRC}/src/c/tools/updater ${WRKSRC}/target/bin/
|
||||
${MV} ${WRKSRC}/src/c/xmlback/xmlback ${WRKSRC}/target/bin/
|
||||
|
||||
# copy the script parts
|
||||
${MKDIR} ${WRKSRC}/target/bin/scripts
|
||||
|
||||
${MV} ${WRKSRC}/src/c/bav/bavwrap ${WRKSRC}/target/bin/scripts/
|
||||
|
||||
# create the other directory parts
|
||||
${MKDIR} ${WRKSRC}/target/logs
|
||||
${MKDIR} ${WRKSRC}/target/logs/openemm
|
||||
${MKDIR} ${WRKSRC}/target/logs/openemm-ws
|
||||
${MKDIR} ${WRKSRC}/target/plugins
|
||||
${MKDIR} ${WRKSRC}/target/temp
|
||||
${MKDIR} ${WRKSRC}/target/webservices
|
||||
|
||||
# build the java part, frontent/parts of backend for this port
|
||||
cd ${WRKSRC} && ${ANT} ${ANT_BUILD_PARAM} ${ANT_TARGETS}
|
||||
|
||||
# cp the conf files
|
||||
${MKDIR} ${WRKSRC}/target/conf
|
||||
.for config_file in ${TOMCAT_CONFIG_FILES}
|
||||
# rename the default template config files
|
||||
${MV} ${WRKSRC}/tomcat/conf/${config_file} ${WRKSRC}/target/conf/${config_file}.sample
|
||||
.endfor
|
||||
# move the startup scripts
|
||||
${MV} ${WRKSRC}/src/script/control/* ${WRKSRC}/target/bin/
|
||||
|
||||
# clean bin directory
|
||||
${RM} ${WRKSRC}/target/bin/*.bat
|
||||
${RM} ${WRKSRC}/target/bin/openemm.py
|
||||
|
||||
${MV} ${WRKSRC}/target/USR_SHARE ${WRKSRC}/USR_SHARE
|
||||
${RM} -rf ${WRKSRC}/target/src
|
||||
|
||||
# remove problem tld with missing classes
|
||||
${RM} ${WRKSRC}/target/webapps/openemm/WEB-INF/struts-tiles.tld
|
||||
|
||||
do-install:
|
||||
${MKDIR} ${STAGEDIR}${PREFIX}/${PORTNAME}
|
||||
(cd ${WRKSRC}/target/ && ${COPYTREE_SHARE} \* ${STAGEDIR}${PREFIX}/${PORTNAME} "! -name USR_SHARE*")
|
||||
|
||||
(cd ${STAGEDIR}${PREFIX}/${PORTNAME}/bin/scripts/ && \
|
||||
${LN} -sf bavwrap filter_or_forward && \
|
||||
${LN} -sf bavwrap is_no_systemmail && \
|
||||
${LN} -sf bavwrap scan_and_unsubscribe)
|
||||
|
||||
(cd ${STAGEDIR}${PREFIX}/${PORTNAME}/webapps/ && \
|
||||
${LN} -sf openemm/assets openemmassets)
|
||||
|
||||
post-install:
|
||||
# as needed from Running Q/A tests (stage-qa)
|
||||
${STRIP_CMD} ${STAGEDIR}${PREFIX}/${PORTNAME}/bin/bav
|
||||
${STRIP_CMD} ${STAGEDIR}${PREFIX}/${PORTNAME}/bin/smctrl
|
||||
${STRIP_CMD} ${STAGEDIR}${PREFIX}/${PORTNAME}/bin/qctrl
|
||||
${STRIP_CMD} ${STAGEDIR}${PREFIX}/${PORTNAME}/bin/xmlback
|
||||
${STRIP_CMD} ${STAGEDIR}${PREFIX}/${PORTNAME}/bin/updater
|
||||
${STRIP_CMD} ${STAGEDIR}${PREFIX}/${PORTNAME}/bin/scripts/bavwrap
|
||||
|
||||
# update some rights which must be assigned to root
|
||||
# we need the rigt to read the maillog file /etc/newsyslog.conf
|
||||
# /var/log/maillog 640 7 * @T00 JC
|
||||
# and the actual file chmod 644 /var/log/maillog
|
||||
# if not change tracking of these mail sending / bounces is
|
||||
# not working correct
|
||||
|
||||
# TODO LEI
|
||||
# move the licenses to the correct place
|
||||
# /usr/local/share/doc/openemm2013/LICENSE.txt
|
||||
# /usr/local/share/doc/openemm2013/ThirdPartyLicences/*
|
||||
|
||||
# update also /usr/local/share with the docs
|
||||
${MKDIR} ${STAGEDIR}${DOCSDIR}
|
||||
(cd ${WRKSRC}/USR_SHARE/ && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR})
|
||||
|
||||
.include <bsd.port.mk>
|
6
mail/openemm2013/distinfo
Normal file
6
mail/openemm2013/distinfo
Normal file
|
@ -0,0 +1,6 @@
|
|||
SHA256 (OpenEMM-2013_R2-src.tar.gz) = 86e954c7302a3837bff1aa1d185416e3e33f100fef730d412cc77722a2e19b65
|
||||
SIZE (OpenEMM-2013_R2-src.tar.gz) = 33276182
|
||||
SHA256 (OpenEMM-2013_R2-JARs.tar.gz) = 788108c4d00b963a6ca83cfea209c58e618e45906fb731ae41ac0d097e61b8d4
|
||||
SIZE (OpenEMM-2013_R2-JARs.tar.gz) = 26873436
|
||||
SHA256 (itext-2.1.7.jar) = 7d82c6b097a31cdf5a6d49a327bf582fdec7304da69308f9f6abf54aa9fd9055
|
||||
SIZE (itext-2.1.7.jar) = 1130070
|
176
mail/openemm2013/files/openemm2013.in
Normal file
176
mail/openemm2013/files/openemm2013.in
Normal file
|
@ -0,0 +1,176 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# %%APP_SHORTNAME%% startup script.
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
# PROVIDE: %%APP_SHORTNAME%%
|
||||
# REQUIRE: NETWORKING SERVERS
|
||||
# KEYWORD: shutdown
|
||||
|
||||
# Add the following lines to /etc/rc.conf to enable %%APP_SHORTNAME%%:
|
||||
# %%APP_SHORTNAME%%_enable (bool): Set to "YES" to enable %%APP_SHORTNAME%%
|
||||
# %%APP_SHORTNAME%%_args (str): Optional arguments to OAJBoss
|
||||
# %%APP_SHORTNAME%%_log_stdout (str) OpenEMM log output stdout, filename.
|
||||
# %%APP_SHORTNAME%%_log_stderr (str) OpenEMM log output stderr, filename.
|
||||
#
|
||||
|
||||
. /etc/rc.subr
|
||||
|
||||
name="%%APP_SHORTNAME%%"
|
||||
rcvar=%%APP_SHORTNAME%%_enable
|
||||
extra_commands="status"
|
||||
|
||||
load_rc_config $name
|
||||
|
||||
%%APP_SHORTNAME%%_logdir="%%LOG_DIR%%"
|
||||
%%APP_SHORTNAME%%_enable="${%%APP_SHORTNAME%%_enable:-"NO"}"
|
||||
%%APP_SHORTNAME%%_log_stdout="${%%APP_SHORTNAME%%_log_stdout:-"${%%APP_SHORTNAME%%_logdir}/log"}"
|
||||
%%APP_SHORTNAME%%_log_stderr="${%%APP_SHORTNAME%%_log_stderr:-"${%%APP_SHORTNAME%%_logdir}/error"}"
|
||||
%%APP_SHORTNAME%%_args="${%%APP_SHORTNAME%%_args:-""}"
|
||||
%%APP_SHORTNAME%%_sleep="${%%APP_SHORTNAME%%_sleep:-"5"}"
|
||||
%%APP_SHORTNAME%%_kill9="${%%APP_SHORTNAME%%_kill9:-""}"
|
||||
%%APP_SHORTNAME%%_additional_killall="${%%APP_SHORTNAME%%_additional_killall:-""}"
|
||||
%%APP_SHORTNAME%%_user="%%USER%%"
|
||||
%%APP_SHORTNAME%%_group="%%GROUP%%"
|
||||
%%APP_SHORTNAME%%_lockdir="/var/run/openemm"
|
||||
|
||||
|
||||
start_cmd="%%APP_SHORTNAME%%_start"
|
||||
stop_cmd="%%APP_SHORTNAME%%_stop"
|
||||
pidfile="%%PID_FILE%%"
|
||||
tomcat_pidfile="tomcat8.pid" # todo replace dynamic with current version
|
||||
sendmail_pidfile="sendmail.pid"
|
||||
|
||||
OPENEMM_HOME="%%APP_HOME%%"
|
||||
#minimal requirements must be set for our javavmwrapper
|
||||
JAVA_VERSION="1.7+"
|
||||
export JAVA_VERSION
|
||||
|
||||
%%APP_SHORTNAME%%_start ()
|
||||
{
|
||||
if [ ! -d "${%%APP_SHORTNAME%%_logdir}" ]
|
||||
then
|
||||
install -d -o ${%%APP_SHORTNAME%%_user} ${%%APP_SHORTNAME%%_logdir}
|
||||
fi
|
||||
|
||||
if [ ! -d "${%%APP_SHORTNAME%%_lockdir}" ]
|
||||
then
|
||||
install -d -o ${%%APP_SHORTNAME%%_user} ${%%APP_SHORTNAME%%_lockdir}
|
||||
fi
|
||||
|
||||
echo "Preconditions for %%APP_SHORTNAME%%"
|
||||
echo " - check if sendmail processes are stopped, it will be started via this application"
|
||||
|
||||
if [ -f "/var/run/${sendmail_pidfile}"]
|
||||
then
|
||||
echo "TODO STOP all sendmail processes"
|
||||
service sendmail stop
|
||||
|
||||
# check for sendmail queues started via openemm
|
||||
if [ -f "${%%APP_SHORTNAME%%_lockdir}/mailer.pid" ]
|
||||
then
|
||||
echo "Stop Mailer Service...."
|
||||
pkill qctrl
|
||||
pkill sendmail
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Starting %%APP_SHORTNAME%%."
|
||||
|
||||
# check for the startup pyhton scripts
|
||||
|
||||
|
||||
# check if tomcat is running otherwise warning
|
||||
if [ ! -f "/var/run/${tomcat_pidfile}" ]
|
||||
then
|
||||
echo "Tomcat is not running please start tomcat first"
|
||||
else
|
||||
echo "Tomcat is running... starting app"
|
||||
fi
|
||||
|
||||
echo "Start BOUNCE Servcie...."
|
||||
daemon -u ${%%APP_SHORTNAME%%_user} ${OPENEMM_HOME}/bin/bounce.sh start >> ${%%APP_SHORTNAME%%_logdir}/bounce.log 2>> ${%%APP_SHORTNAME%%_logdir}/bounce_error.log
|
||||
echo "Start Merger Service...."
|
||||
daemon -u ${%%APP_SHORTNAME%%_user} ${OPENEMM_HOME}/bin/merger.sh start >> ${%%APP_SHORTNAME%%_logdir}/merger.log 2>> ${%%APP_SHORTNAME%%_logdir}/merger_error.log
|
||||
echo "Start Mailer Service...."
|
||||
daemon ${OPENEMM_HOME}/bin/mailer.sh start >> ${%%APP_SHORTNAME%%_logdir}/mailer.log 2>> ${%%APP_SHORTNAME%%_logdir}/mailer_error.log
|
||||
pgrep sendmail > ${openemm2013_lockdir}/mailer.pid
|
||||
|
||||
echo "Start SLRT scan Service...."
|
||||
daemon -u ${%%APP_SHORTNAME%%_user} ${OPENEMM_HOME}/bin/slrtscn.sh start >> ${%%APP_SHORTNAME%%_logdir}/slrtscn.log 2>> ${%%APP_SHORTNAME%%_logdir}/slrtscn_error.log
|
||||
|
||||
echo "START THE APP ITSELF..."
|
||||
#daemon -u ${%%APP_SHORTNAME%%_user} ${OPENEMM_HOME}/bin/standalone.sh ${%%APP_SHORTNAME%%_args} >> ${%%APP_SHORTNAME%%_log_stdout} 2>> ${%%APP_SHORTNAME%%_log_stderr}
|
||||
|
||||
#sleep ${%%APP_SHORTNAME%%_sleep} # let daemon(8) and sh(1) finish before executing pgrep(1)
|
||||
#pgrep -U ${%%APP_SHORTNAME%%_user} -f ${OPENEMM_HOME}/modules > ${pidfile}
|
||||
#chown ${%%APP_SHORTNAME%%_user} $pidfile
|
||||
}
|
||||
|
||||
%%APP_SHORTNAME%%_stop ()
|
||||
{
|
||||
|
||||
${OPENEMM_HOME}/bin/bounce.sh stop
|
||||
${OPENEMM_HOME}/bin/merger.sh stop
|
||||
|
||||
#${OPENEMM_HOME}/bin/mailer.sh stop
|
||||
service sendmail stop # pkill sendmail
|
||||
#sendmail stop
|
||||
pkill sendmail
|
||||
terminator bin/qctrl #pkill qctrl
|
||||
${OPENEMM_HOME}/bin/slrtscn.sh stop
|
||||
|
||||
# Subvert the check_pid_file procname check.
|
||||
# at the moment we dont't handle this here
|
||||
if [ -f ${pidfile} ]
|
||||
then
|
||||
kill `cat ${pidfile}`
|
||||
# Only if we aware that our setup can hangs, and only after trying simple kill, we can kill it hard way.
|
||||
if [ ! -z "${%%APP_SHORTNAME%%_kill9}" ]
|
||||
then
|
||||
sleep ${%%APP_SHORTNAME%%_sleep}
|
||||
#kill -9 `cat ${pidfile}`
|
||||
fi
|
||||
# In some setups, OpenEMM (Tomcat) can spawn some child processess, which could prevent it from stopping, and freeing net ports.
|
||||
# Let's blindly kill them all, since we are really know what we are doing.
|
||||
if [ ! -z "${%%APP_SHORTNAME%%_additional_killall}" ]
|
||||
then
|
||||
sleep ${%%APP_SHORTNAME%%_sleep}
|
||||
killall ${%%APP_SHORTNAME%%_additional_killall}
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
terminator() {
|
||||
while [ $# -gt 0 ] ; do
|
||||
__pat="$1"
|
||||
shift
|
||||
if [ "$__pat" ] ; then
|
||||
for sig in 15 9 ; do
|
||||
__run="`ps -aux | grep -- \"$__pat\" | grep -v grep | awk '{ print $2 }'`"
|
||||
if [ "$__run" ] ; then
|
||||
echo "Stop $__pat program with signal $sig .. "
|
||||
kill -$sig $__run >/dev/null 2>&1
|
||||
sleep 2
|
||||
echo "done."
|
||||
fi
|
||||
done
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
%%APP_SHORTNAME%%_status ()
|
||||
{
|
||||
# If running, show pid
|
||||
if [ -f ${pidfile} ]
|
||||
then
|
||||
echo "%%APP_SHORTNAME%% is running as pid" `cat ${pidfile}`
|
||||
else
|
||||
echo "%%APP_SHORTNAME%% is not running"
|
||||
fi
|
||||
}
|
||||
|
||||
run_rc_command "$1"
|
139
mail/openemm2013/files/patch-openemm_build.xml
Normal file
139
mail/openemm2013/files/patch-openemm_build.xml
Normal file
|
@ -0,0 +1,139 @@
|
|||
--- openemm_build.xml.orig 2015-10-11 16:41:55 UTC
|
||||
+++ openemm_build.xml
|
||||
@@ -36,28 +36,22 @@
|
||||
</target>
|
||||
|
||||
|
||||
+ <!-- clean -->
|
||||
+ <target name="clean" description="cleans the build target dir">
|
||||
+ <delete dir="${build}"/>
|
||||
+ </target>
|
||||
+
|
||||
<!-- BUILD -->
|
||||
<target name="build" description="Create OpenEMM Binary Tarball from Source Tarball">
|
||||
- <delete dir="${oe.home}/sa-1.2.6" />
|
||||
- <delete dir="${oe.home}/slang-1.4.9" />
|
||||
- <delete dir="${build}" />
|
||||
<mkdir dir="${build}" />
|
||||
- <delete dir="${src}" />
|
||||
<mkdir dir="${oe.home}/src" />
|
||||
<!-- untar SRC tarball -->
|
||||
- <exec executable="tar" dir="${oe.home}/src">
|
||||
- <arg line="-xvzf ${oe.home}/OpenEMM-${version}-src.tar.gz" />
|
||||
- </exec>
|
||||
<!-- untar JAR tarball -->
|
||||
- <mkdir dir="${src}/lib" />
|
||||
- <exec executable="tar" dir="${src}/lib">
|
||||
- <arg line="-xzvf ${oe.home}/OpenEMM-${version}-JARs.tar.gz" />
|
||||
- </exec>
|
||||
|
||||
<!-- Generate Frontend -->
|
||||
<!-- Generate OpenEMM -->
|
||||
<mkdir dir="${webroot}/WEB-INF/classes" />
|
||||
- <javac srcdir="${src}/src/java" destdir="${webroot}/WEB-INF/classes" fork="yes" executable="${jdk.compile}/bin/javac" debug="true" deprecation="true">
|
||||
+ <javac srcdir="${src}/src/java" destdir="${webroot}/WEB-INF/classes" fork="yes" debug="true" deprecation="true">
|
||||
<classpath>
|
||||
<fileset dir="${src}/lib" />
|
||||
<fileset dir="${catalina.home}/lib" includes="*.jar"/>
|
||||
@@ -78,7 +72,7 @@
|
||||
</copy>
|
||||
<!-- Generate OpenEMM WS 2.0 -->
|
||||
<mkdir dir="${webroot-ws}/WEB-INF/classes" />
|
||||
- <javac srcdir="${src}/src/java" destdir="${webroot-ws}/WEB-INF/classes" fork="yes" executable="${jdk.compile}/bin/javac" debug="true" deprecation="true">
|
||||
+ <javac srcdir="${src}/src/java" destdir="${webroot-ws}/WEB-INF/classes" fork="yes" debug="true" deprecation="true">
|
||||
<classpath>
|
||||
<fileset dir="${src}/lib" />
|
||||
<fileset dir="${catalina.home}/lib" includes="*.jar"/>
|
||||
@@ -136,55 +130,16 @@
|
||||
</copy>
|
||||
|
||||
<!-- Generate Backend -->
|
||||
- <copy todir="${oe.home}">
|
||||
- <fileset dir="${src}/contrib" />
|
||||
- <filelist dir="${src}/other" files="make_backend.sh" />
|
||||
- </copy>
|
||||
- <replace file="${oe.home}/make_backend.sh" token="$OE_HOME" value="${oe.home}" />
|
||||
- <replace file="${oe.home}/make_backend.sh" token="$SRC" value="${src}" />
|
||||
- <replace file="${src}/src/c/xmlback/GNUmakefile" token="$(HOME)" value="${oe.home}" />
|
||||
- <chmod file="${oe.home}/make_backend.sh" perm="a+x" verbose="true" />
|
||||
- <exec executable="./make_backend.sh" dir="${oe.home}" />
|
||||
- <copy todir="${build}/bin">
|
||||
- <fileset dir="${src}/src/script/control" />
|
||||
- <filelist dir="${src}/src/c/bav" files="bav"/>
|
||||
- <filelist dir="${src}/src/c/tools" files="qctrl,smctrl,updater"/>
|
||||
- <filelist dir="${src}/src/c/xmlback" files="xmlback"/>
|
||||
- <fileset dir="${src}/tomcat/bin" />
|
||||
- </copy>
|
||||
- <delete>
|
||||
- <filelist dir="${build}/bin" files="config.bat,openemm.py,setup.bat,start.bat,update.bat" />
|
||||
- </delete>
|
||||
<copy todir="${build}/bin/scripts">
|
||||
<fileset dir="${src}/src/script/process" />
|
||||
- <filelist dir="${src}/src/c/bav" files="bavwrap" />
|
||||
<filelist dir="${src}/src/script/lib" files="agn.py,aps.py,config.sh" />
|
||||
</copy>
|
||||
<move todir="${build}/conf/semu">
|
||||
<fileset dir="${build}/bin/scripts/semu" />
|
||||
</move>
|
||||
<move todir="${build}/USR_SHARE" file="${build}/bin/scripts/upgrade-postproc.sh" />
|
||||
- <exec executable="ln" dir="${build}/bin/scripts">
|
||||
- <arg line="-s bavwrap filter_or_forward" />
|
||||
- </exec>
|
||||
- <exec executable="ln" dir="${build}/bin/scripts">
|
||||
- <arg line="-s bavwrap is_no_systemmail" />
|
||||
- </exec>
|
||||
- <exec executable="ln" dir="${build}/bin/scripts">
|
||||
- <arg line="-s bavwrap scan_and_unsubscribe" />
|
||||
- </exec>
|
||||
<delete dir="${build}/bin/scripts/upgrade" />
|
||||
|
||||
- <copy todir="${build}/conf">
|
||||
- <fileset dir="${catalina.home}/conf" />
|
||||
- </copy>
|
||||
- <delete>
|
||||
- <filelist dir="${build}/conf" files="context.xml,logging.properties,server.xml" />
|
||||
- </delete>
|
||||
- <copy todir="${build}/conf">
|
||||
- <fileset dir="${src}/tomcat/conf"/>
|
||||
- </copy>
|
||||
- <delete dir="${build}/conf/Catalina" />
|
||||
<copy todir="${build}/conf/bav">
|
||||
<fileset dir="${src}/src/script/data" />
|
||||
</copy>
|
||||
@@ -206,10 +161,6 @@
|
||||
<mkdir dir="${build}/var/spool/RECOVER" />
|
||||
|
||||
<!-- Generate Other -->
|
||||
- <mkdir dir="${build}/logs/openemm" />
|
||||
- <mkdir dir="${build}/logs/openemm-ws" />
|
||||
- <mkdir dir="${build}/plugins" />
|
||||
- <mkdir dir="${build}/temp" />
|
||||
|
||||
<copy todir="${build}/USR_SHARE">
|
||||
<fileset dir="${src}/sql" />
|
||||
@@ -225,12 +176,7 @@
|
||||
<copy todir="${build}" file="${build}/USR_SHARE/UPDATE.txt" />
|
||||
|
||||
<!-- Assign Groups+Owners (first) and Permissions (second) -->
|
||||
- <chgrp group="openemm" type="both" verbose="true">
|
||||
- <fileset dir="${build}" />
|
||||
- </chgrp>
|
||||
- <chown owner="openemm" type="both" verbose="true">
|
||||
- <fileset dir="${build}" />
|
||||
- </chown>
|
||||
+ <!--
|
||||
<chgrp group="root" file="${build}/bin/qctrl" verbose="true" />
|
||||
<chgrp group="root" file="${build}/bin/smctrl" verbose="true" />
|
||||
<chgrp group="root" file="${build}/bin/updater" verbose="true" />
|
||||
@@ -246,10 +192,6 @@
|
||||
<exec executable="chmod" dir="${build}/bin">
|
||||
<arg line="6755 qctrl smctrl updater" />
|
||||
</exec>
|
||||
-
|
||||
- <!-- Build Binary Tarball -->
|
||||
- <exec executable="tar" dir="${build}">
|
||||
- <arg line="-czvf ${oe.home}/OpenEMM-${version}-bin.tar.gz ." />
|
||||
- </exec>
|
||||
+ -->
|
||||
</target>
|
||||
</project>
|
19
mail/openemm2013/files/patch-src__c__bav__GNUmakefile
Normal file
19
mail/openemm2013/files/patch-src__c__bav__GNUmakefile
Normal file
|
@ -0,0 +1,19 @@
|
|||
--- src/c/bav/GNUmakefile.orig 2013-09-11 08:30:37 UTC
|
||||
+++ src/c/bav/GNUmakefile
|
||||
@@ -20,13 +20,13 @@
|
||||
# Contributor(s): AGNITAS AG.
|
||||
##################################################################################
|
||||
|
||||
-CC = gcc
|
||||
-CFLAGS = -I../lib $(shell sa-config --cflags) -pthread
|
||||
+CC = clang
|
||||
+CFLAGS = -I../lib -I/usr/local/lib -I/usr/local/include $(shell sa-config --cflags) -pthread
|
||||
LDFLAGS = -L../lib $(shell sa-config --ldflags) -pthread
|
||||
# required for Ubuntu 9.10 by user request
|
||||
LDFLAGS := $(LDFLAGS) -L/usr/lib/libmilter
|
||||
#
|
||||
-LIBS = -lagn -lmilter $(shell sa-config --libs)
|
||||
+LIBS = -lagn -lmilter -lex $(shell sa-config --libs)
|
||||
SRCBAV = bav.c cfg.c
|
||||
SRCWRP = bavwrap.c store.c
|
||||
OBJBAV = $(SRCBAV:%.c=%.o)
|
25
mail/openemm2013/files/patch-src__c__bav__bav.c
Normal file
25
mail/openemm2013/files/patch-src__c__bav__bav.c
Normal file
|
@ -0,0 +1,25 @@
|
|||
--- src/c/bav/bav.c.orig 2015-10-11 16:41:54 UTC
|
||||
+++ src/c/bav/bav.c
|
||||
@@ -26,16 +26,18 @@
|
||||
# include <unistd.h>
|
||||
# include <string.h>
|
||||
# include <netinet/in.h>
|
||||
+# include "bav.h"
|
||||
# include "libmilter/mfapi.h"
|
||||
-# include "bav.h"
|
||||
|
||||
-# define SOCK_PATH "var/run/bav.sock"
|
||||
-# define LOCK_PATH "var/lock/bav.lock"
|
||||
-# define CFGFILE "var/spool/bav/bav.conf"
|
||||
+# define SOCK_PATH "/var/run/openemm/bav.sock"
|
||||
+# define LOCK_PATH "/var/run/openemm/bav.lock"
|
||||
+# define CFGFILE "/usr/local/openemm2013/var/spool/bav/bav.conf"
|
||||
# define X_AGN "X-AGNMailloop"
|
||||
# define X_LOOP "X-AGNLoop"
|
||||
# define LOOP_SET "set"
|
||||
|
||||
+# define bool int
|
||||
+
|
||||
static const char *program;
|
||||
static const char *loglevel;
|
||||
static char *cfgfile;
|
13
mail/openemm2013/files/patch-src__c__lib__GNUmakefile
Normal file
13
mail/openemm2013/files/patch-src__c__lib__GNUmakefile
Normal file
|
@ -0,0 +1,13 @@
|
|||
--- src/c/lib/GNUmakefile.orig 2013-09-11 08:30:37 UTC
|
||||
+++ src/c/lib/GNUmakefile
|
||||
@@ -20,8 +20,8 @@
|
||||
# Contributor(s): AGNITAS AG.
|
||||
##################################################################################
|
||||
|
||||
-CC = gcc
|
||||
-CFLAGS = -I.
|
||||
+CC ?= clang
|
||||
+CFLAGS += -I.
|
||||
SRCS = atob.c \
|
||||
buffer.c \
|
||||
cache.c \
|
15
mail/openemm2013/files/patch-src__c__lib__agn.h
Normal file
15
mail/openemm2013/files/patch-src__c__lib__agn.h
Normal file
|
@ -0,0 +1,15 @@
|
|||
--- src/c/lib/agn.h.orig 2015-10-11 16:41:54 UTC
|
||||
+++ src/c/lib/agn.h
|
||||
@@ -135,9 +135,9 @@ typedef unsigned long hash_t;
|
||||
/**
|
||||
* Symbolic names for boolean values
|
||||
*/
|
||||
-typedef enum { /*{{{*/
|
||||
- false,
|
||||
- true
|
||||
+typedef enum { /*{{{*/
|
||||
+ false = 0,
|
||||
+ true = 1
|
||||
/*}}}*/
|
||||
} bool_t;
|
||||
|
13
mail/openemm2013/files/patch-src__c__tools__GNUmakefile
Normal file
13
mail/openemm2013/files/patch-src__c__tools__GNUmakefile
Normal file
|
@ -0,0 +1,13 @@
|
|||
--- src/c/tools/GNUmakefile.orig 2013-09-11 08:30:37 UTC
|
||||
+++ src/c/tools/GNUmakefile
|
||||
@@ -20,8 +20,8 @@
|
||||
# Contributor(s): AGNITAS AG.
|
||||
##################################################################################
|
||||
|
||||
-CC = gcc
|
||||
-CFLAGS = -I../lib
|
||||
+CC ?= clang
|
||||
+CFLAGS += -I../lib
|
||||
LDFLAGS = -L../lib
|
||||
LIBS = -lagn
|
||||
SQCTRL = qctrl.c qlib.c qmove.c qstat.c
|
35
mail/openemm2013/files/patch-src__c__xmlback__GNUmakefile
Normal file
35
mail/openemm2013/files/patch-src__c__xmlback__GNUmakefile
Normal file
|
@ -0,0 +1,35 @@
|
|||
--- src/c/xmlback/GNUmakefile.orig 2013-09-11 08:30:37 UTC
|
||||
+++ src/c/xmlback/GNUmakefile
|
||||
@@ -20,10 +20,10 @@
|
||||
# Contributor(s): AGNITAS AG.
|
||||
##################################################################################
|
||||
|
||||
-CC = gcc
|
||||
-CFLAGS = -I. -I../lib -I$(HOME)/include $(shell xml2-config --cflags) -I/usr/include/slang
|
||||
-LDFLAGS = -L$(HOME)/lib
|
||||
-LIBS = grammar/libgrammar.a -lslang -L../lib -lagn $(shell xml2-config --libs) -ldl
|
||||
+CC ?= clang
|
||||
+CFLAGS += -I. -I../lib -I/usr/local/include $(shell xml2-config --cflags) -I/usr/local/lib/slang
|
||||
+#LDFLAGS = -L$(HOME)/lib
|
||||
+LIBS = grammar/libgrammar.a -lslang -L../lib -lagn $(shell xml2-config --libs) -lcurses
|
||||
SRCS = append.c \
|
||||
block.c \
|
||||
blockmail.c \
|
||||
@@ -63,7 +63,7 @@ all::
|
||||
@$(MAKE) -C ../lib $@
|
||||
|
||||
all clean::
|
||||
- make -C grammar $@
|
||||
+ @${MAKE} -C grammar $@
|
||||
|
||||
all:: xmlback
|
||||
|
||||
@@ -71,7 +71,7 @@ xmlback: $(OBJS) grammar/libgrammar.a
|
||||
$(CC) $(LDFLAGS) $(OBJS) -o $@ $(LIBS)
|
||||
|
||||
grammar/libgrammar.a:
|
||||
- make -C grammar
|
||||
+ @${MAKE} -C grammar
|
||||
|
||||
clean::
|
||||
rm -f xmlback *.o *~
|
145
mail/openemm2013/files/patch-src__c__xmlback__eval.c
Normal file
145
mail/openemm2013/files/patch-src__c__xmlback__eval.c
Normal file
|
@ -0,0 +1,145 @@
|
|||
--- src/c/xmlback/eval.c.orig 2015-10-11 16:41:54 UTC
|
||||
+++ src/c/xmlback/eval.c
|
||||
@@ -198,9 +198,10 @@ ctx_clr (void) /*{{{*/
|
||||
static inline void
|
||||
check_error (void) /*{{{*/
|
||||
{
|
||||
- if (SLang_Error) {
|
||||
+ if (SLang_get_error()) {
|
||||
SLang_restart (1);
|
||||
- SLang_Error = 0;
|
||||
+ /*SLang_Error = 0;*/
|
||||
+ SLang_set_error(0);
|
||||
}
|
||||
}/*}}}*/
|
||||
static void
|
||||
@@ -243,7 +244,8 @@ type_retreive (int argc) /*{{{*/
|
||||
int dummy;
|
||||
|
||||
if (! (argv = (type_t *) malloc (argc * sizeof (type_t)))) {
|
||||
- SLang_Error = SL_MALLOC_ERROR;
|
||||
+ /*SLang_Error = SL_MALLOC_ERROR;*/
|
||||
+ SLang_set_error(SL_MALLOC_ERROR);
|
||||
return NULL;
|
||||
}
|
||||
for (n = 0; n < argc; ++n)
|
||||
@@ -262,7 +264,7 @@ type_retreive (int argc) /*{{{*/
|
||||
argv[n].v.n = (double) dummy;
|
||||
break;
|
||||
case SLANG_DOUBLE_TYPE:
|
||||
- if (SLang_pop_double (& argv[n].v.n, & dummy, & dummy) == -1)
|
||||
+ if (SLang_pop_double (& argv[n].v.n) == -1)
|
||||
st = false;
|
||||
break;
|
||||
case SLANG_STRING_TYPE:
|
||||
@@ -901,7 +903,8 @@ SLin (void) /*{{{*/
|
||||
|
||||
argc = SLang_Num_Function_Args;
|
||||
if (argc < 2) {
|
||||
- SLang_Error = SL_SYNTAX_ERROR;
|
||||
+ /*SLang_Error = SL_SYNTAX_ERROR;*/
|
||||
+ SLang_set_error(SL_SYNTAX_ERROR);
|
||||
return -1;
|
||||
}
|
||||
rc = 0;
|
||||
@@ -928,7 +931,8 @@ SLin (void) /*{{{*/
|
||||
}
|
||||
free (i);
|
||||
} else {
|
||||
- SLang_Error = SL_MALLOC_ERROR;
|
||||
+ /*SLang_Error = SL_MALLOC_ERROR;*/
|
||||
+ SLang_set_error(SL_MALLOC_ERROR);
|
||||
rc = -1;
|
||||
}
|
||||
}
|
||||
@@ -940,7 +944,7 @@ SLin (void) /*{{{*/
|
||||
|
||||
if (d = (double *) malloc (argc * sizeof (double))) {
|
||||
for (n = 0; n < argc; ++n)
|
||||
- if (SLang_pop_double (& d[n], & dummy, & dummy) == -1) {
|
||||
+ if (SLang_pop_double (& d[n]) == -1) {
|
||||
rc = -1;
|
||||
break;
|
||||
}
|
||||
@@ -952,7 +956,8 @@ SLin (void) /*{{{*/
|
||||
}
|
||||
free (d);
|
||||
} else {
|
||||
- SLang_Error = SL_MALLOC_ERROR;
|
||||
+ /*SLang_Error = SL_MALLOC_ERROR;*/
|
||||
+ SLang_set_error(SL_MALLOC_ERROR);
|
||||
rc = -1;
|
||||
}
|
||||
}
|
||||
@@ -980,14 +985,16 @@ SLin (void) /*{{{*/
|
||||
}
|
||||
free (s);
|
||||
} else {
|
||||
- SLang_Error = SL_MALLOC_ERROR;
|
||||
+ /*SLang_Error = SL_MALLOC_ERROR;*/
|
||||
+ SLang_set_error(SL_MALLOC_ERROR);
|
||||
rc = -1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
- if ((rc == -1) && (! SLang_Error))
|
||||
- SLang_Error = SL_TYPE_MISMATCH;
|
||||
+ if ((rc == -1) && (! SLang_get_error()))
|
||||
+ /*SLang_Error = SL_TYPE_MISMATCH;*/
|
||||
+ SLang_set_error(SL_TYPE_MISMATCH);
|
||||
return rc;
|
||||
}/*}}}*/
|
||||
static int
|
||||
@@ -1000,7 +1007,8 @@ SLbetween (void) /*{{{*/
|
||||
|
||||
argc = SLang_Num_Function_Args;
|
||||
if (argc != 3) {
|
||||
- SLang_Error = SL_SYNTAX_ERROR;
|
||||
+ /*SLang_Error = SL_SYNTAX_ERROR;*/
|
||||
+ SLang_set_error(SL_SYNTAX_ERROR);
|
||||
return -1;
|
||||
}
|
||||
if (! (argv = type_retreive (argc)))
|
||||
@@ -1030,8 +1038,9 @@ SLbetween (void) /*{{{*/
|
||||
break;
|
||||
}
|
||||
type_release (argc, argv);
|
||||
- if ((rc == -1) && (! SLang_Error))
|
||||
- SLang_Error = SL_TYPE_MISMATCH;
|
||||
+ if ((rc == -1) && (! SLang_get_error()))
|
||||
+ /*SLang_Error = SL_TYPE_MISMATCH;*/
|
||||
+ SLang_set_error(SL_TYPE_MISMATCH);
|
||||
return rc;
|
||||
}/*}}}*/
|
||||
static void
|
||||
@@ -1044,7 +1053,8 @@ SLdecode (void) /*{{{*/
|
||||
|
||||
argc = SLang_Num_Function_Args;
|
||||
if ((argc < 4) || (argc % 2 != 0)) {
|
||||
- SLang_Error = SL_SYNTAX_ERROR;
|
||||
+ /*SLang_Error = SL_SYNTAX_ERROR;*/
|
||||
+ SLang_set_error(SL_SYNTAX_ERROR);
|
||||
return;
|
||||
}
|
||||
if (! (argv = type_retreive (argc)))
|
||||
@@ -1068,7 +1078,8 @@ SLdecode (void) /*{{{*/
|
||||
if (argv[argc - 1].type != argv[2].type)
|
||||
st = false;
|
||||
if (! st)
|
||||
- SLang_Error = SL_TYPE_MISMATCH;
|
||||
+ /*SLang_Error = SL_TYPE_MISMATCH;*/
|
||||
+ SLang_set_error(SL_TYPE_MISMATCH);
|
||||
else {
|
||||
int hit = -1;
|
||||
|
||||
@@ -1092,7 +1103,8 @@ SLdecode (void) /*{{{*/
|
||||
switch (argv[hit].type) {
|
||||
default:
|
||||
st = false;
|
||||
- SLang_Error = SL_TYPE_MISMATCH;
|
||||
+ /*SLang_Error = SL_TYPE_MISMATCH;*/
|
||||
+ SLang_set_error(SL_TYPE_MISMATCH);
|
||||
break;
|
||||
case SLANG_INT_TYPE:
|
||||
SLang_push_integer ((int) argv[hit].v.n);
|
|
@ -0,0 +1,13 @@
|
|||
--- src/c/xmlback/grammar/GNUmakefile.orig 2013-09-11 08:30:37 UTC
|
||||
+++ src/c/xmlback/grammar/GNUmakefile
|
||||
@@ -20,8 +20,8 @@
|
||||
# Contributor(s): AGNITAS AG.
|
||||
##################################################################################
|
||||
|
||||
-CC = gcc
|
||||
-CFLAGS = -I.. -I../../lib $(shell xml2-config --cflags)
|
||||
+CC ?= gcc
|
||||
+CFLAGS += -I.. -I../../lib $(shell xml2-config --cflags)
|
||||
LDFLAGS =
|
||||
SRCS = transform.c parse.c
|
||||
OBJS = $(SRCS:%.c=%.o)
|
|
@ -0,0 +1,21 @@
|
|||
--- src/java/org/agnitas/backend/StringOps.java.orig 2015-10-11 16:41:55 UTC
|
||||
+++ src/java/org/agnitas/backend/StringOps.java
|
||||
@@ -63,12 +63,12 @@ public class StringOps {
|
||||
transtab.put("apos", "'");
|
||||
transtab.put("nbsp", " ");
|
||||
/*
|
||||
- transtab.put("auml", "ä");
|
||||
- transtab.put("ouml", "ö");
|
||||
- transtab.put("uuml", "ü");
|
||||
- transtab.put("Auml", "Ä");
|
||||
- transtab.put("Ouml", "Ö");
|
||||
- transtab.put("Uuml", "Ü");
|
||||
+ transtab.put("auml", "");
|
||||
+ transtab.put("ouml", "");
|
||||
+ transtab.put("uuml", "");
|
||||
+ transtab.put("Auml", "");
|
||||
+ transtab.put("Ouml", "");
|
||||
+ transtab.put("Uuml", "");
|
||||
*/
|
||||
|
||||
rtranstab = new Hashtable<String, String>();
|
|
@ -0,0 +1,11 @@
|
|||
--- src/java/org/agnitas/beans/FailedLoginData.java.orig 2015-10-11 16:41:55 UTC
|
||||
+++ src/java/org/agnitas/beans/FailedLoginData.java
|
||||
@@ -31,7 +31,7 @@ package org.agnitas.beans;
|
||||
*
|
||||
* Successful logins during a lock period are not noted.
|
||||
*
|
||||
- * @author Markus Dörschmidt
|
||||
+ * @author Markus Duerschmidt
|
||||
*
|
||||
*/
|
||||
public interface FailedLoginData {
|
|
@ -0,0 +1,11 @@
|
|||
--- src/java/org/agnitas/beans/ImageButton.java.orig 2015-10-11 16:41:55 UTC
|
||||
+++ src/java/org/agnitas/beans/ImageButton.java
|
||||
@@ -37,7 +37,7 @@ import java.io.Serializable;
|
||||
* <li>If you do not instantiate the ImageButton in reset(), call clearButton() here to reset the button's state to "unclicked".</li>
|
||||
* </ol>
|
||||
*
|
||||
- * @author Markus Dörschmidt
|
||||
+ * @author Markus Duerschmidt
|
||||
*/
|
||||
public class ImageButton implements Serializable {
|
||||
/**
|
|
@ -0,0 +1,11 @@
|
|||
--- src/java/org/agnitas/dao/LoginTrackDao.java.orig 2015-10-11 16:41:55 UTC
|
||||
+++ src/java/org/agnitas/dao/LoginTrackDao.java
|
||||
@@ -28,7 +28,7 @@ import org.agnitas.beans.FailedLoginData
|
||||
* Interface for accessing login tracking information.
|
||||
* The records contains IP-address, used username, login status (success, failed, etc.) and a time stamp.
|
||||
*
|
||||
- * @author Markus Dörschmidt
|
||||
+ * @author Markus Duerschmidt
|
||||
*
|
||||
*/
|
||||
public interface LoginTrackDao {
|
|
@ -0,0 +1,11 @@
|
|||
--- src/java/org/agnitas/util/CharacterEncodingValidator.java.orig 2015-10-11 16:41:55 UTC
|
||||
+++ src/java/org/agnitas/util/CharacterEncodingValidator.java
|
||||
@@ -36,7 +36,7 @@ import org.agnitas.web.forms.MailingBase
|
||||
* defined in the mailing.
|
||||
*
|
||||
*
|
||||
- * @author Markus Dörschmidt
|
||||
+ * @author Markus Duerschmidt
|
||||
*
|
||||
*/
|
||||
public interface CharacterEncodingValidator {
|
|
@ -0,0 +1,11 @@
|
|||
--- src/java/org/agnitas/util/CharacterEncodingValidatorImpl.java.orig 2015-10-11 16:41:55 UTC
|
||||
+++ src/java/org/agnitas/util/CharacterEncodingValidatorImpl.java
|
||||
@@ -45,7 +45,7 @@ import java.util.Set;
|
||||
* defined in the mailing.
|
||||
*
|
||||
*
|
||||
- * @author Markus Dörschmidt
|
||||
+ * @author Markus Duerschmidt
|
||||
*
|
||||
*/
|
||||
public class CharacterEncodingValidatorImpl implements CharacterEncodingValidator {
|
|
@ -0,0 +1,29 @@
|
|||
--- src/java/org/agnitas/util/TextTable.java.orig 2015-10-11 16:41:55 UTC
|
||||
+++ src/java/org/agnitas/util/TextTable.java
|
||||
@@ -98,7 +98,7 @@ public class TextTable {
|
||||
|
||||
public void setAlignmentForColumn(int columnIndex, boolean alignRight) throws Exception {
|
||||
if (columnIndex < 0 || columnIndex >= columnNames.get(0).size())
|
||||
- throw new Exception("Ungültige Spalten-Indexangabe: " + columnIndex);
|
||||
+ throw new Exception("Ung\u00FCltige Spalten-Indexangabe: " + columnIndex);
|
||||
|
||||
columnRightAligned.set(columnIndex, alignRight);
|
||||
}
|
||||
@@ -482,7 +482,7 @@ public class TextTable {
|
||||
|
||||
public String getHeader(int headerLineIndex, int columnIndex) throws Exception {
|
||||
if (columnNames.size() <= headerLineIndex || columnNames.get(headerLineIndex).size() <= columnIndex)
|
||||
- throw new Exception("Ungültige Datenabfrage an Spaltenüberschriften Zeilenindex " + headerLineIndex + " Spaltenindex " + columnIndex);
|
||||
+ throw new Exception("Ung\u00FCltige Datenabfrage an Spalten\u00FCberschriften Zeilenindex " + headerLineIndex + " Spaltenindex " + columnIndex);
|
||||
return columnNames.get(headerLineIndex).get(columnIndex);
|
||||
}
|
||||
|
||||
@@ -496,7 +496,7 @@ public class TextTable {
|
||||
|
||||
public String getData(int lineIndex, int columnIndex) throws Exception {
|
||||
if (content.size() <= lineIndex || content.get(lineIndex).size() <= columnIndex)
|
||||
- throw new Exception("Ungültige Datenabfrage an Zeilenindex " + lineIndex + " Spaltenindex " + columnIndex);
|
||||
+ throw new Exception("Ung\u00FCltige Datenabfrage an Zeilenindex " + lineIndex + " Spaltenindex " + columnIndex);
|
||||
return content.get(lineIndex).get(columnIndex);
|
||||
}
|
||||
|
69
mail/openemm2013/files/patch-src__jsp__WEB-INF__web.xml
Normal file
69
mail/openemm2013/files/patch-src__jsp__WEB-INF__web.xml
Normal file
|
@ -0,0 +1,69 @@
|
|||
--- src/jsp/WEB-INF/web.xml.orig 2015-10-11 16:41:55 UTC
|
||||
+++ src/jsp/WEB-INF/web.xml
|
||||
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
-xsi:schemaLocation="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
|
||||
-version="2.5">
|
||||
+xsi:schemaLocation="http://java.sun.com/xml/ns/javaee/web-app_3_1.xsd"
|
||||
+version="3.1">
|
||||
|
||||
|
||||
<!-- Spring context -->
|
||||
@@ -333,33 +333,30 @@ version="2.5">
|
||||
<!-- TAG Library Descriptors -->
|
||||
|
||||
<!-- Struts TLDs -->
|
||||
- <taglib>
|
||||
- <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
|
||||
- <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
|
||||
- </taglib>
|
||||
- <taglib>
|
||||
- <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
|
||||
- <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
|
||||
- </taglib>
|
||||
- <taglib>
|
||||
- <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
|
||||
- <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
|
||||
- </taglib>
|
||||
+ <jsp-config>
|
||||
+ <taglib>
|
||||
+ <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
|
||||
+ <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
|
||||
+ </taglib>
|
||||
+ <taglib>
|
||||
+ <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
|
||||
+ <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
|
||||
+ </taglib>
|
||||
+ <taglib>
|
||||
+ <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
|
||||
+ <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
|
||||
+ </taglib>
|
||||
|
||||
<!-- AjaxAnywhere TLDs -->
|
||||
- <taglib>
|
||||
- <taglib-uri>/WEB-INF/ajaxanywhere.tld</taglib-uri>
|
||||
- <taglib-location>/WEB-INF/ajaxanywhere.tld</taglib-location>
|
||||
- </taglib>
|
||||
+ <taglib>
|
||||
+ <taglib-uri>/WEB-INF/ajaxanywhere.tld</taglib-uri>
|
||||
+ <taglib-location>/WEB-INF/ajaxanywhere.tld</taglib-location>
|
||||
+ </taglib>
|
||||
|
||||
<!-- OpenEMM TLD -->
|
||||
- <taglib>
|
||||
- <taglib-uri>
|
||||
- WEB-INF/agnitas-taglib.tld
|
||||
- </taglib-uri>
|
||||
- <taglib-location>
|
||||
- /WEB-INF/agnitas-taglib.tld
|
||||
- </taglib-location>
|
||||
- </taglib>
|
||||
-
|
||||
+ <taglib>
|
||||
+ <taglib-uri>WEB-INF/agnitas-taglib.tld</taglib-uri>
|
||||
+ <taglib-location>/WEB-INF/agnitas-taglib.tld</taglib-location>
|
||||
+ </taglib>
|
||||
+ </jsp-config>
|
||||
</web-app>
|
53
mail/openemm2013/files/patch-src__script__lib__config.sh
Normal file
53
mail/openemm2013/files/patch-src__script__lib__config.sh
Normal file
|
@ -0,0 +1,53 @@
|
|||
--- src/script/lib/config.sh.orig 2013-09-11 08:30:38 UTC
|
||||
+++ src/script/lib/config.sh
|
||||
@@ -34,7 +34,7 @@ host="`uname -n | cut -d. -f1`"
|
||||
#
|
||||
# Set the base for the whole system ..
|
||||
if [ ! "$BASE" ] ; then
|
||||
- BASE="$HOME"
|
||||
+ BASE="/usr/local/openemm2013"
|
||||
fi
|
||||
export BASE
|
||||
optbase="$OPENEMM_SW"
|
||||
@@ -101,7 +101,7 @@ loglast=0
|
||||
#
|
||||
# Sendmail location
|
||||
#
|
||||
-sendmail="$HOME/bin/smctrl"
|
||||
+sendmail="/usr/local/openemm2013/bin/smctrl"
|
||||
if [ ! -x $sendmail ]; then
|
||||
sendmail="/usr/sbin/sendmail"
|
||||
if [ ! -x $sendmail ] ; then
|
||||
@@ -357,7 +357,7 @@ terminator() {
|
||||
shift
|
||||
if [ "$__pat" ] ; then
|
||||
for sig in 15 9 ; do
|
||||
- __run="`ps -ef | grep -- \"$__pat\" | grep -v grep | awk '{ print $2 }'`"
|
||||
+ __run="`ps -aux | grep -- \"$__pat\" | grep -v grep | awk '{ print $2 }'`"
|
||||
if [ "$__run" ] ; then
|
||||
messagen "Stop $__pat program with signal $sig .. "
|
||||
kill -$sig $__run >/dev/null 2>&1
|
||||
@@ -378,12 +378,12 @@ softterm() {
|
||||
repeat="on"
|
||||
while [ $repeat = "on" ]; do
|
||||
repeat="off"
|
||||
- __run="`ps -ef | grep -- \"$__pat\" | grep -v grep | awk '{ print $2 }'`"
|
||||
+ __run="`ps -aux | grep -- \"$__pat\" | grep -v grep | awk '{ print $2 }'`"
|
||||
if [ "$__run" ] ; then
|
||||
messagen "Stop $__pat program .. "
|
||||
kill -15 $__run >/dev/null 2>&1
|
||||
sleep 1
|
||||
- __run="`ps -ef | grep -- \"$__pat\" | grep -v grep | awk '{ print $2 }'`"
|
||||
+ __run="`ps -aux | grep -- \"$__pat\" | grep -v grep | awk '{ print $2 }'`"
|
||||
if [ "$__run" ]; then
|
||||
messagen "delaying $sv seconds .. "
|
||||
sleep `expr $sv - 1`
|
||||
@@ -409,7 +409,7 @@ mestopper() {
|
||||
messagen "Creating $__fn, waiting for $__pat: "
|
||||
touch "$__fn"
|
||||
while true ; do
|
||||
- __run="`ps -ef | grep -- \"$__pat\" | grep -v grep | awk '{ print $2 }'`"
|
||||
+ __run="`ps -aux | grep -- \"$__pat\" | grep -v grep | awk '{ print $2 }'`"
|
||||
if [ ! "$__run" ] ; then
|
||||
break
|
||||
fi
|
|
@ -0,0 +1,11 @@
|
|||
--- src/java/org/agnitas/beans/impl/FailedLoginDataImpl.java.orig 2015-10-11 16:41:55 UTC
|
||||
+++ src/java/org/agnitas/beans/impl/FailedLoginDataImpl.java
|
||||
@@ -31,7 +31,7 @@ import org.agnitas.beans.FailedLoginData
|
||||
*
|
||||
* Successful logins during a lock period are not noted.
|
||||
*
|
||||
- * @author Markus Dörschmidt
|
||||
+ * @author Markus Duerschmidt
|
||||
*
|
||||
*/
|
||||
public class FailedLoginDataImpl implements FailedLoginData {
|
|
@ -0,0 +1,20 @@
|
|||
--- src/java/org/agnitas/dao/impl/LoginTrackDaoImpl.java.orig 2015-10-11 16:41:55 UTC
|
||||
+++ src/java/org/agnitas/dao/impl/LoginTrackDaoImpl.java
|
||||
@@ -37,7 +37,7 @@ import org.springframework.jdbc.core.Row
|
||||
/**
|
||||
* DAO implementation for login tracking using a MySQL database.
|
||||
*
|
||||
- * @author Markus Dörschmidt
|
||||
+ * @author Markus Duerschmidt
|
||||
*/
|
||||
public class LoginTrackDaoImpl implements LoginTrackDao {
|
||||
/**
|
||||
@@ -69,7 +69,7 @@ public class LoginTrackDaoImpl implement
|
||||
/**
|
||||
* Implementation of the RowMapper
|
||||
*
|
||||
- * @author Markus Dörschmidt
|
||||
+ * @author Markus Duerschmidt
|
||||
*
|
||||
*/
|
||||
static class FailedLoginDataRowMapper implements RowMapper {
|
|
@ -0,0 +1,12 @@
|
|||
--- src/java/org/agnitas/emm/extension/listener/ExtensionSystemInitializationContextListener.java.orig 2015-10-11 16:41:55 UTC
|
||||
+++ src/java/org/agnitas/emm/extension/listener/ExtensionSystemInitializationContextListener.java
|
||||
@@ -53,7 +53,8 @@ public class ExtensionSystemInitializati
|
||||
|
||||
protected void setBuilderProperties( ExtensionSystemBuilder extensionSystemBuilder, ServletContext servletContext, WebApplicationContext springContext) throws Exception {
|
||||
// Directories
|
||||
- extensionSystemBuilder.setJspBaseDirectory( servletContext.getRealPath( "plugins"));
|
||||
+ logger.info("builder properties: servletcontext.realpath: <" + servletContext.getRealPath( "plugins") + "> corrected to <" + servletContext.getRealPath( "/plugins") + ">");
|
||||
+ extensionSystemBuilder.setJspBaseDirectory( servletContext.getRealPath( "/plugins"));
|
||||
extensionSystemBuilder.setPluginBaseDirectory( AgnUtils.getDefaultValue( "plugins.home"));
|
||||
extensionSystemBuilder.setSystemPluginBaseDirectory( servletContext.getRealPath( "/WEB-INF/system-plugins"));
|
||||
|
19
mail/openemm2013/pkg-descr
Normal file
19
mail/openemm2013/pkg-descr
Normal file
|
@ -0,0 +1,19 @@
|
|||
What is OpenEMM?
|
||||
|
||||
OpenEMM is a feature-rich web-based enterprise application for email
|
||||
marketing, newsletters and service mails (transaction mails and
|
||||
event or time triggered mails). OpenEMM offers a great user interface,
|
||||
sophisticated bounce management, link tracking, lots of graphical
|
||||
realtime statistics, a CMS module and a scripting feature to implement
|
||||
individual tasks.
|
||||
|
||||
OpenEMM is the first open source application for e-mail marketing.
|
||||
Its code base has been developed since 1999 and is used - as part
|
||||
of the commercial software product E-Marketing Manager (EMM) - by
|
||||
companies like IBM, Daimler, Siemens and Deutsche Telekom.
|
||||
|
||||
OpenEMM offers already more than 95% of the functionality of most
|
||||
commercial products and some features most commercial products do
|
||||
not offer right now (for example MySQL support and CMS functionality).
|
||||
|
||||
WWW: http://www.openemm.org
|
83
mail/openemm2013/pkg-message
Normal file
83
mail/openemm2013/pkg-message
Normal file
|
@ -0,0 +1,83 @@
|
|||
To integrate the OpenEMM 2013 R2 to the installed Tomcat add this
|
||||
chunk to the server.xml of Tomcat:
|
||||
TOMCAT_HOME= ${PREFIX}/apache-tomcat-8.0/lib/
|
||||
|
||||
vi TOMCAT_HOME/conf/server.xml
|
||||
|
||||
<Engine>
|
||||
.....
|
||||
<!-- add this part START -->
|
||||
<Host name="OpenEMM" appBase="webapps-empty" autoDeploy="true" unpackWARs="false" xmlValidation="false" xmlNamespaceAware="false">
|
||||
<Alias>localhost</Alias>
|
||||
<Valve className="org.apache.catalina.valves.AccessLogValve"
|
||||
resolveHosts="false" directory="${catalina.base}/logs/access/" rotatable="true" buffered="true"
|
||||
prefix="" suffix="-access_openemm.log" fileDateFormat="yyyyMMdd"
|
||||
pattern='%a %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"' />
|
||||
<Context cookies="false" docBase="${PREFIX}/${PORTNAME}/webapps/openemm" path="/openemm" reloadable="true" >
|
||||
<JarScanner scanAllDirectories="true" scanBootstrapClassPath="true"/>
|
||||
</Context>
|
||||
<Context cookies="false" docBase="${PREFIX}/${PORTNAME}/webapps/openemm-ws" path="/openemm-ws2" reloadable="true" />
|
||||
<Context docBase="${PREFIX}/${PORTNAME}/webapps/manual" path="/manual" allowLinking="true" />
|
||||
</Host>
|
||||
<!-- add this part END -->
|
||||
</Engine>
|
||||
|
||||
Also don't forget securing tomcat, or add a httpd in front secured
|
||||
|
||||
# IMPORTANT sendmail is completly controlled from OpenEMM!
|
||||
# It stops and starts sendmail
|
||||
# check if sendmail is enabled
|
||||
sendmail_enable="YES"
|
||||
|
||||
# check also if you have a symlink to sendmail
|
||||
ln -s /etc/rc.d/sendmail /etc/init.d/
|
||||
|
||||
# update the read right on the maillog file
|
||||
chmod 644 /var/log/maillog
|
||||
|
||||
# to keep this change permanent change cron info in /etc/newsyslog.conf
|
||||
# change line /var/log/maillog 644 7 * @T00 JC
|
||||
|
||||
if not change tracking of mail sending / bounces is not working correct
|
||||
|
||||
# don't forget to add the link for mysql driver jar to tomcat
|
||||
ln -s ${PREFIX}/share/java/classes/mysql-connector-java.jar TOMCAT_HOME/lib
|
||||
chown -h www TOMCAT_HOME/lib/mysql-connector-java.jar
|
||||
|
||||
# setup the database scripts
|
||||
|
||||
in the installed mysql add 2 databases
|
||||
|
||||
create database openemm;
|
||||
create database openemm_cms;
|
||||
|
||||
grant the privileges for the 2 db's from where you want to access
|
||||
grant all privileges on openemm.* to agnitas@'X.Y.%' identified by 'openemm';
|
||||
grant all privileges on openemm_cms.* to agnitas@'X.Y.%' identified by 'openemm';
|
||||
|
||||
flush privileges;
|
||||
|
||||
# import the inital data
|
||||
mysql -u root -p openemm < ${PREFIX}/share/doc/openemm2013/openemm-2013.sql
|
||||
usr/local/share/doc/openemm2013/
|
||||
mysql -u root -p openemm_cms < ${PREFIX}/share/doc/openemm2013/openemm-2013.sql
|
||||
|
||||
#additional config for db acces can be done
|
||||
${PREFIX}/openemm2013/webapps/openemm/WEB-INF/classes/emm.properties
|
||||
or
|
||||
${PREFIX}/openemm2013/webapps/openemm/WEB-INF/classes/cms.properties
|
||||
|
||||
# startup config for tomcat and OpenEMM
|
||||
add to /etc/rc.conf
|
||||
# Tomcat8 Server startup with initial config params for OpenEMM
|
||||
tomcat8_enable="YES"
|
||||
tomcat8_java_opts="-server -Djava.awt.headless=true -Xms256m -Xmx512m -XX:MaxPermSize=256m -Xss256k"
|
||||
|
||||
# Openemm 2013
|
||||
openemm2013_enable="YES"
|
||||
|
||||
#NOW you are ready to start the tomcat and OpenEMM
|
||||
|
||||
service tomcat8 start
|
||||
|
||||
${PREFIX}/etc/rc.d/openemm2013 start
|
5490
mail/openemm2013/pkg-plist
Normal file
5490
mail/openemm2013/pkg-plist
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue