Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 347519 - dev-php5/pecl-imagick: Problem compiling with libtool 2.2.x
Summary: dev-php5/pecl-imagick: Problem compiling with libtool 2.2.x
Status: RESOLVED NEEDINFO
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: PHP Bugs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-12-02 07:56 UTC by Martin Dobrev
Modified: 2010-12-27 22:09 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Modified version of libtool.m4 (pecl_install_imagick_modified.txt,19.63 KB, text/plain)
2010-12-02 10:28 UTC, Martin Dobrev
Details
Unmodified version of libtool.m4 (pecl_install_imagick_unmodified.txt,5.65 KB, text/plain)
2010-12-02 10:28 UTC, Martin Dobrev
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Dobrev 2010-12-02 07:56:33 UTC
After trying to compile dev-php5/pecl-imagick with PHP 5.2 the process throws an error and could not finish.

Imagick is currently masked for PHP 5.2, but this bug is not related to the PHP version. In my case I must stick to PHP 5.2 because of development restrictions in one of the hosted sites on the server.

Reproducible: Always

Steps to Reproduce:
1. Install the latest libtool version (2.2.10 in my case)
2. Install/have installed PHP 5.2.14-pl2-gentoo
3. Try to emerge dev-php/pecl-imagick or "pecl install imagick"

Actual Results:  
running: make
/bin/sh /var/tmp/pear-build-root/imagick-3.0.1/libtool --mode=compile cc  -I. -I/tmp/pear/download/imagick-3.0.1 -DPHP_ATOM_INC -I/var/tmp/pear-build-root/imagick-3.0.1/include -I/var/tmp/pear-build-root/imagick-3.0.1/main -I/tmp/pear/download/imagick-3.0.1 -I/usr/lib64/php5.2/include/php -I/usr/lib64/php5.2/include/php/main -I/usr/lib64/php5.2/include/php/TSRM -I/usr/lib64/php5.2/include/php/Zend -I/usr/lib64/php5.2/include/php/ext -I/usr/lib64/php5.2/include/php/ext/date/lib -I/usr/include/ImageMagick  -DHAVE_CONFIG_H  -g -O2   -c /tmp/pear/download/imagick-3.0.1/imagick_class.c -o imagick_class.lo
/var/tmp/pear-build-root/imagick-3.0.1/libtool: line 480: CDPATH: command not found
/var/tmp/pear-build-root/imagick-3.0.1/libtool: line 1304: func_opt_split: command not found
libtool: Version mismatch error.  This is libtool 2.2.10, but the
libtool: definition of this LT_INIT comes from an older release.
libtool: You should recreate aclocal.m4 with macros from libtool 2.2.10
libtool: and run autoconf again.
make: *** [imagick_class.lo] Error 63
ERROR: `make' failed

Expected Results:  
PECL Imagick to be successfuly compiled/emerged.

As I already said, this bug is not related to PHP or Imagick version as a whole. After doing some research on the net I found a solution of the problem:

1. Download the latest version of Imagick (currently 3.0.1)
2. Extract the sources and change to the correspondig folder
3. Run phpize
4. Remove aclocal.m4 if existing
5. Run "libtoolize --force --copy"
6. After that "cat `aclocal --print-ac-dir`/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 > build/libtool.m4"
7. Configure with --with-imagick flag set
8. make, make test, make install
9. Create an .ini file under /etc/php/apache2-php5.2/ext and link it to ../ext-active
10. Reload Apache server
Comment 1 Michael Weber (RETIRED) gentoo-dev 2010-12-02 09:50:53 UTC
Hi,

can you please attach the complete build.log and environment files (mentioned at the end of the emerge) and add your `emerge --info` to the comment.

Thanks
Comment 2 Martin Dobrev 2010-12-02 10:27:36 UTC
Hi Michael,

the ebuild of Imagick is being blocked by PHP 5.2:

emerge -av pecl-imagick

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild     U ] dev-php5/pecl-imagick-3.0.0 [2.1.1] USE="-examples" 92 kB
[blocks B     ] =dev-lang/php-5.2.14-r2 ("=dev-lang/php-5.2.14-r2" is blocking dev-php5/pecl-imagick-3.0.0)

Total: 1 package (1 upgrade), Size of downloads: 92 kB
Conflict: 1 block (1 unsatisfied)

 * Error: The above package list contains packages which cannot be
 * installed at the same time on the same system.

  (dev-php5/pecl-imagick-3.0.0, ebuild scheduled for merge) pulled in by
    pecl-imagick


That's why I used the pecl command to install it. In the mean time I found out that replacing libtool.m4 under /usr/lib64/php5.2/lib/build with the contents of the file in step 6. from my previous solution fixes the problem with pecl. But still there is a block on the ebuild and I cannot test it. 
Attached you'll find the result from the compilation attempt with the un/modified version of libtool.m4.



Portage 2.1.9.24 (default/linux/amd64/10.0/desktop, gcc-4.4.4, glibc-2.11.2-r3, 2.6.32-openvz-dzhanibekov.1 x86_64)
=================================================================
System uname: Linux-2.6.32-openvz-dzhanibekov.1-x86_64-Intel-R-_Xeon-R-_CPU_E5310_@_1.60GHz-with-gentoo-1.12.14
Timestamp of tree: Mon, 29 Nov 2010 12:15:02 +0000
app-shells/bash:     4.1_p7
dev-lang/python:     2.6.2-r1
dev-util/cmake:      2.8.1-r2
sys-apps/baselayout: 1.12.14-r1
sys-apps/sandbox:    1.6-r2
sys-devel/autoconf:  2.65-r1
sys-devel/automake:  1.5, 1.7.9-r1, 1.9.6-r2::<unknown repository>, 1.10.2, 1.11.1
sys-devel/binutils:  2.20.1-r1
sys-devel/gcc:       4.3.4, 4.4.4-r2
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.10
sys-devel/make:      3.81-r2
virtual/os-headers:  2.6.30-r1 (sys-kernel/linux-headers)
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=nocona -O2 -pipe -fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /var/qmail/alias /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5.2/ext-active/ /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5.2/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5.2/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=nocona -O2 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests binpkg-logs buildpkg distlocks fixlafiles fixpackages news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.bg/ http://ftp.gentoo.bg/ "
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="en"
MAKEOPTS="-j17"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi alsa amd64 apache2 authdaemond berkdb bluetooth branding bzip2 cairo cdr cli consolekit cracklib crypt cups cxx dbus dev-lang/php dri dts dvd dvdr emboss encode exif fam firefox flac fortran gdbm gif gpm gtk hal iconv imap ipv6 jpeg lcms ldap libnotify mad maildir mikmod mmx mng modules mp3 mp4 mpeg mudflap multilib ncurses nls nptl nptlonly ogg opengl openmp pam pango pcre pdf perl png ppds pppd python qt3support qt4 readline sdl session simplexml spell sse sse2 ssl startup-notification svg sysfs tcpd tiff truetype unicode usb valias vhosts vorbis x264 xcb xml xorg xulrunner xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" PHP_TARGETS="php5-2" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga neomagic nouveau nv r128 radeon savage sis tdfx trident vesa via vmware voodoo" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
Comment 3 Martin Dobrev 2010-12-02 10:28:27 UTC
Created attachment 256139 [details]
Modified version of libtool.m4
Comment 4 Martin Dobrev 2010-12-02 10:28:58 UTC
Created attachment 256141 [details]
Unmodified version of libtool.m4
Comment 5 Rafał Mużyło 2010-12-02 12:33:20 UTC
I think you can find major part of the answer in bug 220519.
Most of is is caused by phpize hack being incompatible with libtool 2.2 macro changes.
Comment 6 Martin Dobrev 2010-12-02 15:01:05 UTC
(In reply to comment #5)
> I think you can find major part of the answer in bug 220519.
> Most of is is caused by phpize hack being incompatible with libtool 2.2 macro
> changes.
> 

It's already clear ;). But most important is that one cannot emerge dev-php5/pecl-imagick with PHP 5.2 and this is not a restriction of the source itself. In my opinion one can include a specific logic in the ebuild to check if libtool 2.2 is being used and replace the macro file after that. 
Comment 7 Rafał Mużyło 2010-12-02 21:24:28 UTC
(In reply to comment #6)
> In my opinion one can include a specific logic in the ebuild to check
> if libtool 2.2 is being used and replace the macro file after that. 
> 

Definitely not. libtool 2.2 has been in stable long enough.
The question here is why php-ext-source-r1_phpize doesn't work properly.
So, what about that build log ?
(obviously, that about the ebuild, chances are pecl itself is simply broken)
Comment 8 Ole Markus With (RETIRED) gentoo-dev 2010-12-07 07:29:27 UTC
You could not emerge pecl-imagick-3.0.0 because php-5.2.14-r2 blocks pecl-imagick. Because of this, you tried to install the package using the pecl installer. Am I correct about this?

If so, you are using minor version slotted php ebuild in combination with a pecl ebuild that does not support minor version slotting. If you try e.g pecl-imagick-3.0.0-r1, or even pecl-imagick-3.0.0-r1, you should have more luck.

Installing using the pecl installer is not supported because of the libtool issue, but using the pecl ebuilds,which eautoreconfs, should work as expected.
Comment 9 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2010-12-27 22:09:52 UTC
need info regarding comment #8. Reopen if desired, while reponding to that comment. thx.