# 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: 23%{?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, dailyjobs
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
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-23
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1-22
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Wed Jun 03 2015 Jitka Plesnikova <jplesnik@redhat.com> - 1.1-21
- Perl 5.22 rebuild
* Sun Sep 14 2014 Bernard Johnson <bjohnson@symetrix.com> - 1.1-21
- rebuild to fix dependency on perl(:MODULE_COMPAT_5.18.0)
- fix FTBFS: queuegraph-1.1-18.fc21: unknown type httpd_queuegraph_script_t
(bz#1059123)
- trim changelog to last 2 years
* Thu Aug 28 2014 Jitka Plesnikova <jplesnik@redhat.com> - 1.1-20
- Perl 5.20 rebuild
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Thu Jul 18 2013 Petr Pisar <ppisar@redhat.com> - 1.1-17
- Perl 5.18 rebuild
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Mon Dec 24 2012 Bernard Johnson <bjohnson@symetrix.com> - 1.1-15
- updated httpd configuration for apache 2.4 (bz #871472)
* Fri Nov 23 2012 Marcela Mašláňová <mmaslano@redhat.com> - 1.1-14
- The requirement on vixie-cron is not correct anymore. The dailyjobs will be
used as virtual requirement since now. #879550