views:

54

answers:

1

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.

  • libssh is released under lgpl, however, and I don't want to get into the legal mess that is the iPhone dev lisence and the GPL... I hear they're largely incompatible, and would prefer to avoid any legal minefields if possible.
  • libssh2 is released under a BSD license, which AFAIK can be used with the iPhone dev lisence. Perfect, I think. As I'm looking over some instructions for compiling libssh2 for iphone, however, I notice that it uses 3 libraries from GnuPG which are released under the (L)GPL... Does this mean using libssh2 leads me into the same legal minefield as libssh? Is there some way to sub these libraries for non-GPL equivalents?
  • Are there any alternative SSH libraries which are available under iPhone-compatible licenses?
+1  A: 

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!

JosephH
Hi Joseph,Thanks for a very complete reply! I'd vote you up but, as you can see, I'm new here and don't have enough points to do that yet. Good point on OpenSSL, I was able to get that compiling just fine using a tutorial on www.x2on.de, but I'm having a little more trouble with libssh2 itself. I keep getting the following error:../libtool: eval: line 947: syntax error near unexpected token `|'Any ideas how to resolve this?
Li1t
Actuall, I may have found the source of my problem here:https://trac.macports.org/ticket/22224Still not quite solving my problem, however.
Li1t
I got to the bottom of it. I edited the libtool file to change the global_symbol_pipe and NM values to the suggested ones, whilst simultaneously removing the extra instances of "link -dump -symbols" which appeared in my Makefile (compared to the i386 version I compiled)
Li1t
Well done for solving that! Glad I could help. You just need 5 more rep points then you'll be at 15 and able to upvote.
JosephH