Solicitor Dr. Ben Kremer and his firm, Freehills in Australia, have graciously given Groklaw permission to reproduce his recent article, "Open Source Software: What Is It and How Does It Work?" originally published in their newsletter and available on the Internet here. I asked for permission because I find it to be one of the clearest, most understandable articles I've come across yet on the GPL, what it is legally (contract or license), and how it works, and I thought it was important to present it to as wide an audience as possible and to have it in Groklaw's searchable collection. Thank you, Dr. Kremer and Freehills.
Open Source Software: What Is It and How Does It Work?
~ by Dr. Ben Kremer
Open source software is playing an increasingly important role in the marketplace. It is, however, still subject to misunderstanding at both the lay and legal level. This article will attempt to clarify some of the uncertainty by addressing two fundamental issues—what open source software is, and how it works.
What is open source software?
The term 'software' refers to two different, but related, things. One is 'source code', which is a set of human-readable and understandable instructions that comprise the 'recipe' from which an executable program can be made. The other is 'object code', which is the actual executable program—the bundle of 1s and 0s which are fed to a computer's microprocessor to make that computer perform various operations.
For various reasons, software is invariably written as source code. That code cannot itself be executed by a computer, but is 'compiled' to form object code by a specialised program. 1 The process is hard to reverse (a technique called 'decompilation'), as the process of compilation generally strips out things such as comments inserted by the programmers to describe how the program works, and names of variables or subroutines. (This information generally cannot be restored during decompilation, so decompiled source code is often difficult to understand and modify.) Commonly, various functions can be incorporated in source code so that different versions of object code—such as 'demo' programs; program versions with greater or restricted functionality; or programs optimised for different computers or operating systems—can be produced with minimal effort.
The 'closed source' model
Historically, software vendors kept source code to themselves (indeed, invariably protecting it as valuable trade secrets) and sold, or licensed, only the object code versions of programs to their customers. Customers can run those pieces of object code, but cannot view or modify the source code (and hence modify the behaviour of the program) without dealing with the software vendor. Licence terms commonly prohibit customers from decompiling the object code. As a result, they can only use whatever is provided to them, along with any modifications they could prevail upon the software supplier to incorporate. This model is called 'closed source' software, and continues to be used by the majority of commercial software companies.
The 'open source' model
'Open source' software, simply put, is software whose source code is released openly, alongside the object code. Each user thus has access to the original source code (with no need to produce an inferior version by decompilation). The intent is that any user of the software is 'free' to modify, enhance or customise the program's source code, and use it to produce modified object code—ie to produce a customised, updated or improved version of the program. Hence the common description of open source software as 'free software': 'free' is used in the sense of 'free to modify' rather than 'free as in beer', although much open source software is both.
The hardest conceptual problem about open source software is how to ensure people play by the rules. There are many models, but the most common is to require any person who redistributes an open source program (whether in its original form, or with any changes they have made) to also redistribute the accompanying source code. The requirement is necessary to overcome human nature: after all, taking a program, making some changes, and redistributing the modified version while keeping the modified source code to yourself is an intuitively valuable way of creating and preserving a competitive edge over others. Anyone else who wants to replicate your modifications to the code must reduplicate your work themselves. Such a user could thus springboard off the earlier open source program to produce a closed source model for themselves.
The answer is easy, but apparently counterintuitive to many: it's done by copyright law.
Copyright and the GPL
The myth of contract
Most people seem to assume that, if one person (the original producer of some open source software) wants to control or limit another's actions (the subsequent modifier of that software), then there must be some kind of contract between the two. While it might be possible to achieve such protection by contract, it would not work in practice. As a general matter, to be enforceable, a contract must be entered into voluntarily by each party. There is usually no way to force another person into a contract. Thus, if the original producer of open source code made it available to others to access without restriction, there would usually not be—as a practical matter—any way to force that other person into the relevant contract. Even if it were, the transaction costs involved would be significant.
However, software—in both its source and object forms—is a copyright work if certain conditions (such as originality and substantiality) are met. The original producer of open source software will thus own copyright in it. 2 Copyright is a bundle of exclusive rights, including the rights to control the copying and adaptation of the copyright work. The default position is that only the copyright owner may reproduce the work (ie make a more or less exact copy of it, or a substantial part of it), or make an adaptation (ie change it into another equivalent but different form of expression, such as translating it. 3 In the context of computer programs, this includes the sole right to copy the source code, make modifications to it, or compile it to form object code, and the sole right to copy the object code thereby produced.
There is nothing, however, to stop the copyright owner from permitting others to do one or more of those acts. There is also nothing to stop that permission being granted on terms. A grant of permission to a person to do something that that person is otherwise forbidden to do is quite common. In legal terms, that is the precise definition of a licence. 4 Licences can come about by contract, or by oral permission (subject to any applicable statute), and can be simple or convoluted, and narrow or broad, but all share the same basic form: a person who otherwise has the power to exclude another from an act, and who has the power to authorise that other person to do the act, does so.
The power to exclude can come from a number of sources, but the most common is property or statute: the occupier of land can allow another person to come onto that land, but in the absence of such permission could generally sue them for trespass. The owner of a car can authorise another person to use it, when without that permission such use would be a trespass and conversion of the fuel. And a person who holds copyright—which is itself a form of statutory property—can authorise another person to do some, any or all of the various rights which that copyright initially vests exclusively in the owner.
The way open source is usually made legally effective is to make the requirement to disclose the source code of any modification of the original source code a term of the permission to deal with the original—copyrighted—source code. Provided subsequent users adhere to the conditions upon which permission is granted, they are within the scope of the permission, and they cannot be sued for infringing the original user's copyright when they make any copies, or adaptations, of the original source code. Such qualified consent is common: the permission given to enter a person's house to attend a party does not give you the right to live there indefinitely; the permission given to enter a shop does not allow you to remain and start busking; and the permission given to affix a person's trade mark to specified goods does not allow you to affix that mark to any other goods. Stray outside the scope of consent, and you are again subject to the legal regime which gives the owner the right to exclude you.
The GNU public licence
The way this operates for open source software can be clearly seen in the 'GPL'—the 'GNU public licence'—one of the most common licences under which open source software is distributed. 5 In addition to various other requirements, section 3 of the GPL provides:
'You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange.' (italics added)
Although paragraphs 3(b) and (c) allow two other means of compliance with the section, the method in paragraph (a) is probably the most common. Its effect is simple: if the original program is released under the GPL, then you may copy and distribute it, or a modified version, without infringing the copyright in that program provided you also distribute the relevant source code. The provision of your source code is integral to your ability to deal with the original source code. If you fail to distribute your source code, you have gone outside the terms of your original permission to deal with the copyright work, and (in the absence of any applicable defence, or other permission to deal with the work) you become liable for infringing the copyright in it.
To some people, this seems to be a novel use of copyright law. It isn't really: replace 'accompany the work with source code' with 'pay the copyright owner $x per copy', and you have something approaching a standard royalty contract. However, the elegant simplicity hides much power: remedies for breach of copyright are often more powerful than remedies for simple breach of contract. There are many subtle areas involved in open source law and the GPL, but the basic point is quite simple: 'it's the copyright, stupid'.
1 Called, strangely enough, a compiler.
2 This article does not discuss the various legal provisions affecting ownership of copyright, such as where an employee creates a copyright work in the course of his employment, or where a work is made 'for hire', or created jointly by several authors.
3 In the context of computer programs, adaptation will likely include re-expressing the work in any other type of code. Compiling source code probably produces an adaptation of that code, rather than reproducing it: see 'Copyright and Computer Programs: Data Access v Powerflex Before the High Court' (1997) 20 Sydney Law Review 296, available online at http://www.law.usyd.edu.au/~slr/v20/n2/bhc_kremer.html.
4 See Federal Commissioner of Taxation v United Aircraft Corporation (1943) 68 CLR 525 at 533: 'A licence provides an excuse for an act which would otherwise be unlawful as, for example, an entry upon a person's land, or the infringement of a patent or copyright. It is an authority to do something which would otherwise be wrongful or illegal or inoperative.'
5 Accessible at www.gnu.org/licenses/gpl.html. In a somewhat geeky in-joke, GNU itself stands for 'GNU's Not Unix', which is a recursively defined acronym where G actually stands for 'GNU'. Recursion (where a subroutine invokes itself) is a fairly commonplace feature of computer code, and non-geeks are advised simply to smile, back away, and leave such jokes alone.
This article is not intended to be nor should it be relied upon as a substitute for legal or other professional advice.
Copyright © 2004 Dr. Ben Kremer