+# TODO:
+# 3.1.3 rsyncd segfaults very early in server rsync:// mode (both inetd and standalone)
+# rsync[27223]: segfault at 7468 ip 00007f4281c56e81 sp 00007ffc29186160 error 4 in libc-2.27.so[7f4281bd3000+1b4000]
#
# Conditional build:
%bcond_with rsh # set remote shell command to rsh instead of ssh (old behaviour)
+%bcond_with fadvise # apply fadvise patch
+%bcond_with noatime # apply noatime patch
%bcond_with tests # perform "make test"
#
%ifarch alpha
Summary(zh_CN.UTF-8): [通讯]传输工具
Summary(zh_TW.UTF-8): [喙啪]\e$(B6G?i火(c\e(B
Name: rsync
-Version: 3.0.0
-# don't rel 1 until final release
-Release: 0.1
-License: GPL
+Version: 3.2.3
+Release: 1
+Epoch: 1
+License: GPL v3+
Group: Networking/Utilities
-Source0: http://rsync.samba.org/ftp/rsync/%{name}-%{version}pre9.tar.gz
-# Source0-md5: 2d4e94e199911e36491d8b17851f1fe8
-Source1: %{name}.inet
-Source2: %{name}.init
-Source3: %{name}.sysconfig
-Source4: %{name}d.logrotate
+Source0: https://rsync.samba.org/ftp/rsync/%{name}-%{version}.tar.gz
+# Source0-md5: 209f8326f5137d8817a6276d9577a2f1
+Source1: https://rsync.samba.org/ftp/rsync/%{name}-patches-%{version}.tar.gz
+# Source1-md5: 884c872b55c7431f4c4e8d8bf182fafa
+Source2: %{name}.inet
+Source3: %{name}.init
+Source4: %{name}.sysconfig
+Source5: %{name}d.logrotate
Patch0: %{name}-config.patch
-URL: http://rsync.samba.org/
+Patch1: %{name}-fadvise.patch
+Patch2: %{name}-noatime.patch
+URL: https://rsync.samba.org/
BuildRequires: acl-devel
-BuildRequires: autoconf >= 2.52
+BuildRequires: autoconf >= 2.59
BuildRequires: automake
-BuildRequires: openssl-devel
BuildRequires: popt-devel
BuildRequires: rpmbuild(macros) >= 1.318
+BuildRequires: xxHash-devel
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%define _duplicate_files_terminate_build 0
%define _sysconfdir /etc/rsyncd
%description
Summary: Files necessary to run rsync in daemon mode
Summary(pl.UTF-8): Pliki niezbędne do uruchomienia rsynca w trybie serwera
Group: Networking/Daemons
-Requires: %{name} = %{version}-%{release}
+Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: rc-inetd
Provides: rsyncd
Obsoletes: rsyncd
Summary(pl.UTF-8): Pliki niezbędne do uruchomienia rsynca w trybie serwera
Group: Networking/Daemons
Requires(post,preun): /sbin/chkconfig
-Requires: %{name} = %{version}-%{release}
+Requires: %{name} = %{epoch}:%{version}-%{release}
Provides: rsyncd
Obsoletes: rsyncd
Obsoletes: rsyncd-inetd
techniczna nowego algorytmu została również dołączona do pakietu.
%prep
-%setup -q -n %{name}-%{version}pre9
+%setup -q -b1
%patch0 -p1
+%{?with_fadvise:%patch1 -p1}
+%{?with_noatime:%patch2 -p1}
+
+sed -i -e 's|#!/usr/bin/env bash|#!/bin/bash|' rsync-ssl
%build
cp -f /usr/share/automake/config.sub .
%{__autoheader}
%{__autoconf}
%configure \
+ LIBS="-lcrypto" \
%{?with_rsh:--with-rsh=rsh} \
--enable-ipv6 \
--enable-acl-support \
:> $RPM_BUILD_ROOT%{_sysconfdir}/rsyncd.secrets
cat << EOF > $RPM_BUILD_ROOT%{_sysconfdir}/rsyncd.conf
-log file = /var/log/rsyncd.log
+#log file = /var/log/rsyncd.log
EOF
cat << 'EOF' > $RPM_BUILD_ROOT/etc/env.d/CVSIGNORE
#RSYNC_PASSWORD=
EOF
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/rsyncd
-install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/rsyncd
-install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/rsyncd
-install %{SOURCE4} $RPM_BUILD_ROOT/etc/logrotate.d/rsyncd
+install -p %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/rsyncd
+cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/rsyncd
+cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rsyncd
+cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/logrotate.d/rsyncd
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc README NEWS OLDNEWS TODO
-%config(noreplace,missingok) %verify(not md5 mtime size) /etc/env.d/*
-%attr(755,root,root) %{_bindir}/*
-%{_mandir}/man1/*
+%doc README.md NEWS.md TODO support
+%config(noreplace,missingok) %verify(not md5 mtime size) /etc/env.d/CVSIGNORE
+%config(noreplace,missingok) %verify(not md5 mtime size) /etc/env.d/RSYNC_PASSWORD
+%config(noreplace,missingok) %verify(not md5 mtime size) /etc/env.d/RSYNC_PROXY
+%config(noreplace,missingok) %verify(not md5 mtime size) /etc/env.d/RSYNC_RSH
+%attr(755,root,root) %{_bindir}/rsync
+%{_mandir}/man1/rsync.1*
%files -n rsyncd-inetd
%defattr(644,root,root,755)
%dir %{_sysconfdir}
-%attr(640,root,root) %config(noreplace) %{_sysconfdir}/rsyncd.conf
-%attr(640,root,root) %config(noreplace) %{_sysconfdir}/rsyncd.secrets
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rsyncd.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rsyncd.secrets
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/rsyncd
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/rsyncd
%attr(640,root,root) %ghost /var/log/rsyncd.log
-%{_mandir}/man5/*
+%{_mandir}/man5/rsyncd.conf.5*
%files -n rsyncd-standalone
%defattr(644,root,root,755)
%dir %{_sysconfdir}
-%attr(640,root,root) %config(noreplace) %{_sysconfdir}/rsyncd.conf
-%attr(640,root,root) %config(noreplace) %{_sysconfdir}/rsyncd.secrets
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rsyncd.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rsyncd.secrets
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rsyncd
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/rsyncd
%attr(640,root,root) %ghost /var/log/rsyncd.log
%attr(754,root,root) /etc/rc.d/init.d/rsyncd
-%{_mandir}/man5/*
+%{_mandir}/man5/rsyncd.conf.5*