Get a quote
Architecture

What is open source? A licence that grants rights, not upkeep

The open source line in a proposal only tells you which parts carry no licence fee. Who tracks their updates, and who owns the code written on top, sits in other lines of the proposal.

Algoriel 14 min read
What is open source? A licence that grants rights, not upkeep
In this article
  1. What is open source software: code you can read, under a licence that permits it
  2. Open source does not mean free of charge
  3. What the licence grants: reading, changing and redistributing, each on the licence’s own terms
  4. What the licence does not give you: updates, support, or anything beyond “as is”
  5. An application built on an open framework is not itself open source: the contract names the owner
  6. The parts that sit side by side in a system: open source libraries, an outside provider’s service, code written for you
  7. What “built with open source technologies” says in a proposal, and what it leaves out

Open source software is software distributed under a licence that lets anyone read, modify and redistribute its source code. That licence hands the software over as is, and it leaves updates and the ownership of the application built on top to the proposal and the contract. Vipkurum’s question cropping tool runs every kind of part in one chain: open source libraries, an outside provider’s language model and code written for the job.

What is open source software: code you can read, under a licence that permits it

A proposal can promise that the code will be open to you, or it can say the system is built on open source. The first is an access promise and may be perfectly honest; the second names a licence, and that licence has a text you can read. The difference comes from the definition. Software counts as open source when its licence grants access to the source code together with the right to modify and redistribute it; being able to see the code is not enough on its own. The Open Source Initiative, the body that maintains the definition, opens its own text with the same point: “open source doesn’t just mean access to the source code.”

Code you can read but may not change or pass on is visible, and that is all it is; the industry sometimes calls this source-available software. The Initiative is blunt about the label. Only software under a licence it has approved should be called open source, and to anyone hoping to use the name without one, its answer is “please don’t do that.” Visibility is a precondition of openness, which is exactly why the two are so easy to confuse.

What, then, is the source code the licence is about? The definition calls it the preferred form in which a programmer would modify the program. It is human-readable text; the program your computer runs is produced from it. Code that has been deliberately obscured does not count, and the source has to be distributable alongside the compiled form. The definition’s unit is the version a person can change, and the rest of this article follows from keeping access and permission apart.

Open source does not mean free of charge

Where does the money go when a component carries no licence fee? Nowhere new: someone still installs it, hosts it, maintains it and adapts it to your business, and those are the separate jobs where the cost in your proposal actually sits. The Open Source Initiative’s FAQ says as much when it explains how anyone earns a living from code everybody may sell. Its list is selling assurances, customisation and maintenance.

Selling is allowed, too. A licence says what you may do with the code and nothing about its price, and the definition goes further than silence: a licence that stops anyone from selling the software, or from giving it away, fails it. Asked whether you may sell a program you did not write, the same FAQ gives a plain yes, adding that depending on the licence you probably cannot stop your customers from selling it in turn. The reverse case exists as well, since plenty of closed software is handed out at no charge. Price and openness are separate axes. Much of the muddle comes from the English word free, which can mean freedom or only that no money changes hands, an ambiguity the FAQ names directly; in a proposal, free software and open source tend to sit side by side, and neither phrase is about the bill.

Nor does an open framework make the question of upkeep go away. Our guide to custom software development cost takes up whether the technology choice changes the price, and its answer points elsewhere: the choice shapes who can keep the system running after launch.

What the licence grants: reading, changing and redistributing, each on the licence’s own terms

A proposal that mentions open source technologies is describing a stack of separate licences, one per component, rather than a single agreement. Components sitting in the same system can each carry a different text. Laravel’s licence file in its repository is the MIT text, Node.js ships under a licence in the same permissive shape, and Python is distributed under its own foundation’s licence, with documentation stating that all Python releases are open source.

What separates those licences is not the rights. Every one of them lets you read, change and redistribute; they differ in the condition attached to redistribution, which is either keeping the copyright notice or releasing derived work under the same licence. At the permissive end sits MIT. Anyone who obtains a copy may, free of charge, use, copy, modify, merge, publish, distribute, sublicense and sell the software, provided the copyright notice and the permission notice travel with every copy or substantial portion. Reciprocal licences, usually called copyleft, grant the same freedoms on a heavier condition: change the work and distribute it, and the result goes out under the same licence, with its source. The GNU General Public License describes this as passing on to recipients the same freedoms you received and licensing the entire work, as a whole, under its terms. Most copyleft licences are open source, the Initiative notes, but not all open source licences are copyleft.

The condition lives in the component’s own licence text, and that text can change between versions. OpenCV, the image processing library, says on its licence page that newer releases are licensed under Apache and older ones under a BSD licence. A component’s name is therefore half an answer; the version in your stack is a question of its own and deserves its own line on a handover list.

Which licence suits your business is not something this article will try to say. It can say where to look: the licence file in the component’s repository, for the version you actually run.

What the licence does not give you: updates, support, or anything beyond “as is”

Open source components, the usual reply goes, are kept up to date by their community. A community can indeed publish a new release, but that is a different event from the copy running in your system being updated, and the licence explains why nobody else is bound to close the gap. Common open source licences hand the software over as is: the authors owe no update, no support and no fix, and the text disclaims fitness for any particular purpose. The MIT text provides the software “as is” and states that its authors cannot be held liable for any claim; the GNU General Public License disclaims responsibility for the program as far as the applicable law allows; the Apache and Python licences carry the same “as is” wording.

Read MIT from top to bottom and no clause obliges anyone to update the code, answer a question or fix a fault; a disclaimer stands where such a clause would be. Assurance and maintenance, in other words, do not arrive with the licence; they are work someone sells or takes on separately, and until a name is written against it, nobody has.

So the work of bringing a release into your system, checking it against the parts that already work and sometimes deciding to wait falls to whoever maintains the system. Each open part of a stack is a maintenance line the licence leaves uncovered. That is why, on KGM SsangYong’s corporate site, the application framework and the front-end set were left alone. The site is looked after by a team on the brand’s side, and adding a component that team did not know would have tied its upkeep to an outside party. The article on who maintains software after launch follows how a choice of tools becomes a maintenance decision.

Paid support and security follow the same logic. Some companies sell an open source product with a support contract, and the licence underneath still hands the code over as is; the assurance comes from the contract signed next to it, never from the licence. As for whether open source is secure, a licence that will not even promise the software suits a particular purpose is not promising that anyone checked it. Public code makes a review possible without meaning one has happened on your behalf: a review exists where a person or a firm carried one out, and it has an author you can name. No verdict that open code is safer or less safe than closed code follows from the licence, only the practical step of looking for the review separately.

An application built on an open framework is not itself open source: the contract names the owner

KGM SsangYong’s corporate site shows the arrangement from the inside. The site runs on Laravel, a framework anyone can download under a public licence, and above it sits the application that belongs to the site. When it came to us it was live and working, and the work began by reading its code. Read access to the code is also the one thing asked for on handover day in our takeover work, because an application does not sit in a public repository just because its framework does.

The rule behind that arrangement is short. A framework’s licence covers the framework; who owns the application written on top of it is settled by the signed contract, not by the licence. Laravel is distributed under the permissive MIT text, whose only request is that the framework’s copyright and permission notice stays in the copies; it does not ask for the application on top to be opened up. A reciprocal framework could change that answer, since distributed derived work has to carry the same licence, and the framework’s own licence text is where to read which case applies.

Ownership is answered in the contract, then. Our own Terms of Use do not settle intellectual property on the website at all; they hand its transfer to the contract the two parties sign. What belongs in a website contract covers where that clause sits and how it is worded, and at proposal stage the lines to look for are short: who the intellectual property in the application passes to, and where delivery of the source code is written down. What the contract cannot do is dissolve the licences inside the application. It can assign the application to whoever it names, yet the open components bundled into it keep their notices, because two parties cannot rewrite a licence a third party published; an MIT-licensed library’s notice stays in the copy whoever owns the code around it.

The parts that sit side by side in a system: open source libraries, an outside provider’s service, code written for you

Put a real system on the desk and the parts of a proposal sort themselves. In Vipkurum’s question cropping tool, the code written for the job is what ties everything together: pulling questions off a page, matching the answer key, drafting new questions from samples, keeping the question pool in order. Code of that kind comes with neither a library’s licence nor a provider’s terms, and whose it is gets decided in the contract between the party that commissions it and the party that writes it.

Around that code sit parts of other kinds. OpenCV separates a printed booklet page into its questions, and the Python service doing the image work reaches the Laravel content management side by way of Node.js; each of those names is an open source library or runtime with its licence in its own repository. Matching each answer in the key to the right question, though, is done by Gemini and OpenAI models, and neither sits in the stack as a library. The tool calls them as services. Their code stays with the provider, what comes back is an answer, and you receive no licence text at all, only the provider’s terms of use, so that part does not belong under the open source line of a proposal. What an API is describes this as passing through someone else’s gate, where the far side decides the names and the format.

In the table the kinds sit in rows, with the questions a proposal should answer for each; the examples come from the cropping chain, and the rows are slots for the parts in your own proposal.

Kind of partExample in the cropping chainCan you read and change its code?Who tracks its versions and updates?Where permission and ownership are written
Open source library or runtimePython, OpenCV, Node.js and LaravelYes; the condition is keeping the notice or releasing derived work under the same licenceNobody, under the licence; tracking goes on the maintaining team’s lineIn the component’s own licence text, which can change between versions
An outside provider’s serviceGemini and OpenAI models, called over an APINo; the code stays with the providerThe provider; your side’s job is fitting each answer into your own recordsIn the provider’s terms of use, and in whose name the account is opened
Code written for youPulling questions off a page, answer key matching, the question poolDepends on the contract rather than a licence; at a takeover, read access is the one thing asked forWhoever the contract’s maintenance line namesIn the signed contract; our Terms of Use point intellectual property there

Kinds can overlap in a single part. An open source product hosted for you by a provider has code anyone may read, yet the copy you use is the provider’s and the provider decides when it is updated, so the library row and the service row apply at once. Subscription software is the extreme case of the service row: the source code is never handed over in the first place, and what you receive at handover sets out what to ask for instead. Whatever the part, once it sits in the right row, who watches it can be read straight off the cells to its right.

What “built with open source technologies” says in a proposal, and what it leaves out

None of the questions below depends on the open source line being in the proposal; a proposal built entirely on closed products raises every one of them. What the line adds is narrow. “Built with open source technologies” tells you which parts carry no licence fee and that their code is public, which is the right the licence grants and nothing beyond it.

It is silent on the rest. Fitness is the gap the licence names outright: it disclaims fitness for any particular purpose, so whether a part suits your work is settled in acceptance, through scenarios picked from the hard parts of the project and closed with a written record, as what to test before accepting software sets out. Version tracking lands on you quietly, because a part handed over as is needs someone to keep it current; that is maintenance, it belongs on the maintenance line with a name beside it, and if the line names nobody the job has stayed with you. Ownership is the easiest to place: the contract’s intellectual property line answers it, and the contract guide mentioned earlier shows where to start looking before anything is signed.

Nearby questions have their own homes: asking outright what was added to the stack is one of the questions to ask a software company, and reading a proposal’s tool list without knowing the tools by name is covered in choosing a software development company.

If you run a system that another team wrote on an open source framework, the project takeover page explains how handover day runs and how the list of parts is kept. On KGM SsangYong’s corporate site every part that entered the stack is recorded on that list by name, and its only new entry is a cache layer.

Key takeaways

  • Seeing the code does not make software open source; the licence does, by granting the rights to read, modify and redistribute together.
  • Open source removes the licence fee, not the cost: installing, hosting, maintaining and adapting the parts are paid work.
  • Open source licences hand the software over as is; updates, support and fitness for your work come from a contract, never from the licence.
  • An application written for you on an open framework is not itself open source, and the signed contract, not the licence, says who owns it.
  • After the open source line in a proposal, look for the lines the licence leaves out: ownership in the contract, version tracking in maintenance, fitness in acceptance.

Questions this article answers

  • Is open source software free?

    It carries no licence fee, which is not the same as costing nothing. The licence says what you may do with the code and nothing about price; the definition itself rules out any licence that forbids selling the software. Installing, hosting, maintaining and adapting a component are separate jobs, and that is where the cost in your proposal sits. When the licence line reads zero, read the maintenance and customisation lines next.

  • If I can see the code, is the software open source?

    It is not, by itself. Seeing the code is inspection access; open source means the licence also lets you modify and redistribute it, and only software under an approved licence should carry the name. Software you may look at but not change or pass on has visibility without the definition. When a proposal says the code will be open to you, read that as an access promise and ask which licence each part carries.

  • Does open code mean somebody has checked it for me?

    It does not; a public codebase means a review is possible, not that anyone has done it for you. Common licences hand the software over as is and disclaim even fitness for a particular purpose; a review exists only where someone named carried it out. Whether a part suits your work is settled in acceptance testing, not assumed from the licence. If your proposal has no acceptance line, nobody has taken that assurance on yet.

  • Our site runs on an open source framework. Is the code public now, or is it ours?

    Neither follows from the licence by itself; it covers the framework, and the application on top is a separate work. A permissive licence asks only that the framework's notice stays in place; a reciprocal licence sets its own condition. Who owns your application is written in the signed contract; our own Terms of Use leave intellectual property there too. Nothing publishes your application by itself, which is why the one thing our takeover work asks for is read access.

  • Who keeps the open source parts of our system up to date?

    The team maintaining the system keeps them current; the licence puts no duty to update or support on whoever wrote the code. Each open source part in your stack is therefore a maintenance line: who watches its version, who applies the update. KGM SsangYong's corporate site kept its framework and front-end set for that reason: the brand's own team maintains it, and an unfamiliar tool would tie maintenance elsewhere. Check whose name is on your proposal's maintenance line.

About the author

Algoriel

Remote web software agency

We build custom web and mobile software for businesses. Here we answer the questions that come up while your software is being built and after it goes live.

Tags:
  • open source
  • open source licence
  • software licensing
  • source code
  • software maintenance

Have a system to build?

If there is a system you want built, the quote form is the place to describe it.