Debian_Free_Software_Guidelines
The Debian Free Software Guidelines (DFSG) are a set of ten criteria used by the Debian Project to evaluate whether a software license qualifies the corresponding program as "free" for inclusion in the main section of the Debian GNU/Linux distribution.[1] These guidelines, embedded within the Debian Social Contract, prioritize user freedoms including unrestricted redistribution, mandatory provision of source code, permission for modifications and derived works, and prohibitions on discrimination against individuals, groups, or fields of application.[1] Drafted primarily by Bruce Perens in June 1997 and ratified as part of the Social Contract's version 1.0 on July 5, 1997, the DFSG emerged from Debian's foundational commitment—established since its inception in 1993—to distribute only software that users can freely run, study, share, and alter.[1][2] Perens refined the principles through community discussion to align with Debian's volunteer-driven ethos, explicitly rejecting restrictions like royalties, license contamination of bundled software, or technology-specific mandates.[1] This framework enabled Debian to maintain a stable, policy-enforced repository of compliant packages, distinguishing its "main" archive (strictly DFSG-adherent) from optional "contrib" and "non-free" sections for proprietary or ambiguously licensed content.[1] The DFSG's most notable achievement lies in its causal influence on the open source paradigm: Perens directly adapted them into the Open Source Definition, adopted by the Open Source Initiative in 1998, which standardized criteria for thousands of licenses worldwide and facilitated commercial adoption of free software principles without the ideological framing of the Free Software Foundation.[3][4] However, application of the guidelines has sparked debates, particularly over edge cases like firmware blobs deemed non-free by DFSG interpretations yet essential for hardware compatibility, prompting Debian to host them separately and drawing criticism from free software purists who argue this undermines the project's "100% free" pledge.[5][6] Despite such tensions, the DFSG remain a benchmark for license compatibility, rigorously applied by Debian's maintainers to over 60,000 packages as of recent releases.[1]Historical Development
Origins in the Debian Project
The Debian Project originated on August 16, 1993, when Ian Murdock, then an undergraduate at Purdue University, announced its formation on the Usenet newsgroup comp.os.linux.development. Murdock envisioned a Linux distribution named the "Debian Linux Release," combining elements from his then-girlfriend Debra (contributing the first syllable) with his own name, and explicitly aimed to develop it in the collaborative spirit of the Linux kernel and the GNU Project.[7][2] This initiative marked an early effort to create a cohesive, community-maintained operating system distribution centered on free software principles, distinguishing it from contemporaneous efforts like Slackware by prioritizing openness and volunteer contributions over rapid proprietary enhancements.[8] From its inception, Debian drew inspiration from the Free Software Foundation (FSF) and GNU Project, receiving sponsorship from the latter between November 1994 and November 1995 to support development.[2] Murdock's approach adapted FSF ideals—such as the GNU General Public License's emphasis on user freedoms—to the practical demands of packaging a volunteer-driven Linux system, including tools for binary distribution via the emerging dpkg system. Early releases, starting with version 0.91 in January 1994, focused on source-based packages and core utilities, reflecting an informal commitment to software that users could freely run, study, modify, and redistribute, though without codified criteria at the time.[2] In the mid-1990s, as the project grew with contributions from dozens of developers, informal discussions emerged among participants about accommodating software that deviated from strict free software standards, particularly proprietary drivers or extensions essential for hardware compatibility in a diverse user base. These pre-formalization debates underscored tensions between ideological purity and pragmatic usability in a Linux distribution reliant on volunteer labor and real-world hardware variability. To address this, Debian established separate repository areas—'contrib' for free-licensed packages dependent on non-free components, and 'non-free' for proprietary software—allowing the main archive to remain dedicated to fully free material while enabling supplementary access, a structure that persisted into later policy developments.[5][2]Formalization and Evolution
The Debian Free Software Guidelines (DFSG) were formally codified in June 1997 when Bruce Perens drafted the initial version, which was then refined through a month-long email discussion among Debian developers before being integrated as section 2 of the Debian Social Contract, version 1.0.[3] This document was ratified by the Debian project on July 5, 1997, establishing the DFSG as the explicit criteria for determining whether software qualifies as free, with the Social Contract committing the project to maintaining a distribution composed entirely of such software—"Debian will remain 100% free."[9] The formalization emphasized this absolute commitment to exclude non-free components from the core distribution, distinguishing Debian's repositories into main (free) and non-free sections, amid the project's rapid growth and the need to clarify its foundational principles ahead of its first formal project leader election later that year.[1] Since its adoption, the DFSG have exhibited remarkable stability, with no fundamental amendments to the core ten guidelines.[1] The Social Contract itself has seen minor updates—version 1.1 on April 26, 2004, and version 1.2 on October 1, 2022—primarily for editorial clarifications and to reflect procedural evolutions, but these did not alter the substantive content of the DFSG.[1] Instead, interpretive guidance has come through Debian General Resolutions (GRs), which address specific edge cases without modifying the guidelines themselves; for instance, a 2008 GR clarified handling of DFSG-violating firmware in the Lenny release by advocating removal or replacement where possible, while later resolutions have tackled issues like non-free firmware inclusion in installation media (2022) and the applicability of DFSG to documentation licenses, such as deeming the GNU Free Documentation License incompatible in certain invariant sections.[10] These GRs function as community-voted interpretations to apply the unchanging DFSG to novel technical and licensing scenarios, preserving the original intent of universal freedoms in redistribution, modification, and use.[1]Core Principles
The Ten Guidelines
The Debian Free Software Guidelines (DFSG) specify ten criteria that a software license must meet to be considered free and eligible for inclusion in Debian's main repository. These criteria emphasize user freedoms in redistribution, modification, and use, while prohibiting restrictions that undermine those freedoms.[1]- Free Redistribution: "The license of a Debian component may not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license may not require a royalty or other fee for such sale." This prohibits financial barriers to distribution, excluding licenses that demand royalties or per-copy fees, thereby enabling unrestricted sharing in compiled or bundled forms.[1]
- Source Code: "The program must include source code, and must allow distribution in source code as well as compiled form." This mandates provision of human-readable source alongside binaries, rejecting licenses that withhold source or limit its dissemination, as source access is essential for verification and modification.[1]
- Derived Works: "The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software." This requires permission for alterations and relicensing of derivatives under identical conditions, preventing restrictions that hinder adaptation or forking.[1]
- Integrity of The Author's Source Code: "The license may restrict source-code from being distributed in modified form only if the license allows the distribution of patch files with the source code for the purpose of modifying the program at build time. The license must explicitly permit distribution of software built from modified source code. The license may require derived works to carry a different name or version number from the original software." This allows limited protections for unmodified source via patches but mandates build-time flexibility and distinct naming for derivatives, balancing author intent with modification rights; Debian discourages such restrictions.[1]
- No Discrimination Against Persons or Groups: "The license must not discriminate against any person or group of persons." This forbids exclusions based on identity, ensuring universal applicability without bias toward specific individuals or collectives.[1]
- No Discrimination Against Fields of Endeavor: "The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research." This excludes field-specific bans, such as non-commercial clauses or prohibitions on military/genetic applications, rejecting licenses like the JSON.org license's "for Good, not Evil" proviso that curtails certain uses.[1][11]
- Distribution of License: "The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties." This ensures automatic propagation of freedoms to downstream recipients, without requiring separate agreements.[1]
- License Must Not Be Specific to Debian: "The rights attached to the program must not depend on the program's being part of a Debian system. If the program is extracted from Debian and used or distributed without Debian but otherwise within the terms of the program's license, all parties to whom the program is redistributed should have the same rights as those that are granted in conjunction with the Debian system." This prevents Debian-centric conditions, maintaining freedoms in non-Debian contexts.[1]
- License Must Not Contaminate Other Software: "The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be free software." This avoids impositions on accompanying code, such as mandates for free status in bundled distributions.[1]
- Example Licenses: "The GPL, BSD, and Artistic licenses are examples of licenses that we consider free." This provides illustrative compliant licenses, confirming their alignment with the preceding criteria; the GNU General Public License (GPL), BSD, and Artistic licenses satisfy all DFSG requirements.[1]