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