2018-10-05 23:40:50

by Alexei Starovoitov

[permalink] [raw]
Subject: [PATCH bpf-next] libbpf: relicense libbpf as LGPL-2.1 OR BSD-2-Clause

libbpf is maturing as a library and gaining features that no other bpf libraries support
(BPF Type Format, bpf to bpf calls, etc)
Many Apache2 licensed projects (like bcc, bpftrace, gobpf, cilium, etc)
would like to use libbpf, but cannot do this yet, since Apache Foundation explicitly
states that LGPL is incompatible with Apache2.
Hence let's relicense libbpf as dual license LGPL-2.1 or BSD-2-Clause,
since BSD-2 is compatible with Apache2.
Dual LGPL or Apache2 is invalid combination.
Fix license mistake in Makefile as well.

Signed-off-by: Alexei Starovoitov <[email protected]>
Acked-by: Andrey Ignatov <[email protected]>
Acked-by: Arnaldo Carvalho de Melo <[email protected]>
Acked-by: Björn Töpel <[email protected]>
Acked-by: Daniel Borkmann <[email protected]>
Acked-by: David Beckett <[email protected]>
Acked-by: Jakub Kicinski <[email protected]>
Acked-by: Joe Stringer <[email protected]>
Acked-by: John Fastabend <[email protected]>
Acked-by: Martin KaFai Lau <[email protected]>
Acked-by: Quentin Monnet <[email protected]>
Acked-by: Thomas Graf <[email protected]>
Acked-by: Roman Gushchin <[email protected]>
Acked-by: Wang Nan <[email protected]>
Acked-by: Yonghong Song <[email protected]>
---
vger rejected previous patch. resending with shorter cc list.

tools/lib/bpf/Makefile | 2 +-
tools/lib/bpf/bpf.c | 2 +-
tools/lib/bpf/bpf.h | 2 +-
tools/lib/bpf/btf.c | 2 +-
tools/lib/bpf/btf.h | 2 +-
tools/lib/bpf/libbpf.c | 15 +--------------
tools/lib/bpf/libbpf.h | 15 +--------------
tools/lib/bpf/libbpf_errno.c | 15 +--------------
tools/lib/bpf/netlink.c | 2 +-
tools/lib/bpf/nlattr.c | 7 +------
tools/lib/bpf/nlattr.h | 7 +------
tools/lib/bpf/str_error.c | 2 +-
tools/lib/bpf/str_error.h | 2 +-
13 files changed, 13 insertions(+), 62 deletions(-)

diff --git a/tools/lib/bpf/Makefile b/tools/lib/bpf/Makefile
index d49902e818b5..6ad27257fd67 100644
--- a/tools/lib/bpf/Makefile
+++ b/tools/lib/bpf/Makefile
@@ -1,4 +1,4 @@
-# SPDX-License-Identifier: GPL-2.0
+# SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)
# Most of this file is copied from tools/lib/traceevent/Makefile

BPF_VERSION = 0
diff --git a/tools/lib/bpf/bpf.c b/tools/lib/bpf/bpf.c
index 3878a26a2071..d70a255cb05e 100644
--- a/tools/lib/bpf/bpf.c
+++ b/tools/lib/bpf/bpf.c
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: LGPL-2.1
+// SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)

/*
* common eBPF ELF operations.
diff --git a/tools/lib/bpf/bpf.h b/tools/lib/bpf/bpf.h
index 4c78f61b7c71..87520a87a75f 100644
--- a/tools/lib/bpf/bpf.h
+++ b/tools/lib/bpf/bpf.h
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1 */
+/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */

/*
* common eBPF ELF operations.
diff --git a/tools/lib/bpf/btf.c b/tools/lib/bpf/btf.c
index cf94b0770522..449591aa9900 100644
--- a/tools/lib/bpf/btf.c
+++ b/tools/lib/bpf/btf.c
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: LGPL-2.1
+// SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)
/* Copyright (c) 2018 Facebook */

#include <stdlib.h>
diff --git a/tools/lib/bpf/btf.h b/tools/lib/bpf/btf.h
index d5d20682eeb6..6db5462bb2ef 100644
--- a/tools/lib/bpf/btf.h
+++ b/tools/lib/bpf/btf.h
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1 */
+/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */
/* Copyright (c) 2018 Facebook */

#ifndef __LIBBPF_BTF_H
diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
index 85de1ebd4cb0..ceb918c14d80 100644
--- a/tools/lib/bpf/libbpf.c
+++ b/tools/lib/bpf/libbpf.c
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: LGPL-2.1
+// SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)

/*
* Common eBPF ELF object loading operations.
@@ -7,19 +7,6 @@
* Copyright (C) 2015 Wang Nan <[email protected]>
* Copyright (C) 2015 Huawei Inc.
* Copyright (C) 2017 Nicira, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License (not later!)
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, see <http://www.gnu.org/licenses>
*/

#define _GNU_SOURCE
diff --git a/tools/lib/bpf/libbpf.h b/tools/lib/bpf/libbpf.h
index fbfc2aec0f0d..8af8d3663991 100644
--- a/tools/lib/bpf/libbpf.h
+++ b/tools/lib/bpf/libbpf.h
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1 */
+/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */

/*
* Common eBPF ELF object loading operations.
@@ -6,19 +6,6 @@
* Copyright (C) 2013-2015 Alexei Starovoitov <[email protected]>
* Copyright (C) 2015 Wang Nan <[email protected]>
* Copyright (C) 2015 Huawei Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License (not later!)
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, see <http://www.gnu.org/licenses>
*/
#ifndef __LIBBPF_LIBBPF_H
#define __LIBBPF_LIBBPF_H
diff --git a/tools/lib/bpf/libbpf_errno.c b/tools/lib/bpf/libbpf_errno.c
index 2464ade3b326..d83b17f8435c 100644
--- a/tools/lib/bpf/libbpf_errno.c
+++ b/tools/lib/bpf/libbpf_errno.c
@@ -1,23 +1,10 @@
-// SPDX-License-Identifier: LGPL-2.1
+// SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)

/*
* Copyright (C) 2013-2015 Alexei Starovoitov <[email protected]>
* Copyright (C) 2015 Wang Nan <[email protected]>
* Copyright (C) 2015 Huawei Inc.
* Copyright (C) 2017 Nicira, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License (not later!)
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, see <http://www.gnu.org/licenses>
*/

#include <stdio.h>
diff --git a/tools/lib/bpf/netlink.c b/tools/lib/bpf/netlink.c
index 2d2edbbd8ae8..0ce67aea8f3b 100644
--- a/tools/lib/bpf/netlink.c
+++ b/tools/lib/bpf/netlink.c
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: LGPL-2.1
+// SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)
/* Copyright (c) 2018 Facebook */

#include <stdlib.h>
diff --git a/tools/lib/bpf/nlattr.c b/tools/lib/bpf/nlattr.c
index e52257a7367a..1e69c0c8d413 100644
--- a/tools/lib/bpf/nlattr.c
+++ b/tools/lib/bpf/nlattr.c
@@ -1,13 +1,8 @@
-// SPDX-License-Identifier: LGPL-2.1
+// SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)

/*
* NETLINK Netlink attributes
*
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation version 2.1
- * of the License.
- *
* Copyright (c) 2003-2013 Thomas Graf <[email protected]>
*/

diff --git a/tools/lib/bpf/nlattr.h b/tools/lib/bpf/nlattr.h
index 7198584a3040..6cc3ac91690f 100644
--- a/tools/lib/bpf/nlattr.h
+++ b/tools/lib/bpf/nlattr.h
@@ -1,13 +1,8 @@
-/* SPDX-License-Identifier: LGPL-2.1 */
+/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */

/*
* NETLINK Netlink attributes
*
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation version 2.1
- * of the License.
- *
* Copyright (c) 2003-2013 Thomas Graf <[email protected]>
*/

diff --git a/tools/lib/bpf/str_error.c b/tools/lib/bpf/str_error.c
index 3d211b642cb5..00e48ac5b806 100644
--- a/tools/lib/bpf/str_error.c
+++ b/tools/lib/bpf/str_error.c
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: LGPL-2.1
+// SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)
#undef _GNU_SOURCE
#include <string.h>
#include <stdio.h>
diff --git a/tools/lib/bpf/str_error.h b/tools/lib/bpf/str_error.h
index b9157f5eebde..a139334d57b6 100644
--- a/tools/lib/bpf/str_error.h
+++ b/tools/lib/bpf/str_error.h
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: LGPL-2.1
+/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */
#ifndef __LIBBPF_STR_ERROR_H
#define __LIBBPF_STR_ERROR_H

--
2.17.1



2018-10-08 08:16:20

by Daniel Borkmann

[permalink] [raw]
Subject: Re: [PATCH bpf-next] libbpf: relicense libbpf as LGPL-2.1 OR BSD-2-Clause

On 10/05/2018 11:24 PM, Alexei Starovoitov wrote:
> libbpf is maturing as a library and gaining features that no other bpf libraries support
> (BPF Type Format, bpf to bpf calls, etc)
> Many Apache2 licensed projects (like bcc, bpftrace, gobpf, cilium, etc)
> would like to use libbpf, but cannot do this yet, since Apache Foundation explicitly
> states that LGPL is incompatible with Apache2.
> Hence let's relicense libbpf as dual license LGPL-2.1 or BSD-2-Clause,
> since BSD-2 is compatible with Apache2.
> Dual LGPL or Apache2 is invalid combination.
> Fix license mistake in Makefile as well.
>
> Signed-off-by: Alexei Starovoitov <[email protected]>
> Acked-by: Andrey Ignatov <[email protected]>
> Acked-by: Arnaldo Carvalho de Melo <[email protected]>
> Acked-by: Björn Töpel <[email protected]>
> Acked-by: Daniel Borkmann <[email protected]>
> Acked-by: David Beckett <[email protected]>
> Acked-by: Jakub Kicinski <[email protected]>
> Acked-by: Joe Stringer <[email protected]>
> Acked-by: John Fastabend <[email protected]>
> Acked-by: Martin KaFai Lau <[email protected]>
> Acked-by: Quentin Monnet <[email protected]>
> Acked-by: Thomas Graf <[email protected]>
> Acked-by: Roman Gushchin <[email protected]>
> Acked-by: Wang Nan <[email protected]>
> Acked-by: Yonghong Song <[email protected]>

Applied to bpf-next, thanks!

2018-10-08 09:12:53

by Jesper Dangaard Brouer

[permalink] [raw]
Subject: Re: [PATCH bpf-next] libbpf: relicense libbpf as LGPL-2.1 OR BSD-2-Clause

On Mon, 8 Oct 2018 10:15:10 +0200
Daniel Borkmann <[email protected]> wrote:

> On 10/05/2018 11:24 PM, Alexei Starovoitov wrote:
> > libbpf is maturing as a library and gaining features that no other bpf libraries support
> > (BPF Type Format, bpf to bpf calls, etc)
> > Many Apache2 licensed projects (like bcc, bpftrace, gobpf, cilium, etc)
> > would like to use libbpf, but cannot do this yet, since Apache Foundation explicitly
> > states that LGPL is incompatible with Apache2.
> > Hence let's relicense libbpf as dual license LGPL-2.1 or BSD-2-Clause,
> > since BSD-2 is compatible with Apache2.
> > Dual LGPL or Apache2 is invalid combination.
> > Fix license mistake in Makefile as well.
> >
> > Signed-off-by: Alexei Starovoitov <[email protected]>
> > Acked-by: Andrey Ignatov <[email protected]>
> > Acked-by: Arnaldo Carvalho de Melo <[email protected]>
> > Acked-by: Björn Töpel <[email protected]>
> > Acked-by: Daniel Borkmann <[email protected]>
> > Acked-by: David Beckett <[email protected]>
> > Acked-by: Jakub Kicinski <[email protected]>
> > Acked-by: Joe Stringer <[email protected]>
> > Acked-by: John Fastabend <[email protected]>
> > Acked-by: Martin KaFai Lau <[email protected]>
> > Acked-by: Quentin Monnet <[email protected]>
> > Acked-by: Thomas Graf <[email protected]>
> > Acked-by: Roman Gushchin <[email protected]>
> > Acked-by: Wang Nan <[email protected]>
> > Acked-by: Yonghong Song <[email protected]>
>
> Applied to bpf-next, thanks!

For the public record:
Acked-by: Jesper Dangaard Brouer <[email protected]>

I do know, this ack will not reach the git-log, but given I have code
in the lib, I want to show that I support and ack this re-license.

--
Best regards,
Jesper Dangaard Brouer
MSc.CS, Principal Kernel Engineer at Red Hat
LinkedIn: http://www.linkedin.com/in/brouer