/[packages]/updates/5/389-ds-base/current/SPECS/389-ds-base.spec
ViewVC logotype

Contents of /updates/5/389-ds-base/current/SPECS/389-ds-base.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 474903 - (show annotations) (download)
Tue Sep 3 21:05:09 2013 UTC (10 years, 7 months ago) by spuhler
Original Path: cauldron/389-ds-base/current/SPECS/389-ds-base.spec
File size: 10366 byte(s)
- added ereport.patch to make it build
1
2 %global pkgname dirsrv
3 # for a pre-release, define the prerel field e.g. .a1 .rc2 - comment out for official release
4 # also remove the space between % and global - this space is needed because
5 # fedpkg verrel stupidly ignores comment lines
6 #% global prerel .rc3
7 # also need the relprefix field for a pre-release e.g. .0 - also comment out for official release
8 #% global relprefix 0.
9
10 %global use_openldap 1
11 %global use_db4 0
12 # If perl-Socket-2.000 or newer is available, set 0 to use_Socket6.
13 %global use_Socket6 0
14
15 # (cg) NB the --with-tmpfiles_d argument below is for user generated config files
16 # created via DSCreate.pm script - i.e. it should be the /etc/ path, NOT %_tmpfilesdir
17
18 # Mageia 3 and later uses tmpfiles.d
19 # otherwise, comment this out
20 %{!?with_tmpfiles_d: %global with_tmpfiles_d %{_sysconfdir}/tmpfiles.d}
21
22 # systemd support
23 %global groupname %{pkgname}.target
24
25 # set PIE flag
26 %global _hardened_build 1
27
28 Summary: 389 Directory Server (base)
29 Name: 389-ds-base
30 Version: 1.3.1.7
31 Release: %mkrel 1
32 License: GPLv2 with exceptions
33 URL: http://port389.org/
34 Group: System/Servers
35 Requires: %{name}-libs = %{version}-%{release}
36 Provides: ldif2ldbm
37
38 BuildRequires: nspr-devel
39 BuildRequires: nss-devel
40 BuildRequires: krb5-devel
41 BuildRequires: svrcore-devel
42 %if %{use_openldap}
43 BuildRequires: openldap-devel
44 %else
45 BuildRequires: mozldap-devel
46 %endif
47 %if %{use_db4}
48 BuildRequires: db4-devel
49 %else
50 BuildRequires: db-devel
51 %endif
52 BuildRequires: libsasl-devel
53 BuildRequires: icu
54 BuildRequires: libicu-devel
55 BuildRequires: pcre-devel
56 BuildRequires: gcc-c++
57 # The following are needed to build the snmp ldap-agent
58 BuildRequires: net-snmp-devel
59 BuildRequires: bzip2-devel
60 BuildRequires: zlib-devel
61 BuildRequires: openssl-devel
62 BuildRequires: tcp_wrappers
63 # the following is for the pam passthru auth plug-in
64 BuildRequires: pam-devel
65 BuildRequires: systemd-units
66
67 # this is needed for using semanage from our setup scripts
68 Requires: policycoreutils-python
69
70 Requires(post): rpm-helper >= %{rpmhelper_required_version}
71 Requires(preun): rpm-helper >= %{rpmhelper_required_version}
72
73
74 # the following are needed for some of our scripts
75 %if %{use_openldap}
76 Requires: openldap-clients
77 %else
78 Requires: mozldap-tools
79 %endif
80 # use_openldap assumes perl-Mozilla-LDAP is built with openldap support
81 Requires: perl-Mozilla-LDAP
82
83 # this is needed to setup SSL if you are not using the
84 # administration server package
85 Requires: nss
86
87 # these are not found by the auto-dependency method
88 # they are required to support the mandatory LDAP SASL mechs
89 Requires: sasl-plug-gssapi
90 Requires: sasl-plug-digestmd5
91
92 # this is needed for verify-db.pl
93 %if %{use_db4}
94 Requires: db4-utils
95 %else
96 Requires: db5-utils
97 %endif
98
99 # This picks up libperl.so as a Requires, so we add this versioned one
100 # We don't pack this virtual package in Mageia and it doesn't look it's needed anymore in mdern perl.
101 # Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
102
103 # for the init script
104 Requires(post): systemd-units
105 Requires(preun): systemd-units
106 Requires(postun): systemd-units
107
108 # for setup-ds.pl to support ipv6
109 %if %{use_Socket6}
110 Requires: perl-Socket6
111 %else
112 Requires: perl-Socket
113 %endif
114 Requires: perl-NetAddr-IP
115
116 Source0: http://port389.org/sources/%{name}-%{version}%{?prerel}.tar.bz2
117 # 389-ds-git.sh should be used to generate the source tarball from git
118 Source1: %{name}-git.sh
119 Source2: %{name}-devel.README
120 Patch0: mageia-nogroup.patch
121 Patch1: 389-ds-base-1.3.1.7-build-module.patch
122 Patch2: ereport.patch
123
124 %description
125 389 Directory Server is an LDAPv3 compliant server. The base package includes
126 the LDAP server and command line utilities for server administration.
127
128 %package libs
129 Summary: Core libraries for 389 Directory Server
130 Group: System/Servers
131 BuildRequires: nspr-devel
132 BuildRequires: nss-devel
133 BuildRequires: svrcore-devel
134 %if %{use_openldap}
135 BuildRequires: openldap-devel
136 %else
137 BuildRequires: mozldap-devel
138 %endif
139 %if %{use_db4}
140 BuildRequires: db4-devel
141 %else
142 BuildRequires: db-devel
143 %endif
144 BuildRequires: libsasl-devel
145 BuildRequires: libicu-devel
146 BuildRequires: pcre-devel
147
148 %description libs
149 Core libraries for the 389 Directory Server base package. These libraries
150 are used by the main package and the -devel package. This allows the -devel
151 package to be installed with just the -libs package and without the main package.
152
153 %package devel
154 Summary: Development libraries for 389 Directory Server
155 Group: System/Libraries
156 Requires: %{name}-libs = %{version}-%{release}
157 Requires: pkgconfig
158 Requires: nspr-devel
159 Requires: nss-devel
160 Requires: svrcore-devel
161 %if %{use_openldap}
162 Requires: openldap-devel
163 %else
164 Requires: mozldap-devel
165 %endif
166
167 %description devel
168 Development Libraries and headers for the 389 Directory Server base package.
169
170 %prep
171 %setup -q -n %{name}-%{version}%{?prerel}
172 cp %{SOURCE2} README.devel
173 %patch0 -p1 -b .mageia-nogroup
174 %patch1 -p1 -b .module
175 %patch2 -p1 -b .ereport
176
177
178 %build
179 autoreconf -fi
180 %if %{use_openldap}
181 OPENLDAP_FLAG="--with-openldap"
182 %endif
183 %{?with_tmpfiles_d: TMPFILES_FLAG="--with-tmpfiles-d=%{with_tmpfiles_d}"}
184 # hack hack hack https://bugzilla.redhat.com/show_bug.cgi?id=833529
185 NSSARGS="--with-svrcore-inc=%{_includedir} --with-svrcore-lib=%{_libdir} --with-nss-lib=%{_libdir} --with-nss-inc=%{_includedir}/nss"
186 %configure2_5x --enable-autobind \
187 --with-selinux $OPENLDAP_FLAG $TMPFILES_FLAG \
188 --with-systemdsystemunitdir=%{_unitdir} \
189 --with-systemdsystemconfdir=%{_sysconfdir}/systemd/system \
190 --with-systemdgroupname=%{groupname} $NSSARGS
191
192 # Generate symbolic info for debuggers
193 export XCFLAGS=$RPM_OPT_FLAGS
194
195 %ifarch x86_64
196 export USE_64=1
197 %endif
198
199
200 %make
201
202
203 %install
204 make DESTDIR="%{buildroot}" install
205
206 mkdir -p %{buildroot}%{_logdir}/%{pkgname}
207 mkdir -p %{buildroot}/var/lib/%{pkgname}
208 mkdir -p %{buildroot}/var/lock/%{pkgname}
209
210 # for systemd
211 # mkdir %{_sysconfdir}/systemd/system/%{groupname}.wants
212
213 #remove libtool and static libs
214 rm -f %{buildroot}%{_libdir}/%{pkgname}/*.a
215 rm -f %{buildroot}%{_libdir}/%{pkgname}/*.la
216 rm -f %{buildroot}%{_libdir}/%{pkgname}/plugins/*.a
217 rm -f %{buildroot}%{_libdir}/%{pkgname}/plugins/*.la
218
219 # make sure perl scripts have a proper shebang
220 sed -i -e 's|#{{PERL-EXEC}}|#!/usr/bin/perl|' %{buildroot}%{_datadir}/%{pkgname}/script-templates/template-*.pl
221
222 %post
223 output=/dev/null
224 # We need to do this because the BS doesn't accept the way Fedora (upstream) and others do it.
225 if [ $1 = 1 ] ; then
226 mkdir -p %{_sysconfdir}/systemd/system/%{groupname}.wants
227 fi
228 %_post_service %{pkgname}-snmp
229 # reload to pick up any changes to systemd files
230 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
231 # reload to pick up any shared lib changes
232 /sbin/ldconfig
233 # restart the snmp subagent if needed
234 /bin/systemctl try-restart %{pkgname}-snmp.service > $output 2>&1 || :
235 # find all instances
236 instances="" # instances that require a restart after upgrade
237 ninst=0 # number of instances found in total
238 if [ -n "$DEBUGPOSTTRANS" ] ; then
239 output=$DEBUGPOSTTRANS
240 fi
241 echo looking for services in %{_sysconfdir}/systemd/system/%{groupname}.wants/* > $output 2>&1 || :
242 for service in %{_sysconfdir}/systemd/system/%{groupname}.wants/* ; do
243 if [ ! -f "$service" ] ; then continue ; fi # in case nothing matches
244 inst=`echo $service | sed -e 's,%{_sysconfdir}/systemd/system/%{groupname}.wants/,,'`
245 echo found instance $inst - getting status > $output 2>&1 || :
246 if /bin/systemctl -q is-active $inst ; then
247 echo instance $inst is running > $output 2>&1 || :
248 instances="$instances $inst"
249 else
250 echo instance $inst is not running > $output 2>&1 || :
251 fi
252 ninst=`expr $ninst + 1`
253 done
254 if [ $ninst -eq 0 ] ; then
255 echo no instances to upgrade > $output 2>&1 || :
256 exit 0 # have no instances to upgrade - just skip the rest
257 fi
258 # shutdown all instances
259 echo shutting down all instances . . . > $output 2>&1 || :
260 /bin/systemctl stop %{groupname} > $output 2>&1 || :
261 echo remove pid files . . . > $output 2>&1 || :
262 /bin/rm -f /var/run/%{pkgname}*.pid /var/run/%{pkgname}*.startpid
263 # do the upgrade
264 echo upgrading instances . . . > $output 2>&1 || :
265 %{_sbindir}/setup-ds.pl -l $output -u -s General.UpdateMode=offline > $output 2>&1 || :
266 # restart instances that require it
267 for inst in $instances ; do
268 echo restarting instance $inst > $output 2>&1 || :
269 /bin/systemctl start $inst > $output 2>&1 || :
270 done
271 exit 0
272
273 %preun
274 if [ $1 -eq 0 ]; then # Final removal
275 # Package removal, not upgrade
276 %systemd_preun %{pkgname}-snmp.service %{groupname}
277 # remove instance specific service files/links
278 rm -rf %{_sysconfdir}/systemd/system/%{groupname}.wants/* > /dev/null 2>&1 || :
279 fi
280
281 %postun
282 /sbin/ldconfig
283 if [ $1 = 0 ]; then # Final removal
284 rm -rf /var/run/%{pkgname}
285 fi
286
287 %files
288 %doc LICENSE EXCEPTION LICENSE.GPLv2
289 %dir %{_sysconfdir}/%{pkgname}
290 %dir %{_sysconfdir}/%{pkgname}/schema
291 %config(noreplace)%{_sysconfdir}/%{pkgname}/schema/*.ldif
292 %dir %{_sysconfdir}/%{pkgname}/config
293 # %dir %{_sysconfdir}/systemd/system/%{groupname}.wants
294 %config(noreplace)%{_sysconfdir}/%{pkgname}/config/slapd-collations.conf
295 %config(noreplace)%{_sysconfdir}/%{pkgname}/config/certmap.conf
296 %config(noreplace)%{_sysconfdir}/%{pkgname}/config/ldap-agent.conf
297 %config(noreplace)%{_sysconfdir}/%{pkgname}/config/template-initconfig
298 %config(noreplace)%{_sysconfdir}/sysconfig/%{pkgname}
299 %config(noreplace)%{_sysconfdir}/sysconfig/%{pkgname}.systemd
300 %{_datadir}/%{pkgname}
301 %{_unitdir}
302 %{_bindir}/*
303 %{_sbindir}/*
304 %{_libdir}/%{pkgname}/libns-dshttpd.so*
305 %{_libdir}/%{pkgname}/perl
306 %{_libdir}/%{pkgname}/plugins/*.so
307 %dir %{_localstatedir}/lib/%{pkgname}
308 %dir %{_logdir}/%{pkgname}
309 %{_mandir}/man1/*
310 %{_mandir}/man8/*
311
312 %files devel
313 %doc LICENSE EXCEPTION LICENSE.GPLv2 README.devel
314 %{_includedir}/%{pkgname}
315 %{_libdir}/%{pkgname}/libslapd.so
316 %{_libdir}/pkgconfig/*
317
318 %files libs
319 %doc LICENSE EXCEPTION LICENSE.GPLv2 README.devel
320 %{_libdir}/%{pkgname}/libslapd.so.*

  ViewVC Help
Powered by ViewVC 1.1.30