12

I've been asked to make an application about astrology, and I would like to use this library https://github.com/astrolin/ephemeris/tree/develop/src/java/swisseph-2.01.00-01, however it is licensed under GPLv2.

Can I get paid to make the application if I release both the source code and the binaries for free? I'm not trying to sell the binaries after all.

P.s.: I might also have to use a library licensed under Apache v2, but if I understood well that shouldn't be a problem, right?

5
  • 8
    It's perfectly fine to sell GPL-covered software, or to get paid to work on GPL-covered software. You still have to comply with the GPL license though, and that means your software that uses GPL libraries would have to be licensed under the GPL as well (if it is published). As DSM points out in their answer, your client may not want these obligations.
    – amon
    Commented Jun 30, 2020 at 13:41
  • But bear in mind that 'published' does not include giving it to your client/employer. If they only use the application internally, the GPL does not apply. Only if your client wants to sell the resulting product do they have to provide the source code to the same people they've sold the product to. Commented Jul 2, 2020 at 13:08
  • The Free Software definition includes the freedom to sell. Start by reading this definition, then read the GPL. It is one of the easiest legal documents to read, as it was designed to help you, not to confuse you. Commented Jul 4, 2020 at 9:10
  • Linus Torvalds is paid to make a GPLv2 kernel Commented Jul 10, 2020 at 7:53
  • This is a question you really have to ask your employer/client. Including GPL code in a product usually means that the company is required to publish that whole program's source code as GPL, and many companies don't want to do that.
    – Brandin
    Commented Jul 10, 2020 at 14:41

3 Answers 3

18

If by

I've been asked to make an application

you mean that you were hired to create an application, the answer to your question depends on the contract you have with your employer (if you work for a company) or customer (if you are a freelancer).

If you are an employee, generally your employer owns all of the work you produce for them. In this case you do not have the right to release your work by yourself - you must ask your employer for permission.

Your employer may have rules as to what licenses are acceptable for third-party libraries or components. If you work for a well-run company, there would be some kind of a review process before you start working and the issue of GPL should come up there. If you work for a not so well-run company, you may be asked to redo the entire project if your boss finds out you used a GPL library and that is against company policy.

If you are an independent contractor or a freelancer, your contract with your customer should stipulate whether the customer owns all interest in the work you perform. If they do, you can't release the work without their approval because you don't own it. If they don't, you can provide the work to your customer but you retain the ability to also release it yourself under any license you choose that is in compliance with licenses of its component parts, if any.

Important: if your employer or customer expects that you wrote the application from scratch, they do not just expect that you'd spend a certain amount of time on that project (which could be dramatically reduced if you used an existing library, leading to perhaps a lower payment), but also that they would have all rights to the finished product. GPL imposes significant obligations on derived works, and you should probably verify with your employer/customer that it is OK for you to incorporate GPL libraries into an application they are paying you to produce.

I might also have to use a library licensed under Apache v2, but if I understood well that shouldn't be a problem, right?

Apache license tends to not cause issues/concerns because it does not impose requirements that GPL does on the software that uses Apache-licensed components.

8
  • 1
    I'm a freelancer. This customer of mine actually suggested to get code from other open source projects. If the customer doesn't want the application released to the public, do I only need to give him both the binaries and the source? Then only he will be able to decide if it can be released publicly. In the case he agrees on releasing it to the public I have to release both the binaries and the source, right?
    – Rufis_
    Commented Jun 30, 2020 at 18:06
  • 7
    If the customer owns copyright (i.e. you are performing "work for hire"), then the customer must publish the source as needed to satisfy GPL obligations. It seems to me that your customer may not fully appreciate the requirements of GPL.
    – D. SM
    Commented Jun 30, 2020 at 18:32
  • 6
    Right. GPL also does not require source publication if the derived work is only used internally by a person/organization and is not published.
    – D. SM
    Commented Jun 30, 2020 at 19:12
  • 11
    Strictly speaking, GPL never requires source publication. It requires inter alia that source be conveyed to anyone to whom the binaries have been conveyed. If the payer never conveys the binaries to anyone (outside hir organisation) sie need never convey source.
    – MadHatter
    Commented Jul 1, 2020 at 7:18
  • 3
    MadHatter is correct, and I've done so in the past. My former employer was contracted by a large shopping mall to create a bespoke application for them, and we used Qt under the GPL license. This made perfect sense to all parties - there was no intention whatsoever to distribute this code, we were not in the mall business, and our customer wasn't in the software business, so we offered the source code and they declined the offer.
    – MSalters
    Commented Jul 1, 2020 at 23:47
12

Just adding another take on the question, hopefully to complement D. SM's excellent answer. You say that you're writing an application and you want to use a GPLv2 library in it. You fully understand this will mean releasing the entire program you write under GPLv2, and honouring the licence (providing source to anyone to whom you provide the binaries, etc.), and you're fine with that. You just want to know if it's a violation of the GPL to get paid to do this.

It is perfectly OK to do this. The GPL FAQ is clear that it's OK to write code and convey it under GPL, in exchange for money. I get paid to write code and release it under GPL on a regular basis.

Note that is it OK to do this as part of my regular salaried job is a different question to is it OK to get paid to do this, and I'm only answering the latter; D. SM alludes to some of the complexities that arise from the former. Note also that I approach the question from a licensing standpoint; there are many other standpoints, such as payroll taxes, that we can't deal with here.

3

If you write software as an employee, you should have an employment contract and get paid. If you write software as a contractor, I assume you have a contract that guarantees that you will be paid as well. Whether you are using open source software doesn't matter at all.

There are of course consequences for using open source software: Whoever is the final copyright holder of the parts that you wrote, isn't the copyright holder of everything because they don't hold the copyright to the GPL parts. That means they need to follow the GPL license terms if they distribute the software.

The problematic thing is if you use GPL licensed software without telling your employer or the company you have a contract with. If the company planned to sell the software as proprietary software and you added GPL licensed software, then they can't do this. This may completely upset their business plans. Worse, if they distributed the software without following the GPL license, they have unknowingly committed copyright infringement.

If that happened because you lied about the use of GPL licensed software, then you are in trouble. From being told off to being fired as an employee, and from not getting paid to be sued for damages as a contractor.

Finally, what should you get paid for: You should always get paid for your work. Handing over the binary and source code will most likely be part of your contract or part of your employment, but according to the GPL license you can charge any amount for the binary, and your reasonable cost of copying for the source code. You are not allowed to charge for the license.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.