From 2d35fdc190ece968faaf8e7745dcd1b260d10084 Mon Sep 17 00:00:00 2001 From: Remi Pommarel Date: Thu, 9 Sep 2021 16:36:50 +0200 Subject: [PATCH 1/2] php: phpize: Modify ltmain.sh to support sysroot path in .la files PHP's phpize is based on a very old libtool to generate build files for its extensions. This libtool does not support .la files with '=' to support sysroot. In order to support more PHP extension cross compilation this modifies ltmain.sh to support such path. This is a bit hackish has it only get sysroot from the used toolchain; the proper way to fix that is to have PHP developpers to update the autotools file used to build there extensions. --- .../patches/php-ltmain-sysroot-support.patch | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 srcpkgs/php/patches/php-ltmain-sysroot-support.patch diff --git a/srcpkgs/php/patches/php-ltmain-sysroot-support.patch b/srcpkgs/php/patches/php-ltmain-sysroot-support.patch new file mode 100644 index 000000000000..bbe0a514a9e8 --- /dev/null +++ b/srcpkgs/php/patches/php-ltmain-sysroot-support.patch @@ -0,0 +1,39 @@ +--- a/build/ltmain.sh 2021-09-09 15:19:14.822208365 +0200 ++++ b/build/ltmain.sh 2021-09-09 15:47:55.397011151 +0200 +@@ -2375,6 +2375,13 @@ EOF + *) . ./$lib ;; + esac + ++ newdependency_libs= ++ for deplib in $dependency_libs; do ++ deplib=$(echo "$deplib" | sed "s#^=\(.*\)#$(${CC} --print-sysroot)\1#") ++ newdependency_libs="$newdependency_libs $deplib" ++ done ++ dependency_libs=${newdependency_libs} ++ + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" != prog && test "$linkmode" != lib; }; then +@@ -5750,6 +5757,13 @@ fi\ + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; + esac ++ ++ newdependency_libs= ++ for deplib in $dependency_libs; do ++ deplib=$(echo "$deplib" | sed "s#^$(${CC} --print-sysroot)#=#") ++ newdependency_libs="$newdependency_libs $deplib" ++ done ++ + $echo > $output "\ + # $outputname - a libtool library file + # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP +@@ -5767,7 +5781,7 @@ library_names='$library_names' + old_library='$old_library' + + # Libraries that this one depends upon. +-dependency_libs='$dependency_libs' ++dependency_libs='$newdependency_libs' + + # Version information for $libname. + current=$current From 728ea12c9c2c1f4712042eb5b02215d3c0d983de Mon Sep 17 00:00:00 2001 From: Remi Pommarel Date: Thu, 9 Sep 2021 16:47:40 +0200 Subject: [PATCH 2/2] php-imagick: Cross compilation support --- ...pile-libmagick-header-file-search-path.patch | 17 +++++++++++++++++ srcpkgs/php-imagick/template | 5 +---- 2 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 srcpkgs/php-imagick/patches/0001-fix-cross-compile-libmagick-header-file-search-path.patch diff --git a/srcpkgs/php-imagick/patches/0001-fix-cross-compile-libmagick-header-file-search-path.patch b/srcpkgs/php-imagick/patches/0001-fix-cross-compile-libmagick-header-file-search-path.patch new file mode 100644 index 000000000000..16b8aaa57371 --- /dev/null +++ b/srcpkgs/php-imagick/patches/0001-fix-cross-compile-libmagick-header-file-search-path.patch @@ -0,0 +1,17 @@ +--- a/imagemagick.m4 2021-09-09 10:53:42.287881616 +0200 ++++ b/imagemagick.m4 2021-09-09 11:14:47.662312430 +0200 +@@ -167,6 +167,14 @@ AC_DEFUN([IM_FIND_IMAGEMAGICK],[ + + AC_MSG_RESULT([user location ${IM_IMAGEMAGICK_PREFIX}/include/ImageMagick-${IM_MAJOR_VERSION}/wand/MagickWand.h]) + ++ elif test -r "${IM_IMAGEMAGICK_PREFIX}/include/ImageMagick-${IM_MAJOR_VERSION}/MagickWand/MagickWand.h"; then ++ ++ IM_INCLUDE_FORMAT="MagickWand/MagickWand.h" ++ IM_HEADER_STYLE="SEVEN" ++ AC_DEFINE([IM_MAGICKWAND_HEADER_STYLE_SEVEN], [1], [ImageMagick 7.x style header]) ++ ++ AC_MSG_RESULT([${IM_PREFIX}/include/ImageMagick-${IM_MAJOR_VERSION}/MagickWand/MagickWand.h]) ++ + elif test -r "${IM_PREFIX}/include/ImageMagick-${IM_MAJOR_VERSION}/MagickWand/MagickWand.h"; then + + IM_INCLUDE_FORMAT="MagickWand/MagickWand.h" diff --git a/srcpkgs/php-imagick/template b/srcpkgs/php-imagick/template index dba22bb860cd..6fbe7d343c23 100644 --- a/srcpkgs/php-imagick/template +++ b/srcpkgs/php-imagick/template @@ -4,6 +4,7 @@ version=3.4.4 revision=3 wrksrc="imagick-$version" build_style=gnu-configure +configure_args="--with-imagick=${XBPS_CROSS_BASE}/usr" hostmakedepends="php-devel autoconf pkg-config" makedepends="php-devel pcre2-devel libmagick-devel" depends="php>=7.4.3" @@ -14,10 +15,6 @@ homepage="https://pecl.php.net/package/imagick" distfiles="https://pecl.php.net/get/imagick-$version.tgz" checksum=8dd5aa16465c218651fc8993e1faecd982e6a597870fd4b937e9ece02d567077 -if [ -n "$CROSS_BUILD" ]; then - broken="checking for MagickWand.h or magick-wand.h header... configure: error: Unable to find MagickWand.h or magick-wand.h header" -fi - pre_configure() { phpize }