The GraphApp Usage License

What is the App Software License?

GraphApp can be freely used by programmers and developers who want a portability solution which doesn't cost anything. The license under which GraphApp is released is called the "App Software License" and is included with the source code. The complete text is as follows:
App Software License
--------------------
This package includes software which is copyright (c) L. Patrick.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.
3. You may not sell this software package.
4. You may include this software in a distribution of other software,
   and you may charge a nominal fee for the media used.
5. You may sell derivative programs, providing that such programs
   simply use this software in a compiled form.
6. You may sell derivative programs which use a compiled, modified
   version of this software, provided that you have attempted as
   best as you can to propagate all modifications made to the source
   code files of this software package back to the original author(s)
   of this package.

THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS AS IS, AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

Isn't there other software included in the package?

Yes, several other software packages are included with GraphApp, and each has their own copyright notice. The notice above applies to the GraphApp code only. Here's a list of other copyright notices you should include to show who helped you write your program:

Portions relating to PNG copyright 1999, 2000 Greg Roelofs and the
libPNG team.

Portion relating to ZLib copyright (C) 1995-1998 Jean-loup Gailly and
Mark Adler.

Portions relating to JPEG copyright (C) 1994-1998, Thomas G. Lane.
This software is based in part on the work of the Independent JPEG Group.

Unicode font by the GNU Unicode Font project "Unifont" team,
including Roman Czyborra (czyborra.com) and David Starner.

Serif font copyright (C) 2001 L. Patrick.

Each package has its own distribution license, so you should read the notes within the source code bundle. Please drop me a note on the message board if I've left anyone off the list above, and I'll correct it.

Why is it called the "App" license and not "GraphApp"?

App is the name given to a larger project I'm working on, of which GraphApp is the graphics and portability component. I'm releasing GraphApp under the App license to save future confusion.

Can I sell my commercial program which uses GraphApp?

Yes, clause 5 says you can sell commercial programs which are linked to a compiled form of the package.

You don't have to pay any royalty fees, and you don't have to release any of your source code to the public, unless you've modified the GraphApp source code itself, in which case just those modified parts should be sent back to the author of GraphApp (see clause 6). The source code of your program remains under your copyright and in your possession, as it should.

Can I include the source code in a Linux distribution?

Yes, clause 4 allows you to do this. You can include it with other software packages, and you can also charge a small fee for distributing the media upon which that software distribution is stored (for example, a CD-ROM). Clause 3 says that the software itself is not for sale, so you can only sell the container, not the contents.

Why is there no warranty?

Because GraphApp is free, cutting-edge software, there is a trade-off you are making by using it. The longer software has been around, the more chances the bugs will have been fixed, but conversely, the less modern that software will be.

That being said, GraphApp is the result of over eight years of experience with designing and building portability toolkits.

GraphApp is being released under the visible source code distribution model, where "release early, release often" is the mantra. This model of software distribution is better than a vendor warranty, because it gives you several advantages a warranty on its own cannot give:

  1. Visible source code means peer review. Many professional programmers can and will be looking at the source code of the package itself, so if there are bugs they are likely to be found and corrected quickly. Two pairs of eyes are better than one.
  2. Because the source is freely available, you can evaluate the product free of charge, and if it doesn't fit your needs you won't feel compelled to use it. Compare this with a "pay up-front" approach which most software manufacturers use. Try getting your money back from a large corporate operating system manufacturer when their software crashes. Good luck.
  3. If the software is broken, you can fix it yourself. Just having a warranty without having access to the source code doesn't help you if you find a bug in a software development package at the eleventh hour. With access to the source code you can find and fix the bug yourself, or log on to the internet and download a patch if someone else has already fixed that bug.
  4. Visible source code means long-term security. Because you have the source code in your hands, and a license which says you can use it, you have some peace of mind that your product will always work into the future.
  5. Innovation is faster. With the source code being visible, it is easy for other programmers to add code to the package and have that code included in the next release. By contrast, a "closed-shop" approach to software development means that innovation is slower. Many hands make light work.

In short, visible, free source code has a low cost, is safe and simple to evaluate, gives you security for the future, is updated quickly and is likely to be free of bugs.

Is there a cost to use GraphApp?

No, GraphApp is free. You can evaluate it for free, for as long as you want, and should you decide to use it in a commercial product, it's still free.

Why is it free?

GraphApp was the result of my research for a higher degree in computer science. It is only fitting that the results of university study should be made available for the good of all humanity, in the best traditions of the university philosophy.

The concept of free software appeals to me. Making the source code available gives programmers trust in a product and also allows them to see how to write good code.

I've looked at a lot of free source packages in my time, and sometimes the source code is a little tricky to understand. I hate to think what proprietary source code made by large corporations would look like, without the pressure to publish the source code. It's probably totally hideous (and therefore bad) code.

I figure people can benefit from some good, clean, portable and free source code, to see how to build a good software package without the unnecessary, arcane tricks that programmers often use.

Is there support for GraphApp?

There are no telephone numbers you can call, or support contracts, no. But there is a message board on the main web page. The advantage of a message board over one-to-one communication with the author is that many people can see your question and post answers to it. This can get you a faster answer, and give you a few different opinions to evaluate.

Wasn't GraphApp previously released under the GPL?

GraphApp version 2 was released under the GNU Library General Public License (the LGPL). I found that some of the wording of that license was confusing. For instance, the word 'free' requires a paragraph of explanation, because in that license it refers to "freely available source code", not price. Also, some of the stipulations about making available the source code of programs linked to libraries were poorly understood.

The GPL and LGPL are fine documents, but they are quite long and wordy, and I felt they didn't really suit my needs. Since GraphApp version 3 is a complete rewrite of the GraphApp source code, I took the opportunity to simplify the license under which people may use GraphApp.

The new license is hopefully far more straightforward. It's based on the BSD license, but I've added a few explicit remarks about what is allowed.