I'm getting rather confused when looking over the details of the various licenses and was wondering if someone could give me a hand. Basically, I'm looking at making a simple SSH client to release on the app store. All other SSH clients on the app store charge and, although I'm sure they'd be better than what I'd make, I'd like to add a free option. For right now I'd be just developing it for personal use or within the company I work for, which I realize means I don't need to worry about GPL incompatibilities, but I figure I'd be best setting it up to work how I want in in the first place rather than rebuilding at a later stage around a different core.
My idea is to use a pre-built SSH library, but this idea seems fraught with legal issues.
Under the GPL, either static or dynamic linking requires the main program to be distributed under the GPL, with the result that linking a GPL-licensed library is incompatible (in licensing terms) with a proprietary program.
The GPL is a free software license, and therefore it permits people to use and even redistribute the software without being required to pay anyone a fee for doing so. You can charge people a fee to get a copy from you. You can't require people to pay you when they get a copy from someone else.
LGPL on iphone
Here's an article about LGPL on the iPhone;
http://huyzing.com/2009/08/24/compatibility-between-the-iphone-app-store-and-the-lgpl/
So one option you have is to use either of the LGPL libraries, but provide your users with the object code for your app on request, or make it available on your website. (You'd need to include the references to the LGPL in some kind of "About" screen too, or in your text on the appstore.)
However, if you're doing a free app, why not release the source code instead? Maybe other people will join in and help you.
libssh2 and the GPL
From looking at libssh2, it looks to me like there's the option to build with openssl or gcrypt - I believe gcrypt is the (L)GPL part you're referring to. openssl is not (L)GPL, so you can use that instead.
Other ssh libraries
I believe some of the iphone applications are using the ssh code that forms a part of the putty ssh client for windows. This is also released under a non-(L)GPL license.
Writing an ssh client
One other point to think about is that to write an ssh client, the ssh part is only half the battle - you also have to write a fairly fully featured VT100/ANSI terminal emulator if you want to use any full screen apps. This can be a bit involved and/or a bit of a painful experience, but is certainly possible and good programming experience!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With