packages: tigase-server/derby-db-create.sh (NEW), tigase-server/tigase-serv...

jajcus jajcus at pld-linux.org
Thu May 5 16:08:42 CEST 2011


Author: jajcus                       Date: Thu May  5 14:08:42 2011 GMT
Module: packages                      Tag: HEAD
---- Log message:
- new package

---- Files affected:
packages/tigase-server:
   derby-db-create.sh (NONE -> 1.1)  (NEW), tigase-server-paths.patch (NONE -> 1.1)  (NEW), tigase-server.init (NONE -> 1.1)  (NEW), tigase-server.sh (NONE -> 1.1)  (NEW), tigase-server.spec (NONE -> 1.1)  (NEW), tigase-server.sysconfig (NONE -> 1.1)  (NEW), tigase-server.upstart (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/tigase-server/derby-db-create.sh
diff -u /dev/null packages/tigase-server/derby-db-create.sh:1.1
--- /dev/null	Thu May  5 16:08:42 2011
+++ packages/tigase-server/derby-db-create.sh	Thu May  5 16:08:37 2011
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+cd /usr/share/tigase-server || exit 1
+
+[ "$1" = "" ] && \
+  echo "Give me a path to the location where you want to have the database created" && \
+  exit 1
+
+
+java -Dij.protocol=jdbc:derby: -Dij.database="$1;create=true" \
+		-Dderby.system.home=`pwd` \
+		-cp libs/derby.jar:libs/derbytools.jar:jars/tigase-server.jar \
+		org.apache.derby.tools.ij database/derby-schema-4.sql
+java -Dij.protocol=jdbc:derby: -Dij.database="$1" \
+		-Dderby.system.home=`pwd` \
+		-cp libs/derby.jar:libs/derbytools.jar:jars/tigase-server.jar \
+		org.apache.derby.tools.ij database/derby-schema-4-sp.schema
+java -Dij.protocol=jdbc:derby: -Dij.database="$1" \
+		-Dderby.system.home=`pwd` \
+		-cp libs/derby.jar:libs/derbytools.jar:jars/tigase-server.jar \
+		org.apache.derby.tools.ij database/derby-schema-4-props.sql
+

================================================================
Index: packages/tigase-server/tigase-server-paths.patch
diff -u /dev/null packages/tigase-server/tigase-server-paths.patch:1.1
--- /dev/null	Thu May  5 16:08:42 2011
+++ packages/tigase-server/tigase-server-paths.patch	Thu May  5 16:08:37 2011
@@ -0,0 +1,25 @@
+diff -dur tigase-server-5.0.0-b2135.orig/etc/init.properties tigase-server-5.0.0-b2135/etc/init.properties
+--- tigase-server-5.0.0-b2135.orig/etc/init.properties	2010-03-20 22:06:06.000000000 +0100
++++ tigase-server-5.0.0-b2135/etc/init.properties	2011-05-05 14:28:15.000000000 +0200
+@@ -2,4 +2,6 @@
+ --admins=admin@$HOST_NAME
+ --virt-hosts = $HOST_NAME
+ --debug=server
+-
++--user-db=derby
++--user-db-uri=jdbc:derby:/var/lib/tigase-server/derby
++--script-dir=/var/lib/tigase-server/scripts
+diff -dur tigase-server-5.0.0-b2135.orig/etc/tigase.conf tigase-server-5.0.0-b2135/etc/tigase.conf
+--- tigase-server-5.0.0-b2135.orig/etc/tigase.conf	2010-03-20 22:06:06.000000000 +0100
++++ tigase-server-5.0.0-b2135/etc/tigase.conf	2011-05-05 14:29:00.000000000 +0200
+@@ -1,8 +1,7 @@
+ ENC="-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"
+ DRV="-Djdbc.drivers=com.mysql.jdbc.Driver:org.postgresql.Driver:org.apache.derby.jdbc.EmbeddedDriver"
+ #GC="-XX:+UseBiasedLocking -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:ParallelCMSThreads=2"
+-JAVA_HOME="${JDKPath}"
++#JAVA_HOME="${JDKPath}"
+ CLASSPATH=""
+ JAVA_OPTIONS="${GC} ${ENC} ${DRV} -server -Xms100M -Xmx200M -XX:PermSize=32m -XX:MaxPermSize=256m -XX:MaxDirectMemorySize=128m "
+-TIGASE_CONFIG="etc/tigase.xml"
+-TIGASE_OPTIONS=" --property-file etc/init.properties "
++TIGASE_OPTIONS=" --property-file /etc/tigase-server/init.properties "

================================================================
Index: packages/tigase-server/tigase-server.init
diff -u /dev/null packages/tigase-server/tigase-server.init:1.1
--- /dev/null	Thu May  5 16:08:42 2011
+++ packages/tigase-server/tigase-server.init	Thu May  5 16:08:37 2011
@@ -0,0 +1,92 @@
+#!/bin/sh
+#
+# tigase-server	Starts Tigase XMPP server.
+#
+# chkconfig:	2345 85 15
+# description:	Tigase Sever
+#
+
+# Source function library
+. /etc/rc.d/init.d/functions
+
+# Get service config
+if [ -f /etc/sysconfig/tigase-server ]; then
+	. /etc/sysconfig/tigase-server
+fi
+
+init_derby_db () {
+	show "Initializing Tigase Server derby database: %s" $1 ; started
+	if setuidgid -s jabber /usr/share/tigase-server/scripts/derby-db-create.sh $1 >/dev/null ; then
+		show "Initializing Tigase Server derby database" ; ok
+	else
+		show "Initializing Tigase Server derby database" ; fail
+	fi
+}
+
+start() {
+	# Check if the service is already running?
+	if [ -f /var/lock/subsys/tigase-server ]; then
+		msg_already_running "tigase-server"
+		return
+	fi
+	if grep -q '^--user-db=derby' /etc/tigase-server/init.properties ; then
+		DB_PATH=$(awk -F'=jdbc:derby:' '/^--user-db-uri=/ { print $2 }' \
+							/etc/tigase-server/init.properties)
+		if [ -n "$DB_PATH" -a ! -e $DB_PATH ] ; then
+			init_derby_db $DB_PATH
+		fi
+	fi
+	msg_starting "tigase-server"
+	emit starting JOB=tigase-server
+	if [ -z "$TIGASE_CONSOLE_LOG" ] ; then
+		TIGASE_CONSOLE_LOG=/var/log/tigase-server/tigase-console.log
+	fi
+	export TIGASE_CONSOLE_LOG
+	daemon --fork /usr/bin/tigase-server
+	if [ "$RETVAL" = 0 ] ; then
+		touch /var/lock/subsys/tigase-server
+		emit --no-wait started JOB=tigase-server
+	fi
+}
+
+stop() {
+	if [ ! -f /var/lock/subsys/tigase-server ]; then
+		msg_not_running "tigase-server"
+		return
+	fi
+	msg_stopping "tigase-server"
+	emit stopping JOB=tigase-server
+	killproc tigase-server
+	emit --no-wait stopped JOB=tigase-server
+	rm -f /var/lock/subsys/tigase-server >/dev/null 2>&1
+}
+
+upstart_controlled
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+  start)
+	start
+	;;
+  stop)
+	stop
+	;;
+  restart)
+	stop
+	start
+	;;
+  reload|force-reload)
+	stop
+	start
+	;;
+  status)
+	status --pidfile /var/run/tigase-server.pid tigase-server
+	exit $?
+	;;
+  *)
+	msg_usage "$0 {start|stop|restart|status}"
+	exit 3
+esac
+
+exit $RETVAL

================================================================
Index: packages/tigase-server/tigase-server.sh
diff -u /dev/null packages/tigase-server/tigase-server.sh:1.1
--- /dev/null	Thu May  5 16:08:42 2011
+++ packages/tigase-server/tigase-server.sh	Thu May  5 16:08:37 2011
@@ -0,0 +1,66 @@
+#!/bin/sh
+
+. /usr/share/java-utils/java-functions
+set_jvm
+TIGASE_HOME=/usr/share/tigase-server
+TIGASE_CONFIG="/etc/tigase-server/tigase.xml"
+. /etc/tigase-server/tigase.conf
+
+TIGASE_JAR=""
+for j in ${TIGASE_HOME}/jars/tigase-server*.jar ; do
+	if [ -f ${j} ] ; then
+	  TIGASE_JAR=${j}
+	  break
+	fi
+done
+if [ -z ${TIGASE_JAR} ] ; then
+	echo "Couldn't find tigase-server.jar."
+	exit 1
+fi
+
+if [ -z "${TIGASE_CONFIG}" ] ; then
+  DEF_CONF="tigase-server.xml"
+  # Gentoo style config location
+  if [ -f "/etc/conf.d/${DEF_CONF}" ] ; then
+		TIGASE_CONFIG="/etc/conf.d/${DEF_CONF}"
+  elif [ -f "/etc/${DEF_CONF}" ] ; then
+		TIGASE_CONFIG="/etc/${DEF_CONF}"
+  elif [ -f "/etc/tigase/${DEF_CONF}" ] ; then
+		TIGASE_CONFIG="/etc/tigase/${DEF_CONF}"
+  elif [ -f "${TIGASE_HOME}/etc/${DEF_CONF}" ] ; then
+		TIGASE_CONFIG="${TIGASE_HOME}/etc/${DEF_CONF}"
+  else
+		TIGASE_CONFIG="${TIGASE_HOME}/etc/${DEF_CONF}"
+		echo "Can't find server configuration file."
+		echo "Should be set in TIGASE_CONFIG variable"
+		echo "Creating new configuration file in location:"
+		echo "${TIGASE_CONFIG}"
+  fi
+fi
+
+[[ -z "${TIGASE_RUN}" ]] && \
+  TIGASE_RUN="tigase.server.XMPPServer -c ${TIGASE_CONFIG}  ${TIGASE_OPTIONS}"
+
+[[ -z "${JAVA}" ]] && JAVA="${JAVA_HOME}/bin/java"
+
+[[ -z "${CLASSPATH}" ]] || CLASSPATH="${CLASSPATH}:"
+
+CLASSPATH="${CLASSPATH}${TIGASE_JAR}"
+
+CLASSPATH="`ls -d ${TIGASE_HOME}/libs/*.jar 2>/dev/null | grep -v wrapper | tr '\n' :`${CLASSPATH}"
+
+TIGASE_CMD="${JAVA} ${JAVA_OPTIONS} -cp ${CLASSPATH} ${TIGASE_RUN}"
+
+if [ `id -u` = 0 ] ; then
+	TIGASE_CMD="/sbin/setuidgid -s jabber $TIGASE_CMD"
+fi
+
+if [ -n "${TIGASE_CONSOLE_LOG}" ] ; then
+	exec >> ${TIGASE_CONSOLE_LOG} 2>&1
+	echo "STARTED Tigase `date`"
+fi
+
+cd "${TIGASE_HOME}"
+
+echo "$$" > /var/run/tigase-server.pid
+exec $TIGASE_CMD 

================================================================
Index: packages/tigase-server/tigase-server.spec
diff -u /dev/null packages/tigase-server/tigase-server.spec:1.1
--- /dev/null	Thu May  5 16:08:42 2011
+++ packages/tigase-server/tigase-server.spec	Thu May  5 16:08:37 2011
@@ -0,0 +1,173 @@
+# $Revision$, $Date$
+#
+# TODO:
+#	- build from sources
+#
+Summary:	Open Source Jabber/XMPP Server
+Name:		tigase-server
+Version:	5.0.0
+%define	build_id 2135
+Release:	0.1
+License:	GPL v3
+Group:		Applications/Communications
+# http://www.tigase.org/content/tigase-downloads?fid=2199
+Source0:	%{name}-%{version}-b%{build_id}.tar.gz
+# Source0-md5:	e8d305ba1ec59ac7c822c38db6169a7f
+Source1:	%{name}.init
+Source2:	%{name}.sysconfig
+Source3:	%{name}.upstart
+Source4:	%{name}.sh
+Source5:	derby-db-create.sh
+Patch0:		%{name}-paths.patch
+URL:		http://www.tigase.org/
+BuildRequires:	rpmbuild(macros) >= 1.228
+Requires(postun):	/usr/sbin/groupdel
+Requires(postun):	/usr/sbin/userdel
+Requires(pre):	/bin/id
+Requires(pre):	/usr/bin/getgid
+Requires(pre):	/usr/sbin/groupadd
+Requires(pre):	/usr/sbin/useradd
+Provides:	group(jabber)
+Provides:	user(jabber)
+Requires(post,preun):	/sbin/chkconfig
+Requires:	jpackage-utils
+Requires:	jre
+Requires:	rc-scripts
+BuildArch:	noarch
+BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%description
+The Tigase Jabber/XMPP Server is Open Source and Free (GPLv3) Java
+based server.
+
+The server offers complete implementation of the XMPP protocol with a
+long list of extensions. Effcient, reliable and very extensible can be
+easily integrated it with your systems.
+
+The unique features of the Tigase server are:
+
+- High performance and scalability. Was tested with up to 500 000
+  concurrent users connected to a single machine.
+- High reliability. Tries to run as long as possible and tried to
+  automaticaly recover from detected problems.
+- Built-in many self monitoring functions. You can check your systems
+  statistics via XMPP, JMX, HTTP, SNMP or you can automatically receive
+  notifications about possible problems.
+- Scripting support - scripts can be loaded/reloaded at run time. Many
+  scripting languages are supported
+- Virtual hosts support. You can have virtually unlimited virtual
+  hosts which can be added/removed at runtime. You can temporarily block
+  vhost or limit number of users per vhost.
+- There is much more... check the official change log and the project
+  website.
+
+%package upstart
+Summary:	Upstart job description for %{name}
+Summary(pl.UTF-8):	Opis zadania Upstart dla %{name}
+Group:		Daemons
+Requires:	%{name} = %{version}-%{release}
+Requires:	upstart >= 0.6
+
+%description upstart
+Upstart job description for %{name}
+
+%description upstart -l pl.UTF-8
+Opis zadania Upstart dla %{name}
+
+
+%prep
+%setup -q -n %{name}-%{version}-b%{build_id}
+%patch0 -p1
+
+%build
+
+%install
+rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{/etc/{init,sysconfig,rc.d/init.d},%{_bindir}} \
+	$RPM_BUILD_ROOT%{_datadir}/%{name}/scripts \
+	$RPM_BUILD_ROOT/var/lib/%{name}/{derby,scripts} \
+	$RPM_BUILD_ROOT{%{_sysconfdir},/var/log}/%{name}
+
+cp -R certs etc/* $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
+ln -s %{_sysconfdir}/%{name}/certs $RPM_BUILD_ROOT%{_datadir}/%{name}
+
+cp -R database jars libs $RPM_BUILD_ROOT%{_datadir}/%{name}
+
+ln -s /var/log/tigase $RPM_BUILD_ROOT%{_datadir}/%{name}/logs
+ln -s logs/derby.log $RPM_BUILD_ROOT%{_datadir}/%{name}
+
+install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
+install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
+install %{SOURCE3} $RPM_BUILD_ROOT/etc/init/%{name}.conf
+install %{SOURCE4} $RPM_BUILD_ROOT%{_bindir}/%{name}
+install %{SOURCE5} $RPM_BUILD_ROOT%{_datadir}/%{name}/scripts/derby-db-create.sh
+
+
+touch $RPM_BUILD_ROOT/var/log/%{name}/derby.log
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%pre
+%groupadd -g 74 jabber
+%useradd -g jabber -d /home/services/jabber -u 74 -s /bin/false jabber
+
+%post
+if FQDN=$(hostname -f) ; then
+	sed -i -e"s/\\\$HOST_NAME/$FQDN/g" %{_sysconfdir}/%{name}/init.properties
+fi
+/sbin/chkconfig --add %{name}
+%service %{name} restart
+
+%preun
+if [ "$1" = "0" ]; then
+	%service -q %{name} stop
+	/sbin/chkconfig --del %{name}
+fi
+
+%postun
+if [ "$1" = "0" ]; then
+	%userremove jabber
+	%groupremove jabber
+fi
+
+%files
+%defattr(644,root,root,755)
+%doc ChangeLog README package.html docs/api scripts/repo.sh
+%dir %{_sysconfdir}/%{name}
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/init.properties
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/tigase.conf
+%dir %{_sysconfdir}/%{name}/certs
+%attr(770,root,jabber) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/certs/*
+%attr(755,root,root) %{_bindir}/*
+%dir %{_datadir}/%{name}
+%dir %{_datadir}/%{name}/certs
+%dir %{_datadir}/%{name}/database
+%{_datadir}/%{name}/database/*
+%{_datadir}/%{name}/derby.log
+%dir %{_datadir}/%{name}/jars
+%{_datadir}/%{name}/jars/*.jar
+%dir %{_datadir}/%{name}/libs
+%{_datadir}/%{name}/libs/*.jar
+%{_datadir}/%{name}/logs
+%dir %{_datadir}/%{name}/scripts
+%attr(755,root,root) %{_datadir}/%{name}/scripts/*.sh
+%attr(754,root,root) /etc/rc.d/init.d/%{name}
+%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
+%dir %attr(775,root,jabber) /var/log/%{name}
+%attr(664,jabber,jabber) /var/log/%{name}/derby.log
+%dir %attr(775,root,jabber) /var/lib/%{name}
+
+%files upstart
+%defattr(644,root,root,755)
+%config(noreplace) %verify(not md5 mtime size) /etc/init/%{name}.conf
+
+%define date	%(echo `LC_ALL="C" date +"%a %b %d %Y"`)
+%changelog
+* %{date} PLD Team <feedback at pld-linux.org>
+All persons listed below can be reached at <cvs_login>@pld-linux.org
+
+$Log$
+Revision 1.1  2011/05/05 14:08:37  jajcus
+- new package
+

================================================================
Index: packages/tigase-server/tigase-server.sysconfig
diff -u /dev/null packages/tigase-server/tigase-server.sysconfig:1.1
--- /dev/null	Thu May  5 16:08:42 2011
+++ packages/tigase-server/tigase-server.sysconfig	Thu May  5 16:08:37 2011
@@ -0,0 +1,4 @@
+# Customized settings for Tigase XMPP server
+
+# Define nice level for Tigase
+#SERVICE_RUN_NICE_LEVEL="+0"

================================================================
Index: packages/tigase-server/tigase-server.upstart
diff -u /dev/null packages/tigase-server/tigase-server.upstart:1.1
--- /dev/null	Thu May  5 16:08:42 2011
+++ packages/tigase-server/tigase-server.upstart	Thu May  5 16:08:37 2011
@@ -0,0 +1,16 @@
+
+description "Starts the Tigase XMPP server"
+
+start on pld.network-started
+stop on pld.shutdown-started
+
+respawn
+
+console output
+
+script
+	export TIGASE_CONSOLE_LOG=/var/log/tigase-server/tigase-console.log
+	exec /usr/bin/tigase-server
+end script
+
+# vi: ft=upstart
================================================================


More information about the pld-cvs-commit mailing list