diff --git a/bugzilla-email-encode.patch b/bugzilla-email-encode.patch new file mode 100644 index 0000000..70c2953 --- /dev/null +++ b/bugzilla-email-encode.patch @@ -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 diff --git a/bugzilla.spec b/bugzilla.spec index 0ad0156..3f8c32d 100644 --- a/bugzilla.spec +++ b/bugzilla.spec @@ -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 - 4.4.11-2 +- backport patch to prevent email address encoding + * Wed Dec 23 2015 Emmanuel Seyman - 4.4.11-1 - Update to 4.4.11