]> git.pld-linux.org Git - packages/rsync.git/blobdiff - rsync.spec
- rel 6; actually apply the patch
[packages/rsync.git] / rsync.spec
index 8d2a18e14714a687c51912805332ff087e17bfdd..6f71a643384d72cc23745571ca5958e6b47ceb67 100644 (file)
@@ -1,35 +1,49 @@
+# TODO:
+#   3.1.3 rsyncd segfaults very early in server rsync:// mode (both inetd and standalone)
+#   rsync[27223]: segfault at 7468 ip 00007f4281c56e81 sp 00007ffc29186160 error 4 in libc-2.27.so[7f4281bd3000+1b4000]
 #
 # Conditional build:
 %bcond_with    rsh     # set remote shell command to rsh instead of ssh (old behaviour)
+%bcond_with    tests   # perform "make test"
 #
+%ifarch alpha
+%undefine      with_tests
+%endif
 Summary:       Program for efficient remote updates of files
-Summary(es):   Programa para actualizar archivos remotos de forma eficiente
-Summary(ko):   ³×Æ®¿öÅ©¸¦ ÅëÇÑ ÆÄÀϵ¿±âÈ­¸¦ À§ÇÑ ÇÁ·Î±×·¥
-Summary(pl):   Program do wydajnego zdalnego uaktualniania plików
-Summary(pt_BR):        Programa para atualizar arquivos remotos de forma eficiente
-Summary(ru):   ðÒÏÇÒÁÍÍÁ ÄÌÑ ÜÆÆÅËÔÉ×ÎÏÇÏ ÕÄÁÌÅÎÎÏÇÏ ÏÂÎÏ×ÌÅÎÉÑ ÆÁÊÌÏ×
-Summary(uk):   ðÒÏÇÒÁÍÁ ÄÌÑ ÅÆÅËÔÉ×ÎÏÇϠצÄÄÁÌÅÎÏÇÏ ÏÎÏ×ÌÅÎÎÑ ÆÁÊ̦×
-Summary(zh_CN):        [ͨѶ]´«Ê乤¾ß
-Summary(zh_TW):        [³ñ°Ô]\e$(B6G?i¤õ(c\e(B
+Summary(es.UTF-8):     Programa para actualizar archivos remotos de forma eficiente
+Summary(ko.UTF-8):     네트워크를 통한 파일동기화를 위한 프로그램
+Summary(pl.UTF-8):     Program do wydajnego zdalnego uaktualniania plików
+Summary(pt_BR.UTF-8):  Programa para atualizar arquivos remotos de forma eficiente
+Summary(ru.UTF-8):     Программа для эффективного удаленного обновления файлов
+Summary(uk.UTF-8):     Програма для ефективного віддаленого оновлення файлів
+Summary(zh_CN.UTF-8):  [通讯]传输工具
+Summary(zh_TW.UTF-8):  [喙啪]\e$(B6G?i火(c\e(B
 Name:          rsync
-Version:       2.6.2
-Release:       1
-License:       GPL
-Group:         Daemons
+Version:       3.1.2
+Release:       6
+Epoch:         1
+License:       GPL v3+
+Group:         Networking/Utilities
 Source0:       http://rsync.samba.org/ftp/rsync/%{name}-%{version}.tar.gz
-# Source0-md5: bcacd9a9108a9e4760832212ec3d658d
-Source1:       %{name}.inet
-Source2:       %{name}.init
-Source3:       %{name}.sysconfig
-Source4:       %{name}d.logrotate
+# Source0-md5: 0f758d7e000c0f7f7d3792610fad70cb
+Source1:       http://rsync.samba.org/ftp/rsync/rsync-patches-%{version}.tar.gz
+# Source1-md5: f412602a3cba0b872adfaed905a0aa28
+Source2:       %{name}.inet
+Source3:       %{name}.init
+Source4:       %{name}.sysconfig
+Source5:       %{name}d.logrotate
 Patch0:                %{name}-config.patch
-Patch1:                %{name}-man.patch
-Patch2:                %{name}-segv.patch
-BuildRequires: autoconf >= 2.52
+Patch1:                https://tobi.oetiker.ch/patches/rsync-3.1.2-1-fadvise.patch
+# Patch1-md5:  b055468e7cbc5d829aa943f07916d458
+URL:           http://rsync.samba.org/
+BuildRequires: acl-devel
+BuildRequires: autoconf >= 2.59
+BuildRequires: automake
 BuildRequires: popt-devel
-URL:           http://samba.anu.edu.au/rsync/
+BuildRequires: rpmbuild(macros) >= 1.318
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+%define                _duplicate_files_terminate_build        0
 %define                _sysconfdir     /etc/rsyncd
 
 %description
@@ -43,59 +57,59 @@ sets of files are present at one of the ends of the link beforehand.
 A technical report describing the rsync algorithm is included with
 this package.
 
-%description -l es
-rsync es un substituto más rápido y flexible para rcp que permite la
-sincronización de archivos o directorios, vía red, de forma rápida y
-eficiente, entre diferentes máquinas transfiriendo solamente las
+%description -l es.UTF-8
+rsync es un substituto más rápido y flexible para rcp que permite la
+sincronización de archivos o directorios, vía red, de forma rápida y
+eficiente, entre diferentes máquinas transfiriendo solamente las
 diferencias entre estos directorios de forma compactada. No necesita
-que ninguna de las máquinas tengan una copia de lo que está en la
-otra. Está disponible en este paquete, una relación técnica
+que ninguna de las máquinas tengan una copia de lo que está en la
+otra. Está disponible en este paquete, una relación técnica
 describiendo el algoritmo usado por el rsync.
 
-%description -l ko
-Rsync´Â ¿ø°Ý È£½ºÆ® ÆÄÀÏÀ» ¸Å¿ì »¡¸® µ¿±âÈ­Çϴµ¥ ½Å·ÚÇÒ¸¸ÇÑ
-¾Ë°í¸®ÁòÀ» »ç¿ëÇÑ´Ù. Rsync´Â ÆÄÀÏÀÇ Àüü¸¦ º¸³»´Â °Í ´ë½Å¿¡ ³×Æ®¿÷À»
-ÅëÇØ ÆÄÀÏÀÇ ´Ù¸¥ ºÎºÐ¸¸À» Àü¼ÛÇϱ⠶§¹®¿¡ ºü¸£´Ù. Rsync´Â °­·ÂÇÑ ¹Ì·¯
-ÇÁ·Î¼¼½º È¤Àº rcp Ä¿¸àµå¸¦ ÅëÇÑ ´õ ¿ì¼öÇÑ ´ëü¿ëÀ¸·Î½á »ç¿ëµÈ´Ù. rsync
-¾Ë°í¸®ÁòÀ» ¹¦»çÇϴ ±â¼úÀûÀΠ³»¿ëÀº ÀÌ ²Ù·¯¹Ì¿¡ Æ÷ÇԵǾî ÀÖ´Ù.
-
-%description -l pl
-Rsync jest zamiennikiem programu rcp z bardziej rozbudowan± sk³adni±
-poleceñ. Program ten u¿ywa efektywnego algorytmu "rsync" w czasie
-komunikacji i transportu plików do systemu zdalnego. Dokumentacja
-techniczna nowego algorytmu zosta³a równie¿ do³±czona do pakietu.
-
-%description -l pt_BR
-O rsync é um substituto mais rápido e flexível para o rcp permitindo
-sincronização de arquivos ou diretórios via rede de forma rápida e
-eficiente entre diferentes máquinas transferindo somente as diferenças
-entre estes diretórios de forma compactada. Ele não precisa que
-nenhuma das máquinas tenha uma cópia do que está na outra.
-
-Um relatório técnico descrevendo o algoritmo usado pelo rsync está
-disponível neste pacote.
-
-%description -l ru
-rsync - ÜÔÏ ÂÏÌÅÅ ÂÙÓÔÒÁÑ É ÇÉÂËÁÑ ÁÌØÔÅÒÎÁÔÉ×Á rcp, ÐÏÚ×ÏÌÑÀÝÁÑ
-ÂÙÓÔÒÕÀ É ÜÆÆÅËÔÉ×ÎÕÀ ÐÏ ÏÔÎÏÛÅÎÉÀ Ë ÒÅÓÕÒÓÁÍ ÓÅÔÉ ÓÉÎÈÒÏÎÉÚÁÃÉÀ
-ÆÁÊÌÏ× ÉÌÉ ËÁÔÁÌÏÇÏ× ÎÁ ÒÁÚÌÉÞÎÙÈ ÍÁÛÉÎÁÈ ÐÕÔÅÍ ÐÅÒÅÄÁÞÉ ÔÏÌØËÏ
-ÒÁÚÌÉÞÉÊ ÍÅÖÄÕ ÎÉÍÉ × ËÏÍÐÒÅÓÓÉÒÏ×ÁÎÎÏÍ ×ÉÄÅ. ðÒÉ ÜÔÏÍ ÓÏ×ÅÒÛÅÎÎÏ ÎÅ
-ÏÂÑÚÁÔÅÌØÎÏ, ÞÔÏÂÙ ÏÄÎÁ ÍÁÛÉÎÁ ÉÍÅÌÁ Õ ÓÅÂÑ ËÏÐÉÀ ÔÏÇÏ, ÞÔÏ ÅÓÔØ ÎÁ
-ÄÒÕÇÏÊ ÍÁÛÉÎÅ.
-
-%description -l uk
-rsync - ÃÅ Û×ÉÄÛÁ ÔÁ ÇÎÕÞ˦ÛÁ ÁÌØÔÅÒÎÁÔÉ×Á rcp, ÑËÁ ÚÁÂÅÚÐÅÞÕ¤ Û×ÉÄËÕ
-ÔÁ ÅÆÅËÔÉ×ÎÕ ÐϠצÄÎÏÛÅÎÎÀ ÄÏ ÒÅÓÕÒӦנÍÅÒÅÖ¦ ÓÉÎÈÒÏΦÚÁæÀ ÆÁÊ̦נÞÉ
-ËÁÔÁÌÏǦנÎÁ Ò¦ÚÎÉÈ ÍÁÛÉÎÁÈ ÛÌÑÈÏÍ ÐÅÒÅÄÁÞ¦ ÌÉÛŠצÄͦÎÎÏÓÔÅʠͦ֠ÎÉÍÉ
-× ËÏÍÐÒÅÓÏ×ÁÎÏÍÕ ×ÉĦ. ðÒÉ ÃØÏÍÕ ÚÏ×Ӧ͠ÎÅ ÏÂÏ×'ÑÚËÏ×Ï, ÝÏ ÏÄÎÁ
-ÍÁÛÉÎÁ ÍÁÌÁ × ÓÅÂÅ ËÏЦÀ ÔÏÇÏ, ÝÏ ¤ ÎÁ ¦ÎۦʠÍÁÛÉΦ.
+%description -l ko.UTF-8
+Rsync는 원격 호스트 파일을 매우 빨리 동기화하는데 신뢰할만한
+알고리즘을 사용한다. Rsync는 파일의 전체를 보내는 것 대신에 네트웍을
+통해 파일의 다른 부분만을 전송하기 때문에 빠르다. Rsync는 강력한 미러
+프로세스 혹은 rcp 커멘드를 통한 더 우수한 대체용으로써 사용된다. rsync
+알고리즘을 묘사하는 기술적인 내용은 이 꾸러미에 포함되어 있다.
+
+%description -l pl.UTF-8
+Rsync jest zamiennikiem programu rcp z bardziej rozbudowaną składnią
+poleceń. Program ten używa efektywnego algorytmu "rsync" w czasie
+komunikacji i transportu plików do systemu zdalnego. Dokumentacja
+techniczna nowego algorytmu została również dołączona do pakietu.
+
+%description -l pt_BR.UTF-8
+O rsync é um substituto mais rápido e flexível para o rcp permitindo
+sincronização de arquivos ou diretórios via rede de forma rápida e
+eficiente entre diferentes máquinas transferindo somente as diferenças
+entre estes diretórios de forma compactada. Ele não precisa que
+nenhuma das máquinas tenha uma cópia do que está na outra.
+
+Um relatório técnico descrevendo o algoritmo usado pelo rsync está
+disponível neste pacote.
+
+%description -l ru.UTF-8
+rsync - это более быстрая и гибкая альтернатива rcp, позволяющая
+быструю и эффективную по отношению к ресурсам сети синхронизацию
+файлов или каталогов на различных машинах путем передачи только
+различий между ними в компрессированном виде. При этом совершенно не
+обязательно, чтобы одна машина имела у себя копию того, что есть на
+другой машине.
+
+%description -l uk.UTF-8
+rsync - це швидша та гнучкіша альтернатива rcp, яка забезпечує швидку
+та ефективну по відношенню до ресурсів мережі синхронізацію файлів чи
+каталогів на різних машинах шляхом передачі лише відмінностей між ними
+в компресованому виді. При цьому зовсім не обов'язково, щоб одна
+машина мала в себе копію того, що є на іншій машині.
 
 %package -n rsyncd-inetd
 Summary:       Files necessary to run rsync in daemon mode
-Summary(pl):   Pliki niezbêdne do uruchomienia rsynca w trybie serwera
-Group:         Daemons
-PreReq:                rc-inetd
-Requires:      %{name}
+Summary(pl.UTF-8):     Pliki niezbędne do uruchomienia rsynca w trybie serwera
+Group:         Networking/Daemons
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      rc-inetd
 Provides:      rsyncd
 Obsoletes:     rsyncd
 Obsoletes:     rsyncd-standalone
@@ -111,18 +125,18 @@ sets of files are present at one of the ends of the link beforehand.
 A technical report describing the rsync algorithm is included with
 this package.
 
-%description -n rsyncd-inetd -l pl
-Rsync jest zamiennikiem programu rcp z bardziej rozbudowan± sk³adni±
-poleceñ. Program ten u¿ywa efektywnego algorytmu "rsync" w czasie
-komunikacji i transportu plików do systemu zdalnego. Dokumentacja
-techniczna nowego algorytmu zosta³a równie¿ do³±czona do pakietu.
+%description -n rsyncd-inetd -l pl.UTF-8
+Rsync jest zamiennikiem programu rcp z bardziej rozbudowaną składnią
+poleceń. Program ten używa efektywnego algorytmu "rsync" w czasie
+komunikacji i transportu plików do systemu zdalnego. Dokumentacja
+techniczna nowego algorytmu została również dołączona do pakietu.
 
 %package -n rsyncd-standalone
 Summary:       Files necessary to run rsync in daemon mode
-Summary(pl):   Pliki niezbêdne do uruchomienia rsynca w trybie serwera
-Group:         Daemons
-Requires(post,preun):/sbin/chkconfig
-Requires:      %{name}
+Summary(pl.UTF-8):     Pliki niezbędne do uruchomienia rsynca w trybie serwera
+Group:         Networking/Daemons
+Requires(post,preun):  /sbin/chkconfig
+Requires:      %{name} = %{epoch}:%{version}-%{release}
 Provides:      rsyncd
 Obsoletes:     rsyncd
 Obsoletes:     rsyncd-inetd
@@ -138,104 +152,126 @@ sets of files are present at one of the ends of the link beforehand.
 A technical report describing the rsync algorithm is included with
 this package.
 
-%description -n rsyncd-standalone -l pl
-Rsync jest zamiennikiem programu rcp z bardziej rozbudowan± sk³adni±
-poleceñ. Program ten u¿ywa efektywnego algorytmu "rsync" w czasie
-komunikacji i transportu plików do systemu zdalnego. Dokumentacja
-techniczna nowego algorytmu zosta³a równie¿ do³±czona do pakietu.
+%description -n rsyncd-standalone -l pl.UTF-8
+Rsync jest zamiennikiem programu rcp z bardziej rozbudowaną składnią
+poleceń. Program ten używa efektywnego algorytmu "rsync" w czasie
+komunikacji i transportu plików do systemu zdalnego. Dokumentacja
+techniczna nowego algorytmu została również dołączona do pakietu.
 
 %prep
-%setup -q
+%setup -q -b1
 %patch0 -p1
 %patch1 -p1
-%patch2 -p1
+
+# for compat with previous patched version
+patch -p1 -i patches/acls.diff || exit 1
+patch -p1 -i patches/xattrs.diff || exit 1
 
 %build
 cp -f /usr/share/automake/config.sub .
+%{__autoheader}
 %{__autoconf}
 %configure \
+       LIBS="-lcrypto" \
        %{?with_rsh:--with-rsh=rsh} \
        --enable-ipv6 \
-       --disable-debug
-
+       --enable-acl-support \
+       --enable-xattr-support \
+       --disable-debug \
+       --with-rsyncd-conf=%{_sysconfdir}/rsyncd.conf
+%{__make} proto
 %{__make}
 
+%{?with_tests:%{__make} test}
+
 %install
 rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/{sysconfig/rc-inetd,rc.d/init.d,logrotate.d,env.d},/var/log}
 
 %{__make} install \
        prefix=$RPM_BUILD_ROOT%{_prefix} \
        mandir=$RPM_BUILD_ROOT%{_mandir} \
        bindir=$RPM_BUILD_ROOT%{_bindir}
 
-install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/{sysconfig/rc-inetd,rc.d/init.d,logrotate.d},/var/log}
-
 :> $RPM_BUILD_ROOT/var/log/rsyncd.log
 :> $RPM_BUILD_ROOT%{_sysconfdir}/rsyncd.secrets
 
 cat << EOF > $RPM_BUILD_ROOT%{_sysconfdir}/rsyncd.conf
-log file = /var/log/rsyncd.log
+#log file = /var/log/rsyncd.log
+EOF
+
+cat << 'EOF' > $RPM_BUILD_ROOT/etc/env.d/CVSIGNORE
+#CVSIGNORE=
+EOF
+cat << 'EOF' > $RPM_BUILD_ROOT/etc/env.d/RSYNC_RSH
+#RSYNC_RSH=
+EOF
+cat << 'EOF' > $RPM_BUILD_ROOT/etc/env.d/RSYNC_PROXY
+#RSYNC_PROXY=
+EOF
+cat << 'EOF' > $RPM_BUILD_ROOT/etc/env.d/RSYNC_PASSWORD
+#RSYNC_PASSWORD=
 EOF
 
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/rsyncd
-install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/rsyncd
-install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/rsyncd
-install %{SOURCE4} $RPM_BUILD_ROOT/etc/logrotate.d/rsyncd
+install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/rsyncd
+install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/rsyncd
+install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rsyncd
+install %{SOURCE5} $RPM_BUILD_ROOT/etc/logrotate.d/rsyncd
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
+%post
+%env_update
+
+%postun
+%env_update
+
 %post -n rsyncd-inetd
-if [ -f /var/lock/subsys/rc-inetd ]; then
-        /etc/rc.d/init.d/rc-inetd restart 1>&2
-else
-        echo "Type \"/etc/rc.d/init.d/rc-inetd start\" to start inet server" 1>&2
-fi
+%service -q rc-inetd reload
 
 %postun -n rsyncd-inetd
-if [ "$1" = "0" -a -f /var/lock/subsys/rc-inetd ]; then
-       /etc/rc.d/init.d/rc-inetd reload 1>&2
+if [ "$1" = "0" ]; then
+       %service -q rc-inetd reload
 fi
 
 %post -n rsyncd-standalone
 /sbin/chkconfig --add rsyncd
-if [ -f /var/lock/subsys/rsyncd ]; then
-       /etc/rc.d/init.d/rsyncd restart 1>&2
-else
-       echo "Type \"/etc/rc.d/init.d/rsyncd start\" to start rsync server" 1>&2
-fi
+%service rsyncd restart "rsync server"
 
 %preun -n rsyncd-standalone
 if [ "$1" = "0" ]; then
-       if [ -f /var/lock/subsys/rsyncd ]; then
-               /etc/rc.d/init.d/rsyncd stop 1>&2
-       fi
+       %service rsyncd stop
        /sbin/chkconfig --del rsyncd
 fi
 
 %files
 %defattr(644,root,root,755)
-%doc README
-%attr(755,root,root) %{_bindir}/*
-%{_mandir}/man1/*
+%doc README NEWS OLDNEWS TODO support
+%config(noreplace,missingok) %verify(not md5 mtime size) /etc/env.d/CVSIGNORE
+%config(noreplace,missingok) %verify(not md5 mtime size) /etc/env.d/RSYNC_PASSWORD
+%config(noreplace,missingok) %verify(not md5 mtime size) /etc/env.d/RSYNC_PROXY
+%config(noreplace,missingok) %verify(not md5 mtime size) /etc/env.d/RSYNC_RSH
+%attr(755,root,root) %{_bindir}/rsync
+%{_mandir}/man1/rsync.1*
 
 %files -n rsyncd-inetd
 %defattr(644,root,root,755)
 %dir %{_sysconfdir}
-%attr(640,root,root) %config(noreplace) %{_sysconfdir}/rsyncd.conf
-%attr(640,root,root) %config(noreplace) %{_sysconfdir}/rsyncd.secrets
-%attr(640,root,root) %config(noreplace) /etc/logrotate.d/rsyncd
-%attr(640,root,root) /etc/sysconfig/rc-inetd/rsyncd
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rsyncd.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rsyncd.secrets
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/rsyncd
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/rsyncd
 %attr(640,root,root) %ghost /var/log/rsyncd.log
-%{_mandir}/man5/*
+%{_mandir}/man5/rsyncd.conf.5*
 
 %files -n rsyncd-standalone
 %defattr(644,root,root,755)
 %dir %{_sysconfdir}
-%attr(640,root,root) %config(noreplace) %{_sysconfdir}/rsyncd.conf
-%attr(640,root,root) %config(noreplace) %{_sysconfdir}/rsyncd.secrets
-%attr(640,root,root) %config(noreplace) /etc/sysconfig/rsyncd
-%attr(640,root,root) %config(noreplace) /etc/logrotate.d/rsyncd
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rsyncd.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rsyncd.secrets
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rsyncd
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/rsyncd
 %attr(640,root,root) %ghost /var/log/rsyncd.log
 %attr(754,root,root) /etc/rc.d/init.d/rsyncd
-%{_mandir}/man5/*
+%{_mandir}/man5/rsyncd.conf.5*
This page took 0.084113 seconds and 4 git commands to generate.