PDA

View Full Version : licence for a free scientific application



fatecasino
26th February 2017, 03:53
I am new to software development.
I have created a scientific application which I would like to give it for free download and research usage.
Which type of licence should I give to such an app? Is there any text template for this kind of application?
I have used qt and qwt for this app.
Thanks

ars
26th February 2017, 14:54
Hello,

there are a lot of license templates around. Before deciding for a a license you should ask yourself what your expectations are. Some questions that come into my mind:

Do you want to provide source code or binary/executable only?
Do you plan to provide a commercial license (maybe at some later time) in addition?
Do you allow other developers to use parts of your source code in their projects (open source and/or commercial)? If so, would you like to set any restrictions to this usage ("Free beer" <-> BSD/MIT ... <-> GPL/LGPL license)?
Which open source projects are you using and how do their license agreements match your ideas of a license?
...

For a comparison of free open source software licenses you may start with the Wikepedia comparison https://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licenses.

As you are already using Qt and qwt you surely have read their license agreements. For an application, you may start reading GPL version 2 or 3 license and check if they match your ideas.

If you have decided yourself for a license (either one of the well known ones or one designed by yourself) you should also check for legal implications (warranty, ...) of using this license. This depends on the country you live in. In general, not all sections of a license agreement are valid in all countries. If you decide for one of the well known licenses, you may check their acceptance by court in your country.

Best regards
ars

fatecasino
4th March 2017, 18:15
I have recently created a small application with QT which I want to release for free usage.
I just realised that my application cannot run in other Windows system unless i copy QtGui.dll, libgcc_s_dw2-1.dll, QtCore4.dll and QtGui4.dll in the same folder.
I have two quick questions on that:

1. Is it legal to distribute my application accompanied with these dlls?
2. If I want to make a commercial application should I buy a commercial licence from each of the publishers involved in these dlls?

d_stranz
4th March 2017, 18:28
1 - In Windows, you -must- distribute whatever DLLs are required by your application if they are not standard Windows DLLs (like kernel32.dll, etc.) regardless of the license. Follow the Qt 4.8 Windows deployment guide. (Google for it).

2 - Qt is released under LPGL, which means you can distribute the app commercially so long as you link to Qt as a shared library and provide a way for customers to get a copy of the Qt source code used to build the libraries (a link to the Qt distribution in your documentation is good enough if it is available online). I do not know how libgcc is licensed. If it has a GPL license like many GNU libraries, you cannot distribute it commercially without a commercial license.

fatecasino
4th March 2017, 18:31
Hello,

there are a lot of license templates around. Before deciding for a a license you should ask yourself what your expectations are. Some questions that come into my mind:

Do you want to provide source code or binary/executable only?
Do you plan to provide a commercial license (maybe at some later time) in addition?
Do you allow other developers to use parts of your source code in their projects (open source and/or commercial)? If so, would you like to set any restrictions to this usage ("Free beer" <-> BSD/MIT ... <-> GPL/LGPL license)?
Which open source projects are you using and how do their license agreements match your ideas of a license?
...

For a comparison of free open source software licenses you may start with the Wikepedia comparison https://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licenses.

As you are already using Qt and qwt you surely have read their license agreements. For an application, you may start reading GPL version 2 or 3 license and check if they match your ideas.

If you have decided yourself for a license (either one of the well known ones or one designed by yourself) you should also check for legal implications (warranty, ...) of using this license. This depends on the country you live in. In general, not all sections of a license agreement are valid in all countries. If you decide for one of the well known licenses, you may check their acceptance by court in your country.

Best regards
ars

Thanks for your answer, your post arose some new questions. Ok, so,



Do you want to provide source code or binary/executable only?

ars
I want to provide a binary/executable only




Do you plan to provide a commercial license (maybe at some later time) in addition?

ars
I don't plan to provide a commercial license, I was just thinkg of selling commercially and extended/advanced version of the app




Do you allow other developers to use parts of your source code in their projects (open source and/or commercial)? If so, would you like to set any restrictions to this usage ("Free beer" <-> BSD/MIT ... <-> GPL/LGPL license)?

ars
There won't be any open source code, just the executable





Which open source projects are you using and how do their license agreements match your ideas of a license?

ars
Now here is the big thing...Help me understand. I have used Qt and Qwt. I suppose that their licence won't have a problem if I freely distribute my application. What happens if I want to sell my applications? Should I obtain a seperately a commercial licence by Qt and Qwt publishers? Another thing is that the .exe requires a copy of QtGui.dll, libgcc_s_dw2-1.dll, QtCore4.dll, QtGui4.dll in the same folder. Should I buy the commercial licence of each one of the publishers of these dlls?

ars
4th March 2017, 20:19
Hello,

when using Qt and qwt under the LGPL license there should be no problem in distributing your application (either free binary or selling and advanced version of your software). However, when going that way you have take special care of the implications of the LGPL license. In short, these are:

link the libraries dynamically. This enables your users to replace the dynamic libraries with their own versions if they want to.
Make sure you give credit to the open source libraries you use in Help/About dialog and documentation
Make sure you distribute copies of the license together with your application
Upon request, you have to provide the source code of the LGPL libraries (i.e. Qt and qwt) to your users. You do NOT need to provide the source code of your work.

So you should carefully read the LGPL licenses (version 2 or 3) to understand the implications of the license to your project and distribution model.

I have used Qt and Qwt. I suppose that their licence won't have a problem if I freely distribute my application.
You do not need to buy a commercial license of Qt for publishing your software as closed source (no matter if you freely distribute the binary or get a fee for it).

Besides Qt and qwt, you might also need to check the license conditions of your compilers runtime environment. In general, check the license conditions of any piece of software that you have not written yourself.

Best regards
ars

Added after 8 minutes:

Hello,

when using Qt and qwt under the LGPL license there should be no problem in distributing your application (either free binary or selling and advanced version of your software). However, when going that way you have take special care of the implications of the LGPL license. In short, these are:

link the libraries dynamically. This enables your users to replace the dynamic libraries with their own versions if they want to.
Make sure you give credit to the open source libraries you use in Help/About dialog and documentation
Make sure you distribute copies of the license together with your application
Upon request, you have to provide the source code of the LGPL libraries (i.e. Qt and qwt) to your users. You do NOT need to provide the source code of your work.

So you should carefully read the LGPL licenses (version 2 or 3) to understand the implications of the license to your project and distribution model.

I have used Qt and Qwt. I suppose that their licence won't have a problem if I freely distribute my application.
You do not need to buy a commercial license of Qt for publishing your software as closed source (no matter if you freely distribute the binary or get a fee for it).

Besides Qt and qwt, you might also need to check the license conditions of your compilers runtime environment. In general, check the license conditions of any piece of software that you have not written yourself.

Best regards
ars

ars
4th March 2017, 20:33
I do not know how libgcc is licensed. If it has a GPL license like many GNU libraries, you cannot distribute it commercially without a commercial license.

For mingw 32 bit there is the following license information on the runtime deliverables:

/*
* DISCLAIMER
* This file has no copyright assigned and is placed in the Public Domain.
* This file is a part of the mingw-runtime package.
*
* The mingw-runtime package and its code is distributed in the hope that it
* will be useful but WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESSED OR
* IMPLIED ARE HEREBY DISCLAIMED. This includes but is not limited to
* warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* You are free to use this package and its code without limitation.
*/

For mingw 64 bit we get the following license information:

MinGW-w64 runtime licensing
***************************
This program or library was built using MinGW-w64 and statically
linked against the MinGW-w64 runtime. Some parts of the runtime
are under licenses which require that the copyright and license
notices are included when distributing the code in binary form.
These notices are listed below.
========================
Overall copyright notice
========================
Copyright (c) 2009, 2010 by the mingw-w64 project
This license has been certified as open source. It has also been designated
as GPL compatible by the Free Software Foundation (FSF).
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions in source code must retain the accompanying copyright
notice, this list of conditions, and the following disclaimer.
2. Redistributions in binary form must reproduce the accompanying
copyright notice, this list of conditions, and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
3. Names of the copyright holders must not be used to endorse or promote
products derived from this software without prior written permission
from the copyright holders.
4. The right to distribute this software or to use it for any purpose does
not give you the right to use Servicemarks (sm) or Trademarks (tm) of
the copyright holders. Use of them is covered by separate agreement
with the copyright holders.
5. If any files are modified, you must cause the modified files to carry
prominent notices stating that you changed the files and the date of
any change.
Disclaimer
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED ....

(more lines on license stuff)

So there are no problems in using it even in commercial applications.

@OP: You already have an active thread on your license questions http://www.qtcentre.org/threads/67866-licence-for-a-free-scientific-application. Why opening another one?

Best regards
ars

fatecasino
4th March 2017, 20:40
I am sorry for this duplication, I just tried to had a different focus in the other thread. Here I wanted to understand only for the dlls alone.
Thanks for your post, I have to study a bit of...law for the moment :)

ars
4th March 2017, 20:53
I have to study a bit of...law for the moment
That's some of the more or less "unpleasant" work that developers sometimes have to do in addition to the creative work of developing applications. But once you got familiar with one of the more complex licenses (like GPL/LGPL) other licenses become easier to understand.

Best regards
ars

fatecasino
28th March 2017, 01:46
Hello,
However, when going that way you have take special care of the implications of the LGPL license. In short, these are:

link the libraries dynamically. This enables your users to replace the dynamic libraries with their own versions if they want to.
Make sure you distribute copies of the license together with your application

So you should carefully read the LGPL licenses (version 2 or 3) to understand the implications of the license to your project and distribution model.



would it be possible to explain further these two points.
When you say distribute, you mean that I should copy 2 seperate txt files, QtLicence.txt and QwtLicence.txt in the application folder?
I am sorry for asking, but I can't imagine myself getting into law related troubles (programming troubles are just enough :) )

ars
28th March 2017, 20:35
Hello,


When you say distribute, you mean that I should copy 2 seperate txt files, QtLicence.txt and QwtLicence.txt in the application folder?
Basically Yes. I' ve done it in the following way:

I add a Licenses.zip file containing the license information for all open source projects I use in my project. This zip file contains several folders (one folder for each open source project) and the folders contain copies of the license files for the specific project. So one folder for Qt, another one for qwt, ... .
Help/About dialog lists all open source projects used together with the license type and copyright information, something like "Qt 5.5.0, Copyright © 2015 The Qt Company Ltd., GNU Lesser General Public License 2.1" and so on. For details on the licenses I point the user to the Licenses.zip in the installation folder of my application.
The user manual of my application repeats the listing of open source projects used (same as in Help/About) in the Copyrights section and points to Licenses.zip and a separate chapter of the user manual containing the license information. The latter is basically copying the license files into the user manual.
When using GPL/LGPL projects don't forget to mention that you provide the source code of these GPL/LGPL projects upon request. You do not need to provide the code you have written yourself.

This procedure is required by our company lawyer when using open source projects in our company projects. It is motivated by the following section of LGPL 2.1:

You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:...

Best regards
ars

d_stranz
29th March 2017, 04:39
Yes, this is excellent advice. Except for zipping the license files, I do the same in my commercial app - Help/About dialog, user manual, and license files installed to the program directory. I also supply links to the home pages of whatever open source libraries I use in my app. And unless the third-party license permits static linking, all open source libraries are delivered as DLLs.