Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I have a paid app I'm getting ready to release on the software center but I need to add a package as a dependency. The problem is that I have to package the python module to a *deb and it is not included in any other repository that I know of. The module in question is pygal.

Will that work with a paid app? I am hoping to making the app open-source, so putting it up on launchpad is not an issue for me. How would I go about this? What would I need to do before I submit my app to the software center?

For reference: My app is made with Python 2.7.X, GTK3, and the Ubuntu Quickly tool.

Thank you for any and all assistance.

share|improve this question

1 Answer 1

up vote 4 down vote accepted

This library is licensed using the LGPLv3, so you can use it with a commercial app without problems.

Now you have a couple of options to solve your problem:

  • The easiest way is to just include pygal in your project. Just add it as a module. Copy the pygal folder to your project root folder and import it.

  • A somewhat more complicated way is to add a script that uses pip to install it. Not worth the time IMHO, it won't auto-update, will need root privileges and looks quite complicated.

  • Finally you can package pygal yourself in it's own deb. This option has clear advantages like a clean install and uninstall and a better update policy. While this is clearly the better option for an open-source tool that is going to be distributed by a PPA, it will be very difficult to use with the Software Center.

So, in your position, I'd go for number one.

share|improve this answer
    
Thanks, I will give it a go! –  zane.swafford Apr 22 '13 at 15:34
1  
I was able to get it to work by including the library in my <app name>_lib folder and modifying the library! The problem was that the library called its own modules assuming that it was in /usr/lib/pyshared/python2.7/pygal I used sys.path.insert(0, '/path/to/application/module/folder') to trick the module into importing its submodules correctly. Thank you for your help! –  zane.swafford Apr 25 '13 at 14:22

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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