Compare commits

...
Sign in to create a new pull request.

6 commits

Author SHA1 Message Date
Fedora Release Engineering
c1c9e195b1 dist-git conversion 2010-07-29 03:40:13 +00:00
Bill Nottingham
fdc88480f6 Fix typo that causes a failure to update the common directory. (releng
#2781)
2009-11-26 01:39:52 +00:00
Thomas Moschny
b85dfa7040 Updating from devel. 2009-03-06 22:34:40 +00:00
Thomas Moschny
8d90ef7acf Updated for 0.42. 2009-01-03 01:31:28 +00:00
Thomas Moschny
41db456a2d - Updated for 0.41 release.
- Added mtnopt helper.
2008-09-12 21:06:21 +00:00
Jesse Keating
8f4d5f3f07 Initialize branch F-9 for monotone 2008-04-21 04:34:41 +00:00
8 changed files with 278 additions and 43 deletions

View file

@ -1 +0,0 @@
monotone-0.40.tar.gz

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
monotone-0.42.tar.gz

View file

@ -1,21 +0,0 @@
# Makefile for source rpm: monotone
# $Id$
NAME := monotone
SPECFILE = $(firstword $(wildcard *.spec))
define find-makefile-common
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
endef
MAKEFILE_COMMON := $(shell $(find-makefile-common))
ifeq ($(MAKEFILE_COMMON),)
# attept a checkout
define checkout-makefile-common
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
endef
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
endif
include $(MAKEFILE_COMMON)

90
monotone-0.42-gcc44.patch Normal file
View file

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

101
monotone-0.42-netsync.patch Normal file
View file

@ -0,0 +1,101 @@
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;
}
////////////////////////////////////////////////////////////////////////

View file

@ -0,0 +1,12 @@
diff -up monotone-0.42/netsync.cc.orig monotone-0.42/netsync.cc
--- monotone-0.42/netsync.cc.orig 2008-12-14 00:02:12.000000000 +0100
+++ monotone-0.42/netsync.cc 2009-02-27 19:19:37.000000000 +0100
@@ -374,7 +374,7 @@ protected:
}
bool output_overfull() const
{
- return outbuf.size() > constants::bufsz * 10;
+ return outbuf_size > constants::bufsz * 10;
}
public:
string peer_id;

View file

@ -1,10 +1,10 @@
Name: monotone
Version: 0.40
Release: 1%{?dist}
Version: 0.42
Release: 5%{?dist}
Summary: A free, distributed version control system
Group: Development/Tools
License: GPL
License: GPLv2+
URL: http://monotone.ca/
Source0: http://monotone.ca/downloads/%{version}/%{name}-%{version}.tar.gz
@ -12,6 +12,13 @@ Source1: monotone.init
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
# rediffed changeset 16184688.. from upstream
Patch2: monotone-0.42-netsync2.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: zlib-devel
@ -59,17 +66,30 @@ Group: Development/Tools
%description server
This package provides an easy-to-use standalone server setup for monotone.
%package -n perl-Monotone
Summary: Perl Module for monotone
Requires: monotone = %{version}-%{release}
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
Group: Development/Tools
%description -n perl-Monotone
This is a simple Perl module to start a monotone automate sub-process
and then pass commands to it.
%prep
%setup -q
%patch0 -p1 -b .gcc44
%patch1 -p1 -b .netsync
%patch2 -p1 -b .netsync2
%build
%configure --with-bundled-lua=%{bundled_lua} \
--with-bundled-sqlite=%{bundled_sqlite}
--with-bundled-sqlite=%{bundled_sqlite}
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}
@ -92,7 +112,7 @@ mkdir -p %{buildroot}%{_sbindir}
mkdir -p %{buildroot}%{_localstatedir}/lib
ln -snf ../bin/mtn %{buildroot}%{_sbindir}/monotone-server
%{__install} -D -m 0555 %{SOURCE1} \
%{buildroot}%{_sysconfdir}/rc.d/init.d/monotone
%{buildroot}%{_sysconfdir}/rc.d/init.d/monotone
%{__install} -D -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/sysconfig/monotone
%{__install} -d -m 0755 %{buildroot}%{_sysconfdir}/monotone
%{__install} -d -m 0750 %{buildroot}%{_sysconfdir}/monotone/private-keys
@ -101,17 +121,20 @@ ln -snf ../bin/mtn %{buildroot}%{_sbindir}/monotone-server
# These do not actually wind up in the package, due to %%ghost.
%{__install} -c -m 0440 /dev/null \
%{buildroot}%{_sysconfdir}/monotone/passphrase.lua
%{buildroot}%{_sysconfdir}/monotone/passphrase.lua
%{__install} -c -m 0640 /dev/null \
%{buildroot}%{_sysconfdir}/monotone/read-permissions
%{buildroot}%{_sysconfdir}/monotone/read-permissions
%{__install} -c -m 0640 /dev/null \
%{buildroot}%{_sysconfdir}/monotone/write-permissions
%{buildroot}%{_sysconfdir}/monotone/write-permissions
%{__install} -c -m 0644 /dev/null \
%{buildroot}%{_sysconfdir}/monotone/monotonerc
%{buildroot}%{_sysconfdir}/monotone/monotonerc
touch %{buildroot}%{_localstatedir}/lib/monotone/server.mtn
cp %{SOURCE3} .
%{__install} -D -m 0644 -p contrib/Monotone.pm \
%{buildroot}%{perl_vendorlib}/Monotone.pm
%clean
rm -f README.monotone-server
rm -rf %{buildroot}
@ -119,13 +142,13 @@ rm -rf %{buildroot}
%post
if [ $1 -eq 1 ]
then
/sbin/install-info %{_infodir}/monotone.info %{_infodir}/dir > /dev/null 2>&1 || :
/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 || :
/sbin/install-info --delete %{_infodir}/monotone.info %{_infodir}/dir > /dev/null 2>&1 || :
fi
%files -f %{name}.lang
@ -134,17 +157,22 @@ fi
%doc monotone.html
%{_bindir}/mtn
%{_bindir}/mtnopt
%{_infodir}/monotone.info*
%{_datadir}/emacs/site-lisp/monotone*.el*
%{_sysconfdir}/bash_completion.d
%files server
%doc README.monotone-server
%files -n perl-Monotone
%defattr(-,root,root,-)
%{perl_vendorlib}/Monotone.pm
%files server
%defattr(-,root,root,-)
%doc README.monotone-server
%{_sbindir}/monotone-server
%{_sysconfdir}/rc.d/init.d/monotone
%dir %attr(0755,monotone,monotone) %{_localstatedir}/run/monotone
%config %{_sysconfdir}/sysconfig/monotone
%config(noreplace) %{_sysconfdir}/sysconfig/monotone
%dir %attr(0755,root,monotone) %{_sysconfdir}/monotone
%dir %attr(0750,root,monotone) %{_sysconfdir}/monotone/private-keys
%attr(0640,root,monotone) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) %{_sysconfdir}/monotone/monotonerc
@ -159,7 +187,7 @@ fi
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
-c "Monotone Netsync Server" monotone
exit 0
%post server
@ -168,18 +196,43 @@ exit 0
%preun server
if [ $1 = 0 ]; then
/sbin/service monotone stop > /dev/null 2>&1
/sbin/chkconfig --del monotone
/sbin/service monotone stop > /dev/null 2>&1
/sbin/chkconfig --del monotone
fi
%postun
if [ $1 -gt 1 ]; then
# Restart the running server: updates its db format when needed.
/sbin/service monotone condrestart > /dev/null 2>&1 || :
# Restart the running server: updates its db format when needed.
/sbin/service monotone condrestart > /dev/null 2>&1 || :
fi
%changelog
* Fri Feb 27 2009 Thomas Moschny <thomas.moschny@gmx.de> - 0.42-5
- Add one more netsync related patch from trunk.
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.42-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Mon Feb 9 2009 Thomas Moschny <thomas.moschny@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@gmx.de> - 0.42-2
- Pack Monotone.pm (in a subpackage). (#450267)
* Fri Jan 2 2009 Thomas Moschny <thomas.moschny@gmx.de> - 0.42-1
- Updated for 0.42 release.
* Fri Sep 12 2008 Thomas Moschny <thomas.moschny@gmx.de> - 0.41-1
- Updated for 0.41 release.
- Added mtnopt helper.
* Mon Aug 11 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 0.40-2
- fix license tag
* Mon Apr 14 2008 Roland McGrath <roland@redhat.com> - 0.40-1
- Updated for 0.40 release.
- Tweaked trivia for packaging guidelines nits.

View file

@ -1 +1 @@
4d90776beaff7445e7a2d8774378fbba monotone-0.40.tar.gz
c8e916d674b6608369d9f447700a8830 monotone-0.42.tar.gz