From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id cE9EAULCM2GS5wAAgWs5BA (envelope-from ) for ; Sat, 04 Sep 2021 21:00:18 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id YFySOEHCM2HyCQAA1q6Kng (envelope-from ) for ; Sat, 04 Sep 2021 19:00:17 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id AAFDD130AE for ; Sat, 4 Sep 2021 21:00:16 +0200 (CEST) Received: from localhost ([::1]:47178 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mMatj-0004JT-QJ for larch@yhetil.org; Sat, 04 Sep 2021 15:00:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42922) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mMatX-0004JI-TE for guix-patches@gnu.org; Sat, 04 Sep 2021 15:00:04 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:37048) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mMatW-0006Vs-Ly for guix-patches@gnu.org; Sat, 04 Sep 2021 15:00:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mMatW-0004oR-KB for guix-patches@gnu.org; Sat, 04 Sep 2021 15:00:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#45692] [PATCH v4 3/3] gnu: Add ZFS service type. Resent-From: raid5atemyhomework Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 04 Sep 2021 19:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 45692 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Maxime Devos Cc: "45692@debbugs.gnu.org" <45692@debbugs.gnu.org> Received: via spool by 45692-submit@debbugs.gnu.org id=B45692.163078195218416 (code B ref 45692); Sat, 04 Sep 2021 19:00:02 +0000 Received: (at 45692) by debbugs.gnu.org; 4 Sep 2021 18:59:12 +0000 Received: from localhost ([127.0.0.1]:48594 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mMash-0004my-NP for submit@debbugs.gnu.org; Sat, 04 Sep 2021 14:59:12 -0400 Received: from mail-4319.protonmail.ch ([185.70.43.19]:37299) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mMase-0004mi-SL for 45692@debbugs.gnu.org; Sat, 04 Sep 2021 14:59:09 -0400 Date: Sat, 04 Sep 2021 18:58:57 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail; t=1630781941; bh=PiQfI+fQQ0L6ZcQpluowyB0lM+YSbtZo/u9o6KgdLf4=; h=Date:To:From:Cc:Reply-To:Subject:In-Reply-To:References:From; b=ti9RzpJ2j6D6Mdz2Plo8dMDlU304PnYSwSXEyduDQAyHV3yRwOOGfDHJrMIPNBbp/ Q0BwNDC2EsaTcTO48cP3+EJsSiGT16IPwKlYThNIpLafVIKpmpSITzoBXnt1ZbuvbV Z9v9d8Ke8UPDRy+dpVmMVd+UGITRVgN+8QgnXlAY= Message-ID: In-Reply-To: <2020c2223378c7eb3635defb27e6b4545e048b9f.camel@telenet.be> References: <2020c2223378c7eb3635defb27e6b4545e048b9f.camel@telenet.be> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" Reply-to: raid5atemyhomework X-ACL-Warn: , raid5atemyhomework via Guix-patches From: raid5atemyhomework via Guix-patches via X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1630782017; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=PiQfI+fQQ0L6ZcQpluowyB0lM+YSbtZo/u9o6KgdLf4=; b=MI08qkAceGk5shDscVTvkSFzsyJ5zNiPVvwDKisD/2fUOhY0+9xz5QbGBl67U0TENwPnKv V/RSU+eTuGU0ZCZY1ouRY8Ey7K6tfQJQRR70bG/mesfVtjlfRRpFISxB1vbjz0Q2XMBlc0 1RmfwoHhWCbaDBBt1QZPq7lXJ5BJoVYmcmk7fQmQW6pEC8W7l1ABaQ2ZS3gKU0T2I/TE+i 2Y9MPVxvIVhPkNypkQkDoyr39rAm3ugl2whB3wfQrre3ZQwpDDDWswnO/E4AH8BGmopkLT u9C/9A4dqHjiZRJ2DsXJs7JFWZxcljHxc6Mzf+Wa7DI0jwGJ370IPqYPqalvmg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1630782017; a=rsa-sha256; cv=none; b=LBl+BX50PEftvodAFwti+lBhQSxSDBg6T7MckkxcCDL7yOYRwwAaE07Tjk4KsSSX1dp0wp uhyfT6ASmEPPNHSVFyYGTFPjTKR75Q6GM6rBJkbvrPOJtZAuSzEMx0j3Q2s49Hlr6mOhDY NKOWs22x5NZMvOVyh6hrkGBMCqr0o4Zzb2DPWMlFbCkv1SdfoOmrdemnvJ4Zy4R9WcHOzx NhJypeI05lRZqy99T8eImycpsp+MDHsZrorRXNOCnLoxDPzZd8sqQncSvHa7YfCYCX+MwY tMu5y/Uzoz5bGpyWBzXWrIehOgO/byoPaHIBpZo3Z4/3+If9VORdQ8fJZ43/LQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=protonmail.com header.s=protonmail header.b=ti9RzpJ2; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Spam-Score: -1.42 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=protonmail.com header.s=protonmail header.b=ti9RzpJ2; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Queue-Id: AAFDD130AE X-Spam-Score: -1.42 X-Migadu-Scanner: scn0.migadu.com X-TUID: ApP1HjXjirX/ Hello again Maxime, > > +OpenZFS currently only supports Linux-Libre and is not available on th= e > > +Hurd. > > + > > +OpenZFS is free software; unfortunately its license is incompatible wi= th > > +the GNU General Public License (GPL), the license of the Linux kernel, > > +which means they cannot be distributed together. However, as a user, > > +you can choose to build ZFS and use it together with Linux; you can > > +even rely on Guix to automate this task. See > > +@uref{https://www.fsf.org/licensing/zfs-and-linux, this analysis by > > +the Free Software Foundation} for more information. > > That analysis says explicitely that the CDDL is incompatible with the GPL= , > and that they cannot be legally linked together. E.g., see the second quo= ted > paragraph: > > =E2=80=98A copyleft license, including any version of the GNU GPL or GNU = AGPL, requires > augmented versions to be free under the same license -- the same requirem= ent it > applies to modification of the code.1 I wrote a copyleft license for GNU = programs > to ensure that all users of all versions of them would get the freedoms I= intended > to give them. > > It is not enough to require that the combined program be free software so= mehow. It > must be released, as a whole, under the original copyleft license, to ens= ure that: > (1) subsequent users get the exact same freedoms and (2) subsequent inter= mediaries > do not get more opportunity than first-stage intermediaries to make the p= rogram nonfree.=E2=80=99 I think the key word you miss here is "released", i.e. "It must be released= , as a whole, under the original copyleft license." Looking at the GPLv2, the word "release" is never used, however I believe t= he "release" word in the FSF analysis would be considered as a synonym of "= distribute" in this context. The GPLv2 mentions "distribute" many times, but provides no definition of t= he word. My understanding is that "distribute" used in GPL means "to provide or make= available to at least one person that asks for a copy from you, via some m= edium". The GPLv2 imposes many restrictions on the ability to "distribute", so it s= eems reasonable to consider it an important point. Now, as I have pointed out, the existing package definition in `gnu/package= s/file-systems.scm` specifically disables making a binary copy ("substitute= " in Guix parlance) available. In addition, my understanding is that when compiling from source, the `sour= ce` field is what is used, and the `source` field in the `gnu/packages/file= -systems.scm` refers to github.com, not any Guix server. There is no text in GPLv2 which restricts compilation. However, it can be argued that compilation is a form of translation from so= urce code to machine-executable binary, and the text does mention "translat= ion is included without limitation in the term 'modification'". GPLv2 restricts modification with three terms: a. You should have prominent notices on modified files. b. Extra restriction on copies you ***distribute*** or ***publish***. c. Extra restriction if the program is interactive and prints copyright no= tices normally. (a) does not apply since the linking process used (a form of dynamic linkin= g) does not actually modify any files; presumably only in-memory tables or = some such are modified. (b) does not apply if "distribute" is not what is being done by Guix here. (c) does not apply since the Linux kernel is not interactive (and even so, = does not print copyright notices, not even in debug logs). On the CDDL side, neither "compile" nor "translate" is ever used, but for c= ompleteness let us consider compile =3D=3D translate =3D=3D modify. Modifications are specifically allowed under conditions in section 3. However, again, section 3 is titled "distribution obligations", meaning the= y only apply on *distribution*. So I think the issue here really is: Does Guix "distribute" the ZFS linked = with Linux? My understanding is that the mere existence of code to perform that linking= does not in fact *distribute* the code (linking is not the same as distrib= uting); I believe the key point of "distribute" is that a third party gets = a copy. And at least, the code I added in this patch does not provide any = copy of the compiled code to anyone else; it just stores it on the local ma= chine's disk, in a cpio archive that is used in the system's bootup. The c= opy, in the execution of the code I added, is never provided to anyone else= , so I think my patch is unproblematic Quick question: does `guix publish` respect `#:substitutable? #f`? If `gui= x publish` respects `#:substitutable? #f` then it seems to me that even the= point "Guix should make at least an attempt to warn users of possibly lega= l gray areas when distributing" does not apply, too: Guix by itself would n= ot (should not, really; that should be the point of `#:substituable? #f`) p= ublish the compiled code anyway, users who specifically want to publish ZFS= and Linux linked together would need to modify the `guix publish` code, an= d such a user would be running a fork of Guix, not Guix itself, thus should= be made aware of this. Indeed, if `guix publish` does *not* respect `#:substitutable? #f`, I think= it would be more effective to protect users against potential legal gray a= reas for `guix publish` to respect that flag, and for us to then audit exis= ting non-GPLv2-compatible kernel modules and ensure they are `#:substitutab= le? #f`, then to put up a warning; a warning might be overlooked, but an ou= tright refusal to publish cannot. Thanks raid5atemyhomework