Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Jan 2003 12:18:58 +0900 (JST)
From:      KANOU Hiroki <kanou@mil.allnet.ne.jp>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        kanou@mil.allnet.ne.jp
Subject:   ports/47344: ImageMagick fails to compile
Message-ID:  <200301220318.h0M3IwEb072108@kappa.allnet.ne.jp>

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

>Number:         47344
>Category:       ports
>Synopsis:       ImageMagick fails to compile
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jan 21 19:20:01 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     KANOU Hiroki
>Release:        FreeBSD 4.7-STABLE i386
>Organization:
>Environment:
System: FreeBSD tin 4.7-STABLE FreeBSD 4.7-STABLE #0: Wed Oct 16 19:06:15 JST 2002 kanou@tin:/usr/src/sys/compile/TIN i386

# $FreeBSD: ports/graphics/ImageMagick/Makefile,v 1.158 2002/11/28 16:37:32 lioux Exp $
# $FreeBSD: ports/graphics/jasper/Makefile,v 1.4 2003/01/19 20:26:57 sobomax Exp $

>Description:

ImageMagick fails to compile after jasper was updated.

>How-To-Repeat:

# cd /usr/ports/graphics/ImageMagick
# make
===>  Extracting for ImageMagick-5.5.1.4
>Fix:

Update ImageMagick port to current (5.5.3-2) or apply this patch
to the port. Code was taken from current jp2.c.

This patch creates ImageMagic/files/patch-coders::jp2.c

diff -uNr ImageMagick.orig/files/patch-coders::jp2.c ImageMagick/files/patch-coders::jp2.c
--- ImageMagick.orig/files/patch-coders::jp2.c	Thu Jan  1 09:00:00 1970
+++ ImageMagick/files/patch-coders::jp2.c	Wed Jan 22 12:07:37 2003
@@ -0,0 +1,125 @@
+--- coders/jp2.c.orig	Sun Oct 13 01:41:32 2002
++++ coders/jp2.c	Fri Dec 27 11:46:44 2002
+@@ -73,10 +74,16 @@
+ #if !defined(ulonglong)
+ #define ulonglong  unsigned long long
+ #endif
++#if !defined(JAS_IMAGE_CS_GRAY)
++#define JAS_IMAGE_CS_GRAY  1
++#endif
++#if !defined(JAS_IMAGE_CS_RGB)
++#define JAS_IMAGE_CS_RGB  2
++#endif
+ #ifdef __VMS
+-#define JAS_VERSION 1.500.4
++#define JAS_VERSION 1.600.0
+ #define PACKAGE jasper
+-#define VERSION 1.500.4
++#define VERSION 1.600.0
+ #endif
+ #include "jasper/jasper.h"
+ #endif
+@@ -317,17 +324,17 @@
+   image=AllocateImage(image_info);
+   status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
+   if (status == False)
+-    ThrowWriterException(FileOpenError,"Unable to open file",image);
++    ThrowWriterException(FileOpenError,"UnableToOpenFile",image);
+   /*
+     Initialize JPEG 2000 API.
+   */
+   jas_init();
+   jp2_stream=JP2StreamManager(image);
+   if (jp2_stream == (jas_stream_t *) NULL)
+-    ThrowReaderException(FileOpenError,"Unable to manage JP2 stream",image);
++    ThrowReaderException(DelegateError,"UnableToManageJP2Stream",image);
+   jp2_image=jas_image_decode(jp2_stream,-1,0);
+   if (jp2_image == (jas_image_t *) NULL)
+-    ThrowReaderException(FileOpenError,"Unable to decode image file",image);
++    ThrowReaderException(DelegateError,"UnableToDecodeImageFile",image);
+   /*
+     Convert JPEG 2000 pixels.
+   */
+@@ -337,10 +344,10 @@
+     {
+       (void) jas_stream_close(jp2_stream);
+       jas_image_destroy(jp2_image);
+-      CloseBlob(image);
+       return(image);
+     }
+   number_components=Min(jas_image_numcmpts(jp2_image),4);
++  image->matte=number_components > 3;
+   for (i=0; i < (long) number_components; i++)
+   {
+     if (jas_image_cmptprec(jp2_image,i) <= 8)
+@@ -349,8 +356,7 @@
+     if (pixels[i] == (jas_matrix_t *) NULL)
+       {
+         jas_image_destroy(jp2_image);
+-        ThrowReaderException(ResourceLimitError,"Unable to allocate memory",
+-          image)
++        ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed",image)
+       }
+   }
+   for (y=0; y < (long) image->rows; y++)
+@@ -415,7 +421,6 @@
+     jas_matrix_destroy(pixels[i]);
+   (void) jas_stream_close(jp2_stream);
+   jas_image_destroy(jp2_image);
+-  CloseBlob(image);
+   return(image);
+ }
+ #endif
+@@ -575,15 +582,15 @@
+   assert(image->signature == MagickSignature);
+   status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);
+   if (status == False)
+-    ThrowWriterException(FileOpenError,"Unable to open file",image);
++    ThrowWriterException(FileOpenError,"UnableToOpenFile",image);
+   /*
+     Intialize JPEG 2000 API.
+   */
+-  (void) TransformRGBImage(image,RGBColorspace);
++  (void) TransformRGBImage(image,image->colorspace);
+   jas_init();
+   jp2_stream=JP2StreamManager(image);
+   if (jp2_stream == (jas_stream_t *) NULL)
+-    ThrowWriterException(FileOpenError,"Unable to manage JP2 stream",image);
++    ThrowWriterException(DelegateError,"UnableToManageJP2Stream",image);
+   number_components=image->matte ? 4 : 3;
+   if ((image_info->type != TrueColorType) &&
+       IsGrayImage(image,&image->exception))
+@@ -598,9 +605,9 @@
+     component_info[i].prec=(unsigned int) image->depth <= 8 ? 8 : 16;
+   }
+   jp2_image=jas_image_create((short) number_components,component_info,
+-    number_components == 1 ? JAS_IMAGE_CM_GRAY : JAS_IMAGE_CM_RGB);
++    number_components == 1 ? JAS_IMAGE_CS_GRAY : JAS_IMAGE_CS_RGB);
+   if (jp2_image == (jas_image_t *) NULL)
+-    ThrowWriterException(FileOpenError,"Unable to create image",image);
++    ThrowWriterException(DelegateError,"UnableToCreateImage",image);
+   /*
+     Convert to JPEG 2000 pixels.
+   */
+@@ -612,8 +619,7 @@
+         for (x=0; x < i; x++)
+           jas_matrix_destroy(pixels[x]);
+         jas_image_destroy(jp2_image);
+-        ThrowWriterException(ResourceLimitError,"Unable to allocate memory",
+-          image)
++        ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed",image)
+       }
+   }
+   for (y=0; y < (long) image->rows; y++)
+@@ -686,10 +692,9 @@
+   FormatString(options,"rate=%lf",(double) image_info->quality/100.0);
+   status=jas_image_encode(jp2_image,jp2_stream,format,options);
+   if (status)
+-    ThrowWriterException(FileOpenError,"Unable to encode image file",image);
++    ThrowWriterException(DelegateError,"UnableToEncodeImageFile",image);
+   (void) jas_stream_close(jp2_stream);
+   jas_image_destroy(jp2_image);
+-  CloseBlob(image);
+   return(True);
+ }
+ #endif
>Release-Note:
>Audit-Trail:
>Unformatted:
 
 >> Checksum OK for ImageMagick-5.5.1-4.tar.gz.
 
 	 <snip>
 
 /bin/sh ../libtool --silent --mode=compile cc -DHAVE_CONFIG_H -I../ -I. -I. -I../magick -I.. -I.. -I../magick  -I/usr/local/include/freetype2 -I/usr/local/include -I/usr/X11R6/include -I/usr/local/include/libxml2  -O -pipe -Wall -Wall -c -o jp2.lo `test  -f 'jp2.c' || echo './'`jp2.c
 In file included from /usr/local/include/jasper/jasper.h:121,
                  from jp2.c:81:
 /usr/local/include/jasper/jas_image.h:152: warning: `/*' within comment
 jp2.c: In function `WriteJP2Image':
 jp2.c:601: `JAS_IMAGE_CM_GRAY' undeclared (first use in this function)
 jp2.c:601: (Each undeclared identifier is reported only once
 jp2.c:601: for each function it appears in.)
 jp2.c:601: `JAS_IMAGE_CM_RGB' undeclared (first use in this function)
 jp2.c:686: warning: use of `l' length character with `f' type character
 gmake[1]: *** [jp2.lo] Error 1
 gmake[1]: Leaving directory `/usr/ports/graphics/ImageMagick/work/ImageMagick-5.5.1/coders'
 gmake: *** [all-recursive] Error 1
 *** Error code 2
 
 Stop in /usr/ports/graphics/ImageMagick.
 

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports-bugs" in the body of the message




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