Skip to contentSkip to conversation

schifra: new package

PATCH New spdawson at gmail.com 5 participants 7 messages Aug 24, 2012 – Sep 10, 2012

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 schifra: new package

From: Simon Dawson <[email protected]>

---
 package/Config.in          |    1 +
 package/schifra/Config.in  |   18 ++++++++++++++++
 package/schifra/schifra.mk |   50 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 69 insertions(+)
 create mode 100644 package/schifra/Config.in
 create mode 100644 package/schifra/schifra.mk
package/Config.in +1 -0
index f308de7..993a5ad 100644
@@ -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
 
package/schifra/Config.in new file +18 -0
new file mode 100644
index 0000000..466ac0e
@@ -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
package/schifra/schifra.mk new file +50 -0

50 lines not on this page · raw message

Signature · 1 line
1.7.9.5
#1 lore raw

PATCH 1/1 schifra: new package

Le Fri, 24 Aug 2012 10:39:54 +0100,
spdawson at gmail.com a ?crit :

package/schifra/schifra.mk line 11

Quoted 2 lines
package/schifra/schifra.mk new file +2 -0
+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

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#2 lore raw

PATCH 1/1 schifra: new package

Quoted 13 lines · Thomas Petazzoni

Le Fri, 24 Aug 2012 10:39:54 +0100,
spdawson at gmail.com a ?crit :

package/schifra/schifra.mk line 11

Quoted 2 lines
package/schifra/schifra.mk new file +2 -0
+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.

Quoted 1 line

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

#3 lore raw

PATCH 1/1 schifra: new package

Quoted 14 lines · Luca Ceresoli
Quoted 13 lines · Thomas Petazzoni

Le Fri, 24 Aug 2012 10:39:54 +0100,
spdawson at gmail.com a ?crit :

package/schifra/schifra.mk line 11

Quoted 2 lines
package/schifra/schifra.mk new file +2 -0
+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.

Quoted 6 lines
Quoted 1 line

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.

Quoted 11 lines

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]

Quoted 6 lines

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

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#4 lore raw

PATCH 1/1 schifra: new package

Hi Arnount, Luca, Thomas. Thanks for your help with this.

For the sake of consistency, I'll opt for "schifra license".

Simon.

#5 lore raw

PATCH 1/1 schifra: new package

In reply to spdawson at gmail.com
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"spdawson" == spdawson <[email protected]> writes:

spdawson> From: Simon Dawson <[email protected]> spdawson> Signed-off-by: Simon Dawson <[email protected]>

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.

Signature · 1 line
Bye, Peter Korsgaard
#6 lore raw

PATCH 1/1 schifra: new package

Quoted 1 line · Peter Korsgaard

Committed with minor changes (see below), thanks.

Thanks for your work on this Peter.

Simon.