How to Successfully Change Your Open Source Project's License

By

Introduction

Changing the license of an open source project is a significant legal and community undertaking that requires careful planning. The PHP project recently demonstrated this process by transitioning from its own PHP License to the three-clause BSD license. This guide provides a step-by-step approach based on that experience, helping project maintainers navigate the complexities of relicensing.

How to Successfully Change Your Open Source Project's License
Source: lwn.net

What You Need

Step-by-Step Guide

Step 1: Determine the Current License and Governing Authority

Identify exactly who has the legal authority to change the license. In the PHP project, the PHP License explicitly gave the PHP Group the authority to amend it. Verify your project's governing documents, foundation bylaws, or contributor agreements to understand the chain of consent needed.

Step 2: Draft a Formal Proposal (RFC)

Write a detailed Request for Comments (RFC) that explains the reasons for the license change, presents the text of the new license, and outlines any implications for contributors and users. The RFC should be clear, transparent, and open to public comment.

Step 3: Hire Legal Counsel

Engage an attorney with expertise in open source licensing. They will review your proposal, advise on legal risks, and help handle any questions that arise during the discussion period. The PHP project hired an attorney to ensure compliance and avoid pitfalls.

Step 4: Obtain Written Consent from All Original Copyright Holders

Track down each original member of the governing body (e.g., the PHP Group) and secure their written approval. If the project includes code owned by a company (like Zend Engine owned by Zend Technologies), you must also get formal sign-off from the corporate successor. For PHP, Perforce Software, the successor to Zend Technologies, provided a formal letter confirming their authority and support.

Step 5: Announce and Open a Community Discussion Period

Set a fixed discussion period – the PHP project allowed six months for community feedback. Use your mailing list, forum, or other channels to invite questions and concerns. Address all issues transparently to build consensus.

Step 6: Hold a Formal Vote

After the discussion period ends, conduct a vote among those with authority (e.g., the PHP Group). The PHP vote passed unanimously. Ensure your voting process is documented and auditable. Even if a unanimous vote is ideal, define a minimum threshold (e.g., supermajority) in your governance rules.

Step 7: Implement the Change

Once approved, update all source files, documentation, and project assets to reflect the new license. Replace old license headers with the new one (e.g., three-clause BSD license). Communicate the change widely to users and downstream projects.

Tips for a Smooth Transition

For a real‑world example, see the LWN article covering the PHP license change.

Tags:

Related Articles

Recommended

Discover More

Unlocking AI Efficiency: The Power of Sparsity and Custom Hardwarexoso66svv388xoso66From Hand-Tuning to Autonomous Search: Meta’s KernelEvolve Agent Transforms AI Infrastructure Optimizationmiso88788betHow to Implement AI Safety Constraints Before Model DeploymentOnePlus Pad 4 Launches with Snapdragon 8 Elite Gen 5 Amid Merger Uncertaintiessvv388788bettic88miso88tic88Kubernetes v1.36 Strengthens Security with General Availability of Fine-Grained Kubelet Authorization