Gentoo Archives: gentoo-commits

From: "Markus Ullmann (jokey)" <jokey@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in net-nds/openldap: ChangeLog openldap-2.4.11.ebuild
Date: Wed, 03 Sep 2008 18:09:46
Message-Id: E1KawnX-0004WK-4w@stork.gentoo.org
1 jokey 08/09/03 18:09:43
2
3 Modified: ChangeLog
4 Added: openldap-2.4.11.ebuild
5 Log:
6 Version bump wrt bug 232940
7 (Portage version: 2.2_rc8/cvs/Linux 2.6.26-gentoo i686)
8
9 Revision Changes Path
10 1.333 net-nds/openldap/ChangeLog
11
12 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/net-nds/openldap/ChangeLog?rev=1.333&view=markup
13 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/net-nds/openldap/ChangeLog?rev=1.333&content-type=text/plain
14 diff : http://sources.gentoo.org/viewcvs.py/gentoo-x86/net-nds/openldap/ChangeLog?r1=1.332&r2=1.333
15
16 Index: ChangeLog
17 ===================================================================
18 RCS file: /var/cvsroot/gentoo-x86/net-nds/openldap/ChangeLog,v
19 retrieving revision 1.332
20 retrieving revision 1.333
21 diff -u -r1.332 -r1.333
22 --- ChangeLog 16 Aug 2008 04:00:02 -0000 1.332
23 +++ ChangeLog 3 Sep 2008 18:09:42 -0000 1.333
24 @@ -1,6 +1,11 @@
25 # ChangeLog for net-nds/openldap
26 # Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
27 -# $Header: /var/cvsroot/gentoo-x86/net-nds/openldap/ChangeLog,v 1.332 2008/08/16 04:00:02 cardoe Exp $
28 +# $Header: /var/cvsroot/gentoo-x86/net-nds/openldap/ChangeLog,v 1.333 2008/09/03 18:09:42 jokey Exp $
29 +
30 +*openldap-2.4.11 (03 Sep 2008)
31 +
32 + 03 Sep 2008; Markus Ullmann <jokey@g.o> +openldap-2.4.11.ebuild:
33 + Version bump wrt bug 232940
34
35 16 Aug 2008; Doug Goldstein <cardoe@g.o> metadata.xml:
36 add GLEP 56 USE flag desc from use.local.desc
37
38
39
40 1.1 net-nds/openldap/openldap-2.4.11.ebuild
41
42 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/net-nds/openldap/openldap-2.4.11.ebuild?rev=1.1&view=markup
43 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/net-nds/openldap/openldap-2.4.11.ebuild?rev=1.1&content-type=text/plain
44
45 Index: openldap-2.4.11.ebuild
46 ===================================================================
47 # Copyright 1999-2008 Gentoo Foundation
48 # Distributed under the terms of the GNU General Public License v2
49 # $Header: /var/cvsroot/gentoo-x86/net-nds/openldap/openldap-2.4.11.ebuild,v 1.1 2008/09/03 18:09:42 jokey Exp $
50
51 EAPI="1"
52 inherit db-use eutils flag-o-matic multilib ssl-cert versionator toolchain-funcs
53
54 DESCRIPTION="LDAP suite of application and development tools"
55 HOMEPAGE="http://www.OpenLDAP.org/"
56 SRC_URI="mirror://openldap/openldap-release/${P}.tgz"
57
58 LICENSE="OPENLDAP"
59 SLOT="0"
60 KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd"
61
62 IUSE_DAEMON="crypt samba slp tcpd experimental minimal"
63 IUSE_BACKEND="+berkdb"
64 IUSE_OVERLAY="overlays perl"
65 IUSE_OPTIONAL="gnutls iodbc sasl ssl odbc debug ipv6 syslog selinux"
66 IUSE_CONTRIB="smbkrb5passwd kerberos"
67 IUSE="${IUSE_DAEMON} ${IUSE_BACKEND} ${IUSE_OVERLAY} ${IUSE_OPTIONAL} ${IUSE_CONTRIB}"
68
69 # samba adding openssl is intentional --jokey
70 RDEPEND="sys-libs/ncurses
71 tcpd? ( sys-apps/tcp-wrappers )
72 ssl? ( !gnutls? ( dev-libs/openssl )
73 gnutls? ( net-libs/gnutls ) )
74 sasl? ( dev-libs/cyrus-sasl )
75 !minimal? (
76 odbc? ( !iodbc? ( dev-db/unixODBC )
77 iodbc? ( dev-db/libiodbc ) )
78 slp? ( net-libs/openslp )
79 perl? ( dev-lang/perl )
80 samba? ( !gnutls? ( dev-libs/openssl )
81 gnutls? ( net-libs/gnutls ) )
82 berkdb? ( sys-libs/db:4.5 )
83 smbkrb5passwd? (
84 dev-libs/openssl
85 app-crypt/heimdal )
86 )
87 selinux? ( sec-policy/selinux-openldap )"
88 DEPEND="${RDEPEND}"
89
90 # for tracking versions
91 OPENLDAP_VERSIONTAG=".version-tag"
92 OPENLDAP_DEFAULTDIR_VERSIONTAG="/var/lib/openldap-data"
93
94 openldap_find_versiontags() {
95 # scan for all datadirs
96 openldap_datadirs=""
97 if [ -f "${ROOT}"/etc/openldap/slapd.conf ]; then
98 openldap_datadirs="$(awk '{if($1 == "directory") print $2 }' ${ROOT}/etc/openldap/slapd.conf)"
99 fi
100 openldap_datadirs="${openldap_datadirs} ${OPENLDAP_DEFAULTDIR_VERSIONTAG}"
101
102 einfo
103 einfo "Scanning datadir(s) from slapd.conf and"
104 einfo "the default installdir for Versiontags"
105 einfo "(${OPENLDAP_DEFAULTDIR_VERSIONTAG} may appear twice)"
106 einfo
107
108 # scan datadirs if we have a version tag
109 openldap_found_tag=0
110 for each in ${openldap_datadirs}; do
111 CURRENT_TAGDIR=${ROOT}`echo ${each} | sed "s:\/::"`
112 CURRENT_TAG=${CURRENT_TAGDIR}/${OPENLDAP_VERSIONTAG}
113 if [ -d ${CURRENT_TAGDIR} ] && [ ${openldap_found_tag} == 0 ] ; then
114 einfo "- Checking ${each}..."
115 if [ -r ${CURRENT_TAG} ] ; then
116 # yey, we have one :)
117 einfo " Found Versiontag in ${each}"
118 source ${CURRENT_TAG}
119 if [ "${OLDPF}" == "" ] ; then
120 eerror "Invalid Versiontag found in ${CURRENT_TAGDIR}"
121 eerror "Please delete it"
122 eerror
123 die "Please kill the invalid versiontag in ${CURRENT_TAGDIR}"
124 fi
125
126 OLD_MAJOR=`get_version_component_range 2-3 ${OLDPF}`
127
128 # are we on the same branch?
129 if [ "${OLD_MAJOR}" != "${PV:0:3}" ] ; then
130 ewarn " Versiontag doesn't match current major release!"
131 if [[ `ls -a ${CURRENT_TAGDIR} | wc -l` -gt 5 ]] ; then
132 eerror " Versiontag says other major and you (probably) have datafiles!"
133 echo
134 openldap_upgrade_howto
135 else
136 einfo " No real problem, seems there's no database."
137 fi
138 else
139 einfo " Versiontag is fine here :)"
140 fi
141 else
142 einfo " Non-tagged dir ${each}"
143 if [[ `ls -a ${each} | wc -l` > 5 ]] ; then
144 einfo " EEK! Non-empty non-tagged datadir, counting `ls -a ${each} | wc -l` files"
145 echo
146
147 eerror
148 eerror "Your OpenLDAP Installation has a non tagged datadir that"
149 eerror "possibly contains a database at ${CURRENT_TAGDIR}"
150 eerror
151 eerror "Please export data if any entered and empty or remove"
152 eerror "the directory, installation has been stopped so you"
153 eerror "can take required action"
154 eerror
155 eerror "For a HOWTO on exporting the data, see instructions in the ebuild"
156 eerror
157 die "Please move the datadir ${CURRENT_TAGDIR} away"
158 fi
159 fi
160 einfo
161 fi
162 done
163
164 echo
165 einfo
166 einfo "All datadirs are fine, proceeding with merge now..."
167 einfo
168 }
169
170 openldap_upgrade_howto() {
171 eerror
172 eerror "A (possible old) installation of OpenLDAP was detected,"
173 eerror "installation will not proceed for now."
174 eerror
175 eerror "As major version upgrades can corrupt your database,"
176 eerror "you need to dump your database and re-create it afterwards."
177 eerror ""
178 d="$(date -u +%s)"
179 l="/root/ldapdump.${d}"
180 i="${l}.raw"
181 eerror " 1. /etc/init.d/slurpd stop ; /etc/init.d/slapd stop"
182 eerror " 2. slapcat -l ${i}"
183 eerror " 3. egrep -v '^entryCSN:' <${i} >${l}"
184 eerror " 4. mv /var/lib/openldap-data/ /var/lib/openldap-data-backup/"
185 eerror " 5. emerge --update \=net-nds/${PF}"
186 eerror " 6. etc-update, and ensure that you apply the changes"
187 eerror " 7. slapadd -l ${l}"
188 eerror " 8. chown ldap:ldap /var/lib/openldap-data/*"
189 eerror " 9. /etc/init.d/slapd start"
190 eerror "10. check that your data is intact."
191 eerror "11. set up the new replication system."
192 eerror
193 die "You need to upgrade your database first"
194 }
195
196 pkg_setup() {
197 if use minimal && has_version "net-nds/openldap" && built_with_use net-nds/openldap minimal ; then
198 einfo
199 einfo "Skipping scan for previous datadirs as requested by minimal useflag"
200 einfo
201 else
202 openldap_find_versiontags
203 fi
204
205 enewgroup ldap 439
206 enewuser ldap 439 -1 /usr/$(get_libdir)/openldap ldap
207 }
208
209 src_unpack() {
210 unpack ${A}
211 cd "${S}"
212
213 # ensure correct SLAPI path by default
214 sed -i -e 's,\(#define LDAPI_SOCK\).*,\1 "/var/run/openldap/slapd.sock",' \
215 "${S}"/include/ldap_defaults.h
216
217 epatch \
218 "${FILESDIR}"/${PN}-2.2.14-perlthreadsfix.patch \
219 "${FILESDIR}"/${PN}-2.4-disable-bdb46.patch \
220 "${FILESDIR}"/${PN}-2.4-ppolicy.patch \
221
222 # bug #116045
223 epatch "${FILESDIR}"/${PN}-2.3.24-contrib-smbk5pwd.patch
224
225 cd "${S}"/build
226 einfo "Making sure upstream build strip does not do stripping too early"
227 sed -i.orig \
228 -e '/^STRIP/s,-s,,g' \
229 top.mk || die "Failed to block stripping"
230 }
231
232 build_contrib_module() {
233 # <dir> <sources> <outputname>
234 cd "${S}/contrib/slapd-modules/$1"
235 einfo "Building contrib-module: $3"
236 $(tc-getCC) -shared \
237 -I../../../include -I../../../servers/slapd ${CFLAGS} -fPIC \
238 ${LDFLAGS} -o $3.so $2 || die "building $3 failed"
239 }
240
241 src_compile() {
242 local myconf
243
244 #Fix for glibc-2.8 and ucred. Bug 228457.
245 append-flags -D_GNU_SOURCE
246
247 use debug && myconf="${myconf} $(use_enable debug)"
248
249 if ! use minimal ; then
250 # backends
251 myconf="${myconf} --enable-slapd"
252 if use berkdb ; then
253 einfo "Using Berkeley DB for local backend"
254 myconf="${myconf} --enable-bdb --enable-hdb"
255 # We need to include the slotted db.h dir for FreeBSD
256 append-cppflags -I$(db_includedir 4.5)
257 else
258 ewarn
259 ewarn "Note: if you disable berkdb, you can only use remote-backends!"
260 ewarn
261 ebeep 5
262 myconf="${myconf} --disable-bdb --disable-hdb"
263 fi
264 for backend in dnssrv ldap meta monitor null passwd relay shell sock; do
265 myconf="${myconf} --enable-${backend}=mod"
266 done
267
268 myconf="${myconf} $(use_enable perl perl mod)"
269
270 if use odbc ; then
271 local odbc_lib="unixodbc"
272 use iodbc && odbc_lib="iodbc"
273 myconf="${myconf} --enable-sql=mod --with-odbc=${odbc_lib}"
274 fi
275
276 # slapd options
277 myconf="${myconf} $(use_enable crypt) $(use_enable slp)"
278 myconf="${myconf} $(use_enable samba lmpasswd)"
279 if use experimental ; then
280 myconf="${myconf} --enable-dynacl"
281 myconf="${myconf} --enable-aci=mod"
282 fi
283 for option in aci cleartext modules rewrite rlookups slapi; do
284 myconf="${myconf} --enable-${option}"
285 done
286
287 # slapd overlay options
288 # Compile-in the syncprov, the others as module
289 myconf="${myconf} --enable-syncprov=yes"
290 use overlays && myconf="${myconf} --enable-overlays=mod"
291 else
292 myconf="${myconf} --disable-slapd --disable-bdb --disable-hdb"
293 myconf="${myconf} --disable-overlays"
294 fi
295
296 # basic functionality stuff
297 myconf="${myconf} $(use_enable ipv6)"
298 myconf="${myconf} $(use_with sasl cyrus-sasl) $(use_enable sasl spasswd)"
299 myconf="${myconf} $(use_enable tcpd wrappers)"
300
301 local ssl_lib="no"
302 if use ssl || ( use ! minimal && use samba ) ; then
303 ssl_lib="openssl"
304 use gnutls && ssl_lib="gnutls"
305 fi
306
307 myconf="${myconf} --with-tls=${ssl_lib}"
308
309 for basicflag in dynamic local proctitle shared static syslog; do
310 myconf="${myconf} --enable-${basicflag}"
311 done
312
313 STRIP=/bin/true \
314 econf \
315 --libexecdir=/usr/$(get_libdir)/openldap \
316 ${myconf} || die "configure failed"
317
318 emake depend || die "emake depend failed"
319 emake CC=$(tc-getCC) AR=$(tc-getAR) || die "emake failed"
320
321 if ! use minimal ; then
322 if use smbkrb5passwd ; then
323 einfo "Building contrib-module: smbk5pwd"
324 cd "${S}/contrib/slapd-modules/smbk5pwd"
325
326 emake \
327 DEFS="-DDO_SAMBA -DDO_KRB5" \
328 KRB5_INC="-I/usr/include/heimdal" \
329 CC=$(tc-getCC) \
330 || die "emake smbk5pwd failed"
331 fi
332
333 if use kerberos ; then
334 cd "${S}/contrib/slapd-modules/passwd"
335 einfo "Building contrib-module: pw-kerberos"
336 $(tc-getCC) -shared \
337 -I../../../include ${CFLAGS} -DHAVE_KRB5 -fPIC \
338 ${LDFLAGS} -o pw-kerberos.so kerberos.c || die "building pw-kerberos failed"
339 fi
340 # We could build pw-radius if GNURadius would install radlib.h
341 cd "${S}/contrib/slapd-modules/passwd"
342 einfo "Building contrib-module: pw-netscape"
343 $(tc-getCC) -shared \
344 -I../../../include ${CFLAGS} -fPIC \
345 ${LDFLAGS} -o pw-netscape.so netscape.c || die "building pw-netscape failed"
346
347 build_contrib_module "addpartial" "addpartial-overlay.c" "addpartial-overlay"
348 build_contrib_module "allop" "allop.c" "overlay-allop"
349 # TODO: autogroup
350 build_contrib_module "denyop" "denyop.c" "denyop-overlay"
351 build_contrib_module "dsaschema" "dsaschema.c" "dsaschema-plugin"
352 # TODO: lastmod
353 build_contrib_module "nops" "nops.c" "nops-overlay"
354 # TODO: trace
355 fi
356 }
357
358 src_test() {
359 cd tests ; make tests || die "make tests failed"
360 }
361
362 src_install() {
363 emake DESTDIR="${D}" install || die "make install failed"
364
365 dodoc ANNOUNCEMENT CHANGES COPYRIGHT README "${FILESDIR}"/DB_CONFIG.fast.example
366 docinto rfc ; dodoc doc/rfc/*.txt
367
368 # openldap modules go here
369 # TODO: write some code to populate slapd.conf with moduleload statements
370 keepdir /usr/$(get_libdir)/openldap/openldap/
371
372 # initial data storage dir
373 keepdir /var/lib/openldap-data
374 fowners ldap:ldap /var/lib/openldap-data
375 fperms 0700 /var/lib/openldap-data
376
377 echo "OLDPF='${PF}'" > "${D}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
378 echo "# do NOT delete this. it is used" >> "${D}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
379 echo "# to track versions for upgrading." >> "${D}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
380
381 # change slapd.pid location in configuration file
382 keepdir /var/run/openldap
383 fowners ldap:ldap /var/run/openldap
384 fperms 0755 /var/run/openldap
385
386 if ! use minimal; then
387 # use our config
388 rm "${D}"etc/openldap/slapd.conf
389 insinto /etc/openldap
390 newins "${FILESDIR}"/${PN}-2.3.34-slapd-conf slapd.conf
391 configfile="${D}"etc/openldap/slapd.conf
392
393 # populate with built backends
394 ebegin "populate config with built backends"
395 for x in "${D}"usr/$(get_libdir)/openldap/openldap/back_*.so; do
396 elog "Adding $(basename ${x})"
397 sed -e "/###INSERTDYNAMICMODULESHERE###$/a# moduleload\t$(basename ${x})" -i "${configfile}"
398 done
399 sed -e "s:###INSERTDYNAMICMODULESHERE###$:# modulepath\t/usr/$(get_libdir)/openldap/openldap:" -i "${configfile}"
400 fowners root:ldap /etc/openldap/slapd.conf
401 fperms 0640 /etc/openldap/slapd.conf
402 cp "${configfile}" "${configfile}".default
403 eend
404
405 # install our own init scripts
406 newinitd "${FILESDIR}"/slapd-initd slapd
407 newconfd "${FILESDIR}"/slapd-confd slapd
408 if [ $(get_libdir) != lib ]; then
409 sed -e "s,/usr/lib/,/usr/$(get_libdir)/," -i "${D}"etc/init.d/slapd
410 fi
411
412 if use smbkrb5passwd ; then
413 einfo "Install the smbk5pwd module"
414 cd "${S}/contrib/slapd-modules/smbk5pwd"
415 emake DESTDIR="${D}" libexecdir="/usr/$(get_libdir)/openldap" install-mod || die "emake install smbk5pwd failed"
416 newdoc README smbk5pwd-README
417 fi
418
419 einfo "Installing contrib modules"
420 cd "${S}/contrib/slapd-modules"
421 insinto /usr/$(get_libdir)/openldap/openldap
422 doins */*.so
423 docinto contrib
424 newdoc addpartial/README addpartial-README
425 newdoc allop/README allop-README
426 doman allop/slapo-allop.5
427 newdoc denyop/denyop.c denyop-denyop.c
428 newdoc dsaschema/README dsaschema-README
429 doman lastmod/slapo-lastmod.5
430 doman nops/slapo-nops.5
431 newdoc passwd/README passwd-README
432 fi
433 }
434
435 pkg_preinst() {
436 # keep old libs if any
437 preserve_old_lib usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.3.so.0
438 }
439
440 pkg_postinst() {
441 if ! use minimal ; then
442 # You cannot build SSL certificates during src_install that will make
443 # binary packages containing your SSL key, which is both a security risk
444 # and a misconfiguration if multiple machines use the same key and cert.
445 if use ssl; then
446 install_cert /etc/openldap/ssl/ldap
447 chown ldap:ldap "${ROOT}"etc/openldap/ssl/ldap.*
448 ewarn "Self-signed SSL certificates are treated harshly by OpenLDAP 2.[12]"
449 ewarn "Self-signed SSL certificates are treated harshly by OpenLDAP 2.[12]"
450 ewarn "add 'TLS_REQCERT never' if you want to use them."
451 fi
452
453 # These lines force the permissions of various content to be correct
454 chown ldap:ldap "${ROOT}"var/run/openldap
455 chmod 0755 "${ROOT}"var/run/openldap
456 chown root:ldap "${ROOT}"etc/openldap/slapd.conf{,.default}
457 chmod 0640 "${ROOT}"etc/openldap/slapd.conf{,.default}
458 chown ldap:ldap "${ROOT}"var/lib/openldap-{data,ldbm}
459 fi
460
461 elog "Getting started using OpenLDAP? There is some documentation available:"
462 elog "Gentoo Guide to OpenLDAP Authentication"
463 elog "(http://www.gentoo.org/doc/en/ldap-howto.xml)"
464 elog "---"
465 elog "An example file for tuning BDB backends with openldap is:"
466 elog "/usr/share/doc/${PF}/DB_CONFIG.fast.example.gz"
467
468 preserve_old_lib_notify usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.3.so.0
469 }