How the PHP License Was Retired: A Step-by-Step Guide to Open Source Relicensing

By ✦ min read

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.

How the PHP License Was Retired: A Step-by-Step Guide to Open Source Relicensing
Source: lwn.net

What You Need

Step-by-Step Guide

  1. 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.

  2. 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).

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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

Tags:

Recommended

Discover More

Revolutionary DNA Therapy Slashes 'Bad' Cholesterol by Half, Bypassing StatinsKubernetes 1.36 and Beyond: SELinux Volume Mount Optimization Becomes StableQuadsqueezing Quantum Breakthrough: 6 Things You Need to KnowThe Hidden Key to Eliminating Android Auto Lag: Optimize Your Phone FirstAssessing Arm64 Compatibility for Hugging Face Spaces: A Step-by-Step Guide