aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Stakenvicius <axs@gentoo.org>2017-03-14 09:49:48 -0400
committerIan Stakenvicius <axs@gentoo.org>2017-03-14 09:49:58 -0400
commite481f4aac24f197d01536262418ceedd2b9a5b4e (patch)
treea7c8de27a919216087e980f99ec86581e0609416 /mail-client
parentwww-client/firefox: update dependencies (diff)
downloadmozilla-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.ebuild18
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() {