diff options
author | Ian Stakenvicius <axs@gentoo.org> | 2017-03-14 09:49:48 -0400 |
---|---|---|
committer | Ian Stakenvicius <axs@gentoo.org> | 2017-03-14 09:49:58 -0400 |
commit | e481f4aac24f197d01536262418ceedd2b9a5b4e (patch) | |
tree | a7c8de27a919216087e980f99ec86581e0609416 /mail-client | |
parent | www-client/firefox: update dependencies (diff) | |
download | mozilla-e481f4aac24f197d01536262418ceedd2b9a5b4e.tar.gz mozilla-e481f4aac24f197d01536262418ceedd2b9a5b4e.tar.bz2 mozilla-e481f4aac24f197d01536262418ceedd2b9a5b4e.zip |
mail-client/thunderbird: fix enigmail symlink installation
Limitations in package managers prevent a symbolic link from replacing a directory
at merge time. This patch addresses that issue by removing the directory belonging
to the currently installed thunderbird in pkg_preinst(). It's been tested against
a direct upgrade form 45.7.0 as well as a reinstall, and seems to do the 'right thing'
in all cases.
Package-Manager: portage-2.3.3
Diffstat (limited to 'mail-client')
-rw-r--r-- | mail-client/thunderbird/thunderbird-45.8.0.ebuild | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/mail-client/thunderbird/thunderbird-45.8.0.ebuild b/mail-client/thunderbird/thunderbird-45.8.0.ebuild index aefbb24..adf0d1b 100644 --- a/mail-client/thunderbird/thunderbird-45.8.0.ebuild +++ b/mail-client/thunderbird/thunderbird-45.8.0.ebuild @@ -303,9 +303,9 @@ src_install() { fi if use crypt ; then - emid=$(sed -n '/<em:id>/!d; s/.*\({.*}\).*/\1/; p; q' /usr/share/enigmail/install.rdf) + emid=$(sed -n '/<em:id>/!d; s/.*\({.*}\).*/\1/; p; q' "${EPREFIX}"/usr/share/enigmail/install.rdf) if [[ -n ${emid} ]]; then - dosym /usr/share/enigmail ${MOZILLA_FIVE_HOME}/extensions/${emid} + dosym "${EPREFIX}"/usr/share/enigmail ${MOZILLA_FIVE_HOME}/extensions/${emid} else die "<EM:ID> tag for installed enigmail could not be found!" fi @@ -326,6 +326,20 @@ src_install() { pkg_preinst() { gnome2_icon_savelist + + # Because PM's dont seem to properly merge a symlink replacing a directory + if use crypt ; then + local emid=$(sed -n '/<em:id>/!d; s/.*\({.*}\).*/\1/; p; q' "${EPREFIX}"/usr/share/enigmail/install.rdf) + if [[ -d "${EPREFIX}${MOZILLA_FIVE_HOME}/extensions/${emid}" ]] ; then + rm -Rf "${EPREFIX}${MOZILLA_FIVE_HOME}/extensions/${emid}" || ( + eerror "Could not remove enigmail directory from previous installation," + eerror "You must remove this by hand and rename the symbolic link yourself:" + eerror + eerror "\t cd ${EPREFIX}${MOZILLA_FIVE_HOME}/extensions" + eerror "\t rm -Rf ${emid}" + eerror "\t mv ${emid}.backup* ${emid}" ) + fi + fi } pkg_postinst() { |