diff --git a/.gitignore b/.gitignore index 771d696..c0922ac 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,4 @@ bugzilla-3.6.1.tar.gz /bugzilla-4.4.11.tar.gz /bugzilla-5.0.2.tar.gz /bugzilla-5.0.3.tar.gz +/bugzilla-5.0.4.tar.gz diff --git a/bugzilla-1301887-File-Slurp-Warnings.patch b/bugzilla-1301887-File-Slurp-Warnings.patch new file mode 100644 index 0000000..e983cc3 --- /dev/null +++ b/bugzilla-1301887-File-Slurp-Warnings.patch @@ -0,0 +1,256 @@ +diff -up ./Bugzilla/Config.pm.orig ./Bugzilla/Config.pm +--- ./Bugzilla/Config.pm.orig 2017-03-05 20:38:55.540137017 +0100 ++++ ./Bugzilla/Config.pm 2017-03-05 20:40:18.954614192 +0100 +@@ -16,10 +16,9 @@ use autodie qw(:default); + + use Bugzilla::Constants; + use Bugzilla::Hook; +-use Bugzilla::Util qw(trick_taint); ++use Bugzilla::Util qw(trick_taint read_text write_text); + + use JSON::XS; +-use File::Slurp; + use File::Temp; + use File::Basename; + +@@ -284,7 +283,7 @@ sub write_params { + my $param_file = bz_locations()->{'datadir'} . '/params.json'; + + my $json_data = JSON::XS->new->canonical->pretty->encode($param_data); +- write_file($param_file, { binmode => ':utf8', atomic => 1 }, \$json_data); ++ write_text($param_file, $json_data); + + # It's not common to edit parameters and loading + # Bugzilla::Install::Filesystem is slow. +@@ -301,8 +300,8 @@ sub read_param_file { + my $file = bz_locations()->{'datadir'} . '/params.json'; + + if (-e $file) { +- my $data; +- read_file($file, binmode => ':utf8', buf_ref => \$data); ++ my $data = read_text($file); ++ trick_taint($data); + + # If params.json has been manually edited and e.g. some quotes are + # missing, we don't want JSON::XS to leak the content of the file +diff -up ./Bugzilla/Install/Filesystem.pm.orig ./Bugzilla/Install/Filesystem.pm +--- ./Bugzilla/Install/Filesystem.pm.orig 2017-03-05 20:40:25.563572768 +0100 ++++ ./Bugzilla/Install/Filesystem.pm 2017-03-05 20:40:53.516397565 +0100 +@@ -31,7 +31,6 @@ use File::Path; + use File::Basename; + use File::Copy qw(move); + use File::Spec; +-use File::Slurp; + use IO::File; + use POSIX (); + +@@ -536,7 +535,7 @@ sub update_filesystem { + + # Remove old assets htaccess file to force recreation with correct values. + if (-e "$assetsdir/.htaccess") { +- if (read_file("$assetsdir/.htaccess") =~ //) { ++ if (read_text("$assetsdir/.htaccess") =~ //) { + unlink("$assetsdir/.htaccess"); + } + } +diff -up ./Bugzilla/Install/Requirements.pm.orig ./Bugzilla/Install/Requirements.pm +--- ./Bugzilla/Install/Requirements.pm.orig 2017-03-05 20:41:00.420354292 +0100 ++++ ./Bugzilla/Install/Requirements.pm 2017-03-05 20:41:24.044206223 +0100 +@@ -156,11 +156,6 @@ sub REQUIRED_MODULES { + version => '1.0.1', + }, + { +- package => 'File-Slurp', +- module => 'File::Slurp', +- version => '9999.13', +- }, +- { + package => 'JSON-XS', + module => 'JSON::XS', + # 2.0 is the first version that will work with JSON::RPC. +diff -up ./Bugzilla/JobQueue.pm.orig ./Bugzilla/JobQueue.pm +--- ./Bugzilla/JobQueue.pm.orig 2017-03-05 20:41:33.460147206 +0100 ++++ ./Bugzilla/JobQueue.pm 2017-03-05 20:42:40.659726012 +0100 +@@ -14,8 +14,8 @@ use warnings; + use Bugzilla::Constants; + use Bugzilla::Error; + use Bugzilla::Install::Util qw(install_string); ++use Bugzilla::Util qw(read_text); + use File::Basename; +-use File::Slurp; + use base qw(TheSchwartz); + use fields qw(_worker_pidfile); + +@@ -124,7 +124,7 @@ sub subprocess_worker { + # And poll the PID to detect when the working has finished. + # We do this instead of system() to allow for the INT signal to + # interrup us and trigger kill_worker(). +- my $pid = read_file($self->{_worker_pidfile}, err_mode => 'quiet'); ++ my $pid = read_text($self->{_worker_pidfile}, err_mode => 'quiet'); + if ($pid) { + sleep(3) while(kill(0, $pid)); + } +@@ -139,7 +139,7 @@ sub subprocess_worker { + sub kill_worker { + my $self = Bugzilla->job_queue(); + if ($self->{_worker_pidfile} && -e $self->{_worker_pidfile}) { +- my $worker_pid = read_file($self->{_worker_pidfile}); ++ my $worker_pid = read_text($self->{_worker_pidfile}); + if ($worker_pid && kill(0, $worker_pid)) { + $self->debug("Stopping worker process"); + system "$0 -f -p '" . $self->{_worker_pidfile} . "' stop"; +diff -up ./Bugzilla/Template.pm.orig ./Bugzilla/Template.pm +--- ./Bugzilla/Template.pm.orig 2017-03-05 20:42:47.460683385 +0100 ++++ ./Bugzilla/Template.pm 2017-03-05 20:46:35.942251308 +0100 +@@ -32,7 +32,6 @@ use Digest::MD5 qw(md5_hex); + use File::Basename qw(basename dirname); + use File::Find; + use File::Path qw(rmtree mkpath); +-use File::Slurp; + use File::Spec; + use IO::Dir; + use List::MoreUtils qw(firstidx); +@@ -502,7 +501,7 @@ sub _concatenate_css { + next unless -e "$cgi_path/$files{$source}"; + my $file = $skins_path . '/' . md5_hex($source) . '.css'; + if (!-e $file) { +- my $content = read_file("$cgi_path/$files{$source}"); ++ my $content = read_text("$cgi_path/$files{$source}"); + + # minify + $content =~ s{/\*.*?\*/}{}sg; # comments +@@ -512,7 +511,7 @@ sub _concatenate_css { + # rewrite urls + $content =~ s{url\(([^\)]+)\)}{_css_url_rewrite($source, $1)}eig; + +- write_file($file, "/* $files{$source} */\n" . $content . "\n"); ++ write_text($file, "/* $files{$source} */\n" . $content . "\n"); + } + push @minified, $file; + } +@@ -522,9 +521,9 @@ sub _concatenate_css { + if (!-e $file) { + my $content = ''; + foreach my $source (@minified) { +- $content .= read_file($source); ++ $content .= read_text($source); + } +- write_file($file, $content); ++ write_text($file, $content); + } + + $file =~ s/^\Q$cgi_path\E\///o; +@@ -563,7 +562,7 @@ sub _concatenate_js { + next unless -e "$cgi_path/$files{$source}"; + my $file = $skins_path . '/' . md5_hex($source) . '.js'; + if (!-e $file) { +- my $content = read_file("$cgi_path/$files{$source}"); ++ my $content = read_text("$cgi_path/$files{$source}"); + + # minimal minification + $content =~ s#/\*.*?\*/##sg; # block comments +@@ -572,7 +571,7 @@ sub _concatenate_js { + $content =~ s#\n{2,}#\n#g; # blank lines + $content =~ s#(^\s+|\s+$)##g; # whitespace at the start/end of file + +- write_file($file, ";/* $files{$source} */\n" . $content . "\n"); ++ write_text($file, ";/* $files{$source} */\n" . $content . "\n"); + } + push @minified, $file; + } +@@ -582,9 +581,9 @@ sub _concatenate_js { + if (!-e $file) { + my $content = ''; + foreach my $source (@minified) { +- $content .= read_file($source); ++ $content .= read_text($source); + } +- write_file($file, $content); ++ write_text($file, $content); + } + + $file =~ s/^\Q$cgi_path\E\///o; +diff -up ./Bugzilla/Util.pm.orig ./Bugzilla/Util.pm +--- ./Bugzilla/Util.pm.orig 2017-03-05 20:46:54.370135805 +0100 ++++ ./Bugzilla/Util.pm 2017-03-05 20:48:12.190648042 +0100 +@@ -24,7 +24,7 @@ use parent qw(Exporter); + validate_email_syntax check_email_syntax clean_text + get_text template_var display_value disable_utf8 + detect_encoding email_filter +- join_activity_entries); ++ join_activity_entries read_text write_text); + + use Bugzilla::Constants; + use Bugzilla::RNG qw(irand); +@@ -39,6 +39,8 @@ use Scalar::Util qw(tainted blessed); + use Text::Wrap; + use Encode qw(encode decode resolve_alias); + use Encode::Guess; ++use File::Basename qw(dirname); ++use File::Temp qw(tempfile); + + sub trick_taint { + require Carp; +@@ -106,6 +108,27 @@ sub html_quote { + return $var; + } + ++sub read_text { ++ my ($filename) = @_; ++ open my $fh, '<:encoding(utf-8)', $filename; ++ local $/ = undef; ++ my $content = <$fh>; ++ close $fh; ++ return $content; ++} ++ ++sub write_text { ++ my ($filename, $content) = @_; ++ my ($tmp_fh, $tmp_filename) = tempfile('.tmp.XXXXXXXXXX', ++ DIR => dirname($filename), ++ UNLINK => 0, ++ ); ++ binmode $tmp_fh, ':encoding(utf-8)'; ++ print $tmp_fh $content; ++ close $tmp_fh; ++ rename $tmp_filename, $filename; ++} ++ + sub html_light_quote { + my ($text) = @_; + # admin/table.html.tmpl calls |FILTER html_light| many times. +diff -up ./docs/en/rst/installing/linux.rst.orig ./docs/en/rst/installing/linux.rst +--- ./docs/en/rst/installing/linux.rst.orig 2017-03-05 20:48:20.526595794 +0100 ++++ ./docs/en/rst/installing/linux.rst 2017-03-05 20:49:00.375346030 +0100 +@@ -49,7 +49,7 @@ graphviz patchutils gcc 'perl(Apache2::S + 'perl(Daemon::Generic)' 'perl(Date::Format)' 'perl(DateTime)' + 'perl(DateTime::TimeZone)' 'perl(DBI)' 'perl(Digest::SHA)' 'perl(Email::MIME)' + 'perl(Email::Reply)' 'perl(Email::Sender)' 'perl(Encode)' 'perl(Encode::Detect)' +-'perl(File::MimeInfo::Magic)' 'perl(File::Slurp)' 'perl(GD)' 'perl(GD::Graph)' ++'perl(File::MimeInfo::Magic)' 'perl(GD)' 'perl(GD::Graph)' + 'perl(GD::Text)' 'perl(HTML::FormatText::WithLinks)' 'perl(HTML::Parser)' + 'perl(HTML::Scrubber)' 'perl(IO::Scalar)' 'perl(JSON::RPC)' 'perl(JSON::XS)' + 'perl(List::MoreUtils)' 'perl(LWP::UserAgent)' 'perl(Math::Random::ISAAC)' +diff -up ./docs/en/rst/installing/windows.rst.orig ./docs/en/rst/installing/windows.rst +--- ./docs/en/rst/installing/windows.rst.orig 2017-03-05 20:49:10.415283101 +0100 ++++ ./docs/en/rst/installing/windows.rst 2017-03-05 20:49:25.631187731 +0100 +@@ -85,7 +85,6 @@ Install the following mandatory modules + * URI + * List-MoreUtils + * Math-Random-ISAAC +-* File-Slurp + * JSON-XS + * Win32 + * Win32-API +diff -up ./template/en/default/pages/release-notes.html.tmpl.orig ./template/en/default/pages/release-notes.html.tmpl +--- ./template/en/default/pages/release-notes.html.tmpl.orig 2017-03-05 20:49:34.287133477 +0100 ++++ ./template/en/default/pages/release-notes.html.tmpl 2017-03-05 20:49:52.223021059 +0100 +@@ -174,7 +174,7 @@ +

Required Perl Modules

+ + [% INCLUDE req_table reqs = REQUIRED_MODULES +- new = ['File-Slurp','JSON-XS', 'Email-Sender'] ++ new = ['JSON-XS', 'Email-Sender'] + updated = ['DateTime', 'DateTime-TimeZone', + 'Template-Toolkit', 'URI'] %] + diff --git a/bugzilla-1438957-concatenate-assets.patch b/bugzilla-1438957-concatenate-assets.patch new file mode 100644 index 0000000..a678976 --- /dev/null +++ b/bugzilla-1438957-concatenate-assets.patch @@ -0,0 +1,12 @@ +diff -up ./Bugzilla/Constants.pm.orig ./Bugzilla/Constants.pm +--- ./Bugzilla/Constants.pm.orig 2018-02-18 12:22:45.541837039 +0100 ++++ ./Bugzilla/Constants.pm 2018-02-18 12:22:53.538784733 +0100 +@@ -213,7 +213,7 @@ use constant LOCAL_FILE => 'bugzilla-up + # When true CSS and JavaScript assets will be concatanted and minified at + # run-time, to reduce the number of requests required to render a page. + # Setting this to a false value can help debugging. +-use constant CONCATENATE_ASSETS => 1; ++use constant CONCATENATE_ASSETS => 0; + + # These are unique values that are unlikely to match a string or a number, + # to be used in criteria for match() functions and other things. They start diff --git a/bugzilla-httpd-conf b/bugzilla-httpd-conf index 1ed7679..bdf6d85 100644 --- a/bugzilla-httpd-conf +++ b/bugzilla-httpd-conf @@ -13,7 +13,7 @@ Alias /bugzilla /usr/share/bugzilla AddHandler cgi-script .cgi Options +Indexes +ExecCGI +FollowSymLinks DirectoryIndex index.cgi index.html - AllowOverride Limit Options FileInfo Indexes + AllowOverride Limit Options FileInfo Indexes AuthConfig AddType application/vnd.mozilla.xul+xml .xul AddType application/rdf+xml .rdf diff --git a/bugzilla.spec b/bugzilla.spec index b37182d..9baa1a4 100644 --- a/bugzilla.spec +++ b/bugzilla.spec @@ -4,9 +4,8 @@ Summary: Bug tracking system URL: https://www.bugzilla.org/ Name: bugzilla -Version: 5.0.3 -Group: Applications/Publishing -Release: 4%{?dist} +Version: 5.0.4 +Release: 1%{?dist} License: MPLv1.1 Source0: https://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-%{version}.tar.gz Source1: bugzilla-httpd-conf @@ -14,6 +13,7 @@ Source2: README.fedora.bugzilla Source3: bugzilla.cron-daily Patch0: bugzilla-rw-paths.patch Patch1: bugzilla-dnf.patch +Patch2: bugzilla-1438957-concatenate-assets.patch BuildArch: noarch Requires: patchutils @@ -23,6 +23,7 @@ Requires: perl(Date::Format) >= 2.23 Requires: perl(DateTime) >= 0.75 Requires: perl(DateTime::TimeZone) >= 1.64 Requires: perl(DBI) >= 1.614 +Requires: perl(ExtUtils::MM) Requires: perl(Template) >= 2.24 Requires: perl(Email::Sender) >= 1.300011 Requires: perl(Email::MIME) >= 1.904 @@ -34,24 +35,28 @@ Requires: perl(JSON::XS) >= 2.01 Requires: perl(Locale::Language) Requires: webserver Requires: which + # for building docs +BuildRequires: latexmk BuildRequires: perl-generators BuildRequires: perl(File::Copy::Recursive) BuildRequires: perl(File::Which) BuildRequires: perl(Memoize) BuildRequires: python-sphinx -BuildRequires: texlive-collection-fontsrecommended BuildRequires: texlive-collection-latexrecommended BuildRequires: texlive-collection-basic -BuildRequires: tex-framed -BuildRequires: tex-multirow -BuildRequires: tex-threeparttable -BuildRequires: tex-titlesec -BuildRequires: tex-wrapfig +BuildRequires: tex(fncychap.sty) +BuildRequires: tex(framed.sty) +BuildRequires: tex(multirow.sty) +BuildRequires: tex(threeparttable.sty) +BuildRequires: tex(titlesec.sty) +BuildRequires: tex(wrapfig.sty) %if 0%{?fedora} -BuildRequires: texlive-capt-of.noarch -BuildRequires: texlive-eqparbox.noarch -BuildRequires: texlive-upquote +BuildRequires: tex(capt-of.sty) +BuildRequires: tex(eqparbox.sty) +BuildRequires: tex(needspace.sty) +BuildRequires: tex(tabulary.sty) +BuildRequires: tex(upquote.sty) %endif %package doc @@ -70,73 +75,72 @@ BuildRequires: python %{?perl_default_filter} # Remove private modules from the requires stream -%global __requires_exclude %__requires_exclude|^perl\\(sanitycheck.cgi\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(sanitycheck.cgi\\)$ # Remove all optional modules from the requires stream # mod_perl modules -%global __requires_exclude %__requires_exclude|^perl\\(Apache2:: -%global __requires_exclude %__requires_exclude|^perl\\(ModPerl:: +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(Apache2:: +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(ModPerl:: # installation of optional modules -%global __requires_exclude %__requires_exclude|^perl\\(Config\\)$ -%global __requires_exclude %__requires_exclude|^perl\\(CPAN\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(Config\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(CPAN\\)$ # authentification modules -%global __requires_exclude %__requires_exclude|^perl\\(Authen::Radius\\)$ -%global __requires_exclude %__requires_exclude|^perl\\(Net::LDAP +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(Authen::Radius\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(Net::LDAP # database modules -%global __requires_exclude %__requires_exclude|^perl\\(DBD::Oracle\\)$ -%global __requires_exclude %__requires_exclude|^perl\\(DBD::Pg\\)$ -%global __requires_exclude %__requires_exclude|^perl\\(DBI::db\\)$ -%global __requires_exclude %__requires_exclude|^perl\\(DBI::st\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(DBD::Oracle\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(DBD::Pg\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(DBI::db\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(DBI::st\\)$ # graphical reports and charts -%global __requires_exclude %__requires_exclude|^perl\\(Chart::Lines\\)$ -%global __requires_exclude %__requires_exclude|^perl\\(GD::Graph\\)$ -%global __requires_exclude %__requires_exclude|^perl\\(GD::Graph\\)$ -%global __requires_exclude %__requires_exclude|^perl\\(Template::Plugin::GD::Image\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(Chart::Lines\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(GD::Graph\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(Template::Plugin::GD::Image\\)$ # inbound email modules -%global __requires_exclude %__requires_exclude|^perl\\(Email::MIME::Attachment::Stripper\\)$ -%global __requires_exclude %__requires_exclude|^perl\\(Email::Reply\\)$ -%global __requires_exclude %__requires_exclude|^perl\\(HTML::FormatText::WithLinks\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(Email::MIME::Attachment::Stripper\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(Email::Reply\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(HTML::FormatText::WithLinks\\)$ # automatic charset detection for text attachments -%global __requires_exclude %__requires_exclude|^perl\\(Encode +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(Encode # sniff MIME type of attachments -%global __requires_exclude %__requires_exclude|^perl\\(File::MimeInfo::Magic\\)$ -%global __requires_exclude %__requires_exclude|^perl\\(IO::Scalar\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(File::MimeInfo::Magic\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(IO::Scalar\\)$ # mail queueing -%global __requires_exclude %__requires_exclude|^perl\\(TheSchwartz\\)$ -%global __requires_exclude %__requires_exclude|^perl\\(Daemon::Generic\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(TheSchwartz\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(Daemon::Generic\\)$ # smtp security -%global __requires_exclude %__requires_exclude|^perl\\(Authen::SASL\\)$ -%global __requires_exclude %__requires_exclude|^perl\\(Net::SMTP::SSL\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(Authen::SASL\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(Net::SMTP::SSL\\)$ # bug moving modules -%global __requires_exclude %__requires_exclude|^perl\\(MIME::Parser\\)$ -%global __requires_exclude %__requires_exclude|^perl\\(XML::Twig\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(MIME::Parser\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(XML::Twig\\)$ # update notifications -%global __requires_exclude %__requires_exclude|^perl\\(LWP::UserAgent\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(LWP::UserAgent\\)$ # use html in product and group descriptions -%global __requires_exclude %__requires_exclude|^perl\\(HTML::Parser\\)$ -%global __requires_exclude %__requires_exclude|^perl\\(HTML::Scrubber\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(HTML::Parser\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(HTML::Scrubber\\)$ # memcached support -%global __requires_exclude %__requires_exclude|^perl\\(Cache::Memcached\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(Cache::Memcached\\)$ # documentation -%global __requires_exclude %__requires_exclude|^perl\\(File::Copy::Recursive\\)$ -%global __requires_exclude %__requires_exclude|^perl\\(File::Which\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(File::Copy::Recursive\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(File::Which\\)$ # xml-rpc and json-rpc modules -%global __requires_exclude %__requires_exclude|^perl\\(XMLRPC:: -%global __requires_exclude %__requires_exclude|^perl\\(HTTP::Message\\)$ -%global __requires_exclude %__requires_exclude|^perl\\(Test::Taint\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(XMLRPC:: +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(HTTP::Message\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(Test::Taint\\)$ # extension modules -%global __requires_exclude %__requires_exclude|^perl\\(Image::Magick\\)$ +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(Image::Magick\\)$ # and remove the extensions from the provides stream -%global __provides_exclude %__provides_exclude|^perl\\(Bugzilla::Extension::BmpConvert\\)$ -%global __provides_exclude %__provides_exclude|^perl\\(Bugzilla::Extension::Example\\)$ -%global __provides_exclude %__provides_exclude|^perl\\(Bugzilla::Extension::Example::Auth::Login\\)$ -%global __provides_exclude %__provides_exclude|^perl\\(Bugzilla::Extension::Example::Auth::Verify\\)$ -%global __provides_exclude %__provides_exclude|^perl\\(Bugzilla::Extension::Example::Config\\)$ -%global __provides_exclude %__provides_exclude|^perl\\(Bugzilla::Extension::Example::WebService\\)$ -%global __provides_exclude %__provides_exclude|^perl\\(Bugzilla::Extension::OldBugMove\\)$ -%global __provides_exclude %__provides_exclude|^perl\\(Bugzilla::Extension::OldBugMove::Params\\)$ -%global __provides_exclude %__provides_exclude|^perl\\(Bugzilla::Extension::Voting\\)$ +%global __provides_exclude %{?__provides_exclude:%{__provides_exclude}|}^perl\\(Bugzilla::Extension::BmpConvert\\)$ +%global __provides_exclude %{?__provides_exclude:%{__provides_exclude}|}^perl\\(Bugzilla::Extension::Example\\)$ +%global __provides_exclude %{?__provides_exclude:%{__provides_exclude}|}^perl\\(Bugzilla::Extension::Example::Auth::Login\\)$ +%global __provides_exclude %{?__provides_exclude:%{__provides_exclude}|}^perl\\(Bugzilla::Extension::Example::Auth::Verify\\)$ +%global __provides_exclude %{?__provides_exclude:%{__provides_exclude}|}^perl\\(Bugzilla::Extension::Example::Config\\)$ +%global __provides_exclude %{?__provides_exclude:%{__provides_exclude}|}^perl\\(Bugzilla::Extension::Example::WebService\\)$ +%global __provides_exclude %{?__provides_exclude:%{__provides_exclude}|}^perl\\(Bugzilla::Extension::OldBugMove\\)$ +%global __provides_exclude %{?__provides_exclude:%{__provides_exclude}|}^perl\\(Bugzilla::Extension::OldBugMove::Params\\)$ +%global __provides_exclude %{?__provides_exclude:%{__provides_exclude}|}^perl\\(Bugzilla::Extension::Voting\\)$ %description Bugzilla is a popular bug tracking system used by multiple open source projects @@ -165,6 +169,7 @@ if [ -f Bugzilla/Install/Requirements.pm.orig ]; then : ERROR: Patch1 did not apply cleanly exit 1 fi +%patch2 -p1 # Remove bundled libs rm -rf lib/CGI* @@ -173,7 +178,8 @@ rm -f js/yui/*/*.swf # Deal with changing /usr/local paths here instead of via patches %{__perl} -pi -e 's|/usr/local/bin/python\b|%{__python}|' contrib/*.py -%{__perl} -pi -e 's|/usr/local/bin/ruby\b|%{_bindir}/ruby|' contrib/*.rb +%{__perl} -pi -e 's|/usr/bin/env python|%{__python}|' contrib/bugzilla-submit/bugzilla-submit + grep -rl '/usr/lib/sendmail\b' contrib docs \ | xargs %{__perl} -pi -e 's|/usr/lib/sendmail\b|%{_sbindir}/sendmail|' @@ -284,6 +290,22 @@ popd > /dev/null) %{bzinstallprefix}/bugzilla/contrib/Bugzilla.pm %changelog +* Sun Feb 18 2018 Emmanuel Seyman - 5.0.4-1 +- Update to 5.0.4 +- Remove backported File::Slurp patch, no longer needed +- Disable the concatenation of assets (#1438957) + +* Sun Aug 27 2017 Emmanuel Seyman - 5.0.3-6 +- Tighten macro expansion (thanks to ppisar) +- Drop Group tag +- Add doc-building requirement to fix FTBS +- Add perl(ExtUtils::MM) to the list of required modules + +* Tue Apr 04 2017 Emmanuel Seyman - 5.0.3-5 +- Include more dependencies to fix FTBFS (#1423283) +- Allow AuthConfig directives in Bugzilla's directory (#1403588) +- Backport patch to use internal functions rather than File::Slurp (#1425077) + * Fri Feb 10 2017 Fedora Release Engineering - 5.0.3-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild diff --git a/sources b/sources index e160adf..6ed1eab 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -b78365742a85cd030c87af12c196e8e9 bugzilla-5.0.3.tar.gz +SHA512 (bugzilla-5.0.4.tar.gz) = 9a508c623406fe71c485f85091c0dec87f7f600190bb88e6b097afaeb94a0bfc32db664609debb2265f21f48734bd040e2f5ecbf40dba0071940f31e195c8dbc