Listing 3 OpenPKG packaging for rsync (rsync.spec: RPM
specification)
# package information
Name: rsync
Summary: Remote Filesystem Synchronization
URL: http://rsync.samba.org/
Vendor: Andrew Tridgell & Paul Mackerras
Packager: The OpenPKG Project
Distribution: OpenPKG [BASE]
Group: Filesystem
License: GPL
Version: 2.5.5
Release: 1.1.0
# list of sources
Source0: http://rsync.samba.org/ftp/rsync/rsync-%{version}.tar.gz
Source1: rsync.conf
Source2: rc.rsync
# build information
Prefix: %{l_prefix}
BuildRoot: %{l_buildroot}
BuildPreReq: OpenPKG, openpkg >= 1.1.0
PreReq: OpenPKG, openpkg >= 1.1.0
AutoReq: no
AutoReqProv: no
%description
Rsync is a replacement for rcp(1) that has many more features.
Rsync uses the "rsync algorithm" which provides a very fast method
for bringing remote files into sync. It does this by sending just
the differences in the files across the link, without requiring
that both sets of files are present at one of the ends of the link
beforehand. At first glance this may seem impossible because the
calculation of differences between two files normally requires
local access to both files.
%prep
# unpack vendor sources
%setup -q
%build
# configure vendor sources
CC="%{l_cc}" \
CFLAGS="%{l_cflags -O}" \
./configure \
--prefix=%{l_prefix} \
--disable-debug \
--with-included-popt
# build vendor sources
%{l_make} %{l_mflags -O}
%install
# perform vendor installation
rm -rf $RPM_BUILD_ROOT
%{l_make} %{l_mflags} install \
prefix=$RPM_BUILD_ROOT%{l_prefix} \
exec_prefix=$RPM_BUILD_ROOT%{l_prefix}
# post-adjust vendor installation
strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
mv $RPM_BUILD_ROOT%{l_prefix}/man/man5/rsyncd.conf.5 \
$RPM_BUILD_ROOT%{l_prefix}/man/man5/rsync.conf.5
# provide default (deamon) configuration
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/etc/rsync
%{l_shtool} install -c -m 644 \
-e 's;@l_prefix@;%{l_prefix};g' \
-e 's;@l_nusr@;%{l_nusr};g' \
-e 's;@l_ngrp@;%{l_ngrp};g' \
-e 's;@version@;%{version};g' \
%{SOURCE rsync.conf} $RPM_BUILD_ROOT%{l_prefix}/etc/rsync/
%{l_shtool} install -c -m 644 /dev/null \
$RPM_BUILD_ROOT%{l_prefix}/etc/rsync/rsync.passwd
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/var/rsync
# provide run-command script
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
%{l_shtool} install -c -m 755 \
-e 's;@l_prefix@;%{l_prefix};g' \
-e 's;@l_musr@;%{l_musr};g' \
-e 's;@l_mgrp@;%{l_mgrp};g' \
%{SOURCE rc.rsync} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
# determine binary package files
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
%{l_files_std} '%config %{l_prefix}/etc/rsync/rsync.*'
%files -f files
%clean
rm -rf $RPM_BUILD_ROOT
|