commit:     87e27f70f0f39184b56b15971dce58e7acdd2bd6
Author:     Florian Schmaus <flow <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 12 18:54:55 2021 +0000
Commit:     Florian Schmaus <flow <AT> gentoo <DOT> org>
CommitDate: Sun Dec 12 18:55:31 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=87e27f70

net-im/ejabberd: also migrate /var/spool/jabber to /var/lib/ejabberd

Signed-off-by: Florian Schmaus <flow <AT> gentoo.org>

 net-im/ejabberd/ejabberd-21.04-r2.ebuild | 41 +++++++++++++++++++++-----------
 net-im/ejabberd/ejabberd-21.12.ebuild    | 41 +++++++++++++++++++++-----------
 2 files changed, 54 insertions(+), 28 deletions(-)

diff --git a/net-im/ejabberd/ejabberd-21.04-r2.ebuild 
b/net-im/ejabberd/ejabberd-21.04-r2.ebuild
index 9a2546e60e03..63128525a5ca 100644
--- a/net-im/ejabberd/ejabberd-21.04-r2.ebuild
+++ b/net-im/ejabberd/ejabberd-21.04-r2.ebuild
@@ -194,7 +194,7 @@ pkg_preinst() {
 }
 
 pkg_postinst() {
-       local migrate_to_etc_ejabberd=false
+       local migrate_to_ejabberd_user=false
 
        if [[ ! ${REPLACING_VERSIONS} ]]; then
                echo
@@ -204,7 +204,7 @@ pkg_postinst() {
        else
                for v in ${REPLACING_VERSIONS}; do
                        if ver_test "${v}" -lt 21.04-r1; then
-                               migrate_to_etc_ejabberd=true
+                               migrate_to_ejabberd_user=true
                                break
                        fi
                done
@@ -216,17 +216,30 @@ pkg_postinst() {
        # under the, shared via net-im/jabber-base, 'jabber' use, but under
        # its own user. This increase isolation and hence robustness and
        # security.
-       if $migrate_to_etc_ejabberd; then
-               cp -r "${EROOT}"/etc/jabber/. "${EROOT}"/etc/ejabberd || die
-               if [[ -f "${EROOT}"/etc/ejabberd/.keep_net-im_jabber-base-0 ]]; 
then
-                       rm "${EROOT}"/etc/ejabberd/.keep_net-im_jabber-base-0 
|| die
-               fi
-               if ! use prefix; then
-                       chown --recursive ejabberd:ejabberd 
"${EROOT}"/etc/ejabberd || die
-               fi
-               elog "Newer versions of the ejabberd Gentoo package use 
/etc/ejabberd"
-               elog "(just as upstream) and *not* /etc/ejabber."
-               elog "The files from /etc/jabber where copied to /etc/ejabberd."
-               elog "Please check your configuration and delete the file in 
/etc/jabber."
+       if $migrate_to_ejabberd_user; then
+               local -A dirs_to_migrate=(
+                       [/etc/jabber]=/etc/ejabberd
+                       [/var/spool/jabber]=/var/lib/ejabberd
+               )
+
+               for src_dir in "${!dirs_to_migrate[@]}"; do
+                       local eroot_src_dir="${EROOT}${src_dir}"
+                       local 
eroot_dst_dir="${EROOT}${dirs_to_migrate[${src_dir}]}"
+
+                       cp -r "${eroot_src_dir}"/. "${eroot_dst_dir}" || die 
"Could not copy ${eroot_src_dir} to ${eroot_dst_dir}"
+
+                       if [[ -f "${eroot_dst_dir}"/.keep_net-im_jabber-base-0 
]]; then
+                               rm 
"${eroot_dst_dir}"/.keep_net-im_jabber-base-0 || die
+                       fi
+                       if ! use prefix; then
+                               chown --recursive ejabberd:ejabberd 
"${eroot_dst_dir}" || die
+                       fi
+               done
+
+               ewarn "Newer versions of the ejabberd Gentoo package use 
/etc/ejabberd"
+               ewarn "(just as upstream) and *not* /etc/ejabber."
+               ewarn "The files from /etc/jabber where copied to 
/etc/ejabberd."
+               ewarn "Also ejabberd's spool directory became /var/lib/ejabberd 
(was /var/spool/jabber)."
+               ewarn "Please check your configuration."
        fi
 }

diff --git a/net-im/ejabberd/ejabberd-21.12.ebuild 
b/net-im/ejabberd/ejabberd-21.12.ebuild
index e4ed2bfaac5c..3f4d03ad5e89 100644
--- a/net-im/ejabberd/ejabberd-21.12.ebuild
+++ b/net-im/ejabberd/ejabberd-21.12.ebuild
@@ -180,7 +180,7 @@ pkg_preinst() {
 }
 
 pkg_postinst() {
-       local migrate_to_etc_ejabberd=false
+       local migrate_to_ejabberd_user=false
 
        if [[ ! ${REPLACING_VERSIONS} ]]; then
                echo
@@ -190,7 +190,7 @@ pkg_postinst() {
        else
                for v in ${REPLACING_VERSIONS}; do
                        if ver_test "${v}" -lt 21.04-r1; then
-                               migrate_to_etc_ejabberd=true
+                               migrate_to_ejabberd_user=true
                                break
                        fi
                done
@@ -202,17 +202,30 @@ pkg_postinst() {
        # under the, shared via net-im/jabber-base, 'jabber' use, but under
        # its own user. This increase isolation and hence robustness and
        # security.
-       if $migrate_to_etc_ejabberd; then
-               cp -r "${EROOT}"/etc/jabber/. "${EROOT}"/etc/ejabberd || die
-               if [[ -f "${EROOT}"/etc/ejabberd/.keep_net-im_jabber-base-0 ]]; 
then
-                       rm "${EROOT}"/etc/ejabberd/.keep_net-im_jabber-base-0 
|| die
-               fi
-               if ! use prefix; then
-                       chown --recursive ejabberd:ejabberd 
"${EROOT}"/etc/ejabberd || die
-               fi
-               elog "Newer versions of the ejabberd Gentoo package use 
/etc/ejabberd"
-               elog "(just as upstream) and *not* /etc/ejabber."
-               elog "The files from /etc/jabber where copied to /etc/ejabberd."
-               elog "Please check your configuration and delete the file in 
/etc/jabber."
+       if $migrate_to_ejabberd_user; then
+               local -A dirs_to_migrate=(
+                       [/etc/jabber]=/etc/ejabberd
+                       [/var/spool/jabber]=/var/lib/ejabberd
+               )
+
+               for src_dir in "${!dirs_to_migrate[@]}"; do
+                       local eroot_src_dir="${EROOT}${src_dir}"
+                       local 
eroot_dst_dir="${EROOT}${dirs_to_migrate[${src_dir}]}"
+
+                       cp -r "${eroot_src_dir}"/. "${eroot_dst_dir}" || die 
"Could not copy ${eroot_src_dir} to ${eroot_dst_dir}"
+
+                       if [[ -f "${eroot_dst_dir}"/.keep_net-im_jabber-base-0 
]]; then
+                               rm 
"${eroot_dst_dir}"/.keep_net-im_jabber-base-0 || die
+                       fi
+                       if ! use prefix; then
+                               chown --recursive ejabberd:ejabberd 
"${eroot_dst_dir}" || die
+                       fi
+               done
+
+               ewarn "Newer versions of the ejabberd Gentoo package use 
/etc/ejabberd"
+               ewarn "(just as upstream) and *not* /etc/ejabber."
+               ewarn "The files from /etc/jabber where copied to 
/etc/ejabberd."
+               ewarn "Also ejabberd's spool directory became /var/lib/ejabberd 
(was /var/spool/jabber)."
+               ewarn "Please check your configuration."
        fi
 }

Reply via email to