# Only Fedora & RHEL 5+ can use selinux
%if 0%{?rhel} && "%rhel" < "5"
%define without_selinux 1
%endif
%define selinux_variants mls strict targeted
Name: queuegraph
Version: 1.1
Release: 2%{?dist}
Summary: A RRDtool frontend for Mail statistics
Group: System Environment/Daemons
License: GPL
URL: http://www.arschkrebs.de/postfix/queuegraph/
Source0: http://www.arschkrebs.de/postfix/queuegraph/queuegraph.tar.gz
Source1: queuegraph.conf
Source2: queuegraph.cron
Source3: queuegraph.te
Source4: queuegraph.fc
Source5: queuegraph.if
Patch0: queuegraph-paths.patch
Patch1: queuegraph-average.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%if ! 0%{?without_selinux}
BuildRequires: checkpolicy, selinux-policy-devel, hardlink
%endif
Requires: rrdtool, httpd, vixie-cron
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
BuildArch: noarch
%description
Queuegraph is a very simple mail statistics RRDtool frontend for Postfix that
produces daily, weekly, monthly and yearly graphs of Postfix's active,
deferred, incoming and bounce queues.
%if ! 0%{?without_selinux}
%package selinux
Summary: A RRDtool frontend for Mail statistics
Group: System Environment/Daemons
%define selinux_policyver %(sed -e 's,.*selinux-policy-\\([^/]*\\)/.*,\\1,' /usr/share/selinux/devel/policyhelp)
%if "%{selinux_policyver}" != ""
Requires: selinux-policy >= %{selinux_policyver}
%endif
Requires: %{name} = %{version}-%{release}
Requires(post): /usr/sbin/semodule, /sbin/restorecon, /sbin/fixfiles, %{name}
Requires(postun): /usr/sbin/semodule, /sbin/restorecon, /sbin/fixfiles, %{name}
%description selinux
This is the selinux policy for queuegraph.
%endif
%prep
%setup -q -n %{name}
%patch0 -p1 -b .paths
%patch1 -p1 -b .average
%if ! 0%{?without_selinux}
mkdir selinux
cp -p %{SOURCE3} %{SOURCE4} %{SOURCE5} ./selinux/
%endif
%build
%if ! 0%{?without_selinux}
cd selinux
for selinuxvariant in %{selinux_variants}; do
make NAME=${selinuxvariant} -f %{_datadir}/selinux/devel/Makefile
mv %{name}.pp %{name}.pp.${selinuxvariant}
make NAME=${selinuxvariant} -f %{_datadir}/selinux/devel/Makefile clean
done
cd -
%endif
%install
rm -rf $RPM_BUILD_ROOT
%{__install} -d -m 0755 $RPM_BUILD_ROOT/%{_sbindir}
%{__install} -d -m 0755 $RPM_BUILD_ROOT/%{_sysconfdir}/httpd/conf.d
%{__install} -d -m 0755 $RPM_BUILD_ROOT/%{_sysconfdir}/cron.d
%{__install} -d -m 0755 $RPM_BUILD_ROOT/%{_datadir}/queuegraph
%{__install} -d -m 0755 $RPM_BUILD_ROOT/%{_localstatedir}/lib/queuegraph
%{__install} -d -m 0775 $RPM_BUILD_ROOT/%{_localstatedir}/cache/queuegraph
%{__install} -p -m 0755 queuegraph.cgi $RPM_BUILD_ROOT/%{_datadir}/queuegraph/queuegraph.cgi
%{__install} -p -m 0755 queuegraph-rrd.sh $RPM_BUILD_ROOT/%{_sbindir}/
%{__install} -p -m 0644 %SOURCE1 $RPM_BUILD_ROOT/%{_sysconfdir}/httpd/conf.d/
%{__install} -p -m 0644 %SOURCE2 $RPM_BUILD_ROOT/%{_sysconfdir}/cron.d/queuegraph
%if ! 0%{?without_selinux}
cd selinux
for selinuxvariant in %{selinux_variants}; do
install -d $RPM_BUILD_ROOT/%{_datadir}/selinux/${selinuxvariant}
install -p -m 644 %{name}.pp.${selinuxvariant} \
$RPM_BUILD_ROOT/%{_datadir}/selinux/${selinuxvariant}/%{name}.pp
done
cd -
# Hardlink identical policy module packages together
/usr/sbin/hardlink -cv $RPM_BUILD_ROOT/%{_datadir}/selinux
%endif
%clean
rm -rf $RPM_BUILD_ROOT
%if ! 0%{?without_selinux}
%post selinux
for selinuxvariant in %{selinux_variants}; do
/usr/sbin/semodule -s ${selinuxvariant} -i \
%{_datadir}/selinux/${selinuxvariant}/%{name}.pp &> /dev/null || :
done
# Fix up non-standard file contexts
/sbin/fixfiles -R %{name} restore || :
/sbin/restorecon -R %{_localstatedir}/cache/%{name} || :
%postun selinux
# Clean up after package removal
if [ $1 -eq 0 ]; then
# Remove SELinux policy modules
for selinuxvariant in %{selinux_variants}
do
/usr/sbin/semodule -s ${selinuxvariant} -r %{name} &> /dev/null || :
done
/sbin/fixfiles -R %{name} restore || :
# Clean up any remaining file contexts (shouldn't be any really)
[ -d %{_localstatedir}/cache/%{name} ] && \
/sbin/restorecon -R %{_localstatedir}/cache/%{name} &> /dev/null || :
fi
%endif
%files
%defattr(-,root,root,-)
%doc README
%dir %{_localstatedir}/lib/queuegraph
%dir %attr(0775,root,apache) %{_localstatedir}/cache/queuegraph
%config(noreplace) %{_sysconfdir}/httpd/conf.d/queuegraph.conf
%config(noreplace) %{_sysconfdir}/cron.d/queuegraph
%{_sbindir}/*
%{_datadir}/queuegraph
%if ! 0%{?without_selinux}
%files selinux
%defattr(-,root,root,-)
%{_datadir}/selinux/*/%{name}.pp
%doc selinux/*
%endif
%changelog
* Tue Oct 30 2007 Bernard Johnson <bjohnson@symetrix.com> - 1.1-2
- new tarball - no version numbers updated
- fixed up patches to match new tarball
- removed repotag
- Queuegraph needs AddHandler cgi-script .cgi (bz #289031)
- queuegraph is denied by selinux (bz #247435)
* Sun Mar 25 2007 Bernard Johnson <bjohnson@symetrix.com> - 1.1-1
- initial release