How the PHP License Was Retired: A Step-by-Step Guide to Open Source Relicensing
Introduction
When the PHP project decided to retire its own PHP License and adopt the three-clause BSD license, they undertook a meticulous process that can serve as a blueprint for other open source projects. This guide breaks down every step they followed—from obtaining consent from original contributors to conducting a community vote. Whether you're a project maintainer or just curious about license transitions, these steps will help you navigate the legal and practical challenges.

What You Need
- Legal authority to change the license (as granted by the existing license)
- Complete list of all original license holders or group members
- Written consent from each rights holder (email or physical letter)
- Formal approval from any corporate successors to original entities
- Legal counsel experienced in open source licensing
- A clear proposal (e.g., RFC) detailing the new license and transition plan
- A public discussion period (recommended: six months)
- A voting mechanism for community approval
- Patience and communication skills
Step-by-Step Guide
Step 1: Assess Your License's Authority to Change
Before you begin, confirm that your current license grants the project leadership the power to change it. The PHP License explicitly gave the PHP Group this authority, which provided a solid legal foundation. Without such a clause, you may need to negotiate with every contributor individually.
Step 2: Identify All Original Rights Holders
Compile a comprehensive list of everyone who holds copyright or licensing power over the codebase. For PHP, this meant tracking down each of the original PHP Group members. Also include any third-party components—like the Zend Engine—and their respective copyright holders (here, Zend Technologies, later succeeded by Perforce Software).
Step 3: Obtain Written Consent from Each Rights Holder
Contact every individual on your list and request their written consent to the license change. The PHP Group members each provided approval via email or formal letter. Keep records of all responses. If a member is unreachable, you may need a legal strategy to proceed, but the goal is unanimous consent.
Step 4: Secure Formal Approval from Corporate Successors
If any original entity has been acquired or renamed, you must get approval from the successor organization. In PHP's case, Perforce Software had taken over Zend Technologies. They provided a formal letter confirming their full authority and support for the change. Such a letter should explicitly state the successor's legal standing and agreement.
Step 5: Engage Legal Counsel to Review the Proposal
Hire an attorney who specializes in open source licensing. They will review your proposal for any legal pitfalls, advise on how to handle unanswered consent, and ensure the new license (e.g., BSD 3-Clause) is compatible with the project's goals. The PHP project hired a lawyer specifically to vet the transition before the public discussion began.
Step 6: Open a Community Discussion Period
Announce the proposed license change and allow for a public comment period. The PHP project set aside six months for discussion, giving stakeholders time to raise concerns and ask questions. Use a format like an RFC (Request for Comments) on your project's mailing list or forum. Be transparent about the reasoning and the legal steps already taken.
Step 7: Conduct a Formal Vote
After the discussion period, hold a vote among the project's governing body or the broader community. The PHP vote passed unanimously, but ensure your voting process is clearly defined in advance (e.g., majority role for core contributors, or a community-wide poll). Document the results officially.
Step 8: Finalize the Relicensing
Once the vote passes, update all source file headers, the project website, and any packaging to reflect the new license. For PHP, this meant replacing the PHP License with the three-clause BSD license. Announce the change widely, and thank all who contributed to the process.
Tips for Success
- Start early – relicensing can take months, especially when tracking down original contributors.
- Document everything – keep copies of all consent letters, legal advice, and voting records.
- Communicate transparently – explain the reasons for the change (e.g., to simplify licensing, increase adoption, or comply with modern standards).
- Be patient with corporate successors – they may need time to review and authorize changes.
- Consider using a neutral license like BSD or MIT to avoid future confusion.
- Celebrate the milestone – relicensing is a significant achievement that benefits the entire community.
Related Articles
- 5 Essential Ways GitHub Uses eBPF to Prevent Deployment Disasters
- Warp Terminal Goes Open Source: AI-Agent Collaboration Model Redefines Community Development
- GitHub Copilot Individual Plans: 5 Key Changes and What They Mean for You
- Rust Project Expands Mentorship Programs, Joins Outreachy for May 2026 Cohort
- April 2026 Wallpapers: Community Creativity Blooms
- How to Ensure Platform Reliability and Scale for Modern Development Workflows
- 10 Ways eBPF Enhances Deployment Safety at GitHub
- Behind the Scenes: Documenting Open Source Pioneers