Symbian developer community

 
wiki

What is Open Source?

From Symbian Developer Community

Jump to: navigation, search

Contents

What is Open Source?

The term open source, as applied to a piece of software, refers to the fact that the source code for that software is available for public viewing and modification. However there is more to open-source software than visibility of the source code. In order to fully understand open-source software it is essential to grasp its historical, legal and cultural aspects. Specifically it is necessary to understand something about the history of computing and the "free software" movement from which the open-source community was born; it is also absolutely critical to understand open-source licensing issues; finally, it's worth studying the hacker culture and mindset to understand why the open-source development model works so well.

A Very Brief History

In the very early days of computer programming, computing hardware was large, expensive and generally owned by research institutions. The people who used these early computers shared the source code for their programs freely amongst themselves. When computing hardware became small and cheap enough to spread to independent hobbyists, the free program sharing culture remained, after all, making a copy of a piece of software cost almost nothing. As software became more complex, the costs of developing it grew and the companies that invested in its development looked for ways to recoup that investment. At first software was bundled with hardware and the cost of development added to the hardware and support bills. When that practice was ruled to be anticompetitive, the software industry began distributing and selling only binary copies of their products, without the source code, to prevent others from taking their efforts, modifying them and redistributing them without permission. Not long after this, copyright law was extended to cover computer programs, making the unauthorized copying of software a criminal as well as commercial matter.

As a reaction to this move away from the original spirit and philosophy of the software development community, Richard Stallman started the GNU project and the Free Software Foundation to promote the open sharing of source code and protect the freedoms of software users. One of the most significant contributions Richard Stallman made to the history of open-source software was the concept of copyleft - essentially using a license to force developers to apply the same freedoms that they've been given to distribute and modify software to any modifications that they make. However, the GNU project also produced many excellent pieces of software that are still in wide use today, such as the GNU Compiler Collection (GCC).

The agenda of the Free Software Foundation includes social, political and philosophical ideals that are unacceptable to much of the software industry and many large businesses in other industries. The primary one of these is that, in principle, all software should be free (note that free is used here as in freedom rather than free beer, but in practice there is often no financial cost either). Many supporters of free software saw that this adversarial stance was marginalising them and that a re-branding was required. A classic paper by Eric Raymond, The Catherdral and the Bazaar, pioneered a new way of understanding and describing the practices of the hacker community. This promoted a more pragmatic view, where the open sharing of source code enables a more effective method of development, rather than being in some way morally or philosophically superior. This view had a much stronger appeal for businesses and gained wider acceptence in the software development community in general; it is credited with being one of the triggers for Netscape to release the source code to their popular web browser. Following this, some influential members of the free software community met and decided to adopt the term 'open source'. This was followed by a public call to other members of the community to begin using the new term. Bruce Perens then founded the Open Source Initiative as a non-profit corporation to define and advocate open source.

For a more complete history with details of dates and other people involved please see the "History of free software" and the "History of the OSI".

Open Source Licenses

The Open Source Initiative defines open source, and it is not quite as simple as publicly visible and modifiable source code. For a more accurate, although slightly circular definition, open-source software is software that is licensed under an open-source license (for example, the open-source license used by the Symbian Foundation, which is the Eclipse Public License, abbreviated as EPL).

Although open-source projects can appear anarchistic, they rely on strong IP law. The licenses applied to open-source projects try to make clear exactly what rights and restrictions users, distributors and contributors have and they rely on the threat of legal action to enforce these rights and restrictions. This use of IP law is no different to proprietary software licenses. The difference comes in what the rights and restrictions actually are.

The definition of ‘Open Source’ can be found at the Open Source Initiative but it can be paraphrased as follows:

  1. You can give away or sell the software by itself or as part of a larger distribution, and you don't have to pay for the privilege.
  2. You have to include source code, or publish an easy way to get it.
  3. You can modify the software, and you're allowed to distribute modifications on the same terms as the original license.
  4. If the license doesn't allow you to distribute modified the source code, it must allow you to use "patch" files instead, enabling others to make the same modifications.
  5. The license cannot prevent any group of people from using the software, whether you like them or not.
  6. The license cannot prevent the software being used in any type of work, whether you like it or not.
  7. No one you give or sell the program to has to sign any additional license to have the same rights you do.
  8. Even if the software is part of a distribution of software, the license applies only to that piece of software.
  9. Conversely, the license can't specify licensing terms for other software that may be included in a distribution.


Note that copyleft is not necessary for an open-source license (or a free software license for that matter); there are many examples of open-source licenses that do not require developers to release the source code for any modifcations that they make and distribute. Both the terms 'Free Software' and 'Open Source Software' are used (often interchangeably and without regard to the differences) and so a common term is 'Free and Open Source Software' (FOSS) to refer to both free software projects and open-source projects. For most practical purposes these types of project have more in common than they have differences but it is useful to be aware that the Free Software purists might disagree with this view. One thing that FOSS licenses have in common is that they allow the possibility of 'forking' a project, taking the code base in a new direction. Although the possibility is always there, the negative consequences of creating a fork usually outweigh the benefits and it happens fairly rarely in practice. The Symbian Foundation aims to engage the entire community and build consensus via open roadmapping and planning processes to avoid multiple versions of the code being developed independently.

The Symbian Foundation and the EPL

There are many possible FOSS licenses although it is considered poor practice nowadays to create new licenses unnecessarily. The Symbian Foundation is choosing to use the Eclipse Public License (EPL) which is a well known and proven open-source license that includes a copyleft clause. The spirit of the EPL allows individuals or organizations to distribute the software or products built on the software and to modify it. The software may be used or distributed free of charge but there is no warranty provided by the distributors. Full terms of the EPL can be found at http://www.eclipse.org/legal/epl-v10.html.

Much of the confusion surrounding open-source licensing relates to copyleft, its relationship to copyright and the implications for typical use in software projects. Most copyleft clauses apply to 'derivative works'; this is a legal term to be interpreted under the same copyright law that applies to literary works. In theory this is simple, if you copy a sentence from a book (or a line of code from a program) and use it in your book (program) then it is clearly not creating a derivative work, otherwise all books that included the line "Once upon a time" (int main?) would be considered derivative works of the first book to use that opening. Such a borrowing of a small amount of text (or code) is legally termed 'fair use'. At the other end of the scale, if you were to take a book (program) and change one sentence (line) that would clearly create a derivative work. For literary works there are fairly clear guidelines as to what constitutes fair use. So far, so good - these fair use guidelines can often be applied to source code as well. Unfortunately, copyright law is much less appropriate for source code than literary works for two important reasons:

  1. 1. The way that pieces of source code are combined to produce computer programs is very different from the way that pieces of text are combined to produce books and articles. The situation gets significantly less clear when you start to consider issues like static linking versus dynamic linking, inheritance and the use of templates.
  2. 2. Largely due to (1), the interpretation of copyright law as applied to computer programs varies quite widely in different countries.


The EPL seeks to mitigate these issues by specifying that U.S. copyright law is to be used and also attempting to clarify to some extent what is to be considered a derivative work. By selecting this license the Symbian Foundation is declaring similar intentions to those of the Eclipse Foundation when they created it. In general, it is intended that you can write new closed-source applications that link to Symbian platform libraries and closed-source plug-ins for Symbian platform frameworks. If you modify Symbian platform source code directly, creating a derivative work, and distribute binaries then you must release the source code under the EPL as well. That still leaves plenty of grey area if you want to use pieces of Symbian platform code in your own projects and if you have any doubts about the legal status of your work then you should seek professional advice.

Mixing FOSS software licenses

A complete program or system may be created from software that all uses the same license but it is also possible to combine licenses. This must always be approached with care as it depends on the details of the licenses and how the software is combined.

It is legitimate to take software released under the EPL and create closed software on top of it but some other licenses (such as the GPL) try to impose restrictions on how software can be combined. Since the GPL is a very popular FOSS license, it is worth noting that the EPL and GPL are incompatible, you cannot combine software using these licenses. There is a system library exception in the GPL which allows you to create GPL'd applications using a public SDK for the Symbian Foundation platform but it is probably not legal to link modules using these two licenses together in the firmware of a device.

Although it is practical to create a product using a mix of licenses, an individual FOSS project needs to only use one license if at all possible (in order to avoid confusion). Therefore, it is normal to require that all contributions to a project conform to that project's chosen license. Software offered under the wrong license is just not acceptable, no matter how good it is.

Patents and trademarks

While FOSS licenses allow use of the code, they don't necessarily grant a license to any patents required by that code. This is another reason for the selection of the EPL by the Symbian Foundation, as it makes this explicit. The EPL states that contributors provide a royalty-free license to use patents required by the software that they contribute. However, this does not prevent contributors having other patents (and it is impossible to provide any assurances regarding patents held by other parties) and the license makes explicit that patents on hardware are not covered by the license.

The EPL also contains a patent retaliation clause stating that if a user of the software tries to sue anybody on the grounds that the software infringes their patents then their royalty-free license to the software is withdrawn. This serves to protect contributors to a project, which fosters innovation and helps build a cooperative environment.

Although patents can be a controversial subject in the FOSS community, trademarks are somewhat simpler. Trademarks are just as important in the FOSS world as in other areas as they provide some form of brand identification. They also have to be protected in the same way as in the commercial world. Access to software under a FOSS license does not necessarily provide rights to any associated trademarks. Use of the Symbian Foundation platform code does not automatically grant the right to use Symbian Foundation trademarks.

The Open Source Culture

As stated above, open-source software is often free (as in beer), i.e. a user pays no license fee to use it. For many, this is one of the main attractions of using open source software. The creators of the software, the contributors, are also users and are not motivated by license fees but by the prospect of getting the software they want, when they want it - whether a tiny bugfix, or a huge feature – by making the contribution themselves. The largest contributors are usually the largest users because they get the most benefits from the software and so they have the best motivation for investing in it. As the largest users, device manufacturers are likely to be the largest contributors to the Symbian Foundation platform. However there are many other stakeholders that could benefit from contributing.

Historically, open source development was highly distributed, with self-motivated individuals contributing. They got the software they wanted, the fun and independence of self-managed projects, and the pleasure of developing their reputation with their peers around the globe. The distribution and transparency in their communities led them to develop efficient methods and tools for collaboration on increasingly large projects. In time “open source” began to mean not just the kind of license, but the whole of this development culture. Beyond the value gained from the software created, there is enormous personal satisfaction to be gained from getting accepted into an open-source community and gaining trusted access to the source repository for a major project. Those wishing to follow this path and understand the mindset, attitude and skills required to be really successful in an open-source world could start by reading Eric Raymond's guide to the subject.

Commercial use of open source is also motivated by low cost, and commercial contribution by the desire to get what a company wants, when it wants it. Involvement by established commercial companies began with companies paying individuals to work on classic distributed projects such as Linux, Apache, Eclipse or GNOME. Later, such companies played major roles in launching open-source projects, such as Eclipse and the Symbian Foundation. The motivations of individual developers within commercial open-source communities may be different from those within the classic open-source communities; the practices and the noises may differ. But open source in all contexts works best when classic collaborative development practices are used by engineers, whatever their motivations and affiliations. The fundamental difference for companies working in an open-source ecosystem is that they need to find alternative ways to compete and possibly adopt different business models.

Quick Links To SFL and EPL Information

The open-source license selected by the Symbian Foundation is the Eclipse Public License (EPL).

The EPL is not compatible with the GNU GPL, but it is still possible to develop GPL'd code on top of the Symbian Foundation platform in many cases.

The EPL explicitly provides a royalty-free license to any patents required to use the code, although hardware patents are excluded.

More information about the Symbian Foundation license (SFL) is available here.

A guide to moving a package out of SFL: Converting a package to open source.

Comments

Sign in to comment…