--- a/components/imagemagick/Makefile Mon Sep 26 08:04:04 2016 -0700
+++ b/components/imagemagick/Makefile Thu Sep 22 14:47:13 2016 +0200
@@ -29,13 +29,13 @@
COMPONENT_NAME= ImageMagick
COMPONENT_VERSION= 6.9.5
COMPONENT_MAJOR_VERSION= $(shell echo $(COMPONENT_VERSION) | $(GSED) -e 's/\([0-9]\+\)\.[0-9]\+\.[0-9]\+/\1/')
-COMPONENT_SUBVERSION= 0
+COMPONENT_SUBVERSION= 10
HUMAN_VERSION= $(COMPONENT_VERSION)-$(COMPONENT_SUBVERSION)
COMPONENT_PROJECT_URL= http://www.imagemagick.org/
COMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION)
COMPONENT_ARCHIVE= $(COMPONENT_SRC)-$(COMPONENT_SUBVERSION).tar.gz
COMPONENT_ARCHIVE_HASH= \
- sha256:4b84a3236d24278966140bb5d641c45d3dab47244db79b51e5066518c5cf65c4
+ sha256:468419fea538ba1dcd2dc69334e8981cf41417f9a9938973884dccaedc403b39
COMPONENT_ARCHIVE_URL= $(COMPONENT_PROJECT_URL)/download/$(COMPONENT_ARCHIVE)
COMPONENT_BUGDB= utility/imagemagick
@@ -69,11 +69,23 @@
LIBS += -lsocket -lnsl
CONFIGURE_ENV += LIBS="$(LIBS)"
+# This is needed by our modified Magick++/demo/demos.tap and
+# Magic++/tests/tests.tap
+COMPONENT_TEST_ENV += BITS=$(BITS)
+
# Prevent older versions of libMagick{Core,Wand}-6.Q16.so from the build
# machine from being found ahead of new versions from the proto area.
LD_OPTIONS_SO= -L. -L../../magick/.libs
COMPONENT_BUILD_ENV += LD_OPTIONS_SO="$(LD_OPTIONS_SO)"
+# S11 does not support .a files so we have to modify the test script in a way
+# that it finds the libraries in .libs dir
+$(BUILD_32): COMPONENT_POST_BUILD_ACTION= \
+ perl -pi -e 's,"$$,/.libs", if m/^MAGICK_(CODER|FILTER)_MODULE_PATH/' "$(BUILD_DIR_32)/common.shi"
+
+$(BUILD_64): COMPONENT_POST_BUILD_ACTION= \
+ perl -pi -e 's,"$$,/.libs", if m/^MAGICK_(CODER|FILTER)_MODULE_PATH/' "$(BUILD_DIR_64)/common.shi"
+
# To remove the compiler complaints about __restrict keyword,
# -D_magickcore_restrict should be used.
CPPFLAGS_USER += -D_magickcore_restrict=
@@ -98,17 +110,20 @@
CONFIGURE_OPTIONS.64+= --without-perl
build: $(BUILD_32_and_64)
+
install: $(INSTALL_32_and_64)
PKG_MACROS += COMPONENT_MAJOR_VERSION=$(COMPONENT_MAJOR_VERSION)
PKG_MACROS += PERL_PKG=$(PERL_PKG)
-# ImageMagick tests have hard-coded absolute paths inside, so essentially they
-# can be run only after ImageMagick is actually installed and this is not
-# possible, so the tests are not invoked.
-#
-test: $(NO_TESTS)
- @echo "Tests can be run only after ImageMagick is installed."
+# Needed for "gmake test" to work successfully. If SHELLOPTS is exported (as
+# it is by the Userland Makefiles), then all shell options get exported to
+# child invocations of bash, which results in test failures due to nounset and
+# xtrace being set unexpectedly, and errors such as "$1: unbound variable" and
+# diffs failing due to script tracing in output files.
+unexport SHELLOPTS
+
+test: $(TEST_32_and_64)
REQUIRED_PACKAGES += compress/bzip2
REQUIRED_PACKAGES += compress/xz
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/imagemagick/TESTING Thu Sep 22 14:47:13 2016 +0200
@@ -0,0 +1,37 @@
+cd /var/tmp
+
+convert -list font | wc -l # ~ 200 lines of output
+
+convert -size 170x100 xc:black \
+ -fill white -draw 'circle 50,50 13,50' \
+ -draw 'circle 120,50 157,50' \
+ -draw 'rectangle 50,13 120,87' \
+ -fill black -draw 'circle 50,50 25,50' \
+ -draw 'circle 120,50 145,50' \
+ -draw 'rectangle 50,25 120,75' \
+ -fill white -draw 'circle 60,50 40,50' \
+ -draw 'circle 110,50 130,50' \
+ -draw 'rectangle 60,30 110,70' \
+ -gaussian 1x1 +matte logo_mask.png
+
+convert logo_mask.png -background red -alpha shape \
+ -font Times-Roman -pointsize 36 -fill white -stroke black \
+ -gravity Center -annotate 0 "Ant" \
+ logo.png
+
+convert logo.png -alpha extract -blur 0x6 -shade 110x30 -normalize \
+ logo.png -compose Overlay -composite \
+ logo.png -alpha on -compose Dst_In -composite \
+ logo_3D.png
+
+convert logo_3D.png \( +clone -background navy -shadow 80x4+6+6 \) \
+ +swap -background none -layers merge +repage logo_3D_shadowed.png
+
+convert logo_3D_shadowed.png \
+ \( +clone +repage -alpha off -fx 'rand()' -shade 120x30 \
+ -fill grey70 -colorize 60 \
+ -fill lavender -tint 100 \) \
+ +swap -composite logo_3D_bg.jpg
+
+# Now compare logo_3D_bg.jpg to the image at
+# http://www.imagemagick.org/Usage/advanced/#3d-logos
--- a/components/imagemagick/imagemagick.p5m Mon Sep 26 08:04:04 2016 -0700
+++ b/components/imagemagick/imagemagick.p5m Thu Sep 22 14:47:13 2016 +0200
@@ -38,22 +38,22 @@
set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
set name=org.opensolaris.arc-caseid value=LSARC/2007/316
set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-file path=usr/bin/Magick++-config
-file path=usr/bin/Magick-config
-file path=usr/bin/MagickCore-config
-file path=usr/bin/MagickWand-config
-file path=usr/bin/Wand-config
-file path=usr/bin/animate
-file path=usr/bin/compare
-file path=usr/bin/composite
-file path=usr/bin/conjure
-file path=usr/bin/convert
-file path=usr/bin/display
-file path=usr/bin/identify
-file path=usr/bin/import
-file path=usr/bin/mogrify
-file path=usr/bin/montage
-file path=usr/bin/stream
+file usr/bin/$(MACH64)/Magick++-config path=usr/bin/Magick++-config
+file usr/bin/$(MACH64)/Magick-config path=usr/bin/Magick-config
+file usr/bin/$(MACH64)/MagickCore-config path=usr/bin/MagickCore-config
+file usr/bin/$(MACH64)/MagickWand-config path=usr/bin/MagickWand-config
+file usr/bin/$(MACH64)/Wand-config path=usr/bin/Wand-config
+file usr/bin/$(MACH64)/animate path=usr/bin/animate
+file usr/bin/$(MACH64)/compare path=usr/bin/compare
+file usr/bin/$(MACH64)/composite path=usr/bin/composite
+file usr/bin/$(MACH64)/conjure path=usr/bin/conjure
+file usr/bin/$(MACH64)/convert path=usr/bin/convert
+file usr/bin/$(MACH64)/display path=usr/bin/display
+file usr/bin/$(MACH64)/identify path=usr/bin/identify
+file usr/bin/$(MACH64)/import path=usr/bin/import
+file usr/bin/$(MACH64)/mogrify path=usr/bin/mogrify
+file usr/bin/$(MACH64)/montage path=usr/bin/montage
+file usr/bin/$(MACH64)/stream path=usr/bin/stream
file path=usr/include/ImageMagick-$(COMPONENT_MAJOR_VERSION)/Magick++.h
file path=usr/include/ImageMagick-$(COMPONENT_MAJOR_VERSION)/Magick++/Blob.h
file path=usr/include/ImageMagick-$(COMPONENT_MAJOR_VERSION)/Magick++/ChannelMoments.h
--- a/components/imagemagick/patches/CVE-2016-6491.patch Mon Sep 26 08:04:04 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-This patch comes from upstream:
-https://github.com/ImageMagick/ImageMagick/commit/dd84447b63a71fa8c3f47071b09454efc667767b
-It can be removed once we upgrade to a release that has the fix, presumably
-version 6.9.5-4 or later.
-
---- ImageMagick-6.9.5/magick/property.c.orig 2016-06-26 17:40:19.000000000 -0700
-+++ ImageMagick-6.9.5/magick/property.c 2016-07-29 05:56:23.858967297 -0700
-@@ -638,6 +638,11 @@
- if ((count & 0x01) == 0)
- (void) ReadPropertyByte(&info,&length);
- count=(ssize_t) ReadPropertyMSBLong(&info,&length);
-+ if ((count < 0) || ((size_t) count > length))
-+ {
-+ length=0;
-+ continue;
-+ }
- if ((*name != '\0') && (*name != '#'))
- if ((resource == (char *) NULL) || (LocaleCompare(name,resource) != 0))
- {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/imagemagick/patches/x64_tests.patch Thu Sep 22 14:47:13 2016 +0200
@@ -0,0 +1,60 @@
+Not suitable for upstream.
+
+There are three tests failing on x86 64bit. This is filled as 24765817. This
+patch disables the three tests in order to make sure that other things are
+fine.
+
+--- ImageMagick-6.9.5/Magick++/tests/tests.tap.old pá zář 30 17:20:59 2016
++++ ImageMagick-6.9.5/Magick++/tests/tests.tap pá zář 30 17:21:02 2016
+@@ -8,14 +8,21 @@
+ #
+ subdir=Magick++/tests
+ . ./common.shi
+-echo "1..12"
+
++if [[ $BITS == 64 ]] && [[ $(uname -p) == i386 ]]; then
++ echo "1..10"
++ ATTRIBUTES=
++else
++ echo "1..12"
++ ATTRIBUTES="attributes exceptions"
++fi
++
+ SRCDIR=${top_srcdir}/${subdir}/
+ export SRCDIR
+
+ cd ${subdir} || exit 1
+
+-for mytest in appendImages attributes averageImages coalesceImages coderInfo color colorHistogram exceptions montageImages morphImages readWriteBlob readWriteImages
++for mytest in appendImages $ATTRIBUTES averageImages coalesceImages coderInfo color colorHistogram montageImages morphImages readWriteBlob readWriteImages
+ do
+ ./${mytest} && echo "ok" || echo "not ok"
+ done
+--- ImageMagick-6.9.5/Magick++/demo/demos.tap.old pá zář 30 17:21:08 2016
++++ ImageMagick-6.9.5/Magick++/demo/demos.tap pá zář 30 17:21:11 2016
+@@ -8,14 +8,23 @@
+ #
+ subdir=Magick++/demo
+ . ./common.shi
+-echo "1..24"
+
++if [[ $BITS == 64 ]] && [[ $(uname -p) == i386 ]]; then
++ echo "1..23"
++else
++ echo "1..24"
++fi
++
+ SRCDIR=${top_srcdir}/${subdir}/
+ export SRCDIR
+
+ cd ${subdir} || exit 1
+
+-./analyze "$SRCDIR/model.miff" && echo "ok" || echo "not ok"
++if [[ $BITS == 64 ]] && [[ $(uname -p) == i386 ]]; then
++ : # Do not run the test
++else
++ ./analyze "$SRCDIR/model.miff" && echo "ok" || echo "not ok"
++fi
+
+ for demo in button demo flip gravity piddle shapes
+ do