summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJory Pratt <anarchy@gentoo.org>2019-10-31 09:46:07 -0500
committerJory Pratt <anarchy@gentoo.org>2019-10-31 09:46:07 -0500
commit477f3f13b9a398476d3deacd835d3dd2f41b3540 (patch)
treeb37c05e11d7a9e18cb76b86343340613c552dc97 /x11-plugins
parentmedia-plugins/kodi-visualization-shadertoy: 1.2.3 version bump (diff)
downloadgentoo-477f3f13b9a398476d3deacd835d3dd2f41b3540.tar.gz
gentoo-477f3f13b9a398476d3deacd835d3dd2f41b3540.tar.bz2
gentoo-477f3f13b9a398476d3deacd835d3dd2f41b3540.zip
x11-plugins/enigmail: Fix incorrect newline treat of PGP/MIME
Closes: https://bugs.gentoo.org/698926 Package-Manager: Portage-2.3.78, Repoman-2.3.17 Signed-off-by: Jory Pratt <anarchy@gentoo.org>
Diffstat (limited to 'x11-plugins')
-rw-r--r--x11-plugins/enigmail/enigmail-2.1.2-r1.ebuild85
-rw-r--r--x11-plugins/enigmail/files/enigmail-2.1.2-mimeverify.patch44
2 files changed, 129 insertions, 0 deletions
diff --git a/x11-plugins/enigmail/enigmail-2.1.2-r1.ebuild b/x11-plugins/enigmail/enigmail-2.1.2-r1.ebuild
new file mode 100644
index 000000000000..596a08529286
--- /dev/null
+++ b/x11-plugins/enigmail/enigmail-2.1.2-r1.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-any-r1
+
+DESCRIPTION="Mozilla extension to provide GPG support in mail clients"
+HOMEPAGE="https://www.enigmail.net/"
+
+SLOT="0"
+LICENSE="MPL-2.0 GPL-3"
+IUSE=""
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.code.sf.net/p/enigmail/source"
+ S="${WORKDIR}/${P}"
+else
+ if [[ ${PV} = *_beta* ]] ; then
+ SRC_URI="https://www.enigmail.net/download/beta/${P/_/-}.tar.gz"
+ else
+ SRC_URI="https://www.enigmail.net/download/source/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+ fi
+ S="${WORKDIR}/${PN}"
+fi
+
+RDEPEND="
+ ( >=app-crypt/gnupg-2.0
+ || (
+ app-crypt/pinentry[gtk(-)]
+ app-crypt/pinentry[qt5(-)]
+ )
+ )
+ !<mail-client/thunderbird-52.5.0
+"
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ app-arch/zip
+ dev-lang/perl
+ "
+
+PATCHES=( "${FILESDIR}/enigmail-no_pEp_auto_download.patch"
+ "${FILESDIR}/${PN}-2.1.2-mimeverify.patch" )
+
+src_compile() {
+ # Required or parallel make fails
+ emake -C stdlib createlib
+
+ emake ipc public ui package lang stdlib
+ emake xpi
+
+}
+
+src_install() {
+ local emid=$(sed -n '/"id":/!d; s/.*\({.*}\).*/\1/; p; q' build/dist/manifest.json)
+ [[ -n ${emid} ]] || die "Could not scrape EM:ID from install.rdf"
+
+ mv build/enigmail*.xpi build/"${emid}.xpi" || die 'Could not rename XPI to match EM:ID'
+
+ # thunderbird
+ insinto "/usr/share/mozilla/extensions/{3550f703-e582-4d05-9a08-453d09bdfdc6}"
+ doins build/"${emid}.xpi"
+
+ # seamonkey
+ insinto "/usr/share/mozilla/extensions/{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}"
+ doins build/"${emid}.xpi"
+}
+
+pkg_postinst() {
+ local peimpl=$(eselect --brief --colour=no pinentry show)
+ case "${peimpl}" in
+ *gtk*|*qt*) ;;
+ *) ewarn "The pinentry front-end currently selected is not one supported by thunderbird."
+ ewarn "You may be prompted for your password in an inaccessible shell!!"
+ ewarn "Please use 'eselect pinentry' to select either the gtk or qt front-end"
+ ;;
+ esac
+ if [[ -n ${REPLACING_VERSIONS} ]]; then
+ elog
+ elog "Please restart thunderbird and/or seamonkey in order for them to use"
+ elog "the newly installed version of enigmail."
+ fi
+}
diff --git a/x11-plugins/enigmail/files/enigmail-2.1.2-mimeverify.patch b/x11-plugins/enigmail/files/enigmail-2.1.2-mimeverify.patch
new file mode 100644
index 000000000000..8d3830c14586
--- /dev/null
+++ b/x11-plugins/enigmail/files/enigmail-2.1.2-mimeverify.patch
@@ -0,0 +1,44 @@
+From 745d8a0e6929e61a66b0e6c1474175d4b0a84cd6 Mon Sep 17 00:00:00 2001
+From: Jonas Witschel <diabonas@gmx.de>
+Date: Sun, 29 Sep 2019 22:07:52 +0200
+Subject: [PATCH] mimeVerify: fix incorrect newline treatment in PGP/MIME
+ messages
+
+RFC 3156 specifies:
+
+Upon receipt of a signed message, an application MUST:
+
+(1) Convert line endings to the canonical <CR><LF> sequence before
+ the signature can be verified. This is necessary since the
+ local MTA may have converted to a local end of line convention.
+
+The code in this commit was originally added in
+ab1b9a2d1c023c5bdf9c058681b93da99ee95465 to fix SourceForge bugs #209
+and #4, but was later accidentally removed during refactoring. This
+commit restores the previous state so that signed messages created by
+MUAs such as alot or NeoMutt can be verified successfully.
+
+Fixes: c36bef32a70ee9f2eac1b839cb8644e2fddb32ca
+Closes: #1020 (SourceForge)
+---
+ package/mimeVerify.jsm | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/package/mimeVerify.jsm b/package/mimeVerify.jsm
+index 7cc1b228..a6e01d86 100644
+--- a/package/mimeVerify.jsm
++++ b/package/mimeVerify.jsm
+@@ -497,6 +497,10 @@ MimeVerify.prototype = {
+ mimeSignatureFile: sigFileName
+ };
+ const cApi = EnigmailCryptoAPI();
++
++ // ensure all lines end with CRLF as specified in RFC 3156, section 5
++ this.signedData = this.signedData.replace(/\r\n/g, "\n").replace(/\n/g, "\r\n");
++
+ this.returnStatus = cApi.sync(cApi.verifyMime(this.signedData, options));
+ this.exitCode = this.returnStatus.exitCode;
+
+--
+2.22.0
+