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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 490172 - (hide annotations) (download)
Tue Oct 1 22:50:42 2013 UTC (10 years, 6 months ago) by spuhler
Original Path: cauldron/389-ds-base/current/SPECS/389-ds-base.spec
File size: 10240 byte(s)
- upgrade to vers. 1.3.1.1
- some cleanup of spec
- bug fixes by upstream
  * Set localrundir outside of the "with-fhs" block
  * Refine the check for @localrundir@
  * remove unnecessary typedef
  * Repl Sync does not compile against MozLDAP libraries
1 spuhler 287129
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 spuhler 398874 #% global prerel .rc3
7 spuhler 287129 # also need the relprefix field for a pre-release e.g. .0 - also comment out for official release
8 spuhler 398874 #% global relprefix 0.
9 spuhler 287129
10 spuhler 291495 %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 spuhler 287129
15 colin 321807 # (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 spuhler 398874 # Mageia 3 and later uses tmpfiles.d
19 spuhler 287129 # otherwise, comment this out
20 colin 321807 %{!?with_tmpfiles_d: %global with_tmpfiles_d %{_sysconfdir}/tmpfiles.d}
21 spuhler 287129
22 spuhler 291495 # systemd support
23     %global groupname %{pkgname}.target
24    
25 spuhler 424952 # set PIE flag
26     %global _hardened_build 1
27    
28 spuhler 287129 Summary: 389 Directory Server (base)
29     Name: 389-ds-base
30 spuhler 490172 Version: 1.3.1.11
31 spuhler 488515 Release: %mkrel 1
32 spuhler 287129 License: GPLv2 with exceptions
33     URL: http://port389.org/
34 spuhler 291509 Group: System/Servers
35 spuhler 287129 Requires: %{name}-libs = %{version}-%{release}
36 spuhler 291495 Provides: ldif2ldbm
37 spuhler 287129
38     BuildRequires: nspr-devel
39     BuildRequires: nss-devel
40 spuhler 300705 BuildRequires: krb5-devel
41 spuhler 287129 BuildRequires: svrcore-devel
42     %if %{use_openldap}
43     BuildRequires: openldap-devel
44     %else
45     BuildRequires: mozldap-devel
46     %endif
47 spuhler 291495 %if %{use_db4}
48 spuhler 287129 BuildRequires: db4-devel
49 spuhler 291495 %else
50     BuildRequires: db-devel
51     %endif
52 spuhler 300646 BuildRequires: libsasl-devel
53 spuhler 287129 BuildRequires: icu
54     BuildRequires: libicu-devel
55     BuildRequires: pcre-devel
56 spuhler 291495 BuildRequires: gcc-c++
57 spuhler 287129 # 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 spuhler 291495 BuildRequires: systemd-units
66 spuhler 287129
67     # this is needed for using semanage from our setup scripts
68 spuhler 291495 Requires: policycoreutils-python
69 spuhler 287129
70 spuhler 413351 Requires(post): rpm-helper >= %{rpmhelper_required_version}
71     Requires(preun): rpm-helper >= %{rpmhelper_required_version}
72 spuhler 401340
73 spuhler 413351
74 spuhler 287129 # the following are needed for some of our scripts
75     %if %{use_openldap}
76 spuhler 291495 Requires: openldap-clients
77 spuhler 287129 %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 spuhler 291495 Requires: nss
86 spuhler 287129
87     # these are not found by the auto-dependency method
88     # they are required to support the mandatory LDAP SASL mechs
89 spuhler 300646 Requires: sasl-plug-gssapi
90     Requires: sasl-plug-digestmd5
91 spuhler 287129
92     # this is needed for verify-db.pl
93 spuhler 291495 %if %{use_db4}
94 spuhler 287129 Requires: db4-utils
95 spuhler 291495 %else
96 spuhler 296942 Requires: db5-utils
97 spuhler 291495 %endif
98 spuhler 287129
99     # This picks up libperl.so as a Requires, so we add this versioned one
100 spuhler 401340 # 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 spuhler 287129
103     # for the init script
104 spuhler 291495 Requires(post): systemd-units
105     Requires(preun): systemd-units
106     Requires(postun): systemd-units
107 spuhler 287129
108 spuhler 291495 # 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 spuhler 287129 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 spuhler 413351 Patch0: mageia-nogroup.patch
121 spuhler 474903 Patch1: 389-ds-base-1.3.1.7-build-module.patch
122     Patch2: ereport.patch
123 spuhler 287129
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 spuhler 398874 %package libs
129 spuhler 287129 Summary: Core libraries for 389 Directory Server
130 spuhler 291509 Group: System/Servers
131 spuhler 287129 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 spuhler 291495 %if %{use_db4}
140 spuhler 287129 BuildRequires: db4-devel
141 spuhler 291495 %else
142     BuildRequires: db-devel
143     %endif
144 spuhler 300646 BuildRequires: libsasl-devel
145 spuhler 287129 BuildRequires: libicu-devel
146     BuildRequires: pcre-devel
147    
148 spuhler 305913 %description libs
149 spuhler 287129 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 spuhler 296942 Group: System/Libraries
156 spuhler 287129 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 spuhler 413351 %patch0 -p1 -b .mageia-nogroup
174 spuhler 474903 %patch1 -p1 -b .module
175     %patch2 -p1 -b .ereport
176 spuhler 287129
177 spuhler 473556
178 spuhler 287129 %build
179 spuhler 473556 autoreconf -fi
180 spuhler 287129 %if %{use_openldap}
181     OPENLDAP_FLAG="--with-openldap"
182     %endif
183 colin 321807 %{?with_tmpfiles_d: TMPFILES_FLAG="--with-tmpfiles-d=%{with_tmpfiles_d}"}
184 spuhler 401340 # 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 spuhler 305248 %configure2_5x --enable-autobind \
187 spuhler 296942 --with-selinux $OPENLDAP_FLAG $TMPFILES_FLAG \
188 spuhler 291495 --with-systemdsystemunitdir=%{_unitdir} \
189     --with-systemdsystemconfdir=%{_sysconfdir}/systemd/system \
190 spuhler 401340 --with-systemdgroupname=%{groupname} $NSSARGS
191 spuhler 287129
192     # Generate symbolic info for debuggers
193     export XCFLAGS=$RPM_OPT_FLAGS
194    
195 spuhler 398874 %ifarch x86_64
196     export USE_64=1
197     %endif
198 spuhler 305248
199 spuhler 398874
200 spuhler 296942 %make
201 spuhler 287129
202    
203     %install
204 spuhler 398874 make DESTDIR="%{buildroot}" install
205 spuhler 287129
206 spuhler 413351 mkdir -p %{buildroot}%{_logdir}/%{pkgname}
207 spuhler 398874 mkdir -p %{buildroot}/var/lib/%{pkgname}
208     mkdir -p %{buildroot}/var/lock/%{pkgname}
209 spuhler 287129
210 spuhler 398874
211 spuhler 287129 #remove libtool and static libs
212 spuhler 398874 rm -f %{buildroot}%{_libdir}/%{pkgname}/*.a
213     rm -f %{buildroot}%{_libdir}/%{pkgname}/*.la
214     rm -f %{buildroot}%{_libdir}/%{pkgname}/plugins/*.a
215     rm -f %{buildroot}%{_libdir}/%{pkgname}/plugins/*.la
216 spuhler 287129
217     # make sure perl scripts have a proper shebang
218 spuhler 398874 sed -i -e 's|#{{PERL-EXEC}}|#!/usr/bin/perl|' %{buildroot}%{_datadir}/%{pkgname}/script-templates/template-*.pl
219 spuhler 287129
220     %post
221 spuhler 398874 output=/dev/null
222 spuhler 473556 # We need to do this because the BS doesn't accept the way Fedora (upstream) and others do it.
223     if [ $1 = 1 ] ; then
224     mkdir -p %{_sysconfdir}/systemd/system/%{groupname}.wants
225     fi
226 spuhler 410202 %_post_service %{pkgname}-snmp
227 spuhler 291495 # reload to pick up any changes to systemd files
228     /bin/systemctl daemon-reload >/dev/null 2>&1 || :
229     # reload to pick up any shared lib changes
230 spuhler 287129 /sbin/ldconfig
231 spuhler 291495 # restart the snmp subagent if needed
232     /bin/systemctl try-restart %{pkgname}-snmp.service > $output 2>&1 || :
233 spuhler 287129 # find all instances
234     instances="" # instances that require a restart after upgrade
235     ninst=0 # number of instances found in total
236 spuhler 291495 if [ -n "$DEBUGPOSTTRANS" ] ; then
237     output=$DEBUGPOSTTRANS
238     fi
239     echo looking for services in %{_sysconfdir}/systemd/system/%{groupname}.wants/* > $output 2>&1 || :
240     for service in %{_sysconfdir}/systemd/system/%{groupname}.wants/* ; do
241     if [ ! -f "$service" ] ; then continue ; fi # in case nothing matches
242     inst=`echo $service | sed -e 's,%{_sysconfdir}/systemd/system/%{groupname}.wants/,,'`
243     echo found instance $inst - getting status > $output 2>&1 || :
244     if /bin/systemctl -q is-active $inst ; then
245     echo instance $inst is running > $output 2>&1 || :
246 spuhler 287129 instances="$instances $inst"
247     else
248 spuhler 291495 echo instance $inst is not running > $output 2>&1 || :
249 spuhler 287129 fi
250     ninst=`expr $ninst + 1`
251     done
252     if [ $ninst -eq 0 ] ; then
253 spuhler 291495 echo no instances to upgrade > $output 2>&1 || :
254 spuhler 287129 exit 0 # have no instances to upgrade - just skip the rest
255     fi
256     # shutdown all instances
257 spuhler 291495 echo shutting down all instances . . . > $output 2>&1 || :
258     /bin/systemctl stop %{groupname} > $output 2>&1 || :
259     echo remove pid files . . . > $output 2>&1 || :
260     /bin/rm -f /var/run/%{pkgname}*.pid /var/run/%{pkgname}*.startpid
261 spuhler 287129 # do the upgrade
262 spuhler 291495 echo upgrading instances . . . > $output 2>&1 || :
263     %{_sbindir}/setup-ds.pl -l $output -u -s General.UpdateMode=offline > $output 2>&1 || :
264 spuhler 287129 # restart instances that require it
265     for inst in $instances ; do
266 spuhler 291495 echo restarting instance $inst > $output 2>&1 || :
267     /bin/systemctl start $inst > $output 2>&1 || :
268 spuhler 287129 done
269     exit 0
270    
271 spuhler 291495 %preun
272     if [ $1 -eq 0 ]; then # Final removal
273     # Package removal, not upgrade
274 spuhler 398874 %systemd_preun %{pkgname}-snmp.service %{groupname}
275 spuhler 291495 # remove instance specific service files/links
276     rm -rf %{_sysconfdir}/systemd/system/%{groupname}.wants/* > /dev/null 2>&1 || :
277     fi
278    
279     %postun
280     /sbin/ldconfig
281     if [ $1 = 0 ]; then # Final removal
282     rm -rf /var/run/%{pkgname}
283     fi
284    
285 spuhler 287129 %files
286     %doc LICENSE EXCEPTION LICENSE.GPLv2
287     %dir %{_sysconfdir}/%{pkgname}
288     %dir %{_sysconfdir}/%{pkgname}/schema
289     %config(noreplace)%{_sysconfdir}/%{pkgname}/schema/*.ldif
290     %dir %{_sysconfdir}/%{pkgname}/config
291     %config(noreplace)%{_sysconfdir}/%{pkgname}/config/slapd-collations.conf
292     %config(noreplace)%{_sysconfdir}/%{pkgname}/config/certmap.conf
293     %config(noreplace)%{_sysconfdir}/%{pkgname}/config/ldap-agent.conf
294     %config(noreplace)%{_sysconfdir}/%{pkgname}/config/template-initconfig
295     %config(noreplace)%{_sysconfdir}/sysconfig/%{pkgname}
296 spuhler 291495 %config(noreplace)%{_sysconfdir}/sysconfig/%{pkgname}.systemd
297 spuhler 287129 %{_datadir}/%{pkgname}
298 spuhler 291495 %{_unitdir}
299 spuhler 287129 %{_bindir}/*
300     %{_sbindir}/*
301     %{_libdir}/%{pkgname}/libns-dshttpd.so*
302     %{_libdir}/%{pkgname}/perl
303     %{_libdir}/%{pkgname}/plugins/*.so
304     %dir %{_localstatedir}/lib/%{pkgname}
305 spuhler 296942 %dir %{_logdir}/%{pkgname}
306 spuhler 287129 %{_mandir}/man1/*
307     %{_mandir}/man8/*
308    
309     %files devel
310     %doc LICENSE EXCEPTION LICENSE.GPLv2 README.devel
311     %{_includedir}/%{pkgname}
312     %{_libdir}/%{pkgname}/libslapd.so
313     %{_libdir}/pkgconfig/*
314    
315 spuhler 305913 %files libs
316 spuhler 287129 %doc LICENSE EXCEPTION LICENSE.GPLv2 README.devel
317     %{_libdir}/%{pkgname}/libslapd.so.*

  ViewVC Help
Powered by ViewVC 1.1.30