-----
--HomeFAQsJoinFeedbackLinks-
-

About Us
Officers
Journal
Events Calendar

Journal: March 2004 Issue 55

Open Source

Open-Source Software: What is it, and how does it work?

The protection of open-source software has been the subject of continued legal debate and was quite prominent in the media last year with the action taken by the SCO Group in relation to its version of Unix known as AIX. In his article, "Open-Source Software: What is it and how does it work?", Dr Ben Kremer considers the legal nature of open-source software. Ben discusses the nature of software generally and provides an overview of the "closed-source" and "open-source" model. Ben also addresses the legal protection available for open-source software creators noting in particular the importance of licence conditions in ensuring that modified open-source code remains "free" to the public.


BSc (Hons), LLB (Hons) (Syd), DPhil (Oxon). Dr Kremer is a solicitor in the intellectual property group in the Sydney office of Freehills. He has programmed computers for over twenty years.



Open-source software is playing an increasingly important role in the marketplace. Its legal nature is, however, still subject to misunderstanding at both the lay and legal level. This note will attempt to clarify some of the uncertainty by addressing the two most fundamental issues: what open-source software is, and how it works.

1 What is open-source software?

In order to understand the open-source software model, it is necessary to understand what software is. 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.[1]

For various reasons, software is invariably written as source code.[2] That code cannot itself be executed by a computer, but is "compiled" to form object code by a specialised program, called a compiler. 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 things like the 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 also be incorporated in source code to allow the production of multiple, 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 - from the same source code with minimal effort.

1.1 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.[3] 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.

1.2 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 of cost", 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.

2 Copyright and the GPL

2.1 The myth of contract

Many 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 there were, the transaction costs involved would be significant.

2.2 Enter copyright

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.[4] 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[5]). 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.

2.3 Licences

There is nothing, however, to stop the copyright owner from permitting others to do one or more of those acts. And there is 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.[6] 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 a conversion of the fuel.[7] 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.[8]

The way the open-source model 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.

2.4 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.[9] 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 Section 3 allows two other means of compliance, 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 all about copyright.

Footnotes

1       See Gibbs CJ's definition (now somewhat dated) in Computer Edge Pty Ltd v Apple Computer Inc (1986) 161 CLR 171 at 178-9.

2       Source code may be written in a number of languages, such as BASIC, FORTRAN, Pascal, C or C++. Most languages attempt to mimic English-like structures, for example by using terms such as "if", "else" or "for". Object code is phrased in terms of microprocessor instructions, customised for a relevant microprocessor. Generally, multiple instructions are needed in object code to implement a single instruction in source code. Pieces of source code can often be moved around without needing to change the rest of the code much or at all, while it is often a complex exercise to modify object code even slightly.

3       See for example the evidence given in Ni-Tech Pty Ltd v Parker (1998) AIPC 91-411 relating to protection of confidentiality in the source code, and see also Quanta Software International Pty Ltd v Computer Management Services Pty Ltd (2001) AIPC 91-757.

4       This note 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. See eg Redrock Holdings Pty Ltd v Hinkley (2001) 50 IPR 565.

5       In the context of computer programs, adaptation will likely include re-expressing the work in any other type of code: Data Access Corporation v Powerflex Services Pty Ltd (1999) 202 CLR 1 at 39 [108]. Compiling source code probably produces an adaptation of that code, rather than reproducing it: see eg "Copyright and Computer Programs: Data Access v Powerflex Before the High Court" (1997) 20 Sydney Law Review 296, available online at .

6       See eg 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".

7       Scott v Davis (2000) 204 CLR 333 at 384 [154].

8       See section 196 of the Copyright Act 1968 (Cth).

9       Accessible at <http://www.gnu.org/ licenses/gpl.html>. The use of the term GNU in the definition of its own acronym is recursionary, and is a pun playing on the fact that much computer software utilises the process of recursion (where a routine calls itself).



March 2004 contents



HomeFAQsJoinFeedbackLinks
HomeHome
Copyright © 2001, NSW Society for Computers and the Law, All rights reserved. Last Modified 28 Feb 2007.