php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #65167 Serious bug: You do not track ABI/API breakage
Submitted: 2013-06-30 10:28 UTC Modified: 2013-10-05 11:27 UTC
From: roucaries dot bastien+debian at gmail dot com Assigned:
Status: Not a bug Package: imagick (PECL)
PHP Version: Irrelevant OS: linux
Private report: No CVE-ID: None
 [2013-06-30 10:28 UTC] roucaries dot bastien+debian at gmail dot com
Description:
------------
Hi, 

The last version of php-imagick is targetted to 6.5.6

Newer version has breaked the ABI a lot of time.

Could you please check the ABI/API breakage using 
http://upstream-tracker.org/versions/imagemagick.html

Click on link from older version

For instance 6.5.7.0 break ABI:
by changing shadeImage::shadeImage signature adding a bool

6.5.9.0 change some constants:
Value of member CMYKOQuantum has been changed from 24 to 25.

etc...

As the debian mainteners of imagemagick I will be really vigilent about ABI/API breakage in the future, but you must do a newer release for the current version.

BTW could you use pkg-config to get compile path /cflags ?

Newer version of imagemagick are quantum neutral

Test script:
---------------
None

Expected result:
----------------
no breakage

Actual result:
--------------
Breakage due to ABI/API breakage

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2013-06-30 11:27 UTC] mkoppanen@php.net
Hello,

I quite don't understand the issues you're raising here. Are you sure you are not 
talking about ImageMagick ABI breakage? The version numbers really refer to 
ImageMagick rather than the PHP Imagick extension.

For ImageMagick bugs please refer to: http://www.imagemagick.org/discourse-server/
 [2013-06-30 11:28 UTC] mkoppanen@php.net
-Status: Open +Status: Feedback
 [2013-06-30 18:50 UTC] roucaries dot bastien+debian at gmail dot com
-Status: Feedback +Status: Open
 [2013-06-30 18:50 UTC] roucaries dot bastien+debian at gmail dot com
No php-imagick is linked with imagemagick lib.

php-imagick call some method of imagemagick. But these method have changed so your package is broken (it does not automatically generate the call glue but use a manual method). 

I suggest to use the upstream tracker in order to get a breakage of ABI list in order to simplifie your work, and help to upgrade the constant list or the parameter order to imagemagick lib.

bastien
 [2013-06-30 18:53 UTC] roucaries dot bastien+debian at gmail dot com
I means I am perfeclty sure that your package is broken*

I am planning to transition your package on the debian side to a newer version of imagemagick lib, and your package broke due to incorrect linking glue.

bastien

*it is also the fault of imagemagick that change the ABI/API. But because your package hardcode a lot of calling convention a simple recompilation with newer imagemagick is not sufficient, you need to change the calling convention and constant value.
 [2013-07-01 02:51 UTC] mkoppanen@php.net
Hello,

I am not quite sure I still fully understand what the issue is. Looking it php-
imagick way to register constants:

https://github.com/mkoppanen/imagick/blob/master/imagick_helpers.c#L490

They are all registered using the constant names rather than hard-coded values. 
So from my perspective recompilation should be enough.

For ImageMagick ABI breakage there is not I can really do.

The config process uses Wand-config / MagickWand-config, which I think is a 
wrapper for pkg-config. I would be very hesitant to fix something that is not 
broken.
 [2013-07-28 14:28 UTC] roucaries dot bastien+debian at gmail dot com
* Ok for constant.
* YOud said "For ImageMagick ABI breakage there is not I can really do.". The problem is that some function get less or more parameters or parameters change that could break on other arh than amd64/i386. So you must track the ABI of imagemagick.
* about script I will carry a patch on my side.

Bastien
 [2013-07-29 02:43 UTC] mkoppanen@php.net
Can you be more specific which methods actually break? Looking at upstream tracker 
most of the changes are in C++ and MagickCore APIs where as the PHP extension uses 
the MagickWand API.
 [2013-09-25 07:21 UTC] mkoppanen@php.net
-Status: Open +Status: Feedback
 [2013-10-05 10:06 UTC] roucaries dot bastien+debian at gmail dot com
-Status: Feedback +Status: Open
 [2013-10-05 10:06 UTC] roucaries dot bastien+debian at gmail dot com
Libwand include api/abi from libmagickcore.

You should be sure to only use export from wand.

In this case you are safe

Bastien
 [2013-10-05 11:27 UTC] mkoppanen@php.net
-Status: Open +Status: Not a bug
 [2013-10-05 11:27 UTC] mkoppanen@php.net
Closing this as "Not a bug" for now. Thanks!
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Wed Apr 24 17:01:30 2024 UTC