summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorJakub Jirutka <jakub@jirutka.cz>2021-10-30 01:43:00 +0200
committerJakub Jirutka <jakub@jirutka.cz>2021-11-03 00:35:51 +0100
commitd7cd9cf6d0fa57b81331f3bf54d940ea86d4e0e3 (patch)
tree15bc125d1efc60d97c4e1ef1279713dbaa3ab449 /main
parentb1c2774d6528f6c988ad8d3f6976157c4b6b6b57 (diff)
downloadaports-d7cd9cf6d0fa57b81331f3bf54d940ea86d4e0e3.zip
main/openldap: halt upgrade if removed HDB or BDB backend is used
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