I am developing a commercial app for Ubuntu Software Center. Since it is commercial, I do not want users can simply copy/download the app from somewhere else and put it into PCs without buying it first. This led me to License Key webpage on Ubuntu.com.

As you can see, the description is way too simple. Are there any tutorials or guidelines detailing the best practice in putting licenses to your software in Ubuntu?

  • 1
    The license is whatever you add as a License for it, I'd suggest you consult a lawyer if you want a privative license. Since you don't mention your app being open source and since it's not free for all, the GNU license is a no-go, Creative Commons is also out of the questions since again, your's is not an app that is freely distributed. So for short, create your own terms for your app. – Uri Herrera Jan 25 '13 at 9:04
  • I am living in a country where people don't really have respect on intellectual property. They pirate whenever they can. I am looking for any methodologies that limit the illegal distribution of the app but at the same time won't hurt the buyer (for example he might reformat his pc and need to redownload the app again, but this time without having to pay for it again) – Haikal Nashuha Jan 25 '13 at 9:15
  • 3
    You're asking for a DRM scheme. – Flimm Jan 25 '13 at 14:42

You seem to ask for a DRM system. Licensing generally means "describing what rights the end user has".

As Zoopster pointed out, there is no standard way to implement such a system. Moreover, there is no foolproof way. Even the biggest commercial companies eventually see their software "cracked" sooner or later.

It seems to be discouraged, but if you still want a DRM system, developing your own DRM system shouldn't be hard if you have a basic understanding of web applications.


You could have a very simple database with "keys" (commonly called serial keys, activation keys, etc.).

  • Each time you "sell" a copy, a random key is generated and added to the database. The generated key is also given (e.g. sent by email) to the user.
  • The user then enters this key during the installation or the first use of the application.
  • Your installer/application sends this key to your key-validation service and the service "replies" with a positive answer, allowing the installer/application to proceed.
  • If the validation was successful, you might want to delete the key from the database to prevent its re-use. An alternative solution would be to allow multiple installations with a single key (that is, use a "counter" for each key, for example).


  • You would need to develop a small web solution that handles the distribution and validation of the keys.
  • You would have to add the required functionality to your application, or develop an installer, that communicates with your web service.

And since you seem to be interested in using the Ubuntu Software Center, you'll want to focus on a "validation on first run", because your application will be distributed as a .deb package (that is, your application gets installed by the packet manager, not by your own installer).

| improve this answer | |

For starters, licensing/drm do not prevent piracy. If someone does not respect your IP, they will find a way around your drm. Unfortunately, that is the world we live in today.

That being said the license key infrastructure in MyApps is meant to be simple. The reason is that there are many, many ways to manage drm and no standard mechanism to implement it. Because there are so many ways, we do not have a tutorial or suggestions for best practice.

We have developers that use it to email a key which the user must install and we have developers using it to download a key to a specific location at install/purchase of the application. Some require the key for any use of the app (app does not function w/o a key) and some allow for limited use of the app w/o a key and full use with a key.

| improve this answer | |
  • Looks like I have to follow the trust system in Ubuntu Software Center. The more I think about DRM, the complicated it seems for me to maintain it in the future. – Haikal Nashuha Jan 26 '13 at 4:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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