Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Mar 2010 07:50:44 GMT
From:      Kravchuk Sergey <s.kravchuk@astrotech-co.ru>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/144847: problem ports ImageMagick (6.5.8-10)
Message-ID:  <201003180750.o2I7oiWS097402@www.freebsd.org>
Resent-Message-ID: <201003180800.o2I80ECT074324@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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@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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201003180750.o2I7oiWS097402>