Re: Concerns about syncing bundled libgd to upstream 2.4 (GH-22532)

From: Date: Wed, 08 Jul 2026 10:34:28 +0000
Subject: Re: Concerns about syncing bundled libgd to upstream 2.4 (GH-22532)
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-131809@lists.php.net to get a copy of this message
On Wed, 8 Jul 2026 at 11:01, Giovanni Giacobbi <giovanni@giacobbi.net> 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.

« previous php.internals (#131809) next »