- BR xxHash-devel >= 0.8.0
[packages/rsync.git] / rsync.spec
1 # TODO:
2 #   3.1.3 rsyncd segfaults very early in server rsync:// mode (both inetd and standalone)
3 #   rsync[27223]: segfault at 7468 ip 00007f4281c56e81 sp 00007ffc29186160 error 4 in libc-2.27.so[7f4281bd3000+1b4000]
4 #
5 # Conditional build:
6 %bcond_with     rsh     # set remote shell command to rsh instead of ssh (old behaviour)
7 %bcond_with     fadvise # apply fadvise patch
8 %bcond_with     noatime # apply noatime patch
9 %bcond_with     tests   # perform "make test"
10 #
11 %ifarch alpha
12 %undefine       with_tests
13 %endif
14 Summary:        Program for efficient remote updates of files
15 Summary(es.UTF-8):      Programa para actualizar archivos remotos de forma eficiente
16 Summary(ko.UTF-8):      네트워크를 통한 파일동기화를 위한 프로그램
17 Summary(pl.UTF-8):      Program do wydajnego zdalnego uaktualniania plików
18 Summary(pt_BR.UTF-8):   Programa para atualizar arquivos remotos de forma eficiente
19 Summary(ru.UTF-8):      Программа для эффективного удаленного обновления файлов
20 Summary(uk.UTF-8):      Програма для ефективного віддаленого оновлення файлів
21 Summary(zh_CN.UTF-8):   [通讯]传输工具
22 Summary(zh_TW.UTF-8):   [喙啪]\e$(B6G?i火(c\e(B
23 Name:           rsync
24 Version:        3.2.3
25 Release:        1
26 Epoch:          1
27 License:        GPL v3+
28 Group:          Networking/Utilities
29 Source0:        https://rsync.samba.org/ftp/rsync/%{name}-%{version}.tar.gz
30 # Source0-md5:  209f8326f5137d8817a6276d9577a2f1
31 Source1:        https://rsync.samba.org/ftp/rsync/%{name}-patches-%{version}.tar.gz
32 # Source1-md5:  884c872b55c7431f4c4e8d8bf182fafa
33 Source2:        %{name}.inet
34 Source3:        %{name}.init
35 Source4:        %{name}.sysconfig
36 Source5:        %{name}d.logrotate
37 Patch0:         %{name}-config.patch
38 Patch1:         %{name}-fadvise.patch
39 Patch2:         %{name}-noatime.patch
40 URL:            https://rsync.samba.org/
41 BuildRequires:  acl-devel
42 BuildRequires:  autoconf >= 2.59
43 BuildRequires:  automake
44 BuildRequires:  popt-devel
45 BuildRequires:  rpmbuild(macros) >= 1.318
46 BuildRequires:  xxHash-devel >= 0.8.0
47 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
48
49 %define         _duplicate_files_terminate_build        0
50 %define         _sysconfdir     /etc/rsyncd
51
52 %description
53 rsync is a replacement for rcp that has many more features.
54
55 rsync uses the "rsync algorithm" which provides a very fast method for
56 bringing remote files into sync. It does this by sending just the
57 differences in the files across the link, without requiring that both
58 sets of files are present at one of the ends of the link beforehand.
59
60 A technical report describing the rsync algorithm is included with
61 this package.
62
63 %description -l es.UTF-8
64 rsync es un substituto más rápido y flexible para rcp que permite la
65 sincronización de archivos o directorios, vía red, de forma rápida y
66 eficiente, entre diferentes máquinas transfiriendo solamente las
67 diferencias entre estos directorios de forma compactada. No necesita
68 que ninguna de las máquinas tengan una copia de lo que está en la
69 otra. Está disponible en este paquete, una relación técnica
70 describiendo el algoritmo usado por el rsync.
71
72 %description -l ko.UTF-8
73 Rsync는 원격 호스트 파일을 매우 빨리 동기화하는데 신뢰할만한
74 알고리즘을 사용한다. Rsync는 파일의 전체를 보내는 것 대신에 네트웍을
75 통해 파일의 다른 부분만을 전송하기 때문에 빠르다. Rsync는 강력한 미러
76 프로세스 혹은 rcp 커멘드를 통한 더 우수한 대체용으로써 사용된다. rsync
77 알고리즘을 묘사하는 기술적인 내용은 이 꾸러미에 포함되어 있다.
78
79 %description -l pl.UTF-8
80 Rsync jest zamiennikiem programu rcp z bardziej rozbudowaną składnią
81 poleceń. Program ten używa efektywnego algorytmu "rsync" w czasie
82 komunikacji i transportu plików do systemu zdalnego. Dokumentacja
83 techniczna nowego algorytmu została również dołączona do pakietu.
84
85 %description -l pt_BR.UTF-8
86 O rsync é um substituto mais rápido e flexível para o rcp permitindo
87 sincronização de arquivos ou diretórios via rede de forma rápida e
88 eficiente entre diferentes máquinas transferindo somente as diferenças
89 entre estes diretórios de forma compactada. Ele não precisa que
90 nenhuma das máquinas tenha uma cópia do que está na outra.
91
92 Um relatório técnico descrevendo o algoritmo usado pelo rsync está
93 disponível neste pacote.
94
95 %description -l ru.UTF-8
96 rsync - это более быстрая и гибкая альтернатива rcp, позволяющая
97 быструю и эффективную по отношению к ресурсам сети синхронизацию
98 файлов или каталогов на различных машинах путем передачи только
99 различий между ними в компрессированном виде. При этом совершенно не
100 обязательно, чтобы одна машина имела у себя копию того, что есть на
101 другой машине.
102
103 %description -l uk.UTF-8
104 rsync - це швидша та гнучкіша альтернатива rcp, яка забезпечує швидку
105 та ефективну по відношенню до ресурсів мережі синхронізацію файлів чи
106 каталогів на різних машинах шляхом передачі лише відмінностей між ними
107 в компресованому виді. При цьому зовсім не обов'язково, щоб одна
108 машина мала в себе копію того, що є на іншій машині.
109
110 %package -n rsyncd-inetd
111 Summary:        Files necessary to run rsync in daemon mode
112 Summary(pl.UTF-8):      Pliki niezbędne do uruchomienia rsynca w trybie serwera
113 Group:          Networking/Daemons
114 Requires:       %{name} = %{epoch}:%{version}-%{release}
115 Requires:       rc-inetd
116 Provides:       rsyncd
117 Obsoletes:      rsyncd
118 Obsoletes:      rsyncd-standalone
119
120 %description -n rsyncd-inetd
121 rsync is a replacement for rcp that has many more features.
122
123 rsync uses the "rsync algorithm" which provides a very fast method for
124 bringing remote files into sync. It does this by sending just the
125 differences in the files across the link, without requiring that both
126 sets of files are present at one of the ends of the link beforehand.
127
128 A technical report describing the rsync algorithm is included with
129 this package.
130
131 %description -n rsyncd-inetd -l pl.UTF-8
132 Rsync jest zamiennikiem programu rcp z bardziej rozbudowaną składnią
133 poleceń. Program ten używa efektywnego algorytmu "rsync" w czasie
134 komunikacji i transportu plików do systemu zdalnego. Dokumentacja
135 techniczna nowego algorytmu została również dołączona do pakietu.
136
137 %package -n rsyncd-standalone
138 Summary:        Files necessary to run rsync in daemon mode
139 Summary(pl.UTF-8):      Pliki niezbędne do uruchomienia rsynca w trybie serwera
140 Group:          Networking/Daemons
141 Requires(post,preun):   /sbin/chkconfig
142 Requires:       %{name} = %{epoch}:%{version}-%{release}
143 Provides:       rsyncd
144 Obsoletes:      rsyncd
145 Obsoletes:      rsyncd-inetd
146
147 %description -n rsyncd-standalone
148 rsync is a replacement for rcp that has many more features.
149
150 rsync uses the "rsync algorithm" which provides a very fast method for
151 bringing remote files into sync. It does this by sending just the
152 differences in the files across the link, without requiring that both
153 sets of files are present at one of the ends of the link beforehand.
154
155 A technical report describing the rsync algorithm is included with
156 this package.
157
158 %description -n rsyncd-standalone -l pl.UTF-8
159 Rsync jest zamiennikiem programu rcp z bardziej rozbudowaną składnią
160 poleceń. Program ten używa efektywnego algorytmu "rsync" w czasie
161 komunikacji i transportu plików do systemu zdalnego. Dokumentacja
162 techniczna nowego algorytmu została również dołączona do pakietu.
163
164 %prep
165 %setup -q -b1
166 %patch0 -p1
167 %{?with_fadvise:%patch1 -p1}
168 %{?with_noatime:%patch2 -p1}
169
170 sed -i -e 's|#!/usr/bin/env bash|#!/bin/bash|' rsync-ssl
171
172 %build
173 cp -f /usr/share/automake/config.sub .
174 %{__autoheader}
175 %{__autoconf}
176 %configure \
177         LIBS="-lcrypto" \
178         %{?with_rsh:--with-rsh=rsh} \
179         --enable-ipv6 \
180         --enable-acl-support \
181         --enable-xattr-support \
182         --disable-debug \
183         --with-rsyncd-conf=%{_sysconfdir}/rsyncd.conf
184 %{__make} proto
185 %{__make}
186
187 %{?with_tests:%{__make} test}
188
189 %install
190 rm -rf $RPM_BUILD_ROOT
191 install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/{sysconfig/rc-inetd,rc.d/init.d,logrotate.d,env.d},/var/log}
192
193 %{__make} install \
194         prefix=$RPM_BUILD_ROOT%{_prefix} \
195         mandir=$RPM_BUILD_ROOT%{_mandir} \
196         bindir=$RPM_BUILD_ROOT%{_bindir}
197
198 :> $RPM_BUILD_ROOT/var/log/rsyncd.log
199 :> $RPM_BUILD_ROOT%{_sysconfdir}/rsyncd.secrets
200
201 cat << EOF > $RPM_BUILD_ROOT%{_sysconfdir}/rsyncd.conf
202 #log file = /var/log/rsyncd.log
203 EOF
204
205 cat << 'EOF' > $RPM_BUILD_ROOT/etc/env.d/CVSIGNORE
206 #CVSIGNORE=
207 EOF
208 cat << 'EOF' > $RPM_BUILD_ROOT/etc/env.d/RSYNC_RSH
209 #RSYNC_RSH=
210 EOF
211 cat << 'EOF' > $RPM_BUILD_ROOT/etc/env.d/RSYNC_PROXY
212 #RSYNC_PROXY=
213 EOF
214 cat << 'EOF' > $RPM_BUILD_ROOT/etc/env.d/RSYNC_PASSWORD
215 #RSYNC_PASSWORD=
216 EOF
217
218 install -p %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/rsyncd
219 cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/rsyncd
220 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rsyncd
221 cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/logrotate.d/rsyncd
222
223 %clean
224 rm -rf $RPM_BUILD_ROOT
225
226 %post
227 %env_update
228
229 %postun
230 %env_update
231
232 %post -n rsyncd-inetd
233 %service -q rc-inetd reload
234
235 %postun -n rsyncd-inetd
236 if [ "$1" = "0" ]; then
237         %service -q rc-inetd reload
238 fi
239
240 %post -n rsyncd-standalone
241 /sbin/chkconfig --add rsyncd
242 %service rsyncd restart "rsync server"
243
244 %preun -n rsyncd-standalone
245 if [ "$1" = "0" ]; then
246         %service rsyncd stop
247         /sbin/chkconfig --del rsyncd
248 fi
249
250 %files
251 %defattr(644,root,root,755)
252 %doc README.md NEWS.md TODO support
253 %config(noreplace,missingok) %verify(not md5 mtime size) /etc/env.d/CVSIGNORE
254 %config(noreplace,missingok) %verify(not md5 mtime size) /etc/env.d/RSYNC_PASSWORD
255 %config(noreplace,missingok) %verify(not md5 mtime size) /etc/env.d/RSYNC_PROXY
256 %config(noreplace,missingok) %verify(not md5 mtime size) /etc/env.d/RSYNC_RSH
257 %attr(755,root,root) %{_bindir}/rsync
258 %{_mandir}/man1/rsync.1*
259
260 %files -n rsyncd-inetd
261 %defattr(644,root,root,755)
262 %dir %{_sysconfdir}
263 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rsyncd.conf
264 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rsyncd.secrets
265 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/rsyncd
266 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/rsyncd
267 %attr(640,root,root) %ghost /var/log/rsyncd.log
268 %{_mandir}/man5/rsyncd.conf.5*
269
270 %files -n rsyncd-standalone
271 %defattr(644,root,root,755)
272 %dir %{_sysconfdir}
273 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rsyncd.conf
274 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rsyncd.secrets
275 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rsyncd
276 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/rsyncd
277 %attr(640,root,root) %ghost /var/log/rsyncd.log
278 %attr(754,root,root) /etc/rc.d/init.d/rsyncd
279 %{_mandir}/man5/rsyncd.conf.5*
This page took 0.15451 seconds and 3 git commands to generate.