diff --git a/monotone-1.1-boost.patch b/monotone-1.1-boost.patch new file mode 100644 index 0000000..84e80f1 --- /dev/null +++ b/monotone-1.1-boost.patch @@ -0,0 +1,555 @@ +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 +-#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 + #include + #include +-#include "vector.hh" + + #include + #include + #include "lexical_cast.hh" + #include ++#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 + + #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 + #include + #include + ++#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 +-#include "safe_map.hh" + #include + #include + #include +@@ -18,6 +17,7 @@ + #include + + #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 + #include + #include +-#include "vector.hh" + + #include + #include + #include + #include + #include ++#include "vector.hh" + + #include + #include +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 + #include + #include ++#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 + #include + #include +-#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 + + #include +-#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 +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 + +-#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 + #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 + + #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 + #include + #include + +-#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 + ++#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 + #include + #include +-#include "vector.hh" +- + #include ++ ++#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 +-#include "vector.hh" + + #ifdef WIN32 + #include +@@ -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 + #include ++#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 + #include + #include +-#include "vector.hh" + #include // memset + + #include + #include + #include "lexical_cast.hh" + #include ++#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 +-#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 + #include +-#include "vector.hh" + #include + + #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 + #include + #include +-#include "vector.hh" +- + #include + +-// circular_buffer is not in Boost 1.34; it's in monotone/boost. +-#include "boost/circular_buffer.hpp" ++#include "vector.hh" ++ ++#include + + #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 + #include + +-#include "boost/current_function.hpp" ++#include + + #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 + #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 + #include + +-#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 ++#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 +-#include "vector.hh" + #include + #include + #include // memcmp +@@ -34,6 +33,7 @@ + #include + #include + ++#include "vector.hh" + #include "adler32.hh" + #include "hash_map.hh" + #include "numeric_vocab.hh" diff --git a/monotone-1.1-catch.patch b/monotone-1.1-catch.patch new file mode 100644 index 0000000..cccee22 --- /dev/null +++ b/monotone-1.1-catch.patch @@ -0,0 +1,111 @@ +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 << "\n"; + L(FL("ignoring error trigged by saving work set to debug log")); + } +- catch (recoverable_failure) ++ catch (recoverable_failure &) + { + out << tmp; + out << "\n"; diff --git a/monotone-1.1-lua-ql.patch b/monotone-1.1-lua-ql.patch new file mode 100644 index 0000000..743f0c8 --- /dev/null +++ b/monotone-1.1-lua-ql.patch @@ -0,0 +1,15 @@ +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) diff --git a/monotone-1.1-string-overflow.patch b/monotone-1.1-string-overflow.patch new file mode 100644 index 0000000..892236f --- /dev/null +++ b/monotone-1.1-string-overflow.patch @@ -0,0 +1,28 @@ +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)) + { diff --git a/monotone.spec b/monotone.spec index 6e78e32..39e7df0 100644 --- a/monotone.spec +++ b/monotone.spec @@ -18,6 +18,10 @@ 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 @@ -80,7 +84,7 @@ and then pass commands to it. %build export LC_MESSAGES=en_US %configure -make %{?_smp_mflags} +%make_build %check @@ -92,7 +96,7 @@ make %{?_smp_mflags} %install export LC_MESSAGES=en_US -make install DESTDIR=%{buildroot} +%make_install rm -f %{buildroot}%{_infodir}/dir mv %{buildroot}%{_datadir}/doc/%{name} _doc @@ -197,6 +201,12 @@ exit 0 %changelog +* Tue Jun 30 2020 Jerry James - 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 - 1.1-35 - Perl 5.32 rebuild