Message ID | 1345801194-28735-1-git-send-email-spdawson@gmail.com |
---|---|
State | Accepted |
Headers | show |
Le Fri, 24 Aug 2012 10:39:54 +0100, spdawson@gmail.com a écrit : > +SCHIFRA_LICENSE = schifra license > +SCHIFRA_LICENSE_FILES = schifra_license.txt Shouldn't we put something like "GPLv2 or commercial" here? Apparently, their license is: GPLv2 is you do something open-source, otherwise if you want to link in a proprietary application, you need to buy a commercial license. I would at least like to have explicitly "GPLv2" mentioned here as it would more clearly raise the attention of people checking the license compatibility of the libraries they are using. Luca, thoughts? Thomas
Thomas Petazzoni wrote: > Le Fri, 24 Aug 2012 10:39:54 +0100, > spdawson@gmail.com a écrit : > >> +SCHIFRA_LICENSE = schifra license >> +SCHIFRA_LICENSE_FILES = schifra_license.txt > > Shouldn't we put something like "GPLv2 or commercial" here? Apparently, > their license is: GPLv2 is you do something open-source, otherwise if > you want to link in a proprietary application, you need to buy a > commercial license. I would at least like to have explicitly "GPLv2" > mentioned here as it would more clearly raise the attention of people > checking the license compatibility of the libraries they are using. > > Luca, thoughts? Disclaimer: I'd like remind everybody I'm not a lawyer. I implemented the legal-info feature in Buildroot, but do not consider my views about licensing as legal advice. These are only my interpretations of the various package licenses (which happen to be very fancy sometimes!). GPL licenses natively imply that you cannot use the code in a proprietary application (unless you obtain a license otherwise, of course). This used to be the case for Qt before Nokia released them under the LGPL. This is also the case of other libraries, such as eXosip: (http://git.savannah.gnu.org/cgit/exosip.git/tree/COPYING). But schifra has a more restrictive (and a bit ambiguous, IMHO) license. They grant a GPLv2 license only "within an open source, academic or other noncommercial/not-for-profit environment" (http://www.schifra.com/license.html). So, a for-profit company might ship a device containinga "regular" GPL-licensed library (e.g. eXosip), plus a GPL application using it (e.g. Linphone), plus a proprietary application not using that library. But for schifra this is not the case: even though all code using schifra is GPL, if it lives in a commercial device side-by-side to a proprietary application not using schifra, this breaks the schifra license. Since most embedded devices in the world are built in a commercial environment, I think it is very difficult to use schifra in the embedded world without buying a license. But this is not a problem of mine, of course. Bottom line, how to encode all of this in SCHIFRA_LICENSE is a challenge. "GPLv2 only for open source, academic, noncommercial, not-for-profit" is not concise, but quite informative. "General Schifra License agreement", which is how they name it in schifra_license.txt, is the safest option, and an invitation to potential users to read such a convoluted piece of licensing literature and learn how not to license a package... Luca
On 08/27/12 12:52, Luca Ceresoli wrote: > Thomas Petazzoni wrote: >> Le Fri, 24 Aug 2012 10:39:54 +0100, >> spdawson@gmail.com a écrit : >> >>> +SCHIFRA_LICENSE = schifra license >>> +SCHIFRA_LICENSE_FILES = schifra_license.txt >> >> Shouldn't we put something like "GPLv2 or commercial" here? Apparently, >> their license is: GPLv2 is you do something open-source, otherwise if >> you want to link in a proprietary application, you need to buy a >> commercial license. I would at least like to have explicitly "GPLv2" >> mentioned here as it would more clearly raise the attention of people >> checking the license compatibility of the libraries they are using. >> >> Luca, thoughts? > > Disclaimer: I'd like remind everybody I'm not a lawyer. I implemented > the legal-info feature in Buildroot, but do not consider my views about > licensing as legal advice. These are only my interpretations of the > various package licenses (which happen to be very fancy sometimes!). Same here. > > GPL licenses natively imply that you cannot use the code in a proprietary > application (unless you obtain a license otherwise, of course). This used > to be the case for Qt before Nokia released them under the LGPL. This is > also the case of other libraries, such as eXosip: > (http://git.savannah.gnu.org/cgit/exosip.git/tree/COPYING). > > But schifra has a more restrictive (and a bit ambiguous, IMHO) license. > They grant a GPLv2 license only "within an open source, academic or other > noncommercial/not-for-profit environment" > (http://www.schifra.com/license.html). According to my reading, this means that somebody in an open source environment (whatever that means) can use the library under the terms of the GPLv2. And those terms stipulate that the user is allowed to redistribute it under the terms of the GPLv2... So if you ask me, if we mirror it on sources.buildroot.net, it becomes GPLv2. [snip] > Bottom line, how to encode all of this in SCHIFRA_LICENSE is a challenge. > "GPLv2 only for open source, academic, noncommercial, not-for-profit" is > not concise, but quite informative. "General Schifra License agreement", > which is how they name it in schifra_license.txt, is the safest option, > and an invitation to potential users to read such a convoluted piece of > licensing literature and learn how not to license a package... Yup. We want to indicate here that the legal team should pay special attention, so 'Schifra license' is a good flag. Regards, Arnout
Hi Arnount, Luca, Thomas. Thanks for your help with this. For the sake of consistency, I'll opt for "schifra license". Simon.
>>>>> "spdawson" == spdawson <spdawson@gmail.com> writes:
spdawson> From: Simon Dawson <spdawson@gmail.com>
spdawson> Signed-off-by: Simon Dawson <spdawson@gmail.com>
Committed with minor changes (see below), thanks.
spdawson> +#############################################################
spdawson> +#
spdawson> +# schifra
spdawson> +#
spdawson> +#############################################################
spdawson> +SCHIFRA_VERSION = 0.0.1
spdawson> +SCHIFRA_SITE = http://www.schifra.com/downloads
spdawson> +SCHIFRA_SOURCE = schifra.tgz
spdawson> +SCHIFRA_INSTALL_STAGING = YES
spdawson> +SCHIFRA_LICENSE = schifra license
spdawson> +SCHIFRA_LICENSE_FILES = schifra_license.txt
spdawson> +
spdawson> +SCHIFRA_MAKE_OPT = COMPILER="$(TARGET_CXX)"
We also need to pass TARGET_CFLAGS / TARGET_LDFLAGS
spdawson> +
spdawson> +# The examples are the only buildable artefacts.
spdawson> +ifeq ($(BR2_PACKAGE_SCHIFRA_EXAMPLES),y)
spdawson> +define SCHIFRA_BUILD_CMDS
spdawson> + $(MAKE) -C $(@D) $(SCHIFRA_MAKE_OPT) all
spdawson> +endef
spdawson> +endif
spdawson> +
spdawson> +define SCHIFRA_INSTALL_TARGET_CMDS
spdawson> + $(INSTALL) -m 0755 -d $(TARGET_DIR)/usr/include
spdawson> + $(INSTALL) -m 0644 -t $(TARGET_DIR)/usr/include $(@D)/schifra_*.hpp
spdawson> + $(INSTALL) -m 0755 -d $(TARGET_DIR)/usr/bin
spdawson> + for i in `find $(@D) -type f -name 'schifra_*' -executable` ; \
spdawson> + do \
spdawson> + $(INSTALL) -m 0755 -t $(TARGET_DIR)/usr/bin $$i ; \
spdawson> + done
I would like to keep the examples handling seperate (similar to the
build step), so I moved it to a _TARGET_INSTALL hook.
spdawson> +endef
spdawson> +
spdawson> +define SCHIFRA_INSTALL_STAGING_CMDS
spdawson> + $(INSTALL) -m 0755 -d $(STAGING_DIR)/usr/include
spdawson> + $(INSTALL) -m 0644 -t $(STAGING_DIR)/usr/include $(@D)/schifra_*.hpp
We typically do a loop doing install -D instead, so I changed it to that
for consistency.
On 10 September 2012 09:45, Peter Korsgaard <jacmet@uclibc.org> wrote:
> Committed with minor changes (see below), thanks.
Thanks for your work on this Peter.
Simon.
diff --git a/package/Config.in b/package/Config.in index f308de7..993a5ad 100644 --- a/package/Config.in +++ b/package/Config.in @@ -464,6 +464,7 @@ source "package/lttng-libust/Config.in" source "package/orc/Config.in" source "package/poco/Config.in" source "package/protobuf/Config.in" +source "package/schifra/Config.in" source "package/startup-notification/Config.in" endmenu diff --git a/package/schifra/Config.in b/package/schifra/Config.in new file mode 100644 index 0000000..466ac0e --- /dev/null +++ b/package/schifra/Config.in @@ -0,0 +1,18 @@ +config BR2_PACKAGE_SCHIFRA + bool "schifra" + depends on BR2_INSTALL_LIBSTDCPP + help + Schifra is a very robust, highly optimized and extremely configurable + Reed-Solomon error correcting code library for both software and IP + core based applications with implementations in C++ and VHDL. + + http://www.schifra.com/ + +config BR2_PACKAGE_SCHIFRA_EXAMPLES + bool "schifra examples" + depends on BR2_PACKAGE_SCHIFRA + help + Build and install the schifra example applications. + +comment "schifra requires a toolchain with C++ support enabled" + depends on !BR2_INSTALL_LIBSTDCPP diff --git a/package/schifra/schifra.mk b/package/schifra/schifra.mk new file mode 100644 index 0000000..e97dede --- /dev/null +++ b/package/schifra/schifra.mk @@ -0,0 +1,50 @@ +############################################################# +# +# schifra +# +############################################################# +SCHIFRA_VERSION = 0.0.1 +SCHIFRA_SITE = http://www.schifra.com/downloads +SCHIFRA_SOURCE = schifra.tgz +SCHIFRA_INSTALL_STAGING = YES +SCHIFRA_LICENSE = schifra license +SCHIFRA_LICENSE_FILES = schifra_license.txt + +SCHIFRA_MAKE_OPT = COMPILER="$(TARGET_CXX)" + +# The examples are the only buildable artefacts. +ifeq ($(BR2_PACKAGE_SCHIFRA_EXAMPLES),y) +define SCHIFRA_BUILD_CMDS + $(MAKE) -C $(@D) $(SCHIFRA_MAKE_OPT) all +endef +endif + +define SCHIFRA_INSTALL_TARGET_CMDS + $(INSTALL) -m 0755 -d $(TARGET_DIR)/usr/include + $(INSTALL) -m 0644 -t $(TARGET_DIR)/usr/include $(@D)/schifra_*.hpp + $(INSTALL) -m 0755 -d $(TARGET_DIR)/usr/bin + for i in `find $(@D) -type f -name 'schifra_*' -executable` ; \ + do \ + $(INSTALL) -m 0755 -t $(TARGET_DIR)/usr/bin $$i ; \ + done +endef + +define SCHIFRA_INSTALL_STAGING_CMDS + $(INSTALL) -m 0755 -d $(STAGING_DIR)/usr/include + $(INSTALL) -m 0644 -t $(STAGING_DIR)/usr/include $(@D)/schifra_*.hpp +endef + +define SCHIFRA_UNINSTALL_TARGET_CMDS + $(RM) $(TARGET_DIR)/usr/include/schifra_*.hpp + $(RM) $(TARGET_DIR)/usr/bin/schifra_* +endef + +define SCHIFRA_UNINSTALL_STAGING_CMDS + $(RM) $(STAGING_DIR)/usr/include/schifra_*.hpp +endef + +define SCHIFRA_CLEAN_CMDS + $(MAKE) -C $(@D) $(SCHIFRA_MAKE_OPT) clean +endef + +$(eval $(generic-package))