%define selinux_policy_types targeted mls Name: mod_cgroup Version: 1.0.1 Release: 2%{?dist} Summary: Apache/CGroup module Group: SysTem Environment/Daemons License: LGPL 2.0 URL: http://www.ukfast.co.uk Source0: %{name}-%{version}.tgz BuildRequires: httpd-devel >= 2.2.0 BuildRequires: libcgroup-devel checkpolicy >= 2.0.19 policycoreutils selinux-policy %if 0%{?fedora} >= 15 BuildRequires: selinux-policy-devel %endif Requires: kernel >= 2.6.28 httpd >= 2.2.0 policycoreutils selinux-policy libcgroup BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root %description The Apache/CGroup is an extra module (mod_cgroup.so) which enables httpd to load a contents handler with cgroup resource restrictions. This allows a systems administrator to provide predictive capacity per virtual host or group of virtual host and segregate service levels within the same web server framework. Thus it is possible to apply flexible resource controls on a per virtual host basis. %prep %setup -c %build %ifarch i386 i686 sed -i 's/lib64/lib/g' Makefile %endif touch .deps # mod_cgroup.so %{__make} %{?_smp_mflags} # mod_cgroup.pp for policy in %{selinux_policy_types} do %{__make} NAME=${policy} -f %{?policy_devel_root}%{_datadir}/selinux/devel/Makefile mv %{name}.pp %{name}.pp.${policy} done %install rm -rf %{buildroot} %{__install} -d %{buildroot}%{_libdir}/httpd/modules %{__install} -d %{buildroot}%{_datadir}/selinux %{__install} -d %{buildroot}%{_sysconfdir}/httpd/conf.d %{__make} install DESTDIR=%{buildroot} %{__install} -p -m 644 %{name}.conf %{buildroot}%{_sysconfdir}/httpd/conf.d for policy in %{selinux_policy_types} do %{__install} -d %{buildroot}%{_datadir}/selinux/${policy} %{__install} -p -m 644 %{name}.pp.${policy} \ %{buildroot}%{_datadir}/selinux/${policy}/%{name}.pp done %clean rm -rf %{buildroot} %post /sbin/fixfiles -R %{name} restore || : for policy in %{selinux_policy_types} do %{_sbindir}/semodule -s ${policy} \ -i %{_datadir}/selinux/${policy}/%{name}.pp 2>/dev/null || : done %postun # unload policy, if rpm -e if [ $1 -eq 0 ]; then for policy in %{selinux_policy_types} do %{_sbindir}/semodule -s ${policy} -r %{name} 2>/dev/null || : done fi %files %defattr(-,root,root,-) %doc LICENSE %config(noreplace) %{_sysconfdir}/httpd/conf.d/%{name}.conf %{_libdir}/httpd/modules/%{name}.so %{_datadir}/selinux/*/%{name}.pp %changelog * Thu Mar 21 2013 Scott R. Shinn - 1.0.1-2 - Initial import into atomic - Update to latest git snapshot * Tue Apr 26 2011 Matthew Ife - 1.0.0-1 - Initial Build