diff --git a/bugzilla.changes b/bugzilla.changes index c1c9893..89dc2b1 100644 --- a/bugzilla.changes +++ b/bugzilla.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Jan 19 10:29:21 UTC 2016 - ecsos@opensuse.org + +- fix error "Undefined subroutine..." in whine.pl + https://bugzilla.mozilla.org/show_bug.cgi?id=1235395 + ------------------------------------------------------------------- Sun Jan 3 00:50:39 UTC 2016 - ecsos@opensuse.org diff --git a/bugzilla.spec b/bugzilla.spec index 11bb5b1..e40a64a 100644 --- a/bugzilla.spec +++ b/bugzilla.spec @@ -30,6 +30,7 @@ Source: http://ftp.mozilla.org/pub/mozilla.org/webtools/%{name}-%{versio Source2: http://downloads.sourceforge.net/project/bugzilla-de/5.0/5.0/%{name}-de-5.0-1.utf-8.tar.gz Source3: MPL-2.0.html Source4: %{name}.conf +Patch1: fix_whine_error.patch BuildRequires: apache BuildRequires: fdupes Requires: apache @@ -120,6 +121,7 @@ This package includes german language files for bugzilla %prep %setup -q +%patch1 -p1 %build diff --git a/fix_whine_error.patch b/fix_whine_error.patch new file mode 100644 index 0000000..bbc3eb3 --- /dev/null +++ b/fix_whine_error.patch @@ -0,0 +1,130 @@ +diff --git a/Bugzilla/Mailer.pm b/Bugzilla/Mailer.pm +index 7ae81299fde2aee4342a37b2401fd52a0b3aab0f..2d29dd8060bd6f4657b1b0bc6395456e700e0c35 100644 +--- a/Bugzilla/Mailer.pm ++++ b/Bugzilla/Mailer.pm +@@ -12,13 +12,13 @@ use strict; + use warnings; + + use parent qw(Exporter); +-@Bugzilla::Mailer::EXPORT = qw(MessageToMTA build_thread_marker); +- ++@Bugzilla::Mailer::EXPORT = qw(MessageToMTA build_thread_marker generate_email); + use Bugzilla::Constants; + use Bugzilla::Error; + use Bugzilla::Hook; + use Bugzilla::MIME; + use Bugzilla::Util; ++use Bugzilla::User; + + use Date::Format qw(time2str); + +@@ -161,6 +161,67 @@ sub send_staged_mail { + } + } + ++sub generate_email { ++ my ($vars, $templates) = @_; ++ my ($lang, $email_format, $msg_text, $msg_html, $msg_header); ++ state $use_utf8 = Bugzilla->params->{'utf8'}; ++ ++ if ($vars->{to_user}) { ++ $lang = $vars->{to_user}->setting('lang'); ++ $email_format = $vars->{to_user}->setting('email_format'); ++ } else { ++ # If there are users in the CC list who don't have an account, ++ # use the default language for email notifications. ++ $lang = Bugzilla::User->new()->setting('lang'); ++ # However we cannot fall back to the default email_format, since ++ # it may be HTML, and many of the includes used in the HTML ++ # template require a valid user object. Instead we fall back to ++ # the plaintext template. ++ $email_format = 'text_only'; ++ } ++ ++ my $template = Bugzilla->template_inner($lang); ++ ++ $template->process($templates->{header}, $vars, \$msg_header) ++ || ThrowTemplateError($template->error()); ++ $template->process($templates->{text}, $vars, \$msg_text) ++ || ThrowTemplateError($template->error()); ++ ++ my @parts = ( ++ Bugzilla::MIME->create( ++ attributes => { ++ content_type => 'text/plain', ++ charset => $use_utf8 ? 'UTF-8' : 'iso-8859-1', ++ encoding => 'quoted-printable', ++ }, ++ body_str => $msg_text, ++ ) ++ ); ++ if ($templates->{html} && $email_format eq 'html') { ++ $template->process($templates->{html}, $vars, \$msg_html) ++ || ThrowTemplateError($template->error()); ++ push @parts, Bugzilla::MIME->create( ++ attributes => { ++ content_type => 'text/html', ++ charset => $use_utf8 ? 'UTF-8' : 'iso-8859-1', ++ encoding => 'quoted-printable', ++ }, ++ body_str => $msg_html, ++ ); ++ } ++ ++ my $email = Bugzilla::MIME->new($msg_header); ++ if (scalar(@parts) == 1) { ++ $email->content_type_set($parts[0]->content_type); ++ } else { ++ $email->content_type_set('multipart/alternative'); ++ # Some mail clients need same encoding for each part, even empty ones. ++ $email->charset_set('UTF-8') if $use_utf8; ++ } ++ $email->parts_set(\@parts); ++ return $email; ++} ++ + 1; + + __END__ +@@ -173,6 +234,10 @@ Bugzilla::Mailer - Provides methods for sending email + + =over + ++=item C ++ ++Generates a multi-part email message, using the supplied list of templates. ++ + =item C + + Sends the passed message to the mail transfer agent. +diff --git a/Bugzilla/Product.pm b/Bugzilla/Product.pm +index 30ebc7c6cd564080589ad04db4aedcb59d63290a..0c0cb458d554b2def12164e35d848d8a4c9583de 100644 +--- a/Bugzilla/Product.pm ++++ b/Bugzilla/Product.pm +@@ -22,7 +22,6 @@ use Bugzilla::Milestone; + use Bugzilla::Field; + use Bugzilla::Status; + use Bugzilla::Install::Requirements; +-use Bugzilla::Mailer; + use Bugzilla::Series; + use Bugzilla::Hook; + use Bugzilla::FlagType; +diff --git a/whine.pl b/whine.pl +index 39c9aeed2e766824a900459c4364c6831ba82744..c81ca2022db3d8e6b32dfe1464569b17f6e75374 100755 +--- a/whine.pl ++++ b/whine.pl +@@ -13,14 +13,13 @@ + use 5.10.1; + use strict; + use warnings; +- + use lib qw(. lib); + + use Bugzilla; + use Bugzilla::Constants; + use Bugzilla::Search; + use Bugzilla::User; +-use Bugzilla::Mailer; ++use Bugzilla::Mailer qw(MessageToMTA generate_email); + use Bugzilla::Util; + use Bugzilla::Group;