Open Source Software Licensing

Directgov Innovate strongly advocates the use of open source software and we want your views on the best ways to licence government and public projects.

Which licence do you think would best suit our projects? While copyright would remain with the Crown, we could choose either a very permissive licence, perhaps MIT or BSD. These would allow the code to be used again in closed or open software. Alternatively we could require that the code is kept open, by using a licence like the GNU GPL. You can find a list of approved licences at the The Open Source Initiative website.

The first project we are looking to release is Spark, a platform designed to share and showcase innovation from all areas of public and civil society. With limited exceptions the technology underpinning Spark is open source, including PHP, MySQL and the Symfony Framework. We host Spark on a Linux webserver.

The principle underpinning Spark is the promotion, reuse and re-application of UK public sector projects. If one Spark user showcases their project on, say, youth education, then another might take up the idea or collaborate in its production. Or another still might re-use the whole project later in a different geographical area. Spark will lead to cost sharing and asset re-use, meaning government can deliver more for less.

It is with that underlying idea in mind that we would like to share the source-code of Spark with interested parties. Parts of Spark can be used for new projects, upholding the principle of sharing and cost-saving. When Spark matures past its initial development phase, we'll host the source code at a place like Github.

A new release of Spark will be made soon, and I will blog about that when it's live. Meanwhile, please let us know your thoughts.

Trackback URL for this post:

http://innovate.direct.gov.uk/trackback/635

Comments (30) :

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Follow-up

Thank you to everybody who commented and offered opinions on this post. I've just posted a follow-up to this topic here:

http://innovate.direct.gov.uk/blog/follow-open-source-licensing

What effects do you want?

Selecting a license for open source software is considered difficult by many. However, if you start with describing the effects you would like to see it becomes much easier.

In what scenarios would you like the code to be used? Would you like to see it included as a part of a commercial software project that generates income for a business? etc etc.

Also, it would be advisable to look at how the public sector acquires software today (typically through contractors who build it based on some framework or other software).

One thing that should not happen is to create a new type of license. License proliferation only increase the administrative burden and may hinder re-use scenarios.

minimise distortions

There's a lot of existing policy that should be brought into consideration, including the Cabinet Office policy on open source software and the Lambert Review conducted a few years ago. The former, discussing the use of software within government offers "parity of esteem" for open source and proprietary software, the latter considers the wider issue of maximising innovation and IP exploitation for government funded R&D.

There is also a need for the government to avoid doing anything that created barriers to the internal market or free trade generally

It would seem strange for government to release tax funded software under a licence that resulted in innovation favouring one sector and discriminating against another in competing for future work.

While as Chair of the Open Source Consortium I would want to see the licence being Free or at least OSI approved, I also recognise that some taxpayers release proprietary software...

All of the forgoing points to the use of permissive licences such as LGPL to maximise the value contained within the project while still allowing proprietary software developers to benefit, followed by a BSD style licence which de-emphasizes keeping the value within the project, EUPL for single market reasons or public domain for simplicity.

And another thing...

May I suggest the GFDL for all the accompanying documentation. This has been designed specifically as an accompaniment to the GPL family of licenses.

It's our software

It's our software and the best way to keep it so is to license it under some version of the GPL. I believe that Dr Andrew John Hughes said it all.

Simon Dickson tells us that the Government "takes a chunk of a company's profits..." by way of VAT, amongst other things, and, therefore, that company should have some stake in our software. Well, let me remind everybody that VAT is an end-user tax; most companies will be VAT registered and thus claim the VAT back from HM Revenue and Customs. It's a fact that the majority of VAT is paid by us.

We elect the Government to represent us, and our Government taxes companies on our behalf. Why, then, should Government software, that we've all paid for, be hijacked by a company just because it has been licensed under a permissive license. Furthermore, why should we then have to pay for it a second time by buying it back from that company. Tom gives a good example of this hijacking of FLOSS by Apple Inc. This is what happens when software, such as FreeBSD, is released under such a permissive license.

Chris Puttick suggests the Creative Commons Attribution license for software libraries, but even the Creative Commons organization itself recommends that no software should be licensed under such a license.

As Dr Andrew John Hughes says, the GPL, AGPL, and LGPL, surely is the only choice in order to keep our software free.

Best value for the big society

Best value considerations suggest a licence that maximises future value for the govt would be the most appropriate; given a large portion of the software developed is likely to mostly be of interest to the other govt bodies I'd think EUPL would be most effective.

A completely permissive licence would potentially result in no value being returned on the investment of developing the code. However I'm with Tom Morris below on putting software libraries and other "byte sized" projects out on a BSD licence or even just as pure Creative Commons Attribution.

Protecting freedoms, but which ones?

A permissive licence allows the next user to have the greatest freedom by allowing them to do anything, even close development on their derivative software.

A copyleft licence provides greatest freedom to end users of the software and its derivatives, by not allowing people to take away the freedoms that are the basis of free software.

Copyleft still allows commercial exploitation. Free software by definition must allow it. Anybody arguing that a permissive licence should be used over a copyleft licence based on commercial usability is missing this important fact.

Others have commented on the use of weaker copyleft or permissive licences working well for certain projects, however, I have only ever seen this where the project already has good momentum. I had never even heard of Spark before I read this.

In the post, the principles of re‐use, and sharing, and cost‐saving are outlined. To me, a copyleft licence is by far the best fit, because not only does it encourage immediate re‐use and sharing, it does so to the maximum extent possible.

In choosing a licence, avoid creating a new one, we have enough to choose from and confuse people with already. Pick one that’s popular, and largely understood. I would go with either GPL v3, or AGPL v3 (which is pretty much just an extension of the GPL for services delivered over a network).

EUPL

Have you considered using the EUPL licence?

It depends on the project and longer term objectives

There is no simple answer to this question and anyone who provides a "one size fits all" answer probably has a personal agenda of some sort.

Each case should be examined individually.

I recommend you contact OSS Watch a non-advocacy advisory service to the Higher and Further Education sector. They can be contacted via info@oss-watch.ac.uk (disclaimer: I work for OSS Watch)

Companies pay tax too

Re comment by Dr Andrew John Hughes: 'Government development, funded by public money, should not be a source of wealth for proprietary software companies.' (and similar sentiments by Tom x2)

But 'public money' is, by definition, tax - paid by both individuals and companies.

If the government takes a chunk of a company's profits (in the form of corporation tax, VAT, whatever), and spends that money on code development, then I don't personally believe it's any less fair for the company to want a right to re-use that code - and yes, to derive a profit from it. That's what companies do.

So whatever licence is chosen, and I have no expertise to offer on the subject, a right of commercial re-use must be a consideration.

And I'd be looking for reasons not to use the shortest, simplest, most open, most permissive licence available.

Clarify objectives

The first issue to address it to clarify the objectives for the licensing. As this is investigated, it will become clear that it will not be a one-size-fits-all solution. There may be some components that cannot be licensed freely as they are already owned or licensed elsewhere. Other components may benefit greatly from having a very permissive license to encourage commercial interest and development or inclusion in propriety solutions.

The people behind these selections must be impartial and experienced within the Open Source licensing world to ensure correct assignments are made to reduce the chances of encumbering future developments and innovation.

There has been many commercial projects I have worked on over the last 15 years which have overcome these same challenges.The hardest part is often the education of the stakeholders as to the best long-term choices.

There is no doubt that Open Source will be a major part of the future of the Public Sector, it just needs to be executed in the correct manner and be saved from the empires and and monopolies that get built when departments find they no longer have any real value to add.

Goals of the Project

A lot depends on the goal of your project. If you are building a platform that wants to attract a large ecosystem of users, adopters and contributors you should consider a license that allows for commercial and open source usage. Allowing commercial usage will expand the ecosystem and potential create more investment in the platform, ie funding potential contributors.

At Eclipse we have been very successful with a weak copyleft license, the EPL. Changes to the platform must be contributed back to the project but it allows for companies to build value-add products on top of the platform.

Good luck,
Ian Skerrett
Eclipse Foundation

Communities rather than licences

Much of my software is publicly funded, and MIT, BSD or (perhaps best of all) Apache 2 strike me as the best for this field.

However more significant is how the community around the software is organised. GPL is typically touted as ensuring freedom, but the success of the Apache project has not required a copyleft licence.

Good governance, social norms, and infrastructure support work to support ongoing development. It would be worth talking to OSSWatch, who I've found very helpful.

Thanks!

Thank you for recommending OSS Watch. As manger of OSS Watch I am pleased to offer our services.

EU (Foss) Public Licence (EUPL)

The EU FOSS licence: NO, it's not "just another licence". This one is FSF and FOSS compliant, conforms with the law of ALL 27 member states and has been tested
to comply with the EU and member state laws. A catch-all means that there are no problems with determining applicable law and jurisdiction - all this has the bonus that there is no question as to whether a court will deem the licence to be valid (that is, the licence will not be questioned, just the acts or deeds in relation to the licence).

Preamble, licence and Guidelines for users and developers, with links to all languages:-

http://ec.europa.eu/idabc/eup

Particular and General

In particular, I'd take the jQuery approach and dual-license under MIT and GPL. I'd avoid AGPL at least until more of the implications are understood more widely.

In general, I think the new government should fit in with the Freedom and Big Society themes, and refer to the Free Software Foundation and not only the Open Source Initiative (after all, the original initative to obtain a trademark failed...).

You need a license that protects the openess

I think the only license that truly protects open source software is GPL. You only have to see how Apple have taken the BSD license and made a fortune out of it without contributing as much as a byte of code to the community to see why nothing less than GPL will do.

Apple have done nothing illegal or even immoral, but it shows how weak the BSD license really is at protecting something that was in spirit supposed to be shared freely and not just exploited.

If you want to protect your code assets right to remain free you need also to consider the possibility of patent threats. Again GPL 3 attempts to assist this protection, However if the UK government is serious about using open source technology then it should seriously review its recent policies on software patents which are not helping the protection of free software and creating uncertainty among developers (and potential developers) of open source. If you want the open source market to grow then remove the software patent legislation.

For code libraries (as opposed to full applications) I would relax the license to LGPL. There is value in allowing libraries to be exploited commercially and may even keep costs down. For example if the crown were to contribute a standard library for income tax calculations then this could be slotted into commercial payroll systems. Thus when tax changes are made, a new library could be released and it would save a small fortune in re-development costs from individual payroll system providers. It would also make the Payroll Systems market more competative.

Of course this would require careful design of the API to ensure robust future proof integration.

MIT/BSD

while these licences do increase participation the fact that these licences allow the code to be taken closed source again effectively means the participation is one way.
You'd hardly think of OSX as open source and conducive to the free co-operation and cross fertilisation that I would expect Directgov to be looking for but it WAS Mostly BSD and I don't want to see the taxpayer paying for some massive company for 10 billion lines of open source code with a few hundred lines of closed/patented source on top of it ... again!

It depends.......

I think it depends on the goals of licensing, and also on the project, and sometimes the toolset you want to use.

As a tax payer I hope you will chose a license that minimizes costs to the tax payer. Since this would presumably involve not paying repeatedly for variants of your own software at a later date, a copyleft license would seem appropriate.

One must also check the license is consist with the other components with which a project works.

Since I want other people to use it, and copyleft will discourage that somewhat, something like the Affero GPL makes it easy for people to get the source, and any modification if appropriate.

GPL, AGPL, and LGPL

The collection of licenses offered by the Free Software Foundation are perfect, they ensure freedom for the software, users, and developers, and come in a variety of flavours to cover just about anything.

Thus,

  • for desktop applications I would suggest the GNU GPL, preferably version three;
  • for web applications I would suggest the GNU AGPL;
  • finally, for libraries, I would suggest the GNU LGPL.

To fork or not to fork?

That's really the question here. Choosing a license which allows proprietary forks to be developed, such as MIT, BSD or the Apache license, will allow others to profit from government work without contributing anything back. In contrast, the GPL licenses encourage sharing and community development around the code, and I think that's the right course to take.

The point about 'maximum usage' made by others is one that is often heard from proponents of the permissive non-copyleft licenses. It's true that some may be dissuaded from using the software because of this. But is this really helpful to the project anyway? If the license is a problem, it's not because they want to contribute to the project but because they want to distribute their own modifications in a proprietary form and not give back to the community. This may result in an slightly larger number of users of the project, but those users will be vastly more divided.

Releasing software as open source is one thing. It is quite another to build a successful community around it, as efforts by various companies have shown. The most successful communities I can think of are around GPLed projects such as Linux (the kernel) and the GNU Compiler Collection (GCC). Both have contributions from volunteers and companies alike (including IBM, Oracle and Red Hat), who work as equals for the good of the project. In contrast, you don't see a significant community around the Apache projects. Instead, forks of these works appear in other projects such as the fork of Apache's Java XML libraries in the OpenJDK codebase maintained by Oracle.

Government development, funded by public money, should not be a source of wealth for proprietary software companies. Please choose a copyleft license appropriate to the project in question (i.e. AGPLv3 for websites, GPLv3 for programs, LGPLv3 for libraries) which will centralise development and help promote a community around the project.

Canadian example Crown Copyright & MIT license

The Government of Canada (GC) has initiated an open, collaborative, web solutions project called the Web Experience Toolkit.
From the project page: "Ready-made tools and solutions for building innovative Web sites that are accessible, usable, and interoperable. These tools and solutions are open source software covered under Crown copyright and distributed under the MIT license. They are developed through open collaboration between GC and external Web communities."
You can check it out or join at: http://tbs-sct.ircan.gc.ca/projects/gcwwwtemplates

External usage and integration issues

GNU GPL is a real issue for anyone attempting to connect from the commercial world. Clearly one aim of the data (and code) release(s) is to empower the use of the data. Many industry developers have clear bans on GPL and similar licenses as they prevent use in anything remotely commercial or with elements of closed source (i.e. any commercial enterprise with sensible license control, typically prevents usage where it maybe wise for the open data/software to be used).

BSD, APACHE or MIT would be wiser in my opinion as it allows controlled commercial usage meaning a wider (and real world) usage which could be prevented otherwise.

Licenses

I would say: GPL3 for any applications, but with an option to make them available for a fee under a commercial license as a revenue stream. Pay not to share. GPL3 also means (I think) people have to share if they make webservices available using it.

LGPL for any libraries for working with the data so as not to stifle innovation using them, but prevent them making secret bespoke versions of the libraries themselves.

Very small things, and any example code should be BSD or just public domain.

This comment is cc-by *grin*

OSS License choice

This depends on your goals.

The key question is whether you want maximum usage, including commercial exploitation, or whether you want to ensure any extensions or associated software are also open source.

Assuming you want maximum usage then avoid copyleft. While MIT/BSD are very open and good defaults in that case, there's an argument that Apache v2.0 is a better choice because it covers patent license as well, not just copyright. Whether you can actually offer Apache license will depend how good your contributor tracking processes are.

Public domain

Why on earth would you consider anything other than just putting it in the public domain?

Seriously! Just use the most permissive licence you can, or public domain if possible.

You might consider applying

You might consider applying more than one license? For example jquery licenses under both MIT and GPL http://jquery.org/license

No debate required

Maximise innovation and participation by using an MIT or BSD style license.

Easy

Desktop application: GPL.

Web application: AGPL.

Library: MIT/BSD.

As a matter of public policy, I think the government should be favouring GPL and AGPL in most circumstances, except where there is a reason to favour MIT/BSD. The reason why that would be is simply that if you have produced a library that is of use to programmers, releasing that as MIT/BSD means that it can be modified by a lot more people and reused inside commercial applications and so on.

Please, please, don't use any licence other than one of the ones listed above. There's too much confusion and too many damn licenses out there already. Stick to GPL, MIT/BSD and AGPL and life will be much easier.

The LGPL license is a good

The LGPL license is a good balance between full GPL and MIT/BSD licenses.

Basically, LGPL is same as GPL, but without the "viral" clause that requires all linked software to be the same license.

So it promotes/requires sharing of changes to the original code, without forcing developers to re-license other code in the same project.