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

  ViewVC Help
Powered by ViewVC 1.1.30