For contracts where you own the software and are granting a perpetual license for use to the client, how do you deliver the final project?

Do you give the a tarball of the source code, read only access to the repository, fork the repository and transition ownership of the fork to the client?

4 Answers 4


If YOU own the code, then YOU are the only one who gets to keep the source code. Clients get installation files, compiled or otherwise. And a written licensing agreement that asserts your rights over the product and says what they can and cannot do with those install files. Don't skimp on the licensing part - write it once, write it well, and then you can reuse it later for other projects.

Especially if your work is plain text script, don't skimp on the licensing agreement. There is nothing to prevent your work from being copied and shared in that case, but without a stringently worded license, you may find you have a hard time making a case for compensation if you find your work has been stolen. Wouldn't hurt to also have at least a few files embedded with steganographic information as well. It's hard for a dishonest person to later prove their assertion that "it's all MY work!" when decoded key files in the application show your copyright declaration. :-)


First of all, it depends on the license of software.

  1. A 'Perpetual License for Use' is non-descriptive. You must define 'use' (i.e. use to sell, use to re-distribute, use to modify are all possible interpretations of the word 'use'). It is quite common at law that when there is ambiguous wording of the contract, the courts will deem that to be the fault of the person who drafted the contract (this is common with insurance, for example), so make sure you define 'use.' (And as I am not a lawyer, please seek clarification from a qualified legal professional - this applies to the full contents of this answer, including this point and points below).

  2. Given the above, if 'use' does not include a right to source-code (which it seems from your question it does not), then if you can, deliver an executable, or your code in manner which permits the intended use, but prevents the ability to copy and redistribute.

  3. However, if you are required, under the license and/or terms of your agreement to provide source-code, then certain ancillary obligations come with that. For example, under an open-source license, those obligations may include, but may not be limited to:

    • making the code available from a suitable distribution point (i.e. USB key, your website, project hosting sites, a repository that is accessible to the client, etc); and

    • must include the source code for any other open-source components you have used in your project.

For further information on obligations of making open-source code available, see OSS Watch's Making the Code Available section.

For proprietary software, (i.e. software in which you are not obligated to provide your source code), you would generally define terms (including prohibition to do such things as 'reverse-engineer,' 'redistribute' etc.) in what's called an EULA (End-User License Agreement) - but you must be careful that the client has access to and can review the EULA prior to purchasing or contracting for the software, otherwise the EULA may be considered void (for example, in shrink-wrapped software). Your EULA should define how the software may be delivered to the client and what the client may or may not be permitted to do with the software you provide.


You generate executables. NEVER give up your source code (and likewise, rights to your repository) unless that's what the client is paying for.

  • 1
    Hey codenoire, would you be able to explain why? Remember, the best Q&A involves sharing experiences, not just opinions. Check out Good Subjective, Bad Subjective for more details.
    – jmort253
    Commented Apr 2, 2014 at 4:49
  • I agree with codenoire: with source code they could create derivative works, sell source code to someone else... maybe it's not "exactly" what you want. If they're allowed to only use your software, they need only executables (maybe a cd-rom, a download from internet or just a zip sent via e-mail). You can add a pdf manual if you want, but without any source code.
    – Fil
    Commented Jun 7, 2015 at 23:23

It depends on the license. You may provide only binaries. I usually license under the GPL and deliver a source tarball.

This is a very large field and it depends on the specifics of the license and the license offer.

Another point is that you may want to license it under various terms and sell an additional license for the source code. In this case you would deliver binaries with a source distribution costing extra. In other words, this is for you and your customer to negotiate.

  • 5
    I'd also suggest clarifying that the negotiations should be had up front. Otherwise, that could put both parties in a very awkward position.
    – jmort253
    Commented Apr 2, 2014 at 4:51

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.