Commit 6eec197b authored by lpsolit%gmail.com's avatar lpsolit%gmail.com

Bug 480986: The BMP -> PNG conversion tool for new attachments should be an…

Bug 480986: The BMP -> PNG conversion tool for new attachments should be an extension - Patch by Fré©ric Buclin <LpSolit@gmail.com> r/a=mkanat
parent fcbd202e
......@@ -568,24 +568,6 @@ sub _check_data {
return $data if ref $data;
$data || ThrowUserError('zero_length_file');
# This should go away, see bug 480986.
# Windows screenshots are usually uncompressed BMP files which
# makes for a quick way to eat up disk space. Let's compress them.
# We do this before we check the size since the uncompressed version
# could easily be greater than maxattachmentsize.
if (Bugzilla->params->{'convert_uncompressed_images'}
&& $params->{mimetype} eq 'image/bmp')
{
require Image::Magick;
my $img = Image::Magick->new(magick=>'bmp');
$img->BlobToImage($data);
$img->set(magick=>'png');
my $imgdata = $img->ImageToBlob();
$data = $imgdata;
$params->{mimetype} = 'image/png';
}
# Make sure the attachment does not exceed the maximum permitted size.
my $len = length($data);
my $max_size = $params->{store_in_file} ? Bugzilla->params->{'maxlocalattachment'} * 1048576
......
......@@ -84,13 +84,6 @@ sub get_param_list {
type => 't',
default => '0',
checker => \&check_numeric
},
{
name => 'convert_uncompressed_images',
type => 'b',
default => 0,
checker => \&check_image_converter
} );
return @param_list;
}
......
......@@ -47,7 +47,7 @@ use base qw(Exporter);
qw(check_multi check_numeric check_regexp check_url check_group
check_sslbase check_priority check_severity check_platform
check_opsys check_shadowdb check_urlbase check_webdotbase
check_netmask check_user_verify_class check_image_converter
check_netmask check_user_verify_class
check_mail_delivery_method check_notification check_utf8
check_bug_status check_smtp_auth check_theschwartz_available
check_maxattachmentsize
......@@ -293,15 +293,6 @@ sub check_user_verify_class {
return "";
}
sub check_image_converter {
my ($value, $hash) = @_;
if ($value == 1){
eval "require Image::Magick";
return "Error requiring Image::Magick: '$@'" if $@;
}
return "";
}
sub check_mail_delivery_method {
my $check = check_multi(@_);
return $check if $check;
......
......@@ -204,12 +204,6 @@ sub OPTIONAL_MODULES {
feature => ['patch_viewer'],
},
{
package => 'PerlMagick',
module => 'Image::Magick',
version => 0,
feature => ['compress_bmps'],
},
{
package => 'perl-ldap',
module => 'Net::LDAP',
version => 0,
......
<!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"> -->
<!-- $Id: installation.xml,v 1.168 2009/07/29 12:29:36 lpsolit%gmail.com Exp $ -->
<!-- $Id: installation.xml,v 1.169 2009/08/13 21:32:19 lpsolit%gmail.com Exp $ -->
<chapter id="installing-bugzilla">
<title>Installing Bugzilla</title>
......@@ -412,12 +412,6 @@
<listitem>
<para>
Image::Magick (&min-image-magick-ver;) for converting BMP image attachments to PNG
</para>
</listitem>
<listitem>
<para>
Net::LDAP
(&min-net-ldap-ver;) for LDAP Authentication
</para>
......
......@@ -181,13 +181,5 @@
Documentation: <ulink url="http://www.johnkeiser.com/mozilla/Patch_Viewer.html"/>
</literallayout>
</para>
<para>
Image::Magick:
<literallayout>
CPAN Download Page: <ulink url="http://search.cpan.org/dist/PerlMagick/"/>
Documentation: <ulink url="http://www.imagemagick.org/script/resources.php"/>
</literallayout>
</para>
</section>
</appendix>
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is the Bugzilla Bug Tracking System.
#
# The Initial Developer of the Original Code is Frédéric Buclin.
# Portions created by Frédéric Buclin are Copyright (C) 2009
# Frédéric Buclin. All Rights Reserved.
#
# Contributor(s): Frédéric Buclin <LpSolit@gmail.com>
use strict;
use Image::Magick;
use Bugzilla;
my $args = Bugzilla->hook_args;
return unless $args->{attributes}->{mimetype} eq 'image/bmp';
my $data = ${$args->{data}};
my $img = Image::Magick->new(magick=>'bmp');
# $data is a filehandle.
if (ref $data) {
$img->Read(file => \*$data);
$img->set(magick=>'png');
$img->Write(file => \*$data);
}
# $data is a blob.
else {
$img->BlobToImage($data);
$img->set(magick=>'png');
$data = $img->ImageToBlob();
}
${$args->{data}} = $data;
$args->{attributes}->{mimetype} = 'image/png';
$args->{attributes}->{filename} =~ s/^(.+)\.bmp$/$1.png/i;
undef $img;
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is the Bugzilla Bug Tracking System.
#
# The Initial Developer of the Original Code is Frédéric Buclin.
# Portions created by Frédéric Buclin are Copyright (C) 2009
# Frédéric Buclin. All Rights Reserved.
#
# Contributor(s): Frédéric Buclin <LpSolit@gmail.com>
use strict;
{ x_name => 'BMP to PNG converter',
version => '1.0',
x_description => 'Automatically converts BMP images to the PNG format',
x_author => 'Greg Hendricks, Frédéric Buclin',
};
......@@ -73,9 +73,5 @@
maxlocalattachment => "The maximum size (in megabytes) of attachments identified by " _
"the user as 'Big Files' to be stored locally on the webserver. " _
"If set to zero, attachments will never be kept on the local " _
"filesystem.",
convert_uncompressed_images => "If this option is on, attachments with content type image/bmp " _
"will be converted to image/png and compressed before uploading to " _
"the database to conserve disk space." }
"filesystem." }
%]
......@@ -46,7 +46,6 @@ EOT
feature_auth_ldap => 'LDAP Authentication',
feature_auth_radius => 'RADIUS Authentication',
feature_compress_bmps => 'Convert BMP Attachments to PNG',
feature_graphical_reports => 'Graphical Reports',
feature_html_desc => 'More HTML in Product/Group Descriptions',
feature_inbound_email => 'Inbound Email',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment