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