backport patch to prevent email address encoding

This commit is contained in:
Emmanuel Seyman 2016-05-01 18:14:04 +02:00
commit 5bfd8aefa9
2 changed files with 57 additions and 1 deletions

View file

@ -0,0 +1,50 @@
diff --git a/Bugzilla/MIME.pm b/Bugzilla/MIME.pm
index 7b5843a..8c6c141 100644
--- a/Bugzilla/MIME.pm
+++ b/Bugzilla/MIME.pm
@@ -13,9 +13,6 @@ use warnings;
use parent qw(Email::MIME);
-use Encode qw(encode);
-use Encode::MIME::Header;
-
sub new {
my ($class, $msg) = @_;
state $use_utf8 = Bugzilla->params->{'utf8'};
@@ -79,20 +76,12 @@ sub as_string {
# MIME-Version must be set otherwise some mailsystems ignore the charset
$self->header_set('MIME-Version', '1.0') if !$self->header('MIME-Version');
- # Encode the headers correctly in quoted-printable
+ # Encode the headers correctly.
foreach my $header ($self->header_names) {
my @values = $self->header($header);
- # We don't recode headers that happen multiple times.
- next if scalar(@values) > 1;
- if (my $value = $values[0]) {
- utf8::decode($value) unless $use_utf8 && utf8::is_utf8($value);
-
- # avoid excessive line wrapping done by Encode.
- local $Encode::Encoding{'MIME-Q'}->{'bpl'} = 998;
+ map { utf8::decode($_) if defined($_) && !utf8::is_utf8($_) } @values;
- my $encoded = encode('MIME-Q', $value);
- $self->header_set($header, $encoded);
- }
+ $self->header_str_set($header, @values);
}
# Ensure the character-set and encoding is set correctly on single part
diff --git a/attachment.cgi b/attachment.cgi
index 5db8f59..40b0c9d 100755
--- a/attachment.cgi
+++ b/attachment.cgi
@@ -26,6 +26,7 @@ use Bugzilla::Attachment::PatchReader;
use Bugzilla::Token;
use Encode qw(encode find_encoding);
+use Encode::MIME::Header; # Required to alter Encode::Encoding{'MIME-Q'}.
# For most scripts we don't make $cgi and $template global variables. But
# when preparing Bugzilla for mod_perl, this script used these

View file

@ -6,7 +6,7 @@ URL: http://www.bugzilla.org/
Name: bugzilla
Version: 4.4.11
Group: Applications/Publishing
Release: 1%{?dist}
Release: 2%{?dist}
License: MPLv1.1
Source0: http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-%{version}.tar.gz
Source1: bugzilla-httpd-conf
@ -14,6 +14,8 @@ Source2: README.fedora.bugzilla
Source3: bugzilla.cron-daily
Patch0: bugzilla-rw-paths.patch
Patch1: bugzilla-yum.patch
# https://bugzilla.mozilla.org/show_bug.cgi?id=1246228
Patch2: bugzilla-email-encode.patch
BuildArch: noarch
Requires: webserver, patchutils, perl(SOAP::Lite), which
@ -104,6 +106,7 @@ Contributed scripts and functions for Bugzilla
%setup -q -n %{name}-%{version}
%patch0 -p1
%patch1 -p1
%patch2 -p1
rm -f Bugzilla/Constants.pm.orig
rm -f Bugzilla/Install/Requirements.pm.orig
# Remove bundled libs
@ -229,6 +232,9 @@ popd > /dev/null)
%{bzinstallprefix}/bugzilla/contrib/Bugzilla.pm
%changelog
* Sun May 01 2016 Emmanuel Seyman <emmanuel@seyman.fr> - 4.4.11-2
- backport patch to prevent email address encoding
* Wed Dec 23 2015 Emmanuel Seyman <emmanuel@seyman.fr> - 4.4.11-1
- Update to 4.4.11