How to License Software

How to License Software

Your choice of a license agreement for software application depends on on what you wish to grant to a user.

While most software apps only use the End-User License Agreement (EULA), there are open source licenses that give users more discretion on how they use a software's code.

Here's a general guide on how to license your app and choose the right type of licensing agreement for your software.

What is a software license

A license is an agreement between a developer and user on how a software product can be used. The terms of a license are outlined in a document called a "license" or "licensing agreement".

Licensing agreements can be general and apply to all users, like an EULA. Other agreements are more specific to a particular user; these would include private licensing agreements between a developer and a user.

Other licensing agreements allow users to modify the product's code.

Known as open-source software, developers are offering these products in the spirit of software freedom and draft the agreement necessary to protect interests while granting users extended privileges not offered in specialized agreements or EULA agreements.

All licensing agreements contain similar provisions:

  • Permitted uses.

    Permitted uses

    You may be tempted to limit this section to allowing users "to use" software, but more detail is required.

    The license needs to indicate whether the use is exclusive to the one licensed user or limited to particular services, sites, and purposes. If sublicensing is allowed, those terms are included here too.

  • Restrictions.

    Restrictions

    This often overlaps with permitted uses. Many definitions of allowed uses are described in the negative, like the restriction on reverse engineering. Other explicit restrictions may limit the number of copies made of software or on derivative uses.

    For example, if you run a platform to help developers create their own apps, you may place a restriction on using the code for profit in your licensing agreement.

  • Intellectual property rights.

    Intellectual property rights

    If you wish to retain exclusive ownership of the software and keep it closed-source, your licensing agreement requires a section explaining that the copyright belongs exclusively to you. Even if you offer an open-source product, this remains relevant.

    For example, some companies require attribution if a user uses that code for their own product.

  • Warranties and limitations.

    Warranties and limitations

    When you allow users to create derivative works with your code, that has the possibility of opening you up to liability if it does not work for them.

    If you offer certain guarantees, those need to be stated clearly too.

  • Redistribution terms.

    Redistribution terms

    If a user creates a profitable product using your code, do you expect compensation? Any royalty requirements need to be indicated clearly to the user.

    Likewise, if redistribution is prohibited and the code is only for personal use, that statement is also required.

How to choose a software license

Choosing a license form depends on whether your software is free, purchased or contains open source code.

"Free software license" and "open source license" are essentially the same thing, although "free" indicates the freedom to manipulate the software rather than as an indication of price.

Broad license

Broad license

A broad license works great for the minimalist.

This "do anything" license allows users to modify the software and use the code in their own proprietary products, including those that are distributed for profit.

A broad license is one of the easiest licenses to implement but offers little copyright protection.

You will need the legal agreement to specify that there are no warranties because you risk liability if your code does not perform as expected.

GNU License

GNU License

The GNU, or General Public License, is a free software license that offers users freedom to operate, study, share, and modify the software. An effort that started with the Free Software Foundation (FSF) in 1991, it's now a popular choice for open source projects.

Audacity is an open-source sound manipulation app that's available to download for free. This app is an example of a software product that uses the GNU.

Like many of its type, its starts with the general preamble of FSF which describes the freedom to manipulate and change a product:

Audacity GNU License Screenshot

Even using the GNU license, that does not give users the chance at a free-for-all of public distribution and profit generation. While using the GNU license leaves your software open to being changed for personal preferences, there are still limitations on using it for proprietary products or distributing it.

Sharing is encouraged, but not for a price.

Audacity describes this briefly at the beginning of its licensing terms. Distribution is allowed but users must make the same disclaimers that are also relevant to Audacity:

Clauses in the GNU License of Audacity

PDFCreator is a free product by PDFForge that also uses the GNU license. It also offers a summary by clearly indicating what a user may do:

Screenshot of PDFCreator GNU License page

If you're allowing users to adjust your product, the GNU license is likely your best option for an easy licensing agreement solution.

You can at least use it as a template to create a better licensing agreement. For example, if you allow users to modify the source code but you would prefer they do not distribute copies, make that clear in your agreement.

However, do not label your agreement as a GNU license agreement. If you prefer to limit a user's authority to merely using your product and want to maintain closed-source code, an End-User License Agreement (EULA) is your best option.

EULA license

EULA License

The EULA license is used to limit use. There are no terms regarding modification of the software or using its code for other products. An EULA agreement does not allow for derivative products or reverse engineering either.

The agreement will also contain disclaimers of liability and warranties, but that's not unique as most software agreements contain those terms as protection from liability.

If you're not distributing open code or developer tools, you likely want the limits indicated in an EULA agreement. This is especially true if your software is unique on the market and profitable to your company.

The EULA offers additional intellectual property protection that would not be present in other software agreements.

Logo of Office 365

One example of a relevant limitation is the one concerning users and devices. Microsoft licenses Office 365 as a subscription service. While a GNU encourages free distribution, the licensing and subscription agreement available through Microsoft products is much more limiting:

Screenshot of Microsoft Office 365 license

Piriform creates a series of PC management tools, including CCleaner. A link from its platform takes you to a comprehensive list of EULA agreements for each of its products:

List of EULA agreements by Piriform

If you go to the EULA for CCleaner Free, you will find a conspicuous list of authorized uses for the software. This is a good example where permissive uses are worded primarily as restrictions:

Piriform CCleaner Free: Screenshot of EULA License

As you can see, licensing agreements are very adaptable from the most liberal to the very restrictive.

An EULA is normally enough if all you wish to authorize is use. However, if you offer open source code, going to a GNU or modified GNU license is likely a good way to go.

Once you decide on a type of licensing agreement, you need to determine how to help your users find the license agreement.

How to use a software license

The link to the license, or the location of its folder, should be stated clearly on your product's front page.

One option is to offer a general announcement, like this sample announcement for entities using the GNU license:

Sample screenshot of GNU License

You do not need to maintain the entire content of the license. The purpose of this announcement is to communicate that there is a license agreement affecting the product.

Another way to handle licensing agreement availability is through your product. Going to the "About" tab on CCleaner Free by Piriform takes you to a link that leads to the list of licensing agreements for Piriform products:

Highlight license agreement link on Piriform CCleaner Free

If you provide links to a document management service, make sure the license is located in a publicly available folder.

It's difficult to use the protective terms of a license if users cannot access it. This is a frequent error that could waive any copyright protection you enjoy. In addition to making the licensing agreement available, you also need a system to assure users accept it.

Whether you use a GNU, modified GNU or EULA, the easiest way to go about this is with clickwrap. You can set this up as part of the signup process:

Example of clickwrap sign-up: I agree to Privacy Policy and EULA

You can also set it up as an explicit "I Agree" as shown during OS X Yosemite installation process:

Agree to OS X Yosemite Software License Agreement

Your licensing agreement will define the extent of your intellectual property rights and the rights of a user to modify the software.

How you choose the type of licensing agreement and its content depends on the end you hope to achieve with your product.

If an open source free-sharing platform is your intention, choosing a GNU or slightly modifying the GNU to your terms is a good course of action.

However, if all you want to allow users to make use of your product with no code modifications, the EULA is a good protection measure.

Jocelyn M.

Jocelyn M.

Former civil litigation attorney. Content legal strategist.

This article is not a substitute for professional legal advice. This article does not create an attorney-client relationship, nor is it a solicitation to offer legal advice.