rpms/monotone/devel monotone-0.42-gcc44.patch, NONE, 1.1 monotone-0.42-netsync.patch, NONE, 1.1 import.log, 1.2, 1.3 monotone.spec, 1.41, 1.42

Thomas Moschny thm at fedoraproject.org
Mon Feb 9 15:15:33 UTC 2009


Author: thm

Update of /cvs/pkgs/rpms/monotone/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv24030/devel

Modified Files:
	import.log monotone.spec 
Added Files:
	monotone-0.42-gcc44.patch monotone-0.42-netsync.patch 
Log Message:
Add two patches from trunk.

monotone-0.42-gcc44.patch:

--- NEW FILE monotone-0.42-gcc44.patch ---
diff -up monotone-0.42/key_store.cc.orig monotone-0.42/key_store.cc
--- monotone-0.42/key_store.cc.orig	2008-12-14 00:02:12.000000000 +0100
+++ monotone-0.42/key_store.cc	2009-02-07 17:23:27.000000000 +0100
@@ -460,30 +460,30 @@ key_store::cache_decrypted_key(const rsa
 
 void
 key_store::create_key_pair(database & db,
-                           rsa_keypair_id const & id,
+                           rsa_keypair_id const & ident,
                            utf8 const * maybe_passphrase,
                            id * maybe_pubhash,
                            id * maybe_privhash)
 {
   conditional_transaction_guard guard(db);
 
-  bool exists = key_pair_exists(id);
+  bool exists = key_pair_exists(ident);
   if (db.database_specified())
     {
       guard.acquire();
-      exists = exists || db.public_key_exists(id);
+      exists = exists || db.public_key_exists(ident);
     }
-  N(!exists, F("key '%s' already exists") % id);
+  N(!exists, F("key '%s' already exists") % ident);
 
   utf8 prompted_passphrase;
   if (!maybe_passphrase)
     {
-      get_passphrase(prompted_passphrase, id, true, true);
+      get_passphrase(prompted_passphrase, ident, true, true);
       maybe_passphrase = &prompted_passphrase;
     }
 
   // okay, now we can create the key
-  P(F("generating key-pair '%s'") % id);
+  P(F("generating key-pair '%s'") % ident);
   RSA_PrivateKey priv(*s->rng, static_cast<Botan::u32bit>(constants::keylen));
 
   // serialize and maybe encrypt the private key
@@ -514,20 +514,20 @@ key_store::create_key_pair(database & db
     % kp.priv().size());
 
   // and save it.
-  P(F("storing key-pair '%s' in %s/") % id % get_key_dir());
-  put_key_pair(id, kp);
+  P(F("storing key-pair '%s' in %s/") % ident % get_key_dir());
+  put_key_pair(ident, kp);
 
   if (db.database_specified())
     {
-      P(F("storing public key '%s' in %s") % id % db.get_filename());
-      db.put_key(id, kp.pub);
+      P(F("storing public key '%s' in %s") % ident % db.get_filename());
+      db.put_key(ident, kp.pub);
       guard.commit();
     }
 
   if (maybe_pubhash)
-    key_hash_code(id, kp.pub, *maybe_pubhash);
+    key_hash_code(ident, kp.pub, *maybe_pubhash);
   if (maybe_privhash)
-    key_hash_code(id, kp.priv, *maybe_privhash);
+    key_hash_code(ident, kp.priv, *maybe_privhash);
 }
 
 void
diff -up monotone-0.42/key_store.hh.orig monotone-0.42/key_store.hh
--- monotone-0.42/key_store.hh.orig	2008-10-03 15:30:21.000000000 +0200
+++ monotone-0.42/key_store.hh	2009-02-07 17:21:54.000000000 +0100
@@ -64,7 +64,7 @@ public:
 
   void cache_decrypted_key(rsa_keypair_id const & id);
 
-  void create_key_pair(database & db, rsa_keypair_id const & id,
+  void create_key_pair(database & db, rsa_keypair_id const & ident,
                        utf8 const * maybe_passphrase = NULL,
                        id * maybe_pubhash = NULL,
                        id * maybe_privhash = NULL);
diff -up monotone-0.42/sanity.hh.orig monotone-0.42/sanity.hh
--- monotone-0.42/sanity.hh.orig	2008-11-23 22:32:49.000000000 +0100
+++ monotone-0.42/sanity.hh	2009-02-07 17:21:42.000000000 +0100
@@ -12,6 +12,7 @@
 
 #include <stdexcept>
 #include <ostream>
+#include <cstdio>
 
 #include "boost/current_function.hpp"
 

monotone-0.42-netsync.patch:

--- NEW FILE monotone-0.42-netsync.patch ---
diff -up monotone-0.42/netsync.cc.orig monotone-0.42/netsync.cc
--- monotone-0.42/netsync.cc.orig	2009-02-04 13:53:00.000000000 +0100
+++ monotone-0.42/netsync.cc	2009-02-04 13:53:49.000000000 +0100
@@ -353,7 +353,7 @@ unsigned int reactable::count = 0;
 
 class session_base : public reactable
 {
-  bool read_some();
+  void read_some(bool & failed, bool & eof);
   bool write_some();
   void mark_recent_io()
   {
@@ -468,10 +468,12 @@ session_base::which_events()
   return ret;
 }
 
-bool
-session_base::read_some()
+void
+session_base::read_some(bool & failed, bool & eof)
 {
   I(inbuf.size() < constants::netcmd_maxsz);
+  eof = false;
+  failed = false;
   char tmp[constants::bufsz];
   Netxx::signed_size_type count = str->read(tmp, sizeof(tmp));
   if (count > 0)
@@ -479,17 +481,38 @@ session_base::read_some()
       L(FL("read %d bytes from fd %d (peer %s)")
         % count % str->get_socketfd() % peer_id);
       if (encountered_error)
-        {
-          L(FL("in error unwind mode, so throwing them into the bit bucket"));
-          return true;
-        }
+        L(FL("in error unwind mode, so throwing them into the bit bucket"));
+
       inbuf.append(tmp,count);
       mark_recent_io();
       note_bytes_in(count);
-      return true;
+    }
+  else if (count == 0)
+    {
+      // Returning 0 bytes after select() marks the file descriptor as
+      // ready for reading signifies EOF.
+
+      switch (protocol_state)
+        {
+        case working_state:
+          P(F("peer %s IO terminated connection in working state (error)")
+            % peer_id);
+          break;
+
+        case shutdown_state:
+          P(F("peer %s IO terminated connection in shutdown state "
+              "(possibly client misreported error)")
+            % peer_id);
+          break;
+
+        case confirmed_state:
+          break;
+        }
+
+      eof = true;
     }
   else
-    return false;
+    failed = true;
 }
 
 bool
@@ -531,11 +554,14 @@ bool
 session_base::do_io(Netxx::Probe::ready_type what)
 {
   bool ok = true;
+  bool eof = false;
   try
     {
       if (what & Netxx::Probe::ready_read)
         {
-          if (!read_some())
+          bool failed;
+          read_some(failed, eof);
+          if (failed)
             ok = false;
         }
       if (what & Netxx::Probe::ready_write)
@@ -578,7 +604,11 @@ session_base::do_io(Netxx::Probe::ready_
         % peer_id);
       ok = false;
     }
-  return ok;
+
+  // Return false in case we reached EOF, so as to prevent further calls
+  // to select()s on this stream, as recommended by the select_tut man
+  // page.
+  return ok && !eof;
 }
 
 ////////////////////////////////////////////////////////////////////////


Index: import.log
===================================================================
RCS file: /cvs/pkgs/rpms/monotone/devel/import.log,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- import.log	2 Jan 2009 21:50:38 -0000	1.2
+++ import.log	9 Feb 2009 15:15:02 -0000	1.3
@@ -1,2 +1,3 @@
 monotone-0_42-1_fc10:HEAD:monotone-0.42-1.fc10.src.rpm:1230916116
 monotone-0_42-2_fc10:HEAD:monotone-0.42-2.fc10.src.rpm:1230932958
+monotone-0_42-3_fc10:HEAD:monotone-0.42-3.fc10.src.rpm:1234192456


Index: monotone.spec
===================================================================
RCS file: /cvs/pkgs/rpms/monotone/devel/monotone.spec,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -r1.41 -r1.42
--- monotone.spec	2 Jan 2009 21:50:38 -0000	1.41
+++ monotone.spec	9 Feb 2009 15:15:02 -0000	1.42
@@ -1,6 +1,6 @@
 Name: monotone
 Version: 0.42
-Release: 2%{?dist}
+Release: 3%{?dist}
 
 Summary: A free, distributed version control system
 Group: Development/Tools
@@ -12,6 +12,11 @@
 Source2: monotone.sysconfig
 Source3: README.monotone-server
 
+# rediffed changeset f18abebd.. from upstream
+Patch0: monotone-0.42-netsync.patch
+# rediffed changesets 33022690.. and 76e258cb.. from upstream
+Patch1: monotone-0.42-gcc44.patch
+
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 BuildRequires: zlib-devel
@@ -71,6 +76,8 @@
 
 %prep
 %setup -q
+%patch0 -p1 -b .gcc44
+%patch1 -p1 -b .netsync
 
 %build
 %configure --with-bundled-lua=%{bundled_lua} \
@@ -78,7 +85,8 @@
 make %{?_smp_mflags}
 
 %check
-make %{?_smp_mflags} check || { cat tester_dir/*.log; false; }
+# disable parallel runs in the testsuite for now
+make check || { cat tester_dir/*.log; false; }
 
 %install
 rm -rf %{buildroot}
@@ -197,6 +205,12 @@
 
 
 %changelog
+* Mon Feb  9 2009 Thomas Moschny <thomas.moschny at gmx.de> - 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 <thomas.moschny at gmx.de> - 0.42-2
 - Pack Monotone.pm (in a subpackage). (#450267)
 




More information about the fedora-extras-commits mailing list