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