Wednesday, March 11, 2009


PHP, Help from Companies & Licenses

Having been at a Conference a few days ago, I was reminded of something. I have several times been asked how companies can help PHP. And my typical answer is about contributing tests and making sure PHP runs under or with their products, be that operating systems, databases or other back ends; or tools in any way. However I just updated the PHP Version info in a few hundred source files from 'PHP Version 5' to 'PHP Versoin 6'. And I also found that the License file lacked an update to 2009. And at this point you might already guess what the addition to my typical answer is. Why can Zend not simply change the license of the Zend Engine to PHP License?

Why do we want this?

Becasue it creates issues with using PHP. And we do not even inform people about it, because we are silent about this fact.

So is there a reason why this has not happened already long ago?

Some people claim it is because of ownership. So one question actually is who owns the code. And being a friend of numbers and cryptic shell code, here is some data:

$> cvs annotate Zend 2>/dev/null |
grep -v '(changelo ' |
awk '/[0-9.]*.*\(/ {


for(n in C) {
printf "%5d %4.1f%% %s\n", C[n], C[n] * 100 / L, n
}' |

sort -r

36863 25.6% dmitry
29428 20.4% andi
15323 10.6% tony2001
9541 6.6% stas
6894 4.8% andrei
6665 4.6% zeev
6504 4.5% felipe
5711 4.0% helly
5381 3.7% scottmac
5341 3.7% sebastia
2760 1.9% iliaa
2607 1.8% nlopess
1731 1.2% derick
1550 1.1% sniper
1108 0.8% kraghuba

I skipped changelog and everyone who contributed less than 1000 lines got stripped manually (which makes it 15 lines).

Does that mean Zend owns the engine? In terms of the License they do. In terms of contribution I do not. Simply because other people like me contributed does not mean we share ownership. Not even if there wasn't a single line written by Zend employees left. So is the other way round true, and Zend owns the engine because employees have written the engine? Also not, because we do not know whether they did it in their spare time or were paid for it. So why does Zend own the engine? Simply put, the License file says so.

And there is another area that uses an arbitrary License. The TSRM library. Here is the data (again top 15 lines only):

957 21.5% andi
804 18.0% zeev
785 17.6% dmitry
402 9.0% dbeu
384 8.6% sascha
242 5.4% sebastia
167 3.7% rvenkat
136 3.1% tony2001
99 2.2% wez
65 1.5% dreid
63 1.4% iliaa
53 1.2% stig
53 1.2% helly
50 1.1% sniper
28 0.6% sesser

The fun is that hardly anyone but Windows users need this library. Yet it interferes with using PHP in the same way the Zend License does. Simply because it is an arbitrary License.
Blogged with the Flock Browser


Hi Marcus,

You may be aware that Zend back in 2000 gave a grant to PHP which basically gives PHP the right to use the Zend Engine as an integral part of PHP "under the PHP license". This only simplified an already very simple situation as it is licensed under a BSD-style license (as are many other 3rd party pieces which make up PHP).

In any case this is not a Zend and TSRM thing but PHP like most open-source projects actually depends on a large amount of additional code, a lot of it in the core, which also has different licenses (and even the Zend Engine depends on some third party code). So even if you change Zend and TSRM license you would still be left with probably at least 1-2 dozens of licenses - all harmless as they have already been vetted many times as license compatible code:
php5$ find ./ -name "*.c" -exec grep -i "(c)" {} \; -print

In any case would be happy to discuss this further if you want. It is 9 years after this license grant and times, licenses, the world have changed many times since then.
Hi Marcus,

I agree with the license problem. It should really be under the PHP License like any other part of PHP, and renamed, merged, integrated as many features are duplicated.

About using stats to show ownerships, pointless, honestly :)
Post a Comment

Links to this post:

Create a Link

<< Home

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]