Compare commits

..

No commits in common. "rawhide" and "f15" have entirely different histories.

23 changed files with 517 additions and 1438 deletions

1
.gitignore vendored
View file

@ -3,4 +3,3 @@ monotone-0.48.tar.gz
/monotone-0.99.tar.gz
/monotone-0.99.1.tar.gz
/monotone-1.0.tar.bz2
/monotone-1.1.tar.bz2

View file

@ -1,38 +1,42 @@
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
The Fedora Extras 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 package a standard Fedora-style init.d script with chkconfig support
for running the server, installed as /usr/sbin/monotone-server.
(This is just a symlink to monotone that the init script 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.
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).
The init.d script will generate a private key for the server to use, if
none exists yet. The key identification will be the host's FQDN (from
/bin/hostname -f). You can use "service monotone genkey [IDENT]" to
generate the private key by hand and set up the unattended server to use
it, supplying a different key identification string if you like.
Before starting the server, the script will migrate an old database
format if you had a previous version of the monotone-server installation.
(This includes converting private keys from the old format.)
You can always do this explicitly with "service monotone migrate".
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
/etc/monotone/write-permissions files, unless you write your own Lua hooks
in /etc/monotone/monotonerc. These files are not created or editted 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,
netwrok 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 "service monotone 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
mtn pubkey me@my.com | sudo service monotone 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.
For problems with this package or its scripts, please file bugs
at http://bugzilla.redhat.com/ for the "monotone" component
in th "Fedora Extras" product.

View file

@ -0,0 +1,155 @@
#
#
# patch "src/rcs_file.cc"
# from [885b3fbe7b6cfed78816f0e57cd71d44616213c6]
# to [03cf68912a4a708545ebce3d415c0e970ddead0b]
#
============================================================
--- src/rcs_file.cc 885b3fbe7b6cfed78816f0e57cd71d44616213c6
+++ src/rcs_file.cc 03cf68912a4a708545ebce3d415c0e970ddead0b
@@ -42,12 +42,12 @@ struct
#ifdef HAVE_MMAP
struct
-file_handle
+rcs_file_handle
{
string const & filename;
off_t length;
int fd;
- file_handle(string const & fn) :
+ rcs_file_handle(string const & fn) :
filename(fn),
length(0),
fd(-1)
@@ -60,13 +60,13 @@ file_handle
if (fd == -1)
throw oops("open of " + filename + " failed");
}
- ~file_handle()
+ ~rcs_file_handle()
{
if (close(fd) == -1)
throw oops("close of " + filename + " failed");
}
};
-struct file_source
+struct rcs_file_source
{
string const & filename;
int fd;
@@ -91,7 +91,7 @@ struct file_source
++pos;
return good();
}
- file_source(string const & fn,
+ rcs_file_source(string const & fn,
int f,
off_t len) :
filename(fn),
@@ -104,7 +104,7 @@ struct file_source
if (mapping == MAP_FAILED)
throw oops("mmap of " + filename + " failed");
}
- ~file_source()
+ ~rcs_file_source()
{
if (munmap(mapping, length) == -1)
throw oops("munmapping " + filename + " failed, after reading RCS file");
@@ -112,12 +112,12 @@ struct
};
#elif defined(WIN32)
struct
-file_handle
+rcs_file_handle
{
string const & filename;
off_t length;
HANDLE fd;
- file_handle(string const & fn) :
+ rcs_file_handle(string const & fn) :
filename(fn),
length(0),
fd(NULL)
@@ -134,7 +134,7 @@ file_handle
if (fd == NULL)
throw oops("open of " + filename + " failed");
}
- ~file_handle()
+ ~rcs_file_handle()
{
if (CloseHandle(fd)==0)
throw oops("close of " + filename + " failed");
@@ -142,7 +142,7 @@ struct
};
struct
-file_source
+rcs_file_source
{
string const & filename;
HANDLE fd,map;
@@ -167,7 +167,7 @@ file_source
++pos;
return good();
}
- file_source(string const & fn,
+ rcs_file_source(string const & fn,
HANDLE f,
off_t len) :
filename(fn),
@@ -183,7 +183,7 @@ file_source
if (mapping==NULL)
throw oops("MapViewOfFile of " + filename + " failed");
}
- ~file_source()
+ ~rcs_file_source()
{
if (UnmapViewOfFile(mapping)==0)
throw oops("UnmapViewOfFile of " + filename + " failed");
@@ -193,7 +193,7 @@ file_source
};
#else
// no mmap at all
-typedef istream file_source;
+typedef istream rcs_file_source;
#endif
typedef enum
@@ -220,7 +220,7 @@ static token_type
}
static token_type
-get_token(file_source & ist,
+get_token(rcs_file_source & ist,
string & str,
size_t & line,
size_t & col)
@@ -303,14 +303,14 @@ struct parser
struct parser
{
- file_source & ist;
+ rcs_file_source & ist;
rcs_file & r;
string token;
token_type ttype;
size_t line, col;
- parser(file_source & s,
+ parser(rcs_file_source & s,
rcs_file & r)
: ist(s), r(r), line(1), col(1)
{}
@@ -489,8 +489,8 @@ parse_rcs_file(string const & filename,
parse_rcs_file(string const & filename, rcs_file & r)
{
#if defined(HAVE_MMAP) || defined(WIN32)
- file_handle handle(filename);
- file_source ifs(filename, handle.fd, handle.length);
+ rcs_file_handle handle(filename);
+ rcs_file_source ifs(filename, handle.fd, handle.length);
#else
ifstream ifs(filename.c_str());
ifs.unsetf(ios_base::skipws);

View file

@ -0,0 +1,21 @@
#
#
# patch "src/options_list.hh"
# from [0462e302b89179f4acb28ecb91f4255140d4a4a7]
# to [27c44e89ebc9a828ac0a7b91505f997884646062]
#
============================================================
--- src/options_list.hh 0462e302b89179f4acb28ecb91f4255140d4a4a7
+++ src/options_list.hh 27c44e89ebc9a828ac0a7b91505f997884646062
@@ -381,9 +381,9 @@ SIMPLE_OPTION(move_conflicting_paths,
SIMPLE_OPTION(move_conflicting_paths,
"move-conflicting-paths/no-move-conflicting-paths",
bool,
- (F("move conflicting, unversioned paths into '%s' "
+ strdup((F("move conflicting, unversioned paths into '%s' "
"before proceeding with any workspace change") %
- bookkeeping_resolutions_dir).str().c_str())
+ bookkeeping_resolutions_dir).str().c_str()))
OPTSET_REL(globals, ssh_sign)
SIMPLE_INITIALIZED_OPTION(ssh_sign, "ssh-sign", enum_string, "yes,no,only,check",

View file

@ -1,63 +0,0 @@
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 <signal.h>
-#include <time.h>
+#include <stdlib.h>
#include <string.h>
#include <sys/resource.h>
#include <unistd.h>
+#include <time.h>
+
+#if __GLIBC__ >= 3 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1)
+# define HAVE_BACKTRACE
+# include <execinfo.h>
+#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);

View file

@ -1,555 +0,0 @@
A function macro named E clashes with internal boost definitions. Rearrange
the order of header inclusion so that affected boost headers are included
before monotone defines the macro.
Also, stop bundling boost/circular_buffer, which is available in current
versions of boost.
diff -up monotone-1.1/Makefile.in.orig monotone-1.1/Makefile.in
--- monotone-1.1/Makefile.in.orig 2014-05-04 03:18:01.000000000 -0600
+++ monotone-1.1/Makefile.in 2020-06-30 10:02:57.849746309 -0600
@@ -156,10 +156,7 @@ am__v_AR_1 =
src_lib3rdparty_a_AR = $(AR) $(ARFLAGS)
src_lib3rdparty_a_LIBADD =
am__src_lib3rdparty_a_SOURCES_DIST = \
- src/boost/circular_buffer_adaptor.hpp \
- src/boost/circular_buffer_base.hpp \
- src/boost/circular_buffer_fwd.hpp \
- src/boost/circular_buffer.hpp src/netxx/accept.cxx \
+ src/netxx/accept.cxx \
src/netxx/accept.h src/netxx/address.cxx src/netxx/common.h \
src/netxx/compat.h src/netxx/datagram.cxx \
src/netxx/datagramserver.cxx src/netxx/osutil.cxx \
@@ -933,12 +930,6 @@ NETXX_SOURCES = \
src/netxx/stream.h src/netxx/streambase.h \
src/netxx/streamserver.h src/netxx/timeout.h src/netxx/types.h
-BOOST_SANDBOX_SOURCES = \
- src/boost/circular_buffer_adaptor.hpp \
- src/boost/circular_buffer_base.hpp \
- src/boost/circular_buffer_fwd.hpp \
- src/boost/circular_buffer.hpp
-
UNIX_PLATFORM_SOURCES = \
src/unix/read_password.cc src/unix/get_system_flavour.cc \
src/unix/process.cc src/unix/terminal.cc src/unix/inodeprint.cc \
@@ -1026,7 +1017,7 @@ nodist_test_bin_tester_SOURCES = test/sr
noinst_LIBRARIES = src/libplatform.a src/lib3rdparty.a
src_libplatform_a_SOURCES = src/platform.hh $(am__append_1) \
$(am__append_6)
-src_lib3rdparty_a_SOURCES = $(BOOST_SANDBOX_SOURCES) $(NETXX_SOURCES) \
+src_lib3rdparty_a_SOURCES = $(NETXX_SOURCES) \
$(am__append_9) $(am__append_11) $(am__append_13) \
$(am__append_14)
bashcompdir = $(sysconfdir)/bash_completion.d
diff -up monotone-1.1/src/ancestry.cc.orig monotone-1.1/src/ancestry.cc
--- monotone-1.1/src/ancestry.cc.orig 2014-05-04 03:15:15.000000000 -0600
+++ monotone-1.1/src/ancestry.cc 2020-06-30 11:34:52.796544704 -0600
@@ -8,8 +8,8 @@
// PURPOSE.
#include "base.hh"
-#include "sanity.hh"
#include "revision.hh"
+#include "sanity.hh"
#include "rev_height.hh"
#include "roster.hh"
diff -up monotone-1.1/src/asciik.hh.orig monotone-1.1/src/asciik.hh
--- monotone-1.1/src/asciik.hh.orig 2014-05-04 03:15:15.000000000 -0600
+++ monotone-1.1/src/asciik.hh 2020-06-30 10:15:12.007654082 -0600
@@ -11,8 +11,8 @@
#define __ASCIIK_HH__
#include <set>
-#include "vector.hh"
#include "vocab.hh"
+#include "vector.hh"
class asciik
{
diff -up monotone-1.1/src/automate.cc.orig monotone-1.1/src/automate.cc
--- monotone-1.1/src/automate.cc.orig 2014-05-04 03:15:16.000000000 -0600
+++ monotone-1.1/src/automate.cc 2020-06-30 11:38:43.421264711 -0600
@@ -13,12 +13,12 @@
#include <iterator>
#include <sstream>
#include <unistd.h>
-#include "vector.hh"
#include <boost/bind.hpp>
#include <boost/function.hpp>
#include "lexical_cast.hh"
#include <boost/tuple/tuple.hpp>
+#include "vector.hh"
#include "app_state.hh"
#include "automate_stdio_helpers.hh"
diff -up monotone-1.1/src/basic_io.hh.orig monotone-1.1/src/basic_io.hh
--- monotone-1.1/src/basic_io.hh.orig 2014-05-04 03:15:16.000000000 -0600
+++ monotone-1.1/src/basic_io.hh 2020-06-30 09:47:13.560973524 -0600
@@ -11,11 +11,11 @@
#ifndef __BASIC_IO_HH__
#define __BASIC_IO_HH__
-#include "vector.hh"
#include <map>
#include "paths.hh"
#include "sanity.hh"
+#include "vector.hh"
#include "vocab.hh"
#include "numeric_vocab.hh"
#include "char_classifiers.hh"
diff -up monotone-1.1/src/charset.cc.orig monotone-1.1/src/charset.cc
--- monotone-1.1/src/charset.cc.orig 2014-05-04 03:15:16.000000000 -0600
+++ monotone-1.1/src/charset.cc 2020-06-30 09:37:09.073857197 -0600
@@ -7,13 +7,13 @@
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
// PURPOSE.
-#include "base.hh"
-#include "vector.hh"
-
#include <boost/tokenizer.hpp>
#include <idna.h>
#include <stringprep.h>
+#include "base.hh"
+#include "vector.hh"
+
#include "charset.hh"
#include "numeric_vocab.hh"
#include "sanity.hh"
diff -up monotone-1.1/src/cmd_list.cc.orig monotone-1.1/src/cmd_list.cc
--- monotone-1.1/src/cmd_list.cc.orig 2014-05-04 03:15:16.000000000 -0600
+++ monotone-1.1/src/cmd_list.cc 2020-06-30 10:12:30.695874287 -0600
@@ -10,7 +10,6 @@
#include "base.hh"
#include <algorithm>
-#include "safe_map.hh"
#include <utility>
#include <iostream>
#include <iterator>
@@ -18,6 +17,7 @@
#include <boost/tuple/tuple.hpp>
#include "basic_io.hh"
+#include "safe_map.hh"
#include "cert.hh"
#include "charset.hh"
#include "cmd.hh"
diff -up monotone-1.1/src/commands.hh.orig monotone-1.1/src/commands.hh
--- monotone-1.1/src/commands.hh.orig 2014-05-04 03:15:16.000000000 -0600
+++ monotone-1.1/src/commands.hh 2020-06-30 10:09:04.000156549 -0600
@@ -10,8 +10,8 @@
#ifndef __COMMANDS_HH__
#define __COMMANDS_HH__
-#include "vector.hh"
#include "options.hh"
+#include "vector.hh"
class app_state;
class utf8;
diff -up monotone-1.1/src/database.cc.orig monotone-1.1/src/database.cc
--- monotone-1.1/src/database.cc.orig 2014-05-04 03:15:16.000000000 -0600
+++ monotone-1.1/src/database.cc 2020-06-30 11:07:31.767911489 -0600
@@ -17,13 +17,13 @@
#include <numeric>
#include <set>
#include <sstream>
-#include "vector.hh"
#include <string.h>
#include <boost/bind.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/tuple/tuple.hpp>
#include <boost/tuple/tuple_comparison.hpp>
+#include "vector.hh"
#include <botan/botan.h>
#include <botan/rsa.h>
diff -up monotone-1.1/src/database.hh.orig monotone-1.1/src/database.hh
--- monotone-1.1/src/database.hh.orig 2014-05-04 03:15:16.000000000 -0600
+++ monotone-1.1/src/database.hh 2020-06-30 11:39:49.533184469 -0600
@@ -11,10 +11,10 @@
#ifndef __DATABASE_HH__
#define __DATABASE_HH__
-#include "vector.hh"
#include <set>
#include <boost/function.hpp>
#include <boost/shared_ptr.hpp>
+#include "vector.hh"
#include "rev_types.hh"
#include "cert.hh"
diff -up monotone-1.1/src/enumerator.cc.orig monotone-1.1/src/enumerator.cc
--- monotone-1.1/src/enumerator.cc.orig 2014-05-04 03:15:16.000000000 -0600
+++ monotone-1.1/src/enumerator.cc 2020-06-30 11:17:48.813031155 -0600
@@ -11,9 +11,9 @@
#include <deque>
#include <map>
#include <set>
-#include "vector.hh"
#include "cset.hh"
+#include "vector.hh"
#include "enumerator.hh"
#include "revision.hh"
#include "vocab.hh"
diff -up monotone-1.1/src/file_io.cc.orig monotone-1.1/src/file_io.cc
--- monotone-1.1/src/file_io.cc.orig 2014-05-04 03:15:16.000000000 -0600
+++ monotone-1.1/src/file_io.cc 2020-06-30 09:50:13.560669858 -0600
@@ -12,9 +12,9 @@
#include <fstream>
#include <botan/botan.h>
-#include "botan_pipe_cache.hh"
#include "file_io.hh"
+#include "botan_pipe_cache.hh"
#include "sanity.hh"
#include "simplestring_xform.hh"
#include "charset.hh"
diff -up monotone-1.1/src/globish.cc.orig monotone-1.1/src/globish.cc
--- monotone-1.1/src/globish.cc.orig 2014-05-04 03:15:16.000000000 -0600
+++ monotone-1.1/src/globish.cc 2020-06-30 09:56:22.529324520 -0600
@@ -9,9 +9,9 @@
// PURPOSE.
#include "base.hh"
+#include "option.hh" // for arg_type
#include "sanity.hh"
#include "globish.hh"
-#include "option.hh" // for arg_type
#include "numeric_vocab.hh"
#include <iterator>
diff -up monotone-1.1/src/hmac.cc.orig monotone-1.1/src/hmac.cc
--- monotone-1.1/src/hmac.cc.orig 2014-05-04 03:15:17.000000000 -0600
+++ monotone-1.1/src/hmac.cc 2020-06-30 11:43:21.171953985 -0600
@@ -10,9 +10,9 @@
#include "base.hh"
#include <botan/botan.h>
-#include "sanity.hh"
#include "hmac.hh"
#include "vocab.hh"
+#include "sanity.hh"
#include "constants.hh"
using std::string;
diff -up monotone-1.1/src/key_store.hh.orig monotone-1.1/src/key_store.hh
--- monotone-1.1/src/key_store.hh.orig 2014-05-04 03:15:17.000000000 -0600
+++ monotone-1.1/src/key_store.hh 2020-06-30 11:06:22.925984151 -0600
@@ -19,8 +19,8 @@
#include <botan/libstate.h>
#endif
-#include "vector.hh"
#include "vocab.hh"
+#include "vector.hh"
#include "paths.hh"
class app_state;
diff -up monotone-1.1/src/migrate_work.cc.orig monotone-1.1/src/migrate_work.cc
--- monotone-1.1/src/migrate_work.cc.orig 2014-05-04 03:15:17.000000000 -0600
+++ monotone-1.1/src/migrate_work.cc 2020-06-30 10:57:13.325615053 -0600
@@ -8,8 +8,8 @@
// PURPOSE.
#include "base.hh"
-#include "sanity.hh"
#include "cset.hh"
+#include "sanity.hh"
#include "simplestring_xform.hh"
#include "revision.hh"
#include "file_io.hh"
diff -up monotone-1.1/src/netcmd.cc.orig monotone-1.1/src/netcmd.cc
--- monotone-1.1/src/netcmd.cc.orig 2014-05-04 03:15:17.000000000 -0600
+++ monotone-1.1/src/netcmd.cc 2020-06-30 11:29:04.877013138 -0600
@@ -8,11 +8,11 @@
// PURPOSE.
#include "base.hh"
-#include "vector.hh"
#include <utility>
#include "constants.hh"
#include "netcmd.hh"
+#include "vector.hh"
#include "netio.hh"
#include "numeric_vocab.hh"
#include "sanity.hh"
diff -up monotone-1.1/src/netcmd.hh.orig monotone-1.1/src/netcmd.hh
--- monotone-1.1/src/netcmd.hh.orig 2014-05-04 03:15:17.000000000 -0600
+++ monotone-1.1/src/netcmd.hh 2020-06-30 11:25:11.916333993 -0600
@@ -10,13 +10,13 @@
#ifndef __NETCMD_HH__
#define __NETCMD_HH__
-#include "vector.hh"
#include <list>
#include <utility>
#include <iostream>
-#include "globish.hh"
#include "merkle_tree.hh"
+#include "vector.hh"
+#include "globish.hh"
#include "numeric_vocab.hh"
#include "uri.hh"
#include "vocab.hh"
diff -up monotone-1.1/src/network/listener_base.hh.orig monotone-1.1/src/network/listener_base.hh
--- monotone-1.1/src/network/listener_base.hh.orig 2014-05-04 03:15:17.000000000 -0600
+++ monotone-1.1/src/network/listener_base.hh 2020-06-30 11:19:34.500864837 -0600
@@ -11,10 +11,10 @@
#ifndef __LISTENER_BASE_HH__
#define __LISTENER_BASE_HH__
-#include "reactable.hh"
-
#include <boost/shared_ptr.hpp>
+#include "reactable.hh"
+
// This is not currently needed because there's only one kind of listener.
// But it's already here and not hurting anything, and might be useful if
// we want to add another kind of listener later (something that accepts
diff -up monotone-1.1/src/option.hh.orig monotone-1.1/src/option.hh
--- monotone-1.1/src/option.hh.orig 2014-05-04 03:15:17.000000000 -0600
+++ monotone-1.1/src/option.hh 2020-06-30 09:23:18.706152659 -0600
@@ -22,9 +22,9 @@
#include <stdexcept>
#include <map>
#include <set>
-#include "vector.hh"
-
#include <boost/function.hpp>
+
+#include "vector.hh"
#include "lexical_cast.hh"
#include "sanity.hh"
diff -up monotone-1.1/src/project.cc.orig monotone-1.1/src/project.cc
--- monotone-1.1/src/project.cc.orig 2014-05-04 03:15:17.000000000 -0600
+++ monotone-1.1/src/project.cc 2020-06-30 10:58:34.582498413 -0600
@@ -8,9 +8,9 @@
// PURPOSE.
#include "base.hh"
-#include "vector.hh"
#include "cert.hh"
+#include "vector.hh"
#include "database.hh"
#include "date_format.hh"
#include "project.hh"
diff -up monotone-1.1/src/rcs_file.cc.orig monotone-1.1/src/rcs_file.cc
--- monotone-1.1/src/rcs_file.cc.orig 2014-05-04 03:15:17.000000000 -0600
+++ monotone-1.1/src/rcs_file.cc 2020-06-30 11:10:45.213647993 -0600
@@ -10,7 +10,6 @@
#include "base.hh"
#include <fstream>
-#include "vector.hh"
#ifdef WIN32
#include <windows.h>
@@ -32,6 +31,7 @@
#endif
#include "rcs_file.hh"
+#include "vector.hh"
#include "sanity.hh"
#include "char_classifiers.hh"
diff -up monotone-1.1/src/rcs_file.hh.orig monotone-1.1/src/rcs_file.hh
--- monotone-1.1/src/rcs_file.hh.orig 2014-05-04 03:15:17.000000000 -0600
+++ monotone-1.1/src/rcs_file.hh 2020-06-30 11:14:24.238333814 -0600
@@ -10,9 +10,9 @@
#ifndef __RCS_FILE_HH__
#define __RCS_FILE_HH__
-#include "vector.hh"
#include <map>
#include <boost/shared_ptr.hpp>
+#include "vector.hh"
struct rcs_admin
{
diff -up monotone-1.1/src/rcs_import.cc.orig monotone-1.1/src/rcs_import.cc
--- monotone-1.1/src/rcs_import.cc.orig 2014-05-04 03:15:17.000000000 -0600
+++ monotone-1.1/src/rcs_import.cc 2020-06-30 11:29:44.579958676 -0600
@@ -16,13 +16,13 @@
#include <sstream>
#include <stack>
#include <stdexcept>
-#include "vector.hh"
#include <cstring> // memset
#include <boost/shared_ptr.hpp>
#include <boost/scoped_ptr.hpp>
#include "lexical_cast.hh"
#include <boost/tokenizer.hpp>
+#include "vector.hh"
#include "cert.hh"
#include "constants.hh"
diff -up monotone-1.1/src/restrictions.cc.orig monotone-1.1/src/restrictions.cc
--- monotone-1.1/src/restrictions.cc.orig 2014-05-04 03:15:17.000000000 -0600
+++ monotone-1.1/src/restrictions.cc 2020-06-30 11:43:53.380932870 -0600
@@ -8,9 +8,9 @@
// PURPOSE.
#include "base.hh"
+#include "restrictions.hh"
#include "safe_map.hh"
#include "vector.hh"
-#include "restrictions.hh"
#include "file_io.hh"
#include "roster.hh"
#include "database.hh" // for parent_roster
diff -up monotone-1.1/src/revision.hh.orig monotone-1.1/src/revision.hh
--- monotone-1.1/src/revision.hh.orig 2014-05-04 03:15:18.000000000 -0600
+++ monotone-1.1/src/revision.hh 2020-06-30 11:18:10.388997198 -0600
@@ -11,8 +11,8 @@
#define __REVISION_HH__
#include <set>
-#include "vector.hh"
#include "rev_types.hh"
+#include "vector.hh"
class key_store;
class node_restriction;
diff -up monotone-1.1/src/roster.cc.orig monotone-1.1/src/roster.cc
--- monotone-1.1/src/roster.cc.orig 2014-05-04 03:15:18.000000000 -0600
+++ monotone-1.1/src/roster.cc 2020-06-30 11:35:20.489511075 -0600
@@ -11,10 +11,10 @@
#include "base.hh"
#include <algorithm>
#include <set>
-#include "vector.hh"
#include <sstream>
#include "basic_io.hh"
+#include "vector.hh"
#include "cset.hh"
#include "database.hh"
#include "platform-wrapped.hh"
diff -up monotone-1.1/src/sanity.cc.orig monotone-1.1/src/sanity.cc
--- monotone-1.1/src/sanity.cc.orig 2014-05-04 03:15:18.000000000 -0600
+++ monotone-1.1/src/sanity.cc 2020-06-30 09:32:43.994207307 -0600
@@ -12,12 +12,11 @@
#include <iterator>
#include <fstream>
#include <sstream>
-#include "vector.hh"
-
#include <boost/format.hpp>
-// circular_buffer is not in Boost 1.34; it's in monotone/boost.
-#include "boost/circular_buffer.hpp"
+#include "vector.hh"
+
+#include <boost/circular_buffer.hpp>
#include "lexical_cast.hh"
#include "constants.hh"
diff -up monotone-1.1/src/sanity.hh.orig monotone-1.1/src/sanity.hh
--- monotone-1.1/src/sanity.hh.orig 2014-05-04 03:15:18.000000000 -0600
+++ monotone-1.1/src/sanity.hh 2020-06-30 09:31:59.698281778 -0600
@@ -14,7 +14,7 @@
#include <ostream>
#include <cstdio>
-#include "boost/current_function.hpp"
+#include <boost/current_function.hpp>
#include "numeric_vocab.hh"
#include "origin_type.hh"
diff -up monotone-1.1/src/sha1.cc.orig monotone-1.1/src/sha1.cc
--- monotone-1.1/src/sha1.cc.orig 2014-05-04 03:15:18.000000000 -0600
+++ monotone-1.1/src/sha1.cc 2020-06-30 11:51:10.427645711 -0600
@@ -22,10 +22,10 @@
#include <botan/benchmark.h>
#endif
-#include "sanity.hh"
-#include "ui.hh"
#include "platform.hh"
#include "cmd.hh"
+#include "sanity.hh"
+#include "ui.hh"
#include "transforms.hh"
using std::string;
diff -up monotone-1.1/src/transforms.cc.orig monotone-1.1/src/transforms.cc
--- monotone-1.1/src/transforms.cc.orig 2014-05-04 03:15:18.000000000 -0600
+++ monotone-1.1/src/transforms.cc 2020-06-30 10:19:25.976307371 -0600
@@ -12,12 +12,12 @@
#include <botan/botan.h>
#include <botan/sha160.h>
-#include "botan_pipe_cache.hh"
-#include "gzip.hh"
-
#include "transforms.hh"
#include "char_classifiers.hh"
+#include "botan_pipe_cache.hh"
+#include "gzip.hh"
+
using std::string;
using Botan::Pipe;
using Botan::Base64_Encoder;
diff -up monotone-1.1/src/update.cc.orig monotone-1.1/src/update.cc
--- monotone-1.1/src/update.cc.orig 2014-05-04 03:15:18.000000000 -0600
+++ monotone-1.1/src/update.cc 2020-06-30 11:03:03.726194356 -0600
@@ -9,9 +9,9 @@
#include "base.hh"
#include <set>
+#include "lexical_cast.hh"
#include "safe_map.hh"
#include "vector.hh"
-#include "lexical_cast.hh"
#include "database.hh"
#include "sanity.hh"
diff -up monotone-1.1/src/vocab.cc.orig monotone-1.1/src/vocab.cc
--- monotone-1.1/src/vocab.cc.orig 2014-05-04 03:15:18.000000000 -0600
+++ monotone-1.1/src/vocab.cc 2020-06-30 09:36:18.769919254 -0600
@@ -11,8 +11,8 @@
#include "base.hh"
#include "constants.hh"
#include "hash_map.hh"
-#include "sanity.hh"
#include "vocab.hh"
+#include "sanity.hh"
#include "char_classifiers.hh"
#include "transforms.hh"
diff -up monotone-1.1/src/xdelta.cc.orig monotone-1.1/src/xdelta.cc
--- monotone-1.1/src/xdelta.cc.orig 2014-05-04 03:15:19.000000000 -0600
+++ monotone-1.1/src/xdelta.cc 2020-06-30 11:13:38.014400075 -0600
@@ -26,7 +26,6 @@
#include "base.hh"
#include <algorithm>
-#include "vector.hh"
#include <set>
#include <sstream>
#include <cstring> // memcmp
@@ -34,6 +33,7 @@
#include <boost/shared_ptr.hpp>
#include <boost/version.hpp>
+#include "vector.hh"
#include "adler32.hh"
#include "hash_map.hh"
#include "numeric_vocab.hh"

View file

@ -1,111 +0,0 @@
Do not catch exceptions of polymorphic type by value, as that requires the
compiler to slice the exceptions. Catching them by reference allows the
compiler to emit more efficient code.
--- monotone-1.1/src/dates.cc.orig 2014-05-04 03:15:16.000000000 -0600
+++ monotone-1.1/src/dates.cc 2020-06-30 12:15:35.765139561 -0600
@@ -652,7 +652,7 @@ date_t::date_t(string const & s)
d = our_timegm(t);
}
- catch (std::out_of_range)
+ catch (std::out_of_range &)
{
E(false, origin::user,
F("unrecognized date (monotone only understands ISO 8601 format)"));
--- monotone-1.1/src/key_packet.cc.orig 2014-05-04 03:15:17.000000000 -0600
+++ monotone-1.1/src/key_packet.cc 2020-06-30 12:14:15.581206185 -0600
@@ -139,7 +139,7 @@ namespace
}
// since we do not want to prompt for a password to decode it finally,
// we ignore all other exceptions
- catch (Botan::Invalid_Argument) {}
+ catch (Botan::Invalid_Argument &) {}
}
void validate_no_more_args(istringstream & iss) const
{
--- monotone-1.1/src/key_store.cc.orig 2014-05-04 03:15:17.000000000 -0600
+++ monotone-1.1/src/key_store.cc 2020-06-30 12:14:36.965188418 -0600
@@ -622,7 +622,7 @@ key_store_state::decrypt_private_key(key
break;
}
#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,4)
- catch (Botan::Invalid_Argument)
+ catch (Botan::Invalid_Argument &)
#else
catch (Botan::Exception & e)
#endif
--- monotone-1.1/src/network/session.cc.orig 2014-05-04 03:15:17.000000000 -0600
+++ monotone-1.1/src/network/session.cc 2020-06-30 12:15:10.949160179 -0600
@@ -362,7 +362,7 @@ bool session::do_work(transaction_guard
% errmsg.substr(4));
}
}
- catch (boost::bad_lexical_cast)
+ catch (boost::bad_lexical_cast &)
{ // ok, so it wasn't a number
}
}
--- monotone-1.1/src/option.cc.orig 2014-05-04 03:15:17.000000000 -0600
+++ monotone-1.1/src/option.cc 2020-06-30 12:12:46.420100297 -0600
@@ -522,7 +522,7 @@ void concrete_option_set::from_command_l
o.resetter();
}
}
- catch (boost::bad_lexical_cast)
+ catch (boost::bad_lexical_cast &)
{
throw bad_arg(o.longname, arg);
}
@@ -567,7 +567,7 @@ void concrete_option_set::from_key_value
o.resetter();
}
}
- catch (boost::bad_lexical_cast)
+ catch (boost::bad_lexical_cast &)
{
throw bad_arg(o.longname, value);
}
--- monotone-1.1/src/packet.cc.orig 2014-05-04 03:15:17.000000000 -0600
+++ monotone-1.1/src/packet.cc 2020-06-30 12:13:54.197195613 -0600
@@ -192,9 +192,9 @@ namespace
// since we do not want to prompt for a password to decode it finally,
// we ignore all other exceptions
#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)
- catch (Passphrase_Required) {}
+ catch (Passphrase_Required &) {}
#else
- catch (Botan::Invalid_Argument) {}
+ catch (Botan::Invalid_Argument &) {}
#endif
}
void validate_certname(string const & cn) const
--- monotone-1.1/src/paths.hh.orig 2014-05-04 03:15:17.000000000 -0600
+++ monotone-1.1/src/paths.hh 2020-06-30 12:12:29.845076986 -0600
@@ -424,7 +424,7 @@ bool safe_compose(T const & p, char cons
result = p / path_component(s);
return true;
}
- catch (std::logic_error)
+ catch (std::logic_error &)
{
report_failed_path_composition(p, s, isdir);
return false;
--- monotone-1.1/src/sanity.cc.orig 2020-06-30 09:32:43.994207307 -0600
+++ monotone-1.1/src/sanity.cc 2020-06-30 12:13:32.165164632 -0600
@@ -433,13 +433,13 @@ sanity::gasp()
(*i)->gasp(tmp);
out << tmp;
}
- catch (logic_error)
+ catch (logic_error &)
{
out << tmp;
out << "<caught logic_error>\n";
L(FL("ignoring error trigged by saving work set to debug log"));
}
- catch (recoverable_failure)
+ catch (recoverable_failure &)
{
out << tmp;
out << "<caught informative_failure>\n";

View file

@ -1,14 +0,0 @@
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 <iostream>
+
using std::cerr;
using std::cout;
using std::stringstream;
Diff finished. Thu Jan 29 02:24:29 2015

View file

@ -1,52 +0,0 @@
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 = ""

View file

@ -1,15 +0,0 @@
The LUA_QL macro was removed in lua 5.4.0. Make the same transformation
as was made in the lua code itself.
diff -up monotone-1.1/src/lua_hooks.cc.orig monotone-1.1/src/lua_hooks.cc
--- monotone-1.1/src/lua_hooks.cc.orig 2014-05-04 03:15:17.000000000 -0600
+++ monotone-1.1/src/lua_hooks.cc 2020-06-30 10:22:58.480017092 -0600
@@ -90,7 +90,7 @@ extern "C"
s = lua_tostring(LS, -1);
if (s == NULL)
return luaL_error(
- LS, LUA_QL("tostring") " must return a string to ", LUA_QL("print")
+ LS, "'tostring' must return a string to 'print'"
);
if (i > 1)

View file

@ -1,66 +0,0 @@
From 70f209ad582121750d54e3692b1e62c7f36af6f9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Mon, 7 May 2018 14:09:06 +0200
Subject: [PATCH] Adapt to changes in pcre-8.42
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
pcre-8.42 replaced internal real_pcre with real_pcre8_or_16. This
broke monotone that decided not to use the public "pcre" type.
This patch adapts monotone to the pcre >= 8.42.
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
src/pcrewrap.cc | 4 ++--
src/pcrewrap.hh | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/pcrewrap.cc b/src/pcrewrap.cc
index 8c0c9d1..30bafff 100644
--- a/src/pcrewrap.cc
+++ b/src/pcrewrap.cc
@@ -74,7 +74,7 @@ get_capturecount(void const * bd)
namespace pcre
{
typedef map<char const *,
- pair<struct real_pcre const *, struct pcre_extra const *> >
+ pair<struct real_pcre8_or_16 const *, struct pcre_extra const *> >
regex_cache;
class regex_cache_manager
@@ -86,7 +86,7 @@ public:
}
void store(char const * pattern,
- pair<struct real_pcre const *, struct pcre_extra const *>
+ pair<struct real_pcre8_or_16 const *, struct pcre_extra const *>
data)
{
cache[pattern] = data;
diff --git a/src/pcrewrap.hh b/src/pcrewrap.hh
index 3359cdd..5008e88 100644
--- a/src/pcrewrap.hh
+++ b/src/pcrewrap.hh
@@ -18,7 +18,7 @@
// definitions and so we don't actually expose it here. Unfortunately, this
// means we have to hope this pair of forward declarations will not change...
-struct real_pcre;
+struct real_pcre8_or_16;
struct pcre_extra;
namespace pcre
@@ -61,7 +61,7 @@ namespace pcre
regex & operator=(regex const &);
// data
- struct real_pcre const * basedat;
+ struct real_pcre8_or_16 const * basedat;
struct pcre_extra const * extradat;
// used by constructors
--
2.14.3

View file

@ -1,23 +0,0 @@
diff -up monotone-1.1/extra/mtn-hooks/monotone-ciabot.py.orig monotone-1.1/extra/mtn-hooks/monotone-ciabot.py
--- monotone-1.1/extra/mtn-hooks/monotone-ciabot.py.orig 2019-08-10 09:00:03.203454091 +0200
+++ monotone-1.1/extra/mtn-hooks/monotone-ciabot.py 2019-08-10 09:07:13.873700583 +0200
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# Copyright (C) Nathaniel Smith <njs@pobox.com>
# Timothy Brownawell <tbrownaw@gmail.com>
@@ -192,10 +192,10 @@ def escape_for_xml(text, is_attrib=0):
def send_message(message, c):
if c.delivery == "debug":
- print message
+ print(message)
elif c.delivery == "xmlrpc":
- import xmlrpclib
- xmlrpclib.ServerProxy(c.xmlrpc_server).hub.deliver(message)
+ import xmlrpc.client
+ xmlrpc.client.ServerProxy(c.xmlrpc_server).hub.deliver(message)
elif c.delivery == "email":
import smtplib
smtp = smtplib.SMTP(c.smtp_server)

View file

@ -1,28 +0,0 @@
Ensure that the string in SSH_AUTH_SOCK is not too large to fit in a Unix
sockaddr, and only copy the bytes of the supplied string. The original code
goes on to copy bytes beyond the end of the string.
--- monotone-1.1/src/unix/ssh_agent_platform.cc.orig 2014-05-04 03:15:18.000000000 -0600
+++ monotone-1.1/src/unix/ssh_agent_platform.cc 2020-06-30 12:25:54.068518536 -0600
@@ -35,8 +35,9 @@ static int
connect_to_agent()
{
const char *authsocket = getenv("SSH_AUTH_SOCK");
+ struct sockaddr_un addr;
- if (!authsocket || !*authsocket)
+ if (!authsocket || !*authsocket || strlen(authsocket) >= sizeof(addr.sun_path))
{
L(FL("ssh_agent: no agent"));
return -1;
@@ -57,9 +58,8 @@ connect_to_agent()
return -1;
}
- struct sockaddr_un addr;
addr.sun_family = AF_UNIX;
- strncpy(addr.sun_path, authsocket, sizeof(addr.sun_path));
+ strcpy(addr.sun_path, authsocket);
if (::connect(sock, (struct sockaddr *)&addr, sizeof addr))
{

View file

@ -1,62 +0,0 @@
#!/bin/sh
#
# Generate a new private server key for the Monotone Server, if needed
#
# Author: Thomas Moschny <thomas.moschny@gmx.de>
#
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}" <<EOF
function get_passphrase(keyid)
return "${passphrase}"
end
EOF

View file

@ -1,23 +0,0 @@
#!/bin/sh
#
# Import packages into the Monotone Server database
#
# Author: Thomas Moschny <thomas.moschny@gmx.de>
#
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

View file

@ -1,34 +0,0 @@
#!/bin/sh
#
# Initialize a new database for the Monotone Server, if needed
#
# Author: Thomas Moschny <thomas.moschny@gmx.de>
#
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}"

View file

@ -1,41 +0,0 @@
#!/bin/sh
#
# Migrate the Monotone Server database, if needed
#
# Author: Thomas Moschny <thomas.moschny@gmx.de>
#
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

View file

@ -1,2 +0,0 @@
#Type Name ID GECOS Home directory Shell
u monotone - "Monotone Netsync Server" /var/lib/monotone

231
monotone.init Normal file
View file

@ -0,0 +1,231 @@
#!/bin/sh
#
# This script starts and stops the monotone server.
#
# chkconfig: - 90 10
# description: Monotone netsync protocol server
# processname: monotone-server
# pidfile: /var/run/monotone/monotone-server.pid
# config: /etc/sysconfig/monotone
# config: /etc/monotone/monotonerc
#
### BEGIN INIT INFO
# Provides: monotone
# Required-Start: $local_fs $network $named $time
# Required-Stop: $local_fs $network
# Short-Description: start and stop Monotone netsync protocol server
# 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.
### END INIT INFO
# 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/mtn
MTSERVER=/usr/sbin/monotone-server
MONOTONE_PIDFILE=/var/run/monotone/monotone-server.pid
MONOTONE_LOGFILE=${MONOTONE_LOGFILE:-/var/log/monotone.log}
MONOTONE_OLDDB=/var/db/monotone/server.db
MONOTONE_OLDDBFILE=/var/db/monotone/server.mtn
MONOTONE_OLDPPFILE=/var/db/monotone/passphrase.lua
random_passphrase()
{
# As of 0.22, 32 chars is the maximum pass phrase length.
dd if=/dev/urandom bs=32 count=1 2> /dev/null | md5sum |
{ read sum rest; echo $sum; }
}
umask 077
check_db_version()
{
db_version=`runuser -s /bin/bash - ${MONOTONE_USER:-monotone} \
-c "LC_ALL=C \
$MT $MONOTONE_RCOPTS $MONOTONE_DBOPTS \
db version"` || exit 2
set -- $db_version
[ "$5" == "(usable)" ]
return $?
}
# See how we were called.
case "$1" in
start)
if [ -e $MONOTONE_OLDDBFILE -a ! -e $MONOTONE_DBFILE ]; then
echo -n $"Moving" "$MONOTONE_OLDDBFILE" $"to" "$MONOTONE_DBFILE"
if mv "$MONOTONE_OLDDBFILE" "$MONOTONE_DBFILE"; then
failure
echo
exit
else
success
echo
fi
rmdir 2> /dev/null /var/db/monotone
fi
if [ -e $MONOTONE_DBFILE ]; then
check_db_version || $0 migrate
elif [ -e $MONOTONE_OLDDB ]; then
echo -n $"Pre-0.26 monotone database must be migrated by hand: "
failure
echo
false
else
$0 init
fi
RETVAL=$?
if [ $RETVAL = 0 ] && [ "x`ls $MONOTONE_KEYDIR`" = x ]; then
$0 genkey
RETVAL=$?
fi
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} \
--pidfile $MONOTONE_PIDFILE \
$MTSERVER \
$MONOTONE_RCOPTS $MONOTONE_DBOPTS $MONOTONE_PPOPTS \
serve --pid-file=$MONOTONE_PIDFILE \
"$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 -p $MONOTONE_PIDFILE $MTSERVER
RETVAL=$?
rm -f $MONOTONE_PIDFILE
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/monotone
echo
;;
restart|force-reload)
$0 stop
$0 start
;;
condrestart|try-restart)
[ -e /var/lock/subsys/monotone ] && $0 restart
;;
status)
status -p $MONOTONE_PIDFILE monotone-server
RETVAL=$?
;;
init)
echo -n $"Initializing database" "${MONOTONE_DBFILE}: "
{ [ -d /var/lib/monotone ] ||
/usr/bin/install -o ${MONOTONE_USER:-monotone} \
-g ${MONOTONE_GROUP:-monotone} \
-m 0770 -d /var/lib/monotone; } &&
runuser -s /bin/bash - ${MONOTONE_USER:-monotone} -c "umask 007; \
$MT $MONOTONE_RCOPTS $MONOTONE_DBOPTS db init" &&
success $"database initialization" ||
failure $"database initialization"
RETVAL=$?
echo
;;
genkey)
MONOTONE_KEYID=${2:-${MONOTONE_KEYID:-monotone@`/bin/hostname -f`}}
MONOTONE_PPFILE=${MONOTONE_PPFILE:-/etc/monotone/passphrase.lua}
if [ -s "$MONOTONE_PPFILE" -a -s "$MONOTONE_KEYDIR/$MONOTONE_KEYID" ]
then
echo >&2 "$0:" $"Server key already installed"
echo >&2 "$0:" $"To lose old key remove file" "$MONOTONE_PPFILE"
exit 1
fi
echo -n $"Generating RSA key for server $MONOTONE_KEYID"
tmp=/tmp/mtserver$$
if
passphrase=`random_passphrase` &&
{ echo $passphrase; echo $passphrase; } |
(umask 027; $MT $MONOTONE_RCOPTS $MONOTONE_DBOPTS \
genkey $MONOTONE_KEYID > /dev/null 2>&1) &&
/bin/chgrp ${MONOTONE_GROUP:-monotone} \
"$MONOTONE_KEYDIR/$MONOTONE_KEYID" &&
/bin/chmod 0640 "$MONOTONE_KEYDIR/$MONOTONE_KEYID" &&
cat > $tmp <<EOF &&
function get_passphrase(keyid)
return "$passphrase"
end
EOF
/usr/bin/install -o root -g ${MONOTONE_GROUP:-monotone} \
-m 0440 $tmp ${MONOTONE_PPFILE}
then
success $"key generation"
else
failure $"key generation"
fi
RETVAL=$?
rm -f $tmp
echo
;;
migrate)
RETVAL=0
if [ ! -e $MONOTONE_PPFILE ] && [ -e $MONOTONE_OLDPPFILE ]; then
echo -n $"Moving old server passphrase file to new location: "
/usr/bin/install -o root -g ${MONOTONE_GROUP:-monotone} \
-m 0440 \
$MONOTONE_OLDPPFILE ${MONOTONE_PPFILE} &&
success $"move passphrase file" ||
failure $"move passphrase file"
RETVAL=$?
echo
fi
[ $RETVAL -eq 0 ] || exit $RETVAL
# Note this must run as root in case migration is writing
# into /etc/monotone/private-keys.
echo $"Checking database format in" "${MONOTONE_DBFILE}:"
(umask 027
$MT $MONOTONE_RCOPTS $MONOTONE_DBOPTS $MONOTONE_PPOPTS db migrate &&
$MT $MONOTONE_RCOPTS $MONOTONE_DBOPTS $MONOTONE_PPOPTS db regenerate_caches &&
/bin/chgrp -R ${MONOTONE_GROUP:-monotone} $MONOTONE_KEYDIR)
success $"database check" ||
failure $"database check"
RETVAL=$?
echo
;;
# Use "monotone pubkey me@my.com | service monotone import"
# to import the first keys to enable in /etc/monotone/write-permission.
# Thereafter, those with write permission can add other keys via
# netsync with "monotone push --key-to-push=IDENT" and then IDENT
# can be used in the read-permission and write-permission files.
import)
echo -n $"Importing packets to monotone database: "
runuser -s /bin/bash - ${MONOTONE_USER:-monotone} -c "umask 007; \
$MT $MONOTONE_RCOPTS $MONOTONE_DBOPTS read" &&
success $"packet import" ||
failure $"packet import"
RETVAL=$?
echo
;;
*)
echo "\
Usage: $0 {start|stop|restart|status|condrestart|init|import|genkey [IDENT]}"
RETVAL=1
;;
esac
exit $RETVAL

View file

@ -1,22 +0,0 @@
[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

View file

@ -1,32 +1,20 @@
Name: monotone
Version: 1.1
Release: 53%{?dist}
Version: 1.0
Release: 1%{?dist}
Summary: A free, distributed version control system
# Automatically converted from old format: GPLv2+ - review is highly recommended.
License: GPL-2.0-or-later
Group: Development/Tools
License: GPLv2+
URL: http://monotone.ca/
Source0: http://monotone.ca/downloads/%{version}/%{name}-%{version}.tar.bz2
Source1: monotone.service
Source1: monotone.init
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
Source9: monotone-server-sysusers.conf
Patch0: monotone-1.0-stacktrace-on-crash.patch
Patch1: monotone-1.1-iostream.patch
Patch2: monotone-1.1-lua-integer.patch
Patch3: monotone-1.1-pcre.patch
Patch4: monotone-1.1-py3.patch
Patch5: monotone-1.1-lua-ql.patch
Patch6: monotone-1.1-boost.patch
Patch7: monotone-1.1-string-overflow.patch
Patch8: monotone-1.1-catch.patch
BuildRequires: gcc-c++
BuildRequires: make
BuildRequires: perl-generators
# rev da62cad1 from upstream
Patch0: monotone-1.0-file_handle.patch
# rev a570769b from upstream
Patch1: monotone-1.0-fix-help.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: zlib-devel
BuildRequires: boost-devel >= 1.33.1
BuildRequires: botan-devel >= 1.6.3
@ -34,15 +22,11 @@ BuildRequires: pcre-devel >= 7.4
BuildRequires: sqlite-devel >= 3.3.8
BuildRequires: lua-devel >= 5.1
BuildRequires: libidn-devel
BuildRequires: systemd
BuildRequires: systemd-rpm-macros
%{?sysusers_requires_compat}
# 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}
@ -61,9 +45,10 @@ functions to client-side RSA certificates.
Summary: Standalone server setup for monotone
Requires: monotone = %{version}-%{release}
Requires(pre): shadow-utils
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
Requires(post): chkconfig
Requires(preun): initscripts, chkconfig
Requires(postun): initscripts
Group: Development/Tools
%description server
@ -73,6 +58,8 @@ 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
@ -81,25 +68,25 @@ and then pass commands to it.
%prep
%autosetup -p1
%setup -q
%patch0 -p0
%patch1 -p0
%build
export LC_MESSAGES=en_US
%configure
%make_build
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; }
export DISABLE_NETWORK_TESTS=1
make %{?_smp_mflags} check || { head -n-0 test/work/*.log; false; }
%install
export LC_MESSAGES=en_US
%make_install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot}
rm -f %{buildroot}%{_infodir}/dir
mv %{buildroot}%{_datadir}/doc/%{name} _doc
@ -109,20 +96,17 @@ 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 0755 -p %{SOURCE1} \
%{buildroot}%{_sysconfdir}/rc.d/init.d/monotone
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
%if 0%{?fedora} >= 15
install -D -m 0644 %{SOURCE4} \
%{buildroot}%{_tmpfilesdir}/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
%{buildroot}%{_sysconfdir}/tmpfiles.d/monotone.conf
%endif
# These do not actually wind up in the package, due to %%ghost.
install -m 0440 /dev/null \
@ -141,24 +125,35 @@ install -m 0644 -p %{SOURCE3} .
install -D -m 0644 -p contrib/Monotone.pm \
%{buildroot}%{perl_vendorlib}/Monotone.pm
mkdir -p %{buildroot}%{_datadir}/bash-completion/completions
mv %{buildroot}%{_sysconfdir}/bash_completion.d/monotone.bash_completion \
%{buildroot}%{_datadir}/bash-completion/completions/%{name}.bash_completion
install -p -D -m 0644 %{SOURCE9} %{buildroot}%{_sysusersdir}/monotone-server.conf
%clean
rm -f README.monotone-server
rm -rf %{buildroot}
%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
%defattr(-,root,root,-)
%doc AUTHORS COPYING NEWS README UPGRADE
%doc _doc/*
%license COPYING
%{_bindir}/mtn
%{_bindir}/mtnopt
%{_bindir}/mtn-cleanup
%{_infodir}/monotone.info*
%dir %{_datadir}/bash-completion
%dir %{_datadir}/bash-completion/completions
%{_datadir}/bash-completion/completions/%{name}.bash_completion
%{_sysconfdir}/bash_completion.d
%{_mandir}/man1/mtn.1*
%{_mandir}/man1/mtnopt.1*
%{_mandir}/man1/mtn-cleanup.1*
@ -166,20 +161,21 @@ install -p -D -m 0644 %{SOURCE9} %{buildroot}%{_sysusersdir}/monotone-server.con
%files -n perl-Monotone
%defattr(-,root,root,-)
%{perl_vendorlib}/Monotone.pm
%files server
%defattr(-,root,root,-)
%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
%{_sysconfdir}/rc.d/init.d/monotone
%dir %attr(0755,monotone,monotone) %{_localstatedir}/run/monotone
%{_tmpfilesdir}/monotone.conf
%if 0%{?fedora} >= 15
# https://fedoraproject.org/wiki/Packaging:Tmpfiles.d
%config(noreplace) %{_sysconfdir}/tmpfiles.d/monotone.conf
%endif
%config(noreplace) %{_sysconfdir}/sysconfig/monotone
%dir %attr(0755,root,monotone) %{_sysconfdir}/monotone
%dir %attr(0750,root,monotone) %{_sysconfdir}/monotone/private-keys
@ -189,247 +185,37 @@ install -p -D -m 0644 %{SOURCE9} %{buildroot}%{_sysusersdir}/monotone-server.con
%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
%{_sysusersdir}/monotone-server.conf
%pre server
%sysusers_create_compat %{SOURCE9}
# 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
# Register the monotone service
/sbin/chkconfig --add monotone
%preun server
%systemd_preun monotone.service
if [ $1 -eq 0 ]; then
/sbin/service monotone stop > /dev/null 2>&1
/sbin/chkconfig --del monotone
fi
%postun server
%systemd_postun monotone.service
if [ $1 -ge 1 ]; then
# Restart the running server: updates its db format when needed.
/sbin/service monotone condrestart > /dev/null 2>&1 || :
fi
%changelog
* Thu Aug 28 2025 Thomas Moschny <thomas.moschny@gmx.de> - 1.1-53
- Update for current users and groups guidelines.
* Thu Jul 24 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-52
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-51
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Fri Jul 26 2024 Miroslav Suchý <msuchy@redhat.com> - 1.1-50
- convert license to SPDX
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-49
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-48
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-47
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-46
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-45
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-44
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Mon May 30 2022 Jitka Plesnikova <jplesnik@redhat.com> - 1.1-43
- Perl 5.36 rebuild
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-42
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-41
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Fri May 21 2021 Jitka Plesnikova <jplesnik@redhat.com> - 1.1-40
- Perl 5.34 rebuild
* Mon Feb 8 2021 Thomas Moschny <thomas.moschny@gmx.de> - 1.1-39
- Move bash completions to /usr/share/bash-completion/completions (bz#1855768).
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-38
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-37
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-36
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jun 30 2020 Jerry James <loganjerry@gmail.com> - 1.1-35
- Add lua-ql patch due to removal of LUA_QL from lua
- Add boost patch to fix single-letter macro name clash (bz 1851313)
- Add string-overflow patch to fix a potential buffer overflow
- Add catch patch to silence a large number of compiler warnings
* Mon Jun 22 2020 Jitka Plesnikova <jplesnik@redhat.com> - 1.1-35
- Perl 5.32 rebuild
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-34
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Sat Aug 10 2019 Thomas Moschny <thomas.moschny@gmx.de> - 1.1-33
- Patch extra/mtn-hooks/monotone-ciabot.py to use Python3 (bz#1738073).
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-32
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu May 30 2019 Jitka Plesnikova <jplesnik@redhat.com> - 1.1-31
- Perl 5.30 rebuild
* Sat Feb 9 2019 Thomas Moschny <thomas.moschny@gmx.de> - 1.1-30
- Fix F30 FTBFS.
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-29
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-28
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Wed Jun 27 2018 Jitka Plesnikova <jplesnik@redhat.com> - 1.1-27
- Perl 5.28 rebuild
* Tue May 22 2018 Thomas Moschny <thomas.moschny@gmx.de> - 1.1-26
- Add patch for PCRE >= 8.42 (rhbz#1555231, thanks P. Pisar).
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-25
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-24
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-23
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sun Jun 04 2017 Jitka Plesnikova <jplesnik@redhat.com> - 1.1-22
- Perl 5.26 rebuild
* Mon May 15 2017 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Fri Jan 27 2017 Jonathan Wakely <jwakely@redhat.com> - 1.1-19
- Rebuilt for Boost 1.63
* Fri Jan 27 2017 Jonathan Wakely <jwakely@redhat.com> - 1.1-18
- Rebuilt for Boost 1.63
* Sat Jan 14 2017 Ville Skyttä <ville.skytta@iki.fi> - 1.1-17
- Move tmpfiles.d config to %%{_tmpfilesdir}
* Sun May 15 2016 Jitka Plesnikova <jplesnik@redhat.com> - 1.1-15
- Perl 5.24 rebuild
* Sun Feb 14 2016 Thomas Moschny <thomas.moschny@gmx.de> - 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 <thomas.moschny@gmx.de> - 1.1-13
- Rebuild for Botan 1.10.12.
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Fri Jan 15 2016 Jonathan Wakely <jwakely@redhat.com> - 1.1-11
- Rebuilt for Boost 1.60
* Thu Aug 27 2015 Jonathan Wakely <jwakely@redhat.com> - 1.1-10
- Rebuilt for Boost 1.59
* Wed Jul 29 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1-9
- Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159
* Wed Jul 22 2015 David Tardon <dtardon@redhat.com> - 1.1-8
- rebuild for Boost 1.58
* Mon Jun 22 2015 Thomas Moschny <thomas.moschny@gmx.de> - 1.1-7
- Add patch to fix FTBFS with Lua 5.3 (rhbz#1185790).
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sat Jun 06 2015 Jitka Plesnikova <jplesnik@redhat.com> - 1.1-5
- Perl 5.22 rebuild
* Thu Jan 29 2015 Petr Machata <pmachata@redhat.com> - 1.1-4
- Rebuild for boost 1.57.0
- Include <iostream> in tests/merge_3way.cc
(monotone-1.1-iostream.patch)
* Tue Aug 26 2014 Jitka Plesnikova <jplesnik@redhat.com> - 1.1-3
- Perl 5.20 rebuild
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Fri Jul 18 2014 Thomas Moschny <thomas.moschny@gmx.de> - 1.1-1
- Update to 1.1.
- Remove patches and fixes not needed anymore.
- Modernize spec file.
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Fri May 23 2014 Petr Machata <pmachata@redhat.com> - 1.0-16
- Rebuild for boost 1.55.0
* Tue Oct 8 2013 Thomas Moschny <thomas.moschny@gmx.de> - 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 <rel-eng@lists.fedoraproject.org> - 1.0-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Tue Jul 30 2013 Petr Machata <pmachata@redhat.com> - 1.0-13
- Rebuild for boost 1.54.0
* Wed Jul 17 2013 Petr Pisar <ppisar@redhat.com> - 1.0-12
- Perl 5.18 rebuild
* Sat Mar 9 2013 Thomas Moschny <thomas.moschny@gmx.de> - 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 <rel-eng@lists.fedoraproject.org> - 1.0-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Fri Jul 20 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Fri Jun 08 2012 Petr Pisar <ppisar@redhat.com> - 1.0-8
- Perl 5.16 rebuild
* Thu Feb 16 2012 Thomas Moschny <thomas.moschny@gmx.de> - 1.0-7
- Add patch to fix building with newer pcre.
* Fri Feb 10 2012 Petr Pisar <ppisar@redhat.com> - 1.0-6
- Rebuild against PCRE 8.30
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Mon Sep 26 2011 Dan Horák <dan[at]danny.cz> - 1.0-4
- fix FTBFS due a symbol conflict with boost
* Mon Jun 20 2011 Marcela Mašláňová <mmaslano@redhat.com> - 1.0-3
- Perl mass rebuild
* Thu Jun 09 2011 Marcela Mašláňová <mmaslano@redhat.com> - 1.0-2
- Perl 5.14 mass rebuild
* Sat May 14 2011 Thomas Moschny <thomas.moschny@gmx.de> - 1.0-1
- Update to 1.0.
- Upstream ships bzip2 archives now.

View file

@ -1,16 +1,10 @@
# Options for the Monotone DVCS Server
#
# options can be changed here, or (better) within override files in
# /etc/systemd/system/monotone.service.d
MONOTONE_CONFDIR=/etc/monotone
MONOTONE_KEYDIR=/etc/monotone/private-keys
MONOTONE_DBFILE=/var/lib/monotone/server.mtn
MONOTONE_PPFILE=/etc/monotone/passphrase.lua
# --confdir: location of the configuration directory
#MONOTONE_CONFDIR=/etc/monotone
MONOTONE_RCOPTS="--confdir=$MONOTONE_CONFDIR"
MONOTONE_DBOPTS="--db=$MONOTONE_DBFILE --keydir=$MONOTONE_KEYDIR"
MONOTONE_PPOPTS="--rcfile=$MONOTONE_PPFILE"
# --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
MONOTONE_SERVE_OPTS=""

View file

@ -1 +1 @@
df3f40ca22120aa142ac9becba9e1bf7 monotone-1.1.tar.bz2
6a0b5d8560f08d76a950172f9ed0feff monotone-1.0.tar.bz2