rpms/monotone/devel monotone.init, NONE, 1.1 monotone.sysconfig, NONE, 1.1 monotone.spec, 1.4, 1.5

Roland McGrath (roland) fedora-extras-commits at redhat.com
Tue Aug 23 07:04:07 UTC 2005


Author: roland

Update of /cvs/extras/rpms/monotone/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv1246/devel

Modified Files:
	monotone.spec 
Added Files:
	monotone.init monotone.sysconfig 
Log Message:
auto-import monotone-0.22-4.fc5 on branch devel from monotone-0.22-4.fc5.src.rpm


--- NEW FILE monotone.init ---
#!/bin/sh
#
# This script starts and stops the monotone server.
#
# chkconfig: 2345 90 10
# description: Monotone netsync protocol server
# processname: monotone-server
# pidfile: /var/run/monotone-server.pid
# config: /etc/sysconfig/monotone
# config: /etc/monotonerc

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

# Get configuration settings.
[ -f /etc/sysconfig/monotone ] && . /etc/sysconfig/monotone

# By default it's all good
RETVAL=0

MT=/usr/bin/monotone
MTSERVER=/usr/sbin/monotone-server
MONOTONE_LOGFILE=${MONOTONE_LOGFILE:-/var/log/monotone.log}

random_passphrase()
{
	dd if=/dev/urandom count=1 2> /dev/null | sha1sum |
	{ read sum rest; echo $sum; }
}

umask 077

# See how we were called.
case "$1" in
  start)
	[ -e $MONOTONE_DBFILE ] || { $0 init && $0 genkey; }
	RETVAL=$?
	if [ $RETVAL = 0 ]; then
		# Start daemon.
		echo -n $"Starting monotone server: "
		{
		exec 3>> $MONOTONE_LOGFILE &&
		echo >&3 "Server restart at `date`" &&
		daemon --user=${MONOTONE_USER:-monotone} $MTSERVER \
			$MONOTONE_RCOPTS $MONOTONE_DBOPTS $MONOTONE_PPOPTS \
			serve --pid-file=/var/run/monotone-server.pid \
			      "$MONOTONE_SERVE_OPTS" ">&3 2>&3 &"
		} && success || failure
		RETVAL=$?
		echo
	fi
        [ $RETVAL = 0 ] && touch /var/lock/subsys/monotone
        ;;
  stop)
        # Stop daemons.
        echo -n "Stopping monotone server: "
        killproc $MTSERVER
        RETVAL=$?
        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/monotone
        echo
        ;;
  restart)
        $0 stop
        $0 start
        ;;
  condrestart)
       [ -e /var/lock/subsys/monotone ] && $0 restart
       ;;
  status)
	status monotone-server
	RETVAL=$?
	;;
  init)
	echo -n $"Initializing $MONOTONE_DBFILE: "
	{ [ -d /var/db/monotone ] ||
 	  /usr/bin/install -o ${MONOTONE_USER:-monotone} \
			   -g ${MONOTONE_GROUP:-monotone} \
			   -m 0770 -d /var/db/monotone; } &&
	runuser -s /bin/bash - ${MONOTONE_USER:-monotone} -c \
	    		"$MT $MONOTONE_RCOPTS $MONOTONE_DBOPTS db init" &&
		success $"database initialization" ||
		failure $"database initialization"
	RETVAL=$?
	echo
	;;
  genkey)
	MONOTONE_KEYID=${MONOTONE_KEYID:-`/bin/hostname -f`}
	MONOTONE_PPFILE=${MONOTONE_PPFILE:-/var/db/monotone/passphrase.lua}
	echo -n $"Generating RSA key for server $MONOTONE_KEYID"
	tmp=/tmp/mtserver$$
	if
		passphrase=`random_passphrase` &&
		{ echo $passphrase; echo $passphrase; } |
		runuser -s /bin/bash - ${MONOTONE_USER:-monotone} -c \
			"$MT $MONOTONE_RCOPTS $MONOTONE_DBOPTS \
 			genkey $MONOTONE_KEYID" > /dev/null 2>&1 &&
		cat > $tmp <<EOF &&
function get_passphrase(keyid)
  return "$passphrase"
end
EOF
		/usr/bin/install -o ${MONOTONE_USER:-monotone} \
		    		 -g ${MONOTONE_GROUP:-monotone} \
				 -m 0600 $tmp ${MONOTONE_PPFILE}
	then
		success $"key generation"
	else
		failure $"key generation"
	fi
	RETVAL=$?
	echo
	;;
  *)
	echo "Usage: $0 {start|stop|restart|status|condrestart|init|genkey}"
	RETVAL=1
	;;
esac

exit $RETVAL


--- NEW FILE monotone.sysconfig ---
MONOTONERC=/etc/monotonerc
MONOTONE_DBFILE=/var/db/monotone/server.db
MONOTONE_PPFILE=/var/db/monotone/passphrase.lua

MONOTONE_RCOPTS="--norc --rcfile=$MONOTONERC"
MONOTONE_DBOPTS="--db=$MONOTONE_DBFILE"
MONOTONE_PPOPTS="--rcfile=$MONOTONE_PPFILE"

MONOTONE_SERVE_OPTS="0.0.0.0 '*'"


Index: monotone.spec
===================================================================
RCS file: /cvs/extras/rpms/monotone/devel/monotone.spec,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- monotone.spec	22 Aug 2005 20:50:44 -0000	1.4
+++ monotone.spec	23 Aug 2005 07:04:05 -0000	1.5
@@ -1,6 +1,6 @@
 Name: monotone
 Version: 0.22
-Release: 1%{?dist}
+Release: 4%{?dist}
 
 Summary: A free, distributed version control system
 Group: Development/Tools
@@ -8,11 +8,14 @@
 
 URL: http://www.venge.net/monotone/
 Source0: http://www.venge.net/monotone/downloads/%{name}-%{version}.tar.gz
+Source1: monotone.init
+Source2: monotone.sysconfig
 
 Patch1: monotone-0.21-xfail-if-root.patch
 
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
+BuildRequires: zlib-devel
 BuildRequires: boost-devel >= 1.32.0
 BuildRequires: lua
 %if 1
@@ -41,6 +44,15 @@
 performs history-sensitive merging, and delegates trust
 functions to client-side RSA certificates.
 
+%package server
+Summary: Standalone server setup for monotone
+Requires: monotone = %{version}-%{release}
+Group: Development/Tools
+
+%description server
+This package provides an easy-to-use standalone server setup for monotone.
+
+
 %prep
 %setup -q
 
@@ -51,18 +63,32 @@
 make %{?_smp_mflags}
 
 %check
-make %{?_smp_mflags} check
+make check || (cat testsuite.log; exit 2)
 
 %install
 rm -rf %{buildroot}
 make install DESTDIR=%{buildroot}
-rm -f %{buildroot}/%{_infodir}/dir
+rm -f %{buildroot}%{_infodir}/dir
 
-lispdir=%{buildroot}/%{_datadir}/emacs/site-lisp
+lispdir=%{buildroot}%{_datadir}/emacs/site-lisp
 mkdir -p ${lispdir}
 %{__install} -c -m 0444 contrib/monotone*.el ${lispdir}
 emacs -batch -f batch-byte-compile ${lispdir}
 
+mkdir -p %{buildroot}%{_sbindir}
+mkdir -p %{buildroot}/etc/init.d
+mkdir -p %{buildroot}/etc/sysconfig
+mkdir -p %{buildroot}/var/db
+ln -snf ../bin/monotone %{buildroot}%{_sbindir}/monotone-server
+%{__install} -c -m 0555 %{SOURCE1} %{buildroot}/etc/init.d/monotone
+%{__install} -c -m 0644 %{SOURCE2} %{buildroot}/etc/sysconfig/monotone
+%{__install} -c -m 0644 /dev/null %{buildroot}/etc/monotonerc
+%{__install} -d -m 0770 %{buildroot}/var/db/monotone
+
+# These do not actually wind up in the package, due to %%ghost.
+touch %{buildroot}/var/db/monotone/server.db
+touch %{buildroot}/var/db/monotone/passphrase.lua
+
 %clean
 rm -rf %{buildroot}
 
@@ -88,9 +114,37 @@
 %{_mandir}/man1/monotone.1*
 %{_datadir}/emacs/site-lisp/monotone*.el*
 
+
+%files server
+%defattr(-,root,root,-)
+%{_sbindir}/monotone-server
+/etc/init.d/monotone
+%config(noreplace) /etc/sysconfig/monotone
+%config(noreplace) /etc/monotonerc
+%dir %attr(0770,monotone,monotone) /var/db/monotone
+%attr(0660,monotone,monotone) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/db/monotone/server.db
+%attr(0600,monotone,monotone) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/db/monotone/passphrase.lua
+
+%pre server
+# Add the "monotone" user
+/usr/sbin/useradd -c "Monotone Netsync Server" \
+	-s /sbin/nologin -r -d /var/db/monotone apache 2> /dev/null || :
+
+%post server
+# Register the monotone service
+/sbin/chkconfig --add monotone
+
+%preun server
+if [ $1 = 0 ]; then
+	/sbin/service monotone stop > /dev/null 2>&1
+	/sbin/chkconfig --del monotone
+fi
+
+
 %changelog
-* Mon Aug 22 2005 Roland McGrath <roland at redhat.com> - 0.22-1
+* Mon Aug 22 2005 Roland McGrath <roland at redhat.com> - 0.22-4
 - Updated for 0.22 release.
+- Added monotone-server package.
 
 * Sun Aug  7 2005 Roland McGrath <roland at redhat.com> - 0.21-3
 - Work around non-root build user owning / in mock chroot builds.




More information about the fedora-extras-commits mailing list