From: Guus Sliepen Date: Sat, 21 Jul 2018 15:10:35 +0000 (+0200) Subject: Add COPYING.README, detailing license obligations for users of MeshLink. X-Git-Url: https://git.meshlink.io/?a=commitdiff_plain;h=fc7a1cc27751514e3175c9c50781d724a91d0f0e;p=meshlink Add COPYING.README, detailing license obligations for users of MeshLink. MeshLink itself depends on other libraries, and this document mainly summarizes what obligations users of the MeshLink library have when they distribute their software in binary form. --- diff --git a/COPYING b/COPYING index cc53542f..819b40f4 100644 --- a/COPYING +++ b/COPYING @@ -1,4 +1,4 @@ -Copyright (C) 2014 Guus Sliepen +Copyright (C) 2014-2018 Guus Sliepen This program 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 diff --git a/COPYING.README b/COPYING.README new file mode 100644 index 00000000..214af751 --- /dev/null +++ b/COPYING.README @@ -0,0 +1,116 @@ +# License obligations + +The source code of the MeshLink library itself is licensed under the GNU +General Public License version 2 or later (see the file COPYING for the +complete license). However, the MeshLink library depends on other libraries as +well, which each have their own license. This document summarizes your +obligations when you are releasing binaries that link with the MeshLink library +and any dependent libraries, for both open source and closed source software. + +Please note that this document is not to be interpreted as a license itself. + +## List of libraries that MeshLink depends on + +* Catta (LGPL version 2.1) +* Ed25519 (zlib license) +* Chacha20-Poly1305 (public domain) + +## Obligations for closed source software + +With closed source software, we mean any software that is distributed only in +binary form. Note that there is no distinction between software that is sold, +rented out, or is gratis. You are not allowed to distribute closed source +software linked to the MeshLink library unless you have obtained a commercial +license for the MeshLink library. If you do distribute closed source software +linked to MeshLink without a commercial license, you are violating +international copyright law. In this case, please contact the MeshLink +author(s) as soon as possible in order to remedy this situation. + +If you do have a commercial license for the MeshLink library, then apart from +the obligations set out in the commercial license, you are also obligated to +follow the rules set out in the licenses of the libraries MeshLink depends on. +In short, these are: + +* Unless you have compiled MeshLink without support for Catta, you must make + the source code of Catta, with any modifications that you made to the Catta + library itself, available on request to anyone who has received a copy of + your closed source software, under the terms of the GNU Lesser General Public + License version 2.1 or later. +* Unless you have compiled MeshLink without support for Catta, you must give + prominent notice with each copy of your software that your software is using + Catta, and that the Catta library itself is covered under the terms of the + GNU Lesser General Public License version 2.1. + +Apart from these obligations, you are strongly recommended to mention the other +libraries that MeshLink is depending on, as well as mention the MeshLink +library itself: + +* Attribute Orson Peters as the author of the Ed25519 library. +* Attribute Daniel J. Bernstein as the author of the Chacha20-Poly1305 library. +* Attribute Guus Sliepen as the author of the MeshLink library. + +## Obligations for open source software + +With open source software, we mean any software that is distributed in source +form, or is distributed in binary form with the exact source code used to +compile the binary form made publicly available, or with this source code +made available on request. Note that there is no distinction between software +that is sold, rented out, or is gratis. + +If your software itself does not contain any copies or excerpts of the source +code of MeshLink, you are free to distribute that software under any license +you want. However, as soon as you distribute any binaries that are linked with +MeshLink, then the resulting binaries can only be distributed under the terms +of the GNU General Public License version 2 or later. In practice, this is not +a problem since if you make the source code available publicly, you are +fulfilling the obligations of the GPL, unless your software has a software +license that is incompatible with the GPL. Please check the following website +to find out if your open source software is compatible with MeshLink: + +https://www.gnu.org/licenses/license-list.en.html#SoftwareLicenses + +Apart from the obligations for the MeshLink library, set out in the GPL, you +are also obligated to follow the rules set out in the licenses of the libraries +MeshLink depends on. In short, these are: + +* Unless you have compiled MeshLink without support for Catta, you must make + the source code of Catta, with any modifications that you made to the Catta + library itself, available on request to anyone who has received a copy of + your closed source software, under the terms of the GNU Lesser General Public + License version 2.1 or later. +* Unless you have compiled MeshLink without support for Catta, you must give + prominent notice with each copy of your software that your software is using + Catta, and that the Catta library itself is covered under the terms of the + GNU Lesser General Public License version 2.1. + +Apart from these obligations, you are strongly recommended to mention the other +libraries that MeshLink is depending on, as well as mention the MeshLink +library itself: + +* Attribute Orson Peters as the author of the Ed25519 library. +* Attribute Daniel J. Bernstein as the author of the Chacha20-Poly1305 library. +* Attribute Guus Sliepen as the author of the MeshLink library. + +## Recommended attribution text + +Attribution for the libraries your software depends on should be added to any +written, printed or electronic documentation that comes with your software, as +well as displayed in any about dialogs, splash screens, and any other forms of +display that contain credits, license information and/or attribution. The +recommended text to display is: + + This software makes use of the following libraries: + + - MeshLink, copyright © 2014-2018 Guus Sliepen, + licensed under the GPL version 2 or later¹ + - Catta, copyright © 2004-2018 the Avahi Developers and others, + licensed under the LGPL version 2.1 or later² + - Chacha20-Poly1305, by Daniel J. Bernstein, public domain + - Ed25519, copyright © 2015 Orson Peters, licensed under the zlib license + +¹) omit the "licensed under" text if you have a commercial license +²) omit this is you compiled MeshLink without support for Catta + +The full text of the licenses of all libraries used should be included in the +documentation, and should be included in any forms or displays that contain +license information. diff --git a/Makefile.am b/Makefile.am index f7de2b76..8b39f753 100644 --- a/Makefile.am +++ b/Makefile.am @@ -6,7 +6,9 @@ SUBDIRS = catta src doc test examples ACLOCAL_AMFLAGS = -I m4 -EXTRA_DIST = README.android +EXTRA_DIST = \ + COPYING.README \ + README.android ChangeLog: git log > ChangeLog diff --git a/README b/README index 714d8211..390468b0 100644 --- a/README +++ b/README @@ -1,7 +1,7 @@ This is the README file for the MeshLink library. Installation instructions may be found in the INSTALL file. -MeshLink is Copyright (C) 2014 Guus Sliepen +MeshLink is Copyright (C) 2014-2018 Guus Sliepen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -25,7 +25,7 @@ In order to compile MeshLink, you will need a GNU C compiler environment. The following libraries are used by default, but can be disabled if necessary: -- zlib (http://www.gzip.org/zlib/) +- Catta (https://github.com/meshlink/catta) Features -------- diff --git a/README.git b/README.git index 73fd1840..ab4de78b 100644 --- a/README.git +++ b/README.git @@ -1,7 +1,6 @@ Before you can start compiling MeshLink from a fresh git clone, you have to install the very latest versions of the following packages: -- zlib - GCC - automake - autoconf diff --git a/m4/zlib.m4 b/m4/zlib.m4 deleted file mode 100644 index a89656a7..00000000 --- a/m4/zlib.m4 +++ /dev/null @@ -1,38 +0,0 @@ -dnl Check to find the zlib headers/libraries - -AC_DEFUN([MeshLink_ZLIB], -[ - AC_ARG_ENABLE([zlib], - AS_HELP_STRING([--disable-zlib], [disable zlib compression support])) - AS_IF([test "x$enable_zlib" != "xno"], [ - AC_DEFINE(HAVE_ZLIB, 1, [have zlib compression support]) - AC_ARG_WITH(zlib, - AS_HELP_STRING([--with-zlib=DIR], [zlib base directory, or:]), - [zlib="$withval" - CPPFLAGS="$CPPFLAGS -I$withval/include" - LDFLAGS="$LDFLAGS -L$withval/lib"] - ) - - AC_ARG_WITH(zlib-include, - AS_HELP_STRING([--with-zlib-include=DIR], [zlib headers directory]), - [zlib_include="$withval" - CPPFLAGS="$CPPFLAGS -I$withval"] - ) - - AC_ARG_WITH(zlib-lib, - AS_HELP_STRING([--with-zlib-lib=DIR], [zlib library directory]), - [zlib_lib="$withval" - LDFLAGS="$LDFLAGS -L$withval"] - ) - - AC_CHECK_HEADERS(zlib.h, - [], - [AC_MSG_ERROR("zlib header files not found."); break] - ) - - AC_CHECK_LIB(z, compress2, - [LIBS="$LIBS -lz"], - [AC_MSG_ERROR("zlib libraries not found.")] - ) - ]) -]) diff --git a/src/net_packet.c b/src/net_packet.c index 5596d603..162dcef2 100644 --- a/src/net_packet.c +++ b/src/net_packet.c @@ -19,10 +19,6 @@ #include "system.h" -#ifdef HAVE_ZLIB -#include -#endif - #include "conf.h" #include "connection.h" #include "crypto.h"