summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Robbins <drobbins@gentoo.org>2002-01-25 08:03:32 +0000
committerDaniel Robbins <drobbins@gentoo.org>2002-01-25 08:03:32 +0000
commit52f04a2d1b9e830269d4470beeecb445748e1efc (patch)
treef12bf00bfea6a42faa8018db67ee79b5fab7648a /net-misc/rsync
parentupdated syntax, added info so users can customize behavior and apperance (bui... (diff)
downloadhistorical-52f04a2d1b9e830269d4470beeecb445748e1efc.tar.gz
historical-52f04a2d1b9e830269d4470beeecb445748e1efc.tar.bz2
historical-52f04a2d1b9e830269d4470beeecb445748e1efc.zip
new rsync with 2 debian bug fixes: rsync --daemon should no longer hang when
the client ^C's, and device nodes will now be created correctly on rsync.
Diffstat (limited to 'net-misc/rsync')
-rw-r--r--net-misc/rsync/files/rsync-gentoo-2.5.1.patch41
-rw-r--r--net-misc/rsync/rsync-2.5.1-r1.ebuild55
2 files changed, 96 insertions, 0 deletions
diff --git a/net-misc/rsync/files/rsync-gentoo-2.5.1.patch b/net-misc/rsync/files/rsync-gentoo-2.5.1.patch
new file mode 100644
index 000000000000..c0b1590485c2
--- /dev/null
+++ b/net-misc/rsync/files/rsync-gentoo-2.5.1.patch
@@ -0,0 +1,41 @@
+diff -urN rsync-2.5.1/flist.c rsync-2.5.1-fixed/flist.c
+--- rsync-2.5.1/flist.c Thu Jan 3 01:09:35 2002
++++ rsync-2.5.1-fixed/flist.c Fri Jan 25 01:55:01 2002
+@@ -557,7 +557,7 @@
+ file->gid = st.st_gid;
+ file->dev = st.st_dev;
+ file->inode = st.st_ino;
+-#ifdef HAVE_ST_RDEV
++#ifdef HAVE_STRUCT_STAT_ST_RDEV
+ file->rdev = st.st_rdev;
+ #endif
+
+diff -urN rsync-2.5.1/io.c rsync-2.5.1-fixed/io.c
+--- rsync-2.5.1/io.c Thu Nov 29 18:21:08 2001
++++ rsync-2.5.1-fixed/io.c Fri Jan 25 01:54:11 2002
+@@ -438,6 +438,8 @@
+ }
+
+ if (ret <= 0) {
++ /* Don't try to write errors back across the stream */
++ io_multiplexing_close();
+ rprintf(FERROR,
+ "error writing %d unbuffered bytes"
+ " - exiting: %s\n", len,
+diff -urN rsync-2.5.1/main.c rsync-2.5.1-fixed/main.c
+--- rsync-2.5.1/main.c Thu Nov 29 18:21:08 2001
++++ rsync-2.5.1-fixed/main.c Fri Jan 25 01:54:11 2002
+@@ -794,10 +794,12 @@
+ }
+
+ signal(SIGINT,SIGNAL_CAST sig_int);
+- signal(SIGPIPE,SIGNAL_CAST sig_int);
+ signal(SIGHUP,SIGNAL_CAST sig_int);
+ signal(SIGTERM,SIGNAL_CAST sig_int);
+
++ /* Ignore SIGPIPE; we check error codes consistently. */
++ signal(SIGPIPE,SIG_IGN);
++
+ /* Initialize push_dir here because on some old systems getcwd
+ (implemented by forking "pwd" and reading its output) doesn't
+ work when there are other child processes. Also, on all systems
diff --git a/net-misc/rsync/rsync-2.5.1-r1.ebuild b/net-misc/rsync/rsync-2.5.1-r1.ebuild
new file mode 100644
index 000000000000..09a5445144aa
--- /dev/null
+++ b/net-misc/rsync/rsync-2.5.1-r1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2002 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# Maintainer: Daniel Robbins <drobbins@gentoo.org>
+# $Header: /var/cvsroot/gentoo-x86/net-misc/rsync/rsync-2.5.1-r1.ebuild,v 1.1 2002/01/25 08:03:29 drobbins Exp $
+
+S=${WORKDIR}/${P}
+DESCRIPTION="File transfer program to keep remote files into sync"
+SRC_URI="http://rsync.samba.org/ftp/rsync/${P}.tar.gz"
+HOMEPAGE="http://rsync.samba.org"
+
+DEPEND="virtual/glibc"
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+ #This next patch fixes two problems:
+ #http://bugs.debian.org/128632
+ #http://bugs.debian.org/129135
+ cat ${FILESDIR}/rsync-gentoo-${PV}.patch | patch -p1 -l || die
+#change confdir to /etc/rsync rather than just /etc (the --sysconfdir configure option doesn't work
+ cp rsync.h rsync.h.orig
+ sed -e 's:RSYNCD_CONF "/etc/rsyncd.conf":RSYNCD_CONF "/etc/rsync/rsyncd.conf":g' rsync.h.orig > rsync.h
+#yes, updating the man page is very important.
+ cp rsyncd.conf.5 rsyncd.conf.5.orig
+ sed -e 's:/etc/rsyncd:/etc/rsync/rsyncd:g' rsyncd.conf.5.orig > rsyncd.conf.5
+}
+
+src_compile() {
+ ./configure --prefix=/usr --host=${CHOST} || die
+ if [ "`use static`" ] ; then
+ emake LDFLAGS="-static" || die
+ else
+ emake || die
+ fi
+}
+
+src_install () {
+ make prefix=${D}/usr \
+ mandir=${D}/usr/share/man \
+ install || die
+ if [ -z "`use build`" ]
+ then
+ dodir /etc/rsync
+ dodoc COPYING NEWS OLDNEWS README TODO tech_report.tex
+ else
+ rm -rf ${D}/usr/share
+ fi
+}
+
+pkg_postinst() {
+ if [ ! -d /etc/rsync ]
+ then
+ mkdir /etc/rsync
+ fi
+}