summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
Diffstat (limited to 'main')
-rw-r--r--main/openldap/APKBUILD7
-rw-r--r--main/openldap/openldap.pre-upgrade24
2 files changed, 30 insertions, 1 deletions
diff --git a/main/openldap/APKBUILD b/main/openldap/APKBUILD
index 661fa5e4e67..a6166c38278 100644
--- a/main/openldap/APKBUILD
+++ b/main/openldap/APKBUILD
@@ -68,7 +68,12 @@ subpackages="
$pkgname-overlay-all:_overlay_all:noarch
$pkgname-openrc
"
-install="$pkgname.pre-install $pkgname.post-install $pkgname.post-upgrade"
+install="
+ $pkgname.pre-install
+ $pkgname.post-install
+ $pkgname.pre-upgrade
+ $pkgname.post-upgrade
+ "
source="https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-$pkgver.tgz
openldap-2.4-ppolicy.patch
openldap-2.4.11-libldap_r.patch
diff --git a/main/openldap/openldap.pre-upgrade b/main/openldap/openldap.pre-upgrade
new file mode 100644
index 00000000000..6ff21696c7b
--- /dev/null
+++ b/main/openldap/openldap.pre-upgrade
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+old_ver="$2"
+datadir='/var/lib/openldap/openldap-data'
+
+if [ "$(apk version -t "$old_ver" '2.6.0-r0')" = '<' ]; then
+ for back in bdb hdb; do
+ if apk info -eq openldap-back-$back; then
+ if find "$datadir" -iname "*.$back" 2>/dev/null | grep -q .; then
+ cat >&2 <<-EOF
+ *!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*
+ *! Found *.$back files in $datadir!
+ *! OpenLDAP 2.6+ doesn't provide deprecated BDB and HDB backends anymore.
+ *! You have to migrate your database to MDB backend before upgrading
+ *! openldap!
+ *!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*
+ EOF
+ exit 1
+ fi
+ fi
+ done
+fi
+
+exit 0