unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Maxime Devos <maximedevos@telenet.be>
To: 50347@debbugs.gnu.org
Cc: guix-devel@gnu.org
Subject: [bug#50347] [RFC PATCH] lint: Warn about kernel modules with a suspect license.
Date: Thu, 02 Sep 2021 23:42:45 +0200	[thread overview]
Message-ID: <5c4caf742c5dbe2a02aede2b20ff80eae7bc352a.camel@telenet.be> (raw)


[-- Attachment #1.1: Type: text/plain, Size: 991 bytes --]

X-Debbugs-CC: guix-devel@gnu.org

[CC'ing guix-devel@gnu.org because a wider audience seems in order?]

Hi guix,

This patch adds a 'suspect-license' linter detecting some suspicious
values in the license fields of linux modules:

gnu/packages/file-systems.scm:1317:13: zfs@2.1.0: license appears incompatible with the Linux kernel
gnu/packages/linux.scm:1185:13: acpi-call-linux-module@1.2.1: license appears incompatible with the Linux kernel
gnu/packages/linux.scm:8205:15: ttyebus-linux-module@1.5-0.fe4332a: license appears incompatible with the Linux kernel

For zfs, the issue is the CDDL license.  For the others, the issue
is the gpl3+ license.  See the article by the SFLC for why this linter
detets ZFS:

<https://sfconservancy.org/blog/2016/feb/25/zfs-and-linux/#footnote-other-ZFS-copyright-holders>.

I wrote a little about the CDDL-GPL incompatibility issue
(most likely a GPL violation?) at <https://issues.guix.gnu.org/45692#43>.

Greetings,
Maxime.

[-- Attachment #1.2: 0001-lint-Warn-about-kernel-modules-with-a-suspect-licens.patch --]
[-- Type: text/x-patch, Size: 2736 bytes --]

From 851cf20b7d5aed45c3331781afef8de3961f4bb4 Mon Sep 17 00:00:00 2001
From: Maxime Devos <maximedevos@telenet.be>
Date: Thu, 2 Sep 2021 23:30:15 +0200
Subject: [PATCH] lint: Warn about kernel modules with a suspect license.

* guix/lint.scm
  (check-suspect-license): New linter.
  (%local-checkers)[suspect-license]: Register it.
---
 guix/lint.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/guix/lint.scm b/guix/lint.scm
index ffd3f7007e..3a7f3be327 100644
--- a/guix/lint.scm
+++ b/guix/lint.scm
@@ -34,6 +34,7 @@
   #:use-module (guix store)
   #:autoload   (guix base16) (bytevector->base16-string)
   #:use-module (guix base32)
+  #:use-module (guix build-system)
   #:use-module (guix diagnostics)
   #:use-module (guix download)
   #:use-module (guix ftp-client)
@@ -1347,6 +1348,31 @@ of the propagated inputs it pulls in."
       (make-warning package (G_ "invalid license field")
                     #:field 'license)))))
 
+(define (check-suspect-license package)
+  "Warn about suspicious license combinations in PACKAGE."
+  ;; Use 'build-system-name' instead of comparing the build
+  ;; system directly with 'linux-module-build-system' to avoid
+  ;; loading (guix build-system linux-module) when no Linux modules
+  ;; are linted.
+  (define linux-module?
+    (eq? 'linux-module
+         (build-system-name (package-build-system package))))
+  ;; This has plenty of false negatives and should
+  ;; have very few false positives.
+  (define gpl2-only-incompatible?
+    ;; The Linux kernel is GPL-2-only, so GPL3 and later are out.
+    ;; The GPL and CDDL appear to be incompatible, see
+    ;; <https://sfconservancy.org/blog/2016/feb/25/zfs-and-linux/>
+    ;; and <https://www.fsf.org/licensing/zfs-and-linux>.
+    (memq (package-license package)
+          (list gpl3 gpl3+ cddl1.0)))
+  (if (and linux-module? gpl2-only-incompatible?)
+      (list
+       (make-warning package
+                     (G_ "license appears incompatible with the Linux kernel")
+                     #:field 'license))
+      '()))
+
 (define (current-vulnerabilities*)
   "Like 'current-vulnerabilities', but return the empty list upon networking
 or HTTP errors.  This allows network-less operation and makes problems with
@@ -1762,6 +1788,10 @@ them for PACKAGE."
      (description "Make sure the 'license' field is a <license> \
 or a list thereof")
      (check       check-license))
+   (lint-checker
+     (name        'suspect-license)
+     (description "Detect some suspect combinations of licenses")
+     (check       check-suspect-license))
    (lint-checker
      (name        'optional-tests)
      (description "Make sure tests are only run when requested")
-- 
2.33.0


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

             reply	other threads:[~2021-09-02 21:44 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-02 21:42 Maxime Devos [this message]
     [not found] ` <868s0ajenb.fsf@gmail.com>
2021-09-08 20:42   ` bug#50347: [RFC PATCH] lint: Warn about kernel modules with a suspect license Maxime Devos

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5c4caf742c5dbe2a02aede2b20ff80eae7bc352a.camel@telenet.be \
    --to=maximedevos@telenet.be \
    --cc=50347@debbugs.gnu.org \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).