On Wed, 8 Jul 2026 at 11:01, Giovanni Giacobbi <[email protected]> wrote:
>
> Greetings,
>
> For many years, PHP shipped with a bundled libgd as an alternative to the 
> system version. The bundled libgd is a custom version of upstream, originally 
> based on GD-2.0, and over time cherry-picked backports and customizations, 
> such as custom memory allocators, have been made. Due to this divergence, it 
> is difficult to assess exactly what the changes are in the bundled library 
> compared to upstream, as diffing against any upstream branch or tag yields a 
> massive diff with a lot of noise.
>
> A proper resync with upstream has been due for a long time, and very needed, 
> and I think it's great that this is happening, but I have some concerns I 
> would like to highlight, just to be on the safe side of things.
>
> In the past few years, upstream libgd repository has seen very low activity, 
> but recently development was restarted at a very fast pace, with a lot of new 
> interesting features being added to master and several fixes to the stable 
> branch.
>
> Last week GH-22532 [1] was opened for php-src to "Sync bundled libgd to 
> 2.4.0".
>
> Here is a quick recap on the upstream repository [2] at the time of writing:
>
> libgd/GD-2.3:
>  - Last release 2.3.3, september 2011
>  - Activity until may 2026 (src/ only): 38 commits, 21 files changed, 179 
> insertions(+), 102 deletions(-)
>  - Activity since may 2026 (src/ only): 21 commits, 21 files changed, 1.234 
> insertions(+), 386 deletions(-)
>
> libgd/master (GD-2.4):
>  - Never released
>  - Activity since may 2026 (src/ only): 68 commits, 136 files changed, 67.954 
> insertions(+), 47.472 deletions(-)
>
> This is the statistics on the PR in php-src at the time of writing:
>   $ git diff --stat upstream/master...gh/22532 | tail -1
>   137 files changed, 142.451 insertions(+), 32.476 deletions(-)
>
> Moreover, this is what i obtain by diffing the tip of the PR with the current 
> libgd/master:
>   $ diff -ur libgd-src/src php-src/ext/gd/libgd | diffstat | tail -1
>   84 files changed, 93.108 insertions(+), 15.278 deletions(-)
>
>
> I am NOT questioning the quality of the work, the new features in the library 
> look very promising and they would be a great addition to PHP, but I have the 
> following concerns I wanted to share:
>
>  1) This code was introduced in the upstream repository less than a month 
> ago, so it is relatively "young"
>  2) libgd-2.4.0 was never released nor tagged, thus no major distros are 
> shipping it
>  3) PHP-8.6 already tagged alpha1, giving overall a short timespan to test 
> the new bundled library
>  4) Introducing features in ext/gd that exist only in libgd-2.4 would in fact 
> force the bundled library as the only build option
>
> Given the above, I'd like to hear people's opinions on the matter. My concern 
> is that hitting the PHP-8.6 timeline may end up forcing rushed decisions, and 
> it would be preferable to wait for libgd-2.4.0 to have an actual upstream 
> release, and to give time to a broader audience to test the new features 
> before we commit to shipping them.
>
> Kind regards
> Giovanni Giacobbi
> @thg2k
>
>
> [1] https://github.com/php/php-src/pull/22532/
>
> [2]
>   git log --oneline gd-2.3.3..53cb765b -- src | wc -l
>   git diff --stat gd-2.3.3..53cb765b -- src | tail -1
>
>   git log --oneline 53cb765b..GD-2.3 -- src | wc -l
>   git diff --stat 53cb765b..GD-2.3 -- src | tail -1
>
>   git log --oneline 185b1f56..master -- src | wc -l
>   git diff --stat 185b1f56..master -- src | tail -1
>

I think it's too late in PHP 8.6 to merge it now. I also don't see any
need to rush things. Just wait until libgd 2.4 is released and merge
the changes into the next PHP version.

Reply via email to