Our question more specific would be
if the whole work has to be published (a must) under GPLv.3 or LGPLv.3 as the used gettext.inc, gettext.php, streams.php are GNU GPLv.2 or later and Smarty is LGPLv.3 or if the whole work could be distributed also under a commercial license which is not compliant with GNU GPL principals?
Would it be good and is it even possible to license the combined distribution under AGPL as the application is a social network script?
In particular the critical included parts are:
gettext.inc - GNU-GPLv.2+,
gettext.php - GNU-GPLv.2+,
streams.php - GNU-GPLv.2+
all 3 contain the same copyright notice in their files which clearly states GNU GPLv.2+ ( https://github.com/neo22s/php-gettext)
Copyright (c) 2005 Steven Armstrong <sa at c-area dot ch> Copyright (c) 2009 Danilo Segan <email@example.com> Drop in replacement for native gettext. This file is part of PHP-gettext. PHP-gettext is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
and as to be considered too for:
- jquery-ui.touch-punch - GNU GPLv.2,
- jquery-ui.triggeredAutocomplete - GPLv.2,
both contain a Dual License while it is not clearly stated which of those licenses they are actually using in that particular case.
Dual licensed under the LGPL-2.1+ or MIT licenses
- jquery.form - GNU-LGPL-2.1+,
- tinymce.js - GNU-LGPLv.2.1,
- HTMLPurifier - GNU-LGPLv2.1,
- PHPMailer - GNU-LGPLv.3,
- Smarty - GNU-LGPLv.3,
This is what we found in the FSF FAQ:
If I use a piece of software that has been obtained under the GNU GPL, am I allowed to modify the original code into a new program, then distribute and sell that new program commercially?
If I use a piece of software that has been obtained under the GNU GPL, am I allowed to modify the original code into a new program, then distribute and sell that new program commercially? (#GPLCommercially) You are allowed to sell copies of the modified program commercially, but only under the terms of the GNU GPL. Thus, for instance, you must make the source code available to the users of the program as described in the GPL, and they must be allowed to redistribute and modify it as described in the GPL.
These requirements are the condition for including the GPL-covered code you received in a program of your own.
It depends on how the main program invokes its plug-ins. If the main program uses fork and exec to invoke plug-ins, and they establish intimate communication by sharing complex data structures, or shipping complex data structures back and forth, that can make them one single combined program. A main program that uses simple fork and exec to invoke plug-ins and does not establish intimate communication between them results in the plug-ins being a separate program.
If the main program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single combined program, which must be treated as an extension of both the main program and the plug-ins. If the main program dynamically links plug-ins, but the communication between them is limited to invoking the ‘main’ function of the plug-in with some options and waiting for it to return, that is a borderline case.
Using shared memory to communicate with complex data structures is pretty much equivalent to dynamic linking.