Introduction
Introduction to software licences
Licences control:
- How software can be used, including how whom, when and for what purpose.
- How software can be installed and re-distributed
- How software can be altered
- How software can incorporated into larger systems
- What attribution must be given
Public Domain
Public Domain Licences
These are the most permissive licences as they release the software and its source to the public domain, meaning that it can be used by anyone, for any purpose.
If you write some code and don’t care how or by whom it is going to be used/adapted then you can release it under this license. This is also the most anonymous license.
Permissive
Permissive Licences
These licences contain very few restrictions and allow the most flexibility below public domain licences. Common examples include the Apache or BSD licences.
The specifics of the licenses vary from license to license but generally include:
A copy of the original license must be contained within the redistributed library
The creator organisation’s name cannot be used to endorse products
A disclaimer statement that the software is provided ‘as-is’ and the creator organisation cannot be held responsible for consequences of the software’s use.
Copyleft
Copyleft Licences
These licences contain one key restriction. Any software that you develop where you have modified the licensed source code must be licensed using the same license as the original. This is designed to prevent people taking the source code, improving it, and then releasing it under a propriety licence in order to sell. It may also restrict the type of of usage, for instance if software is released for personal use only and you adapt the software, you can only release a derivative under the same personal use licence.
If you improve the code you must allow others to use it (you can still sell a product based on the license but you can’t stop using from using the source code you created).
Attribution pointing to the original authors must also be kept, so that they original authors of the software are credited for their work.
The GPL licence is perhaps the most common copyleft license and is the license controlling the Worpress blogging engine – the most widely used website hosting platform in the world.
Free as in freedom, not as in beer
It is a common misconception to think that because GPL software is ‘free’, you cannot sell software based upon it. This is not the case. WordPress.com hosting is a prime example. The website offers hosting based upon the freely available WordPress engine, and yet it is a hugely successful commercial venture. While people are free to use the engine and host their own site on a server of their choice, many people don’t have the technical know-how or the inclination to do so, so they pay WordPress.com to host their site for them. This creates a win-win for developers, hosts and for users.
Proprietary
Proprietary Software Licenses
These licenses are highly restrictive and are widely used in commercial software. They are also usually closed-source in their nature, so users cannot inspect the source code for the product.
Advantages
- This gives the creator exclusive distribution and sales rights to the software.
- If the software is closed-source then it is more difficult for competitors reverse engineer the software to produce their own version of the software.
- It can be more difficult for hacker to find attack vectors to hack into the software.
- Software is usually more robust with less bugs
- Usually better dedicated support
- More likely to have a software upgrade path
- Compatibility with other commercial software is more likely.
Disadvantages
- If the organisation goes bankrupt / closes-down then the software cannot be updated easily.
- Some people argue that open source software is more secure because most people can view the source code and therefore subject it to scrutiny when compared to closed source software.
- Propriety software also runs into legal issues around licensing when combined with libraries that contain copyleft licensed code.
Multi-user licenses
Multi-user licences
Individual licences
These licenses allow installation of a piece of software onto one computer. They are normally used for consumer software license such as computer games and personal office software.
If you buy a new computer you need to uninstall the software from the previous machine and install it on the new machine.
Site Licences
These licences allow a limited/unlimited number of installations of a software package onto computers in a physical locations (such as in an office or a school).
This means that businesses can buy a software license once that will cover the whole site.
With the shift to browser based applications that don’t need to be installed on a local machine, these licenses may well become less relevant.
Machine licences
These are an alternative to site licence and permit software to be installed on a certain number of machines. These are especially useful where an organisation has employees who are not based within a single geographical location, such as travel companies with work from home employees.
Seat Licences
Another alternative to machine licensing is seat licensing where the license restricts the number of simultaneous users of a software package. This type of license is becoming more popular with browser-based software and cloud computing.
Resources
Resources
Past paper questions
S16 paper 13 Qn 3C