rpms/389-admin/F-12 389-admin.spec,1.11,1.12
Nathan Kinder
nkinder at fedoraproject.org
Tue Jan 19 19:39:44 UTC 2010
Author: nkinder
Update of /cvs/extras/rpms/389-admin/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv22374/F-12
Modified Files:
389-admin.spec
Log Message:
Added SELinux subpackage
Index: 389-admin.spec
===================================================================
RCS file: /cvs/extras/rpms/389-admin/F-12/389-admin.spec,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -p -r1.11 -r1.12
--- 389-admin.spec 14 Jan 2010 22:39:04 -0000 1.11
+++ 389-admin.spec 19 Jan 2010 19:39:44 -0000 1.12
@@ -1,13 +1,15 @@
%global pkgname dirsrv
# for a pre-release, define the prerel field - comment out for official release
-%global prerel .a3
+%global prerel .a4
# also need the relprefix field for a pre-release - also comment out for official release
%global relprefix 0.
+%global selinux_variants mls targeted
+
Summary: 389 Administration Server (admin)
Name: 389-admin
Version: 1.1.10
-Release: %{?relprefix}3%{?prerel}%{?dist}
+Release: %{?relprefix}4%{?prerel}%{?dist}
License: GPLv2 and ASL 2.0
URL: http://port389.org/
Group: System Environment/Daemons
@@ -27,6 +29,12 @@ BuildRequires: apr-devel
BuildRequires: mod_nss
BuildRequires: 389-adminutil-devel
+# The following are needed to build the SELinux policy
+BuildRequires: checkpolicy
+BuildRequires: selinux-policy-devel
+BuildRequires: /usr/share/selinux/devel/Makefile
+BuildRequires: 389-ds-base-selinux-devel
+
Requires: 389-ds-base
Requires: mod_nss
# the following are needed for some of our scripts
@@ -49,12 +57,22 @@ for 389 Directory Server. It provides s
be used through a web browser. It provides the authentication, access control,
and CGI utilities used by the console.
+%package selinux
+Summary: SELinux policy for 389 Administration Server
+Group: System Environment/Daemons
+Requires: selinux-policy
+Requires: %{name} = %{version}-%{release}
+Requires: 389-ds-base-selinux
+
+%description selinux
+SELinux policy for the 389 Adminstration Server package.
+
%prep
%setup -q -n %{name}-%{version}%{?prerel}
%patch1
%build
-%configure --disable-rpath
+%configure --disable-rpath --with-selinux
# Generate symbolic info for debuggers
export XCFLAGS=$RPM_OPT_FLAGS
@@ -65,6 +83,18 @@ export USE_64=1
make %{?_smp_mflags}
+# Build the SELinux policy module for each variant
+cd selinux-built
+cp %{_datadir}/%{pkgname}-selinux/%{pkgname}.if .
+cp %{_datadir}/%{pkgname}-selinux/%{pkgname}.te .
+for selinuxvariant in %{selinux_variants}
+do
+ make NAME=${selinuxvariant} -f /usr/share/selinux/devel/Makefile
+ mv %{pkgname}-admin.pp %{pkgname}-admin.pp.${selinuxvariant}
+ make NAME=${selinuxvariant} -f /usr/share/selinux/devel/Makefile clean
+done
+cd -
+
%install
rm -rf $RPM_BUILD_ROOT
@@ -80,6 +110,16 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
rm -f $RPM_BUILD_ROOT%{_libdir}/%{pkgname}/modules/*.a
rm -f $RPM_BUILD_ROOT%{_libdir}/%{pkgname}/modules/*.la
+# Install the SELinux policy
+cd selinux-built
+for selinuxvariant in %{selinux_variants}
+do
+ install -d %{buildroot}%{_datadir}/selinux/${selinuxvariant}
+ install -p -m 644 %{pkgname}-admin.pp.${selinuxvariant} \
+ %{buildroot}%{_datadir}/selinux/${selinuxvariant}/%{pkgname}-admin.pp
+done
+cd -
+
%clean
rm -rf $RPM_BUILD_ROOT
@@ -143,6 +183,34 @@ if %{pkgname}admin_exists then
os.execute('/sbin/service %{pkgname}-admin start >/dev/null 2>&1')
end
+%post selinux
+if [ "$1" -le "1" ] ; then # First install
+for selinuxvariant in %{selinux_variants}
+do
+ semodule -s ${selinuxvariant} -i %{_datadir}/selinux/${selinuxvariant}/%{pkgname}-admin.pp 2>/dev/null || :
+done
+fixfiles -R %{name} restore || :
+/sbin/service %{pkgname}-admin condrestart > /dev/null 2>&1 || :
+fi
+
+%preun selinux
+if [ "$1" -lt "1" ]; then # Final removal
+for selinuxvariant in %{selinux_variants}
+do
+ semodule -s ${selinuxvariant} -r %{pkgname}-admin 2>/dev/null || :
+done
+fixfiles -R %{name} restore || :
+/sbin/service %{pkgname}-admin condrestart > /dev/null 2>&1 || :
+fi
+
+%postun selinux
+if [ "$1" -ge "1" ]; then # Upgrade
+for selinuxvariant in %{selinux_variants}
+do
+ semodule -s ${selinuxvariant} -i %{_datadir}/selinux/${selinuxvariant}/%{pkgname}-admin.pp 2>/dev/null || :
+done
+fi
+
%files
%defattr(-,root,root,-)
%doc LICENSE
@@ -156,7 +224,15 @@ end
%{_libdir}/%{pkgname}
%{_mandir}/man8/*
+%files selinux
+%defattr(-,root,root,-)
+%{_datadir}/selinux/*/%{pkgname}-admin.pp
+
%changelog
+* Mon Jan 18 2010 Nathan Kinder <nkinder at redhat.com> - 1.1.10.a4-0.4
+- the 1.1.10.a4 release
+- added SELinux subpackage
+
* Thu Jan 14 2010 Rich Megginson <rmeggins at redhat.com> - 1.1.10.a3-0.3
- the 1.1.10.a3 release
- make sure we can find ICU genrb on all platforms
More information about the scm-commits
mailing list