Blob Blame History Raw
Name:		BackupPC
Version:	2.1.2
Release:	6%{?dist}
Summary:	BackupPC - high-performance backup system

Group:		Applications/System
License:	GPL
URL:		http://backuppc.sourceforge.net/
Source0:	http://dl.sourceforge.net/backuppc/%{name}-%{version}.tar.gz
Source1:	BackupPC.htaccess
Source2:	BackupPC.logrotate
Patch0:		BackupPC-2.1.2pl2.diff
BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch:	noarch

BuildRequires:	/bin/cat /bin/df /bin/gtar %{_bindir}/nmblookup %{_bindir}/rsync %{_sbindir}/sendmail %{_bindir}/smbclient %{_bindir}/split %{_bindir}/ssh
Requires: httpd
Requires: perl-suidperl
Requires: perl(File::RsyncP)
Requires: rsync
Requires(pre): %{_sbindir}/useradd
Requires(preun): /sbin/service, /sbin/chkconfig
Requires(post): /sbin/chkconfig, /sbin/service, %{_sbindir}/usermod
Requires(postun): /sbin/service



%description
BackupPC is a high-performance, enterprise-grade system for backing up Linux
and WinXX PCs and laptops to a server's disk. BackupPC is highly configurable
and easy to install and maintain.

%prep
%setup -q
%patch0 -p0
sed -i s/\"backuppc\"/\"$LOGNAME\"/ configure.pl

# There is no good build method for backuppc.  Instead the configure script
# also does installation of files.

%install
rm -rf %{buildroot}
perl configure.pl --batch \
		--cgi-dir %{buildroot}/%{_datadir}/%{name}/sbin/ \
		--data-dir %{buildroot}/%{_localstatedir}/lib/%{name}/ \
		--html-dir %{buildroot}/%{_datadir}/%{name}/html/ \
		--html-dir-url /%{name}/images \
		--install-dir %{buildroot}/%{_datadir}/%{name} \
		--uid-ignore
for f in `find %{buildroot}`
do
	if [ -f $f ]
	then
		sed -i s,%{buildroot},,g $f
		sed -i s,$LOGNAME,backuppc,g $f
	fi
done
sed -i s,%{buildroot},,g init.d/linux-backuppc
sed -i s,$LOGNAME,backuppc,g init.d/linux-backuppc

%{__mkdir} -p %{buildroot}/%{_initrddir}
%{__mkdir} -p %{buildroot}/%{_sysconfdir}/httpd/conf.d/
%{__mkdir} -p %{buildroot}/%{_sysconfdir}/logrotate.d/
%{__mkdir} -p %{buildroot}/%{_localstatedir}/log/%{name}

%{__cp} init.d/linux-backuppc %{buildroot}/%{_initrddir}/%{name}
%{__cp} %{SOURCE1} %{buildroot}/%{_sysconfdir}/httpd/conf.d/%{name}.conf
%{__cp} %{SOURCE2} %{buildroot}/%{_sysconfdir}/logrotate.d/%{name}

%{__chmod} 755 %{buildroot}/%{_datadir}/%{name}/bin/*
%{__chmod} 755 %{buildroot}/%{_initrddir}/%{name}

%{__mv} %{buildroot}/%{_localstatedir}/lib/%{name}/conf %{buildroot}/%{_sysconfdir}/%{name}

%{__rm} -f %{buildroot}/%{_datadir}/%{name}/html/CVS
%{__rm} -rf %{buildroot}/%{_localstatedir}/lib/%{name}/log

sed -i 's/^\$Conf{XferMethod}\ =.*/$Conf{XferMethod} = "rsync";/' %{buildroot}/%{_sysconfdir}/%{name}/config.pl
sed -i 's/^\$Conf{ServerHost}\ =.*/$Conf{ServerHost} = "localhost";/' %{buildroot}/%{_sysconfdir}/%{name}/config.pl
sed -i 's,^\$Conf{CgiURL}\ =.*,$Conf{CgiURL} = "http://localhost/cgi-bin/BackupPC_Admin";,' %{buildroot}/%{_sysconfdir}/%{name}/config.pl

ln -s %{_sysconfdir}/%{name}/ %{buildroot}/%{_localstatedir}/lib/%{name}/conf
ln -s ../../log/%{name}/ %{buildroot}/%{_localstatedir}/lib/%{name}/log


%clean
rm -rf %{buildroot}


%pre
%{_sbindir}/useradd -d %{_localstatedir}/lib/%{name} -r -s /sbin/nologin backuppc 2> /dev/null || :

%preun
if [ $1 = 0 ]; then
        /sbin/service %{name} stop > /dev/null 2>&1 || :
        /sbin/chkconfig --del %{name} || :
fi

%post
/sbin/chkconfig --add %{name} || :
/sbin/service httpd condrestart > /dev/null 2>&1 || :
%{_sbindir}/usermod -a -G backuppc apache || :

%postun
/sbin/service httpd condrestart > /dev/null 2>&1 || :

%files
%defattr(-,root,root,-)
%doc README ChangeLog LICENSE doc/
%dir %{_datadir}/%{name}/

%dir %attr(-,backuppc,backuppc) %{_localstatedir}/log/%{name}
%dir %attr(-,backuppc,backuppc) %{_sysconfdir}/%{name}/

%config(noreplace) %{_sysconfdir}/httpd/conf.d/%{name}.conf
%config(noreplace) %attr(-,backuppc,backuppc) %{_sysconfdir}/%{name}/*
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}

%{_datadir}/%{name}/[^s]*
%{_initrddir}/%{name}

%attr(4750,backuppc,apache) %{_datadir}/%{name}/sbin/BackupPC_Admin
%attr(-,backuppc,root) %{_localstatedir}/lib/%{name}/


%changelog
* Tue Jul 25 2006 Mike McGrath <imlinux@gmail.com> 2.1.2-6
- One more config change

* Sun Jul 23 2006 Mike McGrath <imlinux@gmail.com> 2.1.2-5
- Added upstream patch for better support for rsync

* Sun Jul 23 2006 Mike McGrath <imlinux@gmail.com> 2.1.2-4
- Properly marking config files as such

* Sun Jul 23 2006 Mike McGrath <imlinux@gmail.com> 2.1.2-3
- Changes to defaults in config.pl
- Added Requires: rsync

* Fri Jul 21 2006 Mike McGrath <imlinux@gmail.com> 2.1.2-2
- Added requires: perl(File::RsyncP)

* Tue Jul 18 2006 Mike McGrath <imlinux@gmail.com> 2.1.2-1
- Initial Fedora Packaging