I did the review of php-bartlett-PHP-CompatInfo for Remi (CCed, but he
is on the list anyway), and a licensing issue arose. Remi removed the
files from the package so that we wouldn't delay the review, but now
comes the time to fix the issue.
The situation is as follows:
1. PHP_CompatInfo is BSD-licensed.
2. In its unit tests it has a copy of a file from the PHP source code,
which is PHP-licensed.
3. This file is not used at run time by PHP_CompatInfo. It is not even
run during the unit tests, only parsed, as it presents an interesting
reproducer for a bug that had been reported to PHP_CompatInfo:
(it is actually not even usable at all outside of the rest of the PHP
As such, what would be the license of the php-bartlett-PHP-CompatInfo
package if Remi adds this file back:
- "BSD and PHP"?
- or simply "BSD", because parsing a file as a regression
unit test is not considered the same way as running code?
Also, I am personally a bit worried about those two paragraphs in the
3. The name "PHP" must not be used to endorse or promote products
derived from this software without prior written permission. For
written permission, please contact group(a)php.net.
4. Products derived from this software may not be called "PHP", nor
may "PHP" appear in their name, without prior written permission
from group(a)php.net. You may indicate that your software works in
conjunction with PHP by saying "Foo for PHP" instead of calling
it "PHP Foo" or "phpfoo"
Is PHP_CompatInfo considered a derived work of PHP because it includes a
file from the PHP source code in its unit tests? Should the upstream
author be concerned about renaming his module, or asking for permission
to the PHP group? If he gets a written permission, should it (most
likely the email with full headers) be included in Remi's package?
Or are we making a mountain out of a molehill and there is absolutely
nothing to worry about with this module?
Thanks in advance,
PS: I voluntarily left aside the fact that the package is actually "BSD
and MIT"-licensed because it bundles a copy of jQuery. I don't think it
is relevant to this specific issue though, and it would only have made
it more complex for me to explain it, which is why I decided it to leave
it to a post-scriptum.