Follow-up Comment #4, task #16596 (group administration):

> Your package is quite large, and the licensing situation isn't very simple,
so a more detailed discussion is needed.

Let me start answering by saying that we have no lawyers on our team. Sorry
about misnaming license types in my previous reply. Copyright is indeed
complicated, but we hope we can find a complete solution, with your help. We
will cooperate and work towards fixing all licensing problems as much as we
can.

> My idea of copyright assignment is different.  I believe a copyright
assignment is a legal paper where all affected persons and entities are named
explicitly and unequivocally, and of course aware of the assignment.
> 
> Generally, who are copyright holders of your package, and how do they
co-ordinate their copyrights?

We (the creators of Simphone) as a single entity are the copyright holder of
the code and documentation we wrote. That's because no one else has explicitly
contributed any other code to Simphone yet. And as far as we've read on those
links you sent, it's ok to claim copyright without signing legal papers or
even revealing our names.

Our code is in the simcore/ and qsimphone/ subdirectories; html documentation
is in doc/ and of course we wrote the configure and build scripts, and some
small .txt files, in addition to creating the icons. We claim copyright for
all files to which we have added GNU copright/license notices at your request.
All else is either third-party or (maybe) non-copyrightable. For the latter
files we have added notes that they are placed in the public domain; and will
yet add some text to indicate that we created the files, as you requested.

> Then, the diff files are text files, they should include copyright and
license notices themselves.

One problem with this is that (some) diff files are machine-processed, which
does not necessarily allow insertion of comments. The GNU patch utility allows
and ignores this kind of thing, but that's not necessarily true for all other
patch utilities that are out there. So if it's an absolute requirement, we
could add such comments, and leave it to the user to deal with (by using GNU
patch, if need be).

But the second and bigger problem is that we don't know what to write there
exactly. Each of these diff files mostly includes code from one of these
external libraries (to which I have earlier referred as "dependencies"), with
a few bits written by us (lines that start with a "+" sign). So as to the
copyright of these lines, the idea was to rescind any copyright claims to the
copyright holders of the patched libraries. If you say it can't be done
without signing legal papers, perhaps placing our "contributions" to their
libraries in the public domain would be a good solution? Please advise as to
what to write in these copyright/license notices and whether you insist on
inserting a notice in each diff file, or perhaps putting them in a single
README file would suffice.

> All files should be listed in README explicitly; if they aren't, it's too
easy to get the things wrong when any new files are added.

Right, this is not difficult to do, it places a bit of a maintenance burden,
but we will do it.

> > qsimphone/flags,
> 
> When files are in public domain, a brief note recording the authors, and
anything else relevant is desirable,

We created the files in qsimphone/flags. But how can anyone claim copyright
over flags or names of all the world's countries? They have been published in
a countless number of books and on the Internet. We disclaim any copyright. A
note could be added to the already added README.txt, saying that we created
the files. Please advise as to what else (if anything) could be written about
that.

> > qsimphone/resources
> 
> countries.txt and creative-commons.txt are text files; they should include
legal notices themselves.

countries.txt is machine-processed (by qsimphone) with a fixed format that
currently allows no comments. The line number where each country name is
placed must match that country number in ip0.bin. Would it be acceptable to
add a legal notice at the end of the txt file? Hopefully the code would just
ignore it then.

creative-commons.txt is the text of the "CC BY 4.0" license and if it does not
include a legal notice, I don't think it would be a good idea for us to modify
the text and add one. So maybe just replace it with a link to the file on
creativecommons.org? Of course in that case we run the risk of the link
becoming invalid some day.

> > and build/config-win32.
> 
> Some of these files do contain copyright and license notices, and I don't
think I see any good reason for the rest to not contain them.

The reason is that those files were output (automatically generated) by
configure scripts of external libraries, and most of them didn't include a
legal notice (for those that did, you have already seen that it is there). But
I believe all generated files do include notices as to which originals they
were generated from. And if you review the source code of these libraries
within our source tree, you will find that in addition to these originals,
some of their other text files (which probably do not include source code,
like Makefiles etc.) also do not include legal notices. This is true even for
GNU libraries, such as npth. What can we do about it? It's all third-party
code.

Now the only reason why these particular files are under build/config-win32/
instead of under each of the external library subdirectories as patches, was
to provide a "clean" source code structure and compilation process. We can
move them, but that won't change the contents of the files and will only
pollute the source tree with some windows config files, which are not needed
on free operating systems nor on Mac OS.

> > cares/: MIT license
> 
> There is no 'MIT' license: MIT has released software under various licenses.
 

There is also no exact match of this license to any of the licenses listed on
gnu.org. Please check the text of their license at the provided link:

 https://c-ares.org/license.html
 https://directory.fsf.org/wiki/C-ares#tab=Details

> Could you use the names from https://www.gnu.org/license/license-list.html?
> 
> [reordered]

cryptopp/: #boost
dht/: #Expat
expat/: #Expat
miniupnpc/: #ModifiedBSD
npth/: #LGPLv2.1
openssl/: #OpenSSL (current version), #apache2 (next version)
portaudio/: #Expat
qsimphone/icons/qdarkstyle.qss, qsimphone/icons/qdarkstyle/: #Expat
qsimphone/resources/ip*.bin: #ccby
qtbase/: #LGPLv2.1
qtsingleapplication/: #ModifiedBSD
speex/, speexdsp/: #ModifiedBSD
udev/libudev/: #LGPLv2.1
build/rlink/: #RPSL / #GPLv2
build/patch.py: #Expat
build/uudecode.pl: #PublicDomain

Note for build/makedepend/ it is simpler to remove the whole subdirectory from
the source tree, rather than trying to match the multiple licenses of this no
longer used utility to the list of licenses on gnu.org.

> > efence/: GPL2
> 
> Irrespectively of other possible considerations: if you include it into your
tarball, you effectively make it a part of your package, and in any case, you
are responsible for it.  At the extreme: we don't want Savannah to distribute
tarballs including proprietary software no matter how it's referred to, do
we?
> 
> So that part is GPLv2-only.  Savannah requirement is, basically,
compatibility with GPLv3 and all later versions.

Of course we do not. I'm not sure why GPL2 isn't compatible with GPL3 but to
make it simple, we will remove efence/ from the source tree.

> > qsimphone/resources/ip*.bin: Creative Commons Attribution 4.0
International
> > License
> >     https://db-ip.com/db/lite.php
> 
> This needs further discussion: is CC BY 4.0 LGPL-compatible?

First of all, we do not know how and why these people claim copyright over the
list of the world's IP addresses, which is public knowledge. But since we got
the data from their site, we gave credit for it and added the license we got
from them.

As for your question, as non-lawyers we can't really be sure about these
things. The license list link you sent shows the "CC BY 4.0" in green and says
that it is compatible with all GPL versions. The "CC BY 4.0" itself says:

>          If You Share Adapted Material You produce, the Adapter's
>          License You apply must not prevent recipients of the Adapted
>          Material from complying with this Public License.

So if GPL is compatible with "CC BY 4.0" because it does not prevent whatever,
then LGPL is also compatible with the "CC BY 4.0" because it also does not
prevent the same thing. Conversely, LGPL is less restrictive than GPL, which
means that if "CC BY 4.0" is compatible with the more restrictive GPL, then it
should also be compatible with LGPL.

What do you think?

> > qtbase/: LGPL 2.1
> 
> If it's part of compiled binaries, then it makes a combined work with
Simphone.  How that affects Simphone licensing depends on whether the work is
a library or not---provided Qt is LGPLv2.1; however, the above URL mentions
LGPLv2.1, LGPLv3, and GPLv3 (let alone their 'commercial' license).  Could you
comment on this?

Yes, Qt is a library, or at least the parts of Qt which we use are libraries.
When you configure and compile Qt5, it asks which license you want to use, or
you can choose one by a command-line option, the choices being "commercial
edition" and "open source edition". Simphone chooses the "open source" edition
through its build scripts. As far as I know, multiple GNU licenses are
included there so that the user of the Qt library (in this case, us) can
decide which one to take. Here's a quote from the Qt documentation that
explains their "open source licensing":

> Free and Open Source Software (FOSS) is software that comes with a license
that gives users certain rights. In particular the right to use the software,
to modify it, to obtain its source, and to pass it on (under the same terms).
Notice that the term "free" is about rights, not money. The Free Software
Foundation, the creator of the GNU GPL, speaks of free in this context as in
"free speech", not as in "no cost".
>
> The Qt Company supports the free software concept by providing the Qt Open
Source Edition, which is licensed under the GNU Lesser General Public License
(LGPL) version 3 and the GNU LGPL version 2.1. You can use this edition of Qt
to create and distribute software with licenses that are compatible with these
free software licenses.
>
> Additionally, the examples included with Qt are provided under the terms of
the Modified BSD License.
>
> The support of open source with the Open Source Versions of Qt has enabled
large successful software projects like KDE to thrive, with thousands of
developers around the world using open source versions of Qt at no cost to
themselves.

> > udev/libudev/: LGPL 2.1
> 
> The note on efence/ applies to the GPLv2-only part; the LGPLv2.1 includes a
permission for relicensing under the GPLv2+, so it's compatible with Savannah
hosting requirements.

Not sure if there is a GPLv2-only part (as opposed to "GPLv2 or later") but I
understand that to be on the safe side, we need to keep only udev/libudev and
get rid of the unused code in udev/.

> > build/rlink/: RCSL/RPSL/GPL2
> 
> The combination isn't trivial, and to tell the truth, I haven't tried to
analize it; could you explain how this licensing may be compatible with
GPLv3+?

The way we read the RPSL (section 4.2), combined works released under a
"compatbile license" are exempt from the requirement of releasing the whole
work under the RPSL, as long as they are under the compatible license. Both
GPL and LGPL (with no version numbers) are listed as "compatible licenses" in
the text; there's also a link to a "current" list of compatible licenses, but
it does not work (that company has quit its open source business, as I had
mentioned earlier, so their web site no longer exists).

If that's not good enough, we could drop rlink from the source tree - the
result being the windows binary size exploding by about 50%, but no changes to
the code (other than linking in a lot of unused junk). GNU/Linux, Mac OS and
other unix-like binaries would not be affected at all.


> Now, it looks like by dependencies you mean what they call 'external
libraries' in the GNU Project: a module borrowed from a different package and
added to the tarball.  For our purposes, dependencies mean software the
package uses, including the translators for the source code, the libraries the
program links to and so on.  Has Simphone other such dependencies?

Of course it has. I'll try to provide a list:

GNU/Linux, at compile time:
* /bin/sh (vary by distrubution)
* python (if available on the system)
* GNU autoconf
* g++ (C and C++ compilers, may also be clang if that's what's installed on
the system instead of gcc)
* any other files the above compiler might use or/and link to without telling
us (this usually means libgcc)
* gmake (GNU Make)
* patch (GNU Patch)
* hg (mercurial) if available and if source code has been fetched from
mercurial (not from the tarball)
* perl5 (this isn't a direct dependency, but is used by the generated shar
installer, and also by openssl)
* uuencode, shar and tar (when generating the shar installer)
* the shar installer also uses the "sudo" and "su" commands and the system's
package manager, if necessary

Note the configure scripts use autoconf macros which, in turn, use many "unix"
utilities too numerous to list, and furthermore they could change with any new
version of autoconf or maybe even vary by distribution.

GNU/Linux, always link to:
* libc (The GNU C library)
* libm (part of libc, I believe)
* libstdc++ (The GNU C++ library)
* libpthread (GNU portable threads)
* librt

GNU/Linux, optionally (if available and configured by default or otherwise)
link to:
* libdl
* libpth, libboundscheck, libefence (these can be used only if the user has
specifically so requested)
* libasound (ALSA sound library)
* libossaudio (OSS sound library)
* libXss (X11 screen saver library) and libX11
* libxcb and libxcb-keysyms (used directly only if the user has specifically
so requested, but otherwise used by Qt5)

BSD-based systems: same as GNU/Linux except for unavailable libraries such as
libasound, and additionally to GNU/Linux: libexecinfo.

Mac OS: Apple development tools and libraries collectively known as "Xcode"
are required in order to compile and run any application on Mac OS X. Some of
these are "free", others are not. Please let us know if you need a detailed
list of which parts of Xcode we use directly.

Windows: mingw-w64 (this includes the GNU Compiler Toolchain, and other
libraries and utilities) as provided and used by Qt5 is also used by Simphone
directly. This is used mostly at compile-time; we link statically only to
libgcc, libc, libstdc++ and additionally use a few DLL files that are part of
the OS to call various windows functions, including: ws2_32.dll, gdi32.dll,
ole32.dll, oleaut32.dll, shell32.dll, comdlg32.dll, shlwapi.dll, iphlpapi.dll,
mpr.dll, winmm.dll. The DLL files are obviously "non-free", along with the
rest of the OS.



    _______________________________________________________

Reply to this item at:

  <https://savannah.nongnu.org/task/?16596>

_______________________________________________
Message sent via Savannah
https://savannah.nongnu.org/

Attachment: signature.asc
Description: PGP signature

Reply via email to