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