Package Details: php74-gd 7.4.33-9

Git Clone URL: https://aur.archlinux.org/php74.git (read-only, click to copy)
Package Base: php74
Description: gd module for php74
Upstream URL: http://www.php.net
Licenses: PHP
Submitter: tompear
Maintainer: el_aur
Last Packager: el_aur
Votes: 11
Popularity: 0.013948
First Submitted: 2021-01-31 11:48 (UTC)
Last Updated: 2024-07-25 13:43 (UTC)

Pinned Comments

el_aur commented on 2022-01-27 12:06 (UTC) (edited on 2022-02-01 21:33 (UTC) by el_aur)

Read Carefully! Breaking changes in compare with native PHP package

  1. Console version /usr/bin/php74 is installed with php74-cli subpackage, php74 doesn't include it anymore!!!

  2. PEAR and PECL are available as php74-pear and php74-pecl subpackages

  3. All shared modules are respresented as stand-alone subpackages and are not included with php74 package anymore.

  4. No more extensions in php.ini itself! Separate INI files for each extension are placed in /etc/php74/conf.d They are loaded in correct order according to priority

  5. Modules: mysqlnd, mysqli and pdo_mysql are moved to single package php74-mysql

  6. php74-xsl requires php74-xml and php74-dom to be installed

  7. php74-enchant build with dependencies: libvoikko, hspell, hunspell, nuspell, aspell

Latest Comments

« First ‹ Previous 1 .. 3 4 5 6 7 8 9 10 Next › Last »

Raniz commented on 2021-09-23 08:21 (UTC) (edited on 2021-09-23 08:34 (UTC) by Raniz)

Apply the following patch and it builds with gd-2.3.3:

diff --git a/PKGBUILD b/PKGBUILD
index dd2d621..03c7e95 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -66,6 +66,7 @@ source=(
   'php.ini.patch'
   'phpize.m4.patch'
   'enchant-2.patch'
+  'gd-2.3.3.patch'
 )
 sha256sums=(
   'cea52313fcffe56343bcd3c66dbb23cd5507dc559cc2e3547cf8f5452e88a05d'
@@ -77,6 +78,8 @@ sha256sums=(
   '3a6d101962db9d311d9bba3b561b9dfd417701d9d2b607b70b9df218f6e029d7'
   '354b1d5fd83e9902c6a4f7ca5d2101631bd67404f3c55a7194d9a6862656b479'
   'd94d22ad8bcd13829addda84e9de6b73fa04be9bc6da8622086c7e19c97ab724'
+  'baa45823805da7f908a3d9cf800b0ddb1cd8c8fb1a605542fbdc7bc7596f0a96'
+
 )

 validpgpkeys=(
@@ -92,6 +95,7 @@ prepare() {
   patch -p0 -i ${srcdir}/php.ini.patch
   patch -p0 -i ${srcdir}/phpize.m4.patch
   patch -p0 -i ${srcdir}/enchant-2.patch
+  patch -p0 -i ${srcdir}/gd-2.3.3.patch
   autoconf

   rm tests/output/stream_isatty_*.phpt
diff --git a/gd-2.3.3.patch b/gd-2.3.3.patch
new file mode 100644
index 0000000..f265f6e
--- /dev/null
+++ b/gd-2.3.3.patch
@@ -0,0 +1,47 @@
+diff --git a/ext/gd/gd.c b/ext/gd/gd.c
+index 336a739692..a32dfaa64b 100644
+--- ext/gd/gd.c
++++ ext/gd/gd.c
+@@ -91,6 +91,10 @@ static int le_gd, le_gd_font;
+ #define M_PI 3.14159265358979323846
+ #endif
+ 
++/* don't used libgd constants, not used, so going to be removed */
++#define PHP_GD_FLIP_HORIZONTAL 1
++#define PHP_GD_FLIP_VERTICAL   2
++#define PHP_GD_FLIP_BOTH       3
+ #ifdef HAVE_GD_FREETYPE
+ static void php_imagettftext_common(INTERNAL_FUNCTION_PARAMETERS, int, int);
+ #endif
+@@ -1137,9 +1141,9 @@ PHP_MINIT_FUNCTION(gd)
+     /* GD2 image format types */
+   REGISTER_LONG_CONSTANT("IMG_GD2_RAW", GD2_FMT_RAW, CONST_CS | CONST_PERSISTENT);
+   REGISTER_LONG_CONSTANT("IMG_GD2_COMPRESSED", GD2_FMT_COMPRESSED, CONST_CS | CONST_PERSISTENT);
+-  REGISTER_LONG_CONSTANT("IMG_FLIP_HORIZONTAL", GD_FLIP_HORINZONTAL, CONST_CS | CONST_PERSISTENT);
+-  REGISTER_LONG_CONSTANT("IMG_FLIP_VERTICAL", GD_FLIP_VERTICAL, CONST_CS | CONST_PERSISTENT);
+-  REGISTER_LONG_CONSTANT("IMG_FLIP_BOTH", GD_FLIP_BOTH, CONST_CS | CONST_PERSISTENT);
++  REGISTER_LONG_CONSTANT("IMG_FLIP_HORIZONTAL", PHP_GD_FLIP_HORIZONTAL, CONST_CS | CONST_PERSISTENT);
++  REGISTER_LONG_CONSTANT("IMG_FLIP_VERTICAL", PHP_GD_FLIP_VERTICAL, CONST_CS | CONST_PERSISTENT);
++  REGISTER_LONG_CONSTANT("IMG_FLIP_BOTH", PHP_GD_FLIP_BOTH, CONST_CS | CONST_PERSISTENT);
+   REGISTER_LONG_CONSTANT("IMG_EFFECT_REPLACE", gdEffectReplace, CONST_CS | CONST_PERSISTENT);
+   REGISTER_LONG_CONSTANT("IMG_EFFECT_ALPHABLEND", gdEffectAlphaBlend, CONST_CS | CONST_PERSISTENT);
+   REGISTER_LONG_CONSTANT("IMG_EFFECT_NORMAL", gdEffectNormal, CONST_CS | CONST_PERSISTENT);
+@@ -4696,15 +4700,15 @@ PHP_FUNCTION(imageflip)
+   }
+ 
+   switch (mode) {
+-      case GD_FLIP_VERTICAL:
++      case PHP_GD_FLIP_VERTICAL:
+           gdImageFlipVertical(im);
+           break;
+ 
+-      case GD_FLIP_HORINZONTAL:
++      case PHP_GD_FLIP_HORIZONTAL:
+           gdImageFlipHorizontal(im);
+           break;
+ 
+-      case GD_FLIP_BOTH:
++      case PHP_GD_FLIP_BOTH:
+           gdImageFlipBoth(im);
+           break;
+ 

It's a backport of the patch applied to 8.1+

tompear commented on 2021-09-22 12:15 (UTC)

https://wiki.archlinux.org/title/Downgrading_packages

Github link is only informationally, there is description of the reason why you cant build PHP with newer gd version.

hamedsbt commented on 2021-09-22 11:48 (UTC) (edited on 2021-09-22 12:15 (UTC) by hamedsbt)

@tompear, How I can downgrade 'gd' to 2.3.2? the gd-git.v2.3.2.r420.g826e5462-1 installed but I can't build php74-intl :( also I can't use your provided github link to downgrade the gd.

tompear commented on 2021-09-17 06:48 (UTC) (edited on 2021-09-17 06:53 (UTC) by tompear)

Downgrade 'gd' to 2.3.2. In 2.3.3 some macros have been removed and older versions of PHP will not build anymore.

There are details https://github.com/libgd/libgd/commit/bdc281eadb1d58d5c0c7bbc1125ee4674256df08

zack6849 commented on 2021-09-16 16:27 (UTC)

https://github.com/libgd/libgd/issues/318 https://github.com/php/php-src/pull/7490

Tried using gd-git, no dice.

zack6849 commented on 2021-09-16 16:12 (UTC)

I'm getting errors when compiling with GD right now -- anyone have any ideas?

/home/zack/.cache/aurutils/sync/php74/src/php-7.4.23/ext/gd/gd.c: In function ‘zm_startup_gd’:
/home/zack/.cache/aurutils/sync/php74/src/php-7.4.23/ext/gd/gd.c:1140:55: error: ‘GD_FLIP_HORINZONTAL’ undeclared (first use in this function)
 1140 |         REGISTER_LONG_CONSTANT("IMG_FLIP_HORIZONTAL", GD_FLIP_HORINZONTAL, CONST_CS | CONST_PERSISTENT);
      |                                                       ^~~~~~~~~~~~~~~~~~~
/home/zack/.cache/aurutils/sync/php74/src/php-7.4.23/Zend/zend_constants.h:53:105: note: in definition of macro ‘REGISTER_LONG_CONSTANT’
   53 | #define REGISTER_LONG_CONSTANT(name, lval, flags)  zend_register_long_constant((name), sizeof(name)-1, (lval), (flags), module_number)
      |                                                                                                         ^~~~
/home/zack/.cache/aurutils/sync/php74/src/php-7.4.23/ext/gd/gd.c:1140:55: note: each undeclared identifier is reported only once for each function it appears in
 1140 |         REGISTER_LONG_CONSTANT("IMG_FLIP_HORIZONTAL", GD_FLIP_HORINZONTAL, CONST_CS | CONST_PERSISTENT);
      |                                                       ^~~~~~~~~~~~~~~~~~~
/home/zack/.cache/aurutils/sync/php74/src/php-7.4.23/Zend/zend_constants.h:53:105: note: in definition of macro ‘REGISTER_LONG_CONSTANT’
   53 | #define REGISTER_LONG_CONSTANT(name, lval, flags)  zend_register_long_constant((name), sizeof(name)-1, (lval), (flags), module_number)
      |                                                                                                         ^~~~
/home/zack/.cache/aurutils/sync/php74/src/php-7.4.23/ext/gd/gd.c:1141:53: error: ‘GD_FLIP_VERTICAL’ undeclared (first use in this function)
 1141 |         REGISTER_LONG_CONSTANT("IMG_FLIP_VERTICAL", GD_FLIP_VERTICAL, CONST_CS | CONST_PERSISTENT);
      |                                                     ^~~~~~~~~~~~~~~~
/home/zack/.cache/aurutils/sync/php74/src/php-7.4.23/Zend/zend_constants.h:53:105: note: in definition of macro ‘REGISTER_LONG_CONSTANT’
   53 | #define REGISTER_LONG_CONSTANT(name, lval, flags)  zend_register_long_constant((name), sizeof(name)-1, (lval), (flags), module_number)
      |                                                                                                         ^~~~
/home/zack/.cache/aurutils/sync/php74/src/php-7.4.23/ext/gd/gd.c:1142:49: error: ‘GD_FLIP_BOTH’ undeclared (first use in this function)
 1142 |         REGISTER_LONG_CONSTANT("IMG_FLIP_BOTH", GD_FLIP_BOTH, CONST_CS | CONST_PERSISTENT);
      |                                                 ^~~~~~~~~~~~
/home/zack/.cache/aurutils/sync/php74/src/php-7.4.23/Zend/zend_constants.h:53:105: note: in definition of macro ‘REGISTER_LONG_CONSTANT’
   53 | #define REGISTER_LONG_CONSTANT(name, lval, flags)  zend_register_long_constant((name), sizeof(name)-1, (lval), (flags), module_number)
      |                                                                                                         ^~~~
/home/zack/.cache/aurutils/sync/php74/src/php-7.4.23/ext/gd/gd.c: In function ‘zif_imageflip’:
/home/zack/.cache/aurutils/sync/php74/src/php-7.4.23/ext/gd/gd.c:4699:22: error: ‘GD_FLIP_VERTICAL’ undeclared (first use in this function)
 4699 |                 case GD_FLIP_VERTICAL:
      |                      ^~~~~~~~~~~~~~~~
/home/zack/.cache/aurutils/sync/php74/src/php-7.4.23/ext/gd/gd.c:4703:22: error: ‘GD_FLIP_HORINZONTAL’ undeclared (first use in this function)
 4703 |                 case GD_FLIP_HORINZONTAL:
      |                      ^~~~~~~~~~~~~~~~~~~
/home/zack/.cache/aurutils/sync/php74/src/php-7.4.23/ext/gd/gd.c:4707:22: error: ‘GD_FLIP_BOTH’ undeclared (first use in this function)
 4707 |                 case GD_FLIP_BOTH:
      |                      ^~~~~~~~~~~~
make: *** [Makefile:1087: ext/gd/gd.lo] Error 1

ihipop commented on 2021-08-02 06:11 (UTC) (edited on 2021-08-02 06:47 (UTC) by ihipop)

@tompear

  • you are right,this package doesn't conflicts with default php package

  • php-pear http://aur.archlinux.org/packages/php-pear works with multi version php,it's has a internal switch to set which php version suffix to use

  • I will install default php package to have php-pear installed and use php74 to run it instead

PHP_PEAR_PHP_BIN=php74 pear config-set  php_suffix '74' system
PHP_PEAR_PHP_BIN=php74 pecl -d php_suffix=74 install swoole

tompear commented on 2021-07-30 07:45 (UTC)

Why should i do that? In my opinion it doesnt provide php as is, its php 7.4. Adding this is not good or even right solution but i can be wrong.

ihipop commented on 2021-07-29 03:46 (UTC)

can you add

provides=('php')

to this package?

tompear commented on 2021-06-21 13:38 (UTC)

There is syntax error in my comment about running tests manually. It should be:

export REPORT_EXIT_STATUS=1;export NO_INTERACTION=1;export SKIP_ONLINE_TESTS=1;export SKIP_SLOW_TESTS=1;export TEST_PHP_ARGS="-j$(nproc)";export TESTS='tests Zend'; ../build/sapi/cli/php -n run-tests.php -n -P {tests,Zend}

-P option is not part of PHP command and this one produces an error. This option is related with 'run-tests.php' script. I didnt paste command properly, there is no script to run.