Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:128016 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by lists.php.net (Postfix) with ESMTPS id 1F2D91A00BC for ; Sat, 12 Jul 2025 19:33:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1752348711; bh=Olfjl5r3NEPfmphvB5dIWSOSflZO+Kpem+ldSaWWJfM=; h=From:Subject:Date:References:To:In-Reply-To:From; b=Fh0JtP6rXi68FdvkdOKQjQAuPjP202oIsZZQad0bRMJUR4QJm9ic3VF8zS96I3o5B lnB/t23DRRB5gfzVdr/X4fDMw1cI7cfpTl/LR9OBC4bUWWXRL3XGcucW2Ec1YzNldr 1jZx1jR5VZeaCrIv7Q54jI/ClCE2/N7LSyOnik0KSqzOFZs+e7g0c5FJ1DuXReKraJ SrPwgLQVi2aXaZh9fZlyBlEBQXomIsqie+rX7X3afYJQRATb/+wva44Ln1AnSmh7nC rZZMLrm1P01a0sVrmIxppbu57wXnog38hSI4E1TfQuLKLJ39KsgPv9JZzvKCYQn8B2 kFA4R0C6joqJA== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id AA83F18005B for ; Sat, 12 Jul 2025 19:31:50 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.9 required=5.0 tests=BAYES_40,DMARC_NONE, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: Error (Cannot connect to unix socket '/var/run/clamav/clamd.ctl': connect: Connection refused) X-Envelope-From: Received: from mail-yw1-f173.google.com (mail-yw1-f173.google.com [209.85.128.173]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Sat, 12 Jul 2025 19:31:40 +0000 (UTC) Received: by mail-yw1-f173.google.com with SMTP id 00721157ae682-711a3dda147so33862017b3.2 for ; Sat, 12 Jul 2025 12:33:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752348808; x=1752953608; h=message-id:in-reply-to:to:references:date:subject:mime-version :content-transfer-encoding:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aA43jVu8luLyY0GQ5vxJjoFFs7YEPCCcYkkRzr8xLMo=; b=A0TkP3nnLcALM6u3fcKY5q673DSVyelfmf74nl4Db3SG829yipupwNfys109Q3becq MDH+Mtg5LFiywa7/S/AE0+UP94vPA4Od1lasmIB8muTNaKf/JH0LVatQdhXQn49Gk5hD o/ADu4lXAIx1BGxKRVvYsa2CBAf3HbecDJeVcB6VXbu+oZFjXhXrifRrAwT7ryWjEwC5 3fNZVJv1LgzZxcY7iBryGO9QFfXzbzg4m8M8UOm/vHLE/kiyOBVJFxxF2vX2Y/0bMp5S gBK1QluwYKrFIbidrtppuGsi5h8Y2O2/Ow0grBkZ2CCM9agXrC8gGjh+CVuen0wQ7G0e KfUg== X-Gm-Message-State: AOJu0YxQ8hiBoHYjmCYbBwMlsXJbfaudY43JjkvC3KtIgvERa8fWyXGi eRXy2a6BEqCljS4U1KxBXzGvZqEmzsc22J+t8Qey7PPLBpTx6tMGiYNPArIG/LlJf7VZYRyiBfs uPMVoFA== X-Gm-Gg: ASbGnctyDot6FEdYJ3m7JTa/uEXQbF8Rv/fkaPsFxlSNYiv3YFgDmJvy4+MaEf2cJY7 gBxpPXOjqXsTxGInjUmy4X90AkO7n7r/bFUChu0fvRVNkkTLXOrmK1G6jwjNrjDbm+UxY+P7iRU pZsSWI8+heKS+fDFB9QBGyAPb4Gw2VtGn0z+aLS6U2VORh+EONVaeK5VB4msuiJZWGv9M5jzGgq W1Y+xw+YE9Dx3jOjpv6/eAz1AeiApnwuC6SHMpwMaL6DkYgtzSjfJ3QYvdJXJsgN4cMywm1XKKT zIJTNqjTPt4UsCXwCXORi1RULSNGrhoJ3S6q+SIE1+OWZt1xc1+bfOgCoQ8H0TjW901zoqyPtQ4 IB0tJMUZQUnTDrMzj4uKTk365Djtj3gXHR5gU2kb8QiFEoKDb0BWGBR3RzEBA/0H720befvi7Iw NKgF9tGh2JOw== X-Google-Smtp-Source: AGHT+IHIg7gOuZgDFyDBJ0cLL9MJvXcCl5i8kozDHoaw0A1b5GMYsx2uRu3Rs3umX6nzeJPTu8vwIA== X-Received: by 2002:a05:690c:a4cf:10b0:70f:83ef:ddeb with SMTP id 00721157ae682-717d5f3d39emr86350857b3.34.1752348808100; Sat, 12 Jul 2025 12:33:28 -0700 (PDT) Received: from smtpclient.apple (h96-61-170-179.lvrgtn.broadband.dynamic.tds.net. [96.61.170.179]) by smtp.gmail.com with ESMTPSA id 00721157ae682-717c61b4cc4sm12692937b3.67.2025.07.12.12.33.27 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 12 Jul 2025 12:33:27 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.600.51.1.1\)) Subject: Re: [PHP-DEV] [RFC] Updating the PHP License Date: Sat, 12 Jul 2025 14:33:17 -0500 References: <70DC3FB4-C98E-4C79-AB2C-F2B65AE8B9F1@php.net> To: PHP internals In-Reply-To: Message-ID: <2947B0BE-8A52-4B3C-8AF7-0A57C6D4DAC9@php.net> X-Mailer: Apple Mail (2.3826.600.51.1.1) From: ramsey@php.net (Ben Ramsey) > On Jul 12, 2025, at 04:18, Peter Kokot wrote: >=20 > On Thu, 10 Jul 2025 at 05:26, Ben Ramsey wrote: >> Hello internals, >>=20 >> I=E2=80=99m opening discussion on an RFC proposing that we relicense = PHP under >> the Modified BSD License (SPDX identifier: BSD-3-Clause), starting = with >> PHP 9.0. This change simplifies and modernizes our licensing, >> addressing long-standing issues while preserving the rights of both >> contributors and users. Below is a quick summary of what the RFC >> proposes and what it means for developers. >>=20 >> - Proposes that PHP 9.0 adopt the Modified BSD License = (BSD-3-Clause), >> replacing the current PHP and Zend Engine licenses. >> - The Modified BSD License is OSI-approved, GPL-compatible, and = widely >> recognized in the open source community. >> - Your rights as a developer=E2=80=94use, modification, = distribution=E2=80=94remain >> unchanged. >> - Extensions and tools may adopt BSD-3-Clause in place of the = outdated >> PHP License. >> - The update removes confusing legacy clauses tied to branding and >> permissions. >>=20 >> I=E2=80=99ve spoken with all members of the PHP Group, and each has = voiced their >> approval of this proposal. The Perforce legal team has also = informally >> approved, and I will be working with them to get a formal letter of >> approval soon. >>=20 >> The RFC is available at: https://wiki.php.net/rfc/php_license_update >>=20 >> Discussion will remain open for at least six months to ensure all >> interested parties have an opportunity to respond. >>=20 >> Cheers, >> Ben >>=20 >> P.S. For legal questions or concerns, I=E2=80=99m working with Pamela = Chestek >> of Chestek Legal on behalf of the PHP=20= >> Group. You may be familiar with her work as chair of the license >> committee for the Open Source Initiative. >=20 > Sounds great. I'm sure this was a lot of work involved. Thank you. >=20 > I'd just have two questions here that are popping up to things I've = encountered lately: >=20 > 1. TSRM (Thread Safe Resource Manager) also has a separate LICENSE = file but it is BSD 2 Clause, which is compatible with all of that, I = assume. That should be also simplified in some way? Perhaps integrating = TSRM into Zend Engine directly at some point or updating its license to = 3 clause BSD? The license that applies to TSRM should remain the same. For one, it=E2=80= =99s already under a widely-accepted and permissive OSI-approved = license. Secondly, I think changing it would require approval from all = contributors: 1. The license on TSRM doesn=E2=80=99t explicitly reserve the right for = anyone to change the license (the PHP License and Zend Engine Licenses = do), so no one can unilaterally change the license. 2. Changing from BSD-2-Clause to BSD-3-Clause adds more restrictions to = the terms authors have granted by including the 3rd clause (i.e., = =E2=80=9CNeither the name of the copyright holder=E2=80=A6=E2=80=9D). = So, the authors would need to approve of these additional restrictions = added to the use of their contributions. There are only about 70 contributors to TSRM, so getting approvals = wouldn=E2=80=99t be too hard, but I also don=E2=80=99t think it=E2=80=99s = necessary to change the license on it. It looks like TSRM was originally written with the intention of being a = standalone library that could be used apart from PHP, which is why it = was contributed under a different license. > 2. To be more clear, the GPL compatibility would probably need to be = just slightly clarified to make PHP usage simpler in the future for = cases when GPL-licensed software is involved. >=20 > PHP currently has option to link to two GPL-3 licensed libraries that = cause issues when distributing PHP (for example, packaging PHP and = providing it as a binary via some package and similar):=20 > - GNU readline library for ext/readline (here libedit alternative can = be used) > https://github.com/php/php-src/issues/16826 > - GDBM for ext/dba (here other handlers can be used) > https://github.com/php/php-src/issues/15882 >=20 > So, GPL-compatibility here means that PHP licensed under the Modified = BSD License could link to GNU Readline library but it should be = relicensed as GPL-3 then? >=20 > Because I'm thinking of deprecating linking options with GNU Readline = and GDBM to make the PHP build process worry-free for packagers. I=E2=80=99m not sure what you mean by =E2=80=9CGPL compatibility would = probably need to be just slightly clarified to make PHP usage = simpler.=E2=80=9D The FSF considers the Modified BSD License as compatible with the = GPL.[^1] They elaborate on what they mean by compatibility: =E2=80=9CIt means that the other license and the GNU GPL are compatible; = you can combine code released under the other license with code released = under the GNU GPL in one larger program. =E2=80=9CAll GNU GPL versions permit such combinations privately; they = also permit distribution of such combinations provided the combination = is released under the same GNU GPL version.=E2=80=9D[^2] Being licensed under the Modified BSD License means that PHP may be = combined with GPL-licensed software and released together with that = software, as long as the *combination* is released under the terms of = the GPL. For those who are packaging PHP and linking against GPL libraries, the = current PHP License, version 3.01, presents an incompatibility that = cannot be resolved because of the additional restrictions it places on = users.[^3] However, under the Modified BSD License, there is no = incompatibility, as long as the combined package is released under the = terms of the GPL. Example: if I create a PHP package that links against Readline (whether = statically or dynamically) the GPL considers this a combined work, and I = must release the combination under the terms of the same version of the = GPL that covers Readline.[^4] Does that clear things up? Cheers Ben [^1]: https://www.gnu.org/licenses/license-list.html#ModifiedBSD [^2]: https://www.gnu.org/licenses/gpl-faq.html#WhatDoesCompatMean [^3]: https://www.gnu.org/licenses/license-list.html#PHP-3.01 [^4]: https://www.gnu.org/licenses/gpl-faq.html#GPLStaticVsDynamic