From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id +DCxDMHreV+pbwAA0tVLHw (envelope-from ) for ; Sun, 04 Oct 2020 15:35:29 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id SG93CMHreV/JRQAA1q6Kng (envelope-from ) for ; Sun, 04 Oct 2020 15:35:29 +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 9BC699400D3 for ; Sun, 4 Oct 2020 15:35:28 +0000 (UTC) Received: from localhost ([::1]:36828 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kP62p-0002Q9-Iv for larch@yhetil.org; Sun, 04 Oct 2020 11:35:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51524) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kP62R-0002Ic-Hp for bug-guix@gnu.org; Sun, 04 Oct 2020 11:35:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:35060) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kP62R-0006VZ-9E for bug-guix@gnu.org; Sun, 04 Oct 2020 11:35:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kP62R-0002hD-7H for bug-guix@gnu.org; Sun, 04 Oct 2020 11:35:03 -0400 X-Loop: help-debbugs@gnu.org Subject: bug#43796: Privacy policy Resent-From: "pelzflorian (Florian Pelz)" Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Sun, 04 Oct 2020 15:35:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 43796 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 43796@debbugs.gnu.org X-Debbugs-Original-To: bug-guix@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.160182568510319 (code B ref -1); Sun, 04 Oct 2020 15:35:03 +0000 Received: (at submit) by debbugs.gnu.org; 4 Oct 2020 15:34:45 +0000 Received: from localhost ([127.0.0.1]:46604 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kP625-0002gK-5V for submit@debbugs.gnu.org; Sun, 04 Oct 2020 11:34:45 -0400 Received: from lists.gnu.org ([209.51.188.17]:53626) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kP623-0002gC-JX for submit@debbugs.gnu.org; Sun, 04 Oct 2020 11:34:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51520) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kP623-0002Hd-CD for bug-guix@gnu.org; Sun, 04 Oct 2020 11:34:39 -0400 Received: from pelzflorian.de ([5.45.111.108]:55884 helo=mail.pelzflorian.de) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kP61z-0006Ss-Rp for bug-guix@gnu.org; Sun, 04 Oct 2020 11:34:38 -0400 Received: from pelzflorian.localdomain (unknown [5.45.111.108]) by mail.pelzflorian.de (Postfix) with ESMTPSA id EAF4036057E for ; Sun, 4 Oct 2020 17:34:31 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=pelzflorian.de; s=mail; t=1601825672; bh=/G2HYbmOf/P64hk0d9RgLc1edpZhSzdLaiU8Z9GMCTY=; h=Date:From:To:Subject; b=dhsbYspCS1EDoROKZu7NMM/QB6OIQzAB8+X8CWamuhSpwLlYVdDZRppWp4Iw8ZjxI U+5jg1x6bka13DnHJ1c7x1Lzo6/eLBy2WS8DeHEjNi3ekkGjXgMrEryxdwFZJIBNK0 8dxjW/GIuJhHJb6k6TIJCIzwrx53LTN8GmCruDEc= Date: Sun, 4 Oct 2020 17:34:19 +0200 From: "pelzflorian (Florian Pelz)" Message-ID: <20201004153419.kyacfjdwmok6yybg@pelzflorian.localdomain> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="w5j4vyutauxw4md5" Content-Disposition: inline Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=5.45.111.108; envelope-from=pelzflorian@pelzflorian.de; helo=mail.pelzflorian.de X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/04 11:34:32 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Spam-Score: -0.1 (/) X-BeenThere: bug-guix@gnu.org List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+larch=yhetil.org@gnu.org Sender: "bug-Guix" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=fail (rsa verify failed) header.d=pelzflorian.de header.s=mail header.b=dhsbYspC; dmarc=none; spf=pass (aspmx1.migadu.com: domain of bug-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=bug-guix-bounces@gnu.org X-Spam-Score: 0.99 X-TUID: e/VPTQ7t90vZ --w5j4vyutauxw4md5 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit IANAL but I think Guix needs a privacy policy for both its website and the Guix software in general. Attached is a patch for the website that also documents data use by Guix and Guix System. Maybe I’ve overdone some parts and probably something important is missing. In particular, the GDPR requires IP addresses to be deleted from logs after a reasonable time. I think but am not sure the current process for nginx is to delete only when the log files become too big. A more suitable policy must be implemented and the users must be told about it, I think. See . In general I think it is better to have an incomplete policy than to have none. Comments? Regards, Florian --w5j4vyutauxw4md5 Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename="0001-website-Add-privacy-policy.patch" Content-Transfer-Encoding: 8bit >From 080df2de1f1f99fce3d7dffcce57f723fd266e17 Mon Sep 17 00:00:00 2001 From: Florian Pelz Date: Sun, 4 Oct 2020 17:10:13 +0200 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [PATCH] website: Add privacy policy. * website/apps/base/templates/privacy.scm: New file with web page on privacy. * website/apps/base/templates/components.scm (navbar): Add it. * website/po/POTFILES: Add it. * website/apps/base/builder.scm (privacy-builder): New procedure. (builder): Add it. --- website/apps/base/builder.scm | 23 +++++ website/apps/base/templates/components.scm | 18 +++- website/apps/base/templates/privacy.scm | 115 +++++++++++++++++++++ website/po/POTFILES | 1 + 4 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 website/apps/base/templates/privacy.scm diff --git a/website/apps/base/builder.scm b/website/apps/base/builder.scm index 4882dc5..2acf4dc 100644 --- a/website/apps/base/builder.scm +++ b/website/apps/base/builder.scm @@ -1,6 +1,22 @@ ;;; GNU Guix web site +;;; Copyright © 2020 Florian Pelz ;;; Initially written by sirgazil who waives all ;;; copyright interest on this file. +;;; +;;; This file is part of the GNU Guix web site. +;;; +;;; The GNU Guix web site is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU Affero General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; The GNU Guix web site 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 Affero General Public License for more details. +;;; +;;; You should have received a copy of the GNU Affero General Public License +;;; along with the GNU Guix web site. If not, see . (define-module (apps base builder) #:use-module (apps base data) @@ -13,6 +29,7 @@ #:use-module (apps base templates help) #:use-module (apps base templates home) #:use-module (apps base templates menu) + #:use-module (apps base templates privacy) #:use-module (apps base templates security) #:use-module (apps base types) #:use-module (apps blog utils) @@ -54,6 +71,7 @@ (contact-builder) (irc-builder) (contribute-builder) + (privacy-builder) (security-builder) (graphics-builder)))) @@ -115,6 +133,11 @@ (make-page "menu/index.html" (menu-t) sxml->html)) +(define (privacy-builder) + "Return a Haunt page representing the Privacy page of the website." + (make-page "privacy/index.html" (privacy-t) sxml->html)) + + (define (security-builder) "Return a Haunt page representing the Security page of the website." (make-page "security/index.html" (security-t) sxml->html)) diff --git a/website/apps/base/templates/components.scm b/website/apps/base/templates/components.scm index 44d410e..1bf11e9 100644 --- a/website/apps/base/templates/components.scm +++ b/website/apps/base/templates/components.scm @@ -1,7 +1,22 @@ ;;; GNU Guix web site -;;; Copyright © 2019 Florian Pelz +;;; Copyright © 2019, 2020 Florian Pelz ;;; Initially written by sirgazil who waives all ;;; copyright interest on this file. +;;; +;;; This file is part of the GNU Guix web site. +;;; +;;; The GNU Guix web site is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU Affero General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; The GNU Guix web site 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 Affero General Public License for more details. +;;; +;;; You should have received a copy of the GNU Affero General Public License +;;; along with the GNU Guix web site. If not, see . ;;; This module defines HTML parts like header, breadcrumbs, footer, ;;; buttons, etc., which are used website-wide. @@ -425,6 +440,7 @@ manual. (C_ "website menu" (menu-item #:label "Contact" #:active-item active-item #:url (guix-url "contact/"))) (C_ "website menu" (menu-item #:label "Contribute" #:active-item active-item #:url (guix-url "contribute/"))) (C_ "website menu" (menu-item #:label "Security" #:active-item active-item #:url (guix-url "security/"))) + (C_ "website menu" (menu-item #:label "Privacy" #:active-item active-item #:url (guix-url "privacy/"))) (C_ "website menu" (menu-item #:label "Graphics" #:active-item active-item #:url (guix-url "graphics/"))))) ,(horizontal-skip) ;; Languages dropdown. diff --git a/website/apps/base/templates/privacy.scm b/website/apps/base/templates/privacy.scm new file mode 100644 index 0000000..1511fe0 --- /dev/null +++ b/website/apps/base/templates/privacy.scm @@ -0,0 +1,115 @@ +;;; GNU Guix web site +;;; Copyright © 2020 Florian Pelz +;;; +;;; This file is part of the GNU Guix web site. +;;; +;;; The GNU Guix web site is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU Affero General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; The GNU Guix web site 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 Affero General Public License for more details. +;;; +;;; You should have received a copy of the GNU Affero General Public License +;;; along with the GNU Guix web site. If not, see . + +(define-module (apps base templates privacy) + #:use-module (apps base templates components) + #:use-module (apps base templates theme) + #:use-module (apps base types) + #:use-module (apps base utils) + #:use-module (apps i18n) + #:export (privacy-t)) + +(define (privacy-t) + "Return the Privacy page in SHTML." + (theme + #:title (C_ "webpage title" '("Privacy")) + #:description + (G_ "Information on how your personal data is processed while using +GNU Guix’ services.") + #:keywords + (string-split ;TRANSLATORS: |-separated list of webpage keywords + (G_ "GNU|Linux|Unix|Free software|Libre software|Operating \ +system|GNU Hurd|GNU Guix package manager|Privacy|Data Protection") #\|) + #:active-menu-item (C_ "website menu" "About") + #:css (list + (guix-url "static/base/css/page.css")) + #:crumbs (list (crumb (C_ "website menu" "Privacy") "./")) + #:content + `(main + (section + (@ (class "page centered-block limit-width")) + ,(G_ `(h2 "How we use your personal information")) + ,(G_ + `(p + "Guix is made by people and organizations without a commercial + interest in your personal information. Nonetheless, some + services for Guix necessarily process your data to provide the + functionality you requested. We keep this to a minimum.")) + + ,(C_ "privacy policy section" `(h3 "Guix and Guix System")) + ,(G_ + `(p + "During your use of Guix’ software in its default configuration, + your IP address may be revealed to the network services you use. + Your IP address could be used to identify who uses the service and + from which internet connection it is used. These services include " + ,(G_ (manual-href "substitute servers" + (G_ "en") + (G_ "Substitutes.html"))) + " hosted by " + ,(G_ `(a (@ (href ,(guix-url "donate/"))) "our donors")) + " for the Guix project but also " + ,(G_ (manual-href "third-party services" + (G_ "en") + (G_ "Networking-Services.html"))) + " such as network, DNS and Network Time Protocol service providers. + This is necessary to provide you with a usable and secure system + environment. It shall be assumed that these services log your use + of their service along with your IP address to make it easier to + guard against malicious use. The " + ,(G_ `(a (@ (href ,(guix-url "manual/"))) "manual")) + " describes how to change the configuration of Guix to disable such + services or how to send data over the network via an HTTP(S) proxy, + Tor or other means that maybe expose less of your personal data.")) + ,(G_ + `(p + "When you tell Guix to install software for you, Guix will attempt + to download said software from the respective upstream provider and + various download mirrors, revealing your IP address. Your use of + third-party software installed via Guix is of course your + responsibility.")) + ,(C_ "privacy policy section" `(h3 "Website")) + ,(G_ + `(p + "When you access Guix’ website, your request will be logged along + with your IP address and the requested URL. This enables the + admins to more easily respond to excess usage or security attacks.")) + ,(G_ + `(p + "For proper presentation, Guix loads videos and scripts from " + ,(G_ `(a (@ (href "https://audio-video.gnu.org/")) + "audio-video.gnu.org")) " and " + ,(G_ `(a (@ (href "https://kiwiirc.com/")) + "kiwiirc.com")) + ". Please see their websites for explanations how they use your + data. The website also contains hyperlinks to third-party sites. + When you follow them, it is likely that your web browser is + configured to report the Guix website URL you were previously + visiting to the third-party site in a " + ,(G_ `(a (@ (href "https://en.wikipedia.org/wiki/HTTP_referer")) + "Referer header")) + ".")) + ,(C_ "privacy policy section" + `(h3 "Mailing lists, IRC and other means of communication")) + ,(G_ + `(p + "You can " + ,(G_ `(a (@ (href ,(guix-url "contact/"))) + "contact the Guix community")) + " via various third-party means. Their respective privacy policy + applies.")))))) diff --git a/website/po/POTFILES b/website/po/POTFILES index 6f9f349..a97c6e5 100644 --- a/website/po/POTFILES +++ b/website/po/POTFILES @@ -13,6 +13,7 @@ apps/base/templates/donate.scm apps/base/templates/graphics.scm apps/base/templates/irc.scm apps/base/templates/menu.scm +apps/base/templates/privacy.scm apps/base/templates/security.scm apps/blog/templates/components.scm apps/blog/templates/feed.scm -- 2.28.0 --w5j4vyutauxw4md5--