#
+# Conditional build:
# _without_dist_kernel - without distribution kernel
#
-%define _rel 1
-%define _pre pre5
%define _orig_name capsel
+%define _pre rc1
Summary: Capsel - supports Linux-Privs security model
Summary(pl): Capsel - obs³uga modelu bezpieczeñstwa Linux-Privs
Name: %{_orig_name}
-Version: 1.9.99
+Version: 2.0
+%define _rel 8
Release: %{_pre}.%{_rel}
Group: Base/Kernel
License: GPL v2
Source0: http://cliph.linux.pl/capsel/capsel-%{version}%{_pre}.tar.gz
+# Source0-md5: f886467eb458812f8ee426541c7e4e06
+Source1: %{name}.init
+Patch0: %{name}-2.0rc2.diff
+Patch1: %{name}-no_kernel_smp.patch
+Patch2: %{name}-include-fix.patch
URL: http://cliph.linux.pl/capsel/
-%{!?_without_dist_kernel:BuildRequires: kernel-headers}
BuildRequires: %{kgcc_package}
-Prereq: /sbin/depmod
+%{!?_without_dist_kernel:BuildRequires: kernel-headers}
%{!?_without_dist_kernel:Requires: kernel(capsel)}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
Release: %{_rel}@%{_kernel_ver_str}
Group: Base/Kernel
%{!?_without_dist_kernel:%requires_releq_kernel_up}
+Requires(post,postun): /sbin/depmod
Provides: kernel(capsel)
%description -n kernel-misc-capsel
Summary(pl): Capsel - obs³uga modelu bezpieczeñstwa Linux-Privs
Release: %{_rel}@%{_kernel_ver_str}
Group: Base/Kernel
-Prereq: /sbin/depmod
%{!?_without_dist_kernel:%requires_releq_kernel_smp}
+Requires(post,postun): /sbin/depmod
Provides: kernel(capsel)
%description -n kernel-smp-misc-capsel
%prep
%setup -q -n %{name}-%{version}%{_pre}
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
%build
mkdir bin/
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/{%{_sysconfdir}/%{_orig_name},/sbin/}
-install capsel.conf $RPM_BUILD_ROOT/%{_sysconfdir}/capsel/default
+install -d $RPM_BUILD_ROOT/{%{_sysconfdir}/{%{_orig_name},rc.d/init.d},/sbin/} \
+ $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{/misc,smp/misc}
+
+install capsel.conf $RPM_BUILD_ROOT%{_sysconfdir}/capsel/default
install src/user/capsel $RPM_BUILD_ROOT/sbin/
-install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}
-install bin/capsel.o $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/capsel.o
+install bin/capsel.o $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/capsel.o
+install bin/capselsmp.o $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc/capsel.o
-install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp
-install bin/capselsmp.o $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/capsel.o
+install %{SOURCE1} $RPM_BUILD_ROOT//etc/rc.d/init.d/capsel
%clean
rm -rf $RPM_BUILD_ROOT
+%post
+/sbin/chkconfig --add capsel
+if [ -f /var/lock/subsys/capsel ]; then
+ /etc/rc.d/init.d/capsel restart 1>&2
+else
+ echo "Run \"/etc/rc.d/init.d/caspel start\" to start capsel."
+fi
+
+%preun
+if [ "$1" = "0" ]; then
+ if [ -f /var/lock/subsys/capsel ]; then
+ /etc/rc.d/init.d/capsel stop 1>&2
+ fi
+ /sbin/chkconfig --del capsel
+fi
+
%post -n kernel-misc-capsel
-/sbin/depmod -a
+/sbin/depmod -a %{!?_without_dist_kernel:-F /boot/System.map-%{_kernel_ver} }%{_kernel_ver}
%postun -n kernel-misc-capsel
-/sbin/depmod -a
+/sbin/depmod -a %{!?_without_dist_kernel:-F /boot/System.map-%{_kernel_ver} }%{_kernel_ver}
%post -n kernel-smp-misc-capsel
-/sbin/depmod -a
+/sbin/depmod -a %{!?_without_dist_kernel:-F /boot/System.map-%{_kernel_ver}smp }%{_kernel_ver}smp
%postun -n kernel-smp-misc-capsel
-/sbin/depmod -a
+/sbin/depmod -a %{!?_without_dist_kernel:-F /boot/System.map-%{_kernel_ver}smp }%{_kernel_ver}smp
%files
%defattr(644,root,root,755)
-%doc README CAPABILITIES ChangeLog TODO misc/* scripts/*
+%doc README CAPABILITIES ChangeLog TODO misc scripts conf
%attr(755,root,root) /sbin/*
%dir %attr(750,root,root) %{_sysconfdir}/capsel
-%attr(750,root,root) %config(noreplace) %{_sysconfdir}/capsel/*
+%attr(755,root,root) /etc/rc.d/init.d/capsel
+%attr(640,root,root) %config(noreplace) %{_sysconfdir}/capsel/*
%files -n kernel-misc-capsel
%defattr(644,root,root,755)
-%attr(644,root,root) /lib/modules/%{_kernel_ver}/*
+%attr(644,root,root) /lib/modules/%{_kernel_ver}/misc/*
%files -n kernel-smp-misc-capsel
%defattr(644,root,root,755)
-%attr(644,root,root) /lib/modules/%{_kernel_ver}smp/*
+%attr(644,root,root) /lib/modules/%{_kernel_ver}smp/misc/*