From mboxrd@z Thu Jan 1 00:00:00 1970 From: clement@lassieur.org (=?utf-8?Q?Cl=C3=A9ment?= Lassieur) Subject: Re: Guix and FSDG Date: Sat, 23 Nov 2019 02:22:31 +0100 Message-ID: <877e3rz8rs.fsf@lassieur.org> References: <91c877cfe5d19d192b53da2c7cd2a741c30a37f7.camel@disroot.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:33696) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iYK8D-00020i-3w for guix-devel@gnu.org; Fri, 22 Nov 2019 20:22:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iYK8B-00056S-Io for guix-devel@gnu.org; Fri, 22 Nov 2019 20:22:36 -0500 Received: from mail-wr1-f46.google.com ([209.85.221.46]:44916) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iYK8B-000564-D5 for guix-devel@gnu.org; Fri, 22 Nov 2019 20:22:35 -0500 Received: by mail-wr1-f46.google.com with SMTP id i12so10751024wrn.11 for ; Fri, 22 Nov 2019 17:22:35 -0800 (PST) In-Reply-To: (David Thompson's message of "Fri, 22 Nov 2019 12:03:36 -0500") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: "Thompson, David" Cc: guix-devel , Raghav Gururajan Hi David, "Thompson, David" writes: > I believe this is incorrect and I will explain why. This exact > circumstance was brought up in the early days of the Guix project when > FSDG compliance was a big topic of discussion because Ludovic and RMS > were making sure that Guix conformed to it. It is true that Guix will > download source archives for packages that *may* contain files with a > nonfree license. However, Guix has a special mechanism developed > specifically to deal with this issue. In Guix, the data type > is used to store information about a package's source code. In this > data structure there is a field called "snippet" which may contain a > custom procedure written by the person that wrote the package. The > role of the snippet procedure is to *remove* any files in the source > archive that are not freely licensed. The result is a new source > archive that contains only freely licensed files. The most important > part of this process is that the original source archive is *never* > accessible to the Guix user via any Guix tools. The original archive > is discarded and does not end up in the canonical location for Guix > data: /gnu/store. Thus, running `guix build --source > problematic-package` will only ever return the cleaned archive, never > the original with nonfree files. Therefore, Guix has taken sufficient > technical measures to avoid steering its user towards nonfree software > and thus Guix is compliant with the FSDG. Unfortunately I think this isn't true. For example this is what 'guix build -S zpaq' outputs: --8<---------------cut here---------------start------------->8--- substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0% The following derivation will be built: /gnu/store/k9g90yqfcz8c0lnz1mcfd9k53llyw8wh-zpaq715.tar.xz.drv 2,7 MB will be downloaded: /gnu/store/32xxhz1sf3v9wxkhlvf4b9493dy588gi-zpaq715.zip substituting /gnu/store/32xxhz1sf3v9wxkhlvf4b9493dy588gi-zpaq715.zip... downloading from https://ci.guix.gnu.org/nar/32xxhz1sf3v9wxkhlvf4b9493dy588= gi-zpaq715.zip... zpaq715.zip 2.6MiB 2.4MiB/s 00:01 [##################] 1= 00.0% building /gnu/store/k9g90yqfcz8c0lnz1mcfd9k53llyw8wh-zpaq715.tar.xz.drv... /gnu/store/cnqpra8vr2l5fz00rr4yj4bp3hr00cfw-tar-1.32/bin/tar: Option --mtim= e: Treating date '@0' as 1970-01-01 00:00:00 zpaq715.zip/ zpaq715.zip/COPYING zpaq715.zip/Makefile zpaq715.zip/libzpaq.cpp zpaq715.zip/libzpaq.h zpaq715.zip/readme.txt zpaq715.zip/zpaq.cpp zpaq715.zip/zpaq.pod source is under 'zpaq715.zip' `/gnu/store/32xxhz1sf3v9wxkhlvf4b9493dy588gi-zpaq715.zip/libzpaq.h' -> `zpa= q715.zip/libzpaq.h' `/gnu/store/32xxhz1sf3v9wxkhlvf4b9493dy588gi-zpaq715.zip/zpaq.pod' -> `zpaq= 715.zip/zpaq.pod' `/gnu/store/32xxhz1sf3v9wxkhlvf4b9493dy588gi-zpaq715.zip/Makefile' -> `zpaq= 715.zip/Makefile' `/gnu/store/32xxhz1sf3v9wxkhlvf4b9493dy588gi-zpaq715.zip/zpaq.exe' -> `zpaq= 715.zip/zpaq.exe' `/gnu/store/32xxhz1sf3v9wxkhlvf4b9493dy588gi-zpaq715.zip/libzpaq.cpp' -> `z= paq715.zip/libzpaq.cpp' `/gnu/store/32xxhz1sf3v9wxkhlvf4b9493dy588gi-zpaq715.zip/COPYING' -> `zpaq7= 15.zip/COPYING' `/gnu/store/32xxhz1sf3v9wxkhlvf4b9493dy588gi-zpaq715.zip/zpaq.cpp' -> `zpaq= 715.zip/zpaq.cpp' `/gnu/store/32xxhz1sf3v9wxkhlvf4b9493dy588gi-zpaq715.zip/zpaq64.exe' -> `zp= aq715.zip/zpaq64.exe' `/gnu/store/32xxhz1sf3v9wxkhlvf4b9493dy588gi-zpaq715.zip/readme.txt' -> `zp= aq715.zip/readme.txt' successfully built /gnu/store/k9g90yqfcz8c0lnz1mcfd9k53llyw8wh-zpaq715.tar.= xz.drv /gnu/store/ran43jk8ngc60zzxgzhzdhkrpyb9i0ji-zpaq715.tar.xz --8<---------------cut here---------------end--------------->8--- Both /gnu/store/32xxhz1sf3v9wxkhlvf4b9493dy588gi-zpaq715.zip and /gnu/store/ran43jk8ngc60zzxgzhzdhkrpyb9i0ji-zpaq715.tar.xz are accessible. The former allows me to access zpaq64.exe and zpaq.exe although the snippet is: --8<---------------cut here---------------start------------->8--- (snippet ;; Delete irrelevant pre-compiled binaries. '(begin (for-each delete-file (find-files "." "\\.exe$")) #t)) --8<---------------cut here---------------end--------------->8--- Cl=C3=A9ment