diff options
author | Jakub Jirutka <jakub@jirutka.cz> | 2021-10-30 01:43:00 +0200 |
---|---|---|
committer | Jakub Jirutka <jakub@jirutka.cz> | 2021-11-03 00:35:51 +0100 |
commit | d7cd9cf6d0fa57b81331f3bf54d940ea86d4e0e3 (patch) | |
tree | 15bc125d1efc60d97c4e1ef1279713dbaa3ab449 | |
parent | b1c2774d6528f6c988ad8d3f6976157c4b6b6b57 (diff) | |
download | aports-d7cd9cf6d0fa57b81331f3bf54d940ea86d4e0e3.zip |
main/openldap: halt upgrade if removed HDB or BDB backend is used
-rw-r--r-- | main/openldap/APKBUILD | 7 | ||||
-rw-r--r-- | main/openldap/openldap.pre-upgrade | 24 |
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 |