AI/PostScript/PDF tests fail even with ghostscript installed

Questions and postings pertaining to the usage of ImageMagick regardless of the interface. This includes the command-line utilities, as well as the C and C++ APIs. Usage questions are like "How do I use ImageMagick to create drop shadows?".
Post Reply
theosophe74

AI/PostScript/PDF tests fail even with ghostscript installed

Post by theosophe74 »

I'm trying to install ImageMagick 6.6.1-10 on CentOS 5.x where ghostscript-devel and ghostscript are already installed.

Tests relating to ghostscript, though, are failing. See below for examples. Is there a particular version of ghostscript that ImageMagick 6.6.1-10 requires?

Here's what I have installed:

Code: Select all

Package tcl-devel-8.4.13-4.el5.x86_64 already installed and latest version
Package tcl-devel-8.4.13-4.el5.i386 already installed and latest version
Package 2:libpng-devel-1.2.10-7.1.el5_3.2.x86_64 already installed and latest version
Package 2:libpng-devel-1.2.10-7.1.el5_3.2.i386 already installed and latest version
Package libjpeg-devel-6b-37.x86_64 already installed and latest version
Package libjpeg-devel-6b-37.i386 already installed and latest version
Package ghostscript-devel-8.15.2-9.11.el5.x86_64 already installed and latest version
Package ghostscript-devel-8.15.2-9.11.el5.i386 already installed and latest version
Package bzip2-devel-1.0.3-4.el5_2.x86_64 already installed and latest version
Package bzip2-devel-1.0.3-4.el5_2.i386 already installed and latest version
Package freetype-devel-2.2.1-21.el5_3.x86_64 already installed and latest version
Package freetype-devel-2.2.1-21.el5_3.i386 already installed and latest version
Package libtiff-devel-3.8.2-7.el5_3.4.x86_64 already installed and latest version
Package libtiff-devel-3.8.2-7.el5_3.4.i386 already installed and latest version
Package ghostscript-8.15.2-9.11.el5.x86_64 already installed and latest version
Package ghostscript-8.15.2-9.11.el5.i386 already installed and latest version
Here's my uname:

Code: Select all

Linux 2.6.18-128.el5 #1 SMP Wed Jan 21 10:41:14 EST 2009 x86_64 x86_64 x86_64 GNU/Linux
Here are some sample test failures:

Code: Select all

  test 736: XPM/Undefined/ColorSepaCRIT: rangecheck in .setuserparams
Operand stack:
    --nostringval--  --nostringval--  --nostringval--
lt-validate: Postscript delegate failed `/tmp/magick-XXFAMcUh':  @ error/pdf.c/ReadPDFImage/645.

  test 793: AI/Undefined/TrueColor/8-bits... fail @ tests/validate.c/ValidateImageFormatsOnDisk/754.
  test 794: AI/Undefined/TrueColorMatte/8-bits... fail @ tests/validate.c/ValidateImageFormatsOnDisk/754.
  test 795: AI/Undefined/Grayscale/8-bits... fail @ tests/validate.c/ValidateImageFormatsOnDisk/754.
  test 796: AI/Undefined/GrayscaleMatte/8-bits... fail @ tests/validate.c/ValidateImageFormatsOnDisk/754.

  test 801: AI/Undefined/ColorSeparation/8-bits... fail @ tests/validate.c/ValidateImageFormatsOnDisk/754.
  tesCRIT: rangecheck in .setuserparams
Operand stack:
    --nostringval--  --nostringval--  --nostringval--
lt-validate: Postscript delegate failed `/tmp/magick-XXFAMcUh':  @ error/pdf.c/ReadPDFImage/645.
...
CRIT: rangecheck in .setuserparams
Operand stack:
    --nostringval--  --nostringval--  --nostringval--
lt-validate: Postscript delegate failed `/tmp/magick-XXFAMcUh':  @ error/ps.c/ReadPSImage/778.

  test 983: PS/Undefined/ColorSeparation/8-bits... fail @ tests/validate.c/ValidateImageFormatsOnDisk/754.
  test 984: PS/Undefined/ColorSeparationMatte/8-bits... fail @ tests/validate.c/ValidateImageFormatsOnDisk/754.
  test 985: PS/Undefined/TrueColor/10-bits... fail @ tests/validate.c/ValidateImageFormatsOnDisk/754.
  test 986: PS/Undefined/TrueColor/12-bits... fail @ tests/validate.c/ValidateImageFormatsOnDisk/754.
  test 987: PS/Undefined/TrueColor/16-bits... fail @ tests/validate.c/ValidateImageFormatsOnDisk/754.
  summary: 988 subtests; 806 passed; 182 failed.
validation suite: 988 tests; 806 passed; 182 failed.
theosophe74

Re: AI/PostScript/PDF tests fail even with ghostscript insta

Post by theosophe74 »

FYI,

The following is the script I wrote to be able to repeat the download and installation of ImageMagick in our Linux environment:

Code: Select all

#!/bin/bash

#
# Declare all used variables
#

currentUser=`whoami`
downloadRequiresCredentials=true
imageMagickVersion="6.6.1-10"
imageMagickArchive="ImageMagick-${imageMagickVersion}.tar.gz"
imageMagickDownloadUrl="https://our_svn_url/${imageMagickArchive}"
imageMagickDownloadUrlDesc="JIRA SVN"
imageMagickDir="ImageMagick-${imageMagickVersion}"
imageMagickInstallDir="/opt/${imageMagickDir}"
imageMagickInstallVerifyExe="${imageMagickInstallDir}/bin/verify"
imageMagickSymLink="/opt/ImageMagick"
imageMagickSymLinkVerifyExe="${imageMagickSymLink}/bin/verify"

#
# Declare all utilized functions
#

function message()
{
    if [ -n "$1" ]; then
      echo ""
      echo "$1"
      echo ""
    fi

    return 0
}


function raiseFatal()
{
    message "$1"
    exit 1
}

function raiseError()
{
    message "$1"
    return 1
}

function fatalIfFailed()
{
    if [ $? -ne 0 ]; then
      raiseFatal "$1"
    fi
}

function errorIfFailed()
{
    if [ $? -ne 0 ]; then
      raiseError "$1"
      return 1
    fi
}

function installDependencies()
{
    message "Installing Dependencies..."

    yum install tcl-devel libpng-devel libjpeg-devel ghostscript-devel bzip2-devel freetype-devel libtiff-devel ghostscript

    errorIfFailed "Could not use yum to install all required dependencies"
}

function downloadWithCredentials()
{
    wget --user ${downloadUsername} --password ${downloadPassword} ${imageMagickDownloadUrl}
}

function downloadWithoutCredentials
{
    wget ${imageMagickDownloadUrl}
}

function downloadArchive()
{
    message "Retrieving ImageMagick archive from ${imageMagickDownloadUrlDesc}..."

    if ${downloadRequiresCredentials}; then
      downloadWithCredentials
    else
      downloadWithoutCredentials
    fi

    errorIfFailed "Could not access the ${imageMagickDownloadUrlDesc} URL" 

    if [ $? -ne 0 ]; then
       return 1
    fi
 
    if [ ! -e ${imageMagickArchive} -o ! -f ${imageMagickArchive} -o ! -r ${imageMagickArchive} ]; then
      raiseError "Cannot read the archive file ${imageMagickArchive}"
      if [ $? -ne 0 ]; then
         return 1
      fi
    fi

    return 0
}

function extractArchive()
{
    message "Extracting ImageMagick installation directory from archive..."

    tar xfz ${imageMagickArchive}

    errorIfFailed "Could not un-TAR the archive"

    if [ $? -ne 0 ]; then
       return 1
    fi

    if [ ! -e ${imageMagickDir} -o ! -d ${imageMagickDir} -o ! -r ${imageMagickDir} ]; then
      raiseError "Cannot read the extracted directory ${imageMagickDir}"
      if [ $? -ne 0 ]; then
         return 1
      fi
    fi

    return 0
}

function installImageMagick()
{
    message "Installing ImageMagick..."

    cd ${imageMagickDir} && \
    ./configure --prefix=${imageMagickInstallDir} --with-bzlib=yes --with-fontconfig=yes --with-freetype=yes --with-gslib=yes --with-gvc=yes --with-jpeg=yes --with-jp2=yes --with-png=yes --with-tiff=yes
    if [ $? -ne 0 ]; then
       return 1
    fi
    make clean
    if [ $? -ne 0 ]; then
       return 1
    fi
    make
    if [ $? -ne 0 ]; then
       return 1
    fi
    make install
    if [ $? -ne 0 ]; then
       return 1
    fi
    /sbin/ldconfig ${imageMagickInstallDir}
    if [ $? -ne 0 ]; then
       return 1
    fi
    make check
    if [ $? -ne 0 ]; then
       return 1
    fi

    if [ ! -e ${imageMagickInstallVerifyExe} -o ! -f ${imageMagickInstallVerifyExe} -o ! -r ${imageMagickInstallVerifyExe} ]; then
      raiseError "Cannot read the installed ImageMagick verify executable"
      if [ $? -ne 0 ]; then
         return 1
      fi
    fi

    return 0
}

function createSymLink()
{
    message "Creating symbolic link for ImageMagick installation directory..."

    ln -s ${imageMagickInstallDir} ${imageMagickSymLink}

    if [ $? -ne 0 ]; then
       return 1
    fi

    if [ ! -e ${imageMagickSymLinkVerifyExe} -o ! -f ${imageMagickSymLinkVerifyExe} -o ! -r ${imageMagickSymLinkVerifyExe} ]; then
      raiseError "Cannot read the symbolically linked ImageMagick verify executable"
      if [ $? -ne 0 ]; then
         return 1
      fi
    fi

    return 0
}

function removeArchive()
{
    message "Removing ImageMagick archive..."

    rm ${imageMagickArchive}

    if [ $? -ne 0 ]; then
       return 1
    fi

    if [ -e ${imageMagickArchive} ]; then
      raiseError "The ImageMagick archive file still exists"
      if [ $? -ne 0 ]; then
         return 1
      fi
    fi

    return 0
}

#
# Execute the installation routine
#

#
# Remove the archive if it already exists
#
rm -f ${imageMagickArchive}*

if [ "root" != "${currentUser}" ]; then
  raiseFatal "You must be root to execute this script"
fi

if ${downloadRequiresCredentials}; then
  read -p "Please enter your ${imageMagickDownloadUrlDesc} username: " downloadUsername
  read -p "Please enter your ${imageMagickDownloadUrlDesc} password: " downloadPassword
  if [ -z "${downloadUsername}" -o -z "${downloadPassword}" ]; then
    raiseFatal "You must specify both a ${imageMagickDownloadUrlDesc} username and password"
  fi
fi

installDependencies

fatalIfFailed "Failed to install dependencies"

downloadArchive

fatalIfFailed "Failed to download the archive"

extractArchive

fatalIfFailed "Failed to extract the archive"

installImageMagick

fatalIfFailed "Failed to install ImageMagick"

createSymLink

fatalIfFailed "Failed to create a symbolic link for ImageMagick"

removeArchive

fatalIfFailed "Failed to remove the downloaded ImageMagick archive"
Post Reply