rsync/rsync.spec

216 lines
6.3 KiB
RPMSpec
Raw Permalink Normal View History

#
# spec file for package rsync
#
Accepting request 1168828 from home:david.anes:branches:network - Update to 3.3.0 * BUG FIXES: - Fixed a bug with --sparse --inplace where a trailing gap in the source file would not clear out the trailing data in the destination file. - Fixed an buffer overflow in the checksum2 code if SHA1 is being used for the checksum2 algorithm. - Fixed an issue when rsync is compiled using _FORTIFY_SOURCE so that the extra tests don't complain about a strlcpy() limit value (which was too large, even though it wasn't possible for the larger value to cause an overflow). (fix bsc#1214616, bsc#1214249) - Add a backtick to the list of characters that the filename quoting needs to escape using backslashes. - Fixed a string-comparison issue in the internal handling of --progress (a locale such as tr_TR.utf-8 needed the internal triggering of --info options to use upper-case flag names to ensure that they match). - Make sure that a local transfer marks the sender side as trusted. - Change the argv handling to work with a newer popt library -⁠-⁠ one that likes to free more data than it used to. - Rsync now calls OpenSSL_add_all_algorithms() when compiled against an older openssl library. - Fixed a problem in the daemon auth for older protocols (29 and before) if the openssl library is being used to compute MD4 checksums. - Fixed rsync -VV on Cygwin -⁠-⁠ it needed a flush of stdout. - Fixed an old stats bug that counted devices as symlinks. * ENHANCEMENTS: OBS-URL: https://build.opensuse.org/request/show/1168828 OBS-URL: https://build.opensuse.org/package/show/network/rsync?expand=0&rev=119
2024-04-18 14:02:12 +02:00
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%if 0%{?suse_version} >= 1550
%bcond_without xxhash
%else
%bcond_with xxhash
%endif
%if 0%{?suse_version} < 1550
%bcond_without gcc11
%else
%bcond_with gcc11
%endif
%if 0%{?suse_version} < 1600
%bcond_without slp
%else
%bcond_with slp
%endif
Name: rsync
Accepting request 1168828 from home:david.anes:branches:network - Update to 3.3.0 * BUG FIXES: - Fixed a bug with --sparse --inplace where a trailing gap in the source file would not clear out the trailing data in the destination file. - Fixed an buffer overflow in the checksum2 code if SHA1 is being used for the checksum2 algorithm. - Fixed an issue when rsync is compiled using _FORTIFY_SOURCE so that the extra tests don't complain about a strlcpy() limit value (which was too large, even though it wasn't possible for the larger value to cause an overflow). (fix bsc#1214616, bsc#1214249) - Add a backtick to the list of characters that the filename quoting needs to escape using backslashes. - Fixed a string-comparison issue in the internal handling of --progress (a locale such as tr_TR.utf-8 needed the internal triggering of --info options to use upper-case flag names to ensure that they match). - Make sure that a local transfer marks the sender side as trusted. - Change the argv handling to work with a newer popt library -⁠-⁠ one that likes to free more data than it used to. - Rsync now calls OpenSSL_add_all_algorithms() when compiled against an older openssl library. - Fixed a problem in the daemon auth for older protocols (29 and before) if the openssl library is being used to compute MD4 checksums. - Fixed rsync -VV on Cygwin -⁠-⁠ it needed a flush of stdout. - Fixed an old stats bug that counted devices as symlinks. * ENHANCEMENTS: OBS-URL: https://build.opensuse.org/request/show/1168828 OBS-URL: https://build.opensuse.org/package/show/network/rsync?expand=0&rev=119
2024-04-18 14:02:12 +02:00
Version: 3.3.0
Release: 0
Summary: Versatile tool for fast incremental file transfer
License: GPL-3.0-or-later
Group: Productivity/Networking/Other
URL: https://rsync.samba.org/
Source: https://rsync.samba.org/ftp/rsync/src/rsync-%{version}.tar.gz
Source1: https://rsync.samba.org/ftp/rsync/src/rsync-patches-%{version}.tar.gz
Source2: logrotate.rsync
Source3: rsyncd.socket
Source4: rsyncd.rc
Source5: rsyncd.conf
Source6: rsyncd.secrets
Source8: rsyncd.service
Source9: rsyncd@.service
Source10: https://rsync.samba.org/ftp/rsync/src/rsync-%{version}.tar.gz.asc
Source11: https://rsync.samba.org/ftp/rsync/src/rsync-patches-%{version}.tar.gz.asc
Source12: %{name}.keyring
Source13: rsyncd
Patch0: rsync-no-libattr.patch
Patch2: rsync-usr-etc.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: c++_compiler
BuildRequires: libacl-devel
BuildRequires: liblz4-devel
BuildRequires: libzstd-devel
BuildRequires: pkgconfig
BuildRequires: popt-devel
BuildRequires: systemd-rpm-macros
BuildRequires: zlib-devel
%if %{with xxhash}
BuildRequires: pkgconfig(libxxhash) >= 0.8.0
%endif
%if %{with gcc11}
BuildRequires: gcc11-c++
%endif
%if %{with slp}
BuildRequires: openslp-devel
%endif
BuildRequires: pkgconfig(openssl)
Requires(post): grep
Requires(post): sed
Recommends: logrotate
%description
Rsync is a fast and extraordinarily versatile file copying tool. It can copy
locally, to/from another host over any remote shell, or to/from a remote rsync
daemon. It offers a large number of options that control every aspect of its
behavior and permit very flexible specification of the set of files to be
copied. It is famous for its delta-transfer algorithm, which reduces the amount
of data sent over the network by sending only the differences between the
source files and the existing files in the destination. Rsync is widely used
for backups and mirroring and as an improved copy command for everyday use.
%prep
%setup -q -b 1
rm -f zlib/*.h zlib/*.c
%if %{with slp}
patch -p1 < patches/slp.diff
%endif
%autopatch -p1
%build
autoreconf -fiv
%if %{with gcc11}
export CC=gcc-11
export CXX=g++-11
%endif
export CFLAGS="%{optflags} -fPIC -DPIC -fPIE"
export CXXFLAGS="$CFLAGS"
export LDFLAGS="-Wl,-z,relro,-z,now -fPIE -pie"
%configure \
--with-included-popt=no \
--with-included-zlib=no \
--disable-debug \
%if 0%{?suse_version} > 1500
--with-rsyncd-distconf=%{_distconfdir}/rsyncd.conf \
%endif
%if !%{with xxhash}
--disable-xxhash\
%endif
%ifarch x86_64
--enable-roll-simd \
%endif
%if %{with slp}
--enable-slp \
%endif
--enable-acl-support \
--enable-xattr-support
%make_build reconfigure
%make_build
%check
chmod +x support/*
%make_build check
chmod -x support/*
%install
%make_install
rm -f %{buildroot}%{_sbindir}/rsyncd
install -d %{buildroot}%{_sysconfdir}/init.d
install -d %{buildroot}%{_sysconfdir}/xinetd.d
install -d %{buildroot}%{_sbindir}
install -m 755 %{SOURCE13} %{buildroot}%{_sbindir}/rsyncd
install -m 755 support/rsyncstats %{buildroot}%{_bindir}
%if 0%{?suse_version} > 1500
install -d %{buildroot}%{_distconfdir}/logrotate.d
install -m 644 %{SOURCE2} %{buildroot}%{_distconfdir}/logrotate.d/rsync
install -m 644 %{SOURCE5} %{buildroot}%{_distconfdir}/rsyncd.conf
install -m 600 %{SOURCE6} %{buildroot}%{_distconfdir}/rsyncd.secrets
echo "# This is a template only. Create your own entries in /etc/rsyncd.secrets" >>%{buildroot}%{_distconfdir}/rsyncd.secrets
echo
%else
install -d %{buildroot}%{_sysconfdir}/logrotate.d
install -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/rsync
install -m 644 %{SOURCE5} %{buildroot}%{_sysconfdir}/rsyncd.conf
install -m 600 %{SOURCE6} %{buildroot}%{_sysconfdir}/rsyncd.secrets
%endif
install -D -m 0644 %{SOURCE9} %{buildroot}%{_unitdir}/rsyncd@.service
install -D -m 0644 %{SOURCE8} %{buildroot}%{_unitdir}/rsyncd.service
install -D -m 0644 %{SOURCE3} %{buildroot}%{_unitdir}/rsyncd.socket
ln -sf service %{buildroot}%{_sbindir}/rcrsyncd
chmod -x support/*
%pre
%service_add_pre rsyncd.service
%if 0%{?suse_version} > 1500
# Prepare for migration to /usr/etc; save any old .rpmsave
for i in logrotate.d/rsync rsyncd.conf rsyncd.secrets; do
test -f %{_sysconfdir}/${i}.rpmsave && mv -v %{_sysconfdir}/${i}.rpmsave %{_sysconfdir}/${i}.rpmsave.old ||:
done
%endif
%if 0%{?suse_version} > 1500
%posttrans
# Migration to /usr/etc, restore just created .rpmsave
for i in logrotate.d/rsync rsyncd.conf rsyncd.secrets; do
test -f %{_sysconfdir}/${i}.rpmsave && mv -v %{_sysconfdir}/${i}.rpmsave %{_sysconfdir}/${i} ||:
done
%endif
%preun
%service_del_preun rsyncd.service
%post
%service_add_post rsyncd.service
%postun
%service_del_postun rsyncd.service
%files
%license COPYING
%doc NEWS.md README.md tech_report.tex support/
%{_unitdir}/rsyncd@.service
%{_unitdir}/rsyncd.service
%{_unitdir}/rsyncd.socket
%if 0%{?suse_version} > 1500
%{_distconfdir}/logrotate.d/rsync
%{_distconfdir}/rsyncd.conf
%{_distconfdir}/rsyncd.secrets
%else
%config(noreplace) %{_sysconfdir}/logrotate.d/rsync
%config(noreplace) %{_sysconfdir}/rsyncd.conf
%config(noreplace) %{_sysconfdir}/rsyncd.secrets
%endif
%{_sbindir}/rcrsyncd
%{_sbindir}/rsyncd
%{_bindir}/rsyncstats
%{_bindir}/rsync
%{_bindir}/rsync-ssl
%{_mandir}/man1/rsync.1%{?ext_man}
%{_mandir}/man1/rsync-ssl.1%{?ext_man}
%{_mandir}/man5/rsyncd.conf.5%{?ext_man}
%changelog