Preface Why Write This Book? Who Should Read This Book? Sources Acknowledgements For the first edition (2005) For the second edition (2022) Disclaimer 1. Introduction History The Rise of Proprietary Software and Free Software Conscious Resistance Accidental Resistance "Free" Versus "Open Source" The Situation Today 2. Getting Started Starting From What You Have Choose a Good Name Own the Name in the Important Namespaces Have a Clear Mission Statement State That the Project is Free Features and Requirements List Development Status Development Status Should Always Reflect Reality Downloads Version Control and Bug Tracker Access Communications Channels Developer Guidelines Documentation Availability of Documentation Developer Documentation Demos, Screenshots, Videos, and Example Output Hosting Choosing a License and Applying It The "Do Anything" Licenses The GPL How to Apply a License to Your Software Setting the Tone Avoid Private Discussions Nip Rudeness in the Bud Practice Conspicuous Code Review Case study Be Open From Day One Waiting Just Creates an Exposure Event Opening a Formerly Closed Project Announcing 3. Technical Infrastructure What a Project Needs Web Site Canned Hosting Choosing a Canned Hosting Site Hosting on Fully Open Source Infrastructure Anonymity and Involvement Message Forums / Mailing Lists Choosing the Right Forum Management Software Spam Prevention Identification and Header Management The Great Reply-to Debate Archiving Mailing List / Message Forum Software Version Control Version Control Vocabulary Choosing a Version Control System Using the Version Control System Version Everything Browsability Use Branches to Avoid Bottlenecks Singularity of Information Authorization Receiving and Reviewing Contributions Pull Requests / Merge Requests Commit Notifications / Commit Emails Bug Tracker Interaction with Email Pre-Filtering the Bug Tracker Real-Time Chat Systems Chat Rooms and Growth Nick-Flagging and Notifications Chat Bots Commit Notifications in Chat Wikis Wikis and Spam Choosing a Wiki Translation Infrastructure Social Networking Services 4. Social and Political Infrastructure Forkability Benevolent Dictators Who Can Be a Good Benevolent Dictator? Consensus-based Democracy Version Control Means You Can Relax When Consensus Cannot Be Reached, Vote When To Vote Who Votes? Not All Maintainers Are Coders Adding New Maintainers Polls Versus Votes Vetoes Writing It All Down Joining or Creating a Non-Profit Organization 5. Organizations and Money: Businesses, Non-Profits, and Governments The Economics of Open Source Goals of Corporate Involvement Governments and Open Source Being Open Source From Day One is Especially Important for Government Projects Hire for the Long Term Case study Appear as Many, Not as One Be Open About Your Motivations Money Can't Buy You Love Contracting Hiring From Within the Community Hiring From Outside The Community Contracting and Transparency Review and Acceptance of Changes Case Study: the CVS Password-Authentication Protocol Update Your RFI, RFP and Contract Language Open Source Quality Assurance (OSQA) Don't Surprise Your Lawyers Funding Non-Programming Activities Technical Quality Assurance (i.e., Professional Testing) Legal Advice and Protection Documentation and Usability Funding User Experience (UX) Work Providing Build Farms and Development Servers Running Security Audits Sponsoring Conferences, Hackathons, and other Developer Meetings Marketing Open Source and Freedom from Vendor Lock-In Remember That You Are Being Watched Case Study: You Can't Fake It, So Don't Try Don't Bash Competing Vendors' Efforts "Commercial" vs "Proprietary" Open Source and the Organization Dispel Myths Within Your Organization Foster Pools of Expertise in Multiple Places Establish Contact Early With Relevant Communities Don't Let Publicity Events Drive Project Schedule The Key Role of Middle Management InnerSourcing Hiring Open Source Developers Hiring for Influence Evaluating Open Source Projects Crowdfunding and Bounties 6. Communications Written Culture You Are What You Write Structure and Formatting Content Tone Recognizing Rudeness Face Avoiding Common Pitfalls Don't Post Without a Purpose Productive vs Unproductive Threads The Smaller the Topic, the Longer the Debate Avoid Holy Wars The "Noisy Minority" Effect Don't Bash Competing Open Source Products Difficult People Handling Difficult People Case study Handling Growth Conspicuous Use of Archives Treat All Resources Like Archives Codifying Tradition Choose the Right Forum Cross-Link Between Forums Publicity Announcing Releases and Other Major Events Announcing Security Vulnerabilities Receive the Report Develop the Fix Quietly CVE Numbers Common Vulnerability Scoring System (CVSS) Scores Pre-Notification Distribute the Fix Publicly Further Reading on Handling Security Vulnerabilities 7. Packaging, Releasing, and Daily Development Release Numbering Release Number Components Semantic Versioning The Even/Odd Strategy Release Branches Mechanics of Release Branches Stabilizing a Release Dictatorship by Release Owner Voting on Changes Managing Collaborative Release Stabilization Release Manager Packaging Format Name and Layout To Capitalize or Not to Capitalize Pre-Releases Compilation and Installation Binary Packages Testing and Releasing Candidate Releases Announcing Releases Maintaining Multiple Release Lines Security Releases Releases and Daily Development Planning Releases 8. Managing Participants Community and Motivation Delegation Distinguish Clearly Between Inquiry and Assignment Follow Up After You Delegate Notice What People Are Interested In Praise and Criticism Prevent Territoriality The Automation Ratio Automated testing Treat Every User as a Potential Participant Meeting In Person: Conferences, Hackfests, Code-a-Thons, Code Sprints, Retreats Share Management Tasks as Well as Technical Tasks "Manager" Does Not Mean "Owner" Patch Manager (or Pull Request Manager) Translation Manager Documentation Manager Issue Manager Transitions Committers Committers vs Maintainers Choosing Committers Revoking Commit Access Partial Commit Access Dormant Committers Avoid Mystery Credit Forks "Development Forks" versus "Hard Forks" Figuring Out Whether You're the Fork Handling a Fork Initiating a Fork 9. Legal Matters: Licenses, Copyrights, Trademarks and Patents Terminology Aspects of Licenses The GPL and License Compatibility Choosing a License The GNU General Public License The "or any later version" Option: Future-Proofing the GPL The GNU Affero GPL: A Version of the GNU GPL for Server-Side Code The Copyright Holder Is Special, Even In Copyleft Licenses Is the GPL Free or Not Free? Contributor Agreements Doing Nothing Contributor License Agreements Developer Certificate of Origin (DCO): An Easier Style of CLA Proprietary Relicensing Problems with Proprietary Relicensing Trademarks Case study: Mozilla Firefox, the Debian Project, and Iceweasel Case study: The GNOME Logo and the Fish Pedicure Shop Patents Further Resources A. Copyright Attribution-ShareAlike 4.0 International Using Creative Commons Public Licenses Creative Commons Attribution-ShareAlike 4.0 International Public License Section 1 -- Definitions. Section 2 -- Scope. Section 3 -- License Conditions. Section 4 -- Sui Generis Database Rights. Section 5 -- Disclaimer of Warranties and Limitation of Liability. Section 6 -- Term and Termination. Section 7 -- Other Terms and Conditions. Section 8 -- Interpretation. Next Preface 'Clear, correct, and deep, this is a welcome addition to discussions of law and computing for anyone -- even lawyers!'-- Lawrence Lessig, Professor of Law at Stanford Law School and founder of the Stanford Center for Internet and SocietyIf you work in information technology, intellectual property is central to your job -- but dealing with the complexities of the legal system can be mind-boggling. This book is for anyone who wants to understand how the legal system deals with intellectual property rights for code and other content. You'll get a clear look at intellectual property issues from a developer's point of view, including practical advice about situations you're likely to encounter.Written by an intellectual property attorney who is also a programmer, Intellectual Property and Open Source helps you understand patents, copyrights, trademarks, trade secrets, and licenses, with special focus on the issues surrounding open source development and the GPL. This book answers questions such as:How do open source and intellectual property work together?What are the most important intellectual property-related issues when starting a business or open source project?How should you handle copyright, licensing and other issues when accepting a patch from another developer?How can you pursue your own ideas while working for someone else?What parts of a patent should be reviewed to see if it applies to your work?When is your idea a trade secret?How can you reverse engineer a product without getting into trouble?What should you think about when choosing an open source license for your project?Most legal sources are too scattered, too arcane, and too hard to read. Intellectual Property and Open Source is a friendly, easy-to-follow overview of the law that programmers, system administrators, graphic designers, and many others will find essential. This book is a guide to the legal system-without the legalese. From trade secrets to open source, this book offers a clear and understandable approach to intellectual property issues from a developer's point of view. Written by an intellectual property attorney who is also a programmer, Intellectual Property and Open Source delivers an engrossing survey of the legal landscape and practical advice about situations you're likely to encounter when working on open source projects and pursuing new business ideas. This book is for anyone who wants to understand how the legal system deals with intellectual property rights for code and other content. You'll get a clear look at intellectual property issues from a developer's point of view, including practical advice about situations you're likely to encounter. Written by an intellectual property attorney who is also a programmer, Intellectual Property and Open Source helps you understand patents, copyrights, trademarks, trade secrets, and licenses, with special focus on the issues surrounding open source development and the GPL. This book answers questions such as: How do open source and intellectual property work together? What are the most important intellectual property-related issues when starting a business or open source project? How should you handle copyright, licensing and other issues when accepting a patch from another developer? How can you pursue your own ideas while working for someone else? What parts of a patent should be reviewed to see if it applies to your work? When is your idea a trade "Clear, correct, and deep, this is a welcome addition to discussions of law and computing for anyone -- even lawyers!" -- Lawrence Lessig, Professor of Law at Stanford Law School and founder of the Stanford Center for Internet and Society If you work in information technology, intellectual property is central to your job -- but dealing with the complexities of the legal system can be mind-boggling. This book is for anyone who wants to understand how the legal system deals with intellectual property rights for code and other content. You'll get a clear look at intellectual property issues from a developer's point of view, including practical advice about situations you're likely to encounter. Written by an intellectual property attorney who is also a programmer, Intellectual Property and Open Source helps you understand patents, copyrights, trademarks, trade secrets, and licenses, with special focus on the issues surrounding open source development and the GPL. This book answers questions such Most legal sources are too scattered, too arcane, and too hard to read. Intellectual Property and Open Source is a friendly, easy-to-follow overview of the law that programmers, system administrators, graphic designers, and many others will find essential. Heather Meeker's Open Source for Business is a practical, readable guide to help businesspeople, engineers, and lawyers understand open source software licensing. Based on the author's twenty years as an attorney working at the crossroads of intellectual property and technology, this guide explains the legal and technical principles behind open source licensing so you can make the right decisions for your business. It offers tips on using open source, contributing to open source projects, and releasing your own open source software. You'll also find quick-reference tables on the major open source licenses, plus forms and checklists you can use to promote compliance. In this book, you will learn . . . Why open source is not a "virus" What the GPL is and how to handle it When and how to conduct open source audits What a user-friendly open source policy looks like How to avoid and respond to open source enforcement claims How to use open source to fight patent infringement claims How to manage trademarks for open source products The economic and legal foundations of intellectual property The patent document The patent system Copyright Trademarks Trade secrets Contracts and licenses The economic and legal foundations of open source software So I have an idea ... Choosing a license Accepting patches and contributions Working with GPL Reverse engineering Incorporating as a non-profit Appendices: Sample proprietary information agreement (PIA) ; Open source license list ; Free software license list ; Fedora license list and GPL compatibility ; Public domain declaration ; The simplified BSD license ; The Apache license, version 2.0 ; The Mozilla public license, version 1.1 ; The GNU lesser general public license, version 2.1 ; The GNU lesser general public license, version 3 ; The GNU general public license, version 2, June 1991 ; The GNU general public license, version 3, June 2007 ; The open software license, version 3.0. "... a practical, readable guide to help business-people, engineers, and lawyers understand open source software licensing..."--Page [4] of cover