summaryrefslogtreecommitdiffstats
path: root/recipes/openldap
diff options
context:
space:
mode:
authorRoman I Khimov <khimov@altell.ru>2010-08-03 22:25:03 +0400
committerRoman I Khimov <khimov@altell.ru>2010-08-03 23:38:14 +0400
commitd4eb4f3ea8f330a25ad9e8290759138e8e0e1803 (patch)
tree2c41230ef1243c4cc5b0d9357c0e10db0a03b16a /recipes/openldap
parentf70303411dbf963869132aa6717654a3cd7c4216 (diff)
downloadopenembedded-d4eb4f3ea8f330a25ad9e8290759138e8e0e1803.tar.gz
openldap: update 2.4.21 to 2.4.23
* bugfixes mostly, considered as safe upgrade * fixes CVE-2010-0211 and CVE-2010-0212 * switch to PACKAGES_DYNAMIC for backends, allows to kill some recipe bloat, might be nice to do additional OECONF cleanup later (probably adding more modules as they're nicely packaged) * add openldap-backends package to easily install all backends at once * kill legacy staging Signed-off-by: Roman I Khimov <khimov@altell.ru>
Diffstat (limited to 'recipes/openldap')
-rw-r--r--recipes/openldap/openldap-2.4.23/openldap-m4-pthread.patch (renamed from recipes/openldap/openldap-2.4.21/openldap-m4-pthread.patch)0
-rw-r--r--recipes/openldap/openldap_2.4.23.bb (renamed from recipes/openldap/openldap_2.4.21.bb)79
2 files changed, 27 insertions, 52 deletions
diff --git a/recipes/openldap/openldap-2.4.21/openldap-m4-pthread.patch b/recipes/openldap/openldap-2.4.23/openldap-m4-pthread.patch
index b669b7254d..b669b7254d 100644
--- a/recipes/openldap/openldap-2.4.21/openldap-m4-pthread.patch
+++ b/recipes/openldap/openldap-2.4.23/openldap-m4-pthread.patch
diff --git a/recipes/openldap/openldap_2.4.21.bb b/recipes/openldap/openldap_2.4.23.bb
index 7fb97c07f5..9ad86c8f59 100644
--- a/recipes/openldap/openldap_2.4.21.bb
+++ b/recipes/openldap/openldap_2.4.23.bb
@@ -13,11 +13,12 @@ SECTION = "libs"
LDAP_VER = "${@'.'.join(bb.data.getVar('PV',d,1).split('.')[0:2])}"
-SRC_URI = "ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${P}.tgz;name=openldap-${PV}"
+SRC_URI = "ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${P}.tgz"
SRC_URI += "file://openldap-m4-pthread.patch"
SRC_URI += "file://initscript"
-SRC_URI[openldap-2.4.21.md5sum] = "e7128c57b2bacd940e8906057c94ff26"
-SRC_URI[openldap-2.4.21.sha256sum] = "22eca357137c135b5561e2fa0e3336b280702acf2e5c4f40bc7aed1d1e8e9324"
+SRC_URI[md5sum] = "90150b8c0d0192e10b30157e68844ddf"
+SRC_URI[sha256sum] = "5a5ede91d5e8ab3c7f637620aa29a3b96eb34318a8b26c8eef2d2c789fc055e3"
+
# The build tries to run a host executable, this fails. The patch
# causes the executable and its data to be installed instead of
# the output - ucgendat must be run after the ipkg install!
@@ -104,33 +105,24 @@ md = "${libexecdir}/openldap"
# a .conf file (this will allow ldbm to be build with gdbm).
#OPENLDAP_OPTION_bdb ?= "--enable-bdb=mod"
OPENLDAP_DEPENDS_bdb ?= "db"
-OPENLDAP_PACKAGE_bdb ?= "${PN}-backend-bdb"
-FILES_${PN}-backend-bdb = "${md}/back_bdb.so ${md}/back_bdb.la ${md}/back_bdb-*.so.*"
EXTRA_OECONF += "${OPENLDAP_OPTION_bdb}"
DEPENDS += "${OPENLDAP_DEPENDS_bdb}"
-PACKAGES += "${OPENLDAP_PACKAGE_bdb}"
#
#--enable-dnssrv enable dnssrv backend no|yes|mod no
# This has no dependencies.
-FILES_${PN}-backend-dnssrv = "${md}/back_dnssrv.so ${md}/back_dnssrv.la ${md}/back_dnssrv-*.so.*"
EXTRA_OECONF += "--enable-dnssrv=mod"
-PACKAGES += "${PN}-backend-dnssrv"
#
#--enable-hdb enable Hierarchical DB backend no|yes|mod no
# This forces ldbm to use Berkeley too, remove to use gdbm
#OPENLDAP_OPTION_hdb ?= "--enable-hdb=mod"
OPENLDAP_DEPENDS_hdb ?= "db"
OPENLDAP_PACKAGE_hdb ?= "${PN}-backend-hdb"
-FILES_${PN}-backend-hdb = "${md}/back_hdb.so ${md}/back_hdb.la ${md}/back_hdb-*.so.*"
EXTRA_OECONF += "${OPENLDAP_OPTION_hdb}"
DEPENDS += "${OPENLDAP_DEPENDS_hdb}"
-PACKAGES += "${OPENLDAP_PACKAGE_hdb}"
#
#--enable-ldap enable ldap backend no|yes|mod no
# This has no dependencies
EXTRA_OECONF += "--enable-ldap=mod"
-FILES_${PN}-backend-ldap = "${md}/back_ldap.so ${md}/back_ldap.la ${md}/back_ldap-*.so.*"
-PACKAGES += "${PN}-backend-ldap"
#
#--enable-ldbm enable ldbm backend no|yes|mod no
# ldbm requires further specification of the underlying database API, because
@@ -145,32 +137,21 @@ OPENLDAP_DEPENDS_ldbm = gdbm
# And clear the bdb and hdb settings.
OPENLDAP_OPTION_ldbm ?= "--enable-ldbm=mod"
OPENLDAP_DEPENDS_ldbm ?= ""
-OPENLDAP_PACKAGES_ldbm ?= "${PN}-backend-ldbm"
-FILES_${PN}-backend-ldbm = "${md}/back_ldbm.so ${md}/back_ldbm.la ${md}/back_ldbm-*.so.*"
EXTRA_OECONF += "${OPENLDAP_OPTION_ldbm}"
DEPENDS += "${OPENLDAP_DEPENDS_ldbm}"
-PACKAGES += "${PN}-backend-ldbm"
#
#--enable-meta enable metadirectory backend no|yes|mod no
# No dependencies
EXTRA_OECONF += "--enable-meta=mod"
-FILES_${PN}-backend-meta = "${md}/back_meta.so ${md}/back_meta.la ${md}/back_meta-*.so.*"
-PACKAGES += "${PN}-backend-meta"
#
#--enable-monitor enable monitor backend no|yes|mod yes
EXTRA_OECONF += "--enable-monitor=mod"
-FILES_${PN}-backend-monitor = "${md}/back_monitor.so ${md}/back_monitor.la ${md}/back_monitor-*.so.*"
-PACKAGES += "${PN}-backend-monitor"
#
#--enable-null enable null backend no|yes|mod no
EXTRA_OECONF += "--enable-null=mod"
-FILES_${PN}-backend-null = "${md}/back_null.so ${md}/back_null.la ${md}/back_null-*.so.*"
-PACKAGES += "${PN}-backend-null"
#
#--enable-passwd enable passwd backend no|yes|mod no
EXTRA_OECONF += " --enable-passwd=mod"
-FILES_${PN}-backend-passwd = "${md}/back_passwd.so ${md}/back_passwd.la ${md}/back_passwd-*.so.*"
-PACKAGES += "${PN}-backend-passwd"
#
#--enable-perl enable perl backend no|yes|mod no
# This requires a loadable perl dynamic library, if enabled without
@@ -178,38 +159,28 @@ PACKAGES += "${PN}-backend-passwd"
# up the build machine perl - not good.
OPENLDAP_OPTION_perl ?= "--enable-perl=mod"
OPENLDAP_DEPENDS_perl ?= "perl"
-OPENLDAP_PACKAGES_perl ?= "${PN}-backend-perl"
-FILES_${PN}-backend-perl = "${md}/back_perl.so ${md}/back_perl.la ${md}/back_perl-*.so.*"
#EXTRA_OECONF += "${OPENLDAP_OPTION_perl}"
#DEPENDS += "${OPENLDAP_DEPENDS_perl}"
-#PACKAGES += "${PN}-backend-perl"
#
#--enable-shell enable shell backend no|yes|mod no
EXTRA_OECONF += "--enable-shell=mod"
-FILES_${PN}-backend-shell = "${md}/back_shell.so ${md}/back_shell.la ${md}/back_shell-*.so.*"
-PACKAGES += "${PN}-backend-shell"
#
#--enable-sql enable sql backend no|yes|mod no
# sql requires some sql backend which provides sql.h, sqlite* provides
# sqlite.h (which may be compatible but hasn't been tried.)
OPENLDAP_OPTION_sql ?= "--enable-sql=mod"
OPENLDAP_DEPENDS_sql ?= "sql"
-OPENLDAP_PACKAGES_sql ?= "${PN}-backend-sql"
-FILES_${PN}-backend-sql = "${md}/back_sql.so ${md}/back_sql.la ${md}/back_sql-*.so.*"
#EXTRA_OECONF += "${OPENLDAP_OPTION_sql}"
#DEPENDS += "${OPENLDAP_DEPENDS_sql}"
-#PACKAGES += "${PN}-backend-sql"
#
#--enable-dyngroup Dynamic Group overlay no|yes|mod no
# This is a demo, Proxy Cache defines init_module which conflicts with the
# same symbol in dyngroup
#EXTRA_OECONF += "--enable-dyngroup=mod"
-#FILES_${PN}-overlay-dyngroup = "${md}/back_dyngroup.so ${md}/back_dyngroup.la ${md}/back_dyngroup-*.so.*"
-#PACKAGES += "${PN}-overlay-dyngroup"
#
#--enable-proxycache Proxy Cache overlay no|yes|mod no
EXTRA_OECONF += "--enable-proxycache=mod"
-FILES_${PN}-overlay-proxycache = "${md}/pcache.so ${md}/pcache.la ${md}/pcache-*.so.*"
+FILES_${PN}-overlay-proxycache = "${md}/pcache-*.so.*"
PACKAGES += "${PN}-overlay-proxycache"
#
# LOCAL OPTION OVERRIDES
@@ -236,23 +207,6 @@ do_compile_prepend() {
)
}
-do_stage() {
- echo "staging libldap-${LDAP_VER}" >&2
- #
- autotools_stage_includes
- # Install the -${LDAP_VER} versions, but link foo.so to foo-x.y.so ONLY
- # if they do not exist!
- oe_libinstall -so -C libraries/libldap/.libs libldap-${LDAP_VER} ${STAGING_LIBDIR}
- test -e ${STAGING_LIBDIR}/libldap.so ||
- ln -s $(basename ${STAGING_LIBDIR}/libldap-${LDAP_VER}.so.*.*.*) ${STAGING_LIBDIR}/libldap.so
- oe_libinstall -so -C libraries/libldap_r/.libs libldap_r-${LDAP_VER} ${STAGING_LIBDIR}
- test -e ${STAGING_LIBDIR}/libldap_r.so ||
- ln -s $(basename ${STAGING_LIBDIR}/libldap_r-${LDAP_VER}.so.*.*.*) ${STAGING_LIBDIR}/libldap_r.so
- oe_libinstall -so -C libraries/liblber/.libs liblber-${LDAP_VER} ${STAGING_LIBDIR}
- test -e ${STAGING_LIBDIR}/liblber.so ||
- ln -s $(basename ${STAGING_LIBDIR}/liblber-${LDAP_VER}.so.*.*.*) ${STAGING_LIBDIR}/liblber.so
-}
-
LEAD_SONAME = "libldap-${LDAP_VER}.so.*"
# The executables go in a separate package. This allows the
@@ -267,7 +221,8 @@ FILES_${PN}-slapd = "${sysconfdir}/init.d ${libexecdir}/slapd ${sbindir} ${local
${sysconfdir}/openldap/DB_CONFIG.example"
FILES_${PN}-slurpd = "${libexecdir}/slurpd ${localstatedir}/openldap-slurp ${localstatedir}/run"
FILES_${PN}-bin = "${bindir}"
-FILES_${PN}-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la ${libdir}/*.a ${libexecdir}/openldap/*.a"
+FILES_${PN}-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la ${libdir}/*.a ${libexecdir}/openldap/*.a ${libexecdir}/openldap/*.la ${libexecdir}/openldap/*.so"
+FILES_${PN}-dbg += "${libexecdir}/openldap/.debug"
do_install_append() {
install -d ${D}${sysconfdir}/init.d
@@ -290,3 +245,23 @@ pkg_prerm_${PN}-slapd () {
fi
update-rc.d $D openldap remove
}
+
+PACKAGES_DYNAMIC = "openldap-backends openldap-backend-*"
+
+python populate_packages_prepend () {
+ backend_dir = bb.data.expand('${libexecdir}/openldap', d)
+ do_split_packages(d, backend_dir, 'back_([a-z]*)\-.*\.so\..*$', 'openldap-backend-%s', 'OpenLDAP %s backend', extra_depends='', allow_links=True)
+
+ metapkg = "openldap-backends"
+ bb.data.setVar('ALLOW_EMPTY_' + metapkg, "1", d)
+ bb.data.setVar('FILES_' + metapkg, "", d)
+ metapkg_rdepends = []
+ packages = bb.data.getVar('PACKAGES', d, 1).split()
+ for pkg in packages[1:]:
+ if pkg.count("openldap-backend-") and not pkg in metapkg_rdepends and not pkg.count("-dev") and not pkg.count("-dbg") and not pkg.count("static") and not pkg.count("locale"):
+ metapkg_rdepends.append(pkg)
+ bb.data.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends), d)
+ bb.data.setVar('DESCRIPTION_' + metapkg, 'OpenLDAP backends meta package', d)
+ packages.append(metapkg)
+ bb.data.setVar('PACKAGES', ' '.join(packages), d)
+}