ports/144847: problem ports ImageMagick (6.5.8-10)
Kravchuk Sergey
s.kravchuk at astrotech-co.ru
Thu Mar 18 08:00:15 UTC 2010
>Number: 144847
>Category: ports
>Synopsis: problem ports ImageMagick (6.5.8-10)
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Thu Mar 18 08:00:14 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator: Kravchuk Sergey
>Release: 7.2-RELEASE-p7
>Organization:
Astrotech
>Environment:
FreeBSD 7.2-RELEASE-p7 FreeBSD 7.2-RELEASE-p7 #0: Thu Mar 11 20:57:00 MSK 2010 root :/usr/obj/usr/src/sys/GENERIC amd64
>Description:
Hello,
use Magick++ in 10 threads
code:
Magick::Image master;
try
{
master.read(path_source + image_filename);
float ratio = (float)master.baseColumns()/master.baseRows();
if(ratio >= 1.19 && ratio <= 1.46)
{
//nothing
}
else
if(ratio > 1.46 && ratio < 1.6)
{
master.crop(Magick::Geometry((int)master.baseColumns()*0.9, master.baseRows(), (int)master.baseColumns()*0.05, 0));
LOG::log_file->WriteLog(LOG::INFO, "%s", ("Image " + image_filename + " cropped").c_str());
}
else
if(ratio > 1.07 && ratio < 1.19)
{
master.crop(Magick::Geometry(master.baseColumns(), (int)master.baseRows()*0.9, 0, (int)master.baseRows()*0.05));
}
else
{
return 1;
}
for(uint i = 0; i < m_config.img_size.size(); i++)
{
Magick::Image image_tmp = master;
image_tmp.resize(m_config.img_size[i].size);
image_tmp.magick("JPEG");
std::string path_res = m_config.Media_storage;
path_res += m_config.img_size[i].name + "/" + image_filename.substr(0,1) + "/" + image_filename.substr(1,2) + "/";
if (! boost::filesystem::exists(path_res))
{
boost::filesystem::create_directories(path_res);
}
image_tmp.write(path_res + image_filename + ".jpg");
}
}
catch( Magick::Exception &error )
{
LOG::log_file->WriteLog(LOG::ERROR, error.what());
return 1;
}
catch( std::exception &error)
{
LOG::log_file->WriteLog(LOG::ERROR, error.what());
return 1;
}
And Magic++ crash with message in stderr " Assertion failed: (semaphore_info != (SemaphoreInfo *) NULL), function LockSemaphoreInfo, file magick/semaphore.c, line 288"
Gdb bugtrace:
gdb) bt
#0 0x0000000802a12a9c in thr_kill () from /lib/libc.so.7
#1 0x0000000802aa1ffb in abort () from /lib/libc.so.7
#2 0x0000000802a89fc5 in __assert () from /lib/libc.so.7
#3 0x000000080185a56d in LockSemaphoreInfo () from /usr/local/lib/libMagickCore.so.2
#4 0x00000008017e5650 in DestroyExceptionInfo () from /usr/local/lib/libMagickCore.so.2
#5 0x0000000801801c5a in DestroyImage () from /usr/local/lib/libMagickCore.so.2
#6 0x000000080180c658 in DestroyImageList () from /usr/local/lib/libMagickCore.so.2
#7 0x0000000801e50035 in Magick::ImageRef::~ImageRef () from /usr/local/lib/libMagick++.so.2
#8 0x0000000801e495a9 in Magick::Image::~Image () from /usr/local/lib/libMagick++.so.2
#9 0x0000000000423012 in UpdaterSlave::ResizeImage (this=0x806e17000, image_filename=Variable "image_filename" is not available.
) at HarvesterSlave.cpp:944
#10 0x0000000000424f7b in UpdaterSlave::GetPropPhoto (this=0x806e17000, hex_name=@0x7fffff9fdd30, html=Variable "html" is not available.
) at HarvesterSlave.cpp:1623
#11 0x00000000004323d6 in UpdaterSlave::harvest_thread (US=Variable "US" is not available.
) at HarvesterSlave.cpp:1113
#12 0x00000008014554d1 in pthread_getprio () from /lib/libthr.so.3
#13 0x0000000000000000 in ?? ()
Cannot access memory at address 0x7fffff9fe000
>How-To-Repeat:
>Fix:
Update to 6.6.0-5
Patch port in attachment.
Patch attached with submission follows:
diff -ur /usr/ports/graphics/ImageMagick.orig/Makefile /usr/ports/graphics/ImageMagick/Makefile
--- /usr/ports/graphics/ImageMagick.orig/Makefile 2010-02-05 14:38:10.000000000 +0300
+++ /usr/ports/graphics/ImageMagick/Makefile 2010-03-16 20:40:42.000000000 +0300
@@ -6,13 +6,13 @@
#
PORTNAME= ImageMagick
-DISTVERSION= 6.5.8-10
+DISTVERSION= 6.6.0-5
PORTREVISION= 1
CATEGORIES= graphics perl5
MASTER_SITES= ftp://ftp.imagemagick.org/pub/ImageMagick/ \
ftp://ftp.nluug.nl/pub/ImageMagick/ \
ftp://gd.tuwien.ac.at/pub/graphics/ImageMagick/ \
- SF/${PORTNAME:L}/${PORTNAME}/6.5 \
+ SF/${PORTNAME:L}/${PORTNAME}/6.6 \
MAINTAINER= mm at FreeBSD.org
COMMENT= Image processing tools
@@ -97,20 +97,10 @@
.endif
# PerlMagick not works with threads, if perl is not threaded, and vice versa
-.if defined(WITH_IMAGEMAGICK_THREADS) || \
- (!defined(WITHOUT_IMAGEMAGICK_PERL) && \
- defined(PERL_THREADED) && ${PERL_THREADED} == "true")
CONFIGURE_ARGS+= --with-threads
CONFIGURE_ENV+= PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" PTHREAD_LIBS="${PTHREAD_LIBS}"
LDFLAGS+= ${PTHREAD_LIBS}
WITH_IMAGEMAGICK_THREADS=yes
-.else
-CONFIGURE_ARGS+= --without-threads
-.undef WITH_IMAGEMAGICK_THREADS
-.if defined(WITH_IMAGEMAGICK_DJVU)
-. undef WITH_IMAGEMAGICK_DJVU
-.endif
-.endif
# Faster, but poor quality
.if defined(WITHOUT_IMAGEMAGICK_16BIT_PIXEL)
diff -ur /usr/ports/graphics/ImageMagick.orig/distinfo /usr/ports/graphics/ImageMagick/distinfo
--- /usr/ports/graphics/ImageMagick.orig/distinfo 2009-12-31 14:01:14.000000000 +0300
+++ /usr/ports/graphics/ImageMagick/distinfo 2010-03-16 20:41:44.000000000 +0300
@@ -1,3 +1,3 @@
-MD5 (ImageMagick-6.5.8-10.tar.bz2) = fc04d56c32bb2eebba7885d0db042f9a
-SHA256 (ImageMagick-6.5.8-10.tar.bz2) = ad47980454adbc41d3b3dcc1c968e90f08c08a86b5006da8b0a357248f3ed74c
-SIZE (ImageMagick-6.5.8-10.tar.bz2) = 8713910
+MD5 (ImageMagick-6.6.0-5.tar.bz2) = fb57509760a902af5bf535b8da15fdc7
+SHA256 (ImageMagick-6.6.0-5.tar.bz2) = 7d5cb30042ea1ee88485499aa6ed187893a24301be2b7e48eb975a813a68e940
+SIZE (ImageMagick-6.6.0-5.tar.bz2) = 8779522
Only in /usr/ports/graphics/ImageMagick.orig/files: patch-coders::jp2.c
diff -ur /usr/ports/graphics/ImageMagick.orig/files/patch-magick-fourier.c /usr/ports/graphics/ImageMagick/files/patch-magick-fourier.c
--- /usr/ports/graphics/ImageMagick.orig/files/patch-magick-fourier.c 2009-08-13 11:18:52.000000000 +0400
+++ /usr/ports/graphics/ImageMagick/files/patch-magick-fourier.c 2010-03-16 20:57:39.000000000 +0300
@@ -1,5 +1,5 @@
---- magick/fourier.c.orig 2009-08-13 09:03:13.924505718 +0200
-+++ magick/fourier.c 2009-08-13 09:03:24.685881339 +0200
+--- magick/fourier.c.orig 2010-03-16 20:54:10.000000000 +0300
++++ magick/fourier.c 2010-03-16 20:54:39.000000000 +0300
@@ -515,7 +515,7 @@
for (x=0L; x < (long) fourier_info->center; x++)
{
Only in /usr/ports/graphics/ImageMagick.orig/files: patch-tests-validate.h
diff -ur /usr/ports/graphics/ImageMagick.orig/pkg-plist /usr/ports/graphics/ImageMagick/pkg-plist
--- /usr/ports/graphics/ImageMagick.orig/pkg-plist 2009-12-31 14:01:14.000000000 +0300
+++ /usr/ports/graphics/ImageMagick/pkg-plist 2010-03-16 21:10:10.000000000 +0300
@@ -367,15 +367,15 @@
lib/libMagick++.a
lib/libMagick++.la
lib/libMagick++.so
-lib/libMagick++.so.2
+lib/libMagick++.so.3
lib/libMagickCore.a
lib/libMagickCore.la
lib/libMagickCore.so
-lib/libMagickCore.so.2
+lib/libMagickCore.so.3
lib/libMagickWand.a
lib/libMagickWand.la
lib/libMagickWand.so
-lib/libMagickWand.so.2
+lib/libMagickWand.so.3
libdata/pkgconfig/ImageMagick++.pc
libdata/pkgconfig/Magick++.pc
libdata/pkgconfig/ImageMagick.pc
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list