diff options
author | 2002-01-25 08:03:32 +0000 | |
---|---|---|
committer | 2002-01-25 08:03:32 +0000 | |
commit | 52f04a2d1b9e830269d4470beeecb445748e1efc (patch) | |
tree | f12bf00bfea6a42faa8018db67ee79b5fab7648a /net-misc/rsync | |
parent | updated syntax, added info so users can customize behavior and apperance (bui... (diff) | |
download | historical-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.patch | 41 | ||||
-rw-r--r-- | net-misc/rsync/rsync-2.5.1-r1.ebuild | 55 |
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 +} |