diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index e69de29..0000000 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8cc96f4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +monotone-0.48.tar.gz +/monotone-0.48.1.tar.gz +/monotone-0.99.tar.gz +/monotone-0.99.1.tar.gz +/monotone-1.0.tar.bz2 +/monotone-1.1.tar.bz2 diff --git a/Makefile b/Makefile deleted file mode 100644 index 659e999..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: monotone -# $Id$ -NAME := monotone -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attept a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/README.monotone-server b/README.monotone-server new file mode 100644 index 0000000..2f3b00c --- /dev/null +++ b/README.monotone-server @@ -0,0 +1,38 @@ +The Fedora build of monotone provides an extra RPM "monotone-server". This +package is intended to make it easy to set up an unattended server +installation for Monotone's Netsync protocol (i.e. "monotone serve"). + +The package contains a systemd service unit for running the server, installed +as /usr/sbin/monotone-server. (This is just a symlink to monotone that the +systemd runs instead. This enables matching "monotone-server" processes with +ps to distinguish server instances from people using monotone.) + +The /etc/monotone directory serves as ~/.monotone for the server. This +directory and its contents are not writable by the "monotone" user ID under +which the network server runs. The database lives in /var/lib/monotone, which +the "monotone" user ID must write to. + +On startup, the systemd service will generate a private key for the +server to use, if none exists yet, using +/usr/libexec/monotone-server-genkey. The key identification will +contain the host's FQDN (from /bin/hostname -f). + +Before starting the server, the script will migrate an old database +format if you had a previous version of the monotone-server installation. + +Access to the server is controlled by the /etc/monotone/read-permissions and +/etc/monotone/write-permissions files, unless you write your own Lua hooks in +/etc/monotone/monotonerc. These files are not created or edited by the RPM +scripts, you must create them. These files refer to key identification +strings for keys already the database. Anyone allowed write access by the +network server can put new keys in the database with "monotone push" using the +--key-to-push option. To bootstrap this, /etc/monotone/write-permission must +allow some key and that key must be in the database already. You can put a +key in the server's database easily with /usr/libexec/monotone-server-import, +e.g. to import the public key for a private key in ~/.monotone/keys: + + mtn pubkey me@my.com | sudo /usr/libexec/monotone-server-import + +For problems with this package or its scripts, please file bugs at +http://bugzilla.redhat.com/ for the "monotone" component in the "Fedora" +product. diff --git a/monotone-1.0-stacktrace-on-crash.patch b/monotone-1.0-stacktrace-on-crash.patch new file mode 100644 index 0000000..a8d773c --- /dev/null +++ b/monotone-1.0-stacktrace-on-crash.patch @@ -0,0 +1,63 @@ +Add a hack to the fatal signal handlers to invoke gdb and get a full stack +trace on crash. This won't fix anything, but by activating this mode +in the testsuite, we can get more detail on the alpha and sparc FTBFSes. + +Index: monotone-1.0/src/unix/main.cc +=================================================================== +--- monotone-1.0.orig/src/unix/main.cc 2009-04-12 13:39:49.000000000 -0700 ++++ monotone-1.0/src/unix/main.cc 2009-04-12 13:42:56.000000000 -0700 +@@ -36,12 +36,21 @@ + + #include "../base.hh" + #include +-#include ++#include + #include + #include + #include ++#include ++ ++#if __GLIBC__ >= 3 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) ++# define HAVE_BACKTRACE ++# include ++#endif + + static char const * argv0; ++#ifdef HAVE_BACKTRACE ++static bool backtrace_on_crash = false; ++#endif + + // a convenient wrapper + inline void +@@ -75,6 +84,18 @@ + write_str_to_stderr("do not send a core dump, but if you have one, " + "\nplease preserve it in case we ask you for " + "information from it.\n"); ++#ifdef HAVE_BACKTRACE ++ if (backtrace_on_crash) ++ { ++ void *tracebuf[20]; ++ int frames = backtrace(tracebuf, 20); ++ if (frames) ++ { ++ write_str_to_stderr("stack trace:\n"); ++ backtrace_symbols_fd(tracebuf, frames, 2); ++ } ++ } ++#endif + + raise(signo); + // The signal has been reset to the default handler by SA_RESETHAND +@@ -129,6 +150,12 @@ + + argv0 = argv[0]; + ++#ifdef HAVE_BACKTRACE ++ char *ev = getenv("MTN_STACKTRACE_ON_CRASH"); ++ if (ev && ev[0]) ++ backtrace_on_crash = true; ++#endif ++ + bug_signal_action.sa_flags = SA_RESETHAND; + bug_signal_action.sa_handler = &bug_signal; + sigemptyset(&bug_signal_action.sa_mask); diff --git a/monotone-1.1-iostream.patch b/monotone-1.1-iostream.patch new file mode 100644 index 0000000..b77a4a0 --- /dev/null +++ b/monotone-1.1-iostream.patch @@ -0,0 +1,14 @@ +diff -up monotone-1.1/test/unit/tests/merge_3way.cc\~ monotone-1.1/test/unit/tests/merge_3way.cc +--- monotone-1.1/test/unit/tests/merge_3way.cc~ 2014-05-04 11:15:25.000000000 +0200 ++++ monotone-1.1/test/unit/tests/merge_3way.cc 2015-01-29 02:23:06.774241679 +0100 +@@ -17,6 +17,8 @@ + #include "../randomfile.hh" + #include "../../../src/simplestring_xform.hh" + ++#include ++ + using std::cerr; + using std::cout; + using std::stringstream; + +Diff finished. Thu Jan 29 02:24:29 2015 diff --git a/monotone-1.1-lua-integer.patch b/monotone-1.1-lua-integer.patch new file mode 100644 index 0000000..ba0dbb4 --- /dev/null +++ b/monotone-1.1-lua-integer.patch @@ -0,0 +1,52 @@ +diff -Naur monotone-1.1.orig/src/lua.cc monotone-1.1/src/lua.cc +--- monotone-1.1.orig/src/lua.cc 2014-05-04 11:15:17.000000000 +0200 ++++ monotone-1.1/src/lua.cc 2015-06-21 16:47:12.753916549 +0200 +@@ -334,7 +334,7 @@ + { + if (failed) return *this; + if (!check_stack(1)) return *this; +- lua_pushnumber(st, num); ++ lua_pushinteger(st, num); + return *this; + } + +diff -Naur monotone-1.1.orig/src/luaext_platform.cc monotone-1.1/src/luaext_platform.cc +--- monotone-1.1.orig/src/luaext_platform.cc 2014-05-04 11:15:17.000000000 +0200 ++++ monotone-1.1/src/luaext_platform.cc 2015-06-21 15:16:42.455792643 +0200 +@@ -185,8 +185,8 @@ + int res; + int ret; + ret = process_wait(pid, &res); +- lua_pushnumber(LS, res); +- lua_pushnumber(LS, ret); ++ lua_pushinteger(LS, res); ++ lua_pushinteger(LS, ret); + return 2; + } + +diff -Naur monotone-1.1.orig/test/src/tester.cc monotone-1.1/test/src/tester.cc +--- monotone-1.1.orig/test/src/tester.cc 2014-05-04 11:15:25.000000000 +0200 ++++ monotone-1.1/test/src/tester.cc 2015-06-21 15:16:42.491792237 +0200 +@@ -418,8 +418,8 @@ + int res; + int ret; + ret = process_wait(pid, &res, time); +- lua_pushnumber(LS, res); +- lua_pushnumber(LS, ret); ++ lua_pushinteger(LS, res); ++ lua_pushinteger(LS, ret); + return 2; + } + +diff -Naur monotone-1.1.orig/test/src/testlib.lua monotone-1.1/test/src/testlib.lua +--- monotone-1.1.orig/test/src/testlib.lua 2014-05-04 11:15:25.000000000 +0200 ++++ monotone-1.1/test/src/testlib.lua 2015-06-21 16:11:08.180222890 +0200 +@@ -1070,7 +1071,7 @@ + counts.total = counts.total + 1 + local format_seconds = function (seconds) + return string.format("%d:%02d", +- seconds / 60, ++ math.floor(seconds / 60), + seconds % 60) + end + local times = "" diff --git a/monotone-server-genkey b/monotone-server-genkey new file mode 100755 index 0000000..091760c --- /dev/null +++ b/monotone-server-genkey @@ -0,0 +1,62 @@ +#!/bin/sh +# +# Generate a new private server key for the Monotone Server, if needed +# +# Author: Thomas Moschny +# +set -eu + +MONOTONE_CONFDIR="${MONOTONE_CONFDIR:-/etc/monotone}" +MONOTONE_KEYDIR="${MONOTONE_KEYDIR:-/etc/monotone/private-keys}" +MONOTONE_DBFILE="${MONOTONE_DBFILE:-/var/lib/monotone/server.mtn}" +MONOTONE_PPFILE="${MONOTONE_PPFILE:-/etc/monotone/passphrase.lua}" + +MONOTONE_KEYID="${MONOTONE_KEYID:-monotone@$(hostname -f)}" +MONOTONE_HOME="${MONOTONE_HOME:-/var/lib/monotone}" + +cd "${MONOTONE_HOME}" + +# check for existing keys +for key in "${MONOTONE_KEYDIR}/${MONOTONE_KEYID}"* ; do + if [ -e "${key}" ] ; then + echo $"Found private key $key" + exit + fi +done + +# check for existing rc file +if [ -s "${MONOTONE_PPFILE}" ] ; then + echo >&2 $"Not overwriting passphrase file ${MONOTONE_PPFILE}" + exit 1 +fi + +# no key found, let's generate one +echo $"Generating key for server ${MONOTONE_KEYID}" + +# generate random passphrase +passphrase="$(dd 2>/dev/null if=/dev/urandom bs=1 count=16 | hexdump -ve '/1 "%02x"')" + +# generate keypair, needs to be run as root +{ echo "${passphrase}"; echo "${passphrase}" ; } | +mtn --confdir="${MONOTONE_CONFDIR}" --db="${MONOTONE_DBFILE}" \ + --keydir="${MONOTONE_KEYDIR}" --force-duplicate-key \ + genkey "${MONOTONE_KEYID}" + +# fix permissions +for key in "${MONOTONE_KEYDIR}/${MONOTONE_KEYID}"* ; do + if [ -e "${key}" ] ; then + chgrp monotone "${key}" + chmod 0640 "${key}" + break + fi + echo >&2 $"No key found, key generation failed?" + exit 1 +done + +# generate rc file +install -o root -g monotone -m 0440 /dev/null "${MONOTONE_PPFILE}" +cat > "${MONOTONE_PPFILE}" < +# +set -eu + +MONOTONE_CONFDIR="${MONOTONE_CONFDIR:-/etc/monotone}" +MONOTONE_KEYDIR="${MONOTONE_KEYDIR:-/etc/monotone/private-keys}" +MONOTONE_DBFILE="${MONOTONE_DBFILE:-/var/lib/monotone/server.mtn}" +MONOTONE_PPFILE="${MONOTONE_PPFILE:-/etc/monotone/passphrase.lua}" + +MONOTONE_KEYID="${MONOTONE_KEYID:-monotone@$(hostname -f)}" +MONOTONE_HOME="${MONOTONE_HOME:-/var/lib/monotone}" + +cd "${MONOTONE_HOME}" + +echo $"Importing packets into ${MONOTONE_DBFILE}" + +runuser -u monotone -- mtn --confdir="${MONOTONE_CONFDIR}" \ + --db="${MONOTONE_DBFILE}" --keydir="${MONOTONE_KEYDIR}" \ + read diff --git a/monotone-server-initdb b/monotone-server-initdb new file mode 100755 index 0000000..90d061a --- /dev/null +++ b/monotone-server-initdb @@ -0,0 +1,34 @@ +#!/bin/sh +# +# Initialize a new database for the Monotone Server, if needed +# +# Author: Thomas Moschny +# +set -eu + +MONOTONE_CONFDIR="${MONOTONE_CONFDIR:-/etc/monotone}" +MONOTONE_KEYDIR="${MONOTONE_KEYDIR:-/etc/monotone/private-keys}" +MONOTONE_DBFILE="${MONOTONE_DBFILE:-/var/lib/monotone/server.mtn}" +MONOTONE_PPFILE="${MONOTONE_PPFILE:-/etc/monotone/passphrase.lua}" + +MONOTONE_KEYID="${MONOTONE_KEYID:-monotone@$(hostname -f)}" +MONOTONE_HOME="${MONOTONE_HOME:-/var/lib/monotone}" + +cd "${MONOTONE_HOME}" + +# check for existing database +if [ -s "${MONOTONE_DBFILE}" ] ; then + echo $"Found database ${MONOTONE_DBFILE}" + exit +fi + +# no db found +echo $"Creating dababase ${MONOTONE_DBFILE}" + +# create database +runuser -u monotone -- mtn --confdir="${MONOTONE_CONFDIR}" \ + --db="${MONOTONE_DBFILE}" --keydir="${MONOTONE_KEYDIR}" \ + db init + +# fix permissions +chmod 0640 "${MONOTONE_DBFILE}" diff --git a/monotone-server-migratedb b/monotone-server-migratedb new file mode 100755 index 0000000..fffac2c --- /dev/null +++ b/monotone-server-migratedb @@ -0,0 +1,41 @@ +#!/bin/sh +# +# Migrate the Monotone Server database, if needed +# +# Author: Thomas Moschny +# +set -eu + +MONOTONE_CONFDIR="${MONOTONE_CONFDIR:-/etc/monotone}" +MONOTONE_KEYDIR="${MONOTONE_KEYDIR:-/etc/monotone/private-keys}" +MONOTONE_DBFILE="${MONOTONE_DBFILE:-/var/lib/monotone/server.mtn}" +MONOTONE_PPFILE="${MONOTONE_PPFILE:-/etc/monotone/passphrase.lua}" + +MONOTONE_KEYID="${MONOTONE_KEYID:-monotone@$(hostname -f)}" +MONOTONE_HOME="${MONOTONE_HOME:-/var/lib/monotone}" + +cd "${MONOTONE_HOME}" + +# check database +version="$(LC_ALL=C runuser -u monotone -- mtn \ + --confdir="${MONOTONE_CONFDIR}" --db="${MONOTONE_DBFILE}" \ + --keydir="${MONOTONE_KEYDIR}" db version)" + +case ${version} in + *"("usable")"*) + echo $"Database is usable" + exit + ;; +esac + +# database needs migration +echo $"Migrating dababase ${MONOTONE_DBFILE}" + +# migrate database +runuser -u monotone -- mtn --confdir="${MONOTONE_CONFDIR}" \ + --db="${MONOTONE_DBFILE}" --keydir="${MONOTONE_KEYDIR}" \ + db migrate + +runuser -u monotone -- mtn --confdir="${MONOTONE_CONFDIR}" \ + --db="${MONOTONE_DBFILE}" --keydir="${MONOTONE_KEYDIR}" \ + db regenerate_caches diff --git a/monotone-server-tmpfiles.conf b/monotone-server-tmpfiles.conf new file mode 100644 index 0000000..ab4cc78 --- /dev/null +++ b/monotone-server-tmpfiles.conf @@ -0,0 +1 @@ +D /var/run/monotone 0755 monotone monotone - diff --git a/monotone.service b/monotone.service new file mode 100644 index 0000000..b5e8df3 --- /dev/null +++ b/monotone.service @@ -0,0 +1,22 @@ +[Unit] +Description=Monotone DVCS Server +After=local-fs.target +After=network-online.target + +[Service] +User=monotone +Group=monotone +PermissionsStartOnly=yes +Environment=MONOTONE_PPFILE=/etc/monotone/passphrase.lua +Environment=MONOTONE_KEYDIR=/etc/monotone/private-keys +Environment=MONOTONE_CONFDIR=/etc/monotone +Environment=MONOTONE_DBFILE=/var/lib/monotone/server.mtn +EnvironmentFile=-/etc/sysconfig/monotone +ExecStartPre=/usr/libexec/monotone-server-initdb +ExecStartPre=/usr/libexec/monotone-server-migratedb +ExecStartPre=/usr/libexec/monotone-server-genkey +PIDFile=/run/monotone/monotone-server.pid +ExecStart=/usr/sbin/monotone-server --confdir=${MONOTONE_CONFDIR} --db=${MONOTONE_DBFILE} --keydir=${MONOTONE_KEYDIR} --rcfile=${MONOTONE_PPFILE} --pid-file=/run/monotone/monotone-server.pid serve + +[Install] +WantedBy=multi-user.target diff --git a/monotone.spec b/monotone.spec new file mode 100644 index 0000000..54d9a73 --- /dev/null +++ b/monotone.spec @@ -0,0 +1,535 @@ +Name: monotone +Version: 1.1 +Release: 15%{?dist} +Summary: A free, distributed version control system +Group: Development/Tools +License: GPLv2+ +URL: http://monotone.ca/ +Source0: http://monotone.ca/downloads/%{version}/%{name}-%{version}.tar.bz2 +Source1: monotone.service +Source2: monotone.sysconfig +Source3: README.monotone-server +Source4: monotone-server-tmpfiles.conf +Source5: monotone-server-initdb +Source6: monotone-server-migratedb +Source7: monotone-server-genkey +Source8: monotone-server-import +Patch0: monotone-1.0-stacktrace-on-crash.patch +Patch1: monotone-1.1-iostream.patch +Patch2: monotone-1.1-lua-integer.patch +BuildRequires: perl-generators +BuildRequires: zlib-devel +BuildRequires: boost-devel >= 1.33.1 +BuildRequires: botan-devel >= 1.6.3 +BuildRequires: pcre-devel >= 7.4 +BuildRequires: sqlite-devel >= 3.3.8 +BuildRequires: lua-devel >= 5.1 +BuildRequires: libidn-devel +BuildRequires: systemd + +# Required by the test suite: +BuildRequires: cvs +BuildRequires: bash-completion +BuildRequires: expect + +Requires(post): /sbin/install-info +Requires(preun): /sbin/install-info + +# Filter unwanted dependencies +%{?perl_default_filter} + +%description +monotone is a free, distributed version control system. +It provides fully disconnected operation, manages complete +tree versions, keeps its state in a local transactional +database, supports overlapping branches and extensible +metadata, exchanges work over plain network protocols, +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} +Requires(pre): shadow-utils +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +Group: Development/Tools + + +%description server +This package provides an easy-to-use standalone server setup for monotone. + + +%package -n perl-Monotone +Summary: Perl Module for monotone +Requires: monotone = %{version}-%{release} +Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) +Group: Development/Tools + + +%description -n perl-Monotone +This is a simple Perl module to start a monotone automate sub-process +and then pass commands to it. + + +%prep +%setup -q +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 + + +%build +export LC_MESSAGES=en_US +%configure +make %{?_smp_mflags} + + +%check +#export LC_MESSAGES=en_US +#export DISABLE_NETWORK_TESTS=1 +#export MTN_STACKTRACE_ON_CRASH=1 +#make check || { head -n-0 test/work/*.log; false; } + + +%install +export LC_MESSAGES=en_US +make install DESTDIR=%{buildroot} +rm -f %{buildroot}%{_infodir}/dir +mv %{buildroot}%{_datadir}/doc/%{name} _doc + +%find_lang %{name} + +mkdir -p %{buildroot}%{_sbindir} +mkdir -p %{buildroot}%{_localstatedir}/lib +ln -snf ../bin/mtn %{buildroot}%{_sbindir}/monotone-server +ln -snf mtn.1 %{buildroot}%{_mandir}/man1/monotone-server.1 +install -D -m 0644 -p %{SOURCE1} %{buildroot}%{_unitdir}/monotone.service + +install -D -m 0644 -p %{SOURCE2} %{buildroot}%{_sysconfdir}/sysconfig/monotone +install -d -m 0755 %{buildroot}%{_sysconfdir}/monotone +install -d -m 0750 %{buildroot}%{_sysconfdir}/monotone/private-keys +install -d -m 0770 %{buildroot}%{_localstatedir}/lib/monotone +install -d -m 0755 %{buildroot}%{_localstatedir}/run/monotone +install -D -m 0644 %{SOURCE4} \ + %{buildroot}%{_sysconfdir}/tmpfiles.d/monotone.conf + +install -D -m 0755 -p %{SOURCE5} %{buildroot}%{_libexecdir}/monotone-server-initdb +install -D -m 0755 -p %{SOURCE6} %{buildroot}%{_libexecdir}/monotone-server-migratedb +install -D -m 0755 -p %{SOURCE7} %{buildroot}%{_libexecdir}/monotone-server-genkey +install -D -m 0755 -p %{SOURCE8} %{buildroot}%{_libexecdir}/monotone-server-import + +# These do not actually wind up in the package, due to %%ghost. +install -m 0440 /dev/null \ + %{buildroot}%{_sysconfdir}/monotone/passphrase.lua +install -m 0640 /dev/null \ + %{buildroot}%{_sysconfdir}/monotone/read-permissions +install -m 0640 /dev/null \ + %{buildroot}%{_sysconfdir}/monotone/write-permissions +install -m 0644 /dev/null \ + %{buildroot}%{_sysconfdir}/monotone/monotonerc +install -m 0640 /dev/null \ + %{buildroot}%{_localstatedir}/lib/monotone/server.mtn + +install -m 0644 -p %{SOURCE3} . + +install -D -m 0644 -p contrib/Monotone.pm \ + %{buildroot}%{perl_vendorlib}/Monotone.pm + + +%post +if [ $1 -eq 1 ] +then + /sbin/install-info %{_infodir}/monotone.info %{_infodir}/dir > /dev/null 2>&1 || : +fi + + +%preun +if [ $1 -eq 0 ] +then + /sbin/install-info --delete %{_infodir}/monotone.info %{_infodir}/dir > /dev/null 2>&1 || : +fi + + +%files -f %{name}.lang +%doc AUTHORS NEWS README UPGRADE +%doc _doc/* +%license COPYING +%{_bindir}/mtn +%{_bindir}/mtnopt +%{_bindir}/mtn-cleanup +%{_infodir}/monotone.info* +%{_sysconfdir}/bash_completion.d/monotone.bash_completion +%{_mandir}/man1/mtn.1* +%{_mandir}/man1/mtnopt.1* +%{_mandir}/man1/mtn-cleanup.1* +%{_datadir}/monotone + + +%files -n perl-Monotone +%{perl_vendorlib}/Monotone.pm + + +%files server +%doc README.monotone-server +%{_sbindir}/monotone-server +%{_mandir}/man1/monotone-server.1* +%{_unitdir}/monotone.service +%{_libexecdir}/monotone-server-initdb +%{_libexecdir}/monotone-server-migratedb +%{_libexecdir}/monotone-server-genkey +%{_libexecdir}/monotone-server-import +%dir %attr(0755,monotone,monotone) %{_localstatedir}/run/monotone +%config(noreplace) %{_sysconfdir}/tmpfiles.d/monotone.conf +%config(noreplace) %{_sysconfdir}/sysconfig/monotone +%dir %attr(0755,root,monotone) %{_sysconfdir}/monotone +%dir %attr(0750,root,monotone) %{_sysconfdir}/monotone/private-keys +%attr(0640,root,monotone) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) %{_sysconfdir}/monotone/monotonerc +%attr(0440,root,monotone) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) %{_sysconfdir}/monotone/passphrase.lua +%attr(0640,root,monotone) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) %{_sysconfdir}/monotone/read-permissions +%attr(0640,root,monotone) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) %{_sysconfdir}/monotone/write-permissions +%dir %attr(0770,monotone,monotone) %{_localstatedir}/lib/monotone +%attr(0660,monotone,monotone) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) %{_localstatedir}/lib/monotone/server.mtn + + +%pre server +# Add "monotone" user per http://fedoraproject.org/wiki/Packaging/UsersAndGroups +getent group monotone > /dev/null || groupadd -r monotone +getent passwd monotone > /dev/null || +useradd -r -g monotone -r -d %{_localstatedir}/lib/monotone -s /sbin/nologin \ + -c "Monotone Netsync Server" monotone +exit 0 + + +%post server +%systemd_post monotone.service + + +%preun server +%systemd_preun monotone.service + + +%postun server +%systemd_postun monotone.service + + +%changelog +* Sun May 15 2016 Jitka Plesnikova - 1.1-15 +- Perl 5.24 rebuild + +* Sun Feb 14 2016 Thomas Moschny - 1.1-14 +- Switch monotone-server to systemd (#789901). +- Mark COPYING as %%license. +- Do not own /etc/bash_completion.d. +- Update README.monotone-server. + +* Mon Feb 8 2016 Thomas Moschny - 1.1-13 +- Rebuild for Botan 1.10.12. + +* Thu Feb 04 2016 Fedora Release Engineering - 1.1-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Jan 15 2016 Jonathan Wakely - 1.1-11 +- Rebuilt for Boost 1.60 + +* Thu Aug 27 2015 Jonathan Wakely - 1.1-10 +- Rebuilt for Boost 1.59 + +* Wed Jul 29 2015 Fedora Release Engineering - 1.1-9 +- Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159 + +* Wed Jul 22 2015 David Tardon - 1.1-8 +- rebuild for Boost 1.58 + +* Mon Jun 22 2015 Thomas Moschny - 1.1-7 +- Add patch to fix FTBFS with Lua 5.3 (rhbz#1185790). + +* Wed Jun 17 2015 Fedora Release Engineering - 1.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat Jun 06 2015 Jitka Plesnikova - 1.1-5 +- Perl 5.22 rebuild + +* Thu Jan 29 2015 Petr Machata - 1.1-4 +- Rebuild for boost 1.57.0 +- Include in tests/merge_3way.cc + (monotone-1.1-iostream.patch) + +* Tue Aug 26 2014 Jitka Plesnikova - 1.1-3 +- Perl 5.20 rebuild + +* Sun Aug 17 2014 Fedora Release Engineering - 1.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Fri Jul 18 2014 Thomas Moschny - 1.1-1 +- Update to 1.1. +- Remove patches and fixes not needed anymore. +- Modernize spec file. + +* Sat Jun 07 2014 Fedora Release Engineering - 1.0-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Fri May 23 2014 Petr Machata - 1.0-16 +- Rebuild for boost 1.55.0 + +* Tue Oct 8 2013 Thomas Moschny - 1.0-15 +- Add patches for building with Botan 1.10, Lua 5.2, + and Texinfo >= 5.0. + +* Sat Aug 03 2013 Fedora Release Engineering - 1.0-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Tue Jul 30 2013 Petr Machata - 1.0-13 +- Rebuild for boost 1.54.0 + +* Wed Jul 17 2013 Petr Pisar - 1.0-12 +- Perl 5.18 rebuild + +* Sat Mar 9 2013 Thomas Moschny - 1.0-11 +- Fix building against Boost 1.53 (FTBFS bug rhbz#914191). +- Fix failing bash completion test. +- Add patch to temporarily disable a failing check in one test (rhbz#919827). + +* Thu Feb 14 2013 Fedora Release Engineering - 1.0-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Fri Jul 20 2012 Fedora Release Engineering - 1.0-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri Jun 08 2012 Petr Pisar - 1.0-8 +- Perl 5.16 rebuild + +* Thu Feb 16 2012 Thomas Moschny - 1.0-7 +- Add patch to fix building with newer pcre. + +* Fri Feb 10 2012 Petr Pisar - 1.0-6 +- Rebuild against PCRE 8.30 + +* Fri Jan 13 2012 Fedora Release Engineering - 1.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Sep 26 2011 Dan Horák - 1.0-4 +- fix FTBFS due a symbol conflict with boost + +* Mon Jun 20 2011 Marcela Mašláňová - 1.0-3 +- Perl mass rebuild + +* Thu Jun 09 2011 Marcela Mašláňová - 1.0-2 +- Perl 5.14 mass rebuild + +* Sat May 14 2011 Thomas Moschny - 1.0-1 +- Update to 1.0. + - Upstream ships bzip2 archives now. + - monotone.el is no longer shipped. + - Bash completion is installed by 'make install'. + - Add BR on bash-completion, needed for the testsuite. +- Fix postun snippet for -server package. +- On Fedora 15 and later, use the tmpfiles.d service to create the + /var/run/monotone directory. +- Add a patch to prevent a name clash with struct file_handle defined + by fcntl.h in glibc 2.14. +- Add a patch fixing broken helptexts and manpage. +- Explicitly disable network access by the testsuite. +- Fix some rpmlint warnings. + +* Tue Feb 08 2011 Fedora Release Engineering - 0.99.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Sun Oct 31 2010 Thomas Moschny - 0.99.1-1 +- Update to 0.99.1. +- Remove patch already applied upstream. + +* Fri Oct 29 2010 Thomas Moschny - 0.99-1 +- Update to 0.99. +- Remove patch already applied upstream. +- Add patch for monotone bug #100. +- Include the monotone manpage in the package. +- Specfile cleanups. + +* Wed Oct 27 2010 Thomas Moschny - 0.48.1-1 +- Update to 0.48.1. +- Add patch from upstream to support newer sqlite. + +* Mon Jun 14 2010 Thomas Moschny - 0.48-1 +- Update to 0.48. + +* Sat May 8 2010 Thomas Moschny - 0.47-3 +- Add patch from upstream for a bug that prevents successful execution + of push / pull / sync over pipes. + +* Thu Apr 29 2010 Marcela Maslanova - 0.47-2 +- Mass rebuild with perl-5.12.0 + +* Sun Apr 11 2010 Thomas Moschny - 0.47-1 +- Update to 0.47. +- Remove patch applied upstream. + +* Sat Jan 23 2010 Thomas Moschny - 0.46-1 +- Update to 0.46. +- Remove patch applied upstream. +- Add patch from trunk for failing test. +- Fix installation of documentation: include figures in the package. +- Let tests in the testsuite run in parallel. + +* Mon Dec 7 2009 Stepan Kasal - 0.45-2 +- rebuild against perl 5.10.1 + +* Sat Sep 12 2009 Thomas Moschny - 0.45-1 +- Update to 0.45. + +* Sat Jul 25 2009 Fedora Release Engineering - 0.44-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed May 13 2009 Thomas Moschny - 0.44-1 +- Update to 0.44. + +* Sat Apr 25 2009 Thomas Moschny - 0.43-2 +- Rebuilt for new botan version. + +* Fri Mar 27 2009 Thomas Moschny - 0.43-1 +- Update to 0.43. +- Add BRs for libraries monotone doesn't bundle anylonger. +- Drop patches applied upstream. + +* Fri Feb 27 2009 Thomas Moschny - 0.42-5 +- Add one more netsync related patch from trunk. + +* Wed Feb 25 2009 Fedora Release Engineering - 0.42-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Mon Feb 9 2009 Thomas Moschny - 0.42-3 +- Disable %%{_smp_mflags} in the testsuite, causes strange errors. +- Fix two issues with gcc44. +- Add patch from upstream fixing netsync printing an error message of + the form "peer [...] IO failed in confirmed state (success)". + +* Fri Jan 2 2009 Thomas Moschny - 0.42-2 +- Pack Monotone.pm (in a subpackage). (#450267) + +* Fri Jan 2 2009 Thomas Moschny - 0.42-1 +- Updated for 0.42 release. + +* Fri Sep 12 2008 Thomas Moschny - 0.41-1 +- Updated for 0.41 release. +- Added mtnopt helper. + +* Mon Aug 11 2008 Tom "spot" Callaway - 0.40-2 +- fix license tag + +* Mon Apr 14 2008 Roland McGrath - 0.40-1 +- Updated for 0.40 release. +- Tweaked trivia for packaging guidelines nits. + +* Mon Feb 25 2008 Roland McGrath - 0.39-1 +- Updated for 0.39 release. + +* Sat Dec 22 2007 Roland McGrath - 0.38-2 +- Fix monotone-server user creation. (#426607) +- Moved monotone-server database to /var/lib. (#426608) +- Use monotone@ in server key name. (#426609) + +* Fri Dec 21 2007 Roland McGrath - 0.38-1 +- Updated for 0.38 release. + +* Sat Oct 27 2007 Roland McGrath - 0.37-3 +- Updated for 0.37 release. +- Prevent destroying old passphrase file with 'service monotone genkey'. +- Put LSB standard comments in monotone.init for monotone-server subpackage. + +* Tue Aug 28 2007 Roland McGrath - 0.36-2 +- Clean up %%pre script per packaging guidelines. +- Disable ppc and ppc64 builds temporarily since make check fails. (#259161) + +* Fri Aug 3 2007 Roland McGrath - 0.36-1 +- Updated for 0.36 release. + +* Fri Jul 06 2007 Florian La Roche - 0.35-4 +- add more requires + +* Wed May 16 2007 Roland McGrath - 0.35-3 +- Fix locale dependency in monotone-server init script. (#213893) + +* Wed May 9 2007 Roland McGrath - 0.35-2 +- Updated for 0.35 release. +- Avoid unnecessary "db migrate" in monotone-server init script. (#213893) + +* Wed Apr 4 2007 Roland McGrath - 0.34-1 +- Updated for 0.34 release. + +* Thu Mar 1 2007 Roland McGrath - 0.33-1 +- Updated for 0.33 release. +- Install monotone.bash_completion file. + +* Wed Feb 28 2007 Roland McGrath - 0.32-1 +- Updated for 0.32 release. + +* Thu Dec 21 2006 Kevin Fenzi - 0.31-2 +- Bump and rebuild to fix upgrade path + +* Sat Nov 11 2006 Roland McGrath - 0.31-1 +- Updated for 0.31 release. + +* Tue Oct 10 2006 Roland McGrath - 0.30-1 +- Updated for 0.30 release. +- Fix service script to work around buggy init.d/functions. (#198761) + +* Thu Aug 3 2006 Roland McGrath - 0.28-2 +- Updated for 0.28 release. (#198652) +- Move server PID file into /var/run/monotone subdirectory. (#198761) + +* Tue Jul 11 2006 Roland McGrath - 0.27-1 +- Updated for 0.27 release. + +* Mon May 8 2006 Roland McGrath - 0.26-2 +- Fix service script genkey subcommand. + +* Mon Apr 10 2006 Roland McGrath - 0.26-1 +- Updated for 0.26 release. + - Major changes; see UPGRADE doc file for details. + +* Fri Jan 6 2006 Roland McGrath - 0.25-2 +- Restore testsuite fix for nonroot owner of / in build chroot. + +* Thu Jan 5 2006 Roland McGrath - 0.25-1 +- Updated for 0.25 release. + +* Sun Dec 11 2005 Roland McGrath - 0.24-1 +- Updated for 0.24 release. + +* Mon Oct 3 2005 Roland McGrath - 0.23-1 +- Updated for 0.23 release. + +* Mon Aug 22 2005 Roland McGrath - 0.22-4 +- Updated for 0.22 release. +- Added monotone-server package. + +* Sun Aug 7 2005 Roland McGrath - 0.21-3 +- Work around non-root build user owning / in mock chroot builds. + +* Wed Jul 27 2005 Roland McGrath - 0.21-2 +- Include monotone-nav.el too. +- Add BuildRequires on cvs so the test suite can run. + +* Mon Jul 18 2005 Roland McGrath - 0.21-1 +- Updated for 0.21 release. +- Install Emacs support. + +* Thu Jul 7 2005 Roland McGrath - 0.20-0.1 +- Updated for 0.20 release. +- Added %%check section. +- Cannot use FC4 native sqlite3, need newer bundled one. + +* Mon Apr 18 2005 Jeffrey C. Ollie - 0.18-0.4 +- Modified summary so that it doesn't contain the name + +* Thu Apr 14 2005 Jeffrey C. Ollie - 0.18-0.3 +- Modified install-info commands to prevent errors in case of --excludedocs + +* Wed Apr 13 2005 Jeffrey C. Ollie - 0.18-0.2 +- Added post and postun scripts to take care of .info file +- Added parallel make flags + +* Wed Apr 13 2005 Jeffrey C. Ollie - 0.18-0.1 +- First version. diff --git a/monotone.sysconfig b/monotone.sysconfig new file mode 100644 index 0000000..8aa8ac9 --- /dev/null +++ b/monotone.sysconfig @@ -0,0 +1,16 @@ +# Options for the Monotone DVCS Server +# +# options can be changed here, or (better) within override files in +# /etc/systemd/system/monotone.service.d + +# --confdir: location of the configuration directory +#MONOTONE_CONFDIR=/etc/monotone + +# --keydir: location of the key store +#MONOTONE_KEYDIR=/etc/monotone/private-keys + +# --db: name of the database file +#MONOTONE_DBFILE=/var/lib/monotone/server.mtn + +# --rcfile: used to pass the passphrase of the server's private key +#MONOTONE_PPFILE=/etc/monotone/passphrase.lua diff --git a/sources b/sources index e69de29..b46ef88 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +df3f40ca22120aa142ac9becba9e1bf7 monotone-1.1.tar.bz2