]> git.pld-linux.org Git - packages/389-ds-base.git/blob - 389-ds-base.spec
dce96457b0e557c3ef523c2418f6b78734157951
[packages/389-ds-base.git] / 389-ds-base.spec
1 # TODO
2 # - selinux_variants macro missing. something from fedora?
3 # - merge with fedora-ds-base.spec
4 #
5 # Conditional build:
6 %bcond_with     selinux         # build with selinux
7
8 #%define                subver  .a1
9 #%define                rel             0.1
10
11 Summary:        389 Directory Server (base)
12 Name:           389-ds-base
13 Version:        1.2.8.1
14 Release:        0
15 License:        GPL v2 with exceptions
16 Group:          Daemons
17 URL:            http://directory.fedoraproject.org/
18 Source0:        http://directory.fedoraproject.org/sources/%{name}-%{version}.tar.bz2
19 # Source0-md5:  d12829ca71b28222fbe66b0939d2af4f
20 BuildRequires:  cyrus-sasl-devel
21 BuildRequires:  db-devel
22 BuildRequires:  libicu-devel
23 BuildRequires:  libnl-devel
24 BuildRequires:  libstdc++-devel
25 BuildRequires:  mozldap-devel
26 BuildRequires:  nspr-devel
27 BuildRequires:  nss-devel
28 BuildRequires:  pcre-devel
29 BuildRequires:  perl-devel
30 BuildRequires:  pkgconfig
31 BuildRequires:  rpm-pythonprov
32 BuildRequires:  rpmbuild(macros) >= 1.268
33 BuildRequires:  svrcore-devel
34 %ifnarch sparc sparc64 ppc ppc64 s390 s390x
35 BuildRequires:  lm_sensors-devel
36 %endif
37 BuildRequires:  bzip2-devel
38 BuildRequires:  openssl-devel
39 BuildRequires:  zlib-devel
40 # The following are needed to build the snmp ldap-agent
41 BuildRequires:  net-snmp-devel
42 # The following are needed to build the SELinux policy
43 %if %{with selinux}
44 BuildRequires:  checkpolicy
45 BuildRequires:  policycoreutils
46 %endif
47 # the following is for the pam passthru auth plug-in
48 BuildRequires:  pam-devel
49 # the following are needed for some of our scripts
50 Requires:       mozldap-tools
51 Requires:       perl-Mozilla-LDAP
52 # this is needed to setup SSL if you are not using the
53 # administration server package
54 Requires:       nss-tools
55 # these are not found by the auto-dependency method
56 # they are required to support the mandatory LDAP SASL mechs
57 Requires:       cyrus-sasl-digest-md5
58 Requires:       cyrus-sasl-gssapi
59 # this is needed for verify-db.pl
60 Requires(post,preun):   /sbin/chkconfig
61 Requires:       db-utils
62 Requires:       rc-scripts
63 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
64
65 %description
66 389 Directory Server is an LDAPv3 compliant server. The base package
67 includes the LDAP server and command line utilities for server
68 administration.
69
70 %package devel
71 Summary:        Development libraries for 389 Directory Server
72 Group:          Development/Libraries
73 Requires:       %{name} = %{version}-%{release}
74 Requires:       mozldap-devel
75
76 %description      devel
77 Development Libraries and headers for the 389 Directory Server base
78 package.
79
80 %package selinux
81 Summary:        SELinux policy for 389 Directory Server
82 Group:          Daemons
83 Requires:       %{name} = %{version}-%{release}
84 Requires:       selinux-policy
85
86 %description selinux
87 SELinux policy for the 389 Directory Server base package.
88
89 %package selinux-devel
90 Summary:        Development interface for 389 Directory Server base SELinux policy
91 Group:          Development/Libraries
92
93 %description selinux-devel
94 SELinux policy interface for the 389 Directory Server base package.
95
96 %prep
97 %setup -q
98
99 %build
100 %configure \
101         --enable-autobind \
102         --without-kerberos \
103         %{?with_selinux:--with-selinux}
104
105 # Generate symbolic info for debuggers
106 export XCFLAGS="%{rpmcflags}"
107
108 %ifarch x86_64 ppc64 ia64 s390x sparc64
109 export USE_64=1
110 %endif
111
112 %{__make}
113
114 %if %{with selinux}
115 # Build the SELinux policy module for each variant
116 cd selinux-built
117 for selinuxvariant in %{selinux_variants}; do
118         %{__make} NAME=${selinuxvariant} -f %{_datadir}/selinux/devel/Makefile
119         mv dirsrv.pp dirsrv.pp.${selinuxvariant}
120         %{__make} NAME=${selinuxvariant} -f %{_datadir}/selinux/devel/Makefile clean
121 done
122 cd -
123 %endif
124
125 %install
126 rm -rf $RPM_BUILD_ROOT
127
128 %{__make} install \
129         DESTDIR=$RPM_BUILD_ROOT
130
131 install -d $RPM_BUILD_ROOT/var/log/dirsrv
132 install -d $RPM_BUILD_ROOT/var/lib/dirsrv
133 install -d $RPM_BUILD_ROOT/var/lock/dirsrv
134 install -d $RPM_BUILD_ROOT%{_includedir}/dirsrv
135
136 # remove libtool and static libs
137 rm -f $RPM_BUILD_ROOT%{_libdir}/dirsrv/*.a
138 rm -f $RPM_BUILD_ROOT%{_libdir}/dirsrv/*.la
139 rm -f $RPM_BUILD_ROOT%{_libdir}/dirsrv/plugins/*.a
140 rm -f $RPM_BUILD_ROOT%{_libdir}/dirsrv/plugins/*.la
141
142 install -p ldap/servers/slapd/slapi-plugin.h $RPM_BUILD_ROOT%{_includedir}/dirsrv/
143 install -p ldap/servers/plugins/replication/winsync-plugin.h $RPM_BUILD_ROOT%{_includedir}/dirsrv/
144
145 # make sure perl scripts have a proper shebang
146 sed -i -e 's|#{{PERL-EXEC}}|#!/usr/bin/perl|' $RPM_BUILD_ROOT%{_datadir}/dirsrv/script-templates/template-*.pl
147
148 %if %{with selinux}
149 # Install the SELinux policy
150 cd selinux-built
151 for selinuxvariant in %{selinux_variants}; do
152         install -d $RPM_BUILD_ROOT%{_datadir}/selinux/${selinuxvariant}
153         install -p -m 644 dirsrv.pp.${selinuxvariant} \
154         $RPM_BUILD_ROOT%{_datadir}/selinux/${selinuxvariant}/dirsrv.pp
155 done
156 cd -
157
158 # Install the SELinux policy interface
159 cd selinux-built
160 install -d $RPM_BUILD_ROOT%{_datadir}/dirsrv-selinux
161 install -p dirsrv.if $RPM_BUILD_ROOT%{_datadir}/dirsrv-selinux/dirsrv.if
162 install -p dirsrv.te $RPM_BUILD_ROOT%{_datadir}/dirsrv-selinux/dirsrv.te
163 install -p dirsrv.fc $RPM_BUILD_ROOT%{_datadir}/dirsrv-selinux/dirsrv.fc
164 cd -
165 %endif
166
167 %clean
168 rm -rf $RPM_BUILD_ROOT
169
170 %post
171 /sbin/chkconfig --add dirsrv
172 /sbin/chkconfig --add dirsrv-snmp
173 if [ ! -e %{_localstatedir}/run/dirsrv ]; then
174         install -d %{_localstatedir}/run/dirsrv
175 fi
176
177 %preun
178 if [ "$1" = 0 ]; then
179         %service dirsrv stop
180         /sbin/chkconfig --del dirsrv
181         %service dirsrv-snmp stop
182         /sbin/chkconfig --del dirsrv-snmp
183 fi
184
185 %post selinux
186 if [ "$1" -le "1" ] ; then # First install
187         for selinuxvariant in %{selinux_variants}; do
188                 semodule -s ${selinuxvariant} -i %{_datadir}/selinux/${selinuxvariant}/dirsrv.pp 2>/dev/null || :
189         done
190         fixfiles -R %{name} restore || :
191         /sbin/service dirsrv condrestart > /dev/null 2>&1 || :
192         /sbin/service dirsrv-snmp condrestart > /dev/null 2>&1 || :
193 fi
194
195 %preun selinux
196 if [ "$1" -lt "1" ]; then # Final removal
197         for selinuxvariant in %{selinux_variants}; do
198                 semodule -s ${selinuxvariant} -r dirsrv 2>/dev/null || :
199         done
200         fixfiles -R %{name} restore || :
201         %service dirsrv condrestart > /dev/null 2>&1 || :
202         %service dirsrv-snmp condrestart > /dev/null 2>&1 || :
203 fi
204
205 %postun selinux
206 if [ "$1" -ge "1" ]; then # Upgrade
207         for selinuxvariant in %{selinux_variants}; do
208                 semodule -s ${selinuxvariant} -i %{_datadir}/selinux/${selinuxvariant}/dirsrv.pp 2>/dev/null || :
209         done
210 fi
211
212 %files
213 %defattr(644,root,root,755)
214 %doc LICENSE EXCEPTION LICENSE.GPLv2
215 %dir %{_sysconfdir}/dirsrv
216 %dir %{_sysconfdir}/dirsrv/schema
217 %dir %{_sysconfdir}/dirsrv/config
218 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dirsrv/schema/*.ldif
219 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dirsrv/config/slapd-collations.conf
220 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dirsrv/config/certmap.conf
221 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dirsrv/config/ldap-agent.conf
222 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dirsrv/config/template-initconfig
223 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/dirsrv
224 %{_datadir}/dirsrv
225 %attr(754,root,root) /etc/rc.d/init.d/dirsrv
226 %attr(754,root,root) /etc/rc.d/init.d/dirsrv-snmp
227 %attr(755,root,root) %{_bindir}/*
228 %attr(755,root,root) %{_sbindir}/*
229 %dir %{_libdir}/dirsrv
230 %attr(755,root,root) %{_libdir}/dirsrv/*.so.*
231 %{_libdir}/dirsrv/perl
232 %dir %{_libdir}/dirsrv/plugins
233 %{_libdir}/dirsrv/plugins/*.so
234 %dir %{_localstatedir}/lib/dirsrv
235 %dir %{_localstatedir}/log/dirsrv
236 %dir %{_localstatedir}/lock/dirsrv
237 %{_mandir}/man1/*
238 %{_mandir}/man8/*
239
240 %files devel
241 %defattr(644,root,root,755)
242 %{_includedir}/dirsrv
243 %{_libdir}/dirsrv/*.so
244 %{_pkgconfigdir}/dirsrv.pc
245
246 %if %{with selinux}
247 %files selinux
248 %defattr(644,root,root,755)
249 %{_datadir}/selinux/*/dirsrv.pp
250
251 %files selinux-devel
252 %defattr(644,root,root,755)
253 %{_datadir}/dirsrv-selinux
254 %endif
This page took 0.069266 seconds and 2 git commands to generate.