Bug 233522

Summary: graphics/pecl-imagick : 3.4.3_3 does not support ImageMagick7-nox11-7.0.8.14_1
Product: Ports & Packages Reporter: Arnaud de Prelle <arnaud>
Component: Individual Port(s)Assignee: Martin Matuska <mm>
Status: Closed FIXED    
Severity: Affects Only Me CC: arnaud, d8zNeCFG, pikachu17997
Priority: --- Flags: bugzilla: maintainer-feedback? (mm)
Version: Latest   
Hardware: Any   
OS: Any   

Description Arnaud de Prelle 2018-11-25 22:53:24 UTC
This error appeared when I recently switched ImageMagick6-nox11 to ImageMagick7-nox11 (switch performed via portmaster -o) :
PHP Warning:  PHP Startup: Unable to load dynamic library 'imagick.so' (tried: /usr/local/lib/php/20170718/imagick.so (Shared object "libMagickWand-6.so.5" not found, required by "imagick.so"), /usr/local/lib/php/20170718/imagick.so.so (Cannot open "/usr/local/lib/php/20170718/imagick.so.so")) in Unknown on line 0

Reinstalling faulty pecl-imagick module seems impossible as there might be a hard-dependency on ImageMagick 6.

root@icecube BSD:/usr/ports/graphics/pecl-imagick # make reinstall clean
===>  License PHP301 accepted by the user
===>   php72-pecl-imagick-3.4.3_3 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by php72-pecl-imagick-3.4.3_3 for building
===>  Extracting for php72-pecl-imagick-3.4.3_3
=> SHA256 Checksum OK for PECL/imagick-3.4.3.tgz.
===>  Patching for php72-pecl-imagick-3.4.3_3
===>   php72-pecl-imagick-3.4.3_3 depends on file: /usr/local/bin/phpize - found
===>   php72-pecl-imagick-3.4.3_3 depends on package: autoconf>0 - found
===>   php72-pecl-imagick-3.4.3_3 depends on package: pkgconf>=1.3.0_1 - found
===>   php72-pecl-imagick-3.4.3_3 depends on shared library: libMagickWand-6.so - not found
===>  Installing for ImageMagick6-nox11-6.9.10.14_1,1
===>   Registering installation for ImageMagick6-nox11-6.9.10.14_1,1 as automatic
Installing ImageMagick6-nox11-6.9.10.14_1,1...
pkg-static: ImageMagick6-nox11-6.9.10.14_1,1 conflicts with ImageMagick7-nox11-7.0.8.14_1 (installs files into the same place).  Problematic file: /usr/local/bin/Magick++-config
*** Error code 70

Stop.
make[5]: stopped in /usr/ports/graphics/ImageMagick6-nox11
*** Error code 1

Stop.
make[4]: stopped in /usr/ports/graphics/ImageMagick6-nox11
*** Error code 1

Stop.
make[3]: stopped in /usr/ports/graphics/ImageMagick6-nox11
*** Error code 1

Stop.
make[2]: stopped in /usr/ports/graphics/pecl-imagick
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/graphics/pecl-imagick
*** Error code 1

Stop.
Comment 1 Arnaud de Prelle 2018-11-25 23:00:06 UTC
As a temporary solution I quickly but dirtily solved it by doing this :

root@icecube BSD:/usr/ports/graphics/pecl-imagick # diff -u Makefile.orig Makefile
--- Makefile.orig       2018-11-25 23:57:07.299013000 +0100
+++ Makefile    2018-11-25 23:57:34.689319000 +0100
@@ -13,8 +13,8 @@

 OPTIONS_DEFINE=        X11

-X11_LIB_DEPENDS=       libMagickWand-6.so:graphics/ImageMagick6
-X11_LIB_DEPENDS_OFF=   libMagickWand-6.so:graphics/ImageMagick6-nox11
+X11_LIB_DEPENDS=       libMagickWand-7.so:graphics/ImageMagick7
+X11_LIB_DEPENDS_OFF=   libMagickWand-7.so:graphics/ImageMagick7-nox11

 USES=          php:pecl pkgconfig localbase


Could be good to make this dependency a variable.
Comment 2 commit-hook freebsd_committer freebsd_triage 2019-03-19 00:02:29 UTC
A commit references this bug:

Author: mm
Date: Tue Mar 19 00:01:16 UTC 2019
New revision: 496229
URL: https://svnweb.freebsd.org/changeset/ports/496229

Log:
  graphics/pecl-imagck: switch to ImageMagick 7

  PR:		233522
  Submitted by:	Arnaud de Prelle <arnaud@pnzone.net>

Changes:
  head/graphics/pecl-imagick/Makefile
Comment 3 Martin Birgmeier 2019-03-19 20:24:32 UTC
This now conflicts with ImageMagick6 which is required by

[0]# pkg query %rn-%rv ImageMagick6-6.9.10.22,1
libdmtx-0.7.4_11
pstoedit-3.70_9
php72-pecl-imagick-3.4.3_3
[0]# 

pstoedit and libdmtx in turn are required by

[0]# pkg query %rn-%rv libdmtx-0.7.4_11 
kf5-prison-5.56.0
[0]# pkg query %rn-%rv pstoedit-3.70_9 
calligra-3.1.0_11
[0]# 

So this means that KDE and Calligra must not be installed for this upgrade to succeed.

I think if changing this port, others which currently depend on ImageMagick6 should also be updated.
Comment 4 commit-hook freebsd_committer freebsd_triage 2019-03-20 09:34:52 UTC
A commit references this bug:

Author: mm
Date: Wed Mar 20 09:34:16 UTC 2019
New revision: 496324
URL: https://svnweb.freebsd.org/changeset/ports/496324

Log:
  Switch pecl-imagick back to ImageMagick 6.
  There will be a slave port pecl-imagick-im7 with dependency on ImageMagick 7.

  PR:		233522

Changes:
  head/graphics/pecl-imagick/Makefile
Comment 5 Arnaud de Prelle 2019-03-25 09:24:11 UTC
Hi,

This is not the right move imho.
Default should be to use latest version of ImageMagick7 and adapt all deps.

Currently ImageMagick6 depends on flawed openjpeg :

===>>> Starting build for ports that need updating <<<===

===>>> Launching child to install graphics/pecl-imagick@php72

===>>> All >> graphics/pecl-imagick@php72 (1/6)

===>>> Currently installed version: php72-pecl-imagick-3.4.3_4
===>>> Port directory: /usr/ports/graphics/pecl-imagick@php72

===>>> Starting check for build dependencies
===>>> Gathering dependency list for graphics/pecl-imagick@php72 from ports
===>>> Launching child to install graphics/ImageMagick6-nox11

===>>> All >> php72-pecl-imagick-3.4.3_4 >> graphics/ImageMagick6-nox11 (2/6)

===>>> Port directory: /usr/ports/graphics/ImageMagick6-nox11

===>>> Starting check for build dependencies
===>>> Gathering dependency list for graphics/ImageMagick6-nox11 from ports
===>>> Launching child to install graphics/openjpeg

===>>> All >> php72-pecl-imagick-3.4.3_4 >> graphics/ImageMagick6-nox11 >> graphics/openjpeg (3/6)

===>>> Port directory: /usr/ports/graphics/openjpeg

===>>> Starting check for build dependencies
===>>> Gathering dependency list for graphics/openjpeg from ports
===>>> Dependency check complete for graphics/openjpeg

===>>> All >> php72-pecl-imagick-3.4.3_4 >> graphics/ImageMagick6-nox11 >> graphics/openjpeg (3/6)

===>  Cleaning for openjpeg-2.3.0_3
===>  openjpeg-2.3.0_3 has known vulnerabilities:
openjpeg-2.3.0_3 is vulnerable:
OpenJPEG -- integer overflow
CVE: CVE-2018-5727
WWW: https://vuxml.FreeBSD.org/freebsd/5efd7a93-2dfb-11e9-9549-e980e869c2e9.html

1 problem(s) in the installed packages found.
=> Please update your ports tree and try again.
=> Note: Vulnerable ports are marked as such even if there is no update available.
=> If you wish to ignore this vulnerability rebuild with 'make DISABLE_VULNERABILITIES=yes'
*** Error code 1

Stop.
make: stopped in /usr/ports/graphics/openjpeg

===>>> make build failed for graphics/openjpeg
===>>> Aborting update

===>>> Update for graphics/openjpeg failed
===>>> Aborting update

===>>> Update for graphics/ImageMagick6-nox11 failed
===>>> Aborting update

===>>> Update for graphics/pecl-imagick@php72 failed
===>>> Aborting update


===>>> You can restart from the point of failure with this command line:
       portmaster <flags> graphics/pecl-imagick@php72 graphics/ImageMagick6-nox11 graphics/openjpeg security/py-cryptography@py27 misc/help2man www/nginx
Comment 6 Arnaud de Prelle 2019-03-25 09:29:48 UTC
So for now, I'll force using im7 wherever I can. i.e.: portmaster -o graphics/pecl-imagick-im7 php72-pecl-imagick-3.4.3_4
Comment 7 Sunny007 2019-06-16 16:01:20 UTC
MARKED AS SPAM